quill-resize-module 2.0.7 → 2.1.0-beta.0

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/demo/index.ts ADDED
@@ -0,0 +1,96 @@
1
+ import 'quill/dist/quill.snow.css'
2
+ import '../src/assets/resize.scss'
3
+
4
+ import Resize from '../src/index'
5
+ import type { QuillResizeOptions } from '../src/DefaultOptions'
6
+ import '../src/types'
7
+
8
+ import _Quill from 'quill'
9
+ const Quill = window.Quill || _Quill
10
+
11
+ Quill.register('modules/resize', Resize)
12
+
13
+ // 配置 resize 模块,使用类型注释确保类型安全
14
+ const resizeConfig: QuillResizeOptions = {
15
+ // set embed tags to capture resize
16
+ embedTags: ['VIDEO', 'IFRAME'],
17
+ // custom toolbar
18
+ tools: [
19
+ 'left', 'center', 'right', 'full', 'edit',
20
+ {
21
+ text: 'Alt',
22
+ attrs: {
23
+ title: 'Set image alt',
24
+ class: 'btn-alt',
25
+ },
26
+ verify (activeEle) {
27
+ return (activeEle && activeEle.tagName === 'IMG')
28
+ },
29
+ handler (evt, button, activeEle) {
30
+ const imgEle = activeEle as HTMLImageElement
31
+ const alt = imgEle.alt || ''
32
+ const newAlt = window.prompt('Alt for image', alt)
33
+ if (newAlt == null) return
34
+ imgEle.setAttribute('alt', newAlt)
35
+ },
36
+ },
37
+ ],
38
+
39
+ // Triggered when an element is activated (selected)
40
+ onActive: function (blot, target) {
41
+ console.log('Element activated:', this.quill, blot, target)
42
+ },
43
+
44
+ // Triggered when an element loses active state
45
+ onInactive: function (blot, target) {
46
+ console.log('Element deactivated:', this.quill, blot, target)
47
+ },
48
+
49
+ // Triggered when element size changed
50
+ onChangeSize: function (blot, target, size) {
51
+ console.log('Size changed:', this.quill, blot, target, size)
52
+ },
53
+ }
54
+
55
+ const demoEditor = new Quill('#editor', {
56
+ theme: 'snow',
57
+ modules: {
58
+ toolbar: [
59
+ [{ size: [] }],
60
+ ['bold', 'italic', 'underline', 'strike', { align: [] }, { color: [] }],
61
+ [{ list: 'ordered' }, { list: 'bullet' }],
62
+ ['link', 'image', 'video'],
63
+ ['clean'],
64
+ ],
65
+ resize: resizeConfig,
66
+ },
67
+ })
68
+
69
+ const $result = document.querySelector('#result') as HTMLTextAreaElement
70
+ $result.value = `Quill V${Quill.version}`
71
+ document.querySelector('.btn-html')!.addEventListener('click', function () {
72
+ $result.value = demoEditor.root.innerHTML
73
+ })
74
+ document.querySelector('.btn-content')!.addEventListener('click', function () {
75
+ const result = demoEditor.getContents()
76
+ $result.value = JSON.stringify(result)
77
+ })
78
+ document.querySelector('.btn-text')!.addEventListener('click', function () {
79
+ $result.value = demoEditor.getText()
80
+ })
81
+ document.querySelector('.btn-set-html')!.addEventListener('click', function () {
82
+ const contents = demoEditor.clipboard.convert({
83
+ html: `${$result.value}<p><br></p>`,
84
+ text: '\n',
85
+ })
86
+ demoEditor.setContents(contents)
87
+ })
88
+ document.querySelector('.btn-set-content')!.addEventListener('click', function () {
89
+ demoEditor.setContents(JSON.parse($result.value))
90
+ })
91
+ document.querySelector('.btn-undo')!.addEventListener('click', function () {
92
+ demoEditor.history.undo()
93
+ })
94
+ document.querySelector('.btn-redo')!.addEventListener('click', function () {
95
+ demoEditor.history.redo()
96
+ })
@@ -0,0 +1,40 @@
1
+ export type ModuleName = 'DisplaySize' | 'Toolbar' | 'Resize' | 'Keyboard';
2
+ export interface SizeLimit {
3
+ minWidth?: number;
4
+ maxWidth?: number;
5
+ minHeight?: number;
6
+ maxHeight?: number;
7
+ ratio?: number;
8
+ }
9
+ export interface ParchmentConfig {
10
+ attribute?: string[];
11
+ limit?: SizeLimit;
12
+ }
13
+ export interface CustomToolConfig {
14
+ toolClass?: string;
15
+ icon?: string;
16
+ text?: string;
17
+ attrs?: Record<string, string>;
18
+ verify?: (activeEle: HTMLElement, blot?: any) => boolean;
19
+ handler?: (evt: Event, button: HTMLElement, activeEle: HTMLElement) => void;
20
+ }
21
+ export interface QuillResizeOptions {
22
+ modules?: (ModuleName | any)[];
23
+ keyboardSelect?: boolean;
24
+ selectedClass?: string;
25
+ activeClass?: string;
26
+ embedTags?: string[];
27
+ tools?: (string | CustomToolConfig)[];
28
+ parchment?: {
29
+ [key: string]: ParchmentConfig;
30
+ };
31
+ onActive?: (blot: any, activeEle: HTMLElement) => void;
32
+ onInactive?: (blot: any, activeEle: HTMLElement) => void;
33
+ onChangeSize?: (blot: any, activeEle: HTMLElement, size: {
34
+ width?: number;
35
+ height?: number;
36
+ }) => void;
37
+ }
38
+ declare const defaultOptions: QuillResizeOptions;
39
+ export default defaultOptions;
40
+ //# sourceMappingURL=DefaultOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultOptions.d.ts","sourceRoot":"","sources":["../src/DefaultOptions.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,aAAa,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE3E,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC;IACzD,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,KAAK,IAAI,CAAC;CAC7E;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,CAAC,UAAU,GAAG,GAAG,CAAC,EAAE,CAAC;IAC/B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,CAAC,MAAM,GAAG,gBAAgB,CAAC,EAAE,CAAC;IACtC,SAAS,CAAC,EAAE;QACV,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAC;KAChC,CAAC;IACF,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,KAAK,IAAI,CAAC;IACvD,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,KAAK,IAAI,CAAC;IACzD,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CACvG;AAED,QAAA,MAAM,cAAc,EAAE,kBAuBrB,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -0,0 +1,57 @@
1
+ import { QuillResizeOptions } from './DefaultOptions';
2
+ import Base from './modules/BaseModule';
3
+ import DisplaySize from './modules/DisplaySize';
4
+ import Toolbar from './modules/Toolbar';
5
+ import Resize from './modules/Resize';
6
+ import Keyboard from './modules/Keyboard';
7
+ import Quill from 'quill';
8
+ declare global {
9
+ interface Window {
10
+ Quill?: typeof Quill;
11
+ }
12
+ }
13
+ /**
14
+ * Custom module for quilljs to allow user to resize elements
15
+ * (Works on Chrome, Edge, Safari and replaces Firefox's native resize behavior)
16
+ * @see https://quilljs.com/blog/building-a-custom-module/
17
+ */
18
+ export default class QuillResize {
19
+ static Modules: {
20
+ Base: typeof Base;
21
+ DisplaySize: typeof DisplaySize;
22
+ Toolbar: typeof Toolbar;
23
+ Resize: typeof Resize;
24
+ Keyboard: typeof Keyboard;
25
+ };
26
+ quill: Quill;
27
+ options: QuillResizeOptions;
28
+ moduleClasses: any[];
29
+ modules: any[];
30
+ selectedBlots: any[];
31
+ activeEle?: HTMLElement;
32
+ blot?: any;
33
+ overlay?: HTMLElement;
34
+ embedClassName?: string;
35
+ hideProxy?: (evt: Event) => void;
36
+ updateOverlayPositionProxy?: () => void;
37
+ updateFromModule?: boolean;
38
+ constructor(quill: Quill, options?: QuillResizeOptions);
39
+ initializeModules(): void;
40
+ initializeEmbed(): void;
41
+ onUpdate(fromModule?: boolean): void;
42
+ removeModules(): void;
43
+ handleEdit(): void;
44
+ handleClick(evt: MouseEvent): void;
45
+ judgeShow(blot: any, target?: HTMLElement): boolean;
46
+ handleChange(delta: any, oldDelta: any, source: string): void;
47
+ show(target?: HTMLElement): void;
48
+ showOverlay(): void;
49
+ hideOverlay(): void;
50
+ repositionElements(): void;
51
+ updateOverlayPosition(): void;
52
+ addBlotsSelectedClass(range: any, oldRange: any): void;
53
+ removeBlotsSelectedClass(ignoreBlots?: any | any[]): void;
54
+ hide(): void;
55
+ setUserSelect(value: string): void;
56
+ }
57
+ //# sourceMappingURL=QuillResize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuillResize.d.ts","sourceRoot":"","sources":["../src/QuillResize.ts"],"names":[],"mappings":"AAAA,OAAuB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,IAAI,MAAM,sBAAsB,CAAC;AACxC,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAChD,OAAO,OAAO,MAAM,mBAAmB,CAAC;AACxC,OAAO,MAAM,MAAM,kBAAkB,CAAC;AACtC,OAAO,QAAQ,MAAM,oBAAoB,CAAC;AAE1C,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;KACtB;CACF;AAKD;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,WAAW;IAC9B,MAAM,CAAC,OAAO;;;;;;MAAoD;IAElE,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,kBAAkB,CAAC;IAC5B,aAAa,EAAE,GAAG,EAAE,CAAC;IACrB,OAAO,EAAE,GAAG,EAAE,CAAM;IACpB,aAAa,EAAE,GAAG,EAAE,CAAM;IAC1B,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,0BAA0B,CAAC,EAAE,MAAM,IAAI,CAAC;IACxC,gBAAgB,CAAC,EAAE,OAAO,CAAC;gBAEf,KAAK,EAAE,KAAK,EAAE,OAAO,GAAE,kBAAuB;IAqD1D,iBAAiB,IAAI,IAAI;IAczB,eAAe,IAAI,IAAI;IAYvB,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,IAAI;IAQpC,aAAa,IAAI,IAAI;IAQrB,UAAU,IAAI,IAAI;IAQlB,WAAW,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI;IAgClC,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO;IA8BnD,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAU7D,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI;IAOhC,WAAW,IAAI,IAAI;IA+BnB,WAAW,IAAI,IAAI;IAiBnB,kBAAkB,IAAI,IAAI;IAmB1B,qBAAqB,IAAI,IAAI;IAI7B,qBAAqB,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI;IAiBtD,wBAAwB,CAAC,WAAW,GAAE,GAAG,GAAG,GAAG,EAAO,GAAG,IAAI;IAU7D,IAAI,IAAI,IAAI;IASZ,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAYnC"}
package/dist/Util.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ /**
2
+ * 生成一个精炼的随机字符串
3
+ * @param {number} length - 生成字符串的长度
4
+ * @returns {string} - 随机字符串
5
+ */
6
+ export declare function randomString(length?: number): string;
7
+ //# sourceMappingURL=Util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Util.d.ts","sourceRoot":"","sources":["../src/Util.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,GAAE,MAAU,GAAG,MAAM,CAGvD"}
@@ -0,0 +1,5 @@
1
+ import QuillResize from './QuillResize';
2
+ import './assets/resize.scss';
3
+ export * from './DefaultOptions';
4
+ export default QuillResize;
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,sBAAsB,CAAC;AAE9B,cAAc,kBAAkB,CAAC;AACjC,eAAe,WAAW,CAAC"}
@@ -0,0 +1,17 @@
1
+ import Quill from 'quill';
2
+ import { QuillResizeOptions } from '../DefaultOptions';
3
+ import QuillResize from '../QuillResize';
4
+ export default class BaseModule {
5
+ resizer: any;
6
+ quill: Quill;
7
+ overlay: HTMLElement;
8
+ activeEle: HTMLElement;
9
+ blot: any;
10
+ options: QuillResizeOptions;
11
+ requestUpdate: () => void;
12
+ constructor(resizer: QuillResize);
13
+ onCreate(): void;
14
+ onDestroy(): void;
15
+ onUpdate(): void;
16
+ }
17
+ //# sourceMappingURL=BaseModule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseModule.d.ts","sourceRoot":"","sources":["../../src/modules/BaseModule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,WAAW,MAAM,gBAAgB,CAAC;AAEzC,MAAM,CAAC,OAAO,OAAO,UAAU;IAC7B,OAAO,EAAE,GAAG,CAAC;IACb,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,WAAW,CAAC;IACrB,SAAS,EAAE,WAAW,CAAC;IACvB,IAAI,EAAE,GAAG,CAAC;IACV,OAAO,EAAE,kBAAkB,CAAC;IAC5B,aAAa,EAAE,MAAM,IAAI,CAAC;gBAEd,OAAO,EAAE,WAAW;IA4BhC,QAAQ,IAAI,IAAI;IAOhB,SAAS,IAAI,IAAI;IAQjB,QAAQ,IAAI,IAAI;CACjB"}
@@ -0,0 +1,8 @@
1
+ import BaseModule from './BaseModule';
2
+ export default class DisplaySize extends BaseModule {
3
+ display: HTMLElement | null;
4
+ onCreate(): void;
5
+ onUpdate(): void;
6
+ getCurrentSize(): [number, number];
7
+ }
8
+ //# sourceMappingURL=DisplaySize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DisplaySize.d.ts","sourceRoot":"","sources":["../../src/modules/DisplaySize.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,cAAc,CAAC;AAEtC,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,UAAU;IACjD,OAAO,EAAE,WAAW,GAAG,IAAI,CAAQ;IAEnC,QAAQ,IAAI,IAAI;IAShB,QAAQ,IAAI,IAAI;IAiChB,cAAc,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;CAGnC"}
@@ -0,0 +1,31 @@
1
+ import BaseModule from './BaseModule';
2
+ import Quill from 'quill';
3
+ declare global {
4
+ interface Window {
5
+ Quill?: typeof Quill;
6
+ }
7
+ }
8
+ interface KeyboardKeys {
9
+ BACKSPACE: string | number;
10
+ TAB: string | number;
11
+ ENTER: string | number;
12
+ ESCAPE: string | number;
13
+ LEFT: string | number;
14
+ UP: string | number;
15
+ RIGHT: string | number;
16
+ DOWN: string | number;
17
+ DELETE: string | number;
18
+ }
19
+ export default class Keyboard extends BaseModule {
20
+ static keys: KeyboardKeys;
21
+ keyboardProxy: (evt: KeyboardEvent) => void;
22
+ static injectInit(quill: Quill): void;
23
+ static makeArrowHandler(key: string | number, shiftKey: boolean): any;
24
+ onCreate(): void;
25
+ onDestroy(): void;
26
+ keyboardHandle(evt: KeyboardEvent): void;
27
+ getOtherLineIndex(dir: number): number;
28
+ dispatchEvent(evt: Event): void;
29
+ }
30
+ export {};
31
+ //# sourceMappingURL=Keyboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Keyboard.d.ts","sourceRoot":"","sources":["../../src/modules/Keyboard.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;KACtB;CACF;AAiBD,UAAU,YAAY;IACpB,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;CACzB;AAED,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,UAAU;IAC9C,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC;IAC1B,aAAa,EAAG,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC;IAE7C,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAWrC,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,GAAG;IA6CrE,QAAQ,IAAI,IAAI;IAUhB,SAAS,IAAI,IAAI;IAIjB,cAAc,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI;IA2CxC,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAiBtC,aAAa,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI;CAKhC"}
@@ -0,0 +1,37 @@
1
+ import BaseModule from './BaseModule';
2
+ import { ParchmentConfig, SizeLimit } from '../DefaultOptions';
3
+ interface SizeResult {
4
+ width?: number | string;
5
+ height?: number | string;
6
+ }
7
+ interface NaturalSize {
8
+ width: number;
9
+ height: number;
10
+ }
11
+ export default class Resize extends BaseModule {
12
+ blotOptions: ParchmentConfig;
13
+ boxes: HTMLElement[];
14
+ dragBox: HTMLElement;
15
+ dragStartX: number;
16
+ dragStartY: number;
17
+ preDragSize: {
18
+ width: number;
19
+ height: number;
20
+ };
21
+ naturalSize: NaturalSize;
22
+ handleDragProxy: (evt: MouseEvent) => void;
23
+ handleMouseupProxy: (evt: MouseEvent) => void;
24
+ onCreate(): void;
25
+ onDestroy(): void;
26
+ addBox(place: string): void;
27
+ handleMousedown(evt: MouseEvent): void;
28
+ handleMouseup(evt: MouseEvent): void;
29
+ handleDrag(evt: MouseEvent): void;
30
+ calcSize(evt: MouseEvent, limit?: SizeLimit & {
31
+ unit?: boolean;
32
+ }): SizeResult;
33
+ getNaturalSize(): NaturalSize;
34
+ setCursor(value: string): void;
35
+ }
36
+ export {};
37
+ //# sourceMappingURL=Resize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Resize.d.ts","sourceRoot":"","sources":["../../src/modules/Resize.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE/D,UAAU,UAAU;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B;AAED,UAAU,WAAW;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,UAAU;IAC5C,WAAW,EAAG,eAAe,CAAC;IAC9B,KAAK,EAAE,WAAW,EAAE,CAAM;IAC1B,OAAO,EAAG,WAAW,CAAC;IACtB,UAAU,EAAG,MAAM,CAAC;IACpB,UAAU,EAAG,MAAM,CAAC;IACpB,WAAW,EAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,WAAW,EAAG,WAAW,CAAC;IAC1B,eAAe,EAAG,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC;IAC5C,kBAAkB,EAAG,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC;IAE/C,QAAQ,IAAI,IAAI;IAYhB,SAAS,IAAI,IAAI;IAKjB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAa3B,eAAe,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI;IAwBtC,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI;IAcpC,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI;IAejC,QAAQ,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,GAAE,SAAS,GAAG;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,UAAU;IAoEjF,cAAc,IAAI,WAAW;IAmB7B,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAK/B"}
@@ -0,0 +1,35 @@
1
+ import BaseModule from './BaseModule';
2
+ import Quill from 'quill';
3
+ declare global {
4
+ interface Window {
5
+ Quill?: typeof Quill;
6
+ }
7
+ }
8
+ interface ToolConfig {
9
+ toolClass?: string;
10
+ icon?: string;
11
+ text?: string;
12
+ attrs?: {
13
+ [key: string]: string;
14
+ };
15
+ verify?: (this: Toolbar, activeEle: HTMLElement, blot: any) => boolean;
16
+ isApplied?: (this: Toolbar, activeEle: HTMLElement, blot: any) => boolean;
17
+ handler?: (this: Toolbar, evt: MouseEvent, button: HTMLButtonElement, activeEle: HTMLElement, blot: any) => boolean | void;
18
+ }
19
+ export default class Toolbar extends BaseModule {
20
+ static Icons: {
21
+ [key: string]: string;
22
+ };
23
+ static Tools: {
24
+ [key: string]: ToolConfig & {
25
+ _getFormatValue?: (activeEle: HTMLElement, blot: any) => string;
26
+ };
27
+ };
28
+ toolbar: HTMLElement;
29
+ onCreate(): void;
30
+ _addToolbarButtons(): void;
31
+ _getFormatValue(activeEle: HTMLElement, blot: any): string;
32
+ _applyToolFormatting(toolClass: string): void;
33
+ }
34
+ export {};
35
+ //# sourceMappingURL=Toolbar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Toolbar.d.ts","sourceRoot":"","sources":["../../src/modules/Toolbar.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;KACtB;CACF;AAgCD,UAAU,UAAU;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAClC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC;IACvE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC;IAC1E,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,KAAK,OAAO,GAAG,IAAI,CAAC;CAC5H;AAED,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,UAAU;IAC7C,MAAM,CAAC,KAAK,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAMrC;IAEF,MAAM,CAAC,KAAK,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG;YAAE,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,KAAK,MAAM,CAAA;SAAE,CAAA;KAAE,CA8B/G;IAEF,OAAO,EAAG,WAAW,CAAC;IAEtB,QAAQ,IAAI,IAAI;IAUhB,kBAAkB,IAAI,IAAI;IA+C1B,eAAe,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,GAAG,MAAM;IAY1D,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;CAW9C"}
package/dist/resize.css CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Quill Resize Module v2.0.7
2
+ * Quill Resize Module v2.1.0-beta.0
3
3
  * https://github.com/mudoo/quill-resize-module
