@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,3 @@
|
|
|
1
|
+
export { MarkerModalComponent } from './marker-modal.component';
|
|
2
|
+
export { MARKER_MODAL_SELECTOR } from './marker-modal.options';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2VkaXRvci9jb21wb25lbnRzL21hcmtlci1tb2RhbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVoRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IE1hcmtlck1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi9tYXJrZXItbW9kYWwuY29tcG9uZW50JztcclxuZXhwb3J0IHsgTWFya2VyRGF0YSB9IGZyb20gJy4vbWFya2VyLW1vZGFsLmludGVyZmFjZXMnO1xyXG5leHBvcnQgeyBNQVJLRVJfTU9EQUxfU0VMRUNUT1IgfSBmcm9tICcuL21hcmtlci1tb2RhbC5vcHRpb25zJztcclxuIl19
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
import { DOCUMENT, NgIf } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, DestroyRef, ElementRef, EventEmitter, HostBinding, Input, Output, computed, inject, signal } from '@angular/core';
|
|
3
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
|
+
import { FormControl, FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';
|
|
5
|
+
import { CuiClickOutsideDirective, CuiElementDirective, CuiIdService } from '@cuby-ui/cdk';
|
|
6
|
+
import { TranslocoDirective } from '@jsverse/transloco';
|
|
7
|
+
import { CuiButtonModule, CuiFormFieldModule, CuiHintModule, CuiInputModule, CuiLabelModule, CuiSvgModule } from '../../../components';
|
|
8
|
+
import { urlValidator } from '../../utils/url.validator';
|
|
9
|
+
import { EDITOR_SELECTOR } from '../../constants';
|
|
10
|
+
import { CuiMarkersService } from '../../services';
|
|
11
|
+
import { MarkerSelectComponent } from '../marker-select';
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
import * as i1 from "@cuby-ui/cdk";
|
|
14
|
+
import * as i2 from "../../../components/button/button.component";
|
|
15
|
+
import * as i3 from "../../../components/form-field/form-field.component";
|
|
16
|
+
import * as i4 from "../../../components/hint/hint.component";
|
|
17
|
+
import * as i5 from "../../../components/input-text/input-text.component";
|
|
18
|
+
import * as i6 from "../../../directives/text-field-controller/text-field-id.directive";
|
|
19
|
+
import * as i7 from "../../../directives/text-field-controller/text-field-placeholder.directive";
|
|
20
|
+
import * as i8 from "../../../directives/text-field-controller/text-field-is-error.directive";
|
|
21
|
+
import * as i9 from "../../../components/label/label.component";
|
|
22
|
+
import * as i10 from "../../../components/svg/svg.component";
|
|
23
|
+
import * as i11 from "@angular/forms";
|
|
24
|
+
export class MarkerModalComponent {
|
|
25
|
+
constructor() {
|
|
26
|
+
this.element = inject(ElementRef).nativeElement;
|
|
27
|
+
this.document = inject(DOCUMENT);
|
|
28
|
+
this.destroyRef = inject(DestroyRef);
|
|
29
|
+
this.cuiClickOutsideDirective = inject(CuiClickOutsideDirective, { self: true });
|
|
30
|
+
this.cuiIdService = inject(CuiIdService);
|
|
31
|
+
this.markersService = inject(CuiMarkersService);
|
|
32
|
+
this.TITLE_MAX_LENGTH = 100;
|
|
33
|
+
this.formTitle = signal('');
|
|
34
|
+
this.isTitleEmpty = computed(() => !this.formTitle().length);
|
|
35
|
+
this.isTitleMoreThanMaxLength = computed(() => this.formTitle().length > this.TITLE_MAX_LENGTH);
|
|
36
|
+
this.isTitleInvalid = computed(() => this.isTitleEmpty() || this.isTitleMoreThanMaxLength());
|
|
37
|
+
this.titleId = this.cuiIdService.generate();
|
|
38
|
+
this.dataId = this.cuiIdService.generate();
|
|
39
|
+
this.spaceBetweenTargetAndList = 5;
|
|
40
|
+
this.startTitle = '';
|
|
41
|
+
this.isGlobal = false;
|
|
42
|
+
this.isTool = false;
|
|
43
|
+
this.saveClicked = new EventEmitter();
|
|
44
|
+
this.cancelClicked = new EventEmitter();
|
|
45
|
+
this.isVisible = signal(false);
|
|
46
|
+
this.isHidden = signal(true);
|
|
47
|
+
this.targetToggleEventListener = () => {
|
|
48
|
+
this.isVisible.update((prev) => !prev);
|
|
49
|
+
if (!this.isVisible()) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
this.calculateDropdownPosition();
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
set title(value) {
|
|
56
|
+
this.startTitle = value;
|
|
57
|
+
this.formTitle.set(value);
|
|
58
|
+
}
|
|
59
|
+
set url(value) {
|
|
60
|
+
this.dynamicDataControl = new FormControl(value, {
|
|
61
|
+
nonNullable: true,
|
|
62
|
+
validators: [Validators.required, urlValidator()]
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
set tool(value) {
|
|
66
|
+
const tool = this.markersService.getMarkerObjectByType(value.type, value.id);
|
|
67
|
+
this.dynamicDataControl = new FormControl(tool, {
|
|
68
|
+
nonNullable: true,
|
|
69
|
+
validators: [Validators.required]
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
set space(value) {
|
|
73
|
+
this.spaceBetweenTargetAndList = value;
|
|
74
|
+
}
|
|
75
|
+
get isFormInvalid() {
|
|
76
|
+
return this.dynamicDataControl.invalid || this.isTitleInvalid();
|
|
77
|
+
}
|
|
78
|
+
get isDynamicDataErrorShown() {
|
|
79
|
+
return this.dynamicDataControl.invalid && this.dynamicDataControl.dirty;
|
|
80
|
+
}
|
|
81
|
+
get hide() {
|
|
82
|
+
return this.isHidden();
|
|
83
|
+
}
|
|
84
|
+
get fixed() {
|
|
85
|
+
return this.isGlobal;
|
|
86
|
+
}
|
|
87
|
+
ngOnInit() {
|
|
88
|
+
this.initTargetElementListener();
|
|
89
|
+
this.initClickOutsideSubscription();
|
|
90
|
+
this.initOnCloseWhenEditorScroll();
|
|
91
|
+
}
|
|
92
|
+
ngOnDestroy() {
|
|
93
|
+
this.destroyEventListeners();
|
|
94
|
+
}
|
|
95
|
+
onTitleLabelClick(element) {
|
|
96
|
+
const range = document.createRange();
|
|
97
|
+
const selection = window.getSelection();
|
|
98
|
+
range.selectNodeContents(element);
|
|
99
|
+
range.collapse(false);
|
|
100
|
+
selection?.removeAllRanges();
|
|
101
|
+
selection?.addRange(range);
|
|
102
|
+
}
|
|
103
|
+
onSave() {
|
|
104
|
+
if (this.isFormInvalid) {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
this.isVisible.set(false);
|
|
108
|
+
this.saveClicked.emit({ title: this.formTitle(), data: this.dynamicDataControl.value });
|
|
109
|
+
}
|
|
110
|
+
onScroll() {
|
|
111
|
+
this.isVisible.set(false);
|
|
112
|
+
}
|
|
113
|
+
onCancel() {
|
|
114
|
+
this.isVisible.set(false);
|
|
115
|
+
this.cancelClicked.emit();
|
|
116
|
+
}
|
|
117
|
+
onClearTitle(titleElement) {
|
|
118
|
+
this.formTitle.set('');
|
|
119
|
+
titleElement.textContent = '';
|
|
120
|
+
titleElement.focus();
|
|
121
|
+
}
|
|
122
|
+
onTitleChange(event) {
|
|
123
|
+
if (event.key === 'Enter') {
|
|
124
|
+
event.preventDefault();
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
const target = event.target;
|
|
128
|
+
const value = target.textContent;
|
|
129
|
+
this.formTitle.set(value);
|
|
130
|
+
}
|
|
131
|
+
async onTitlePaste(event) {
|
|
132
|
+
event.stopPropagation();
|
|
133
|
+
event.preventDefault();
|
|
134
|
+
if (!this.document) {
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
const value = await window.navigator.clipboard.readText();
|
|
138
|
+
const target = event.target;
|
|
139
|
+
this.document.execCommand('insertText', false, value);
|
|
140
|
+
setTimeout(() => this.formTitle.set(target.textContent));
|
|
141
|
+
}
|
|
142
|
+
initTargetElementListener() {
|
|
143
|
+
this.target.addEventListener('click', this.targetToggleEventListener);
|
|
144
|
+
}
|
|
145
|
+
initClickOutsideSubscription() {
|
|
146
|
+
this.cuiClickOutsideDirective.cuiClickOutside.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((target) => {
|
|
147
|
+
if (this.element.contains(target) || this.target.contains(target) || !this.isVisible()) {
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
this.isVisible.set(false);
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
initOnCloseWhenEditorScroll() {
|
|
154
|
+
this.editor = this.document.querySelector(EDITOR_SELECTOR);
|
|
155
|
+
this.editor.addEventListener('scroll', this.onScroll.bind(this));
|
|
156
|
+
}
|
|
157
|
+
destroyEventListeners() {
|
|
158
|
+
this.editor.removeEventListener('scroll', this.onScroll.bind(this));
|
|
159
|
+
this.target.addEventListener('click', this.targetToggleEventListener);
|
|
160
|
+
}
|
|
161
|
+
calculateDropdownPosition() {
|
|
162
|
+
this.isHidden.set(true);
|
|
163
|
+
setTimeout(() => {
|
|
164
|
+
const target = this.target;
|
|
165
|
+
const { bottom: targetRectBottom, left: targetRectLeft } = target.getBoundingClientRect();
|
|
166
|
+
const { clientHeight: documentClientHeight, clientWidth: documentClientWidth } = this.document.documentElement;
|
|
167
|
+
const distanceToBottom = documentClientHeight - (targetRectBottom + this.spaceBetweenTargetAndList);
|
|
168
|
+
const distanceToRight = documentClientWidth - targetRectLeft;
|
|
169
|
+
const isListRight = distanceToRight < this.element.offsetWidth;
|
|
170
|
+
const isListAbove = distanceToBottom < this.element.offsetHeight;
|
|
171
|
+
this.changePositionY(isListAbove, target.offsetHeight, targetRectBottom);
|
|
172
|
+
this.changePositionX(isListRight, target.offsetWidth, targetRectLeft);
|
|
173
|
+
this.isHidden.set(false);
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
changePositionX(isListRight, width, left) {
|
|
177
|
+
if (this.isGlobal) {
|
|
178
|
+
this.changeGlobalPositionX(isListRight, width, left);
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
if (isListRight) {
|
|
182
|
+
this.element.style.right = '0';
|
|
183
|
+
this.element.style.left = 'auto';
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
this.element.style.right = 'auto';
|
|
187
|
+
this.element.style.left = '0';
|
|
188
|
+
}
|
|
189
|
+
changePositionY(isListAbove, height, bottom) {
|
|
190
|
+
if (this.isGlobal) {
|
|
191
|
+
this.changeGlobalPositionY(isListAbove, height, bottom);
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
if (isListAbove) {
|
|
195
|
+
this.element.style.bottom = height + this.spaceBetweenTargetAndList + 'px';
|
|
196
|
+
this.element.style.top = 'auto';
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
199
|
+
this.element.style.top = height + this.spaceBetweenTargetAndList + 'px';
|
|
200
|
+
this.element.style.bottom = 'auto';
|
|
201
|
+
}
|
|
202
|
+
changeGlobalPositionX(isListRight, width, left) {
|
|
203
|
+
if (isListRight) {
|
|
204
|
+
this.element.style.left = left - this.element.offsetWidth + width + 'px';
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
this.element.style.left = left + 'px';
|
|
208
|
+
}
|
|
209
|
+
changeGlobalPositionY(isListAbove, height, bottom) {
|
|
210
|
+
if (isListAbove) {
|
|
211
|
+
this.element.style.top =
|
|
212
|
+
bottom - this.element.offsetHeight - height - this.spaceBetweenTargetAndList + 'px';
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
this.element.style.top = bottom + this.spaceBetweenTargetAndList + 'px';
|
|
216
|
+
}
|
|
217
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MarkerModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
218
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MarkerModalComponent, isStandalone: true, selector: "ng-component", inputs: { title: "title", url: "url", tool: "tool", isGlobal: "isGlobal", isTool: "isTool", target: "target", space: "space" }, outputs: { saveClicked: "saveClicked", cancelClicked: "cancelClicked" }, host: { properties: { "class._hidden": "this.hide", "class._fixed": "this.fixed" } }, hostDirectives: [{ directive: i1.CuiClickOutsideDirective }], ngImport: i0, template: "<ng-container *transloco=\"let t\">\r\n <ng-container *ngIf=\"isVisible()\">\r\n <form\r\n autocomplete=\"off\"\r\n class=\"wrapper\"\r\n >\r\n <cui-form-field>\r\n <!-- eslint-disable-next-line -->\r\n <label\r\n [for]=\"titleId\"\r\n cuiLabel\r\n [isRequired]=\"true\"\r\n (click)=\"onTitleLabelClick(titleElement)\"\r\n >\r\n {{ t('TITLE') }}\r\n </label>\r\n <!-- TODO: \u0435\u0441\u043B\u0438 \u043D\u0430\u0439\u0434\u0435\u0442\u0441\u044F \u0432\u0430\u0440\u0438\u043A \u0441\u0434\u0435\u043B\u0430\u0442\u044C \u0447\u0435\u0440\u0435\u0437 \u0444\u043E\u0440\u043C\u0443 -->\r\n <div\r\n class=\"title\"\r\n [class.title_invalid]=\"isTitleInvalid()\"\r\n >\r\n <div\r\n #titleElement\r\n class=\"title__text\"\r\n contenteditable\r\n attr.data-placeholder=\"{{ t('TITLE') }}...\"\r\n (paste)=\"onTitlePaste($event)\"\r\n (keyup)=\"onTitleChange($event)\"\r\n [innerHTML]=\"startTitle\"\r\n ></div>\r\n <button\r\n type=\"button\"\r\n class=\"title__clear\"\r\n (click)=\"onClearTitle(titleElement)\"\r\n >\r\n <cui-svg\r\n icon=\"cuiIconClear\"\r\n color=\"var(--cui-base-300)\"\r\n class=\"title__icon\"\r\n />\r\n </button>\r\n </div>\r\n\r\n <cui-hint *ngIf=\"isTitleInvalid()\" hintType=\"error\">\r\n <ng-container *ngIf=\"isTitleEmpty()\">\r\n {{ t('FIELD_IS_REQUIRED') }}\r\n </ng-container>\r\n <ng-container *ngIf=\"isTitleMoreThanMaxLength()\">\r\n {{ t('PLEASE_KEEP_FIELD_UNDER_CHARACTERS') }}\r\n </ng-container>\r\n </cui-hint>\r\n </cui-form-field>\r\n <cui-form-field>\r\n <label\r\n [for]=\"dataId\"\r\n cuiLabel\r\n [isRequired]=\"true\"\r\n >\r\n {{ isTool ? t('TOOL') : t('URL') }}\r\n </label>\r\n <ng-container *ngIf=\"dynamicDataControl\">\r\n <ng-container *ngIf=\"isTool; else input\">\r\n <div>\r\n <button\r\n #target=\"elementRef\"\r\n class=\"button tool-button\"\r\n cuiButton\r\n type=\"button\"\r\n cuiElement\r\n appearance=\"outlined-gray\"\r\n size=\"sm\"\r\n >\r\n {{ $any(dynamicDataControl.value)?.title || t('SELECT_TOOL') }}\r\n </button>\r\n </div>\r\n <cc-marker-select\r\n [formControl]=\"dynamicDataControl\"\r\n [target]=\"target.nativeElement\"\r\n />\r\n </ng-container>\r\n <ng-template #input>\r\n <cui-input-text\r\n [cuiTextFieldId]=\"dataId\"\r\n [formControl]=\"dynamicDataControl\"\r\n autocomplete=\"off\"\r\n [cuiTextFieldIsError]=\"isDynamicDataErrorShown\"\r\n cuiTextFieldPlaceholder=\"{{ t('LINK') }}...\"\r\n />\r\n <cui-hint *ngIf=\"isDynamicDataErrorShown\" hintType=\"error\">\r\n <ng-container *ngIf=\"dynamicDataControl.errors?.['required']\">\r\n {{ t('FIELD_IS_REQUIRED') }}\r\n </ng-container>\r\n <ng-container *ngIf=\"dynamicDataControl.errors?.['url']\">\r\n {{ t('INVALID_URL') }}\r\n </ng-container>\r\n </cui-hint>\r\n </ng-template>\r\n </ng-container>\r\n </cui-form-field>\r\n <div class=\"buttons\">\r\n <button\r\n cuiButton\r\n type=\"button\"\r\n appearance=\"outlined-gray\"\r\n size=\"sm\"\r\n (click)=\"onCancel()\"\r\n >\r\n {{ t('CANCEL') }}\r\n </button>\r\n <button\r\n cuiButton\r\n type=\"submit\"\r\n appearance=\"action\"\r\n size=\"sm\"\r\n [disabled]=\"isFormInvalid\"\r\n (click)=\"onSave()\"\r\n >\r\n {{ t('SAVE') }}\r\n </button>\r\n </div>\r\n </form>\r\n </ng-container>\r\n</ng-container>\r\n\r\n", styles: [":host{position:absolute;z-index:1;left:0}:host._fixed{position:fixed}:host._hidden{position:fixed;visibility:hidden}:host ::ng-deep .tool-button{width:100%}:host ::ng-deep .tool-button>span{justify-content:flex-start!important}.wrapper{padding:11px;box-shadow:0 2px 4px -1px #0000000f,0 4px 6px -1px #0000001a;display:flex;flex-direction:column;gap:16px;border-radius:8px;border:1px solid var(--cui-base-200);max-width:450px;background-color:var(--cui-base-0)}.buttons{padding-top:12px;display:flex;justify-content:flex-end;gap:12px}.title{padding:7px 13px;cursor:text;display:flex;align-items:center;gap:8px;border:1px solid var(--cui-base-200);border-radius:8px;width:426px;background:var(--cui-input);color:var(--cui-base-900)}.title:hover{border-color:var(--cui-base-300)}.title:focus-within{outline:none;box-shadow:0 0 0 2px var(--cui-focus);border-color:var(--cui-info)}.title_invalid,.title_invalid:focus-within{box-shadow:none;border-color:var(--cui-danger)}.title__text{flex-grow:1;text-wrap:nowrap;overflow:hidden}.title__text[data-placeholder]:empty:before{content:attr(data-placeholder);position:absolute;color:var(--cui-base-400)}.title__text:focus{outline:none}.title__clear{padding:0;visibility:hidden}.title__icon{width:16px}.title__icon ::ng-deep [stroke]{stroke:var(--cui-base-0)}.title__text:not(:empty)+.title__clear{visibility:visible}\n"], dependencies: [{ kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: i2.CuiButtonComponent, selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "size"] }, { kind: "directive", type: CuiElementDirective, selector: "[cuiElement]", exportAs: ["elementRef"] }, { kind: "ngmodule", type: CuiFormFieldModule }, { kind: "component", type: i3.CuiFormFieldComponent, selector: "cui-form-field" }, { kind: "ngmodule", type: CuiHintModule }, { kind: "component", type: i4.CuiHintComponent, selector: "cui-hint", inputs: ["hintType"] }, { kind: "ngmodule", type: CuiInputModule }, { kind: "component", type: i5.CuiInputTextComponent, selector: "cui-input-text" }, { kind: "directive", type: i6.CuiTextFieldIdDirective, selector: "[cuiTextFieldId]", inputs: ["cuiTextFieldId"] }, { kind: "directive", type: i7.CuiTextFieldPlaceholderDirective, selector: "[cuiTextFieldPlaceholder]", inputs: ["cuiTextFieldPlaceholder"] }, { kind: "directive", type: i8.CuiTextFieldIsErrorDirective, selector: "[cuiTextFieldIsError]", inputs: ["cuiTextFieldIsError"] }, { kind: "ngmodule", type: CuiLabelModule }, { kind: "component", type: i9.CuiLabelComponent, selector: "label[cuiLabel]", inputs: ["isRequired"] }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: i10.CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i11.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i11.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i11.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i11.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: MarkerSelectComponent, selector: "cc-marker-select", inputs: ["target", "space"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i11.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
219
|
+
}
|
|
220
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MarkerModalComponent, decorators: [{
|
|
221
|
+
type: Component,
|
|
222
|
+
args: [{ standalone: true, imports: [
|
|
223
|
+
CuiButtonModule,
|
|
224
|
+
CuiElementDirective,
|
|
225
|
+
CuiFormFieldModule,
|
|
226
|
+
CuiHintModule,
|
|
227
|
+
CuiInputModule,
|
|
228
|
+
CuiLabelModule,
|
|
229
|
+
CuiSvgModule,
|
|
230
|
+
FormsModule,
|
|
231
|
+
MarkerSelectComponent,
|
|
232
|
+
ReactiveFormsModule,
|
|
233
|
+
TranslocoDirective,
|
|
234
|
+
NgIf
|
|
235
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [CuiClickOutsideDirective], template: "<ng-container *transloco=\"let t\">\r\n <ng-container *ngIf=\"isVisible()\">\r\n <form\r\n autocomplete=\"off\"\r\n class=\"wrapper\"\r\n >\r\n <cui-form-field>\r\n <!-- eslint-disable-next-line -->\r\n <label\r\n [for]=\"titleId\"\r\n cuiLabel\r\n [isRequired]=\"true\"\r\n (click)=\"onTitleLabelClick(titleElement)\"\r\n >\r\n {{ t('TITLE') }}\r\n </label>\r\n <!-- TODO: \u0435\u0441\u043B\u0438 \u043D\u0430\u0439\u0434\u0435\u0442\u0441\u044F \u0432\u0430\u0440\u0438\u043A \u0441\u0434\u0435\u043B\u0430\u0442\u044C \u0447\u0435\u0440\u0435\u0437 \u0444\u043E\u0440\u043C\u0443 -->\r\n <div\r\n class=\"title\"\r\n [class.title_invalid]=\"isTitleInvalid()\"\r\n >\r\n <div\r\n #titleElement\r\n class=\"title__text\"\r\n contenteditable\r\n attr.data-placeholder=\"{{ t('TITLE') }}...\"\r\n (paste)=\"onTitlePaste($event)\"\r\n (keyup)=\"onTitleChange($event)\"\r\n [innerHTML]=\"startTitle\"\r\n ></div>\r\n <button\r\n type=\"button\"\r\n class=\"title__clear\"\r\n (click)=\"onClearTitle(titleElement)\"\r\n >\r\n <cui-svg\r\n icon=\"cuiIconClear\"\r\n color=\"var(--cui-base-300)\"\r\n class=\"title__icon\"\r\n />\r\n </button>\r\n </div>\r\n\r\n <cui-hint *ngIf=\"isTitleInvalid()\" hintType=\"error\">\r\n <ng-container *ngIf=\"isTitleEmpty()\">\r\n {{ t('FIELD_IS_REQUIRED') }}\r\n </ng-container>\r\n <ng-container *ngIf=\"isTitleMoreThanMaxLength()\">\r\n {{ t('PLEASE_KEEP_FIELD_UNDER_CHARACTERS') }}\r\n </ng-container>\r\n </cui-hint>\r\n </cui-form-field>\r\n <cui-form-field>\r\n <label\r\n [for]=\"dataId\"\r\n cuiLabel\r\n [isRequired]=\"true\"\r\n >\r\n {{ isTool ? t('TOOL') : t('URL') }}\r\n </label>\r\n <ng-container *ngIf=\"dynamicDataControl\">\r\n <ng-container *ngIf=\"isTool; else input\">\r\n <div>\r\n <button\r\n #target=\"elementRef\"\r\n class=\"button tool-button\"\r\n cuiButton\r\n type=\"button\"\r\n cuiElement\r\n appearance=\"outlined-gray\"\r\n size=\"sm\"\r\n >\r\n {{ $any(dynamicDataControl.value)?.title || t('SELECT_TOOL') }}\r\n </button>\r\n </div>\r\n <cc-marker-select\r\n [formControl]=\"dynamicDataControl\"\r\n [target]=\"target.nativeElement\"\r\n />\r\n </ng-container>\r\n <ng-template #input>\r\n <cui-input-text\r\n [cuiTextFieldId]=\"dataId\"\r\n [formControl]=\"dynamicDataControl\"\r\n autocomplete=\"off\"\r\n [cuiTextFieldIsError]=\"isDynamicDataErrorShown\"\r\n cuiTextFieldPlaceholder=\"{{ t('LINK') }}...\"\r\n />\r\n <cui-hint *ngIf=\"isDynamicDataErrorShown\" hintType=\"error\">\r\n <ng-container *ngIf=\"dynamicDataControl.errors?.['required']\">\r\n {{ t('FIELD_IS_REQUIRED') }}\r\n </ng-container>\r\n <ng-container *ngIf=\"dynamicDataControl.errors?.['url']\">\r\n {{ t('INVALID_URL') }}\r\n </ng-container>\r\n </cui-hint>\r\n </ng-template>\r\n </ng-container>\r\n </cui-form-field>\r\n <div class=\"buttons\">\r\n <button\r\n cuiButton\r\n type=\"button\"\r\n appearance=\"outlined-gray\"\r\n size=\"sm\"\r\n (click)=\"onCancel()\"\r\n >\r\n {{ t('CANCEL') }}\r\n </button>\r\n <button\r\n cuiButton\r\n type=\"submit\"\r\n appearance=\"action\"\r\n size=\"sm\"\r\n [disabled]=\"isFormInvalid\"\r\n (click)=\"onSave()\"\r\n >\r\n {{ t('SAVE') }}\r\n </button>\r\n </div>\r\n </form>\r\n </ng-container>\r\n</ng-container>\r\n\r\n", styles: [":host{position:absolute;z-index:1;left:0}:host._fixed{position:fixed}:host._hidden{position:fixed;visibility:hidden}:host ::ng-deep .tool-button{width:100%}:host ::ng-deep .tool-button>span{justify-content:flex-start!important}.wrapper{padding:11px;box-shadow:0 2px 4px -1px #0000000f,0 4px 6px -1px #0000001a;display:flex;flex-direction:column;gap:16px;border-radius:8px;border:1px solid var(--cui-base-200);max-width:450px;background-color:var(--cui-base-0)}.buttons{padding-top:12px;display:flex;justify-content:flex-end;gap:12px}.title{padding:7px 13px;cursor:text;display:flex;align-items:center;gap:8px;border:1px solid var(--cui-base-200);border-radius:8px;width:426px;background:var(--cui-input);color:var(--cui-base-900)}.title:hover{border-color:var(--cui-base-300)}.title:focus-within{outline:none;box-shadow:0 0 0 2px var(--cui-focus);border-color:var(--cui-info)}.title_invalid,.title_invalid:focus-within{box-shadow:none;border-color:var(--cui-danger)}.title__text{flex-grow:1;text-wrap:nowrap;overflow:hidden}.title__text[data-placeholder]:empty:before{content:attr(data-placeholder);position:absolute;color:var(--cui-base-400)}.title__text:focus{outline:none}.title__clear{padding:0;visibility:hidden}.title__icon{width:16px}.title__icon ::ng-deep [stroke]{stroke:var(--cui-base-0)}.title__text:not(:empty)+.title__clear{visibility:visible}\n"] }]
|
|
236
|
+
}], propDecorators: { title: [{
|
|
237
|
+
type: Input
|
|
238
|
+
}], url: [{
|
|
239
|
+
type: Input
|
|
240
|
+
}], tool: [{
|
|
241
|
+
type: Input
|
|
242
|
+
}], isGlobal: [{
|
|
243
|
+
type: Input
|
|
244
|
+
}], isTool: [{
|
|
245
|
+
type: Input
|
|
246
|
+
}], target: [{
|
|
247
|
+
type: Input
|
|
248
|
+
}], space: [{
|
|
249
|
+
type: Input
|
|
250
|
+
}], saveClicked: [{
|
|
251
|
+
type: Output
|
|
252
|
+
}], cancelClicked: [{
|
|
253
|
+
type: Output
|
|
254
|
+
}], hide: [{
|
|
255
|
+
type: HostBinding,
|
|
256
|
+
args: ['class._hidden']
|
|
257
|
+
}], fixed: [{
|
|
258
|
+
type: HostBinding,
|
|
259
|
+
args: ['class._fixed']
|
|
260
|
+
}] } });
|
|
261
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2VyLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvZWRpdG9yL2NvbXBvbmVudHMvbWFya2VyLW1vZGFsL21hcmtlci1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2VkaXRvci9jb21wb25lbnRzL21hcmtlci1tb2RhbC9tYXJrZXItbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUNMLE1BQU0sRUFDTixRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzNGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFDSCxlQUFlLEVBQ2Ysa0JBQWtCLEVBQ2xCLGFBQWEsRUFDYixjQUFjLEVBQ2QsY0FBYyxFQUNkLFlBQVksRUFDZixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FB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QUFNLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQztJQUM1RSxDQUFDOytHQTdRUSxvQkFBb0I7bUdBQXBCLG9CQUFvQixxYUMxRGpDLDQzSkE0SEEsdTRDRHBGUSxlQUFlLDJOQUNmLG1CQUFtQixrRkFDbkIsa0JBQWtCLGlIQUNsQixhQUFhLDRIQUNiLGNBQWMsb2ZBQ2QsY0FBYyxzSUFDZCxZQUFZLHdLQUNaLFdBQVcsb2tCQUNYLHFCQUFxQix5RkFDckIsbUJBQW1CLG1OQUNuQixrQkFBa0IsZ01BQ2xCLElBQUk7OzRGQU9DLG9CQUFvQjtrQkFyQmhDLFNBQVM7aUNBQ00sSUFBSSxXQUNQO3dCQUNMLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxjQUFjO3dCQUNkLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxxQkFBcUI7d0JBQ3JCLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixJQUFJO3FCQUNQLG1CQUdnQix1QkFBdUIsQ0FBQyxNQUFNLGtCQUMvQixDQUFDLHdCQUF3QixDQUFDOzhCQXdCL0IsS0FBSztzQkFEZixLQUFLO2dCQU9LLEdBQUc7c0JBRGIsS0FBSztnQkFTSyxJQUFJO3NCQURkLEtBQUs7Z0JBVUMsUUFBUTtzQkFEZCxLQUFLO2dCQUlDLE1BQU07c0JBRFosS0FBSztnQkFJQyxNQUFNO3NCQURaLEtBQUs7Z0JBSUssS0FBSztzQkFEZixLQUFLO2dCQU1DLFdBQVc7c0JBRGpCLE1BQU07Z0JBSUEsYUFBYTtzQkFEbkIsTUFBTTtnQkEwQk8sSUFBSTtzQkFEakIsV0FBVzt1QkFBQyxlQUFlO2dCQU1kLEtBQUs7c0JBRGxCLFdBQVc7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5ULCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHR5cGUgeyBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBEZXN0cm95UmVmLFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIEhvc3RCaW5kaW5nLFxyXG4gICAgSW5wdXQsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBjb21wdXRlZCxcclxuICAgIGluamVjdCxcclxuICAgIHNpZ25hbFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ3VpQ2xpY2tPdXRzaWRlRGlyZWN0aXZlLCBDdWlFbGVtZW50RGlyZWN0aXZlLCBDdWlJZFNlcnZpY2UgfSBmcm9tICdAY3VieS11aS9jZGsnO1xyXG5pbXBvcnQgeyBUcmFuc2xvY29EaXJlY3RpdmUgfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nO1xyXG5pbXBvcnQge1xyXG4gICAgQ3VpQnV0dG9uTW9kdWxlLFxyXG4gICAgQ3VpRm9ybUZpZWxkTW9kdWxlLFxyXG4gICAgQ3VpSGludE1vZHVsZSxcclxuICAgIEN1aUlucHV0TW9kdWxlLFxyXG4gICAgQ3VpTGFiZWxNb2R1bGUsXHJcbiAgICBDdWlTdmdNb2R1bGVcclxufSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzJztcclxuXHJcbmltcG9ydCB7IHVybFZhbGlkYXRvciB9IGZyb20gJy4uLy4uL3V0aWxzL3VybC52YWxpZGF0b3InO1xyXG5cclxuaW1wb3J0IHsgRURJVE9SX1NFTEVDVE9SIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcclxuaW1wb3J0IHsgQ3VpTWFya2Vyc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB0eXBlIHsgVG9vbCB9IGZyb20gJy4uL2VkaXRvci10b29sLW1vZGFsJztcclxuaW1wb3J0IHsgTWFya2VyU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi4vbWFya2VyLXNlbGVjdCc7XHJcblxyXG5pbXBvcnQgdHlwZSB7IE1hcmtlckRhdGEsIE1hcmtlckRhdGFDb250cm9sIH0gZnJvbSAnLi9tYXJrZXItbW9kYWwuaW50ZXJmYWNlcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgQ3VpQnV0dG9uTW9kdWxlLFxyXG4gICAgICAgIEN1aUVsZW1lbnREaXJlY3RpdmUsXHJcbiAgICAgICAgQ3VpRm9ybUZpZWxkTW9kdWxlLFxyXG4gICAgICAgIEN1aUhpbnRNb2R1bGUsXHJcbiAgICAgICAgQ3VpSW5wdXRNb2R1bGUsXHJcbiAgICAgICAgQ3VpTGFiZWxNb2R1bGUsXHJcbiAgICAgICAgQ3VpU3ZnTW9kdWxlLFxyXG4gICAgICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgICAgIE1hcmtlclNlbGVjdENvbXBvbmVudCxcclxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgICAgIFRyYW5zbG9jb0RpcmVjdGl2ZSxcclxuICAgICAgICBOZ0lmXHJcbiAgICBdLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL21hcmtlci1tb2RhbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9tYXJrZXItbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtDdWlDbGlja091dHNpZGVEaXJlY3RpdmVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYXJrZXJNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdChFbGVtZW50UmVmKS5uYXRpdmVFbGVtZW50O1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGN1aUNsaWNrT3V0c2lkZURpcmVjdGl2ZSA9IGluamVjdChDdWlDbGlja091dHNpZGVEaXJlY3RpdmUsIHsgc2VsZjogdHJ1ZSB9KTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY3VpSWRTZXJ2aWNlID0gaW5qZWN0KEN1aUlkU2VydmljZSk7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1hcmtlcnNTZXJ2aWNlID0gaW5qZWN0KEN1aU1hcmtlcnNTZXJ2aWNlKTtcclxuXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgVElUTEVfTUFYX0xFTkdUSCA9IDEwMDtcclxuXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZm9ybVRpdGxlID0gc2lnbmFsKCcnKTtcclxuICAgIHByb3RlY3RlZCByZWFkb25seSBpc1RpdGxlRW1wdHkgPSBjb21wdXRlZCgoKSA9PiAhdGhpcy5mb3JtVGl0bGUoKS5sZW5ndGgpO1xyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzVGl0bGVNb3JlVGhhbk1heExlbmd0aCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZm9ybVRpdGxlKCkubGVuZ3RoID4gdGhpcy5USVRMRV9NQVhfTEVOR1RIKTtcclxuICAgIHByb3RlY3RlZCByZWFkb25seSBpc1RpdGxlSW52YWxpZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuaXNUaXRsZUVtcHR5KCkgfHwgdGhpcy5pc1RpdGxlTW9yZVRoYW5NYXhMZW5ndGgoKSk7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGl0bGVJZCA9IHRoaXMuY3VpSWRTZXJ2aWNlLmdlbmVyYXRlKCk7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGF0YUlkID0gdGhpcy5jdWlJZFNlcnZpY2UuZ2VuZXJhdGUoKTtcclxuXHJcbiAgICBwcm90ZWN0ZWQgZHluYW1pY0RhdGFDb250cm9sITogTWFya2VyRGF0YUNvbnRyb2w7XHJcbiAgICBwcm90ZWN0ZWQgc3BhY2VCZXR3ZWVuVGFyZ2V0QW5kTGlzdCA9IDU7XHJcbiAgICBwcm90ZWN0ZWQgc3RhcnRUaXRsZSA9ICcnO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IHRpdGxlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLnN0YXJ0VGl0bGUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmZvcm1UaXRsZS5zZXQodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IHVybCh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5keW5hbWljRGF0YUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2wodmFsdWUsIHtcclxuICAgICAgICAgICAgbm9uTnVsbGFibGU6IHRydWUsXHJcbiAgICAgICAgICAgIHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkLCB1cmxWYWxpZGF0b3IoKV1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCB0b29sKHZhbHVlOiBUb29sKSB7XHJcbiAgICAgICAgY29uc3QgdG9vbCA9IHRoaXMubWFya2Vyc1NlcnZpY2UuZ2V0TWFya2VyT2JqZWN0QnlUeXBlKHZhbHVlLnR5cGUhLCB2YWx1ZS5pZCk7XHJcbiAgICAgICAgdGhpcy5keW5hbWljRGF0YUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2wodG9vbCwge1xyXG4gICAgICAgICAgICBub25OdWxsYWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgdmFsaWRhdG9yczogW1ZhbGlkYXRvcnMucmVxdWlyZWRdXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBpc0dsb2JhbCA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgaXNUb29sID0gZmFsc2U7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyB0YXJnZXQhOiBIVE1MQnV0dG9uRWxlbWVudDtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCBzcGFjZSh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5zcGFjZUJldHdlZW5UYXJnZXRBbmRMaXN0ID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgc2F2ZUNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE1hcmtlckRhdGE+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgY2FuY2VsQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgICBwcm90ZWN0ZWQgaXNWaXNpYmxlID0gc2lnbmFsKGZhbHNlKTtcclxuICAgIHByb3RlY3RlZCBpc0hpZGRlbiA9IHNpZ25hbCh0cnVlKTtcclxuICAgIHByb3RlY3RlZCBlZGl0b3IhOiBIVE1MRWxlbWVudDtcclxuICAgIHByb3RlY3RlZCBjdXJyZW50VG9vbD86IFRvb2w7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGFyZ2V0VG9nZ2xlRXZlbnRMaXN0ZW5lciA9ICgpOiB2b2lkID0+IHtcclxuICAgICAgICB0aGlzLmlzVmlzaWJsZS51cGRhdGUoKHByZXYpID0+ICFwcmV2KTtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLmlzVmlzaWJsZSgpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuY2FsY3VsYXRlRHJvcGRvd25Qb3NpdGlvbigpO1xyXG4gICAgfTtcclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0IGlzRm9ybUludmFsaWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZHluYW1pY0RhdGFDb250cm9sLmludmFsaWQgfHwgdGhpcy5pc1RpdGxlSW52YWxpZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBnZXQgaXNEeW5hbWljRGF0YUVycm9yU2hvd24oKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZHluYW1pY0RhdGFDb250cm9sLmludmFsaWQgJiYgdGhpcy5keW5hbWljRGF0YUNvbnRyb2wuZGlydHk7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5faGlkZGVuJylcclxuICAgIHByb3RlY3RlZCBnZXQgaGlkZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pc0hpZGRlbigpO1xyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuX2ZpeGVkJylcclxuICAgIHByb3RlY3RlZCBnZXQgZml4ZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNHbG9iYWw7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaW5pdFRhcmdldEVsZW1lbnRMaXN0ZW5lcigpO1xyXG4gICAgICAgIHRoaXMuaW5pdENsaWNrT3V0c2lkZVN1YnNjcmlwdGlvbigpO1xyXG4gICAgICAgIHRoaXMuaW5pdE9uQ2xvc2VXaGVuRWRpdG9yU2Nyb2xsKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZGVzdHJveUV2ZW50TGlzdGVuZXJzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIG9uVGl0bGVMYWJlbENsaWNrKGVsZW1lbnQ6IEhUTUxEaXZFbGVtZW50KTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgcmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpO1xyXG4gICAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcclxuXHJcbiAgICAgICAgcmFuZ2Uuc2VsZWN0Tm9kZUNvbnRlbnRzKGVsZW1lbnQpO1xyXG4gICAgICAgIHJhbmdlLmNvbGxhcHNlKGZhbHNlKTtcclxuICAgICAgICBzZWxlY3Rpb24/LnJlbW92ZUFsbFJhbmdlcygpO1xyXG4gICAgICAgIHNlbGVjdGlvbj8uYWRkUmFuZ2UocmFuZ2UpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBvblNhdmUoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNGb3JtSW52YWxpZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmlzVmlzaWJsZS5zZXQoZmFsc2UpO1xyXG4gICAgICAgIHRoaXMuc2F2ZUNsaWNrZWQuZW1pdCh7IHRpdGxlOiB0aGlzLmZvcm1UaXRsZSgpLCBkYXRhOiB0aGlzLmR5bmFtaWNEYXRhQ29udHJvbC52YWx1ZSB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgb25TY3JvbGwoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pc1Zpc2libGUuc2V0KGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgb25DYW5jZWwoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pc1Zpc2libGUuc2V0KGZhbHNlKTtcclxuICAgICAgICB0aGlzLmNhbmNlbENsaWNrZWQuZW1pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBvbkNsZWFyVGl0bGUodGl0bGVFbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZm9ybVRpdGxlLnNldCgnJyk7XHJcblxyXG4gICAgICAgIHRpdGxlRWxlbWVudC50ZXh0Q29udGVudCA9ICcnO1xyXG4gICAgICAgIHRpdGxlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBvblRpdGxlQ2hhbmdlKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0YXJnZXQudGV4dENvbnRlbnQhO1xyXG5cclxuICAgICAgICB0aGlzLmZvcm1UaXRsZS5zZXQodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBhc3luYyBvblRpdGxlUGFzdGUoZXZlbnQ6IEV2ZW50KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLmRvY3VtZW50KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHZhbHVlID0gYXdhaXQgd2luZG93Lm5hdmlnYXRvci5jbGlwYm9hcmQucmVhZFRleHQoKTtcclxuICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcblxyXG4gICAgICAgIHRoaXMuZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2luc2VydFRleHQnLCBmYWxzZSwgdmFsdWUpO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5mb3JtVGl0bGUuc2V0KHRhcmdldC50ZXh0Q29udGVudCEpKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGluaXRUYXJnZXRFbGVtZW50TGlzdGVuZXIoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy50YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLnRhcmdldFRvZ2dsZUV2ZW50TGlzdGVuZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaW5pdENsaWNrT3V0c2lkZVN1YnNjcmlwdGlvbigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmN1aUNsaWNrT3V0c2lkZURpcmVjdGl2ZS5jdWlDbGlja091dHNpZGUucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKCh0YXJnZXQpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuZWxlbWVudC5jb250YWlucyh0YXJnZXQpIHx8IHRoaXMudGFyZ2V0LmNvbnRhaW5zKHRhcmdldCkgfHwgIXRoaXMuaXNWaXNpYmxlKCkpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5pc1Zpc2libGUuc2V0KGZhbHNlKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGluaXRPbkNsb3NlV2hlbkVkaXRvclNjcm9sbCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmVkaXRvciA9IHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3RvcihFRElUT1JfU0VMRUNUT1IpIGFzIEhUTUxFbGVtZW50O1xyXG5cclxuICAgICAgICB0aGlzLmVkaXRvci5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLm9uU2Nyb2xsLmJpbmQodGhpcykpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZGVzdHJveUV2ZW50TGlzdGVuZXJzKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZWRpdG9yLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25TY3JvbGwuYmluZCh0aGlzKSk7XHJcbiAgICAgICAgdGhpcy50YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLnRhcmdldFRvZ2dsZUV2ZW50TGlzdGVuZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY2FsY3VsYXRlRHJvcGRvd25Qb3NpdGlvbigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmlzSGlkZGVuLnNldCh0cnVlKTtcclxuXHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IHRoaXMudGFyZ2V0O1xyXG4gICAgICAgICAgICBjb25zdCB7IGJvdHRvbTogdGFyZ2V0UmVjdEJvdHRvbSwgbGVmdDogdGFyZ2V0UmVjdExlZnQgfSA9IHRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgICAgICAgY29uc3QgeyBjbGllbnRIZWlnaHQ6IGRvY3VtZW50Q2xpZW50SGVpZ2h0LCBjbGllbnRXaWR0aDogZG9jdW1lbnRDbGllbnRXaWR0aCB9ID1cclxuICAgICAgICAgICAgICAgIHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xyXG4gICAgICAgICAgICBjb25zdCBkaXN0YW5jZVRvQm90dG9tID0gZG9jdW1lbnRDbGllbnRIZWlnaHQgLSAodGFyZ2V0UmVjdEJvdHRvbSArIHRoaXMuc3BhY2VCZXR3ZWVuVGFyZ2V0QW5kTGlzdCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGRpc3RhbmNlVG9SaWdodCA9IGRvY3VtZW50Q2xpZW50V2lkdGggLSB0YXJnZXRSZWN0TGVmdDtcclxuICAgICAgICAgICAgY29uc3QgaXNMaXN0UmlnaHQgPSBkaXN0YW5jZVRvUmlnaHQgPCB0aGlzLmVsZW1lbnQub2Zmc2V0V2lkdGg7XHJcbiAgICAgICAgICAgIGNvbnN0IGlzTGlzdEFib3ZlID0gZGlzdGFuY2VUb0JvdHRvbSA8IHRoaXMuZWxlbWVudC5vZmZzZXRIZWlnaHQ7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmNoYW5nZVBvc2l0aW9uWShpc0xpc3RBYm92ZSwgdGFyZ2V0Lm9mZnNldEhlaWdodCwgdGFyZ2V0UmVjdEJvdHRvbSk7XHJcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlUG9zaXRpb25YKGlzTGlzdFJpZ2h0LCB0YXJnZXQub2Zmc2V0V2lkdGgsIHRhcmdldFJlY3RMZWZ0KTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuaXNIaWRkZW4uc2V0KGZhbHNlKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNoYW5nZVBvc2l0aW9uWChpc0xpc3RSaWdodDogYm9vbGVhbiwgd2lkdGg6IG51bWJlciwgbGVmdDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNHbG9iYWwpIHtcclxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VHbG9iYWxQb3NpdGlvblgoaXNMaXN0UmlnaHQsIHdpZHRoLCBsZWZ0KTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChpc0xpc3RSaWdodCkge1xyXG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQuc3R5bGUucmlnaHQgPSAnMCc7XHJcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS5sZWZ0ID0gJ2F1dG8nO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLnJpZ2h0ID0gJ2F1dG8nO1xyXG4gICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS5sZWZ0ID0gJzAnO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY2hhbmdlUG9zaXRpb25ZKGlzTGlzdEFib3ZlOiBib29sZWFuLCBoZWlnaHQ6IG51bWJlciwgYm90dG9tOiBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5pc0dsb2JhbCkge1xyXG4gICAgICAgICAgICB0aGlzLmNoYW5nZUdsb2JhbFBvc2l0aW9uWShpc0xpc3RBYm92ZSwgaGVpZ2h0LCBib3R0b20pO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGlzTGlzdEFib3ZlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS5ib3R0b20gPSBoZWlnaHQgKyB0aGlzLnNwYWNlQmV0d2VlblRhcmdldEFuZExpc3QgKyAncHgnO1xyXG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQuc3R5bGUudG9wID0gJ2F1dG8nO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLnRvcCA9IGhlaWdodCArIHRoaXMuc3BhY2VCZXR3ZWVuVGFyZ2V0QW5kTGlzdCArICdweCc7XHJcbiAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLmJvdHRvbSA9ICdhdXRvJztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNoYW5nZUdsb2JhbFBvc2l0aW9uWChpc0xpc3RSaWdodDogYm9vbGVhbiwgd2lkdGg6IG51bWJlciwgbGVmdDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKGlzTGlzdFJpZ2h0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS5sZWZ0ID0gbGVmdCAtIHRoaXMuZWxlbWVudC5vZmZzZXRXaWR0aCArIHdpZHRoICsgJ3B4JztcclxuXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS5sZWZ0ID0gbGVmdCArICdweCc7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjaGFuZ2VHbG9iYWxQb3NpdGlvblkoaXNMaXN0QWJvdmU6IGJvb2xlYW4sIGhlaWdodDogbnVtYmVyLCBib3R0b206IG51bWJlcik6IHZvaWQge1xyXG4gICAgICAgIGlmIChpc0xpc3RBYm92ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQuc3R5bGUudG9wID1cclxuICAgICAgICAgICAgICAgIGJvdHRvbSAtIHRoaXMuZWxlbWVudC5vZmZzZXRIZWlnaHQgLSBoZWlnaHQgLSB0aGlzLnNwYWNlQmV0d2VlblRhcmdldEFuZExpc3QgKyAncHgnO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLnRvcCA9IGJvdHRvbSArIHRoaXMuc3BhY2VCZXR3ZWVuVGFyZ2V0QW5kTGlzdCArICdweCc7XHJcbiAgICB9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqdHJhbnNsb2NvPVwibGV0IHRcIj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNWaXNpYmxlKClcIj5cclxuICAgIDxmb3JtXHJcbiAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICBjbGFzcz1cIndyYXBwZXJcIlxyXG4gICAgPlxyXG4gICAgICAgIDxjdWktZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgPCEtLSBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgLS0+XHJcbiAgICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICAgICAgW2Zvcl09XCJ0aXRsZUlkXCJcclxuICAgICAgICAgICAgICAgIGN1aUxhYmVsXHJcbiAgICAgICAgICAgICAgICBbaXNSZXF1aXJlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblRpdGxlTGFiZWxDbGljayh0aXRsZUVsZW1lbnQpXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAge3sgdCgnVElUTEUnKSB9fVxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICA8IS0tIFRPRE86INC10YHQu9C4INC90LDQudC00LXRgtGB0Y8g0LLQsNGA0LjQuiDRgdC00LXQu9Cw0YLRjCDRh9C10YDQtdC3INGE0L7RgNC80YMgLS0+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGl0bGVcIlxyXG4gICAgICAgICAgICAgICAgW2NsYXNzLnRpdGxlX2ludmFsaWRdPVwiaXNUaXRsZUludmFsaWQoKVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAjdGl0bGVFbGVtZW50XHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0aXRsZV9fdGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgY29udGVudGVkaXRhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgYXR0ci5kYXRhLXBsYWNlaG9sZGVyPVwie3sgdCgnVElUTEUnKSB9fS4uLlwiXHJcbiAgICAgICAgICAgICAgICAgICAgKHBhc3RlKT1cIm9uVGl0bGVQYXN0ZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAoa2V5dXApPVwib25UaXRsZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cInN0YXJ0VGl0bGVcIlxyXG4gICAgICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGl0bGVfX2NsZWFyXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25DbGVhclRpdGxlKHRpdGxlRWxlbWVudClcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjdWktc3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb249XCJjdWlJY29uQ2xlYXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInZhcigtLWN1aS1iYXNlLTMwMClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRpdGxlX19pY29uXCJcclxuICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGN1aS1oaW50ICpuZ0lmPVwiaXNUaXRsZUludmFsaWQoKVwiIGhpbnRUeXBlPVwiZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1RpdGxlRW1wdHkoKVwiPlxyXG4gICAgICAgICAgICAgICAgICB7eyB0KCdGSUVMRF9JU19SRVFVSVJFRCcpIH19XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1RpdGxlTW9yZVRoYW5NYXhMZW5ndGgoKVwiPlxyXG4gICAgICAgICAgICAgICAgICB7eyB0KCdQTEVBU0VfS0VFUF9GSUVMRF9VTkRFUl9DSEFSQUNURVJTJykgfX1cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2N1aS1oaW50PlxyXG4gICAgICAgIDwvY3VpLWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPGN1aS1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICAgIFtmb3JdPVwiZGF0YUlkXCJcclxuICAgICAgICAgICAgICAgIGN1aUxhYmVsXHJcbiAgICAgICAgICAgICAgICBbaXNSZXF1aXJlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAge3sgaXNUb29sID8gdCgnVE9PTCcpIDogdCgnVVJMJykgfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImR5bmFtaWNEYXRhQ29udHJvbFwiPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1Rvb2w7IGVsc2UgaW5wdXRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAjdGFyZ2V0PVwiZWxlbWVudFJlZlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnV0dG9uIHRvb2wtYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY3VpQnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjdWlFbGVtZW50XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJvdXRsaW5lZC1ncmF5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtXCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ICRhbnkoZHluYW1pY0RhdGFDb250cm9sLnZhbHVlKT8udGl0bGUgfHwgdCgnU0VMRUNUX1RPT0wnKSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8Y2MtbWFya2VyLXNlbGVjdFxyXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJkeW5hbWljRGF0YUNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0YXJnZXRdPVwidGFyZ2V0Lm5hdGl2ZUVsZW1lbnRcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2lucHV0PlxyXG4gICAgICAgICAgICAgICAgPGN1aS1pbnB1dC10ZXh0XHJcbiAgICAgICAgICAgICAgICAgICAgW2N1aVRleHRGaWVsZElkXT1cImRhdGFJZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImR5bmFtaWNEYXRhQ29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICAgICAgICAgICAgICBbY3VpVGV4dEZpZWxkSXNFcnJvcl09XCJpc0R5bmFtaWNEYXRhRXJyb3JTaG93blwiXHJcbiAgICAgICAgICAgICAgICAgICAgY3VpVGV4dEZpZWxkUGxhY2Vob2xkZXI9XCJ7eyB0KCdMSU5LJykgfX0uLi5cIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgIDxjdWktaGludCAqbmdJZj1cImlzRHluYW1pY0RhdGFFcnJvclNob3duXCIgaGludFR5cGU9XCJlcnJvclwiPlxyXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZHluYW1pY0RhdGFDb250cm9sLmVycm9ycz8uWydyZXF1aXJlZCddXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgdCgnRklFTERfSVNfUkVRVUlSRUQnKSB9fVxyXG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImR5bmFtaWNEYXRhQ29udHJvbC5lcnJvcnM/LlsndXJsJ11cIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyB0KCdJTlZBTElEX1VSTCcpIH19XHJcbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9jdWktaGludD5cclxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2N1aS1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b25zXCI+XHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIGN1aUJ1dHRvblxyXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICBhcHBlYXJhbmNlPVwib3V0bGluZWQtZ3JheVwiXHJcbiAgICAgICAgICAgICAgICBzaXplPVwic21cIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2FuY2VsKClcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICB7eyB0KCdDQU5DRUwnKSB9fVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgY3VpQnV0dG9uXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwic3VibWl0XCJcclxuICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJhY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtXCJcclxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0Zvcm1JbnZhbGlkXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNhdmUoKVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIHt7IHQoJ1NBVkUnKSB9fVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZm9ybT5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9uZy1jb250YWluZXI+XHJcblxyXG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2VyLW1vZGFsLmludGVyZmFjZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2VkaXRvci9jb21wb25lbnRzL21hcmtlci1tb2RhbC9tYXJrZXItbW9kYWwuaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB0eXBlIHsgVG9vbCB9IGZyb20gJy4uL2VkaXRvci10b29sLW1vZGFsL2VkaXRvci10b29sLW1vZGFsLm9wdGlvbnMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBNYXJrZXJEYXRhIHtcclxuICByZWFkb25seSB0aXRsZTogc3RyaW5nO1xyXG4gIHJlYWRvbmx5IGRhdGE/OiBzdHJpbmcgfCBUb29sO1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBNYXJrZXJEYXRhQ29udHJvbCA9IEZvcm1Db250cm9sPHN0cmluZz4gfCBGb3JtQ29udHJvbDxUb29sIHwgdW5kZWZpbmVkPjtcclxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export const MARKER_MODAL_SELECTOR = 'cc-marker-modal';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2VyLW1vZGFsLm9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2VkaXRvci9jb21wb25lbnRzL21hcmtlci1tb2RhbC9tYXJrZXItbW9kYWwub3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBNQVJLRVJfTU9EQUxfU0VMRUNUT1IgPSAnY2MtbWFya2VyLW1vZGFsJztcclxuIl19
|
package/esm2022/editor/components/marker-select/component/select-item/select-option.component.mjs
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
+
import { NgIf } from '@angular/common';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class SelectOptionComponent {
|
|
5
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectOptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SelectOptionComponent, isStandalone: true, selector: "cc-select-option", inputs: { tool: "tool" }, ngImport: i0, template: "<ng-container *ngIf=\"tool\">\r\n <img\r\n *ngIf=\"tool.image\"\r\n class=\"image\"\r\n [src]=\"tool.image\"\r\n alt=\"\"\r\n />\r\n <h3 class=\"title\">{{ tool.title }}</h3>\r\n</ng-container>\r\n", styles: [":host{padding:4px 8px;cursor:pointer;display:flex;align-items:center;gap:8px;border-radius:8px}@media (hover: hover){:host:hover{background-color:var(--cui-base-50)}}:host:active{background-color:var(--cui-base-50)}.title{font-weight:400;font-size:14px;line-height:20px;padding-top:2px;padding-bottom:2px;color:var(--cui-base-900)}.image{width:23px;height:23px;object-fit:cover;object-position:center}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
7
|
+
}
|
|
8
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectOptionComponent, decorators: [{
|
|
9
|
+
type: Component,
|
|
10
|
+
args: [{ selector: 'cc-select-option', standalone: true, imports: [NgIf], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"tool\">\r\n <img\r\n *ngIf=\"tool.image\"\r\n class=\"image\"\r\n [src]=\"tool.image\"\r\n alt=\"\"\r\n />\r\n <h3 class=\"title\">{{ tool.title }}</h3>\r\n</ng-container>\r\n", styles: [":host{padding:4px 8px;cursor:pointer;display:flex;align-items:center;gap:8px;border-radius:8px}@media (hover: hover){:host:hover{background-color:var(--cui-base-50)}}:host:active{background-color:var(--cui-base-50)}.title{font-weight:400;font-size:14px;line-height:20px;padding-top:2px;padding-bottom:2px;color:var(--cui-base-900)}.image{width:23px;height:23px;object-fit:cover;object-position:center}\n"] }]
|
|
11
|
+
}], propDecorators: { tool: [{
|
|
12
|
+
type: Input,
|
|
13
|
+
args: [{ required: true }]
|
|
14
|
+
}] } });
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LW9wdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2VkaXRvci9jb21wb25lbnRzL21hcmtlci1zZWxlY3QvY29tcG9uZW50L3NlbGVjdC1pdGVtL3NlbGVjdC1vcHRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9lZGl0b3IvY29tcG9uZW50cy9tYXJrZXItc2VsZWN0L2NvbXBvbmVudC9zZWxlY3QtaXRlbS9zZWxlY3Qtb3B0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFZdkMsTUFBTSxPQUFPLHFCQUFxQjsrR0FBckIscUJBQXFCO21HQUFyQixxQkFBcUIsc0dDYmxDLDhOQVNBLDZjRERjLElBQUk7OzRGQUtMLHFCQUFxQjtrQkFSakMsU0FBUzsrQkFDSSxrQkFBa0IsY0FDaEIsSUFBSSxXQUNQLENBQUMsSUFBSSxDQUFDLG1CQUdFLHVCQUF1QixDQUFDLE1BQU07OEJBSXhDLElBQUk7c0JBRFYsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbmltcG9ydCB0eXBlIHsgVG9vbCB9IGZyb20gJy4uLy4uLy4uL2VkaXRvci10b29sLW1vZGFsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdjYy1zZWxlY3Qtb3B0aW9uJyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbTmdJZl0sXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LW9wdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9zZWxlY3Qtb3B0aW9uLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VsZWN0T3B0aW9uQ29tcG9uZW50IHtcclxuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXHJcbiAgICBwdWJsaWMgdG9vbCE6IFRvb2w7XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cInRvb2xcIj5cclxuICA8aW1nXHJcbiAgICAgICpuZ0lmPVwidG9vbC5pbWFnZVwiXHJcbiAgICAgIGNsYXNzPVwiaW1hZ2VcIlxyXG4gICAgICBbc3JjXT1cInRvb2wuaW1hZ2VcIlxyXG4gICAgICBhbHQ9XCJcIlxyXG4gIC8+XHJcbiAgPGgzIGNsYXNzPVwidGl0bGVcIj57eyB0b29sLnRpdGxlIH19PC9oMz5cclxuPC9uZy1jb250YWluZXI+XHJcbiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { MarkerSelectComponent } from './marker-select.component';
|
|
2
|
+
export { MARKER_SELECT_SELECTOR } from './marker-select.options';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2VkaXRvci9jb21wb25lbnRzL21hcmtlci1zZWxlY3QvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBNYXJrZXJTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL21hcmtlci1zZWxlY3QuY29tcG9uZW50JztcclxuZXhwb3J0IHsgTUFSS0VSX1NFTEVDVF9TRUxFQ1RPUiB9IGZyb20gJy4vbWFya2VyLXNlbGVjdC5vcHRpb25zJztcclxuIl19
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { DOCUMENT, NgFor, NgIf } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, DestroyRef, ElementRef, forwardRef, HostBinding, inject, Input, signal } from '@angular/core';
|
|
3
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
|
+
import { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';
|
|
5
|
+
import { CuiClickOutsideDirective } from '@cuby-ui/cdk';
|
|
6
|
+
import { CuiButtonModule, CuiContextMenuModule, CuiInputModule, CuiLabelModule } from '../../../components';
|
|
7
|
+
import { EDITOR_SELECTOR } from '../../constants';
|
|
8
|
+
import { CuiMarkersService } from '../../services/markers.service';
|
|
9
|
+
import { SelectOptionComponent } from './component/select-item/select-option.component';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "@cuby-ui/cdk";
|
|
12
|
+
import * as i2 from "../../../components/button/button.component";
|
|
13
|
+
import * as i3 from "../../../components/input-text/input-text.component";
|
|
14
|
+
import * as i4 from "../../../directives/text-field-controller/text-field-id.directive";
|
|
15
|
+
import * as i5 from "../../../directives/text-field-controller/text-field-placeholder.directive";
|
|
16
|
+
export class MarkerSelectComponent {
|
|
17
|
+
constructor() {
|
|
18
|
+
this.document = inject(DOCUMENT);
|
|
19
|
+
this.destroyRef = inject(DestroyRef);
|
|
20
|
+
this.cuiClickOutsideDirective = inject(CuiClickOutsideDirective, { self: true });
|
|
21
|
+
this.element = inject(ElementRef).nativeElement;
|
|
22
|
+
this.markersService = inject(CuiMarkersService);
|
|
23
|
+
this.SPACE_BETWEEN_TARGET_AND_LIST = 5;
|
|
24
|
+
this.isVisible = signal(false);
|
|
25
|
+
this.isHidden = signal(true);
|
|
26
|
+
// TODO: set current type
|
|
27
|
+
this.elements = this.markersService.getMarkersByType("tool" /* MarkerType.tool */);
|
|
28
|
+
this.targetToggleEventListener = () => {
|
|
29
|
+
this.isVisible.update((prev) => !prev);
|
|
30
|
+
if (!this.isVisible()) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
this.calculateDropdownPosition();
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
set space(value) {
|
|
37
|
+
this.SPACE_BETWEEN_TARGET_AND_LIST = value;
|
|
38
|
+
}
|
|
39
|
+
get hide() {
|
|
40
|
+
return this.isHidden();
|
|
41
|
+
}
|
|
42
|
+
writeValue(value) {
|
|
43
|
+
this.value = value;
|
|
44
|
+
}
|
|
45
|
+
registerOnChange(fn) {
|
|
46
|
+
this.onChange = fn;
|
|
47
|
+
}
|
|
48
|
+
registerOnTouched(fn) {
|
|
49
|
+
this.onTouched = fn;
|
|
50
|
+
}
|
|
51
|
+
onScroll() {
|
|
52
|
+
this.isVisible.set(false);
|
|
53
|
+
}
|
|
54
|
+
ngOnInit() {
|
|
55
|
+
this.initTargetElementListener();
|
|
56
|
+
this.initClickOutsideSubscription();
|
|
57
|
+
this.initOnCloseWhenEditorScroll();
|
|
58
|
+
}
|
|
59
|
+
ngOnDestroy() {
|
|
60
|
+
this.destroyEventListeners();
|
|
61
|
+
}
|
|
62
|
+
onToolClick(tool) {
|
|
63
|
+
this.value = tool;
|
|
64
|
+
this.onChange(this.value);
|
|
65
|
+
this.onTouched();
|
|
66
|
+
// this.isVisible.set(false);
|
|
67
|
+
}
|
|
68
|
+
initTargetElementListener() {
|
|
69
|
+
this.target.addEventListener('click', this.targetToggleEventListener);
|
|
70
|
+
}
|
|
71
|
+
initClickOutsideSubscription() {
|
|
72
|
+
this.cuiClickOutsideDirective.cuiClickOutside.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((target) => {
|
|
73
|
+
if (this.target.contains(target) || !this.isVisible()) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
this.isVisible.set(false);
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
initOnCloseWhenEditorScroll() {
|
|
80
|
+
this.editor = this.element.closest(EDITOR_SELECTOR);
|
|
81
|
+
this.editor?.addEventListener('scroll', this.onScroll.bind(this));
|
|
82
|
+
}
|
|
83
|
+
destroyEventListeners() {
|
|
84
|
+
this.editor?.removeEventListener('scroll', this.onScroll.bind(this));
|
|
85
|
+
this.target?.addEventListener('click', this.targetToggleEventListener);
|
|
86
|
+
}
|
|
87
|
+
calculateDropdownPosition() {
|
|
88
|
+
this.isHidden.set(true);
|
|
89
|
+
setTimeout(() => {
|
|
90
|
+
const target = this.target;
|
|
91
|
+
const { bottom: targetRectBottom, left: targetRectLeft } = target.getBoundingClientRect();
|
|
92
|
+
const { clientHeight: documentClientHeight, clientWidth: documentClientWidth } = this.document.documentElement;
|
|
93
|
+
const distanceToBottom = documentClientHeight - (targetRectBottom + this.SPACE_BETWEEN_TARGET_AND_LIST);
|
|
94
|
+
const distanceToRight = documentClientWidth - targetRectLeft;
|
|
95
|
+
const isListRight = distanceToRight < this.element.offsetWidth;
|
|
96
|
+
const isListAbove = distanceToBottom < this.element.offsetHeight;
|
|
97
|
+
this.changePositionY(isListAbove, target.offsetHeight, targetRectBottom);
|
|
98
|
+
this.changePositionX(isListRight, target.offsetWidth, targetRectLeft);
|
|
99
|
+
this.isHidden.set(false);
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
changePositionX(isListRight, width, left) {
|
|
103
|
+
if (isListRight) {
|
|
104
|
+
this.element.style.right = 'auto';
|
|
105
|
+
this.element.style.left = left;
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
this.element.style.right = left - this.element.offsetWidth + width;
|
|
109
|
+
this.element.style.left = 'auto';
|
|
110
|
+
}
|
|
111
|
+
changePositionY(isListAbove, height, bottom) {
|
|
112
|
+
if (isListAbove) {
|
|
113
|
+
this.element.style.top =
|
|
114
|
+
bottom - this.element.offsetHeight - height - this.SPACE_BETWEEN_TARGET_AND_LIST + 'px';
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
this.element.style.top = bottom + this.SPACE_BETWEEN_TARGET_AND_LIST + 'px';
|
|
118
|
+
}
|
|
119
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MarkerSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
120
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MarkerSelectComponent, isStandalone: true, selector: "cc-marker-select", inputs: { target: "target", space: "space" }, host: { properties: { "class._hidden": "this.hide" } }, providers: [
|
|
121
|
+
{
|
|
122
|
+
provide: NG_VALUE_ACCESSOR,
|
|
123
|
+
useExisting: forwardRef(() => MarkerSelectComponent),
|
|
124
|
+
multi: true
|
|
125
|
+
}
|
|
126
|
+
], hostDirectives: [{ directive: i1.CuiClickOutsideDirective }], ngImport: i0, template: "<ng-container *ngIf=\"isVisible()\">\r\n <div\r\n #dropdown\r\n class=\"dropdown\"\r\n >\r\n <header class=\"header\">\r\n <cui-input-text\r\n class=\"header__input\"\r\n cuiTextFieldId=\"estimated\"\r\n cuiTextFieldPlaceholder=\"Search...\"\r\n />\r\n <button\r\n cuiButton\r\n type=\"button\"\r\n appearance=\"ghost\"\r\n size=\"xxs\"\r\n icon=\"cuiIconFiltersLines\"\r\n ></button>\r\n </header>\r\n <div class=\"scrollable-content\">\r\n <cc-select-option\r\n *ngFor=\"let element of elements\"\r\n [class._selected]=\"element.id === value?.id\"\r\n (click)=\"onToolClick(element)\"\r\n [tool]=\"element\"\r\n />\r\n </div>\r\n </div>\r\n</ng-container>\r\n", styles: [":host{position:fixed;z-index:10;left:0}:host._hidden{visibility:hidden}._selected{background-color:var(--cui-base-50)}.dropdown{box-shadow:0 1px 4px #0000000a,0 1px 4px #0000000a;padding-top:3px;padding-bottom:3px;display:flex;flex-direction:column;gap:4px;border-radius:8px;border:1px solid var(--cui-base-200);max-height:350px;width:345px;background:var(--cui-base-0)}.header{padding:4px 5px;display:flex;align-items:center;gap:4px}.header__input{width:100%}.footer{padding:2px 5px}.title{font-weight:400;font-size:14px;line-height:20px;padding:2px 8px;color:var(--cui-base-500);text-transform:uppercase}.scrollable-content{padding-left:5px;overflow:auto}\n"], dependencies: [{ kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: i2.CuiButtonComponent, selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "size"] }, { kind: "ngmodule", type: CuiContextMenuModule }, { kind: "ngmodule", type: CuiInputModule }, { kind: "component", type: i3.CuiInputTextComponent, selector: "cui-input-text" }, { kind: "directive", type: i4.CuiTextFieldIdDirective, selector: "[cuiTextFieldId]", inputs: ["cuiTextFieldId"] }, { kind: "directive", type: i5.CuiTextFieldPlaceholderDirective, selector: "[cuiTextFieldPlaceholder]", inputs: ["cuiTextFieldPlaceholder"] }, { kind: "ngmodule", type: CuiLabelModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: SelectOptionComponent, selector: "cc-select-option", inputs: ["tool"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
127
|
+
}
|
|
128
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MarkerSelectComponent, decorators: [{
|
|
129
|
+
type: Component,
|
|
130
|
+
args: [{ selector: 'cc-marker-select', imports: [
|
|
131
|
+
CuiButtonModule,
|
|
132
|
+
CuiContextMenuModule,
|
|
133
|
+
CuiInputModule,
|
|
134
|
+
CuiLabelModule,
|
|
135
|
+
FormsModule,
|
|
136
|
+
ReactiveFormsModule,
|
|
137
|
+
SelectOptionComponent,
|
|
138
|
+
NgIf,
|
|
139
|
+
NgFor
|
|
140
|
+
], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [CuiClickOutsideDirective], providers: [
|
|
141
|
+
{
|
|
142
|
+
provide: NG_VALUE_ACCESSOR,
|
|
143
|
+
useExisting: forwardRef(() => MarkerSelectComponent),
|
|
144
|
+
multi: true
|
|
145
|
+
}
|
|
146
|
+
], template: "<ng-container *ngIf=\"isVisible()\">\r\n <div\r\n #dropdown\r\n class=\"dropdown\"\r\n >\r\n <header class=\"header\">\r\n <cui-input-text\r\n class=\"header__input\"\r\n cuiTextFieldId=\"estimated\"\r\n cuiTextFieldPlaceholder=\"Search...\"\r\n />\r\n <button\r\n cuiButton\r\n type=\"button\"\r\n appearance=\"ghost\"\r\n size=\"xxs\"\r\n icon=\"cuiIconFiltersLines\"\r\n ></button>\r\n </header>\r\n <div class=\"scrollable-content\">\r\n <cc-select-option\r\n *ngFor=\"let element of elements\"\r\n [class._selected]=\"element.id === value?.id\"\r\n (click)=\"onToolClick(element)\"\r\n [tool]=\"element\"\r\n />\r\n </div>\r\n </div>\r\n</ng-container>\r\n", styles: [":host{position:fixed;z-index:10;left:0}:host._hidden{visibility:hidden}._selected{background-color:var(--cui-base-50)}.dropdown{box-shadow:0 1px 4px #0000000a,0 1px 4px #0000000a;padding-top:3px;padding-bottom:3px;display:flex;flex-direction:column;gap:4px;border-radius:8px;border:1px solid var(--cui-base-200);max-height:350px;width:345px;background:var(--cui-base-0)}.header{padding:4px 5px;display:flex;align-items:center;gap:4px}.header__input{width:100%}.footer{padding:2px 5px}.title{font-weight:400;font-size:14px;line-height:20px;padding:2px 8px;color:var(--cui-base-500);text-transform:uppercase}.scrollable-content{padding-left:5px;overflow:auto}\n"] }]
|
|
147
|
+
}], propDecorators: { target: [{
|
|
148
|
+
type: Input
|
|
149
|
+
}], space: [{
|
|
150
|
+
type: Input
|
|
151
|
+
}], hide: [{
|
|
152
|
+
type: HostBinding,
|
|
153
|
+
args: ['class._hidden']
|
|
154
|
+
}] } });
|
|
155
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2VyLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2VkaXRvci9jb21wb25lbnRzL21hcmtlci1zZWxlY3QvbWFya2VyLXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2VkaXRvci9jb21wb25lbnRzL21hcmtlci1zZWxlY3QvbWFya2VyLXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV4RCxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUk1RyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFbEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFbkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saURBQWlELENBQUM7Ozs7Ozs7QUE0QnhGLE1BQU0sT0FBTyxxQkFBcUI7SUExQmxDO1FBMkJxQixhQUFRLEdBQUcsTUFBTSxDQUFD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LEdBQUcsTUFBTSxHQUFHLElBQUksQ0FBQyw2QkFBNkIsR0FBRyxJQUFJLENBQUM7SUFDaEYsQ0FBQzsrR0E1SVEscUJBQXFCO21HQUFyQixxQkFBcUIscUtBUm5CO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztnQkFDcEQsS0FBSyxFQUFFLElBQUk7YUFDZDtTQUNKLHdGQ25ETCw4M0JBNkJBLDRzQkRDUSxlQUFlLDBOQUNmLG9CQUFvQiw4QkFDcEIsY0FBYyxrWEFDZCxjQUFjLDhCQUNkLFdBQVcsOEJBQ1gsbUJBQW1CLCtCQUNuQixxQkFBcUIsK0VBQ3JCLElBQUksNkZBQ0osS0FBSzs7NEZBZUEscUJBQXFCO2tCQTFCakMsU0FBUzsrQkFDSSxrQkFBa0IsV0FDbkI7d0JBQ0wsZUFBZTt3QkFDZixvQkFBb0I7d0JBQ3BCLGNBQWM7d0JBQ2QsY0FBYzt3QkFDZCxXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIscUJBQXFCO3dCQUNyQixJQUFJO3dCQUNKLEtBQUs7cUJBQ1IsY0FDVyxJQUFJLG1CQUdDLHVCQUF1QixDQUFDLE1BQU0sa0JBQy9CLENBQUMsd0JBQXdCLENBQUMsYUFDL0I7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsc0JBQXNCLENBQUM7NEJBQ3BELEtBQUssRUFBRSxJQUFJO3lCQUNkO3FCQUNKOzhCQVlNLE1BQU07c0JBRFosS0FBSztnQkFJSyxLQUFLO3NCQURmLEtBQUs7Z0JBd0JRLElBQUk7c0JBRGpCLFdBQVc7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5ULCBOZ0ZvciwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB0eXBlIHsgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRGVzdHJveVJlZixcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBmb3J3YXJkUmVmLFxyXG4gICAgSG9zdEJpbmRpbmcsXHJcbiAgICBpbmplY3QsXHJcbiAgICBJbnB1dCxcclxuICAgIHNpZ25hbFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHR5cGUgeyBDdWlOdWxsYWJsZSwgQ3VpT25DaGFuZ2UsIEN1aU9uVG91Y2hlZCB9IGZyb20gJ0BjdWJ5LXVpL2Nkayc7XHJcbmltcG9ydCB7IEN1aUNsaWNrT3V0c2lkZURpcmVjdGl2ZSB9IGZyb20gJ0BjdWJ5LXVpL2Nkayc7XHJcbmltcG9ydCB7IEN1aUJ1dHRvbk1vZHVsZSwgQ3VpQ29udGV4dE1lbnVNb2R1bGUsIEN1aUlucHV0TW9kdWxlLCBDdWlMYWJlbE1vZHVsZSB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMnO1xyXG5cclxuaW1wb3J0IHR5cGUgeyBUb29sIH0gZnJvbSAnLi4vZWRpdG9yLXRvb2wtbW9kYWwvZWRpdG9yLXRvb2wtbW9kYWwub3B0aW9ucyc7XHJcblxyXG5pbXBvcnQgeyBFRElUT1JfU0VMRUNUT1IgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBNYXJrZXJUeXBlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbWFya2Vycy1zZXJ2aWNlLm9wdGlvbnMnO1xyXG5pbXBvcnQgeyBDdWlNYXJrZXJzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21hcmtlcnMuc2VydmljZSc7XHJcblxyXG5pbXBvcnQgeyBTZWxlY3RPcHRpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudC9zZWxlY3QtaXRlbS9zZWxlY3Qtb3B0aW9uLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY2MtbWFya2VyLXNlbGVjdCcsXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgQ3VpQnV0dG9uTW9kdWxlLFxyXG4gICAgICAgIEN1aUNvbnRleHRNZW51TW9kdWxlLFxyXG4gICAgICAgIEN1aUlucHV0TW9kdWxlLFxyXG4gICAgICAgIEN1aUxhYmVsTW9kdWxlLFxyXG4gICAgICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgU2VsZWN0T3B0aW9uQ29tcG9uZW50LFxyXG4gICAgICAgIE5nSWYsXHJcbiAgICAgICAgTmdGb3JcclxuICAgIF0sXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL21hcmtlci1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vbWFya2VyLXNlbGVjdC5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBob3N0RGlyZWN0aXZlczogW0N1aUNsaWNrT3V0c2lkZURpcmVjdGl2ZV0sXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBNYXJrZXJTZWxlY3RDb21wb25lbnQpLFxyXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgICAgIH1cclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIE1hcmtlclNlbGVjdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjdWlDbGlja091dHNpZGVEaXJlY3RpdmUgPSBpbmplY3QoQ3VpQ2xpY2tPdXRzaWRlRGlyZWN0aXZlLCB7IHNlbGY6IHRydWUgfSk7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnQgPSBpbmplY3QoRWxlbWVudFJlZikubmF0aXZlRWxlbWVudDtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbWFya2Vyc1NlcnZpY2UgPSBpbmplY3QoQ3VpTWFya2Vyc1NlcnZpY2UpO1xyXG5cclxuICAgIHByaXZhdGUgU1BBQ0VfQkVUV0VFTl9UQVJHRVRfQU5EX0xJU1QgPSA1O1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgdGFyZ2V0ITogSFRNTEJ1dHRvbkVsZW1lbnQ7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgc3BhY2UodmFsdWU6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuU1BBQ0VfQkVUV0VFTl9UQVJHRVRfQU5EX0xJU1QgPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgaXNWaXNpYmxlID0gc2lnbmFsKGZhbHNlKTtcclxuICAgIHByb3RlY3RlZCBpc0hpZGRlbiA9IHNpZ25hbCh0cnVlKTtcclxuICAgIHByb3RlY3RlZCBlZGl0b3IhOiBIVE1MRWxlbWVudDtcclxuICAgIHByb3RlY3RlZCB2YWx1ZSE6IEN1aU51bGxhYmxlPFRvb2w+O1xyXG4gICAgLy8gVE9ETzogc2V0IGN1cnJlbnQgdHlwZVxyXG4gICAgcHJvdGVjdGVkIGVsZW1lbnRzID0gdGhpcy5tYXJrZXJzU2VydmljZS5nZXRNYXJrZXJzQnlUeXBlKE1hcmtlclR5cGUudG9vbCk7XHJcbiAgICBwcm90ZWN0ZWQgb25DaGFuZ2UhOiBDdWlPbkNoYW5nZTx1bmtub3duPjtcclxuICAgIHByb3RlY3RlZCBvblRvdWNoZWQhOiBDdWlPblRvdWNoZWQ7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGFyZ2V0VG9nZ2xlRXZlbnRMaXN0ZW5lciA9ICgpOiB2b2lkID0+IHtcclxuICAgICAgICB0aGlzLmlzVmlzaWJsZS51cGRhdGUoKHByZXYpID0+ICFwcmV2KTtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLmlzVmlzaWJsZSgpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuY2FsY3VsYXRlRHJvcGRvd25Qb3NpdGlvbigpO1xyXG4gICAgfTtcclxuXHJcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLl9oaWRkZW4nKVxyXG4gICAgcHJvdGVjdGVkIGdldCBoaWRlKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmlzSGlkZGVuKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IFRvb2wpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IEN1aU9uQ2hhbmdlPHVua25vd24+KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogQ3VpT25Ub3VjaGVkKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgb25TY3JvbGwoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pc1Zpc2libGUuc2V0KGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pbml0VGFyZ2V0RWxlbWVudExpc3RlbmVyKCk7XHJcbiAgICAgICAgdGhpcy5pbml0Q2xpY2tPdXRzaWRlU3Vic2NyaXB0aW9uKCk7XHJcbiAgICAgICAgdGhpcy5pbml0T25DbG9zZVdoZW5FZGl0b3JTY3JvbGwoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5kZXN0cm95RXZlbnRMaXN0ZW5lcnMoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgb25Ub29sQ2xpY2sodG9vbDogVG9vbCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSB0b29sO1xyXG5cclxuICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG4gICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XHJcblxyXG4gICAgICAgIC8vIHRoaXMuaXNWaXNpYmxlLnNldChmYWxzZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpbml0VGFyZ2V0RWxlbWVudExpc3RlbmVyKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy50YXJnZXRUb2dnbGVFdmVudExpc3RlbmVyKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGluaXRDbGlja091dHNpZGVTdWJzY3JpcHRpb24oKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5jdWlDbGlja091dHNpZGVEaXJlY3RpdmUuY3VpQ2xpY2tPdXRzaWRlLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpLnN1YnNjcmliZSgodGFyZ2V0KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnRhcmdldC5jb250YWlucyh0YXJnZXQpIHx8ICF0aGlzLmlzVmlzaWJsZSgpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuaXNWaXNpYmxlLnNldChmYWxzZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpbml0T25DbG9zZVdoZW5FZGl0b3JTY3JvbGwoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5lZGl0b3IgPSB0aGlzLmVsZW1lbnQuY2xvc2VzdChFRElUT1JfU0VMRUNUT1IpO1xyXG5cclxuICAgICAgICB0aGlzLmVkaXRvcj8uYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5vblNjcm9sbC5iaW5kKHRoaXMpKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGRlc3Ryb3lFdmVudExpc3RlbmVycygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmVkaXRvcj8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5vblNjcm9sbC5iaW5kKHRoaXMpKTtcclxuICAgICAgICB0aGlzLnRhcmdldD8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLnRhcmdldFRvZ2dsZUV2ZW50TGlzdGVuZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY2FsY3VsYXRlRHJvcGRvd25Qb3NpdGlvbigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmlzSGlkZGVuLnNldCh0cnVlKTtcclxuXHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IHRoaXMudGFyZ2V0O1xyXG4gICAgICAgICAgICBjb25zdCB7IGJvdHRvbTogdGFyZ2V0UmVjdEJvdHRvbSwgbGVmdDogdGFyZ2V0UmVjdExlZnQgfSA9IHRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgICAgICAgY29uc3QgeyBjbGllbnRIZWlnaHQ6IGRvY3VtZW50Q2xpZW50SGVpZ2h0LCBjbGllbnRXaWR0aDogZG9jdW1lbnRDbGllbnRXaWR0aCB9ID1cclxuICAgICAgICAgICAgICAgIHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xyXG4gICAgICAgICAgICBjb25zdCBkaXN0YW5jZVRvQm90dG9tID0gZG9jdW1lbnRDbGllbnRIZWlnaHQgLSAodGFyZ2V0UmVjdEJvdHRvbSArIHRoaXMuU1BBQ0VfQkVUV0VFTl9UQVJHRVRfQU5EX0xJU1QpO1xyXG4gICAgICAgICAgICBjb25zdCBkaXN0YW5jZVRvUmlnaHQgPSBkb2N1bWVudENsaWVudFdpZHRoIC0gdGFyZ2V0UmVjdExlZnQ7XHJcbiAgICAgICAgICAgIGNvbnN0IGlzTGlzdFJpZ2h0ID0gZGlzdGFuY2VUb1JpZ2h0IDwgdGhpcy5lbGVtZW50Lm9mZnNldFdpZHRoO1xyXG4gICAgICAgICAgICBjb25zdCBpc0xpc3RBYm92ZSA9IGRpc3RhbmNlVG9Cb3R0b20gPCB0aGlzLmVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xyXG5cclxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VQb3NpdGlvblkoaXNMaXN0QWJvdmUsIHRhcmdldC5vZmZzZXRIZWlnaHQsIHRhcmdldFJlY3RCb3R0b20pO1xyXG4gICAgICAgICAgICB0aGlzLmNoYW5nZVBvc2l0aW9uWChpc0xpc3RSaWdodCwgdGFyZ2V0Lm9mZnNldFdpZHRoLCB0YXJnZXRSZWN0TGVmdCk7XHJcbiAgICAgICAgICAgIHRoaXMuaXNIaWRkZW4uc2V0KGZhbHNlKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNoYW5nZVBvc2l0aW9uWChpc0xpc3RSaWdodDogYm9vbGVhbiwgd2lkdGg6IG51bWJlciwgbGVmdDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKGlzTGlzdFJpZ2h0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS5yaWdodCA9ICdhdXRvJztcclxuICAgICAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLmxlZnQgPSBsZWZ0O1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLnJpZ2h0ID0gbGVmdCAtIHRoaXMuZWxlbWVudC5vZmZzZXRXaWR0aCArIHdpZHRoO1xyXG4gICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS5sZWZ0ID0gJ2F1dG8nO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY2hhbmdlUG9zaXRpb25ZKGlzTGlzdEFib3ZlOiBib29sZWFuLCBoZWlnaHQ6IG51bWJlciwgYm90dG9tOiBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgICBpZiAoaXNMaXN0QWJvdmUpIHtcclxuICAgICAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLnRvcCA9XHJcbiAgICAgICAgICAgICAgICBib3R0b20gLSB0aGlzLmVsZW1lbnQub2Zmc2V0SGVpZ2h0IC0gaGVpZ2h0IC0gdGhpcy5TUEFDRV9CRVRXRUVOX1RBUkdFVF9BTkRfTElTVCArICdweCc7XHJcblxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmVsZW1lbnQuc3R5bGUudG9wID0gYm90dG9tICsgdGhpcy5TUEFDRV9CRVRXRUVOX1RBUkdFVF9BTkRfTElTVCArICdweCc7XHJcbiAgICB9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzVmlzaWJsZSgpXCI+XHJcbiAgPGRpdlxyXG4gICAgICAjZHJvcGRvd25cclxuICAgICAgY2xhc3M9XCJkcm9wZG93blwiXHJcbiAgPlxyXG4gICAgICA8aGVhZGVyIGNsYXNzPVwiaGVhZGVyXCI+XHJcbiAgICAgICAgICA8Y3VpLWlucHV0LXRleHRcclxuICAgICAgICAgICAgICBjbGFzcz1cImhlYWRlcl9faW5wdXRcIlxyXG4gICAgICAgICAgICAgIGN1aVRleHRGaWVsZElkPVwiZXN0aW1hdGVkXCJcclxuICAgICAgICAgICAgICBjdWlUZXh0RmllbGRQbGFjZWhvbGRlcj1cIlNlYXJjaC4uLlwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgIGN1aUJ1dHRvblxyXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJnaG9zdFwiXHJcbiAgICAgICAgICAgICAgc2l6ZT1cInh4c1wiXHJcbiAgICAgICAgICAgICAgaWNvbj1cImN1aUljb25GaWx0ZXJzTGluZXNcIlxyXG4gICAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICA8L2hlYWRlcj5cclxuICAgICAgPGRpdiBjbGFzcz1cInNjcm9sbGFibGUtY29udGVudFwiPlxyXG4gICAgICAgIDxjYy1zZWxlY3Qtb3B0aW9uXHJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBlbGVtZW50IG9mIGVsZW1lbnRzXCJcclxuICAgICAgICAgICAgW2NsYXNzLl9zZWxlY3RlZF09XCJlbGVtZW50LmlkID09PSB2YWx1ZT8uaWRcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib25Ub29sQ2xpY2soZWxlbWVudClcIlxyXG4gICAgICAgICAgICBbdG9vbF09XCJlbGVtZW50XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export const MARKER_SELECT_SELECTOR = 'marker-select';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2VyLXNlbGVjdC5vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9lZGl0b3IvY29tcG9uZW50cy9tYXJrZXItc2VsZWN0L21hcmtlci1zZWxlY3Qub3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgTUFSS0VSX1NFTEVDVF9TRUxFQ1RPUiA9ICdtYXJrZXItc2VsZWN0JztcclxuIl19
|