@meltemi/diagrams-editor 1.9.0 → 1.10.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/add-icons.d.ts +44 -0
- package/dist/add-icons.d.ts.map +1 -0
- package/dist/add-icons.js +178 -0
- package/dist/add-icons.js.map +1 -0
- package/dist/arrange.d.ts +54 -1
- package/dist/arrange.d.ts.map +1 -1
- package/dist/arrange.js +209 -8
- package/dist/arrange.js.map +1 -1
- package/dist/asset-files.d.ts +46 -0
- package/dist/asset-files.d.ts.map +1 -0
- package/dist/asset-files.js +79 -0
- package/dist/asset-files.js.map +1 -0
- package/dist/c4.d.ts +91 -1
- package/dist/c4.d.ts.map +1 -1
- package/dist/c4.js +358 -9
- package/dist/c4.js.map +1 -1
- package/dist/canvas/index.d.ts +1 -0
- package/dist/canvas/index.d.ts.map +1 -1
- package/dist/canvas/index.js +1 -0
- package/dist/canvas/index.js.map +1 -1
- package/dist/canvas/keyboard.d.ts +23 -2
- package/dist/canvas/keyboard.d.ts.map +1 -1
- package/dist/canvas/keyboard.js +23 -0
- package/dist/canvas/keyboard.js.map +1 -1
- package/dist/canvas/palette.d.ts +48 -6
- package/dist/canvas/palette.d.ts.map +1 -1
- package/dist/canvas/palette.js +55 -9
- package/dist/canvas/palette.js.map +1 -1
- package/dist/canvas/pens.d.ts +10 -0
- package/dist/canvas/pens.d.ts.map +1 -0
- package/dist/canvas/pens.js +29 -0
- package/dist/canvas/pens.js.map +1 -0
- package/dist/canvas/protocol.d.ts +580 -21
- package/dist/canvas/protocol.d.ts.map +1 -1
- package/dist/canvas/protocol.js +140 -3
- package/dist/canvas/protocol.js.map +1 -1
- package/dist/canvas/routes.d.ts +17 -0
- package/dist/canvas/routes.d.ts.map +1 -1
- package/dist/canvas/routes.js +37 -0
- package/dist/canvas/routes.js.map +1 -1
- package/dist/canvas/turning.d.ts +7 -0
- package/dist/canvas/turning.d.ts.map +1 -1
- package/dist/canvas/turning.js +17 -3
- package/dist/canvas/turning.js.map +1 -1
- package/dist/catalog.d.ts +5 -0
- package/dist/catalog.d.ts.map +1 -1
- package/dist/catalog.js +1 -1
- package/dist/catalog.js.map +1 -1
- package/dist/clipboard.d.ts.map +1 -1
- package/dist/clipboard.js +98 -9
- package/dist/clipboard.js.map +1 -1
- package/dist/effects.d.ts +5 -0
- package/dist/effects.d.ts.map +1 -1
- package/dist/effects.js +31 -22
- package/dist/effects.js.map +1 -1
- package/dist/exports.d.ts +25 -11
- package/dist/exports.d.ts.map +1 -1
- package/dist/exports.js +65 -28
- package/dist/exports.js.map +1 -1
- package/dist/fonts.d.ts +63 -0
- package/dist/fonts.d.ts.map +1 -0
- package/dist/fonts.js +175 -0
- package/dist/fonts.js.map +1 -0
- package/dist/icons.d.ts +2 -0
- package/dist/icons.d.ts.map +1 -1
- package/dist/icons.js +39 -6
- package/dist/icons.js.map +1 -1
- package/dist/index.d.ts +6 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/inspector.d.ts.map +1 -1
- package/dist/inspector.js +545 -141
- package/dist/inspector.js.map +1 -1
- package/dist/layouts.d.ts +3 -2
- package/dist/layouts.d.ts.map +1 -1
- package/dist/layouts.js +4 -2
- package/dist/layouts.js.map +1 -1
- package/dist/messages/en.d.ts +106 -20
- package/dist/messages/en.d.ts.map +1 -1
- package/dist/messages/en.js +110 -26
- package/dist/messages/en.js.map +1 -1
- package/dist/messages/es.d.ts.map +1 -1
- package/dist/messages/es.js +80 -43
- package/dist/messages/es.js.map +1 -1
- package/dist/messages/index.d.ts +76 -17
- package/dist/messages/index.d.ts.map +1 -1
- package/dist/messages/keys.d.ts.map +1 -1
- package/dist/messages/keys.js +26 -0
- package/dist/messages/keys.js.map +1 -1
- package/dist/messages/services.d.ts +130 -1
- package/dist/messages/services.d.ts.map +1 -1
- package/dist/messages/services.js +150 -18
- package/dist/messages/services.js.map +1 -1
- package/dist/move-file.d.ts +32 -0
- package/dist/move-file.d.ts.map +1 -0
- package/dist/move-file.js +58 -0
- package/dist/move-file.js.map +1 -0
- package/dist/node.d.ts +1 -1
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js.map +1 -1
- package/dist/projects.d.ts +65 -1
- package/dist/projects.d.ts.map +1 -1
- package/dist/projects.js +349 -1
- package/dist/projects.js.map +1 -1
- package/dist/render.d.ts +5 -0
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +4 -2
- package/dist/render.js.map +1 -1
- package/dist/sequence.d.ts +37 -8
- package/dist/sequence.d.ts.map +1 -1
- package/dist/sequence.js +409 -38
- package/dist/sequence.js.map +1 -1
- package/dist/services/actions.d.ts.map +1 -1
- package/dist/services/actions.js +65 -1
- package/dist/services/actions.js.map +1 -1
- package/dist/services/completion.d.ts.map +1 -1
- package/dist/services/completion.js +146 -16
- package/dist/services/completion.js.map +1 -1
- package/dist/services/docs.d.ts +5 -0
- package/dist/services/docs.d.ts.map +1 -1
- package/dist/services/docs.js +7 -0
- package/dist/services/docs.js.map +1 -1
- package/dist/services/hover.d.ts +5 -0
- package/dist/services/hover.d.ts.map +1 -1
- package/dist/services/hover.js +154 -21
- package/dist/services/hover.js.map +1 -1
- package/dist/services/navigation.d.ts +1 -1
- package/dist/services/navigation.d.ts.map +1 -1
- package/dist/services/navigation.js +8 -4
- package/dist/services/navigation.js.map +1 -1
- package/dist/services/stories.d.ts.map +1 -1
- package/dist/services/stories.js +31 -3
- package/dist/services/stories.js.map +1 -1
- package/dist/session.d.ts +121 -13
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +1349 -80
- package/dist/session.js.map +1 -1
- package/dist/syntax.d.ts.map +1 -1
- package/dist/syntax.js +3 -0
- package/dist/syntax.js.map +1 -1
- package/dist/targets.d.ts +25 -4
- package/dist/targets.d.ts.map +1 -1
- package/dist/targets.js +103 -7
- package/dist/targets.js.map +1 -1
- package/dist/text-places.d.ts +15 -3
- package/dist/text-places.d.ts.map +1 -1
- package/dist/text-places.js +187 -12
- package/dist/text-places.js.map +1 -1
- package/dist/themes.d.ts +0 -2
- package/dist/themes.d.ts.map +1 -1
- package/dist/themes.js +27 -13
- package/dist/themes.js.map +1 -1
- package/package.json +16 -16
package/dist/exports.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { animatedScene, motionOptions, planMotion, sceneAt, storyFrame, } from "@meltemi/diagrams-motion";
|
|
1
|
+
import { animatedScene, defaultMotionDuration, motionLoop, motionOptions, planMotion, sceneAt, storyFrame, } from "@meltemi/diagrams-motion";
|
|
2
2
|
import { effectsDocument, framesPage, playerFragment, playerPage, rootView, storyDocument, } from "@meltemi/diagrams-player";
|
|
3
3
|
import { renderSvg } from "@meltemi/diagrams-render";
|
|
4
4
|
import { viewClosure } from "./drill.js";
|
|
@@ -15,20 +15,22 @@ export const VIDEO_DEFAULTS = {
|
|
|
15
15
|
};
|
|
16
16
|
/** The largest side of a captured picture, in pixels. */
|
|
17
17
|
export const MAX_PIXELS = 16384;
|
|
18
|
+
/** The layout's frame option for a request: `"none"` for an export without the branding. */
|
|
19
|
+
const frameOf = (request) => request.branding === "none" ? "none" : undefined;
|
|
18
20
|
/** The language of what an export adds: the request's, else the project's, else English. */
|
|
19
21
|
function contentLocale(context, request) {
|
|
20
22
|
return request.locale ?? context.projects.contentLocale(context.workspace);
|
|
21
23
|
}
|
|
22
24
|
/** Lays out a diagram with the themes, fonts and images of the file that defines it. */
|
|
23
|
-
function layoutOf(context, owner, diagram, theme, scenario, locale) {
|
|
24
|
-
const result = layoutIn(context.workspace, context.projects, owner, diagram, theme, scenario, locale);
|
|
25
|
+
function layoutOf(context, owner, diagram, theme, scenario, locale, frame) {
|
|
26
|
+
const result = layoutIn(context.workspace, context.projects, owner, diagram, theme, scenario, locale, frame);
|
|
25
27
|
const own = owner === context.file;
|
|
26
28
|
context.report(owner.path, result.diagnostics.filter((d) => !own || !context.printed.has(`${d.code}@${d.range.start.offset}`)));
|
|
27
29
|
return result;
|
|
28
30
|
}
|
|
29
31
|
/** The laid-out views of a story, by view key, or undefined when one cannot be drawn. */
|
|
30
|
-
function storyLayouts(context, story, theme, locale) {
|
|
31
|
-
return storyLayoutsIn(context.workspace, context.file, story, (owner, diagram) => layoutOf(context, owner, diagram, theme, undefined, locale));
|
|
32
|
+
function storyLayouts(context, story, theme, locale, frame) {
|
|
33
|
+
return storyLayoutsIn(context.workspace, context.file, story, (owner, diagram) => layoutOf(context, owner, diagram, theme, undefined, locale, frame));
|
|
32
34
|
}
|
|
33
35
|
/** The scene with the request's background and picture link, and the background for capture. */
|
|
34
36
|
function decorate(scene, request, colors) {
|
|
@@ -60,7 +62,7 @@ function drillViews(context, request, owner, diagram, layout, locale) {
|
|
|
60
62
|
const sources = context.workspace.sources();
|
|
61
63
|
const root = program.files.get(owner.path) ?? owner;
|
|
62
64
|
const rootDiagram = root.compilation.document.diagrams.find((d) => d.id === diagram.id) ?? diagram;
|
|
63
|
-
return viewClosure(program, sources, { owner: root, diagram: rootDiagram }, layout, (view) => layoutOf(context, view.owner, view.diagram, request.theme, undefined, locale));
|
|
65
|
+
return viewClosure(program, sources, { owner: root, diagram: rootDiagram }, layout, (view) => layoutOf(context, view.owner, view.diagram, request.theme, undefined, locale, frameOf(request)));
|
|
64
66
|
}
|
|
65
67
|
function playerHtml(doc, request, script, lang) {
|
|
66
68
|
const options = { autoplay: request.autoplay, loop: request.loop, lang };
|
|
@@ -95,7 +97,7 @@ export function produceExport(context, request) {
|
|
|
95
97
|
let scene;
|
|
96
98
|
let colors;
|
|
97
99
|
if (request.target.kind === "story") {
|
|
98
|
-
const layouts = storyLayouts(context, request.target.story, request.theme, contentLocale(context, request));
|
|
100
|
+
const layouts = storyLayouts(context, request.target.story, request.theme, contentLocale(context, request), frameOf(request));
|
|
99
101
|
const doc = layouts &&
|
|
100
102
|
storyDocument(request.target.story, layouts, {
|
|
101
103
|
...fontsFor(request.fonts),
|
|
@@ -115,7 +117,7 @@ export function produceExport(context, request) {
|
|
|
115
117
|
}
|
|
116
118
|
else {
|
|
117
119
|
const { diagram, owner } = request.target;
|
|
118
|
-
const result = layoutOf(context, owner, diagram, request.theme, request.scenario, contentLocale(context, request));
|
|
120
|
+
const result = layoutOf(context, owner, diagram, request.theme, request.scenario, contentLocale(context, request), frameOf(request));
|
|
119
121
|
if (!result.scene)
|
|
120
122
|
return { problem: problems.cannotDraw(diagram.id) };
|
|
121
123
|
if (request.format === "html") {
|
|
@@ -140,13 +142,30 @@ export function produceExport(context, request) {
|
|
|
140
142
|
if (request.format === "svg") {
|
|
141
143
|
return { text: renderSvg(decorated.scene, { fonts: request.fonts, provider }) };
|
|
142
144
|
}
|
|
143
|
-
const
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
145
|
+
const fitted = fitPicture(captureJob(context, decorated.scene, decorated.background, request));
|
|
146
|
+
return fitted.notice ? { job: fitted.job, notices: [fitted.notice] } : { job: fitted.job };
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* A picture whose side would pass `MAX_PIXELS` made as large as fits, keeping its proportions: a
|
|
150
|
+
* PNG at a smaller scale, a PDF on a smaller page; with the notice naming the pixels used.
|
|
151
|
+
*/
|
|
152
|
+
function fitPicture(job) {
|
|
153
|
+
const scale = job.scale ?? 1;
|
|
154
|
+
const factor = Math.min(1, MAX_PIXELS / (job.width * scale), MAX_PIXELS / (job.height * scale));
|
|
155
|
+
if (factor >= 1)
|
|
156
|
+
return { job };
|
|
157
|
+
const fitted = job.kind === "png"
|
|
158
|
+
? { ...job, scale: scale * factor }
|
|
159
|
+
: {
|
|
160
|
+
...job,
|
|
161
|
+
width: Math.floor(job.width * factor),
|
|
162
|
+
height: Math.floor(job.height * factor),
|
|
147
163
|
};
|
|
148
|
-
|
|
149
|
-
return {
|
|
164
|
+
const used = fitted.scale ?? 1;
|
|
165
|
+
return {
|
|
166
|
+
job: fitted,
|
|
167
|
+
notice: messages().exports.notices.clamped(Math.round(fitted.width * used), Math.round(fitted.height * used), MAX_PIXELS),
|
|
168
|
+
};
|
|
150
169
|
}
|
|
151
170
|
/**
|
|
152
171
|
* A video: the player document of the story or of the diagram's effects (with embedded fonts), and
|
|
@@ -156,43 +175,60 @@ function produceVideo(context, request) {
|
|
|
156
175
|
const format = request.format;
|
|
157
176
|
const fonts = { fonts: context.projects.fontsFor(context.workspace) };
|
|
158
177
|
const problems = messages().exports;
|
|
178
|
+
const notices = [];
|
|
159
179
|
let doc;
|
|
160
180
|
let duration;
|
|
161
181
|
let colors;
|
|
162
182
|
if (request.target.kind === "story") {
|
|
163
|
-
const layouts = storyLayouts(context, request.target.story, request.theme, contentLocale(context, request));
|
|
183
|
+
const layouts = storyLayouts(context, request.target.story, request.theme, contentLocale(context, request), frameOf(request));
|
|
164
184
|
const story = layouts && storyDocument(request.target.story, layouts, fonts);
|
|
165
185
|
if (!story)
|
|
166
186
|
return { problem: problems.storyNotDrawn(request.target.story.id) };
|
|
167
187
|
doc = story;
|
|
168
|
-
duration = request.durationMs
|
|
188
|
+
duration = request.durationMs || story.timeline.durationMs;
|
|
169
189
|
colors = [...layouts.values()][0]?.layout.theme;
|
|
170
190
|
}
|
|
171
191
|
else {
|
|
172
192
|
const { diagram, owner } = request.target;
|
|
173
|
-
const result = layoutOf(context, owner, diagram, request.theme, request.scenario, contentLocale(context, request));
|
|
193
|
+
const result = layoutOf(context, owner, diagram, request.theme, request.scenario, contentLocale(context, request), frameOf(request));
|
|
174
194
|
const effects = result.scene ? effectsDocument({ diagram, layout: result }, fonts) : undefined;
|
|
175
195
|
if (!effects)
|
|
176
196
|
return { problem: problems.cannotDraw(diagram.id) };
|
|
177
197
|
doc = effects;
|
|
178
|
-
duration = request.durationMs ?? rootView(effects).durationMs;
|
|
179
198
|
colors = result.theme;
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
199
|
+
// A given duration wins, then the end of finite effects; endless or still effects take the
|
|
200
|
+
// default, which the notice names.
|
|
201
|
+
const view = rootView(effects);
|
|
202
|
+
if (request.durationMs)
|
|
203
|
+
duration = request.durationMs;
|
|
204
|
+
else if (view.durationMs)
|
|
205
|
+
duration = view.durationMs;
|
|
206
|
+
else {
|
|
207
|
+
duration = defaultMotionDuration(view.plan);
|
|
208
|
+
const notices_ = problems.notices;
|
|
209
|
+
notices.push(view.plan.effects.length === 0
|
|
210
|
+
? notices_.stillDuration(diagram.id, duration)
|
|
211
|
+
: motionLoop(view.plan) !== null
|
|
212
|
+
? notices_.defaultDuration(diagram.id, duration)
|
|
213
|
+
: notices_.longestDuration(diagram.id, duration));
|
|
184
214
|
}
|
|
185
215
|
}
|
|
216
|
+
// MP4 has no transparency: it takes the theme's background, as the canvas shows it.
|
|
217
|
+
let drawn = request;
|
|
186
218
|
if (format === "mp4" && request.background === "transparent") {
|
|
187
|
-
|
|
219
|
+
drawn = { ...request, background: null };
|
|
220
|
+
notices.push(problems.notices.mp4Background);
|
|
188
221
|
}
|
|
189
222
|
const scene = doc.kind === "story" ? Object.values(doc.views)[0].scene : rootView(doc).scene;
|
|
190
|
-
const background = decorate(scene,
|
|
223
|
+
const background = decorate(scene, drawn, colors).background;
|
|
191
224
|
const defaults = VIDEO_DEFAULTS[format];
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
225
|
+
let width = request.size?.width ?? defaults.width;
|
|
226
|
+
let height = request.size?.height ?? defaults.height;
|
|
227
|
+
const factor = Math.min(1, MAX_PIXELS / width, MAX_PIXELS / height);
|
|
228
|
+
if (factor < 1) {
|
|
229
|
+
width = Math.floor(width * factor);
|
|
230
|
+
height = Math.floor(height * factor);
|
|
231
|
+
notices.push(problems.notices.clamped(width, height, MAX_PIXELS));
|
|
196
232
|
}
|
|
197
233
|
return {
|
|
198
234
|
video: {
|
|
@@ -206,6 +242,7 @@ function produceVideo(context, request) {
|
|
|
206
242
|
out: request.out,
|
|
207
243
|
},
|
|
208
244
|
document: doc,
|
|
245
|
+
...(notices.length > 0 ? { notices } : {}),
|
|
209
246
|
};
|
|
210
247
|
}
|
|
211
248
|
/**
|
package/dist/exports.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exports.js","sourceRoot":"","sources":["../src/exports.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,aAAa,EACb,aAAa,EACb,UAAU,EACV,OAAO,EACP,UAAU,GACX,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,eAAe,EACf,UAAU,EACV,cAAc,EACd,UAAU,EACV,QAAQ,EACR,aAAa,GAId,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,SAAS,EAAmB,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAG/C,mCAAmC;AACnC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAU,CAAC;AAC7F,MAAM,KAAK,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAU,CAAC;AAC9C,oFAAoF;AACpF,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE;IAC3C,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE;IAC5C,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE;CACjC,CAAC;AAKX,yDAAyD;AACzD,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,CAAC;AA8ChC,4FAA4F;AAC5F,SAAS,aAAa,CAAC,OAAsB,EAAE,OAAsB;IACnE,OAAO,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAC7E,CAAC;AAED,wFAAwF;AACxF,SAAS,QAAQ,CACf,OAAsB,EACtB,KAAsB,EACtB,OAAoB,EACpB,KAAoB,EACpB,QAA4B,EAC5B,MAAc;IAEd,MAAM,MAAM,GAAG,QAAQ,CACrB,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,QAAQ,EAChB,KAAK,EACL,OAAO,EACP,KAAK,EACL,QAAQ,EACR,MAAM,CACP,CAAC;IACF,MAAM,GAAG,GAAG,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC;IACnC,OAAO,CAAC,MAAM,CACZ,KAAK,CAAC,IAAI,EACV,MAAM,CAAC,WAAW,CAAC,MAAM,CACvB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CACzE,CACF,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,yFAAyF;AACzF,SAAS,YAAY,CACnB,OAAsB,EACtB,KAAsB,EACtB,KAAoB,EACpB,MAAc;IAEd,OAAO,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAC/E,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAC5D,CAAC;AACJ,CAAC;AAED,gGAAgG;AAChG,SAAS,QAAQ,CACf,KAAY,EACZ,OAAsB,EACtB,MAAqD;IAErD,IAAI,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;IAClC,IAAI,OAAO,CAAC,UAAU,KAAK,aAAa;QAAE,UAAU,GAAG,aAAa,CAAC;SAChE,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,UAAU,GAAG,KAAK,CAAC;IACpD,CAAC;SAAM,IAAI,OAAO,CAAC,UAAU;QAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAC/D,OAAO;QACL,KAAK,EAAE;YACL,GAAG,KAAK;YACR,UAAU,EAAE,UAAU,KAAK,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU;YAC9D,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChD;QACD,UAAU;KACX,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,UAAU,CACjB,OAAsB,EACtB,OAAsB,EACtB,KAAsB,EACtB,OAAoB,EACpB,MAAoB,EACpB,MAAc;IAEd,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC;IACnD,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC;IACpD,MAAM,WAAW,GACf,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC;IACjF,OAAO,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAC3F,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAC9E,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CACjB,GAAmB,EACnB,OAAsB,EACtB,MAAc,EACd,IAAY;IAEZ,MAAM,OAAO,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;IACzE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACjG,CAAC;AAED,kFAAkF;AAClF,SAAS,UAAU,CACjB,OAAsB,EACtB,KAAY,EACZ,UAAkB,EAClB,OAAsB;IAEtB,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,MAAuB;QACrC,GAAG,EAAE,SAAS,CAAC,KAAK,EAAE;YACpB,KAAK,EAAE,UAAU;YACjB,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC;SACvD,CAAC;QACF,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,IAAI,KAAK,CAAC,KAAK;QACzC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,IAAI,KAAK,CAAC,MAAM;QAC5C,KAAK,EAAE,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACnD,UAAU;KACX,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAC3B,OAAsB,EACtB,OAAsB;IAMtB,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,CAAC,MAAkB,EAAE,EAAE,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5F,IAAK,KAA2B,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACjG,MAAM,QAAQ,GAAG,QAAQ,EAAE,CAAC,OAAO,CAAC;IACpC,IAAI,KAAY,CAAC;IACjB,IAAI,MAAqD,CAAC;IAC1D,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,YAAY,CAC1B,OAAO,EACP,OAAO,CAAC,MAAM,CAAC,KAAK,EACpB,OAAO,CAAC,KAAK,EACb,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAChC,CAAC;QACF,MAAM,GAAG,GACP,OAAO;YACP,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE;gBAC3C,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;gBAC1B,MAAM,EAAE,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC;aACxC,CAAC,CAAC;QACL,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;QAC9E,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM;YAC3B,OAAO;gBACL,IAAI,EAAE,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,YAAY,EAAE,EAAE,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;aACxF,CAAC;QACJ,MAAM,KAAK,GAAG,UAAU,CACtB,GAAG,CAAC,QAAQ,EACZ,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EACvB,OAAO,CAAC,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,EACrC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CACvB,CAAC;QACF,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;QAChF,KAAK,GAAG,KAAK,CAAC;QACd,MAAM,GAAG,CAAC,GAAG,OAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,KAA2C,CAAC;IACzF,CAAC;SAAM,CAAC;QACN,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;QAC1C,MAAM,MAAM,GAAG,QAAQ,CACrB,OAAO,EACP,KAAK,EACL,OAAO,EACP,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,QAAQ,EAChB,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAChC,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,KAAK;YAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;QACvE,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC/C,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAC3E,MAAM,GAAG,GAAG,eAAe,CACzB,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAC3B,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAC9C,CAAC;YACF,OAAO,GAAG;gBACR,CAAC,CAAC;oBACE,IAAI,EAAE,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,YAAY,EAAE,EAAE,MAAM,CAAC;oBAC9D,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM;iBACrC;gBACH,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;QACnD,CAAC;QACD,MAAM,GAAG,MAAM,CAAC,KAA2C,CAAC;QAC5D,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QACrB,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,IAAI,OAAO,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;YACzD,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACrE,KAAK,GAAG,OAAO,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;IACD,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACnD,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;QAC7B,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IAClF,CAAC;IACD,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAChF,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,UAAU,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,UAAU,EAAE,CAAC;QAC5F,OAAO;YACL,OAAO,EAAE,QAAQ,CAAC,QAAQ,CACxB,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,EAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EACxC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EACzC,UAAU,CACX;SACF,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CACnB,OAAsB,EACtB,OAAsB;IAEtB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAgC,CAAC;IACxD,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;IACtE,MAAM,QAAQ,GAAG,QAAQ,EAAE,CAAC,OAAO,CAAC;IACpC,IAAI,GAA+B,CAAC;IACpC,IAAI,QAAuB,CAAC;IAC5B,IAAI,MAAqD,CAAC;IAC1D,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,YAAY,CAC1B,OAAO,EACP,OAAO,CAAC,MAAM,CAAC,KAAK,EACpB,OAAO,CAAC,KAAK,EACb,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAChC,CAAC;QACF,MAAM,KAAK,GAAG,OAAO,IAAI,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QAC7E,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;QAChF,GAAG,GAAG,KAAK,CAAC;QACZ,QAAQ,GAAG,OAAO,CAAC,UAAU,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC3D,MAAM,GAAG,CAAC,GAAG,OAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,KAA2C,CAAC;IACzF,CAAC;SAAM,CAAC;QACN,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;QAC1C,MAAM,MAAM,GAAG,QAAQ,CACrB,OAAO,EACP,KAAK,EACL,OAAO,EACP,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,QAAQ,EAChB,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAChC,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/F,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;QAClE,GAAG,GAAG,OAAO,CAAC;QACd,QAAQ,GAAG,OAAO,CAAC,UAAU,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC;QAC9D,MAAM,GAAG,MAAM,CAAC,KAA2C,CAAC;QAC5D,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;YACxC,OAAO;gBACL,OAAO,EAAE,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;aACvF,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IAAI,MAAM,KAAK,KAAK,IAAI,OAAO,CAAC,UAAU,KAAK,aAAa,EAAE,CAAC;QAC7D,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,cAAc,EAAE,CAAC;IAC9C,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;IAC9F,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,UAAU,CAAC;IAC/D,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC;IACpD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC;IACvD,IAAI,KAAK,GAAG,UAAU,IAAI,MAAM,GAAG,UAAU,EAAE,CAAC;QAC9C,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;IACrD,CAAC;IACD,OAAO;QACL,KAAK,EAAE;YACL,MAAM;YACN,IAAI,EAAE,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,YAAY,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;YAC5E,KAAK;YACL,MAAM;YACN,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,QAAQ,CAAC,GAAG;YAChC,UAAU,EAAE,QAAS;YACrB,UAAU;YACV,GAAG,EAAE,OAAO,CAAC,GAAI;SAClB;QACD,QAAQ,EAAE,GAAG;KACd,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAsB,EACtB,OAAsB,EACtB,IAAY,EACZ,KAA+B;IAE/B,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAC1C,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,QAAQ,KAAK,OAAO;QACtB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM;QAClD,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CACjD,CAAC;IACF,MAAM,QAAQ,GAAG,QAAQ,EAAE,CAAC,OAAO,CAAC;IACpC,IAAI,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI;QAAE,OAAO,QAAQ,CAAC,eAAe,CAAC;IACvE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAkB,CAAC;IAC1C,IAAI,MAA+B,CAAC;IACpC,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAC5D,MAAM,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC1D,CAAC;SAAM,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACvE,MAAM,KAAK,GACT,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5F,MAAM,OAAO,GAAG,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CACvD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,OAAQ,CAAC,EAAE,CAC3C,CAAC;QACF,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS;YAAE,OAAO,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7F,MAAM,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC/C,CAAC;;QAAM,OAAO,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,GAAG,IAAI,IAAI,OAAO,CAAC,EAAE,IAAI,MAAM,EAAE,CAAC;IAC/D,OAAO;QACL,MAAM;QACN,MAAM;QACN,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,UAAU;QAClC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,QAAQ;QAClC,EAAE,EAAE,OAAO,CAAC,IAAI;QAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,SAAS;QACvC,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;QACzB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC;KACjB,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"exports.js","sourceRoot":"","sources":["../src/exports.ts"],"names":[],"mappings":"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"}
|
package/dist/fonts.d.ts
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { type FamilyInfo } from "@meltemi/diagrams-fonts";
|
|
2
|
+
import { StyleResolver, type ResolvedStyle, type Theme } from "@meltemi/diagrams-layout";
|
|
3
|
+
import { type FlowDiagram } from "@meltemi/diagrams-model";
|
|
4
|
+
import { type FontProvider } from "@meltemi/diagrams-render";
|
|
5
|
+
import type { FontOption } from "./canvas/protocol.js";
|
|
6
|
+
/**
|
|
7
|
+
* The common text sizes the strip's size list offers and its − and + buttons, and the text size
|
|
8
|
+
* keys, step along (decision 0067). Any size from 6 to 160 may still be typed.
|
|
9
|
+
*/
|
|
10
|
+
export declare const FONT_SIZE_STEPS: readonly number[];
|
|
11
|
+
/**
|
|
12
|
+
* The size one step of the list up (1) or down (-1) from `size`: the next larger or smaller
|
|
13
|
+
* common size, so that a size between two of them steps to the nearer one in that direction;
|
|
14
|
+
* undefined past the ends of the list.
|
|
15
|
+
*/
|
|
16
|
+
export declare function stepFontSize(size: number, step: 1 | -1): number | undefined;
|
|
17
|
+
/** A target of the selection: an element, a relation or a sequence event, by its id or key. */
|
|
18
|
+
export interface TextTarget {
|
|
19
|
+
readonly id: string;
|
|
20
|
+
readonly kind: "element" | "relation" | "event";
|
|
21
|
+
}
|
|
22
|
+
/** What a target's text draws: its family (the first of its stack), size and weight. */
|
|
23
|
+
export interface TextFace {
|
|
24
|
+
readonly family: string;
|
|
25
|
+
readonly size: number;
|
|
26
|
+
readonly weight: number;
|
|
27
|
+
}
|
|
28
|
+
/** The first family of a CSS font stack, without quotes. */
|
|
29
|
+
export declare function firstFamily(stack: string): string;
|
|
30
|
+
/**
|
|
31
|
+
* The family a theme's stack draws with: its first bundled family (`ui-monospace, "Cascadia
|
|
32
|
+
* Mono", …` is Cascadia Mono), else its first family.
|
|
33
|
+
*/
|
|
34
|
+
export declare function stackFamily(stack: string): string;
|
|
35
|
+
/**
|
|
36
|
+
* The family, size and weight a target's text takes from the theme when its styles write none,
|
|
37
|
+
* as the layout draws it: labels at `labelSize` and `labelWeight`, free texts 1.6 times that,
|
|
38
|
+
* stickies 1.2 times at 400, group titles at `groupTitleSize`, notes at `noteSize` and 400, tags
|
|
39
|
+
* in the mono font at `tagSize` and 500, relation labels at `relationLabelSize` and 500 (400 for
|
|
40
|
+
* sequence messages), a fragment's operator at 600. Undefined for what draws no text.
|
|
41
|
+
*/
|
|
42
|
+
export declare function themeText(theme: Theme, diagram: FlowDiagram, target: TextTarget): TextFace | undefined;
|
|
43
|
+
/** The style a target resolves to through rules, classes and its own statements. */
|
|
44
|
+
export declare function resolvedStyle(resolver: StyleResolver, diagram: FlowDiagram, target: TextTarget): ResolvedStyle;
|
|
45
|
+
/**
|
|
46
|
+
* What a target's text draws with its rules and classes but without its own `style` statements
|
|
47
|
+
* being asked for separately: the resolved family, size and weight over the theme's.
|
|
48
|
+
*/
|
|
49
|
+
export declare function drawnText(theme: Theme, diagram: FlowDiagram, target: TextTarget, resolver?: StyleResolver): TextFace | undefined;
|
|
50
|
+
/**
|
|
51
|
+
* The families text can be measured with: the provider's catalogue (bundled families by group,
|
|
52
|
+
* then the project's fonts), or the bundled families when the host measures with estimates.
|
|
53
|
+
*/
|
|
54
|
+
export declare function fontFamilies(provider: FontProvider | undefined): FamilyInfo[];
|
|
55
|
+
/** What a written stack is measured with: a family of the catalogue, or nothing (estimates). */
|
|
56
|
+
export declare function measuredFamily(provider: FontProvider | undefined, stack: string): FamilyInfo | undefined;
|
|
57
|
+
/**
|
|
58
|
+
* The families the font picker lists: the provider's catalogue (bundled families by group, then
|
|
59
|
+
* the project's fonts), each with the `@font-face` rules of its row's glyphs. Without a provider
|
|
60
|
+
* (a host that measures with estimates) the bundled families are listed without faces.
|
|
61
|
+
*/
|
|
62
|
+
export declare function fontOptions(provider: FontProvider | undefined): FontOption[];
|
|
63
|
+
//# sourceMappingURL=fonts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fonts.d.ts","sourceRoot":"","sources":["../src/fonts.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,UAAU,EAChB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,KAAK,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACzF,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAE5C,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,SAAS,CAG3E;AAED,+FAA+F;AAC/F,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;CACjD;AAED,wFAAwF;AACxF,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,4DAA4D;AAC5D,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjD;AAID;;;;;;GAMG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,UAAU,GACjB,QAAQ,GAAG,SAAS,CAgCtB;AAED,oFAAoF;AACpF,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,UAAU,GACjB,aAAa,CAaf;AAED;;;GAGG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,UAAU,EAClB,QAAQ,GAAE,aAAiD,GAC1D,QAAQ,GAAG,SAAS,CAStB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,YAAY,GAAG,SAAS,GAAG,UAAU,EAAE,CAe7E;AAED,gGAAgG;AAChG,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,YAAY,GAAG,SAAS,EAClC,KAAK,EAAE,MAAM,GACZ,UAAU,GAAG,SAAS,CAcxB;AAQD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,YAAY,GAAG,SAAS,GAAG,UAAU,EAAE,CAqB5E"}
|
package/dist/fonts.js
ADDED
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { BUNDLED_FAMILIES, FONT_GROUPS, resolveFontStack, } from "@meltemi/diagrams-fonts";
|
|
2
|
+
import { StyleResolver } from "@meltemi/diagrams-layout";
|
|
3
|
+
import { TEXTLESS_KINDS } from "@meltemi/diagrams-model";
|
|
4
|
+
import { fontFaceRule } from "@meltemi/diagrams-render";
|
|
5
|
+
/**
|
|
6
|
+
* The common text sizes the strip's size list offers and its − and + buttons, and the text size
|
|
7
|
+
* keys, step along (decision 0067). Any size from 6 to 160 may still be typed.
|
|
8
|
+
*/
|
|
9
|
+
export const FONT_SIZE_STEPS = [
|
|
10
|
+
8, 9, 10, 11, 12, 14, 16, 18, 20, 24, 28, 32, 36, 40, 48, 56, 64, 72, 96,
|
|
11
|
+
];
|
|
12
|
+
/**
|
|
13
|
+
* The size one step of the list up (1) or down (-1) from `size`: the next larger or smaller
|
|
14
|
+
* common size, so that a size between two of them steps to the nearer one in that direction;
|
|
15
|
+
* undefined past the ends of the list.
|
|
16
|
+
*/
|
|
17
|
+
export function stepFontSize(size, step) {
|
|
18
|
+
if (step > 0)
|
|
19
|
+
return FONT_SIZE_STEPS.find((s) => s > size + 1e-9);
|
|
20
|
+
return [...FONT_SIZE_STEPS].reverse().find((s) => s < size - 1e-9);
|
|
21
|
+
}
|
|
22
|
+
/** The first family of a CSS font stack, without quotes. */
|
|
23
|
+
export function firstFamily(stack) {
|
|
24
|
+
return (stack.split(",")[0] ?? "").trim().replace(/^["']|["']$/g, "");
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* The family a theme's stack draws with: its first bundled family (`ui-monospace, "Cascadia
|
|
28
|
+
* Mono", …` is Cascadia Mono), else its first family.
|
|
29
|
+
*/
|
|
30
|
+
export function stackFamily(stack) {
|
|
31
|
+
return resolveFontStack(stack) ?? firstFamily(stack);
|
|
32
|
+
}
|
|
33
|
+
const round2 = (value) => Math.round(value * 100) / 100;
|
|
34
|
+
/**
|
|
35
|
+
* The family, size and weight a target's text takes from the theme when its styles write none,
|
|
36
|
+
* as the layout draws it: labels at `labelSize` and `labelWeight`, free texts 1.6 times that,
|
|
37
|
+
* stickies 1.2 times at 400, group titles at `groupTitleSize`, notes at `noteSize` and 400, tags
|
|
38
|
+
* in the mono font at `tagSize` and 500, relation labels at `relationLabelSize` and 500 (400 for
|
|
39
|
+
* sequence messages), a fragment's operator at 600. Undefined for what draws no text.
|
|
40
|
+
*/
|
|
41
|
+
export function themeText(theme, diagram, target) {
|
|
42
|
+
const body = stackFamily(theme.font);
|
|
43
|
+
if (target.kind === "relation") {
|
|
44
|
+
const weight = diagram.type === "sequence" ? 400 : 500;
|
|
45
|
+
return { family: body, size: theme.relationLabelSize, weight };
|
|
46
|
+
}
|
|
47
|
+
if (target.kind === "event") {
|
|
48
|
+
const event = diagram.eventsByKey.get(target.id);
|
|
49
|
+
if (event?.kind === "note")
|
|
50
|
+
return { family: body, size: theme.noteSize, weight: 400 };
|
|
51
|
+
if (event?.kind === "fragment") {
|
|
52
|
+
return { family: body, size: theme.relationLabelSize, weight: 600 };
|
|
53
|
+
}
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
56
|
+
const element = diagram.elementsById.get(target.id);
|
|
57
|
+
if (!element || TEXTLESS_KINDS.includes(element.kind))
|
|
58
|
+
return undefined;
|
|
59
|
+
switch (element.kind) {
|
|
60
|
+
case "text":
|
|
61
|
+
return { family: body, size: Math.round(theme.labelSize * 1.6), weight: theme.labelWeight };
|
|
62
|
+
case "sticky":
|
|
63
|
+
return { family: body, size: round2(theme.labelSize * 1.2), weight: 400 };
|
|
64
|
+
case "group":
|
|
65
|
+
return { family: body, size: theme.groupTitleSize, weight: theme.labelWeight };
|
|
66
|
+
case "note":
|
|
67
|
+
return { family: body, size: theme.noteSize, weight: 400 };
|
|
68
|
+
case "tag":
|
|
69
|
+
return { family: stackFamily(theme.mono), size: theme.tagSize, weight: 500 };
|
|
70
|
+
case "line":
|
|
71
|
+
return { family: body, size: theme.relationLabelSize, weight: 500 };
|
|
72
|
+
default:
|
|
73
|
+
return { family: body, size: theme.labelSize, weight: theme.labelWeight };
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
/** The style a target resolves to through rules, classes and its own statements. */
|
|
77
|
+
export function resolvedStyle(resolver, diagram, target) {
|
|
78
|
+
if (target.kind === "relation") {
|
|
79
|
+
const relation = diagram.relationsByKey.get(target.id);
|
|
80
|
+
return relation ? resolver.relation(relation) : {};
|
|
81
|
+
}
|
|
82
|
+
if (target.kind === "event") {
|
|
83
|
+
const event = diagram.eventsByKey.get(target.id);
|
|
84
|
+
return event?.kind === "note" || event?.kind === "fragment"
|
|
85
|
+
? resolver.event(event.id ?? event.key, event.kind)
|
|
86
|
+
: {};
|
|
87
|
+
}
|
|
88
|
+
const element = diagram.elementsById.get(target.id);
|
|
89
|
+
return element ? resolver.element(element) : {};
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* What a target's text draws with its rules and classes but without its own `style` statements
|
|
93
|
+
* being asked for separately: the resolved family, size and weight over the theme's.
|
|
94
|
+
*/
|
|
95
|
+
export function drawnText(theme, diagram, target, resolver = new StyleResolver(theme, diagram)) {
|
|
96
|
+
const base = themeText(theme, diagram, target);
|
|
97
|
+
if (!base)
|
|
98
|
+
return undefined;
|
|
99
|
+
const style = resolvedStyle(resolver, diagram, target);
|
|
100
|
+
return {
|
|
101
|
+
family: style.font ? firstFamily(style.font) : base.family,
|
|
102
|
+
size: style.fontSize ?? base.size,
|
|
103
|
+
weight: style.fontWeight ?? base.weight,
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* The families text can be measured with: the provider's catalogue (bundled families by group,
|
|
108
|
+
* then the project's fonts), or the bundled families when the host measures with estimates.
|
|
109
|
+
*/
|
|
110
|
+
export function fontFamilies(provider) {
|
|
111
|
+
const catalogue = provider?.families?.();
|
|
112
|
+
return (catalogue ??
|
|
113
|
+
[...BUNDLED_FAMILIES]
|
|
114
|
+
.sort((a, b) => FONT_GROUPS.indexOf(a.group) - FONT_GROUPS.indexOf(b.group))
|
|
115
|
+
.map((f) => ({
|
|
116
|
+
family: f.family,
|
|
117
|
+
group: f.group,
|
|
118
|
+
weights: f.weights,
|
|
119
|
+
license: f.license,
|
|
120
|
+
source: "bundled",
|
|
121
|
+
restricted: false,
|
|
122
|
+
})));
|
|
123
|
+
}
|
|
124
|
+
/** What a written stack is measured with: a family of the catalogue, or nothing (estimates). */
|
|
125
|
+
export function measuredFamily(provider, stack) {
|
|
126
|
+
const families = fontFamilies(provider);
|
|
127
|
+
const name = provider?.family(stack);
|
|
128
|
+
if (name !== undefined)
|
|
129
|
+
return families.find((f) => f.family === name);
|
|
130
|
+
// Without a provider, a stack is measured with a bundled family when it names one.
|
|
131
|
+
for (const part of stack.split(",")) {
|
|
132
|
+
const word = part
|
|
133
|
+
.trim()
|
|
134
|
+
.replace(/^["']|["']$/g, "")
|
|
135
|
+
.toLowerCase();
|
|
136
|
+
const found = families.find((f) => f.family.toLowerCase() === word);
|
|
137
|
+
if (found)
|
|
138
|
+
return found;
|
|
139
|
+
}
|
|
140
|
+
return undefined;
|
|
141
|
+
}
|
|
142
|
+
/** The most bytes of font data a picker row's faces may carry: a project font is a whole file. */
|
|
143
|
+
const ROW_FACE_LIMIT = 256 * 1024;
|
|
144
|
+
/** The rules of each family's row, by provider, kept while it lives; empty answers are not kept. */
|
|
145
|
+
const rowFaces = new WeakMap();
|
|
146
|
+
/**
|
|
147
|
+
* The families the font picker lists: the provider's catalogue (bundled families by group, then
|
|
148
|
+
* the project's fonts), each with the `@font-face` rules of its row's glyphs. Without a provider
|
|
149
|
+
* (a host that measures with estimates) the bundled families are listed without faces.
|
|
150
|
+
*/
|
|
151
|
+
export function fontOptions(provider) {
|
|
152
|
+
const families = fontFamilies(provider);
|
|
153
|
+
const known = provider ? (rowFaces.get(provider) ?? new Map()) : new Map();
|
|
154
|
+
if (provider)
|
|
155
|
+
rowFaces.set(provider, known);
|
|
156
|
+
return families.map((info) => {
|
|
157
|
+
let faces = known.get(info.family);
|
|
158
|
+
if (!faces && provider && !info.restricted) {
|
|
159
|
+
const sample = `${info.family} Aa`;
|
|
160
|
+
const found = provider.faces(info.family, 400, sample);
|
|
161
|
+
const bytes = found.reduce((sum, face) => sum + face.data.length, 0);
|
|
162
|
+
faces = bytes <= ROW_FACE_LIMIT ? found.map(fontFaceRule) : [];
|
|
163
|
+
if (found.length > 0)
|
|
164
|
+
known.set(info.family, faces);
|
|
165
|
+
}
|
|
166
|
+
return {
|
|
167
|
+
family: info.family,
|
|
168
|
+
group: info.group,
|
|
169
|
+
weights: [...info.weights],
|
|
170
|
+
faces: faces ?? [],
|
|
171
|
+
...(info.restricted ? { restricted: true } : {}),
|
|
172
|
+
};
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=fonts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fonts.js","sourceRoot":"","sources":["../src/fonts.ts"],"names":[],"mappings":"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"}
|
package/dist/icons.d.ts
CHANGED
|
@@ -4,6 +4,8 @@ import type { DiagramView, DocumentAnalysis } from "./analysis.js";
|
|
|
4
4
|
import type { IconChoiceInfo, IconGroupInfo } from "./canvas/protocol.js";
|
|
5
5
|
/** How many icons the icon picker shows for one query, at most. */
|
|
6
6
|
export declare const ICON_RESULTS = 60;
|
|
7
|
+
/** How many icons of each of the project's own packs the picker shows before anything is typed. */
|
|
8
|
+
export declare const PROJECT_PACK_ICONS = 24;
|
|
7
9
|
/** Whether an element of a kind takes the icon fields, in flow and free diagrams. */
|
|
8
10
|
export declare function iconKind(kind: string, diagram: FlowDiagram): boolean;
|
|
9
11
|
/** Whether the icon picker and icon drops write `style <id> { icon }` on an element. */
|
package/dist/icons.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../src/icons.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,YAAY,EACjB,KAAK,OAAO,EAEb,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../src/icons.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,YAAY,EACjB,KAAK,OAAO,EAEb,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEnE,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAG1E,mEAAmE;AACnE,eAAO,MAAM,YAAY,KAAK,CAAC;AAQ/B,mGAAmG;AACnG,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAWrC,qFAAqF;AACrF,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAEpE;AAED,wFAAwF;AACxF,wBAAgB,SAAS,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAEzE;AAED,yEAAyE;AACzE,wBAAgB,WAAW,CACzB,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,SAAS,GAAG,UAAU,GAC3B,MAAM,GAAG,IAAI,CAQf;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,YAAY,GAAG,SAAS,EAC/B,SAAS,EAAE,MAAM,GAChB,OAAO,GAAG,SAAS,GAAG,SAAS,CAEjC;AAOD;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,YAAY,GAAG,SAAS,EAC/B,SAAS,EAAE,MAAM,GAChB,IAAI,CAAC,cAAc,EAAE,KAAK,GAAG,SAAS,CAAC,CAIzC;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAKpF;AAED;;;GAGG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,YAAY,GAAG,SAAS,EAC/B,SAAS,EAAE,MAAM,EACjB,KAAK,SAA8B,GAClC,cAAc,CAEhB;AAuCD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,UAAU,CACxB,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,EAAE,SAAS,OAAO,EAAE,EAC7B,KAAK,EAAE,MAAM,EACb,KAAK,SAAe,GACnB,aAAa,EAAE,CAiGjB;AAcD;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,YAAY,GAAG,SAAS,EAC/B,EAAE,EAAE,MAAM,GACT,MAAM,GAAG,SAAS,CAYpB"}
|
package/dist/icons.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { drawableNames, geometrySvg, humanise, searchLibraries, } from "@meltemi/diagrams-assets";
|
|
2
|
+
import { PROJECT_LIBRARY } from "./asset-files.js";
|
|
2
3
|
import { iconChoices } from "./services/completion.js";
|
|
3
4
|
/** How many icons the icon picker shows for one query, at most. */
|
|
4
5
|
export const ICON_RESULTS = 60;
|
|
@@ -6,6 +7,10 @@ export const ICON_RESULTS = 60;
|
|
|
6
7
|
const TECHNOLOGY = "tech";
|
|
7
8
|
/** A query that reads as an icon reference, `pack:name`. */
|
|
8
9
|
const REFERENCE = /^[a-z0-9][a-z0-9-]*:[A-Za-z0-9_.-]+$/;
|
|
10
|
+
/** How many icons of each of the project's own packs the picker shows before anything is typed. */
|
|
11
|
+
export const PROJECT_PACK_ICONS = 24;
|
|
12
|
+
/** The room an empty search keeps for the Technology library after the project's packs. */
|
|
13
|
+
const TECHNOLOGY_ROOM = 12;
|
|
9
14
|
/**
|
|
10
15
|
* The kinds whose icon takes the five positions, an icon size and a label position, and which the
|
|
11
16
|
* icon picker and icon drops give an icon: they draw a box around their text.
|
|
@@ -143,17 +148,45 @@ export function iconGroups(analysis, libraries, query, limit = ICON_RESULTS) {
|
|
|
143
148
|
const files = libraries.filter((l) => !fromPack(l, icons));
|
|
144
149
|
const wanted = query.trim();
|
|
145
150
|
if (wanted === "") {
|
|
146
|
-
|
|
151
|
+
// The project's own packs first, named as the project's library names them.
|
|
152
|
+
const labels = new Map();
|
|
153
|
+
for (const library of files.filter((l) => l.id === PROJECT_LIBRARY.id)) {
|
|
154
|
+
for (const category of library.categories) {
|
|
155
|
+
for (const item of category.items)
|
|
156
|
+
if (!labels.has(item.icon))
|
|
157
|
+
labels.set(item.icon, item.label);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
const own = icons
|
|
161
|
+
.list()
|
|
162
|
+
.filter((pack) => pack.metadata.source.startsWith("assets/icons/"))
|
|
163
|
+
.sort((a, b) => a.prefix.localeCompare(b.prefix))
|
|
164
|
+
.flatMap((pack) => drawableNames(pack, PROJECT_PACK_ICONS).map((name) => {
|
|
165
|
+
const reference = `${pack.prefix}:${name}`;
|
|
166
|
+
return {
|
|
167
|
+
...packEntry(reference),
|
|
168
|
+
label: labels.get(reference) ?? iconLabel(icons, reference),
|
|
169
|
+
};
|
|
170
|
+
}))
|
|
171
|
+
.slice(0, Math.max(0, limit - TECHNOLOGY_ROOM));
|
|
172
|
+
const room = limit - own.length;
|
|
173
|
+
const library = files.find((l) => l.id === TECHNOLOGY) ?? files.find((l) => l.id !== PROJECT_LIBRARY.id);
|
|
147
174
|
const category = library?.categories.find((c) => c.items.length > 0);
|
|
148
175
|
if (library && category) {
|
|
149
|
-
return grouped(icons,
|
|
150
|
-
|
|
151
|
-
.
|
|
152
|
-
|
|
176
|
+
return grouped(icons, [
|
|
177
|
+
...own,
|
|
178
|
+
...category.items
|
|
179
|
+
.map((item) => libraryEntry({ library, category, item }))
|
|
180
|
+
.filter(offered)
|
|
181
|
+
.slice(0, room),
|
|
182
|
+
]);
|
|
153
183
|
}
|
|
154
184
|
// The general-purpose pack, when the project has it.
|
|
155
185
|
const pack = icons.pack("tabler") ?? icons.list()[0];
|
|
156
|
-
return grouped(icons,
|
|
186
|
+
return grouped(icons, [
|
|
187
|
+
...own,
|
|
188
|
+
...(pack ? drawableNames(pack, room) : []).map((name) => packEntry(`${pack.prefix}:${name}`)),
|
|
189
|
+
]);
|
|
157
190
|
}
|
|
158
191
|
const seen = new Set();
|
|
159
192
|
const fresh = (entry) => {
|