4
4
  */
5
5
  .ql-resize-overlay{position:absolute;box-sizing:border-box;border:1px dashed #444;pointer-events:none}.ql-resize-toolbar{position:absolute;top:-12px;right:0;left:0;height:0;min-width:120px;text-align:center;color:#333;box-sizing:border-box;cursor:default;pointer-events:all}.ql-resize-toolbar button{display:inline-block;min-width:24px;height:24px;padding:2px;background-color:#fff;border:1px solid #999;vertical-align:middle}.ql-resize-toolbar button:first-child{border-top-left-radius:3px;border-bottom-left-radius:3px}.ql-resize-toolbar button:last-child{border-bottom-right-radius:3px;border-top-right-radius:3px}.ql-resize-toolbar button:not(:first-child){border-left:none}.ql-resize-toolbar button.active{filter:invert(20%)}.ql-resize-toolbar svg{width:18px}.ql-resize-handle{position:absolute;height:12px;width:12px;background-color:#fff;border:1px solid #777;box-sizing:border-box;opacity:.8;pointer-events:all}.ql-resize-handle.tl{top:-6px;left:-6px;cursor:nwse-resize}.ql-resize-handle.tr{top:-6px;right:-6px;cursor:nesw-resize}.ql-resize-handle.br{right:-6px;bottom:-6px;cursor:nwse-resize}.ql-resize-handle.bl{left:-6px;bottom:-6px;cursor:nwse-resize}.ql-resize-display{position:absolute;padding:4px 8px;text-align:center;background-color:#fff;color:#333;border:1px solid #777;box-sizing:border-box;opacity:.8;cursor:default;line-height:1}.ql-resize-style-left{float:left;margin:0 1em 1em 0}.ql-resize-style-center{display:block;margin:auto;text-align:center}.ql-resize-style-right{float:right;margin:0 0 1em 1em}.ql-resize-style-full{width:100% !important}.ql-resize-style-full>*{width:100%}