{"version":3,"file":"rete-angular-render-plugin.mjs","sources":["../../src/node.service.ts","../../src/socket/socket.component.ts","../../src/control.directive.ts","../../src/socket.directive.ts","../../src/kebab.pipe.ts","../../src/node/node.component.ts","../../src/node/node.component.html","../../src/custom.component.ts","../../src/module.ts","../../src/index.ts","../../src/rete-angular-render-plugin.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BindControl, BindSocket } from './types';\n\n@Injectable()\nexport class NodeService {\n  public bindSocket: BindSocket;\n  public bindControl: BindControl;\n  \n  setBindings(bindSocket, bindControl) {\n    this.bindSocket = bindSocket;\n    this.bindControl = bindControl;\n  }\n}\n","import { Component, Input, ChangeDetectionStrategy } from '@angular/core';\nimport { Socket, IO, Input as ReteInput } from 'rete';\nimport { SocketType } from '../types';\n\n@Component({\n  selector: 'rete-socket',\n  template: `<div *ngIf=\"socket\" class=\"socket\" [ngClass]=\"[type, socket.name]\" [title]=\"socket.name\"></div>`,\n  styleUrls: ['./socket.component.sass'],\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SocketComponent {\n  @Input() socket!: Socket;\n  @Input() io!: IO;\n\n  get type(): SocketType {\n    return this.io instanceof ReteInput ? 'input' : 'output';\n  }\n}\n","import { Directive, Input, ElementRef, OnInit } from '@angular/core';\nimport { Control } from 'rete';\nimport { NodeService } from './node.service';\n\n@Directive({\n  selector: '[rete-control]'\n})\nexport class ControlDirective implements OnInit {\n  @Input('rete-control') control!: Control;\n\n  constructor(private el: ElementRef, private service: NodeService) {}\n\n  ngOnInit() {\n    this.service.bindControl(this.el.nativeElement, this.control);\n  }\n}\n","import { Directive, Input, ElementRef, OnInit } from '@angular/core';\nimport { IO, Input as ReteInput } from 'rete';\nimport { NodeService } from './node.service';\nimport { SocketType } from './types';\n\n@Directive({\n  selector: '[rete-socket]'\n})\nexport class SocketDirective implements OnInit {\n    @Input() io!: IO;\n  \n    constructor(private el: ElementRef, private service: NodeService) {}\n  \n    get type(): SocketType {\n      return this.io instanceof ReteInput ? 'input' : 'output';\n    }\n  \n    ngOnInit() {\n      this.service.bindSocket(this.el.nativeElement, this.type, this.io);\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\ntype ClassAttr = string | string[];\n\n@Pipe({name: 'kebab'})\nexport class KebabPipe implements PipeTransform {\n\n  replace(s: string) {\n    return s.toLowerCase().replace(/ /g, '-');\n  }\n\n  transform(value: ClassAttr): ClassAttr {\n    return Array.isArray(value) ? value.map(s => this.replace(s)) : this.replace(value);\n  }\n}","import { Component, Input, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';\nimport { NodeEditor, Node, Input as ReteInput, Output as ReteOutput, Control as ReteControl } from 'rete';\nimport { NodeService } from '../node.service';\n\n@Component({\n  templateUrl: './node.component.html',\n  styleUrls: ['./node.component.sass'],\n  providers: [NodeService],\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NodeComponent {\n  @Input() editor!: NodeEditor;\n  @Input() node!: Node;\n  @Input() bindSocket!: Function;\n  @Input() bindControl!: Function;\n\n  constructor(protected service: NodeService, protected cdr: ChangeDetectorRef) {}\n\n  ngOnInit() {\n    this.service.setBindings(this.bindSocket, this.bindControl);\n    this.node.update = () => this.cdr.detectChanges();\n  }\n\n  get inputs() {\n    return Array.from(this.node.inputs.values());\n  }\n\n  get outputs() {\n    return Array.from(this.node.outputs.values());\n  }\n\n  get controls() {\n    return Array.from(this.node.controls.values());\n  }\n\n  selected() {\n    return this.editor.selected.contains(this.node) ? 'selected' : '';\n  }\n}\n","<div class=\"node\" [ngClass]=\"[selected(), node.name] | kebab\">\n    <div class=\"title\">{{node.name}}</div>\n    <div class=\"output\" *ngFor=\"let output of outputs\">\n        <div class=\"output-title\">{{output.name}}</div>\n        <rete-socket rete-socket [io]=\"output\" [socket]=\"output.socket\"></rete-socket>\n    </div>\n    <div class=\"control\" *ngFor=\"let control of controls\" [rete-control]=\"control\"></div>\n    <div class=\"input\" *ngFor=\"let input of inputs\">\n        <rete-socket rete-socket [io]=\"input\" [socket]=\"input.socket\"></rete-socket>\n        <div class=\"input-title\" *ngIf=\"!input.showControl()\">{{input.name}}</div>\n        <div class=\"input-control\" *ngIf=\"input.showControl()\" [rete-control]=\"input.control\"></div>\n    </div>\n</div>","import { Component, Input, OnInit, Injector, ComponentFactoryResolver, ViewContainerRef, Type, ChangeDetectionStrategy } from '@angular/core';\nimport { Props } from './types';\n\n@Component({\n    template: '',\n    changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CustomComponent implements OnInit {\n  @Input() component!: Type<Component>;\n  @Input() props!: Props;\n\n  constructor(\n    private vcr: ViewContainerRef,\n    private injector: Injector,\n    private factoryResolver: ComponentFactoryResolver\n  ) {}\n\n  ngOnInit() {\n    const factory = this.factoryResolver.resolveComponentFactory(this.component);\n    const componentRef = factory.create(this.injector);\n    const { props } = this;\n\n    for(let key in props) {\n      Object.defineProperty(componentRef.instance, key, {\n        get() { return props[key]; },\n        set(val) { props[key] = val; }\n      })\n    }\n\n    this.vcr.insert(componentRef.hostView);\n  }\n\n  ngOnDestroy() {\n    this.vcr.detach(0);\n  }\n}\n","import { NgModule, Injector } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { createCustomElement } from '@angular/elements';\n\nimport { KebabPipe } from './kebab.pipe';\nimport { NodeComponent } from './node/node.component';\nimport { SocketComponent } from './socket/socket.component';\nimport { ControlDirective } from './control.directive';\nimport { SocketDirective } from './socket.directive';\nimport { CustomComponent } from './custom.component';\n\n@NgModule({\n  declarations: [\n    NodeComponent,\n    SocketComponent,\n    CustomComponent,\n    ControlDirective,\n    SocketDirective,\n    KebabPipe,\n  ],\n  imports: [\n    CommonModule\n  ],\n  providers: [\n    KebabPipe,\n    ControlDirective\n  ],\n  exports: [\n    NodeComponent,\n    CustomComponent,\n    SocketComponent,\n    ControlDirective,\n    SocketDirective,\n    KebabPipe\n  ],\n  entryComponents: [\n    NodeComponent,\n    SocketComponent,\n    CustomComponent\n  ]\n})\nexport class ReteModule {\n  constructor(injector: Injector) { // StaticInjectorError due to 'npm link'\n    const CustomElement = createCustomElement(CustomComponent, { injector });\n    if (!customElements.get('rete-element')) customElements.define('rete-element', CustomElement);\n  }\n}\n","import { Type } from '@angular/core';\nimport { NodeEditor } from 'rete';\nimport { AngularControl, ElementProps, AngularComponentData } from './types';\nimport { NodeComponent } from './node/node.component';\n\nfunction install(editor: NodeEditor, params : { component?: Type<any> } = {}) {\n    editor.on('rendernode', ({ el, node, component, bindControl, bindSocket }) => {\n        const ngComponent = component as unknown as AngularComponentData;\n\n        if (ngComponent.render && ngComponent.render !== 'angular') return;\n\n        const element = document.createElement('rete-element');\n        const props: ElementProps = element as any;\n\n        props.component = ngComponent.component || params.component || NodeComponent;\n        props.props = Object.assign({}, ngComponent.props || {}, {\n            node,\n            editor,\n            bindControl,\n            bindSocket\n        });\n\n        el.appendChild(element);\n    });\n\n    editor.on('rendercontrol', ({ el, control }) => {\n        const ngControl = control as unknown as AngularControl;\n\n        if (ngControl.render && ngControl.render !== 'angular') return;\n\n        const element = document.createElement('rete-element');\n        const props: ElementProps = element as any;\n\n        props.component = ngControl.component;\n        props.props = ngControl.props;\n\n        el.appendChild(element);\n    });\n    editor.on(['connectioncreated', 'connectionremoved'], connection => {\n        connection.output.node.update();\n        connection.input.node.update();\n    });\n    editor.on('nodeselected', () => {\n        editor.nodes.forEach(n => n.update());\n    });\n}\n\nexport const AngularRenderPlugin = {\n    name: 'angular-render',\n    install\n};\nexport { ReteModule } from './module';\nexport * from './types';\nexport { NodeService } from './node.service';\nexport { NodeComponent } from './node/node.component';\nexport { SocketComponent } from './socket/socket.component';\nexport { KebabPipe } from './kebab.pipe';\nexport { ControlDirective } from './control.directive';\nexport { SocketDirective } from './socket.directive';\nexport { CustomComponent } from './custom.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["ReteInput","i1","Input","i1.NodeService","i3.SocketComponent","i4.ControlDirective","i5.SocketDirective","i6.KebabPipe"],"mappings":";;;;;;;MAIa,WAAW,CAAA;IAItB,WAAW,CAAC,UAAU,EAAE,WAAW,EAAA;AACjC,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AAC7B,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;KAChC;;wGAPU,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;4GAAX,WAAW,EAAA,CAAA,CAAA;2FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBADvB,UAAU;;;MCOE,eAAe,CAAA;AAI1B,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,EAAE,YAAYA,KAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;KAC1D;;4GANU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,2FAJhB,CAAA,+FAAA,CAAiG,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,oWAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FAIhG,eAAe,EAAA,UAAA,EAAA,CAAA;kBAN3B,SAAS;YACE,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EACb,QAAA,EAAA,CAAiG,+FAAA,CAAA,EAE1F,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,MAAA,EAAA,CAAA,oWAAA,CAAA,EAAA,CAAA;8BAGtC,MAAM,EAAA,CAAA;sBAAdC,OAAK;gBACG,EAAE,EAAA,CAAA;sBAAVA,OAAK;;;MCLK,gBAAgB,CAAA;IAG3B,WAAoB,CAAA,EAAc,EAAU,OAAoB,EAAA;AAA5C,QAAA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;AAAU,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAa;KAAI;IAEpE,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;KAC/D;;6GAPU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;iGAAhB,gBAAgB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,SAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;iBAC3B,CAAA;wHAEwB,OAAO,EAAA,CAAA;sBAA7BD,OAAK;uBAAC,cAAc,CAAA;;;MCAV,eAAe,CAAA;IAGxB,WAAoB,CAAA,EAAc,EAAU,OAAoB,EAAA;AAA5C,QAAA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;AAAU,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAa;KAAI;AAEpE,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,EAAE,YAAYF,KAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;KAC1D;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;KACpE;;4GAXQ,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAG,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;gGAAf,eAAe,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,eAAe;iBAC1B,CAAA;wHAEY,EAAE,EAAA,CAAA;sBAAVD,OAAK;;;MCJG,SAAS,CAAA;AAEpB,IAAA,OAAO,CAAC,CAAS,EAAA;QACf,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;KAC3C;AAED,IAAA,SAAS,CAAC,KAAgB,EAAA;AACxB,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KACrF;;sGARU,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;oGAAT,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,CAAA;2FAAT,SAAS,EAAA,UAAA,EAAA,CAAA;kBADrB,IAAI;mBAAC,EAAC,IAAI,EAAE,OAAO,EAAC,CAAA;;;MCMR,aAAa,CAAA;IAMxB,WAAsB,CAAA,OAAoB,EAAY,GAAsB,EAAA;AAAtD,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAa;AAAY,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;KAAI;IAEhF,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AAC5D,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KACnD;AAED,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;KAC9C;AAED,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;KAC/C;AAED,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;KAChD;IAED,QAAQ,GAAA;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,UAAU,GAAG,EAAE,CAAC;KACnE;;0GA3BU,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,aAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,EAHb,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,SAAA,EAAA,CAAC,WAAW,CAAC,0BCP1B,+xBAYM,EAAA,MAAA,EAAA,CAAA,qzBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FDFO,aAAa,EAAA,UAAA,EAAA,CAAA;kBANzB,SAAS;YAGG,IAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAC,WAAW,CAAC,EACP,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,+xBAAA,EAAA,MAAA,EAAA,CAAA,qzBAAA,CAAA,EAAA,CAAA;+HAGtC,MAAM,EAAA,CAAA;sBAAdL,OAAK;gBACG,IAAI,EAAA,CAAA;sBAAZA,OAAK;gBACG,UAAU,EAAA,CAAA;sBAAlBA,OAAK;gBACG,WAAW,EAAA,CAAA;sBAAnBA,OAAK;;;MEPK,eAAe,CAAA;AAI1B,IAAA,WAAA,CACU,GAAqB,EACrB,QAAkB,EAClB,eAAyC,EAAA;AAFzC,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAkB;AACrB,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;AAClB,QAAA,IAAe,CAAA,eAAA,GAAf,eAAe,CAA0B;KAC/C;IAEJ,QAAQ,GAAA;AACN,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7E,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACnD,QAAA,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;AAEvB,QAAA,KAAI,IAAI,GAAG,IAAI,KAAK,EAAE;YACpB,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE;gBAChD,GAAG,GAAA,EAAK,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE;gBAC5B,GAAG,CAAC,GAAG,EAAA,EAAI,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE;AAC/B,aAAA,CAAC,CAAA;AACH,SAAA;QAED,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;KACxC;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;KACpB;;4GA3BU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,wGAHd,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FAGH,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,EAAE;oBACZ,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAClD,CAAA;qKAEU,SAAS,EAAA,CAAA;sBAAjBA,OAAK;gBACG,KAAK,EAAA,CAAA;sBAAbA,OAAK;;;MCgCK,UAAU,CAAA;AACrB,IAAA,WAAA,CAAY,QAAkB,EAAA;QAC5B,MAAM,aAAa,GAAG,mBAAmB,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;AACzE,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC;AAAE,YAAA,cAAc,CAAC,MAAM,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;KAC/F;;uGAJU,UAAU,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAV,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,iBA5BnB,aAAa;QACb,eAAe;QACf,eAAe;QACf,gBAAgB;QAChB,eAAe;QACf,SAAS,CAAA,EAAA,OAAA,EAAA,CAGT,YAAY,CAAA,EAAA,OAAA,EAAA,CAOZ,aAAa;QACb,eAAe;QACf,eAAe;QACf,gBAAgB;QAChB,eAAe;QACf,SAAS,CAAA,EAAA,CAAA,CAAA;AAQA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,EAlBV,SAAA,EAAA;QACT,SAAS;QACT,gBAAgB;AACjB,KAAA,EAAA,OAAA,EAAA,CALC,YAAY,CAAA,EAAA,CAAA,CAAA;2FAoBH,UAAU,EAAA,UAAA,EAAA,CAAA;kBA9BtB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,aAAa;wBACb,eAAe;wBACf,eAAe;wBACf,gBAAgB;wBAChB,eAAe;wBACf,SAAS;AACV,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;AACD,oBAAA,SAAS,EAAE;wBACT,SAAS;wBACT,gBAAgB;AACjB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,aAAa;wBACb,eAAe;wBACf,eAAe;wBACf,gBAAgB;wBAChB,eAAe;wBACf,SAAS;AACV,qBAAA;AACD,oBAAA,eAAe,EAAE;wBACf,aAAa;wBACb,eAAe;wBACf,eAAe;AAChB,qBAAA;iBACF,CAAA;;;ACnCD,SAAS,OAAO,CAAC,MAAkB,EAAE,SAAqC,EAAE,EAAA;AACxE,IAAA,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,KAAI;QACzE,MAAM,WAAW,GAAG,SAA4C,CAAC;QAEjE,IAAI,WAAW,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO;QAEnE,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;QACvD,MAAM,KAAK,GAAiB,OAAc,CAAC;AAE3C,QAAA,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,IAAI,aAAa,CAAC;AAC7E,QAAA,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,KAAK,IAAI,EAAE,EAAE;YACrD,IAAI;YACJ,MAAM;YACN,WAAW;YACX,UAAU;AACb,SAAA,CAAC,CAAC;AAEH,QAAA,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAC5B,KAAC,CAAC,CAAC;AAEH,IAAA,MAAM,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,KAAI;QAC3C,MAAM,SAAS,GAAG,OAAoC,CAAC;QAEvD,IAAI,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO;QAE/D,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;QACvD,MAAM,KAAK,GAAiB,OAAc,CAAC;AAE3C,QAAA,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;AACtC,QAAA,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;AAE9B,QAAA,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAC5B,KAAC,CAAC,CAAC;IACH,MAAM,CAAC,EAAE,CAAC,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,EAAE,UAAU,IAAG;AAC/D,QAAA,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;AAChC,QAAA,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;AACnC,KAAC,CAAC,CAAC;AACH,IAAA,MAAM,CAAC,EAAE,CAAC,cAAc,EAAE,MAAK;AAC3B,QAAA,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAC1C,KAAC,CAAC,CAAC;AACP,CAAC;AAEY,MAAA,mBAAmB,GAAG;AAC/B,IAAA,IAAI,EAAE,gBAAgB;IACtB,OAAO;;;ACjDX;;AAEG;;;;"}