@teleporthq/teleport-shared 0.43.71 → 0.43.75
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/__tests__/_fixtures/rich-text/README.md +6 -0
- package/__tests__/_fixtures/rich-text/help-accept-an-invitation.html +50 -0
- package/__tests__/_fixtures/rich-text/help-activate-an-appsumo-license.html +44 -0
- package/__tests__/_fixtures/rich-text/help-add-custom-code-to-your-site.html +61 -0
- package/__tests__/_fixtures/rich-text/help-connect-a-custom-domain.html +106 -0
- package/__tests__/_fixtures/rich-text/help-custom-animations-with-code.html +69 -0
- package/__tests__/_fixtures/rich-text/help-generate-a-store.html +78 -0
- package/__tests__/_fixtures/rich-text/help-keyboard-shortcuts.html +417 -0
- package/__tests__/_fixtures/rich-text/help-prompting-tips.html +82 -0
- package/__tests__/_fixtures/rich-text/help-sitemap-robots-and-llms-txt.html +82 -0
- package/__tests__/_fixtures/rich-text/help-use-a-csv-file-or-static-data.html +61 -0
- package/__tests__/_helpers/rich-text-content-runtime-emitter.ts +117 -0
- package/__tests__/function-sources.ts +30 -0
- package/__tests__/utils/content-tables.ts +69 -0
- package/__tests__/utils/rich-text-content-runtime-module.ts +115 -0
- package/__tests__/utils/rich-text-content.ts +131 -0
- package/dist/cjs/index.d.ts +4 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +7 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/page-transition/index.d.ts +1 -0
- package/dist/cjs/page-transition/index.d.ts.map +1 -1
- package/dist/cjs/page-transition/index.js +1 -0
- package/dist/cjs/page-transition/index.js.map +1 -1
- package/dist/cjs/page-transition/variant-sources.generated.d.ts +7 -0
- package/dist/cjs/page-transition/variant-sources.generated.d.ts.map +1 -0
- package/dist/cjs/page-transition/variant-sources.generated.js +14 -0
- package/dist/cjs/page-transition/variant-sources.generated.js.map +1 -0
- package/dist/cjs/scroll-scene/engine-source.d.ts.map +1 -1
- package/dist/cjs/scroll-scene/engine-source.js +2 -5
- package/dist/cjs/scroll-scene/engine-source.js.map +1 -1
- package/dist/cjs/scroll-scene/helper-sources.generated.d.ts +9 -0
- package/dist/cjs/scroll-scene/helper-sources.generated.d.ts.map +1 -0
- package/dist/cjs/scroll-scene/helper-sources.generated.js +16 -0
- package/dist/cjs/scroll-scene/helper-sources.generated.js.map +1 -0
- package/dist/cjs/scroll-scene/index.d.ts +1 -0
- package/dist/cjs/scroll-scene/index.d.ts.map +1 -1
- package/dist/cjs/scroll-scene/index.js +3 -1
- package/dist/cjs/scroll-scene/index.js.map +1 -1
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/cjs/utils/content-tables.d.ts +78 -0
- package/dist/cjs/utils/content-tables.d.ts.map +1 -0
- package/dist/cjs/utils/content-tables.js +123 -0
- package/dist/cjs/utils/content-tables.js.map +1 -0
- package/dist/cjs/utils/rich-text-content-codegen.d.ts +20 -0
- package/dist/cjs/utils/rich-text-content-codegen.d.ts.map +1 -0
- package/dist/cjs/utils/rich-text-content-codegen.js +55 -0
- package/dist/cjs/utils/rich-text-content-codegen.js.map +1 -0
- package/dist/cjs/utils/rich-text-content-runtime-source.d.ts +2 -0
- package/dist/cjs/utils/rich-text-content-runtime-source.d.ts.map +1 -0
- package/dist/cjs/utils/rich-text-content-runtime-source.js +591 -0
- package/dist/cjs/utils/rich-text-content-runtime-source.js.map +1 -0
- package/dist/cjs/utils/rich-text-content.d.ts +150 -0
- package/dist/cjs/utils/rich-text-content.d.ts.map +1 -0
- package/dist/cjs/utils/rich-text-content.js +649 -0
- package/dist/cjs/utils/rich-text-content.js.map +1 -0
- package/dist/cjs/utils/table-access.d.ts.map +1 -1
- package/dist/cjs/utils/table-access.js +5 -7
- package/dist/cjs/utils/table-access.js.map +1 -1
- package/dist/esm/index.d.ts +4 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +4 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/page-transition/index.d.ts +1 -0
- package/dist/esm/page-transition/index.d.ts.map +1 -1
- package/dist/esm/page-transition/index.js +1 -0
- package/dist/esm/page-transition/index.js.map +1 -1
- package/dist/esm/page-transition/variant-sources.generated.d.ts +7 -0
- package/dist/esm/page-transition/variant-sources.generated.d.ts.map +1 -0
- package/dist/esm/page-transition/variant-sources.generated.js +11 -0
- package/dist/esm/page-transition/variant-sources.generated.js.map +1 -0
- package/dist/esm/scroll-scene/engine-source.d.ts.map +1 -1
- package/dist/esm/scroll-scene/engine-source.js +2 -5
- package/dist/esm/scroll-scene/engine-source.js.map +1 -1
- package/dist/esm/scroll-scene/helper-sources.generated.d.ts +9 -0
- package/dist/esm/scroll-scene/helper-sources.generated.d.ts.map +1 -0
- package/dist/esm/scroll-scene/helper-sources.generated.js +13 -0
- package/dist/esm/scroll-scene/helper-sources.generated.js.map +1 -0
- package/dist/esm/scroll-scene/index.d.ts +1 -0
- package/dist/esm/scroll-scene/index.d.ts.map +1 -1
- package/dist/esm/scroll-scene/index.js +1 -0
- package/dist/esm/scroll-scene/index.js.map +1 -1
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/utils/content-tables.d.ts +78 -0
- package/dist/esm/utils/content-tables.d.ts.map +1 -0
- package/dist/esm/utils/content-tables.js +114 -0
- package/dist/esm/utils/content-tables.js.map +1 -0
- package/dist/esm/utils/rich-text-content-codegen.d.ts +20 -0
- package/dist/esm/utils/rich-text-content-codegen.d.ts.map +1 -0
- package/dist/esm/utils/rich-text-content-codegen.js +50 -0
- package/dist/esm/utils/rich-text-content-codegen.js.map +1 -0
- package/dist/esm/utils/rich-text-content-runtime-source.d.ts +2 -0
- package/dist/esm/utils/rich-text-content-runtime-source.d.ts.map +1 -0
- package/dist/esm/utils/rich-text-content-runtime-source.js +588 -0
- package/dist/esm/utils/rich-text-content-runtime-source.js.map +1 -0
- package/dist/esm/utils/rich-text-content.d.ts +150 -0
- package/dist/esm/utils/rich-text-content.d.ts.map +1 -0
- package/dist/esm/utils/rich-text-content.js +613 -0
- package/dist/esm/utils/rich-text-content.js.map +1 -0
- package/dist/esm/utils/table-access.d.ts.map +1 -1
- package/dist/esm/utils/table-access.js +5 -7
- package/dist/esm/utils/table-access.js.map +1 -1
- package/package.json +3 -3
- package/src/index.ts +6 -0
- package/src/page-transition/index.ts +1 -0
- package/src/page-transition/variant-sources.generated.ts +14 -0
- package/src/scroll-scene/engine-source.ts +7 -10
- package/src/scroll-scene/helper-sources.generated.ts +18 -0
- package/src/scroll-scene/index.ts +1 -0
- package/src/utils/content-tables.ts +151 -0
- package/src/utils/rich-text-content-codegen.ts +52 -0
- package/src/utils/rich-text-content-runtime-source.ts +587 -0
- package/src/utils/rich-text-content.ts +677 -0
- package/src/utils/table-access.ts +4 -2
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The stored form of rich-text content (a blog post body, a product
|
|
3
|
+
* description) and its editor form.
|
|
4
|
+
*
|
|
5
|
+
* STORED: plain HTML — `<p>`, `<h1>`–`<h6>`, nested `<ul>`/`<ol>`, `<blockquote>`
|
|
6
|
+
* holding paragraphs, `<pre><code class="language-x">`, `<table>` with its
|
|
7
|
+
* `<thead>`/`<th>`, `<aside class="tq-callout" data-kind="note">`, the image and
|
|
8
|
+
* embed figures, and inline marks. What a published page renders and what an
|
|
9
|
+
* import writes.
|
|
10
|
+
*
|
|
11
|
+
* EDITOR: what a Quill editor can hold without rewriting it. Lists become one
|
|
12
|
+
* flat `<ol>` of `<li data-list>` lines with `ql-indent-N` for nesting, a
|
|
13
|
+
* blockquote becomes one `<blockquote>` line per paragraph, and everything Quill
|
|
14
|
+
* has no blot for — a table, a code block, a callout, a list whose items hold
|
|
15
|
+
* blocks, anything unknown — is wrapped in a PROTECTED block:
|
|
16
|
+
* `<div class="tq-protected" data-tq-protected="table" contenteditable="false">`
|
|
17
|
+
* holding the stored markup untouched. The editors register that wrapper as a
|
|
18
|
+
* block embed, so Quill treats it as one atomic unit and never looks inside.
|
|
19
|
+
*
|
|
20
|
+
* Both editors (the studio post form on the `quill` fork, the generated admin
|
|
21
|
+
* panel on react-quill-new) run `toEditorHtml` on the way in and
|
|
22
|
+
* `fromEditorHtml` on the way out. `normalizeLegacyRichTextHtml` additionally
|
|
23
|
+
* understands what the two editors wrote BEFORE this contract existed, so an
|
|
24
|
+
* older post is cleaned on its next save and renders right meanwhile — it is
|
|
25
|
+
* string-only, so the generated project can run it where there is no DOM.
|
|
26
|
+
*
|
|
27
|
+
* Emission rules (see `__tests__/_helpers/rich-text-content-runtime-emitter.ts`):
|
|
28
|
+
* the generated admin editor receives these very functions printed as a module,
|
|
29
|
+
* so an exported function may call only other exported functions and the
|
|
30
|
+
* constants below — never an import or a module-private helper.
|
|
31
|
+
*/
|
|
32
|
+
export declare const PROTECTED_BLOCK_CLASS = "tq-protected";
|
|
33
|
+
export declare const PROTECTED_BLOCK_ATTR = "data-tq-protected";
|
|
34
|
+
export declare const PROTECTED_BLOCK_BLOT_NAME = "tq-protected-block";
|
|
35
|
+
export declare const PROTECTED_BLOCK_KINDS: string[];
|
|
36
|
+
export type ProtectedBlockKind = 'table' | 'code' | 'callout' | 'list' | 'quote' | 'html';
|
|
37
|
+
export interface ProtectedBlockValue {
|
|
38
|
+
kind: ProtectedBlockKind;
|
|
39
|
+
/** The stored markup of the block, exactly as it will be written back. */
|
|
40
|
+
html: string;
|
|
41
|
+
}
|
|
42
|
+
export declare const CALLOUT_CLASS = "tq-callout";
|
|
43
|
+
export declare const CALLOUT_KIND_ATTR = "data-kind";
|
|
44
|
+
export declare const CALLOUT_KINDS: string[];
|
|
45
|
+
export type CalloutKind = 'note' | 'tip' | 'important' | 'warning' | 'caution';
|
|
46
|
+
/** ⛔ PAIRED with `EMBED_CLASS_NAME` in `rich-text-embeds.ts` (a test keeps them equal). */
|
|
47
|
+
export declare const RICH_TEXT_EMBED_CLASS = "tq-embed";
|
|
48
|
+
/** ⛔ PAIRED with the image blot in teleport-gui `features/blog/components/content-image-blot.ts`. */
|
|
49
|
+
export declare const RICH_TEXT_IMAGE_CLASS = "ql-content-image";
|
|
50
|
+
export declare const QUILL_LIST_ITEM_ATTR = "data-list";
|
|
51
|
+
export declare const QUILL_INDENT_CLASS_PREFIX = "ql-indent-";
|
|
52
|
+
/** Marks that can sit inside a line; anything else is a block to Quill. */
|
|
53
|
+
export declare const RICH_TEXT_INLINE_TAGS: string[];
|
|
54
|
+
/** Elements that stand on their own line; white space between two of them carries nothing. */
|
|
55
|
+
export declare const RICH_TEXT_BLOCK_TAGS: string[];
|
|
56
|
+
/** Parses an HTML fragment into a detached body the way a browser would. */
|
|
57
|
+
export declare function parseRichTextFragment(html: string): HTMLElement;
|
|
58
|
+
export declare function escapeRichTextText(value: string): string;
|
|
59
|
+
export declare function escapeRichTextAttribute(value: string): string;
|
|
60
|
+
export declare function isProtectedBlockKind(value: string | null | undefined): value is ProtectedBlockKind;
|
|
61
|
+
/** The editor-side wrapper for one stored block. */
|
|
62
|
+
export declare function buildProtectedBlockHtml(kind: ProtectedBlockKind, html: string): string;
|
|
63
|
+
export declare function readProtectedBlockValue(element: Element): ProtectedBlockValue;
|
|
64
|
+
export declare function isCalloutKind(value: string | null | undefined): value is CalloutKind;
|
|
65
|
+
/** The stored markup of a callout: a kind and the blocks it holds. */
|
|
66
|
+
export declare function buildCalloutHtml(kind: CalloutKind, innerHtml: string): string;
|
|
67
|
+
/** The stored markup of a code block; `code` is already HTML-escaped when `escaped` is set. */
|
|
68
|
+
export declare function buildCodeBlockHtml(language: string, code: string, escaped?: boolean): string;
|
|
69
|
+
export declare function hasClass(element: Element, className: string): boolean;
|
|
70
|
+
export declare function isRichTextInlineNode(node: Node): boolean;
|
|
71
|
+
export declare function isBlankTextNode(node: Node): boolean;
|
|
72
|
+
export declare function isRichTextBlockElement(node: Node | null): boolean;
|
|
73
|
+
/**
|
|
74
|
+
* Drops the white space that only separates blocks (the newlines a Markdown
|
|
75
|
+
* renderer puts between `<li>`s, after `</p>`) and collapses runs of it inside
|
|
76
|
+
* text to the one space they render as, so stored HTML has one spelling
|
|
77
|
+
* whatever wrote it. Everything inside `<pre>` stays.
|
|
78
|
+
*/
|
|
79
|
+
export declare function stripInterBlockWhitespace(root: Node): void;
|
|
80
|
+
/** `<li><p>one paragraph</p></li>` means the same as `<li>one paragraph</li>`; stored HTML uses the short form. */
|
|
81
|
+
export declare function unwrapSingleParagraphListItems(root: Element): void;
|
|
82
|
+
/** A link to another web page: an absolute http(s) address. Everything else stays in the tab. */
|
|
83
|
+
export declare function isExternalWebLink(href: string): boolean;
|
|
84
|
+
/**
|
|
85
|
+
* Quill creates every link with `target="_blank"`. Stored HTML decides for
|
|
86
|
+
* itself: a link to another web page opens in a new tab, a link to a page of
|
|
87
|
+
* the same site (or a mail or phone link) opens in this one.
|
|
88
|
+
*/
|
|
89
|
+
export declare function normalizeLinkTargets(root: Element): void;
|
|
90
|
+
/** A quote holds paragraphs; bare inline content inside one becomes its single paragraph. */
|
|
91
|
+
export declare function wrapBareBlockquoteContent(root: Element): void;
|
|
92
|
+
/** The markup of one node as it sits in its parent: text escaped, elements whole. */
|
|
93
|
+
export declare function serializeRichTextNode(node: Node): string;
|
|
94
|
+
/**
|
|
95
|
+
* The inline markup of a list item: text and marks, a single wrapping `<p>`
|
|
96
|
+
* unwrapped, nested lists left out.
|
|
97
|
+
*/
|
|
98
|
+
export declare function readInlineHtml(element: Element): string;
|
|
99
|
+
/**
|
|
100
|
+
* A list Quill can hold as lines: every item is inline content (at most one
|
|
101
|
+
* `<p>` around it) followed, at most, by one nested list that is itself simple,
|
|
102
|
+
* and no `start` offset on a numbered list.
|
|
103
|
+
*/
|
|
104
|
+
export declare function isQuillSimpleList(list: Element): boolean;
|
|
105
|
+
/** One flat `<ol>` of `<li data-list>` lines, the shape Quill keeps a list in. */
|
|
106
|
+
export declare function flattenListForQuill(list: Element): string;
|
|
107
|
+
/** A blockquote Quill can hold: paragraphs (or bare inline content) only. */
|
|
108
|
+
export declare function isQuillSimpleBlockquote(quote: Element): boolean;
|
|
109
|
+
/** One `<blockquote>` line per paragraph, the shape Quill keeps a quote in. */
|
|
110
|
+
export declare function blockquoteLinesForQuill(quote: Element): string;
|
|
111
|
+
/** Which protected kind a stored block that Quill cannot hold gets. */
|
|
112
|
+
export declare function protectedKindForElement(element: Element): ProtectedBlockKind;
|
|
113
|
+
/**
|
|
114
|
+
* Stored HTML → what the editor is given. Every block Quill holds natively is
|
|
115
|
+
* handed over in Quill's own shape; every other block is protected.
|
|
116
|
+
*/
|
|
117
|
+
export declare function toEditorHtml(storedHtml: string): string;
|
|
118
|
+
/**
|
|
119
|
+
* What the editor holds → stored HTML. Protected blocks are unwrapped, Quill's
|
|
120
|
+
* flat lists and blockquote lines are rebuilt, and Quill's own helpers are
|
|
121
|
+
* stripped. Idempotent on stored HTML.
|
|
122
|
+
*/
|
|
123
|
+
export declare function fromEditorHtml(editorHtml: string): string;
|
|
124
|
+
/** Stored HTML in its one canonical spelling, whatever dialect it arrived in. */
|
|
125
|
+
export declare function toCanonicalRichTextHtml(html: string): string;
|
|
126
|
+
/** Quill keeps an empty line as `<p><br></p>`; one at either end carries nothing. */
|
|
127
|
+
export declare function trimEmptyEdgeParagraphs(html: string): string;
|
|
128
|
+
/**
|
|
129
|
+
* What the editors wrote before this contract, turned into stored HTML. String
|
|
130
|
+
* only, so a generated page can run it in `getStaticProps`:
|
|
131
|
+
* - the studio's lists: one `<ol>` of `<li data-list="bullet|ordered">` with
|
|
132
|
+
* `ql-indent-N` and an empty `<span class="ql-ui">` per line;
|
|
133
|
+
* - the studio's code blocks: `div.ql-code-block-container` of line divs;
|
|
134
|
+
* - the studio's quotes: one `<blockquote>` element per line;
|
|
135
|
+
* - the admin panel's text: every space a no-break space;
|
|
136
|
+
* - the admin panel's code blocks: `<pre data-language>` with no `<code>`.
|
|
137
|
+
* Leaves stored HTML as it is.
|
|
138
|
+
*/
|
|
139
|
+
export declare function normalizeLegacyRichTextHtml(html: string): string;
|
|
140
|
+
/** The nested `<ul>`/`<ol>` that a flat run of Quill list lines means. */
|
|
141
|
+
export declare function rebuildQuillListHtml(innerHtml: string): string;
|
|
142
|
+
/** The `<pre><code>` that a run of the studio's code-block line divs means. */
|
|
143
|
+
export declare function rebuildQuillCodeBlockHtml(innerHtml: string): string;
|
|
144
|
+
/**
|
|
145
|
+
* One `<blockquote>` of paragraphs out of a run of single-line quotes (one line
|
|
146
|
+
* is a run too). A run whose lines already hold blocks is stored HTML and is
|
|
147
|
+
* left alone.
|
|
148
|
+
*/
|
|
149
|
+
export declare function mergeBlockquoteLines(run: string): string;
|
|
150
|
+
//# sourceMappingURL=rich-text-content.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rich-text-content.d.ts","sourceRoot":"","sources":["../../../src/utils/rich-text-content.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,eAAO,MAAM,qBAAqB,iBAAiB,CAAA;AACnD,eAAO,MAAM,oBAAoB,sBAAsB,CAAA;AACvD,eAAO,MAAM,yBAAyB,uBAAuB,CAAA;AAE7D,eAAO,MAAM,qBAAqB,UAAwD,CAAA;AAC1F,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAA;AAEzF,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,kBAAkB,CAAA;IACxB,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAA;CACb;AAED,eAAO,MAAM,aAAa,eAAe,CAAA;AACzC,eAAO,MAAM,iBAAiB,cAAc,CAAA;AAC5C,eAAO,MAAM,aAAa,UAAqD,CAAA;AAC/E,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,KAAK,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,CAAA;AAE9E,2FAA2F;AAC3F,eAAO,MAAM,qBAAqB,aAAa,CAAA;AAC/C,qGAAqG;AACrG,eAAO,MAAM,qBAAqB,qBAAqB,CAAA;AAEvD,eAAO,MAAM,oBAAoB,cAAc,CAAA;AAC/C,eAAO,MAAM,yBAAyB,eAAe,CAAA;AAErD,2EAA2E;AAC3E,eAAO,MAAM,qBAAqB,UAqBjC,CAAA;AAED,8FAA8F;AAC9F,eAAO,MAAM,oBAAoB,UAqChC,CAAA;AAED,4EAA4E;AAC5E,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAG/D;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC/B,KAAK,IAAI,kBAAkB,CAE7B;AAED,oDAAoD;AACpD,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAMtF;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,mBAAmB,CAM7E;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,KAAK,IAAI,WAAW,CAEpF;AAED,sEAAsE;AACtE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAE7E;AAED,+FAA+F;AAC/F,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAK5F;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAGrE;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAQxD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAEnD;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,OAAO,CAIjE;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAgC1D;AAED,mHAAmH;AACnH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAkBlE;AAED,iGAAiG;AACjG,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAYxD;AAED,6FAA6F;AAC7F,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAW7D;AAED,qFAAqF;AACrF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAQxD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAgBvD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAwCxD;AAED,kFAAkF;AAClF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAmBzD;AAED,6EAA6E;AAC7E,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAY/D;AAED,+EAA+E;AAC/E,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAmB9D;AAED,uEAAuE;AACvE,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,kBAAkB,CAkB5E;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CA6CvD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAoBzD;AAED,iFAAiF;AACjF,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,qFAAqF;AACrF,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAI5D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAqBhE;AAED,0EAA0E;AAC1E,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAuD9D;AAED,+EAA+E;AAC/E,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAcnE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAYxD"}
|