You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1 line
16 KiB
1 line
16 KiB
{"version":3,"file":"dom.mjs","sources":["../../../../packages/utils/dom.ts"],"sourcesContent":["import { isClient } from '@vueuse/core'\nimport { camelize, isObject } from './util'\nimport type { CSSProperties, ComponentPublicInstance, Ref } from 'vue'\n\nimport type { Nullable } from './types'\n\n/* istanbul ignore next */\nconst trimArr = function (s: string) {\n return (s || '').split(' ').filter((item) => !!item.trim())\n}\n\n/* istanbul ignore next */\nexport const on = function (\n element: HTMLElement | Document | Window,\n event: string,\n handler: EventListenerOrEventListenerObject,\n useCapture = false\n): void {\n if (element && event && handler) {\n element?.addEventListener(event, handler, useCapture)\n }\n}\n\n/* istanbul ignore next */\nexport const off = function (\n element: HTMLElement | Document | Window,\n event: string,\n handler: EventListenerOrEventListenerObject,\n useCapture = false\n): void {\n if (element && event && handler) {\n element?.removeEventListener(event, handler, useCapture)\n }\n}\n\n/* istanbul ignore next */\nexport const once = function (\n el: HTMLElement,\n event: string,\n fn: EventListener\n): void {\n const listener = function (this: any, ...args: any) {\n if (fn) {\n fn.apply(this, args)\n }\n off(el, event, listener)\n }\n on(el, event, listener)\n}\n\n/* istanbul ignore next */\nexport function hasClass(el: HTMLElement | Element, cls: string): boolean {\n if (!el || !cls) return false\n if (cls.indexOf(' ') !== -1)\n throw new Error('className should not contain space.')\n if (el.classList) {\n return el.classList.contains(cls)\n } else {\n const className = el.getAttribute('class') || ''\n return className.split(' ').includes(cls)\n }\n}\n\n/* istanbul ignore next */\nexport function addClass(el: HTMLElement | Element, cls: string): void {\n if (!el) return\n let className = el.getAttribute('class') || ''\n const curClass = trimArr(className)\n const classes = (cls || '')\n .split(' ')\n .filter((item) => !curClass.includes(item) && !!item.trim())\n\n if (el.classList) {\n el.classList.add(...classes)\n } else {\n className += ` ${classes.join(' ')}`\n el.setAttribute('class', className)\n }\n}\n\n/* istanbul ignore next */\nexport function removeClass(el: HTMLElement | Element, cls: string): void {\n if (!el || !cls) return\n const classes = trimArr(cls)\n let curClass = el.getAttribute('class') || ''\n\n if (el.classList) {\n el.classList.remove(...classes)\n return\n }\n classes.forEach((item) => {\n curClass = curClass.replace(` ${item} `, ' ')\n })\n const className = trimArr(curClass).join(' ')\n el.setAttribute('class', className)\n}\n\n/* istanbul ignore next */\n// Here I want to use the type CSSProperties, but the definition for CSSProperties\n// has { [index: number]: string } in its type annotation, which does not satisfy the method\n// camelize(s: string)\n// Same as the return type\nexport const getStyle = function (\n element: HTMLElement,\n styleName: string\n): string {\n if (!isClient) return ''\n if (!element || !styleName) return ''\n styleName = camelize(styleName)\n if (styleName === 'float') {\n styleName = 'cssFloat'\n }\n try {\n const style = element.style[styleName]\n if (style) return style\n const computed = document.defaultView?.getComputedStyle(element, '')\n return computed ? computed[styleName] : ''\n } catch (e) {\n return element.style[styleName]\n }\n}\n\n/* istanbul ignore next */\nexport function setStyle(\n element: HTMLElement,\n styleName: CSSProperties | string,\n value?: string\n): void {\n if (!element || !styleName) return\n\n if (isObject(styleName)) {\n Object.keys(styleName).forEach((prop) => {\n setStyle(element, prop, styleName[prop])\n })\n } else {\n styleName = camelize(styleName)\n element.style[styleName] = value\n }\n}\n\nexport function removeStyle(\n element: HTMLElement,\n style: CSSProperties | string\n) {\n if (!element || !style) return\n\n if (isObject(style)) {\n Object.keys(style).forEach((prop) => {\n setStyle(element, prop, '')\n })\n } else {\n setStyle(element, style, '')\n }\n}\n\nexport const isScroll = (\n el: HTMLElement,\n isVertical?: Nullable<boolean>\n): RegExpMatchArray | null => {\n if (!isClient) return null\n const determinedDirection = isVertical === null || isVertical === undefined\n const overflow = determinedDirection\n ? getStyle(el, 'overflow')\n : isVertical\n ? getStyle(el, 'overflow-y')\n : getStyle(el, 'overflow-x')\n\n return overflow.match(/(scroll|auto|overlay)/)\n}\n\nexport const getScrollContainer = (\n el: HTMLElement,\n isVertical?: Nullable<boolean>\n): Window | HTMLElement | undefined => {\n if (!isClient) return\n\n let parent: HTMLElement = el\n while (parent) {\n if ([window, document, document.documentElement].includes(parent)) {\n return window\n }\n if (isScroll(parent, isVertical)) {\n return parent\n }\n parent = parent.parentNode as HTMLElement\n }\n return parent\n}\n\nexport const isInContainer = (\n el: Element | undefined,\n container: Element | Window | undefined\n): boolean => {\n if (!isClient || !el || !container) return false\n\n const elRect = el.getBoundingClientRect()\n\n let containerRect: Pick<DOMRect, 'top' | 'bottom' | 'left' | 'right'>\n if (container instanceof Element) {\n containerRect = container.getBoundingClientRect()\n } else {\n containerRect = {\n top: 0,\n right: window.innerWidth,\n bottom: window.innerHeight,\n left: 0,\n }\n }\n return (\n elRect.top < containerRect.bottom &&\n elRect.bottom > containerRect.top &&\n elRect.right > containerRect.left &&\n elRect.left < containerRect.right\n )\n}\n\nexport const getOffsetTop = (el: HTMLElement) => {\n let offset = 0\n let parent = el\n\n while (parent) {\n offset += parent.offsetTop\n parent = parent.offsetParent as HTMLElement\n }\n\n return offset\n}\n\nexport const getOffsetTopDistance = (\n el: HTMLElement,\n containerEl: HTMLElement\n) => {\n return Math.abs(getOffsetTop(el) - getOffsetTop(containerEl))\n}\n\nexport const stop = (e: Event) => e.stopPropagation()\n\nexport const getClientXY = (event: MouseEvent | TouchEvent) => {\n let clientX: number\n let clientY: number\n if (event.type === 'touchend') {\n clientY = (event as TouchEvent).changedTouches[0].clientY\n clientX = (event as TouchEvent).changedTouches[0].clientX\n } else if (event.type.startsWith('touch')) {\n clientY = (event as TouchEvent).touches[0].clientY\n clientX = (event as TouchEvent).touches[0].clientX\n } else {\n clientY = (event as MouseEvent).clientY\n clientX = (event as MouseEvent).clientX\n }\n return {\n clientX,\n clientY,\n }\n}\n\nexport const composeEventHandlers = <E>(\n theirsHandler?: (event: E) => boolean | void,\n oursHandler?: (event: E) => void,\n { checkForDefaultPrevented = true } = {}\n) => {\n const handleEvent = (event: E) => {\n const shouldPrevent = theirsHandler?.(event)\n\n if (checkForDefaultPrevented === false || !shouldPrevent) {\n return oursHandler?.(event)\n }\n }\n return handleEvent\n}\n\ntype WhenMouseHandler = (e: PointerEvent) => any\n\nexport const whenMouse = (handler: WhenMouseHandler): WhenMouseHandler => {\n return (e: PointerEvent) =>\n e.pointerType === 'mouse' ? handler(e) : undefined\n}\n\nexport const composeStoppableHandler = <E extends Event>(\n handler: (e: E) => void\n) => {\n return (e: E) => {\n if (!e.defaultPrevented) {\n handler(e)\n }\n }\n}\n\nexport const composeRefs = (...refs: Ref<HTMLElement | null>[]) => {\n return (el: Element | ComponentPublicInstance | null) => {\n refs.forEach((ref) => {\n ref.value = el as HTMLElement | null\n })\n }\n}\n"],"names":[],"mappings":";;;;AAEA,MAAM,OAAO,GAAG,SAAS,CAAC,EAAE;AAC5B,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;AAC9D,CAAC,CAAC;AACU,MAAC,EAAE,GAAG,SAAS,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG,KAAK,EAAE;AACxE,EAAE,IAAI,OAAO,IAAI,KAAK,IAAI,OAAO,EAAE;AACnC,IAAI,OAAO,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;AACpF,GAAG;AACH,EAAE;AACU,MAAC,GAAG,GAAG,SAAS,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG,KAAK,EAAE;AACzE,EAAE,IAAI,OAAO,IAAI,KAAK,IAAI,OAAO,EAAE;AACnC,IAAI,OAAO,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;AACvF,GAAG;AACH,EAAE;AACU,MAAC,IAAI,GAAG,SAAS,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;AAC5C,EAAE,MAAM,QAAQ,GAAG,SAAS,GAAG,IAAI,EAAE;AACrC,IAAI,IAAI,EAAE,EAAE;AACZ,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC3B,KAAK;AACL,IAAI,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC7B,GAAG,CAAC;AACJ,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC1B,EAAE;AACK,SAAS,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE;AAClC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG;AACjB,IAAI,OAAO,KAAK,CAAC;AACjB,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC7B,IAAI,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;AAC3D,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE;AACpB,IAAI,OAAO,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACtC,GAAG,MAAM;AACT,IAAI,MAAM,SAAS,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AACrD,IAAI,OAAO,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC9C,GAAG;AACH,CAAC;AACM,SAAS,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE;AAClC,EAAE,IAAI,CAAC,EAAE;AACT,IAAI,OAAO;AACX,EAAE,IAAI,SAAS,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AACjD,EAAE,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AACtC,EAAE,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;AACrG,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE;AACpB,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;AACjC,GAAG,MAAM;AACT,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACzC,IAAI,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AACxC,GAAG;AACH,CAAC;AACM,SAAS,WAAW,CAAC,EAAE,EAAE,GAAG,EAAE;AACrC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG;AACjB,IAAI,OAAO;AACX,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;AAC/B,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AAChD,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE;AACpB,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC;AACpC,IAAI,OAAO;AACX,GAAG;AACH,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AAC5B,IAAI,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAClD,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChD,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AACtC,CAAC;AACW,MAAC,QAAQ,GAAG,SAAS,OAAO,EAAE,SAAS,EAAE;AACrD,EAAE,IAAI,EAAE,CAAC;AACT,EAAE,IAAI,CAAC,QAAQ;AACf,IAAI,OAAO,EAAE,CAAC;AACd,EAAE,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS;AAC5B,IAAI,OAAO,EAAE,CAAC;AACd,EAAE,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;AAClC,EAAE,IAAI,SAAS,KAAK,OAAO,EAAE;AAC7B,IAAI,SAAS,GAAG,UAAU,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI;AACN,IAAI,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC3C,IAAI,IAAI,KAAK;AACb,MAAM,OAAO,KAAK,CAAC;AACnB,IAAI,MAAM,QAAQ,GAAG,CAAC,EAAE,GAAG,QAAQ,CAAC,WAAW,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACrG,IAAI,OAAO,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;AAC/C,GAAG,CAAC,OAAO,CAAC,EAAE;AACd,IAAI,OAAO,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACpC,GAAG;AACH,EAAE;AACK,SAAS,QAAQ,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE;AACpD,EAAE,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS;AAC5B,IAAI,OAAO;AACX,EAAE,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE;AAC3B,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AAC7C,MAAM,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/C,KAAK,CAAC,CAAC;AACP,GAAG,MAAM;AACT,IAAI,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;AACpC,IAAI,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;AACrC,GAAG;AACH,CAAC;AACM,SAAS,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE;AAC5C,EAAE,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK;AACxB,IAAI,OAAO;AACX,EAAE,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;AACvB,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AACzC,MAAM,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AAClC,KAAK,CAAC,CAAC;AACP,GAAG,MAAM;AACT,IAAI,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;AACjC,GAAG;AACH,CAAC;AACW,MAAC,QAAQ,GAAG,CAAC,EAAE,EAAE,UAAU,KAAK;AAC5C,EAAE,IAAI,CAAC,QAAQ;AACf,IAAI,OAAO,IAAI,CAAC;AAChB,EAAE,MAAM,mBAAmB,GAAG,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,KAAK,CAAC,CAAC;AAC3E,EAAE,MAAM,QAAQ,GAAG,mBAAmB,GAAG,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC,GAAG,UAAU,GAAG,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;AACzI,EAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;AACjD,EAAE;AACU,MAAC,kBAAkB,GAAG,CAAC,EAAE,EAAE,UAAU,KAAK;AACtD,EAAE,IAAI,CAAC,QAAQ;AACf,IAAI,OAAO;AACX,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC;AAClB,EAAE,OAAO,MAAM,EAAE;AACjB,IAAI,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AACvE,MAAM,OAAO,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,IAAI,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE;AACtC,MAAM,OAAO,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC;AAC/B,GAAG;AACH,EAAE,OAAO,MAAM,CAAC;AAChB,EAAE;AACU,MAAC,aAAa,GAAG,CAAC,EAAE,EAAE,SAAS,KAAK;AAChD,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS;AACpC,IAAI,OAAO,KAAK,CAAC;AACjB,EAAE,MAAM,MAAM,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC;AAC5C,EAAE,IAAI,aAAa,CAAC;AACpB,EAAE,IAAI,SAAS,YAAY,OAAO,EAAE;AACpC,IAAI,aAAa,GAAG,SAAS,CAAC,qBAAqB,EAAE,CAAC;AACtD,GAAG,MAAM;AACT,IAAI,aAAa,GAAG;AACpB,MAAM,GAAG,EAAE,CAAC;AACZ,MAAM,KAAK,EAAE,MAAM,CAAC,UAAU;AAC9B,MAAM,MAAM,EAAE,MAAM,CAAC,WAAW;AAChC,MAAM,IAAI,EAAE,CAAC;AACb,KAAK,CAAC;AACN,GAAG;AACH,EAAE,OAAO,MAAM,CAAC,GAAG,GAAG,aAAa,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,GAAG,IAAI,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC;AAC1J,EAAE;AACU,MAAC,YAAY,GAAG,CAAC,EAAE,KAAK;AACpC,EAAE,IAAI,MAAM,GAAG,CAAC,CAAC;AACjB,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC;AAClB,EAAE,OAAO,MAAM,EAAE;AACjB,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC;AAC/B,IAAI,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC;AACjC,GAAG;AACH,EAAE,OAAO,MAAM,CAAC;AAChB,EAAE;AACU,MAAC,oBAAoB,GAAG,CAAC,EAAE,EAAE,WAAW,KAAK;AACzD,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC;AAChE,EAAE;AACU,MAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,eAAe,GAAG;AACnC,MAAC,WAAW,GAAG,CAAC,KAAK,KAAK;AACtC,EAAE,IAAI,OAAO,CAAC;AACd,EAAE,IAAI,OAAO,CAAC;AACd,EAAE,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE;AACjC,IAAI,OAAO,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AAC9C,IAAI,OAAO,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AAC9C,GAAG,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;AAC7C,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AACvC,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AACvC,GAAG,MAAM;AACT,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;AAC5B,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;AAC5B,GAAG;AACH,EAAE,OAAO;AACT,IAAI,OAAO;AACX,IAAI,OAAO;AACX,GAAG,CAAC;AACJ,EAAE;AACU,MAAC,oBAAoB,GAAG,CAAC,aAAa,EAAE,WAAW,EAAE,EAAE,wBAAwB,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK;AAC9G,EAAE,MAAM,WAAW,GAAG,CAAC,KAAK,KAAK;AACjC,IAAI,MAAM,aAAa,GAAG,aAAa,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;AAChF,IAAI,IAAI,wBAAwB,KAAK,KAAK,IAAI,CAAC,aAAa,EAAE;AAC9D,MAAM,OAAO,WAAW,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;AAC/D,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,OAAO,WAAW,CAAC;AACrB,EAAE;AACU,MAAC,SAAS,GAAG,CAAC,OAAO,KAAK;AACtC,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,KAAK,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;AAChE,EAAE;AACU,MAAC,uBAAuB,GAAG,CAAC,OAAO,KAAK;AACpD,EAAE,OAAO,CAAC,CAAC,KAAK;AAChB,IAAI,IAAI,CAAC,CAAC,CAAC,gBAAgB,EAAE;AAC7B,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;AACjB,KAAK;AACL,GAAG,CAAC;AACJ,EAAE;AACU,MAAC,WAAW,GAAG,CAAC,GAAG,IAAI,KAAK;AACxC,EAAE,OAAO,CAAC,EAAE,KAAK;AACjB,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;AAC1B,MAAM,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC;AACrB,KAAK,CAAC,CAAC;AACP,GAAG,CAAC;AACJ;;;;"} |