@limitless-angular/sanity
Version:
A powerful Angular library for Sanity.io integration, featuring Portable Text rendering and optimized image loading.
1 lines • 44.8 kB
Source Map (JSON)
{"version":3,"file":"limitless-angular-sanity-portabletext.mjs","sources":["../../../../packages/sanity/portabletext/src/utils.ts","../../../../packages/sanity/portabletext/src/components/block.component.ts","../../../../packages/sanity/portabletext/src/components/text.component.ts","../../../../packages/sanity/portabletext/src/tokens.ts","../../../../packages/sanity/portabletext/src/warnings.ts","../../../../packages/sanity/portabletext/src/components/span.component.ts","../../../../packages/sanity/portabletext/src/components/list.component.ts","../../../../packages/sanity/portabletext/src/components/list-item.component.ts","../../../../packages/sanity/portabletext/src/components/portable-text.component.ts","../../../../packages/sanity/portabletext/src/directives/portable-text-directives.ts","../../../../packages/sanity/portabletext/src/limitless-angular-sanity-portabletext.ts"],"sourcesContent":["import { PortableTextBlock } from '@portabletext/types';\nimport { Serializable, SerializedBlock } from './types';\nimport { buildMarksTree } from '@portabletext/toolkit';\n\nexport function serializeBlock(\n options: Serializable<PortableTextBlock>,\n): SerializedBlock {\n const { node, isInline } = options;\n\n const tree = buildMarksTree(node);\n const children = tree.map((child, i) => ({\n ...child,\n // TODO: check this _key generation\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _key: (child as any)._key ?? `block-${i}`,\n }));\n\n return {\n _key: node._key,\n children,\n isInline,\n node,\n };\n}\n\nexport function trackBy(\n key: string | undefined,\n index: number,\n prefix = 'node',\n) {\n return key ?? `${prefix}-${index}`;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n TemplateRef,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\nimport { PortableTextBlock } from '@portabletext/types';\nimport { TemplateContext } from '../types';\nimport { serializeBlock } from '../utils';\n\n@Component({\n selector: 'lib-block',\n imports: [NgTemplateOutlet, NgComponentOutlet],\n template: `\n <ng-template\n #blockTmpl\n let-node\n let-isInline=\"isInline\"\n let-components=\"components\"\n let-renderNode=\"renderNode\"\n >\n <ng-template #children>\n <ng-container\n *ngTemplateOutlet=\"\n blockChildren;\n context: { node, isInline, components, renderNode }\n \"\n />\n </ng-template>\n\n @if (components.block?.[node.style ?? 'normal']) {\n <ng-container\n *ngComponentOutlet=\"\n components.block?.[node.style ?? 'normal'];\n inputs: {\n childrenData: {\n template: blockChildren,\n context: { node, isInline, components, renderNode },\n },\n value: node,\n isInline,\n }\n \"\n />\n } @else {\n @switch (node.style ?? 'normal') {\n @case ('normal') {\n <p>\n <ng-container *ngTemplateOutlet=\"children\" />\n </p>\n }\n @case ('h1') {\n <h1>\n <ng-container *ngTemplateOutlet=\"children\" />\n </h1>\n }\n @case ('h2') {\n <h2>\n <ng-container *ngTemplateOutlet=\"children\" />\n </h2>\n }\n @case ('h3') {\n <h3>\n <ng-container *ngTemplateOutlet=\"children\" />\n </h3>\n }\n @case ('h4') {\n <h4>\n <ng-container *ngTemplateOutlet=\"children\" />\n </h4>\n }\n @case ('h5') {\n <h5>\n <ng-container *ngTemplateOutlet=\"children\" />\n </h5>\n }\n @case ('h6') {\n <h6>\n <ng-container *ngTemplateOutlet=\"children\" />\n </h6>\n }\n @case ('blockquote') {\n <blockquote>\n <ng-container *ngTemplateOutlet=\"children\" />\n </blockquote>\n }\n @default {\n <!-- TODO: remove class when warning msg be implemented -->\n <p [class]=\"'unknown__pt__block__' + node.style\">\n <ng-container *ngTemplateOutlet=\"children\" />\n </p>\n }\n }\n }\n </ng-template>\n\n <ng-template\n #blockChildren\n let-node=\"node\"\n let-isInline=\"isInline\"\n let-components=\"components\"\n let-renderNode=\"renderNode\"\n >\n @for (\n child of serializeBlock({ node, isInline: false }).children;\n track child._key;\n let childIndex = $index\n ) {\n <ng-container\n *ngTemplateOutlet=\"\n renderNode;\n context: {\n $implicit: child,\n index: childIndex,\n isInline: true,\n components,\n }\n \"\n />\n }\n </ng-template>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class BlockComponent {\n template =\n viewChild.required<TemplateRef<TemplateContext<PortableTextBlock>>>(\n 'blockTmpl',\n );\n protected readonly serializeBlock = serializeBlock;\n}\n","import { NgComponentOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n TemplateRef,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { ToolkitTextNode } from '@portabletext/toolkit';\n\nimport { PortableTextComponents } from '../types';\n\n@Component({\n selector: 'lib-text',\n // prettier-ignore\n template: `<ng-template #textTmpl let-node let-components=\"components\">\n @if (node.text === '\\\\n') {\n @if (components.hardBreak === undefined) {<br />}\n @else if (components.hardBreak === false) {{{ '\\\\n' }}}\n @else {<ng-container *ngComponentOutlet=\"components.hardBreak\" />}\n } @else {{{ node.text }}}\n </ng-template>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NgComponentOutlet],\n})\nexport class TextComponent {\n template = viewChild.required<\n TemplateRef<{\n $implicit: ToolkitTextNode;\n components: Partial<PortableTextComponents>;\n }>\n >('textTmpl');\n}\n","import { InjectionToken } from '@angular/core';\nimport { MissingComponentHandler } from './types';\n\nexport const MISSING_COMPONENT_HANDLER =\n new InjectionToken<MissingComponentHandler>('Missing Component Handler');\n","const getTemplate = (type: string, prop: string): string =>\n `[@limitless-angular/sanity/portabletext] Unknown ${type}, specify a component for it in the \\`components.${prop}\\` prop`;\n\nexport const unknownTypeWarning = (typeName: string): string =>\n getTemplate(`block type \"${typeName}\"`, 'types');\n\nexport const unknownMarkWarning = (markType: string): string =>\n getTemplate(`mark type \"${markType}\"`, 'marks');\n\nexport const unknownBlockStyleWarning = (blockStyle: string): string =>\n getTemplate(`block style \"${blockStyle}\"`, 'block');\n\nexport const unknownListStyleWarning = (listStyle: string): string =>\n getTemplate(`list style \"${listStyle}\"`, 'list');\n\nexport const unknownListItemStyleWarning = (listStyle: string): string =>\n getTemplate(`list item style \"${listStyle}\"`, 'listItem');\n\nexport function printWarning(message: string): void {\n console.warn(message);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n inject,\n TemplateRef,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\n\nimport {\n spanToPlainText,\n ToolkitNestedPortableTextSpan,\n} from '@portabletext/toolkit';\n\nimport { TemplateContext } from '../types';\nimport { trackBy } from '../utils';\nimport { MISSING_COMPONENT_HANDLER } from '../tokens';\nimport { unknownMarkWarning } from '../warnings';\n\n@Component({\n selector: 'lib-span',\n imports: [NgTemplateOutlet, NgComponentOutlet],\n template: `\n <ng-template\n #spanTmpl\n let-node\n let-components=\"components\"\n let-renderNode=\"renderNode\"\n >\n <ng-template #children>\n <ng-container\n *ngTemplateOutlet=\"\n nodeChildren;\n context: { $implicit: node, components, renderNode }\n \"\n />\n </ng-template>\n\n @if (components.marks?.[node.markType]) {\n <ng-container\n *ngComponentOutlet=\"\n components.marks?.[node.markType];\n inputs: {\n childrenData: {\n template: nodeChildren,\n context: { $implicit: node, components, renderNode },\n },\n text: spanToPlainText(node),\n value: node.markDef,\n markKey: node.markKey,\n markType: node.markType,\n }\n \"\n />\n } @else {\n @switch (node.markType) {\n @case ('strong') {\n <strong><ng-container *ngTemplateOutlet=\"children\" /></strong>\n }\n @case ('em') {\n <em><ng-container *ngTemplateOutlet=\"children\" /></em>\n }\n @case ('code') {\n <code><ng-container *ngTemplateOutlet=\"children\" /></code>\n }\n @case ('underline') {\n <span style=\"text-decoration: underline\"\n ><ng-container *ngTemplateOutlet=\"children\"\n /></span>\n }\n @case ('strike-through') {\n <del><ng-container *ngTemplateOutlet=\"children\" /></del>\n }\n @case ('link') {\n <a [href]=\"node.markDef?.href\"\n ><ng-container *ngTemplateOutlet=\"children\"\n /></a>\n }\n @default {\n {{ handleMissingComponent(node.markType)\n }}<span [class]=\"'unknown__pt__mark__' + node.markType\"\n ><ng-container *ngTemplateOutlet=\"children\"\n /></span>\n }\n }\n }\n </ng-template>\n\n <ng-template\n #nodeChildren\n let-node\n let-components=\"components\"\n let-renderNode=\"renderNode\"\n >\n @if (!node.children) {\n <ng-container\n *ngTemplateOutlet=\"\n renderNode;\n context: { $implicit: node, isInline: true, components }\n \"\n />\n } @else {\n @for (\n child of node.children;\n track trackBy(child._key, index);\n let index = $index\n ) {\n <ng-container\n *ngTemplateOutlet=\"\n renderNode;\n context: { $implicit: child, isInline: true, components }\n \"\n />\n }\n }\n </ng-template>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class SpanComponent {\n template =\n viewChild.required<\n TemplateRef<TemplateContext<ToolkitNestedPortableTextSpan>>\n >('spanTmpl');\n\n #missingHandler = inject(MISSING_COMPONENT_HANDLER);\n\n handleMissingComponent(markType: string) {\n this.#missingHandler(unknownMarkWarning(markType), {\n type: markType,\n nodeType: 'mark',\n });\n }\n\n protected readonly spanToPlainText = spanToPlainText;\n protected readonly trackBy = trackBy;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n inject,\n TemplateRef,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\n\nimport { MISSING_COMPONENT_HANDLER } from '../tokens';\nimport { TemplateContext, PortableTextListBlock } from '../types';\nimport { trackBy } from '../utils';\nimport { unknownListStyleWarning } from '../warnings';\n\n@Component({\n selector: 'lib-list',\n imports: [NgTemplateOutlet, NgComponentOutlet],\n template: `\n <ng-template\n #listTmpl\n let-node\n let-components=\"components\"\n let-renderNode=\"renderNode\"\n >\n <ng-template #children>\n <ng-container\n *ngTemplateOutlet=\"\n listChildren;\n context: { node, components, renderNode }\n \"\n />\n </ng-template>\n @if (components.list?.[node.listItem]) {\n <ng-container\n *ngComponentOutlet=\"\n components.list?.[node.listItem];\n inputs: {\n childrenData: {\n template: listChildren,\n context: { node, components, renderNode },\n },\n value: node,\n isInline: false,\n }\n \"\n />\n } @else {\n @switch (node.listItem) {\n @case ('bullet') {\n <ul>\n <ng-container *ngTemplateOutlet=\"children\" />\n </ul>\n }\n @case ('number') {\n <ol>\n <ng-container *ngTemplateOutlet=\"children\" />\n </ol>\n }\n @default {\n <ul>\n <ng-container *ngTemplateOutlet=\"children\" />{{\n handleMissingComponent(node)\n }}\n </ul>\n }\n }\n }\n </ng-template>\n\n <ng-template\n #listChildren\n let-node=\"node\"\n let-components=\"components\"\n let-renderNode=\"renderNode\"\n >\n @for (\n child of node.children;\n track trackBy(child._key, index, 'li');\n let index = $index\n ) {\n <ng-container\n *ngTemplateOutlet=\"\n renderNode;\n context: {\n $implicit: getChildNode(child, index),\n index,\n isInline: false,\n components,\n }\n \"\n />\n }\n </ng-template>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class ListComponent {\n template =\n viewChild.required<TemplateRef<TemplateContext<PortableTextListBlock>>>(\n 'listTmpl',\n );\n\n missingHandler = inject(MISSING_COMPONENT_HANDLER);\n\n handleMissingComponent(node: PortableTextListBlock) {\n const style = node.listItem || 'bullet';\n this.missingHandler(unknownListStyleWarning(style), {\n nodeType: 'listStyle',\n type: style,\n });\n }\n\n protected getChildNode(\n child: PortableTextListBlock['children'][0],\n index: number,\n ) {\n return child._key ? child : { ...child, _key: `li-${index}` };\n }\n\n protected readonly trackBy = trackBy;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n TemplateRef,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\n\nimport {\n PortableTextListItemBlock,\n PortableTextMarkDefinition,\n PortableTextSpan,\n} from '@portabletext/types';\n\nimport { TemplateContext } from '../types';\nimport { serializeBlock } from '../utils';\n\n@Component({\n selector: 'lib-list-item',\n imports: [NgTemplateOutlet, NgComponentOutlet],\n template: `<ng-template\n #listItemTmpl\n let-node\n let-index=\"index\"\n let-components=\"components\"\n let-renderNode=\"renderNode\"\n >\n <ng-template #listItemChildren>\n @if (node.style && node.style !== 'normal') {\n <ng-container\n *ngTemplateOutlet=\"\n renderNode;\n context: {\n $implicit: getNodeWithoutListItem(node),\n index,\n isInline: false,\n components,\n }\n \"\n />\n } @else {\n @for (\n child of serializeBlock({ node, isInline: false }).children;\n track child._key\n ) {\n <ng-container\n *ngTemplateOutlet=\"\n renderNode;\n context: { $implicit: child, isInline: true, components }\n \"\n />\n }\n }\n </ng-template>\n\n @if (components.listItem?.[node.listItem]) {\n <ng-container\n *ngComponentOutlet=\"\n components.listItem?.[node.listItem];\n inputs: {\n childrenData: {\n template: listItemChildren,\n context: { node, index, components, renderNode },\n },\n value: node,\n index,\n isInline: false,\n }\n \"\n />\n } @else {\n <li>\n <ng-container *ngTemplateOutlet=\"listItemChildren\" />\n </li>\n }\n </ng-template>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class ListItemComponent {\n template =\n viewChild.required<\n TemplateRef<\n TemplateContext<\n PortableTextListItemBlock<\n PortableTextMarkDefinition,\n PortableTextSpan\n >\n > & { index: number }\n >\n >('listItemTmpl');\n\n getNodeWithoutListItem = (node: PortableTextListItemBlock) => {\n // Wrap any other style in whatever the block serializer says to use\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { listItem, ...blockNode } = node;\n return blockNode;\n };\n\n protected readonly serializeBlock = serializeBlock;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n inject,\n Injector,\n input,\n TemplateRef,\n Type,\n viewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\n\nimport {\n isPortableTextBlock,\n isPortableTextListItemBlock,\n isPortableTextToolkitList,\n isPortableTextToolkitSpan,\n isPortableTextToolkitTextNode,\n LIST_NEST_MODE_HTML,\n nestLists,\n} from '@portabletext/toolkit';\nimport {\n ArbitraryTypedObject,\n PortableTextBlock,\n TypedObject,\n} from '@portabletext/types';\n\nimport { BlockComponent } from './block.component';\nimport { MissingComponentHandler, PortableTextComponents } from '../types';\nimport { TextComponent } from './text.component';\nimport { SpanComponent } from './span.component';\nimport { ListComponent } from './list.component';\nimport { ListItemComponent } from './list-item.component';\nimport { trackBy } from '../utils';\nimport { MISSING_COMPONENT_HANDLER } from '../tokens';\nimport { printWarning } from '../warnings';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[portable-text]',\n imports: [NgTemplateOutlet, NgComponentOutlet],\n template: `\n @for (\n block of nestedBlocks();\n track trackBy(block._key, index);\n let index = $index\n ) {\n <ng-container\n *ngTemplateOutlet=\"\n renderNode;\n context: {\n $implicit: block,\n isInline: false,\n components: components(),\n }\n \"\n />\n }\n\n <ng-template\n #renderNode\n let-node\n let-index=\"index\"\n let-isInline=\"isInline\"\n let-components=\"components\"\n >\n @if (isPortableTextToolkitList(node)) {\n <ng-container\n *ngTemplateOutlet=\"\n listTemplate().template();\n context: {\n $implicit: node,\n components,\n renderNode,\n }\n \"\n />\n } @else if (isPortableTextListItemBlock(node)) {\n <ng-container\n *ngTemplateOutlet=\"\n listItemTemplate().template();\n context: {\n $implicit: node,\n index,\n components,\n renderNode,\n }\n \"\n />\n } @else if (isPortableTextToolkitSpan(node)) {\n <ng-container\n *ngTemplateOutlet=\"\n spanTemplate().template();\n context: {\n $implicit: node,\n components,\n renderNode,\n }\n \"\n />\n } @else if (hasCustomComponentForNode(node)) {\n <ng-container\n *ngComponentOutlet=\"\n getCustomComponentForNode(node);\n inputs: { value: node, isInline }\n \"\n />\n } @else if (isPortableTextBlock(node)) {\n <ng-container\n *ngTemplateOutlet=\"\n blockTemplate().template();\n context: { $implicit: node, isInline, components, renderNode }\n \"\n />\n } @else if (isPortableTextToolkitTextNode(node)) {\n <ng-container\n *ngTemplateOutlet=\"\n textTemplate().template();\n context: { $implicit: node, components }\n \"\n />\n } @else {\n <ng-container\n *ngTemplateOutlet=\"\n unknownTypeTmpl;\n context: { node, components, isInline }\n \"\n />\n }\n </ng-template>\n\n <ng-template\n #unknownTypeTmpl\n let-value=\"node\"\n let-components=\"components\"\n let-isInline=\"isInline\"\n >\n <ng-container\n *ngTemplateOutlet=\"unknownBlock; context: { node: value, isInline }\"\n />\n </ng-template>\n\n <ng-template #unknownBlock let-value=\"node\" let-isInline=\"isInline\">\n @if (isInline) {\n <span style=\"display: none\">{{\n 'Unknown block type: ' + value._type\n }}</span>\n } @else {\n <div style=\"display: none\">\n {{ 'Unknown block type: ' + value._type }}\n </div>\n }\n </ng-template>\n `,\n styles: `\n .portable-text {\n display: block;\n }\n `,\n host: { '[class.portable-text]': 'true' },\n providers: [\n {\n provide: MISSING_COMPONENT_HANDLER,\n useFactory: (component: PortableTextComponent) =>\n component.onMissingComponent() || noop,\n deps: [forwardRef(() => PortableTextComponent)],\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class PortableTextComponent<\n B extends TypedObject = PortableTextBlock | ArbitraryTypedObject,\n> {\n value = input.required<B | B[]>();\n components = input<Partial<PortableTextComponents>>({});\n\n unknownBlockTmpl =\n viewChild.required<TemplateRef<{ $implicit: TypedObject }>>('unknownBlock');\n\n onMissingComponent = input<MissingComponentHandler | false>(printWarning);\n\n #container = inject(ViewContainerRef);\n\n #injector = inject(Injector);\n\n blockTemplate = computed(\n () =>\n this.#container.createComponent(BlockComponent, {\n injector: this.#injector,\n }).instance,\n );\n listTemplate = computed(\n () =>\n this.#container.createComponent(ListComponent, {\n injector: this.#injector,\n }).instance,\n );\n listItemTemplate = computed(\n () =>\n this.#container.createComponent(ListItemComponent, {\n injector: this.#injector,\n }).instance,\n );\n spanTemplate = computed(\n () =>\n this.#container.createComponent(SpanComponent, {\n injector: this.#injector,\n }).instance,\n );\n textTemplate = computed(\n () =>\n this.#container.createComponent(TextComponent, {\n injector: this.#injector,\n }).instance,\n );\n\n nestedBlocks = computed(() => {\n const blocks = Array.isArray(this.value()) ? this.value() : [this.value()];\n return nestLists(blocks as TypedObject[], LIST_NEST_MODE_HTML);\n });\n\n hasCustomComponentForNode = (node: TypedObject): boolean =>\n !!this.components().types?.[node._type];\n\n getCustomComponentForNode = (node: TypedObject): Type<unknown> =>\n this.components().types?.[node._type] as Type<unknown>;\n\n protected readonly isPortableTextToolkitList = isPortableTextToolkitList;\n protected readonly isPortableTextListItemBlock = isPortableTextListItemBlock;\n protected readonly isPortableTextBlock = isPortableTextBlock;\n protected readonly isPortableTextToolkitSpan = isPortableTextToolkitSpan;\n protected readonly isPortableTextToolkitTextNode =\n isPortableTextToolkitTextNode;\n protected readonly trackBy = trackBy;\n}\n\nconst noop = () => {\n /* empty */\n};\n","import {\n AfterViewInit,\n Directive,\n input,\n TemplateRef,\n viewChild,\n ViewContainerRef,\n} from '@angular/core';\n\nimport {\n PortableTextBlock,\n PortableTextListItemBlock,\n TypedObject,\n} from '@portabletext/types';\n\nimport { PortableTextListBlock, RenderNodeContext } from '../types';\n\n// eslint-disable-next-line @angular-eslint/directive-selector\n@Directive({ selector: '[portableTextContent]', standalone: true })\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class DynamicPortableTextContent<Node extends TypedObject = TypedObject>\n implements AfterViewInit\n{\n childrenData = input.required<{\n template: TemplateRef<RenderNodeContext<Node>>;\n context: RenderNodeContext<Node>;\n }>();\n\n children = viewChild<ViewContainerRef, ViewContainerRef>('children', {\n read: ViewContainerRef,\n });\n\n ngAfterViewInit() {\n this.children()?.createEmbeddedView(\n this.childrenData().template,\n this.childrenData().context,\n );\n }\n}\n\n// eslint-disable-next-line @angular-eslint/directive-selector\n@Directive({ selector: '[portableTextMark]', standalone: true })\n/**\n * @template M Shape describing the data associated with this mark, if it is an annotation\n */\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class PortableTextMarkComponent<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n M extends TypedObject = any,\n> extends DynamicPortableTextContent<M> {\n /**\n * Mark definition, e.g. the actual data of the annotation. If the mark is a simple decorator, this will be `undefined`\n */\n value = input<M>();\n\n /**\n * Text content of this mark\n */\n text = input.required<string>();\n\n /**\n * Key for this mark. The same key can be used amongst multiple text spans within the same block, so don't rely on this for Angular keys.\n */\n markKey = input<string>();\n\n /**\n * Type of mark - ie value of `_type` in the case of annotations, or the name of the decorator otherwise - eg `em`, `italic`.\n */\n markType = input.required<string>();\n}\n\n// eslint-disable-next-line @angular-eslint/directive-selector\n@Directive({ selector: '[portableTextType]', standalone: true })\n/**\n * Data associated with this portable text node, eg the raw JSON value of a block/type\n */\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class PortableTextTypeComponent<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n T extends TypedObject = any,\n> extends DynamicPortableTextContent<T> {\n value = input.required<T>();\n\n /**\n * Whether this node is \"inline\" - ie as a child of a text block,\n * alongside text spans, or a block in and of itself.\n */\n isInline = input.required<boolean>();\n}\n\n// eslint-disable-next-line @angular-eslint/directive-selector\n@Directive({ selector: '[portableTextBlock]', standalone: true })\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class PortableTextBlockComponent extends PortableTextTypeComponent<PortableTextBlock> {}\n\n// eslint-disable-next-line @angular-eslint/directive-selector\n@Directive({ selector: '[portableTextListItem]', standalone: true })\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class PortableTextListComponent extends PortableTextTypeComponent<PortableTextListBlock> {}\n\n// eslint-disable-next-line @angular-eslint/directive-selector\n@Directive({ selector: '[portableTextListItem]', standalone: true })\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class PortableTextListItemComponent extends PortableTextTypeComponent<PortableTextListItemBlock> {\n index = input.required<number>();\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAIM,SAAU,cAAc,CAC5B,OAAwC,EAAA;AAExC,IAAA,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,OAAO;AAElC,IAAA,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC;AACjC,IAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,MAAM;AACvC,QAAA,GAAG,KAAK;;;AAGR,QAAA,IAAI,EAAG,KAAa,CAAC,IAAI,IAAI,CAAA,MAAA,EAAS,CAAC,CAAE,CAAA;AAC1C,KAAA,CAAC,CAAC;IAEH,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,QAAQ;QACR,QAAQ;QACR,IAAI;KACL;AACH;AAEM,SAAU,OAAO,CACrB,GAAuB,EACvB,KAAa,EACb,MAAM,GAAG,MAAM,EAAA;AAEf,IAAA,OAAO,GAAG,IAAI,CAAA,EAAG,MAAM,CAAI,CAAA,EAAA,KAAK,EAAE;AACpC;;MCgGa,cAAc,CAAA;AAnH3B,IAAA,WAAA,GAAA;AAoHE,QAAA,IAAA,CAAA,QAAQ,GACN,SAAS,CAAC,QAAQ,CAChB,WAAW,CACZ;QACgB,IAAc,CAAA,cAAA,GAAG,cAAc;AACnD;8GANY,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,EAhHf,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4GT,EA7GS,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,gBAAgB,oJAAE,iBAAiB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,2BAAA,EAAA,kCAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAiHlC,cAAc,EAAA,UAAA,EAAA,CAAA;kBAnH1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,OAAO,EAAE,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;AAC9C,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4GT,EAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACtC,iBAAA;;;MCnGY,aAAa,CAAA;AAd1B,IAAA,WAAA,GAAA;AAeE,QAAA,IAAA,CAAA,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAK3B,UAAU,CAAC;AACd;8GAPY,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,EAXd,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;AAMK,gBAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAGL,iBAAiB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,2BAAA,EAAA,kCAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAEhB,aAAa,EAAA,UAAA,EAAA,CAAA;kBAdzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,UAAU;;AAEpB,oBAAA,QAAQ,EAAE,CAAA;;;;;;AAMK,gBAAA,CAAA;oBACf,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,OAAO,EAAE,CAAC,iBAAiB,CAAC;AAC7B,iBAAA;;;ACvBM,MAAM,yBAAyB,GACpC,IAAI,cAAc,CAA0B,2BAA2B,CAAC;;ACJ1E,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,IAAY,KAC7C,CAAoD,iDAAA,EAAA,IAAI,CAAoD,iDAAA,EAAA,IAAI,SAAS;AAEpH,MAAM,kBAAkB,GAAG,CAAC,QAAgB,KACjD,WAAW,CAAC,CAAe,YAAA,EAAA,QAAQ,GAAG,EAAE,OAAO,CAAC;AAE3C,MAAM,kBAAkB,GAAG,CAAC,QAAgB,KACjD,WAAW,CAAC,CAAc,WAAA,EAAA,QAAQ,GAAG,EAAE,OAAO,CAAC;AAE1C,MAAM,wBAAwB,GAAG,CAAC,UAAkB,KACzD,WAAW,CAAC,CAAgB,aAAA,EAAA,UAAU,GAAG,EAAE,OAAO,CAAC;AAE9C,MAAM,uBAAuB,GAAG,CAAC,SAAiB,KACvD,WAAW,CAAC,CAAe,YAAA,EAAA,SAAS,GAAG,EAAE,MAAM,CAAC;AAE3C,MAAM,2BAA2B,GAAG,CAAC,SAAiB,KAC3D,WAAW,CAAC,CAAoB,iBAAA,EAAA,SAAS,GAAG,EAAE,UAAU,CAAC;AAErD,SAAU,YAAY,CAAC,OAAe,EAAA;AAC1C,IAAA,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;AACvB;;MCqGa,aAAa,CAAA;AArG1B,IAAA,WAAA,GAAA;AAsGE,QAAA,IAAA,CAAA,QAAQ,GACN,SAAS,CAAC,QAAQ,CAEhB,UAAU,CAAC;AAEf,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,yBAAyB,CAAC;QAShC,IAAe,CAAA,eAAA,GAAG,eAAe;QACjC,IAAO,CAAA,OAAA,GAAG,OAAO;AACrC;AAXC,IAAA,eAAe;AAEf,IAAA,sBAAsB,CAAC,QAAgB,EAAA;AACrC,QAAA,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE;AACjD,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,QAAQ,EAAE,MAAM;AACjB,SAAA,CAAC;;8GAZO,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,EAlGd,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8FT,EA/FS,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,gBAAgB,oJAAE,iBAAiB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,2BAAA,EAAA,kCAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAmGlC,aAAa,EAAA,UAAA,EAAA,CAAA;kBArGzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,OAAO,EAAE,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;AAC9C,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8FT,EAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACtC,iBAAA;;;MCtBY,aAAa,CAAA;AAnF1B,IAAA,WAAA,GAAA;AAoFE,QAAA,IAAA,CAAA,QAAQ,GACN,SAAS,CAAC,QAAQ,CAChB,UAAU,CACX;AAEH,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,yBAAyB,CAAC;QAiB/B,IAAO,CAAA,OAAA,GAAG,OAAO;AACrC;AAhBC,IAAA,sBAAsB,CAAC,IAA2B,EAAA;AAChD,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,IAAI,QAAQ;AACvC,QAAA,IAAI,CAAC,cAAc,CAAC,uBAAuB,CAAC,KAAK,CAAC,EAAE;AAClD,YAAA,QAAQ,EAAE,WAAW;AACrB,YAAA,IAAI,EAAE,KAAK;AACZ,SAAA,CAAC;;IAGM,YAAY,CACpB,KAA2C,EAC3C,KAAa,EAAA;QAEb,OAAO,KAAK,CAAC,IAAI,GAAG,KAAK,GAAG,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA,CAAE,EAAE;;8GApBpD,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,EAhFd,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4ET,EA7ES,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,gBAAgB,oJAAE,iBAAiB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,2BAAA,EAAA,kCAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAiFlC,aAAa,EAAA,UAAA,EAAA,CAAA;kBAnFzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,OAAO,EAAE,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;AAC9C,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4ET,EAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACtC,iBAAA;;;MCjBY,iBAAiB,CAAA;AA9D9B,IAAA,WAAA,GAAA;AA+DE,QAAA,IAAA,CAAA,QAAQ,GACN,SAAS,CAAC,QAAQ,CAShB,cAAc,CAAC;AAEnB,QAAA,IAAA,CAAA,sBAAsB,GAAG,CAAC,IAA+B,KAAI;;;YAG3D,MAAM,EAAE,QAAQ,EAAE,GAAG,SAAS,EAAE,GAAG,IAAI;AACvC,YAAA,OAAO,SAAS;AAClB,SAAC;QAEkB,IAAc,CAAA,cAAA,GAAG,cAAc;AACnD;8GArBY,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EA3DlB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAuDK,EAxDL,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,gBAAgB,oJAAE,iBAAiB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,2BAAA,EAAA,kCAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FA4DlC,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBA9D7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,OAAO,EAAE,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;AAC9C,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuDK,gBAAA,CAAA;oBACf,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACtC,iBAAA;;;MCgGY,qBAAqB,CAAA;AAtIlC,IAAA,WAAA,GAAA;AAyIE,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAW;AACjC,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAkC,EAAE,CAAC;AAEvD,QAAA,IAAA,CAAA,gBAAgB,GACd,SAAS,CAAC,QAAQ,CAA0C,cAAc,CAAC;AAE7E,QAAA,IAAA,CAAA,kBAAkB,GAAG,KAAK,CAAkC,YAAY,CAAC;AAEzE,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAErC,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;AAE5B,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CACtB,MACE,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,cAAc,EAAE;YAC9C,QAAQ,EAAE,IAAI,CAAC,SAAS;SACzB,CAAC,CAAC,QAAQ,CACd;AACD,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CACrB,MACE,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,aAAa,EAAE;YAC7C,QAAQ,EAAE,IAAI,CAAC,SAAS;SACzB,CAAC,CAAC,QAAQ,CACd;AACD,QAAA,IAAA,CAAA,gBAAgB,GAAG,QAAQ,CACzB,MACE,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,iBAAiB,EAAE;YACjD,QAAQ,EAAE,IAAI,CAAC,SAAS;SACzB,CAAC,CAAC,QAAQ,CACd;AACD,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CACrB,MACE,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,aAAa,EAAE;YAC7C,QAAQ,EAAE,IAAI,CAAC,SAAS;SACzB,CAAC,CAAC,QAAQ,CACd;AACD,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CACrB,MACE,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,aAAa,EAAE;YAC7C,QAAQ,EAAE,IAAI,CAAC,SAAS;SACzB,CAAC,CAAC,QAAQ,CACd;AAED,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;YAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;AAC1E,YAAA,OAAO,SAAS,CAAC,MAAuB,EAAE,mBAAmB,CAAC;AAChE,SAAC,CAAC;QAEF,IAAyB,CAAA,yBAAA,GAAG,CAAC,IAAiB,KAC5C,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AAEzC,QAAA,IAAA,CAAA,yBAAyB,GAAG,CAAC,IAAiB,KAC5C,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAkB;QAErC,IAAyB,CAAA,yBAAA,GAAG,yBAAyB;QACrD,IAA2B,CAAA,2BAAA,GAAG,2BAA2B;QACzD,IAAmB,CAAA,mBAAA,GAAG,mBAAmB;QACzC,IAAyB,CAAA,yBAAA,GAAG,yBAAyB;QACrD,IAA6B,CAAA,6BAAA,GAC9C,6BAA6B;QACZ,IAAO,CAAA,OAAA,GAAG,OAAO;AACrC;AArDC,IAAA,UAAU;AAEV,IAAA,SAAS;8GAbE,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EAXrB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,yBAAyB;gBAClC,UAAU,EAAE,CAAC,SAAgC,KAC3C,SAAS,CAAC,kBAAkB,EAAE,IAAI,IAAI;gBACxC,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,qBAAqB,CAAC,CAAC;AAChD,aAAA;SACF,EA9HS,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgHT,EAjHS,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,iCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,gBAAgB,oJAAE,iBAAiB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,2BAAA,EAAA,kCAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAmIlC,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAtIjC,SAAS;AAEE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,WAClB,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,EACpC,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgHT,EAAA,CAAA,EAAA,IAAA,EAMK,EAAE,uBAAuB,EAAE,MAAM,EAAE,EAC9B,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,yBAAyB;4BAClC,UAAU,EAAE,CAAC,SAAgC,KAC3C,SAAS,CAAC,kBAAkB,EAAE,IAAI,IAAI;4BACxC,IAAI,EAAE,CAAC,UAAU,CAAC,MAAK,qBAAsB,CAAC,CAAC;AAChD,yBAAA;AACF,qBAAA,EAAA,eAAA,EACgB,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,MAAA,EAAA,CAAA,iCAAA,CAAA,EAAA;;AAoEvC,MAAM,IAAI,GAAG,MAAK;;AAElB,CAAC;;AClOD;AAEA;MACa,0BAA0B,CAAA;AAFvC,IAAA,WAAA,GAAA;AAKE,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAC,QAAQ,EAGzB;AAEJ,QAAA,IAAA,CAAA,QAAQ,GAAG,SAAS,CAAqC,UAAU,EAAE;AACnE,YAAA,IAAI,EAAE,gBAAgB;AACvB,SAAA,CAAC;AAQH;IANC,eAAe,GAAA;QACb,IAAI,CAAC,QAAQ,EAAE,EAAE,kBAAkB,CACjC,IAAI,CAAC,YAAY,EAAE,CAAC,QAAQ,EAC5B,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,CAC5B;;8GAhBQ,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,0TAS7B,gBAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FATb,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAFtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,EAAE,QAAQ,EAAE,uBAAuB,EAAE,UAAU,EAAE,IAAI,EAAE;;AAsBlE;AAEA;;AAEG;AACH;AACM,MAAO,yBAGX,SAAQ,0BAA6B,CAAA;AARvC,IAAA,WAAA,GAAA;;AASE;;AAEG;QACH,IAAK,CAAA,KAAA,GAAG,KAAK,EAAK;AAElB;;AAEG;AACH,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAU;AAE/B;;AAEG;QACH,IAAO,CAAA,OAAA,GAAG,KAAK,EAAU;AAEzB;;AAEG;AACH,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAU;AACpC;8GAvBY,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,EAAE,QAAQ,EAAE,oBAAoB,EAAE,UAAU,EAAE,IAAI,EAAE;;AA8B/D;AAEA;;AAEG;AACH;AACM,MAAO,yBAGX,SAAQ,0BAA6B,CAAA;AARvC,IAAA,WAAA,GAAA;;AASE,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAK;AAE3B;;;AAGG;AACH,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAW;AACrC;8GAXY,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,EAAE,QAAQ,EAAE,oBAAoB,EAAE,UAAU,EAAE,IAAI,EAAE;;AAkB/D;AAEA;AACM,MAAO,0BAA2B,SAAQ,yBAA4C,CAAA;8GAA/E,0BAA0B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA1B,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAFtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,EAAE,QAAQ,EAAE,qBAAqB,EAAE,UAAU,EAAE,IAAI,EAAE;;AAIhE;AAEA;AACM,MAAO,yBAA0B,SAAQ,yBAAgD,CAAA;8GAAlF,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAFrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,EAAE,QAAQ,EAAE,wBAAwB,EAAE,UAAU,EAAE,IAAI,EAAE;;AAInE;AAEA;AACM,MAAO,6BAA8B,SAAQ,yBAAoD,CAAA;AAFvG,IAAA,WAAA,GAAA;;AAGE,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAU;AACjC;8GAFY,6BAA6B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA7B,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAFzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,EAAE,QAAQ,EAAE,wBAAwB,EAAE,UAAU,EAAE,IAAI,EAAE;;;ACrGnE;;AAEG;;;;"}