{"version":3,"file":"ngx-st-base-functions.mjs","sources":["../../../projects/ngx-st-base-functions/src/lib/services/st-base.service.ts","../../../projects/ngx-st-base-functions/src/lib/components/loader/loader.component.ts","../../../projects/ngx-st-base-functions/src/lib/components/loader/loader.component.html","../../../projects/ngx-st-base-functions/src/lib/components/subscribe-destroy/st-subscribe-destroy.component.ts","../../../projects/ngx-st-base-functions/src/lib/components/base-create-edit/base-create-edit.ts","../../../projects/ngx-st-base-functions/src/lib/components/base-create-edit-dialog/base-create-edit-dialog.ts","../../../projects/ngx-st-base-functions/src/lib/pipes/st-safe.pipe.ts","../../../projects/ngx-st-base-functions/src/lib/pipes/st-safe-html.pipe.ts","../../../projects/ngx-st-base-functions/src/lib/pipes/st-check-empty-string.pipe.ts","../../../projects/ngx-st-base-functions/src/lib/pipes/st-cut-text.pipe.ts","../../../projects/ngx-st-base-functions/src/lib/ngx-st-base-functions.module.ts","../../../projects/ngx-st-base-functions/src/public-api.ts","../../../projects/ngx-st-base-functions/src/ngx-st-base-functions.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class StBaseService {\r\n  constructor() {}\r\n\r\n  static removeXMLInvalidChars(\r\n    str: string,\r\n    removeDiscouragedChars: boolean = true\r\n  ) {\r\n    // str = StBaseService.decodeHtmlCharCodes(str);\r\n    // remove everything forbidden by XML 1.0 specifications, plus the unicode replacement character U+FFFD\r\n    let regex =\r\n      /((?:[\\0-\\x08\\x0B\\f\\x0E-\\x1F\\uFFFD\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]))/g;\r\n    // ensure we have a string\r\n    str = String(str || '').replace(regex, '');\r\n    if (removeDiscouragedChars) {\r\n      // remove everything discouraged by XML 1.0 specifications\r\n      regex = new RegExp(\r\n        '([\\\\x7F-\\\\x84]|[\\\\x86-\\\\x9F]|[\\\\uFDD0-\\\\uFDEF]|(?:\\\\uD83F[\\\\uDFFE\\\\uDFFF])|(?:\\\\uD87F[\\\\uDF' +\r\n          'FE\\\\uDFFF])|(?:\\\\uD8BF[\\\\uDFFE\\\\uDFFF])|(?:\\\\uD8FF[\\\\uDFFE\\\\uDFFF])|(?:\\\\uD93F[\\\\uDFFE\\\\uD' +\r\n          'FFF])|(?:\\\\uD97F[\\\\uDFFE\\\\uDFFF])|(?:\\\\uD9BF[\\\\uDFFE\\\\uDFFF])|(?:\\\\uD9FF[\\\\uDFFE\\\\uDFFF])' +\r\n          '|(?:\\\\uDA3F[\\\\uDFFE\\\\uDFFF])|(?:\\\\uDA7F[\\\\uDFFE\\\\uDFFF])|(?:\\\\uDABF[\\\\uDFFE\\\\uDFFF])|(?:\\\\' +\r\n          'uDAFF[\\\\uDFFE\\\\uDFFF])|(?:\\\\uDB3F[\\\\uDFFE\\\\uDFFF])|(?:\\\\uDB7F[\\\\uDFFE\\\\uDFFF])|(?:\\\\uDBBF' +\r\n          '[\\\\uDFFE\\\\uDFFF])|(?:\\\\uDBFF[\\\\uDFFE\\\\uDFFF])(?:[\\\\0-\\\\t\\\\x0B\\\\f\\\\x0E-\\\\u2027\\\\u202A-\\\\uD7FF\\\\' +\r\n          'uE000-\\\\uFFFF]|[\\\\uD800-\\\\uDBFF][\\\\uDC00-\\\\uDFFF]|[\\\\uD800-\\\\uDBFF](?![\\\\uDC00-\\\\uDFFF])|' +\r\n          '(?:[^\\\\uD800-\\\\uDBFF]|^)[\\\\uDC00-\\\\uDFFF]))',\r\n        'g'\r\n      );\r\n      str = str.replace(regex, '');\r\n    }\r\n    return str;\r\n  }\r\n\r\n  static cutText(\r\n    string: string | undefined = '',\r\n    length: number,\r\n    delimiter?: string\r\n  ) {\r\n    delimiter = delimiter || '...';\r\n    if (string) {\r\n      return string.length > length\r\n        ? string.substr(0, length) + delimiter\r\n        : string;\r\n    }\r\n    return '';\r\n  }\r\n\r\n  static decodeHtmlCharCodes(str: string) {\r\n    return str.replace(/(&#(\\d+);)/g, (match, capture, charCode) => {\r\n      return String.fromCharCode(charCode);\r\n    });\r\n  }\r\n\r\n  static generateGUID() {\r\n    let d = new Date().getTime(); //Timestamp\r\n    let d2 =\r\n      (typeof performance !== 'undefined' &&\r\n        performance.now &&\r\n        performance.now() * 1000) ||\r\n      0; //Time in microseconds since page-load or 0 if unsupported\r\n    return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(\r\n      /[xy]/g,\r\n      function (c) {\r\n        var r = Math.random() * 16; //random number between 0 and 16\r\n        if (d > 0) {\r\n          //Use timestamp until depleted\r\n          r = (d + r) % 16 | 0;\r\n          d = Math.floor(d / 16);\r\n        } else {\r\n          //Use microseconds since page-load if supported\r\n          r = (d2 + r) % 16 | 0;\r\n          d2 = Math.floor(d2 / 16);\r\n        }\r\n        return (c === 'x' ? r : (r & 0x3) | 0x8).toString(16);\r\n      }\r\n    );\r\n  }\r\n\r\n  static getEnumStrings(enumObj: any): string[] {\r\n    return Object.keys(enumObj)\r\n      .map(key => enumObj[key])\r\n      .filter(value => typeof value === 'string');\r\n  }\r\n\r\n  static getEnumNumbers(enumObj: any): number[] {\r\n    return Object.keys(enumObj)\r\n      .map(key => enumObj[key])\r\n      .filter(value => typeof value === 'number');\r\n  }\r\n\r\n  static convertArrayToObject<T>(array: T[]): {\r\n    [key: number]: T;\r\n  } {\r\n    const initialValue = {};\r\n    array.forEach((item, key) => {\r\n      // @ts-ignore\r\n      initialValue[key] = item;\r\n    });\r\n    return initialValue;\r\n  }\r\n\r\n  static notNull = <T>(value: T | null): value is T => !!value;\r\n\r\n  static roundNumberToTwoDecimalPlaces(num: number) {\r\n    return Math.round((num + Number.EPSILON) * 100) / 100;\r\n  }\r\n}\r\n","import { Component, OnInit, input } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'ngx-st-loader',\r\n  templateUrl: './loader.component.html',\r\n  styleUrls: ['./loader.component.scss'],\r\n})\r\nexport class LoaderComponent implements OnInit {\r\n  showLoader = input(false);\r\n\r\n  positionVal = input('absolute');\r\n\r\n  constructor() {}\r\n\r\n  ngOnInit() {}\r\n}\r\n","@if (showLoader()) {\r\n  <div\r\n    class=\"loader row justify-content-center\"\r\n    style=\"position: {{ positionVal() }};\"\r\n  >\r\n    <div class=\"lds-ring\">\r\n      <div></div>\r\n      <div></div>\r\n      <div></div>\r\n      <div></div>\r\n    </div>\r\n  </div>\r\n}\r\n","import { Component, OnDestroy } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Component({\r\n  selector: 'lib-subscribe-destroy',\r\n  template: '',\r\n  styleUrls: [],\r\n})\r\nexport class StSubscribeDestroyComponent implements OnDestroy {\r\n  ngDestroyed$ = new Subject();\r\n\r\n  constructor() {}\r\n\r\n  ngOnDestroy() {\r\n    this.ngDestroyed$.next(true);\r\n    this.ngDestroyed$.complete();\r\n  }\r\n}\r\n","import { StSubscribeDestroyComponent } from '../subscribe-destroy/st-subscribe-destroy.component';\r\nimport {\r\n  Component,\r\n  HostBinding,\r\n  inject,\r\n  Injectable,\r\n  signal,\r\n} from '@angular/core';\r\nimport { Form, FormGroup, UntypedFormGroup } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Location } from '@angular/common';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n  selector: 'st-base-create-edit',\r\n  template: '',\r\n  styles: [],\r\n  host: {\r\n    class: 'display-flex-component',\r\n  },\r\n})\r\nexport abstract class StBaseCreateEdit {\r\n  editId = signal<string | undefined>('');\r\n  form: FormGroup<any> = new FormGroup({});\r\n\r\n  protected router = inject(Router);\r\n  protected activatedRoute = inject(ActivatedRoute);\r\n  protected location = inject(Location);\r\n\r\n  init = () => {\r\n    this.editId.set(this.activatedRoute.snapshot.params['id']);\r\n    if (this.editId()) {\r\n      this.loadEditModel().then(res => {\r\n        this.setFormSubscribers();\r\n      });\r\n    } else {\r\n      this.setFormSubscribers();\r\n    }\r\n  };\r\n\r\n  formSubmitted = () => {\r\n    if (this.form.valid) {\r\n      this.setLoader(true);\r\n      this.createUpdateRequest().subscribe(res => {\r\n        this.setLoader(false);\r\n        this.router.navigate([this.editId() ? '../../' : '../'], {\r\n          relativeTo: this.activatedRoute,\r\n        });\r\n      });\r\n    }\r\n  };\r\n  goBack = () => {\r\n    this.location.back();\r\n  };\r\n\r\n  protected abstract setFormSubscribers(): void;\r\n\r\n  protected abstract setLoader(show: boolean): void;\r\n\r\n  protected abstract loadEditModel(): Promise<boolean>;\r\n\r\n  protected abstract createUpdateRequest(): Observable<any>;\r\n}\r\n","import { StSubscribeDestroyComponent } from '../subscribe-destroy/st-subscribe-destroy.component';\r\nimport { Inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { Observable } from 'rxjs';\r\n\r\nexport abstract class StBaseCreateEditDialog extends StSubscribeDestroyComponent {\r\n  abstract form: FormGroup;\r\n\r\n  constructor(\r\n    @Inject(MAT_DIALOG_DATA)\r\n    public dialogData: {\r\n      editId?: string;\r\n      editModel?: any;\r\n    }\r\n  ) {\r\n    super();\r\n  }\r\n\r\n  init() {\r\n    if (this.dialogData?.editId || this.dialogData?.editModel) {\r\n      this.loadEditModel();\r\n    }\r\n  }\r\n\r\n  formSubmitted() {\r\n    if (this.form.valid) {\r\n      this.setLoader(true);\r\n      this.createUpdateRequest().subscribe(res => {\r\n        this.setLoader(false);\r\n      });\r\n    }\r\n  }\r\n\r\n  protected abstract setLoader(show: boolean): void;\r\n\r\n  protected abstract loadEditModel(): void;\r\n\r\n  protected abstract createUpdateRequest(): Observable<any>;\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n  name: 'stSafe',\r\n})\r\nexport class StSafePipe implements PipeTransform {\r\n  constructor(private sanitizer: DomSanitizer) {}\r\n\r\n  transform(url: string): SafeResourceUrl {\r\n    return this.sanitizer.bypassSecurityTrustResourceUrl(url);\r\n  }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n  name: 'stSafeHtml',\r\n})\r\nexport class StSafeHtmlPipe implements PipeTransform {\r\n  constructor(private sanitizer: DomSanitizer) {}\r\n  transform(value: any, args?: any): any {\r\n    return this.sanitizer.bypassSecurityTrustHtml(value);\r\n  }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n  name: 'stCheckEmptyString',\r\n})\r\nexport class StCheckEmptyStringPipe implements PipeTransform {\r\n  constructor(private sanitizer: DomSanitizer) {}\r\n\r\n  transform(value: any): any {\r\n    if (value) {\r\n      return value;\r\n    } else {\r\n      return '- - -';\r\n    }\r\n  }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { StBaseService } from '../services/st-base.service';\r\n\r\n@Pipe({\r\n  name: 'stCutText',\r\n})\r\nexport class CutTextPipe implements PipeTransform {\r\n  transform(value: string, length: number = 20): string {\r\n    return StBaseService.cutText(value, length);\r\n  }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { LoaderComponent } from './components/loader/loader.component';\r\nimport { StSubscribeDestroyComponent } from './components/subscribe-destroy/st-subscribe-destroy.component';\r\nimport { StCheckEmptyStringPipe } from './pipes/st-check-empty-string.pipe';\r\nimport { CutTextPipe } from './pipes/st-cut-text.pipe';\r\nimport { StSafePipe } from './pipes/st-safe.pipe';\r\nimport { StSafeHtmlPipe } from './pipes/st-safe-html.pipe';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { StBaseService } from './services/st-base.service';\r\nimport { MatIconRegistry } from '@angular/material/icon';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    LoaderComponent,\r\n    StSubscribeDestroyComponent,\r\n    StCheckEmptyStringPipe,\r\n    CutTextPipe,\r\n    StSafePipe,\r\n    StSafeHtmlPipe,\r\n  ],\r\n  imports: [CommonModule, FormsModule, ReactiveFormsModule],\r\n  exports: [\r\n    LoaderComponent,\r\n    StSafeHtmlPipe,\r\n    StSafePipe,\r\n    StCheckEmptyStringPipe,\r\n    CutTextPipe,\r\n  ],\r\n  providers: [StBaseService],\r\n})\r\nexport class StBaseFunctionsModule {\r\n  constructor(private matIconRegistry: MatIconRegistry) {\r\n    this.matIconRegistry.setDefaultFontSetClass('material-symbols-outlined');\r\n  }\r\n}\r\n","/*\r\n * Public API Surface of ngx-st-base-functions-example\r\n */\r\n\r\nexport * from './lib/services/st-base.service';\r\nexport * from './lib/components/loader/loader.component';\r\nexport * from './lib/components/subscribe-destroy/st-subscribe-destroy.component';\r\nexport * from './lib/components/base-create-edit/base-create-edit';\r\nexport * from './lib/components/base-create-edit-dialog/base-create-edit-dialog';\r\nexport * from './lib/pipes/st-safe.pipe';\r\nexport * from './lib/pipes/st-safe-html.pipe';\r\nexport * from './lib/pipes/st-check-empty-string.pipe';\r\nexport * from './lib/pipes/st-cut-text.pipe';\r\nexport * from './lib/ngx-st-base-functions.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":";;;;;;;;;;;MAKa,aAAa,CAAA;AACxB,IAAA,WAAA,GAAA,GAAgB;AAEhB,IAAA,OAAO,qBAAqB,CAC1B,GAAW,EACX,yBAAkC,IAAI,EAAA;;;QAItC,IAAI,KAAK,GACP,4HAA4H,CAAC;;AAE/H,QAAA,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC3C,IAAI,sBAAsB,EAAE;;AAE1B,YAAA,KAAK,GAAG,IAAI,MAAM,CAChB,6FAA6F;gBAC3F,4FAA4F;gBAC5F,2FAA2F;gBAC3F,4FAA4F;gBAC5F,2FAA2F;gBAC3F,gGAAgG;gBAChG,2FAA2F;gBAC3F,6CAA6C,EAC/C,GAAG,CACJ,CAAC;YACF,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;SAC9B;AACD,QAAA,OAAO,GAAG,CAAC;KACZ;IAED,OAAO,OAAO,CACZ,MAAA,GAA6B,EAAE,EAC/B,MAAc,EACd,SAAkB,EAAA;AAElB,QAAA,SAAS,GAAG,SAAS,IAAI,KAAK,CAAC;QAC/B,IAAI,MAAM,EAAE;AACV,YAAA,OAAO,MAAM,CAAC,MAAM,GAAG,MAAM;kBACzB,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,SAAS;kBACpC,MAAM,CAAC;SACZ;AACD,QAAA,OAAO,EAAE,CAAC;KACX;IAED,OAAO,mBAAmB,CAAC,GAAW,EAAA;AACpC,QAAA,OAAO,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,KAAI;AAC7D,YAAA,OAAO,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AACvC,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,OAAO,YAAY,GAAA;QACjB,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;AAC7B,QAAA,IAAI,EAAE,GACJ,CAAC,OAAO,WAAW,KAAK,WAAW;AACjC,YAAA,WAAW,CAAC,GAAG;AACf,YAAA,WAAW,CAAC,GAAG,EAAE,GAAG,IAAI;YAC1B,CAAC,CAAC;AACJ,QAAA,OAAO,sCAAsC,CAAC,OAAO,CACnD,OAAO,EACP,UAAU,CAAC,EAAA;YACT,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC;AAC3B,YAAA,IAAI,CAAC,GAAG,CAAC,EAAE;;gBAET,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBACrB,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;aACxB;iBAAM;;gBAEL,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBACtB,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;aAC1B;YACD,OAAO,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;AACxD,SAAC,CACF,CAAC;KACH;IAED,OAAO,cAAc,CAAC,OAAY,EAAA;AAChC,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;aACxB,GAAG,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;aACxB,MAAM,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC;KAC/C;IAED,OAAO,cAAc,CAAC,OAAY,EAAA;AAChC,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;aACxB,GAAG,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;aACxB,MAAM,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC;KAC/C;IAED,OAAO,oBAAoB,CAAI,KAAU,EAAA;QAGvC,MAAM,YAAY,GAAG,EAAE,CAAC;QACxB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,GAAG,KAAI;;AAE1B,YAAA,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAC3B,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,YAAY,CAAC;KACrB;aAEM,IAAO,CAAA,OAAA,GAAG,CAAI,KAAe,KAAiB,CAAC,CAAC,KAAzC,CAA+C,EAAA;IAE7D,OAAO,6BAA6B,CAAC,GAAW,EAAA;AAC9C,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC;KACvD;+GAvGU,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFZ,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCGY,eAAe,CAAA;AAK1B,IAAA,WAAA,GAAA;AAJA,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;AAE1B,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;KAEhB;AAEhB,IAAA,QAAQ,MAAK;+GAPF,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,kVCP5B,iSAaA,EAAA,MAAA,EAAA,CAAA,mrBAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDNa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,SAAS;+BACE,eAAe,EAAA,QAAA,EAAA,iSAAA,EAAA,MAAA,EAAA,CAAA,mrBAAA,CAAA,EAAA,CAAA;;;MEKd,2BAA2B,CAAA;AAGtC,IAAA,WAAA,GAAA;AAFA,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAE,CAAC;KAEb;IAEhB,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;KAC9B;+GARU,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,6DAH5B,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAGD,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,YACvB,EAAE,EAAA,CAAA;;;MCgBQ,gBAAgB,CAAA;AARtC,IAAA,WAAA,GAAA;AASE,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAqB,EAAE,CAAC,CAAC;AACxC,QAAA,IAAA,CAAA,IAAI,GAAmB,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;AAE/B,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AACxB,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AACxC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEtC,IAAI,CAAA,IAAA,GAAG,MAAK;AACV,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3D,YAAA,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;gBACjB,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,GAAG,IAAG;oBAC9B,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC5B,iBAAC,CAAC,CAAC;aACJ;iBAAM;gBACL,IAAI,CAAC,kBAAkB,EAAE,CAAC;aAC3B;AACH,SAAC,CAAC;QAEF,IAAa,CAAA,aAAA,GAAG,MAAK;AACnB,YAAA,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACnB,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBACrB,IAAI,CAAC,mBAAmB,EAAE,CAAC,SAAS,CAAC,GAAG,IAAG;AACzC,oBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACtB,oBAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,GAAG,KAAK,CAAC,EAAE;wBACvD,UAAU,EAAE,IAAI,CAAC,cAAc;AAChC,qBAAA,CAAC,CAAC;AACL,iBAAC,CAAC,CAAC;aACJ;AACH,SAAC,CAAC;QACF,IAAM,CAAA,MAAA,GAAG,MAAK;AACZ,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACvB,SAAC,CAAC;AASH,KAAA;+GAzCqB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,+GAN1B,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAMQ,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBARrC,SAAS;+BACE,qBAAqB,EAAA,QAAA,EACrB,EAAE,EAEN,IAAA,EAAA;AACJ,wBAAA,KAAK,EAAE,wBAAwB;AAChC,qBAAA,EAAA,CAAA;;;ACbI,IAAe,sBAAsB,GAArC,MAAe,sBAAuB,SAAQ,2BAA2B,CAAA;AAG9E,IAAA,WAAA,CAES,UAGN,EAAA;AAED,QAAA,KAAK,EAAE,CAAC;QALD,IAAU,CAAA,UAAA,GAAV,UAAU,CAGhB;KAGF;IAED,IAAI,GAAA;AACF,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE;YACzD,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;KACF;IAED,aAAa,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACnB,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACrB,IAAI,CAAC,mBAAmB,EAAE,CAAC,SAAS,CAAC,GAAG,IAAG;AACzC,gBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACxB,aAAC,CAAC,CAAC;SACJ;KACF;EAOF;AAjCqB,sBAAsB,GAAA,UAAA,CAAA;AAIvC,IAAA,OAAA,CAAA,CAAA,EAAA,MAAM,CAAC,eAAe,CAAC,CAAA;AAJN,CAAA,EAAA,sBAAsB,CAiC3C;;MCjCY,UAAU,CAAA;AACrB,IAAA,WAAA,CAAoB,SAAuB,EAAA;QAAvB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAc;KAAI;AAE/C,IAAA,SAAS,CAAC,GAAW,EAAA;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,GAAG,CAAC,CAAC;KAC3D;+GALU,UAAU,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAV,UAAU,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA;;4FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBAHtB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACf,iBAAA,CAAA;;;MCCY,cAAc,CAAA;AACzB,IAAA,WAAA,CAAoB,SAAuB,EAAA;QAAvB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAc;KAAI;IAC/C,SAAS,CAAC,KAAU,EAAE,IAAU,EAAA;QAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;KACtD;+GAJU,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAd,cAAc,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,CAAA,EAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,YAAY;AACnB,iBAAA,CAAA;;;MCCY,sBAAsB,CAAA;AACjC,IAAA,WAAA,CAAoB,SAAuB,EAAA;QAAvB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAc;KAAI;AAE/C,IAAA,SAAS,CAAC,KAAU,EAAA;QAClB,IAAI,KAAK,EAAE;AACT,YAAA,OAAO,KAAK,CAAC;SACd;aAAM;AACL,YAAA,OAAO,OAAO,CAAC;SAChB;KACF;+GATU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAtB,sBAAsB,EAAA,IAAA,EAAA,oBAAA,EAAA,CAAA,CAAA,EAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,oBAAoB;AAC3B,iBAAA,CAAA;;;MCCY,WAAW,CAAA;AACtB,IAAA,SAAS,CAAC,KAAa,EAAE,MAAA,GAAiB,EAAE,EAAA;QAC1C,OAAO,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;KAC7C;+GAHU,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAX,WAAW,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,CAAA,EAAA;;4FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBAHvB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,WAAW;AAClB,iBAAA,CAAA;;;MC0BY,qBAAqB,CAAA;AAChC,IAAA,WAAA,CAAoB,eAAgC,EAAA;QAAhC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;AAClD,QAAA,IAAI,CAAC,eAAe,CAAC,sBAAsB,CAAC,2BAA2B,CAAC,CAAC;KAC1E;+GAHU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,iBAjB9B,eAAe;YACf,2BAA2B;YAC3B,sBAAsB;YACtB,WAAW;YACX,UAAU;AACV,YAAA,cAAc,aAEN,YAAY,EAAE,WAAW,EAAE,mBAAmB,aAEtD,eAAe;YACf,cAAc;YACd,UAAU;YACV,sBAAsB;YACtB,WAAW,CAAA,EAAA,CAAA,CAAA,EAAA;gHAIF,qBAAqB,EAAA,SAAA,EAFrB,CAAC,aAAa,CAAC,YARhB,YAAY,EAAE,WAAW,EAAE,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAU7C,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAnBjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,eAAe;wBACf,2BAA2B;wBAC3B,sBAAsB;wBACtB,WAAW;wBACX,UAAU;wBACV,cAAc;AACf,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,mBAAmB,CAAC;AACzD,oBAAA,OAAO,EAAE;wBACP,eAAe;wBACf,cAAc;wBACd,UAAU;wBACV,sBAAsB;wBACtB,WAAW;AACZ,qBAAA;oBACD,SAAS,EAAE,CAAC,aAAa,CAAC;AAC3B,iBAAA,CAAA;;;AC9BD;;AAEG;;ACFH;;AAEG;;;;"}