@docmentis/udoc-editor 0.8.15 → 0.8.17
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/commands.d.ts.map +1 -1
- package/dist/commands.js +51 -9
- package/dist/commands.js.map +1 -1
- package/dist/components/PageControls.d.ts +13 -6
- package/dist/components/PageControls.d.ts.map +1 -1
- package/dist/components/PageControls.js +42 -33
- package/dist/components/PageControls.js.map +1 -1
- package/dist/components/PageSettingsModal.d.ts +0 -2
- package/dist/components/PageSettingsModal.d.ts.map +1 -1
- package/dist/components/PageSettingsModal.js +54 -56
- package/dist/components/PageSettingsModal.js.map +1 -1
- package/dist/components/{NewSlideModal.d.ts → SlideLayoutModal.d.ts} +15 -11
- package/dist/components/SlideLayoutModal.d.ts.map +1 -0
- package/dist/components/{NewSlideModal.js → SlideLayoutModal.js} +34 -18
- package/dist/components/SlideLayoutModal.js.map +1 -0
- package/dist/docmentis-theme.d.ts +4 -0
- package/dist/docmentis-theme.d.ts.map +1 -0
- package/dist/docmentis-theme.js +6 -0
- package/dist/docmentis-theme.js.map +1 -0
- package/dist/edit-client.d.ts +9 -1
- package/dist/edit-client.d.ts.map +1 -1
- package/dist/edit-client.js +10 -0
- package/dist/edit-client.js.map +1 -1
- package/dist/edit-command.d.ts +3 -1
- package/dist/edit-command.d.ts.map +1 -1
- package/dist/edit-command.js +7 -0
- package/dist/edit-command.js.map +1 -1
- package/dist/edit-mode.d.ts.map +1 -1
- package/dist/edit-mode.js +22 -10
- package/dist/edit-mode.js.map +1 -1
- package/dist/editor.d.ts +7 -6
- package/dist/editor.d.ts.map +1 -1
- package/dist/editor.js +6 -5
- package/dist/editor.js.map +1 -1
- package/dist/i18n/ar.js +10 -10
- package/dist/i18n/ar.js.map +1 -1
- package/dist/i18n/de.js +10 -10
- package/dist/i18n/de.js.map +1 -1
- package/dist/i18n/en.js +10 -10
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/es.js +10 -10
- package/dist/i18n/es.js.map +1 -1
- package/dist/i18n/fr.js +10 -10
- package/dist/i18n/fr.js.map +1 -1
- package/dist/i18n/ja.js +10 -10
- package/dist/i18n/ja.js.map +1 -1
- package/dist/i18n/ko.js +10 -10
- package/dist/i18n/ko.js.map +1 -1
- package/dist/i18n/messages.d.ts +18 -18
- package/dist/i18n/messages.d.ts.map +1 -1
- package/dist/i18n/pt-BR.js +10 -10
- package/dist/i18n/pt-BR.js.map +1 -1
- package/dist/i18n/ru.js +10 -10
- package/dist/i18n/ru.js.map +1 -1
- package/dist/i18n/zh-CN.js +10 -10
- package/dist/i18n/zh-CN.js.map +1 -1
- package/dist/i18n/zh-TW.js +10 -10
- package/dist/i18n/zh-TW.js.map +1 -1
- package/dist/icons.d.ts +24 -0
- package/dist/icons.d.ts.map +1 -1
- package/dist/icons.js +24 -0
- package/dist/icons.js.map +1 -1
- package/dist/image.d.ts +11 -7
- package/dist/image.d.ts.map +1 -1
- package/dist/image.js +44 -7
- package/dist/image.js.map +1 -1
- package/dist/insert.d.ts +24 -12
- package/dist/insert.d.ts.map +1 -1
- package/dist/insert.js +306 -51
- package/dist/insert.js.map +1 -1
- package/dist/line-edit.d.ts +30 -0
- package/dist/line-edit.d.ts.map +1 -0
- package/dist/line-edit.js +87 -0
- package/dist/line-edit.js.map +1 -0
- package/dist/markup.d.ts +25 -5
- package/dist/markup.d.ts.map +1 -1
- package/dist/markup.js +73 -15
- package/dist/markup.js.map +1 -1
- package/dist/opacity.d.ts +19 -0
- package/dist/opacity.d.ts.map +1 -0
- package/dist/opacity.js +45 -0
- package/dist/opacity.js.map +1 -0
- package/dist/page-commands.d.ts +16 -0
- package/dist/page-commands.d.ts.map +1 -0
- package/dist/page-commands.js +122 -0
- package/dist/page-commands.js.map +1 -0
- package/dist/page-controls.d.ts +27 -1
- package/dist/page-controls.d.ts.map +1 -1
- package/dist/page-controls.js +30 -14
- package/dist/page-controls.js.map +1 -1
- package/dist/paint.d.ts +59 -12
- package/dist/paint.d.ts.map +1 -1
- package/dist/paint.js +225 -104
- package/dist/paint.js.map +1 -1
- package/dist/ruler-controls.d.ts +6 -0
- package/dist/ruler-controls.d.ts.map +1 -1
- package/dist/ruler-controls.js +18 -3
- package/dist/ruler-controls.js.map +1 -1
- package/dist/ruler-edits.d.ts +2 -5
- package/dist/ruler-edits.d.ts.map +1 -1
- package/dist/ruler-edits.js +13 -20
- package/dist/ruler-edits.js.map +1 -1
- package/dist/ruler.d.ts +7 -1
- package/dist/ruler.d.ts.map +1 -1
- package/dist/ruler.js +41 -11
- package/dist/ruler.js.map +1 -1
- package/dist/shape-gallery.d.ts +9 -4
- package/dist/shape-gallery.d.ts.map +1 -1
- package/dist/shape-gallery.js +9 -16
- package/dist/shape-gallery.js.map +1 -1
- package/dist/slide-commands.d.ts +38 -0
- package/dist/slide-commands.d.ts.map +1 -0
- package/dist/slide-commands.js +191 -0
- package/dist/slide-commands.js.map +1 -0
- package/dist/slide-shape.d.ts +24 -3
- package/dist/slide-shape.d.ts.map +1 -1
- package/dist/slide-shape.js +65 -10
- package/dist/slide-shape.js.map +1 -1
- package/dist/state.d.ts +12 -5
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js +1 -0
- package/dist/state.js.map +1 -1
- package/dist/styles.d.ts.map +1 -1
- package/dist/styles.js +108 -63
- package/dist/styles.js.map +1 -1
- package/dist/tabs.d.ts +1 -1
- package/dist/tabs.d.ts.map +1 -1
- package/dist/tabs.js +99 -40
- package/dist/tabs.js.map +1 -1
- package/dist/text-format.d.ts.map +1 -1
- package/dist/text-format.js +2 -2
- package/dist/text-format.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 +6 -0
- package/dist/worker/handlers.js.map +1 -1
- package/dist/worker/protocol.d.ts +13 -2
- package/dist/worker/protocol.d.ts.map +1 -1
- package/dist/worker/worker-source.js +1 -1
- package/package.json +3 -3
- package/dist/components/NewSlideModal.d.ts.map +0 -1
- package/dist/components/NewSlideModal.js.map +0 -1
- package/dist/new-slide.d.ts +0 -20
- package/dist/new-slide.d.ts.map +0 -1
- package/dist/new-slide.js +0 -90
- package/dist/new-slide.js.map +0 -1
package/dist/paint.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { PaintColor, PaintFill, PaintLine, UDocSelectionProperties } from "@docmentis/udoc-wasm";
|
|
1
|
+
import type { DeviceColor, PaintColor, PaintFill, PaintLine, UDocSelectionProperties } from "@docmentis/udoc-wasm";
|
|
2
2
|
import type { LineDash, PaintChannel, PaintSpec, RibbonControl, RibbonControlEnv, StrokeStyle, UIShellHost } from "@docmentis/udoc-ui/internal";
|
|
3
3
|
import type { EditTools } from "./tools.js";
|
|
4
4
|
/** A picker paint as a `PaintColor`, or `null` for "no fill": a solid sRGB
|
|
@@ -13,34 +13,80 @@ export declare function paintToDrawingFill(paint: PaintSpec): PaintFill;
|
|
|
13
13
|
* those drawn over an image — or null where they don't, or none is
|
|
14
14
|
* selected. */
|
|
15
15
|
export declare function selectionLine(properties: UDocSelectionProperties | null): PaintLine | null;
|
|
16
|
-
/**
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
/** The Fill and Line panels' channels, which take an opacity. */
|
|
17
|
+
type OpacityChannel = "fill" | "stroke";
|
|
18
|
+
/**
|
|
19
|
+
* The opacity the selection's `channel` paints with, where it agrees on one: a PDF
|
|
20
|
+
* object's style's — a path's, an image's, a shading's, a text object's runs' — or
|
|
21
|
+
* a drawing shape's solid fill's or line's. Null where the selection differs, has
|
|
22
|
+
* no such side, or paints it with no one color — no fill, no line, a gradient, a
|
|
23
|
+
* pattern, a picture — as there's nothing to carry it.
|
|
24
|
+
*/
|
|
25
|
+
export declare function selectionOpacity(properties: UDocSelectionProperties | null, channel: OpacityChannel): number | null;
|
|
26
|
+
/** What the Line panel last set: a side with no line takes it, as the line a
|
|
27
|
+
* weight, a dash or a color turns on. */
|
|
19
28
|
export interface StrokeSpec {
|
|
20
29
|
paint: PaintSpec;
|
|
21
30
|
/** Stroke weight in points. */
|
|
22
31
|
weight: number;
|
|
23
32
|
dash: LineDash;
|
|
24
33
|
}
|
|
34
|
+
/** A change to the selection's line, each part what the Line panel set: the color
|
|
35
|
+
* with the opacity the custom picker gave it, the weight or the dash. */
|
|
36
|
+
export interface StrokeChange {
|
|
37
|
+
paint?: PaintSpec;
|
|
38
|
+
opacity?: number | undefined;
|
|
39
|
+
weight?: number;
|
|
40
|
+
dash?: LineDash;
|
|
41
|
+
}
|
|
25
42
|
/** The Fill / Line edits of the selection, on the shell `host` lends. */
|
|
26
43
|
export declare function createPaintEdits(host: UIShellHost): {
|
|
27
|
-
fillSelection: (paint: PaintSpec) => Promise<void>;
|
|
28
|
-
strokeSelection: (
|
|
44
|
+
fillSelection: (paint: PaintSpec, opacity?: number) => Promise<void>;
|
|
45
|
+
strokeSelection: (change: StrokeChange, fallback: StrokeSpec) => Promise<void>;
|
|
46
|
+
setSelectionOpacity: (channel: OpacityChannel, opacity: number) => Promise<void>;
|
|
29
47
|
};
|
|
30
48
|
/** The Fill / Line edits {@link createPaintEdits} makes. */
|
|
31
49
|
export type PaintEdits = ReturnType<typeof createPaintEdits>;
|
|
32
50
|
/**
|
|
33
|
-
* The
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
|
|
51
|
+
* The Object tab's Opacity button, for command `id` drawn with `icon`: the opacity
|
|
52
|
+
* of what the selected PDF objects paint with on their non-stroking side — a
|
|
53
|
+
* path's fill, an image, a shading, text.
|
|
54
|
+
*/
|
|
55
|
+
export declare function objectOpacityControl(env: RibbonControlEnv, command: {
|
|
56
|
+
id: string;
|
|
57
|
+
icon: string;
|
|
58
|
+
}, tools: EditTools): RibbonControl;
|
|
59
|
+
/**
|
|
60
|
+
* What was last specified — edit mode's write-side memory, for as long as the
|
|
61
|
+
* editor is open, across the documents it opens. A new shape takes a side's color
|
|
62
|
+
* and opacity from it, over the document's default ({@link specifiedPaint}), and a
|
|
63
|
+
* side with no line takes its color, weight and dash when the Line panel turns it
|
|
64
|
+
* on. A No Fill or a No Line isn't a color, and leaves it be. Not shown on the
|
|
65
|
+
* triggers or the panel's marks, which mirror the *selection*.
|
|
37
66
|
*/
|
|
38
67
|
export interface PaintMemory {
|
|
39
|
-
|
|
68
|
+
/** The color last picked per channel, or null with none picked yet. */
|
|
69
|
+
readonly lastPaint: Record<PaintChannel, PaintSpec | null>;
|
|
70
|
+
/** The opacity last set per side, or null with none set yet. */
|
|
71
|
+
readonly lastOpacity: Record<OpacityChannel, number | null>;
|
|
40
72
|
readonly lastStroke: StrokeStyle;
|
|
41
73
|
}
|
|
42
|
-
/** A {@link PaintMemory}
|
|
74
|
+
/** A {@link PaintMemory} with nothing specified yet. */
|
|
43
75
|
export declare function createPaintMemory(): PaintMemory;
|
|
76
|
+
/**
|
|
77
|
+
* What a new drawing shape paints `channel` with, from what was last specified: its
|
|
78
|
+
* color at its opacity, an opacity alone taking `defaultColor`. Null with neither
|
|
79
|
+
* specified, for the document's default.
|
|
80
|
+
*/
|
|
81
|
+
export declare function specifiedPaint(memory: PaintMemory, channel: OpacityChannel, themed: boolean, defaultColor: PaintColor): PaintFill | null;
|
|
82
|
+
/** What a new PDF object paints `channel` with: the color last specified, else
|
|
83
|
+
* `defaultHex`, at the opacity last set, else opaque. */
|
|
84
|
+
export declare function specifiedPortablePaint(memory: PaintMemory, channel: OpacityChannel, defaultHex: string): {
|
|
85
|
+
color: DeviceColor;
|
|
86
|
+
alpha: number;
|
|
87
|
+
};
|
|
88
|
+
/** `hex` as a drawing color. */
|
|
89
|
+
export declare function drawingColorOf(hex: string): PaintColor;
|
|
44
90
|
/**
|
|
45
91
|
* A Fill / Line / Text Color dropdown of `channel`, for command `id` drawn with
|
|
46
92
|
* `icon`: the channel glyph over a color bar reflecting the *selection's* color,
|
|
@@ -53,4 +99,5 @@ export declare function paintControl(env: RibbonControlEnv, command: {
|
|
|
53
99
|
icon: string;
|
|
54
100
|
channel: PaintChannel;
|
|
55
101
|
}, tools: EditTools): RibbonControl;
|
|
102
|
+
export {};
|
|
56
103
|
//# sourceMappingURL=paint.d.ts.map
|
package/dist/paint.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paint.d.ts","sourceRoot":"","sources":["../src/paint.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"paint.d.ts","sourceRoot":"","sources":["../src/paint.ts"],"names":[],"mappings":"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"}
|
package/dist/paint.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
import { applyPaintBar, buildPaintPanel, createDropdownButton, DEFAULT_OFFICE_THEME, displayToActivePaint, drawingProperties, paintSwatch, profileFor, themeSwatches, } from "@docmentis/udoc-ui/internal";
|
|
1
|
+
import { applyPaintBar, buildOpacityPanel, buildPaintPanel, createDropdownButton, DEFAULT_OFFICE_THEME, displayToActivePaint, drawingProperties, paintSwatch, profileFor, themeSwatches, } from "@docmentis/udoc-ui/internal";
|
|
2
|
+
import { DOCMENTIS_LINE } from "./docmentis-theme.js";
|
|
3
|
+
import { changedDrawingLine, changedPortableLine, lineDashOfDrawing, lineDashOfPortable } from "./line-edit.js";
|
|
4
|
+
import { fillOpacity, fillWithOpacity, specifiedFill } from "./opacity.js";
|
|
2
5
|
import { editState } from "./state.js";
|
|
3
6
|
/** Split an `#rrggbb` hex into its three bytes (`0..255`). */
|
|
4
7
|
function hexToRgbBytes(hex) {
|
|
@@ -49,22 +52,6 @@ const SCHEME_TOKEN = {
|
|
|
49
52
|
function schemeSlot(slot) {
|
|
50
53
|
return SCHEME_TOKEN[slot] ?? "text1";
|
|
51
54
|
}
|
|
52
|
-
/** A composed stroke as a `DrawingML` `Line`: its paint plus weight (points) and
|
|
53
|
-
* a preset dash, over the rest of `current` — the line it replaces, whose
|
|
54
|
-
* arrowheads, caps and joins it keeps. */
|
|
55
|
-
function paintToDrawingLine(stroke, current) {
|
|
56
|
-
return {
|
|
57
|
-
width: stroke.weight,
|
|
58
|
-
cap: current?.cap ?? null,
|
|
59
|
-
compound: current?.compound ?? null,
|
|
60
|
-
align: current?.align ?? null,
|
|
61
|
-
fill: paintToDrawingFill(stroke.paint),
|
|
62
|
-
dash: dashToDrawing(stroke.dash),
|
|
63
|
-
join: current?.join ?? null,
|
|
64
|
-
headEnd: current?.headEnd ?? null,
|
|
65
|
-
tailEnd: current?.tailEnd ?? null,
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
55
|
/** The line the selected shapes agree on — a deck's, a word document's, or
|
|
69
56
|
* those drawn over an image — or null where they don't, or none is
|
|
70
57
|
* selected. */
|
|
@@ -72,17 +59,74 @@ export function selectionLine(properties) {
|
|
|
72
59
|
const line = drawingProperties(properties)?.shape.line;
|
|
73
60
|
return line !== undefined && typeof line === "object" ? line.value : null;
|
|
74
61
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
62
|
+
/** The fill-side style the selected PDF objects agree on, or null where they
|
|
63
|
+
* don't, have none, or it's a PDF path's turned off. */
|
|
64
|
+
function portableNonstroking(properties) {
|
|
65
|
+
if (!properties || !("portable" in properties))
|
|
66
|
+
return null;
|
|
67
|
+
const style = properties.portable.object.nonstrokingStyle;
|
|
68
|
+
return typeof style === "object" ? style.value : null;
|
|
69
|
+
}
|
|
70
|
+
/** {@link portableNonstroking} for the outline. */
|
|
71
|
+
function portableStroking(properties) {
|
|
72
|
+
if (!properties || !("portable" in properties))
|
|
73
|
+
return null;
|
|
74
|
+
const style = properties.portable.object.strokingStyle;
|
|
75
|
+
return typeof style === "object" ? style.value : null;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* The opacity the selection's `channel` paints with, where it agrees on one: a PDF
|
|
79
|
+
* object's style's — a path's, an image's, a shading's, a text object's runs' — or
|
|
80
|
+
* a drawing shape's solid fill's or line's. Null where the selection differs, has
|
|
81
|
+
* no such side, or paints it with no one color — no fill, no line, a gradient, a
|
|
82
|
+
* pattern, a picture — as there's nothing to carry it.
|
|
83
|
+
*/
|
|
84
|
+
export function selectionOpacity(properties, channel) {
|
|
85
|
+
if (properties && "portable" in properties) {
|
|
86
|
+
const { nonstrokingStyle, strokingStyle } = properties.portable.object;
|
|
87
|
+
const style = channel === "fill" ? nonstrokingStyle : strokingStyle;
|
|
88
|
+
return typeof style === "object" ? (style.value?.alpha ?? null) : null;
|
|
89
|
+
}
|
|
90
|
+
const shape = drawingProperties(properties)?.shape;
|
|
91
|
+
if (!shape)
|
|
92
|
+
return null;
|
|
93
|
+
if (channel === "fill")
|
|
94
|
+
return typeof shape.fill === "object" ? fillOpacity(shape.fill.value) : null;
|
|
95
|
+
const line = typeof shape.line === "object" ? shape.line.value : null;
|
|
96
|
+
return line?.fill ? fillOpacity(line.fill) : null;
|
|
97
|
+
}
|
|
98
|
+
/** The edit setting the selection's `channel` to `opacity`, carrying back the
|
|
99
|
+
* rest of its paint — or null where {@link selectionOpacity} has none to set. */
|
|
100
|
+
function opacityEdit(properties, channel, opacity) {
|
|
101
|
+
if (selectionOpacity(properties, channel) === null)
|
|
102
|
+
return null;
|
|
103
|
+
if (properties && "portable" in properties) {
|
|
104
|
+
if (channel === "fill") {
|
|
105
|
+
const current = portableNonstroking(properties);
|
|
106
|
+
if (!current)
|
|
107
|
+
return null;
|
|
108
|
+
return {
|
|
109
|
+
kind: "object",
|
|
110
|
+
edit: { kind: "setNonstrokingStyle", style: { ...current, alpha: opacity } },
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
const current = portableStroking(properties);
|
|
114
|
+
if (!current)
|
|
115
|
+
return null;
|
|
116
|
+
return { kind: "object", edit: { kind: "setStrokingStyle", style: { ...current, alpha: opacity } } };
|
|
117
|
+
}
|
|
118
|
+
const shape = drawingProperties(properties)?.shape;
|
|
119
|
+
if (!shape)
|
|
120
|
+
return null;
|
|
121
|
+
if (channel === "fill") {
|
|
122
|
+
if (typeof shape.fill !== "object")
|
|
123
|
+
return null;
|
|
124
|
+
return { kind: "setShapeFill", fill: fillWithOpacity(shape.fill.value, opacity) };
|
|
85
125
|
}
|
|
126
|
+
const line = typeof shape.line === "object" ? shape.line.value : null;
|
|
127
|
+
if (!line?.fill)
|
|
128
|
+
return null;
|
|
129
|
+
return { kind: "setShapeLine", line: { ...line, fill: fillWithOpacity(line.fill, opacity) } };
|
|
86
130
|
}
|
|
87
131
|
function paintToBrush(paint) {
|
|
88
132
|
if (paint.kind === "none")
|
|
@@ -90,28 +134,22 @@ function paintToBrush(paint) {
|
|
|
90
134
|
const [r, g, b] = hexToRgbBytes(paint.hex);
|
|
91
135
|
return { solid: { colorSpace: "deviceRgb", components: [r / 255, g / 255, b / 255] } };
|
|
92
136
|
}
|
|
93
|
-
/**
|
|
94
|
-
*
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
const
|
|
106
|
-
|
|
107
|
-
: dash
|
|
108
|
-
|
|
109
|
-
: dash === "dashDot"
|
|
110
|
-
? [3 * w, 2 * w, w, 2 * w]
|
|
111
|
-
: null;
|
|
112
|
-
if (array)
|
|
113
|
-
line.dashArray = array;
|
|
114
|
-
return line;
|
|
137
|
+
/**
|
|
138
|
+
* The weight and dash the selection's line has, for the Line panel to mark: a
|
|
139
|
+
* drawing shape's, or a PDF path's. Each null where the selection differs, it
|
|
140
|
+
* has no line, or the dash isn't one the panel offers.
|
|
141
|
+
*/
|
|
142
|
+
function selectionStroke(properties) {
|
|
143
|
+
if (properties && "portable" in properties) {
|
|
144
|
+
const style = portableStroking(properties);
|
|
145
|
+
if (!style)
|
|
146
|
+
return { weight: null, dash: null };
|
|
147
|
+
return { weight: style.line.width, dash: lineDashOfPortable(style.line) };
|
|
148
|
+
}
|
|
149
|
+
const line = selectionLine(properties);
|
|
150
|
+
if (!line)
|
|
151
|
+
return { weight: null, dash: null };
|
|
152
|
+
return { weight: line.width ?? null, dash: lineDashOfDrawing(line.dash) };
|
|
115
153
|
}
|
|
116
154
|
/** The Fill / Line edits of the selection, on the shell `host` lends. */
|
|
117
155
|
export function createPaintEdits(host) {
|
|
@@ -120,39 +158,49 @@ export function createPaintEdits(host) {
|
|
|
120
158
|
// payload is the open doc type's own model style, built here (the host builds
|
|
121
159
|
// model JSON, like `insertObject`), then sent through the same `executeOnSelection`
|
|
122
160
|
// seam; the doc-type binder replaces a drawing shape's fill / line or a PDF
|
|
123
|
-
//
|
|
124
|
-
//
|
|
125
|
-
function fillSelection(paint) {
|
|
126
|
-
|
|
127
|
-
|
|
161
|
+
// object's non-stroking / stroking style, "No Fill" a null one, which turns a
|
|
162
|
+
// path's fill off.
|
|
163
|
+
function fillSelection(paint, opacity) {
|
|
164
|
+
const state = store.getState();
|
|
165
|
+
const properties = editState(state).selectionProperties;
|
|
166
|
+
const alpha = opacity ?? selectionOpacity(properties, "fill") ?? 1;
|
|
167
|
+
if (profileFor(state.docType).drawingShapes) {
|
|
168
|
+
const fill = fillWithOpacity(paintToDrawingFill(paint), alpha);
|
|
169
|
+
return commit(() => client.executeOnSelection({ kind: "setShapeFill", fill }));
|
|
128
170
|
}
|
|
129
171
|
const brush = paintToBrush(paint);
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
return commit(() => client.executeOnSelection({
|
|
133
|
-
kind: "object",
|
|
134
|
-
edit: { kind: "setNonstrokingStyle", style: { brush, alpha: 1, overprint: false } },
|
|
135
|
-
}));
|
|
172
|
+
const overprint = portableNonstroking(properties)?.overprint ?? false;
|
|
173
|
+
const style = brush && { brush, alpha, overprint };
|
|
174
|
+
return commit(() => client.executeOnSelection({ kind: "object", edit: { kind: "setNonstrokingStyle", style } }));
|
|
136
175
|
}
|
|
137
|
-
//
|
|
138
|
-
//
|
|
139
|
-
// its head.
|
|
140
|
-
|
|
176
|
+
// A change to the line — its color, its weight or its dash — over the line the
|
|
177
|
+
// selection has, carrying the rest, since the engine sets the outline as one
|
|
178
|
+
// value: a new weight keeps the line's color, and an arrow keeps its head.
|
|
179
|
+
// `fallback` is for what it hasn't: a side with no line, or lines that differ.
|
|
180
|
+
function strokeSelection(change, fallback) {
|
|
141
181
|
const state = store.getState();
|
|
182
|
+
const { selectionLine: current, selectionProperties: properties } = editState(state);
|
|
183
|
+
const alpha = change.opacity ?? selectionOpacity(properties, "stroke") ?? 1;
|
|
184
|
+
const { weight, dash, paint } = change;
|
|
142
185
|
if (profileFor(state.docType).drawingShapes) {
|
|
143
|
-
const
|
|
186
|
+
const fillOf = (spec) => fillWithOpacity(paintToDrawingFill(spec), alpha);
|
|
187
|
+
const line = changedDrawingLine(current, { weight, dash, fill: paint && fillOf(paint) }, { fill: fillOf(fallback.paint), weight: fallback.weight, dash: fallback.dash });
|
|
144
188
|
return commit(() => client.executeOnSelection({ kind: "setShapeLine", line }));
|
|
145
189
|
}
|
|
146
|
-
const
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
const
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
}));
|
|
190
|
+
const style = portableStroking(properties);
|
|
191
|
+
const brush = paint ? paintToBrush(paint) : (style?.brush ?? paintToBrush(fallback.paint));
|
|
192
|
+
const line = changedPortableLine(style?.line ?? null, { weight, dash }, fallback);
|
|
193
|
+
const overprint = style?.overprint ?? false;
|
|
194
|
+
// "No Line" is a null style, which turns a path's outline off.
|
|
195
|
+
const next = brush && { brush, alpha, overprint, line };
|
|
196
|
+
return commit(() => client.executeOnSelection({ kind: "object", edit: { kind: "setStrokingStyle", style: next } }));
|
|
154
197
|
}
|
|
155
|
-
|
|
198
|
+
// The opacity alone: the rest of the paint is carried back as it stands.
|
|
199
|
+
function setSelectionOpacity(channel, opacity) {
|
|
200
|
+
const edit = opacityEdit(editState(store.getState()).selectionProperties, channel, opacity);
|
|
201
|
+
return edit ? commit(() => client.executeOnSelection(edit)) : Promise.resolve();
|
|
202
|
+
}
|
|
203
|
+
return { fillSelection, strokeSelection, setSelectionOpacity };
|
|
156
204
|
}
|
|
157
205
|
/**
|
|
158
206
|
* The doc types whose color pickers show the "Theme Colors" block above the
|
|
@@ -167,18 +215,67 @@ const THEMED = new Set(["presentation", "spreadsheet", "wordprocessing"]);
|
|
|
167
215
|
function mapThemeColors(palette) {
|
|
168
216
|
return palette ? themeSwatches(palette) : DEFAULT_OFFICE_THEME;
|
|
169
217
|
}
|
|
170
|
-
/**
|
|
218
|
+
/**
|
|
219
|
+
* The Object tab's Opacity button, for command `id` drawn with `icon`: the opacity
|
|
220
|
+
* of what the selected PDF objects paint with on their non-stroking side — a
|
|
221
|
+
* path's fill, an image, a shading, text.
|
|
222
|
+
*/
|
|
223
|
+
export function objectOpacityControl(env, command, tools) {
|
|
224
|
+
const dd = createDropdownButton({ icon: command.icon, label: env.label }, {
|
|
225
|
+
menuLabel: env.label,
|
|
226
|
+
onOpen: () => buildOpacityPanel(dd.menu, {
|
|
227
|
+
i18n: tools.i18n,
|
|
228
|
+
opacity: selectionOpacity(editState(env.store.getState()).selectionProperties, "fill"),
|
|
229
|
+
onSet: (opacity) => {
|
|
230
|
+
tools.paintMemory.lastOpacity.fill = opacity;
|
|
231
|
+
void tools.paint.setSelectionOpacity("fill", opacity);
|
|
232
|
+
},
|
|
233
|
+
close: () => dd.controller.close(),
|
|
234
|
+
}),
|
|
235
|
+
});
|
|
236
|
+
dd.trigger.dataset.command = command.id;
|
|
237
|
+
return { el: dd.el, close: () => dd.controller.close(), destroy: () => dd.destroy() };
|
|
238
|
+
}
|
|
239
|
+
/** A {@link PaintMemory} with nothing specified yet. */
|
|
171
240
|
export function createPaintMemory() {
|
|
172
241
|
return {
|
|
173
|
-
lastPaint: {
|
|
174
|
-
|
|
175
|
-
stroke: { kind: "solid", hex: "#000000" },
|
|
176
|
-
text: { kind: "solid", hex: "#000000" },
|
|
177
|
-
highlight: { kind: "solid", hex: "#ffff00" },
|
|
178
|
-
},
|
|
242
|
+
lastPaint: { fill: null, stroke: null, text: null, highlight: null },
|
|
243
|
+
lastOpacity: { fill: null, stroke: null },
|
|
179
244
|
lastStroke: { weight: 1, dash: "solid" },
|
|
180
245
|
};
|
|
181
246
|
}
|
|
247
|
+
/** The color last specified for `channel` as a drawing color. A theme color on a
|
|
248
|
+
* document with no theme, not `themed`, is the color it showed as. */
|
|
249
|
+
function specifiedColor(memory, channel, themed) {
|
|
250
|
+
const last = memory.lastPaint[channel];
|
|
251
|
+
if (!last || last.kind === "none")
|
|
252
|
+
return null;
|
|
253
|
+
return paintToDrawingColor(last.kind === "theme" && !themed ? { kind: "solid", hex: last.hex } : last);
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* What a new drawing shape paints `channel` with, from what was last specified: its
|
|
257
|
+
* color at its opacity, an opacity alone taking `defaultColor`. Null with neither
|
|
258
|
+
* specified, for the document's default.
|
|
259
|
+
*/
|
|
260
|
+
export function specifiedPaint(memory, channel, themed, defaultColor) {
|
|
261
|
+
return specifiedFill(specifiedColor(memory, channel, themed), memory.lastOpacity[channel], defaultColor);
|
|
262
|
+
}
|
|
263
|
+
/** What a new PDF object paints `channel` with: the color last specified, else
|
|
264
|
+
* `defaultHex`, at the opacity last set, else opaque. */
|
|
265
|
+
export function specifiedPortablePaint(memory, channel, defaultHex) {
|
|
266
|
+
const last = memory.lastPaint[channel];
|
|
267
|
+
const hex = last && last.kind !== "none" ? last.hex : defaultHex;
|
|
268
|
+
const [r, g, b] = hexToRgbBytes(hex);
|
|
269
|
+
return {
|
|
270
|
+
color: { colorSpace: "srgb", components: [r / 255, g / 255, b / 255] },
|
|
271
|
+
alpha: memory.lastOpacity[channel] ?? 1,
|
|
272
|
+
};
|
|
273
|
+
}
|
|
274
|
+
/** `hex` as a drawing color. */
|
|
275
|
+
export function drawingColorOf(hex) {
|
|
276
|
+
const [r, g, b] = hexToRgbBytes(hex);
|
|
277
|
+
return { base: { sRgb: { r, g, b } }, transforms: [] };
|
|
278
|
+
}
|
|
182
279
|
/**
|
|
183
280
|
* A Fill / Line / Text Color dropdown of `channel`, for command `id` drawn with
|
|
184
281
|
* `icon`: the channel glyph over a color bar reflecting the *selection's* color,
|
|
@@ -190,40 +287,52 @@ export function paintControl(env, command, tools) {
|
|
|
190
287
|
const { i18n, paintMemory: memory } = tools;
|
|
191
288
|
const { channel } = command;
|
|
192
289
|
const selectionPaint = () => editState(env.store.getState()).selectionPaint;
|
|
193
|
-
//
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
290
|
+
// Change the selection's line by what the panel set, the rest carried.
|
|
291
|
+
const applyStroke = (change) => {
|
|
292
|
+
const { docType } = env.store.getState();
|
|
293
|
+
const themed = docType !== null && THEMED.has(docType);
|
|
294
|
+
void tools.paint.strokeSelection(change, {
|
|
295
|
+
paint: memory.lastPaint.stroke ?? { kind: "solid", hex: themed ? "#000000" : DOCMENTIS_LINE },
|
|
296
|
+
weight: memory.lastStroke.weight,
|
|
297
|
+
dash: memory.lastStroke.dash,
|
|
298
|
+
});
|
|
299
|
+
};
|
|
300
|
+
// Apply a picked paint, at the opacity the custom picker gave it, else at
|
|
301
|
+
// the one the channel has.
|
|
302
|
+
const applyPaint = (paint, opacity) => {
|
|
204
303
|
if (channel === "fill")
|
|
205
|
-
void tools.paint.fillSelection(paint);
|
|
304
|
+
void tools.paint.fillSelection(paint, opacity);
|
|
206
305
|
else if (channel === "text")
|
|
207
306
|
void tools.text.textFillSelection(paint);
|
|
208
307
|
else if (channel === "highlight")
|
|
209
308
|
void tools.text.textHighlightSelection(paint);
|
|
210
309
|
else
|
|
211
|
-
applyStroke();
|
|
310
|
+
applyStroke({ paint, opacity });
|
|
212
311
|
};
|
|
213
|
-
// Commit a picked paint: remember
|
|
312
|
+
// Commit a picked paint: remember a color (what a side with no line takes, and
|
|
214
313
|
// the recent row) and apply it. The trigger swatch isn't touched here — it
|
|
215
314
|
// mirrors the selection, so it updates when the resulting report lands.
|
|
216
|
-
const commitPaint = (paint) => {
|
|
217
|
-
|
|
218
|
-
|
|
315
|
+
const commitPaint = (paint, opacity) => {
|
|
316
|
+
if (paint.kind !== "none") {
|
|
317
|
+
memory.lastPaint[channel] = paint;
|
|
219
318
|
env.pushRecent(channel, paint.hex);
|
|
220
|
-
|
|
319
|
+
}
|
|
320
|
+
if (opacity !== undefined && (channel === "fill" || channel === "stroke")) {
|
|
321
|
+
memory.lastOpacity[channel] = opacity;
|
|
322
|
+
}
|
|
323
|
+
applyPaint(paint, opacity);
|
|
221
324
|
};
|
|
222
325
|
// The color panel — doc-type aware (Office shows the theme block, PDF
|
|
223
326
|
// standard colors only). Rebuilt on each open so recent / active reflect
|
|
224
327
|
// current state. `close` is the dropdown's.
|
|
225
328
|
const panelConfig = (close) => {
|
|
226
329
|
const state = env.store.getState();
|
|
330
|
+
const properties = editState(state).selectionProperties;
|
|
331
|
+
// A PDF's fill-side opacity is the Object tab's Opacity button's: it isn't
|
|
332
|
+
// the fill's alone, as an image or text has it with no fill to speak of.
|
|
333
|
+
const fillTakesOpacity = profileFor(state.docType).drawingShapes;
|
|
334
|
+
const opacityChannel = channel === "stroke" || (channel === "fill" && fillTakesOpacity) ? channel : null;
|
|
335
|
+
const opacity = opacityChannel ? selectionOpacity(properties, opacityChannel) : null;
|
|
227
336
|
return {
|
|
228
337
|
i18n,
|
|
229
338
|
variant: channel,
|
|
@@ -238,21 +347,33 @@ export function paintControl(env, command, tools) {
|
|
|
238
347
|
// "active"): a solid color or explicit no-fill; nothing for mixed /
|
|
239
348
|
// unknown.
|
|
240
349
|
active: displayToActivePaint(selectionPaint()[channel]),
|
|
241
|
-
stroke: channel === "stroke" ?
|
|
242
|
-
onPick: (paint) => {
|
|
243
|
-
commitPaint(paint);
|
|
350
|
+
stroke: channel === "stroke" ? selectionStroke(properties) : null,
|
|
351
|
+
onPick: (paint, pickedOpacity) => {
|
|
352
|
+
commitPaint(paint, pickedOpacity);
|
|
244
353
|
close();
|
|
245
354
|
},
|
|
246
355
|
onWeight: (pt) => {
|
|
247
356
|
memory.lastStroke.weight = pt;
|
|
248
|
-
applyStroke();
|
|
357
|
+
applyStroke({ weight: pt });
|
|
249
358
|
close();
|
|
250
359
|
},
|
|
251
360
|
onDash: (dash) => {
|
|
252
361
|
memory.lastStroke.dash = dash;
|
|
253
|
-
applyStroke();
|
|
362
|
+
applyStroke({ dash });
|
|
254
363
|
close();
|
|
255
364
|
},
|
|
365
|
+
// The custom picker's slider, on a side that takes an opacity; the
|
|
366
|
+
// fly-out, where the selection paints it with one color to carry it.
|
|
367
|
+
...(opacityChannel ? { opacity } : {}),
|
|
368
|
+
...(opacityChannel && opacity !== null
|
|
369
|
+
? {
|
|
370
|
+
onOpacity: (value) => {
|
|
371
|
+
memory.lastOpacity[opacityChannel] = value;
|
|
372
|
+
void tools.paint.setSelectionOpacity(opacityChannel, value);
|
|
373
|
+
close();
|
|
374
|
+
},
|
|
375
|
+
}
|
|
376
|
+
: {}),
|
|
256
377
|
// No `onMoreOptions`: the More Options row waits for the advanced
|
|
257
378
|
// dialog to hold the richer fill / line surface.
|
|
258
379
|
};
|
package/dist/paint.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paint.js","sourceRoot":"","sources":["../src/paint.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"paint.js","sourceRoot":"","sources":["../src/paint.ts"],"names":[],"mappings":"AAgBA,OAAO,EACH,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,aAAa,GAChB,MAAM,6BAA6B,CAAC;AAerC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAChH,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC,8DAA8D;AAC9D,SAAS,aAAa,CAAC,GAAW;IAC9B,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAC7C,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;AACzD,CAAC;AAED;;;wEAGwE;AACxE,MAAM,UAAU,mBAAmB,CAAC,KAAgB;IAChD,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,MAAM;YACP,OAAO,IAAI,CAAC;QAChB,KAAK,OAAO,CAAC,CAAC,CAAC;YACX,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC3C,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;QAC3D,CAAC;QACD,KAAK,OAAO;YACR,OAAO;gBACH,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gBACxC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,kBAAkB,CAAC;aACvD,CAAC;IACV,CAAC;AACL,CAAC;AAED;gDACgD;AAChD,MAAM,UAAU,kBAAkB,CAAC,KAAgB;IAC/C,MAAM,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACzC,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;AAC7C,CAAC;AAED,SAAS,kBAAkB,CAAC,CAAiB;IACzC,OAAO,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;AACtE,CAAC;AAED,wEAAwE;AACxE,MAAM,YAAY,GAAqC;IACnD,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,aAAa;IAClB,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,aAAa;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;CACrB,CAAC;AACF,SAAS,UAAU,CAAC,IAAY;IAC5B,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC;AACzC,CAAC;AAED;;gBAEgB;AAChB,MAAM,UAAU,aAAa,CAAC,UAA0C;IACpE,MAAM,IAAI,GAAG,iBAAiB,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC;IACvD,OAAO,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9E,CAAC;AAKD;yDACyD;AACzD,SAAS,mBAAmB,CAAC,UAA0C;IACnE,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,IAAI,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5D,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC;IAC1D,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1D,CAAC;AAED,mDAAmD;AACnD,SAAS,gBAAgB,CAAC,UAA0C;IAChE,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,IAAI,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5D,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC;IACvD,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,UAA0C,EAAE,OAAuB;IAChG,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,EAAE,CAAC;QACzC,MAAM,EAAE,gBAAgB,EAAE,aAAa,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;QACvE,MAAM,KAAK,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC;QACpE,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3E,CAAC;IACD,MAAM,KAAK,GAAG,iBAAiB,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC;IACnD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,IAAI,OAAO,KAAK,MAAM;QAAE,OAAO,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACrG,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IACtE,OAAO,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACtD,CAAC;AAED;kFACkF;AAClF,SAAS,WAAW,CAChB,UAA0C,EAC1C,OAAuB,EACvB,OAAe;IAEf,IAAI,gBAAgB,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAChE,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,EAAE,CAAC;QACzC,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;YACrB,MAAM,OAAO,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;YAChD,IAAI,CAAC,OAAO;gBAAE,OAAO,IAAI,CAAC;YAC1B,OAAO;gBACH,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;aAC/E,CAAC;QACN,CAAC;QACD,MAAM,OAAO,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC1B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACzG,CAAC;IACD,MAAM,KAAK,GAAG,iBAAiB,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC;IACnD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACrB,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAChD,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;IACtF,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IACtE,IAAI,CAAC,IAAI,EAAE,IAAI;QAAE,OAAO,IAAI,CAAC;IAC7B,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC;AAClG,CAAC;AAED,SAAS,YAAY,CAAC,KAAgB;IAClC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACvC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3C,OAAO,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC;AAC3F,CAAC;AAoBD;;;;GAIG;AACH,SAAS,eAAe,CAAC,UAA0C;IAI/D,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAChD,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;IAC9E,CAAC;IACD,MAAM,IAAI,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IACvC,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC/C,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AAC9E,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,gBAAgB,CAAC,IAAiB;IAC9C,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAEvC,yEAAyE;IACzE,8EAA8E;IAC9E,oFAAoF;IACpF,4EAA4E;IAC5E,8EAA8E;IAC9E,mBAAmB;IACnB,SAAS,aAAa,CAAC,KAAgB,EAAE,OAAgB;QACrD,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,mBAAmB,CAAC;QACxD,MAAM,KAAK,GAAG,OAAO,IAAI,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACnE,IAAI,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,CAAC;YAC1C,MAAM,IAAI,GAAG,eAAe,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;YAC/D,OAAO,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACnF,CAAC;QACD,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QAClC,MAAM,SAAS,GAAG,mBAAmB,CAAC,UAAU,CAAC,EAAE,SAAS,IAAI,KAAK,CAAC;QACtE,MAAM,KAAK,GAAG,KAAK,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QACnD,OAAO,MAAM,CAAC,GAAG,EAAE,CACf,MAAM,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,EAAE,CAAC,CAC9F,CAAC;IACN,CAAC;IAED,+EAA+E;IAC/E,6EAA6E;IAC7E,2EAA2E;IAC3E,+EAA+E;IAC/E,SAAS,eAAe,CAAC,MAAoB,EAAE,QAAoB;QAC/D,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC/B,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;QACrF,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,IAAI,gBAAgB,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5E,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;QACvC,IAAI,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAG,CAAC,IAAe,EAAa,EAAE,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;YAChG,MAAM,IAAI,GAAG,kBAAkB,CAC3B,OAAO,EACP,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,EAC9C,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CACjF,CAAC;YACF,OAAO,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACnF,CAAC;QACD,MAAM,KAAK,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3F,MAAM,IAAI,GAAG,mBAAmB,CAAC,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;QAClF,MAAM,SAAS,GAAG,KAAK,EAAE,SAAS,IAAI,KAAK,CAAC;QAC5C,+DAA+D;QAC/D,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QACxD,OAAO,MAAM,CAAC,GAAG,EAAE,CACf,MAAM,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CACjG,CAAC;IACN,CAAC;IAED,yEAAyE;IACzE,SAAS,mBAAmB,CAAC,OAAuB,EAAE,OAAe;QACjE,MAAM,IAAI,GAAG,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,mBAAmB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5F,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IACpF,CAAC;IAED,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,mBAAmB,EAAE,CAAC;AACnE,CAAC;AAKD;;;;;;GAMG;AACH,MAAM,MAAM,GAA0B,IAAI,GAAG,CAAW,CAAC,cAAc,EAAE,aAAa,EAAE,gBAAgB,CAAC,CAAC,CAAC;AAE3G;sEACsE;AACtE,SAAS,cAAc,CAAC,OAA4B;IAChD,OAAO,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC;AACnE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAChC,GAAqB,EACrB,OAAqC,EACrC,KAAgB;IAEhB,MAAM,EAAE,GAAG,oBAAoB,CAC3B,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,EACxC;QACI,SAAS,EAAE,GAAG,CAAC,KAAK;QACpB,MAAM,EAAE,GAAG,EAAE,CACT,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE;YACvB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,mBAAmB,EAAE,MAAM,CAAC;YACtF,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE;gBACf,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,GAAG,OAAO,CAAC;gBAC7C,KAAK,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC1D,CAAC;YACD,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE;SACrC,CAAC;KACT,CACJ,CAAC;IACF,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,EAAE,CAAC;IACxC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;AAC1F,CAAC;AAkBD,wDAAwD;AACxD,MAAM,UAAU,iBAAiB;IAC7B,OAAO;QACH,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;QACpE,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;QACzC,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;KAC3C,CAAC;AACN,CAAC;AAED;uEACuE;AACvE,SAAS,cAAc,CAAC,MAAmB,EAAE,OAAuB,EAAE,MAAe;IACjF,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACvC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IAC/C,OAAO,mBAAmB,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC3G,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC1B,MAAmB,EACnB,OAAuB,EACvB,MAAe,EACf,YAAwB;IAExB,OAAO,aAAa,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC;AAC7G,CAAC;AAED;0DAC0D;AAC1D,MAAM,UAAU,sBAAsB,CAClC,MAAmB,EACnB,OAAuB,EACvB,UAAkB;IAElB,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,GAAG,GAAG,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC;IACjE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IACrC,OAAO;QACH,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE;QACtE,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;KAC1C,CAAC;AACN,CAAC;AAED,gCAAgC;AAChC,MAAM,UAAU,cAAc,CAAC,GAAW;IACtC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IACrC,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;AAC3D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CACxB,GAAqB,EACrB,OAA4D,EAC5D,KAAgB;IAEhB,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAC5C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC5B,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,cAAc,CAAC;IAE5E,uEAAuE;IACvE,MAAM,WAAW,GAAG,CAAC,MAAoB,EAAQ,EAAE;QAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,OAAO,KAAK,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvD,KAAK,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,EAAE;YACrC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,EAAE;YAC7F,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,MAAM;YAChC,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI;SAC/B,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,0EAA0E;IAC1E,2BAA2B;IAC3B,MAAM,UAAU,GAAG,CAAC,KAAgB,EAAE,OAAgB,EAAQ,EAAE;QAC5D,IAAI,OAAO,KAAK,MAAM;YAAE,KAAK,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;aAClE,IAAI,OAAO,KAAK,MAAM;YAAE,KAAK,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;aACjE,IAAI,OAAO,KAAK,WAAW;YAAE,KAAK,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;;YAC3E,WAAW,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;IACzC,CAAC,CAAC;IAEF,+EAA+E;IAC/E,2EAA2E;IAC3E,wEAAwE;IACxE,MAAM,WAAW,GAAG,CAAC,KAAgB,EAAE,OAAgB,EAAQ,EAAE;QAC7D,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACxB,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;YAClC,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,QAAQ,CAAC,EAAE,CAAC;YACxE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;QAC1C,CAAC;QACD,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC/B,CAAC,CAAC;IAEF,sEAAsE;IACtE,yEAAyE;IACzE,4CAA4C;IAC5C,MAAM,WAAW,GAAG,CAAC,KAAiB,EAAoB,EAAE;QACxD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,mBAAmB,CAAC;QACxD,2EAA2E;QAC3E,yEAAyE;QACzE,MAAM,gBAAgB,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC;QACjE,MAAM,cAAc,GAAG,OAAO,KAAK,QAAQ,IAAI,CAAC,OAAO,KAAK,MAAM,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QACzG,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,gBAAgB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACrF,OAAO;YACH,IAAI;YACJ,OAAO,EAAE,OAAO;YAChB,qDAAqD;YACrD,mEAAmE;YACnE,sEAAsE;YACtE,KAAK,EACD,KAAK,CAAC,OAAO,KAAK,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;gBAC/C,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC;gBAC/C,CAAC,CAAC,IAAI;YACd,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC;YAChC,4DAA4D;YAC5D,oEAAoE;YACpE,WAAW;YACX,MAAM,EAAE,oBAAoB,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,CAAC;YACvD,MAAM,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI;YACjE,MAAM,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE;gBAC7B,WAAW,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;gBAClC,KAAK,EAAE,CAAC;YACZ,CAAC;YACD,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE;gBACb,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,EAAE,CAAC;gBAC9B,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC5B,KAAK,EAAE,CAAC;YACZ,CAAC;YACD,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBACb,MAAM,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC;gBAC9B,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;gBACtB,KAAK,EAAE,CAAC;YACZ,CAAC;YACD,mEAAmE;YACnE,qEAAqE;YACrE,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtC,GAAG,CAAC,cAAc,IAAI,OAAO,KAAK,IAAI;gBAClC,CAAC,CAAC;oBACI,SAAS,EAAE,CAAC,KAAa,EAAE,EAAE;wBACzB,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC;wBAC3C,KAAK,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;wBAC5D,KAAK,EAAE,CAAC;oBACZ,CAAC;iBACJ;gBACH,CAAC,CAAC,EAAE,CAAC;YACT,kEAAkE;YAClE,iDAAiD;SACpD,CAAC;IACN,CAAC,CAAC;IAEF,MAAM,EAAE,GAAG,oBAAoB,CAC3B,EAAE,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,EAChF;QACI,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;QAC9D,MAAM,EAAE,GAAG,EAAE,CACT,eAAe,CACX,EAAE,CAAC,IAAI,EACP,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAC3C;KACR,CACJ,CAAC;IACF,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,EAAE,CAAC;IACxC,OAAO;QACH,EAAE,EAAE,EAAE,CAAC,EAAE;QACT,oCAAoC;QACpC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACpF,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE;QAClC,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE;KAC9B,CAAC;AACN,CAAC"}
|
package/dist/ruler-controls.d.ts
CHANGED
|
@@ -46,6 +46,12 @@ export interface RulerControls {
|
|
|
46
46
|
* null. Those `movable` refuses stay put under a press.
|
|
47
47
|
*/
|
|
48
48
|
place(horizontal: RulerPlacement | null, vertical: RulerPlacement | null, text: RulerText | null, movable: (control: RulerControl) => boolean): void;
|
|
49
|
+
/**
|
|
50
|
+
* Say again which controls stay put under a press, leaving each where it
|
|
51
|
+
* stands — a selection changes what `movable` answers between the frames
|
|
52
|
+
* that place them.
|
|
53
|
+
*/
|
|
54
|
+
refuse(movable: (control: RulerControl) => boolean): void;
|
|
49
55
|
}
|
|
50
56
|
/** The ruler's controls for a ruler `thickness` CSS px deep, handing what a
|
|
51
57
|
* drop moved to `drop` — the edit it sends, settling when that is done, or
|
|
@@ -1 +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;
|
|
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;AAkChF,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;IACR;;;;OAIG;IACH,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,GAAG,IAAI,CAAC;CAC7D;AA+ED;;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,CA2Nf"}
|