@portabletext/markdown 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +429 -0
- package/dist/index.d.ts +599 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1098 -0
- package/dist/index.js.map +1 -0
- package/package.json +70 -0
- package/src/default-schema.ts +166 -0
- package/src/example-document.md +237 -0
- package/src/example-document.out.md +235 -0
- package/src/example-document.terse-pt.json +124 -0
- package/src/example-document.test.ts +87 -0
- package/src/from-portable-text/build-list-index-map.ts +133 -0
- package/src/from-portable-text/portable-text-to-markdown.ts +135 -0
- package/src/from-portable-text/render-node.ts +176 -0
- package/src/from-portable-text/renderers/block-spacing.ts +39 -0
- package/src/from-portable-text/renderers/hard-break.ts +4 -0
- package/src/from-portable-text/renderers/list-item.ts +32 -0
- package/src/from-portable-text/renderers/marks.ts +113 -0
- package/src/from-portable-text/renderers/style.ts +79 -0
- package/src/from-portable-text/renderers/type.ts +126 -0
- package/src/from-portable-text/types.ts +240 -0
- package/src/index.ts +51 -0
- package/src/key-generator.ts +32 -0
- package/src/markdown-to-portable-text.test.ts +3273 -0
- package/src/portable-text-to-markdown.test.ts +803 -0
- package/src/to-portable-text/markdown-to-portable-text.ts +1204 -0
- package/src/to-portable-text/matchers.ts +192 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,599 @@
|
|
|
1
|
+
import { PortableTextBlock, PortableTextObject, Schema } from "@portabletext/schema";
|
|
2
|
+
/**
|
|
3
|
+
* Any object with an `_type` that is a string. Can hold any other properties.
|
|
4
|
+
* @public
|
|
5
|
+
*/
|
|
6
|
+
declare type ArbitraryTypedObject = TypedObject & {
|
|
7
|
+
[key: string]: any;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* A Portable Text Block can be thought of as one paragraph, quote or list item.
|
|
11
|
+
* In other words, it is a container for text, that can have a visual style associated with it.
|
|
12
|
+
* The actual text value is stored in portable text spans inside of the `childen` array.
|
|
13
|
+
*
|
|
14
|
+
* @typeParam M - Mark types that be used for text spans
|
|
15
|
+
* @typeParam C - Types allowed as children of this block
|
|
16
|
+
* @typeParam S - Allowed block styles (eg `normal`, `blockquote`, `h3` etc)
|
|
17
|
+
* @typeParam L - Allowed list item types (eg `number`, `bullet` etc)
|
|
18
|
+
* @public
|
|
19
|
+
*/
|
|
20
|
+
declare interface PortableTextBlock$1<M extends PortableTextMarkDefinition = PortableTextMarkDefinition, C extends TypedObject = ArbitraryTypedObject | PortableTextSpan, S extends string = PortableTextBlockStyle, L extends string = PortableTextListItemType> extends TypedObject {
|
|
21
|
+
/**
|
|
22
|
+
* Type name identifying this as a portable text block.
|
|
23
|
+
* All items within a portable text array should have a `_type` property.
|
|
24
|
+
*
|
|
25
|
+
* Usually 'block', but can be customized to other values
|
|
26
|
+
*/
|
|
27
|
+
_type: "block" | string;
|
|
28
|
+
/**
|
|
29
|
+
* A key that identifies this block uniquely within the parent array. Used to more easily address
|
|
30
|
+
* the block when editing collaboratively, but is also very useful for keys inside of React and
|
|
31
|
+
* other rendering frameworks that can use keys to optimize operations.
|
|
32
|
+
*/
|
|
33
|
+
_key?: string;
|
|
34
|
+
/**
|
|
35
|
+
* Array of inline items for this block. Usually contain text spans, but can be
|
|
36
|
+
* configured to include inline objects of other types as well.
|
|
37
|
+
*/
|
|
38
|
+
children: C[];
|
|
39
|
+
/**
|
|
40
|
+
* Array of mark definitions used in child text spans. By having them be on the block level,
|
|
41
|
+
* the same mark definition can be reused for multiple text spans, which is often the case
|
|
42
|
+
* with nested marks.
|
|
43
|
+
*/
|
|
44
|
+
markDefs?: M[];
|
|
45
|
+
/**
|
|
46
|
+
* Visual style of the block
|
|
47
|
+
* Common values: 'normal', 'blockquote', 'h1'...'h6'
|
|
48
|
+
*/
|
|
49
|
+
style?: S;
|
|
50
|
+
/**
|
|
51
|
+
* If this block is a list item, identifies which style of list item this is
|
|
52
|
+
* Common values: 'bullet', 'number', but can be configured
|
|
53
|
+
*/
|
|
54
|
+
listItem?: L;
|
|
55
|
+
/**
|
|
56
|
+
* If this block is a list item, identifies which level of nesting it belongs within
|
|
57
|
+
*/
|
|
58
|
+
level?: number;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* A set of _common_ (but not required/standarized) block styles
|
|
62
|
+
* @public
|
|
63
|
+
*/
|
|
64
|
+
declare type PortableTextBlockStyle = "normal" | "blockquote" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | string;
|
|
65
|
+
/**
|
|
66
|
+
* Strictly speaking the same as a portable text block, but `listItem` is required
|
|
67
|
+
*
|
|
68
|
+
* @typeParam M - Mark types that be used for text spans
|
|
69
|
+
* @typeParam C - Types allowed as children of this block
|
|
70
|
+
* @typeParam S - Allowed block styles (eg `normal`, `blockquote`, `h3` etc)
|
|
71
|
+
* @typeParam L - Allowed list item types (eg `number`, `bullet` etc)
|
|
72
|
+
* @public
|
|
73
|
+
*/
|
|
74
|
+
declare interface PortableTextListItemBlock<M extends PortableTextMarkDefinition = PortableTextMarkDefinition, C extends TypedObject = PortableTextSpan, S extends string = PortableTextBlockStyle, L extends string = PortableTextListItemType> extends Omit<PortableTextBlock$1<M, C, S, L>, "listItem"> {
|
|
75
|
+
listItem: L;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* A set of _common_ (but not required/standardized) list item types
|
|
79
|
+
* @public
|
|
80
|
+
*/
|
|
81
|
+
declare type PortableTextListItemType = "bullet" | "number" | string;
|
|
82
|
+
/**
|
|
83
|
+
* A mark definition holds information for marked text. For instance, a text span could reference
|
|
84
|
+
* a mark definition for a hyperlink, a geoposition, a reference to a document or anything that is
|
|
85
|
+
* representable as a JSON object.
|
|
86
|
+
* @public
|
|
87
|
+
*/
|
|
88
|
+
declare interface PortableTextMarkDefinition {
|
|
89
|
+
/**
|
|
90
|
+
* Unknown properties
|
|
91
|
+
*/
|
|
92
|
+
[key: string]: unknown;
|
|
93
|
+
/**
|
|
94
|
+
* Identifies the type of mark this is, and is used to pick the correct React components to use
|
|
95
|
+
* when rendering a text span marked with this mark type.
|
|
96
|
+
*/
|
|
97
|
+
_type: string;
|
|
98
|
+
/**
|
|
99
|
+
* Uniquely identifies this mark definition within the block
|
|
100
|
+
*/
|
|
101
|
+
_key: string;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* A Portable Text Span holds a chunk of the actual text value of a Portable Text Block
|
|
105
|
+
* @public
|
|
106
|
+
*/
|
|
107
|
+
declare interface PortableTextSpan {
|
|
108
|
+
/**
|
|
109
|
+
* Type is always `span` for portable text spans, as these don't vary in shape
|
|
110
|
+
*/
|
|
111
|
+
_type: "span";
|
|
112
|
+
/**
|
|
113
|
+
* Unique (within parent block) key for this portable text span
|
|
114
|
+
*/
|
|
115
|
+
_key?: string;
|
|
116
|
+
/**
|
|
117
|
+
* The actual text value of this text span
|
|
118
|
+
*/
|
|
119
|
+
text: string;
|
|
120
|
+
/**
|
|
121
|
+
* An array of marks this text span is annotated with, identified by its `_key`.
|
|
122
|
+
* If the key cannot be found in the parent blocks mark definition, the mark is assumed to be a
|
|
123
|
+
* decorator (a simpler mark without any properties - for instance `strong` or `em`)
|
|
124
|
+
*/
|
|
125
|
+
marks?: string[];
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Any object with an `_type` property (which is required in portable text arrays),
|
|
129
|
+
* as well as a _potential_ `_key` (highly encouraged)
|
|
130
|
+
* @public
|
|
131
|
+
*/
|
|
132
|
+
declare interface TypedObject {
|
|
133
|
+
/**
|
|
134
|
+
* Identifies the type of object/span this is, and is used to pick the correct React components
|
|
135
|
+
* to use when rendering a span or inline object with this type.
|
|
136
|
+
*/
|
|
137
|
+
_type: string;
|
|
138
|
+
/**
|
|
139
|
+
* Uniquely identifies this object within its parent block.
|
|
140
|
+
* Not _required_, but highly encouraged.
|
|
141
|
+
*/
|
|
142
|
+
_key?: string;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* @public
|
|
146
|
+
*/
|
|
147
|
+
type BlockSpacingRenderer = (options: {
|
|
148
|
+
current: TypedObject;
|
|
149
|
+
next: TypedObject;
|
|
150
|
+
}) => string | undefined;
|
|
151
|
+
/**
|
|
152
|
+
* @public
|
|
153
|
+
*/
|
|
154
|
+
declare const DefaultBlockSpacingRenderer: BlockSpacingRenderer;
|
|
155
|
+
/**
|
|
156
|
+
* Generic type for portable text renderers that takes blocks/inline blocks
|
|
157
|
+
*
|
|
158
|
+
* @public
|
|
159
|
+
*/
|
|
160
|
+
type PortableTextRenderer<N> = (options: PortableTextRendererOptions<N>) => string;
|
|
161
|
+
/**
|
|
162
|
+
* Renderer function type for rendering portable text blocks (paragraphs, headings, blockquotes etc)
|
|
163
|
+
*
|
|
164
|
+
* @public
|
|
165
|
+
*/
|
|
166
|
+
type PortableTextBlockRenderer = PortableTextRenderer<PortableTextBlock$1>;
|
|
167
|
+
/**
|
|
168
|
+
* Renderer function type for rendering portable text list items
|
|
169
|
+
*
|
|
170
|
+
* @public
|
|
171
|
+
*/
|
|
172
|
+
type PortableTextListItemRenderer = PortableTextRenderer<PortableTextListItemBlock>;
|
|
173
|
+
/**
|
|
174
|
+
* Renderer function type for rendering portable text marks and/or decorators
|
|
175
|
+
*
|
|
176
|
+
* @public
|
|
177
|
+
*/
|
|
178
|
+
type PortableTextMarkRenderer<M extends TypedObject = any> = (options: PortableTextMarkRendererOptions<M>) => string;
|
|
179
|
+
/**
|
|
180
|
+
* @public
|
|
181
|
+
*/
|
|
182
|
+
type PortableTextTypeRenderer<V extends TypedObject = any> = (options: PortableTextTypeRendererOptions<V>) => string;
|
|
183
|
+
/**
|
|
184
|
+
* Object defining the different renderer functions to use for rendering various aspects
|
|
185
|
+
* of Portable Text and user-provided types to Markdown.
|
|
186
|
+
*
|
|
187
|
+
* @public
|
|
188
|
+
*/
|
|
189
|
+
interface PortableTextRenderers {
|
|
190
|
+
/**
|
|
191
|
+
* Object of renderer functions for different types of objects that might appear
|
|
192
|
+
* both as part of the blocks array, or as inline objects _inside_ of a block,
|
|
193
|
+
* alongside text spans.
|
|
194
|
+
*
|
|
195
|
+
* Use the `isInline` property to check whether or not this is an inline object or a block.
|
|
196
|
+
*
|
|
197
|
+
* The object has the shape `{typeName: RendererFn}`, where `typeName` is the value set
|
|
198
|
+
* in individual `_type` attributes.
|
|
199
|
+
*/
|
|
200
|
+
types: Record<string, PortableTextTypeRenderer | undefined>;
|
|
201
|
+
/**
|
|
202
|
+
* Object of renderer functions for different types of marks that might appear in spans.
|
|
203
|
+
*
|
|
204
|
+
* The object has the shape `{markName: RendererFn}`, where `markName` is the value set
|
|
205
|
+
* in individual `_type` attributes, values being stored in the parent blocks `markDefs`.
|
|
206
|
+
*/
|
|
207
|
+
marks: Record<string, PortableTextMarkRenderer | undefined>;
|
|
208
|
+
/**
|
|
209
|
+
* Object of renderer functions for blocks with different `style` properties.
|
|
210
|
+
*
|
|
211
|
+
* The object has the shape `{styleName: RendererFn}`, where `styleName` is the value set
|
|
212
|
+
* in individual `style` attributes on blocks.
|
|
213
|
+
*
|
|
214
|
+
* Can also be set to a single renderer function, which would handle block styles of _any_ type.
|
|
215
|
+
*/
|
|
216
|
+
block: Record<PortableTextBlockStyle, PortableTextBlockRenderer | undefined> | PortableTextBlockRenderer;
|
|
217
|
+
/**
|
|
218
|
+
* Object of renderer functions used to render different list item styles.
|
|
219
|
+
*
|
|
220
|
+
* The object has the shape `{listItemType: RendererFn}`, where `listItemType` is the value
|
|
221
|
+
* set in individual `listItem` attributes on blocks.
|
|
222
|
+
*
|
|
223
|
+
* Can also be set to a single renderer function, which would handle list items of _any_ type.
|
|
224
|
+
*/
|
|
225
|
+
listItem: Record<PortableTextListItemType, PortableTextListItemRenderer | undefined> | PortableTextListItemRenderer;
|
|
226
|
+
/**
|
|
227
|
+
* Renderer for "hard breaks", eg `\n` inside of text spans.
|
|
228
|
+
* By default renders as Markdown hard break (` \n` - two trailing spaces).
|
|
229
|
+
*/
|
|
230
|
+
hardBreak: () => string;
|
|
231
|
+
/**
|
|
232
|
+
* Renderer function used when encountering a mark type there is no registered renderer for
|
|
233
|
+
* in the `marks` option.
|
|
234
|
+
*/
|
|
235
|
+
unknownMark: PortableTextMarkRenderer;
|
|
236
|
+
/**
|
|
237
|
+
* Renderer function used when encountering an object type there is no registered renderer for
|
|
238
|
+
* in the `types` option.
|
|
239
|
+
*/
|
|
240
|
+
unknownType: PortableTextRenderer<UnknownNodeType>;
|
|
241
|
+
/**
|
|
242
|
+
* Renderer function used when encountering a block style there is no registered renderer for
|
|
243
|
+
* in the `block` option. Only used if `block` is an object.
|
|
244
|
+
*/
|
|
245
|
+
unknownBlockStyle: PortableTextRenderer<PortableTextBlock$1>;
|
|
246
|
+
/**
|
|
247
|
+
* Renderer function used when encountering a list item style there is no registered renderer for
|
|
248
|
+
* in the `listItem` option. Only used if `listItem` is an object.
|
|
249
|
+
*/
|
|
250
|
+
unknownListItem: PortableTextRenderer<PortableTextListItemBlock>;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Options received by most Portable Text renderers
|
|
254
|
+
*
|
|
255
|
+
* @public
|
|
256
|
+
*/
|
|
257
|
+
interface PortableTextRendererOptions<T> {
|
|
258
|
+
/**
|
|
259
|
+
* Data associated with this portable text node, eg the raw JSON value of a block/type
|
|
260
|
+
*/
|
|
261
|
+
value: T;
|
|
262
|
+
/**
|
|
263
|
+
* Index within its parent
|
|
264
|
+
*/
|
|
265
|
+
index: number;
|
|
266
|
+
/**
|
|
267
|
+
* Index of a list item
|
|
268
|
+
*/
|
|
269
|
+
listIndex?: number | undefined;
|
|
270
|
+
/**
|
|
271
|
+
* Whether or not this node is "inline" - ie as a child of a text block,
|
|
272
|
+
* alongside text spans, or a block in and of itself.
|
|
273
|
+
*/
|
|
274
|
+
isInline: boolean;
|
|
275
|
+
/**
|
|
276
|
+
* Serialized Markdown of child nodes of this block/type
|
|
277
|
+
*/
|
|
278
|
+
children?: string;
|
|
279
|
+
/**
|
|
280
|
+
* Function used to render any node that might appear in a portable text array or block,
|
|
281
|
+
* including virtual "toolkit"-nodes like lists and nested spans. You will rarely need
|
|
282
|
+
* to use this.
|
|
283
|
+
*/
|
|
284
|
+
renderNode: RenderNode;
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* Options received by any user-defined type renderer in the input array that is not a text block
|
|
288
|
+
*
|
|
289
|
+
* @public
|
|
290
|
+
*/
|
|
291
|
+
type PortableTextTypeRendererOptions<T> = Omit<PortableTextRendererOptions<T>, 'children'>;
|
|
292
|
+
/**
|
|
293
|
+
* Options received by Portable Text mark renderers
|
|
294
|
+
*
|
|
295
|
+
* @public
|
|
296
|
+
*/
|
|
297
|
+
interface PortableTextMarkRendererOptions<M extends TypedObject = ArbitraryTypedObject> {
|
|
298
|
+
/**
|
|
299
|
+
* Mark definition, eg the actual data of the annotation. If the mark is a simple decorator, this will be `undefined`
|
|
300
|
+
*/
|
|
301
|
+
value?: M;
|
|
302
|
+
/**
|
|
303
|
+
* Text content of this mark
|
|
304
|
+
*/
|
|
305
|
+
text: string;
|
|
306
|
+
/**
|
|
307
|
+
* Key for this mark. The same key can be used amongst multiple text spans within the same block, so don't rely on this to be unique.
|
|
308
|
+
*/
|
|
309
|
+
markKey: string | undefined;
|
|
310
|
+
/**
|
|
311
|
+
* Type of mark - ie value of `_type` in the case of annotations, or the name of the decorator otherwise - eg `em`, `italic`.
|
|
312
|
+
*/
|
|
313
|
+
markType: string;
|
|
314
|
+
/**
|
|
315
|
+
* Serialized Markdown of child nodes of this mark
|
|
316
|
+
*/
|
|
317
|
+
children: string;
|
|
318
|
+
/**
|
|
319
|
+
* Function used to render any node that might appear in a portable text array or block,
|
|
320
|
+
* including virtual "toolkit"-nodes like lists and nested spans. You will rarely need
|
|
321
|
+
* to use this.
|
|
322
|
+
*/
|
|
323
|
+
renderNode: RenderNode;
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Any node type that we can't identify - eg it has an `_type`,
|
|
327
|
+
* but we don't know anything about its other properties
|
|
328
|
+
*/
|
|
329
|
+
type UnknownNodeType = {
|
|
330
|
+
[key: string]: unknown;
|
|
331
|
+
_type: string;
|
|
332
|
+
} | TypedObject;
|
|
333
|
+
type RenderNode = <T extends TypedObject>(options: Serializable<T>) => string;
|
|
334
|
+
interface Serializable<T> {
|
|
335
|
+
node: T;
|
|
336
|
+
index: number;
|
|
337
|
+
isInline: boolean;
|
|
338
|
+
renderNode: RenderNode;
|
|
339
|
+
}
|
|
340
|
+
type Options$1 = Partial<PortableTextRenderers> & {
|
|
341
|
+
blockSpacing?: BlockSpacingRenderer;
|
|
342
|
+
};
|
|
343
|
+
/**
|
|
344
|
+
* @public
|
|
345
|
+
*/
|
|
346
|
+
declare function portableTextToMarkdown<Block extends TypedObject = PortableTextBlock$1 | ArbitraryTypedObject>(blocks: Array<Block>, options?: Options$1): string;
|
|
347
|
+
/**
|
|
348
|
+
* @public
|
|
349
|
+
*/
|
|
350
|
+
declare const DefaultHardBreakRenderer: () => string;
|
|
351
|
+
/**
|
|
352
|
+
* @public
|
|
353
|
+
*/
|
|
354
|
+
declare const DefaultListItemRenderer: PortableTextListItemRenderer;
|
|
355
|
+
type PortableTextBlockRenderer$1 = PortableTextRenderer<PortableTextBlock$1>;
|
|
356
|
+
/**
|
|
357
|
+
* @public
|
|
358
|
+
*/
|
|
359
|
+
declare const DefaultNormalRenderer: PortableTextBlockRenderer$1;
|
|
360
|
+
/**
|
|
361
|
+
* @public
|
|
362
|
+
*/
|
|
363
|
+
declare const DefaultBlockquoteRenderer: PortableTextBlockRenderer$1;
|
|
364
|
+
/**
|
|
365
|
+
* @public
|
|
366
|
+
*/
|
|
367
|
+
declare const DefaultH1Renderer: PortableTextBlockRenderer$1;
|
|
368
|
+
/**
|
|
369
|
+
* @public
|
|
370
|
+
*/
|
|
371
|
+
declare const DefaultH2Renderer: PortableTextBlockRenderer$1;
|
|
372
|
+
/**
|
|
373
|
+
* @public
|
|
374
|
+
*/
|
|
375
|
+
declare const DefaultH3Renderer: PortableTextBlockRenderer$1;
|
|
376
|
+
/**
|
|
377
|
+
* @public
|
|
378
|
+
*/
|
|
379
|
+
declare const DefaultH4Renderer: PortableTextBlockRenderer$1;
|
|
380
|
+
/**
|
|
381
|
+
* @public
|
|
382
|
+
*/
|
|
383
|
+
declare const DefaultH5Renderer: PortableTextBlockRenderer$1;
|
|
384
|
+
/**
|
|
385
|
+
* @public
|
|
386
|
+
*/
|
|
387
|
+
declare const DefaultH6Renderer: PortableTextBlockRenderer$1;
|
|
388
|
+
/**
|
|
389
|
+
* @public
|
|
390
|
+
*/
|
|
391
|
+
declare const DefaultEmRenderer: PortableTextMarkRenderer;
|
|
392
|
+
/**
|
|
393
|
+
* @public
|
|
394
|
+
*/
|
|
395
|
+
declare const DefaultStrongRenderer: PortableTextMarkRenderer;
|
|
396
|
+
/**
|
|
397
|
+
* @public
|
|
398
|
+
*/
|
|
399
|
+
declare const DefaultCodeRenderer: PortableTextMarkRenderer;
|
|
400
|
+
/**
|
|
401
|
+
* @public
|
|
402
|
+
*/
|
|
403
|
+
declare const DefaultUnderlineRenderer: PortableTextMarkRenderer;
|
|
404
|
+
/**
|
|
405
|
+
* @public
|
|
406
|
+
*/
|
|
407
|
+
declare const DefaultStrikeThroughRenderer: PortableTextMarkRenderer;
|
|
408
|
+
interface DefaultLink extends TypedObject {
|
|
409
|
+
_type: 'link';
|
|
410
|
+
href: string;
|
|
411
|
+
title: string | undefined;
|
|
412
|
+
}
|
|
413
|
+
/**
|
|
414
|
+
* @public
|
|
415
|
+
*/
|
|
416
|
+
declare const DefaultLinkRenderer: PortableTextMarkRenderer<DefaultLink>;
|
|
417
|
+
/**
|
|
418
|
+
* @public
|
|
419
|
+
*/
|
|
420
|
+
declare const DefaultCodeBlockRenderer: PortableTextTypeRenderer<{
|
|
421
|
+
_type: 'code';
|
|
422
|
+
code: string;
|
|
423
|
+
language: string | undefined;
|
|
424
|
+
}>;
|
|
425
|
+
/**
|
|
426
|
+
* @public
|
|
427
|
+
*/
|
|
428
|
+
declare const DefaultHorizontalRuleRenderer: PortableTextTypeRenderer;
|
|
429
|
+
/**
|
|
430
|
+
* @public
|
|
431
|
+
*/
|
|
432
|
+
declare const DefaultHtmlRenderer: PortableTextTypeRenderer<{
|
|
433
|
+
_type: 'html';
|
|
434
|
+
html: string;
|
|
435
|
+
}>;
|
|
436
|
+
/**
|
|
437
|
+
* @public
|
|
438
|
+
*/
|
|
439
|
+
declare const DefaultImageRenderer: PortableTextTypeRenderer<{
|
|
440
|
+
_type: 'image';
|
|
441
|
+
src: string;
|
|
442
|
+
alt: string | undefined;
|
|
443
|
+
title: string | undefined;
|
|
444
|
+
}>;
|
|
445
|
+
/**
|
|
446
|
+
* @public
|
|
447
|
+
*/
|
|
448
|
+
declare const DefaultTableRenderer: PortableTextTypeRenderer<{
|
|
449
|
+
_type: 'table';
|
|
450
|
+
headerRows: number | undefined;
|
|
451
|
+
rows: Array<{
|
|
452
|
+
_key: string;
|
|
453
|
+
cells: Array<{
|
|
454
|
+
_key: string;
|
|
455
|
+
value: Array<PortableTextBlock$1>;
|
|
456
|
+
}>;
|
|
457
|
+
}>;
|
|
458
|
+
}>;
|
|
459
|
+
/**
|
|
460
|
+
* Matcher function for mapping markdown elements to Portable Text block styles.
|
|
461
|
+
*
|
|
462
|
+
* @public
|
|
463
|
+
*/
|
|
464
|
+
type StyleMatcher = ({
|
|
465
|
+
context
|
|
466
|
+
}: {
|
|
467
|
+
context: {
|
|
468
|
+
schema: Schema;
|
|
469
|
+
};
|
|
470
|
+
}) => string | undefined;
|
|
471
|
+
/**
|
|
472
|
+
* Matcher function for mapping markdown list items to Portable Text list types.
|
|
473
|
+
*
|
|
474
|
+
* @public
|
|
475
|
+
*/
|
|
476
|
+
type ListItemMatcher = ({
|
|
477
|
+
context
|
|
478
|
+
}: {
|
|
479
|
+
context: {
|
|
480
|
+
schema: Schema;
|
|
481
|
+
};
|
|
482
|
+
}) => string | undefined;
|
|
483
|
+
/**
|
|
484
|
+
* Matcher function for mapping markdown inline formatting to Portable Text decorators.
|
|
485
|
+
*
|
|
486
|
+
* @public
|
|
487
|
+
*/
|
|
488
|
+
type DecoratorMatcher = ({
|
|
489
|
+
context
|
|
490
|
+
}: {
|
|
491
|
+
context: {
|
|
492
|
+
schema: Schema;
|
|
493
|
+
};
|
|
494
|
+
}) => string | undefined;
|
|
495
|
+
/**
|
|
496
|
+
* Matcher function for mapping markdown links to Portable Text annotations.
|
|
497
|
+
*
|
|
498
|
+
* @public
|
|
499
|
+
*/
|
|
500
|
+
type AnnotationMatcher<TValue extends Record<string, unknown> = Record<string, never>> = ({
|
|
501
|
+
context,
|
|
502
|
+
value
|
|
503
|
+
}: {
|
|
504
|
+
context: {
|
|
505
|
+
schema: Schema;
|
|
506
|
+
keyGenerator: () => string;
|
|
507
|
+
};
|
|
508
|
+
value: TValue;
|
|
509
|
+
}) => PortableTextObject | undefined;
|
|
510
|
+
/**
|
|
511
|
+
* Matcher function for mapping markdown objects to Portable Text block or inline objects.
|
|
512
|
+
*
|
|
513
|
+
* @public
|
|
514
|
+
*/
|
|
515
|
+
type ObjectMatcher<TValue extends Record<string, unknown> = Record<string, never>> = ({
|
|
516
|
+
context,
|
|
517
|
+
value,
|
|
518
|
+
isInline
|
|
519
|
+
}: {
|
|
520
|
+
context: {
|
|
521
|
+
schema: Schema;
|
|
522
|
+
keyGenerator: () => string;
|
|
523
|
+
};
|
|
524
|
+
value: TValue;
|
|
525
|
+
isInline: boolean;
|
|
526
|
+
}) => PortableTextObject | undefined;
|
|
527
|
+
type Options = {
|
|
528
|
+
schema?: Schema;
|
|
529
|
+
keyGenerator?: () => string;
|
|
530
|
+
marks?: {
|
|
531
|
+
strong?: DecoratorMatcher;
|
|
532
|
+
em?: DecoratorMatcher;
|
|
533
|
+
code?: DecoratorMatcher;
|
|
534
|
+
strikeThrough?: DecoratorMatcher;
|
|
535
|
+
link?: AnnotationMatcher<{
|
|
536
|
+
href: string;
|
|
537
|
+
title: string | undefined;
|
|
538
|
+
}>;
|
|
539
|
+
};
|
|
540
|
+
block?: {
|
|
541
|
+
normal?: StyleMatcher;
|
|
542
|
+
blockquote?: StyleMatcher;
|
|
543
|
+
h1?: StyleMatcher;
|
|
544
|
+
h2?: StyleMatcher;
|
|
545
|
+
h3?: StyleMatcher;
|
|
546
|
+
h4?: StyleMatcher;
|
|
547
|
+
h5?: StyleMatcher;
|
|
548
|
+
h6?: StyleMatcher;
|
|
549
|
+
};
|
|
550
|
+
listItem?: {
|
|
551
|
+
number?: ListItemMatcher;
|
|
552
|
+
bullet?: ListItemMatcher;
|
|
553
|
+
};
|
|
554
|
+
types?: {
|
|
555
|
+
code?: ObjectMatcher<{
|
|
556
|
+
language: string | undefined;
|
|
557
|
+
code: string;
|
|
558
|
+
}>;
|
|
559
|
+
horizontalRule?: ObjectMatcher;
|
|
560
|
+
html?: ObjectMatcher<{
|
|
561
|
+
html: string;
|
|
562
|
+
}>;
|
|
563
|
+
table?: ObjectMatcher<{
|
|
564
|
+
headerRows: number | undefined;
|
|
565
|
+
rows: Array<{
|
|
566
|
+
_key: string;
|
|
567
|
+
_type: 'row';
|
|
568
|
+
cells: Array<{
|
|
569
|
+
_type: 'cell';
|
|
570
|
+
_key: string;
|
|
571
|
+
value: Array<PortableTextBlock>;
|
|
572
|
+
}>;
|
|
573
|
+
}>;
|
|
574
|
+
}>;
|
|
575
|
+
image?: ObjectMatcher<{
|
|
576
|
+
src: string;
|
|
577
|
+
alt: string;
|
|
578
|
+
title: string | undefined;
|
|
579
|
+
}>;
|
|
580
|
+
};
|
|
581
|
+
html?: {
|
|
582
|
+
/**
|
|
583
|
+
* How to handle inline HTML.
|
|
584
|
+
* - 'skip': Ignore inline HTML (default)
|
|
585
|
+
* - 'text': Convert inline HTML to plain text
|
|
586
|
+
*
|
|
587
|
+
* @defaultValue 'skip'
|
|
588
|
+
*/
|
|
589
|
+
inline?: 'skip' | 'text';
|
|
590
|
+
};
|
|
591
|
+
};
|
|
592
|
+
/**
|
|
593
|
+
* Converts a markdown string to an array of Portable Text blocks.
|
|
594
|
+
*
|
|
595
|
+
* @public
|
|
596
|
+
*/
|
|
597
|
+
declare function markdownToPortableText(markdown: string, options?: Options): Array<PortableTextBlock>;
|
|
598
|
+
export { type AnnotationMatcher, type BlockSpacingRenderer, type DecoratorMatcher, DefaultBlockSpacingRenderer, DefaultBlockquoteRenderer, DefaultCodeBlockRenderer, DefaultCodeRenderer, DefaultEmRenderer, DefaultH1Renderer, DefaultH2Renderer, DefaultH3Renderer, DefaultH4Renderer, DefaultH5Renderer, DefaultH6Renderer, DefaultHardBreakRenderer, DefaultHorizontalRuleRenderer, DefaultHtmlRenderer, DefaultImageRenderer, DefaultLinkRenderer, DefaultListItemRenderer, DefaultNormalRenderer, DefaultStrikeThroughRenderer, DefaultStrongRenderer, DefaultTableRenderer, DefaultUnderlineRenderer, type ListItemMatcher, type ObjectMatcher, type PortableTextBlockRenderer, type PortableTextListItemRenderer, type PortableTextMarkRenderer, type PortableTextMarkRendererOptions, type PortableTextRenderer, type PortableTextRendererOptions, type PortableTextRenderers, type PortableTextTypeRenderer, type PortableTextTypeRendererOptions, type StyleMatcher, markdownToPortableText, portableTextToMarkdown };
|
|
599
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":["ArbitraryTypedObject","TypedObject","PortableTextBlock","M","C","S","L","PortableTextMarkDefinition","PortableTextSpan","PortableTextBlockStyle","PortableTextListItemType","PortableTextLink","PortableTextListItemBlock","Omit"],"sources":["../../../node_modules/.pnpm/@portabletext+types@3.0.0/node_modules/@portabletext/types/dist/index.d.ts","../src/from-portable-text/renderers/block-spacing.ts","../src/from-portable-text/types.ts","../src/from-portable-text/portable-text-to-markdown.ts","../src/from-portable-text/renderers/hard-break.ts","../src/from-portable-text/renderers/list-item.ts","../src/from-portable-text/renderers/style.ts","../src/from-portable-text/renderers/marks.ts","../src/from-portable-text/renderers/type.ts","../src/to-portable-text/matchers.ts","../src/to-portable-text/markdown-to-portable-text.ts"],"sourcesContent":["/**\n * Any object with an `_type` that is a string. Can hold any other properties.\n * @public\n */\nexport declare type ArbitraryTypedObject = TypedObject & {\n [key: string]: any;\n};\n\n/**\n * A Portable Text Block can be thought of as one paragraph, quote or list item.\n * In other words, it is a container for text, that can have a visual style associated with it.\n * The actual text value is stored in portable text spans inside of the `childen` array.\n *\n * @typeParam M - Mark types that be used for text spans\n * @typeParam C - Types allowed as children of this block\n * @typeParam S - Allowed block styles (eg `normal`, `blockquote`, `h3` etc)\n * @typeParam L - Allowed list item types (eg `number`, `bullet` etc)\n * @public\n */\nexport declare interface PortableTextBlock<\n M extends PortableTextMarkDefinition = PortableTextMarkDefinition,\n C extends TypedObject = ArbitraryTypedObject | PortableTextSpan,\n S extends string = PortableTextBlockStyle,\n L extends string = PortableTextListItemType,\n> extends TypedObject {\n /**\n * Type name identifying this as a portable text block.\n * All items within a portable text array should have a `_type` property.\n *\n * Usually 'block', but can be customized to other values\n */\n _type: \"block\" | string;\n /**\n * A key that identifies this block uniquely within the parent array. Used to more easily address\n * the block when editing collaboratively, but is also very useful for keys inside of React and\n * other rendering frameworks that can use keys to optimize operations.\n */\n _key?: string;\n /**\n * Array of inline items for this block. Usually contain text spans, but can be\n * configured to include inline objects of other types as well.\n */\n children: C[];\n /**\n * Array of mark definitions used in child text spans. By having them be on the block level,\n * the same mark definition can be reused for multiple text spans, which is often the case\n * with nested marks.\n */\n markDefs?: M[];\n /**\n * Visual style of the block\n * Common values: 'normal', 'blockquote', 'h1'...'h6'\n */\n style?: S;\n /**\n * If this block is a list item, identifies which style of list item this is\n * Common values: 'bullet', 'number', but can be configured\n */\n listItem?: L;\n /**\n * If this block is a list item, identifies which level of nesting it belongs within\n */\n level?: number;\n}\n\n/**\n * A set of _common_ (but not required/standarized) block styles\n * @public\n */\nexport declare type PortableTextBlockStyle =\n | \"normal\"\n | \"blockquote\"\n | \"h1\"\n | \"h2\"\n | \"h3\"\n | \"h4\"\n | \"h5\"\n | \"h6\"\n | string;\n\n/**\n * The simplest representation of a link\n * @public\n */\nexport declare interface PortableTextLink {\n _type: \"link\";\n href: string;\n}\n\n/**\n * Strictly speaking the same as a portable text block, but `listItem` is required\n *\n * @typeParam M - Mark types that be used for text spans\n * @typeParam C - Types allowed as children of this block\n * @typeParam S - Allowed block styles (eg `normal`, `blockquote`, `h3` etc)\n * @typeParam L - Allowed list item types (eg `number`, `bullet` etc)\n * @public\n */\nexport declare interface PortableTextListItemBlock<\n M extends PortableTextMarkDefinition = PortableTextMarkDefinition,\n C extends TypedObject = PortableTextSpan,\n S extends string = PortableTextBlockStyle,\n L extends string = PortableTextListItemType,\n> extends Omit<PortableTextBlock<M, C, S, L>, \"listItem\"> {\n listItem: L;\n}\n\n/**\n * A set of _common_ (but not required/standardized) list item types\n * @public\n */\nexport declare type PortableTextListItemType = \"bullet\" | \"number\" | string;\n\n/**\n * A mark definition holds information for marked text. For instance, a text span could reference\n * a mark definition for a hyperlink, a geoposition, a reference to a document or anything that is\n * representable as a JSON object.\n * @public\n */\nexport declare interface PortableTextMarkDefinition {\n /**\n * Unknown properties\n */\n [key: string]: unknown;\n /**\n * Identifies the type of mark this is, and is used to pick the correct React components to use\n * when rendering a text span marked with this mark type.\n */\n _type: string;\n /**\n * Uniquely identifies this mark definition within the block\n */\n _key: string;\n}\n\n/**\n * A Portable Text Span holds a chunk of the actual text value of a Portable Text Block\n * @public\n */\nexport declare interface PortableTextSpan {\n /**\n * Type is always `span` for portable text spans, as these don't vary in shape\n */\n _type: \"span\";\n /**\n * Unique (within parent block) key for this portable text span\n */\n _key?: string;\n /**\n * The actual text value of this text span\n */\n text: string;\n /**\n * An array of marks this text span is annotated with, identified by its `_key`.\n * If the key cannot be found in the parent blocks mark definition, the mark is assumed to be a\n * decorator (a simpler mark without any properties - for instance `strong` or `em`)\n */\n marks?: string[];\n}\n\n/**\n * Any object with an `_type` property (which is required in portable text arrays),\n * as well as a _potential_ `_key` (highly encouraged)\n * @public\n */\nexport declare interface TypedObject {\n /**\n * Identifies the type of object/span this is, and is used to pick the correct React components\n * to use when rendering a span or inline object with this type.\n */\n _type: string;\n /**\n * Uniquely identifies this object within its parent block.\n * Not _required_, but highly encouraged.\n */\n _key?: string;\n}\n\nexport {};\n"],"x_google_ignoreList":[0],"mappings":";;;AAIA;AAeA;AACYO,aAhBQP,oBAAAA,GAAuBC,WAgB/BM,GAAAA;EAA6BA,CAAAA,GAAAA,EAAAA,MAAAA,CAAAA,EAAAA,GAAAA;CAC7BN;;;;;;;;;;AAgDZ;AA6BA;AACYM,kBAhFaL,mBAgFbK,CAA6BA,UA/E7BA,0BA+E6BA,GA/EAA,0BA+EAA,EAC7BN,UA/EAA,WA+EAA,GA/EcD,oBA+EdC,GA/EqCO,gBA+ErCP,EAAcO,UAAAA,MAAAA,GA9ELC,sBA8EKD,EACLC,UAAAA,MAAAA,GA9EAC,wBA8EAD,CACAC,SA9EXT,WA8EWS,CAAAA;EACYP;;;;;;EAAvBU,KAAAA,EAAAA,OAAAA,GAAAA,MAAAA;EAAI;AAQd;AAQA;AAoBA;AA0BA;;EC5JA;AAQA;;ACHA;EASA,QAAY,EFmBAT,CEnBA,EAAA;EAOZ;AAQA;;;;EAC0C,QAAA,CAAA,EFS7BD,CET6B,EAAA;EAM1C;;;;EAC0C,KAAA,CAAA,EFOhCE,CEPgC;EAS1C;;;;EAmBS,QAAA,CAAA,EFhBIC,CEgBJ;EAWI;;;EACP,KAAA,CAAA,EAAA,MAAA;;;;;;AA8BS,aF/CKG,sBAAAA,GEqDsB,QAAA,GAArB,YAAA,GAMmB,IAAA,GAArB,IAAA,GAAoB,IAAA,GAQtB,IAAA,GAwCL,IAAA,GACkB,IAAA,GAA5B,MAAA;;;;;AAyDF;;ACrMkD;;;AAiCjC,kBH4BQG,yBG5BR,CAAoB,UH6BzBL,0BG7ByB,GH6BIA,0BG7BJ,EAMrC,UHwBYN,WGxBI,GHwBUO,gBGxBY,EACtB,UAAA,MAAA,GHwBKC,sBGxBL,EAAc,UAAA,MAAA,GHyBTC,wBGzBS,CAAoB,SH0BxCG,IG1BwC,CH0BnCX,mBG1BmC,CH0BjBC,CG1BiB,EH0BdC,CG1Bc,EH0BXC,CG1BW,EH0BRC,CG1BQ,CAAA,EAAA,UAAA,CAAA,CAAA;EAClC,QAAA,EH0BJA,CG1BI;;;;AC3EhB;;ACEa,aL0GOI,wBAAAA,GK1GkB,QAAA,GAAA,QAAA,GAAA,MAiBrC;ACrBiD;AAOlD;AAcA;AAgBA;AAMA;AAMA;AAMa,kBN+DYH,0BAAAA,CM/DO;EAMhC;AAMA;;EC9DA,CAAA,GAAa,EAAA,MAAA,CAAA,EAAA,OACI;EAKjB;AAMA;AAMA;AAOA;EAEuB,KAEb,EAAA,MAAA;EASV;;ACtCA;EAWA,IAAa,EAAA,MAAA;AAOb;AAwBA;;;;AAGQ,kBRwFiBC,gBAAAA,CQxFjB;EAH2B;;;ECrCnC,KAAY,EAAA,MAAA;EA2BZ;AA2BA;AA2BA;EACiB,IAAA,CAAA,EAAA,MAAA;EAA0B;;;EAKvB,IAAA,EAAA,MAAA;EACX;;;AAwCT;;EAC2C,KAAA,CAAA,EAAA,MAAA,EAAA;;;;;;;kBTyBlBP,WAAAA;EU1HN;;;;EAQR,KAAA,EAAA,MAAA;EACS;;;;EAMX,IAAA,CAAA,EAAA,MAAA;;;AVtDT;AAeA;AACYM,KCXA,oBAAA,GDWAA,CAAAA,OAAAA,EAAAA;EAA6BA,OAAAA,ECV9B,WDU8BA;EAC7BN,IAAAA,ECVJ,WDUIA;CAAcD,EAAAA,GAAAA,MAAAA,GAAAA,SAAAA;;;;AAqBdI,cCzBC,2BDyBDA,ECzB8B,oBDyB9BA;;AAtCZ;AAeA;;;AAEYH,KEPA,oBFOAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,OAAAA,EEND,2BFMCA,CEN2B,CFM3BA,CAAAA,EAAAA,GAAAA,MAAAA;;;;;;AA2BCE,KEzBD,yBAAA,GAA4B,oBFyB3BA,CEzBgD,mBFyBhDA,CAAAA;;;;;AAqBb;AA6ByBS,KEpEb,4BAAA,GACV,oBFmEgD,CEnE3B,yBFmE2B,CAAA;;;;;;AAI7BF,KEhET,wBFgESA,CAAAA,UEhE0B,WFgE1BA,GAAAA,GAAAA,CAAAA,GAAAA,CAAAA,OAAAA,EE/DV,+BF+DUA,CE/DsB,CF+DtBA,CAAAA,EAAAA,GAAAA,MAAAA;;;;AACqBJ,KE1D9B,wBF0D8BA,CAAAA,UE1DK,WF0DLA,GAAAA,GAAAA,CAAAA,GAAAA,CAAAA,OAAAA,EEzD/B,+BFyD+BA,CEzDC,CFyDDA,CAAAA,EAAAA,GAAAA,MAAAA;;;;;AAQ1C;AAQA;AAoByBE,UEpFR,qBAAA,CFoFwB;EA0BhBP;;AC5JzB;AAQA;;ACHA;AASA;AAOA;AAQA;;EAC2C,KAAA,EA2BlC,MA3BkC,CAAA,MAAA,EA2BnB,wBA3BmB,GAAA,SAAA,CAAA;EAAhC;;AAMX;;;;EAC0C,KAAA,EA4BjC,MA5BiC,CAAA,MAAA,EA4BlB,wBA5BkB,GAAA,SAAA,CAAA;EASzB;;;;;;;;EA+BX,KAAA,EADA,MACA,CADO,sBACP,EAD+B,yBAC/B,GAAA,SAAA,CAAA,GAAA,yBAAA;EAWO;;;;;;;;EAyBQ,QAAA,EAzBf,MAyBe,CAzBR,wBAyBQ,EAzBkB,4BAyBlB,GAAA,SAAA,CAAA,GAxBf,4BAwBe;EAMmB;;;AAQxC;EAwCY,SAAA,EAAA,GAAA,GAAA,MAAA;EACkB;;;;EASb,WAAA,EA5EF,wBA4EiC;EACpC;;;;EAgCY,WAAA,EAvGT,oBAuGS,CAvGY,eAuGZ,CAAA;EAOZ;AAIZ;;;EACW,iBAAA,EA7GU,oBA6GV,CA7G+B,mBA6G/B,CAAA;EAAY;AAGvB;;ACrMkD;EAgC3B,eAAA,ED2DJ,oBC3DI,CD2DiB,yBC3DjB,CAAA;;;;AAOvB;;;AACkD,UD2DjC,2BC3DiC,CAAA,CAAA,CAAA,CAAA;EAClC;;;EAA6B,KAAA,ED8DpC,CC9DoC;;AC3E7C;;ECEa,KAAA,EAAA,MAAA;;ACJqC;AAOlD;EAca,SAAA,CAAA,EAAA,MAAA,GAAA,SAWZ;EAKY;AAMb;AAMA;AAMA;EAMa,QAAA,EAAA,OAAA;EAMA;;AC9Db;EAMa,QAAA,CAAA,EAAA,MAAA;EAMA;AAMb;AAOA;AAEuB;AAWvB;cL4Hc;AMlKd;AAWA;AAOA;AAUA;AAcA;;AAOa,KNyHD,+BMzHC,CAAA,CAAA,CAAA,GNyHoC,IMzHpC,CN0HX,2BM1HW,CN0HiB,CM1HjB,CAAA,EAAA,UAAA,CAAA;;;;;;AC5CD,UP+KK,+BO5KS,CAAA,UP6Kd,WO7Kc,GP6KA,oBO7KA,CAAA,CAAA;EAwBd;AA2BZ;AA2BA;EACiB,KAAA,CAAA,EPmGP,COnGO;EAA0B;;;EAKvB,IAAA,EAAA,MAAA;EACX;;;EAwCG,OAAA,EAAA,MAAA,GAAa,SAAA;EACR;;;EAGf,QAAA,EAAA,MAAA;EACA;;;EAKI,QAAA,EAAA,MAAA;EAAkB;;AC1GL;;;EAOV,UAAA,ERyKK,UQzKL;;;;;;AAQA,KRwKG,eAAA,GQxKH;EACA,CAAA,GAAA,EAAA,MAAA,CAAA,EAAA,OAAA;EACA,KAAA,EAAA,MAAA;CACA,GRuKL,WQvKK;AACA,KRwKG,UAAA,GQxKH,CAAA,URwK2B,WQxK3B,CAAA,CAAA,OAAA,ERyKE,YQzKF,CRyKe,CQzKf,CAAA,EAAA,GAAA,MAAA;AACA,UR2KQ,YQ3KR,CAAA,CAAA,CAAA,CAAA;EAGI,IAAA,ERyKL,CQzKK;EACA,KAAA,EAAA,MAAA;EAGF,QAAA,EAAA,OAAA;EACU,UAAA,ERuKP,UQvKO;;AVpDrB,KGkDK,SAAA,GAAU,OHlDUC,CGkDF,qBHlDmBI,CAAAA,GAAA;EAC9BC,YAAAA,CAAAA,EGkDK,oBHlDLA;CAA6BA;;;;AAEpBE,iBGsDL,sBHtDKA,CAAAA,cGuDL,WHvDKA,GGuDS,mBHvDTA,GGuD6B,oBHvD7BA,CAAAA,CAAAA,MAAAA,EGwDX,KHxDWA,CGwDL,KHxDKA,CAAAA,EAAAA,OAAAA,CAAAA,EGwDY,SHxDZA,CAAAA,EAAAA,MAAAA;;;AAlBrB;AAeyBP,cIhBZ,wBJgB6BI,EAAAA,GAAA,GAAA,MAAA;;AAf1C;AAeA;AACYC,cKfC,uBLeDA,EKf0B,4BLe1BA;AAhBZ,KMDK,2BAAA,GAA4B,oBNCqB,CMDA,mBNCA,CAAA;AAetD;;;AAEYN,cMbC,qBNaDA,EMbwB,2BNaxBA;;;;AAESS,cMDR,yBNCQA,EMDmB,2BNCnBA;;;;AAmCRJ,cMpBA,iBNoBAA,EMpBmB,2BNoBnBA;;;AAWb;AA6ByBM,cMtDZ,iBNsDqC,EMtDlB,2BNsDkB;;;;AAExBJ,cMlDb,iBNkDaA,EMlDM,2BNkDNA;;;;AAGUJ,cM/CvB,iBN+CuBA,EM/CJ,2BN+CIA;;;;AACxBE,cM1CC,iBN0CDA,EM1CoB,2BN0CpBA;;;AAOZ;AAQyBC,cMnDZ,iBNmDsC,EMnDnB,2BNmDmB;AAnHnD;AAeA;;AACyCA,cOd5B,iBPc4BA,EOdT,wBPcSA;;;;AAEpBE,cOVR,qBPUQA,EOVe,wBPUfA;;;;AA+BXJ,cOnCG,mBPmCHA,EOnCwB,wBPmCxBA;;;;AAgBUI,cO7CP,wBP6C6B,EO7CH,wBP6CG;AA6B1C;;;A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"}
|