{"version":3,"file":"ui-vts-kit-ng-vts-core-services.mjs","sources":["../../components/core/services/resize.ts","../../components/core/services/singleton.ts","../../components/core/services/drag.ts","../../components/core/services/scroll.ts","../../components/core/services/breakpoint.ts","../../components/core/services/destroy.ts","../../components/core/services/public-api.ts","../../components/core/services/ui-vts-kit-ng-vts-core-services.ts"],"sourcesContent":["/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Injectable, NgZone, Renderer2, RendererFactory2 } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { auditTime, finalize } from 'rxjs/operators';\n\nconst NOOP = (): void => {};\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class VtsResizeService {\n  private readonly resizeSource$ = new Subject<void>();\n\n  private listeners = 0;\n\n  private renderer: Renderer2;\n\n  private disposeHandle = NOOP;\n\n  private handler = (): void => {\n    this.ngZone.run(() => {\n      this.resizeSource$.next();\n    });\n  };\n\n  constructor(private ngZone: NgZone, private rendererFactory2: RendererFactory2) {\n    this.renderer = this.rendererFactory2.createRenderer(null, null);\n  }\n\n  subscribe(): Observable<void> {\n    this.registerListener();\n\n    return this.resizeSource$.pipe(\n      auditTime(16),\n      finalize(() => this.unregisterListener())\n    );\n  }\n\n  unsubscribe(): void {\n    this.unregisterListener();\n  }\n\n  private registerListener(): void {\n    if (this.listeners === 0) {\n      this.ngZone.runOutsideAngular(() => {\n        this.disposeHandle = this.renderer.listen('window', 'resize', this.handler);\n      });\n    }\n\n    this.listeners += 1;\n  }\n\n  private unregisterListener(): void {\n    this.listeners -= 1;\n\n    if (this.listeners === 0) {\n      this.disposeHandle();\n      this.disposeHandle = NOOP;\n    }\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Injectable } from '@angular/core';\n\nimport { environment } from '@ui-vts-kit/ng-vts/core/environments';\nimport { VtsSafeAny } from '@ui-vts-kit/ng-vts/core/types';\n\ninterface SingletonRegistryItem {\n  target: VtsSafeAny;\n}\n\n/**\n * When running in test, singletons should not be destroyed. So we keep references of singletons\n * in this global variable.\n */\nconst testSingleRegistry = new Map<string, SingletonRegistryItem>();\n\n/**\n * Some singletons should have life cycle that is same to Angular's. This service make sure that\n * those singletons get destroyed in HMR.\n */\n@Injectable({\n  providedIn: 'root'\n})\nexport class VtsSingletonService {\n  private get singletonRegistry(): Map<string, SingletonRegistryItem> {\n    return environment.isTestMode ? testSingleRegistry : this._singletonRegistry;\n  }\n\n  /**\n   * This registry is used to register singleton in dev mode.\n   * So that singletons get destroyed when hot module reload happens.\n   *\n   * This works in prod mode too but with no specific effect.\n   */\n  private _singletonRegistry = new Map<string, SingletonRegistryItem>();\n\n  registerSingletonWithKey(key: string, target: VtsSafeAny): void {\n    const alreadyHave = this.singletonRegistry.has(key);\n    const item: SingletonRegistryItem = alreadyHave\n      ? this.singletonRegistry.get(key)!\n      : this.withNewTarget(target);\n\n    if (!alreadyHave) {\n      this.singletonRegistry.set(key, item);\n    }\n  }\n\n  getSingletonWithKey<T>(key: string): T | null {\n    return this.singletonRegistry.has(key) ? (this.singletonRegistry.get(key)!.target as T) : null;\n  }\n\n  private withNewTarget(target: VtsSafeAny): SingletonRegistryItem {\n    return {\n      target\n    };\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Injectable, Renderer2, RendererFactory2 } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { filter, finalize, map } from 'rxjs/operators';\n\nimport { getEventPosition, isTouchEvent } from '@ui-vts-kit/ng-vts/core/util';\n\ninterface Point {\n  x: number;\n  y: number;\n}\n\ntype Delta = Point;\n\ninterface HandlerItem {\n  handler?(e: Event): void;\n\n  teardown(): void;\n}\n\nfunction getPagePosition(event: MouseEvent | TouchEvent): Point {\n  const e = getEventPosition(event);\n  return {\n    x: e.pageX,\n    y: e.pageY\n  };\n}\n\n/**\n * This module provide a global dragging service to other components.\n */\n@Injectable({\n  providedIn: 'root'\n})\nexport class VtsDragService {\n  private draggingThreshold = 5;\n  private currentDraggingSequence: Subject<MouseEvent | Touch> | null = null;\n  private currentStartingPoint: Point | null = null;\n  private handleRegistry = new Set<HandlerItem>();\n  private renderer: Renderer2;\n\n  constructor(rendererFactory2: RendererFactory2) {\n    this.renderer = rendererFactory2.createRenderer(null, null);\n  }\n\n  requestDraggingSequence(event: MouseEvent | TouchEvent): Observable<Delta> {\n    if (!this.handleRegistry.size) {\n      this.registerDraggingHandler(isTouchEvent(event));\n    }\n\n    // Complete last dragging sequence if a new target is dragged.\n    if (this.currentDraggingSequence) {\n      this.currentDraggingSequence.complete();\n    }\n\n    this.currentStartingPoint = getPagePosition(event);\n    this.currentDraggingSequence = new Subject<MouseEvent | Touch>();\n\n    return this.currentDraggingSequence.pipe(\n      map((e: MouseEvent | Touch) => {\n        return {\n          x: e.pageX - this.currentStartingPoint!.x,\n          y: e.pageY - this.currentStartingPoint!.y\n        };\n      }),\n      filter(\n        (e: Delta) =>\n          Math.abs(e.x) > this.draggingThreshold || Math.abs(e.y) > this.draggingThreshold\n      ),\n      finalize(() => this.teardownDraggingSequence())\n    );\n  }\n\n  private registerDraggingHandler(isTouch: boolean): void {\n    if (isTouch) {\n      this.handleRegistry.add({\n        teardown: this.renderer.listen('document', 'touchmove', (e: TouchEvent) => {\n          if (this.currentDraggingSequence) {\n            this.currentDraggingSequence.next(e.touches[0] || e.changedTouches[0]);\n          }\n        })\n      });\n      this.handleRegistry.add({\n        teardown: this.renderer.listen('document', 'touchend', () => {\n          if (this.currentDraggingSequence) {\n            this.currentDraggingSequence.complete();\n          }\n        })\n      });\n    } else {\n      this.handleRegistry.add({\n        teardown: this.renderer.listen('document', 'mousemove', e => {\n          if (this.currentDraggingSequence) {\n            this.currentDraggingSequence.next(e);\n          }\n        })\n      });\n      this.handleRegistry.add({\n        teardown: this.renderer.listen('document', 'mouseup', () => {\n          if (this.currentDraggingSequence) {\n            this.currentDraggingSequence.complete();\n          }\n        })\n      });\n    }\n  }\n\n  private teardownDraggingSequence(): void {\n    this.currentDraggingSequence = null;\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable } from '@angular/core';\nimport { reqAnimFrame } from '@ui-vts-kit/ng-vts/core/polyfill';\nimport { VtsSafeAny } from '@ui-vts-kit/ng-vts/core/types';\n\nexport type EasyingFn = (t: number, b: number, c: number, d: number) => number;\n\nfunction easeInOutCubic(t: number, b: number, c: number, d: number): number {\n  const cc = c - b;\n  let tt = t / (d / 2);\n  if (tt < 1) {\n    return (cc / 2) * tt * tt * tt + b;\n  } else {\n    return (cc / 2) * ((tt -= 2) * tt * tt + 2) + b;\n  }\n}\n\nexport interface VtsScrollToOptions {\n  /** Scroll container, default as window */\n  easing?: EasyingFn;\n  /** Scroll end callback */\n  callback?(): void;\n  /** Animation duration, default as 450 */\n  duration?: number;\n}\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class VtsScrollService {\n  private doc: Document;\n\n  constructor(@Inject(DOCUMENT) doc: VtsSafeAny) {\n    this.doc = doc;\n  }\n\n  /** Set the position of the scroll bar of `el`. */\n  setScrollTop(el: Element | Window, topValue: number = 0): void {\n    if (el === window) {\n      this.doc.body.scrollTop = topValue;\n      this.doc.documentElement!.scrollTop = topValue;\n    } else {\n      (el as Element).scrollTop = topValue;\n    }\n  }\n\n  /** Get position of `el` against window. */\n  getOffset(el: Element): { top: number; left: number } {\n    const ret = {\n      top: 0,\n      left: 0\n    };\n    if (!el || !el.getClientRects().length) {\n      return ret;\n    }\n\n    const rect = el.getBoundingClientRect();\n    if (rect.width || rect.height) {\n      const doc = el.ownerDocument!.documentElement;\n      ret.top = rect.top - doc!.clientTop;\n      ret.left = rect.left - doc!.clientLeft;\n    } else {\n      ret.top = rect.top;\n      ret.left = rect.left;\n    }\n\n    return ret;\n  }\n\n  /** Get the position of the scoll bar of `el`. */\n  // TODO: remove '| Window' as the fallback already happens here\n  getScroll(\n    target?: Element | HTMLElement | Window | Document | null,\n    top: boolean = true\n  ): number {\n    if (typeof window === 'undefined') {\n      return 0;\n    }\n    const method = top ? 'scrollTop' : 'scrollLeft';\n    let result = 0;\n    if (this.isWindow(target)) {\n      result = (target as Window)[top ? 'pageYOffset' : 'pageXOffset'];\n    } else if (target instanceof Document) {\n      result = target.documentElement[method];\n    } else if (target) {\n      result = (target as HTMLElement)[method];\n    }\n    if (target && !this.isWindow(target) && typeof result !== 'number') {\n      result = ((target as HTMLElement).ownerDocument || (target as Document)).documentElement[\n        method\n      ];\n    }\n    return result;\n  }\n\n  isWindow(obj: VtsSafeAny): boolean {\n    return obj !== null && obj !== undefined && obj === obj.window;\n  }\n\n  /**\n   * Scroll `el` to some position with animation.\n   *\n   * @param containerEl container, `window` by default\n   * @param y Scroll to `top`, 0 by default\n   */\n  scrollTo(\n    containerEl?: Element | HTMLElement | Window | Document | null,\n    y: number = 0,\n    options: VtsScrollToOptions = {}\n  ): void {\n    const target = containerEl ? containerEl : window;\n    const scrollTop = this.getScroll(target);\n    const startTime = Date.now();\n    const { easing, callback, duration = 450 } = options;\n    const frameFunc = () => {\n      const timestamp = Date.now();\n      const time = timestamp - startTime;\n      const nextScrollTop = (easing || easeInOutCubic)(\n        time > duration ? duration : time,\n        scrollTop,\n        y,\n        duration\n      );\n      if (this.isWindow(target)) {\n        (target as Window).scrollTo(window.pageXOffset, nextScrollTop);\n      } else if (target instanceof HTMLDocument || target.constructor.name === 'HTMLDocument') {\n        (target as HTMLDocument).documentElement.scrollTop = nextScrollTop;\n      } else {\n        (target as HTMLElement).scrollTop = nextScrollTop;\n      }\n      if (time < duration) {\n        reqAnimFrame(frameFunc);\n      } else if (typeof callback === 'function') {\n        callback();\n      }\n    };\n    reqAnimFrame(frameFunc);\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { MediaMatcher } from '@angular/cdk/layout';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { distinctUntilChanged, map, startWith } from 'rxjs/operators';\n\nimport { VtsResizeService } from './resize';\n\nexport enum VtsBreakpointEnum {\n  xxxs = 'xxxs',\n  xxs = 'xxs',\n  xs = 'xs',\n  sm = 'sm',\n  md = 'md',\n  lg = 'lg',\n  xl = 'xl'\n}\n\nexport type BreakpointMap = { [key in VtsBreakpointEnum]: string };\nexport type BreakpointBooleanMap = { [key in VtsBreakpointEnum]: boolean };\nexport type VtsBreakpointKey = keyof typeof VtsBreakpointEnum;\n\nexport const gridResponsiveMap: BreakpointMap = {\n  xxxs: '(max-width: 359px)',\n  xxs: '(min-width: 360px)',\n  xs: '(min-width: 600px)',\n  sm: '(min-width: 768px)',\n  md: '(min-width: 1024px)',\n  lg: '(min-width: 1200px)',\n  xl: '(min-width: 1600px)'\n};\n\nexport const siderResponsiveMap: BreakpointMap = {\n  xxxs: '(max-width: 320px)',\n  xxs: '(max-width: 359.98px)',\n  xs: '(max-width: 599.98px)',\n  sm: '(max-width: 767.98px)',\n  md: '(max-width: 1023.98px)',\n  lg: '(max-width: 1199.98px)',\n  xl: '(max-width: 1599.98px)'\n};\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class VtsBreakpointService {\n  constructor(private resizeService: VtsResizeService, private mediaMatcher: MediaMatcher) {\n    this.resizeService.subscribe().subscribe(() => {});\n  }\n\n  subscribe(breakpointMap: BreakpointMap): Observable<VtsBreakpointEnum>;\n  subscribe(breakpointMap: BreakpointMap, fullMap: true): Observable<BreakpointBooleanMap>;\n  subscribe(\n    breakpointMap: BreakpointMap,\n    fullMap?: true\n  ): Observable<VtsBreakpointEnum | BreakpointBooleanMap> {\n    if (fullMap) {\n      const get = () => this.matchMedia(breakpointMap, true);\n      return this.resizeService.subscribe().pipe(\n        map(get),\n        startWith(get()),\n        distinctUntilChanged(\n          (\n            x: [VtsBreakpointEnum, BreakpointBooleanMap],\n            y: [VtsBreakpointEnum, BreakpointBooleanMap]\n          ) => x[0] === y[0]\n        ),\n        map(x => x[1])\n      );\n    } else {\n      const get = () => this.matchMedia(breakpointMap);\n      return this.resizeService\n        .subscribe()\n        .pipe(map(get), startWith(get()), distinctUntilChanged());\n    }\n  }\n\n  private matchMedia(breakpointMap: BreakpointMap): VtsBreakpointEnum;\n  private matchMedia(\n    breakpointMap: BreakpointMap,\n    fullMap: true\n  ): [VtsBreakpointEnum, BreakpointBooleanMap];\n  private matchMedia(\n    breakpointMap: BreakpointMap,\n    fullMap?: true\n  ): VtsBreakpointEnum | [VtsBreakpointEnum, BreakpointBooleanMap] {\n    let bp = VtsBreakpointEnum.md;\n\n    const breakpointBooleanMap: Partial<BreakpointBooleanMap> = {};\n\n    Object.keys(breakpointMap).map(breakpoint => {\n      const castBP = breakpoint as VtsBreakpointEnum;\n      const matched = this.mediaMatcher.matchMedia(gridResponsiveMap[castBP]).matches;\n\n      breakpointBooleanMap[breakpoint as VtsBreakpointEnum] = matched;\n\n      if (matched) {\n        bp = castBP;\n      }\n    });\n\n    if (fullMap) {\n      return [bp, breakpointBooleanMap as BreakpointBooleanMap];\n    } else {\n      return bp;\n    }\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable()\nexport class VtsDestroyService extends Subject<void> implements OnDestroy {\n  ngOnDestroy(): void {\n    this.next();\n    this.complete();\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nexport * from './resize';\nexport * from './singleton';\nexport * from './drag';\nexport * from './scroll';\nexport * from './breakpoint';\nexport * from './destroy';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.VtsResizeService"],"mappings":";;;;;;;;;;AAAA;;;AAGG;AAMH,MAAM,IAAI,GAAG,MAAW,GAAG,CAAC;MAKf,gBAAgB,CAAA;IAe3B,WAAoB,CAAA,MAAc,EAAU,gBAAkC,EAAA;QAA1D,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QAAU,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;AAd7D,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,OAAO,EAAQ,CAAC;QAE7C,IAAS,CAAA,SAAA,GAAG,CAAC,CAAC;QAId,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC;QAErB,IAAO,CAAA,OAAA,GAAG,MAAW;AAC3B,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAK;AACnB,gBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AAC5B,aAAC,CAAC,CAAC;AACL,SAAC,CAAC;AAGA,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KAClE;IAED,SAAS,GAAA;QACP,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAC5B,SAAS,CAAC,EAAE,CAAC,EACb,QAAQ,CAAC,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAC1C,CAAC;KACH;IAED,WAAW,GAAA;QACT,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;IAEO,gBAAgB,GAAA;AACtB,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;AACxB,YAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAK;AACjC,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AAC9E,aAAC,CAAC,CAAC;AACJ,SAAA;AAED,QAAA,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;KACrB;IAEO,kBAAkB,GAAA;AACxB,QAAA,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;AAEpB,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;YACxB,IAAI,CAAC,aAAa,EAAE,CAAC;AACrB,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC3B,SAAA;KACF;+GAjDU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,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,gBAAgB,cAFf,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACbD;;;AAGG;AAWH;;;AAGG;AACH,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAiC,CAAC;AAEpE;;;AAGG;MAIU,mBAAmB,CAAA;AAHhC,IAAA,WAAA,GAAA;AAQE;;;;;AAKG;AACK,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,GAAG,EAAiC,CAAC;AAsBvE,KAAA;AAhCC,IAAA,IAAY,iBAAiB,GAAA;AAC3B,QAAA,OAAO,WAAW,CAAC,UAAU,GAAG,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;KAC9E;IAUD,wBAAwB,CAAC,GAAW,EAAE,MAAkB,EAAA;QACtD,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpD,MAAM,IAAI,GAA0B,WAAW;cAC3C,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAE;AAClC,cAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAE/B,IAAI,CAAC,WAAW,EAAE;YAChB,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACvC,SAAA;KACF;AAED,IAAA,mBAAmB,CAAI,GAAW,EAAA;QAChC,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,GAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,MAAY,GAAG,IAAI,CAAC;KAChG;AAEO,IAAA,aAAa,CAAC,MAAkB,EAAA;QACtC,OAAO;YACL,MAAM;SACP,CAAC;KACH;+GAhCU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,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,mBAAmB,cAFlB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;AC1BD;;;AAGG;AAqBH,SAAS,eAAe,CAAC,KAA8B,EAAA;AACrD,IAAA,MAAM,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAClC,OAAO;QACL,CAAC,EAAE,CAAC,CAAC,KAAK;QACV,CAAC,EAAE,CAAC,CAAC,KAAK;KACX,CAAC;AACJ,CAAC;AAED;;AAEG;MAIU,cAAc,CAAA;AAOzB,IAAA,WAAA,CAAY,gBAAkC,EAAA;QANtC,IAAiB,CAAA,iBAAA,GAAG,CAAC,CAAC;QACtB,IAAuB,CAAA,uBAAA,GAAuC,IAAI,CAAC;QACnE,IAAoB,CAAA,oBAAA,GAAiB,IAAI,CAAC;AAC1C,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,GAAG,EAAe,CAAC;QAI9C,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KAC7D;AAED,IAAA,uBAAuB,CAAC,KAA8B,EAAA;AACpD,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;YAC7B,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;AACnD,SAAA;;QAGD,IAAI,IAAI,CAAC,uBAAuB,EAAE;AAChC,YAAA,IAAI,CAAC,uBAAuB,CAAC,QAAQ,EAAE,CAAC;AACzC,SAAA;AAED,QAAA,IAAI,CAAC,oBAAoB,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;AACnD,QAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI,OAAO,EAAsB,CAAC;QAEjE,OAAO,IAAI,CAAC,uBAAuB,CAAC,IAAI,CACtC,GAAG,CAAC,CAAC,CAAqB,KAAI;YAC5B,OAAO;gBACL,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,oBAAqB,CAAC,CAAC;gBACzC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,oBAAqB,CAAC,CAAC;aAC1C,CAAC;SACH,CAAC,EACF,MAAM,CACJ,CAAC,CAAQ,KACP,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,iBAAiB,CACnF,EACD,QAAQ,CAAC,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAChD,CAAC;KACH;AAEO,IAAA,uBAAuB,CAAC,OAAgB,EAAA;AAC9C,QAAA,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;AACtB,gBAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,EAAE,CAAC,CAAa,KAAI;oBACxE,IAAI,IAAI,CAAC,uBAAuB,EAAE;AAChC,wBAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;AACxE,qBAAA;AACH,iBAAC,CAAC;AACH,aAAA,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;AACtB,gBAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,MAAK;oBAC1D,IAAI,IAAI,CAAC,uBAAuB,EAAE;AAChC,wBAAA,IAAI,CAAC,uBAAuB,CAAC,QAAQ,EAAE,CAAC;AACzC,qBAAA;AACH,iBAAC,CAAC;AACH,aAAA,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;AACtB,gBAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,EAAE,CAAC,IAAG;oBAC1D,IAAI,IAAI,CAAC,uBAAuB,EAAE;AAChC,wBAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtC,qBAAA;AACH,iBAAC,CAAC;AACH,aAAA,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;AACtB,gBAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,MAAK;oBACzD,IAAI,IAAI,CAAC,uBAAuB,EAAE;AAChC,wBAAA,IAAI,CAAC,uBAAuB,CAAC,QAAQ,EAAE,CAAC;AACzC,qBAAA;AACH,iBAAC,CAAC;AACH,aAAA,CAAC,CAAC;AACJ,SAAA;KACF;IAEO,wBAAwB,GAAA;AAC9B,QAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;KACrC;+GA3EU,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAd,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,cAAc,cAFb,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACrCD;;;AAGG;AASH,SAAS,cAAc,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAA;AAChE,IAAA,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IACjB,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,IAAI,EAAE,GAAG,CAAC,EAAE;AACV,QAAA,OAAO,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACpC,KAAA;AAAM,SAAA;QACL,OAAO,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACjD,KAAA;AACH,CAAC;MAcY,gBAAgB,CAAA;AAG3B,IAAA,WAAA,CAA8B,GAAe,EAAA;AAC3C,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;KAChB;;AAGD,IAAA,YAAY,CAAC,EAAoB,EAAE,QAAA,GAAmB,CAAC,EAAA;QACrD,IAAI,EAAE,KAAK,MAAM,EAAE;YACjB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;YACnC,IAAI,CAAC,GAAG,CAAC,eAAgB,CAAC,SAAS,GAAG,QAAQ,CAAC;AAChD,SAAA;AAAM,aAAA;AACJ,YAAA,EAAc,CAAC,SAAS,GAAG,QAAQ,CAAC;AACtC,SAAA;KACF;;AAGD,IAAA,SAAS,CAAC,EAAW,EAAA;AACnB,QAAA,MAAM,GAAG,GAAG;AACV,YAAA,GAAG,EAAE,CAAC;AACN,YAAA,IAAI,EAAE,CAAC;SACR,CAAC;QACF,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,MAAM,EAAE;AACtC,YAAA,OAAO,GAAG,CAAC;AACZ,SAAA;AAED,QAAA,MAAM,IAAI,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC;AACxC,QAAA,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;AAC7B,YAAA,MAAM,GAAG,GAAG,EAAE,CAAC,aAAc,CAAC,eAAe,CAAC;YAC9C,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAI,CAAC,SAAS,CAAC;YACpC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,GAAI,CAAC,UAAU,CAAC;AACxC,SAAA;AAAM,aAAA;AACL,YAAA,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;AACnB,YAAA,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACtB,SAAA;AAED,QAAA,OAAO,GAAG,CAAC;KACZ;;;AAID,IAAA,SAAS,CACP,MAAyD,EACzD,GAAA,GAAe,IAAI,EAAA;AAEnB,QAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACjC,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;QACD,MAAM,MAAM,GAAG,GAAG,GAAG,WAAW,GAAG,YAAY,CAAC;QAChD,IAAI,MAAM,GAAG,CAAC,CAAC;AACf,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AACzB,YAAA,MAAM,GAAI,MAAiB,CAAC,GAAG,GAAG,aAAa,GAAG,aAAa,CAAC,CAAC;AAClE,SAAA;aAAM,IAAI,MAAM,YAAY,QAAQ,EAAE;AACrC,YAAA,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;AACzC,SAAA;AAAM,aAAA,IAAI,MAAM,EAAE;AACjB,YAAA,MAAM,GAAI,MAAsB,CAAC,MAAM,CAAC,CAAC;AAC1C,SAAA;AACD,QAAA,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AAClE,YAAA,MAAM,GAAG,CAAE,MAAsB,CAAC,aAAa,IAAK,MAAmB,EAAE,eAAe,CACtF,MAAM,CACP,CAAC;AACH,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;AAED,IAAA,QAAQ,CAAC,GAAe,EAAA;AACtB,QAAA,OAAO,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC;KAChE;AAED;;;;;AAKG;AACH,IAAA,QAAQ,CACN,WAA8D,EAC9D,IAAY,CAAC,EACb,UAA8B,EAAE,EAAA;QAEhC,MAAM,MAAM,GAAG,WAAW,GAAG,WAAW,GAAG,MAAM,CAAC;QAClD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AACzC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC;QACrD,MAAM,SAAS,GAAG,MAAK;AACrB,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AAC7B,YAAA,MAAM,IAAI,GAAG,SAAS,GAAG,SAAS,CAAC;YACnC,MAAM,aAAa,GAAG,CAAC,MAAM,IAAI,cAAc,EAC7C,IAAI,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI,EACjC,SAAS,EACT,CAAC,EACD,QAAQ,CACT,CAAC;AACF,YAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;gBACxB,MAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;AAChE,aAAA;iBAAM,IAAI,MAAM,YAAY,YAAY,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,cAAc,EAAE;AACtF,gBAAA,MAAuB,CAAC,eAAe,CAAC,SAAS,GAAG,aAAa,CAAC;AACpE,aAAA;AAAM,iBAAA;AACJ,gBAAA,MAAsB,CAAC,SAAS,GAAG,aAAa,CAAC;AACnD,aAAA;YACD,IAAI,IAAI,GAAG,QAAQ,EAAE;gBACnB,YAAY,CAAC,SAAS,CAAC,CAAC;AACzB,aAAA;AAAM,iBAAA,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;AACzC,gBAAA,QAAQ,EAAE,CAAC;AACZ,aAAA;AACH,SAAC,CAAC;QACF,YAAY,CAAC,SAAS,CAAC,CAAC;KACzB;AA5GU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,kBAGP,QAAQ,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAHjB,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,gBAAgB,cAFf,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAIc,MAAM;2BAAC,QAAQ,CAAA;;;ICzBlB,kBAQX;AARD,CAAA,UAAY,iBAAiB,EAAA;AAC3B,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,iBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACX,CAAC,EARW,iBAAiB,KAAjB,iBAAiB,GAQ5B,EAAA,CAAA,CAAA,CAAA;AAMY,MAAA,iBAAiB,GAAkB;AAC9C,IAAA,IAAI,EAAE,oBAAoB;AAC1B,IAAA,GAAG,EAAE,oBAAoB;AACzB,IAAA,EAAE,EAAE,oBAAoB;AACxB,IAAA,EAAE,EAAE,oBAAoB;AACxB,IAAA,EAAE,EAAE,qBAAqB;AACzB,IAAA,EAAE,EAAE,qBAAqB;AACzB,IAAA,EAAE,EAAE,qBAAqB;EACzB;AAEW,MAAA,kBAAkB,GAAkB;AAC/C,IAAA,IAAI,EAAE,oBAAoB;AAC1B,IAAA,GAAG,EAAE,uBAAuB;AAC5B,IAAA,EAAE,EAAE,uBAAuB;AAC3B,IAAA,EAAE,EAAE,uBAAuB;AAC3B,IAAA,EAAE,EAAE,wBAAwB;AAC5B,IAAA,EAAE,EAAE,wBAAwB;AAC5B,IAAA,EAAE,EAAE,wBAAwB;EAC5B;MAKW,oBAAoB,CAAA;IAC/B,WAAoB,CAAA,aAA+B,EAAU,YAA0B,EAAA;QAAnE,IAAa,CAAA,aAAA,GAAb,aAAa,CAAkB;QAAU,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;AACrF,QAAA,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,MAAO,GAAC,CAAC,CAAC;KACpD;IAID,SAAS,CACP,aAA4B,EAC5B,OAAc,EAAA;AAEd,QAAA,IAAI,OAAO,EAAE;AACX,YAAA,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;YACvD,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,IAAI,CACxC,GAAG,CAAC,GAAG,CAAC,EACR,SAAS,CAAC,GAAG,EAAE,CAAC,EAChB,oBAAoB,CAClB,CACE,CAA4C,EAC5C,CAA4C,KACzC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACnB,EACD,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CACf,CAAC;AACH,SAAA;AAAM,aAAA;YACL,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YACjD,OAAO,IAAI,CAAC,aAAa;AACtB,iBAAA,SAAS,EAAE;AACX,iBAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,oBAAoB,EAAE,CAAC,CAAC;AAC7D,SAAA;KACF;IAOO,UAAU,CAChB,aAA4B,EAC5B,OAAc,EAAA;AAEd,QAAA,IAAI,EAAE,GAAG,iBAAiB,CAAC,EAAE,CAAC;QAE9B,MAAM,oBAAoB,GAAkC,EAAE,CAAC;QAE/D,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,UAAU,IAAG;YAC1C,MAAM,MAAM,GAAG,UAA+B,CAAC;AAC/C,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;AAEhF,YAAA,oBAAoB,CAAC,UAA+B,CAAC,GAAG,OAAO,CAAC;AAEhE,YAAA,IAAI,OAAO,EAAE;gBACX,EAAE,GAAG,MAAM,CAAC;AACb,aAAA;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,OAAO,EAAE;AACX,YAAA,OAAO,CAAC,EAAE,EAAE,oBAA4C,CAAC,CAAC;AAC3D,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;KACF;+GA7DU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAApB,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,oBAAoB,cAFnB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;AChDD;;;AAGG;AAMG,MAAO,iBAAkB,SAAQ,OAAa,CAAA;IAClD,WAAW,GAAA;QACT,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC,QAAQ,EAAE,CAAC;KACjB;+GAJU,iBAAiB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;mHAAjB,iBAAiB,EAAA,CAAA,CAAA,EAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,UAAU;;;ACRX;;;AAGG;;ACHH;;AAEG;;;;"}