@docmentis/udoc-editor 0.8.4 → 0.8.6
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/dist/edit-client.d.ts +5 -4
- package/dist/edit-client.d.ts.map +1 -1
- package/dist/edit-client.js +6 -5
- package/dist/edit-client.js.map +1 -1
- package/dist/edit-mode.d.ts.map +1 -1
- package/dist/edit-mode.js +5 -2
- package/dist/edit-mode.js.map +1 -1
- package/dist/grips.d.ts.map +1 -1
- package/dist/grips.js +11 -7
- package/dist/grips.js.map +1 -1
- package/dist/ruler-controls.d.ts +54 -0
- package/dist/ruler-controls.d.ts.map +1 -0
- package/dist/ruler-controls.js +270 -0
- package/dist/ruler-controls.js.map +1 -0
- package/dist/ruler-edits.d.ts +38 -0
- package/dist/ruler-edits.d.ts.map +1 -0
- package/dist/ruler-edits.js +157 -0
- package/dist/ruler-edits.js.map +1 -0
- package/dist/ruler.d.ts +6 -3
- package/dist/ruler.d.ts.map +1 -1
- package/dist/ruler.js +174 -33
- package/dist/ruler.js.map +1 -1
- package/dist/state.d.ts +7 -0
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js +2 -0
- package/dist/state.js.map +1 -1
- package/dist/styles.d.ts.map +1 -1
- package/dist/styles.js +99 -0
- package/dist/styles.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/worker/handlers.d.ts.map +1 -1
- package/dist/worker/handlers.js +3 -1
- package/dist/worker/handlers.js.map +1 -1
- package/dist/worker/protocol.d.ts +3 -0
- package/dist/worker/protocol.d.ts.map +1 -1
- package/dist/worker/worker-source.js +1 -1
- package/package.json +3 -3
package/dist/edit-client.d.ts
CHANGED
|
@@ -93,9 +93,10 @@ export declare class EditClient {
|
|
|
93
93
|
*/
|
|
94
94
|
insertImage(bytes: Uint8Array, contentType: string): Promise<DocumentLayout>;
|
|
95
95
|
/**
|
|
96
|
-
* Where
|
|
97
|
-
*
|
|
98
|
-
*
|
|
96
|
+
* Where handle `index` of the selection lands if dragged to `(x, y)` — the
|
|
97
|
+
* shape's text warp's handle when `textWarp`, as the streamed handle says,
|
|
98
|
+
* else its outline's — with `(x, y)` a point in that handle's **own local
|
|
99
|
+
* space** (the space the streamed handle's `point` is in), not CSS px.
|
|
99
100
|
*
|
|
100
101
|
* A handle travels the track its geometry describes and stops at the ends of
|
|
101
102
|
* its range, so this is what a live drag draws: the position the release will
|
|
@@ -104,7 +105,7 @@ export declare class EditClient {
|
|
|
104
105
|
* selection offers none. Cheap enough to call per pointer-move; the caller
|
|
105
106
|
* coalesces it latest-wins, like the client's `hitTest`.
|
|
106
107
|
*/
|
|
107
|
-
selectionHandlePreview(index: number, x: number, y: number): Promise<SelectionHandle | null>;
|
|
108
|
+
selectionHandlePreview(textWarp: boolean, index: number, x: number, y: number): Promise<SelectionHandle | null>;
|
|
108
109
|
/**
|
|
109
110
|
* Every slide master, summarized for the New-Slide picker: its id, its
|
|
110
111
|
* slide layouts' ids (each at page `1 + index` within the slide master's
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edit-client.d.ts","sourceRoot":"","sources":["../src/edit-client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC5G,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC5G,OAAO,KAAK,EAAe,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE1E,0EAA0E;AAC1E,qBAAa,UAAU;;gBAGP,MAAM,EAAE,YAAY;IAehC;;;;;;OAMG;IACH,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAI1C;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI;IAIxC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI;IAIrC;;;;;OAKG;IACH,YAAY,IAAI,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAI5C;;;;;;;;;;;OAWG;IACH,mBAAmB,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAInD;;;;;;;;OAQG;IACH,qBAAqB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI1C;;;;;;;OAOG;IACH,YAAY,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAIrC;;;;;;;OAOG;IACH,iBAAiB,CACb,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACb,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAWnC;;;;;;OAMG;IACH,KAAK,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC;IAItD;;;;;;OAMG;IACH,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAM5E
|
|
1
|
+
{"version":3,"file":"edit-client.d.ts","sourceRoot":"","sources":["../src/edit-client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC5G,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC5G,OAAO,KAAK,EAAe,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE1E,0EAA0E;AAC1E,qBAAa,UAAU;;gBAGP,MAAM,EAAE,YAAY;IAehC;;;;;;OAMG;IACH,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAI1C;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI;IAIxC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI;IAIrC;;;;;OAKG;IACH,YAAY,IAAI,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAI5C;;;;;;;;;;;OAWG;IACH,mBAAmB,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAInD;;;;;;;;OAQG;IACH,qBAAqB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI1C;;;;;;;OAOG;IACH,YAAY,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAIrC;;;;;;;OAOG;IACH,iBAAiB,CACb,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACb,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAWnC;;;;;;OAMG;IACH,KAAK,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC;IAItD;;;;;;OAMG;IACH,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAM5E;;;;;;;;;;;;OAYG;IACH,sBAAsB,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAI/G;;;;;;OAMG;IACH,mBAAmB,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;CAGvD;AAED,mFAAmF;AACnF,MAAM,WAAW,QAAS,SAAQ,WAAW;IACzC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC7B"}
|
package/dist/edit-client.js
CHANGED
|
@@ -126,9 +126,10 @@ export class EditClient {
|
|
|
126
126
|
return this.#request({ type: "insertImage", bytes: buffer, contentType }, { transfer: [buffer] });
|
|
127
127
|
}
|
|
128
128
|
/**
|
|
129
|
-
* Where
|
|
130
|
-
*
|
|
131
|
-
*
|
|
129
|
+
* Where handle `index` of the selection lands if dragged to `(x, y)` — the
|
|
130
|
+
* shape's text warp's handle when `textWarp`, as the streamed handle says,
|
|
131
|
+
* else its outline's — with `(x, y)` a point in that handle's **own local
|
|
132
|
+
* space** (the space the streamed handle's `point` is in), not CSS px.
|
|
132
133
|
*
|
|
133
134
|
* A handle travels the track its geometry describes and stops at the ends of
|
|
134
135
|
* its range, so this is what a live drag draws: the position the release will
|
|
@@ -137,8 +138,8 @@ export class EditClient {
|
|
|
137
138
|
* selection offers none. Cheap enough to call per pointer-move; the caller
|
|
138
139
|
* coalesces it latest-wins, like the client's `hitTest`.
|
|
139
140
|
*/
|
|
140
|
-
selectionHandlePreview(index, x, y) {
|
|
141
|
-
return this.#request({ type: "selectionHandlePreview", index, x, y });
|
|
141
|
+
selectionHandlePreview(textWarp, index, x, y) {
|
|
142
|
+
return this.#request({ type: "selectionHandlePreview", textWarp, index, x, y });
|
|
142
143
|
}
|
|
143
144
|
/**
|
|
144
145
|
* Every slide master, summarized for the New-Slide picker: its id, its
|
package/dist/edit-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edit-client.js","sourceRoot":"","sources":["../src/edit-client.ts"],"names":[],"mappings":"AAOA,0EAA0E;AAC1E,MAAM,OAAO,UAAU;IACV,OAAO,CAAe;IAE/B,YAAY,MAAoB;QAC5B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IAC1B,CAAC;IAED,QAAQ,CACJ,OAAoB,EACpB,OAAoF;QAEpF,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAI,OAAO,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,OAAoB;QACtB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED;;;;;;OAMG;IACH,kBAAkB,CAAC,OAAgB;QAC/B,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,CAAC,CAAC;IACxD,CAAC;IAED;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAW;QAC7B,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,EAAE,EAAE,CAAC,CAAC;IACtD,CAAC;IAED;;;;OAIG;IACH,kBAAkB,CAAC,EAAW;QAC1B,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE,EAAE,CAAC,CAAC;IACnD,CAAC;IAED;;;;;OAKG;IACH,YAAY;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;IACnD,CAAC;IAED;;;;;;;;;;;OAWG;IACH,mBAAmB;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED;;;;;;;;OAQG;IACH,qBAAqB;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;;;OAOG;IACH,YAAY;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;IACnD,CAAC;IAED;;;;;;;OAOG;IACH,iBAAiB,CACb,MAAc,EACd,IAAa,EACb,MAAe,EACf,IAAY,EACZ,IAAY;QAEZ,OAAO,IAAI,CAAC,QAAQ,CAAC;YACjB,IAAI,EAAE,mBAAmB;YACzB,MAAM;YACN,IAAI;YACJ,MAAM;YACN,IAAI;YACJ,IAAI;SACP,CAAC,CAAC;IACP,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,QAAsB;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;IACjF,CAAC;IAED;;;;;;OAMG;IACH,WAAW,CAAC,KAAiB,EAAE,WAAmB;QAC9C,uEAAuE;QACvE,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC;QACpC,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACtG,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"edit-client.js","sourceRoot":"","sources":["../src/edit-client.ts"],"names":[],"mappings":"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"}
|
package/dist/edit-mode.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edit-mode.d.ts","sourceRoot":"","sources":["../src/edit-mode.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAW,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAsBrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"edit-mode.d.ts","sourceRoot":"","sources":["../src/edit-mode.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAW,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAsBrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAS5C,6FAA6F;AAC7F,MAAM,WAAW,QAAS,SAAQ,WAAW;IACzC,8EAA8E;IAC9E,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/C,kEAAkE;IAClE,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACrC,wDAAwD;IACxD,WAAW,IAAI,UAAU,CAAC;IAC1B,kDAAkD;IAClD,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IAChC,uEAAuE;IACvE,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtE;AAyGD,4CAA4C;AAC5C,wBAAgB,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,QAAQ,CAsG7D"}
|
package/dist/edit-mode.js
CHANGED
|
@@ -14,7 +14,8 @@ import { mountNewSlide, newSlideCommand } from "./new-slide.js";
|
|
|
14
14
|
import { mountPageControls, PAGE_CONTROLS_SPACING, pageControlsShown } from "./page-controls.js";
|
|
15
15
|
import { ALL_MODES, EDIT_MODE } from "./mode.js";
|
|
16
16
|
import { editState, INITIAL_EDIT_STATE, updateEditState } from "./state.js";
|
|
17
|
-
import {
|
|
17
|
+
import { createRuler, rulerShown, setShowRuler } from "./ruler.js";
|
|
18
|
+
import { selectionRuler } from "./ruler-edits.js";
|
|
18
19
|
import { editorStyles } from "./styles.js";
|
|
19
20
|
import { editTabs } from "./tabs.js";
|
|
20
21
|
import { createEditTools } from "./tools.js";
|
|
@@ -69,6 +70,7 @@ function mountDocumentState(host) {
|
|
|
69
70
|
client.onSelection((state) => updateEditState(store, {
|
|
70
71
|
selectionText: selectionTextFormat(state.properties),
|
|
71
72
|
selectionPaint: selectionPaint(state.properties),
|
|
73
|
+
selectionRuler: selectionRuler(state.properties),
|
|
72
74
|
})),
|
|
73
75
|
];
|
|
74
76
|
return () => {
|
|
@@ -116,6 +118,7 @@ export function editMode(options) {
|
|
|
116
118
|
let tools = null;
|
|
117
119
|
let newSlide = null;
|
|
118
120
|
const grips = createGrips(() => tools);
|
|
121
|
+
const ruler = createRuler(() => host);
|
|
119
122
|
const mountedTools = () => {
|
|
120
123
|
if (!tools)
|
|
121
124
|
throw new Error("udoc: edit mode is not mounted");
|
|
@@ -154,7 +157,7 @@ export function editMode(options) {
|
|
|
154
157
|
// Edit mode's acts on the selection, a table's rows added over one; view
|
|
155
158
|
// mode keeps the shell's.
|
|
156
159
|
contextMenuItems: (state, inTable) => (editing(state) ? (inTable ? TABLE_CONTEXT_MENU : CONTEXT_MENU) : null),
|
|
157
|
-
guideBand: (state) => (rulerShown(state) ?
|
|
160
|
+
guideBand: (state) => (rulerShown(state) ? ruler : null),
|
|
158
161
|
placedShape,
|
|
159
162
|
selectionChrome: grips.chrome,
|
|
160
163
|
pressCanvas: (x, y, _ev, canvas) => grips.press(x, y, canvas),
|
package/dist/edit-mode.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edit-mode.js","sourceRoot":"","sources":["../src/edit-mode.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAGrG,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EACH,wBAAwB,EACxB,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,GACzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEhE,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACjG,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEjD,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC5E,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"edit-mode.js","sourceRoot":"","sources":["../src/edit-mode.ts"],"names":[],"mappings":"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"}
|
package/dist/grips.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grips.d.ts","sourceRoot":"","sources":["../src/grips.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"grips.d.ts","sourceRoot":"","sources":["../src/grips.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAER,aAAa,EACb,iBAAiB,EAGjB,eAAe,EAGlB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AA6H5C,mFAAmF;AACnF,MAAM,WAAW,KAAK;IAClB,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC;sBACkB;IAClB,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,aAAa,GAAG,IAAI,CAAC;IAC7E,0EAA0E;IAC1E,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CAC/C;AAED,4EAA4E;AAC5E,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,SAAS,GAAG,IAAI,GAAG,KAAK,CA8WhE"}
|
package/dist/grips.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// Edit mode's grips on the selection: a rotation grip above each selected box,
|
|
2
2
|
// and the geometry grips (yellow diamonds) a lone shape offers — a rounded
|
|
3
|
-
// rectangle's corner, an arrow's head. udoc-ui's
|
|
3
|
+
// rectangle's corner, an arrow's head, its text warp's sweep. udoc-ui's
|
|
4
|
+
// selection layer draws them
|
|
4
5
|
// beside its resize handles (`SelectionChrome`), and the canvas hands a press on
|
|
5
6
|
// one to the gesture this runs (`UIExtension.pressCanvas`).
|
|
6
7
|
import { allowsEdit, applyPoint, DRAG_THRESHOLD, fromComponents, invert } from "@docmentis/udoc-ui/internal";
|
|
@@ -121,7 +122,7 @@ export function createGrips(tools) {
|
|
|
121
122
|
const preview = handlePreview;
|
|
122
123
|
if (!preview)
|
|
123
124
|
return handles;
|
|
124
|
-
return handles.map((handle) =>
|
|
125
|
+
return handles.map((handle) => handle.textWarp === preview.textWarp && handle.index === preview.index ? preview : handle);
|
|
125
126
|
}
|
|
126
127
|
/**
|
|
127
128
|
* The grabbed adjust handle if `(x, y)` (viewport CSS px, canvas-relative)
|
|
@@ -145,14 +146,16 @@ export function createGrips(tools) {
|
|
|
145
146
|
continue;
|
|
146
147
|
const c = applyPoint(lv, handle.point.x, handle.point.y);
|
|
147
148
|
if (Math.abs(x - c.x) <= ADJUST_HIT && Math.abs(y - c.y) <= ADJUST_HIT) {
|
|
148
|
-
return { index: handle.index, page: handle.page, transform };
|
|
149
|
+
return { textWarp: handle.textWarp, index: handle.index, page: handle.page, transform };
|
|
149
150
|
}
|
|
150
151
|
}
|
|
151
152
|
return null;
|
|
152
153
|
}
|
|
153
154
|
/**
|
|
154
|
-
* Where `(x, y)` (viewport CSS px) lands in the grabbed
|
|
155
|
-
* space** — the
|
|
155
|
+
* Where `(x, y)` (viewport CSS px) lands in the grabbed handle's **own local
|
|
156
|
+
* space** — the shape's, or for a text warp's handle its text rect's — the
|
|
157
|
+
* space an `adjustShapeHandle` / `adjustTextWarpHandle` edit names its
|
|
158
|
+
* target in.
|
|
156
159
|
*
|
|
157
160
|
* The projection the diamond was drawn through, run backwards: the drag is
|
|
158
161
|
* expressed where the geometry is defined, so the engine solves against the
|
|
@@ -384,7 +387,7 @@ export function createGrips(tools) {
|
|
|
384
387
|
return;
|
|
385
388
|
probeBusy = true;
|
|
386
389
|
const seq = ++probeSeq;
|
|
387
|
-
void edit.selectionHandlePreview(grab.index, to.x, to.y).then((handle) => {
|
|
390
|
+
void edit.selectionHandlePreview(grab.textWarp, grab.index, to.x, to.y).then((handle) => {
|
|
388
391
|
probeBusy = false;
|
|
389
392
|
if (seq === probeSeq && live && handlePreview !== handle) {
|
|
390
393
|
handlePreview = handle;
|
|
@@ -430,7 +433,8 @@ export function createGrips(tools) {
|
|
|
430
433
|
// other drags — the engine resolves which shape and solves the
|
|
431
434
|
// adjust value the drag implies.
|
|
432
435
|
canvas.committing();
|
|
433
|
-
|
|
436
|
+
const kind = grab.textWarp ? "adjustTextWarpHandle" : "adjustShapeHandle";
|
|
437
|
+
void host.commit(() => host.client.executeOnSelection({ kind, index: grab.index, to }));
|
|
434
438
|
},
|
|
435
439
|
cancel() {
|
|
436
440
|
// Nothing was committed, so the preview has nothing to settle onto.
|
package/dist/grips.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grips.js","sourceRoot":"","sources":["../src/grips.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"grips.js","sourceRoot":"","sources":["../src/grips.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { RulerAxis, RulerText } from "@docmentis/udoc-wasm";
|
|
2
|
+
/** A margin's edge: the text area's side it bounds. */
|
|
3
|
+
export type RulerEdge = "left" | "top" | "right" | "bottom";
|
|
4
|
+
/** An indent marker, as Word's ruler names them. */
|
|
5
|
+
export type RulerIndent = "firstLine" | "hanging" | "left" | "right";
|
|
6
|
+
/** Which of the ruler's controls — a margin's edge, an indent marker, or the
|
|
7
|
+
* tab stop at `index` in the guide's list. */
|
|
8
|
+
export type RulerControl = {
|
|
9
|
+
readonly kind: "margin";
|
|
10
|
+
readonly edge: RulerEdge;
|
|
11
|
+
} | {
|
|
12
|
+
readonly kind: "indent";
|
|
13
|
+
readonly indent: RulerIndent;
|
|
14
|
+
} | {
|
|
15
|
+
readonly kind: "tab";
|
|
16
|
+
readonly index: number;
|
|
17
|
+
};
|
|
18
|
+
/** A control dropped `by` points along its ruler from where the guide put it. */
|
|
19
|
+
export interface RulerDrop {
|
|
20
|
+
readonly control: RulerControl;
|
|
21
|
+
readonly by: number;
|
|
22
|
+
}
|
|
23
|
+
/** One ruler, as the guide places the controls along it this frame. */
|
|
24
|
+
export interface RulerPlacement {
|
|
25
|
+
/** The layer over the ruler's strip the controls stand in. */
|
|
26
|
+
readonly layer: HTMLElement;
|
|
27
|
+
/** The layer over the content pane a drag along the ruler draws its line
|
|
28
|
+
* across, measured along the ruler as the strip is. */
|
|
29
|
+
readonly pane: HTMLElement;
|
|
30
|
+
/** What the ruler measures, in points from its origin. */
|
|
31
|
+
readonly axis: RulerAxis;
|
|
32
|
+
/** Where the ruler's zero falls along the strip, CSS px, and the CSS px a
|
|
33
|
+
* point spans — what a drag measures its points by. */
|
|
34
|
+
readonly origin: number;
|
|
35
|
+
readonly scale: number;
|
|
36
|
+
/** Where `points` from the origin falls along the strip, CSS px — on the
|
|
37
|
+
* tick there. */
|
|
38
|
+
readonly at: (points: number) => number;
|
|
39
|
+
}
|
|
40
|
+
/** The ruler's controls. */
|
|
41
|
+
export interface RulerControls {
|
|
42
|
+
/**
|
|
43
|
+
* Stand the controls where the guide places them — the margins' edges along
|
|
44
|
+
* each ruler, `text`'s indent markers and tab stops along the horizontal
|
|
45
|
+
* one — and hide those it places nowhere. A ruler whose strip collapsed is
|
|
46
|
+
* null. Those `movable` refuses stay put under a press.
|
|
47
|
+
*/
|
|
48
|
+
place(horizontal: RulerPlacement | null, vertical: RulerPlacement | null, text: RulerText | null, movable: (control: RulerControl) => boolean): void;
|
|
49
|
+
}
|
|
50
|
+
/** The ruler's controls for a ruler `thickness` CSS px deep, handing what a
|
|
51
|
+
* drop moved to `drop` — the edit it sends, settling when that is done, or
|
|
52
|
+
* `null` for none, which returns the controls to where they stood. */
|
|
53
|
+
export declare function createRulerControls(thickness: number, drop: (drop: RulerDrop) => Promise<unknown> | null): RulerControls;
|
|
54
|
+
//# sourceMappingURL=ruler-controls.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ruler-controls.d.ts","sourceRoot":"","sources":["../src/ruler-controls.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,SAAS,EAAiB,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAgChF,uDAAuD;AACvD,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE5D,oDAAoD;AACpD,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;AAErE;+CAC+C;AAC/C,MAAM,MAAM,YAAY,GAClB;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GACrD;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;CAAE,GACzD;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvD,iFAAiF;AACjF,MAAM,WAAW,SAAS;IACtB,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACvB;AAED,uEAAuE;AACvE,MAAM,WAAW,cAAc;IAC3B,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B;4DACwD;IACxD,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,0DAA0D;IAC1D,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB;4DACwD;IACxD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;sBACkB;IAClB,QAAQ,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;CAC3C;AAED,4BAA4B;AAC5B,MAAM,WAAW,aAAa;IAC1B;;;;;OAKG;IACH,KAAK,CACD,UAAU,EAAE,cAAc,GAAG,IAAI,EACjC,QAAQ,EAAE,cAAc,GAAG,IAAI,EAC/B,IAAI,EAAE,SAAS,GAAG,IAAI,EACtB,OAAO,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,GAC5C,IAAI,CAAC;CACX;AAyED;;uEAEuE;AACvE,wBAAgB,mBAAmB,CAC/B,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,GACnD,aAAa,CAsNf"}
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
const SVG_NS = "http://www.w3.org/2000/svg";
|
|
2
|
+
/** Half the width of an indent marker's box, and of a tab stop's, CSS px: each
|
|
3
|
+
* shape is drawn about its box's middle pixel, so its 1px strokes fall whole
|
|
4
|
+
* on pixels. */
|
|
5
|
+
const INDENT_HALF = 5.5;
|
|
6
|
+
const TAB_HALF = 4.5;
|
|
7
|
+
/** The depth of the left indent's box, CSS px. */
|
|
8
|
+
const INDENT_BOX = 5;
|
|
9
|
+
/** Half the width of the strip a margin's edge is grabbed by, CSS px. */
|
|
10
|
+
const EDGE_HALF = 3.5;
|
|
11
|
+
/** What a drag snaps to, in points: a sixteenth of an inch from the ruler's
|
|
12
|
+
* zero, as Word's ruler does. */
|
|
13
|
+
const SNAP = 72 / 16;
|
|
14
|
+
/** How long the controls a drop left hold where it left them with no frame
|
|
15
|
+
* arriving after its edit, ms — they settle on the next frame otherwise. */
|
|
16
|
+
const HOLD = 500;
|
|
17
|
+
/** A tab stop's mark by its alignment, as Word's: a stem, and a foot running
|
|
18
|
+
* the way the text runs from the stop — right of a left stop, left of a right
|
|
19
|
+
* one, both ways under a center or a decimal one — or for a bar, the stem
|
|
20
|
+
* alone. A decimal stop adds its point beside the stem. */
|
|
21
|
+
const TAB_MARKS = {
|
|
22
|
+
left: "M4.5 0V6M4.5 5.5H8",
|
|
23
|
+
center: "M4.5 0V6M1 5.5H8",
|
|
24
|
+
right: "M4.5 0V6M1 5.5H4.5",
|
|
25
|
+
decimal: "M4.5 0V6M1 5.5H8",
|
|
26
|
+
bar: "M4.5 0V6",
|
|
27
|
+
};
|
|
28
|
+
/** An SVG `width` × `height` CSS px in `el`, its one path drawn by `d`. */
|
|
29
|
+
function svg(el, width, height, d) {
|
|
30
|
+
const s = document.createElementNS(SVG_NS, "svg");
|
|
31
|
+
s.setAttribute("width", String(width));
|
|
32
|
+
s.setAttribute("height", String(height));
|
|
33
|
+
const path = document.createElementNS(SVG_NS, "path");
|
|
34
|
+
path.setAttribute("d", d);
|
|
35
|
+
s.append(path);
|
|
36
|
+
el.append(s);
|
|
37
|
+
return path;
|
|
38
|
+
}
|
|
39
|
+
/** Move `c` to `at` along its ruler. */
|
|
40
|
+
function move(c, at) {
|
|
41
|
+
if (c.orient === "h")
|
|
42
|
+
c.el.style.left = `${at - c.half}px`;
|
|
43
|
+
else
|
|
44
|
+
c.el.style.top = `${at - c.half}px`;
|
|
45
|
+
}
|
|
46
|
+
/** Return `c` to where the guide placed it, or hide it where it placed it nowhere. */
|
|
47
|
+
function settle(c) {
|
|
48
|
+
c.el.style.display = c.home === null ? "none" : "";
|
|
49
|
+
if (c.home !== null)
|
|
50
|
+
move(c, c.home);
|
|
51
|
+
}
|
|
52
|
+
/** The ruler's controls for a ruler `thickness` CSS px deep, handing what a
|
|
53
|
+
* drop moved to `drop` — the edit it sends, settling when that is done, or
|
|
54
|
+
* `null` for none, which returns the controls to where they stood. */
|
|
55
|
+
export function createRulerControls(thickness, drop) {
|
|
56
|
+
let drag = null;
|
|
57
|
+
/** The controls a drop left where it left them, until its edit is done. */
|
|
58
|
+
let held = new Set();
|
|
59
|
+
/** Whether that edit is done, so the next frame settles them. */
|
|
60
|
+
let released = false;
|
|
61
|
+
/** Make control `name` of `className`, and let a drag take it. */
|
|
62
|
+
const control = (name, className, orient, half) => {
|
|
63
|
+
const el = document.createElement("div");
|
|
64
|
+
el.className = `udoc-ui__ruler-control ${className}`;
|
|
65
|
+
const c = { el, name, orient, half, ruler: null, points: null, home: null, page: null };
|
|
66
|
+
grab(c);
|
|
67
|
+
return c;
|
|
68
|
+
};
|
|
69
|
+
/** A margin's `edge`: the strip it is grabbed by, the full depth of its
|
|
70
|
+
* ruler, over the line the band's canvas draws for it. */
|
|
71
|
+
const edge = (edge) => {
|
|
72
|
+
const orient = edge === "left" || edge === "right" ? "h" : "v";
|
|
73
|
+
return control({ kind: "margin", edge }, `udoc-ui__ruler-edge udoc-ui__ruler-edge--${orient}`, orient, EDGE_HALF);
|
|
74
|
+
};
|
|
75
|
+
/** Indent marker `indent` drawn by `d`, in a box the full depth of the
|
|
76
|
+
* ruler that takes a press only on the shape — the edge under it takes the
|
|
77
|
+
* rest. */
|
|
78
|
+
const indent = (indent, d) => {
|
|
79
|
+
const c = control({ kind: "indent", indent }, "udoc-ui__ruler-marker udoc-ui__ruler-marker--indent", "h", INDENT_HALF);
|
|
80
|
+
svg(c.el, INDENT_HALF * 2, thickness, d);
|
|
81
|
+
return c;
|
|
82
|
+
};
|
|
83
|
+
/** The tab stop at `index`, its mark's foot level with the hanging indent's
|
|
84
|
+
* base. */
|
|
85
|
+
const tab = (index) => {
|
|
86
|
+
const c = control({ kind: "tab", index }, "udoc-ui__ruler-marker udoc-ui__ruler-marker--tab", "h", TAB_HALF);
|
|
87
|
+
c.el.style.top = `${thickness - 12}px`;
|
|
88
|
+
const mark = svg(c.el, TAB_HALF * 2, 6, TAB_MARKS.left);
|
|
89
|
+
const point = document.createElementNS(SVG_NS, "rect");
|
|
90
|
+
point.setAttribute("x", "6");
|
|
91
|
+
point.setAttribute("y", "2");
|
|
92
|
+
point.setAttribute("width", "1");
|
|
93
|
+
point.setAttribute("height", "1");
|
|
94
|
+
mark.after(point);
|
|
95
|
+
return { control: c, mark, point };
|
|
96
|
+
};
|
|
97
|
+
// The margins' edges come first, so the markers standing on one take a
|
|
98
|
+
// press on their shapes, and the edge the press beside them.
|
|
99
|
+
const leftMargin = edge("left");
|
|
100
|
+
const rightMargin = edge("right");
|
|
101
|
+
const topMargin = edge("top");
|
|
102
|
+
const bottomMargin = edge("bottom");
|
|
103
|
+
// The left indent's box sits a pixel above the ruler's baseline, the
|
|
104
|
+
// hanging indent's triangle stands on it, and the first-line indent's hangs
|
|
105
|
+
// from the outer edge to meet it tip to tip; the right indent's stands
|
|
106
|
+
// level with the hanging indent's.
|
|
107
|
+
const floor = thickness - 1.5;
|
|
108
|
+
const base = floor - INDENT_BOX;
|
|
109
|
+
const tip = (base + 0.5) / 2;
|
|
110
|
+
const right = INDENT_HALF * 2 - 0.5;
|
|
111
|
+
const standing = `M0.5 ${base}L${INDENT_HALF} ${tip}L${right} ${base}Z`;
|
|
112
|
+
const firstLine = indent("firstLine", `M0.5 0.5H${right}L${INDENT_HALF} ${tip}Z`);
|
|
113
|
+
const hanging = indent("hanging", standing);
|
|
114
|
+
const leftIndent = indent("left", `M0.5 ${base}H${right}V${floor}H0.5Z`);
|
|
115
|
+
const rightIndent = indent("right", standing);
|
|
116
|
+
const tabs = [];
|
|
117
|
+
/** The dashed line a drag draws across the content pane at the pressed
|
|
118
|
+
* control — down from the horizontal ruler, across from the vertical. */
|
|
119
|
+
const line = document.createElement("div");
|
|
120
|
+
line.style.display = "none";
|
|
121
|
+
/** Draw the drag's line at `at` along `c`'s ruler, or with null, clear it. */
|
|
122
|
+
function drawLine(c, at) {
|
|
123
|
+
line.style.display = at === null ? "none" : "";
|
|
124
|
+
if (at === null)
|
|
125
|
+
return;
|
|
126
|
+
line.className = `udoc-ui__ruler-guide udoc-ui__ruler-guide--${c.orient}`;
|
|
127
|
+
// Its 1px dash centred on the control.
|
|
128
|
+
line.style.left = c.orient === "h" ? `${at - 0.5}px` : "";
|
|
129
|
+
line.style.top = c.orient === "v" ? `${at - 0.5}px` : "";
|
|
130
|
+
}
|
|
131
|
+
/** What a drag on `c` carries, as Word's ruler does: the left indent's box
|
|
132
|
+
* both triangles above it, the hanging indent's triangle the box, a
|
|
133
|
+
* margin's edge the markers measured from it — the left the indents and
|
|
134
|
+
* tab stops, the right the right indent. */
|
|
135
|
+
function carriedBy(c) {
|
|
136
|
+
if (c === leftIndent)
|
|
137
|
+
return [firstLine, hanging, leftIndent];
|
|
138
|
+
if (c === hanging)
|
|
139
|
+
return [hanging, leftIndent];
|
|
140
|
+
if (c === leftMargin)
|
|
141
|
+
return [leftMargin, firstLine, hanging, leftIndent, ...tabs.map((t) => t.control)];
|
|
142
|
+
if (c === rightMargin)
|
|
143
|
+
return [rightMargin, rightIndent];
|
|
144
|
+
return [c];
|
|
145
|
+
}
|
|
146
|
+
/** Let the controls a drop held go back to where the guide stands them. */
|
|
147
|
+
function release() {
|
|
148
|
+
released = false;
|
|
149
|
+
const was = held;
|
|
150
|
+
held = new Set();
|
|
151
|
+
for (const c of was)
|
|
152
|
+
settle(c);
|
|
153
|
+
}
|
|
154
|
+
function grab(c) {
|
|
155
|
+
const along = (ev) => (c.orient === "h" ? ev.clientX : ev.clientY);
|
|
156
|
+
c.el.addEventListener("pointerdown", (ev) => {
|
|
157
|
+
if (drag || held.size > 0 || ev.button !== 0)
|
|
158
|
+
return;
|
|
159
|
+
if (c.home === null || c.points === null || !c.page || !c.ruler)
|
|
160
|
+
return;
|
|
161
|
+
ev.preventDefault();
|
|
162
|
+
ev.stopPropagation();
|
|
163
|
+
c.el.setPointerCapture(ev.pointerId);
|
|
164
|
+
const carried = carriedBy(c).flatMap((k) => (k.home === null ? [] : [{ control: k, from: k.home }]));
|
|
165
|
+
drag = {
|
|
166
|
+
pointerId: ev.pointerId,
|
|
167
|
+
from: along(ev),
|
|
168
|
+
ruler: c.ruler,
|
|
169
|
+
points: c.points,
|
|
170
|
+
home: c.home,
|
|
171
|
+
carried,
|
|
172
|
+
min: c.page.start - c.home,
|
|
173
|
+
max: c.page.end - c.home,
|
|
174
|
+
by: 0,
|
|
175
|
+
};
|
|
176
|
+
c.el.classList.add("udoc-ui__ruler-control--dragging");
|
|
177
|
+
drawLine(c, c.home);
|
|
178
|
+
});
|
|
179
|
+
c.el.addEventListener("pointermove", (ev) => {
|
|
180
|
+
if (drag?.pointerId !== ev.pointerId)
|
|
181
|
+
return;
|
|
182
|
+
const { ruler } = drag;
|
|
183
|
+
// Where it lands, in points from the ruler's zero — on the nearest
|
|
184
|
+
// sixteenth of an inch unless Alt is held.
|
|
185
|
+
const free = drag.points + (along(ev) - drag.from) / ruler.scale;
|
|
186
|
+
const to = ev.altKey ? free : Math.round(free / SNAP) * SNAP;
|
|
187
|
+
const target = ruler.origin + to * ruler.scale - drag.home;
|
|
188
|
+
const offset = Math.min(drag.max, Math.max(drag.min, target));
|
|
189
|
+
drag.by = offset === target ? to - drag.points : offset / ruler.scale;
|
|
190
|
+
// Whole device pixels, so the shapes keep their crisp strokes.
|
|
191
|
+
const dpr = globalThis.devicePixelRatio || 1;
|
|
192
|
+
const shown = Math.round(offset * dpr) / dpr;
|
|
193
|
+
for (const { control, from } of drag.carried)
|
|
194
|
+
move(control, from + shown);
|
|
195
|
+
drawLine(c, drag.home + shown);
|
|
196
|
+
});
|
|
197
|
+
const end = (ev) => {
|
|
198
|
+
if (drag?.pointerId !== ev.pointerId)
|
|
199
|
+
return;
|
|
200
|
+
const { carried, by } = drag;
|
|
201
|
+
drag = null;
|
|
202
|
+
c.el.classList.remove("udoc-ui__ruler-control--dragging");
|
|
203
|
+
drawLine(c, null);
|
|
204
|
+
// A cancelled gesture drops nothing.
|
|
205
|
+
const sent = by !== 0 && ev.type === "pointerup" ? drop({ control: c.name, by }) : null;
|
|
206
|
+
if (!sent) {
|
|
207
|
+
for (const { control } of carried)
|
|
208
|
+
settle(control);
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
held = new Set(carried.map(({ control }) => control));
|
|
212
|
+
void sent.finally(() => {
|
|
213
|
+
released = true;
|
|
214
|
+
setTimeout(() => {
|
|
215
|
+
if (released)
|
|
216
|
+
release();
|
|
217
|
+
}, HOLD);
|
|
218
|
+
});
|
|
219
|
+
};
|
|
220
|
+
c.el.addEventListener("pointerup", end);
|
|
221
|
+
c.el.addEventListener("pointercancel", end);
|
|
222
|
+
c.el.addEventListener("lostpointercapture", end);
|
|
223
|
+
}
|
|
224
|
+
return {
|
|
225
|
+
place(horizontal, vertical, text, movable) {
|
|
226
|
+
/** The page's span along `ruler`, CSS px. */
|
|
227
|
+
const pageOf = (ruler) => ruler && { start: ruler.at(ruler.axis.page.start), end: ruler.at(ruler.axis.page.end) };
|
|
228
|
+
const pages = { h: pageOf(horizontal), v: pageOf(vertical) };
|
|
229
|
+
const pane = (horizontal ?? vertical)?.pane;
|
|
230
|
+
if (pane && line.parentElement !== pane)
|
|
231
|
+
pane.append(line);
|
|
232
|
+
/** Place `c` at `points` along `ruler`, or nowhere for none — but
|
|
233
|
+
* leave it where a drag carries it, or a drop left it. */
|
|
234
|
+
const stand = (c, ruler, points) => {
|
|
235
|
+
if (ruler && c.el.parentElement !== ruler.layer)
|
|
236
|
+
ruler.layer.append(c.el);
|
|
237
|
+
c.ruler = ruler;
|
|
238
|
+
c.points = ruler && points != null ? points : null;
|
|
239
|
+
c.home = ruler && points != null ? ruler.at(points) : null;
|
|
240
|
+
c.page = pages[c.orient];
|
|
241
|
+
c.el.classList.toggle("udoc-ui__ruler-control--fixed", !movable(c.name));
|
|
242
|
+
if (!drag?.carried.some((k) => k.control === c) && !held.has(c))
|
|
243
|
+
settle(c);
|
|
244
|
+
};
|
|
245
|
+
// The edit a drop sent is done, and this frame is what it brought.
|
|
246
|
+
if (released)
|
|
247
|
+
release();
|
|
248
|
+
stand(leftMargin, horizontal, horizontal?.axis.margins?.start);
|
|
249
|
+
stand(rightMargin, horizontal, horizontal?.axis.margins?.end);
|
|
250
|
+
stand(topMargin, vertical, vertical?.axis.margins?.start);
|
|
251
|
+
stand(bottomMargin, vertical, vertical?.axis.margins?.end);
|
|
252
|
+
stand(firstLine, horizontal, text?.firstLine);
|
|
253
|
+
stand(hanging, horizontal, text?.left);
|
|
254
|
+
stand(leftIndent, horizontal, text?.left);
|
|
255
|
+
stand(rightIndent, horizontal, text?.right);
|
|
256
|
+
const stops = text?.tabs ?? [];
|
|
257
|
+
while (tabs.length < stops.length)
|
|
258
|
+
tabs.push(tab(tabs.length));
|
|
259
|
+
tabs.forEach((t, i) => {
|
|
260
|
+
const stop = stops[i];
|
|
261
|
+
if (stop) {
|
|
262
|
+
t.mark.setAttribute("d", TAB_MARKS[stop.alignment]);
|
|
263
|
+
t.point.style.display = stop.alignment === "decimal" ? "" : "none";
|
|
264
|
+
}
|
|
265
|
+
stand(t.control, horizontal, stop?.position);
|
|
266
|
+
});
|
|
267
|
+
},
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
//# sourceMappingURL=ruler-controls.js.map
|