asksuite-citrus 1.7.0 → 1.7.2
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/assets/citrus-i18n/en.json +0 -2
- package/assets/citrus-i18n/es.json +0 -2
- package/assets/citrus-i18n/pt.json +0 -2
- package/esm2022/lib/asksuite-citrus.module.mjs +4 -14
- package/esm2022/lib/components/autocomplete/autocomplete.component.mjs +19 -4
- package/esm2022/lib/components/avatar/avatar.component.mjs +2 -2
- package/esm2022/lib/components/box/box.component.mjs +2 -2
- package/esm2022/lib/components/button/button.component.mjs +2 -2
- package/esm2022/lib/components/character-counter/character-counter.component.mjs +2 -2
- package/esm2022/lib/components/checkbox/checkbox.component.mjs +2 -2
- package/esm2022/lib/components/chips/chips.component.mjs +2 -2
- package/esm2022/lib/components/date-picker/date-picker-calendar/date-picker-calendar.component.mjs +2 -2
- package/esm2022/lib/components/date-picker/date-picker.component.mjs +2 -2
- package/esm2022/lib/components/dropdown-container/dropdown-container.component.mjs +2 -2
- package/esm2022/lib/components/input/input.component.mjs +2 -2
- package/esm2022/lib/components/modal/modal.component.mjs +2 -2
- package/esm2022/lib/components/pagination/pagination.component.mjs +2 -2
- package/esm2022/lib/components/select/select.component.mjs +2 -2
- package/esm2022/lib/components/table/table.component.mjs +2 -2
- package/esm2022/lib/components/toast/toast.component.mjs +3 -3
- package/esm2022/lib/directives/button/ask-button.directive.mjs +8 -3
- package/esm2022/lib/directives/index.mjs +1 -2
- package/esm2022/public-api.mjs +1 -3
- package/fesm2022/asksuite-citrus.mjs +76 -866
- package/fesm2022/asksuite-citrus.mjs.map +1 -1
- package/lib/asksuite-citrus.module.d.ts +7 -10
- package/lib/components/autocomplete/autocomplete.component.d.ts +4 -1
- package/lib/components/toast/toast.component.d.ts +2 -1
- package/lib/directives/button/ask-button.directive.d.ts +1 -1
- package/lib/directives/index.d.ts +0 -1
- package/package.json +2 -3
- package/public-api.d.ts +0 -1
- package/styles/font-weights.scss +0 -1
- package/styles/styles.scss +30 -2
- package/esm2022/lib/classes/richtext-wrapper.mjs +0 -274
- package/esm2022/lib/classes/toolbox-bubble.mjs +0 -46
- package/esm2022/lib/classes/toolbox-topbar.mjs +0 -34
- package/esm2022/lib/classes/toolbox.mjs +0 -107
- package/esm2022/lib/components/richtext-toolbox-core/richtext-toolbox-core.component.mjs +0 -82
- package/esm2022/lib/components/richtext-url-prompt/richtext-url-prompt-state.service.mjs +0 -16
- package/esm2022/lib/components/richtext-url-prompt/richtext-url-prompt.component.mjs +0 -66
- package/esm2022/lib/constants/richtext-toolbox.constants.mjs +0 -40
- package/esm2022/lib/constants/url-regex.constant.mjs +0 -2
- package/esm2022/lib/directives/richtext-toolbox/richtext-toolbox.directive.mjs +0 -163
- package/esm2022/lib/helpers/are-objects-equal.helper.mjs +0 -4
- package/esm2022/lib/interfaces/richtext-toolbox.interface.mjs +0 -2
- package/lib/classes/richtext-wrapper.d.ts +0 -48
- package/lib/classes/toolbox-bubble.d.ts +0 -13
- package/lib/classes/toolbox-topbar.d.ts +0 -8
- package/lib/classes/toolbox.d.ts +0 -31
- package/lib/components/richtext-toolbox-core/richtext-toolbox-core.component.d.ts +0 -25
- package/lib/components/richtext-url-prompt/richtext-url-prompt-state.service.d.ts +0 -6
- package/lib/components/richtext-url-prompt/richtext-url-prompt.component.d.ts +0 -19
- package/lib/constants/richtext-toolbox.constants.d.ts +0 -4
- package/lib/constants/url-regex.constant.d.ts +0 -1
- package/lib/directives/richtext-toolbox/richtext-toolbox.directive.d.ts +0 -39
- package/lib/helpers/are-objects-equal.helper.d.ts +0 -1
- package/lib/interfaces/richtext-toolbox.interface.d.ts +0 -54
- package/styles/ask-mixins.scss +0 -45
- package/styles/quill.scss +0 -18
@@ -30,17 +30,14 @@ import * as i28 from "./components/accordion/extendable-panel/extendable-panel.c
|
|
30
30
|
import * as i29 from "./components/table/table.component";
|
31
31
|
import * as i30 from "./components/pagination/pagination.component";
|
32
32
|
import * as i31 from "./pipes/paginate/paginate.pipe";
|
33
|
-
import * as i32 from "
|
34
|
-
import * as i33 from "
|
35
|
-
import * as i34 from "
|
36
|
-
import * as i35 from "@
|
37
|
-
import * as i36 from "
|
38
|
-
import * as i37 from "@angular/
|
39
|
-
import * as i38 from "@ngx-translate/core";
|
40
|
-
import * as i39 from "ngx-skeleton-loader";
|
41
|
-
import * as i40 from "@angular/material/tooltip";
|
33
|
+
import * as i32 from "@angular/common";
|
34
|
+
import * as i33 from "@angular/forms";
|
35
|
+
import * as i34 from "@angular/cdk/overlay";
|
36
|
+
import * as i35 from "@ngx-translate/core";
|
37
|
+
import * as i36 from "ngx-skeleton-loader";
|
38
|
+
import * as i37 from "@angular/material/tooltip";
|
42
39
|
export declare class AsksuiteCitrusModule {
|
43
40
|
static ɵfac: i0.ɵɵFactoryDeclaration<AsksuiteCitrusModule, never>;
|
44
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<AsksuiteCitrusModule, [typeof i1.ButtonComponent, typeof i2.InputComponent, typeof i3.SelectComponent, typeof i4.BoxComponent, typeof i5.AvatarComponent, typeof i6.DropdownContainerComponent, typeof i7.AskDropdownDirective, typeof i8.AutocompleteComponent, typeof i9.ChipsComponent, typeof i10.CheckboxComponent, typeof i11.DatePickerComponent, typeof i12.DatePickerCalendarComponent, typeof i13.SkeletonComponent, typeof i14.SpinnerComponent, typeof i15.SpinnerDirective, typeof i16.BadgeDirective, typeof i17.AutofocusDirective, typeof i18.ScrollDirective, typeof i19.AskTooltipDirective, typeof i20.ToastComponent, typeof i21.AskButtonDirective, typeof i22.ModalComponent, typeof i23.ModalBodyDirective, typeof i24.ModalHeaderDirective, typeof i25.ModalFooterDirective, typeof i26.CharacterCounterComponent, typeof i27.AccordionComponent, typeof i28.ExtendablePanelComponent, typeof i29.TableComponent, typeof i30.PaginationComponent, typeof i31.PaginatePipe
|
41
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<AsksuiteCitrusModule, [typeof i1.ButtonComponent, typeof i2.InputComponent, typeof i3.SelectComponent, typeof i4.BoxComponent, typeof i5.AvatarComponent, typeof i6.DropdownContainerComponent, typeof i7.AskDropdownDirective, typeof i8.AutocompleteComponent, typeof i9.ChipsComponent, typeof i10.CheckboxComponent, typeof i11.DatePickerComponent, typeof i12.DatePickerCalendarComponent, typeof i13.SkeletonComponent, typeof i14.SpinnerComponent, typeof i15.SpinnerDirective, typeof i16.BadgeDirective, typeof i17.AutofocusDirective, typeof i18.ScrollDirective, typeof i19.AskTooltipDirective, typeof i20.ToastComponent, typeof i21.AskButtonDirective, typeof i22.ModalComponent, typeof i23.ModalBodyDirective, typeof i24.ModalHeaderDirective, typeof i25.ModalFooterDirective, typeof i26.CharacterCounterComponent, typeof i27.AccordionComponent, typeof i28.ExtendablePanelComponent, typeof i29.TableComponent, typeof i30.PaginationComponent, typeof i31.PaginatePipe], [typeof i32.CommonModule, typeof i33.FormsModule, typeof i33.ReactiveFormsModule, typeof i34.CdkOverlayOrigin, typeof i34.CdkConnectedOverlay, typeof i34.OverlayModule, typeof i35.TranslateModule, typeof i36.NgxSkeletonLoaderModule, typeof i37.MatTooltipModule], [typeof i1.ButtonComponent, typeof i2.InputComponent, typeof i3.SelectComponent, typeof i4.BoxComponent, typeof i5.AvatarComponent, typeof i6.DropdownContainerComponent, typeof i7.AskDropdownDirective, typeof i8.AutocompleteComponent, typeof i9.ChipsComponent, typeof i10.CheckboxComponent, typeof i11.DatePickerComponent, typeof i12.DatePickerCalendarComponent, typeof i13.SkeletonComponent, typeof i15.SpinnerDirective, typeof i16.BadgeDirective, typeof i17.AutofocusDirective, typeof i18.ScrollDirective, typeof i19.AskTooltipDirective, typeof i21.AskButtonDirective, typeof i23.ModalBodyDirective, typeof i24.ModalHeaderDirective, typeof i25.ModalFooterDirective, typeof i26.CharacterCounterComponent, typeof i27.AccordionComponent, typeof i28.ExtendablePanelComponent, typeof i29.TableComponent, typeof i30.PaginationComponent, typeof i31.PaginatePipe]>;
|
45
42
|
static ɵinj: i0.ɵɵInjectorDeclaration<AsksuiteCitrusModule>;
|
46
43
|
}
|
@@ -37,6 +37,7 @@ export declare class AutocompleteComponent implements AfterViewInit, ControlValu
|
|
37
37
|
protected optionsSelected: {
|
38
38
|
[key: string | number]: boolean;
|
39
39
|
};
|
40
|
+
private changed;
|
40
41
|
private _overlayRef;
|
41
42
|
private _portal;
|
42
43
|
private _destroy;
|
@@ -57,6 +58,8 @@ export declare class AutocompleteComponent implements AfterViewInit, ControlValu
|
|
57
58
|
selectAllMessage: any;
|
58
59
|
iconPropReference?: string;
|
59
60
|
itemCheck: EventEmitter<any>;
|
61
|
+
selectionDone: EventEmitter<any>;
|
62
|
+
optionRemoved: EventEmitter<any>;
|
60
63
|
constructor(formBuilder: FormBuilder, overlay: Overlay, viewContainerRef: ViewContainerRef, change: ChangeDetectorRef, translate: TranslateService);
|
61
64
|
ngAfterViewInit(): void;
|
62
65
|
private checkFixedOptions;
|
@@ -88,5 +91,5 @@ export declare class AutocompleteComponent implements AfterViewInit, ControlValu
|
|
88
91
|
registerOnTouched(fn: any): void;
|
89
92
|
setDisabledState(isDisabled: boolean): void;
|
90
93
|
static ɵfac: i0.ɵɵFactoryDeclaration<AutocompleteComponent, never>;
|
91
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<AutocompleteComponent, "ask-autocomplete", never, { "filterFn": { "alias": "filterFn"; "required": false; }; "displayFn": { "alias": "displayFn"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "valueProp": { "alias": "valueProp"; "required": false; }; "options": { "alias": "options"; "required": false; }; "fixedOptions": { "alias": "fixedOptions"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; }; "selectAll": { "alias": "selectAll"; "required": false; }; "allOptionsSelectedText": { "alias": "allOptionsSelectedText"; "required": false; }; "selectAllMessage": { "alias": "selectAllMessage"; "required": false; }; "iconPropReference": { "alias": "iconPropReference"; "required": false; }; }, { "itemCheck": "itemCheck"; }, never, never, false, never>;
|
94
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AutocompleteComponent, "ask-autocomplete", never, { "filterFn": { "alias": "filterFn"; "required": false; }; "displayFn": { "alias": "displayFn"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "valueProp": { "alias": "valueProp"; "required": false; }; "options": { "alias": "options"; "required": false; }; "fixedOptions": { "alias": "fixedOptions"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; }; "selectAll": { "alias": "selectAll"; "required": false; }; "allOptionsSelectedText": { "alias": "allOptionsSelectedText"; "required": false; }; "selectAllMessage": { "alias": "selectAllMessage"; "required": false; }; "iconPropReference": { "alias": "iconPropReference"; "required": false; }; }, { "itemCheck": "itemCheck"; "selectionDone": "selectionDone"; "optionRemoved": "optionRemoved"; }, never, never, false, never>;
|
92
95
|
}
|
@@ -1,3 +1,4 @@
|
|
1
|
+
/// <reference types="node" />
|
1
2
|
import { OnDestroy, OnInit } from '@angular/core';
|
2
3
|
import { ToastConfig, ToastData, ToastType } from '../../services/toast/toast.config';
|
3
4
|
import { ToastRef } from "../../services/toast/toast-ref";
|
@@ -7,7 +8,7 @@ export declare class ToastComponent implements OnInit, OnDestroy {
|
|
7
8
|
private ref;
|
8
9
|
message: string;
|
9
10
|
icon: string;
|
10
|
-
timeoutRef:
|
11
|
+
timeoutRef: NodeJS.Timeout;
|
11
12
|
config: ToastConfig;
|
12
13
|
color: string;
|
13
14
|
fontColor: string;
|
@@ -5,5 +5,5 @@ export declare class AskButtonDirective {
|
|
5
5
|
set color(value: 'primary' | 'secondary' | '');
|
6
6
|
constructor(el: ElementRef);
|
7
7
|
static ɵfac: i0.ɵɵFactoryDeclaration<AskButtonDirective, never>;
|
8
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<AskButtonDirective, "
|
8
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<AskButtonDirective, "[askButton]", never, { "color": { "alias": "color"; "required": false; }; }, {}, never, never, false, never>;
|
9
9
|
}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "asksuite-citrus",
|
3
|
-
"version": "1.7.
|
3
|
+
"version": "1.7.2",
|
4
4
|
"peerDependencies": {
|
5
5
|
"@angular/common": "^16.1.0",
|
6
6
|
"@angular/core": "^16.1.0",
|
@@ -8,8 +8,7 @@
|
|
8
8
|
"@ngx-translate/core": "^15.0.0",
|
9
9
|
"@ngx-translate/http-loader": "^8.0.0",
|
10
10
|
"moment": "^2.29.4",
|
11
|
-
"ngx-skeleton-loader": "^8.0.0"
|
12
|
-
"quill": "^1.3.7"
|
11
|
+
"ngx-skeleton-loader": "^8.0.0"
|
13
12
|
},
|
14
13
|
"dependencies": {
|
15
14
|
"tslib": "^2.3.0"
|
package/public-api.d.ts
CHANGED
package/styles/font-weights.scss
CHANGED
package/styles/styles.scss
CHANGED
@@ -5,8 +5,36 @@
|
|
5
5
|
|
6
6
|
@import './button';
|
7
7
|
@import './modal';
|
8
|
-
|
9
|
-
|
8
|
+
/*
|
9
|
+
* Mixins
|
10
|
+
*/
|
11
|
+
@mixin default-input() {
|
12
|
+
position: relative;
|
13
|
+
display: flex;
|
14
|
+
align-items: center;
|
15
|
+
border-radius: $radii-xs;
|
16
|
+
border: 1px solid $grey-200;
|
17
|
+
padding: 16px;
|
18
|
+
outline: none;
|
19
|
+
gap: 8px;
|
20
|
+
line-height: 14px;
|
21
|
+
color: $grey-700;
|
22
|
+
height: 48px;
|
23
|
+
font-size: $font-sm;
|
24
|
+
font-weight: $font-weight-regular;
|
25
|
+
transition: border .2s;
|
26
|
+
|
27
|
+
&:focus {
|
28
|
+
border-color: $asksuite-orange;
|
29
|
+
}
|
30
|
+
|
31
|
+
.material-icons {
|
32
|
+
display: flex;
|
33
|
+
align-items: center;
|
34
|
+
justify-content: center;
|
35
|
+
height: 14px;
|
36
|
+
}
|
37
|
+
}
|
10
38
|
|
11
39
|
/*
|
12
40
|
* Material Icons
|
@@ -1,274 +0,0 @@
|
|
1
|
-
import Quill from 'quill';
|
2
|
-
import { BehaviorSubject, Subject, filter, fromEvent, map } from 'rxjs';
|
3
|
-
import { URL_REGEX } from '../constants/url-regex.constant';
|
4
|
-
export class RichtextWrapper {
|
5
|
-
get state() {
|
6
|
-
return this.stateSub.value;
|
7
|
-
}
|
8
|
-
constructor(ngZone, cd, elementRef) {
|
9
|
-
this.ngZone = ngZone;
|
10
|
-
this.cd = cd;
|
11
|
-
this.elementRef = elementRef;
|
12
|
-
this.stateSub = new BehaviorSubject({
|
13
|
-
hasSelection: false,
|
14
|
-
hasFocus: false,
|
15
|
-
formats: {
|
16
|
-
italic: false,
|
17
|
-
bold: false,
|
18
|
-
underline: false,
|
19
|
-
strike: false,
|
20
|
-
link: '',
|
21
|
-
list_bulleted: false,
|
22
|
-
list_numbered: false,
|
23
|
-
justify_left: false,
|
24
|
-
justify_center: false,
|
25
|
-
justify_right: false,
|
26
|
-
},
|
27
|
-
disabledTools: []
|
28
|
-
});
|
29
|
-
this.esc$ = new Subject();
|
30
|
-
this.enter$ = new Subject();
|
31
|
-
this.maxLength = -1;
|
32
|
-
this.textChangeHandler = () => {
|
33
|
-
this.update();
|
34
|
-
};
|
35
|
-
this.selectionChangeHandler = (value, oldRange, source) => {
|
36
|
-
this.update();
|
37
|
-
};
|
38
|
-
this.bindings = {
|
39
|
-
bold: {
|
40
|
-
handler: () => {
|
41
|
-
if (!this.stateSub.value.disabledTools.includes('bold'))
|
42
|
-
this.setBold();
|
43
|
-
return false;
|
44
|
-
},
|
45
|
-
},
|
46
|
-
italic: {
|
47
|
-
handler: () => {
|
48
|
-
if (!this.stateSub.value.disabledTools.includes('italic'))
|
49
|
-
this.setItalic();
|
50
|
-
return false;
|
51
|
-
},
|
52
|
-
},
|
53
|
-
underline: {
|
54
|
-
handler: () => {
|
55
|
-
if (!this.stateSub.value.disabledTools.includes('underline'))
|
56
|
-
this.setUnderline();
|
57
|
-
return false;
|
58
|
-
},
|
59
|
-
},
|
60
|
-
escape: {
|
61
|
-
key: 'escape',
|
62
|
-
handler: () => {
|
63
|
-
this.esc$.next(true);
|
64
|
-
return false;
|
65
|
-
}
|
66
|
-
},
|
67
|
-
enter: {
|
68
|
-
key: 'enter',
|
69
|
-
handler: () => {
|
70
|
-
this.enter$.next(true);
|
71
|
-
return false;
|
72
|
-
}
|
73
|
-
}
|
74
|
-
};
|
75
|
-
this.state$ = this.stateSub.asObservable();
|
76
|
-
const editorId = `editor-${new Date().getTime()}`;
|
77
|
-
this.elementRef.nativeElement.setAttribute('id', editorId);
|
78
|
-
this.quill = new Quill(`#${editorId}`, {
|
79
|
-
placeholder: '',
|
80
|
-
modules: {
|
81
|
-
clipboard: {
|
82
|
-
matchers: [[Node.TEXT_NODE, this.urlMatcher.bind(this)]],
|
83
|
-
},
|
84
|
-
keyboard: { bindings: this.bindings },
|
85
|
-
},
|
86
|
-
});
|
87
|
-
this.quill.root.setAttribute('spellcheck', 'false');
|
88
|
-
this.listenEditorChanges();
|
89
|
-
}
|
90
|
-
setItalic() {
|
91
|
-
this.quill.format('italic', !this.state.formats.italic);
|
92
|
-
this.update();
|
93
|
-
}
|
94
|
-
setBold() {
|
95
|
-
this.quill.format('bold', !this.state.formats.bold);
|
96
|
-
this.update();
|
97
|
-
}
|
98
|
-
setUnderline() {
|
99
|
-
this.quill.format('underline', !this.state.formats.underline);
|
100
|
-
this.update();
|
101
|
-
}
|
102
|
-
setStrike() {
|
103
|
-
this.quill.format('strike', !this.state.formats.strike);
|
104
|
-
this.update();
|
105
|
-
}
|
106
|
-
setListNumbered() {
|
107
|
-
if (this.state.formats.list_numbered)
|
108
|
-
this.quill.format('list', null);
|
109
|
-
else
|
110
|
-
this.quill.format('list', 'ordered');
|
111
|
-
this.update();
|
112
|
-
}
|
113
|
-
setListBulleted() {
|
114
|
-
if (this.state.formats.list_bulleted)
|
115
|
-
this.quill.format('list', null);
|
116
|
-
else
|
117
|
-
this.quill.format('list', 'bulleted');
|
118
|
-
this.update();
|
119
|
-
}
|
120
|
-
setLink(link) {
|
121
|
-
const range = this.quill.getSelection(true);
|
122
|
-
if (range && !range.length) {
|
123
|
-
const [textBloat, offset] = this.quill.getLeaf(range.index);
|
124
|
-
const start = range.index - offset;
|
125
|
-
const length = textBloat.length();
|
126
|
-
this.quill.formatText(start, length, 'link', link);
|
127
|
-
}
|
128
|
-
else {
|
129
|
-
this.quill.format('link', link);
|
130
|
-
}
|
131
|
-
this.update();
|
132
|
-
}
|
133
|
-
setJustifyLeft() {
|
134
|
-
this.quill.format('align', null);
|
135
|
-
this.update();
|
136
|
-
}
|
137
|
-
setJustifyCenter() {
|
138
|
-
this.quill.format('align', 'center');
|
139
|
-
this.update();
|
140
|
-
}
|
141
|
-
setJustifyRight() {
|
142
|
-
this.quill.format('align', 'right');
|
143
|
-
this.update();
|
144
|
-
}
|
145
|
-
setRemove() {
|
146
|
-
const selection = this.quill.getSelection();
|
147
|
-
if (selection)
|
148
|
-
this.quill.removeFormat(selection.index, selection.length);
|
149
|
-
this.update();
|
150
|
-
}
|
151
|
-
setPlaceholder(placeholder) {
|
152
|
-
this.quill.root.dataset['placeholder'] = placeholder;
|
153
|
-
}
|
154
|
-
setText(text) {
|
155
|
-
this.quill.setContents(this.quill.clipboard.convert(text));
|
156
|
-
}
|
157
|
-
setMaxLength(length) {
|
158
|
-
this.maxLength = length;
|
159
|
-
this.maxLengthSubscription?.unsubscribe();
|
160
|
-
if (this.maxLength > 0)
|
161
|
-
this.maxLengthSubscription =
|
162
|
-
fromEvent(this.quill, 'text-change')
|
163
|
-
.pipe(filter(() => this.quill.getLength() > this.maxLength))
|
164
|
-
.subscribe(() => {
|
165
|
-
this.quill.deleteText(this.maxLength, this.quill.getLength());
|
166
|
-
});
|
167
|
-
}
|
168
|
-
setDisabledTools(tools) {
|
169
|
-
if (JSON.stringify(tools) !== JSON.stringify(this.stateSub.value.disabledTools))
|
170
|
-
this.stateSub.next({ ...this.stateSub.value, disabledTools: tools, });
|
171
|
-
}
|
172
|
-
setEditorClass(className) {
|
173
|
-
this.quill.root.classList.add(className);
|
174
|
-
}
|
175
|
-
getEditorElement() {
|
176
|
-
return this.quill.root;
|
177
|
-
}
|
178
|
-
getText() {
|
179
|
-
this.quill.getText();
|
180
|
-
}
|
181
|
-
listenTextChanges() {
|
182
|
-
return fromEvent(this.quill, 'text-change')
|
183
|
-
.pipe(map(() => this.quill.root.innerHTML));
|
184
|
-
}
|
185
|
-
listenOnTouched() {
|
186
|
-
return fromEvent(this.quill, 'selection-change')
|
187
|
-
.pipe(map(() => !this.quill.getSelection(false)));
|
188
|
-
}
|
189
|
-
listenEscape() {
|
190
|
-
return this.esc$.asObservable();
|
191
|
-
}
|
192
|
-
listenEnter() {
|
193
|
-
return this.enter$.asObservable();
|
194
|
-
}
|
195
|
-
disable() {
|
196
|
-
this.quill.disable();
|
197
|
-
}
|
198
|
-
enable() {
|
199
|
-
this.quill.enable();
|
200
|
-
}
|
201
|
-
destroy() {
|
202
|
-
this.quill.off('selection-change', this.selectionChangeHandler);
|
203
|
-
this.quill.off('text-change', this.textChangeHandler);
|
204
|
-
this.esc$.unsubscribe();
|
205
|
-
this.enter$.unsubscribe();
|
206
|
-
this.stateSub.unsubscribe();
|
207
|
-
this.maxLengthSubscription?.unsubscribe();
|
208
|
-
}
|
209
|
-
focus() {
|
210
|
-
this.quill.focus();
|
211
|
-
}
|
212
|
-
urlMatcher(node, delta) {
|
213
|
-
if (typeof node.data !== 'string')
|
214
|
-
return;
|
215
|
-
var matches = node.data.match(URL_REGEX);
|
216
|
-
if (matches && matches.length > 0) {
|
217
|
-
let text = '';
|
218
|
-
const selection = this.quill.getSelection(true);
|
219
|
-
if (selection.length)
|
220
|
-
text = this.quill.getText(selection.index, selection.length);
|
221
|
-
var ops = [];
|
222
|
-
var str = node.data;
|
223
|
-
matches.forEach(function (match) {
|
224
|
-
var split = str.split(match);
|
225
|
-
var beforeLink = split.shift();
|
226
|
-
ops.push({ insert: beforeLink });
|
227
|
-
ops.push({ insert: text || match, attributes: { link: match } });
|
228
|
-
str = split.join(match);
|
229
|
-
});
|
230
|
-
ops.push({ insert: str });
|
231
|
-
delta.ops = ops;
|
232
|
-
}
|
233
|
-
return delta;
|
234
|
-
}
|
235
|
-
listenEditorChanges() {
|
236
|
-
this.quill.on('selection-change', this.selectionChangeHandler);
|
237
|
-
this.quill.on('text-change', this.textChangeHandler);
|
238
|
-
}
|
239
|
-
update() {
|
240
|
-
let bounds;
|
241
|
-
let formatsArr;
|
242
|
-
const range = this.quill.getSelection(false);
|
243
|
-
if (range) {
|
244
|
-
bounds = this.quill.getBounds(range.index, range.length);
|
245
|
-
formatsArr = this.quill.getFormat(range);
|
246
|
-
}
|
247
|
-
const formats = {
|
248
|
-
italic: formatsArr?.italic || false,
|
249
|
-
bold: formatsArr?.bold || false,
|
250
|
-
underline: formatsArr?.underline || false,
|
251
|
-
strike: formatsArr?.strike || false,
|
252
|
-
link: formatsArr?.link || '',
|
253
|
-
list_bulleted: formatsArr?.list === 'bullet',
|
254
|
-
list_numbered: formatsArr?.list === 'ordered',
|
255
|
-
justify_left: formatsArr?.align === 'left',
|
256
|
-
justify_center: formatsArr?.align === 'center',
|
257
|
-
justify_right: formatsArr?.align === 'right',
|
258
|
-
};
|
259
|
-
const hasSelection = !!range?.length;
|
260
|
-
const hasFocus = !!range;
|
261
|
-
const newState = {
|
262
|
-
...this.stateSub.value,
|
263
|
-
hasSelection,
|
264
|
-
formats,
|
265
|
-
bounds,
|
266
|
-
hasFocus
|
267
|
-
};
|
268
|
-
this.ngZone.run(() => {
|
269
|
-
this.stateSub.next(newState);
|
270
|
-
this.cd.markForCheck();
|
271
|
-
});
|
272
|
-
}
|
273
|
-
}
|
274
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmljaHRleHQtd3JhcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fza3N1aXRlLWNpdHJ1cy9zcmMvbGliL2NsYXNzZXMvcmljaHRleHQtd3JhcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQXdGLE1BQU0sT0FBTyxDQUFDO0FBQzdHLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFnQixNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQU90RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFNUQsTUFBTSxPQUFPLGVBQWU7SUEyRTFCLElBQVcsS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUE7SUFDOUIsQ0FBQztJQUlELFlBQ1UsTUFBYyxFQUNkLEVBQXFCLEVBQ3JCLFVBQW1DO1FBRm5DLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUNyQixlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQWxGckMsYUFBUSxHQUFHLElBQUksZUFBZSxDQUFhO1lBQ2pELFlBQVksRUFBRSxLQUFLO1lBQ25CLFFBQVEsRUFBRSxLQUFLO1lBQ2YsT0FBTyxFQUFFO2dCQUNQLE1BQU0sRUFBRSxLQUFLO2dCQUNiLElBQUksRUFBRSxLQUFLO2dCQUNYLFNBQVMsRUFBRSxLQUFLO2dCQUNoQixNQUFNLEVBQUUsS0FBSztnQkFDYixJQUFJLEVBQUUsRUFBRTtnQkFDUixhQUFhLEVBQUUsS0FBSztnQkFDcEIsYUFBYSxFQUFFLEtBQUs7Z0JBQ3BCLFlBQVksRUFBRSxLQUFLO2dCQUNuQixjQUFjLEVBQUUsS0FBSztnQkFDckIsYUFBYSxFQUFFLEtBQUs7YUFDckI7WUFDRCxhQUFhLEVBQUUsRUFBRTtTQUNsQixDQUFDLENBQUM7UUFDSyxTQUFJLEdBQUcsSUFBSSxP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VCxDQUFDO1FBRUYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgRWxlbWVudFJlZiwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgUXVpbGwsIHsgQm91bmRzU3RhdGljLCBSYW5nZVN0YXRpYywgU2VsZWN0aW9uQ2hhbmdlSGFuZGxlciwgU291cmNlcywgVGV4dENoYW5nZUhhbmRsZXIgfSBmcm9tICdxdWlsbCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgZmlsdGVyLCBmcm9tRXZlbnQsIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgUmljaFRleHRGdW5jdGlvbnMsXG4gIFJpY2h0ZXh0Rm9ybWF0cyxcbiAgVG9vbEtleXMsXG4gIFRvb2xzU3RhdGUsXG59IGZyb20gJy4uL2ludGVyZmFjZXMvcmljaHRleHQtdG9vbGJveC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVVJMX1JFR0VYIH0gZnJvbSAnLi4vY29uc3RhbnRzL3VybC1yZWdleC5jb25zdGFudCc7XG5cbmV4cG9ydCBjbGFzcyBSaWNodGV4dFdyYXBwZXIgaW1wbGVtZW50cyBSaWNoVGV4dEZ1bmN0aW9ucyB7XG4gIHByaXZhdGUgcXVpbGwhOiBRdWlsbDtcbiAgcHJpdmF0ZSBzdGF0ZVN1YiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VG9vbHNTdGF0ZT4oe1xuICAgIGhhc1NlbGVjdGlvbjogZmFsc2UsXG4gICAgaGFzRm9jdXM6IGZhbHNlLFxuICAgIGZvcm1hdHM6IHtcbiAgICAgIGl0YWxpYzogZmFsc2UsXG4gICAgICBib2xkOiBmYWxzZSxcbiAgICAgIHVuZGVybGluZTogZmFsc2UsXG4gICAgICBzdHJpa2U6IGZhbHNlLFxuICAgICAgbGluazogJycsXG4gICAgICBsaXN0X2J1bGxldGVkOiBmYWxzZSxcbiAgICAgIGxpc3RfbnVtYmVyZWQ6IGZhbHNlLFxuICAgICAganVzdGlmeV9sZWZ0OiBmYWxzZSxcbiAgICAgIGp1c3RpZnlfY2VudGVyOiBmYWxzZSxcbiAgICAgIGp1c3RpZnlfcmlnaHQ6IGZhbHNlLFxuICAgIH0sXG4gICAgZGlzYWJsZWRUb29sczogW11cbiAgfSk7XG4gIHByaXZhdGUgZXNjJCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHByaXZhdGUgZW50ZXIkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHJpdmF0ZSBtYXhMZW5ndGggPSAtMTtcblxuICBwcml2YXRlIHRleHRDaGFuZ2VIYW5kbGVyOiBUZXh0Q2hhbmdlSGFuZGxlciA9ICgpID0+IHtcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9O1xuXG4gIHByaXZhdGUgc2VsZWN0aW9uQ2hhbmdlSGFuZGxlcjogU2VsZWN0aW9uQ2hhbmdlSGFuZGxlciA9IChcbiAgICB2YWx1ZTogUmFuZ2VTdGF0aWMsXG4gICAgb2xkUmFuZ2U6IFJhbmdlU3RhdGljLFxuICAgIHNvdXJjZTogU291cmNlc1xuICApID0+IHtcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9O1xuXG4gIHByaXZhdGUgYmluZGluZ3MgPSB7XG4gICAgYm9sZDoge1xuICAgICAgaGFuZGxlcjogKCkgPT4ge1xuICAgICAgICBpZighdGhpcy5zdGF0ZVN1Yi52YWx1ZS5kaXNhYmxlZFRvb2xzLmluY2x1ZGVzKCdib2xkJykpXG4gICAgICAgICAgdGhpcy5zZXRCb2xkKCk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH0sXG4gICAgfSxcbiAgICBpdGFsaWM6IHtcbiAgICAgIGhhbmRsZXI6ICgpID0+IHtcbiAgICAgICAgaWYoIXRoaXMuc3RhdGVTdWIudmFsdWUuZGlzYWJsZWRUb29scy5pbmNsdWRlcygnaXRhbGljJykpXG4gICAgICAgICAgdGhpcy5zZXRJdGFsaWMoKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSxcbiAgICB9LFxuICAgIHVuZGVybGluZToge1xuICAgICAgaGFuZGxlcjogKCkgPT4ge1xuICAgICAgICBpZighdGhpcy5zdGF0ZVN1Yi52YWx1ZS5kaXNhYmxlZFRvb2xzLmluY2x1ZGVzKCd1bmRlcmxpbmUnKSlcbiAgICAgICAgICB0aGlzLnNldFVuZGVybGluZSgpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9LFxuICAgIH0sXG4gICAgZXNjYXBlOntcbiAgICAgIGtleTogJ2VzY2FwZScsXG4gICAgICBoYW5kbGVyOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuZXNjJC5uZXh0KHRydWUpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfSxcbiAgICBlbnRlcjoge1xuICAgICAga2V5OiAnZW50ZXInLFxuICAgICAgaGFuZGxlcjogKCkgPT4ge1xuICAgICAgICB0aGlzLmVudGVyJC5uZXh0KHRydWUpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuXG4gIH07XG4gIHByaXZhdGUgbWF4TGVuZ3RoU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuXG4gIHB1YmxpYyBnZXQgc3RhdGUoKXtcbiAgICAgIHJldHVybiB0aGlzLnN0YXRlU3ViLnZhbHVlXG4gIH1cbiAgXG4gIHB1YmxpYyBzdGF0ZSQgPSB0aGlzLnN0YXRlU3ViLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgKSB7XG4gICAgY29uc3QgZWRpdG9ySWQgPSBgZWRpdG9yLSR7bmV3IERhdGUoKS5nZXRUaW1lKCl9YDtcbiAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2lkJywgZWRpdG9ySWQpO1xuICAgIHRoaXMucXVpbGwgPSBuZXcgUXVpbGwoYCMke2VkaXRvcklkfWAsIHtcbiAgICAgIHBsYWNlaG9sZGVyOiAnJyxcbiAgICAgIG1vZHVsZXM6IHtcbiAgICAgICAgY2xpcGJvYXJkOiB7XG4gICAgICAgICAgbWF0Y2hlcnM6IFtbTm9kZS5URVhUX05PREUsIHRoaXMudXJsTWF0Y2hlci5iaW5kKHRoaXMpXV0sXG4gICAgICAgIH0sXG4gICAgICAgIGtleWJvYXJkOiB7IGJpbmRpbmdzOiB0aGlzLmJpbmRpbmdzIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHRoaXMucXVpbGwucm9vdC5zZXRBdHRyaWJ1dGUoJ3NwZWxsY2hlY2snLCAnZmFsc2UnKVxuICAgIHRoaXMubGlzdGVuRWRpdG9yQ2hhbmdlcygpO1xuICB9XG5cbiAgcHVibGljIHNldEl0YWxpYygpIHtcbiAgICB0aGlzLnF1aWxsLmZvcm1hdCgnaXRhbGljJywgIXRoaXMuc3RhdGUuZm9ybWF0cy5pdGFsaWMpO1xuICAgIHRoaXMudXBkYXRlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0Qm9sZCgpIHtcbiAgICB0aGlzLnF1aWxsLmZvcm1hdCgnYm9sZCcsICF0aGlzLnN0YXRlLmZvcm1hdHMuYm9sZCk7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRVbmRlcmxpbmUoKSB7XG4gICAgdGhpcy5xdWlsbC5mb3JtYXQoJ3VuZGVybGluZScsICF0aGlzLnN0YXRlLmZvcm1hdHMudW5kZXJsaW5lKTtcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldFN0cmlrZSgpIHtcbiAgICB0aGlzLnF1aWxsLmZvcm1hdCgnc3RyaWtlJywgIXRoaXMuc3RhdGUuZm9ybWF0cy5zdHJpa2UpO1xuICAgIHRoaXMudXBkYXRlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0TGlzdE51bWJlcmVkKCkge1xuICAgIGlmICh0aGlzLnN0YXRlLmZvcm1hdHMubGlzdF9udW1iZXJlZClcbiAgICAgIHRoaXMucXVpbGwuZm9ybWF0KCdsaXN0JywgbnVsbCk7XG4gICAgZWxzZSAgXG4gICAgICB0aGlzLnF1aWxsLmZvcm1hdCgnbGlzdCcsICdvcmRlcmVkJyk7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRMaXN0QnVsbGV0ZWQoKSB7XG4gICAgaWYgKHRoaXMuc3RhdGUuZm9ybWF0cy5saXN0X2J1bGxldGVkKVxuICAgICAgdGhpcy5xdWlsbC5mb3JtYXQoJ2xpc3QnLCBudWxsKTtcbiAgICBlbHNlICBcbiAgICAgIHRoaXMucXVpbGwuZm9ybWF0KCdsaXN0JywgJ2J1bGxldGVkJyk7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRMaW5rKGxpbms6IHN0cmluZykge1xuXG4gICAgY29uc3QgcmFuZ2UgPSB0aGlzLnF1aWxsLmdldFNlbGVjdGlvbih0cnVlKTtcblxuICAgIGlmIChyYW5nZSAmJiAhcmFuZ2UubGVuZ3RoKSB7XG4gICAgICBjb25zdCBbdGV4dEJsb2F0LCBvZmZzZXRdID0gdGhpcy5xdWlsbC5nZXRMZWFmKHJhbmdlIS5pbmRleCk7XG5cbiAgICAgIGNvbnN0IHN0YXJ0ID0gcmFuZ2UhLmluZGV4IC0gb2Zmc2V0O1xuICAgICAgY29uc3QgbGVuZ3RoID0gdGV4dEJsb2F0Lmxlbmd0aCgpO1xuXG4gICAgICB0aGlzLnF1aWxsLmZvcm1hdFRleHQoc3RhcnQsIGxlbmd0aCwgJ2xpbmsnLCBsaW5rKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5xdWlsbC5mb3JtYXQoJ2xpbmsnLCBsaW5rKTtcbiAgICB9XG5cbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldEp1c3RpZnlMZWZ0KCkge1xuICAgIHRoaXMucXVpbGwuZm9ybWF0KCdhbGlnbicsIG51bGwpO1xuICAgIHRoaXMudXBkYXRlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0SnVzdGlmeUNlbnRlcigpIHtcbiAgICB0aGlzLnF1aWxsLmZvcm1hdCgnYWxpZ24nLCAnY2VudGVyJyk7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRKdXN0aWZ5UmlnaHQoKSB7XG4gICAgdGhpcy5xdWlsbC5mb3JtYXQoJ2FsaWduJywgJ3JpZ2h0Jyk7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRSZW1vdmUoKSB7XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gdGhpcy5xdWlsbC5nZXRTZWxlY3Rpb24oKTtcbiAgICBpZiAoc2VsZWN0aW9uKSB0aGlzLnF1aWxsLnJlbW92ZUZvcm1hdChzZWxlY3Rpb24hLmluZGV4LCBzZWxlY3Rpb24hLmxlbmd0aCk7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRQbGFjZWhvbGRlcihwbGFjZWhvbGRlcjogc3RyaW5nKXtcbiAgICB0aGlzLnF1aWxsLnJvb3QuZGF0YXNldFsncGxhY2Vob2xkZXInXSA9IHBsYWNlaG9sZGVyO1xuICB9XG5cbiAgcHVibGljIHNldFRleHQodGV4dDogc3RyaW5nKXtcbiAgICB0aGlzLnF1aWxsLnNldENvbnRlbnRzKHRoaXMucXVpbGwuY2xpcGJvYXJkLmNvbnZlcnQodGV4dCkpO1xuICB9XG5cbiAgcHVibGljIHNldE1heExlbmd0aChsZW5ndGg6IG51bWJlcil7XG4gICAgdGhpcy5tYXhMZW5ndGggPSBsZW5ndGg7XG5cbiAgICB0aGlzLm1heExlbmd0aFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICBpZih0aGlzLm1heExlbmd0aCA+IDApXG4gICAgICB0aGlzLm1heExlbmd0aFN1YnNjcmlwdGlvbiA9IFxuICAgICAgICBmcm9tRXZlbnQodGhpcy5xdWlsbCwgJ3RleHQtY2hhbmdlJylcbiAgICAgICAgLnBpcGUoZmlsdGVyKCgpID0+IHRoaXMucXVpbGwuZ2V0TGVuZ3RoKCkgPiB0aGlzLm1heExlbmd0aCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMucXVpbGwuZGVsZXRlVGV4dCh0aGlzLm1heExlbmd0aCwgdGhpcy5xdWlsbC5nZXRMZW5ndGgoKSk7XG4gICAgICB9KVxuICB9XG5cbiAgcHVibGljIHNldERpc2FibGVkVG9vbHModG9vbHM6IFRvb2xLZXlzKXtcbiAgICBpZihKU09OLnN0cmluZ2lmeSh0b29scykgIT09IEpTT04uc3RyaW5naWZ5KHRoaXMuc3RhdGVTdWIudmFsdWUuZGlzYWJsZWRUb29scykpXG4gICAgICB0aGlzLnN0YXRlU3ViLm5leHQoey4uLnRoaXMuc3RhdGVTdWIudmFsdWUsIGRpc2FibGVkVG9vbHM6IHRvb2xzLCB9KVxuICB9XG5cbiAgcHVibGljIHNldEVkaXRvckNsYXNzKGNsYXNzTmFtZTogc3RyaW5nKXtcbiAgICB0aGlzLnF1aWxsLnJvb3QuY2xhc3NMaXN0LmFkZChjbGFzc05hbWUpO1xuICB9XG5cbiAgcHVibGljIGdldEVkaXRvckVsZW1lbnQoKXtcbiAgICByZXR1cm4gdGhpcy5xdWlsbC5yb290O1xuICB9XG5cbiAgcHVibGljIGdldFRleHQoKXtcbiAgICB0aGlzLnF1aWxsLmdldFRleHQoKTtcbiAgfVxuICBcbiAgcHVibGljIGxpc3RlblRleHRDaGFuZ2VzKCl7XG4gICAgcmV0dXJuIGZyb21FdmVudCh0aGlzLnF1aWxsLCAndGV4dC1jaGFuZ2UnKVxuICAgICAgLnBpcGUobWFwKCgpID0+IHRoaXMucXVpbGwucm9vdC5pbm5lckhUTUwpKTsgXG4gIH1cblxuICBwdWJsaWMgbGlzdGVuT25Ub3VjaGVkKCl7XG4gICAgcmV0dXJuIGZyb21FdmVudCh0aGlzLnF1aWxsLCAnc2VsZWN0aW9uLWNoYW5nZScpXG4gICAgICAucGlwZShtYXAoKCkgPT4gIXRoaXMucXVpbGwuZ2V0U2VsZWN0aW9uKGZhbHNlKSkpO1xuICB9XG5cbiAgcHVibGljIGxpc3RlbkVzY2FwZSgpe1xuICAgIHJldHVybiB0aGlzLmVzYyQuYXNPYnNlcnZhYmxlKClcbiAgfVxuXG4gIHB1YmxpYyBsaXN0ZW5FbnRlcigpe1xuICAgIHJldHVybiB0aGlzLmVudGVyJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG5cbiAgcHVibGljIGRpc2FibGUoKXtcbiAgICB0aGlzLnF1aWxsLmRpc2FibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBlbmFibGUoKXtcbiAgICB0aGlzLnF1aWxsLmVuYWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGRlc3Ryb3koKSB7XG4gICAgdGhpcy5xdWlsbC5vZmYoJ3NlbGVjdGlvbi1jaGFuZ2UnLCB0aGlzLnNlbGVjdGlvbkNoYW5nZUhhbmRsZXIpO1xuICAgIHRoaXMucXVpbGwub2ZmKCd0ZXh0LWNoYW5nZScsIHRoaXMudGV4dENoYW5nZUhhbmRsZXIpO1xuICAgIHRoaXMuZXNjJC51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuZW50ZXIkLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5zdGF0ZVN1Yi51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMubWF4TGVuZ3RoU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIGZvY3VzKCl7XG4gICAgdGhpcy5xdWlsbC5mb2N1cygpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cmxNYXRjaGVyKG5vZGU6IGFueSwgZGVsdGE6IGFueSkge1xuICAgIGlmICh0eXBlb2Ygbm9kZS5kYXRhICE9PSAnc3RyaW5nJykgcmV0dXJuO1xuICAgIHZhciBtYXRjaGVzID0gbm9kZS5kYXRhLm1hdGNoKFVSTF9SRUdFWCk7XG5cbiAgICBpZiAobWF0Y2hlcyAmJiBtYXRjaGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIGxldCB0ZXh0ID0gJyc7XG4gICAgICBjb25zdCBzZWxlY3Rpb24gPSB0aGlzLnF1aWxsLmdldFNlbGVjdGlvbih0cnVlKTtcbiAgICAgIGlmIChzZWxlY3Rpb24ubGVuZ3RoKVxuICAgICAgICB0ZXh0ID0gdGhpcy5xdWlsbC5nZXRUZXh0KHNlbGVjdGlvbiEuaW5kZXgsIHNlbGVjdGlvbiEubGVuZ3RoKTtcblxuICAgICAgdmFyIG9wcyA9IFtdO1xuICAgICAgdmFyIHN0ciA9IG5vZGUuZGF0YTtcbiAgICAgIG1hdGNoZXMuZm9yRWFjaChmdW5jdGlvbiAobWF0Y2g6IGFueSkge1xuICAgICAgICB2YXIgc3BsaXQgPSBzdHIuc3BsaXQobWF0Y2gpO1xuICAgICAgICB2YXIgYmVmb3JlTGluayA9IHNwbGl0LnNoaWZ0KCk7XG4gICAgICAgIG9wcy5wdXNoKHsgaW5zZXJ0OiBiZWZvcmVMaW5rIH0pO1xuICAgICAgICBvcHMucHVzaCh7IGluc2VydDogdGV4dCB8fCBtYXRjaCwgYXR0cmlidXRlczogeyBsaW5rOiBtYXRjaCB9IH0pO1xuICAgICAgICBzdHIgPSBzcGxpdC5qb2luKG1hdGNoKTtcbiAgICAgIH0pO1xuICAgICAgb3BzLnB1c2goeyBpbnNlcnQ6IHN0ciB9KTtcbiAgICAgIGRlbHRhLm9wcyA9IG9wcztcbiAgICB9XG5cbiAgICByZXR1cm4gZGVsdGE7XG4gIH1cblxuICBwcml2YXRlIGxpc3RlbkVkaXRvckNoYW5nZXMoKSB7XG4gICAgdGhpcy5xdWlsbC5vbignc2VsZWN0aW9uLWNoYW5nZScsIHRoaXMuc2VsZWN0aW9uQ2hhbmdlSGFuZGxlcik7XG4gICAgdGhpcy5xdWlsbC5vbigndGV4dC1jaGFuZ2UnLCB0aGlzLnRleHRDaGFuZ2VIYW5kbGVyKTtcbiAgfVxuXG5cbiAgcHJpdmF0ZSB1cGRhdGUoKSB7XG4gICAgbGV0IGJvdW5kczogQm91bmRzU3RhdGljIHwgdW5kZWZpbmVkO1xuICAgIGxldCBmb3JtYXRzQXJyO1xuXG4gICAgY29uc3QgcmFuZ2UgPSB0aGlzLnF1aWxsLmdldFNlbGVjdGlvbihmYWxzZSk7XG4gICAgaWYgIChyYW5nZSl7IFxuICAgICAgYm91bmRzID0gdGhpcy5xdWlsbC5nZXRCb3VuZHMocmFuZ2UuaW5kZXgsIHJhbmdlLmxlbmd0aCk7XG4gICAgICBmb3JtYXRzQXJyID0gdGhpcy5xdWlsbC5nZXRGb3JtYXQocmFuZ2UpIGFzIGFueTtcbiAgICB9XG5cbiAgICBjb25zdCBmb3JtYXRzOiBSaWNodGV4dEZvcm1hdHMgPSB7XG4gICAgICBpdGFsaWM6IGZvcm1hdHNBcnI/Lml0YWxpYyB8fCBmYWxzZSxcbiAgICAgIGJvbGQ6IGZvcm1hdHNBcnI/LmJvbGQgfHwgZmFsc2UsXG4gICAgICB1bmRlcmxpbmU6IGZvcm1hdHNBcnI/LnVuZGVybGluZSB8fCBmYWxzZSxcbiAgICAgIHN0cmlrZTogZm9ybWF0c0Fycj8uc3RyaWtlIHx8IGZhbHNlLFxuICAgICAgbGluazogZm9ybWF0c0Fycj8ubGluayB8fCAnJyxcbiAgICAgIGxpc3RfYnVsbGV0ZWQ6IGZvcm1hdHNBcnI/Lmxpc3QgPT09ICdidWxsZXQnLFxuICAgICAgbGlzdF9udW1iZXJlZDogZm9ybWF0c0Fycj8ubGlzdCA9PT0gJ29yZGVyZWQnLFxuICAgICAganVzdGlmeV9sZWZ0OiBmb3JtYXRzQXJyPy5hbGlnbiA9PT0gJ2xlZnQnLFxuICAgICAganVzdGlmeV9jZW50ZXI6IGZvcm1hdHNBcnI/LmFsaWduID09PSAnY2VudGVyJyxcbiAgICAgIGp1c3RpZnlfcmlnaHQ6IGZvcm1hdHNBcnI/LmFsaWduID09PSAncmlnaHQnLFxuICAgIH07XG5cbiAgICBjb25zdCBoYXNTZWxlY3Rpb24gPSAhIXJhbmdlPy5sZW5ndGg7XG4gICAgY29uc3QgaGFzRm9jdXMgPSAhIXJhbmdlO1xuXG4gICAgY29uc3QgbmV3U3RhdGU6IFRvb2xzU3RhdGUgPSB7IFxuICAgICAgLi4udGhpcy5zdGF0ZVN1Yi52YWx1ZSwgXG4gICAgICBoYXNTZWxlY3Rpb24sIFxuICAgICAgZm9ybWF0cywgXG4gICAgICBib3VuZHMsIFxuICAgICAgaGFzRm9jdXMgXG4gICAgfTtcblxuICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICB0aGlzLnN0YXRlU3ViLm5leHQobmV3U3RhdGUpO1xuICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KVxuICB9XG59XG4iXX0=
|
@@ -1,46 +0,0 @@
|
|
1
|
-
import { Toolbox } from "./toolbox";
|
2
|
-
const TOOLBOX_HEIGHT = 40;
|
3
|
-
const MARGIN = 8;
|
4
|
-
const MOUSE_EVENT = 'mouseup';
|
5
|
-
export class BubbleStrategy extends Toolbox {
|
6
|
-
constructor(injector) {
|
7
|
-
super(injector);
|
8
|
-
this.listenOutsideClicks();
|
9
|
-
}
|
10
|
-
move(bounds) {
|
11
|
-
this.renderer2.setStyle(this.componentEl, 'top', `${bounds.top - (TOOLBOX_HEIGHT + MARGIN)}px`);
|
12
|
-
this.renderer2.setStyle(this.componentEl, 'left', `${bounds.left}px`);
|
13
|
-
}
|
14
|
-
listenOutsideClicks() {
|
15
|
-
this.clickListener = (event) => {
|
16
|
-
if (!this.componentEl?.contains(event.target)
|
17
|
-
&& this.isVisible()) {
|
18
|
-
this.destroyComponent();
|
19
|
-
}
|
20
|
-
};
|
21
|
-
document.body.addEventListener(MOUSE_EVENT, this.clickListener);
|
22
|
-
}
|
23
|
-
onToolsChanged(state) {
|
24
|
-
super.onToolsChanged(state);
|
25
|
-
const { hasSelection, hasFocus, bounds } = state;
|
26
|
-
if (hasSelection && bounds) {
|
27
|
-
if (!this.isVisible())
|
28
|
-
this.displayComponent();
|
29
|
-
this.move(bounds);
|
30
|
-
}
|
31
|
-
else {
|
32
|
-
if (this.isVisible() && hasFocus)
|
33
|
-
this.destroyComponent();
|
34
|
-
}
|
35
|
-
}
|
36
|
-
displayComponent() {
|
37
|
-
super.displayComponent();
|
38
|
-
this.renderer2.appendChild(this.hostEl?.nativeElement, this.componentEl);
|
39
|
-
this.componentRef.setInput('type', 'bubble');
|
40
|
-
}
|
41
|
-
destroyAll() {
|
42
|
-
document.body.removeEventListener(MOUSE_EVENT, this.clickListener);
|
43
|
-
super.destroyAll();
|
44
|
-
}
|
45
|
-
}
|
46
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJveC1idWJibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc2tzdWl0ZS1jaXRydXMvc3JjL2xpYi9jbGFzc2VzL3Rvb2xib3gtYnViYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFHcEMsTUFBTSxjQUFjLEdBQUcsRUFBRSxDQUFDO0FBQzFCLE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBQztBQUNqQixNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUE7QUFFN0IsTUFBTSxPQUFPLGNBQWUsU0FBUSxPQUFPO0lBR3ZDLFlBQVksUUFBa0I7UUFDNUIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFTSxJQUFJLENBQUMsTUFBb0I7UUFDOUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBQyxLQUFLLEVBQUMsR0FBRyxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5RixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFDLE1BQU0sRUFBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFTyxtQkFBbUI7UUFDekIsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQzdCLElBQ0UsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBYyxDQUFDO21CQUM5QyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQ3BCO2dCQUNDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2FBQ3pCO1FBQ0gsQ0FBQyxDQUFBO1FBQ0QsUUFBUSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFUSxjQUFjLENBQUMsS0FBaUI7UUFDdkMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUMzQixNQUFNLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFDakQsSUFBSSxZQUFZLElBQUksTUFBTSxFQUFFO1lBQzFCLElBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNsQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ25CO2FBQU07WUFDTCxJQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxRQUFRO2dCQUM3QixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztTQUMzQjtJQUNILENBQUM7SUFFUSxnQkFBZ0I7UUFDdkIsS0FBSyxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxhQUFhLEVBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxZQUFhLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBQyxRQUFRLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRVEsVUFBVTtRQUNqQixRQUFRLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsYUFBYyxDQUFDLENBQUM7UUFDcEUsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3JCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdG9yIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEJvdW5kc1N0YXRpYyB9IGZyb20gXCJxdWlsbFwiO1xuaW1wb3J0IHsgVG9vbGJveCB9IGZyb20gXCIuL3Rvb2xib3hcIjtcbmltcG9ydCB7IFRvb2xzU3RhdGUgfSBmcm9tIFwiLi4vaW50ZXJmYWNlcy9yaWNodGV4dC10b29sYm94LmludGVyZmFjZVwiO1xuXG5jb25zdCBUT09MQk9YX0hFSUdIVCA9IDQwO1xuY29uc3QgTUFSR0lOID0gODtcbmNvbnN0IE1PVVNFX0VWRU5UID0gJ21vdXNldXAnXG5cbmV4cG9ydCBjbGFzcyBCdWJibGVTdHJhdGVneSBleHRlbmRzIFRvb2xib3gge1xuICAgIHByaXZhdGUgY2xpY2tMaXN0ZW5lcj86IChldmVudDogTW91c2VFdmVudCkgPT4gdm9pZDtcbiAgXG4gICAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgICB0aGlzLmxpc3Rlbk91dHNpZGVDbGlja3MoKTtcbiAgICB9XG4gIFxuICAgIHB1YmxpYyBtb3ZlKGJvdW5kczogQm91bmRzU3RhdGljKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyMi5zZXRTdHlsZSh0aGlzLmNvbXBvbmVudEVsLCd0b3AnLGAke2JvdW5kcy50b3AgLSAoVE9PTEJPWF9IRUlHSFQgKyBNQVJHSU4pfXB4YCk7XG4gICAgICB0aGlzLnJlbmRlcmVyMi5zZXRTdHlsZSh0aGlzLmNvbXBvbmVudEVsLCdsZWZ0JyxgJHtib3VuZHMubGVmdH1weGApO1xuICAgIH1cbiAgXG4gICAgcHJpdmF0ZSBsaXN0ZW5PdXRzaWRlQ2xpY2tzKCl7XG4gICAgICB0aGlzLmNsaWNrTGlzdGVuZXIgPSAoZXZlbnQpID0+IHtcbiAgICAgICAgaWYoXG4gICAgICAgICAgIXRoaXMuY29tcG9uZW50RWw/LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKSBcbiAgICAgICAgICAmJiB0aGlzLmlzVmlzaWJsZSgpXG4gICAgICAgICl7XG4gICAgICAgICAgdGhpcy5kZXN0cm95Q29tcG9uZW50KCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcihNT1VTRV9FVkVOVCwgdGhpcy5jbGlja0xpc3RlbmVyKTtcbiAgICB9XG4gICAgXG4gICAgb3ZlcnJpZGUgb25Ub29sc0NoYW5nZWQoc3RhdGU6IFRvb2xzU3RhdGUpOiB2b2lkIHtcbiAgICAgIHN1cGVyLm9uVG9vbHNDaGFuZ2VkKHN0YXRlKVxuICAgICAgY29uc3QgeyBoYXNTZWxlY3Rpb24sIGhhc0ZvY3VzLCBib3VuZHMgfSA9IHN0YXRlO1xuICAgICAgaWYgKGhhc1NlbGVjdGlvbiAmJiBib3VuZHMpIHtcbiAgICAgICAgaWYoIXRoaXMuaXNWaXNpYmxlKCkpXG4gICAgICAgICAgdGhpcy5kaXNwbGF5Q29tcG9uZW50KCk7XG4gICAgICAgIHRoaXMubW92ZShib3VuZHMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYodGhpcy5pc1Zpc2libGUoKSAmJiBoYXNGb2N1cylcbiAgICAgICAgICB0aGlzLmRlc3Ryb3lDb21wb25lbnQoKTtcbiAgICAgIH1cbiAgICB9XG4gIFxuICAgIG92ZXJyaWRlIGRpc3BsYXlDb21wb25lbnQoKSB7XG4gICAgICBzdXBlci5kaXNwbGF5Q29tcG9uZW50KCk7XG4gICAgICB0aGlzLnJlbmRlcmVyMi5hcHBlbmRDaGlsZCh0aGlzLmhvc3RFbD8ubmF0aXZlRWxlbWVudCx0aGlzLmNvbXBvbmVudEVsKTtcbiAgICAgIHRoaXMuY29tcG9uZW50UmVmIS5zZXRJbnB1dCgndHlwZScsJ2J1YmJsZScpO1xuICAgIH1cbiAgICBcbiAgICBvdmVycmlkZSBkZXN0cm95QWxsKCk6IHZvaWQge1xuICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVFdmVudExpc3RlbmVyKE1PVVNFX0VWRU5ULCB0aGlzLmNsaWNrTGlzdGVuZXIhKTtcbiAgICAgIHN1cGVyLmRlc3Ryb3lBbGwoKTtcbiAgICB9XG4gIH0iXX0=
|
@@ -1,34 +0,0 @@
|
|
1
|
-
import { Toolbox } from "./toolbox";
|
2
|
-
export class TopbarStrategy extends Toolbox {
|
3
|
-
constructor(injector) {
|
4
|
-
super(injector);
|
5
|
-
this.displayComponent();
|
6
|
-
}
|
7
|
-
displayComponent() {
|
8
|
-
super.displayComponent();
|
9
|
-
const parentElement = this.renderer2.parentNode(this.hostEl?.nativeElement);
|
10
|
-
this.renderer2.appendChild(parentElement, this.componentEl);
|
11
|
-
this.renderer2.appendChild(parentElement, this.hostEl?.nativeElement);
|
12
|
-
this.componentRef.setInput('type', 'topbar');
|
13
|
-
}
|
14
|
-
prepareUpdatedTools(toolState) {
|
15
|
-
const toolbarItems = super.prepareUpdatedTools(toolState);
|
16
|
-
const { formats, hasSelection, hasFocus } = toolState;
|
17
|
-
toolbarItems.forEach(tool => {
|
18
|
-
if (!hasFocus) {
|
19
|
-
tool.disabled = true;
|
20
|
-
return;
|
21
|
-
}
|
22
|
-
if (tool.tool === 'clear') {
|
23
|
-
tool.disabled = !hasSelection;
|
24
|
-
}
|
25
|
-
else if (tool.tool === 'link') {
|
26
|
-
tool.selected = !!formats.link;
|
27
|
-
tool.disabled = !hasSelection && !formats.link;
|
28
|
-
tool.value = formats?.link;
|
29
|
-
}
|
30
|
-
});
|
31
|
-
return toolbarItems;
|
32
|
-
}
|
33
|
-
}
|
34
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJveC10b3BiYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc2tzdWl0ZS1jaXRydXMvc3JjL2xpYi9jbGFzc2VzL3Rvb2xib3gtdG9wYmFyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFHcEMsTUFBTSxPQUFPLGNBQWUsU0FBUSxPQUFPO0lBRXZDLFlBQVksUUFBa0I7UUFDNUIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFHUSxnQkFBZ0I7UUFDdkIsS0FBSyxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDekIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQztRQUM1RSxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxZQUFhLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBQyxRQUFRLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRVEsbUJBQW1CLENBQUMsU0FBcUI7UUFDaEQsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzFELE1BQU0sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxHQUFHLFNBQVMsQ0FBQztRQUV0RCxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzFCLElBQUcsQ0FBQyxRQUFRLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUE7Z0JBQ3BCLE9BQU87YUFDUjtZQUVELElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxZQUFZLENBQUM7YUFDL0I7aUJBQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRTtnQkFDL0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztnQkFDL0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLFlBQVksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0JBQy9DLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxFQUFFLElBQUksQ0FBQzthQUM1QjtRQUNILENBQUMsQ0FBQyxDQUFBO1FBQ0osT0FBTyxZQUFZLENBQUE7SUFDbkIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgVG9vbGJveCB9IGZyb20gXCIuL3Rvb2xib3hcIjtcbmltcG9ydCB7IFRvb2xiYXJJdGVtLCBUb29sc1N0YXRlIH0gZnJvbSBcIi4uL2ludGVyZmFjZXMvcmljaHRleHQtdG9vbGJveC5pbnRlcmZhY2VcIjtcblxuZXhwb3J0IGNsYXNzIFRvcGJhclN0cmF0ZWd5IGV4dGVuZHMgVG9vbGJveCB7XG5cbiAgICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICAgIHRoaXMuZGlzcGxheUNvbXBvbmVudCgpO1xuICAgIH1cbiAgXG4gIFxuICAgIG92ZXJyaWRlIGRpc3BsYXlDb21wb25lbnQoKTogdm9pZCB7XG4gICAgICBzdXBlci5kaXNwbGF5Q29tcG9uZW50KCk7XG4gICAgICBjb25zdCBwYXJlbnRFbGVtZW50ID0gdGhpcy5yZW5kZXJlcjIucGFyZW50Tm9kZSh0aGlzLmhvc3RFbD8ubmF0aXZlRWxlbWVudCk7XG4gICAgICB0aGlzLnJlbmRlcmVyMi5hcHBlbmRDaGlsZChwYXJlbnRFbGVtZW50LHRoaXMuY29tcG9uZW50RWwpO1xuICAgICAgdGhpcy5yZW5kZXJlcjIuYXBwZW5kQ2hpbGQocGFyZW50RWxlbWVudCwgdGhpcy5ob3N0RWw/Lm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgdGhpcy5jb21wb25lbnRSZWYhLnNldElucHV0KCd0eXBlJywndG9wYmFyJyk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgcHJlcGFyZVVwZGF0ZWRUb29scyh0b29sU3RhdGU6IFRvb2xzU3RhdGUpOiBUb29sYmFySXRlbVtde1xuICAgICAgY29uc3QgdG9vbGJhckl0ZW1zID0gc3VwZXIucHJlcGFyZVVwZGF0ZWRUb29scyh0b29sU3RhdGUpO1xuICAgICAgY29uc3QgeyBmb3JtYXRzLCBoYXNTZWxlY3Rpb24sIGhhc0ZvY3VzIH0gPSB0b29sU3RhdGU7XG5cbiAgICAgIHRvb2xiYXJJdGVtcy5mb3JFYWNoKHRvb2wgPT4ge1xuICAgICAgICBpZighaGFzRm9jdXMpIHtcbiAgICAgICAgICB0b29sLmRpc2FibGVkID0gdHJ1ZVxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0b29sLnRvb2wgPT09ICdjbGVhcicpIHtcbiAgICAgICAgICB0b29sLmRpc2FibGVkID0gIWhhc1NlbGVjdGlvbjtcbiAgICAgICAgfSBlbHNlIGlmICh0b29sLnRvb2wgPT09ICdsaW5rJykge1xuICAgICAgICAgIHRvb2wuc2VsZWN0ZWQgPSAhIWZvcm1hdHMubGluaztcbiAgICAgICAgICB0b29sLmRpc2FibGVkID0gIWhhc1NlbGVjdGlvbiAmJiAhZm9ybWF0cy5saW5rO1xuICAgICAgICAgIHRvb2wudmFsdWUgPSBmb3JtYXRzPy5saW5rO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgIHJldHVybiB0b29sYmFySXRlbXNcbiAgICB9XG4gIH1cbiAgIl19
|