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 +96 -0
- package/dist/DefaultOptions.d.ts +40 -0
- package/dist/DefaultOptions.d.ts.map +1 -0
- package/dist/QuillResize.d.ts +57 -0
- package/dist/QuillResize.d.ts.map +1 -0
- package/dist/Util.d.ts +7 -0
- package/dist/Util.d.ts.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/modules/BaseModule.d.ts +17 -0
- package/dist/modules/BaseModule.d.ts.map +1 -0
- package/dist/modules/DisplaySize.d.ts +8 -0
- package/dist/modules/DisplaySize.d.ts.map +1 -0
- package/dist/modules/Keyboard.d.ts +31 -0
- package/dist/modules/Keyboard.d.ts.map +1 -0
- package/dist/modules/Resize.d.ts +37 -0
- package/dist/modules/Resize.d.ts.map +1 -0
- package/dist/modules/Toolbar.d.ts +35 -0
- package/dist/modules/Toolbar.d.ts.map +1 -0
- package/dist/resize.css +1 -1
- package/dist/resize.esm.js +944 -0
- package/dist/resize.js +2 -2
- package/package.json +20 -4
- package/src/DefaultOptions.ts +65 -0
- package/src/{QuillResize.js → QuillResize.ts} +71 -55
- package/src/{Util.js → Util.ts} +3 -3
- package/src/{index.js → index.ts} +1 -0
- package/src/modules/{BaseModule.js → BaseModule.ts} +16 -4
- package/src/modules/{DisplaySize.js → DisplaySize.ts} +8 -6
- package/src/modules/{Keyboard.js → Keyboard.ts} +37 -23
- package/src/modules/{Resize.js → Resize.ts} +51 -29
- package/src/modules/{Toolbar.js → Toolbar.ts} +50 -38
- package/src/types.d.ts +8 -0
- package/demo/index.js +0 -90
- package/src/DefaultOptions.js +0 -24
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 @@
|
|
|
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"}
|
package/dist/index.d.ts
ADDED
|
@@ -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 @@
|
|
|
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.
|
|
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%}
|