@churchapps/helpers 1.6.1 → 1.7.1

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.
@@ -0,0 +1,21 @@
1
+ export interface ElementAnswersSchema {
2
+ type: "object";
3
+ properties: Record<string, {
4
+ type: string | string[];
5
+ enum?: string[];
6
+ description?: string;
7
+ }>;
8
+ additionalProperties: true;
9
+ }
10
+ export interface ElementTypeDefinition {
11
+ elementType: string;
12
+ label: string;
13
+ category: "layout" | "content" | "media" | "church" | "advanced";
14
+ schemaVersion: 1;
15
+ defaults: Record<string, unknown>;
16
+ answersSchema: ElementAnswersSchema;
17
+ allowsChildren?: boolean;
18
+ }
19
+ export declare const ElementTypes: Record<string, ElementTypeDefinition>;
20
+ export declare const validateElementAnswers: (elementType: string, answers: unknown) => string[];
21
+ //# sourceMappingURL=ElementTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ElementTypes.d.ts","sourceRoot":"","sources":["../src/ElementTypes.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/F,oBAAoB,EAAE,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAC;IACjE,aAAa,EAAE,CAAC,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,aAAa,EAAE,oBAAoB,CAAC;IACpC,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAka9D,CAAC;AAIF,eAAO,MAAM,sBAAsB,GAAI,aAAa,MAAM,EAAE,SAAS,OAAO,KAAG,MAAM,EAapF,CAAC"}
@@ -0,0 +1,444 @@
1
+ // Canonical contract for website-builder element types. answersJSON has historically been
2
+ // untyped; these definitions document the real stored shapes (including string-encoded
3
+ // booleans from checkbox handlers) and back server-side validation. Lenient by design:
4
+ // additionalProperties is always true and unknown element types pass validation.
5
+ export const ElementTypes = {
6
+ row: {
7
+ elementType: "row",
8
+ label: "Row",
9
+ category: "layout",
10
+ schemaVersion: 1,
11
+ defaults: { columns: "6,6" },
12
+ answersSchema: {
13
+ type: "object",
14
+ properties: {
15
+ columns: { type: "string", description: "Comma-separated desktop column widths summing to 12, e.g. \"6,6\" or \"4,4,4\". The API auto-creates/destroys child column elements to match." },
16
+ mobileSizes: { type: ["string", "array"], description: "Comma-separated mobile widths, one per column (e.g. \"12,12\"). The API resets this to an empty native array when its length stops matching columns, so both representations exist in production." },
17
+ mobileOrder: { type: ["string", "array"], description: "Comma-separated mobile display order, one per column (e.g. \"2,1\"). Same string-or-empty-array duality as mobileSizes." }
18
+ },
19
+ additionalProperties: true
20
+ },
21
+ allowsChildren: true
22
+ },
23
+ column: {
24
+ elementType: "column",
25
+ label: "Column",
26
+ category: "layout",
27
+ schemaVersion: 1,
28
+ defaults: { size: 6 },
29
+ answersSchema: {
30
+ type: "object",
31
+ properties: {
32
+ size: { type: ["number", "string"], description: "Desktop grid width 1-12. Written as a native number by the API (ElementController.checkRow); renderer tolerates strings." },
33
+ mobileSize: { type: ["number", "string"], description: "Mobile grid width 1-12, hydrated onto the column by the API from the parent row's mobileSizes." },
34
+ mobileOrder: { type: ["number", "string"], description: "Mobile flex order, hydrated onto the column by the API from the parent row's mobileOrder." }
35
+ },
36
+ additionalProperties: true
37
+ },
38
+ allowsChildren: true
39
+ },
40
+ box: {
41
+ elementType: "box",
42
+ label: "Box",
43
+ category: "layout",
44
+ schemaVersion: 1,
45
+ defaults: { background: "var(--light)", text: "var(--dark)" },
46
+ answersSchema: {
47
+ type: "object",
48
+ properties: {
49
+ rounded: { type: "string", enum: ["true", "false"], description: "Checkbox boolean stored as the string \"true\"/\"false\"." },
50
+ translucent: { type: "string", enum: ["true", "false"], description: "Checkbox boolean stored as the string \"true\"/\"false\"." },
51
+ background: { type: "string", description: "Color hex, CSS var token (var(--light)), or image URL (any value containing \"/\" is treated as a background image)." },
52
+ textColor: { type: "string", description: "Color hex or CSS var token; only var(...) values are applied as CSS color by the renderer." },
53
+ headingColor: { type: "string", description: "CSS var token; mapped to a headings* CSS class by the renderer." },
54
+ linkColor: { type: "string", description: "CSS var token; mapped to a links* CSS class by the renderer." },
55
+ text: { type: "string", description: "Legacy key written by the new-box drop payload; never read by BoxElement. Superseded by textColor." }
56
+ },
57
+ additionalProperties: true
58
+ },
59
+ allowsChildren: true
60
+ },
61
+ carousel: {
62
+ elementType: "carousel",
63
+ label: "Carousel",
64
+ category: "layout",
65
+ schemaVersion: 1,
66
+ defaults: { height: "250", animationOptions: "fade", interval: "4" },
67
+ answersSchema: {
68
+ type: "object",
69
+ properties: {
70
+ height: { type: ["string", "number"], description: "Height in px. HTML number input stores a string; renderer parseInts it (fallback 250)." },
71
+ slides: { type: ["string", "number"], description: "Slide count. Editor stores a string; the API parseInts it and auto-creates/deletes slide child elements to match." },
72
+ animationOptions: { type: "string", enum: ["fade", "slide"] },
73
+ autoplay: { type: "string", enum: ["true", "false"], description: "Checkbox boolean stored as the string \"true\"/\"false\"." },
74
+ interval: { type: ["string", "number"], description: "Seconds between auto-advances. Number input stores a string; renderer parseInts (fallback 4)." },
75
+ slide: { type: "number", description: "Slide index. Present only on the auto-created slide CHILD elements, which the API saves with elementType \"carousel\" and parentId of the real carousel." }
76
+ },
77
+ additionalProperties: true
78
+ },
79
+ allowsChildren: true
80
+ },
81
+ whiteSpace: {
82
+ elementType: "whiteSpace",
83
+ label: "White Space",
84
+ category: "layout",
85
+ schemaVersion: 1,
86
+ defaults: { height: "25" },
87
+ answersSchema: {
88
+ type: "object",
89
+ properties: { height: { type: ["string", "number"], description: "Spacer height in px. Number input stores a string; renderer parseInts (fallback 25)." } },
90
+ additionalProperties: true
91
+ }
92
+ },
93
+ block: {
94
+ elementType: "block",
95
+ label: "Block",
96
+ category: "layout",
97
+ schemaVersion: 1,
98
+ defaults: {},
99
+ answersSchema: {
100
+ type: "object",
101
+ properties: { targetBlockId: { type: "string", description: "Id of the reusable elementBlock to inline. Resolved server-side by TreeHelper." } },
102
+ additionalProperties: true
103
+ }
104
+ },
105
+ text: {
106
+ elementType: "text",
107
+ label: "Text",
108
+ category: "content",
109
+ schemaVersion: 1,
110
+ defaults: { text: "", textAlignment: "left" },
111
+ answersSchema: {
112
+ type: "object",
113
+ properties: {
114
+ text: { type: "string", description: "HTML markup produced by the rich-text editor; rendered with dangerouslySetInnerHTML." },
115
+ textAlignment: { type: "string", enum: ["left", "center", "right"] }
116
+ },
117
+ additionalProperties: true
118
+ }
119
+ },
120
+ textWithPhoto: {
121
+ elementType: "textWithPhoto",
122
+ label: "Text with Photo",
123
+ category: "content",
124
+ schemaVersion: 1,
125
+ defaults: { text: "", textAlignment: "left", photoPosition: "left" },
126
+ answersSchema: {
127
+ type: "object",
128
+ properties: {
129
+ text: { type: "string", description: "HTML markup from the rich-text editor." },
130
+ textAlignment: { type: "string", enum: ["left", "center", "right"] },
131
+ photo: { type: "string", description: "Image URL selected via the gallery modal." },
132
+ photoAlt: { type: "string" },
133
+ photoPosition: { type: "string", enum: ["left", "right", "top", "bottom"] }
134
+ },
135
+ additionalProperties: true
136
+ }
137
+ },
138
+ card: {
139
+ elementType: "card",
140
+ label: "Card",
141
+ category: "content",
142
+ schemaVersion: 1,
143
+ defaults: { text: "", textAlignment: "left", titleAlignment: "center" },
144
+ answersSchema: {
145
+ type: "object",
146
+ properties: {
147
+ photo: { type: "string", description: "Image URL selected via the gallery modal." },
148
+ photoAlt: { type: "string" },
149
+ url: { type: "string", description: "Optional link applied to both the photo and the title." },
150
+ title: { type: "string" },
151
+ titleAlignment: { type: "string", enum: ["left", "center", "right"], description: "Renderer falls back to \"center\" when unset; defaults match that for consistency with legacy cards." },
152
+ text: { type: "string", description: "HTML markup from the rich-text editor." },
153
+ textAlignment: { type: "string", enum: ["left", "center", "right"] }
154
+ },
155
+ additionalProperties: true
156
+ }
157
+ },
158
+ faq: {
159
+ elementType: "faq",
160
+ label: "Expandable",
161
+ category: "content",
162
+ schemaVersion: 1,
163
+ defaults: { headingType: "h6", title: "", description: "", iconColor: "#03a9f4" },
164
+ answersSchema: {
165
+ type: "object",
166
+ properties: {
167
+ headingType: { type: "string", enum: ["h6", "link"], description: "\"link\" renders the centered-link variant; anything else (including unset) renders the h6 heading variant." },
168
+ title: { type: "string" },
169
+ description: { type: "string", description: "HTML markup from the rich-text editor; rendered inside the expanded accordion." },
170
+ iconColor: { type: "string", description: "Color hex for the expand arrow icon (default #03a9f4)." }
171
+ },
172
+ additionalProperties: true
173
+ }
174
+ },
175
+ table: {
176
+ elementType: "table",
177
+ label: "Table",
178
+ category: "content",
179
+ schemaVersion: 1,
180
+ defaults: { contents: [["", ""], ["", ""], ["", ""], ["", ""]], head: false, markdown: false, size: "medium" },
181
+ answersSchema: {
182
+ type: "object",
183
+ properties: {
184
+ contents: { type: "array", description: "Native 2D array (string[][]) of cell contents stored directly inside answers. Cells hold plain text, or HTML when markdown is true." },
185
+ head: { type: "boolean", description: "Native boolean. First contents row becomes the table head." },
186
+ markdown: { type: "boolean", description: "Native boolean. When true, cells are rendered with dangerouslySetInnerHTML." },
187
+ size: { type: "string", enum: ["medium", "small"], description: "MUI Table size." }
188
+ },
189
+ additionalProperties: true
190
+ }
191
+ },
192
+ buttonLink: {
193
+ elementType: "buttonLink",
194
+ label: "Button Link",
195
+ category: "content",
196
+ schemaVersion: 1,
197
+ defaults: { buttonLinkVariant: "contained", buttonLinkColor: "primary" },
198
+ answersSchema: {
199
+ type: "object",
200
+ properties: {
201
+ buttonLinkText: { type: "string" },
202
+ buttonLinkUrl: { type: "string" },
203
+ buttonLinkVariant: { type: "string", enum: ["contained", "outlined"] },
204
+ buttonLinkColor: { type: "string", enum: ["primary", "secondary", "error", "warning", "info", "success"] },
205
+ external: { type: "string", enum: ["true", "false"], description: "Checkbox boolean stored as the string \"true\"/\"false\"; \"true\" opens in a new tab." },
206
+ fullWidth: { type: "string", enum: ["true", "false"], description: "Checkbox boolean stored as the string \"true\"/\"false\"." }
207
+ },
208
+ additionalProperties: true
209
+ }
210
+ },
211
+ image: {
212
+ elementType: "image",
213
+ label: "Image",
214
+ category: "media",
215
+ schemaVersion: 1,
216
+ defaults: { imageAlign: "left" },
217
+ answersSchema: {
218
+ type: "object",
219
+ properties: {
220
+ photo: { type: "string", description: "Image URL selected via the gallery modal." },
221
+ photoAlt: { type: "string" },
222
+ url: { type: "string", description: "Optional link URL; setting it disables the lightbox." },
223
+ external: { type: "string", enum: ["true", "false"], description: "Checkbox boolean stored as the string \"true\"/\"false\"; \"true\" opens the link in a new tab." },
224
+ noResize: { type: "string", enum: ["true", "false"], description: "Checkbox boolean stored as the string \"true\"/\"false\"; adds the no-resize CSS class." },
225
+ enableLightbox: { type: "string", enum: ["true", "false"], description: "Checkbox boolean stored as the string \"true\"/\"false\"; ignored when url is set." },
226
+ imageAlign: { type: "string", enum: ["left", "center", "right"] }
227
+ },
228
+ additionalProperties: true
229
+ }
230
+ },
231
+ video: {
232
+ elementType: "video",
233
+ label: "Video",
234
+ category: "media",
235
+ schemaVersion: 1,
236
+ defaults: { videoType: "youtube" },
237
+ answersSchema: {
238
+ type: "object",
239
+ properties: {
240
+ videoType: { type: "string", enum: ["youtube", "vimeo"] },
241
+ videoId: { type: "string", description: "Bare provider video id (not the full URL), embedded into the provider's iframe src." }
242
+ },
243
+ additionalProperties: true
244
+ }
245
+ },
246
+ map: {
247
+ elementType: "map",
248
+ label: "Location",
249
+ category: "media",
250
+ schemaVersion: 1,
251
+ defaults: { mapZoom: 15 },
252
+ answersSchema: {
253
+ type: "object",
254
+ properties: {
255
+ mapAddress: { type: "string", description: "Address geocoded via the Google Maps Geocoding API to center the map." },
256
+ mapLabel: { type: "string", description: "Marker label text; marker only shows when set." },
257
+ mapZoom: { type: ["number", "string"], description: "Zoom level 8-20. The MUI Slider stores a native number (fallback 15); permissive for legacy string values." }
258
+ },
259
+ additionalProperties: true
260
+ }
261
+ },
262
+ logo: {
263
+ elementType: "logo",
264
+ label: "Logo",
265
+ category: "church",
266
+ schemaVersion: 1,
267
+ defaults: {},
268
+ answersSchema: {
269
+ type: "object",
270
+ properties: {
271
+ url: { type: "string", description: "Optional link the logo points at. The image itself always comes from church appearance settings." },
272
+ photoAlt: { type: "string", description: "Read by the renderer as the img alt text but never written by the editor." }
273
+ },
274
+ additionalProperties: true
275
+ }
276
+ },
277
+ sermons: {
278
+ elementType: "sermons",
279
+ label: "Sermons",
280
+ category: "church",
281
+ schemaVersion: 1,
282
+ defaults: {},
283
+ answersSchema: { type: "object", properties: {}, additionalProperties: true }
284
+ },
285
+ stream: {
286
+ elementType: "stream",
287
+ label: "Stream",
288
+ category: "church",
289
+ schemaVersion: 1,
290
+ defaults: { mode: "video", offlineContent: "countdown" },
291
+ answersSchema: {
292
+ type: "object",
293
+ properties: {
294
+ mode: { type: "string", enum: ["video", "interaction"], description: "Anything other than \"video\" (including unset) enables chat/interaction alongside the stream." },
295
+ offlineContent: { type: "string", enum: ["countdown", "hide", "block"], description: "What to show while offline: next-service countdown (default), nothing, or a reusable block." },
296
+ targetBlockId: { type: "string", description: "Id of the elementBlock to show while offline; only relevant when offlineContent is \"block\"." }
297
+ },
298
+ additionalProperties: true
299
+ }
300
+ },
301
+ donation: {
302
+ elementType: "donation",
303
+ label: "Donation",
304
+ category: "church",
305
+ schemaVersion: 1,
306
+ defaults: { allowSingleGift: true, allowRecurring: true, showFundSelector: true, allowedFundIds: [], defaultFundId: "" },
307
+ answersSchema: {
308
+ type: "object",
309
+ properties: {
310
+ allowSingleGift: { type: "boolean", description: "Native boolean. Unset is treated as true (only the literal false disables)." },
311
+ allowRecurring: { type: "boolean", description: "Native boolean; unset treated as true." },
312
+ showFundSelector: { type: "boolean", description: "Native boolean; unset treated as true." },
313
+ allowedFundIds: { type: "array", description: "Native array of fund id strings; empty/missing means all funds are allowed." },
314
+ defaultFundId: { type: "string", description: "Fund id pre-selected in the donation form." }
315
+ },
316
+ additionalProperties: true
317
+ }
318
+ },
319
+ donateLink: {
320
+ elementType: "donateLink",
321
+ label: "Donate Link",
322
+ category: "church",
323
+ schemaVersion: 1,
324
+ defaults: {},
325
+ answersSchema: {
326
+ type: "object",
327
+ properties: {
328
+ url: { type: "string", description: "Donation page URL; renderer appends amount/fundId query params." },
329
+ text: { type: "string", description: "Heading text; renderer upper-cases it and falls back to \"DONATE NOW\"." },
330
+ fundId: { type: "string", description: "Fund id appended to each button's URL." },
331
+ amounts: { type: "string", description: "JSON-stringified array of suggested amounts, e.g. \"[25,50,100]\" (max 5 entries). Double-encoded inside answersJSON." }
332
+ },
333
+ additionalProperties: true
334
+ }
335
+ },
336
+ form: {
337
+ elementType: "form",
338
+ label: "Form",
339
+ category: "church",
340
+ schemaVersion: 1,
341
+ defaults: {},
342
+ answersSchema: {
343
+ type: "object",
344
+ properties: { formId: { type: "string", description: "Id of a MembershipApi standalone form (contentType \"form\")." } },
345
+ additionalProperties: true
346
+ }
347
+ },
348
+ calendar: {
349
+ elementType: "calendar",
350
+ label: "Calendar",
351
+ category: "church",
352
+ schemaVersion: 1,
353
+ defaults: {},
354
+ answersSchema: {
355
+ type: "object",
356
+ properties: {
357
+ calendarType: { type: "string", enum: ["group", "curated"] },
358
+ calendarId: { type: "string", description: "Group id (calendarType \"group\") or curated calendar id (calendarType \"curated\")." }
359
+ },
360
+ additionalProperties: true
361
+ }
362
+ },
363
+ groupList: {
364
+ elementType: "groupList",
365
+ label: "Group List",
366
+ category: "church",
367
+ schemaVersion: 1,
368
+ defaults: {},
369
+ answersSchema: {
370
+ type: "object",
371
+ properties: { label: { type: "string", description: "Optional group label filter; empty shows all public groups." } },
372
+ additionalProperties: true
373
+ }
374
+ },
375
+ groups: {
376
+ elementType: "groups",
377
+ label: "Groups Browser",
378
+ category: "church",
379
+ schemaVersion: 1,
380
+ defaults: { showSearch: "true", showCategory: "true" },
381
+ answersSchema: {
382
+ type: "object",
383
+ properties: {
384
+ title: { type: "string", description: "Optional heading shown above the filter row." },
385
+ category: { type: "string", description: "Pre-filter to a single category; hides the category dropdown when set." },
386
+ label: { type: "string", description: "Pre-filter to a single group label." },
387
+ showSearch: { type: ["string", "boolean"], description: "Editor writes the strings \"true\"/\"false\" but readers compare against native booleans; permissive union for production data." },
388
+ showCategory: { type: ["string", "boolean"], description: "Same string-written / boolean-read history as showSearch." }
389
+ },
390
+ additionalProperties: true
391
+ }
392
+ },
393
+ rawHTML: {
394
+ elementType: "rawHTML",
395
+ label: "HTML",
396
+ category: "advanced",
397
+ schemaVersion: 1,
398
+ defaults: { rawHTML: "", javascript: "" },
399
+ answersSchema: {
400
+ type: "object",
401
+ properties: {
402
+ rawHTML: { type: "string", description: "Raw HTML injected via dangerouslySetInnerHTML." },
403
+ javascript: { type: "string", description: "Inline JS body (no script tag) appended to document.body; values starting with \"<\" are skipped by the renderer." }
404
+ },
405
+ additionalProperties: true
406
+ }
407
+ },
408
+ iframe: {
409
+ elementType: "iframe",
410
+ label: "Embedded Page",
411
+ category: "advanced",
412
+ schemaVersion: 1,
413
+ defaults: { iframeHeight: "1000" },
414
+ answersSchema: {
415
+ type: "object",
416
+ properties: {
417
+ iframeSrc: { type: "string", description: "URL loaded into the iframe." },
418
+ iframeHeight: { type: ["string", "number"], description: "Height in px; editor stores a string, renderer falls back to \"1000\"." }
419
+ },
420
+ additionalProperties: true
421
+ }
422
+ }
423
+ };
424
+ // Type-level validation only: enum and unknown-key violations are tolerated because
425
+ // production data predates this contract. Unknown element types pass.
426
+ export const validateElementAnswers = (elementType, answers) => {
427
+ const definition = ElementTypes[elementType];
428
+ if (!definition || answers === null || answers === undefined)
429
+ return [];
430
+ if (typeof answers !== "object" || Array.isArray(answers))
431
+ return ["answers must be an object for elementType '" + elementType + "'"];
432
+ const errors = [];
433
+ Object.entries(answers).forEach(([key, value]) => {
434
+ const prop = definition.answersSchema.properties[key];
435
+ if (!prop || value === null || value === undefined)
436
+ return;
437
+ const allowed = Array.isArray(prop.type) ? prop.type : [prop.type];
438
+ const actual = Array.isArray(value) ? "array" : typeof value;
439
+ if (!allowed.includes(actual))
440
+ errors.push("answers." + key + " on '" + elementType + "' should be " + allowed.join("|") + " but got " + actual);
441
+ });
442
+ return errors;
443
+ };
444
+ //# sourceMappingURL=ElementTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ElementTypes.js","sourceRoot":"","sources":["../src/ElementTypes.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAC1F,uFAAuF;AACvF,uFAAuF;AACvF,iFAAiF;AAkBjF,MAAM,CAAC,MAAM,YAAY,GAA0C;IACjE,GAAG,EAAE;QACH,WAAW,EAAE,KAAK;QAClB,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,QAAQ;QAClB,aAAa,EAAE,CAAC;QAChB,QAAQ,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;QAC5B,aAAa,EAAE;YACb,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,+IAA+I,EAAE;gBACzL,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,mMAAmM,EAAE;gBAC5P,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,yHAAyH,EAAE;aACnL;YACD,oBAAoB,EAAE,IAAI;SAC3B;QACD,cAAc,EAAE,IAAI;KACrB;IACD,MAAM,EAAE;QACN,WAAW,EAAE,QAAQ;QACrB,KAAK,EAAE,QAAQ;QACf,QAAQ,EAAE,QAAQ;QAClB,aAAa,EAAE,CAAC;QAChB,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;QACrB,aAAa,EAAE;YACb,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,WAAW,EAAE,0HAA0H,EAAE;gBAC7K,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,WAAW,EAAE,gGAAgG,EAAE;gBACzJ,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,WAAW,EAAE,2FAA2F,EAAE;aACtJ;YACD,oBAAoB,EAAE,IAAI;SAC3B;QACD,cAAc,EAAE,IAAI;KACrB;IACD,GAAG,EAAE;QACH,WAAW,EAAE,KAAK;QAClB,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,QAAQ;QAClB,aAAa,EAAE,CAAC;QAChB,QAAQ,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE;QAC7D,aAAa,EAAE;YACb,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,2DAA2D,EAAE;gBAC9H,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,2DAA2D,EAAE;gBAClI,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sHAAsH,EAAE;gBACnK,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4FAA4F,EAAE;gBACxI,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iEAAiE,EAAE;gBAChH,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8DAA8D,EAAE;gBAC1G,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oGAAoG,EAAE;aAC5I;YACD,oBAAoB,EAAE,IAAI;SAC3B;QACD,cAAc,EAAE,IAAI;KACrB;IACD,QAAQ,EAAE;QACR,WAAW,EAAE,UAAU;QACvB,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE,QAAQ;QAClB,aAAa,EAAE,CAAC;QAChB,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE;QACpE,aAAa,EAAE;YACb,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,WAAW,EAAE,wFAAwF,EAAE;gBAC7I,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,WAAW,EAAE,mHAAmH,EAAE;gBACxK,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;gBAC7D,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,2DAA2D,EAAE;gBAC/H,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,WAAW,EAAE,+FAA+F,EAAE;gBACtJ,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0JAA0J,EAAE;aACnM;YACD,oBAAoB,EAAE,IAAI;SAC3B;QACD,cAAc,EAAE,IAAI;KACrB;IACD,UAAU,EAAE;QACV,WAAW,EAAE,YAAY;QACzB,KAAK,EAAE,aAAa;QACpB,QAAQ,EAAE,QAAQ;QAClB,aAAa,EAAE,CAAC;QAChB,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;QAC1B,aAAa,EAAE;YACb,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,WAAW,EAAE,sFAAsF,EAAE,EAAE;YAC3J,oBAAoB,EAAE,IAAI;SAC3B;KACF;IACD,KAAK,EAAE;QACL,WAAW,EAAE,OAAO;QACpB,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE,QAAQ;QAClB,aAAa,EAAE,CAAC;QAChB,QAAQ,EAAE,EAAE;QACZ,aAAa,EAAE;YACb,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gFAAgF,EAAE,EAAE;YAChJ,oBAAoB,EAAE,IAAI;SAC3B;KACF;IACD,IAAI,EAAE;QACJ,WAAW,EAAE,MAAM;QACnB,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,SAAS;QACnB,aAAa,EAAE,CAAC;QAChB,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE;QAC7C,aAAa,EAAE;YACb,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sFAAsF,EAAE;gBAC7H,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE;aACrE;YACD,oBAAoB,EAAE,IAAI;SAC3B;KACF;IACD,aAAa,EAAE;QACb,WAAW,EAAE,eAAe;QAC5B,KAAK,EAAE,iBAAiB;QACxB,QAAQ,EAAE,SAAS;QACnB,aAAa,EAAE,CAAC;QAChB,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE;QACpE,aAAa,EAAE;YACb,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wCAAwC,EAAE;gBAC/E,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE;gBACpE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2CAA2C,EAAE;gBACnF,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC5B,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE;aAC5E;YACD,oBAAoB,EAAE,IAAI;SAC3B;KACF;IACD,IAAI,EAAE;QACJ,WAAW,EAAE,MAAM;QACnB,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,SAAS;QACnB,aAAa,EAAE,CAAC;QAChB,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE;QACvE,aAAa,EAAE;YACb,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2CAA2C,EAAE;gBACnF,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC5B,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wDAAwD,EAAE;gBAC9F,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACzB,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,sGAAsG,EAAE;gBAC1L,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wCAAwC,EAAE;gBAC/E,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE;aACrE;YACD,oBAAoB,EAAE,IAAI;SAC3B;KACF;IACD,GAAG,EAAE;QACH,WAAW,EAAE,KAAK;QAClB,KAAK,EAAE,YAAY;QACnB,QAAQ,EAAE,SAAS;QACnB,aAAa,EAAE,CAAC;QAChB,QAAQ,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE;QACjF,aAAa,EAAE;YACb,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,6GAA6G,EAAE;gBACjL,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACzB,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gFAAgF,EAAE;gBAC9H,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wDAAwD,EAAE;aACrG;YACD,oBAAoB,EAAE,IAAI;SAC3B;KACF;IACD,KAAK,EAAE;QACL,WAAW,EAAE,OAAO;QACpB,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE,SAAS;QACnB,aAAa,EAAE,CAAC;QAChB,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC9G,aAAa,EAAE;YACb,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,qIAAqI,EAAE;gBAC/K,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,4DAA4D,EAAE;gBACpG,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,6EAA6E,EAAE;gBACzH,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,iBAAiB,EAAE;aACpF;YACD,oBAAoB,EAAE,IAAI;SAC3B;KACF;IACD,UAAU,EAAE;QACV,WAAW,EAAE,YAAY;QACzB,KAAK,EAAE,aAAa;QACpB,QAAQ,EAAE,SAAS;QACnB,aAAa,EAAE,CAAC;QAChB,QAAQ,EAAE,EAAE,iBAAiB,EAAE,WAAW,EAAE,eAAe,EAAE,SAAS,EAAE;QACxE,aAAa,EAAE;YACb,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAClC,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACjC,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE;gBACtE,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE;gBAC1G,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,wFAAwF,EAAE;gBAC5J,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,2DAA2D,EAAE;aACjI;YACD,oBAAoB,EAAE,IAAI;SAC3B;KACF;IACD,KAAK,EAAE;QACL,WAAW,EAAE,OAAO;QACpB,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE,OAAO;QACjB,aAAa,EAAE,CAAC;QAChB,QAAQ,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE;QAChC,aAAa,EAAE;YACb,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2CAA2C,EAAE;gBACnF,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC5B,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sDAAsD,EAAE;gBAC5F,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,iGAAiG,EAAE;gBACrK,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,yFAAyF,EAAE;gBAC7J,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,oFAAoF,EAAE;gBAC9J,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE;aAClE;YACD,oBAAoB,EAAE,IAAI;SAC3B;KACF;IACD,KAAK,EAAE;QACL,WAAW,EAAE,OAAO;QACpB,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE,OAAO;QACjB,aAAa,EAAE,CAAC;QAChB,QAAQ,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE;QAClC,aAAa,EAAE;YACb,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE;gBACzD,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qFAAqF,EAAE;aAChI;YACD,oBAAoB,EAAE,IAAI;SAC3B;KACF;IACD,GAAG,EAAE;QACH,WAAW,EAAE,KAAK;QAClB,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE,OAAO;QACjB,aAAa,EAAE,CAAC;QAChB,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QACzB,aAAa,EAAE;YACb,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uEAAuE,EAAE;gBACpH,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gDAAgD,EAAE;gBAC3F,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,WAAW,EAAE,4GAA4G,EAAE;aACnK;YACD,oBAAoB,EAAE,IAAI;SAC3B;KACF;IACD,IAAI,EAAE;QACJ,WAAW,EAAE,MAAM;QACnB,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,QAAQ;QAClB,aAAa,EAAE,CAAC;QAChB,QAAQ,EAAE,EAAE;QACZ,aAAa,EAAE;YACb,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kGAAkG,EAAE;gBACxI,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2EAA2E,EAAE;aACvH;YACD,oBAAoB,EAAE,IAAI;SAC3B;KACF;IACD,OAAO,EAAE;QACP,WAAW,EAAE,SAAS;QACtB,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,QAAQ;QAClB,aAAa,EAAE,CAAC;QAChB,QAAQ,EAAE,EAAE;QACZ,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE;KAC9E;IACD,MAAM,EAAE;QACN,WAAW,EAAE,QAAQ;QACrB,KAAK,EAAE,QAAQ;QACf,QAAQ,EAAE,QAAQ;QAClB,aAAa,EAAE,CAAC;QAChB,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE;QACxD,aAAa,EAAE;YACb,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,WAAW,EAAE,gGAAgG,EAAE;gBACvK,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,6FAA6F,EAAE;gBACpL,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,+FAA+F,EAAE;aAChJ;YACD,oBAAoB,EAAE,IAAI;SAC3B;KACF;IACD,QAAQ,EAAE;QACR,WAAW,EAAE,UAAU;QACvB,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE,QAAQ;QAClB,aAAa,EAAE,CAAC;QAChB,QAAQ,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;QACxH,aAAa,EAAE;YACb,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,eAAe,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,6EAA6E,EAAE;gBAChI,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,wCAAwC,EAAE;gBAC1F,gBAAgB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,wCAAwC,EAAE;gBAC5F,cAAc,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,6EAA6E,EAAE;gBAC7H,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4CAA4C,EAAE;aAC7F;YACD,oBAAoB,EAAE,IAAI;SAC3B;KACF;IACD,UAAU,EAAE;QACV,WAAW,EAAE,YAAY;QACzB,KAAK,EAAE,aAAa;QACpB,QAAQ,EAAE,QAAQ;QAClB,aAAa,EAAE,CAAC;QAChB,QAAQ,EAAE,EAAE;QACZ,aAAa,EAAE;YACb,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iEAAiE,EAAE;gBACvG,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yEAAyE,EAAE;gBAChH,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wCAAwC,EAAE;gBACjF,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uHAAuH,EAAE;aAClK;YACD,oBAAoB,EAAE,IAAI;SAC3B;KACF;IACD,IAAI,EAAE;QACJ,WAAW,EAAE,MAAM;QACnB,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,QAAQ;QAClB,aAAa,EAAE,CAAC;QAChB,QAAQ,EAAE,EAAE;QACZ,aAAa,EAAE;YACb,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,+DAA+D,EAAE,EAAE;YACxH,oBAAoB,EAAE,IAAI;SAC3B;KACF;IACD,QAAQ,EAAE;QACR,WAAW,EAAE,UAAU;QACvB,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE,QAAQ;QAClB,aAAa,EAAE,CAAC;QAChB,QAAQ,EAAE,EAAE;QACZ,aAAa,EAAE;YACb,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE;gBAC5D,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sFAAsF,EAAE;aACpI;YACD,oBAAoB,EAAE,IAAI;SAC3B;KACF;IACD,SAAS,EAAE;QACT,WAAW,EAAE,WAAW;QACxB,KAAK,EAAE,YAAY;QACnB,QAAQ,EAAE,QAAQ;QAClB,aAAa,EAAE,CAAC;QAChB,QAAQ,EAAE,EAAE;QACZ,aAAa,EAAE;YACb,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6DAA6D,EAAE,EAAE;YACrH,oBAAoB,EAAE,IAAI;SAC3B;KACF;IACD,MAAM,EAAE;QACN,WAAW,EAAE,QAAQ;QACrB,KAAK,EAAE,gBAAgB;QACvB,QAAQ,EAAE,QAAQ;QAClB,aAAa,EAAE,CAAC;QAChB,QAAQ,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE;QACtD,aAAa,EAAE;YACb,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8CAA8C,EAAE;gBACtF,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wEAAwE,EAAE;gBACnH,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qCAAqC,EAAE;gBAC7E,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,WAAW,EAAE,iIAAiI,EAAE;gBAC3L,YAAY,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,WAAW,EAAE,2DAA2D,EAAE;aACxH;YACD,oBAAoB,EAAE,IAAI;SAC3B;KACF;IACD,OAAO,EAAE;QACP,WAAW,EAAE,SAAS;QACtB,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,UAAU;QACpB,aAAa,EAAE,CAAC;QAChB,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;QACzC,aAAa,EAAE;YACb,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gDAAgD,EAAE;gBAC1F,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mHAAmH,EAAE;aACjK;YACD,oBAAoB,EAAE,IAAI;SAC3B;KACF;IACD,MAAM,EAAE;QACN,WAAW,EAAE,QAAQ;QACrB,KAAK,EAAE,eAAe;QACtB,QAAQ,EAAE,UAAU;QACpB,aAAa,EAAE,CAAC;QAChB,QAAQ,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE;QAClC,aAAa,EAAE;YACb,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6BAA6B,EAAE;gBACzE,YAAY,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,WAAW,EAAE,wEAAwE,EAAE;aACpI;YACD,oBAAoB,EAAE,IAAI;SAC3B;KACF;CACF,CAAC;AAEF,oFAAoF;AACpF,sEAAsE;AACtE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,WAAmB,EAAE,OAAgB,EAAY,EAAE;IACxF,MAAM,UAAU,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;IAC7C,IAAI,CAAC,UAAU,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACxE,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,CAAC,6CAA6C,GAAG,WAAW,GAAG,GAAG,CAAC,CAAC;IACtI,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,CAAC,OAAO,CAAC,OAAkC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QAC1E,MAAM,IAAI,GAAG,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACtD,IAAI,CAAC,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO;QAC3D,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC;QAC7D,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,UAAU,GAAG,GAAG,GAAG,OAAO,GAAG,WAAW,GAAG,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,WAAW,GAAG,MAAM,CAAC,CAAC;IACnJ,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -14,4 +14,5 @@ export { UserHelper } from "./UserHelper.js";
14
14
  export { UniqueIdHelper } from "./UniqueIdHelper.js";
15
15
  export { PlanHelper } from "./PlanHelper.js";
16
16
  export * from "./contentProviders/index.js";
17
+ export * from "./ElementTypes.js";
17
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,cAAc,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -14,4 +14,5 @@ export { UserHelper } from "./UserHelper.js";
14
14
  export { UniqueIdHelper } from "./UniqueIdHelper.js";
15
15
  export { PlanHelper } from "./PlanHelper.js";
16
16
  export * from "./contentProviders/index.js";
17
+ export * from "./ElementTypes.js";
17
18
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,cAAc,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mBAAmB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@churchapps/helpers",
3
- "version": "1.6.1",
3
+ "version": "1.7.1",
4
4
  "type": "module",
5
5
  "description": "Library of helper functions not specific to any one ChurchApps project or framework.",
6
6
  "main": "dist/index.js",