{"version":3,"file":"adjai-ngx-library-src-lib-message.mjs","sources":["../../../projects/ngx-library/src/lib/message/message.service.ts","../../../projects/ngx-library/src/lib/message/message.component.ts","../../../projects/ngx-library/src/lib/message/message.component.html","../../../projects/ngx-library/src/lib/message/message.module.ts","../../../projects/ngx-library/src/lib/message/adjai-ngx-library-src-lib-message.ts"],"sourcesContent":["import {ApplicationRef, ComponentFactoryResolver, EmbeddedViewRef, Injectable, Injector, Type} from '@angular/core';\r\nimport {Subject} from \"rxjs\";\r\n//import {UtilsService} from \"@adjai/ngx-library/src/lib/mix\";\r\nimport {MessageComponent} from \"./message.component\";\r\n\r\nexport type MessageActions = {[key: string]: () => void}\r\n\r\nexport enum MessageButtonsPresets {\r\n  close = 'close',\r\n  ok = 'ok',\r\n}\r\n\r\nexport enum MessageTypes {\r\n  info = 'info',\r\n  info_center = 'info-center',\r\n  info_close = 'info-close',\r\n  error = 'error',\r\n  error_close = 'error-close',\r\n  confirm = 'confirm',\r\n}\r\n\r\nexport interface Message {\r\n  title?: string\r\n  text: string\r\n  type?: MessageTypes\r\n  actions?: MessageActions,\r\n  actionTypes?: {[key: string]: string}\r\n  autoHideDelay?: number,\r\n}\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class MessageService {\r\n  isComponentInjected = false\r\n  static message$: Subject<Message|null> = new Subject<Message|null>()\r\n  messageButtonPresets: {[key: string]: MessageActions} = {\r\n    [MessageButtonsPresets.close]: {\r\n      'Закрыть': this.hide,\r\n    },\r\n    [MessageButtonsPresets.ok]: {\r\n      'ok': this.hide,\r\n    },\r\n  }\r\n\r\n  constructor(\r\n    private componentFactoryResolver: ComponentFactoryResolver,\r\n    private appRef: ApplicationRef,\r\n    private injector: Injector,\r\n    //private utilsService: UtilsService,\r\n  ) {\r\n    //this.utilsService.injectComponent(MessageComponent)\r\n    this.injectComponent(MessageComponent)\r\n  }\r\n\r\n  protected preprocessText(text: string) {\r\n    text = text.trim()\r\n    if (text !== '') {\r\n      text = text.replace(/\\n/g, '</p>\\n<p>')\r\n      text = '<p>' + text + '</p>'\r\n    }\r\n    return text\r\n  }\r\n\r\n  confirm(text: string, title: string | null = null, callbackYes: () => void, callbackNo: (() => void) | null = null, buttonTextYes = 'Подтвердить', buttonTextNo = 'Отменить'): void {\r\n    this.show({\r\n      text,\r\n      title: title === null ? '' : title,\r\n      type: MessageTypes.confirm,\r\n      actionTypes: {\r\n        [buttonTextYes]: 'primary',\r\n        [buttonTextNo]: 'secondary',\r\n      },\r\n      actions: {\r\n        [buttonTextYes]: () => {\r\n          this.hide()\r\n          callbackYes()\r\n        },\r\n        [buttonTextNo]: () => {\r\n          this.hide()\r\n          if (callbackNo) {\r\n            callbackNo()\r\n          }\r\n        },\r\n      }\r\n    })\r\n  }\r\n\r\n  show(message: Message, buttonsPreset: MessageButtonsPresets | null = null): void {\r\n    message = Object.assign({\r\n      title: '',\r\n      type: MessageTypes.info,\r\n      actions: {},\r\n      autoHideDelay: 0,\r\n    }, message)\r\n    if (buttonsPreset !== null && this.messageButtonPresets[buttonsPreset]) {\r\n      message.actions = Object.assign(this.messageButtonPresets[buttonsPreset], message.actions)\r\n    }\r\n    message.text = this.preprocessText(message.text)\r\n    MessageService.message$.next(message)\r\n  }\r\n\r\n  error(text: string, title: string = '', actions: MessageActions = {}, autoHideDelay = 0) {\r\n    text = this.preprocessText(text)\r\n    this.show({\r\n      text,\r\n      title,\r\n      type: MessageTypes.error,\r\n      actions,\r\n      autoHideDelay,\r\n    })\r\n  }\r\n\r\n  info(text: string, title: string = '', actions: MessageActions = {}, autoHideDelay = 0) {\r\n    text = this.preprocessText(text)\r\n    this.show({\r\n      text,\r\n      title,\r\n      type: MessageTypes.info,\r\n      actions,\r\n      autoHideDelay,\r\n    })\r\n  }\r\n\r\n  hide() {\r\n    MessageService.message$.next(null)\r\n  }\r\n\r\n  private injectComponent<T>(component: Type<T>) {\r\n    const componentRef = this.componentFactoryResolver\r\n      .resolveComponentFactory(component)\r\n      .create(this.injector)\r\n    this.appRef.attachView(componentRef.hostView)\r\n    const domElem = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement\r\n    document.body.appendChild(domElem)\r\n  }\r\n}\r\n","import {ChangeDetectorRef, Component, HostListener, OnInit} from '@angular/core';\r\nimport {Message, MessageService} from \"./message.service\";\r\nimport {KeyValue} from \"@angular/common\";\r\nimport {timer} from \"rxjs\";\r\n\r\n// todo Реализовать красивое оформление для компонента\r\n\r\n@Component({\r\n  selector: 'mx-message',\r\n  templateUrl: './message.component.html',\r\n  styleUrls: ['./message.component.scss']\r\n})\r\nexport class MessageComponent implements OnInit {\r\n  ifHideOnClick = true\r\n  isVisible = false\r\n  message: Message | undefined;\r\n  private timerHide!: any;\r\n  actionsOriginalOrder = (a: KeyValue<any, any>, b: KeyValue<any, any>): number => 0\r\n\r\n  constructor(\r\n    private changeDetector: ChangeDetectorRef,\r\n  ) { }\r\n\r\n  ngOnInit(): void {\r\n    MessageService.message$.subscribe((message: Message|null) => {\r\n      if (message === null) {\r\n        this.hide()\r\n      } else {\r\n        this.show(message)\r\n      }\r\n    })\r\n  }\r\n\r\n  show(message: Message): void {\r\n    this.message = message\r\n    this.isVisible = true\r\n    if (this.timerHide) {\r\n      clearTimeout(this.timerHide)\r\n    }\r\n    if (message.autoHideDelay !== 0) {\r\n      this.timerHide = setTimeout(this.hide.bind(this), message.autoHideDelay)\r\n    }\r\n    this.changeDetector.detectChanges()\r\n    this.ifHideOnClick = false\r\n    timer(100).subscribe(() => {\r\n      this.ifHideOnClick = true\r\n    })\r\n  }\r\n\r\n  hide(): void {\r\n    this.isVisible = false\r\n  }\r\n\r\n  @HostListener('document:click')\r\n  hideOnClick(): void {\r\n    if (this.ifHideOnClick) {\r\n      this.hide()\r\n    }\r\n  }\r\n\r\n}\r\n","<div id=\"message\" *ngIf=\"message && isVisible\" [class]=\"message.type\" (click)=\"hide()\">\r\n  <div class=\"container\" mxStopPropagation=\"\">\r\n    <div class=\"caption\">\r\n      <div class=\"title\">\r\n        <span class=\"icon\"></span>\r\n        <span *ngIf=\"message.title\">{{ message.title }}</span>\r\n      </div>\r\n      <button class=\"close custom\" (click)=\"hide()\"><span></span></button>\r\n    </div>\r\n    <div class=\"main-content\">\r\n      <div class=\"text\" [innerHTML]=\"message.text\"></div>\r\n      <div class=\"actions\" *ngIf=\"message.actions\">\r\n        <button class=\"standard-button {{ (message.actionTypes && message.actionTypes[action.key] ? message.actionTypes[action.key] + '-button' : '') }}\" *ngFor=\"let action of message.actions | keyvalue: actionsOriginalOrder\" (click)=\"action.value()\">{{ action.key | translate: 'message' }}</button>\r\n      </div>\r\n    </div>\r\n  </div>\r\n</div>\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MessageComponent } from './message.component';\r\n// import {MixModule} from \"@adjai/ngx-library/src/lib/mix\";\r\nimport {LanguageModule, LanguageService} from \"@adjai/ngx-library/src/lib/language\";\r\n\r\nLanguageService.addTranslations('message', [\r\n  {\r\n    alias: 'CLOSE_BUTTON',\r\n    en: 'Close',\r\n    ru: 'Закрыть',\r\n  }\r\n], 'alias')\r\n\r\n@NgModule({\r\n  declarations: [\r\n    MessageComponent\r\n  ],\r\n  imports: [\r\n    CommonModule,\r\n    // MixModule,\r\n    LanguageModule,\r\n  ],\r\n  exports: [\r\n    MessageComponent,\r\n  ]\r\n})\r\nexport class MessageModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;IAOY,sBAGX;AAHD,CAAA,UAAY,qBAAqB,EAAA;AAC/B,IAAA,qBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,qBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACX,CAAC,EAHW,qBAAqB,KAArB,qBAAqB,GAGhC,EAAA,CAAA,CAAA,CAAA;IAEW,aAOX;AAPD,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,YAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,YAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,YAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,YAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACrB,CAAC,EAPW,YAAY,KAAZ,YAAY,GAOvB,EAAA,CAAA,CAAA,CAAA;MAcY,cAAc,CAAA;AAYzB,IAAA,WAAA,CACU,wBAAkD,EAClD,MAAsB,EACtB,QAAkB,EAAA;QAFlB,IAAwB,CAAA,wBAAA,GAAxB,wBAAwB,CAA0B;QAClD,IAAM,CAAA,MAAA,GAAN,MAAM,CAAgB;QACtB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAd5B,IAAmB,CAAA,mBAAA,GAAG,KAAK,CAAA;AAE3B,QAAA,IAAA,CAAA,oBAAoB,GAAoC;AACtD,YAAA,CAAC,qBAAqB,CAAC,KAAK,GAAG;gBAC7B,SAAS,EAAE,IAAI,CAAC,IAAI;AACrB,aAAA;AACD,YAAA,CAAC,qBAAqB,CAAC,EAAE,GAAG;gBAC1B,IAAI,EAAE,IAAI,CAAC,IAAI;AAChB,aAAA;SACF,CAAA;;AASC,QAAA,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAA;KACvC;AAES,IAAA,cAAc,CAAC,IAAY,EAAA;AACnC,QAAA,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QAClB,IAAI,IAAI,KAAK,EAAE,EAAE;YACf,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;AACvC,YAAA,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,MAAM,CAAA;AAC7B,SAAA;AACD,QAAA,OAAO,IAAI,CAAA;KACZ;AAED,IAAA,OAAO,CAAC,IAAY,EAAE,KAAuB,GAAA,IAAI,EAAE,WAAuB,EAAE,UAAkC,GAAA,IAAI,EAAE,aAAa,GAAG,aAAa,EAAE,YAAY,GAAG,UAAU,EAAA;QAC1K,IAAI,CAAC,IAAI,CAAC;YACR,IAAI;YACJ,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,EAAE,GAAG,KAAK;YAClC,IAAI,EAAE,YAAY,CAAC,OAAO;AAC1B,YAAA,WAAW,EAAE;gBACX,CAAC,aAAa,GAAG,SAAS;gBAC1B,CAAC,YAAY,GAAG,WAAW;AAC5B,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,CAAC,aAAa,GAAG,MAAK;oBACpB,IAAI,CAAC,IAAI,EAAE,CAAA;AACX,oBAAA,WAAW,EAAE,CAAA;iBACd;AACD,gBAAA,CAAC,YAAY,GAAG,MAAK;oBACnB,IAAI,CAAC,IAAI,EAAE,CAAA;AACX,oBAAA,IAAI,UAAU,EAAE;AACd,wBAAA,UAAU,EAAE,CAAA;AACb,qBAAA;iBACF;AACF,aAAA;AACF,SAAA,CAAC,CAAA;KACH;AAED,IAAA,IAAI,CAAC,OAAgB,EAAE,aAAA,GAA8C,IAAI,EAAA;AACvE,QAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;AACtB,YAAA,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,YAAY,CAAC,IAAI;AACvB,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,aAAa,EAAE,CAAC;SACjB,EAAE,OAAO,CAAC,CAAA;QACX,IAAI,aAAa,KAAK,IAAI,IAAI,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,EAAE;AACtE,YAAA,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;AAC3F,SAAA;QACD,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;AAChD,QAAA,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;KACtC;IAED,KAAK,CAAC,IAAY,EAAE,KAAgB,GAAA,EAAE,EAAE,OAAA,GAA0B,EAAE,EAAE,aAAa,GAAG,CAAC,EAAA;AACrF,QAAA,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;QAChC,IAAI,CAAC,IAAI,CAAC;YACR,IAAI;YACJ,KAAK;YACL,IAAI,EAAE,YAAY,CAAC,KAAK;YACxB,OAAO;YACP,aAAa;AACd,SAAA,CAAC,CAAA;KACH;IAED,IAAI,CAAC,IAAY,EAAE,KAAgB,GAAA,EAAE,EAAE,OAAA,GAA0B,EAAE,EAAE,aAAa,GAAG,CAAC,EAAA;AACpF,QAAA,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;QAChC,IAAI,CAAC,IAAI,CAAC;YACR,IAAI;YACJ,KAAK;YACL,IAAI,EAAE,YAAY,CAAC,IAAI;YACvB,OAAO;YACP,aAAa;AACd,SAAA,CAAC,CAAA;KACH;IAED,IAAI,GAAA;AACF,QAAA,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KACnC;AAEO,IAAA,eAAe,CAAI,SAAkB,EAAA;AAC3C,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,wBAAwB;aAC/C,uBAAuB,CAAC,SAAS,CAAC;AAClC,aAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACxB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;QAC7C,MAAM,OAAO,GAAI,YAAY,CAAC,QAAiC,CAAC,SAAS,CAAC,CAAC,CAAgB,CAAA;AAC3F,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;KACnC;;AApGM,cAAA,CAAA,QAAQ,GAA0B,IAAI,OAAO,EAAgB,CAAA;2GAFzD,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFb,MAAM,EAAA,CAAA,CAAA;2FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;AC3BD;MAOa,gBAAgB,CAAA;AAO3B,IAAA,WAAA,CACU,cAAiC,EAAA;QAAjC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAmB;QAP3C,IAAa,CAAA,aAAA,GAAG,IAAI,CAAA;QACpB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAA;QAGjB,IAAoB,CAAA,oBAAA,GAAG,CAAC,CAAqB,EAAE,CAAqB,KAAa,CAAC,CAAA;KAI7E;IAEL,QAAQ,GAAA;QACN,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAqB,KAAI;YAC1D,IAAI,OAAO,KAAK,IAAI,EAAE;gBACpB,IAAI,CAAC,IAAI,EAAE,CAAA;AACZ,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AACnB,aAAA;AACH,SAAC,CAAC,CAAA;KACH;AAED,IAAA,IAAI,CAAC,OAAgB,EAAA;AACnB,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;QACrB,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AAC7B,SAAA;AACD,QAAA,IAAI,OAAO,CAAC,aAAa,KAAK,CAAC,EAAE;AAC/B,YAAA,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAA;AACzE,SAAA;AACD,QAAA,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAA;AACnC,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAA;AAC1B,QAAA,KAAK,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,MAAK;AACxB,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;AAC3B,SAAC,CAAC,CAAA;KACH;IAED,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;KACvB;IAGD,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,IAAI,CAAC,IAAI,EAAE,CAAA;AACZ,SAAA;KACF;;6GA9CU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,8GCZ7B,k8BAkBA,EAAA,MAAA,EAAA,CAAA,siIAAA,CAAA,EAAA,YAAA,EAAA,CAAA,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,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,UAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDNa,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,SAAS;+BACE,YAAY,EAAA,QAAA,EAAA,k8BAAA,EAAA,MAAA,EAAA,CAAA,siIAAA,CAAA,EAAA,CAAA;wGA8CtB,WAAW,EAAA,CAAA;sBADV,YAAY;uBAAC,gBAAgB,CAAA;;;AE/ChC,eAAe,CAAC,eAAe,CAAC,SAAS,EAAE;AACzC,IAAA;AACE,QAAA,KAAK,EAAE,cAAc;AACrB,QAAA,EAAE,EAAE,OAAO;AACX,QAAA,EAAE,EAAE,SAAS;AACd,KAAA;CACF,EAAE,OAAO,CAAC,CAAA;MAeE,aAAa,CAAA;;0GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;2GAAb,aAAa,EAAA,YAAA,EAAA,CAXtB,gBAAgB,CAAA,EAAA,OAAA,EAAA,CAGhB,YAAY;;AAEZ,QAAA,cAAc,aAGd,gBAAgB,CAAA,EAAA,CAAA,CAAA;AAGP,aAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,YARtB,YAAY;;QAEZ,cAAc,CAAA,EAAA,CAAA,CAAA;2FAML,aAAa,EAAA,UAAA,EAAA,CAAA;kBAbzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,gBAAgB;AACjB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;;wBAEZ,cAAc;AACf,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,gBAAgB;AACjB,qBAAA;AACF,iBAAA,CAAA;;;AC1BD;;AAEG;;;;"}