@firestitch/content 18.0.10 → 18.0.12

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.
@@ -1 +1 @@
1
- {"version":3,"file":"firestitch-content.mjs","sources":["../../src/app/modules/content/components/content-renderer/content-renderer.component.ts","../../src/app/modules/content/components/content-renderer/content-renderer.component.html","../../src/app/injectors/content-config.injector.ts","../../src/app/modules/content/components/content/content.component.ts","../../src/app/modules/content/components/content/content.component.html","../../src/app/modules/content/fs-content.module.ts","../../src/app/enums/editor-type.ts","../../src/app/enums/page-type.enum.ts","../../src/app/modules/editor/components/editor-label/editor-label.component.ts","../../src/app/modules/editor/components/editor-label/editor-label.component.html","../../src/app/modules/editor/components/editor/editor.component.ts","../../src/app/modules/editor/components/editor/editor.component.html","../../src/app/modules/editor/components/editor-toggles/editor-toggles.component.ts","../../src/app/modules/editor/components/editor-toggles/editor-toggles.component.html","../../src/app/modules/editor/components/editor-actions/editor-actions.component.ts","../../src/app/modules/editor/components/editor-actions/editor-actions.component.html","../../src/app/modules/content-layouts/components/content-layout/content-layout.component.ts","../../src/app/modules/content-layouts/components/content-layout/content-layout.component.html","../../src/app/modules/content-layouts/components/content-layout-editor/content-layout-editor.component.ts","../../src/app/modules/content-layouts/components/content-layout-editor/content-layout-editor.component.html","../../src/app/modules/content-layouts/components/content-layouts/content-layouts.component.ts","../../src/app/modules/content-layouts/components/content-layouts/content-layouts.component.html","../../src/app/modules/content-layouts/fs-content-layouts.module.ts","../../src/app/consts/page-types.const.ts","../../src/app/modules/content-pages/components/content-page/content-page.component.ts","../../src/app/modules/content-pages/components/content-page/content-page.component.html","../../src/app/modules/content-pages/components/content-page-editor/content-page-editor.component.ts","../../src/app/modules/content-pages/components/content-page-editor/content-page-editor.component.html","../../src/app/modules/content-pages/components/content-pages/content-pages.component.ts","../../src/app/modules/content-pages/components/content-pages/content-pages.component.html","../../src/app/modules/content-pages/fs-content-pages.module.ts","../../src/app/modules/content-style/components/content-style/content-style.component.ts","../../src/app/modules/content-style/components/content-style/content-style.component.html","../../src/firestitch-content.ts"],"sourcesContent":["import { AfterViewChecked, ChangeDetectionStrategy, Component, ElementRef, Input, OnChanges, OnDestroy, SimpleChanges, ViewChild, inject } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { Router } from '@angular/router';\n\nimport { HtmlRenderer } from '@firestitch/html';\n\nimport { Subject } from 'rxjs';\n\n\n@Component({\n selector: 'fs-content-renderer',\n templateUrl: './content-renderer.component.html',\n styleUrls: ['./content-renderer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class ContentRendererComponent implements OnDestroy, AfterViewChecked, OnChanges{\n private _sanitizer = inject(DomSanitizer);\n private _router = inject(Router);\n private _el = inject(ElementRef);\n private _htmlRenderer = inject(HtmlRenderer);\n\n\n @ViewChild('script', { read: ElementRef })\n public script: ElementRef;\n\n @Input() public contentPage;\n\n public content: SafeHtml;\n\n private _destroy$ = new Subject();\n\n public ngOnChanges(changes: SimpleChanges): void {\n if(changes.contentPage.currentValue) {\n this._htmlRenderer.addStyle(this.contentPage.styles, { id: 'contentPageStyles' });\n this.content = this._sanitizer.bypassSecurityTrustHtml(this.contentPage.content);\n }\n }\n\n public ngAfterViewChecked(): void {\n this.registerHrefs();\n\n if(this.contentPage.js) {\n const script = document.createElement('script');\n script.text = this.contentPage.js;\n this.script.nativeElement.after(script);\n }\n }\n\n public registerHrefs(): void {\n Array.from(this.el.querySelectorAll('a[href]'))\n .filter((el: Element) => {\n return el.getAttribute('href').match(/^\\//);\n })\n .forEach((el: Element) => {\n el.addEventListener('click',(event: MouseEvent) => {\n if(!event.shiftKey && !event.ctrlKey) {\n event.preventDefault();\n const href = el.getAttribute('href');\n this._router.navigateByUrl(href);\n }\n });\n });\n }\n\n public get el(): any {\n return this._el.nativeElement;\n }\n\n public ngOnDestroy(): void {\n this.removeStyles();\n this._destroy$.next(null);\n this._destroy$.complete();\n }\n\n public removeStyles(): void {\n const el = document.querySelector('#contentPageStyles');\n if(el) {\n el.remove();\n }\n }\n\n}\n","@if (content) {\n <div [innerHTML]=\"content\"></div>\n}\n<span #script></span>","import { InjectionToken } from '@angular/core';\n\nexport const FS_CONTENT_CONFIG = new InjectionToken<any>('fs-content-config');\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, OnDestroy, OnInit, inject } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport { NavigationEnd, Router } from '@angular/router';\n\nimport { HtmlRenderer } from '@firestitch/html';\n\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nimport { FS_CONTENT_CONFIG } from '../../../../injectors';\nimport { FsContentConfig } from '../../../../interfaces';\nimport { ContentRendererComponent } from '../content-renderer/content-renderer.component';\n\n\n@Component({\n selector: 'fs-content',\n templateUrl: './content.component.html',\n styleUrls: ['./content.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [ContentRendererComponent],\n})\nexport class FsContentComponent implements OnInit, OnDestroy {\n private _config = inject<FsContentConfig>(FS_CONTENT_CONFIG);\n private _title = inject(Title);\n private _cdRef = inject(ChangeDetectorRef);\n private _router = inject(Router);\n private _el = inject(ElementRef);\n private _htmlRenderer = inject(HtmlRenderer);\n\n\n public contentPage;\n\n private _destroy$ = new Subject();\n\n public ngOnInit(): void {\n this._initContent();\n this._initStyles();\n }\n\n public get el(): any {\n return this._el.nativeElement;\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next(null);\n this._destroy$.complete();\n this._title.setTitle('');\n\n document.querySelector('#content-style')?.remove();\n }\n\n private _initStyles(): void {\n if(this._config.loadContentStyleCss) {\n this._config.loadContentStyleCss()\n .subscribe((styles) => {\n this._htmlRenderer.addStyle(styles, { id: 'content-style' });\n });\n }\n }\n\n private _initContent(): void {\n this._loadContent();\n\n this._router.events\n .pipe(\n filter((e) => e instanceof NavigationEnd),\n takeUntil(this._destroy$),\n )\n .subscribe((e) => {\n this._loadContent();\n });\n }\n\n private _loadContent() {\n const path = (window as any).location.pathname;\n\n this._config.loadContent(path)\n .subscribe((contentPage) => {\n if(contentPage.title) {\n this._title.setTitle(contentPage.title);\n\n let ogTitleEl = document.querySelector('head meta[property=\"og:title\"]');\n if(!ogTitleEl) {\n ogTitleEl = document.createElement('meta');\n ogTitleEl.setAttribute('property','og:title');\n document.getElementsByTagName('head')[0].appendChild(ogTitleEl);\n }\n\n ogTitleEl.setAttribute('content',contentPage.title);\n }\n\n this.contentPage = contentPage;\n this._cdRef.markForCheck();\n });\n }\n\n}\n","@if (contentPage) {\n <fs-content-renderer [contentPage]=\"contentPage\"></fs-content-renderer>\n}","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { ContentRendererComponent } from './components/content-renderer/content-renderer.component';\nimport { FsContentComponent } from './components/content/content.component';\n\n@NgModule({\n imports: [\n FsContentComponent,\n ContentRendererComponent,\n ],\n exports: [\n FsContentComponent,\n ],\n})\nexport class FsContentModule {\n public static forRoot(): ModuleWithProviders<FsContentModule> {\n return {\n ngModule: FsContentModule,\n };\n }\n}\n","export enum EditorType {\n Js = 'js',\n Html = 'html',\n Scss = 'scss',\n GlobalScss = 'globalScss',\n}\n","export enum PageType {\n StandardPage = 'standardPage',\n BlogPost = 'blogPost',\n HomePage = 'homePage',\n NotFoundPage = 'notFoundPage',\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n} from '@angular/core';\nimport { NgClass } from '@angular/common';\n\n\n@Component({\n selector: 'app-editor-label',\n templateUrl: './editor-label.component.html',\n styleUrls: ['./editor-label.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [NgClass],\n})\nexport class EditorLabelComponent {\n\n @Input()\n public changed: boolean;\n\n @Input()\n public focused: boolean;\n\n}\n","<div class=\"label\" [ngClass]=\"{ focused: focused }\">\n <ng-content></ng-content>\n @if (changed) {\n <span class=\"changed\">&nbsp;&#9679;</span>\n }\n</div>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, OnDestroy, OnInit, Output, inject } from '@angular/core';\n\n\nimport { FsMessage } from '@firestitch/message';\nimport { FsTextEditorConfig, FsTextEditorModule } from '@firestitch/text-editor';\n\nimport { Subject } from 'rxjs';\nimport { tap } from 'rxjs/operators';\n\nimport { EditorType } from '../../../../enums';\nimport { FsContentConfig } from '../../../../interfaces';\nimport { AngularSplitModule } from 'angular-split';\nimport { EditorLabelComponent } from '../editor-label/editor-label.component';\nimport { FormsModule } from '@angular/forms';\nimport { FsFormModule } from '@firestitch/form';\nimport { FsCommonModule } from '@firestitch/common';\nimport { FsSkeletonModule } from '@firestitch/skeleton';\n\n\n@Component({\n selector: 'app-editor',\n templateUrl: './editor.component.html',\n styleUrls: ['./editor.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n AngularSplitModule,\n EditorLabelComponent,\n FsTextEditorModule,\n FormsModule,\n FsFormModule,\n FsCommonModule,\n FsSkeletonModule,\n ],\n})\nexport class EditorComponent implements OnInit, OnDestroy {\n private _cdRef = inject(ChangeDetectorRef);\n private _message = inject(FsMessage);\n\n\n @Input() public showHtml = false;\n @Input() public showScss = false;\n @Input() public showJs = false;\n @Input() public showGlobalScss = false;\n\n @Input() public html;\n @Input() public scss;\n @Input() public js;\n @Input() public contentConfig: FsContentConfig;\n\n @Output() public changed = new EventEmitter<{ type: string; value: string }>();\n @Output() public focused = new EventEmitter<string>();\n @Output() public blured = new EventEmitter<string>();\n\n public changes: any = {};\n public EditorType = EditorType;\n public focusedArea: string;\n\n public contentStyle: {\n scss?: string;\n };\n\n public resizing = false;\n public title;\n\n public scssConfig: FsTextEditorConfig;\n public globalScssConfig: FsTextEditorConfig;\n public htmlConfig: FsTextEditorConfig;\n public jsConfig: FsTextEditorConfig;\n\n private _destroy$ = new Subject<void>();\n\n public ngOnInit(): void {\n this.initTextEditors();\n this.initGlobalContentStyle();\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next(null);\n this._destroy$.complete();\n }\n\n public change(type, value) {\n this.changed.emit({ type, value });\n this.changes[type] = value;\n }\n\n public get hasChanges() {\n return Object.keys(this.changes)\n .filter((name) => !!this.changes[name])\n .length !== 0;\n }\n\n public clearChange(type) {\n this.changes[type] = undefined;\n this._cdRef.markForCheck();\n }\n\n public initTextEditors() {\n this.scssConfig = {\n tabSize: 2,\n language: 'scss',\n height: '100%',\n focus: () => {\n this._onFocus(EditorType.Scss);\n },\n blur: () => {\n this.blured.emit(EditorType.Scss);\n },\n };\n this.jsConfig = {\n tabSize: 2,\n language: 'js',\n height: '100%',\n focus: () => {\n this._onFocus(EditorType.Js);\n },\n blur: () => {\n this.blured.emit(EditorType.Js);\n },\n };\n this.htmlConfig = {\n tabSize: 2,\n language: 'html',\n height: '100%',\n focus: () => {\n this._onFocus(EditorType.Html);\n },\n blur: () => {\n this.blured.emit(EditorType.Html);\n },\n };\n this.globalScssConfig = {\n tabSize: 2,\n language: 'scss',\n height: '100%',\n focus: () => {\n this._onFocus(EditorType.GlobalScss);\n },\n blur: () => {\n this.blured.emit(EditorType.GlobalScss);\n },\n };\n }\n\n public initGlobalContentStyle() {\n this.contentConfig.loadContentStyle()\n .subscribe((contentStyle) => {\n this.contentStyle = contentStyle || {};\n this._cdRef.markForCheck();\n });\n }\n\n public saveGlobalScss() {\n return this.contentConfig.saveContentStyle(this.contentStyle)\n .pipe(\n tap(() => {\n this._message.success('Saved Changes');\n }),\n );\n }\n\n private _onFocus(type): void {\n this.focusedArea = type;\n this.focused.emit(type);\n }\n\n}\n","<as-split [unit]=\"'percent'\" [gutterSize]=\"25\"> \n <as-split-area [size]=\"70\" [visible]=\"showHtml\" [order]=\"1\">\n <div class=\"editor-container\">\n <app-editor-label\n [changed]=\"changes.html !== undefined\"\n [focused]=\"focusedArea === 'html'\">\n HTML\n </app-editor-label>\n <fs-text-editor \n [(ngModel)]=\"html\" \n name=\"html\"\n [fsModelChangeOptions]=\"{ debounce: 0 }\"\n (fsModelChange)=\"change(EditorType.Html, $event)\"\n [config]=\"htmlConfig\">\n </fs-text-editor> \n </div>\n </as-split-area>\n <as-split-area [size]=\"30\" [visible]=\"showScss\" [order]=\"2\">\n <div class=\"editor-container\">\n <app-editor-label\n [changed]=\"changes.scss !== undefined\"\n [focused]=\"focusedArea === 'scss'\">\n SCSS\n </app-editor-label>\n <fs-text-editor \n [(ngModel)]=\"scss\" \n name=\"scss\"\n [fsModelChangeOptions]=\"{ debounce: 0 }\"\n (fsModelChange)=\"change(EditorType.Scss, $event)\"\n [config]=\"scssConfig\">\n </fs-text-editor> \n </div>\n </as-split-area>\n <as-split-area [size]=\"30\" [visible]=\"showJs\" [order]=\"3\">\n <div class=\"editor-container\">\n <app-editor-label\n [changed]=\"changes.js !== undefined\"\n [focused]=\"focusedArea === 'js'\">\n JS\n </app-editor-label>\n <fs-text-editor \n [(ngModel)]=\"js\" \n name=\"js\"\n [fsModelChangeOptions]=\"{ debounce: 0 }\"\n (fsModelChange)=\"change(EditorType.Js, $event)\"\n [config]=\"jsConfig\">\n </fs-text-editor> \n </div>\n </as-split-area>\n <as-split-area [size]=\"30\" [visible]=\"showGlobalScss\" [order]=\"4\">\n <div class=\"editor-container\">\n <app-editor-label\n [changed]=\"changes.globalScss !== undefined\"\n [focused]=\"focusedArea === 'globalScss'\">\n Global SCSS\n </app-editor-label>\n <ng-container *fsSkeleton=\"contentStyle\">\n <fs-text-editor \n [(ngModel)]=\"contentStyle.scss\" \n name=\"globalScss\"\n [fsModelChangeOptions]=\"{ debounce: 300 }\"\n (fsModelChange)=\"change(EditorType.GlobalScss, $event)\"\n [config]=\"globalScssConfig\">\n </fs-text-editor> \n </ng-container> \n </div>\n </as-split-area>\n</as-split>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\n\nimport { MatButtonToggle, MatButtonToggleChange, MatButtonToggleGroup } from '@angular/material/button-toggle';\n\nimport { EditorType } from '../../../../enums';\n\n\n@Component({\n selector: 'app-editor-toggles',\n templateUrl: './editor-toggles.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n MatButtonToggleGroup,\n MatButtonToggle,\n ],\n})\nexport class EditorTogglesComponent {\n\n @Input()\n public editors: Record<string, boolean>;\n\n @Input()\n public showJs = false;\n\n @Output()\n public toggleChange = new EventEmitter<MatButtonToggleChange>();\n\n public EditorType = EditorType;\n\n}\n","<mat-button-toggle-group multiple>\n <mat-button-toggle value=\"html\" [checked]=\"editors[EditorType.Html]\" (change)=\"toggleChange.emit($event)\">HTML</mat-button-toggle>\n <mat-button-toggle value=\"scss\" [checked]=\"editors[EditorType.Scss]\" (change)=\"toggleChange.emit($event)\">SCSS</mat-button-toggle>\n @if (showJs) {\n <mat-button-toggle value=\"js\" [checked]=\"editors[EditorType.Js]\" (change)=\"toggleChange.emit($event)\">JS</mat-button-toggle>\n }\n <mat-button-toggle value=\"globalScss\" [checked]=\"editors[EditorType.GlobalScss]\" (change)=\"toggleChange.emit($event)\">Global SCSS</mat-button-toggle>\n</mat-button-toggle-group>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\n\nimport { MatButton, MatIconButton } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatTooltip } from '@angular/material/tooltip';\n\n\n@Component({\n selector: 'app-editor-actions',\n templateUrl: './editor-actions.component.html',\n styleUrls: ['./editor-actions.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n MatButton,\n MatIconButton,\n MatIcon,\n MatTooltip,\n ],\n})\nexport class EditorActionsComponent {\n\n @Input()\n public saveDisabled = false;\n\n @Input()\n public isMac = false;\n\n @Input()\n public previewPath: string = null;\n\n @Output()\n public settings = new EventEmitter<void>();\n\n @Output()\n public save = new EventEmitter<void>();\n\n @Output()\n public done = new EventEmitter<void>();\n\n @Output()\n public preview = new EventEmitter<void>();\n\n}\n","<button\n type=\"button\"\n mat-icon-button\n (click)=\"settings.emit()\">\n <mat-icon>settings</mat-icon>\n</button>\n\n<div class=\"actions\">\n <button\n mat-stroked-button\n color=\"primary\"\n type=\"button\"\n [disabled]=\"saveDisabled\"\n [matTooltip]=\"isMac ? 'cmd+s' : 'ctrl+s'\"\n (click)=\"save.emit()\">\n Save\n </button>\n\n @if (previewPath !== null) {\n <button\n mat-stroked-button\n type=\"button\"\n (click)=\"preview.emit()\">\n Preview\n </button>\n }\n\n <button\n mat-stroked-button\n type=\"button\"\n (click)=\"done.emit()\">\n Done\n </button>\n</div>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit, QueryList, ViewChildren, inject } from '@angular/core';\n\nimport { MAT_DIALOG_DATA, MatDialogRef, MatDialogTitle, MatDialogContent, MatDialogActions } from '@angular/material/dialog';\n\nimport { FsMessage } from '@firestitch/message';\nimport { FsTextEditorComponent } from '@firestitch/text-editor';\n\nimport { Subject, of } from 'rxjs';\nimport { switchMap, takeUntil, tap } from 'rxjs/operators';\n\nimport { FS_CONTENT_CONFIG } from '../../../../injectors';\nimport { FsContentConfig } from '../../../../interfaces';\nimport { FsSkeletonModule } from '@firestitch/skeleton';\nimport { FormsModule } from '@angular/forms';\nimport { FsFormModule } from '@firestitch/form';\nimport { FsDialogModule } from '@firestitch/dialog';\nimport { CdkScrollable } from '@angular/cdk/scrolling';\nimport { MatFormField, MatLabel } from '@angular/material/form-field';\nimport { MatInput } from '@angular/material/input';\n\n\n@Component({\n templateUrl: './content-layout.component.html',\n styleUrls: ['./content-layout.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n FsSkeletonModule,\n FormsModule,\n FsFormModule,\n FsDialogModule,\n MatDialogTitle,\n CdkScrollable,\n MatDialogContent,\n MatFormField,\n MatLabel,\n MatInput,\n MatDialogActions,\n ],\n})\nexport class ContentLayoutComponent implements OnInit, OnDestroy {\n private _config = inject<FsContentConfig>(FS_CONTENT_CONFIG);\n private _data = inject(MAT_DIALOG_DATA);\n private _dialogRef = inject<MatDialogRef<ContentLayoutComponent>>(MatDialogRef);\n private _message = inject(FsMessage);\n private _cdRef = inject(ChangeDetectorRef);\n\n\n @ViewChildren(FsTextEditorComponent)\n public textEditors: QueryList<FsTextEditorComponent>;\n\n public contentLayout = null;\n public editors = { content: true, styles: true };\n\n private _destroy$ = new Subject<void>();\n\n public ngOnInit(): void {\n this._fetchData();\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next(null);\n this._destroy$.complete();\n }\n\n public save = () => {\n return this._config.saveContentLayout(this.contentLayout)\n .pipe(\n tap((contentLayout) => {\n this._message.success('Saved Changes');\n this._dialogRef.close(contentLayout);\n }),\n );\n };\n\n private _fetchData(): void {\n of(this._data.contentLayout)\n .pipe(\n switchMap((contentLayout) => {\n return of(contentLayout);\n }),\n takeUntil(this._destroy$),\n )\n .subscribe((contentLayout) => {\n this.contentLayout = { ...contentLayout };\n\n this._cdRef.markForCheck();\n });\n }\n\n}\n","<form fsForm [submit]=\"save\" *fsSkeletonForm=\"contentLayout\">\n <fs-dialog>\n <h1 mat-dialog-title>{{contentLayout.id ? 'Layout' : 'Layout Page'}}</h1>\n <div mat-dialog-content>\n <div class=\"fs-column\">\n <mat-form-field>\n <mat-label>Name</mat-label>\n <input\n matInput\n [(ngModel)]=\"contentLayout.name\"\n name=\"name\"\n required>\n </mat-form-field>\n <mat-form-field>\n <mat-label>Tag</mat-label>\n <input\n matInput\n [(ngModel)]=\"contentLayout.tag\"\n name=\"tag\">\n </mat-form-field>\n </div>\n </div>\n\n <div mat-dialog-actions>\n <fs-form-dialog-actions>\n </fs-form-dialog-actions>\n </div>\n </fs-dialog>\n</form>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit, ViewChild, inject } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { CdkScrollable } from '@angular/cdk/scrolling';\nimport { MatButtonToggleChange } from '@angular/material/button-toggle';\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogContent, MatDialogRef, MatDialogTitle } from '@angular/material/dialog';\n\nimport { FsDialogModule } from '@firestitch/dialog';\nimport { FsFormModule } from '@firestitch/form';\nimport { FsMessage } from '@firestitch/message';\nimport { FsPrompt } from '@firestitch/prompt';\nimport { FsSkeletonModule } from '@firestitch/skeleton';\n\nimport { Subject, fromEvent, of, throwError } from 'rxjs';\nimport { filter, finalize, switchMap, takeUntil, tap } from 'rxjs/operators';\n\nimport { EditorType } from '../../../../enums';\nimport { FsContentConfig } from '../../../../interfaces';\nimport { EditorComponent } from '../../../editor/components/editor';\nimport { EditorComponent as EditorComponent_1 } from '../../../editor/components/editor/editor.component';\nimport { EditorTogglesComponent } from '../../../editor/components/editor-toggles';\nimport { EditorActionsComponent } from '../../../editor/components/editor-actions';\nimport { ContentLayoutComponent } from '../content-layout/content-layout.component';\n\n\n@Component({\n templateUrl: './content-layout-editor.component.html',\n styleUrls: ['./content-layout-editor.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n FormsModule,\n FsFormModule,\n FsSkeletonModule,\n FsDialogModule,\n MatDialogTitle,\n EditorTogglesComponent,\n EditorActionsComponent,\n CdkScrollable,\n MatDialogContent,\n EditorComponent_1,\n ],\n})\nexport class ContentLayoutEditorComponent implements OnInit, OnDestroy {\n\n @ViewChild(EditorComponent)\n public editor: EditorComponent;\n\n public contentLayout: {\n id?: number;\n styles?: string;\n content?: string;\n name?: string;\n };\n\n public get isMac(): boolean {\n return navigator.platform.toUpperCase().indexOf('MAC') >= 0;\n }\n\n public submitting: boolean;\n\n public config: FsContentConfig;\n public EditorType = EditorType;\n public focused = null;\n public title;\n public editors = {\n [EditorType.Html]: true,\n [EditorType.Scss]: true,\n [EditorType.GlobalScss]: false,\n };\n\n private _destroy$ = new Subject<void>();\n private _data = inject(MAT_DIALOG_DATA);\n private _dialogRef = inject<MatDialogRef<ContentLayoutEditorComponent>>(MatDialogRef);\n private _message = inject(FsMessage);\n private _dialog = inject(MatDialog);\n private _cdRef = inject(ChangeDetectorRef);\n private _prompt = inject(FsPrompt);\n\n public ngOnInit(): void {\n this._dialogRef.addPanelClass('fs-content-editor-overlay-pane');\n this._dialogRef.disableClose = true;\n this.config = this._data.contentConfig;\n this._initContentLayout(this._data.contentLayout);\n this._initEscape();\n }\n\n public editorToggleChange(event: MatButtonToggleChange): void {\n this.editors[event.value] = !this.editors[event.value];\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next(null);\n this._destroy$.complete();\n }\n\n public _initContentLayout(contentLayout) {\n this.config.loadContentLayout(contentLayout.id)\n .subscribe((data) => {\n this.contentLayout = data;\n this._cdRef.markForCheck();\n });\n }\n\n public editorFocused(type) {\n this.focused = type;\n }\n\n public save(): void {\n this.submitted()\n .subscribe();\n }\n\n public submitted = () => {\n this.submitting = true;\n\n return of(null)\n .pipe(\n filter(() => this.focused),\n switchMap(() => {\n switch (this.focused) {\n case EditorType.Html:\n case EditorType.Scss:\n return this.saveContentPage();\n case EditorType.GlobalScss:\n return this.editor.saveGlobalScss();\n }\n\n return throwError('Invalid focus');\n }),\n tap(() => {\n this.editor.clearChange(this.focused);\n this._cdRef.markForCheck();\n }),\n finalize(() => {\n this.submitting = false;\n this._cdRef.markForCheck();\n }),\n );\n };\n\n public saveContentPage() {\n const names = {\n [EditorType.Scss]: 'styles',\n [EditorType.Html]: 'content',\n };\n\n const data = {\n id: this.contentLayout.id,\n [names[this.focused]]: this.editor.changes[this.focused],\n };\n\n return this.config.saveContentLayout({\n id: this.contentLayout.id,\n ...data,\n })\n .pipe(\n tap(() => {\n this._message.success('Saved Changes');\n }),\n );\n }\n\n public close(): void {\n if (!this.editor.hasChanges) {\n return this._dialogRef.close();\n }\n\n this._prompt.confirm({\n dialogConfig: {\n width: null,\n },\n title: 'You have unsaved changes',\n template: 'What would you like to do with your changes?',\n buttons: [\n {\n label: 'Review Changes',\n value: 'review',\n },\n {\n label: 'Discard Changes',\n value: 'discard',\n },\n ],\n })\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe((value) => {\n if (value === 'discard') {\n this._dialogRef.close();\n }\n });\n }\n\n public openSettings(): void {\n this._dialog.open(ContentLayoutComponent, {\n data: {\n contentLayout: this.contentLayout,\n },\n })\n .afterClosed()\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe((contentLayout) => {\n this.contentLayout = {\n ...this.contentLayout,\n ...contentLayout,\n };\n this._cdRef.markForCheck();\n });\n }\n\n private _initEscape(): void {\n fromEvent(document, 'keydown')\n .pipe(\n filter((event: KeyboardEvent) => event.code === 'Escape'),\n takeUntil(this._destroy$),\n ).subscribe(() => {\n const dialogRef = this._dialog.openDialogs.reverse()[0];\n if (dialogRef?.componentInstance === this) {\n this.close();\n }\n });\n }\n\n}\n","<form\n fsForm\n [submit]=\"submitted\"\n [dirtySubmitButton]=\"false\"\n [confirm]=\"false\">\n <fs-dialog *fsSkeletonForm=\"contentLayout\">\n <h1 mat-dialog-title>\n <div class=\"title-container\">\n <div class=\"title\">\n Layout Editor\n <div class=\"small\">\n {{ contentLayout.name }}\n </div>\n </div>\n <div class=\"toggles\">\n <app-editor-toggles\n [editors]=\"editors\"\n (toggleChange)=\"editorToggleChange($event)\">\n </app-editor-toggles>\n </div>\n <app-editor-actions\n [saveDisabled]=\"!editor?.hasChanges || submitting\"\n [isMac]=\"isMac\"\n (settings)=\"openSettings()\"\n (save)=\"save()\"\n (done)=\"close()\">\n </app-editor-actions>\n </div>\n </h1>\n <div mat-dialog-content>\n <app-editor\n [contentConfig]=\"config\"\n [showHtml]=\"editors.html\"\n [showScss]=\"editors.scss\"\n [showGlobalScss]=\"editors.globalScss\"\n [html]=\"contentLayout.content\"\n [scss]=\"contentLayout.styles\"\n (focused)=\"editorFocused($event)\">\n </app-editor>\n </div>\n <!-- <div mat-dialog-actions>\n <button \n mat-button\n color=\"primary\"\n (click)=\"close()\"\n type=\"button\"> \n Done \n </button>\n <div class=\"toggles\">\n <mat-button-toggle-group multiple>\n <mat-button-toggle value=\"html\" [checked]=\"editors.html\" (change)=\"editorToggleChange($event)\">HTML</mat-button-toggle>\n <mat-button-toggle value=\"scss\" [checked]=\"editors.scss\" (change)=\"editorToggleChange($event)\">SCSS</mat-button-toggle>\n <mat-button-toggle value=\"globalScss\" [checked]=\"editors.globalScss\" (change)=\"editorToggleChange($event)\">Global SCSS</mat-button-toggle>\n </mat-button-toggle-group> \n </div>\n </div> -->\n </fs-dialog>\n</form>","import { ChangeDetectionStrategy, Component, OnDestroy, OnInit, ViewChild, inject } from '@angular/core';\n\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { ItemType } from '@firestitch/filter';\nimport { FsListComponent, FsListConfig, FsListModule } from '@firestitch/list';\n\nimport { Observable, Subject } from 'rxjs';\nimport { filter, map, takeUntil } from 'rxjs/operators';\n\nimport { FS_CONTENT_CONFIG } from '../../../../injectors';\nimport { FsContentConfig } from '../../../../interfaces';\nimport { ContentLayoutComponent } from '../../components/content-layout';\nimport { ContentLayoutEditorComponent } from '../content-layout-editor/content-layout-editor.component';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { FsDateModule } from '@firestitch/date';\n\n\n@Component({\n selector: 'fs-content-layouts',\n templateUrl: './content-layouts.component.html',\n styleUrls: ['./content-layouts.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n FsListModule,\n NgTemplateOutlet,\n FsDateModule,\n ],\n})\nexport class FsContentLayoutsComponent implements OnInit, OnDestroy {\n private _config = inject<FsContentConfig>(FS_CONTENT_CONFIG);\n private _dialog = inject(MatDialog);\n\n\n @ViewChild(FsListComponent)\n public listComponent: FsListComponent;\n\n public listConfig: FsListConfig;\n\n private _destroy$ = new Subject<void>();\n\n public ngOnInit(): void {\n this._initListConfig();\n }\n\n public openEditor(contentLayout: any): void {\n this._dialog.open(ContentLayoutEditorComponent, {\n maxWidth: '100vw',\n width: '100%',\n height: '100%',\n data: {\n contentLayout,\n contentConfig: this._config,\n },\n })\n .afterClosed()\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe(() => {\n this.listComponent.reload();\n });\n }\n\n public openLayout(contentLayout: any): Observable<any> {\n return this._dialog.open(ContentLayoutComponent, {\n data: {\n contentLayout,\n },\n })\n .afterClosed()\n .pipe(\n filter((_contentLayout) => !!_contentLayout),\n takeUntil(this._destroy$),\n );\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next(null);\n this._destroy$.complete();\n }\n\n private _initListConfig(): void {\n this.listConfig = {\n filters: [\n {\n name: 'keyword',\n type: ItemType.Keyword,\n label: 'Search',\n },\n ],\n actions: [\n {\n label: 'Create',\n click: () => {\n this.openLayout({})\n .subscribe(() => {\n this.listComponent.reload();\n });\n },\n },\n ],\n rowActions: [\n {\n click: (data) => {\n return this._config.deleteContentLayout(data);\n },\n remove: {\n title: 'Confirm',\n template: 'Are you sure you would like to delete this record?',\n },\n menu: true,\n label: 'Delete',\n },\n ],\n fetch: (query) => {\n return this._config.loadContentLayouts(query)\n .pipe(\n map((response: any) => {\n return { data: response.contentLayouts, paging: response.paging };\n }),\n );\n },\n restore: {\n query: { state: 'deleted' },\n filterLabel: 'Show Deleted',\n menuLabel: 'Restore',\n reload: true,\n click: (row) => {\n return this._config.saveContentLayout({ id: row.id, state: 'active' });\n },\n },\n };\n }\n\n}\n\n","<fs-list [config]=\"listConfig\">\n <fs-list-column name=\"name\" title=\"Name\" [sortable]=\"true\">\n <ng-template fs-list-cell let-row=\"row\">\n @if (row.state !== 'deleted') {\n <a (click)=\"openEditor(row)\">\n <ng-container [ngTemplateOutlet]=\"name\"></ng-container>\n </a>\n } @else {\n {{row.name}}\n }\n\n <ng-template #name>{{row.name}}</ng-template>\n </ng-template>\n </fs-list-column>\n <fs-list-column name=\"modify_date\" title=\"Modified\" [sortable]=\"true\">\n <ng-template fs-list-cell let-row=\"row\">\n {{row.modifyDate | fsDate: 'date-time-yearless'}}\n </ng-template>\n </fs-list-column>\n</fs-list>\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { ContentLayoutEditorComponent } from './components/content-layout-editor/content-layout-editor.component';\nimport { ContentLayoutComponent } from './components/content-layout/content-layout.component';\nimport { FsContentLayoutsComponent } from './components/content-layouts/content-layouts.component';\n\n@NgModule({\n imports: [\n FsContentLayoutsComponent,\n ContentLayoutComponent,\n ContentLayoutEditorComponent,\n ],\n exports: [\n FsContentLayoutsComponent,\n ],\n})\nexport class FsContentLayoutsModule {\n public static forRoot(): ModuleWithProviders<FsContentLayoutsModule> {\n return {\n ngModule: FsContentLayoutsModule,\n };\n }\n}\n","import { PageType } from '../enums';\n\nexport const PageTypes = [\n { name: 'Page', value: PageType.StandardPage },\n { name: 'Page (Not Found)', value: PageType.NotFoundPage },\n];\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit, QueryList, ViewChildren, inject } from '@angular/core';\n\nimport { MAT_DIALOG_DATA, MatDialogRef, MatDialogTitle, MatDialogContent, MatDialogActions } from '@angular/material/dialog';\n\nimport { FsMessage } from '@firestitch/message';\nimport { FsTextEditorComponent } from '@firestitch/text-editor';\n\nimport { Subject, of } from 'rxjs';\nimport { switchMap, takeUntil, tap } from 'rxjs/operators';\n\nimport { PageTypes } from '../../../../consts';\nimport { FS_CONTENT_CONFIG } from '../../../../injectors';\nimport { FsContentConfig } from '../../../../interfaces';\nimport { FsSkeletonModule } from '@firestitch/skeleton';\nimport { FormsModule } from '@angular/forms';\nimport { FsFormModule } from '@firestitch/form';\nimport { FsDialogModule } from '@firestitch/dialog';\nimport { CdkScrollable } from '@angular/cdk/scrolling';\nimport { MatFormField, MatLabel } from '@angular/material/form-field';\nimport { MatSelect } from '@angular/material/select';\nimport { MatOption } from '@angular/material/core';\nimport { MatInput } from '@angular/material/input';\n\n\n@Component({\n templateUrl: './content-page.component.html',\n styleUrls: ['./content-page.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n FsSkeletonModule,\n FormsModule,\n FsFormModule,\n FsDialogModule,\n MatDialogTitle,\n CdkScrollable,\n MatDialogContent,\n MatFormField,\n MatLabel,\n MatSelect,\n MatOption,\n MatInput,\n MatDialogActions,\n ],\n})\nexport class ContentPageComponent implements OnInit, OnDestroy {\n private _config = inject<FsContentConfig>(FS_CONTENT_CONFIG);\n private _data = inject(MAT_DIALOG_DATA);\n private _dialogRef = inject<MatDialogRef<ContentPageComponent>>(MatDialogRef);\n private _message = inject(FsMessage);\n private _cdRef = inject(ChangeDetectorRef);\n\n\n @ViewChildren(FsTextEditorComponent)\n public textEditors: QueryList<FsTextEditorComponent>;\n\n public contentPage = null;\n public PageTypes = PageTypes;\n public contentLayouts;\n public editors = { content: true, styles: true };\n\n private _destroy$ = new Subject<void>();\n\n public ngOnInit(): void {\n this._dialogRef.updateSize('600px');\n this._fetchData();\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next(null);\n this._destroy$.complete();\n }\n\n public save = () => {\n return this._config.saveContentPage(this.contentPage)\n .pipe(\n tap((contentPage) => {\n this._message.success('Saved Changes');\n this._dialogRef.close(contentPage);\n }),\n );\n };\n\n private _fetchData(): void {\n this._config.loadContentLayouts()\n .subscribe((contentLayouts) => {\n this.contentLayouts = contentLayouts;\n this._cdRef.markForCheck();\n });\n\n of(this._data.contentPage)\n .pipe(\n switchMap((contentPage) => {\n return of(contentPage);\n }),\n takeUntil(this._destroy$),\n )\n .subscribe((contentPage) => {\n this.contentPage = {\n ...contentPage,\n path: contentPage.path || '/',\n };\n\n this._cdRef.markForCheck();\n });\n }\n\n}\n","<form fsForm [submit]=\"save\" *fsSkeletonForm=\"contentPage\">\n <fs-dialog>\n <h1 mat-dialog-title>{{contentPage.id ? 'Page' : 'Create Page'}}</h1>\n <div mat-dialog-content>\n <div class=\"fs-column\">\n <mat-form-field>\n <mat-label>Type</mat-label>\n <mat-select\n [(ngModel)]=\"contentPage.type\"\n name=\"type\"\n required>\n @for (item of PageTypes; track item) {\n <mat-option\n [value]=\"item.value\">\n {{ item.name }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n @if (contentLayouts) {\n <mat-form-field>\n <mat-label>Layout</mat-label>\n <mat-select\n [(ngModel)]=\"contentPage.contentLayoutId\"\n required\n name=\"contentLayoutId\">\n @for (item of contentLayouts; track item) {\n <mat-option\n [value]=\"item.id\">\n {{ item.name }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <mat-form-field>\n <mat-label>Name</mat-label>\n <input\n matInput\n [(ngModel)]=\"contentPage.name\"\n name=\"name\"\n required>\n </mat-form-field>\n <mat-form-field>\n <mat-label>Path</mat-label>\n <input\n matInput\n [(ngModel)]=\"contentPage.path\"\n name=\"path\"\n required>\n </mat-form-field>\n <mat-form-field>\n <mat-label>Title</mat-label>\n <input\n matInput\n [(ngModel)]=\"contentPage.title\"\n name=\"title\">\n </mat-form-field>\n </div>\n </div>\n\n <div mat-dialog-actions>\n <fs-form-dialog-actions>\n </fs-form-dialog-actions>\n </div>\n </fs-dialog>\n</form>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit, ViewChild, inject } from '@angular/core';\n\nimport { MatButtonToggleChange } from '@angular/material/button-toggle';\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogRef, MatDialogTitle, MatDialogContent } from '@angular/material/dialog';\n\nimport { FsMessage } from '@firestitch/message';\nimport { FsPrompt } from '@firestitch/prompt';\n\nimport { Observable, Subject, fromEvent, of, throwError } from 'rxjs';\nimport { filter, finalize, switchMap, takeUntil, tap } from 'rxjs/operators';\n\nimport { EditorType } from '../../../../enums';\nimport { FsContentConfig } from '../../../../interfaces';\nimport { EditorComponent } from '../../../editor/components/editor';\nimport { ContentPageComponent } from '../content-page/content-page.component';\nimport { FormsModule } from '@angular/forms';\nimport { FsFormModule } from '@firestitch/form';\nimport { FsSkeletonModule } from '@firestitch/skeleton';\nimport { FsDialogModule } from '@firestitch/dialog';\nimport { CdkScrollable } from '@angular/cdk/scrolling';\nimport { EditorComponent as EditorComponent_1 } from '../../../editor/components/editor/editor.component';\nimport { EditorTogglesComponent } from '../../../editor/components/editor-toggles';\nimport { EditorActionsComponent } from '../../../editor/components/editor-actions';\n\n\n@Component({\n templateUrl: './content-page-editor.component.html',\n styleUrls: ['./content-page-editor.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n FormsModule,\n FsFormModule,\n FsSkeletonModule,\n FsDialogModule,\n MatDialogTitle,\n EditorTogglesComponent,\n EditorActionsComponent,\n CdkScrollable,\n MatDialogContent,\n EditorComponent_1,\n ],\n})\nexport class ContentPageEditorComponent implements OnInit, OnDestroy {\n private _data = inject(MAT_DIALOG_DATA);\n private _dialogRef = inject<MatDialogRef<ContentPageEditorComponent>>(MatDialogRef);\n private _message = inject(FsMessage);\n private _dialog = inject(MatDialog);\n private _cdRef = inject(ChangeDetectorRef);\n private _prompt = inject(FsPrompt);\n\n\n @ViewChild(EditorComponent)\n public editor: EditorComponent;\n\n public contentPage: {\n id?: number;\n styles?: string;\n content?: string;\n name?: string;\n js?: string;\n path?: string;\n };\n public focused = null;\n public config: FsContentConfig;\n public resizing = false;\n public title;\n public editors = {\n [EditorType.Html]: true,\n [EditorType.Scss]: true,\n [EditorType.Js]: false,\n [EditorType.GlobalScss]: false,\n };\n\n public get isMac(): boolean {\n return navigator.platform.toUpperCase().indexOf('MAC') >= 0;\n }\n\n public submitting: boolean;\n\n private _destroy$ = new Subject<void>();\n\n public ngOnInit(): void {\n this._dialogRef.addPanelClass('fs-content-editor-overlay-pane');\n this._dialogRef.disableClose = true;\n this.config = this._data.contentConfig;\n this._initContentPage(this._data.contentPage);\n this._initEscape();\n }\n\n public editorToggleChange(event: MatButtonToggleChange): void {\n this.editors[event.value] = !this.editors[event.value];\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next(null);\n this._destroy$.complete();\n }\n\n public _initContentPage(contentPage) {\n this.config.loadContentPage(contentPage.id)\n .subscribe((data) => {\n this.contentPage = data;\n this._cdRef.markForCheck();\n });\n }\n\n public editorFocused(type) {\n this.focused = type;\n }\n\n public save(): void {\n this.submitted()\n .subscribe();\n }\n\n public submitted = (): Observable<any> => {\n this.submitting = true;\n\n return of(null)\n .pipe(\n filter(() => this.focused),\n switchMap(() => {\n switch (this.focused) {\n case EditorType.Js:\n case EditorType.Html:\n case EditorType.Scss:\n return this.saveContentPage();\n case EditorType.GlobalScss:\n return this.editor.saveGlobalScss();\n }\n\n return throwError('Invalid focus');\n }),\n tap(() => {\n this.editor.clearChange(this.focused);\n this._cdRef.markForCheck();\n }),\n finalize(() => {\n this.submitting = false;\n this._cdRef.markForCheck();\n }),\n )\n .pipe(\n takeUntil(this._destroy$),\n );\n };\n\n public saveContentPage() {\n const names = {\n [EditorType.Js]: 'js',\n [EditorType.Scss]: 'styles',\n [EditorType.Html]: 'content',\n };\n\n const data = {\n id: this.contentPage.id,\n [names[this.focused]]: this.editor.changes[this.focused],\n };\n\n return this.config.saveContentPage({\n id: this.contentPage.id,\n ...data,\n })\n .pipe(\n tap(() => {\n this._message.success('Saved Changes');\n }),\n );\n }\n\n\n public close(): void {\n if (!this.editor.hasChanges) {\n return this._dialogRef.close();\n }\n\n this._prompt.confirm({\n dialogConfig: {\n width: null,\n },\n title: 'You have unsaved changes',\n template: 'What would you like to do with your changes?',\n buttons: [\n {\n label: 'Review Changes',\n value: 'review',\n },\n {\n label: 'Discard Changes',\n value: 'discard',\n },\n ],\n })\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe((value) => {\n if (value === 'discard') {\n this._dialogRef.close();\n }\n });\n }\n\n public openPreview(): void {\n window.open(this.contentPage.path, '_blank');\n }\n\n public openSettings(): void {\n this._dialog.open(ContentPageComponent, {\n data: {\n contentPage: this.contentPage,\n },\n })\n .afterClosed()\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe((contentPage) => {\n this.contentPage = {\n ...this.contentPage,\n ...contentPage,\n };\n this._cdRef.markForCheck();\n });\n }\n\n private _initEscape(): void {\n fromEvent(document, 'keydown')\n .pipe(\n filter((event: KeyboardEvent) => event.code === 'Escape'),\n takeUntil(this._destroy$),\n ).subscribe(() => {\n const dialogRef = this._dialog.openDialogs.reverse()[0];\n if (dialogRef?.componentInstance === this) {\n this.close();\n }\n });\n }\n\n}\n","<form fsForm [submit]=\"submitted\" [dirtySubmitButton]=\"false\" [confirm]=\"false\">\n <fs-dialog *fsSkeletonForm=\"contentPage\">\n <h1 mat-dialog-title>\n <div class=\"title-container\">\n <div class=\"title\">\n Page Editor\n <div class=\"small\">{{contentPage.name}}</div>\n </div>\n\n <div class=\"toggles\">\n <app-editor-toggles\n [editors]=\"editors\"\n [showJs]=\"true\"\n (toggleChange)=\"editorToggleChange($event)\">\n </app-editor-toggles>\n </div>\n\n <app-editor-actions\n [saveDisabled]=\"!editor?.hasChanges || submitting\"\n [isMac]=\"isMac\"\n [previewPath]=\"contentPage.path\"\n (settings)=\"openSettings()\"\n (save)=\"save()\"\n (preview)=\"openPreview()\"\n (done)=\"close()\">\n </app-editor-actions>\n </div>\n </h1>\n <div mat-dialog-content>\n <app-editor\n [contentConfig]=\"config\"\n [showHtml]=\"editors.html\"\n [showJs]=\"editors.js\"\n [showScss]=\"editors.scss\"\n [showGlobalScss]=\"editors.globalScss\"\n [html]=\"contentPage.content\"\n [scss]=\"contentPage.styles\"\n [js]=\"contentPage.js\"\n (focused)=\"editorFocused($event)\">\n </app-editor>\n </div>\n </fs-dialog>\n</form>\n","import { ChangeDetectionStrategy, Component, Input, OnDestroy, OnInit, ViewChild, inject } from '@angular/core';\n\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { index } from '@firestitch/common';\nimport { ItemType } from '@firestitch/filter';\nimport { FsHtmlEditorConfig } from '@firestitch/html-editor';\nimport { FsListComponent, FsListConfig, FsListModule } from '@firestitch/list';\n\nimport { Observable, Subject } from 'rxjs';\nimport { filter, map, takeUntil } from 'rxjs/operators';\n\n\nimport { PageTypes } from '../../../../consts';\nimport { PageType } from '../../../../enums';\nimport { FS_CONTENT_CONFIG } from '../../../../injectors';\nimport { FsContentConfig } from '../../../../interfaces';\nimport { ContentPageEditorComponent } from '../content-page-editor';\nimport { ContentPageComponent } from '../content-page/content-page.component';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { FsDateModule } from '@firestitch/date';\n\n\n@Component({\n selector: 'fs-content-pages',\n templateUrl: './content-pages.component.html',\n styleUrls: ['./content-pages.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n FsListModule,\n NgTemplateOutlet,\n FsDateModule,\n ],\n})\nexport class FsContentPagesComponent implements OnInit, OnDestroy {\n private _config = inject<FsContentConfig>(FS_CONTENT_CONFIG);\n private _dialog = inject(MatDialog);\n\n\n @Input() public htmlEditorConfig: FsHtmlEditorConfig;\n\n @ViewChild(FsListComponent)\n public listComponent: FsListComponent;\n\n public listConfig: FsListConfig;\n public pageTypes = index(PageTypes, 'value', 'name');\n\n private _destroy$ = new Subject<void>();\n\n public ngOnInit(): void {\n this._initListConfig();\n }\n\n public openEditor(contentPage: any): void {\n this._dialog.open(ContentPageEditorComponent, {\n data: {\n contentPage,\n config: this._config,\n contentConfig: this._config,\n },\n maxWidth: '100vw',\n width: '100%',\n height: '100%',\n autoFocus: false,\n })\n .afterClosed()\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe(() => {\n this.listComponent.reload();\n });\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next(null);\n this._destroy$.complete();\n }\n\n public openContentPage(contentPage): Observable<any> {\n return this._dialog.open(ContentPageComponent, {\n data: { contentPage },\n })\n .afterClosed()\n .pipe(\n takeUntil(this._destroy$),\n );\n }\n\n private _initListConfig(): void {\n this.listConfig = {\n filters: [\n {\n name: 'keyword',\n type: ItemType.Keyword,\n label: 'Search',\n },\n ],\n actions: [\n {\n label: 'Create',\n click: () => {\n this.openContentPage({\n type: PageType.StandardPage,\n })\n .pipe(\n filter((contentPage) => !!contentPage),\n )\n .subscribe((contentPage) => {\n this.openEditor(contentPage);\n this.listComponent.reload();\n });\n },\n },\n ],\n rowActions: [\n {\n click: (data) => {\n return this._config.deleteContentPage(data);\n },\n remove: {\n title: 'Confirm',\n template: 'Are you sure you would like to delete this record?',\n },\n menu: true,\n label: 'Delete',\n },\n ],\n fetch: (query) => {\n query = {\n contentLayouts: true,\n ...query,\n };\n\n return this._config.loadContentPages(query)\n .pipe(\n map((response: any) => {\n return { data: response.contentPages, paging: response.paging };\n }),\n );\n },\n restore: {\n query: { state: 'deleted' },\n filterLabel: 'Show Deleted',\n menuLabel: 'Restore',\n reload: true,\n click: (row) => {\n return this._config.saveContentPage({ id: row.id, state: 'active' });\n },\n },\n };\n }\n}\n\n\n","<fs-list [config]=\"listConfig\">\n <fs-list-column name=\"name\" title=\"Name\" [sortable]=\"true\">\n <ng-template fs-list-cell let-row=\"row\">\n @if (row.state !== 'deleted') {\n <a (click)=\"openEditor(row)\">\n <ng-container [ngTemplateOutlet]=\"name\"></ng-container>\n </a>\n } @else {\n {{row.name}}\n }\n <ng-template #name>{{row.name}}</ng-template>\n </ng-template>\n </fs-list-column>\n <fs-list-column name=\"path\" title=\"Path\" [sortable]=\"true\">\n <ng-template fs-list-cell let-row=\"row\">\n @if (row.state !== 'deleted') {\n <a [href]=\"'/' + row.path\" target=\"_black\">\n <ng-container [ngTemplateOutlet]=\"path\"></ng-container>\n </a>\n } @else {\n /{{row.path}}\n }\n <ng-template #path>/{{row.path}}</ng-template>\n </ng-template>\n </fs-list-column>\n <fs-list-column name=\"layout\" title=\"Layout\">\n <ng-template fs-list-cell let-row=\"row\">\n {{row.contentLayout?.name}}\n </ng-template>\n </fs-list-column>\n <fs-list-column name=\"type\" title=\"Type\" [sortable]=\"true\">\n <ng-template fs-list-cell let-row=\"row\">\n {{pageTypes[row.type]}}\n </ng-template>\n </fs-list-column>\n <fs-list-column name=\"modify_date\" title=\"Modified\" [sortable]=\"true\">\n <ng-template fs-list-cell let-row=\"row\">\n {{row.modifyDate | fsDate: 'date-time-yearless'}}\n </ng-template>\n </fs-list-column>\n</fs-list>\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { ContentPageEditorComponent } from './components';\nimport { ContentPageComponent } from './components/content-page';\nimport { FsContentPagesComponent } from './components/content-pages';\n\n@NgModule({\n imports: [\n FsContentPagesComponent,\n ContentPageComponent,\n ContentPageEditorComponent,\n ],\n exports: [\n FsContentPagesComponent,\n ],\n})\nexport class FsContentPagesModule {\n public static forRoot(): ModuleWithProviders<FsContentPagesModule> {\n return {\n ngModule: FsContentPagesModule,\n };\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy, OnInit, ViewChild, inject } from '@angular/core';\n\n\nimport { FsFormDirective } from '@firestitch/form';\nimport { FsMessage } from '@firestitch/message';\nimport { FsTextEditorComponent, FsTextEditorModule } from '@firestitch/text-editor';\n\nimport { Subject } from 'rxjs';\nimport { tap } from 'rxjs/operators';\n\nimport { FS_CONTENT_CONFIG } from '../../../../injectors';\nimport { FsContentConfig } from '../../../../interfaces';\nimport { FsSkeletonModule } from '@firestitch/skeleton';\nimport { FormsModule } from '@angular/forms';\nimport { FsCommonModule } from '@firestitch/common';\n\n\n@Component({\n selector: 'fs-content-style',\n templateUrl: './content-style.component.html',\n styleUrls: ['./content-style.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n FsSkeletonModule,\n FsTextEditorModule,\n FormsModule,\n FsCommonModule,\n ],\n})\nexport class ContentStyleComponent implements OnInit, OnDestroy {\n private _config = inject<FsContentConfig>(FS_CONTENT_CONFIG);\n private _message = inject(FsMessage);\n private _cdRef = inject(ChangeDetectorRef);\n\n\n @ViewChild(FsTextEditorComponent)\n public textEditors: FsTextEditorComponent;\n\n @ViewChild(FsFormDirective)\n public form: FsFormDirective;\n\n @Input() public height: string = '100%';\n\n public contentStyle = null;\n public styleConfig = {\n tabSize: 2,\n language: 'scss',\n height: '100%',\n };\n\n private _destroy$ = new Subject<void>();\n\n public ngOnInit(): void {\n this.styleConfig.height = this.height;\n this._config.loadContentStyle()\n .subscribe((contentStyle) => {\n this.contentStyle = contentStyle;\n this._cdRef.markForCheck();\n });\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next(null);\n this._destroy$.complete();\n }\n\n public save() {\n this._config.saveContentStyle(this.contentStyle)\n .pipe(\n tap((contentStyle) => {\n this.contentStyle = {\n ...this.contentStyle,\n ...contentStyle,\n };\n\n this._cdRef.markForCheck();\n this._message.success('Saved Changes');\n }),\n ).subscribe();\n }\n\n}\n","<ng-container *fsSkeletonForm=\"contentStyle\">\n <fs-text-editor \n [(ngModel)]=\"contentStyle.scss\" \n name=\"contentStyle\"\n [fsModelChangeOptions]=\"{ debounce: 300 }\"\n (fsModelChange)=\"save()\"\n [config]=\"styleConfig\">\n </fs-text-editor> \n</ng-container>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i3","i4","i6","i1","i2","i5","EditorComponent_1"],"mappings":"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"}
1
+ {"version":3,"file":"firestitch-content.mjs","sources":["../../src/app/modules/content/components/content-renderer/content-renderer.component.ts","../../src/app/modules/content/components/content-renderer/content-renderer.component.html","../../src/app/injectors/content-config.injector.ts","../../src/app/modules/content/components/content/content.component.ts","../../src/app/modules/content/components/content/content.component.html","../../src/app/modules/content/fs-content.module.ts","../../src/app/enums/editor-type.ts","../../src/app/enums/page-type.enum.ts","../../src/app/modules/editor/components/editor-label/editor-label.component.ts","../../src/app/modules/editor/components/editor-label/editor-label.component.html","../../src/app/modules/editor/components/editor/editor.component.ts","../../src/app/modules/editor/components/editor/editor.component.html","../../src/app/modules/editor/components/editor-toggles/editor-toggles.component.ts","../../src/app/modules/editor/components/editor-toggles/editor-toggles.component.html","../../src/app/modules/editor/components/editor-actions/editor-actions.component.ts","../../src/app/modules/editor/components/editor-actions/editor-actions.component.html","../../src/app/modules/content-layouts/components/content-layout/content-layout.component.ts","../../src/app/modules/content-layouts/components/content-layout/content-layout.component.html","../../src/app/modules/content-layouts/components/content-layout-editor/content-layout-editor.component.ts","../../src/app/modules/content-layouts/components/content-layout-editor/content-layout-editor.component.html","../../src/app/modules/content-layouts/components/content-layouts/content-layouts.component.ts","../../src/app/modules/content-layouts/components/content-layouts/content-layouts.component.html","../../src/app/modules/content-layouts/fs-content-layouts.module.ts","../../src/app/consts/page-types.const.ts","../../src/app/modules/content-pages/components/content-page/content-page.component.ts","../../src/app/modules/content-pages/components/content-page/content-page.component.html","../../src/app/modules/content-pages/components/content-page-editor/content-page-editor.component.ts","../../src/app/modules/content-pages/components/content-page-editor/content-page-editor.component.html","../../src/app/modules/content-pages/components/content-pages/content-pages.component.ts","../../src/app/modules/content-pages/components/content-pages/content-pages.component.html","../../src/app/modules/content-pages/fs-content-pages.module.ts","../../src/app/modules/content-style/components/content-style/content-style.component.ts","../../src/app/modules/content-style/components/content-style/content-style.component.html","../../src/firestitch-content.ts"],"sourcesContent":["import { AfterViewChecked, ChangeDetectionStrategy, Component, ElementRef, Input, OnChanges, OnDestroy, SimpleChanges, ViewChild, inject } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { Router } from '@angular/router';\n\nimport { HtmlRenderer } from '@firestitch/html';\n\nimport { Subject } from 'rxjs';\n\n\n@Component({\n selector: 'fs-content-renderer',\n templateUrl: './content-renderer.component.html',\n styleUrls: ['./content-renderer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class ContentRendererComponent implements OnDestroy, AfterViewChecked, OnChanges{\n private _sanitizer = inject(DomSanitizer);\n private _router = inject(Router);\n private _el = inject(ElementRef);\n private _htmlRenderer = inject(HtmlRenderer);\n\n\n @ViewChild('script', { read: ElementRef })\n public script: ElementRef;\n\n @Input() public contentPage;\n\n public content: SafeHtml;\n\n private _destroy$ = new Subject();\n\n public ngOnChanges(changes: SimpleChanges): void {\n if(changes.contentPage.currentValue) {\n this._htmlRenderer.addStyle(this.contentPage.styles, { id: 'contentPageStyles' });\n this.content = this._sanitizer.bypassSecurityTrustHtml(this.contentPage.content);\n }\n }\n\n public ngAfterViewChecked(): void {\n this.registerHrefs();\n\n if(this.contentPage.js) {\n const script = document.createElement('script');\n script.text = this.contentPage.js;\n this.script.nativeElement.after(script);\n }\n }\n\n public registerHrefs(): void {\n Array.from(this.el.querySelectorAll('a[href]'))\n .filter((el: Element) => {\n return el.getAttribute('href').match(/^\\//);\n })\n .forEach((el: Element) => {\n el.addEventListener('click',(event: MouseEvent) => {\n if(!event.shiftKey && !event.ctrlKey) {\n event.preventDefault();\n const href = el.getAttribute('href');\n this._router.navigateByUrl(href);\n }\n });\n });\n }\n\n public get el(): any {\n return this._el.nativeElement;\n }\n\n public ngOnDestroy(): void {\n this.removeStyles();\n this._destroy$.next(null);\n this._destroy$.complete();\n }\n\n public removeStyles(): void {\n const el = document.querySelector('#contentPageStyles');\n if(el) {\n el.remove();\n }\n }\n\n}\n","@if (content) {\n <div [innerHTML]=\"content\"></div>\n}\n<span #script></span>","import { InjectionToken } from '@angular/core';\n\nexport const FS_CONTENT_CONFIG = new InjectionToken<any>('fs-content-config');\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, OnDestroy, OnInit, inject } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport { NavigationEnd, Router } from '@angular/router';\n\nimport { HtmlRenderer } from '@firestitch/html';\n\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nimport { FS_CONTENT_CONFIG } from '../../../../injectors';\nimport { FsContentConfig } from '../../../../interfaces';\nimport { ContentRendererComponent } from '../content-renderer/content-renderer.component';\n\n\n@Component({\n selector: 'fs-content',\n templateUrl: './content.component.html',\n styleUrls: ['./content.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [ContentRendererComponent],\n})\nexport class FsContentComponent implements OnInit, OnDestroy {\n private _config = inject<FsContentConfig>(FS_CONTENT_CONFIG);\n private _title = inject(Title);\n private _cdRef = inject(ChangeDetectorRef);\n private _router = inject(Router);\n private _el = inject(ElementRef);\n private _htmlRenderer = inject(HtmlRenderer);\n\n\n public contentPage;\n\n private _destroy$ = new Subject();\n\n public ngOnInit(): void {\n this._initContent();\n this._initStyles();\n }\n\n public get el(): any {\n return this._el.nativeElement;\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next(null);\n this._destroy$.complete();\n this._title.setTitle('');\n\n document.querySelector('#content-style')?.remove();\n }\n\n private _initStyles(): void {\n if(this._config.loadContentStyleCss) {\n this._config.loadContentStyleCss()\n .subscribe((styles) => {\n this._htmlRenderer.addStyle(styles, { id: 'content-style' });\n });\n }\n }\n\n private _initContent(): void {\n this._loadContent();\n\n this._router.events\n .pipe(\n filter((e) => e instanceof NavigationEnd),\n takeUntil(this._destroy$),\n )\n .subscribe((e) => {\n this._loadContent();\n });\n }\n\n private _loadContent() {\n const path = (window as any).location.pathname;\n\n this._config.loadContent(path)\n .subscribe((contentPage) => {\n if(contentPage.title) {\n this._title.setTitle(contentPage.title);\n\n let ogTitleEl = document.querySelector('head meta[property=\"og:title\"]');\n if(!ogTitleEl) {\n ogTitleEl = document.createElement('meta');\n ogTitleEl.setAttribute('property','og:title');\n document.getElementsByTagName('head')[0].appendChild(ogTitleEl);\n }\n\n ogTitleEl.setAttribute('content',contentPage.title);\n }\n\n this.contentPage = contentPage;\n this._cdRef.markForCheck();\n });\n }\n\n}\n","@if (contentPage) {\n <fs-content-renderer [contentPage]=\"contentPage\"></fs-content-renderer>\n}","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { ContentRendererComponent } from './components/content-renderer/content-renderer.component';\nimport { FsContentComponent } from './components/content/content.component';\n\n@NgModule({\n imports: [\n FsContentComponent,\n ContentRendererComponent,\n ],\n exports: [\n FsContentComponent,\n ],\n})\nexport class FsContentModule {\n public static forRoot(): ModuleWithProviders<FsContentModule> {\n return {\n ngModule: FsContentModule,\n };\n }\n}\n","export enum EditorType {\n Js = 'js',\n Html = 'html',\n Scss = 'scss',\n GlobalScss = 'globalScss',\n}\n","export enum PageType {\n StandardPage = 'standardPage',\n BlogPost = 'blogPost',\n HomePage = 'homePage',\n NotFoundPage = 'notFoundPage',\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n} from '@angular/core';\nimport { NgClass } from '@angular/common';\n\n\n@Component({\n selector: 'app-editor-label',\n templateUrl: './editor-label.component.html',\n styleUrls: ['./editor-label.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [NgClass],\n})\nexport class EditorLabelComponent {\n\n @Input()\n public changed: boolean;\n\n @Input()\n public focused: boolean;\n\n}\n","<div class=\"label\" [ngClass]=\"{ focused: focused }\">\n <ng-content></ng-content>\n @if (changed) {\n <span class=\"changed\">&nbsp;&#9679;</span>\n }\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n OnInit,\n computed,\n inject,\n input,\n model,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormsModule } from '@angular/forms';\n\nimport { FsFormModule } from '@firestitch/form';\nimport { FsMessage } from '@firestitch/message';\nimport { FsSkeletonModule } from '@firestitch/skeleton';\nimport { FsTextEditorConfig, FsTextEditorModule } from '@firestitch/text-editor';\n\nimport { AngularSplitModule } from 'angular-split';\nimport { EMPTY, Observable, concat } from 'rxjs';\nimport { finalize, last, tap } from 'rxjs/operators';\n\nimport { EditorType } from '../../../../enums';\nimport { FsContentConfig, FsContentStyle } from '../../../../interfaces';\nimport { EditorLabelComponent } from '../editor-label/editor-label.component';\n\n\ntype EditorValues = Partial<Record<EditorType, string>>;\n\n\n@Component({\n selector: 'app-editor',\n templateUrl: './editor.component.html',\n styleUrls: ['./editor.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n AngularSplitModule,\n EditorLabelComponent,\n FsTextEditorModule,\n FormsModule,\n FsFormModule,\n FsSkeletonModule,\n ],\n})\nexport class EditorComponent implements OnInit {\n\n public showHtml = input(false);\n public showScss = input(false);\n public showJs = input(false);\n public showGlobalScss = input(false);\n public contentConfig = input<FsContentConfig>();\n\n // Two-way bound to the text editors, so each holds exactly what is on screen. Nothing sits\n // between a keystroke and a save: the fsModelChange this replaced debounced every pane by\n // 300 ms (its `debounce: 0` falls back to 300), so a quick Ctrl+S posted text without its\n // last keystrokes (IEB-T292).\n public html = model<string>();\n public scss = model<string>();\n public js = model<string>();\n public globalScss = signal<string>(null);\n\n public contentStyle = signal<FsContentStyle>(null);\n public focusedArea = signal<EditorType>(null);\n public saving = signal(false);\n\n // A pane is changed when its text differs from what the server last confirmed. A pane\n // cleared to '' counts; one typed back to its original text does not (IEB-T292).\n public changedTypes = computed(() => {\n const saved = this._saved();\n\n return Object.values(EditorType)\n .filter((type) => type in saved && this.value(type) !== saved[type]);\n });\n public hasChanges = computed(() => this.changedTypes().length !== 0);\n\n public EditorType = EditorType;\n\n public scssConfig: FsTextEditorConfig;\n public globalScssConfig: FsTextEditorConfig;\n public htmlConfig: FsTextEditorConfig;\n public jsConfig: FsTextEditorConfig;\n\n private _saved = signal<EditorValues>({});\n private _message = inject(FsMessage);\n private _destroyRef = inject(DestroyRef);\n\n public ngOnInit(): void {\n this._initTextEditors();\n this._saved.set({\n [EditorType.Html]: this.html() ?? '',\n [EditorType.Scss]: this.scss() ?? '',\n [EditorType.Js]: this.js() ?? '',\n });\n this._initGlobalContentStyle();\n }\n\n public value(type: EditorType): string {\n const panes = {\n [EditorType.Html]: this.html,\n [EditorType.Scss]: this.scss,\n [EditorType.Js]: this.js,\n [EditorType.GlobalScss]: this.globalScss,\n };\n\n return panes[type]() ?? '';\n }\n\n /**\n * Saves every changed pane, not just the one last focused, and records what was sent as\n * the new baseline, so anything typed while the request is in flight stays changed. With\n * nothing changed it sends nothing and shows no toast. Ctrl+S reaches this through fsForm's\n * [submit], so it shares the Save button's gate (IEB-T292).\n *\n * `fields` maps a pane to its property on the record (html → content); `saveRecord` posts\n * those properties.\n */\n public save$(\n fields: EditorValues,\n saveRecord: (values: Record<string, string>) => Observable<unknown>,\n ): Observable<unknown> {\n const sent: EditorValues = Object.fromEntries(\n this.changedTypes().map((type) => [type, this.value(type)]),\n );\n const saves = [\n this._saveRecord$(fields, sent, saveRecord),\n this._saveGlobalScss$(sent),\n ].filter((save) => !!save);\n\n if (!saves.length) {\n return EMPTY;\n }\n\n this.saving.set(true);\n\n return concat(...saves)\n .pipe(\n last(),\n tap(() => this._message.success('Saved Changes')),\n finalize(() => this.saving.set(false)),\n );\n }\n\n private _saveRecord$(\n fields: EditorValues,\n sent: EditorValues,\n saveRecord: (values: Record<string, string>) => Observable<unknown>,\n ): Observable<unknown> {\n const types = (Object.keys(sent) as EditorType[])\n .filter((type) => fields[type]);\n\n if (!types.length) {\n return null;\n }\n\n return saveRecord(Object.fromEntries(types.map((type) => [fields[type], sent[type]])))\n .pipe(\n tap(() => this._markSaved(types, sent)),\n );\n }\n\n private _saveGlobalScss$(sent: EditorValues): Observable<unknown> {\n if (!(EditorType.GlobalScss in sent)) {\n return null;\n }\n\n const contentStyle = { ...this.contentStyle(), scss: sent[EditorType.GlobalScss] };\n\n return this.contentConfig().saveContentStyle(contentStyle)\n .pipe(\n tap(() => {\n this.contentStyle.set(contentStyle);\n this._markSaved([EditorType.GlobalScss], sent);\n }),\n );\n }\n\n private _markSaved(types: EditorType[], sent: EditorValues): void {\n this._saved.update((saved) => ({\n ...saved,\n ...Object.fromEntries(types.map((type) => [type, sent[type]])),\n }));\n }\n\n private _initTextEditors(): void {\n this.scssConfig = this._createTextEditorConfig(EditorType.Scss, 'scss');\n this.jsConfig = this._createTextEditorConfig(EditorType.Js, 'js');\n this.htmlConfig = this._createTextEditorConfig(EditorType.Html, 'html');\n this.globalScssConfig = this._createTextEditorConfig(EditorType.GlobalScss, 'scss');\n }\n\n private _createTextEditorConfig(type: EditorType, language: string): FsTextEditorConfig {\n return {\n tabSize: 2,\n language,\n height: '100%',\n focus: () => {\n this.focusedArea.set(type);\n },\n };\n }\n\n private _initGlobalContentStyle(): void {\n this.contentConfig().loadContentStyle()\n .pipe(\n tap((contentStyle) => {\n const scss = contentStyle?.scss ?? '';\n\n this.contentStyle.set(contentStyle || {});\n this.globalScss.set(scss);\n this._saved.update((saved) => ({ ...saved, [EditorType.GlobalScss]: scss }));\n }),\n takeUntilDestroyed(this._destroyRef),\n )\n .subscribe();\n }\n\n}\n","<as-split [unit]=\"'percent'\" [gutterSize]=\"25\">\n <as-split-area [size]=\"70\" [visible]=\"showHtml()\" [order]=\"1\">\n <div class=\"editor-container\">\n <app-editor-label\n [changed]=\"changedTypes().includes(EditorType.Html)\"\n [focused]=\"focusedArea() === EditorType.Html\">\n HTML\n </app-editor-label>\n <fs-text-editor\n [(ngModel)]=\"html\"\n name=\"html\"\n [config]=\"htmlConfig\">\n </fs-text-editor>\n </div>\n </as-split-area>\n <as-split-area [size]=\"30\" [visible]=\"showScss()\" [order]=\"2\">\n <div class=\"editor-container\">\n <app-editor-label\n [changed]=\"changedTypes().includes(EditorType.Scss)\"\n [focused]=\"focusedArea() === EditorType.Scss\">\n SCSS\n </app-editor-label>\n <fs-text-editor\n [(ngModel)]=\"scss\"\n name=\"scss\"\n [config]=\"scssConfig\">\n </fs-text-editor>\n </div>\n </as-split-area>\n <as-split-area [size]=\"30\" [visible]=\"showJs()\" [order]=\"3\">\n <div class=\"editor-container\">\n <app-editor-label\n [changed]=\"changedTypes().includes(EditorType.Js)\"\n [focused]=\"focusedArea() === EditorType.Js\">\n JS\n </app-editor-label>\n <fs-text-editor\n [(ngModel)]=\"js\"\n name=\"js\"\n [config]=\"jsConfig\">\n </fs-text-editor>\n </div>\n </as-split-area>\n <as-split-area [size]=\"30\" [visible]=\"showGlobalScss()\" [order]=\"4\">\n <div class=\"editor-container\">\n <app-editor-label\n [changed]=\"changedTypes().includes(EditorType.GlobalScss)\"\n [focused]=\"focusedArea() === EditorType.GlobalScss\">\n Global SCSS\n </app-editor-label>\n <ng-container *fsSkeleton=\"contentStyle()\">\n <fs-text-editor\n [(ngModel)]=\"globalScss\"\n name=\"globalScss\"\n [config]=\"globalScssConfig\">\n </fs-text-editor>\n </ng-container>\n </div>\n </as-split-area>\n</as-split>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\n\nimport { MatButtonToggle, MatButtonToggleChange, MatButtonToggleGroup } from '@angular/material/button-toggle';\n\nimport { EditorType } from '../../../../enums';\n\n\n@Component({\n selector: 'app-editor-toggles',\n templateUrl: './editor-toggles.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n MatButtonToggleGroup,\n MatButtonToggle,\n ],\n})\nexport class EditorTogglesComponent {\n\n @Input()\n public editors: Record<string, boolean>;\n\n @Input()\n public showJs = false;\n\n @Output()\n public toggleChange = new EventEmitter<MatButtonToggleChange>();\n\n public EditorType = EditorType;\n\n}\n","<mat-button-toggle-group multiple>\n <mat-button-toggle value=\"html\" [checked]=\"editors[EditorType.Html]\" (change)=\"toggleChange.emit($event)\">HTML</mat-button-toggle>\n <mat-button-toggle value=\"scss\" [checked]=\"editors[EditorType.Scss]\" (change)=\"toggleChange.emit($event)\">SCSS</mat-button-toggle>\n @if (showJs) {\n <mat-button-toggle value=\"js\" [checked]=\"editors[EditorType.Js]\" (change)=\"toggleChange.emit($event)\">JS</mat-button-toggle>\n }\n <mat-button-toggle value=\"globalScss\" [checked]=\"editors[EditorType.GlobalScss]\" (change)=\"toggleChange.emit($event)\">Global SCSS</mat-button-toggle>\n</mat-button-toggle-group>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\n\nimport { MatButton, MatIconButton } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatTooltip } from '@angular/material/tooltip';\n\n\n@Component({\n selector: 'app-editor-actions',\n templateUrl: './editor-actions.component.html',\n styleUrls: ['./editor-actions.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n MatButton,\n MatIconButton,\n MatIcon,\n MatTooltip,\n ],\n})\nexport class EditorActionsComponent {\n\n @Input()\n public saveDisabled = false;\n\n @Input()\n public isMac = false;\n\n @Input()\n public previewPath: string = null;\n\n @Output()\n public settings = new EventEmitter<void>();\n\n @Output()\n public save = new EventEmitter<void>();\n\n @Output()\n public done = new EventEmitter<void>();\n\n @Output()\n public preview = new EventEmitter<void>();\n\n}\n","<button\n type=\"button\"\n mat-icon-button\n (click)=\"settings.emit()\">\n <mat-icon>settings</mat-icon>\n</button>\n\n<div class=\"actions\">\n <button\n mat-stroked-button\n color=\"primary\"\n type=\"button\"\n [disabled]=\"saveDisabled\"\n [matTooltip]=\"isMac ? 'cmd+s' : 'ctrl+s'\"\n (click)=\"save.emit()\">\n Save\n </button>\n\n @if (previewPath !== null) {\n <button\n mat-stroked-button\n type=\"button\"\n (click)=\"preview.emit()\">\n Preview\n </button>\n }\n\n <button\n mat-stroked-button\n type=\"button\"\n (click)=\"done.emit()\">\n Done\n </button>\n</div>\n","import { ChangeDetectionStrategy, Component, inject, signal } from '@angular/core';\n\nimport { MAT_DIALOG_DATA, MatDialogRef, MatDialogTitle, MatDialogContent, MatDialogActions } from '@angular/material/dialog';\n\nimport { FsMessage } from '@firestitch/message';\n\nimport { tap } from 'rxjs/operators';\n\nimport { FS_CONTENT_CONFIG } from '../../../../injectors';\nimport { FsContentConfig, FsContentLayout } from '../../../../interfaces';\nimport { FsSkeletonModule } from '@firestitch/skeleton';\nimport { FormsModule } from '@angular/forms';\nimport { FsFormModule } from '@firestitch/form';\nimport { FsDialogModule } from '@firestitch/dialog';\nimport { CdkScrollable } from '@angular/cdk/scrolling';\nimport { MatFormField, MatLabel } from '@angular/material/form-field';\nimport { MatInput } from '@angular/material/input';\n\n\n@Component({\n templateUrl: './content-layout.component.html',\n styleUrls: ['./content-layout.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n FsSkeletonModule,\n FormsModule,\n FsFormModule,\n FsDialogModule,\n MatDialogTitle,\n CdkScrollable,\n MatDialogContent,\n MatFormField,\n MatLabel,\n MatInput,\n MatDialogActions,\n ],\n})\nexport class ContentLayoutComponent {\n\n public contentLayout = signal<FsContentLayout>(null);\n\n private _config = inject<FsContentConfig>(FS_CONTENT_CONFIG);\n private _data = inject(MAT_DIALOG_DATA);\n private _dialogRef = inject<MatDialogRef<ContentLayoutComponent>>(MatDialogRef);\n private _message = inject(FsMessage);\n\n constructor() {\n this._init();\n }\n\n public save = () => {\n // Only the fields this dialog edits. Sending the whole layout re-sent the Layout Editor's\n // copy of content and styles, which the server wrote over edits saved since (IEB-T292).\n const { id, name, tag } = this.contentLayout();\n\n return this._config.saveContentLayout({ id, name, tag })\n .pipe(\n tap((contentLayout) => {\n this._message.success('Saved Changes');\n this._dialogRef.close(contentLayout);\n }),\n );\n };\n\n private _init(): void {\n this.contentLayout.set({ ...this._data.contentLayout });\n }\n\n}\n","<form fsForm [submit]=\"save\" *fsSkeletonForm=\"contentLayout()\">\n <fs-dialog>\n <h1 mat-dialog-title>{{contentLayout().id ? 'Layout' : 'Layout Page'}}</h1>\n <div mat-dialog-content>\n <div class=\"fs-column\">\n <mat-form-field>\n <mat-label>Name</mat-label>\n <input\n matInput\n [(ngModel)]=\"contentLayout().name\"\n name=\"name\"\n required>\n </mat-form-field>\n <mat-form-field>\n <mat-label>Tag</mat-label>\n <input\n matInput\n [(ngModel)]=\"contentLayout().tag\"\n name=\"tag\">\n </mat-form-field>\n </div>\n </div>\n\n <div mat-dialog-actions>\n <fs-form-dialog-actions>\n </fs-form-dialog-actions>\n </div>\n </fs-dialog>\n</form>\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n OnInit,\n inject,\n signal,\n viewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormsModule } from '@angular/forms';\n\nimport { CdkScrollable } from '@angular/cdk/scrolling';\nimport { MatButtonToggleChange } from '@angular/material/button-toggle';\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogContent, MatDialogRef, MatDialogTitle } from '@angular/material/dialog';\n\nimport { FsDialogModule } from '@firestitch/dialog';\nimport { FsFormModule } from '@firestitch/form';\nimport { FsPrompt } from '@firestitch/prompt';\nimport { FsSkeletonModule } from '@firestitch/skeleton';\n\nimport { fromEvent } from 'rxjs';\nimport { filter, tap } from 'rxjs/operators';\n\nimport { EditorType } from '../../../../enums';\nimport { FsContentConfig, FsContentLayout } from '../../../../interfaces';\nimport { EditorComponent } from '../../../editor/components/editor/editor.component';\nimport { EditorTogglesComponent } from '../../../editor/components/editor-toggles';\nimport { EditorActionsComponent } from '../../../editor/components/editor-actions';\nimport { ContentLayoutComponent } from '../content-layout/content-layout.component';\n\n\n@Component({\n templateUrl: './content-layout-editor.component.html',\n styleUrls: ['./content-layout-editor.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n FormsModule,\n FsFormModule,\n FsSkeletonModule,\n FsDialogModule,\n MatDialogTitle,\n EditorTogglesComponent,\n EditorActionsComponent,\n CdkScrollable,\n MatDialogContent,\n EditorComponent,\n ],\n})\nexport class ContentLayoutEditorComponent implements OnInit {\n\n public editor = viewChild(EditorComponent);\n public contentLayout = signal<FsContentLayout>(null);\n\n public get isMac(): boolean {\n return navigator.platform.toUpperCase().indexOf('MAC') >= 0;\n }\n\n public config: FsContentConfig;\n public EditorType = EditorType;\n public editors = signal({\n [EditorType.Html]: true,\n [EditorType.Scss]: true,\n [EditorType.GlobalScss]: false,\n });\n\n public submitted = () => this.editor().save$(\n {\n [EditorType.Html]: 'content',\n [EditorType.Scss]: 'styles',\n },\n (values) => this.config.saveContentLayout({ id: this.contentLayout().id, ...values }),\n );\n\n private _data = inject(MAT_DIALOG_DATA);\n private _dialogRef = inject<MatDialogRef<ContentLayoutEditorComponent>>(MatDialogRef);\n private _dialog = inject(MatDialog);\n private _prompt = inject(FsPrompt);\n private _destroyRef = inject(DestroyRef);\n\n public ngOnInit(): void {\n this._dialogRef.addPanelClass('fs-content-editor-overlay-pane');\n this._dialogRef.disableClose = true;\n this.config = this._data.contentConfig;\n this._initContentLayout();\n this._initEscape();\n }\n\n public editorToggleChange(event: MatButtonToggleChange): void {\n this.editors.update((editors) => ({ ...editors, [event.value]: !editors[event.value] }));\n }\n\n public save(): void {\n this.submitted()\n .subscribe();\n }\n\n public close(): void {\n if (!this.editor()?.hasChanges()) {\n return this._dialogRef.close();\n }\n\n this._prompt.confirm({\n dialogConfig: {\n width: null,\n },\n title: 'You have unsaved changes',\n template: 'What would you like to do with your changes?',\n buttons: [\n {\n label: 'Review Changes',\n value: 'review',\n },\n {\n label: 'Discard Changes',\n value: 'discard',\n },\n ],\n })\n .pipe(\n filter((value) => value === 'discard'),\n tap(() => this._dialogRef.close()),\n takeUntilDestroyed(this._destroyRef),\n )\n .subscribe();\n }\n\n public openSettings(): void {\n this._dialog.open(ContentLayoutComponent, {\n data: {\n contentLayout: this.contentLayout(),\n },\n })\n .afterClosed()\n .pipe(\n filter((contentLayout) => !!contentLayout),\n // Only what the settings dialog edits. Merging content/styles from its response would\n // push them through [html]/[scss] into the editors and wipe unsaved typing (IEB-T292).\n tap((contentLayout: FsContentLayout) => {\n this.contentLayout.update((current) => ({\n ...current,\n name: contentLayout.name,\n tag: contentLayout.tag,\n }));\n }),\n takeUntilDestroyed(this._destroyRef),\n )\n .subscribe();\n }\n\n private _initContentLayout(): void {\n this.config.loadContentLayout(this._data.contentLayout.id)\n .pipe(\n tap((contentLayout) => this.contentLayout.set(contentLayout)),\n takeUntilDestroyed(this._destroyRef),\n )\n .subscribe();\n }\n\n private _initEscape(): void {\n fromEvent(document, 'keydown')\n .pipe(\n filter((event: KeyboardEvent) => event.code === 'Escape'),\n tap(() => {\n const dialogRef = this._dialog.openDialogs.reverse()[0];\n if (dialogRef?.componentInstance === this) {\n this.close();\n }\n }),\n takeUntilDestroyed(this._destroyRef),\n )\n .subscribe();\n }\n\n}\n","<form\n fsForm\n [submit]=\"submitted\"\n [dirtySubmitButton]=\"false\"\n [confirm]=\"false\">\n <fs-dialog *fsSkeletonForm=\"contentLayout()\">\n <h1 mat-dialog-title>\n <div class=\"title-container\">\n <div class=\"title\">\n Layout Editor\n <div class=\"small\">\n {{ contentLayout().name }}\n </div>\n </div>\n <div class=\"toggles\">\n <app-editor-toggles\n [editors]=\"editors()\"\n (toggleChange)=\"editorToggleChange($event)\">\n </app-editor-toggles>\n </div>\n <app-editor-actions\n [saveDisabled]=\"!editor()?.hasChanges() || editor()?.saving()\"\n [isMac]=\"isMac\"\n (settings)=\"openSettings()\"\n (save)=\"save()\"\n (done)=\"close()\">\n </app-editor-actions>\n </div>\n </h1>\n <div mat-dialog-content>\n <app-editor\n [contentConfig]=\"config\"\n [showHtml]=\"editors().html\"\n [showScss]=\"editors().scss\"\n [showGlobalScss]=\"editors().globalScss\"\n [html]=\"contentLayout().content\"\n [scss]=\"contentLayout().styles\">\n </app-editor>\n </div>\n </fs-dialog>\n</form>\n","import { ChangeDetectionStrategy, Component, OnDestroy, OnInit, ViewChild, inject } from '@angular/core';\n\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { ItemType } from '@firestitch/filter';\nimport { FsListComponent, FsListConfig, FsListModule } from '@firestitch/list';\n\nimport { Observable, Subject } from 'rxjs';\nimport { filter, map, takeUntil } from 'rxjs/operators';\n\nimport { FS_CONTENT_CONFIG } from '../../../../injectors';\nimport { FsContentConfig } from '../../../../interfaces';\nimport { ContentLayoutComponent } from '../../components/content-layout';\nimport { ContentLayoutEditorComponent } from '../content-layout-editor/content-layout-editor.component';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { FsDateModule } from '@firestitch/date';\n\n\n@Component({\n selector: 'fs-content-layouts',\n templateUrl: './content-layouts.component.html',\n styleUrls: ['./content-layouts.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n FsListModule,\n NgTemplateOutlet,\n FsDateModule,\n ],\n})\nexport class FsContentLayoutsComponent implements OnInit, OnDestroy {\n private _config = inject<FsContentConfig>(FS_CONTENT_CONFIG);\n private _dialog = inject(MatDialog);\n\n\n @ViewChild(FsListComponent)\n public listComponent: FsListComponent;\n\n public listConfig: FsListConfig;\n\n private _destroy$ = new Subject<void>();\n\n public ngOnInit(): void {\n this._initListConfig();\n }\n\n public openEditor(contentLayout: any): void {\n this._dialog.open(ContentLayoutEditorComponent, {\n maxWidth: '100vw',\n width: '100%',\n height: '100%',\n data: {\n contentLayout,\n contentConfig: this._config,\n },\n })\n .afterClosed()\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe(() => {\n this.listComponent.reload();\n });\n }\n\n public openLayout(contentLayout: any): Observable<any> {\n return this._dialog.open(ContentLayoutComponent, {\n data: {\n contentLayout,\n },\n })\n .afterClosed()\n .pipe(\n filter((_contentLayout) => !!_contentLayout),\n takeUntil(this._destroy$),\n );\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next(null);\n this._destroy$.complete();\n }\n\n private _initListConfig(): void {\n this.listConfig = {\n filters: [\n {\n name: 'keyword',\n type: ItemType.Keyword,\n label: 'Search',\n },\n ],\n actions: [\n {\n label: 'Create',\n click: () => {\n this.openLayout({})\n .subscribe(() => {\n this.listComponent.reload();\n });\n },\n },\n ],\n rowActions: [\n {\n click: (data) => {\n return this._config.deleteContentLayout(data);\n },\n remove: {\n title: 'Confirm',\n template: 'Are you sure you would like to delete this record?',\n },\n menu: true,\n label: 'Delete',\n },\n ],\n fetch: (query) => {\n return this._config.loadContentLayouts(query)\n .pipe(\n map((response: any) => {\n return { data: response.contentLayouts, paging: response.paging };\n }),\n );\n },\n restore: {\n query: { state: 'deleted' },\n filterLabel: 'Show Deleted',\n menuLabel: 'Restore',\n reload: true,\n click: (row) => {\n return this._config.saveContentLayout({ id: row.id, state: 'active' });\n },\n },\n };\n }\n\n}\n\n","<fs-list [config]=\"listConfig\">\n <fs-list-column name=\"name\" title=\"Name\" [sortable]=\"true\">\n <ng-template fs-list-cell let-row=\"row\">\n @if (row.state !== 'deleted') {\n <a (click)=\"openEditor(row)\">\n <ng-container [ngTemplateOutlet]=\"name\"></ng-container>\n </a>\n } @else {\n {{row.name}}\n }\n\n <ng-template #name>{{row.name}}</ng-template>\n </ng-template>\n </fs-list-column>\n <fs-list-column name=\"modify_date\" title=\"Modified\" [sortable]=\"true\">\n <ng-template fs-list-cell let-row=\"row\">\n {{row.modifyDate | fsDate: 'date-time-yearless'}}\n </ng-template>\n </fs-list-column>\n</fs-list>\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { ContentLayoutEditorComponent } from './components/content-layout-editor/content-layout-editor.component';\nimport { ContentLayoutComponent } from './components/content-layout/content-layout.component';\nimport { FsContentLayoutsComponent } from './components/content-layouts/content-layouts.component';\n\n@NgModule({\n imports: [\n FsContentLayoutsComponent,\n ContentLayoutComponent,\n ContentLayoutEditorComponent,\n ],\n exports: [\n FsContentLayoutsComponent,\n ],\n})\nexport class FsContentLayoutsModule {\n public static forRoot(): ModuleWithProviders<FsContentLayoutsModule> {\n return {\n ngModule: FsContentLayoutsModule,\n };\n }\n}\n","import { PageType } from '../enums';\n\n// Every type the server has, so the pages list labels every row. The Page dialog offers\n// only the standard and not-found types (CC-T4102).\nexport const PageTypes = [\n { name: 'Page', value: PageType.StandardPage },\n { name: 'Page (Not Found)', value: PageType.NotFoundPage },\n { name: 'Page', value: PageType.HomePage },\n { name: 'Blog Post', value: PageType.BlogPost },\n];\n","import { ChangeDetectionStrategy, Component, DestroyRef, OnInit, computed, inject, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { MAT_DIALOG_DATA, MatDialogRef, MatDialogTitle, MatDialogContent, MatDialogActions } from '@angular/material/dialog';\n\nimport { FsMessage } from '@firestitch/message';\n\nimport { tap } from 'rxjs/operators';\n\nimport { PageTypes } from '../../../../consts';\nimport { PageType } from '../../../../enums';\nimport { FS_CONTENT_CONFIG } from '../../../../injectors';\nimport { FsContentConfig, FsContentLayout, FsContentPage } from '../../../../interfaces';\nimport { FsSkeletonModule } from '@firestitch/skeleton';\nimport { FormsModule } from '@angular/forms';\nimport { FsFormModule } from '@firestitch/form';\nimport { FsDialogModule } from '@firestitch/dialog';\nimport { CdkScrollable } from '@angular/cdk/scrolling';\nimport { MatFormField, MatLabel } from '@angular/material/form-field';\nimport { MatSelect } from '@angular/material/select';\nimport { MatOption } from '@angular/material/core';\nimport { MatInput } from '@angular/material/input';\n\n\n@Component({\n templateUrl: './content-page.component.html',\n styleUrls: ['./content-page.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n FsSkeletonModule,\n FormsModule,\n FsFormModule,\n FsDialogModule,\n MatDialogTitle,\n CdkScrollable,\n MatDialogContent,\n MatFormField,\n MatLabel,\n MatSelect,\n MatOption,\n MatInput,\n MatDialogActions,\n ],\n})\nexport class ContentPageComponent implements OnInit {\n\n public contentPage = signal<FsContentPage>(null);\n public contentLayouts = signal<FsContentLayout[]>(null);\n public PageTypes = PageTypes\n .filter((pageType) => pageType.value === PageType.StandardPage || pageType.value === PageType.NotFoundPage);\n\n // A home page or blog post has no option to show, which left Type blank and required, so\n // the only way to save was to pick another type. It keeps its type: Type is hidden and save\n // sends it back unchanged (CC-T4102).\n public isTypeSelectable = computed(() => this.PageTypes\n .some((pageType) => pageType.value === this.contentPage().type));\n\n // The home page is the site root, path \"\". Path is hidden rather than edited, because the\n // site only finds the home page while its path stays \"\" (CC-T4102).\n public isHomePage = computed(() => this.contentPage().type === PageType.HomePage);\n\n private _config = inject<FsContentConfig>(FS_CONTENT_CONFIG);\n private _data = inject(MAT_DIALOG_DATA);\n private _dialogRef = inject<MatDialogRef<ContentPageComponent>>(MatDialogRef);\n private _message = inject(FsMessage);\n private _destroyRef = inject(DestroyRef);\n\n constructor() {\n this._init();\n }\n\n public ngOnInit(): void {\n this._dialogRef.updateSize('600px');\n }\n\n public save = () => {\n // Only the fields this dialog edits. Sending the whole page re-sent the Page Editor's copy\n // of content, styles and js, which the server wrote over edits saved since (IEB-T292).\n const { id, type, contentLayoutId, name, path, title } = this.contentPage();\n\n return this._config.saveContentPage({ id, type, contentLayoutId, name, path, title })\n .pipe(\n tap((contentPage) => {\n this._message.success('Saved Changes');\n this._dialogRef.close(contentPage);\n }),\n );\n };\n\n private _init(): void {\n // The path as stored. Defaulting it to '/' turned the home page's \"\" into \"/\", which the\n // site no longer matched to its root (CC-T4102).\n this.contentPage.set({ ...this._data.contentPage });\n\n this._config.loadContentLayouts()\n .pipe(\n // The config answers with the { contentLayouts, paging } envelope\n // (FsContentConfig.loadContentLayouts), so the select takes its array, not the\n // envelope, which rendered no options at all (IEB-T294).\n tap((response) => this.contentLayouts.set(response.contentLayouts)),\n takeUntilDestroyed(this._destroyRef),\n )\n .subscribe();\n }\n\n}\n","<form fsForm [submit]=\"save\" *fsSkeletonForm=\"contentPage()\">\n <fs-dialog>\n <h1 mat-dialog-title>{{contentPage().id ? 'Page' : 'Create Page'}}</h1>\n <div mat-dialog-content>\n <div class=\"fs-column\">\n @if (isTypeSelectable()) {\n <mat-form-field>\n <mat-label>Type</mat-label>\n <mat-select\n [(ngModel)]=\"contentPage().type\"\n name=\"type\"\n required>\n @for (item of PageTypes; track item) {\n <mat-option\n [value]=\"item.value\">\n {{ item.name }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n @if (contentLayouts()) {\n <mat-form-field>\n <mat-label>Layout</mat-label>\n <mat-select\n [(ngModel)]=\"contentPage().contentLayoutId\"\n required\n name=\"contentLayoutId\">\n @for (item of contentLayouts(); track item.id) {\n <mat-option\n [value]=\"item.id\">\n {{ item.name }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <mat-form-field>\n <mat-label>Name</mat-label>\n <input\n matInput\n [(ngModel)]=\"contentPage().name\"\n name=\"name\"\n required>\n </mat-form-field>\n @if (!isHomePage()) {\n <mat-form-field>\n <mat-label>Path</mat-label>\n <input\n matInput\n [(ngModel)]=\"contentPage().path\"\n name=\"path\"\n required>\n </mat-form-field>\n }\n <mat-form-field>\n <mat-label>Title</mat-label>\n <input\n matInput\n [(ngModel)]=\"contentPage().title\"\n name=\"title\">\n </mat-form-field>\n </div>\n </div>\n\n <div mat-dialog-actions>\n <fs-form-dialog-actions>\n </fs-form-dialog-actions>\n </div>\n </fs-dialog>\n</form>\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n OnInit,\n inject,\n signal,\n viewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { MatButtonToggleChange } from '@angular/material/button-toggle';\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogRef, MatDialogTitle, MatDialogContent } from '@angular/material/dialog';\n\nimport { FsPrompt } from '@firestitch/prompt';\n\nimport { fromEvent } from 'rxjs';\nimport { filter, tap } from 'rxjs/operators';\n\nimport { EditorType } from '../../../../enums';\nimport { FsContentConfig, FsContentPage } from '../../../../interfaces';\nimport { ContentPageComponent } from '../content-page/content-page.component';\nimport { FormsModule } from '@angular/forms';\nimport { FsFormModule } from '@firestitch/form';\nimport { FsSkeletonModule } from '@firestitch/skeleton';\nimport { FsDialogModule } from '@firestitch/dialog';\nimport { CdkScrollable } from '@angular/cdk/scrolling';\nimport { EditorComponent } from '../../../editor/components/editor/editor.component';\nimport { EditorTogglesComponent } from '../../../editor/components/editor-toggles';\nimport { EditorActionsComponent } from '../../../editor/components/editor-actions';\n\n\n@Component({\n templateUrl: './content-page-editor.component.html',\n styleUrls: ['./content-page-editor.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n FormsModule,\n FsFormModule,\n FsSkeletonModule,\n FsDialogModule,\n MatDialogTitle,\n EditorTogglesComponent,\n EditorActionsComponent,\n CdkScrollable,\n MatDialogContent,\n EditorComponent,\n ],\n})\nexport class ContentPageEditorComponent implements OnInit {\n\n public editor = viewChild(EditorComponent);\n public contentPage = signal<FsContentPage>(null);\n public config: FsContentConfig;\n public editors = signal({\n [EditorType.Html]: true,\n [EditorType.Scss]: true,\n [EditorType.Js]: false,\n [EditorType.GlobalScss]: false,\n });\n\n public get isMac(): boolean {\n return navigator.platform.toUpperCase().indexOf('MAC') >= 0;\n }\n\n public submitted = () => this.editor().save$(\n {\n [EditorType.Html]: 'content',\n [EditorType.Scss]: 'styles',\n [EditorType.Js]: 'js',\n },\n (values) => this.config.saveContentPage({ id: this.contentPage().id, ...values }),\n );\n\n private _data = inject(MAT_DIALOG_DATA);\n private _dialogRef = inject<MatDialogRef<ContentPageEditorComponent>>(MatDialogRef);\n private _dialog = inject(MatDialog);\n private _prompt = inject(FsPrompt);\n private _destroyRef = inject(DestroyRef);\n\n public ngOnInit(): void {\n this._dialogRef.addPanelClass('fs-content-editor-overlay-pane');\n this._dialogRef.disableClose = true;\n this.config = this._data.contentConfig;\n this._initContentPage();\n this._initEscape();\n }\n\n public editorToggleChange(event: MatButtonToggleChange): void {\n this.editors.update((editors) => ({ ...editors, [event.value]: !editors[event.value] }));\n }\n\n public save(): void {\n this.submitted()\n .subscribe();\n }\n\n public close(): void {\n if (!this.editor()?.hasChanges()) {\n return this._dialogRef.close();\n }\n\n this._prompt.confirm({\n dialogConfig: {\n width: null,\n },\n title: 'You have unsaved changes',\n template: 'What would you like to do with your changes?',\n buttons: [\n {\n label: 'Review Changes',\n value: 'review',\n },\n {\n label: 'Discard Changes',\n value: 'discard',\n },\n ],\n })\n .pipe(\n filter((value) => value === 'discard'),\n tap(() => this._dialogRef.close()),\n takeUntilDestroyed(this._destroyRef),\n )\n .subscribe();\n }\n\n public openPreview(): void {\n // Paths are stored without the leading slash, and the home page's is \"\": opening \"\" gave\n // a blank tab (CC-T4102). The pages list links the same way.\n window.open('/' + this.contentPage().path, '_blank');\n }\n\n public openSettings(): void {\n this._dialog.open(ContentPageComponent, {\n data: {\n contentPage: this.contentPage(),\n },\n })\n .afterClosed()\n .pipe(\n filter((contentPage) => !!contentPage),\n // Only what the settings dialog edits. Merging content/styles/js from its response\n // would push them through [html]/[scss]/[js] into the editors and wipe unsaved typing\n // (IEB-T292). The path is merged so Preview follows a renamed page.\n tap((contentPage: FsContentPage) => {\n this.contentPage.update((current) => ({\n ...current,\n type: contentPage.type,\n contentLayoutId: contentPage.contentLayoutId,\n name: contentPage.name,\n path: contentPage.path,\n title: contentPage.title,\n }));\n }),\n takeUntilDestroyed(this._destroyRef),\n )\n .subscribe();\n }\n\n private _initContentPage(): void {\n this.config.loadContentPage(this._data.contentPage.id)\n .pipe(\n tap((contentPage) => this.contentPage.set(contentPage)),\n takeUntilDestroyed(this._destroyRef),\n )\n .subscribe();\n }\n\n private _initEscape(): void {\n fromEvent(document, 'keydown')\n .pipe(\n filter((event: KeyboardEvent) => event.code === 'Escape'),\n tap(() => {\n const dialogRef = this._dialog.openDialogs.reverse()[0];\n if (dialogRef?.componentInstance === this) {\n this.close();\n }\n }),\n takeUntilDestroyed(this._destroyRef),\n )\n .subscribe();\n }\n\n}\n","<form fsForm [submit]=\"submitted\" [dirtySubmitButton]=\"false\" [confirm]=\"false\">\n <fs-dialog *fsSkeletonForm=\"contentPage()\">\n <h1 mat-dialog-title>\n <div class=\"title-container\">\n <div class=\"title\">\n Page Editor\n <div class=\"small\">{{contentPage().name}}</div>\n </div>\n\n <div class=\"toggles\">\n <app-editor-toggles\n [editors]=\"editors()\"\n [showJs]=\"true\"\n (toggleChange)=\"editorToggleChange($event)\">\n </app-editor-toggles>\n </div>\n\n <app-editor-actions\n [saveDisabled]=\"!editor()?.hasChanges() || editor()?.saving()\"\n [isMac]=\"isMac\"\n [previewPath]=\"contentPage().path\"\n (settings)=\"openSettings()\"\n (save)=\"save()\"\n (preview)=\"openPreview()\"\n (done)=\"close()\">\n </app-editor-actions>\n </div>\n </h1>\n <div mat-dialog-content>\n <app-editor\n [contentConfig]=\"config\"\n [showHtml]=\"editors().html\"\n [showJs]=\"editors().js\"\n [showScss]=\"editors().scss\"\n [showGlobalScss]=\"editors().globalScss\"\n [html]=\"contentPage().content\"\n [scss]=\"contentPage().styles\"\n [js]=\"contentPage().js\">\n </app-editor>\n </div>\n </fs-dialog>\n</form>\n","import { ChangeDetectionStrategy, Component, Input, OnDestroy, OnInit, ViewChild, inject } from '@angular/core';\n\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { index } from '@firestitch/common';\nimport { ItemType } from '@firestitch/filter';\nimport { FsHtmlEditorConfig } from '@firestitch/html-editor';\nimport { FsListComponent, FsListConfig, FsListModule } from '@firestitch/list';\n\nimport { Observable, Subject } from 'rxjs';\nimport { filter, map, takeUntil } from 'rxjs/operators';\n\n\nimport { PageTypes } from '../../../../consts';\nimport { PageType } from '../../../../enums';\nimport { FS_CONTENT_CONFIG } from '../../../../injectors';\nimport { FsContentConfig } from '../../../../interfaces';\nimport { ContentPageEditorComponent } from '../content-page-editor';\nimport { ContentPageComponent } from '../content-page/content-page.component';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { FsDateModule } from '@firestitch/date';\n\n\n@Component({\n selector: 'fs-content-pages',\n templateUrl: './content-pages.component.html',\n styleUrls: ['./content-pages.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n FsListModule,\n NgTemplateOutlet,\n FsDateModule,\n ],\n})\nexport class FsContentPagesComponent implements OnInit, OnDestroy {\n private _config = inject<FsContentConfig>(FS_CONTENT_CONFIG);\n private _dialog = inject(MatDialog);\n\n\n @Input() public htmlEditorConfig: FsHtmlEditorConfig;\n\n @ViewChild(FsListComponent)\n public listComponent: FsListComponent;\n\n public listConfig: FsListConfig;\n public pageTypes = index(PageTypes, 'value', 'name');\n\n private _destroy$ = new Subject<void>();\n\n public ngOnInit(): void {\n this._initListConfig();\n }\n\n public openEditor(contentPage: any): void {\n this._dialog.open(ContentPageEditorComponent, {\n data: {\n contentPage,\n config: this._config,\n contentConfig: this._config,\n },\n maxWidth: '100vw',\n width: '100%',\n height: '100%',\n autoFocus: false,\n })\n .afterClosed()\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe(() => {\n this.listComponent.reload();\n });\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next(null);\n this._destroy$.complete();\n }\n\n public openContentPage(contentPage): Observable<any> {\n return this._dialog.open(ContentPageComponent, {\n data: { contentPage },\n })\n .afterClosed()\n .pipe(\n takeUntil(this._destroy$),\n );\n }\n\n private _initListConfig(): void {\n this.listConfig = {\n filters: [\n {\n name: 'keyword',\n type: ItemType.Keyword,\n label: 'Search',\n },\n ],\n actions: [\n {\n label: 'Create',\n click: () => {\n this.openContentPage({\n type: PageType.StandardPage,\n })\n .pipe(\n filter((contentPage) => !!contentPage),\n )\n .subscribe((contentPage) => {\n this.openEditor(contentPage);\n this.listComponent.reload();\n });\n },\n },\n ],\n rowActions: [\n {\n click: (data) => {\n return this._config.deleteContentPage(data);\n },\n remove: {\n title: 'Confirm',\n template: 'Are you sure you would like to delete this record?',\n },\n menu: true,\n label: 'Delete',\n },\n ],\n fetch: (query) => {\n query = {\n contentLayouts: true,\n ...query,\n };\n\n return this._config.loadContentPages(query)\n .pipe(\n map((response: any) => {\n return { data: response.contentPages, paging: response.paging };\n }),\n );\n },\n restore: {\n query: { state: 'deleted' },\n filterLabel: 'Show Deleted',\n menuLabel: 'Restore',\n reload: true,\n click: (row) => {\n return this._config.saveContentPage({ id: row.id, state: 'active' });\n },\n },\n };\n }\n}\n\n\n","<fs-list [config]=\"listConfig\">\n <fs-list-column name=\"name\" title=\"Name\" [sortable]=\"true\">\n <ng-template fs-list-cell let-row=\"row\">\n @if (row.state !== 'deleted') {\n <a (click)=\"openEditor(row)\">\n <ng-container [ngTemplateOutlet]=\"name\"></ng-container>\n </a>\n } @else {\n {{row.name}}\n }\n <ng-template #name>{{row.name}}</ng-template>\n </ng-template>\n </fs-list-column>\n <fs-list-column name=\"path\" title=\"Path\" [sortable]=\"true\">\n <ng-template fs-list-cell let-row=\"row\">\n @if (row.state !== 'deleted') {\n <a [href]=\"'/' + row.path\" target=\"_blank\">\n <ng-container [ngTemplateOutlet]=\"path\"></ng-container>\n </a>\n } @else {\n /{{row.path}}\n }\n <ng-template #path>/{{row.path}}</ng-template>\n </ng-template>\n </fs-list-column>\n <fs-list-column name=\"layout\" title=\"Layout\">\n <ng-template fs-list-cell let-row=\"row\">\n {{row.contentLayout?.name}}\n </ng-template>\n </fs-list-column>\n <fs-list-column name=\"type\" title=\"Type\" [sortable]=\"true\">\n <ng-template fs-list-cell let-row=\"row\">\n {{pageTypes[row.type]}}\n </ng-template>\n </fs-list-column>\n <fs-list-column name=\"modify_date\" title=\"Modified\" [sortable]=\"true\">\n <ng-template fs-list-cell let-row=\"row\">\n {{row.modifyDate | fsDate: 'date-time-yearless'}}\n </ng-template>\n </fs-list-column>\n</fs-list>\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { ContentPageEditorComponent } from './components';\nimport { ContentPageComponent } from './components/content-page';\nimport { FsContentPagesComponent } from './components/content-pages';\n\n@NgModule({\n imports: [\n FsContentPagesComponent,\n ContentPageComponent,\n ContentPageEditorComponent,\n ],\n exports: [\n FsContentPagesComponent,\n ],\n})\nexport class FsContentPagesModule {\n public static forRoot(): ModuleWithProviders<FsContentPagesModule> {\n return {\n ngModule: FsContentPagesModule,\n };\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy, OnInit, ViewChild, inject } from '@angular/core';\n\n\nimport { FsFormDirective } from '@firestitch/form';\nimport { FsMessage } from '@firestitch/message';\nimport { FsTextEditorComponent, FsTextEditorModule } from '@firestitch/text-editor';\n\nimport { Subject } from 'rxjs';\nimport { tap } from 'rxjs/operators';\n\nimport { FS_CONTENT_CONFIG } from '../../../../injectors';\nimport { FsContentConfig } from '../../../../interfaces';\nimport { FsSkeletonModule } from '@firestitch/skeleton';\nimport { FormsModule } from '@angular/forms';\nimport { FsCommonModule } from '@firestitch/common';\n\n\n@Component({\n selector: 'fs-content-style',\n templateUrl: './content-style.component.html',\n styleUrls: ['./content-style.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n FsSkeletonModule,\n FsTextEditorModule,\n FormsModule,\n FsCommonModule,\n ],\n})\nexport class ContentStyleComponent implements OnInit, OnDestroy {\n private _config = inject<FsContentConfig>(FS_CONTENT_CONFIG);\n private _message = inject(FsMessage);\n private _cdRef = inject(ChangeDetectorRef);\n\n\n @ViewChild(FsTextEditorComponent)\n public textEditors: FsTextEditorComponent;\n\n @ViewChild(FsFormDirective)\n public form: FsFormDirective;\n\n @Input() public height: string = '100%';\n\n public contentStyle = null;\n public styleConfig = {\n tabSize: 2,\n language: 'scss',\n height: '100%',\n };\n\n private _destroy$ = new Subject<void>();\n\n public ngOnInit(): void {\n this.styleConfig.height = this.height;\n this._config.loadContentStyle()\n .subscribe((contentStyle) => {\n this.contentStyle = contentStyle;\n this._cdRef.markForCheck();\n });\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next(null);\n this._destroy$.complete();\n }\n\n public save() {\n this._config.saveContentStyle(this.contentStyle)\n .pipe(\n tap((contentStyle) => {\n this.contentStyle = {\n ...this.contentStyle,\n ...contentStyle,\n };\n\n this._cdRef.markForCheck();\n this._message.success('Saved Changes');\n }),\n ).subscribe();\n }\n\n}\n","<ng-container *fsSkeletonForm=\"contentStyle\">\n <fs-text-editor \n [(ngModel)]=\"contentStyle.scss\" \n name=\"contentStyle\"\n [fsModelChangeOptions]=\"{ debounce: 300 }\"\n (fsModelChange)=\"save()\"\n [config]=\"styleConfig\">\n </fs-text-editor> \n</ng-container>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i3","i5","i2","i1","i4"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAgBa,wBAAwB,CAAA;AAC3B,IAAA,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AAClC,IAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AACzB,IAAA,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AACzB,IAAA,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AAItC,IAAA,MAAM,CAAa;AAEV,IAAA,WAAW,CAAC;AAErB,IAAA,OAAO,CAAW;AAEjB,IAAA,SAAS,GAAG,IAAI,OAAO,EAAE,CAAC;AAE3B,IAAA,WAAW,CAAC,OAAsB,EAAA;AACvC,QAAA,IAAG,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE;AACnC,YAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,mBAAmB,EAAE,CAAC,CAAC;AAClF,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;SAClF;KACF;IAEM,kBAAkB,GAAA;QACvB,IAAI,CAAC,aAAa,EAAE,CAAC;AAErB,QAAA,IAAG,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE;YACtB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SACzC;KACF;IAEM,aAAa,GAAA;QAClB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;AAC5C,aAAA,MAAM,CAAC,CAAC,EAAW,KAAI;YACtB,OAAO,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC9C,SAAC,CAAC;AACD,aAAA,OAAO,CAAC,CAAC,EAAW,KAAI;YACvB,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAC,CAAC,KAAiB,KAAI;gBAChD,IAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;oBACpC,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AACrC,oBAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;iBAClC;AACH,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACN;AAED,IAAA,IAAW,EAAE,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC;KAC/B;IAEM,WAAW,GAAA;QAChB,IAAI,CAAC,YAAY,EAAE,CAAC;AACpB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;KAC3B;IAEM,YAAY,GAAA;QACjB,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;QACxD,IAAG,EAAE,EAAE;YACL,EAAE,CAAC,MAAM,EAAE,CAAC;SACb;KACF;uGAhEU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;2FAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAON,UAAU,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECvBzC,kFAGqB,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FDaR,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAPpC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EAGd,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,IAAI,EAAA,QAAA,EAAA,kFAAA,EAAA,CAAA;8BAUX,MAAM,EAAA,CAAA;sBADZ,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAA;gBAGzB,WAAW,EAAA,CAAA;sBAA1B,KAAK;;;MExBK,iBAAiB,GAAG,IAAI,cAAc,CAAM,mBAAmB;;MCoB/D,kBAAkB,CAAA;AACrB,IAAA,OAAO,GAAG,MAAM,CAAkB,iBAAiB,CAAC,CAAC;AACrD,IAAA,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,IAAA,MAAM,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AACnC,IAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AACzB,IAAA,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AACzB,IAAA,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AAGtC,IAAA,WAAW,CAAC;AAEX,IAAA,SAAS,GAAG,IAAI,OAAO,EAAE,CAAC;IAE3B,QAAQ,GAAA;QACb,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;AAED,IAAA,IAAW,EAAE,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC;KAC/B;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAEzB,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;KACpD;IAEO,WAAW,GAAA;AACjB,QAAA,IAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE;AACnC,YAAA,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE;AAC/B,iBAAA,SAAS,CAAC,CAAC,MAAM,KAAI;AACpB,gBAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC;AAC/D,aAAC,CAAC,CAAC;SACN;KACF;IAEO,YAAY,GAAA;QAClB,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,IAAI,CAAC,OAAO,CAAC,MAAM;AAChB,aAAA,IAAI,CACH,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,aAAa,CAAC,EACzC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC1B;AACA,aAAA,SAAS,CAAC,CAAC,CAAC,KAAI;YACf,IAAI,CAAC,YAAY,EAAE,CAAC;AACtB,SAAC,CAAC,CAAC;KACN;IAEO,YAAY,GAAA;AAClB,QAAA,MAAM,IAAI,GAAI,MAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAE/C,QAAA,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;AAC3B,aAAA,SAAS,CAAC,CAAC,WAAW,KAAI;AACzB,YAAA,IAAG,WAAW,CAAC,KAAK,EAAE;gBACpB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBAExC,IAAI,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,gCAAgC,CAAC,CAAC;gBACzE,IAAG,CAAC,SAAS,EAAE;AACb,oBAAA,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAC3C,oBAAA,SAAS,CAAC,YAAY,CAAC,UAAU,EAAC,UAAU,CAAC,CAAC;AAC9C,oBAAA,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;iBACjE;gBAED,SAAS,CAAC,YAAY,CAAC,SAAS,EAAC,WAAW,CAAC,KAAK,CAAC,CAAC;aACrD;AAED,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AAC/B,YAAA,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;AAC7B,SAAC,CAAC,CAAC;KACN;uGAzEU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;2FAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtB/B,qGAEC,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDkBa,wBAAwB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAEzB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAR9B,SAAS;+BACI,YAAY,EAAA,eAAA,EAGL,uBAAuB,CAAC,MAAM,cACnC,IAAI,EAAA,OAAA,EACP,CAAC,wBAAwB,CAAC,EAAA,QAAA,EAAA,qGAAA,EAAA,CAAA;;;MEN1B,eAAe,CAAA;AACnB,IAAA,OAAO,OAAO,GAAA;QACnB,OAAO;AACL,YAAA,QAAQ,EAAE,eAAe;SAC1B,CAAC;KACH;uGALU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YAPpB,kBAAkB;AAClB,YAAA,wBAAwB,aAGxB,kBAAkB,CAAA,EAAA,CAAA,CAAA;wGAGb,eAAe,EAAA,CAAA,CAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAT3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,kBAAkB;wBAClB,wBAAwB;AAC3B,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,kBAAkB;AACrB,qBAAA;AACJ,iBAAA,CAAA;;;ACbD,IAAY,UAKX,CAAA;AALD,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,UAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,UAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,UAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AAC3B,CAAC,EALW,UAAU,KAAV,UAAU,GAKrB,EAAA,CAAA,CAAA;;ACLD,IAAY,QAKX,CAAA;AALD,CAAA,UAAY,QAAQ,EAAA;AAClB,IAAA,QAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,QAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,QAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,QAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC/B,CAAC,EALW,QAAQ,KAAR,QAAQ,GAKnB,EAAA,CAAA,CAAA;;MCWY,oBAAoB,CAAA;AAGxB,IAAA,OAAO,CAAU;AAGjB,IAAA,OAAO,CAAU;uGANb,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;2FAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChBjC,2KAMA,EAAA,MAAA,EAAA,CAAA,gQAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDQc,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAER,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBARhC,SAAS;+BACI,kBAAkB,EAAA,eAAA,EAGX,uBAAuB,CAAC,MAAM,cACnC,IAAI,EAAA,OAAA,EACP,CAAC,OAAO,CAAC,EAAA,QAAA,EAAA,2KAAA,EAAA,MAAA,EAAA,CAAA,gQAAA,CAAA,EAAA,CAAA;8BAKb,OAAO,EAAA,CAAA;sBADb,KAAK;gBAIC,OAAO,EAAA,CAAA;sBADb,KAAK;;;MEyBK,eAAe,CAAA;AAEnB,IAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;AACxB,IAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;AACxB,IAAA,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;AACtB,IAAA,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9B,aAAa,GAAG,KAAK,EAAmB,CAAC;;;;;IAMzC,IAAI,GAAG,KAAK,EAAU,CAAC;IACvB,IAAI,GAAG,KAAK,EAAU,CAAC;IACvB,EAAE,GAAG,KAAK,EAAU,CAAC;AACrB,IAAA,UAAU,GAAG,MAAM,CAAS,IAAI,CAAC,CAAC;AAElC,IAAA,YAAY,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;AAC5C,IAAA,WAAW,GAAG,MAAM,CAAa,IAAI,CAAC,CAAC;AACvC,IAAA,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;;;AAIvB,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AAClC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;AAE5B,QAAA,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;aAC7B,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACzE,KAAC,CAAC,CAAC;AACI,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;IAE9D,UAAU,GAAG,UAAU,CAAC;AAExB,IAAA,UAAU,CAAqB;AAC/B,IAAA,gBAAgB,CAAqB;AACrC,IAAA,UAAU,CAAqB;AAC/B,IAAA,QAAQ,CAAqB;AAE5B,IAAA,MAAM,GAAG,MAAM,CAAe,EAAE,CAAC,CAAC;AAClC,IAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;AAC7B,IAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IAElC,QAAQ,GAAA;QACb,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;YACd,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE;YACpC,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE;YACpC,CAAC,UAAU,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE;AACjC,SAAA,CAAC,CAAC;QACH,IAAI,CAAC,uBAAuB,EAAE,CAAC;KAChC;AAEM,IAAA,KAAK,CAAC,IAAgB,EAAA;AAC3B,QAAA,MAAM,KAAK,GAAG;AACZ,YAAA,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;AAC5B,YAAA,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;AAC5B,YAAA,CAAC,UAAU,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE;AACxB,YAAA,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU;SACzC,CAAC;AAEF,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;KAC5B;AAED;;;;;;;;AAQG;IACI,KAAK,CACV,MAAoB,EACpB,UAAmE,EAAA;AAEnE,QAAA,MAAM,IAAI,GAAiB,MAAM,CAAC,WAAW,CAC3C,IAAI,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAC5D,CAAC;AACF,QAAA,MAAM,KAAK,GAAG;YACZ,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC;AAC3C,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;SAC5B,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;AAE3B,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AACjB,YAAA,OAAO,KAAK,CAAC;SACd;AAED,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAEtB,QAAA,OAAO,MAAM,CAAC,GAAG,KAAK,CAAC;AACpB,aAAA,IAAI,CACH,IAAI,EAAE,EACN,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,EACjD,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CACvC,CAAC;KACL;AAEO,IAAA,YAAY,CAClB,MAAoB,EACpB,IAAkB,EAClB,UAAmE,EAAA;AAEnE,QAAA,MAAM,KAAK,GAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAkB;aAC9C,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAElC,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AACjB,YAAA,OAAO,IAAI,CAAC;SACb;AAED,QAAA,OAAO,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACnF,aAAA,IAAI,CACH,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CACxC,CAAC;KACL;AAEO,IAAA,gBAAgB,CAAC,IAAkB,EAAA;QACzC,IAAI,EAAE,UAAU,CAAC,UAAU,IAAI,IAAI,CAAC,EAAE;AACpC,YAAA,OAAO,IAAI,CAAC;SACb;AAED,QAAA,MAAM,YAAY,GAAG,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAEnF,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,gBAAgB,CAAC,YAAY,CAAC;AACvD,aAAA,IAAI,CACH,GAAG,CAAC,MAAK;AACP,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACpC,IAAI,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,CAAC;SAChD,CAAC,CACH,CAAC;KACL;IAEO,UAAU,CAAC,KAAmB,EAAE,IAAkB,EAAA;QACxD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,MAAM;AAC7B,YAAA,GAAG,KAAK;YACR,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC/D,SAAA,CAAC,CAAC,CAAC;KACL;IAEO,gBAAgB,GAAA;AACtB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACxE,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;AAClE,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACxE,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;KACrF;IAEO,uBAAuB,CAAC,IAAgB,EAAE,QAAgB,EAAA;QAChE,OAAO;AACL,YAAA,OAAO,EAAE,CAAC;YACV,QAAQ;AACR,YAAA,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,MAAK;AACV,gBAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aAC5B;SACF,CAAC;KACH;IAEO,uBAAuB,GAAA;AAC7B,QAAA,IAAI,CAAC,aAAa,EAAE,CAAC,gBAAgB,EAAE;AACpC,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,YAAY,KAAI;AACnB,YAAA,MAAM,IAAI,GAAG,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC;YAEtC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;AAC1C,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;SAC9E,CAAC,EACF,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CACrC;AACA,aAAA,SAAS,EAAE,CAAC;KAChB;uGA1KU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,EC9C5B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,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,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,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,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,YAAA,EAAA,IAAA,EAAA,YAAA,EAAA,EAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,4gEA4DA,EDtBQ,MAAA,EAAA,CAAA,0QAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,kBAAkB,EAClB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,MAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,UAAA,EAAA,KAAA,EAAA,wBAAA,EAAA,oBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,WAAA,EAAA,SAAA,EAAA,aAAA,EAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,oBAAoB,EACpB,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,kBAAkB,EAClB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,EACX,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,ygBACZ,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAGX,eAAe,EAAA,UAAA,EAAA,CAAA;kBAf3B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,mBAGL,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,IAAI,EACP,OAAA,EAAA;wBACL,kBAAkB;wBAClB,oBAAoB;wBACpB,kBAAkB;wBAClB,WAAW;wBACX,YAAY;wBACZ,gBAAgB;AACnB,qBAAA,EAAA,QAAA,EAAA,4gEAAA,EAAA,MAAA,EAAA,CAAA,0QAAA,CAAA,EAAA,CAAA;;;MErBQ,sBAAsB,CAAA;AAG1B,IAAA,OAAO,CAA0B;IAGjC,MAAM,GAAG,KAAK,CAAC;AAGf,IAAA,YAAY,GAAG,IAAI,YAAY,EAAyB,CAAC;IAEzD,UAAU,GAAG,UAAU,CAAC;uGAXpB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,ECvBnC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,wpBAQA,EDWI,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,oBAAoB,kTACpB,eAAe,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,eAAA,EAAA,YAAA,EAAA,SAAA,EAAA,UAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAGN,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAVlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,mBAEb,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,IAAI,EACP,OAAA,EAAA;wBACP,oBAAoB;wBACpB,eAAe;AAChB,qBAAA,EAAA,QAAA,EAAA,wpBAAA,EAAA,CAAA;8BAKM,OAAO,EAAA,CAAA;sBADb,KAAK;gBAIC,MAAM,EAAA,CAAA;sBADZ,KAAK;gBAIC,YAAY,EAAA,CAAA;sBADlB,MAAM;;;MELI,sBAAsB,CAAA;IAG1B,YAAY,GAAG,KAAK,CAAC;IAGrB,KAAK,GAAG,KAAK,CAAC;IAGd,WAAW,GAAW,IAAI,CAAC;AAG3B,IAAA,QAAQ,GAAG,IAAI,YAAY,EAAQ,CAAC;AAGpC,IAAA,IAAI,GAAG,IAAI,YAAY,EAAQ,CAAC;AAGhC,IAAA,IAAI,GAAG,IAAI,YAAY,EAAQ,CAAC;AAGhC,IAAA,OAAO,GAAG,IAAI,YAAY,EAAQ,CAAC;uGArB/B,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;2FAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC1BnC,yqBAkCA,EDdI,MAAA,EAAA,CAAA,yFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,SAAS,iLACT,aAAa,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACb,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACP,UAAU,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAGD,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAblC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,mBAGb,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,IAAI,EACP,OAAA,EAAA;wBACP,SAAS;wBACT,aAAa;wBACb,OAAO;wBACP,UAAU;AACX,qBAAA,EAAA,QAAA,EAAA,yqBAAA,EAAA,MAAA,EAAA,CAAA,yFAAA,CAAA,EAAA,CAAA;8BAKM,YAAY,EAAA,CAAA;sBADlB,KAAK;gBAIC,KAAK,EAAA,CAAA;sBADX,KAAK;gBAIC,WAAW,EAAA,CAAA;sBADjB,KAAK;gBAIC,QAAQ,EAAA,CAAA;sBADd,MAAM;gBAIA,IAAI,EAAA,CAAA;sBADV,MAAM;gBAIA,IAAI,EAAA,CAAA;sBADV,MAAM;gBAIA,OAAO,EAAA,CAAA;sBADb,MAAM;;;MERI,sBAAsB,CAAA;AAE1B,IAAA,aAAa,GAAG,MAAM,CAAkB,IAAI,CAAC,CAAC;AAE7C,IAAA,OAAO,GAAG,MAAM,CAAkB,iBAAiB,CAAC,CAAC;AACrD,IAAA,KAAK,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;AAChC,IAAA,UAAU,GAAG,MAAM,CAAuC,YAAY,CAAC,CAAC;AACxE,IAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;AAErC,IAAA,WAAA,GAAA;QACE,IAAI,CAAC,KAAK,EAAE,CAAC;KACd;IAEM,IAAI,GAAG,MAAK;;;AAGjB,QAAA,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;AAE/C,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AACrD,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,aAAa,KAAI;AACpB,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;AACvC,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;SACtC,CAAC,CACH,CAAC;AACN,KAAC,CAAC;IAEM,KAAK,GAAA;AACX,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC;KACzD;uGA7BU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,ECtCnC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,6zBA6BA,EDJQ,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,gBAAgB,0KAChB,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,wDAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACX,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,cAAA,EAAA,WAAA,EAAA,SAAA,EAAA,eAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,YAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,OAAA,EAAA,WAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,UAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,MAAA,EAAA,WAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,6BAAA,EAAA,QAAA,EAAA,gaAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,cAAc,EAId,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,uBAAA,EAAA,aAAA,EAAA,MAAA,EAAA,cAAA,EAAA,MAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,YAAY,EACZ,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAQ,sDACR,QAAQ,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAIH,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAnBlC,SAAS;AAGW,YAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACnC,UAAA,EAAA,IAAI,EACP,OAAA,EAAA;wBACL,gBAAgB;wBAChB,WAAW;wBACX,YAAY;wBACZ,cAAc;wBACd,cAAc;wBACd,aAAa;wBACb,gBAAgB;wBAChB,YAAY;wBACZ,QAAQ;wBACR,QAAQ;wBACR,gBAAgB;AACnB,qBAAA,EAAA,QAAA,EAAA,6zBAAA,EAAA,CAAA;;;MEcQ,4BAA4B,CAAA;AAEhC,IAAA,MAAM,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC;AACpC,IAAA,aAAa,GAAG,MAAM,CAAkB,IAAI,CAAC,CAAC;AAErD,IAAA,IAAW,KAAK,GAAA;AACd,QAAA,OAAO,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KAC7D;AAEM,IAAA,MAAM,CAAkB;IACxB,UAAU,GAAG,UAAU,CAAC;IACxB,OAAO,GAAG,MAAM,CAAC;AACtB,QAAA,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI;AACvB,QAAA,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI;AACvB,QAAA,CAAC,UAAU,CAAC,UAAU,GAAG,KAAK;AAC/B,KAAA,CAAC,CAAC;IAEI,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,CAC1C;AACE,QAAA,CAAC,UAAU,CAAC,IAAI,GAAG,SAAS;AAC5B,QAAA,CAAC,UAAU,CAAC,IAAI,GAAG,QAAQ;KAC5B,EACD,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC,CACtF,CAAC;AAEM,IAAA,KAAK,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;AAChC,IAAA,UAAU,GAAG,MAAM,CAA6C,YAAY,CAAC,CAAC;AAC9E,IAAA,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;AAC5B,IAAA,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC3B,IAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IAElC,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,gCAAgC,CAAC,CAAC;AAChE,QAAA,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;QACvC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;AAEM,IAAA,kBAAkB,CAAC,KAA4B,EAAA;AACpD,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;KAC1F;IAEM,IAAI,GAAA;QACT,IAAI,CAAC,SAAS,EAAE;AACb,aAAA,SAAS,EAAE,CAAC;KAChB;IAEM,KAAK,GAAA;QACV,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,EAAE;AAChC,YAAA,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;SAChC;AAED,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;AACnB,YAAA,YAAY,EAAE;AACZ,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACD,YAAA,KAAK,EAAE,0BAA0B;AACjC,YAAA,QAAQ,EAAE,8CAA8C;AACxD,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,KAAK,EAAE,gBAAgB;AACvB,oBAAA,KAAK,EAAE,QAAQ;AAChB,iBAAA;AACD,gBAAA;AACE,oBAAA,KAAK,EAAE,iBAAiB;AACxB,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA;AACF,aAAA;SACF,CAAC;AACC,aAAA,IAAI,CACH,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,KAAK,SAAS,CAAC,EACtC,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,EAClC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CACrC;AACA,aAAA,SAAS,EAAE,CAAC;KAChB;IAEM,YAAY,GAAA;AACjB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE;AACxC,YAAA,IAAI,EAAE;AACJ,gBAAA,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE;AACpC,aAAA;SACF,CAAC;AACC,aAAA,WAAW,EAAE;aACb,IAAI,CACH,MAAM,CAAC,CAAC,aAAa,KAAK,CAAC,CAAC,aAAa,CAAC;;;AAG1C,QAAA,GAAG,CAAC,CAAC,aAA8B,KAAI;YACrC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,OAAO,MAAM;AACtC,gBAAA,GAAG,OAAO;gBACV,IAAI,EAAE,aAAa,CAAC,IAAI;gBACxB,GAAG,EAAE,aAAa,CAAC,GAAG;AACvB,aAAA,CAAC,CAAC,CAAC;SACL,CAAC,EACF,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CACrC;AACA,aAAA,SAAS,EAAE,CAAC;KAChB;IAEO,kBAAkB,GAAA;AACxB,QAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;aACvD,IAAI,CACH,GAAG,CAAC,CAAC,aAAa,KAAK,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,EAC7D,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CACrC;AACA,aAAA,SAAS,EAAE,CAAC;KAChB;IAEO,WAAW,GAAA;AACjB,QAAA,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC;AAC3B,aAAA,IAAI,CACH,MAAM,CAAC,CAAC,KAAoB,KAAK,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,EACzD,GAAG,CAAC,MAAK;AACP,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;AACxD,YAAA,IAAI,SAAS,EAAE,iBAAiB,KAAK,IAAI,EAAE;gBACzC,IAAI,CAAC,KAAK,EAAE,CAAC;aACd;SACF,CAAC,EACF,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CACrC;AACA,aAAA,SAAS,EAAE,CAAC;KAChB;uGA3HU,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,gHAEb,eAAe,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpD3C,muCAyCA,EAAA,MAAA,EAAA,CAAA,44BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDHI,WAAW,EACX,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,wDAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,EACZ,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,cAAA,EAAA,WAAA,EAAA,SAAA,EAAA,eAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,YAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,OAAA,EAAA,WAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,gBAAgB,0KAChB,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,uBAAA,EAAA,aAAA,EAAA,MAAA,EAAA,cAAA,EAAA,MAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAEd,sBAAsB,EACtB,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,sBAAsB,mKAGtB,eAAe,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,MAAA,EAAA,MAAA,EAAA,IAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAGN,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAlBxC,SAAS;AAGS,YAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACnC,UAAA,EAAA,IAAI,EACP,OAAA,EAAA;wBACP,WAAW;wBACX,YAAY;wBACZ,gBAAgB;wBAChB,cAAc;wBACd,cAAc;wBACd,sBAAsB;wBACtB,sBAAsB;wBACtB,aAAa;wBACb,gBAAgB;wBAChB,eAAe;AAChB,qBAAA,EAAA,QAAA,EAAA,muCAAA,EAAA,MAAA,EAAA,CAAA,44BAAA,CAAA,EAAA,CAAA;;;MElBU,yBAAyB,CAAA;AAC5B,IAAA,OAAO,GAAG,MAAM,CAAkB,iBAAiB,CAAC,CAAC;AACrD,IAAA,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;AAI7B,IAAA,aAAa,CAAkB;AAE/B,IAAA,UAAU,CAAe;AAExB,IAAA,SAAS,GAAG,IAAI,OAAO,EAAQ,CAAC;IAEjC,QAAQ,GAAA;QACb,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;AAEM,IAAA,UAAU,CAAC,aAAkB,EAAA;AAClC,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,4BAA4B,EAAE;AAC9C,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,IAAI,EAAE;gBACJ,aAAa;gBACb,aAAa,EAAE,IAAI,CAAC,OAAO;AAC5B,aAAA;SACF,CAAC;AACC,aAAA,WAAW,EAAE;AACb,aAAA,IAAI,CACH,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC1B;aACA,SAAS,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;AAC9B,SAAC,CAAC,CAAC;KACN;AAEM,IAAA,UAAU,CAAC,aAAkB,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAC/C,YAAA,IAAI,EAAE;gBACJ,aAAa;AACd,aAAA;SACF,CAAC;AACC,aAAA,WAAW,EAAE;aACb,IAAI,CACH,MAAM,CAAC,CAAC,cAAc,KAAK,CAAC,CAAC,cAAc,CAAC,EAC5C,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC1B,CAAC;KACL;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;KAC3B;IAEO,eAAe,GAAA;QACrB,IAAI,CAAC,UAAU,GAAG;AAChB,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,QAAQ,CAAC,OAAO;AACtB,oBAAA,KAAK,EAAE,QAAQ;AAChB,iBAAA;AACF,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,KAAK,EAAE,QAAQ;oBACf,KAAK,EAAE,MAAK;AACV,wBAAA,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;6BAChB,SAAS,CAAC,MAAK;AACd,4BAAA,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;AAC9B,yBAAC,CAAC,CAAC;qBACN;AACF,iBAAA;AACF,aAAA;AACD,YAAA,UAAU,EAAE;AACV,gBAAA;AACE,oBAAA,KAAK,EAAE,CAAC,IAAI,KAAI;wBACd,OAAO,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;qBAC/C;AACD,oBAAA,MAAM,EAAE;AACN,wBAAA,KAAK,EAAE,SAAS;AAChB,wBAAA,QAAQ,EAAE,oDAAoD;AAC/D,qBAAA;AACD,oBAAA,IAAI,EAAE,IAAI;AACV,oBAAA,KAAK,EAAE,QAAQ;AAChB,iBAAA;AACF,aAAA;AACD,YAAA,KAAK,EAAE,CAAC,KAAK,KAAI;AACf,gBAAA,OAAO,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC;AAC1C,qBAAA,IAAI,CACH,GAAG,CAAC,CAAC,QAAa,KAAI;AACpB,oBAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAG,CAAC;iBACpE,CAAC,CACH,CAAC;aACL;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AAC3B,gBAAA,WAAW,EAAE,cAAc;AAC3B,gBAAA,SAAS,EAAE,SAAS;AACpB,gBAAA,MAAM,EAAE,IAAI;AACZ,gBAAA,KAAK,EAAE,CAAC,GAAG,KAAI;AACb,oBAAA,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;iBACxE;AACF,aAAA;SACF,CAAC;KACH;uGAxGU,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;2FAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAKzB,eAAe,ECnC5B,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,2rBAoBA,yDDKQ,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,WAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,OAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACZ,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAChB,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAGP,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAZrC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,mBAGb,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,IAAI,EACP,OAAA,EAAA;wBACL,YAAY;wBACZ,gBAAgB;wBAChB,YAAY;AACf,qBAAA,EAAA,QAAA,EAAA,2rBAAA,EAAA,CAAA;8BAQI,aAAa,EAAA,CAAA;sBADnB,SAAS;uBAAC,eAAe,CAAA;;;MEnBf,sBAAsB,CAAA;AAC1B,IAAA,OAAO,OAAO,GAAA;QACnB,OAAO;AACL,YAAA,QAAQ,EAAE,sBAAsB;SACjC,CAAC;KACH;uGALU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,YAR3B,yBAAyB;YACzB,sBAAsB;AACtB,YAAA,4BAA4B,aAG5B,yBAAyB,CAAA,EAAA,CAAA,CAAA;AAGpB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,YAR3B,yBAAyB;YACzB,sBAAsB;YACtB,4BAA4B,CAAA,EAAA,CAAA,CAAA;;2FAMvB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAVlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,yBAAyB;wBACzB,sBAAsB;wBACtB,4BAA4B;AAC/B,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,yBAAyB;AAC5B,qBAAA;AACJ,iBAAA,CAAA;;;ACbD;AACA;AACO,MAAM,SAAS,GAAG;IACvB,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,YAAY,EAAE;IAC9C,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,QAAQ,CAAC,YAAY,EAAE;IAC1D,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE;IAC1C,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE;CAChD;;MCoCY,oBAAoB,CAAA;AAExB,IAAA,WAAW,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAC;AAC1C,IAAA,cAAc,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAC;AACjD,IAAA,SAAS,GAAG,SAAS;SACzB,MAAM,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,KAAK,KAAK,QAAQ,CAAC,YAAY,IAAI,QAAQ,CAAC,KAAK,KAAK,QAAQ,CAAC,YAAY,CAAC,CAAC;;;;IAKvG,gBAAgB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS;AACpD,SAAA,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,KAAK,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;;;AAI5D,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAE1E,IAAA,OAAO,GAAG,MAAM,CAAkB,iBAAiB,CAAC,CAAC;AACrD,IAAA,KAAK,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;AAChC,IAAA,UAAU,GAAG,MAAM,CAAqC,YAAY,CAAC,CAAC;AACtE,IAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;AAC7B,IAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAEzC,IAAA,WAAA,GAAA;QACE,IAAI,CAAC,KAAK,EAAE,CAAC;KACd;IAEM,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;KACrC;IAEM,IAAI,GAAG,MAAK;;;AAGjB,QAAA,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AAE5E,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAClF,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,WAAW,KAAI;AAClB,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;AACvC,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;SACpC,CAAC,CACH,CAAC;AACN,KAAC,CAAC;IAEM,KAAK,GAAA;;;AAGX,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;AAEpD,QAAA,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;aAC9B,IAAI;;;;QAIH,GAAG,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,EACnE,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CACrC;AACA,aAAA,SAAS,EAAE,CAAC;KAChB;uGA3DU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,wEC7CjC,knEAuEA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDzCQ,gBAAgB,EAChB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,kxCACX,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,cAAA,EAAA,WAAA,EAAA,SAAA,EAAA,eAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,YAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,OAAA,EAAA,WAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,UAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,MAAA,EAAA,WAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,6BAAA,EAAA,QAAA,EAAA,gaAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,cAAc,EAId,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,uBAAA,EAAA,aAAA,EAAA,MAAA,EAAA,cAAA,EAAA,MAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,YAAY,4LACZ,QAAQ,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACR,SAAS,EACT,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,SAAS,qJACT,QAAQ,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAIH,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBArBhC,SAAS;AAGW,YAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACnC,UAAA,EAAA,IAAI,EACP,OAAA,EAAA;wBACL,gBAAgB;wBAChB,WAAW;wBACX,YAAY;wBACZ,cAAc;wBACd,cAAc;wBACd,aAAa;wBACb,gBAAgB;wBAChB,YAAY;wBACZ,QAAQ;wBACR,SAAS;wBACT,SAAS;wBACT,QAAQ;wBACR,gBAAgB;AACnB,qBAAA,EAAA,QAAA,EAAA,knEAAA,EAAA,CAAA;;;MEOQ,0BAA0B,CAAA;AAE9B,IAAA,MAAM,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC;AACpC,IAAA,WAAW,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAC;AAC1C,IAAA,MAAM,CAAkB;IACxB,OAAO,GAAG,MAAM,CAAC;AACtB,QAAA,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI;AACvB,QAAA,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI;AACvB,QAAA,CAAC,UAAU,CAAC,EAAE,GAAG,KAAK;AACtB,QAAA,CAAC,UAAU,CAAC,UAAU,GAAG,KAAK;AAC/B,KAAA,CAAC,CAAC;AAEH,IAAA,IAAW,KAAK,GAAA;AACd,QAAA,OAAO,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KAC7D;IAEM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,CAC1C;AACE,QAAA,CAAC,UAAU,CAAC,IAAI,GAAG,SAAS;AAC5B,QAAA,CAAC,UAAU,CAAC,IAAI,GAAG,QAAQ;AAC3B,QAAA,CAAC,UAAU,CAAC,EAAE,GAAG,IAAI;KACtB,EACD,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC,CAClF,CAAC;AAEM,IAAA,KAAK,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;AAChC,IAAA,UAAU,GAAG,MAAM,CAA2C,YAAY,CAAC,CAAC;AAC5E,IAAA,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;AAC5B,IAAA,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC3B,IAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IAElC,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,gCAAgC,CAAC,CAAC;AAChE,QAAA,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;QACvC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;AAEM,IAAA,kBAAkB,CAAC,KAA4B,EAAA;AACpD,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;KAC1F;IAEM,IAAI,GAAA;QACT,IAAI,CAAC,SAAS,EAAE;AACb,aAAA,SAAS,EAAE,CAAC;KAChB;IAEM,KAAK,GAAA;QACV,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,EAAE;AAChC,YAAA,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;SAChC;AAED,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;AACnB,YAAA,YAAY,EAAE;AACZ,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACD,YAAA,KAAK,EAAE,0BAA0B;AACjC,YAAA,QAAQ,EAAE,8CAA8C;AACxD,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,KAAK,EAAE,gBAAgB;AACvB,oBAAA,KAAK,EAAE,QAAQ;AAChB,iBAAA;AACD,gBAAA;AACE,oBAAA,KAAK,EAAE,iBAAiB;AACxB,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA;AACF,aAAA;SACF,CAAC;AACC,aAAA,IAAI,CACH,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,KAAK,SAAS,CAAC,EACtC,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,EAClC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CACrC;AACA,aAAA,SAAS,EAAE,CAAC;KAChB;IAEM,WAAW,GAAA;;;AAGhB,QAAA,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;KACtD;IAEM,YAAY,GAAA;AACjB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE;AACtC,YAAA,IAAI,EAAE;AACJ,gBAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAChC,aAAA;SACF,CAAC;AACC,aAAA,WAAW,EAAE;aACb,IAAI,CACH,MAAM,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,WAAW,CAAC;;;;AAItC,QAAA,GAAG,CAAC,CAAC,WAA0B,KAAI;YACjC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,MAAM;AACpC,gBAAA,GAAG,OAAO;gBACV,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,eAAe,EAAE,WAAW,CAAC,eAAe;gBAC5C,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,KAAK,EAAE,WAAW,CAAC,KAAK;AACzB,aAAA,CAAC,CAAC,CAAC;SACL,CAAC,EACF,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CACrC;AACA,aAAA,SAAS,EAAE,CAAC;KAChB;IAEO,gBAAgB,GAAA;AACtB,QAAA,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;aACnD,IAAI,CACH,GAAG,CAAC,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,EACvD,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CACrC;AACA,aAAA,SAAS,EAAE,CAAC;KAChB;IAEO,WAAW,GAAA;AACjB,QAAA,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC;AAC3B,aAAA,IAAI,CACH,MAAM,CAAC,CAAC,KAAoB,KAAK,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,EACzD,GAAG,CAAC,MAAK;AACP,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;AACxD,YAAA,IAAI,SAAS,EAAE,iBAAiB,KAAK,IAAI,EAAE;gBACzC,IAAI,CAAC,KAAK,EAAE,CAAC;aACd;SACF,CAAC,EACF,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CACrC;AACA,aAAA,SAAS,EAAE,CAAC;KAChB;uGArIU,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,gHAEX,eAAe,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpD3C,y2CA0CA,EAAA,MAAA,EAAA,CAAA,44BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDJQ,WAAW,EACX,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,wDAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,EACZ,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,cAAA,EAAA,WAAA,EAAA,SAAA,EAAA,eAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,YAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,OAAA,EAAA,WAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,gBAAgB,0KAChB,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,uBAAA,EAAA,aAAA,EAAA,MAAA,EAAA,cAAA,EAAA,MAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAEd,sBAAsB,EACtB,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,sBAAsB,mKAGtB,eAAe,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,MAAA,EAAA,MAAA,EAAA,IAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAGV,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAlBtC,SAAS;AAGW,YAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACnC,UAAA,EAAA,IAAI,EACP,OAAA,EAAA;wBACL,WAAW;wBACX,YAAY;wBACZ,gBAAgB;wBAChB,cAAc;wBACd,cAAc;wBACd,sBAAsB;wBACtB,sBAAsB;wBACtB,aAAa;wBACb,gBAAgB;wBAChB,eAAe;AAClB,qBAAA,EAAA,QAAA,EAAA,y2CAAA,EAAA,MAAA,EAAA,CAAA,44BAAA,CAAA,EAAA,CAAA;;;MEbQ,uBAAuB,CAAA;AAC1B,IAAA,OAAO,GAAG,MAAM,CAAkB,iBAAiB,CAAC,CAAC;AACrD,IAAA,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;AAGpB,IAAA,gBAAgB,CAAqB;AAG9C,IAAA,aAAa,CAAkB;AAE/B,IAAA,UAAU,CAAe;IACzB,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAE7C,IAAA,SAAS,GAAG,IAAI,OAAO,EAAQ,CAAC;IAEjC,QAAQ,GAAA;QACb,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;AAEM,IAAA,UAAU,CAAC,WAAgB,EAAA;AAChC,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,0BAA0B,EAAE;AAC5C,YAAA,IAAI,EAAE;gBACJ,WAAW;gBACX,MAAM,EAAE,IAAI,CAAC,OAAO;gBACpB,aAAa,EAAE,IAAI,CAAC,OAAO;AAC5B,aAAA;AACD,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,SAAS,EAAE,KAAK;SACjB,CAAC;AACC,aAAA,WAAW,EAAE;AACb,aAAA,IAAI,CACH,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC1B;aACA,SAAS,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;AAC9B,SAAC,CAAC,CAAC;KACN;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;KAC3B;AAEM,IAAA,eAAe,CAAC,WAAW,EAAA;AAChC,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE;YAC7C,IAAI,EAAE,EAAE,WAAW,EAAE;SACtB,CAAC;AACC,aAAA,WAAW,EAAE;aACb,IAAI,CACH,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC1B,CAAC;KACL;IAEO,eAAe,GAAA;QACrB,IAAI,CAAC,UAAU,GAAG;AAChB,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,QAAQ,CAAC,OAAO;AACtB,oBAAA,KAAK,EAAE,QAAQ;AAChB,iBAAA;AACF,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,KAAK,EAAE,QAAQ;oBACf,KAAK,EAAE,MAAK;wBACV,IAAI,CAAC,eAAe,CAAC;4BACnB,IAAI,EAAE,QAAQ,CAAC,YAAY;yBAC5B,CAAC;AACC,6BAAA,IAAI,CACH,MAAM,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,WAAW,CAAC,CACvC;AACA,6BAAA,SAAS,CAAC,CAAC,WAAW,KAAI;AACzB,4BAAA,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAC7B,4BAAA,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;AAC9B,yBAAC,CAAC,CAAC;qBACN;AACF,iBAAA;AACF,aAAA;AACD,YAAA,UAAU,EAAE;AACV,gBAAA;AACE,oBAAA,KAAK,EAAE,CAAC,IAAI,KAAI;wBACd,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;qBAC7C;AACD,oBAAA,MAAM,EAAE;AACN,wBAAA,KAAK,EAAE,SAAS;AAChB,wBAAA,QAAQ,EAAE,oDAAoD;AAC/D,qBAAA;AACD,oBAAA,IAAI,EAAE,IAAI;AACV,oBAAA,KAAK,EAAE,QAAQ;AAChB,iBAAA;AACF,aAAA;AACD,YAAA,KAAK,EAAE,CAAC,KAAK,KAAI;AACf,gBAAA,KAAK,GAAG;AACN,oBAAA,cAAc,EAAE,IAAI;AACpB,oBAAA,GAAG,KAAK;iBACT,CAAC;AAEF,gBAAA,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC;AACxC,qBAAA,IAAI,CACH,GAAG,CAAC,CAAC,QAAa,KAAI;AACpB,oBAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;iBACjE,CAAC,CACH,CAAC;aACL;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AAC3B,gBAAA,WAAW,EAAE,cAAc;AAC3B,gBAAA,SAAS,EAAE,SAAS;AACpB,gBAAA,MAAM,EAAE,IAAI;AACZ,gBAAA,KAAK,EAAE,CAAC,GAAG,KAAI;AACb,oBAAA,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;iBACtE;AACF,aAAA;SACF,CAAC;KACH;uGArHU,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;2FAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAOvB,eAAe,EC1C5B,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,+9CAyCA,gXDXQ,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,WAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,OAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACZ,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAChB,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAGP,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAZnC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,mBAGX,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,IAAI,EACP,OAAA,EAAA;wBACL,YAAY;wBACZ,gBAAgB;wBAChB,YAAY;AACf,qBAAA,EAAA,QAAA,EAAA,+9CAAA,EAAA,MAAA,EAAA,CAAA,yTAAA,CAAA,EAAA,CAAA;8BAOa,gBAAgB,EAAA,CAAA;sBAA/B,KAAK;gBAGC,aAAa,EAAA,CAAA;sBADnB,SAAS;uBAAC,eAAe,CAAA;;;ME1Bf,oBAAoB,CAAA;AACxB,IAAA,OAAO,OAAO,GAAA;QACnB,OAAO;AACL,YAAA,QAAQ,EAAE,oBAAoB;SAC/B,CAAC;KACH;uGALU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,YARzB,uBAAuB;YACvB,oBAAoB;AACpB,YAAA,0BAA0B,aAG1B,uBAAuB,CAAA,EAAA,CAAA,CAAA;AAGlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,YARzB,uBAAuB;YACvB,oBAAoB;YACpB,0BAA0B,CAAA,EAAA,CAAA,CAAA;;2FAMrB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAVhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,uBAAuB;wBACvB,oBAAoB;wBACpB,0BAA0B;AAC7B,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,uBAAuB;AAC1B,qBAAA;AACJ,iBAAA,CAAA;;;MCeY,qBAAqB,CAAA;AACxB,IAAA,OAAO,GAAG,MAAM,CAAkB,iBAAiB,CAAC,CAAC;AACrD,IAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;AAC7B,IAAA,MAAM,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAIpC,IAAA,WAAW,CAAwB;AAGnC,IAAA,IAAI,CAAkB;IAEb,MAAM,GAAW,MAAM,CAAC;IAEjC,YAAY,GAAG,IAAI,CAAC;AACpB,IAAA,WAAW,GAAG;AACnB,QAAA,OAAO,EAAE,CAAC;AACV,QAAA,QAAQ,EAAE,MAAM;AAChB,QAAA,MAAM,EAAE,MAAM;KACf,CAAC;AAEM,IAAA,SAAS,GAAG,IAAI,OAAO,EAAQ,CAAC;IAEjC,QAAQ,GAAA;QACb,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AACtC,QAAA,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE;AAC5B,aAAA,SAAS,CAAC,CAAC,YAAY,KAAI;AAC1B,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;AACjC,YAAA,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;AAC7B,SAAC,CAAC,CAAC;KACN;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;KAC3B;IAEM,IAAI,GAAA;QACT,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC;AAC7C,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,YAAY,KAAI;YACnB,IAAI,CAAC,YAAY,GAAG;gBAClB,GAAG,IAAI,CAAC,YAAY;AACpB,gBAAA,GAAG,YAAY;aAChB,CAAC;AAEF,YAAA,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;AAC3B,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;AACzC,SAAC,CAAC,CACH,CAAC,SAAS,EAAE,CAAC;KACjB;uGAlDU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EAMrB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,qBAAqB,EAGrB,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,MAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,eAAe,ECvC5B,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,+SASA,EDeQ,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,gBAAgB,EAChB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,kBAAkB,EAClB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,kWACX,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAGT,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAbjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,mBAGX,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,IAAI,EACP,OAAA,EAAA;wBACL,gBAAgB;wBAChB,kBAAkB;wBAClB,WAAW;wBACX,cAAc;AACjB,qBAAA,EAAA,QAAA,EAAA,+SAAA,EAAA,CAAA;8BASI,WAAW,EAAA,CAAA;sBADjB,SAAS;uBAAC,qBAAqB,CAAA;gBAIzB,IAAI,EAAA,CAAA;sBADV,SAAS;uBAAC,eAAe,CAAA;gBAGV,MAAM,EAAA,CAAA;sBAArB,KAAK;;;AE1CR;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@firestitch/content",
3
- "version": "18.0.10",
3
+ "version": "18.0.12",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/Firestitch/ngx-content"
@@ -1 +0,0 @@
1
- export * from './editor.component';
@@ -1,2 +0,0 @@
1
- export * from './editor.component';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZWRpdG9yL2NvbXBvbmVudHMvZWRpdG9yL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2VkaXRvci5jb21wb25lbnQnO1xuIl19