diff --git a/.eslintrc.js b/.eslintrc.js index 8042b5a..08ae24c 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,4 +1,4 @@ -const resolve = require('./resolve.config'); +const resolve = require('@local/config/resolve'); module.exports = { extends: [ diff --git a/local/browser-testing/dist/Resize.d.ts b/local/browser-testing/dist/Resize.d.ts new file mode 100644 index 0000000..a54fa67 --- /dev/null +++ b/local/browser-testing/dist/Resize.d.ts @@ -0,0 +1,5 @@ +declare type ResizeListener = (width: number, height: number) => void; +export declare const resize: (element: HTMLElement) => { + addResizeListener(listener: ResizeListener): void; +}; +export {}; diff --git a/local/browser-testing/dist/Resize.js b/local/browser-testing/dist/Resize.js new file mode 100644 index 0000000..7ad4d41 --- /dev/null +++ b/local/browser-testing/dist/Resize.js @@ -0,0 +1,72 @@ +// @ts-ignore +import { createDiv, appendChildren, parent, style, on, off, addClass, clientSize, each, } from './support'; +export const resize = (element) => { + const resizeListeners = []; + const strMouseTouchDownEvent = 'mousedown touchstart'; + const strMouseTouchUpEvent = 'mouseup touchend'; + const strMouseTouchMoveEvent = 'mousemove touchmove'; + const strSelectStartEvent = 'selectstart'; + const dragStartSize = { w: 0, h: 0 }; + const dragStartPosition = { x: 0, y: 0 }; + const resizeBtn = createDiv('resizeBtn'); + appendChildren(element, resizeBtn); + addClass(element, 'resizer'); + let dragResizeBtn; + let dragResizer; + const onSelectStart = (event) => { + event.preventDefault(); + return false; + }; + const resizerResize = (event) => { + const isTouchEvent = event.touches !== undefined; + const mouseOffsetHolder = isTouchEvent + ? event.touches[0] + : event; + const sizeStyle = { + width: dragStartSize.w + mouseOffsetHolder.pageX - dragStartPosition.x, + height: dragStartSize.h + mouseOffsetHolder.pageY - dragStartPosition.y, + }; + style(dragResizer, sizeStyle); + each(resizeListeners, (listener) => { + if (listener) { + listener(sizeStyle.width, sizeStyle.height); + } + }); + event.stopPropagation(); + }; + const resizerResized = () => { + off(document, strSelectStartEvent, onSelectStart); + off(document, strMouseTouchMoveEvent, resizerResize); + off(document, strMouseTouchUpEvent, resizerResized); + dragResizer = undefined; + dragResizeBtn = undefined; + }; + on(resizeBtn, strMouseTouchDownEvent, (event) => { + const { currentTarget } = event; + const correctButton = event.buttons === 1 || event.which === 1; + const isTouchEvent = event.touches !== undefined; + const mouseOffsetHolder = isTouchEvent + ? event.touches[0] + : event; + if (correctButton || isTouchEvent) { + dragStartPosition.x = mouseOffsetHolder.pageX; + dragStartPosition.y = mouseOffsetHolder.pageY; + dragResizeBtn = currentTarget; + dragResizer = parent(currentTarget); + const cSize = clientSize(element); + dragStartSize.w = cSize.w; + dragStartSize.h = cSize.h; + on(document, strSelectStartEvent, onSelectStart, { _passive: false }); + on(document, strMouseTouchMoveEvent, resizerResize, { _passive: false }); + on(document, strMouseTouchUpEvent, resizerResized, { _passive: false }); + event.preventDefault(); + event.stopPropagation(); + } + }, { _passive: false }); + return { + addResizeListener(listener) { + resizeListeners.push(listener); + }, + }; +}; +//# sourceMappingURL=Resize.js.map \ No newline at end of file diff --git a/local/browser-testing/dist/Resize.js.map b/local/browser-testing/dist/Resize.js.map new file mode 100644 index 0000000..a65ba22 --- /dev/null +++ b/local/browser-testing/dist/Resize.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Resize.js","sourceRoot":"","sources":["../src/Resize.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/local/browser-testing/dist/Select.d.ts b/local/browser-testing/dist/Select.d.ts new file mode 100644 index 0000000..df4d327 --- /dev/null +++ b/local/browser-testing/dist/Select.d.ts @@ -0,0 +1,10 @@ +/// +export declare const generateSelectCallback: (targetElms: HTMLElement[] | HTMLElement | null, callback: (targetAffectedElm: HTMLElement, possibleValues: string[], selectedValue: string) => any) => (event: Event | HTMLSelectElement | null) => void; +export declare const generateClassChangeSelectCallback: (targetElms: HTMLElement[] | HTMLElement | null) => (event: Event | HTMLSelectElement | null) => void; +export declare const selectOption: (select: HTMLSelectElement | null, selectedOption: string | number) => boolean; +export declare const iterateSelect: (select: HTMLSelectElement | null, options?: { + filter?: ((value: string, index: number, array: string[]) => boolean) | undefined; + beforeEach?: (() => T | Promise) | undefined; + check?: ((input: T, selectedOptions: string) => void | Promise) | undefined; + afterEach?: (() => void | Promise) | undefined; +} | undefined) => Promise; diff --git a/local/browser-testing/dist/Select.js b/local/browser-testing/dist/Select.js new file mode 100644 index 0000000..6f508ff --- /dev/null +++ b/local/browser-testing/dist/Select.js @@ -0,0 +1,75 @@ +function isEvent(obj) { + return obj instanceof Event || !!obj.target; +} +// eslint-disable-next-line +const noop = () => { + return {}; +}; +const getSelectOptions = (selectElement) => Array.from(selectElement.options).map((option) => option.value); +export const generateSelectCallback = (targetElms, callback) => (event) => { + const target = isEvent(event) + ? event.target + : event; + if (target) { + const selectedOption = target.value; + const selectOptions = getSelectOptions(target); + const elmsArr = Array.isArray(targetElms) ? targetElms : [targetElms]; + elmsArr.forEach((elm) => { + if (elm) { + callback(elm, selectOptions, selectedOption); + } + }); + } +}; +export const generateClassChangeSelectCallback = (targetElms) => generateSelectCallback(targetElms, (targetAffectedElm, possibleValues, selectedValue) => { + possibleValues.forEach((clazz) => targetAffectedElm.classList.remove(clazz)); + targetAffectedElm.classList.add(selectedValue); +}); +export const selectOption = (select, selectedOption) => { + if (!select) { + return false; + } + const options = getSelectOptions(select); + const currValue = select.value; + if (selectedOption === currValue) { + return false; + } + if (typeof selectedOption === 'string' && options.includes(selectedOption)) { + select.value = selectedOption; + } + else if (typeof selectedOption === 'number' && + options.length < selectedOption && + selectedOption > -1) { + select.selectedIndex = selectedOption; + } + let event; + if (typeof Event === 'function') { + event = new Event('change'); + } + else { + event = document.createEvent('Event'); + event.initEvent('change', true, true); + } + select.dispatchEvent(event); + return true; +}; +export const iterateSelect = async (select, options) => { + if (select) { + const { beforeEach = noop, check = noop, afterEach = noop, filter } = options || {}; + const selectOptions = getSelectOptions(select); + const selectOptionsReversed = getSelectOptions(select).reverse(); + const iterateOptions = [...selectOptions, ...selectOptionsReversed].filter(filter || (() => true)); + for (let i = 0; i < iterateOptions.length; i++) { + const option = iterateOptions[i]; + // eslint-disable-next-line + const beforeEachObj = await beforeEach(); + if (selectOption(select, option)) { + // eslint-disable-next-line + await check(beforeEachObj, option); + // eslint-disable-next-line + await afterEach(); + } + } + } +}; +//# sourceMappingURL=Select.js.map \ No newline at end of file diff --git a/local/browser-testing/dist/Select.js.map b/local/browser-testing/dist/Select.js.map new file mode 100644 index 0000000..804e180 --- /dev/null +++ b/local/browser-testing/dist/Select.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Select.js","sourceRoot":"","sources":["../src/Select.ts"],"names":[],"mappings":"AAAA,SAAS,OAAO,CAAC,GAAQ;IACvB,OAAO,GAAG,YAAY,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;AAC9C,CAAC;AAED,2BAA2B;AAC3B,MAAM,IAAI,GAAG,GAAS,EAAE;IACtB,OAAO,EAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,aAAgC,EAAE,EAAE,CAC5D,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAElE,MAAM,CAAC,MAAM,sBAAsB,GACjC,CACE,UAA8C,EAC9C,QAIQ,EACR,EAAE,CACJ,CAAC,KAAuC,EAAE,EAAE;IAC1C,MAAM,MAAM,GAA6B,OAAO,CAAC,KAAK,CAAC;QACrD,CAAC,CAAE,KAAK,CAAC,MAA4B;QACrC,CAAC,CAAC,KAAK,CAAC;IACV,IAAI,MAAM,EAAE;QACV,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC;QACpC,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAEtE,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACtB,IAAI,GAAG,EAAE;gBACP,QAAQ,CAAC,GAAG,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;aAC9C;QACH,CAAC,CAAC,CAAC;KACJ;AACH,CAAC,CAAC;AAEJ,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,UAA8C,EAAE,EAAE,CAClG,sBAAsB,CAAC,UAAU,EAAE,CAAC,iBAAiB,EAAE,cAAc,EAAE,aAAa,EAAE,EAAE;IACtF,cAAc,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7E,iBAAiB,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AACjD,CAAC,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,MAAgC,EAChC,cAA+B,EACtB,EAAE;IACX,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,KAAK,CAAC;KACd;IAED,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC;IAE/B,IAAI,cAAc,KAAK,SAAS,EAAE;QAChC,OAAO,KAAK,CAAC;KACd;IAED,IAAI,OAAO,cAAc,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;QAC1E,MAAM,CAAC,KAAK,GAAG,cAAc,CAAC;KAC/B;SAAM,IACL,OAAO,cAAc,KAAK,QAAQ;QAClC,OAAO,CAAC,MAAM,GAAG,cAAc;QAC/B,cAAc,GAAG,CAAC,CAAC,EACnB;QACA,MAAM,CAAC,aAAa,GAAG,cAAc,CAAC;KACvC;IAED,IAAI,KAAK,CAAC;IACV,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;QAC/B,KAAK,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;KAC7B;SAAM;QACL,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACtC,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;KACvC;IACD,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAE5B,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAChC,MAAgC,EAChC,OAKC,EACD,EAAE;IACF,IAAI,MAAM,EAAE;QACV,MAAM,EAAE,UAAU,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,SAAS,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;QACpF,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC/C,MAAM,qBAAqB,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;QACjE,MAAM,cAAc,GAAG,CAAC,GAAG,aAAa,EAAE,GAAG,qBAAqB,CAAC,CAAC,MAAM,CACxE,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CACvB,CAAC;QACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC9C,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;YACjC,2BAA2B;YAC3B,MAAM,aAAa,GAAM,MAAM,UAAU,EAAE,CAAC;YAC5C,IAAI,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;gBAChC,2BAA2B;gBAC3B,MAAM,KAAK,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;gBACnC,2BAA2B;gBAC3B,MAAM,SAAS,EAAE,CAAC;aACnB;SACF;KACF;AACH,CAAC,CAAC"} \ No newline at end of file diff --git a/local/browser-testing/dist/TestResult.d.ts b/local/browser-testing/dist/TestResult.d.ts new file mode 100644 index 0000000..55f61b8 --- /dev/null +++ b/local/browser-testing/dist/TestResult.d.ts @@ -0,0 +1,4 @@ +import { waitForOptions } from '@testing-library/dom'; +export declare const setTestResult: (result: boolean | null) => void; +export declare const testPassed: () => boolean; +export declare const waitForOrFailTest: (callback: () => T | Promise, options?: waitForOptions) => Promise; diff --git a/local/browser-testing/dist/TestResult.js b/local/browser-testing/dist/TestResult.js new file mode 100644 index 0000000..65085bc --- /dev/null +++ b/local/browser-testing/dist/TestResult.js @@ -0,0 +1,30 @@ +import { waitFor } from '@testing-library/dom'; +const getTestResultElm = () => document.getElementById('testResult'); +export const setTestResult = (result) => { + const elm = getTestResultElm(); + if (elm) { + if (typeof result === 'boolean') { + if (result) { + if (elm.getAttribute('class') === 'failed') { + return; + } + } + elm.setAttribute('class', result ? 'passed' : 'failed'); + } + else { + elm.removeAttribute('class'); + } + } +}; +export const testPassed = () => { + const elm = getTestResultElm(); + return elm ? elm.getAttribute('class') === 'passed' : false; +}; +export const waitForOrFailTest = (callback, options) => waitFor(callback, { + ...options, + onTimeout(error) { + setTestResult(false); + return error; + }, +}); +//# sourceMappingURL=TestResult.js.map \ No newline at end of file diff --git a/local/browser-testing/dist/TestResult.js.map b/local/browser-testing/dist/TestResult.js.map new file mode 100644 index 0000000..0f6218b --- /dev/null +++ b/local/browser-testing/dist/TestResult.js.map @@ -0,0 +1 @@ +{"version":3,"file":"TestResult.js","sourceRoot":"","sources":["../src/TestResult.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAkB,MAAM,sBAAsB,CAAC;AAE/D,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;AAErE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAsB,EAAE,EAAE;IACtD,MAAM,GAAG,GAAG,gBAAgB,EAAE,CAAC;IAC/B,IAAI,GAAG,EAAE;QACP,IAAI,OAAO,MAAM,KAAK,SAAS,EAAE;YAC/B,IAAI,MAAM,EAAE;gBACV,IAAI,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,QAAQ,EAAE;oBAC1C,OAAO;iBACR;aACF;YACD,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;SACzD;aAAM;YACL,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;SAC9B;KACF;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,GAAY,EAAE;IACtC,MAAM,GAAG,GAAG,gBAAgB,EAAE,CAAC;IAC/B,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AAC9D,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAI,QAA8B,EAAE,OAAwB,EAAE,EAAE,CAC/F,OAAO,CAAC,QAAQ,EAAE;IAChB,GAAG,OAAO;IACV,SAAS,CAAC,KAAY;QACpB,aAAa,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAC,CAAC"} \ No newline at end of file diff --git a/local/browser-testing/dist/Timeout.d.ts b/local/browser-testing/dist/Timeout.d.ts new file mode 100644 index 0000000..675b643 --- /dev/null +++ b/local/browser-testing/dist/Timeout.d.ts @@ -0,0 +1 @@ +export declare const timeout: (ms: number) => Promise; diff --git a/local/browser-testing/dist/Timeout.js b/local/browser-testing/dist/Timeout.js new file mode 100644 index 0000000..b0e67f1 --- /dev/null +++ b/local/browser-testing/dist/Timeout.js @@ -0,0 +1,2 @@ +export const timeout = (ms) => new Promise((resolve) => setTimeout(resolve, ms)); +//# sourceMappingURL=Timeout.js.map \ No newline at end of file diff --git a/local/browser-testing/dist/Timeout.js.map b/local/browser-testing/dist/Timeout.js.map new file mode 100644 index 0000000..fd5221d --- /dev/null +++ b/local/browser-testing/dist/Timeout.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Timeout.js","sourceRoot":"","sources":["../src/Timeout.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/local/browser-testing/dist/index.d.ts b/local/browser-testing/dist/index.d.ts new file mode 100644 index 0000000..652a3ad --- /dev/null +++ b/local/browser-testing/dist/index.d.ts @@ -0,0 +1,3 @@ +export * from './Select'; +export * from './TestResult'; +export * from './Timeout'; diff --git a/local/browser-testing/dist/index.js b/local/browser-testing/dist/index.js new file mode 100644 index 0000000..45b3296 --- /dev/null +++ b/local/browser-testing/dist/index.js @@ -0,0 +1,4 @@ +export * from './Select'; +export * from './TestResult'; +export * from './Timeout'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/local/browser-testing/dist/index.js.map b/local/browser-testing/dist/index.js.map new file mode 100644 index 0000000..37c2d48 --- /dev/null +++ b/local/browser-testing/dist/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC"} \ No newline at end of file diff --git a/local/browser-testing/dist/support/dom/class.d.ts b/local/browser-testing/dist/support/dom/class.d.ts new file mode 100644 index 0000000..2e05d23 --- /dev/null +++ b/local/browser-testing/dist/support/dom/class.d.ts @@ -0,0 +1,28 @@ +declare type ClassContainingElement = Node | Element | false | null | undefined; +declare type ClassName = string | false | null | undefined; +/** + * Check whether the given element has the given class name(s). + * @param elm The element. + * @param className The class name(s). + */ +export declare const hasClass: (elm: ClassContainingElement, className: ClassName) => boolean; +/** + * Removes the given class name(s) from the given element. + * @param elm The element. + * @param className The class name(s) which shall be removed. (separated by spaces) + */ +export declare const removeClass: (elm: ClassContainingElement, className: ClassName) => void; +/** + * Adds the given class name(s) to the given element. + * @param elm The element. + * @param className The class name(s) which shall be added. (separated by spaces) + * @returns A function which removes the added class name(s). + */ +export declare const addClass: (elm: ClassContainingElement, className: ClassName) => (() => void); +/** + * Takes two className strings, compares them and returns the difference as array. + * @param classNameA ClassName A. + * @param classNameB ClassName B. + */ +export declare const diffClass: (classNameA: ClassName, classNameB: ClassName) => string[]; +export {}; diff --git a/local/browser-testing/dist/support/dom/class.js b/local/browser-testing/dist/support/dom/class.js new file mode 100644 index 0000000..87041ee --- /dev/null +++ b/local/browser-testing/dist/support/dom/class.js @@ -0,0 +1,65 @@ +import { isString } from '../utils/types'; +import { each } from '../utils/array'; +import { keys } from '../utils/object'; +const rnothtmlwhite = /[^\x20\t\r\n\f]+/g; +const classListAction = (elm, className, action) => { + const classList = elm && elm.classList; + let clazz; + let i = 0; + let result = false; + if (classList && className && isString(className)) { + const classes = className.match(rnothtmlwhite) || []; + result = classes.length > 0; + while ((clazz = classes[i++])) { + result = !!action(classList, clazz) && result; + } + } + return result; +}; +/** + * Check whether the given element has the given class name(s). + * @param elm The element. + * @param className The class name(s). + */ +export const hasClass = (elm, className) => classListAction(elm, className, (classList, clazz) => classList.contains(clazz)); +/** + * Removes the given class name(s) from the given element. + * @param elm The element. + * @param className The class name(s) which shall be removed. (separated by spaces) + */ +export const removeClass = (elm, className) => { + classListAction(elm, className, (classList, clazz) => classList.remove(clazz)); +}; +/** + * Adds the given class name(s) to the given element. + * @param elm The element. + * @param className The class name(s) which shall be added. (separated by spaces) + * @returns A function which removes the added class name(s). + */ +export const addClass = (elm, className) => { + classListAction(elm, className, (classList, clazz) => classList.add(clazz)); + return removeClass.bind(0, elm, className); +}; +/** + * Takes two className strings, compares them and returns the difference as array. + * @param classNameA ClassName A. + * @param classNameB ClassName B. + */ +export const diffClass = (classNameA, classNameB) => { + const classNameASplit = classNameA && classNameA.split(' '); + const classNameBSplit = classNameB && classNameB.split(' '); + const tempObj = {}; + each(classNameASplit, (className) => { + tempObj[className] = 1; + }); + each(classNameBSplit, (className) => { + if (tempObj[className]) { + delete tempObj[className]; + } + else { + tempObj[className] = 1; + } + }); + return keys(tempObj); +}; +//# sourceMappingURL=class.js.map \ No newline at end of file diff --git a/local/browser-testing/dist/support/dom/class.js.map b/local/browser-testing/dist/support/dom/class.js.map new file mode 100644 index 0000000..2ff320a --- /dev/null +++ b/local/browser-testing/dist/support/dom/class.js.map @@ -0,0 +1 @@ +{"version":3,"file":"class.js","sourceRoot":"","sources":["../../../src/support/dom/class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAKvC,MAAM,aAAa,GAAG,mBAAmB,CAAC;AAC1C,MAAM,eAAe,GAAG,CACtB,GAA2B,EAC3B,SAAoB,EACpB,MAAqE,EAC5D,EAAE;IACX,MAAM,SAAS,GAAG,GAAG,IAAK,GAAe,CAAC,SAAS,CAAC;IACpD,IAAI,KAAa,CAAC;IAClB,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,MAAM,GAAG,KAAK,CAAC;IAEnB,IAAI,SAAS,IAAI,SAAS,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE;QACjD,MAAM,OAAO,GAAkB,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QACpE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QAC5B,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;YAC7B,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC;SAC/C;KACF;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAA2B,EAAE,SAAoB,EAAW,EAAE,CACrF,eAAe,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAEnF;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAA2B,EAAE,SAAoB,EAAQ,EAAE;IACrF,eAAe,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACjF,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAA2B,EAAE,SAAoB,EAAgB,EAAE;IAC1F,eAAe,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5E,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;AAC7C,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,UAAqB,EAAE,UAAqB,EAAE,EAAE;IACxE,MAAM,eAAe,GAAG,UAAU,IAAI,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5D,MAAM,eAAe,GAAG,UAAU,IAAI,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,EAAE,CAAC;IAEnB,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,EAAE,EAAE;QAClC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,EAAE,EAAE;QAClC,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE;YACtB,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC;SAC3B;aAAM;YACL,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;SACxB;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;AACvB,CAAC,CAAC"} \ No newline at end of file diff --git a/local/browser-testing/dist/support/dom/create.d.ts b/local/browser-testing/dist/support/dom/create.d.ts new file mode 100644 index 0000000..ad152ab --- /dev/null +++ b/local/browser-testing/dist/support/dom/create.d.ts @@ -0,0 +1,9 @@ +/** + * Creates a div DOM node. + */ +export declare const createDiv: (classNames?: string) => HTMLDivElement; +/** + * Creates DOM nodes modeled after the passed html string and returns the root dom nodes as a array. + * @param html The html string after which the DOM nodes shall be created. + */ +export declare const createDOM: (html: string) => ReadonlyArray; diff --git a/local/browser-testing/dist/support/dom/create.js b/local/browser-testing/dist/support/dom/create.js new file mode 100644 index 0000000..2586096 --- /dev/null +++ b/local/browser-testing/dist/support/dom/create.js @@ -0,0 +1,23 @@ +import { each } from '../utils/array'; +import { contents } from './traversal'; +import { removeElements } from './manipulation'; +/** + * Creates a div DOM node. + */ +export const createDiv = (classNames) => { + const div = document.createElement('div'); + if (classNames) { + div.setAttribute('class', classNames); + } + return div; +}; +/** + * Creates DOM nodes modeled after the passed html string and returns the root dom nodes as a array. + * @param html The html string after which the DOM nodes shall be created. + */ +export const createDOM = (html) => { + const createdDiv = createDiv(); + createdDiv.innerHTML = html.trim(); + return each(contents(createdDiv), (elm) => removeElements(elm)); +}; +//# sourceMappingURL=create.js.map \ No newline at end of file diff --git a/local/browser-testing/dist/support/dom/create.js.map b/local/browser-testing/dist/support/dom/create.js.map new file mode 100644 index 0000000..36a7411 --- /dev/null +++ b/local/browser-testing/dist/support/dom/create.js.map @@ -0,0 +1 @@ +{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/support/dom/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,UAAmB,EAAkB,EAAE;IAC/D,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC1C,IAAI,UAAU,EAAE;QACd,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;KACvC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAY,EAAuB,EAAE;IAC7D,MAAM,UAAU,GAAG,SAAS,EAAE,CAAC;IAC/B,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAEnC,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;AAClE,CAAC,CAAC"} \ No newline at end of file diff --git a/local/browser-testing/dist/support/dom/dimensions.d.ts b/local/browser-testing/dist/support/dom/dimensions.d.ts new file mode 100644 index 0000000..aa7051e --- /dev/null +++ b/local/browser-testing/dist/support/dom/dimensions.d.ts @@ -0,0 +1,33 @@ +export interface WH { + w: T; + h: T; +} +/** + * Returns the window inner- width and height. + */ +export declare const windowSize: () => WH; +/** + * Returns the scroll- width and height of the passed element. If the element is null the width and height values are 0. + * @param elm The element of which the scroll- width and height shall be returned. + */ +export declare const offsetSize: (elm: HTMLElement | null | undefined) => WH; +/** + * Returns the client- width and height of the passed element. If the element is null the width and height values are 0. + * @param elm The element of which the client- width and height shall be returned. + */ +export declare const clientSize: (elm: HTMLElement | false | null | undefined) => WH; +/** + * Returns the client- width and height of the passed element. If the element is null the width and height values are 0. + * @param elm The element of which the client- width and height shall be returned. + */ +export declare const scrollSize: (elm: HTMLElement | false | null | undefined) => WH; +/** + * Returns the BoundingClientRect of the passed element. + * @param elm The element of which the BoundingClientRect shall be returned. + */ +export declare const getBoundingClientRect: (elm: HTMLElement) => DOMRect; +/** + * Determines whether the passed element has any dimensions. + * @param elm The element. + */ +export declare const hasDimensions: (elm: HTMLElement | false | null | undefined) => boolean; diff --git a/local/browser-testing/dist/support/dom/dimensions.js b/local/browser-testing/dist/support/dom/dimensions.js new file mode 100644 index 0000000..38faf6c --- /dev/null +++ b/local/browser-testing/dist/support/dom/dimensions.js @@ -0,0 +1,53 @@ +const elementHasDimensions = (elm) => !!(elm.offsetWidth || elm.offsetHeight || elm.getClientRects().length); +const zeroObj = { + w: 0, + h: 0, +}; +/** + * Returns the window inner- width and height. + */ +export const windowSize = () => ({ + w: window.innerWidth, + h: window.innerHeight, +}); +/** + * Returns the scroll- width and height of the passed element. If the element is null the width and height values are 0. + * @param elm The element of which the scroll- width and height shall be returned. + */ +export const offsetSize = (elm) => elm + ? { + w: elm.offsetWidth, + h: elm.offsetHeight, + } + : zeroObj; +/** + * Returns the client- width and height of the passed element. If the element is null the width and height values are 0. + * @param elm The element of which the client- width and height shall be returned. + */ +export const clientSize = (elm) => elm + ? { + w: elm.clientWidth, + h: elm.clientHeight, + } + : zeroObj; +/** + * Returns the client- width and height of the passed element. If the element is null the width and height values are 0. + * @param elm The element of which the client- width and height shall be returned. + */ +export const scrollSize = (elm) => elm + ? { + w: elm.scrollWidth, + h: elm.scrollHeight, + } + : zeroObj; +/** + * Returns the BoundingClientRect of the passed element. + * @param elm The element of which the BoundingClientRect shall be returned. + */ +export const getBoundingClientRect = (elm) => elm.getBoundingClientRect(); +/** + * Determines whether the passed element has any dimensions. + * @param elm The element. + */ +export const hasDimensions = (elm) => elm ? elementHasDimensions(elm) : false; +//# sourceMappingURL=dimensions.js.map \ No newline at end of file diff --git a/local/browser-testing/dist/support/dom/dimensions.js.map b/local/browser-testing/dist/support/dom/dimensions.js.map new file mode 100644 index 0000000..08e9ae5 --- /dev/null +++ b/local/browser-testing/dist/support/dom/dimensions.js.map @@ -0,0 +1 @@ +{"version":3,"file":"dimensions.js","sourceRoot":"","sources":["../../../src/support/dom/dimensions.ts"],"names":[],"mappings":"AAKA,MAAM,oBAAoB,GAAG,CAAC,GAAgB,EAAW,EAAE,CACzD,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC;AACzE,MAAM,OAAO,GAAO;IAClB,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;CACL,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,GAAO,EAAE,CAAC,CAAC;IACnC,CAAC,EAAE,MAAM,CAAC,UAAU;IACpB,CAAC,EAAE,MAAM,CAAC,WAAW;CACtB,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,GAAmC,EAAM,EAAE,CACpE,GAAG;IACD,CAAC,CAAC;QACE,CAAC,EAAE,GAAG,CAAC,WAAW;QAClB,CAAC,EAAE,GAAG,CAAC,YAAY;KACpB;IACH,CAAC,CAAC,OAAO,CAAC;AAEd;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,GAA2C,EAAM,EAAE,CAC5E,GAAG;IACD,CAAC,CAAC;QACE,CAAC,EAAE,GAAG,CAAC,WAAW;QAClB,CAAC,EAAE,GAAG,CAAC,YAAY;KACpB;IACH,CAAC,CAAC,OAAO,CAAC;AAEd;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,GAA2C,EAAM,EAAE,CAC5E,GAAG;IACD,CAAC,CAAC;QACE,CAAC,EAAE,GAAG,CAAC,WAAW;QAClB,CAAC,EAAE,GAAG,CAAC,YAAY;KACpB;IACH,CAAC,CAAC,OAAO,CAAC;AAEd;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,GAAgB,EAAW,EAAE,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC;AAEhG;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAA2C,EAAW,EAAE,CACpF,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC,GAAkB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC"} \ No newline at end of file diff --git a/local/browser-testing/dist/support/dom/events.d.ts b/local/browser-testing/dist/support/dom/events.d.ts new file mode 100644 index 0000000..ee3729a --- /dev/null +++ b/local/browser-testing/dist/support/dom/events.d.ts @@ -0,0 +1,36 @@ +export interface OnOptions { + _capture?: boolean; + _passive?: boolean; + _once?: boolean; +} +/** + * Removes the passed event listener for the passed events with the passed options. + * @param target The element from which the listener shall be removed. + * @param eventNames The eventsnames for which the listener shall be removed. + * @param listener The listener which shall be removed. + * @param capture The options of the removed listener. + */ +export declare const off: (target: EventTarget, eventNames: string, listener: (event: T) => any, capture?: boolean) => void; +/** + * Adds the passed event listener for the passed eventnames with the passed options. + * @param target The element to which the listener shall be added. + * @param eventNames The eventsnames for which the listener shall be called. + * @param listener The listener which is called on the eventnames. + * @param options The options of the added listener. + */ +export declare const on: (target: EventTarget, eventNames: string, listener: (event: T) => any, options?: OnOptions) => (() => void); +/** + * Shorthand for the stopPropagation event Method. + * @param evt The event of which the stopPropagation method shall be called. + */ +export declare const stopPropagation: (evt: Event) => void; +/** + * Shorthand for the preventDefault event Method. + * @param evt The event of which the preventDefault method shall be called. + */ +export declare const preventDefault: (evt: Event) => void; +/** + * Shorthand for the stopPropagation and preventDefault event Method. + * @param evt The event of which the stopPropagation and preventDefault methods shall be called. + */ +export declare const stopAndPrevent: (evt: Event) => void; diff --git a/local/browser-testing/dist/support/dom/events.js b/local/browser-testing/dist/support/dom/events.js new file mode 100644 index 0000000..b82549e --- /dev/null +++ b/local/browser-testing/dist/support/dom/events.js @@ -0,0 +1,80 @@ +import { isUndefined } from '../utils/types'; +import { each, push, runEachAndClear } from '../utils/array'; +let passiveEventsSupport; +const supportPassiveEvents = () => { + if (isUndefined(passiveEventsSupport)) { + passiveEventsSupport = false; + try { + /* eslint-disable */ + // @ts-ignore + window.addEventListener('test', null, Object.defineProperty({}, 'passive', { + get() { + passiveEventsSupport = true; + }, + })); + /* eslint-enable */ + } + catch (e) { } + } + return passiveEventsSupport; +}; +const splitEventNames = (eventNames) => eventNames.split(' '); +/** + * Removes the passed event listener for the passed events with the passed options. + * @param target The element from which the listener shall be removed. + * @param eventNames The eventsnames for which the listener shall be removed. + * @param listener The listener which shall be removed. + * @param capture The options of the removed listener. + */ +export const off = (target, eventNames, listener, capture) => { + each(splitEventNames(eventNames), (eventName) => { + target.removeEventListener(eventName, listener, capture); + }); +}; +/** + * Adds the passed event listener for the passed eventnames with the passed options. + * @param target The element to which the listener shall be added. + * @param eventNames The eventsnames for which the listener shall be called. + * @param listener The listener which is called on the eventnames. + * @param options The options of the added listener. + */ +export const on = (target, eventNames, listener, options) => { + const doSupportPassiveEvents = supportPassiveEvents(); + const passive = (doSupportPassiveEvents && options && options._passive) ?? doSupportPassiveEvents; + const capture = (options && options._capture) || false; + const once = (options && options._once) || false; + const offListeners = []; + const nativeOptions = doSupportPassiveEvents + ? { + passive, + capture, + } + : capture; + each(splitEventNames(eventNames), (eventName) => { + const finalListener = (once + ? (evt) => { + target.removeEventListener(eventName, finalListener, capture); + listener && listener(evt); + } + : listener); + push(offListeners, off.bind(null, target, eventName, finalListener, capture)); + target.addEventListener(eventName, finalListener, nativeOptions); + }); + return runEachAndClear.bind(0, offListeners); +}; +/** + * Shorthand for the stopPropagation event Method. + * @param evt The event of which the stopPropagation method shall be called. + */ +export const stopPropagation = (evt) => evt.stopPropagation(); +/** + * Shorthand for the preventDefault event Method. + * @param evt The event of which the preventDefault method shall be called. + */ +export const preventDefault = (evt) => evt.preventDefault(); +/** + * Shorthand for the stopPropagation and preventDefault event Method. + * @param evt The event of which the stopPropagation and preventDefault methods shall be called. + */ +export const stopAndPrevent = (evt) => stopPropagation(evt) || preventDefault(evt); +//# sourceMappingURL=events.js.map \ No newline at end of file diff --git a/local/browser-testing/dist/support/dom/events.js.map b/local/browser-testing/dist/support/dom/events.js.map new file mode 100644 index 0000000..b75a9fd --- /dev/null +++ b/local/browser-testing/dist/support/dom/events.js.map @@ -0,0 +1 @@ +{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/support/dom/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAE7D,IAAI,oBAA6B,CAAC;AAClC,MAAM,oBAAoB,GAAG,GAAY,EAAE;IACzC,IAAI,WAAW,CAAC,oBAAoB,CAAC,EAAE;QACrC,oBAAoB,GAAG,KAAK,CAAC;QAC7B,IAAI;YACF,oBAAoB;YACpB,aAAa;YACb,MAAM,CAAC,gBAAgB,CACrB,MAAM,EACN,IAAI,EACJ,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,SAAS,EAAE;gBACnC,GAAG;oBACD,oBAAoB,GAAG,IAAI,CAAC;gBAC9B,CAAC;aACF,CAAC,CACH,CAAC;YACF,mBAAmB;SACpB;QAAC,OAAO,CAAC,EAAE,GAAE;KACf;IACD,OAAO,oBAAoB,CAAC;AAC9B,CAAC,CAAC;AACF,MAAM,eAAe,GAAG,CAAC,UAAkB,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAQtE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,CACjB,MAAmB,EACnB,UAAkB,EAClB,QAA2B,EAC3B,OAAiB,EACX,EAAE;IACR,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE;QAC9C,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,QAAyB,EAAE,OAAO,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,EAAE,GAAG,CAChB,MAAmB,EACnB,UAAkB,EAClB,QAA2B,EAC3B,OAAmB,EACL,EAAE;IAChB,MAAM,sBAAsB,GAAG,oBAAoB,EAAE,CAAC;IACtD,MAAM,OAAO,GAAG,CAAC,sBAAsB,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,sBAAsB,CAAC;IAClG,MAAM,OAAO,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC;IACvD,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;IACjD,MAAM,YAAY,GAAmB,EAAE,CAAC;IACxC,MAAM,aAAa,GAAsC,sBAAsB;QAC7E,CAAC,CAAC;YACE,OAAO;YACP,OAAO;SACR;QACH,CAAC,CAAC,OAAO,CAAC;IAEZ,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE;QAC9C,MAAM,aAAa,GAAG,CACpB,IAAI;YACF,CAAC,CAAC,CAAC,GAAM,EAAE,EAAE;gBACT,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;gBAC9D,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC5B,CAAC;YACH,CAAC,CAAC,QAAQ,CACI,CAAC;QAEnB,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC;QAC9E,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,GAAU,EAAQ,EAAE,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;AAE3E;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAU,EAAQ,EAAE,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;AAEzE;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAU,EAAQ,EAAE,CAChD,eAAe,CAAC,GAAG,CAAe,IAAK,cAAc,CAAC,GAAG,CAAe,CAAC"} \ No newline at end of file diff --git a/local/browser-testing/dist/support/dom/index.d.ts b/local/browser-testing/dist/support/dom/index.d.ts new file mode 100644 index 0000000..c298aa6 --- /dev/null +++ b/local/browser-testing/dist/support/dom/index.d.ts @@ -0,0 +1,8 @@ +export * from './class'; +export * from './create'; +export * from './dimensions'; +export * from './events'; +export * from './style'; +export * from './manipulation'; +export * from './offset'; +export * from './traversal'; diff --git a/local/browser-testing/dist/support/dom/index.js b/local/browser-testing/dist/support/dom/index.js new file mode 100644 index 0000000..548bb3b --- /dev/null +++ b/local/browser-testing/dist/support/dom/index.js @@ -0,0 +1,9 @@ +export * from './class'; +export * from './create'; +export * from './dimensions'; +export * from './events'; +export * from './style'; +export * from './manipulation'; +export * from './offset'; +export * from './traversal'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/local/browser-testing/dist/support/dom/index.js.map b/local/browser-testing/dist/support/dom/index.js.map new file mode 100644 index 0000000..d2a1b8d --- /dev/null +++ b/local/browser-testing/dist/support/dom/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/support/dom/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC"} \ No newline at end of file diff --git a/local/browser-testing/dist/support/dom/manipulation.d.ts b/local/browser-testing/dist/support/dom/manipulation.d.ts new file mode 100644 index 0000000..eaaaa98 --- /dev/null +++ b/local/browser-testing/dist/support/dom/manipulation.d.ts @@ -0,0 +1,31 @@ +declare type NodeCollection = ArrayLike | Node | false | null | undefined; +/** + * Appends the given children at the end of the given Node. + * @param node The Node to which the children shall be appended. + * @param children The Nodes which shall be appended. + */ +export declare const appendChildren: (node: Node | false | null | undefined, children: NodeCollection) => void; +/** + * Prepends the given children at the start of the given Node. + * @param node The Node to which the children shall be prepended. + * @param children The Nodes which shall be prepended. + */ +export declare const prependChildren: (node: Node | false | null | undefined, children: NodeCollection) => void; +/** + * Inserts the given Nodes before the given Node. + * @param node The Node before which the given Nodes shall be inserted. + * @param insertedNodes The Nodes which shall be inserted. + */ +export declare const insertBefore: (node: Node | false | null | undefined, insertedNodes: NodeCollection) => void; +/** + * Inserts the given Nodes after the given Node. + * @param node The Node after which the given Nodes shall be inserted. + * @param insertedNodes The Nodes which shall be inserted. + */ +export declare const insertAfter: (node: Node | false | null | undefined, insertedNodes: NodeCollection) => void; +/** + * Removes the given Nodes from their parent. + * @param nodes The Nodes which shall be removed. + */ +export declare const removeElements: (nodes: NodeCollection) => void; +export {}; diff --git a/local/browser-testing/dist/support/dom/manipulation.js b/local/browser-testing/dist/support/dom/manipulation.js new file mode 100644 index 0000000..f0ac5e5 --- /dev/null +++ b/local/browser-testing/dist/support/dom/manipulation.js @@ -0,0 +1,86 @@ +import { isArrayLike } from '../utils/types'; +import { each, from } from '../utils/array'; +import { parent } from './traversal'; +/** + * Inserts Nodes before the given preferredAnchor element. + * @param parentElm The parent of the preferredAnchor element or the element which shall be the parent of the inserted Nodes. + * @param preferredAnchor The element before which the Nodes shall be inserted or null if the elements shall be appended at the end. + * @param insertedElms The Nodes which shall be inserted. + */ +const before = (parentElm, preferredAnchor, insertedElms) => { + if (insertedElms && parentElm) { + let anchor = preferredAnchor; + let fragment; + if (isArrayLike(insertedElms)) { + fragment = document.createDocumentFragment(); + // append all insertedElms to the fragment and if one of these is the anchor, change the anchor + each(insertedElms, (insertedElm) => { + if (insertedElm === anchor) { + anchor = insertedElm.previousSibling; + } + fragment.appendChild(insertedElm); + }); + } + else { + fragment = insertedElms; + } + // if the preferred anchor isn't null set it to a valid anchor + if (preferredAnchor) { + if (!anchor) { + anchor = parentElm.firstChild; + } + else if (anchor !== preferredAnchor) { + anchor = anchor.nextSibling; + } + } + parentElm.insertBefore(fragment, anchor || null); + } +}; +/** + * Appends the given children at the end of the given Node. + * @param node The Node to which the children shall be appended. + * @param children The Nodes which shall be appended. + */ +export const appendChildren = (node, children) => { + before(node, null, children); +}; +/** + * Prepends the given children at the start of the given Node. + * @param node The Node to which the children shall be prepended. + * @param children The Nodes which shall be prepended. + */ +export const prependChildren = (node, children) => { + before(node, node && node.firstChild, children); +}; +/** + * Inserts the given Nodes before the given Node. + * @param node The Node before which the given Nodes shall be inserted. + * @param insertedNodes The Nodes which shall be inserted. + */ +export const insertBefore = (node, insertedNodes) => { + before(parent(node), node, insertedNodes); +}; +/** + * Inserts the given Nodes after the given Node. + * @param node The Node after which the given Nodes shall be inserted. + * @param insertedNodes The Nodes which shall be inserted. + */ +export const insertAfter = (node, insertedNodes) => { + before(parent(node), node && node.nextSibling, insertedNodes); +}; +/** + * Removes the given Nodes from their parent. + * @param nodes The Nodes which shall be removed. + */ +export const removeElements = (nodes) => { + if (isArrayLike(nodes)) { + each(from(nodes), (e) => removeElements(e)); + } + else if (nodes) { + const parentElm = parent(nodes); + if (parentElm) { + parentElm.removeChild(nodes); + } + } +}; +//# sourceMappingURL=manipulation.js.map \ No newline at end of file diff --git a/local/browser-testing/dist/support/dom/manipulation.js.map b/local/browser-testing/dist/support/dom/manipulation.js.map new file mode 100644 index 0000000..0fdb3cd --- /dev/null +++ b/local/browser-testing/dist/support/dom/manipulation.js.map @@ -0,0 +1 @@ +{"version":3,"file":"manipulation.js","sourceRoot":"","sources":["../../../src/support/dom/manipulation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAIrC;;;;;GAKG;AACH,MAAM,MAAM,GAAG,CACb,SAA0C,EAC1C,eAAgD,EAChD,YAA4B,EACtB,EAAE;IACR,IAAI,YAAY,IAAI,SAAS,EAAE;QAC7B,IAAI,MAAM,GAAoC,eAAe,CAAC;QAC9D,IAAI,QAAoD,CAAC;QAEzD,IAAI,WAAW,CAAC,YAAY,CAAC,EAAE;YAC7B,QAAQ,GAAG,QAAQ,CAAC,sBAAsB,EAAE,CAAC;YAE7C,+FAA+F;YAC/F,IAAI,CAAC,YAAY,EAAE,CAAC,WAAW,EAAE,EAAE;gBACjC,IAAI,WAAW,KAAK,MAAM,EAAE;oBAC1B,MAAM,GAAG,WAAW,CAAC,eAAe,CAAC;iBACtC;gBACD,QAAS,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;SACJ;aAAM;YACL,QAAQ,GAAG,YAAY,CAAC;SACzB;QAED,8DAA8D;QAC9D,IAAI,eAAe,EAAE;YACnB,IAAI,CAAC,MAAM,EAAE;gBACX,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC;aAC/B;iBAAM,IAAI,MAAM,KAAK,eAAe,EAAE;gBACrC,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC;aAC7B;SACF;QAED,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,IAAI,IAAI,CAAC,CAAC;KAClD;AACH,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,IAAqC,EACrC,QAAwB,EAClB,EAAE;IACR,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,IAAqC,EACrC,QAAwB,EAClB,EAAE;IACR,MAAM,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,IAAqC,EACrC,aAA6B,EACvB,EAAE;IACR,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,IAAqC,EACrC,aAA6B,EACvB,EAAE;IACR,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;AAChE,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAqB,EAAQ,EAAE;IAC5D,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE;QACtB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;KAC7C;SAAM,IAAI,KAAK,EAAE;QAChB,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,SAAS,EAAE;YACb,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SAC9B;KACF;AACH,CAAC,CAAC"} \ No newline at end of file diff --git a/local/browser-testing/dist/support/dom/offset.d.ts b/local/browser-testing/dist/support/dom/offset.d.ts new file mode 100644 index 0000000..d210359 --- /dev/null +++ b/local/browser-testing/dist/support/dom/offset.d.ts @@ -0,0 +1,14 @@ +export interface XY { + x: T; + y: T; +} +/** + * Returns the offset- left and top coordinates of the passed element relative to the document. If the element is null the top and left values are 0. + * @param elm The element of which the offset- top and left coordinates shall be returned. + */ +export declare const absoluteCoordinates: (elm: HTMLElement | null | undefined) => XY; +/** + * Returns the offset- left and top coordinates of the passed element. If the element is null the top and left values are 0. + * @param elm The element of which the offset- top and left coordinates shall be returned. + */ +export declare const offsetCoordinates: (elm: HTMLElement | null | undefined) => XY; diff --git a/local/browser-testing/dist/support/dom/offset.js b/local/browser-testing/dist/support/dom/offset.js new file mode 100644 index 0000000..1e2579b --- /dev/null +++ b/local/browser-testing/dist/support/dom/offset.js @@ -0,0 +1,29 @@ +import { getBoundingClientRect } from './dimensions'; +const zeroObj = { + x: 0, + y: 0, +}; +/** + * Returns the offset- left and top coordinates of the passed element relative to the document. If the element is null the top and left values are 0. + * @param elm The element of which the offset- top and left coordinates shall be returned. + */ +export const absoluteCoordinates = (elm) => { + const rect = elm ? getBoundingClientRect(elm) : 0; + return rect + ? { + x: rect.left + window.pageYOffset, + y: rect.top + window.pageXOffset, + } + : zeroObj; +}; +/** + * Returns the offset- left and top coordinates of the passed element. If the element is null the top and left values are 0. + * @param elm The element of which the offset- top and left coordinates shall be returned. + */ +export const offsetCoordinates = (elm) => elm + ? { + x: elm.offsetLeft, + y: elm.offsetTop, + } + : zeroObj; +//# sourceMappingURL=offset.js.map \ No newline at end of file diff --git a/local/browser-testing/dist/support/dom/offset.js.map b/local/browser-testing/dist/support/dom/offset.js.map new file mode 100644 index 0000000..f665300 --- /dev/null +++ b/local/browser-testing/dist/support/dom/offset.js.map @@ -0,0 +1 @@ +{"version":3,"file":"offset.js","sourceRoot":"","sources":["../../../src/support/dom/offset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAOrD,MAAM,OAAO,GAAO;IAClB,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;CACL,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,GAAmC,EAAM,EAAE;IAC7E,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,OAAO,IAAI;QACT,CAAC,CAAC;YACE,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,WAAW;YACjC,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,WAAW;SACjC;QACH,CAAC,CAAC,OAAO,CAAC;AACd,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAmC,EAAM,EAAE,CAC3E,GAAG;IACD,CAAC,CAAC;QACE,CAAC,EAAE,GAAG,CAAC,UAAU;QACjB,CAAC,EAAE,GAAG,CAAC,SAAS;KACjB;IACH,CAAC,CAAC,OAAO,CAAC"} \ No newline at end of file diff --git a/local/browser-testing/dist/support/dom/style.d.ts b/local/browser-testing/dist/support/dom/style.d.ts new file mode 100644 index 0000000..65989b5 --- /dev/null +++ b/local/browser-testing/dist/support/dom/style.d.ts @@ -0,0 +1,37 @@ +export interface TRBL { + t: number; + r: number; + b: number; + l: number; +} +declare type StyleObject = { + [Key in keyof CSSStyleDeclaration | (CustomCssProps extends string ? CustomCssProps : '')]?: string | number; +}; +/** + * Gets or sets the passed styles to the passed element. + * @param elm The element to which the styles shall be applied to / be read from. + * @param styles The styles which shall be set or read. + */ +export declare function style(elm: HTMLElement | false | null | undefined, styles: StyleObject): void; +export declare function style(elm: HTMLElement | false | null | undefined, styles: string): string; +export declare function style(elm: HTMLElement | false | null | undefined, styles: Array | string): { + [key: string]: string; +}; +/** + * Hides the passed element (display: none). + * @param elm The element which shall be hidden. + */ +export declare const hide: (elm: HTMLElement | false | null | undefined) => void; +/** + * Shows the passed element (display: block). + * @param elm The element which shall be shown. + */ +export declare const show: (elm: HTMLElement | false | null | undefined) => void; +/** + * Returns the top right bottom left values of the passed css property. + * @param elm The element of which the values shall be returned. + * @param propertyPrefix The css property prefix. (e.g. "border") + * @param propertySuffix The css property suffix. (e.g. "width") + */ +export declare const topRightBottomLeft: (elm?: HTMLElement | false | null | undefined, propertyPrefix?: string, propertySuffix?: string) => TRBL; +export {}; diff --git a/local/browser-testing/dist/support/dom/style.js b/local/browser-testing/dist/support/dom/style.js new file mode 100644 index 0000000..a77d1b7 --- /dev/null +++ b/local/browser-testing/dist/support/dom/style.js @@ -0,0 +1,96 @@ +import { each, keys } from '../utils'; +import { isString, isNumber, isArray, isUndefined } from '../utils/types'; +const cssNumber = { + // animationiterationcount: 1, + // columncount: 1, + // fillopacity: 1, + // flexgrow: 1, + // flexshrink: 1, + // fontweight: 1, + // lineheight: 1, + // order: 1, + // orphans: 1, + // widows: 1, + // zoom: 1, + opacity: 1, + zindex: 1, +}; +const parseToZeroOrNumber = (value, toFloat) => { + /* istanbul ignore next */ + const num = toFloat ? parseFloat(value) : parseInt(value, 10); + // num === num means num is not NaN + /* istanbul ignore next */ + return num === num ? num : 0; // eslint-disable-line no-self-compare +}; +const adaptCSSVal = (prop, val) => !cssNumber[prop.toLowerCase()] && isNumber(val) ? `${val}px` : val; +const getCSSVal = (elm, computedStyle, prop) => +/* istanbul ignore next */ +computedStyle != null + ? computedStyle[prop] || computedStyle.getPropertyValue(prop) + : elm.style[prop]; +const setCSSVal = (elm, prop, val) => { + try { + const { style: elmStyle } = elm; + if (!isUndefined(elmStyle[prop])) { + elmStyle[prop] = adaptCSSVal(prop, val); + } + else { + elmStyle.setProperty(prop, val); + } + } + catch (e) { } +}; +export function style(elm, styles) { + const getSingleStyle = isString(styles); + const getStyles = isArray(styles) || getSingleStyle; + if (getStyles) { + let getStylesResult = getSingleStyle ? '' : {}; + if (elm) { + const computedStyle = window.getComputedStyle(elm, null); + getStylesResult = getSingleStyle + ? getCSSVal(elm, computedStyle, styles) + : styles.reduce((result, key) => { + result[key] = getCSSVal(elm, computedStyle, key); + return result; + }, getStylesResult); + } + return getStylesResult; + } + elm && each(keys(styles), (key) => setCSSVal(elm, key, styles[key])); +} +/** + * Hides the passed element (display: none). + * @param elm The element which shall be hidden. + */ +export const hide = (elm) => { + style(elm, { display: 'none' }); +}; +/** + * Shows the passed element (display: block). + * @param elm The element which shall be shown. + */ +export const show = (elm) => { + style(elm, { display: 'block' }); +}; +/** + * Returns the top right bottom left values of the passed css property. + * @param elm The element of which the values shall be returned. + * @param propertyPrefix The css property prefix. (e.g. "border") + * @param propertySuffix The css property suffix. (e.g. "width") + */ +export const topRightBottomLeft = (elm, propertyPrefix, propertySuffix) => { + const finalPrefix = propertyPrefix ? `${propertyPrefix}-` : ''; + const finalSuffix = propertySuffix ? `-${propertySuffix}` : ''; + const top = `${finalPrefix}top${finalSuffix}`; + const right = `${finalPrefix}right${finalSuffix}`; + const bottom = `${finalPrefix}bottom${finalSuffix}`; + const left = `${finalPrefix}left${finalSuffix}`; + const result = style(elm, [top, right, bottom, left]); + return { + t: parseToZeroOrNumber(result[top]), + r: parseToZeroOrNumber(result[right]), + b: parseToZeroOrNumber(result[bottom]), + l: parseToZeroOrNumber(result[left]), + }; +}; +//# sourceMappingURL=style.js.map \ No newline at end of file diff --git a/local/browser-testing/dist/support/dom/style.js.map b/local/browser-testing/dist/support/dom/style.js.map new file mode 100644 index 0000000..51687f9 --- /dev/null +++ b/local/browser-testing/dist/support/dom/style.js.map @@ -0,0 +1 @@ +{"version":3,"file":"style.js","sourceRoot":"","sources":["../../../src/support/dom/style.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/local/browser-testing/dist/support/dom/traversal.d.ts b/local/browser-testing/dist/support/dom/traversal.d.ts new file mode 100644 index 0000000..0a9ec88 --- /dev/null +++ b/local/browser-testing/dist/support/dom/traversal.d.ts @@ -0,0 +1,45 @@ +declare type InputElementType = Node | Element | Node | false | null | undefined; +declare type OutputElementType = Node | Element | null; +/** + * Find all elements with the passed selector, outgoing (and including) the passed element or the document if no element was provided. + * @param selector The selector which has to be searched by. + * @param elm The element from which the search shall be outgoing. + */ +declare const find: (selector: string, elm?: InputElementType) => Element[]; +/** + * Find the first element with the passed selector, outgoing (and including) the passed element or the document if no element was provided. + * @param selector The selector which has to be searched by. + * @param elm The element from which the search shall be outgoing. + */ +declare const findFirst: (selector: string, elm?: InputElementType) => OutputElementType; +/** + * Determines whether the passed element is matching with the passed selector. + * @param elm The element which has to be compared with the passed selector. + * @param selector The selector which has to be compared with the passed element. Additional selectors: ':visible' and ':hidden'. + */ +declare const is: (elm: InputElementType, selector: string) => boolean; +/** + * Returns the children (no text-nodes or comments) of the passed element which are matching the passed selector. An empty array is returned if the passed element is null. + * @param elm The element of which the children shall be returned. + * @param selector The selector which must match with the children elements. + */ +declare const children: (elm: InputElementType, selector?: string) => ReadonlyArray; +/** + * Returns the childNodes (incl. text-nodes or comments etc.) of the passed element. An empty array is returned if the passed element is null. + * @param elm The element of which the childNodes shall be returned. + */ +declare const contents: (elm: InputElementType) => ReadonlyArray; +/** + * Returns the parent element of the passed element, or null if the passed element is null. + * @param elm The element of which the parent element shall be returned. + */ +declare const parent: (elm: InputElementType) => OutputElementType; +declare const closest: (elm: InputElementType, selector: string) => OutputElementType; +/** + * Determines whether the given element lies between two selectors in the DOM. + * @param elm The element. + * @param highBoundarySelector The high boundary selector. + * @param deepBoundarySelector The deep boundary selector. + */ +declare const liesBetween: (elm: InputElementType, highBoundarySelector: string, deepBoundarySelector: string) => boolean; +export { find, findFirst, is, children, contents, parent, liesBetween, closest }; diff --git a/local/browser-testing/dist/support/dom/traversal.js b/local/browser-testing/dist/support/dom/traversal.js new file mode 100644 index 0000000..47bda24 --- /dev/null +++ b/local/browser-testing/dist/support/dom/traversal.js @@ -0,0 +1,93 @@ +import { isElement } from '../utils/types'; +import { push, from } from '../utils/array'; +const elmPrototype = Element.prototype; +/** + * Find all elements with the passed selector, outgoing (and including) the passed element or the document if no element was provided. + * @param selector The selector which has to be searched by. + * @param elm The element from which the search shall be outgoing. + */ +const find = (selector, elm) => { + const arr = []; + const rootElm = elm ? (isElement(elm) ? elm : null) : document; + return rootElm ? push(arr, rootElm.querySelectorAll(selector)) : arr; +}; +/** + * Find the first element with the passed selector, outgoing (and including) the passed element or the document if no element was provided. + * @param selector The selector which has to be searched by. + * @param elm The element from which the search shall be outgoing. + */ +const findFirst = (selector, elm) => { + const rootElm = elm ? (isElement(elm) ? elm : null) : document; + return rootElm ? rootElm.querySelector(selector) : null; +}; +/** + * Determines whether the passed element is matching with the passed selector. + * @param elm The element which has to be compared with the passed selector. + * @param selector The selector which has to be compared with the passed element. Additional selectors: ':visible' and ':hidden'. + */ +const is = (elm, selector) => { + if (isElement(elm)) { + /* istanbul ignore next */ + // eslint-disable-next-line + // @ts-ignore + const fn = elmPrototype.matches || elmPrototype.msMatchesSelector; + return fn.call(elm, selector); + } + return false; +}; +/** + * Returns the children (no text-nodes or comments) of the passed element which are matching the passed selector. An empty array is returned if the passed element is null. + * @param elm The element of which the children shall be returned. + * @param selector The selector which must match with the children elements. + */ +const children = (elm, selector) => { + const childs = []; + return isElement(elm) + ? push(childs, from(elm.children).filter((child) => (selector ? is(child, selector) : child))) + : childs; +}; +/** + * Returns the childNodes (incl. text-nodes or comments etc.) of the passed element. An empty array is returned if the passed element is null. + * @param elm The element of which the childNodes shall be returned. + */ +const contents = (elm) => elm ? from(elm.childNodes) : []; +/** + * Returns the parent element of the passed element, or null if the passed element is null. + * @param elm The element of which the parent element shall be returned. + */ +const parent = (elm) => (elm ? elm.parentElement : null); +const closest = (elm, selector) => { + if (isElement(elm)) { + const closestFn = elmPrototype.closest; + if (closestFn) { + return closestFn.call(elm, selector); + } + do { + if (is(elm, selector)) { + return elm; + } + elm = parent(elm); + } while (elm); + } + return null; +}; +/** + * Determines whether the given element lies between two selectors in the DOM. + * @param elm The element. + * @param highBoundarySelector The high boundary selector. + * @param deepBoundarySelector The deep boundary selector. + */ +const liesBetween = (elm, highBoundarySelector, deepBoundarySelector) => { + const closestHighBoundaryElm = elm && closest(elm, highBoundarySelector); + const closestDeepBoundaryElm = elm && findFirst(deepBoundarySelector, closestHighBoundaryElm); + const deepBoundaryIsValid = closest(closestDeepBoundaryElm, highBoundarySelector) === closestHighBoundaryElm; + return closestHighBoundaryElm && closestDeepBoundaryElm + ? closestHighBoundaryElm === elm || + closestDeepBoundaryElm === elm || + (deepBoundaryIsValid && + closest(closest(elm, deepBoundarySelector), highBoundarySelector) !== + closestHighBoundaryElm) + : false; +}; +export { find, findFirst, is, children, contents, parent, liesBetween, closest }; +//# sourceMappingURL=traversal.js.map \ No newline at end of file diff --git a/local/browser-testing/dist/support/dom/traversal.js.map b/local/browser-testing/dist/support/dom/traversal.js.map new file mode 100644 index 0000000..e14643b --- /dev/null +++ b/local/browser-testing/dist/support/dom/traversal.js.map @@ -0,0 +1 @@ +{"version":3,"file":"traversal.js","sourceRoot":"","sources":["../../../src/support/dom/traversal.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/local/browser-testing/dist/support/index.d.ts b/local/browser-testing/dist/support/index.d.ts new file mode 100644 index 0000000..f20e8e8 --- /dev/null +++ b/local/browser-testing/dist/support/index.d.ts @@ -0,0 +1,2 @@ +export * from './dom'; +export * from './utils'; diff --git a/local/browser-testing/dist/support/index.js b/local/browser-testing/dist/support/index.js new file mode 100644 index 0000000..949ae5f --- /dev/null +++ b/local/browser-testing/dist/support/index.js @@ -0,0 +1,3 @@ +export * from './dom'; +export * from './utils'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/local/browser-testing/dist/support/index.js.map b/local/browser-testing/dist/support/index.js.map new file mode 100644 index 0000000..5202b1c --- /dev/null +++ b/local/browser-testing/dist/support/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/support/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC"} \ No newline at end of file diff --git a/local/browser-testing/dist/support/utils/array.d.ts b/local/browser-testing/dist/support/utils/array.d.ts new file mode 100644 index 0000000..6349055 --- /dev/null +++ b/local/browser-testing/dist/support/utils/array.d.ts @@ -0,0 +1,46 @@ +declare type PlainObject = Record; +declare type RunEachItem = ((...args: any) => any | any[]) | null | undefined; +/** + * Iterates through a array or object + * @param arrayLikeOrObject The array or object through which shall be iterated. + * @param callback The function which is responsible for the iteration. + * If the function returns true its treated like a "continue" statement. + * If the function returns false its treated like a "break" statement. + */ +export declare function each(array: Array | ReadonlyArray, callback: (value: T, indexOrKey: number, source: Array) => boolean | unknown): Array | ReadonlyArray; +export declare function each(array: Array | ReadonlyArray | false | null | undefined, callback: (value: T, indexOrKey: number, source: Array) => boolean | unknown): Array | ReadonlyArray | false | null | undefined; +export declare function each(arrayLikeObject: ArrayLike, callback: (value: T, indexOrKey: number, source: ArrayLike) => boolean | unknown): ArrayLike; +export declare function each(arrayLikeObject: ArrayLike | false | null | undefined, callback: (value: T, indexOrKey: number, source: ArrayLike) => boolean | unknown): ArrayLike | false | null | undefined; +export declare function each(obj: PlainObject, callback: (value: any, indexOrKey: string, source: PlainObject) => boolean | unknown): PlainObject; +export declare function each(obj: PlainObject | false | null | undefined, callback: (value: any, indexOrKey: string, source: PlainObject) => boolean | unknown): PlainObject | false | null | undefined; +/** + * Returns the index of the given inside the given array or -1 if the given item isn't part of the given array. + * @param arr The array. + * @param item The item. + * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0. + */ +export declare const indexOf: (arr: T[], item: T, fromIndex?: number) => number; +/** + * Pushesh all given items into the given array and returns it. + * @param array The array the items shall be pushed into. + * @param items The items which shall be pushed into the array. + */ +export declare const push: (array: T[], items: T | ArrayLike, arrayIsSingleItem?: boolean) => T[]; +/** + * Creates a shallow-copied Array instance from an array-like or iterable object. + * @param arr The object from which the array instance shall be created. + */ +export declare const from: (arr?: ArrayLike | Set | undefined) => T[]; +/** + * Check whether the passed array is empty. + * @param array The array which shall be checked. + */ +export declare const isEmptyArray: (array: any[] | null | undefined) => boolean; +/** + * Calls all functions in the passed array/set of functions. + * @param arr The array filled with function which shall be called. + * @param args The args with which each function is called. + * @param keep True when the Set / array should not be cleared afterwards, false otherwise. + */ +export declare const runEachAndClear: (arr: RunEachItem[], args?: any[], keep?: boolean) => void; +export {}; diff --git a/local/browser-testing/dist/support/utils/array.js b/local/browser-testing/dist/support/utils/array.js new file mode 100644 index 0000000..936b729 --- /dev/null +++ b/local/browser-testing/dist/support/utils/array.js @@ -0,0 +1,72 @@ +import { isArrayLike, isString } from './types'; +export function each(source, callback) { + if (isArrayLike(source)) { + for (let i = 0; i < source.length; i++) { + if (callback(source[i], i, source) === false) { + break; + } + } + } + else if (source) { + each(Object.keys(source), (key) => callback(source[key], key, source)); + } + return source; +} +/** + * Returns the index of the given inside the given array or -1 if the given item isn't part of the given array. + * @param arr The array. + * @param item The item. + * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0. + */ +export const indexOf = (arr, item, fromIndex) => arr.indexOf(item, fromIndex); +/** + * Pushesh all given items into the given array and returns it. + * @param array The array the items shall be pushed into. + * @param items The items which shall be pushed into the array. + */ +export const push = (array, items, arrayIsSingleItem) => { + !arrayIsSingleItem && !isString(items) && isArrayLike(items) + ? Array.prototype.push.apply(array, items) + : array.push(items); + return array; +}; +/** + * Creates a shallow-copied Array instance from an array-like or iterable object. + * @param arr The object from which the array instance shall be created. + */ +export const from = (arr) => { + const original = Array.from; + const result = []; + if (original && arr) { + return original(arr); + } + if (arr instanceof Set) { + arr.forEach((value) => { + push(result, value); + }); + } + else { + each(arr, (elm) => { + push(result, elm); + }); + } + return result; +}; +/** + * Check whether the passed array is empty. + * @param array The array which shall be checked. + */ +export const isEmptyArray = (array) => !!array && array.length === 0; +/** + * Calls all functions in the passed array/set of functions. + * @param arr The array filled with function which shall be called. + * @param args The args with which each function is called. + * @param keep True when the Set / array should not be cleared afterwards, false otherwise. + */ +export const runEachAndClear = (arr, args, keep) => { + // eslint-disable-next-line prefer-spread + const runFn = (fn) => fn && fn.apply(undefined, args || []); + each(arr, runFn); + !keep && (arr.length = 0); +}; +//# sourceMappingURL=array.js.map \ No newline at end of file diff --git a/local/browser-testing/dist/support/utils/array.js.map b/local/browser-testing/dist/support/utils/array.js.map new file mode 100644 index 0000000..4406955 --- /dev/null +++ b/local/browser-testing/dist/support/utils/array.js.map @@ -0,0 +1 @@ +{"version":3,"file":"array.js","sourceRoot":"","sources":["../../../src/support/utils/array.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAqChD,MAAM,UAAU,IAAI,CAClB,MAA2F,EAC3F,QAAuE;IAEvE,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE;QACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACtC,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,KAAK,EAAE;gBAC5C,MAAM;aACP;SACF;KACF;SAAM,IAAI,MAAM,EAAE;QACjB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;KACxE;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAU,GAAQ,EAAE,IAAO,EAAE,SAAkB,EAAU,EAAE,CAChF,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAE/B;;;;GAIG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAI,KAAU,EAAE,KAAuB,EAAE,iBAA2B,EAAO,EAAE;IAC/F,CAAC,iBAAiB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC;QAC1D,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAY,CAAC;QACjD,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAU,CAAC,CAAC;IAC3B,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAU,GAA2B,EAAE,EAAE;IAC3D,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC;IAC5B,MAAM,MAAM,GAAQ,EAAE,CAAC;IAEvB,IAAI,QAAQ,IAAI,GAAG,EAAE;QACnB,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;KACtB;IAED,IAAI,GAAG,YAAY,GAAG,EAAE;QACtB,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACpB,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;KACJ;SAAM;QACL,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE;YAChB,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;KACJ;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAA+B,EAAW,EAAE,CACvE,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;AAEhC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,GAAkB,EAAE,IAAY,EAAE,IAAc,EAAQ,EAAE;IACxF,yCAAyC;IACzC,MAAM,KAAK,GAAG,CAAC,EAAe,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACzE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACjB,CAAC,IAAI,IAAI,CAAE,GAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACvC,CAAC,CAAC"} \ No newline at end of file diff --git a/local/browser-testing/dist/support/utils/index.d.ts b/local/browser-testing/dist/support/utils/index.d.ts new file mode 100644 index 0000000..f1efd7b --- /dev/null +++ b/local/browser-testing/dist/support/utils/index.d.ts @@ -0,0 +1,3 @@ +export * from './array'; +export * from './object'; +export * from './types'; diff --git a/local/browser-testing/dist/support/utils/index.js b/local/browser-testing/dist/support/utils/index.js new file mode 100644 index 0000000..b7c7d60 --- /dev/null +++ b/local/browser-testing/dist/support/utils/index.js @@ -0,0 +1,4 @@ +export * from './array'; +export * from './object'; +export * from './types'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/local/browser-testing/dist/support/utils/index.js.map b/local/browser-testing/dist/support/utils/index.js.map new file mode 100644 index 0000000..a9b7651 --- /dev/null +++ b/local/browser-testing/dist/support/utils/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/support/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"} \ No newline at end of file diff --git a/local/browser-testing/dist/support/utils/object.d.ts b/local/browser-testing/dist/support/utils/object.d.ts new file mode 100644 index 0000000..c2ac240 --- /dev/null +++ b/local/browser-testing/dist/support/utils/object.d.ts @@ -0,0 +1,26 @@ +/** + * Determines whether the passed object has a property with the passed name. + * @param obj The object. + * @param prop The name of the property. + */ +export declare const hasOwnProperty: (obj: any, prop: string | number | symbol) => boolean; +/** + * Returns the names of the enumerable string properties and methods of an object. + * @param obj The object of which the properties shall be returned. + */ +export declare const keys: (obj: any) => Array; +declare type AssignDeep = { + (target: T, object1: U): T & U; + (target: T, object1: U, object2: V): T & U & V; + (target: T, object1: U, object2: V, object3: W): T & U & V & W; + (target: T, object1: U, object2: V, object3: W, object4: X): T & U & V & W & X; + (target: T, object1: U, object2: V, object3: W, object4: X, object5: Y): T & U & V & W & X & Y; + (target: T, object1?: U, object2?: V, object3?: W, object4?: X, object5?: Y, object6?: Z): T & U & V & W & X & Y & Z; +}; +export declare const assignDeep: AssignDeep; +/** + * Returns true if the given object is empty, false otherwise. + * @param obj The Object. + */ +export declare const isEmptyObject: (obj: any) => boolean; +export {}; diff --git a/local/browser-testing/dist/support/utils/object.js b/local/browser-testing/dist/support/utils/object.js new file mode 100644 index 0000000..e48307e --- /dev/null +++ b/local/browser-testing/dist/support/utils/object.js @@ -0,0 +1,64 @@ +import { isArray, isFunction, isPlainObject, isNull } from './types'; +import { each } from './array'; +/** + * Determines whether the passed object has a property with the passed name. + * @param obj The object. + * @param prop The name of the property. + */ +export const hasOwnProperty = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop); +/** + * Returns the names of the enumerable string properties and methods of an object. + * @param obj The object of which the properties shall be returned. + */ +export const keys = (obj) => (obj ? Object.keys(obj) : []); +// https://github.com/jquery/jquery/blob/master/src/core.js#L116 +export const assignDeep = (target, object1, object2, object3, object4, object5, object6) => { + const sources = [object1, object2, object3, object4, object5, object6]; + // Handle case when target is a string or something (possible in deep copy) + if ((typeof target !== 'object' || isNull(target)) && !isFunction(target)) { + target = {}; + } + each(sources, (source) => { + // Extend the base object + each(keys(source), (key) => { + const copy = source[key]; + // Prevent Object.prototype pollution + // Prevent never-ending loop + if (target === copy) { + return true; + } + const copyIsArray = isArray(copy); + // Recurse if we're merging plain objects or arrays + if (copy && (isPlainObject(copy) || copyIsArray)) { + const src = target[key]; + let clone = src; + // Ensure proper type for the source value + if (copyIsArray && !isArray(src)) { + clone = []; + } + else if (!copyIsArray && !isPlainObject(src)) { + clone = {}; + } + // Never move original objects, clone them + target[key] = assignDeep(clone, copy); + } + else { + target[key] = copy; + } + }); + }); + // Return the modified object + return target; +}; +/** + * Returns true if the given object is empty, false otherwise. + * @param obj The Object. + */ +export const isEmptyObject = (obj) => { + /* eslint-disable no-restricted-syntax, guard-for-in */ + for (const name in obj) + return false; + return true; + /* eslint-enable */ +}; +//# sourceMappingURL=object.js.map \ No newline at end of file diff --git a/local/browser-testing/dist/support/utils/object.js.map b/local/browser-testing/dist/support/utils/object.js.map new file mode 100644 index 0000000..7a1b35a --- /dev/null +++ b/local/browser-testing/dist/support/utils/object.js.map @@ -0,0 +1 @@ +{"version":3,"file":"object.js","sourceRoot":"","sources":["../../../src/support/utils/object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACrE,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAQ,EAAE,IAA8B,EAAW,EAAE,CAClF,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAElD;;;GAGG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,GAAQ,EAAiB,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAwB/E,gEAAgE;AAChE,MAAM,CAAC,MAAM,UAAU,GAAe,CACpC,MAAS,EACT,OAAW,EACX,OAAW,EACX,OAAW,EACX,OAAW,EACX,OAAW,EACX,OAAW,EACgB,EAAE;IAC7B,MAAM,OAAO,GAAe,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAEnF,2EAA2E;IAC3E,IAAI,CAAC,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;QACzE,MAAM,GAAG,EAAO,CAAC;KAClB;IAED,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE;QACvB,yBAAyB;QACzB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YACzB,MAAM,IAAI,GAAQ,MAAM,CAAC,GAAG,CAAC,CAAC;YAE9B,qCAAqC;YACrC,4BAA4B;YAC5B,IAAI,MAAM,KAAK,IAAI,EAAE;gBACnB,OAAO,IAAI,CAAC;aACb;YAED,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAElC,mDAAmD;YACnD,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,EAAE;gBAChD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;gBACxB,IAAI,KAAK,GAAQ,GAAG,CAAC;gBAErB,0CAA0C;gBAC1C,IAAI,WAAW,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBAChC,KAAK,GAAG,EAAE,CAAC;iBACZ;qBAAM,IAAI,CAAC,WAAW,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE;oBAC9C,KAAK,GAAG,EAAE,CAAC;iBACZ;gBAED,0CAA0C;gBAC1C,MAAM,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,CAAQ,CAAC;aAC9C;iBAAM;gBACL,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;aACpB;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,6BAA6B;IAC7B,OAAO,MAAa,CAAC;AACvB,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAQ,EAAW,EAAE;IACjD,uDAAuD;IACvD,KAAK,MAAM,IAAI,IAAI,GAAG;QAAE,OAAO,KAAK,CAAC;IACrC,OAAO,IAAI,CAAC;IACZ,mBAAmB;AACrB,CAAC,CAAC"} \ No newline at end of file diff --git a/local/browser-testing/dist/support/utils/types.d.ts b/local/browser-testing/dist/support/utils/types.d.ts new file mode 100644 index 0000000..c9bd274 --- /dev/null +++ b/local/browser-testing/dist/support/utils/types.d.ts @@ -0,0 +1,31 @@ +declare type PlainObject = Record; +export declare const isUndefined: (obj: any) => obj is undefined; +export declare const isNull: (obj: any) => obj is null; +export declare const type: (obj: any) => string; +export declare const isNumber: (obj: any) => obj is number; +export declare const isString: (obj: any) => obj is string; +export declare const isBoolean: (obj: any) => obj is boolean; +export declare const isFunction: (obj: any) => obj is (...args: any[]) => any; +export declare const isArray: (obj: any) => obj is T[]; +export declare const isObject: (obj: any) => boolean; +/** + * Returns true if the given object is array like, false otherwise. + * @param obj The Object + */ +export declare const isArrayLike: = any>(obj: any) => obj is ArrayLike; +/** + * Returns true if the given object is a "plain" (e.g. { key: value }) object, false otherwise. + * @param obj The Object. + */ +export declare const isPlainObject: (obj: any) => obj is PlainObject; +/** + * Checks whether the given object is a HTMLElement. + * @param obj The object which shall be checked. + */ +export declare const isHTMLElement: (obj: any) => obj is HTMLElement; +/** + * Checks whether the given object is a Element. + * @param obj The object which shall be checked. + */ +export declare const isElement: (obj: any) => obj is Element; +export {}; diff --git a/local/browser-testing/dist/support/utils/types.js b/local/browser-testing/dist/support/utils/types.js new file mode 100644 index 0000000..94fa532 --- /dev/null +++ b/local/browser-testing/dist/support/utils/types.js @@ -0,0 +1,77 @@ +const ElementNodeType = Node.ELEMENT_NODE; +const { toString, hasOwnProperty } = Object.prototype; +export const isUndefined = (obj) => obj === undefined; +export const isNull = (obj) => obj === null; +export const type = (obj) => isUndefined(obj) || isNull(obj) + ? `${obj}` + : toString + .call(obj) + .replace(/^\[object (.+)\]$/, '$1') + .toLowerCase(); +export const isNumber = (obj) => typeof obj === 'number'; +export const isString = (obj) => typeof obj === 'string'; +export const isBoolean = (obj) => typeof obj === 'boolean'; +export const isFunction = (obj) => typeof obj === 'function'; +export const isArray = (obj) => Array.isArray(obj); +export const isObject = (obj) => typeof obj === 'object' && !isArray(obj) && !isNull(obj); +/** + * Returns true if the given object is array like, false otherwise. + * @param obj The Object + */ +export const isArrayLike = (obj) => { + const length = !!obj && obj.length; + const lengthCorrectFormat = isNumber(length) && length > -1 && length % 1 == 0; // eslint-disable-line eqeqeq + return isArray(obj) || (!isFunction(obj) && lengthCorrectFormat) + ? length > 0 && isObject(obj) + ? length - 1 in obj + : true + : false; +}; +/** + * Returns true if the given object is a "plain" (e.g. { key: value }) object, false otherwise. + * @param obj The Object. + */ +export const isPlainObject = (obj) => { + if (!obj || !isObject(obj) || type(obj) !== 'object') + return false; + let key; + const cstr = 'constructor'; + const ctor = obj[cstr]; + const ctorProto = ctor && ctor.prototype; + const hasOwnConstructor = hasOwnProperty.call(obj, cstr); + const hasIsPrototypeOf = ctorProto && hasOwnProperty.call(ctorProto, 'isPrototypeOf'); + if (ctor && !hasOwnConstructor && !hasIsPrototypeOf) { + return false; + } + /* eslint-disable no-restricted-syntax */ + for (key in obj) { + /**/ + } + /* eslint-enable */ + return isUndefined(key) || hasOwnProperty.call(obj, key); +}; +/** + * Checks whether the given object is a HTMLElement. + * @param obj The object which shall be checked. + */ +export const isHTMLElement = (obj) => { + const instanceofObj = HTMLElement; + return obj + ? instanceofObj + ? obj instanceof instanceofObj + : obj.nodeType === ElementNodeType + : false; +}; +/** + * Checks whether the given object is a Element. + * @param obj The object which shall be checked. + */ +export const isElement = (obj) => { + const instanceofObj = Element; + return obj + ? instanceofObj + ? obj instanceof instanceofObj + : obj.nodeType === ElementNodeType + : false; +}; +//# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/local/browser-testing/dist/support/utils/types.js.map b/local/browser-testing/dist/support/utils/types.js.map new file mode 100644 index 0000000..fec3f86 --- /dev/null +++ b/local/browser-testing/dist/support/utils/types.js.map @@ -0,0 +1 @@ +{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/support/utils/types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/local/browser-testing/package.json b/local/browser-testing/package.json new file mode 100644 index 0000000..141507e --- /dev/null +++ b/local/browser-testing/package.json @@ -0,0 +1,8 @@ +{ + "private": true, + "name": "browser-testing", + "version": "0.0.0", + "scripts": { + "postinstall": "tsc --project ./tsconfig.json" + } +} diff --git a/local/browser-testing/src/Resize.ts b/local/browser-testing/src/Resize.ts new file mode 100644 index 0000000..d8f13d6 --- /dev/null +++ b/local/browser-testing/src/Resize.ts @@ -0,0 +1,107 @@ +// @ts-ignore +import { + createDiv, + appendChildren, + parent, + style, + on, + off, + addClass, + WH, + XY, + clientSize, + each, +} from './support'; + +type ResizeListener = (width: number, height: number) => void; + +export const resize = (element: HTMLElement) => { + const resizeListeners: ResizeListener[] = []; + const strMouseTouchDownEvent = 'mousedown touchstart'; + const strMouseTouchUpEvent = 'mouseup touchend'; + const strMouseTouchMoveEvent = 'mousemove touchmove'; + const strSelectStartEvent = 'selectstart'; + const dragStartSize: WH = { w: 0, h: 0 }; + const dragStartPosition: XY = { x: 0, y: 0 }; + const resizeBtn = createDiv('resizeBtn'); + appendChildren(element, resizeBtn); + addClass(element, 'resizer'); + + let dragResizeBtn: HTMLElement | undefined; + let dragResizer: HTMLElement | undefined; + + const onSelectStart = (event: Event) => { + event.preventDefault(); + return false; + }; + + const resizerResize = (event: MouseEvent | TouchEvent) => { + const isTouchEvent = (event as TouchEvent).touches !== undefined; + const mouseOffsetHolder = isTouchEvent + ? (event as TouchEvent).touches[0] + : (event as MouseEvent); + + const sizeStyle = { + width: dragStartSize.w + mouseOffsetHolder.pageX - dragStartPosition.x, + height: dragStartSize.h + mouseOffsetHolder.pageY - dragStartPosition.y, + }; + + style(dragResizer, sizeStyle); + + each(resizeListeners, (listener: ResizeListener) => { + if (listener) { + listener(sizeStyle.width, sizeStyle.height); + } + }); + + event.stopPropagation(); + }; + + const resizerResized = () => { + off(document, strSelectStartEvent, onSelectStart); + off(document, strMouseTouchMoveEvent, resizerResize); + off(document, strMouseTouchUpEvent, resizerResized); + + dragResizer = undefined; + dragResizeBtn = undefined; + }; + + on( + resizeBtn, + strMouseTouchDownEvent, + (event: MouseEvent | TouchEvent) => { + const { currentTarget } = event; + const correctButton = (event as MouseEvent).buttons === 1 || event.which === 1; + const isTouchEvent = (event as TouchEvent).touches !== undefined; + const mouseOffsetHolder = isTouchEvent + ? (event as TouchEvent).touches[0] + : (event as MouseEvent); + + if (correctButton || isTouchEvent) { + dragStartPosition.x = mouseOffsetHolder.pageX; + dragStartPosition.y = mouseOffsetHolder.pageY; + + dragResizeBtn = currentTarget as HTMLElement; + dragResizer = parent(currentTarget as HTMLElement) as HTMLElement; + + const cSize = clientSize(element); + dragStartSize.w = cSize.w; + dragStartSize.h = cSize.h; + + on(document, strSelectStartEvent, onSelectStart, { _passive: false }); + on(document, strMouseTouchMoveEvent, resizerResize, { _passive: false }); + on(document, strMouseTouchUpEvent, resizerResized, { _passive: false }); + + event.preventDefault(); + event.stopPropagation(); + } + }, + { _passive: false } + ); + + return { + addResizeListener(listener: ResizeListener) { + resizeListeners.push(listener); + }, + }; +}; diff --git a/local/browser-testing/src/Select.ts b/local/browser-testing/src/Select.ts new file mode 100644 index 0000000..9360823 --- /dev/null +++ b/local/browser-testing/src/Select.ts @@ -0,0 +1,110 @@ +function isEvent(obj: any): obj is Event { + return obj instanceof Event || !!obj.target; +} + +// eslint-disable-next-line +const noop = (): T => { + return {} as T; +}; + +const getSelectOptions = (selectElement: HTMLSelectElement) => + Array.from(selectElement.options).map((option) => option.value); + +export const generateSelectCallback = + ( + targetElms: HTMLElement[] | HTMLElement | null, + callback: ( + targetAffectedElm: HTMLElement, + possibleValues: string[], + selectedValue: string + ) => any + ) => + (event: Event | HTMLSelectElement | null) => { + const target: HTMLSelectElement | null = isEvent(event) + ? (event.target as HTMLSelectElement) + : event; + if (target) { + const selectedOption = target.value; + const selectOptions = getSelectOptions(target); + const elmsArr = Array.isArray(targetElms) ? targetElms : [targetElms]; + + elmsArr.forEach((elm) => { + if (elm) { + callback(elm, selectOptions, selectedOption); + } + }); + } + }; + +export const generateClassChangeSelectCallback = (targetElms: HTMLElement[] | HTMLElement | null) => + generateSelectCallback(targetElms, (targetAffectedElm, possibleValues, selectedValue) => { + possibleValues.forEach((clazz) => targetAffectedElm.classList.remove(clazz)); + targetAffectedElm.classList.add(selectedValue); + }); + +export const selectOption = ( + select: HTMLSelectElement | null, + selectedOption: string | number +): boolean => { + if (!select) { + return false; + } + + const options = getSelectOptions(select); + const currValue = select.value; + + if (selectedOption === currValue) { + return false; + } + + if (typeof selectedOption === 'string' && options.includes(selectedOption)) { + select.value = selectedOption; + } else if ( + typeof selectedOption === 'number' && + options.length < selectedOption && + selectedOption > -1 + ) { + select.selectedIndex = selectedOption; + } + + let event; + if (typeof Event === 'function') { + event = new Event('change'); + } else { + event = document.createEvent('Event'); + event.initEvent('change', true, true); + } + select.dispatchEvent(event); + + return true; +}; + +export const iterateSelect = async ( + select: HTMLSelectElement | null, + options?: { + filter?: (value: string, index: number, array: string[]) => boolean; + beforeEach?: () => T | Promise; + check?: (input: T, selectedOptions: string) => void | Promise; + afterEach?: () => void | Promise; + } +) => { + if (select) { + const { beforeEach = noop, check = noop, afterEach = noop, filter } = options || {}; + const selectOptions = getSelectOptions(select); + const selectOptionsReversed = getSelectOptions(select).reverse(); + const iterateOptions = [...selectOptions, ...selectOptionsReversed].filter( + filter || (() => true) + ); + for (let i = 0; i < iterateOptions.length; i++) { + const option = iterateOptions[i]; + // eslint-disable-next-line + const beforeEachObj: T = await beforeEach(); + if (selectOption(select, option)) { + // eslint-disable-next-line + await check(beforeEachObj, option); + // eslint-disable-next-line + await afterEach(); + } + } + } +}; diff --git a/local/browser-testing/src/TestResult.ts b/local/browser-testing/src/TestResult.ts new file mode 100644 index 0000000..ad9dfee --- /dev/null +++ b/local/browser-testing/src/TestResult.ts @@ -0,0 +1,33 @@ +import { waitFor, waitForOptions } from '@testing-library/dom'; + +const getTestResultElm = () => document.getElementById('testResult'); + +export const setTestResult = (result: boolean | null) => { + const elm = getTestResultElm(); + if (elm) { + if (typeof result === 'boolean') { + if (result) { + if (elm.getAttribute('class') === 'failed') { + return; + } + } + elm.setAttribute('class', result ? 'passed' : 'failed'); + } else { + elm.removeAttribute('class'); + } + } +}; + +export const testPassed = (): boolean => { + const elm = getTestResultElm(); + return elm ? elm.getAttribute('class') === 'passed' : false; +}; + +export const waitForOrFailTest = (callback: () => T | Promise, options?: waitForOptions) => + waitFor(callback, { + ...options, + onTimeout(error: Error): Error { + setTestResult(false); + return error; + }, + }); diff --git a/local/browser-testing/src/Timeout.ts b/local/browser-testing/src/Timeout.ts new file mode 100644 index 0000000..367d172 --- /dev/null +++ b/local/browser-testing/src/Timeout.ts @@ -0,0 +1 @@ +export const timeout = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms)); diff --git a/local/browser-testing/src/index.ts b/local/browser-testing/src/index.ts new file mode 100644 index 0000000..652a3ad --- /dev/null +++ b/local/browser-testing/src/index.ts @@ -0,0 +1,3 @@ +export * from './Select'; +export * from './TestResult'; +export * from './Timeout'; diff --git a/local/browser-testing/src/support/dom/class.ts b/local/browser-testing/src/support/dom/class.ts new file mode 100644 index 0000000..c1b8bb7 --- /dev/null +++ b/local/browser-testing/src/support/dom/class.ts @@ -0,0 +1,79 @@ +import { isString } from '../utils/types'; +import { each } from '../utils/array'; +import { keys } from '../utils/object'; + +type ClassContainingElement = Node | Element | false | null | undefined; +type ClassName = string | false | null | undefined; + +const rnothtmlwhite = /[^\x20\t\r\n\f]+/g; +const classListAction = ( + elm: ClassContainingElement, + className: ClassName, + action: (elmClassList: DOMTokenList, clazz: string) => boolean | void +): boolean => { + const classList = elm && (elm as Element).classList; + let clazz: string; + let i = 0; + let result = false; + + if (classList && className && isString(className)) { + const classes: Array = className.match(rnothtmlwhite) || []; + result = classes.length > 0; + while ((clazz = classes[i++])) { + result = !!action(classList, clazz) && result; + } + } + return result; +}; + +/** + * Check whether the given element has the given class name(s). + * @param elm The element. + * @param className The class name(s). + */ +export const hasClass = (elm: ClassContainingElement, className: ClassName): boolean => + classListAction(elm, className, (classList, clazz) => classList.contains(clazz)); + +/** + * Removes the given class name(s) from the given element. + * @param elm The element. + * @param className The class name(s) which shall be removed. (separated by spaces) + */ +export const removeClass = (elm: ClassContainingElement, className: ClassName): void => { + classListAction(elm, className, (classList, clazz) => classList.remove(clazz)); +}; + +/** + * Adds the given class name(s) to the given element. + * @param elm The element. + * @param className The class name(s) which shall be added. (separated by spaces) + * @returns A function which removes the added class name(s). + */ +export const addClass = (elm: ClassContainingElement, className: ClassName): (() => void) => { + classListAction(elm, className, (classList, clazz) => classList.add(clazz)); + return removeClass.bind(0, elm, className); +}; + +/** + * Takes two className strings, compares them and returns the difference as array. + * @param classNameA ClassName A. + * @param classNameB ClassName B. + */ +export const diffClass = (classNameA: ClassName, classNameB: ClassName) => { + const classNameASplit = classNameA && classNameA.split(' '); + const classNameBSplit = classNameB && classNameB.split(' '); + const tempObj = {}; + + each(classNameASplit, (className) => { + tempObj[className] = 1; + }); + each(classNameBSplit, (className) => { + if (tempObj[className]) { + delete tempObj[className]; + } else { + tempObj[className] = 1; + } + }); + + return keys(tempObj); +}; diff --git a/local/browser-testing/src/support/dom/create.ts b/local/browser-testing/src/support/dom/create.ts new file mode 100644 index 0000000..012edea --- /dev/null +++ b/local/browser-testing/src/support/dom/create.ts @@ -0,0 +1,25 @@ +import { each } from '../utils/array'; +import { contents } from './traversal'; +import { removeElements } from './manipulation'; + +/** + * Creates a div DOM node. + */ +export const createDiv = (classNames?: string): HTMLDivElement => { + const div = document.createElement('div'); + if (classNames) { + div.setAttribute('class', classNames); + } + return div; +}; + +/** + * Creates DOM nodes modeled after the passed html string and returns the root dom nodes as a array. + * @param html The html string after which the DOM nodes shall be created. + */ +export const createDOM = (html: string): ReadonlyArray => { + const createdDiv = createDiv(); + createdDiv.innerHTML = html.trim(); + + return each(contents(createdDiv), (elm) => removeElements(elm)); +}; diff --git a/local/browser-testing/src/support/dom/dimensions.ts b/local/browser-testing/src/support/dom/dimensions.ts new file mode 100644 index 0000000..1cfdf38 --- /dev/null +++ b/local/browser-testing/src/support/dom/dimensions.ts @@ -0,0 +1,68 @@ +export interface WH { + w: T; + h: T; +} + +const elementHasDimensions = (elm: HTMLElement): boolean => + !!(elm.offsetWidth || elm.offsetHeight || elm.getClientRects().length); +const zeroObj: WH = { + w: 0, + h: 0, +}; + +/** + * Returns the window inner- width and height. + */ +export const windowSize = (): WH => ({ + w: window.innerWidth, + h: window.innerHeight, +}); + +/** + * Returns the scroll- width and height of the passed element. If the element is null the width and height values are 0. + * @param elm The element of which the scroll- width and height shall be returned. + */ +export const offsetSize = (elm: HTMLElement | null | undefined): WH => + elm + ? { + w: elm.offsetWidth, + h: elm.offsetHeight, + } + : zeroObj; + +/** + * Returns the client- width and height of the passed element. If the element is null the width and height values are 0. + * @param elm The element of which the client- width and height shall be returned. + */ +export const clientSize = (elm: HTMLElement | false | null | undefined): WH => + elm + ? { + w: elm.clientWidth, + h: elm.clientHeight, + } + : zeroObj; + +/** + * Returns the client- width and height of the passed element. If the element is null the width and height values are 0. + * @param elm The element of which the client- width and height shall be returned. + */ +export const scrollSize = (elm: HTMLElement | false | null | undefined): WH => + elm + ? { + w: elm.scrollWidth, + h: elm.scrollHeight, + } + : zeroObj; + +/** + * Returns the BoundingClientRect of the passed element. + * @param elm The element of which the BoundingClientRect shall be returned. + */ +export const getBoundingClientRect = (elm: HTMLElement): DOMRect => elm.getBoundingClientRect(); + +/** + * Determines whether the passed element has any dimensions. + * @param elm The element. + */ +export const hasDimensions = (elm: HTMLElement | false | null | undefined): boolean => + elm ? elementHasDimensions(elm as HTMLElement) : false; diff --git a/local/browser-testing/src/support/dom/events.ts b/local/browser-testing/src/support/dom/events.ts new file mode 100644 index 0000000..845bdc2 --- /dev/null +++ b/local/browser-testing/src/support/dom/events.ts @@ -0,0 +1,110 @@ +import { isUndefined } from '../utils/types'; +import { each, push, runEachAndClear } from '../utils/array'; + +let passiveEventsSupport: boolean; +const supportPassiveEvents = (): boolean => { + if (isUndefined(passiveEventsSupport)) { + passiveEventsSupport = false; + try { + /* eslint-disable */ + // @ts-ignore + window.addEventListener( + 'test', + null, + Object.defineProperty({}, 'passive', { + get() { + passiveEventsSupport = true; + }, + }) + ); + /* eslint-enable */ + } catch (e) {} + } + return passiveEventsSupport; +}; +const splitEventNames = (eventNames: string) => eventNames.split(' '); + +export interface OnOptions { + _capture?: boolean; + _passive?: boolean; + _once?: boolean; +} + +/** + * Removes the passed event listener for the passed events with the passed options. + * @param target The element from which the listener shall be removed. + * @param eventNames The eventsnames for which the listener shall be removed. + * @param listener The listener which shall be removed. + * @param capture The options of the removed listener. + */ +export const off = ( + target: EventTarget, + eventNames: string, + listener: (event: T) => any, + capture?: boolean +): void => { + each(splitEventNames(eventNames), (eventName) => { + target.removeEventListener(eventName, listener as EventListener, capture); + }); +}; + +/** + * Adds the passed event listener for the passed eventnames with the passed options. + * @param target The element to which the listener shall be added. + * @param eventNames The eventsnames for which the listener shall be called. + * @param listener The listener which is called on the eventnames. + * @param options The options of the added listener. + */ +export const on = ( + target: EventTarget, + eventNames: string, + listener: (event: T) => any, + options?: OnOptions +): (() => void) => { + const doSupportPassiveEvents = supportPassiveEvents(); + const passive = (doSupportPassiveEvents && options && options._passive) ?? doSupportPassiveEvents; + const capture = (options && options._capture) || false; + const once = (options && options._once) || false; + const offListeners: (() => void)[] = []; + const nativeOptions: AddEventListenerOptions | boolean = doSupportPassiveEvents + ? { + passive, + capture, + } + : capture; + + each(splitEventNames(eventNames), (eventName) => { + const finalListener = ( + once + ? (evt: T) => { + target.removeEventListener(eventName, finalListener, capture); + listener && listener(evt); + } + : listener + ) as EventListener; + + push(offListeners, off.bind(null, target, eventName, finalListener, capture)); + target.addEventListener(eventName, finalListener, nativeOptions); + }); + + return runEachAndClear.bind(0, offListeners); +}; + +/** + * Shorthand for the stopPropagation event Method. + * @param evt The event of which the stopPropagation method shall be called. + */ +export const stopPropagation = (evt: Event): void => evt.stopPropagation(); + +/** + * Shorthand for the preventDefault event Method. + * @param evt The event of which the preventDefault method shall be called. + */ +export const preventDefault = (evt: Event): void => evt.preventDefault(); + +/** + * Shorthand for the stopPropagation and preventDefault event Method. + * @param evt The event of which the stopPropagation and preventDefault methods shall be called. + */ +export const stopAndPrevent = (evt: Event): void => + (stopPropagation(evt) as undefined) || (preventDefault(evt) as undefined); diff --git a/local/browser-testing/src/support/dom/index.ts b/local/browser-testing/src/support/dom/index.ts new file mode 100644 index 0000000..c298aa6 --- /dev/null +++ b/local/browser-testing/src/support/dom/index.ts @@ -0,0 +1,8 @@ +export * from './class'; +export * from './create'; +export * from './dimensions'; +export * from './events'; +export * from './style'; +export * from './manipulation'; +export * from './offset'; +export * from './traversal'; diff --git a/local/browser-testing/src/support/dom/manipulation.ts b/local/browser-testing/src/support/dom/manipulation.ts new file mode 100644 index 0000000..bb48866 --- /dev/null +++ b/local/browser-testing/src/support/dom/manipulation.ts @@ -0,0 +1,110 @@ +import { isArrayLike } from '../utils/types'; +import { each, from } from '../utils/array'; +import { parent } from './traversal'; + +type NodeCollection = ArrayLike | Node | false | null | undefined; + +/** + * Inserts Nodes before the given preferredAnchor element. + * @param parentElm The parent of the preferredAnchor element or the element which shall be the parent of the inserted Nodes. + * @param preferredAnchor The element before which the Nodes shall be inserted or null if the elements shall be appended at the end. + * @param insertedElms The Nodes which shall be inserted. + */ +const before = ( + parentElm: Node | false | null | undefined, + preferredAnchor: Node | false | null | undefined, + insertedElms: NodeCollection +): void => { + if (insertedElms && parentElm) { + let anchor: Node | false | null | undefined = preferredAnchor; + let fragment: DocumentFragment | Node | null | undefined; + + if (isArrayLike(insertedElms)) { + fragment = document.createDocumentFragment(); + + // append all insertedElms to the fragment and if one of these is the anchor, change the anchor + each(insertedElms, (insertedElm) => { + if (insertedElm === anchor) { + anchor = insertedElm.previousSibling; + } + fragment!.appendChild(insertedElm); + }); + } else { + fragment = insertedElms; + } + + // if the preferred anchor isn't null set it to a valid anchor + if (preferredAnchor) { + if (!anchor) { + anchor = parentElm.firstChild; + } else if (anchor !== preferredAnchor) { + anchor = anchor.nextSibling; + } + } + + parentElm.insertBefore(fragment, anchor || null); + } +}; + +/** + * Appends the given children at the end of the given Node. + * @param node The Node to which the children shall be appended. + * @param children The Nodes which shall be appended. + */ +export const appendChildren = ( + node: Node | false | null | undefined, + children: NodeCollection +): void => { + before(node, null, children); +}; + +/** + * Prepends the given children at the start of the given Node. + * @param node The Node to which the children shall be prepended. + * @param children The Nodes which shall be prepended. + */ +export const prependChildren = ( + node: Node | false | null | undefined, + children: NodeCollection +): void => { + before(node, node && node.firstChild, children); +}; + +/** + * Inserts the given Nodes before the given Node. + * @param node The Node before which the given Nodes shall be inserted. + * @param insertedNodes The Nodes which shall be inserted. + */ +export const insertBefore = ( + node: Node | false | null | undefined, + insertedNodes: NodeCollection +): void => { + before(parent(node), node, insertedNodes); +}; + +/** + * Inserts the given Nodes after the given Node. + * @param node The Node after which the given Nodes shall be inserted. + * @param insertedNodes The Nodes which shall be inserted. + */ +export const insertAfter = ( + node: Node | false | null | undefined, + insertedNodes: NodeCollection +): void => { + before(parent(node), node && node.nextSibling, insertedNodes); +}; + +/** + * Removes the given Nodes from their parent. + * @param nodes The Nodes which shall be removed. + */ +export const removeElements = (nodes: NodeCollection): void => { + if (isArrayLike(nodes)) { + each(from(nodes), (e) => removeElements(e)); + } else if (nodes) { + const parentElm = parent(nodes); + if (parentElm) { + parentElm.removeChild(nodes); + } + } +}; diff --git a/local/browser-testing/src/support/dom/offset.ts b/local/browser-testing/src/support/dom/offset.ts new file mode 100644 index 0000000..4c94902 --- /dev/null +++ b/local/browser-testing/src/support/dom/offset.ts @@ -0,0 +1,37 @@ +import { getBoundingClientRect } from './dimensions'; + +export interface XY { + x: T; + y: T; +} + +const zeroObj: XY = { + x: 0, + y: 0, +}; + +/** + * Returns the offset- left and top coordinates of the passed element relative to the document. If the element is null the top and left values are 0. + * @param elm The element of which the offset- top and left coordinates shall be returned. + */ +export const absoluteCoordinates = (elm: HTMLElement | null | undefined): XY => { + const rect = elm ? getBoundingClientRect(elm) : 0; + return rect + ? { + x: rect.left + window.pageYOffset, + y: rect.top + window.pageXOffset, + } + : zeroObj; +}; + +/** + * Returns the offset- left and top coordinates of the passed element. If the element is null the top and left values are 0. + * @param elm The element of which the offset- top and left coordinates shall be returned. + */ +export const offsetCoordinates = (elm: HTMLElement | null | undefined): XY => + elm + ? { + x: elm.offsetLeft, + y: elm.offsetTop, + } + : zeroObj; diff --git a/local/browser-testing/src/support/dom/style.ts b/local/browser-testing/src/support/dom/style.ts new file mode 100644 index 0000000..c78bed6 --- /dev/null +++ b/local/browser-testing/src/support/dom/style.ts @@ -0,0 +1,141 @@ +import { each, keys } from '../utils'; +import { isString, isNumber, isArray, isUndefined } from '../utils/types'; + +export interface TRBL { + t: number; + r: number; + b: number; + l: number; +} + +type StyleObject = { + [Key in keyof CSSStyleDeclaration | (CustomCssProps extends string ? CustomCssProps : '')]?: + | string + | number; +}; + +const cssNumber = { + // animationiterationcount: 1, + // columncount: 1, + // fillopacity: 1, + // flexgrow: 1, + // flexshrink: 1, + // fontweight: 1, + // lineheight: 1, + // order: 1, + // orphans: 1, + // widows: 1, + // zoom: 1, + opacity: 1, + zindex: 1, +}; + +const parseToZeroOrNumber = (value: string, toFloat?: boolean): number => { + /* istanbul ignore next */ + const num = toFloat ? parseFloat(value) : parseInt(value, 10); + // num === num means num is not NaN + /* istanbul ignore next */ + return num === num ? num : 0; // eslint-disable-line no-self-compare +}; + +const adaptCSSVal = (prop: string, val: string | number): string | number => + !cssNumber[prop.toLowerCase()] && isNumber(val) ? `${val}px` : val; + +const getCSSVal = (elm: HTMLElement, computedStyle: CSSStyleDeclaration, prop: string): string => + /* istanbul ignore next */ + computedStyle != null + ? computedStyle[prop] || computedStyle.getPropertyValue(prop) + : elm.style[prop]; + +const setCSSVal = (elm: HTMLElement, prop: string, val: string | number): void => { + try { + const { style: elmStyle } = elm; + if (!isUndefined(elmStyle[prop])) { + elmStyle[prop] = adaptCSSVal(prop, val); + } else { + elmStyle.setProperty(prop, val as string); + } + } catch (e) {} +}; + +/** + * Gets or sets the passed styles to the passed element. + * @param elm The element to which the styles shall be applied to / be read from. + * @param styles The styles which shall be set or read. + */ +export function style( + elm: HTMLElement | false | null | undefined, + styles: StyleObject +): void; +export function style( + elm: HTMLElement | false | null | undefined, + styles: string +): string; +export function style( + elm: HTMLElement | false | null | undefined, + styles: Array | string +): { [key: string]: string }; +export function style( + elm: HTMLElement | false | null | undefined, + styles: StyleObject | Array | string +): { [key: string]: string } | string | void { + const getSingleStyle = isString(styles); + const getStyles = isArray(styles) || getSingleStyle; + + if (getStyles) { + let getStylesResult: string | Record = getSingleStyle ? '' : {}; + if (elm) { + const computedStyle: CSSStyleDeclaration = window.getComputedStyle(elm, null); + getStylesResult = getSingleStyle + ? getCSSVal(elm, computedStyle, styles as string) + : (styles as Array).reduce((result, key) => { + result[key] = getCSSVal(elm, computedStyle, key as string); + return result; + }, getStylesResult); + } + return getStylesResult; + } + elm && each(keys(styles), (key) => setCSSVal(elm, key, styles[key])); +} + +/** + * Hides the passed element (display: none). + * @param elm The element which shall be hidden. + */ +export const hide = (elm: HTMLElement | false | null | undefined): void => { + style(elm, { display: 'none' }); +}; + +/** + * Shows the passed element (display: block). + * @param elm The element which shall be shown. + */ +export const show = (elm: HTMLElement | false | null | undefined): void => { + style(elm, { display: 'block' }); +}; + +/** + * Returns the top right bottom left values of the passed css property. + * @param elm The element of which the values shall be returned. + * @param propertyPrefix The css property prefix. (e.g. "border") + * @param propertySuffix The css property suffix. (e.g. "width") + */ +export const topRightBottomLeft = ( + elm?: HTMLElement | false | null | undefined, + propertyPrefix?: string, + propertySuffix?: string +): TRBL => { + const finalPrefix = propertyPrefix ? `${propertyPrefix}-` : ''; + const finalSuffix = propertySuffix ? `-${propertySuffix}` : ''; + const top = `${finalPrefix}top${finalSuffix}`; + const right = `${finalPrefix}right${finalSuffix}`; + const bottom = `${finalPrefix}bottom${finalSuffix}`; + const left = `${finalPrefix}left${finalSuffix}`; + const result = style(elm, [top, right, bottom, left]); + return { + t: parseToZeroOrNumber(result[top]), + r: parseToZeroOrNumber(result[right]), + b: parseToZeroOrNumber(result[bottom]), + l: parseToZeroOrNumber(result[left]), + }; +}; diff --git a/local/browser-testing/src/support/dom/traversal.ts b/local/browser-testing/src/support/dom/traversal.ts new file mode 100644 index 0000000..df1c7f7 --- /dev/null +++ b/local/browser-testing/src/support/dom/traversal.ts @@ -0,0 +1,120 @@ +import { isElement } from '../utils/types'; +import { push, from } from '../utils/array'; + +type InputElementType = Node | Element | Node | false | null | undefined; +type OutputElementType = Node | Element | null; + +const elmPrototype = Element.prototype; + +/** + * Find all elements with the passed selector, outgoing (and including) the passed element or the document if no element was provided. + * @param selector The selector which has to be searched by. + * @param elm The element from which the search shall be outgoing. + */ +const find = (selector: string, elm?: InputElementType): Element[] => { + const arr: Array = []; + const rootElm = elm ? (isElement(elm) ? elm : null) : document; + + return rootElm ? push(arr, rootElm.querySelectorAll(selector)) : arr; +}; + +/** + * Find the first element with the passed selector, outgoing (and including) the passed element or the document if no element was provided. + * @param selector The selector which has to be searched by. + * @param elm The element from which the search shall be outgoing. + */ +const findFirst = (selector: string, elm?: InputElementType): OutputElementType => { + const rootElm = elm ? (isElement(elm) ? elm : null) : document; + + return rootElm ? rootElm.querySelector(selector) : null; +}; + +/** + * Determines whether the passed element is matching with the passed selector. + * @param elm The element which has to be compared with the passed selector. + * @param selector The selector which has to be compared with the passed element. Additional selectors: ':visible' and ':hidden'. + */ +const is = (elm: InputElementType, selector: string): boolean => { + if (isElement(elm)) { + /* istanbul ignore next */ + // eslint-disable-next-line + // @ts-ignore + const fn: (...args: any) => boolean = elmPrototype.matches || elmPrototype.msMatchesSelector; + return fn.call(elm, selector); + } + return false; +}; + +/** + * Returns the children (no text-nodes or comments) of the passed element which are matching the passed selector. An empty array is returned if the passed element is null. + * @param elm The element of which the children shall be returned. + * @param selector The selector which must match with the children elements. + */ +const children = (elm: InputElementType, selector?: string): ReadonlyArray => { + const childs: Array = []; + + return isElement(elm) + ? push( + childs, + from(elm.children).filter((child) => (selector ? is(child, selector) : child)) + ) + : childs; +}; + +/** + * Returns the childNodes (incl. text-nodes or comments etc.) of the passed element. An empty array is returned if the passed element is null. + * @param elm The element of which the childNodes shall be returned. + */ +const contents = (elm: InputElementType): ReadonlyArray => + elm ? from(elm.childNodes) : []; + +/** + * Returns the parent element of the passed element, or null if the passed element is null. + * @param elm The element of which the parent element shall be returned. + */ +const parent = (elm: InputElementType): OutputElementType => (elm ? elm.parentElement : null); + +const closest = (elm: InputElementType, selector: string): OutputElementType => { + if (isElement(elm)) { + const closestFn = elmPrototype.closest; + if (closestFn) { + return closestFn.call(elm, selector); + } + + do { + if (is(elm, selector)) { + return elm as Element; + } + elm = parent(elm); + } while (elm); + } + + return null; +}; + +/** + * Determines whether the given element lies between two selectors in the DOM. + * @param elm The element. + * @param highBoundarySelector The high boundary selector. + * @param deepBoundarySelector The deep boundary selector. + */ +const liesBetween = ( + elm: InputElementType, + highBoundarySelector: string, + deepBoundarySelector: string +): boolean => { + const closestHighBoundaryElm = elm && closest(elm, highBoundarySelector); + const closestDeepBoundaryElm = elm && findFirst(deepBoundarySelector, closestHighBoundaryElm); + const deepBoundaryIsValid = + closest(closestDeepBoundaryElm, highBoundarySelector) === closestHighBoundaryElm; + + return closestHighBoundaryElm && closestDeepBoundaryElm + ? closestHighBoundaryElm === elm || + closestDeepBoundaryElm === elm || + (deepBoundaryIsValid && + closest(closest(elm, deepBoundarySelector), highBoundarySelector) !== + closestHighBoundaryElm) + : false; +}; + +export { find, findFirst, is, children, contents, parent, liesBetween, closest }; diff --git a/local/browser-testing/src/support/index.ts b/local/browser-testing/src/support/index.ts new file mode 100644 index 0000000..f20e8e8 --- /dev/null +++ b/local/browser-testing/src/support/index.ts @@ -0,0 +1,2 @@ +export * from './dom'; +export * from './utils'; diff --git a/local/browser-testing/src/support/utils/array.ts b/local/browser-testing/src/support/utils/array.ts new file mode 100644 index 0000000..bd6476e --- /dev/null +++ b/local/browser-testing/src/support/utils/array.ts @@ -0,0 +1,118 @@ +import { isArrayLike, isString } from './types'; + +type PlainObject = Record; + +type RunEachItem = ((...args: any) => any | any[]) | null | undefined; + +/** + * Iterates through a array or object + * @param arrayLikeOrObject The array or object through which shall be iterated. + * @param callback The function which is responsible for the iteration. + * If the function returns true its treated like a "continue" statement. + * If the function returns false its treated like a "break" statement. + */ +export function each( + array: Array | ReadonlyArray, + callback: (value: T, indexOrKey: number, source: Array) => boolean | unknown +): Array | ReadonlyArray; +export function each( + array: Array | ReadonlyArray | false | null | undefined, + callback: (value: T, indexOrKey: number, source: Array) => boolean | unknown +): Array | ReadonlyArray | false | null | undefined; +export function each( + arrayLikeObject: ArrayLike, + callback: (value: T, indexOrKey: number, source: ArrayLike) => boolean | unknown +): ArrayLike; +export function each( + arrayLikeObject: ArrayLike | false | null | undefined, + callback: (value: T, indexOrKey: number, source: ArrayLike) => boolean | unknown +): ArrayLike | false | null | undefined; +export function each( + obj: PlainObject, + callback: (value: any, indexOrKey: string, source: PlainObject) => boolean | unknown +): PlainObject; +export function each( + obj: PlainObject | false | null | undefined, + callback: (value: any, indexOrKey: string, source: PlainObject) => boolean | unknown +): PlainObject | false | null | undefined; +export function each( + source: Array | ArrayLike | ReadonlyArray | PlainObject | false | null | undefined, + callback: (value: T, indexOrKey: any, source: any) => boolean | unknown +): Array | ArrayLike | ReadonlyArray | PlainObject | false | null | undefined { + if (isArrayLike(source)) { + for (let i = 0; i < source.length; i++) { + if (callback(source[i], i, source) === false) { + break; + } + } + } else if (source) { + each(Object.keys(source), (key) => callback(source[key], key, source)); + } + return source; +} + +/** + * Returns the index of the given inside the given array or -1 if the given item isn't part of the given array. + * @param arr The array. + * @param item The item. + * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0. + */ +export const indexOf = (arr: T[], item: T, fromIndex?: number): number => + arr.indexOf(item, fromIndex); + +/** + * Pushesh all given items into the given array and returns it. + * @param array The array the items shall be pushed into. + * @param items The items which shall be pushed into the array. + */ +export const push = (array: T[], items: T | ArrayLike, arrayIsSingleItem?: boolean): T[] => { + !arrayIsSingleItem && !isString(items) && isArrayLike(items) + ? Array.prototype.push.apply(array, items as T[]) + : array.push(items as T); + return array; +}; + +/** + * Creates a shallow-copied Array instance from an array-like or iterable object. + * @param arr The object from which the array instance shall be created. + */ +export const from = (arr?: ArrayLike | Set) => { + const original = Array.from; + const result: T[] = []; + + if (original && arr) { + return original(arr); + } + + if (arr instanceof Set) { + arr.forEach((value) => { + push(result, value); + }); + } else { + each(arr, (elm) => { + push(result, elm); + }); + } + + return result; +}; + +/** + * Check whether the passed array is empty. + * @param array The array which shall be checked. + */ +export const isEmptyArray = (array: any[] | null | undefined): boolean => + !!array && array.length === 0; + +/** + * Calls all functions in the passed array/set of functions. + * @param arr The array filled with function which shall be called. + * @param args The args with which each function is called. + * @param keep True when the Set / array should not be cleared afterwards, false otherwise. + */ +export const runEachAndClear = (arr: RunEachItem[], args?: any[], keep?: boolean): void => { + // eslint-disable-next-line prefer-spread + const runFn = (fn: RunEachItem) => fn && fn.apply(undefined, args || []); + each(arr, runFn); + !keep && ((arr as any[]).length = 0); +}; diff --git a/local/browser-testing/src/support/utils/index.ts b/local/browser-testing/src/support/utils/index.ts new file mode 100644 index 0000000..f1efd7b --- /dev/null +++ b/local/browser-testing/src/support/utils/index.ts @@ -0,0 +1,3 @@ +export * from './array'; +export * from './object'; +export * from './types'; diff --git a/local/browser-testing/src/support/utils/object.ts b/local/browser-testing/src/support/utils/object.ts new file mode 100644 index 0000000..7c55567 --- /dev/null +++ b/local/browser-testing/src/support/utils/object.ts @@ -0,0 +1,103 @@ +import { isArray, isFunction, isPlainObject, isNull } from './types'; +import { each } from './array'; + +/** + * Determines whether the passed object has a property with the passed name. + * @param obj The object. + * @param prop The name of the property. + */ +export const hasOwnProperty = (obj: any, prop: string | number | symbol): boolean => + Object.prototype.hasOwnProperty.call(obj, prop); + +/** + * Returns the names of the enumerable string properties and methods of an object. + * @param obj The object of which the properties shall be returned. + */ +export const keys = (obj: any): Array => (obj ? Object.keys(obj) : []); + +type AssignDeep = { + (target: T, object1: U): T & U; + (target: T, object1: U, object2: V): T & U & V; + (target: T, object1: U, object2: V, object3: W): T & U & V & W; + (target: T, object1: U, object2: V, object3: W, object4: X): T & U & V & W & X; + (target: T, object1: U, object2: V, object3: W, object4: X, object5: Y): T & + U & + V & + W & + X & + Y; + ( + target: T, + object1?: U, + object2?: V, + object3?: W, + object4?: X, + object5?: Y, + object6?: Z + ): T & U & V & W & X & Y & Z; +}; + +// https://github.com/jquery/jquery/blob/master/src/core.js#L116 +export const assignDeep: AssignDeep = ( + target: T, + object1?: U, + object2?: V, + object3?: W, + object4?: X, + object5?: Y, + object6?: Z +): T & U & V & W & X & Y & Z => { + const sources: Array = [object1, object2, object3, object4, object5, object6]; + + // Handle case when target is a string or something (possible in deep copy) + if ((typeof target !== 'object' || isNull(target)) && !isFunction(target)) { + target = {} as T; + } + + each(sources, (source) => { + // Extend the base object + each(keys(source), (key) => { + const copy: any = source[key]; + + // Prevent Object.prototype pollution + // Prevent never-ending loop + if (target === copy) { + return true; + } + + const copyIsArray = isArray(copy); + + // Recurse if we're merging plain objects or arrays + if (copy && (isPlainObject(copy) || copyIsArray)) { + const src = target[key]; + let clone: any = src; + + // Ensure proper type for the source value + if (copyIsArray && !isArray(src)) { + clone = []; + } else if (!copyIsArray && !isPlainObject(src)) { + clone = {}; + } + + // Never move original objects, clone them + target[key] = assignDeep(clone, copy) as any; + } else { + target[key] = copy; + } + }); + }); + + // Return the modified object + return target as any; +}; + +/** + * Returns true if the given object is empty, false otherwise. + * @param obj The Object. + */ +export const isEmptyObject = (obj: any): boolean => { + /* eslint-disable no-restricted-syntax, guard-for-in */ + for (const name in obj) return false; + return true; + /* eslint-enable */ +}; diff --git a/local/browser-testing/src/support/utils/types.ts b/local/browser-testing/src/support/utils/types.ts new file mode 100644 index 0000000..465f0d6 --- /dev/null +++ b/local/browser-testing/src/support/utils/types.ts @@ -0,0 +1,97 @@ +type PlainObject = Record; + +const ElementNodeType = Node.ELEMENT_NODE; +const { toString, hasOwnProperty } = Object.prototype; + +export const isUndefined = (obj: any): obj is undefined => obj === undefined; + +export const isNull = (obj: any): obj is null => obj === null; + +export const type = (obj: any): string => + isUndefined(obj) || isNull(obj) + ? `${obj}` + : toString + .call(obj) + .replace(/^\[object (.+)\]$/, '$1') + .toLowerCase(); + +export const isNumber = (obj: any): obj is number => typeof obj === 'number'; + +export const isString = (obj: any): obj is string => typeof obj === 'string'; + +export const isBoolean = (obj: any): obj is boolean => typeof obj === 'boolean'; + +export const isFunction = (obj: any): obj is (...args: any[]) => any => typeof obj === 'function'; + +export const isArray = (obj: any): obj is Array => Array.isArray(obj); + +export const isObject = (obj: any): boolean => + typeof obj === 'object' && !isArray(obj) && !isNull(obj); + +/** + * Returns true if the given object is array like, false otherwise. + * @param obj The Object + */ +export const isArrayLike = (obj: any): obj is ArrayLike => { + const length = !!obj && obj.length; + const lengthCorrectFormat = isNumber(length) && length > -1 && length % 1 == 0; // eslint-disable-line eqeqeq + + return isArray(obj) || (!isFunction(obj) && lengthCorrectFormat) + ? length > 0 && isObject(obj) + ? length - 1 in obj + : true + : false; +}; + +/** + * Returns true if the given object is a "plain" (e.g. { key: value }) object, false otherwise. + * @param obj The Object. + */ +export const isPlainObject = (obj: any): obj is PlainObject => { + if (!obj || !isObject(obj) || type(obj) !== 'object') return false; + + let key; + const cstr = 'constructor'; + const ctor = obj[cstr]; + const ctorProto = ctor && ctor.prototype; + const hasOwnConstructor = hasOwnProperty.call(obj, cstr); + const hasIsPrototypeOf = ctorProto && hasOwnProperty.call(ctorProto, 'isPrototypeOf'); + + if (ctor && !hasOwnConstructor && !hasIsPrototypeOf) { + return false; + } + + /* eslint-disable no-restricted-syntax */ + for (key in obj) { + /**/ + } + /* eslint-enable */ + + return isUndefined(key) || hasOwnProperty.call(obj, key); +}; + +/** + * Checks whether the given object is a HTMLElement. + * @param obj The object which shall be checked. + */ +export const isHTMLElement = (obj: any): obj is HTMLElement => { + const instanceofObj = HTMLElement; + return obj + ? instanceofObj + ? obj instanceof instanceofObj + : obj.nodeType === ElementNodeType + : false; +}; + +/** + * Checks whether the given object is a Element. + * @param obj The object which shall be checked. + */ +export const isElement = (obj: any): obj is Element => { + const instanceofObj = Element; + return obj + ? instanceofObj + ? obj instanceof instanceofObj + : obj.nodeType === ElementNodeType + : false; +}; diff --git a/local/browser-testing/tsconfig.json b/local/browser-testing/tsconfig.json new file mode 100644 index 0000000..1445090 --- /dev/null +++ b/local/browser-testing/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "@local/tsconfig", + "compilerOptions": { + "outDir": "./dist/", + "baseUrl": "./src/", + "paths": { + "@/overlayscrollbars*": ["../../../packages/overlayscrollbars/src*"] + } + } +} diff --git a/local/config/package.json b/local/config/package.json new file mode 100644 index 0000000..e553b1f --- /dev/null +++ b/local/config/package.json @@ -0,0 +1,11 @@ +{ + "private": true, + "name": "@local/config", + "exports": { + "./resolve": "./src/resolve.json", + "./playwright": "./src/playwright.js", + "./jest": "./src/jest.js", + "./babel": "./src/babel.js" + }, + "version": "0.0.0" +} diff --git a/babel.config.base.js b/local/config/src/babel.js similarity index 100% rename from babel.config.base.js rename to local/config/src/babel.js diff --git a/jest.config.base.js b/local/config/src/jest.js similarity index 80% rename from jest.config.base.js rename to local/config/src/jest.js index d03a6b1..b627aac 100644 --- a/jest.config.base.js +++ b/local/config/src/jest.js @@ -1,5 +1,5 @@ const path = require('path'); -const resolve = require('./resolve.config'); +const resolve = require('./resolve'); // For a detailed explanation regarding each configuration property, visit: // https://jestjs.io/docs/en/configuration.html @@ -12,6 +12,6 @@ module.exports = { moduleFileExtensions: resolve.extensions.map((ext) => ext.replace(/\./, '')), testPathIgnorePatterns: ['\\\\node_modules\\\\'], displayName: 'jest', - setupFilesAfterEnv: [path.resolve(__dirname, './config/jest/jest.setup.js')], + setupFilesAfterEnv: [path.resolve(__dirname, './jest.setup.js')], testMatch: ['**/tests/jest/**/*.test.[jt]s?(x)'], }; diff --git a/config/jest/jest.setup.js b/local/config/src/jest.setup.js similarity index 100% rename from config/jest/jest.setup.js rename to local/config/src/jest.setup.js diff --git a/playwright.config.base.js b/local/config/src/playwright.js similarity index 100% rename from playwright.config.base.js rename to local/config/src/playwright.js diff --git a/resolve.config.json b/local/config/src/resolve.json similarity index 100% rename from resolve.config.json rename to local/config/src/resolve.json diff --git a/local/playwright-tooling/index.d.ts b/local/playwright-tooling/index.d.ts new file mode 100644 index 0000000..0abf798 --- /dev/null +++ b/local/playwright-tooling/index.d.ts @@ -0,0 +1,4 @@ +declare module '@local/playwright-tooling' { + export function playwrightRollup(): void; + export function expectSuccess(page: any): void; +} \ No newline at end of file diff --git a/local/playwright-tooling/package.json b/local/playwright-tooling/package.json new file mode 100644 index 0000000..8424669 --- /dev/null +++ b/local/playwright-tooling/package.json @@ -0,0 +1,7 @@ +{ + "private": true, + "name": "@local/playwright-tooling", + "main": "./src/index.js", + "types": "index.d.ts", + "version": "0.0.0" +} diff --git a/config/playwright/collectCoverage.js b/local/playwright-tooling/src/coverage.js similarity index 93% rename from config/playwright/collectCoverage.js rename to local/playwright-tooling/src/coverage.js index 2ed7237..b871262 100644 --- a/config/playwright/collectCoverage.js +++ b/local/playwright-tooling/src/coverage.js @@ -6,7 +6,6 @@ const v8toIstanbul = require('v8-to-istanbul'); const tmpCoveragePath = './.coverage/.nycPlaywright'; const reportDir = './.coverage/playwright'; - module.exports = { collectCoverage: async (coverageOutputDir, sourceDir, coverage, testfile) => { // eslint-disable-next-line no-restricted-syntax @@ -37,7 +36,7 @@ module.exports = { } }); - execSync(`nyc report --reporter=lcov --reporter=text --report-dir=${reportDir} --temp-dir=${tmpCoveragePath}`, {stdio:'inherit' }); + execSync(`nyc report --reporter=lcov --reporter=text --reporter=clover --reporter=json --report-dir=${reportDir} --temp-dir=${tmpCoveragePath}`, {stdio:'inherit' }); fs.rmSync(tmpCoveragePath, { recursive: true }); } } diff --git a/local/playwright-tooling/src/expectSuccess.js b/local/playwright-tooling/src/expectSuccess.js new file mode 100644 index 0000000..ceb1571 --- /dev/null +++ b/local/playwright-tooling/src/expectSuccess.js @@ -0,0 +1,8 @@ +const { expect } = require('@playwright/test'); + +const resultSelector = '#testResult'; + +module.exports = async (page) => { + await page.locator(resultSelector).waitFor({ state: 'visible', timeout: 10 * 60 * 1000 }); // 10mins + await expect(page.locator(resultSelector)).toHaveClass('passed', { timeout: 500 }); +} \ No newline at end of file diff --git a/local/playwright-tooling/src/index.js b/local/playwright-tooling/src/index.js new file mode 100644 index 0000000..4638907 --- /dev/null +++ b/local/playwright-tooling/src/index.js @@ -0,0 +1,7 @@ +const playwrightRollup = require('./playwrightRollup'); +const expectSuccess = require('./expectSuccess'); + +module.exports = { + playwrightRollup, + expectSuccess, +}; diff --git a/local/playwright-tooling/src/playwrightRollup.js b/local/playwright-tooling/src/playwrightRollup.js new file mode 100644 index 0000000..71425e6 --- /dev/null +++ b/local/playwright-tooling/src/playwrightRollup.js @@ -0,0 +1,82 @@ +const { dirname } = require('path'); +const { rollup, watch: rollupWatch } = require('rollup'); +const { test } = require('@playwright/test'); +const createPlaywrightRollupConfig = require('@local/rollup/playwright'); +const { collectCoverage } = require('./coverage'); + +const createRollupBundle = async (testDir, watch = false) => { + let server; + const onListening = (srv) => { + server = srv; + }; + const config = await createPlaywrightRollupConfig(testDir, 'dev', onListening); + + if (watch) { + const watcher = rollupWatch(config); + let outputPath = ''; + // eslint-disable-next-line no-await-in-loop + await new Promise((resolve) => { + watcher.on('event', ({ code, error, result, output }) => { + if (code === 'ERROR') { + console.log('Error:', error); // eslint-disable-line + } + if (code === 'BUNDLE_END') { + outputPath = output[0]; + if (result && result.close) { + result.close(); + } + } + if (code === 'END') { + /* + console.log('Watching for changes, press ENTER to continue.'); // eslint-disable-line + console.log(''); // eslint-disable-line + */ + resolve(); + } + }); + }); + + const { address, port } = server.address(); + return { + url: `${address}:${port}`, + output: outputPath, + close: () => { + server.close(); + watcher.close(); + }, + }; + } + + const bundle = await rollup(config); + await bundle.write(config.output); +}; + +module.exports = () => { + const originalCwd = process.cwd(); + let url; + let close; + let output; + + // eslint-disable-next-line no-empty-pattern + test.beforeAll(async ({}, { file }) => { + ({ close, url, output } = await createRollupBundle(dirname(file), true)); + }); + + test.beforeEach(async ({ page, browserName }) => { + await page.goto(url); + if (browserName === 'chromium') { + await page.coverage.startJSCoverage(); + } + }); + + test.afterEach(async ({ page, browserName }, { file }) => { + if (browserName === 'chromium') { + const coverage = await page.coverage.stopJSCoverage(); + await collectCoverage(originalCwd, dirname(output), coverage, file); + } + }); + + test.afterAll(() => { + close(); + }); +}; \ No newline at end of file diff --git a/local/rollup/package.json b/local/rollup/package.json new file mode 100644 index 0000000..ddd0b65 --- /dev/null +++ b/local/rollup/package.json @@ -0,0 +1,9 @@ +{ + "private": true, + "name": "@local/rollup", + "exports": { + ".": "./src/createRollupConfig.js", + "./playwright": "./src/playwright/createPlaywrightRollupConfig.js" + }, + "version": "0.0.0" +} diff --git a/config/rollup/babel.config.esm.js b/local/rollup/src/babel.config.esm.js similarity index 100% rename from config/rollup/babel.config.esm.js rename to local/rollup/src/babel.config.esm.js diff --git a/config/rollup/babel.config.umd.js b/local/rollup/src/babel.config.umd.js similarity index 100% rename from config/rollup/babel.config.umd.js rename to local/rollup/src/babel.config.umd.js diff --git a/config/rollup/rollup.config.js b/local/rollup/src/createRollupConfig.js similarity index 79% rename from config/rollup/rollup.config.js rename to local/rollup/src/createRollupConfig.js index 21db115..3d832e7 100644 --- a/config/rollup/rollup.config.js +++ b/local/rollup/src/createRollupConfig.js @@ -1,14 +1,16 @@ +/* eslint-disable no-console */ +/* eslint-disable import/no-dynamic-require */ +const { execSync } = require("child_process"); const fs = require('fs'); const path = require('path'); const glob = require('glob'); -const resolve = require('../../resolve.config.json'); -const pkg = require('../../package.json'); - +const resolve = require('@local/config/resolve'); const defaultOptions = require('./defaultOptions'); const pipelineBuild = require('./pipeline.build'); const pipelineDev = require('./pipeline.dev'); -const repoRoot = path.resolve(__dirname, '../../'); +const workspaceRoot = path.dirname(execSync('npm root').toString()); +const pkg = require(`${workspaceRoot}/package.json`); const appendExtension = (file) => path.extname(file) === '' @@ -29,13 +31,14 @@ const resolvePath = (basePath, pathToResolve, appendExt) => { const getWorkspaceAliases = () => pkg.workspaces - .map((pattern) => glob.sync(pattern, { cwd: repoRoot })) + .map((pattern) => glob.sync(pattern, { cwd: workspaceRoot })) .flat() .reduce((obj, resolvedPath) => { let projTsConfig; - const absolutePath = path.resolve(repoRoot, resolvedPath); + const absolutePath = path.resolve(workspaceRoot, resolvedPath); try { - projTsConfig = require(`${path.resolve(repoRoot, resolvedPath)}/tsconfig.json`); + // eslint-disable-next-line import/no-dynamic-require, global-require + projTsConfig = require(`${path.resolve(workspaceRoot, resolvedPath)}/tsconfig.json`); } catch {} obj[`@/${path.basename(absolutePath)}`] = `${normalizePath( @@ -69,7 +72,7 @@ const mergeAndResolveOptions = (userOptions) => { const mergedOptions = { project: project || path.basename(projectPath), mode: rawMode || defaultMode, - repoRoot, + repoRoot: workspaceRoot, extractStyle: rawExtractStyle ?? defaultExtractStyle, paths: { ...defaultPaths, @@ -120,13 +123,13 @@ const createConfig = (userOptions = {}) => { console.log('PROJECT : ', project); console.log('OPTIONS : ', options); - const umd = pipelineBuild(false, options, { declarationFiles: true, outputStyle: true }); - const esm = buildModuleVersion ? pipelineBuild(true, options) : null; + const umd = pipelineBuild(resolve, false, options, { declarationFiles: true, outputStyle: true }); + const esm = buildModuleVersion ? pipelineBuild(resolve, true, options) : null; return [umd, esm].filter((build) => !!build); } - return [pipelineDev(options)]; + return [pipelineDev(resolve, options)]; }; module.exports = createConfig; diff --git a/config/rollup/defaultOptions.js b/local/rollup/src/defaultOptions.js similarity index 100% rename from config/rollup/defaultOptions.js rename to local/rollup/src/defaultOptions.js diff --git a/config/rollup/pipeline.build.js b/local/rollup/src/pipeline.build.js similarity index 93% rename from config/rollup/pipeline.build.js rename to local/rollup/src/pipeline.build.js index 05b76e9..2f979d8 100644 --- a/config/rollup/pipeline.build.js +++ b/local/rollup/src/pipeline.build.js @@ -12,7 +12,6 @@ const { rollupAlias, rollupScss, } = require('./pipeline.common.plugins'); -const { extensions } = require('../../resolve.config.json'); const createOutputWithMinifiedVersion = (output, esm, buildMinifiedVersion) => [output].concat( @@ -40,7 +39,7 @@ const createOutputWithMinifiedVersion = (output, esm, buildMinifiedVersion) => : [] ); -module.exports = (esm, options, { declarationFiles = false, outputStyle = false } = {}) => { +module.exports = (resolve, esm, options, { declarationFiles = false, outputStyle = false } = {}) => { const { rollup, paths, versions, alias, extractStyle } = options; const { output: rollupOutput, input, plugins = [], ...rollupOptions } = rollup; const { name, file, globals, exports, sourcemap: rawSourcemap, ...outputConfig } = rollupOutput; @@ -94,8 +93,8 @@ module.exports = (esm, options, { declarationFiles = false, outputStyle = false include: ['*.ts+(|x)', '**/*.ts+(|x)'], exclude: ['node_modules', '**/node_modules/*'], }), - rollupResolve(srcPath), - rollupCommonjs(sourcemap), + rollupResolve(srcPath, resolve), + rollupCommonjs(sourcemap, resolve), rollupBabelInputPlugin({ ...(esm ? babelConfigEsm : babelConfigUmd), assumptions: { @@ -122,7 +121,7 @@ module.exports = (esm, options, { declarationFiles = false, outputStyle = false caller: { name: 'babel-rollup-build', }, - extensions, + extensions: resolve.extensions, }), ...plugins, ].filter(Boolean), diff --git a/config/rollup/pipeline.common.plugins.js b/local/rollup/src/pipeline.common.plugins.js similarity index 83% rename from config/rollup/pipeline.common.plugins.js rename to local/rollup/src/pipeline.common.plugins.js index 6092e79..2c63974 100644 --- a/config/rollup/pipeline.common.plugins.js +++ b/local/rollup/src/pipeline.common.plugins.js @@ -5,24 +5,23 @@ const rollupPluginScss = require('rollup-plugin-scss'); const rollupPluginIgnoreImport = require('rollup-plugin-ignore-import'); const rollupPluginCommonjs = require('@rollup/plugin-commonjs'); const rollupPluginAlias = require('@rollup/plugin-alias'); -const { extensions, directories } = require('../../resolve.config.json'); module.exports = { rollupAlias: (aliasEntries) => rollupPluginAlias({ entries: aliasEntries, }), - rollupCommonjs: (sourcemap) => + rollupCommonjs: (sourcemap, resolve) => rollupPluginCommonjs({ sourceMap: sourcemap, - extensions, + extensions: resolve.extensions, }), - rollupResolve: (srcPath) => + rollupResolve: (srcPath, resolve) => rollupPluginResolve({ mainFields: ['browser', 'umd:main', 'module', 'main'], rootDir: srcPath, - moduleDirectories: directories, - extensions, + moduleDirectories: resolve.directories, + extensions: resolve.extensions, }), rollupScss: (extractStyleOption, output) => { if (extractStyleOption) { diff --git a/config/rollup/pipeline.dev.js b/local/rollup/src/pipeline.dev.js similarity index 89% rename from config/rollup/pipeline.dev.js rename to local/rollup/src/pipeline.dev.js index 04fc13e..f477667 100644 --- a/config/rollup/pipeline.dev.js +++ b/local/rollup/src/pipeline.dev.js @@ -7,7 +7,7 @@ const { rollupScss, } = require('./pipeline.common.plugins'); -module.exports = (options) => { +module.exports = (resolve, options) => { const { rollup, paths, alias, extractStyle } = options; const { output: rollupOutput, input, plugins = [], ...rollupOptions } = rollup; const { file, sourcemap: rawSourcemap, ...outputConfig } = rollupOutput; @@ -35,8 +35,8 @@ module.exports = (options) => { target: 'es6', tsconfig: './tsconfig.json', }), - rollupResolve(srcPath), - rollupCommonjs(sourcemap), + rollupResolve(srcPath, resolve), + rollupCommonjs(sourcemap, resolve), ...plugins, ].filter(Boolean), }; diff --git a/config/playwright/rollup.config.js b/local/rollup/src/playwright/createPlaywrightRollupConfig.js similarity index 93% rename from config/playwright/rollup.config.js rename to local/rollup/src/playwright/createPlaywrightRollupConfig.js index 1c13ccb..f46c9d4 100644 --- a/config/playwright/rollup.config.js +++ b/local/rollup/src/playwright/createPlaywrightRollupConfig.js @@ -4,8 +4,8 @@ const rollupPluginStyles = require('rollup-plugin-styles'); const rollupPluginServe = require('rollup-plugin-serve'); // const rollupPluginLivereload = require('rollup-plugin-livereload'); -const createRollupConfig = require('../rollup/rollup.config'); const rollupPluginHtml = require('./rollup.pluginHtml'); +const createRollupConfig = require('../createRollupConfig'); // const rollupAdditionalWatchFiles = require('./rollup.pluginAdditionalWatchFiles'); const portRange = { @@ -19,7 +19,7 @@ const meta = { input: './index.browser', }; -module.exports = (testDir, onListening = null) => { +module.exports = (testDir, mode = 'dev', onListening = null) => { const name = path.basename(testDir); const htmlFilePath = path.resolve(testDir, meta.html); const dist = path.resolve(testDir, meta.dist); @@ -29,7 +29,7 @@ module.exports = (testDir, onListening = null) => { return createRollupConfig({ project: name, - mode: 'dev', + mode, paths: { dist, src: path.resolve(testDir, './'), diff --git a/config/playwright/rollup.pluginAdditionalWatchFiles.js b/local/rollup/src/playwright/rollup.pluginAdditionalWatchFiles.js similarity index 100% rename from config/playwright/rollup.pluginAdditionalWatchFiles.js rename to local/rollup/src/playwright/rollup.pluginAdditionalWatchFiles.js diff --git a/config/playwright/rollup.pluginHtml.js b/local/rollup/src/playwright/rollup.pluginHtml.js similarity index 100% rename from config/playwright/rollup.pluginHtml.js rename to local/rollup/src/playwright/rollup.pluginHtml.js diff --git a/local/tsconfig/package.json b/local/tsconfig/package.json new file mode 100644 index 0000000..4001077 --- /dev/null +++ b/local/tsconfig/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "name": "@local/tsconfig", + "main": "./tsconfig.json", + "version": "0.0.0" +} diff --git a/tsconfig.base.json b/local/tsconfig/tsconfig.json similarity index 100% rename from tsconfig.base.json rename to local/tsconfig/tsconfig.json diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..2058812 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,22951 @@ +{ + "name": "OverlayScrollbars", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "workspaces": [ + "packages/*" + ], + "bin": { + "workspace-root": "workspace.root.js" + }, + "devDependencies": { + "@babel/core": "^7.18.2", + "@babel/plugin-transform-runtime": "^7.18.2", + "@babel/preset-env": "^7.18.2", + "@babel/preset-typescript": "^7.17.12", + "@babel/runtime": "^7.18.2", + "@local/browser-testing": "file:./local/browser-testing", + "@local/config": "file:./local/config", + "@local/playwright-tooling": "file:./local/playwright-tooling", + "@local/rollup": "file:./local/rollup", + "@local/tsconfig": "file:./local/tsconfig", + "@playwright/test": "^1.22.2", + "@rollup/plugin-alias": "^3.1.9", + "@rollup/plugin-babel": "^5.3.1", + "@rollup/plugin-commonjs": "^22.0.0", + "@rollup/plugin-html": "^0.2.0", + "@rollup/plugin-node-resolve": "^13.3.0", + "@testing-library/dom": "^7.26.3", + "@types/jest": "^26.0.24", + "@typescript-eslint/eslint-plugin": "^5.31.0", + "@typescript-eslint/parser": "^5.31.0", + "autoprefixer": "^10.4.7", + "babel-jest": "^28.1.1", + "bufferutil": "^4.0.1", + "canvas": "^2.6.1", + "chalk": "^4.1.0", + "core-js": "^3.6.5", + "del": "^5.1.0", + "esbuild": "^0.14.42", + "eslint": "^8.20.0", + "eslint-config-airbnb": "^19.0.4", + "eslint-config-prettier": "^8.5.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-jest": "^26.6.0", + "eslint-plugin-json": "^3.1.0", + "eslint-plugin-jsx-a11y": "^6.6.1", + "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-react": "^7.30.0", + "eslint-plugin-react-hooks": "^4.6.0", + "glob": "^7.1.6", + "jest": "^28.1.1", + "jest-environment-jsdom": "^28.1.1", + "node-sass": "^7.0.1", + "nyc": "^15.1.0", + "playwright": "^1.22.2", + "playwright-chromium": "^1.22.2", + "playwright-core": "^1.22.2", + "playwright-firefox": "^1.22.2", + "playwright-webkit": "^1.22.2", + "postcss": "^8.4.14", + "prettier": "^2.6.2", + "rollup": "^2.75.5", + "rollup-plugin-esbuild": "^4.9.1", + "rollup-plugin-ignore-import": "^1.3.2", + "rollup-plugin-livereload": "^2.0.0", + "rollup-plugin-scss": "^3.0.0", + "rollup-plugin-serve": "^1.1.0", + "rollup-plugin-styles": "^4.0.0", + "rollup-plugin-summary": "^1.4.3", + "rollup-plugin-terser": "^7.0.2", + "rollup-plugin-ts": "^3.0.2", + "should": "^13.2.3", + "tslib": "^2.4.0", + "typescript": "^4.7.4", + "utf-8-validate": "^5.0.2", + "v8-to-istanbul": "^9.0.1" + } + }, + "config/workspace-root": { + "version": "0.0.0", + "extraneous": true, + "bin": { + "workspace-root": "workspace.root.js" + } + }, + "local/browser-testing": { + "version": "0.0.0", + "dev": true, + "hasInstallScript": true + }, + "local/config": { + "name": "@local/config", + "version": "0.0.0", + "dev": true + }, + "local/playwright-tooling": { + "name": "@local/playwright-tooling", + "version": "0.0.0", + "dev": true + }, + "local/rollup": { + "name": "@local/rollup", + "version": "0.0.0", + "dev": true + }, + "local/tsconfig": { + "name": "@local/tsconfig", + "version": "0.0.0", + "dev": true + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.5.tgz", + "integrity": "sha512-BxhE40PVCBxVEJsSBhB6UWyAuqJRxGsAw8BdHMJ3AKGydcwuWW4kOO3HmqBQAdcq/OP+/DlTVxLvsCzRTnZuGg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.5.tgz", + "integrity": "sha512-MGY8vg3DxMnctw0LdvSEojOsumc70g0t18gNyUdAZqB1Rpd1Bqo/svHGvt+UJ6JcGX+DIekGFDxxIWofBxLCnQ==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.18.2", + "@babel/helper-compilation-targets": "^7.18.2", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helpers": "^7.18.2", + "@babel/parser": "^7.18.5", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.18.5", + "@babel/types": "^7.18.4", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", + "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.2", + "@jridgewell/gen-mapping": "^0.3.0", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", + "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", + "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", + "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", + "dev": true, + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.2.tgz", + "integrity": "sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.17.10", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.20.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz", + "integrity": "sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-member-expression-to-functions": "^7.17.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.12.tgz", + "integrity": "sha512-b2aZrV4zvutr9AIa6/gA3wsZKRwTKYoDxYiFKcESS3Ug2GTXzwBEvMuuFLhCQpEnRXs1zng4ISAXSUxxKBIcxw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "regexpu-core": "^5.0.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", + "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.2.tgz", + "integrity": "sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", + "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", + "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.16.7", + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz", + "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz", + "integrity": "sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.18.0", + "@babel/types": "^7.18.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", + "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", + "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", + "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-wrap-function": "^7.16.8", + "@babel/types": "^7.16.8" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.2.tgz", + "integrity": "sha512-XzAIyxx+vFnrOxiQrToSUOzUOn0e1J2Li40ntddek1Y69AXUTXoDJ40/D5RdjFu7s7qHiaeoTiempZcbuVXh2Q==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-member-expression-to-functions": "^7.17.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/traverse": "^7.18.2", + "@babel/types": "^7.18.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.2.tgz", + "integrity": "sha512-7LIrjYzndorDY88MycupkpQLKS1AFfsVRm2k/9PtKScSy5tZq0McZTj+DiMRynboZfIqOKvo03pmhTaUgiD6fQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", + "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", + "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.8", + "@babel/types": "^7.16.8" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.2.tgz", + "integrity": "sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.18.2", + "@babel/types": "^7.18.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.12.tgz", + "integrity": "sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.5.tgz", + "integrity": "sha512-YZWVaglMiplo7v8f1oMQ5ZPQr0vn7HPeZXxXWsxXJRjGVrzUFn9OxFQl1sb5wzfootjA/yChhW84BV+383FSOw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.17.12.tgz", + "integrity": "sha512-xCJQXl4EeQ3J9C4yOmpTrtVGmzpm2iSzyxbkZHw7UCnZBftHpF/hpII80uWVyVrc40ytIClHjgWGTG1g/yB+aw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.17.12.tgz", + "integrity": "sha512-/vt0hpIw0x4b6BLKUkwlvEoiGZYYLNZ96CzyHYPbtG2jZGz6LBe7/V+drYrc/d+ovrF9NBi0pmtvmNb/FsWtRQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.17.12.tgz", + "integrity": "sha512-RWVvqD1ooLKP6IqWTA5GyFVX2isGEgC5iFxKzfYOIy/QEFdxYyCybBDtIGjipHpb9bDWHzcqGqFakf+mVmBTdQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-remap-async-to-generator": "^7.16.8", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.17.12.tgz", + "integrity": "sha512-U0mI9q8pW5Q9EaTHFPwSVusPMV/DV9Mm8p7csqROFLtIE9rBF5piLqyrBGigftALrBcsBGu4m38JneAe7ZDLXw==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-static-block": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.0.tgz", + "integrity": "sha512-t+8LsRMMDE74c6sV7KShIw13sqbqd58tlqNrsWoWBTIMw7SVQ0cZ905wLNS/FBCy/3PyooRHLFFlfrUNyyz5lA==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", + "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-export-namespace-from": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.17.12.tgz", + "integrity": "sha512-j7Ye5EWdwoXOpRmo5QmRyHPsDIe6+u70ZYZrd7uz+ebPYFKfRcLcNu3Ro0vOlJ5zuv8rU7xa+GttNiRzX56snQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.17.12.tgz", + "integrity": "sha512-rKJ+rKBoXwLnIn7n6o6fulViHMrOThz99ybH+hKHcOZbnN14VuMnH9fo2eHE69C8pO4uX1Q7t2HYYIDmv8VYkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.17.12.tgz", + "integrity": "sha512-EqFo2s1Z5yy+JeJu7SFfbIUtToJTVlC61/C7WLKDntSw4Sz6JNAIfL7zQ74VvirxpjB5kz/kIx0gCcb+5OEo2Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.17.12.tgz", + "integrity": "sha512-ws/g3FSGVzv+VH86+QvgtuJL/kR67xaEIF2x0iPqdDfYW6ra6JF3lKVBkWynRLcNtIC1oCTfDRVxmm2mKzy+ag==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", + "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.0.tgz", + "integrity": "sha512-nbTv371eTrFabDfHLElkn9oyf9VG+VKK6WMzhY2o4eHKaG19BToD9947zzGMO6I/Irstx9d8CwX6njPNIAR/yw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.17.10", + "@babel/helper-compilation-targets": "^7.17.10", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", + "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.17.12.tgz", + "integrity": "sha512-7wigcOs/Z4YWlK7xxjkvaIw84vGhDv/P1dFGQap0nHkc8gFKY/r+hXc8Qzf5k1gY7CvGIcHqAnOagVKJJ1wVOQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.17.12.tgz", + "integrity": "sha512-SllXoxo19HmxhDWm3luPz+cPhtoTSKLJE9PXshsfrOzBqs60QP0r8OaJItrPhAj0d7mZMnNF0Y1UUggCDgMz1A==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.17.12.tgz", + "integrity": "sha512-/6BtVi57CJfrtDNKfK5b66ydK2J5pXUKBKSPD2G1whamMuEnZWgoOIfO8Vf9F/DoD4izBLD/Au4NMQfruzzykg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.17.12.tgz", + "integrity": "sha512-Wb9qLjXf3ZazqXA7IvI7ozqRIXIGPtSo+L5coFmEkhTQK18ao4UDDD0zdTGAarmbLj2urpRwrc6893cu5Bfh0A==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.17.12.tgz", + "integrity": "sha512-n/loy2zkq9ZEM8tEOwON9wTQSTNDTDEz6NujPtJGLU7qObzT1N4c4YZZf8E6ATB2AjNQg/Ib2AIpO03EZaCehw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.17.12.tgz", + "integrity": "sha512-TYY0SXFiO31YXtNg3HtFwNJHjLsAyIIhAhNWkQ5whPPS7HWUFlg9z0Ta4qAQNjQbP1wsSt/oKkmZ/4/WWdMUpw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.17.12.tgz", + "integrity": "sha512-PHln3CNi/49V+mza4xMwrg+WGYevSF1oaiXaC2EQfdp4HWlSjRsrDXWJiQBKpP7749u6vQ9mcry2uuFOv5CXvA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.17.12.tgz", + "integrity": "sha512-J8dbrWIOO3orDzir57NRsjg4uxucvhby0L/KZuGsWDj0g7twWK3g7JhJhOrXtuXiw8MeiSdJ3E0OW9H8LYEzLQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-remap-async-to-generator": "^7.16.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", + "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.4.tgz", + "integrity": "sha512-+Hq10ye+jlvLEogSOtq4mKvtk7qwcUQ1f0Mrueai866C82f844Yom2cttfJdMdqRLTxWpsbfbkIkOIfovyUQXw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.4.tgz", + "integrity": "sha512-e42NSG2mlKWgxKUAD9EJJSkZxR67+wZqzNxLSpc51T8tRU5SLFHsPmgYR5yr7sdgX4u+iHA1C5VafJ6AyImV3A==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-replace-supers": "^7.18.2", + "@babel/helper-split-export-declaration": "^7.16.7", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.17.12.tgz", + "integrity": "sha512-a7XINeplB5cQUWMg1E/GI1tFz3LfK021IjV1rj1ypE+R7jHm+pIHmHl25VNkZxtx9uuYp7ThGk8fur1HHG7PgQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.0.tgz", + "integrity": "sha512-Mo69klS79z6KEfrLg/1WkmVnB8javh75HX4pi2btjvlIoasuxilEyjtsQW6XPrubNd7AQy0MMaNIaQE4e7+PQw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", + "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.17.12.tgz", + "integrity": "sha512-EA5eYFUG6xeerdabina/xIoB95jJ17mAkR8ivx6ZSu9frKShBjpOGZPn511MTDTkiCO+zXnzNczvUM69YSf3Zw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", + "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.18.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.1.tgz", + "integrity": "sha512-+TTB5XwvJ5hZbO8xvl2H4XaMDOAK57zF4miuC9qQJgysPNEAZZ9Z69rdF5LJkozGdZrjBIUAIyKUWRMmebI7vg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", + "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.17.12.tgz", + "integrity": "sha512-8iRkvaTjJciWycPIZ9k9duu663FT7VrBdNqNgxnVXEFwOIp55JWcZd23VBRySYbnS3PwQ3rGiabJBBBGj5APmQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", + "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.0.tgz", + "integrity": "sha512-h8FjOlYmdZwl7Xm2Ug4iX2j7Qy63NANI+NQVWQzv6r25fqgg7k2dZl03p95kvqNclglHs4FZ+isv4p1uXMA+QA==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.2.tgz", + "integrity": "sha512-f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-simple-access": "^7.18.2", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.5.tgz", + "integrity": "sha512-SEewrhPpcqMF1V7DhnEbhVJLrC+nnYfe1E0piZMZXBpxi9WvZqWGwpsk7JYP7wPWeqaBh4gyKlBhHJu3uz5g4Q==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-validator-identifier": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.0.tgz", + "integrity": "sha512-d/zZ8I3BWli1tmROLxXLc9A6YXvGK8egMxHp+E/rRwMh1Kip0AP77VwZae3snEJ33iiWwvNv2+UIIhfalqhzZA==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.12.tgz", + "integrity": "sha512-vWoWFM5CKaTeHrdUJ/3SIOTRV+MBVGybOC9mhJkaprGNt5demMymDW24yC74avb915/mIRe3TgNb/d8idvnCRA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.5.tgz", + "integrity": "sha512-TuRL5uGW4KXU6OsRj+mLp9BM7pO8e7SGNTEokQRRxHFkXYMFiy2jlKSZPFtI/mKORDzciH+hneskcSOp0gU8hg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", + "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.17.12.tgz", + "integrity": "sha512-6qW4rWo1cyCdq1FkYri7AHpauchbGLXpdwnYsfxFb+KtddHENfsY5JZb35xUwkK5opOLcJ3BNd2l7PhRYGlwIA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", + "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.0.tgz", + "integrity": "sha512-C8YdRw9uzx25HSIzwA7EM7YP0FhCe5wNvJbZzjVNHHPGVcDJ3Aie+qGYYdS1oVQgn+B3eAIJbWFLrJ4Jipv7nw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "regenerator-transform": "^0.15.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.17.12.tgz", + "integrity": "sha512-1KYqwbJV3Co03NIi14uEHW8P50Md6KqFgt0FfpHdK6oyAHQVTosgPuPSiWud1HX0oYJ1hGRRlk0fP87jFpqXZA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.5.tgz", + "integrity": "sha512-Q17hHxXr2fplrE+5BSC1j1Fo5cOA8YeP8XW3/1paI8MzF/faZGh0MaH1KC4jLAvqLPamQWHB5/B7KqSLY1kuHA==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", + "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.17.12.tgz", + "integrity": "sha512-9pgmuQAtFi3lpNUstvG9nGfk9DkrdmWNp9KeKPFmuZCpEnxRzYlS8JgwPjYj+1AWDOSvoGN0H30p1cBOmT/Svg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", + "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.2.tgz", + "integrity": "sha512-/cmuBVw9sZBGZVOMkpAEaVLwm4JmK2GZ1dFKOGGpMzEHWFmyZZ59lUU0PdRr8YNYeQdNzTDwuxP2X2gzydTc9g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.17.12.tgz", + "integrity": "sha512-Q8y+Jp7ZdtSPXCThB6zjQ74N3lj0f6TDh1Hnf5B+sYlzQ8i5Pjp8gW0My79iekSpT4WnI06blqP6DT0OmaXXmw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.4.tgz", + "integrity": "sha512-l4vHuSLUajptpHNEOUDEGsnpl9pfRLsN1XUoDQDD/YBuXTM+v37SHGS+c6n4jdcZy96QtuUuSvZYMLSSsjH8Mw==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-typescript": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", + "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", + "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.2.tgz", + "integrity": "sha512-PfpdxotV6afmXMU47S08F9ZKIm2bJIQ0YbAAtDfIENX7G1NUAXigLREh69CWDjtgUy7dYn7bsMzkgdtAlmS68Q==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.17.10", + "@babel/helper-compilation-targets": "^7.18.2", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.17.12", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.17.12", + "@babel/plugin-proposal-async-generator-functions": "^7.17.12", + "@babel/plugin-proposal-class-properties": "^7.17.12", + "@babel/plugin-proposal-class-static-block": "^7.18.0", + "@babel/plugin-proposal-dynamic-import": "^7.16.7", + "@babel/plugin-proposal-export-namespace-from": "^7.17.12", + "@babel/plugin-proposal-json-strings": "^7.17.12", + "@babel/plugin-proposal-logical-assignment-operators": "^7.17.12", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.17.12", + "@babel/plugin-proposal-numeric-separator": "^7.16.7", + "@babel/plugin-proposal-object-rest-spread": "^7.18.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", + "@babel/plugin-proposal-optional-chaining": "^7.17.12", + "@babel/plugin-proposal-private-methods": "^7.17.12", + "@babel/plugin-proposal-private-property-in-object": "^7.17.12", + "@babel/plugin-proposal-unicode-property-regex": "^7.17.12", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.17.12", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.17.12", + "@babel/plugin-transform-async-to-generator": "^7.17.12", + "@babel/plugin-transform-block-scoped-functions": "^7.16.7", + "@babel/plugin-transform-block-scoping": "^7.17.12", + "@babel/plugin-transform-classes": "^7.17.12", + "@babel/plugin-transform-computed-properties": "^7.17.12", + "@babel/plugin-transform-destructuring": "^7.18.0", + "@babel/plugin-transform-dotall-regex": "^7.16.7", + "@babel/plugin-transform-duplicate-keys": "^7.17.12", + "@babel/plugin-transform-exponentiation-operator": "^7.16.7", + "@babel/plugin-transform-for-of": "^7.18.1", + "@babel/plugin-transform-function-name": "^7.16.7", + "@babel/plugin-transform-literals": "^7.17.12", + "@babel/plugin-transform-member-expression-literals": "^7.16.7", + "@babel/plugin-transform-modules-amd": "^7.18.0", + "@babel/plugin-transform-modules-commonjs": "^7.18.2", + "@babel/plugin-transform-modules-systemjs": "^7.18.0", + "@babel/plugin-transform-modules-umd": "^7.18.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.17.12", + "@babel/plugin-transform-new-target": "^7.17.12", + "@babel/plugin-transform-object-super": "^7.16.7", + "@babel/plugin-transform-parameters": "^7.17.12", + "@babel/plugin-transform-property-literals": "^7.16.7", + "@babel/plugin-transform-regenerator": "^7.18.0", + "@babel/plugin-transform-reserved-words": "^7.17.12", + "@babel/plugin-transform-shorthand-properties": "^7.16.7", + "@babel/plugin-transform-spread": "^7.17.12", + "@babel/plugin-transform-sticky-regex": "^7.16.7", + "@babel/plugin-transform-template-literals": "^7.18.2", + "@babel/plugin-transform-typeof-symbol": "^7.17.12", + "@babel/plugin-transform-unicode-escapes": "^7.16.7", + "@babel/plugin-transform-unicode-regex": "^7.16.7", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.18.2", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "core-js-compat": "^3.22.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.17.12.tgz", + "integrity": "sha512-S1ViF8W2QwAKUGJXxP9NAfNaqGDdEBJKpYkxHf5Yy2C4NPPzXGeR3Lhk7G8xJaaLcFTRfNjVbtbVtm8Gb0mqvg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-transform-typescript": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz", + "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/runtime-corejs3": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.18.3.tgz", + "integrity": "sha512-l4ddFwrc9rnR+EJsHsh+TJ4A35YqQz/UqcjtlX2ov53hlJYG5CxtQmNZxyajwDVmCxwy++rtvGU5HazCK4W41Q==", + "dev": true, + "dependencies": { + "core-js-pure": "^3.20.2", + "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.5.tgz", + "integrity": "sha512-aKXj1KT66sBj0vVzk6rEeAO6Z9aiiQ68wfDgge3nHhA/my6xMM/7HGQUNumKZaoa2qUPQ5whJG9aAifsxUKfLA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.18.2", + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.18.5", + "@babel/types": "^7.18.4", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz", + "integrity": "sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", + "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.2", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@gar/promisify": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", + "dev": true + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.1.tgz", + "integrity": "sha512-0RiUocPVFEm3WRMOStIHbRWllG6iW6E3/gUPnf4lkrVFyXIIDeCe+vlKeYyFOMhB2EPE6FLFCNADSOOQMaqvyA==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^28.1.1", + "jest-util": "^28.1.1", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/core": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-28.1.1.tgz", + "integrity": "sha512-3pYsBoZZ42tXMdlcFeCc/0j9kOlK7MYuXs2B1QbvDgMoW1K9NJ4G/VYvIbMb26iqlkTfPHo7SC2JgjDOk/mxXw==", + "dev": true, + "dependencies": { + "@jest/console": "^28.1.1", + "@jest/reporters": "^28.1.1", + "@jest/test-result": "^28.1.1", + "@jest/transform": "^28.1.1", + "@jest/types": "^28.1.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^28.0.2", + "jest-config": "^28.1.1", + "jest-haste-map": "^28.1.1", + "jest-message-util": "^28.1.1", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.1", + "jest-resolve-dependencies": "^28.1.1", + "jest-runner": "^28.1.1", + "jest-runtime": "^28.1.1", + "jest-snapshot": "^28.1.1", + "jest-util": "^28.1.1", + "jest-validate": "^28.1.1", + "jest-watcher": "^28.1.1", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.1", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/core/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/pretty-format": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.1.tgz", + "integrity": "sha512-wwJbVTGFHeucr5Jw2bQ9P+VYHyLdAqedFLEkdQUVaBF/eiidDwH5OpilINq4mEfhbCjLnirt6HTTDhv1HaTIQw==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/core/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/@jest/environment": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-28.1.1.tgz", + "integrity": "sha512-9auVQ2GzQ7nrU+lAr8KyY838YahElTX9HVjbQPPS2XjlxQ+na18G113OoBhyBGBtD6ZnO/SrUy5WR8EzOj1/Uw==", + "dev": true, + "dependencies": { + "@jest/fake-timers": "^28.1.1", + "@jest/types": "^28.1.1", + "@types/node": "*", + "jest-mock": "^28.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-28.1.1.tgz", + "integrity": "sha512-/+tQprrFoT6lfkMj4mW/mUIfAmmk/+iQPmg7mLDIFOf2lyf7EBHaS+x3RbeR0VZVMe55IvX7QRoT/2aK3AuUXg==", + "dev": true, + "dependencies": { + "expect": "^28.1.1", + "jest-snapshot": "^28.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.1.tgz", + "integrity": "sha512-n/ghlvdhCdMI/hTcnn4qV57kQuV9OTsZzH1TTCVARANKhl6hXJqLKUkwX69ftMGpsbpt96SsDD8n8LD2d9+FRw==", + "dev": true, + "dependencies": { + "jest-get-type": "^28.0.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.1.tgz", + "integrity": "sha512-BY/3+TyLs5+q87rGWrGUY5f8e8uC3LsVHS9Diz8+FV3ARXL4sNnkLlIB8dvDvRrp+LUCGM+DLqlsYubizGUjIA==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.1", + "@sinonjs/fake-timers": "^9.1.1", + "@types/node": "*", + "jest-message-util": "^28.1.1", + "jest-mock": "^28.1.1", + "jest-util": "^28.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-28.1.1.tgz", + "integrity": "sha512-dEgl/6v7ToB4vXItdvcltJBgny0xBE6xy6IYQrPJAJggdEinGxCDMivNv7sFzPcTITGquXD6UJwYxfJ/5ZwDSg==", + "dev": true, + "dependencies": { + "@jest/environment": "^28.1.1", + "@jest/expect": "^28.1.1", + "@jest/types": "^28.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-28.1.1.tgz", + "integrity": "sha512-597Zj4D4d88sZrzM4atEGLuO7SdA/YrOv9SRXHXRNC+/FwPCWxZhBAEzhXoiJzfRwn8zes/EjS8Lo6DouGN5Gg==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^28.1.1", + "@jest/test-result": "^28.1.1", + "@jest/transform": "^28.1.1", + "@jest/types": "^28.1.1", + "@jridgewell/trace-mapping": "^0.3.7", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^28.1.1", + "jest-util": "^28.1.1", + "jest-worker": "^28.1.1", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^9.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/schemas": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.0.2.tgz", + "integrity": "sha512-YVDJZjd4izeTDkij00vHHAymNXQ6WWsdChFRK86qck6Jpr3DCL5W3Is3vslviRlP+bLuMYRLbdp98amMvqudhA==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.23.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-28.0.2.tgz", + "integrity": "sha512-Y9dxC8ZpN3kImkk0LkK5XCEneYMAXlZ8m5bflmSL5vrwyeUpJfentacCUg6fOb8NOpOO7hz2+l37MV77T6BFPw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.7", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.1.tgz", + "integrity": "sha512-hPmkugBktqL6rRzwWAtp1JtYT4VHwv8OQ+9lE5Gymj6dHzubI/oJHMUpPOt8NrdVWSrz9S7bHjJUmv2ggFoUNQ==", + "dev": true, + "dependencies": { + "@jest/console": "^28.1.1", + "@jest/types": "^28.1.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-28.1.1.tgz", + "integrity": "sha512-nuL+dNSVMcWB7OOtgb0EGH5AjO4UBCt68SLP08rwmC+iRhyuJWS9MtZ/MpipxFwKAlHFftbMsydXqWre8B0+XA==", + "dev": true, + "dependencies": { + "@jest/test-result": "^28.1.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.1", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-28.1.1.tgz", + "integrity": "sha512-PkfaTUuvjUarl1EDr5ZQcCA++oXkFCP9QFUkG0yVKVmNObjhrqDy0kbMpMebfHWm3CCDHjYNem9eUSH8suVNHQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^28.1.1", + "@jridgewell/trace-mapping": "^0.3.7", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.1", + "jest-regex-util": "^28.0.2", + "jest-util": "^28.1.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/types": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.1.tgz", + "integrity": "sha512-vRXVqSg1VhDnB8bWcmvLzmg0Bt9CRKVgHPXqYwvWMX3TvAjeO+nRuK6+VdTKCtWOvYlmkF/HqNAL/z+N3B53Kw==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.0.2", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", + "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz", + "integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", + "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.13", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz", + "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz", + "integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@local/browser-testing": { + "resolved": "local/browser-testing", + "link": true + }, + "node_modules/@local/config": { + "resolved": "local/config", + "link": true + }, + "node_modules/@local/playwright-tooling": { + "resolved": "local/playwright-tooling", + "link": true + }, + "node_modules/@local/rollup": { + "resolved": "local/rollup", + "link": true + }, + "node_modules/@local/tsconfig": { + "resolved": "local/tsconfig", + "link": true + }, + "node_modules/@mapbox/node-pre-gyp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.9.tgz", + "integrity": "sha512-aDF3S3rK9Q2gey/WAttUlISduDItz5BU3306M9Eyv6/oS40aMprnopshtlKTykxRNIBEZuRMaZAnbrQ4QtKGyw==", + "dev": true, + "dependencies": { + "detect-libc": "^2.0.0", + "https-proxy-agent": "^5.0.0", + "make-dir": "^3.1.0", + "node-fetch": "^2.6.7", + "nopt": "^5.0.0", + "npmlog": "^5.0.1", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.11" + }, + "bin": { + "node-pre-gyp": "bin/node-pre-gyp" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@mdn/browser-compat-data": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-4.2.1.tgz", + "integrity": "sha512-EWUguj2kd7ldmrF9F+vI5hUOralPd+sdsUnYbRy33vZTuZkduC1shE9TtEMEjAQwyfyMb4ole5KtjF8MsnQOlA==", + "dev": true + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@npmcli/fs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", + "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", + "dev": true, + "dependencies": { + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" + } + }, + "node_modules/@npmcli/fs/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "dev": true, + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@playwright/test": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.22.2.tgz", + "integrity": "sha512-cCl96BEBGPtptFz7C2FOSN3PrTnJ3rPpENe+gYCMx4GNNDlN4tmo2D89y13feGKTMMAIVrXfSQ/UmaQKLy1XLA==", + "dev": true, + "dependencies": { + "@types/node": "*", + "playwright-core": "1.22.2" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@rollup/plugin-alias": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@rollup/plugin-alias/-/plugin-alias-3.1.9.tgz", + "integrity": "sha512-QI5fsEvm9bDzt32k39wpOwZhVzRcL5ydcffUHMyLVaVaLeC70I8TJZ17F1z1eMoLu4E/UOcH9BWVkKpIKdrfiw==", + "dev": true, + "dependencies": { + "slash": "^3.0.0" + }, + "engines": { + "node": ">=8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/plugin-babel": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", + "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "@types/babel__core": "^7.1.9", + "rollup": "^1.20.0||^2.0.0" + }, + "peerDependenciesMeta": { + "@types/babel__core": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-commonjs": { + "version": "22.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-22.0.0.tgz", + "integrity": "sha512-Ktvf2j+bAO+30awhbYoCaXpBcyPmJbaEUYClQns/+6SNCYFURbvBiNbWgHITEsIgDDWCDUclWRKEuf8cwZCFoQ==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "commondir": "^1.0.1", + "estree-walker": "^2.0.1", + "glob": "^7.1.6", + "is-reference": "^1.2.1", + "magic-string": "^0.25.7", + "resolve": "^1.17.0" + }, + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "rollup": "^2.68.0" + } + }, + "node_modules/@rollup/plugin-html": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@rollup/plugin-html/-/plugin-html-0.2.4.tgz", + "integrity": "sha512-x0qpNXxbmGa9Jnl4OX89AORPe2T/a4DqNK69BGRnEdaPKq6MdiUXSTam/eCkF5DxkQGcRcPq0L4vzr/E3q4mVA==", + "dev": true, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", + "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.1.0", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "rollup": "^2.42.0" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/pluginutils/node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + }, + "node_modules/@sinclair/typebox": { + "version": "0.23.5", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.23.5.tgz", + "integrity": "sha512-AFBVi/iT4g20DHoujvMH1aEDn8fGJh4xsRGCP6d8RpLPMqsNPvW01Jcn0QysXTsg++/xj25NmJsGyH9xug/wKg==", + "dev": true + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", + "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@testing-library/dom": { + "version": "7.31.2", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-7.31.2.tgz", + "integrity": "sha512-3UqjCpey6HiTZT92vODYLPxTBWlM8ZOOjr3LX5F37/VRipW2M1kX6I/Cm4VXzteZqfGfagg8yXywpcOgQBlNsQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^4.2.0", + "aria-query": "^4.2.2", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.6", + "lz-string": "^1.4.4", + "pretty-format": "^26.6.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@types/aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==", + "dev": true + }, + "node_modules/@types/babel__core": { + "version": "7.1.19", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", + "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.17.1", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.17.1.tgz", + "integrity": "sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.3.0" + } + }, + "node_modules/@types/cssnano": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@types/cssnano/-/cssnano-5.1.0.tgz", + "integrity": "sha512-ikR+18UpFGgvaWSur4og6SJYF/6QEYHXvrIt36dp81p1MG3cAPTYDMBJGeyWa3LCnqEbgNMHKRb+FP0NrXtoWQ==", + "deprecated": "This is a stub types definition. cssnano provides its own type definitions, so you do not need this installed.", + "dev": true, + "dependencies": { + "cssnano": "*" + } + }, + "node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true + }, + "node_modules/@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dev": true, + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "26.0.24", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.24.tgz", + "integrity": "sha512-E/X5Vib8BWqZNRlDxj9vYXhsDwPYbPINqKF9BsnSoon4RQ0D9moEuLD8txgyypFLH7J4+Lho9Nr/c8H0Fi+17w==", + "dev": true, + "dependencies": { + "jest-diff": "^26.0.0", + "pretty-format": "^26.0.0" + } + }, + "node_modules/@types/jsdom": { + "version": "16.2.14", + "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-16.2.14.tgz", + "integrity": "sha512-6BAy1xXEmMuHeAJ4Fv4yXKwBDTGTOseExKE3OaHiNycdHdZw59KfYzrt0DkDluvwmik1HRt6QS7bImxUmpSy+w==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/parse5": "*", + "@types/tough-cookie": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "node_modules/@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", + "dev": true + }, + "node_modules/@types/minimist": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "dev": true + }, + "node_modules/@types/node": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.0.tgz", + "integrity": "sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA==", + "dev": true + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, + "node_modules/@types/object-path": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/@types/object-path/-/object-path-0.11.1.tgz", + "integrity": "sha512-219LSCO9HPcoXcRTC6DbCs0FRhZgBnEMzf16RRqkT40WbkKx3mOeQuz3e2XqbfhOz/AHfbru0kzB1n1RCAsIIg==", + "dev": true + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "node_modules/@types/parse5": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.3.tgz", + "integrity": "sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==", + "dev": true + }, + "node_modules/@types/prettier": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.3.tgz", + "integrity": "sha512-ymZk3LEC/fsut+/Q5qejp6R9O1rMxz3XaRHDV6kX8MrGAhOSPqVARbDi+EZvInBpw+BnCX3TD240byVkOfQsHg==", + "dev": true + }, + "node_modules/@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/semver": { + "version": "7.3.10", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.10.tgz", + "integrity": "sha512-zsv3fsC7S84NN6nPK06u79oWgrPVd0NvOyqgghV1haPaFcVxIrP4DLomRwGAXk0ui4HZA7mOcSFL98sMVW9viw==", + "dev": true + }, + "node_modules/@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "node_modules/@types/tough-cookie": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.2.tgz", + "integrity": "sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==", + "dev": true + }, + "node_modules/@types/ua-parser-js": { + "version": "0.7.36", + "resolved": "https://registry.npmjs.org/@types/ua-parser-js/-/ua-parser-js-0.7.36.tgz", + "integrity": "sha512-N1rW+njavs70y2cApeIw1vLMYXRwfBy+7trgavGuuTfOd7j1Yh7QTRc/yqsPl6ncokt72ZXuxEU0PiCp9bSwNQ==", + "dev": true + }, + "node_modules/@types/yargs": { + "version": "17.0.10", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.10.tgz", + "integrity": "sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.31.0.tgz", + "integrity": "sha512-VKW4JPHzG5yhYQrQ1AzXgVgX8ZAJEvCz0QI6mLRX4tf7rnFfh5D8SKm0Pq6w5PyNfAWJk6sv313+nEt3ohWMBQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.31.0", + "@typescript-eslint/type-utils": "5.31.0", + "@typescript-eslint/utils": "5.31.0", + "debug": "^4.3.4", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.2.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.31.0.tgz", + "integrity": "sha512-UStjQiZ9OFTFReTrN+iGrC6O/ko9LVDhreEK5S3edmXgR396JGq7CoX2TWIptqt/ESzU2iRKXAHfSF2WJFcWHw==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.31.0", + "@typescript-eslint/types": "5.31.0", + "@typescript-eslint/typescript-estree": "5.31.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.31.0.tgz", + "integrity": "sha512-8jfEzBYDBG88rcXFxajdVavGxb5/XKXyvWgvD8Qix3EEJLCFIdVloJw+r9ww0wbyNLOTYyBsR+4ALNGdlalLLg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.31.0", + "@typescript-eslint/visitor-keys": "5.31.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.31.0.tgz", + "integrity": "sha512-7ZYqFbvEvYXFn9ax02GsPcEOmuWNg+14HIf4q+oUuLnMbpJ6eHAivCg7tZMVwzrIuzX3QCeAOqKoyMZCv5xe+w==", + "dev": true, + "dependencies": { + "@typescript-eslint/utils": "5.31.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.31.0.tgz", + "integrity": "sha512-/f/rMaEseux+I4wmR6mfpM2wvtNZb1p9hAV77hWfuKc3pmaANp5dLAZSiE3/8oXTYTt3uV9KW5yZKJsMievp6g==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.31.0.tgz", + "integrity": "sha512-3S625TMcARX71wBc2qubHaoUwMEn+l9TCsaIzYI/ET31Xm2c9YQ+zhGgpydjorwQO9pLfR/6peTzS/0G3J/hDw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.31.0", + "@typescript-eslint/visitor-keys": "5.31.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.31.0.tgz", + "integrity": "sha512-kcVPdQS6VIpVTQ7QnGNKMFtdJdvnStkqS5LeALr4rcwx11G6OWb2HB17NMPnlRHvaZP38hL9iK8DdE9Fne7NYg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.31.0", + "@typescript-eslint/types": "5.31.0", + "@typescript-eslint/typescript-estree": "5.31.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.31.0.tgz", + "integrity": "sha512-ZK0jVxSjS4gnPirpVjXHz7mgdOsZUHzNYSfTw2yPa3agfbt9YfqaBiBZFSSxeBWnpWkzCxTfUpnzA3Vily/CSg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.31.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@wessberg/stringutil": { + "version": "1.0.19", + "resolved": "https://registry.npmjs.org/@wessberg/stringutil/-/stringutil-1.0.19.tgz", + "integrity": "sha512-9AZHVXWlpN8Cn9k5BC/O0Dzb9E9xfEMXzYrNunwvkUTvuK7xgQPVRZpLo+jWCOZ5r8oBa8NIrHuPEu1hzbb6bg==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "dev": true + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dev": true, + "dependencies": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/agentkeepalive": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", + "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "depd": "^1.1.2", + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/append-transform": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", + "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", + "dev": true, + "dependencies": { + "default-require-extensions": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", + "dev": true + }, + "node_modules/archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", + "dev": true + }, + "node_modules/are-we-there-yet": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", + "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", + "dev": true, + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.10.2", + "@babel/runtime-corejs3": "^7.10.2" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/array-includes": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", + "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", + "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", + "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dev": true, + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==", + "dev": true + }, + "node_modules/async-foreach": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", + "integrity": "sha512-VUeSMD8nEGBWaZK4lizI1sf3yEC7pnAQ/mrI7pC2fBz2s/tq5jWWEngTwaf0Gruu/OoXRGLGg1XFqpYBiGTYJA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "node_modules/autoprefixer": { + "version": "10.4.7", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.7.tgz", + "integrity": "sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + } + ], + "dependencies": { + "browserslist": "^4.20.3", + "caniuse-lite": "^1.0.30001335", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "dev": true + }, + "node_modules/axe-core": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.3.tgz", + "integrity": "sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/axobject-query": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", + "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==", + "dev": true + }, + "node_modules/babel-jest": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.1.tgz", + "integrity": "sha512-MEt0263viUdAkTq5D7upHPNxvt4n9uLUGa6pPz3WviNBMtOmStb1lIXS3QobnoqM+qnH+vr4EKlvhe8QcmxIYw==", + "dev": true, + "dependencies": { + "@jest/transform": "^28.1.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^28.1.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "dependencies": { + "object.assign": "^4.1.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.1.tgz", + "integrity": "sha512-NovGCy5Hn25uMJSAU8FaHqzs13cFoOI4lhIujiepssjCKRsAo3TA734RDWSGxuFTsUJXerYOqQQodlxgmtqbzw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", + "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.3.1", + "semver": "^6.1.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", + "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.1", + "core-js-compat": "^3.21.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", + "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-28.1.1.tgz", + "integrity": "sha512-FCq9Oud0ReTeWtcneYf/48981aTfXYuB9gbU4rBNNJVBSQ6ssv7E6v/qvbBxtOWwZFXjLZwpg+W3q7J6vhH25g==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^28.1.1", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dev": true, + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brotli-size": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/brotli-size/-/brotli-size-4.0.0.tgz", + "integrity": "sha512-uA9fOtlTRC0iqKfzff1W34DXUA3GyVqbUaeo3Rw3d4gd1eavKVCETXrn3NzO74W+UVkG3UHu8WxUi+XvKI/huA==", + "dev": true, + "dependencies": { + "duplexer": "0.1.1" + }, + "engines": { + "node": ">= 10.16.0" + } + }, + "node_modules/browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "dev": true + }, + "node_modules/browserslist": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.0.tgz", + "integrity": "sha512-UQxE0DIhRB5z/zDz9iA03BOfxaN2+GQdBYH/2WrSIWEUrnpzTPJbhqt+umq6r3acaPRTW1FNTkrcp0PXgtFkvA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001358", + "electron-to-chromium": "^1.4.164", + "node-releases": "^2.0.5", + "update-browserslist-db": "^1.0.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/browserslist-generator": { + "version": "1.0.66", + "resolved": "https://registry.npmjs.org/browserslist-generator/-/browserslist-generator-1.0.66.tgz", + "integrity": "sha512-aFDax4Qzh29DdyhHQBD2Yu2L5OvaDnvYFMbmpLrLwwaNK4H6dHEhC/Nxv93/+mfAA+a/t94ln0P2JZvHO6LZDA==", + "dev": true, + "dependencies": { + "@mdn/browser-compat-data": "^4.1.16", + "@types/object-path": "^0.11.1", + "@types/semver": "^7.3.9", + "@types/ua-parser-js": "^0.7.36", + "browserslist": "4.20.2", + "caniuse-lite": "^1.0.30001328", + "isbot": "3.4.5", + "object-path": "^0.11.8", + "semver": "^7.3.7", + "ua-parser-js": "^1.0.2" + }, + "engines": { + "node": ">=8.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/wessberg/browserslist-generator?sponsor=1" + } + }, + "node_modules/browserslist-generator/node_modules/browserslist": { + "version": "4.20.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz", + "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001317", + "electron-to-chromium": "^1.4.84", + "escalade": "^3.1.1", + "node-releases": "^2.0.2", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/browserslist-generator/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/bufferutil": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.6.tgz", + "integrity": "sha512-jduaYOYtnio4aIAyc6UbvPCVcgq7nYpVnucyxr6eCYg/Woad9Hf/oxxBRDnGGjPfjUm6j5O/uBWhIu4iLebFaw==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=6.14.2" + } + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacache": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "dev": true, + "dependencies": { + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cacache/node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caching-transform": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", + "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", + "dev": true, + "dependencies": { + "hasha": "^5.0.0", + "make-dir": "^3.0.0", + "package-hash": "^4.0.0", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/caching-transform/node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001363", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001363.tgz", + "integrity": "sha512-HpQhpzTGGPVMnCjIomjt+jvyUu8vNFo3TaDiZ/RcoTrlOq/5+tC8zHdsbgFB6MxmaY+jCpsH09aD80Bb4Ow3Sg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "node_modules/canvas": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/canvas/-/canvas-2.9.1.tgz", + "integrity": "sha512-vSQti1uG/2gjv3x6QLOZw7TctfufaerTWbVe+NSduHxxLGB+qf3kFgQ6n66DSnuoINtVUjrLLIK2R+lxrBG07A==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@mapbox/node-pre-gyp": "^1.0.0", + "nan": "^2.15.0", + "simple-get": "^3.0.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "dev": true + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ci-info": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz", + "integrity": "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==", + "dev": true + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", + "dev": true + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-table3": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.2.tgz", + "integrity": "sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true, + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/colord": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", + "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "node_modules/compatfactory": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/compatfactory/-/compatfactory-1.0.1.tgz", + "integrity": "sha512-hR9u0HSZTKDNNchPtMHg6myeNx0XO+av7UZIJPsi4rPALJBHi/W5Mbwi19hC/xm6y3JkYpxVYjTqnSGsU5X/iw==", + "dev": true, + "dependencies": { + "helpertypes": "^0.0.18" + }, + "engines": { + "node": ">=14.9.0" + }, + "peerDependencies": { + "typescript": ">=3.x || >= 4.x" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", + "dev": true + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/core-js": { + "version": "3.23.2", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.23.2.tgz", + "integrity": "sha512-ELJOWxNrJfOH/WK4VJ3Qd+fOqZuOuDNDJz0xG6Bt4mGg2eO/UT9CljCrbqDGovjLKUrGajEEBcoTOc0w+yBYeQ==", + "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", + "dev": true, + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.23.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.23.2.tgz", + "integrity": "sha512-lrgZvxFwbQp9v7E8mX0rJ+JX7Bvh4eGULZXA1IAyjlsnWvCdw6TF8Tg6xtaSUSJMrSrMaLdpmk+V54LM1dvfOA==", + "dev": true, + "dependencies": { + "browserslist": "^4.20.4", + "semver": "7.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/core-js-pure": { + "version": "3.23.2", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.23.2.tgz", + "integrity": "sha512-t6u7H4Ff/yZNk+zqTr74UjCcZ3k8ApBryeLLV4rYQd9aF3gqmjjGjjR44ENfeBMH8VVvSynIjAJ0mUuFhzQtrA==", + "deprecated": "core-js-pure@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js-pure.", + "dev": true, + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "dev": true + }, + "node_modules/cosmiconfig": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "dev": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crosspath": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crosspath/-/crosspath-2.0.0.tgz", + "integrity": "sha512-ju88BYCQ2uvjO2bR+SsgLSTwTSctU+6Vp2ePbKPgSCZyy4MWZxYsT738DlKVRE5utUjobjPRm1MkTYKJxCmpTA==", + "dev": true, + "dependencies": { + "@types/node": "^17.0.36" + }, + "engines": { + "node": ">=14.9.0" + } + }, + "node_modules/crosspath/node_modules/@types/node": { + "version": "17.0.45", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", + "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==", + "dev": true + }, + "node_modules/css-declaration-sorter": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.0.tgz", + "integrity": "sha512-OGT677UGHJTAVMRhPO+HJ4oKln3wkBTwtDFH0ojbqm+MJm6xuDMHp2nkhh/ThaBqq20IbraBQSWKfSLNHQO9Og==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "5.1.12", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.12.tgz", + "integrity": "sha512-TgvArbEZu0lk/dvg2ja+B7kYoD7BBCmn3+k58xD0qjrGHsFzXY/wKTo9M5egcUCabPol05e/PVoIu79s2JN4WQ==", + "dev": true, + "dependencies": { + "cssnano-preset-default": "^5.2.12", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-preset-default": { + "version": "5.2.12", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.12.tgz", + "integrity": "sha512-OyCBTZi+PXgylz9HAA5kHyoYhfGcYdwFmyaJzWnzxuGRtnMw/kR6ilW9XzlzlRAtB6PLT/r+prYgkef7hngFew==", + "dev": true, + "dependencies": { + "css-declaration-sorter": "^6.3.0", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.0", + "postcss-convert-values": "^5.1.2", + "postcss-discard-comments": "^5.1.2", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.6", + "postcss-merge-rules": "^5.1.2", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.3", + "postcss-minify-selectors": "^5.2.1", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.1", + "postcss-normalize-repeat-style": "^5.1.1", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.0", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.3", + "postcss-reduce-initial": "^5.1.0", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/cssom": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", + "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", + "dev": true + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "dev": true + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/data-urls": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", + "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", + "dev": true, + "dependencies": { + "abab": "^2.0.6", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/data-urls/node_modules/whatwg-url": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "dev": true, + "dependencies": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", + "integrity": "sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg==", + "dev": true, + "dependencies": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decimal.js": { + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", + "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", + "dev": true + }, + "node_modules/decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/decompress-response": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", + "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", + "dev": true, + "dependencies": { + "mimic-response": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-require-extensions": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", + "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==", + "dev": true, + "dependencies": { + "strip-bom": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/del": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/del/-/del-5.1.0.tgz", + "integrity": "sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==", + "dev": true, + "dependencies": { + "globby": "^10.0.1", + "graceful-fs": "^4.2.2", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.1", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/del/node_modules/globby": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", + "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", + "dev": true, + "dependencies": { + "@types/glob": "^7.1.1", + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "dev": true + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/detect-libc": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", + "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/diff-sequences": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", + "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", + "dev": true, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-accessibility-api": { + "version": "0.5.14", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.14.tgz", + "integrity": "sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg==", + "dev": true + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domexception": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", + "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", + "dev": true, + "dependencies": { + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/duplexer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", + "integrity": "sha512-sxNZ+ljy+RA1maXoUReeqBBpBC6RLKmg5ewzV+x+mSETmWNoKdZN6vcQjpFROemza23hGFskJtFNoUWUaQ+R4Q==", + "dev": true + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "dev": true, + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.167", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.167.tgz", + "integrity": "sha512-lPHuHXBwpkr4RcfaZBKm6TKOWG/1N9mVggUpP4fY3l1JIUU2x4fkM8928smYdZ5lF+6KCTAxo1aK9JmqT+X71Q==", + "dev": true + }, + "node_modules/emittery": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", + "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true + }, + "node_modules/esbuild": { + "version": "0.14.47", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.47.tgz", + "integrity": "sha512-wI4ZiIfFxpkuxB8ju4MHrGwGLyp1+awEHAHVpx6w7a+1pmYIq8T9FGEVVwFo0iFierDoMj++Xq69GXWYn2EiwA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "esbuild-android-64": "0.14.47", + "esbuild-android-arm64": "0.14.47", + "esbuild-darwin-64": "0.14.47", + "esbuild-darwin-arm64": "0.14.47", + "esbuild-freebsd-64": "0.14.47", + "esbuild-freebsd-arm64": "0.14.47", + "esbuild-linux-32": "0.14.47", + "esbuild-linux-64": "0.14.47", + "esbuild-linux-arm": "0.14.47", + "esbuild-linux-arm64": "0.14.47", + "esbuild-linux-mips64le": "0.14.47", + "esbuild-linux-ppc64le": "0.14.47", + "esbuild-linux-riscv64": "0.14.47", + "esbuild-linux-s390x": "0.14.47", + "esbuild-netbsd-64": "0.14.47", + "esbuild-openbsd-64": "0.14.47", + "esbuild-sunos-64": "0.14.47", + "esbuild-windows-32": "0.14.47", + "esbuild-windows-64": "0.14.47", + "esbuild-windows-arm64": "0.14.47" + } + }, + "node_modules/esbuild-android-64": { + "version": "0.14.47", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.47.tgz", + "integrity": "sha512-R13Bd9+tqLVFndncMHssZrPWe6/0Kpv2/dt4aA69soX4PRxlzsVpCvoJeFE8sOEoeVEiBkI0myjlkDodXlHa0g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-android-arm64": { + "version": "0.14.47", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.47.tgz", + "integrity": "sha512-OkwOjj7ts4lBp/TL6hdd8HftIzOy/pdtbrNA4+0oVWgGG64HrdVzAF5gxtJufAPOsEjkyh1oIYvKAUinKKQRSQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-64": { + "version": "0.14.47", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.47.tgz", + "integrity": "sha512-R6oaW0y5/u6Eccti/TS6c/2c1xYTb1izwK3gajJwi4vIfNs1s8B1dQzI1UiC9T61YovOQVuePDcfqHLT3mUZJA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-arm64": { + "version": "0.14.47", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.47.tgz", + "integrity": "sha512-seCmearlQyvdvM/noz1L9+qblC5vcBrhUaOoLEDDoLInF/VQ9IkobGiLlyTPYP5dW1YD4LXhtBgOyevoIHGGnw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-64": { + "version": "0.14.47", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.47.tgz", + "integrity": "sha512-ZH8K2Q8/Ux5kXXvQMDsJcxvkIwut69KVrYQhza/ptkW50DC089bCVrJZZ3sKzIoOx+YPTrmsZvqeZERjyYrlvQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-arm64": { + "version": "0.14.47", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.47.tgz", + "integrity": "sha512-ZJMQAJQsIOhn3XTm7MPQfCzEu5b9STNC+s90zMWe2afy9EwnHV7Ov7ohEMv2lyWlc2pjqLW8QJnz2r0KZmeAEQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-32": { + "version": "0.14.47", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.47.tgz", + "integrity": "sha512-FxZOCKoEDPRYvq300lsWCTv1kcHgiiZfNrPtEhFAiqD7QZaXrad8LxyJ8fXGcWzIFzRiYZVtB3ttvITBvAFhKw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-64": { + "version": "0.14.47", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.47.tgz", + "integrity": "sha512-nFNOk9vWVfvWYF9YNYksZptgQAdstnDCMtR6m42l5Wfugbzu11VpMCY9XrD4yFxvPo9zmzcoUL/88y0lfJZJJw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm": { + "version": "0.14.47", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.47.tgz", + "integrity": "sha512-ZGE1Bqg/gPRXrBpgpvH81tQHpiaGxa8c9Rx/XOylkIl2ypLuOcawXEAo8ls+5DFCcRGt/o3sV+PzpAFZobOsmA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm64": { + "version": "0.14.47", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.47.tgz", + "integrity": "sha512-ywfme6HVrhWcevzmsufjd4iT3PxTfCX9HOdxA7Hd+/ZM23Y9nXeb+vG6AyA6jgq/JovkcqRHcL9XwRNpWG6XRw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-mips64le": { + "version": "0.14.47", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.47.tgz", + "integrity": "sha512-mg3D8YndZ1LvUiEdDYR3OsmeyAew4MA/dvaEJxvyygahWmpv1SlEEnhEZlhPokjsUMfRagzsEF/d/2XF+kTQGg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-ppc64le": { + "version": "0.14.47", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.47.tgz", + "integrity": "sha512-WER+f3+szmnZiWoK6AsrTKGoJoErG2LlauSmk73LEZFQ/iWC+KhhDsOkn1xBUpzXWsxN9THmQFltLoaFEH8F8w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-riscv64": { + "version": "0.14.47", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.47.tgz", + "integrity": "sha512-1fI6bP3A3rvI9BsaaXbMoaOjLE3lVkJtLxsgLHqlBhLlBVY7UqffWBvkrX/9zfPhhVMd9ZRFiaqXnB1T7BsL2g==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-s390x": { + "version": "0.14.47", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.47.tgz", + "integrity": "sha512-eZrWzy0xFAhki1CWRGnhsHVz7IlSKX6yT2tj2Eg8lhAwlRE5E96Hsb0M1mPSE1dHGpt1QVwwVivXIAacF/G6mw==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-netbsd-64": { + "version": "0.14.47", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.47.tgz", + "integrity": "sha512-Qjdjr+KQQVH5Q2Q1r6HBYswFTToPpss3gqCiSw2Fpq/ua8+eXSQyAMG+UvULPqXceOwpnPo4smyZyHdlkcPppQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-openbsd-64": { + "version": "0.14.47", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.47.tgz", + "integrity": "sha512-QpgN8ofL7B9z8g5zZqJE+eFvD1LehRlxr25PBkjyyasakm4599iroUpaj96rdqRlO2ShuyqwJdr+oNqWwTUmQw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-sunos-64": { + "version": "0.14.47", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.47.tgz", + "integrity": "sha512-uOeSgLUwukLioAJOiGYm3kNl+1wJjgJA8R671GYgcPgCx7QR73zfvYqXFFcIO93/nBdIbt5hd8RItqbbf3HtAQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-32": { + "version": "0.14.47", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.47.tgz", + "integrity": "sha512-H0fWsLTp2WBfKLBgwYT4OTfFly4Im/8B5f3ojDv1Kx//kiubVY0IQunP2Koc/fr/0wI7hj3IiBDbSrmKlrNgLQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-64": { + "version": "0.14.47", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.47.tgz", + "integrity": "sha512-/Pk5jIEH34T68r8PweKRi77W49KwanZ8X6lr3vDAtOlH5EumPE4pBHqkCUdELanvsT14yMXLQ/C/8XPi1pAtkQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-arm64": { + "version": "0.14.47", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.47.tgz", + "integrity": "sha512-HFSW2lnp62fl86/qPQlqw6asIwCnEsEoNIL1h2uVMgakddf+vUuMcCbtUY1i8sst7KkgHrVKCJQB33YhhOweCQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "dev": true, + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.20.0.tgz", + "integrity": "sha512-d4ixhz5SKCa1D6SCPrivP7yYVi7nyD6A4vs6HIAul9ujBzcEmZVM3/0NN/yu5nKhmO1wjp5xQ46iRfmDGlOviA==", + "dev": true, + "dependencies": { + "@eslint/eslintrc": "^1.3.0", + "@humanwhocodes/config-array": "^0.9.2", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.2", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-airbnb": { + "version": "19.0.4", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-19.0.4.tgz", + "integrity": "sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew==", + "dev": true, + "dependencies": { + "eslint-config-airbnb-base": "^15.0.0", + "object.assign": "^4.1.2", + "object.entries": "^1.1.5" + }, + "engines": { + "node": "^10.12.0 || ^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^7.32.0 || ^8.2.0", + "eslint-plugin-import": "^2.25.3", + "eslint-plugin-jsx-a11y": "^6.5.1", + "eslint-plugin-react": "^7.28.0", + "eslint-plugin-react-hooks": "^4.3.0" + } + }, + "node_modules/eslint-config-airbnb-base": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", + "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", + "dev": true, + "dependencies": { + "confusing-browser-globals": "^1.0.10", + "object.assign": "^4.1.2", + "object.entries": "^1.1.5", + "semver": "^6.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "peerDependencies": { + "eslint": "^7.32.0 || ^8.2.0", + "eslint-plugin-import": "^2.25.2" + } + }, + "node_modules/eslint-config-prettier": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", + "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", + "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "find-up": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils/node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "dev": true, + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "dev": true, + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "dev": true, + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.3", + "has": "^1.0.3", + "is-core-module": "^2.8.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.5", + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/eslint-plugin-jest": { + "version": "26.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-26.7.0.tgz", + "integrity": "sha512-/YNitdfG3o3cC6juZziAdkk6nfJt01jXVfj4AgaYVLs7bupHzRDL5K+eipdzhDXtQsiqaX1TzfwSuRlEgeln1A==", + "dev": true, + "dependencies": { + "@typescript-eslint/utils": "^5.10.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "jest": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-json": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-json/-/eslint-plugin-json-3.1.0.tgz", + "integrity": "sha512-MrlG2ynFEHe7wDGwbUuFPsaT2b1uhuEFhJ+W1f1u+1C2EkXmTYJp4B1aAdQQ8M+CC3t//N/oRKiIVw14L2HR1g==", + "dev": true, + "dependencies": { + "lodash": "^4.17.21", + "vscode-json-languageservice": "^4.1.6" + }, + "engines": { + "node": ">=12.0" + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.1.tgz", + "integrity": "sha512-sXgFVNHiWffBq23uiS/JaP6eVR622DqwB4yTzKvGZGcPq6/yZ3WmOZfuBks/vHWo9GaFOqC2ZK4i6+C35knx7Q==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.18.9", + "aria-query": "^4.2.2", + "array-includes": "^3.1.5", + "ast-types-flow": "^0.0.7", + "axe-core": "^4.4.3", + "axobject-query": "^2.2.0", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "has": "^1.0.3", + "jsx-ast-utils": "^3.3.2", + "language-tags": "^1.0.5", + "minimatch": "^3.1.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", + "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", + "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "eslint": ">=7.28.0", + "prettier": ">=2.0.0" + }, + "peerDependenciesMeta": { + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.30.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.30.0.tgz", + "integrity": "sha512-RgwH7hjW48BleKsYyHK5vUAvxtE9SMPDKmcPRQgtRCYaZA0XQPt5FSkrU3nhz5ifzMZcA8opwmRJ2cmOO8tr5A==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.5", + "array.prototype.flatmap": "^1.3.0", + "doctrine": "^2.1.0", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.5", + "object.fromentries": "^2.0.5", + "object.hasown": "^1.1.1", + "object.values": "^1.1.5", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.3", + "semver": "^6.3.0", + "string.prototype.matchall": "^4.0.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", + "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", + "dev": true, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", + "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-scope/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", + "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", + "dev": true, + "dependencies": { + "acorn": "^8.7.1", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/espree/node_modules/acorn": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-28.1.1.tgz", + "integrity": "sha512-/AANEwGL0tWBwzLNOvO0yUdy2D52jVdNXppOqswC49sxMN2cPWsGCQdzuIf9tj6hHoBQzNvx75JUYuQAckPo3w==", + "dev": true, + "dependencies": { + "@jest/expect-utils": "^28.1.1", + "jest-get-type": "^28.0.2", + "jest-matcher-utils": "^28.1.1", + "jest-message-util": "^28.1.1", + "jest-util": "^28.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "dev": true, + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/filesize": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", + "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/filter-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", + "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", + "dev": true + }, + "node_modules/foreground-child": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/infusion" + } + }, + "node_modules/fromentries": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", + "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gauge": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", + "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", + "dev": true, + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", + "signal-exit": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/gaze": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "dev": true, + "dependencies": { + "globule": "^1.0.0" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", + "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globule": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.4.tgz", + "integrity": "sha512-OPTIfhMBh7JbBYDpa5b+Q5ptmMWKwcNcFSR/0c6t8V4f3ZAVBEsKNY37QdVqmLRYSMhOUGYrY0QhSoEpzGr/Eg==", + "dev": true, + "dependencies": { + "glob": "~7.1.1", + "lodash": "^4.17.21", + "minimatch": "~3.0.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/globule/node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/globule/node_modules/minimatch": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", + "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "node_modules/gzip-size": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-7.0.0.tgz", + "integrity": "sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA==", + "dev": true, + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gzip-size/node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", + "dev": true, + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", + "dev": true + }, + "node_modules/hasha": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", + "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", + "dev": true, + "dependencies": { + "is-stream": "^2.0.0", + "type-fest": "^0.8.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/hasha/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/helpertypes": { + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/helpertypes/-/helpertypes-0.0.18.tgz", + "integrity": "sha512-XRhfbSEmR+poXUC5/8AbmYNJb2riOT6qPzjGJZr0S9YedHiaY+/tzPYzWMUclYMEdCYo/1l8PDYrQFCj02v97w==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", + "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", + "dev": true, + "dependencies": { + "whatwg-encoding": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true + }, + "node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "dev": true, + "dependencies": { + "ms": "^2.0.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ip": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", + "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", + "dev": true + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-builtin-module": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.1.0.tgz", + "integrity": "sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg==", + "dev": true, + "dependencies": { + "builtin-modules": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", + "dev": true + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true + }, + "node_modules/is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "dev": true, + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/isbot": { + "version": "3.4.5", + "resolved": "https://registry.npmjs.org/isbot/-/isbot-3.4.5.tgz", + "integrity": "sha512-+KD6q1BBtw0iK9aGBGSfxJ31/ZgizKRjhm8ebgJUBMx0aeeQuIJ1I72beCoIrltIZGrSm4vmrxRxrG5n1aUTtw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", + "dev": true + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-hook": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", + "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", + "dev": true, + "dependencies": { + "append-transform": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", + "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-processinfo": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz", + "integrity": "sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==", + "dev": true, + "dependencies": { + "archy": "^1.0.0", + "cross-spawn": "^7.0.3", + "istanbul-lib-coverage": "^3.2.0", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", + "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-28.1.1.tgz", + "integrity": "sha512-qw9YHBnjt6TCbIDMPMpJZqf9E12rh6869iZaN08/vpOGgHJSAaLLUn6H8W3IAEuy34Ls3rct064mZLETkxJ2XA==", + "dev": true, + "dependencies": { + "@jest/core": "^28.1.1", + "@jest/types": "^28.1.1", + "import-local": "^3.0.2", + "jest-cli": "^28.1.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-28.0.2.tgz", + "integrity": "sha512-QX9u+5I2s54ZnGoMEjiM2WeBvJR2J7w/8ZUmH2um/WLAuGAYFQcsVXY9+1YL6k0H/AGUdH8pXUAv6erDqEsvIA==", + "dev": true, + "dependencies": { + "execa": "^5.0.0", + "throat": "^6.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-circus": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-28.1.1.tgz", + "integrity": "sha512-75+BBVTsL4+p2w198DQpCeyh1RdaS2lhEG87HkaFX/UG0gJExVq2skG2pT7XZEGBubNj2CytcWSPan4QEPNosw==", + "dev": true, + "dependencies": { + "@jest/environment": "^28.1.1", + "@jest/expect": "^28.1.1", + "@jest/test-result": "^28.1.1", + "@jest/types": "^28.1.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^28.1.1", + "jest-matcher-utils": "^28.1.1", + "jest-message-util": "^28.1.1", + "jest-runtime": "^28.1.1", + "jest-snapshot": "^28.1.1", + "jest-util": "^28.1.1", + "pretty-format": "^28.1.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-circus/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/pretty-format": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.1.tgz", + "integrity": "sha512-wwJbVTGFHeucr5Jw2bQ9P+VYHyLdAqedFLEkdQUVaBF/eiidDwH5OpilINq4mEfhbCjLnirt6HTTDhv1HaTIQw==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-circus/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/jest-cli": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-28.1.1.tgz", + "integrity": "sha512-+sUfVbJqb1OjBZ0OdBbI6OWfYM1i7bSfzYy6gze1F1w3OKWq8ZTEKkZ8a7ZQPq6G/G1qMh/uKqpdWhgl11NFQQ==", + "dev": true, + "dependencies": { + "@jest/core": "^28.1.1", + "@jest/test-result": "^28.1.1", + "@jest/types": "^28.1.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^28.1.1", + "jest-util": "^28.1.1", + "jest-validate": "^28.1.1", + "prompts": "^2.0.1", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-config": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-28.1.1.tgz", + "integrity": "sha512-tASynMhS+jVV85zKvjfbJ8nUyJS/jUSYZ5KQxLUN2ZCvcQc/OmhQl2j6VEL3ezQkNofxn5pQ3SPYWPHb0unTZA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^28.1.1", + "@jest/types": "^28.1.1", + "babel-jest": "^28.1.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^28.1.1", + "jest-environment-node": "^28.1.1", + "jest-get-type": "^28.0.2", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.1", + "jest-runner": "^28.1.1", + "jest-util": "^28.1.1", + "jest-validate": "^28.1.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^28.1.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/pretty-format": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.1.tgz", + "integrity": "sha512-wwJbVTGFHeucr5Jw2bQ9P+VYHyLdAqedFLEkdQUVaBF/eiidDwH5OpilINq4mEfhbCjLnirt6HTTDhv1HaTIQw==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-config/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/jest-diff": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", + "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^26.6.2", + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-diff/node_modules/jest-get-type": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", + "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", + "dev": true, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-docblock": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-28.1.1.tgz", + "integrity": "sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==", + "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-each": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-28.1.1.tgz", + "integrity": "sha512-A042rqh17ZvEhRceDMi784ppoXR7MWGDEKTXEZXb4svt0eShMZvijGxzKsx+yIjeE8QYmHPrnHiTSQVhN4nqaw==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.1", + "chalk": "^4.0.0", + "jest-get-type": "^28.0.2", + "jest-util": "^28.1.1", + "pretty-format": "^28.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-each/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-each/node_modules/pretty-format": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.1.tgz", + "integrity": "sha512-wwJbVTGFHeucr5Jw2bQ9P+VYHyLdAqedFLEkdQUVaBF/eiidDwH5OpilINq4mEfhbCjLnirt6HTTDhv1HaTIQw==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-each/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/jest-environment-jsdom": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-28.1.1.tgz", + "integrity": "sha512-41ZvgSoPNcKG5q3LuuOcAczdBxRq9DbZkPe24okN6ZCmiZdAfFtPg3z+lOtsT1fM6OAERApKT+3m0MRDQH2zIA==", + "dev": true, + "dependencies": { + "@jest/environment": "^28.1.1", + "@jest/fake-timers": "^28.1.1", + "@jest/types": "^28.1.1", + "@types/jsdom": "^16.2.4", + "@types/node": "*", + "jest-mock": "^28.1.1", + "jest-util": "^28.1.1", + "jsdom": "^19.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-28.1.1.tgz", + "integrity": "sha512-2aV/eeY/WNgUUJrrkDJ3cFEigjC5fqT1+fCclrY6paqJ5zVPoM//sHmfgUUp7WLYxIdbPwMiVIzejpN56MxnNA==", + "dev": true, + "dependencies": { + "@jest/environment": "^28.1.1", + "@jest/fake-timers": "^28.1.1", + "@jest/types": "^28.1.1", + "@types/node": "*", + "jest-mock": "^28.1.1", + "jest-util": "^28.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", + "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.1.tgz", + "integrity": "sha512-ZrRSE2o3Ezh7sb1KmeLEZRZ4mgufbrMwolcFHNRSjKZhpLa8TdooXOOFlSwoUzlbVs1t0l7upVRW2K7RWGHzbQ==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.1", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^28.0.2", + "jest-util": "^28.1.1", + "jest-worker": "^28.1.1", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-28.1.1.tgz", + "integrity": "sha512-4jvs8V8kLbAaotE+wFR7vfUGf603cwYtFf1/PYEsyX2BAjSzj8hQSVTP6OWzseTl0xL6dyHuKs2JAks7Pfubmw==", + "dev": true, + "dependencies": { + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-leak-detector/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-leak-detector/node_modules/pretty-format": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.1.tgz", + "integrity": "sha512-wwJbVTGFHeucr5Jw2bQ9P+VYHyLdAqedFLEkdQUVaBF/eiidDwH5OpilINq4mEfhbCjLnirt6HTTDhv1HaTIQw==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-leak-detector/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/jest-matcher-utils": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.1.tgz", + "integrity": "sha512-NPJPRWrbmR2nAJ+1nmnfcKKzSwgfaciCCrYZzVnNoxVoyusYWIjkBMNvu0RHJe7dNj4hH3uZOPZsQA+xAYWqsw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^28.1.1", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/diff-sequences": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", + "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/jest-diff": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.1.tgz", + "integrity": "sha512-/MUUxeR2fHbqHoMMiffe/Afm+U8U4olFRJ0hiVG2lZatPJcnGxx292ustVu7bULhjV65IYMxRdploAKLbcrsyg==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^28.1.1", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/pretty-format": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.1.tgz", + "integrity": "sha512-wwJbVTGFHeucr5Jw2bQ9P+VYHyLdAqedFLEkdQUVaBF/eiidDwH5OpilINq4mEfhbCjLnirt6HTTDhv1HaTIQw==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/jest-message-util": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.1.tgz", + "integrity": "sha512-xoDOOT66fLfmTRiqkoLIU7v42mal/SqwDKvfmfiWAdJMSJiU+ozgluO7KbvoAgiwIrrGZsV7viETjc8GNrA/IQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^28.1.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-message-util/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/pretty-format": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.1.tgz", + "integrity": "sha512-wwJbVTGFHeucr5Jw2bQ9P+VYHyLdAqedFLEkdQUVaBF/eiidDwH5OpilINq4mEfhbCjLnirt6HTTDhv1HaTIQw==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-message-util/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/jest-mock": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.1.tgz", + "integrity": "sha512-bDCb0FjfsmKweAvE09dZT59IMkzgN0fYBH6t5S45NoJfd2DHkS3ySG2K+hucortryhO3fVuXdlxWcbtIuV/Skw==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.1", + "@types/node": "*" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", + "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", + "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-28.1.1.tgz", + "integrity": "sha512-/d1UbyUkf9nvsgdBildLe6LAD4DalgkgZcKd0nZ8XUGPyA/7fsnaQIlKVnDiuUXv/IeZhPEDrRJubVSulxrShA==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^28.1.1", + "jest-validate": "^28.1.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.1.tgz", + "integrity": "sha512-p8Y150xYJth4EXhOuB8FzmS9r8IGLEioiaetgdNGb9VHka4fl0zqWlVe4v7mSkYOuEUg2uB61iE+zySDgrOmgQ==", + "dev": true, + "dependencies": { + "jest-regex-util": "^28.0.2", + "jest-snapshot": "^28.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-runner": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-28.1.1.tgz", + "integrity": "sha512-W5oFUiDBgTsCloTAj6q95wEvYDB0pxIhY6bc5F26OucnwBN+K58xGTGbliSMI4ChQal5eANDF+xvELaYkJxTmA==", + "dev": true, + "dependencies": { + "@jest/console": "^28.1.1", + "@jest/environment": "^28.1.1", + "@jest/test-result": "^28.1.1", + "@jest/transform": "^28.1.1", + "@jest/types": "^28.1.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "graceful-fs": "^4.2.9", + "jest-docblock": "^28.1.1", + "jest-environment-node": "^28.1.1", + "jest-haste-map": "^28.1.1", + "jest-leak-detector": "^28.1.1", + "jest-message-util": "^28.1.1", + "jest-resolve": "^28.1.1", + "jest-runtime": "^28.1.1", + "jest-util": "^28.1.1", + "jest-watcher": "^28.1.1", + "jest-worker": "^28.1.1", + "source-map-support": "0.5.13", + "throat": "^6.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-runtime": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-28.1.1.tgz", + "integrity": "sha512-J89qEJWW0leOsqyi0D9zHpFEYHwwafFdS9xgvhFHtIdRghbadodI0eA+DrthK/1PebBv3Px8mFSMGKrtaVnleg==", + "dev": true, + "dependencies": { + "@jest/environment": "^28.1.1", + "@jest/fake-timers": "^28.1.1", + "@jest/globals": "^28.1.1", + "@jest/source-map": "^28.0.2", + "@jest/test-result": "^28.1.1", + "@jest/transform": "^28.1.1", + "@jest/types": "^28.1.1", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.1", + "jest-message-util": "^28.1.1", + "jest-mock": "^28.1.1", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.1", + "jest-snapshot": "^28.1.1", + "jest-util": "^28.1.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.1.tgz", + "integrity": "sha512-1KjqHJ98adRcbIdMizjF5DipwZFbvxym/kFO4g4fVZCZRxH/dqV8TiBFCa6rqic3p0karsy8RWS1y4E07b7P0A==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^28.1.1", + "@jest/transform": "^28.1.1", + "@jest/types": "^28.1.1", + "@types/babel__traverse": "^7.0.6", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^28.1.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^28.1.1", + "jest-get-type": "^28.0.2", + "jest-haste-map": "^28.1.1", + "jest-matcher-utils": "^28.1.1", + "jest-message-util": "^28.1.1", + "jest-util": "^28.1.1", + "natural-compare": "^1.4.0", + "pretty-format": "^28.1.1", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-snapshot/node_modules/diff-sequences": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", + "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/jest-diff": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.1.tgz", + "integrity": "sha512-/MUUxeR2fHbqHoMMiffe/Afm+U8U4olFRJ0hiVG2lZatPJcnGxx292ustVu7bULhjV65IYMxRdploAKLbcrsyg==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^28.1.1", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/pretty-format": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.1.tgz", + "integrity": "sha512-wwJbVTGFHeucr5Jw2bQ9P+VYHyLdAqedFLEkdQUVaBF/eiidDwH5OpilINq4mEfhbCjLnirt6HTTDhv1HaTIQw==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-util": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.1.tgz", + "integrity": "sha512-FktOu7ca1DZSyhPAxgxB6hfh2+9zMoJ7aEQA759Z6p45NuO8mWcqujH+UdHlCm/V6JTWwDztM2ITCzU1ijJAfw==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-validate": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-28.1.1.tgz", + "integrity": "sha512-Kpf6gcClqFCIZ4ti5++XemYJWUPCFUW+N2gknn+KgnDf549iLul3cBuKVe1YcWRlaF8tZV8eJCap0eECOEE3Ug==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^28.0.2", + "leven": "^3.1.0", + "pretty-format": "^28.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-validate/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-validate/node_modules/pretty-format": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.1.tgz", + "integrity": "sha512-wwJbVTGFHeucr5Jw2bQ9P+VYHyLdAqedFLEkdQUVaBF/eiidDwH5OpilINq4mEfhbCjLnirt6HTTDhv1HaTIQw==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-validate/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/jest-watcher": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.1.tgz", + "integrity": "sha512-RQIpeZ8EIJMxbQrXpJQYIIlubBnB9imEHsxxE41f54ZwcqWLysL/A0ZcdMirf+XsMn3xfphVQVV4EW0/p7i7Ug==", + "dev": true, + "dependencies": { + "@jest/test-result": "^28.1.1", + "@jest/types": "^28.1.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "jest-util": "^28.1.1", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-worker": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.1.tgz", + "integrity": "sha512-Au7slXB08C6h+xbJPp7VIb6U0XX5Kc9uel/WFc6/rcTzGiaVCBRngBExSYuXSLFPULPSYU3cJ3ybS988lNFQhQ==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/joycon": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", + "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/js-base64": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", + "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", + "dev": true + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", + "dev": true + }, + "node_modules/jsdom": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-19.0.0.tgz", + "integrity": "sha512-RYAyjCbxy/vri/CfnjUWJQQtZ3LKlLnDqj+9XLNnJPgEGeirZs3hllKR20re8LUZ6o1b1X4Jat+Qd26zmP41+A==", + "dev": true, + "dependencies": { + "abab": "^2.0.5", + "acorn": "^8.5.0", + "acorn-globals": "^6.0.0", + "cssom": "^0.5.0", + "cssstyle": "^2.3.0", + "data-urls": "^3.0.1", + "decimal.js": "^10.3.1", + "domexception": "^4.0.0", + "escodegen": "^2.0.0", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^3.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^2.0.0", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^10.0.0", + "ws": "^8.2.3", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsdom/node_modules/acorn": { + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", + "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", + "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", + "dev": true + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "dev": true, + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.2.tgz", + "integrity": "sha512-4ZCADZHRkno244xlNnn4AOG6sRQ7iBZ5BbgZ4vW4y5IZw7cVUD1PPeblm1xx/nfmMxPdt/LHsXZW8z/j58+l9Q==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.5", + "object.assign": "^4.1.2" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/language-subtag-registry": { + "version": "0.3.21", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz", + "integrity": "sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==", + "dev": true + }, + "node_modules/language-tags": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", + "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==", + "dev": true, + "dependencies": { + "language-subtag-registry": "~0.3.2" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", + "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/livereload": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/livereload/-/livereload-0.9.3.tgz", + "integrity": "sha512-q7Z71n3i4X0R9xthAryBdNGVGAO2R5X+/xXpmKeuPMrteg+W2U8VusTKV3YiJbXZwKsOlFlHe+go6uSNjfxrZw==", + "dev": true, + "dependencies": { + "chokidar": "^3.5.0", + "livereload-js": "^3.3.1", + "opts": ">= 1.2.0", + "ws": "^7.4.3" + }, + "bin": { + "livereload": "bin/livereload.js" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/livereload-js": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-3.4.0.tgz", + "integrity": "sha512-F/pz9ZZP+R+arY94cECTZco7PXgBXyL+KVWUPZq8AQE9TOu14GV6fYeKOviv02JCvFa4Oi3Rs1hYEpfeajc+ow==", + "dev": true + }, + "node_modules/livereload/node_modules/ws": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.8.tgz", + "integrity": "sha512-ri1Id1WinAX5Jqn9HejiGb8crfRio0Qgu8+MtL36rlTA6RLsMdWt1Az/19A2Qij6uSHUMphEFaTKa4WG+UNHNw==", + "dev": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "node_modules/lodash.flattendeep": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", + "dev": true + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/lz-string": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", + "integrity": "sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ==", + "dev": true, + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-fetch-happen": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", + "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", + "dev": true, + "dependencies": { + "agentkeepalive": "^4.1.3", + "cacache": "^15.2.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.2", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^6.0.0", + "ssri": "^8.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/make-fetch-happen/node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/make-fetch-happen/node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + }, + "node_modules/meow": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", + "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", + "dev": true, + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize": "^1.2.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/mimic-response": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", + "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "node_modules/minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, + "dependencies": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/minipass": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.3.tgz", + "integrity": "sha512-N0BOsdFAlNRfmwMhjAsLVWOk7Ljmeb39iqFlsV1At+jqRhSUP9yeof8FyJu4imaJiSUp8vQebWD/guZwGQC8iA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-fetch": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", + "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", + "dev": true, + "dependencies": { + "minipass": "^3.1.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "optionalDependencies": { + "encoding": "^0.1.12" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nan": { + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.16.0.tgz", + "integrity": "sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-fetch/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "node_modules/node-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "node_modules/node-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/node-gyp": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", + "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", + "dev": true, + "dependencies": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^9.1.0", + "nopt": "^5.0.0", + "npmlog": "^6.0.0", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^2.0.2" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": ">= 10.12.0" + } + }, + "node_modules/node-gyp-build": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.4.0.tgz", + "integrity": "sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ==", + "dev": true, + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/node-gyp/node_modules/are-we-there-yet": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.0.tgz", + "integrity": "sha512-0GWpv50YSOcLXaN6/FAKY3vfRbllXWV2xvfA/oKJF8pzFhWXPV+yjhJXDBbjscDYowv7Yw1A3uigpzn5iEGTyw==", + "dev": true, + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/node-gyp/node_modules/gauge": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", + "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "dev": true, + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.3", + "console-control-strings": "^1.1.0", + "has-unicode": "^2.0.1", + "signal-exit": "^3.0.7", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/node-gyp/node_modules/npmlog": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", + "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "dev": true, + "dependencies": { + "are-we-there-yet": "^3.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^4.0.3", + "set-blocking": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/node-gyp/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/node-preload": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", + "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", + "dev": true, + "dependencies": { + "process-on-spawn": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/node-releases": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", + "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==", + "dev": true + }, + "node_modules/node-sass": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-7.0.1.tgz", + "integrity": "sha512-uMy+Xt29NlqKCFdFRZyXKOTqGt+QaKHexv9STj2WeLottnlqZEEWx6Bj0MXNthmFRRdM/YwyNo/8Tr46TOM0jQ==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "async-foreach": "^0.1.3", + "chalk": "^4.1.2", + "cross-spawn": "^7.0.3", + "gaze": "^1.0.0", + "get-stdin": "^4.0.1", + "glob": "^7.0.3", + "lodash": "^4.17.15", + "meow": "^9.0.0", + "nan": "^2.13.2", + "node-gyp": "^8.4.1", + "npmlog": "^5.0.0", + "request": "^2.88.0", + "sass-graph": "4.0.0", + "stdout-stream": "^1.4.0", + "true-case-path": "^1.0.2" + }, + "bin": { + "node-sass": "bin/node-sass" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npmlog": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", + "dev": true, + "dependencies": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nwsapi": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", + "dev": true + }, + "node_modules/nyc": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", + "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", + "dev": true, + "dependencies": { + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "caching-transform": "^4.0.0", + "convert-source-map": "^1.7.0", + "decamelize": "^1.2.0", + "find-cache-dir": "^3.2.0", + "find-up": "^4.1.0", + "foreground-child": "^2.0.0", + "get-package-type": "^0.1.0", + "glob": "^7.1.6", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-hook": "^3.0.0", + "istanbul-lib-instrument": "^4.0.0", + "istanbul-lib-processinfo": "^2.0.2", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "make-dir": "^3.0.0", + "node-preload": "^0.2.1", + "p-map": "^3.0.0", + "process-on-spawn": "^1.0.0", + "resolve-from": "^5.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "spawn-wrap": "^2.0.0", + "test-exclude": "^6.0.0", + "yargs": "^15.0.2" + }, + "bin": { + "nyc": "bin/nyc.js" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/nyc/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/nyc/node_modules/istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/nyc/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-path": { + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.8.tgz", + "integrity": "sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA==", + "dev": true, + "engines": { + "node": ">= 10.12.0" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", + "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", + "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.hasown": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.1.tgz", + "integrity": "sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "dev": true, + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/opts": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/opts/-/opts-2.0.2.tgz", + "integrity": "sha512-k41FwbcLnlgnFh69f4qdUfvDQ+5vaSDnVPFI/y5XuhKRq97EnVVneO9F1ESVCdiVu4fCS2L8usX3mU331hB7pg==", + "dev": true + }, + "node_modules/overlayscrollbars": { + "resolved": "packages/overlayscrollbars", + "link": true + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-queue": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", + "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", + "dev": true, + "dependencies": { + "eventemitter3": "^4.0.4", + "p-timeout": "^3.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "dev": true, + "dependencies": { + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/package-hash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", + "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.15", + "hasha": "^5.0.0", + "lodash.flattendeep": "^4.4.0", + "release-zalgo": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/playwright": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.22.2.tgz", + "integrity": "sha512-hUTpg7LytIl3/O4t0AQJS1V6hWsaSY5uZ7w1oCC8r3a1AQN5d6otIdCkiB3cbzgQkcMaRxisinjMFMVqZkybdQ==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "playwright-core": "1.22.2" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/playwright-chromium": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/playwright-chromium/-/playwright-chromium-1.22.2.tgz", + "integrity": "sha512-msRcdCIJkdM2R6S+NMJZ02uyZHzJ7TIzkjzs3usDJ1Pwacp9HMhv9T/S4AxtpFXFmvMZq7UJYb0x+tCdHx9+0w==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "playwright-core": "1.22.2" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/playwright-core": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.22.2.tgz", + "integrity": "sha512-w/hc/Ld0RM4pmsNeE6aL/fPNWw8BWit2tg+TfqJ3+p59c6s3B6C8mXvXrIPmfQEobkcFDc+4KirNzOQ+uBSP1Q==", + "dev": true, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/playwright-firefox": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/playwright-firefox/-/playwright-firefox-1.22.2.tgz", + "integrity": "sha512-y586dCkRST345/m+baM28oPSquJV6eizkqyB97blFaNysnVY+1+RE9BzHq10asqecajoPlt+OvSnwFPH88EyPQ==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "playwright-core": "1.22.2" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/playwright-webkit": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/playwright-webkit/-/playwright-webkit-1.22.2.tgz", + "integrity": "sha512-WjgKJa6uHzj0g/B0cHjPuM9fdyGLjmGKYkYnepbyl9wtpkLzy7man01nyZ2ujigxhR0ux+u4Ix+jaCMKSdZReQ==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "playwright-core": "1.22.2" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/postcss": { + "version": "8.4.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", + "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/postcss-colormin": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.0.tgz", + "integrity": "sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==", + "dev": true, + "dependencies": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-convert-values": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.2.tgz", + "integrity": "sha512-c6Hzc4GAv95B7suy4udszX9Zy4ETyMCgFPUDtWjdFTKH1SE9eFY/jEpHSwTH1QPuwxHpWslhckUQWbNRM4ho5g==", + "dev": true, + "dependencies": { + "browserslist": "^4.20.3", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-comments": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-empty": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-merge-longhand": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.6.tgz", + "integrity": "sha512-6C/UGF/3T5OE2CEbOuX7iNO63dnvqhGZeUnKkDeifebY0XqkkvrctYSZurpNE902LDf2yKwwPFgotnfSoPhQiw==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-merge-rules": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.2.tgz", + "integrity": "sha512-zKMUlnw+zYCWoPN6yhPjtcEdlJaMUZ0WyVcxTAmw3lkkN/NDMRkOkiuctQEoWAOvH7twaxUUdvBWl0d4+hifRQ==", + "dev": true, + "dependencies": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "dev": true, + "dependencies": { + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-params": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.3.tgz", + "integrity": "sha512-bkzpWcjykkqIujNL+EVEPOlLYi/eZ050oImVtHU7b4lFS82jPnsCb44gvC6pxaNt38Els3jWYDHTjHKf0koTgg==", + "dev": true, + "dependencies": { + "browserslist": "^4.16.6", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", + "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", + "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", + "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-string": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz", + "integrity": "sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==", + "dev": true, + "dependencies": { + "browserslist": "^4.16.6", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "dev": true, + "dependencies": { + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-ordered-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", + "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", + "dev": true, + "dependencies": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz", + "integrity": "sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==", + "dev": true, + "dependencies": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz", + "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "dev": true, + "dependencies": { + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/pretty-format/node_modules/@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/pretty-format/node_modules/@types/yargs": { + "version": "15.0.14", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz", + "integrity": "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/process-on-spawn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", + "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", + "dev": true, + "dependencies": { + "fromentries": "^1.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "dev": true + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true + }, + "node_modules/psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "dev": true + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/query-string": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.1.tgz", + "integrity": "sha512-MplouLRDHBZSG9z7fpuAAcI7aAYjDLhtsiVZsevsfaHWDS2IDdORKbSd1kWUA+V4zyva/HZoSfpwnYMMQDhb0w==", + "dev": true, + "dependencies": { + "decode-uri-component": "^0.2.0", + "filter-obj": "^1.1.0", + "split-on-first": "^1.0.0", + "strict-uri-encode": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, + "node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/read-pkg/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", + "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", + "dev": true + }, + "node_modules/regenerator-transform": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", + "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/regexpu-core": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", + "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.0.1", + "regjsgen": "^0.6.0", + "regjsparser": "^0.8.2", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", + "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", + "dev": true + }, + "node_modules/regjsparser": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", + "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/release-zalgo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", + "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==", + "dev": true, + "dependencies": { + "es6-error": "^4.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dev": true, + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request/node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/request/node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/request/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve.exports": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", + "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "2.75.7", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.75.7.tgz", + "integrity": "sha512-VSE1iy0eaAYNCxEXaleThdFXqZJ42qDBatAwrfnPlENEZ8erQ+0LYX4JXOLPceWfZpV1VtZwZ3dFCuOZiSyFtQ==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-plugin-esbuild": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-esbuild/-/rollup-plugin-esbuild-4.9.1.tgz", + "integrity": "sha512-qn/x7Wz9p3Xnva99qcb+nopH0d2VJwVnsxJTGEg+Sh2Z3tqQl33MhOwzekVo1YTKgv+yAmosjcBRJygMfGrtLw==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^4.1.1", + "debug": "^4.3.3", + "es-module-lexer": "^0.9.3", + "joycon": "^3.0.1", + "jsonc-parser": "^3.0.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "esbuild": ">=0.10.1", + "rollup": "^1.20.0 || ^2.0.0" + } + }, + "node_modules/rollup-plugin-esbuild/node_modules/@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "dev": true, + "dependencies": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/rollup-plugin-ignore-import": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-ignore-import/-/rollup-plugin-ignore-import-1.3.2.tgz", + "integrity": "sha512-q7yH2c+PKVfb61+MTXqqyBHIgflikumC7OEB+OfQWNsSmDqE5FLZLeewcBGl1VDmjDjSXuALXsaBjyIsl3oNmQ==", + "dev": true, + "peerDependencies": { + "rollup": ">=0.62.0", + "rollup-pluginutils": "^2.8.2" + } + }, + "node_modules/rollup-plugin-livereload": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/rollup-plugin-livereload/-/rollup-plugin-livereload-2.0.5.tgz", + "integrity": "sha512-vqQZ/UQowTW7VoiKEM5ouNW90wE5/GZLfdWuR0ELxyKOJUIaj+uismPZZaICU4DnWPVjnpCDDxEqwU7pcKY/PA==", + "dev": true, + "dependencies": { + "livereload": "^0.9.1" + }, + "engines": { + "node": ">=8.3" + } + }, + "node_modules/rollup-plugin-scss": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-scss/-/rollup-plugin-scss-3.0.0.tgz", + "integrity": "sha512-UldNaNHEon2a5IusHvj/Nnwc7q13YDvbFxz5pfNbHBNStxGoUNyM+0XwAA/UafJ1u8XRPGdBMrhWFthrrGZdWQ==", + "dev": true, + "dependencies": { + "rollup-pluginutils": "^2.3.3" + } + }, + "node_modules/rollup-plugin-serve": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-serve/-/rollup-plugin-serve-1.1.0.tgz", + "integrity": "sha512-pYkSsuA0/psKqhhictkJw1c2klya5b+LlCvipWqI9OE1aG2M97mRumZCbBlry5CMEOzYBBgSDgd1694sNbmyIw==", + "dev": true, + "dependencies": { + "mime": ">=2.4.6", + "opener": "1" + } + }, + "node_modules/rollup-plugin-styles": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-styles/-/rollup-plugin-styles-4.0.0.tgz", + "integrity": "sha512-A2K2sao84OsTmDxXG83JTCdXWrmgvQkkI38XDat46rdtpGMRm9tSYqeCdlwwGDJF4kKIafhV1mUidqu8MxUGig==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^4.1.2", + "@types/cssnano": "^5.0.0", + "cosmiconfig": "^7.0.1", + "cssnano": "^5.0.15", + "fs-extra": "^10.0.0", + "icss-utils": "^5.1.0", + "mime-types": "^2.1.34", + "p-queue": "^6.6.2", + "postcss": "^8.4.5", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "query-string": "^7.1.0", + "resolve": "^1.21.0", + "source-map-js": "^1.0.1", + "tslib": "^2.3.1" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "peerDependencies": { + "rollup": "^2.63.0" + } + }, + "node_modules/rollup-plugin-styles/node_modules/@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "dev": true, + "dependencies": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/rollup-plugin-summary": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/rollup-plugin-summary/-/rollup-plugin-summary-1.4.3.tgz", + "integrity": "sha512-m1xViwOlgocoIaaUX8AdWQVFHzti69MXqrdBsxFsXnQOIqtoU9KSNMZjlToAJvV8pjB85+boAw/P3Yu6F/VIaA==", + "dev": true, + "dependencies": { + "brotli-size": "^4.0.0", + "cli-table3": "^0.6.1", + "filesize": "^8.0.7", + "gzip-size": "^7.0.0", + "terser": "^5.12.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0" + } + }, + "node_modules/rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/rollup-plugin-ts": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-ts/-/rollup-plugin-ts-3.0.2.tgz", + "integrity": "sha512-67qi2QTHewhLyKDG6fX3jpohWpmUPPIT/xJ7rsYK46X6MqmoWy64Ti0y8ygPfLv8mXDCdRZUofM3mTxDfCswRA==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^4.2.1", + "@wessberg/stringutil": "^1.0.19", + "ansi-colors": "^4.1.3", + "browserslist": "^4.20.4", + "browserslist-generator": "^1.0.66", + "compatfactory": "^1.0.1", + "crosspath": "^2.0.0", + "magic-string": "^0.26.2", + "ts-clone-node": "^1.0.0", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=14.9.0", + "npm": ">=7.0.0", + "pnpm": ">=3.2.0", + "yarn": ">=1.13" + }, + "funding": { + "type": "github", + "url": "https://github.com/wessberg/rollup-plugin-ts?sponsor=1" + }, + "peerDependencies": { + "@babel/core": ">=6.x || >=7.x", + "@babel/plugin-transform-runtime": ">=6.x || >=7.x", + "@babel/preset-env": ">=6.x || >=7.x", + "@babel/preset-typescript": ">=6.x || >=7.x", + "@babel/runtime": ">=6.x || >=7.x", + "@swc/core": ">=1.x", + "@swc/helpers": ">=0.2", + "rollup": ">=1.x || >=2.x", + "typescript": ">=3.2.x || >= 4.x" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@babel/plugin-transform-runtime": { + "optional": true + }, + "@babel/preset-env": { + "optional": true + }, + "@babel/preset-typescript": { + "optional": true + }, + "@babel/runtime": { + "optional": true + }, + "@swc/core": { + "optional": true + }, + "@swc/helpers": { + "optional": true + } + } + }, + "node_modules/rollup-plugin-ts/node_modules/@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "dev": true, + "dependencies": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/rollup-plugin-ts/node_modules/magic-string": { + "version": "0.26.2", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.2.tgz", + "integrity": "sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.8" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/rollup-pluginutils": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "dev": true, + "dependencies": { + "estree-walker": "^0.6.1" + } + }, + "node_modules/rollup-pluginutils/node_modules/estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", + "dev": true + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/sass-graph": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-4.0.0.tgz", + "integrity": "sha512-WSO/MfXqKH7/TS8RdkCX3lVkPFQzCgbqdGsmSKq6tlPU+GpGEsa/5aW18JqItnqh+lPtcjifqdZ/VmiILkKckQ==", + "dev": true, + "dependencies": { + "glob": "^7.0.0", + "lodash": "^4.17.11", + "scss-tokenizer": "^0.3.0", + "yargs": "^17.2.1" + }, + "bin": { + "sassgraph": "bin/sassgraph" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dev": true, + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/scss-tokenizer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.3.0.tgz", + "integrity": "sha512-14Zl9GcbBvOT9057ZKjpz5yPOyUWG2ojd9D5io28wHRYsOrs7U95Q+KNL87+32p8rc+LvDpbu/i9ZYjM9Q+FsQ==", + "dev": true, + "dependencies": { + "js-base64": "^2.4.3", + "source-map": "^0.7.1" + } + }, + "node_modules/scss-tokenizer/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/should": { + "version": "13.2.3", + "resolved": "https://registry.npmjs.org/should/-/should-13.2.3.tgz", + "integrity": "sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==", + "dev": true, + "dependencies": { + "should-equal": "^2.0.0", + "should-format": "^3.0.3", + "should-type": "^1.4.0", + "should-type-adaptors": "^1.0.1", + "should-util": "^1.0.0" + } + }, + "node_modules/should-equal": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz", + "integrity": "sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==", + "dev": true, + "dependencies": { + "should-type": "^1.4.0" + } + }, + "node_modules/should-format": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz", + "integrity": "sha512-hZ58adtulAk0gKtua7QxevgUaXTTXxIi8t41L3zo9AHvjXO1/7sdLECuHeIN2SRtYXpNkmhoUP2pdeWgricQ+Q==", + "dev": true, + "dependencies": { + "should-type": "^1.3.0", + "should-type-adaptors": "^1.0.1" + } + }, + "node_modules/should-type": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz", + "integrity": "sha512-MdAsTu3n25yDbIe1NeN69G4n6mUnJGtSJHygX3+oN0ZbO3DTiATnf7XnYJdGT42JCXurTb1JI0qOBR65shvhPQ==", + "dev": true + }, + "node_modules/should-type-adaptors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz", + "integrity": "sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==", + "dev": true, + "dependencies": { + "should-type": "^1.3.0", + "should-util": "^1.0.0" + } + }, + "node_modules/should-util": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz", + "integrity": "sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==", + "dev": true + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/simple-get": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", + "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", + "dev": true, + "dependencies": { + "decompress-response": "^4.2.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz", + "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==", + "dev": true, + "dependencies": { + "ip": "^1.1.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", + "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", + "dev": true, + "dependencies": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "node_modules/spawn-wrap": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", + "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", + "dev": true, + "dependencies": { + "foreground-child": "^2.0.0", + "is-windows": "^1.0.2", + "make-dir": "^3.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "which": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", + "dev": true + }, + "node_modules/split-on-first": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", + "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/sshpk": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", + "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "dev": true, + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "dev": true, + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", + "dev": true + }, + "node_modules/stack-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/stdout-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", + "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", + "dev": true, + "dependencies": { + "readable-stream": "^2.0.1" + } + }, + "node_modules/stdout-stream/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/stdout-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/strict-uri-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", + "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", + "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.4.1", + "side-channel": "^1.0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", + "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", + "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylehacks": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.0.tgz", + "integrity": "sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==", + "dev": true, + "dependencies": { + "browserslist": "^4.16.6", + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", + "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dev": true, + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "node_modules/tar": { + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "dev": true, + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser": { + "version": "5.14.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", + "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser/node_modules/acorn": { + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", + "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/terser/node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/testing": { + "resolved": "packages/testing-browser", + "link": true + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/throat": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", + "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", + "dev": true + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tough-cookie": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", + "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", + "dev": true, + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.1.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "dev": true, + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/true-case-path": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", + "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", + "dev": true, + "dependencies": { + "glob": "^7.1.2" + } + }, + "node_modules/ts-clone-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ts-clone-node/-/ts-clone-node-1.0.0.tgz", + "integrity": "sha512-/cDYbr2HAXxFNeTT41c/xs/2bhLJjqnYheHsmA3AoHSt+n4JA4t0FL9Lk5O8kWnJ6jeB3kPcUoXIFtwERNzv6Q==", + "dev": true, + "dependencies": { + "compatfactory": "^1.0.1" + }, + "engines": { + "node": ">=14.9.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/wessberg/ts-clone-node?sponsor=1" + }, + "peerDependencies": { + "typescript": "^3.x || ^4.x" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "dev": true + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", + "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/ua-parser-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.2.tgz", + "integrity": "sha512-00y/AXhx0/SsnI51fTc0rLRmafiGOM4/O+ny10Ps7f+j/b8p/ZY11ytMgznXkOVo4GQ+KwQG5UQLkLGirsACRg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + } + ], + "engines": { + "node": "*" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", + "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", + "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.3.tgz", + "integrity": "sha512-ufSazemeh9Gty0qiWtoRpJ9F5Q5W3xdIPm1UZQqYQv/q0Nyb9EMHUB2lu+O9x1re9WsorpMAUu4Y6Lxcs5n+XQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/utf-8-validate": { + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.9.tgz", + "integrity": "sha512-Yek7dAy0v3Kl0orwMlvi7TPtiCNrdfHNd7Gcc/pLq4BLXqfAmd0J7OWMizUQnTTJsyjKn02mU7anqwfmUP4J8Q==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=6.14.2" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "node_modules/v8-to-istanbul": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", + "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/vscode-json-languageservice": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-4.2.1.tgz", + "integrity": "sha512-xGmv9QIWs2H8obGbWg+sIPI/3/pFgj/5OWBhNzs00BkYQ9UaB2F6JJaGB/2/YOZJ3BvLXQTC4Q7muqU25QgAhA==", + "dev": true, + "dependencies": { + "jsonc-parser": "^3.0.0", + "vscode-languageserver-textdocument": "^1.0.3", + "vscode-languageserver-types": "^3.16.0", + "vscode-nls": "^5.0.0", + "vscode-uri": "^3.0.3" + } + }, + "node_modules/vscode-languageserver-textdocument": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.5.tgz", + "integrity": "sha512-1ah7zyQjKBudnMiHbZmxz5bYNM9KKZYz+5VQLj+yr8l+9w3g+WAhCkUkWbhMEdC5u0ub4Ndiye/fDyS8ghIKQg==", + "dev": true + }, + "node_modules/vscode-languageserver-types": { + "version": "3.17.2", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.2.tgz", + "integrity": "sha512-zHhCWatviizPIq9B7Vh9uvrH6x3sK8itC84HkamnBWoDFJtzBf7SWlpLCZUit72b3os45h6RWQNC9xHRDF8dRA==", + "dev": true + }, + "node_modules/vscode-nls": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-5.0.1.tgz", + "integrity": "sha512-hHQV6iig+M21lTdItKPkJAaWrxALQb/nqpVffakO4knJOh3DrU2SXOMzUzNgo1eADPzu3qSsJY1weCzvR52q9A==", + "dev": true + }, + "node_modules/vscode-uri": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.3.tgz", + "integrity": "sha512-EcswR2S8bpR7fD0YPeS7r2xXExrScVMxg4MedACaWHEtx9ftCF/qHG1xGkolzTPcEmjTavCQgbVzHUIdTMzFGA==", + "dev": true + }, + "node_modules/w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "dev": true, + "dependencies": { + "browser-process-hrtime": "^1.0.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-3.0.0.tgz", + "integrity": "sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==", + "dev": true, + "dependencies": { + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-encoding": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "dev": true, + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-mimetype": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-url": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-10.0.0.tgz", + "integrity": "sha512-CLxxCmdUby142H5FZzn4D8ikO1cmypvXVQktsgosNy4a4BHrDHeciBBGZhb0bNoR5/MltoCatso+vFjjGx8t0w==", + "dev": true, + "dependencies": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==", + "dev": true + }, + "node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "dev": true, + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz", + "integrity": "sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/ws": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.0.tgz", + "integrity": "sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "17.5.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", + "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs/node_modules/yargs-parser": { + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", + "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "packages/overlayscrollbars": { + "version": "0.0.1" + }, + "packages/overlayscrollbars-example": { + "version": "0.0.0", + "extraneous": true, + "dependencies": { + "overlayscrollbars": "file:./../overlayscrollbars" + }, + "devDependencies": { + "typescript": "^4.5.4", + "vite": "^2.9.9" + } + }, + "packages/testing-browser": { + "name": "testing", + "version": "0.0.0" + }, + "packages/workspace-root": { + "name": "package-root", + "version": "0.0.0", + "extraneous": true, + "bin": { + "package-root": "workspace-root.js" + } + } + }, + "dependencies": { + "@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "dev": true, + "requires": { + "@babel/highlight": "^7.16.7" + } + }, + "@babel/compat-data": { + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.5.tgz", + "integrity": "sha512-BxhE40PVCBxVEJsSBhB6UWyAuqJRxGsAw8BdHMJ3AKGydcwuWW4kOO3HmqBQAdcq/OP+/DlTVxLvsCzRTnZuGg==", + "dev": true + }, + "@babel/core": { + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.5.tgz", + "integrity": "sha512-MGY8vg3DxMnctw0LdvSEojOsumc70g0t18gNyUdAZqB1Rpd1Bqo/svHGvt+UJ6JcGX+DIekGFDxxIWofBxLCnQ==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.18.2", + "@babel/helper-compilation-targets": "^7.18.2", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helpers": "^7.18.2", + "@babel/parser": "^7.18.5", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.18.5", + "@babel/types": "^7.18.4", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + } + }, + "@babel/generator": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", + "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", + "dev": true, + "requires": { + "@babel/types": "^7.18.2", + "@jridgewell/gen-mapping": "^0.3.0", + "jsesc": "^2.5.1" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", + "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", + "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", + "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.2.tgz", + "integrity": "sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.17.10", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.20.2", + "semver": "^6.3.0" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz", + "integrity": "sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-member-expression-to-functions": "^7.17.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.12.tgz", + "integrity": "sha512-b2aZrV4zvutr9AIa6/gA3wsZKRwTKYoDxYiFKcESS3Ug2GTXzwBEvMuuFLhCQpEnRXs1zng4ISAXSUxxKBIcxw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "regexpu-core": "^5.0.1" + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", + "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.2.tgz", + "integrity": "sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ==", + "dev": true + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", + "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-function-name": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", + "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", + "dev": true, + "requires": { + "@babel/template": "^7.16.7", + "@babel/types": "^7.17.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz", + "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==", + "dev": true, + "requires": { + "@babel/types": "^7.17.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-module-transforms": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz", + "integrity": "sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.18.0", + "@babel/types": "^7.18.0" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", + "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", + "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==", + "dev": true + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", + "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-wrap-function": "^7.16.8", + "@babel/types": "^7.16.8" + } + }, + "@babel/helper-replace-supers": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.2.tgz", + "integrity": "sha512-XzAIyxx+vFnrOxiQrToSUOzUOn0e1J2Li40ntddek1Y69AXUTXoDJ40/D5RdjFu7s7qHiaeoTiempZcbuVXh2Q==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-member-expression-to-functions": "^7.17.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/traverse": "^7.18.2", + "@babel/types": "^7.18.2" + } + }, + "@babel/helper-simple-access": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.2.tgz", + "integrity": "sha512-7LIrjYzndorDY88MycupkpQLKS1AFfsVRm2k/9PtKScSy5tZq0McZTj+DiMRynboZfIqOKvo03pmhTaUgiD6fQ==", + "dev": true, + "requires": { + "@babel/types": "^7.18.2" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", + "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", + "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.8", + "@babel/types": "^7.16.8" + } + }, + "@babel/helpers": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.2.tgz", + "integrity": "sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg==", + "dev": true, + "requires": { + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.18.2", + "@babel/types": "^7.18.2" + } + }, + "@babel/highlight": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.12.tgz", + "integrity": "sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.5.tgz", + "integrity": "sha512-YZWVaglMiplo7v8f1oMQ5ZPQr0vn7HPeZXxXWsxXJRjGVrzUFn9OxFQl1sb5wzfootjA/yChhW84BV+383FSOw==", + "dev": true + }, + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.17.12.tgz", + "integrity": "sha512-xCJQXl4EeQ3J9C4yOmpTrtVGmzpm2iSzyxbkZHw7UCnZBftHpF/hpII80uWVyVrc40ytIClHjgWGTG1g/yB+aw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.17.12.tgz", + "integrity": "sha512-/vt0hpIw0x4b6BLKUkwlvEoiGZYYLNZ96CzyHYPbtG2jZGz6LBe7/V+drYrc/d+ovrF9NBi0pmtvmNb/FsWtRQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.17.12" + } + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.17.12.tgz", + "integrity": "sha512-RWVvqD1ooLKP6IqWTA5GyFVX2isGEgC5iFxKzfYOIy/QEFdxYyCybBDtIGjipHpb9bDWHzcqGqFakf+mVmBTdQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-remap-async-to-generator": "^7.16.8", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.17.12.tgz", + "integrity": "sha512-U0mI9q8pW5Q9EaTHFPwSVusPMV/DV9Mm8p7csqROFLtIE9rBF5piLqyrBGigftALrBcsBGu4m38JneAe7ZDLXw==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-proposal-class-static-block": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.0.tgz", + "integrity": "sha512-t+8LsRMMDE74c6sV7KShIw13sqbqd58tlqNrsWoWBTIMw7SVQ0cZ905wLNS/FBCy/3PyooRHLFFlfrUNyyz5lA==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", + "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.17.12.tgz", + "integrity": "sha512-j7Ye5EWdwoXOpRmo5QmRyHPsDIe6+u70ZYZrd7uz+ebPYFKfRcLcNu3Ro0vOlJ5zuv8rU7xa+GttNiRzX56snQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.17.12.tgz", + "integrity": "sha512-rKJ+rKBoXwLnIn7n6o6fulViHMrOThz99ybH+hKHcOZbnN14VuMnH9fo2eHE69C8pO4uX1Q7t2HYYIDmv8VYkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.17.12.tgz", + "integrity": "sha512-EqFo2s1Z5yy+JeJu7SFfbIUtToJTVlC61/C7WLKDntSw4Sz6JNAIfL7zQ74VvirxpjB5kz/kIx0gCcb+5OEo2Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.17.12.tgz", + "integrity": "sha512-ws/g3FSGVzv+VH86+QvgtuJL/kR67xaEIF2x0iPqdDfYW6ra6JF3lKVBkWynRLcNtIC1oCTfDRVxmm2mKzy+ag==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", + "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.0.tgz", + "integrity": "sha512-nbTv371eTrFabDfHLElkn9oyf9VG+VKK6WMzhY2o4eHKaG19BToD9947zzGMO6I/Irstx9d8CwX6njPNIAR/yw==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.17.10", + "@babel/helper-compilation-targets": "^7.17.10", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.17.12" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", + "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.17.12.tgz", + "integrity": "sha512-7wigcOs/Z4YWlK7xxjkvaIw84vGhDv/P1dFGQap0nHkc8gFKY/r+hXc8Qzf5k1gY7CvGIcHqAnOagVKJJ1wVOQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.17.12.tgz", + "integrity": "sha512-SllXoxo19HmxhDWm3luPz+cPhtoTSKLJE9PXshsfrOzBqs60QP0r8OaJItrPhAj0d7mZMnNF0Y1UUggCDgMz1A==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.17.12.tgz", + "integrity": "sha512-/6BtVi57CJfrtDNKfK5b66ydK2J5pXUKBKSPD2G1whamMuEnZWgoOIfO8Vf9F/DoD4izBLD/Au4NMQfruzzykg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.17.12.tgz", + "integrity": "sha512-Wb9qLjXf3ZazqXA7IvI7ozqRIXIGPtSo+L5coFmEkhTQK18ao4UDDD0zdTGAarmbLj2urpRwrc6893cu5Bfh0A==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-import-assertions": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.17.12.tgz", + "integrity": "sha512-n/loy2zkq9ZEM8tEOwON9wTQSTNDTDEz6NujPtJGLU7qObzT1N4c4YZZf8E6ATB2AjNQg/Ib2AIpO03EZaCehw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.17.12.tgz", + "integrity": "sha512-TYY0SXFiO31YXtNg3HtFwNJHjLsAyIIhAhNWkQ5whPPS7HWUFlg9z0Ta4qAQNjQbP1wsSt/oKkmZ/4/WWdMUpw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.17.12.tgz", + "integrity": "sha512-PHln3CNi/49V+mza4xMwrg+WGYevSF1oaiXaC2EQfdp4HWlSjRsrDXWJiQBKpP7749u6vQ9mcry2uuFOv5CXvA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.17.12.tgz", + "integrity": "sha512-J8dbrWIOO3orDzir57NRsjg4uxucvhby0L/KZuGsWDj0g7twWK3g7JhJhOrXtuXiw8MeiSdJ3E0OW9H8LYEzLQ==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-remap-async-to-generator": "^7.16.8" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", + "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.4.tgz", + "integrity": "sha512-+Hq10ye+jlvLEogSOtq4mKvtk7qwcUQ1f0Mrueai866C82f844Yom2cttfJdMdqRLTxWpsbfbkIkOIfovyUQXw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.4.tgz", + "integrity": "sha512-e42NSG2mlKWgxKUAD9EJJSkZxR67+wZqzNxLSpc51T8tRU5SLFHsPmgYR5yr7sdgX4u+iHA1C5VafJ6AyImV3A==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-replace-supers": "^7.18.2", + "@babel/helper-split-export-declaration": "^7.16.7", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.17.12.tgz", + "integrity": "sha512-a7XINeplB5cQUWMg1E/GI1tFz3LfK021IjV1rj1ypE+R7jHm+pIHmHl25VNkZxtx9uuYp7ThGk8fur1HHG7PgQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.0.tgz", + "integrity": "sha512-Mo69klS79z6KEfrLg/1WkmVnB8javh75HX4pi2btjvlIoasuxilEyjtsQW6XPrubNd7AQy0MMaNIaQE4e7+PQw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", + "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.17.12.tgz", + "integrity": "sha512-EA5eYFUG6xeerdabina/xIoB95jJ17mAkR8ivx6ZSu9frKShBjpOGZPn511MTDTkiCO+zXnzNczvUM69YSf3Zw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", + "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.18.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.1.tgz", + "integrity": "sha512-+TTB5XwvJ5hZbO8xvl2H4XaMDOAK57zF4miuC9qQJgysPNEAZZ9Z69rdF5LJkozGdZrjBIUAIyKUWRMmebI7vg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", + "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.17.12.tgz", + "integrity": "sha512-8iRkvaTjJciWycPIZ9k9duu663FT7VrBdNqNgxnVXEFwOIp55JWcZd23VBRySYbnS3PwQ3rGiabJBBBGj5APmQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", + "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.0.tgz", + "integrity": "sha512-h8FjOlYmdZwl7Xm2Ug4iX2j7Qy63NANI+NQVWQzv6r25fqgg7k2dZl03p95kvqNclglHs4FZ+isv4p1uXMA+QA==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.2.tgz", + "integrity": "sha512-f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-simple-access": "^7.18.2", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.5.tgz", + "integrity": "sha512-SEewrhPpcqMF1V7DhnEbhVJLrC+nnYfe1E0piZMZXBpxi9WvZqWGwpsk7JYP7wPWeqaBh4gyKlBhHJu3uz5g4Q==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-validator-identifier": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.0.tgz", + "integrity": "sha512-d/zZ8I3BWli1tmROLxXLc9A6YXvGK8egMxHp+E/rRwMh1Kip0AP77VwZae3snEJ33iiWwvNv2+UIIhfalqhzZA==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.12.tgz", + "integrity": "sha512-vWoWFM5CKaTeHrdUJ/3SIOTRV+MBVGybOC9mhJkaprGNt5demMymDW24yC74avb915/mIRe3TgNb/d8idvnCRA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.5.tgz", + "integrity": "sha512-TuRL5uGW4KXU6OsRj+mLp9BM7pO8e7SGNTEokQRRxHFkXYMFiy2jlKSZPFtI/mKORDzciH+hneskcSOp0gU8hg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", + "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.17.12.tgz", + "integrity": "sha512-6qW4rWo1cyCdq1FkYri7AHpauchbGLXpdwnYsfxFb+KtddHENfsY5JZb35xUwkK5opOLcJ3BNd2l7PhRYGlwIA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", + "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.0.tgz", + "integrity": "sha512-C8YdRw9uzx25HSIzwA7EM7YP0FhCe5wNvJbZzjVNHHPGVcDJ3Aie+qGYYdS1oVQgn+B3eAIJbWFLrJ4Jipv7nw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12", + "regenerator-transform": "^0.15.0" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.17.12.tgz", + "integrity": "sha512-1KYqwbJV3Co03NIi14uEHW8P50Md6KqFgt0FfpHdK6oyAHQVTosgPuPSiWud1HX0oYJ1hGRRlk0fP87jFpqXZA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.5.tgz", + "integrity": "sha512-Q17hHxXr2fplrE+5BSC1j1Fo5cOA8YeP8XW3/1paI8MzF/faZGh0MaH1KC4jLAvqLPamQWHB5/B7KqSLY1kuHA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "semver": "^6.3.0" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", + "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.17.12.tgz", + "integrity": "sha512-9pgmuQAtFi3lpNUstvG9nGfk9DkrdmWNp9KeKPFmuZCpEnxRzYlS8JgwPjYj+1AWDOSvoGN0H30p1cBOmT/Svg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", + "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.2.tgz", + "integrity": "sha512-/cmuBVw9sZBGZVOMkpAEaVLwm4JmK2GZ1dFKOGGpMzEHWFmyZZ59lUU0PdRr8YNYeQdNzTDwuxP2X2gzydTc9g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.17.12.tgz", + "integrity": "sha512-Q8y+Jp7ZdtSPXCThB6zjQ74N3lj0f6TDh1Hnf5B+sYlzQ8i5Pjp8gW0My79iekSpT4WnI06blqP6DT0OmaXXmw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, + "@babel/plugin-transform-typescript": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.4.tgz", + "integrity": "sha512-l4vHuSLUajptpHNEOUDEGsnpl9pfRLsN1XUoDQDD/YBuXTM+v37SHGS+c6n4jdcZy96QtuUuSvZYMLSSsjH8Mw==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-typescript": "^7.17.12" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", + "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", + "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/preset-env": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.2.tgz", + "integrity": "sha512-PfpdxotV6afmXMU47S08F9ZKIm2bJIQ0YbAAtDfIENX7G1NUAXigLREh69CWDjtgUy7dYn7bsMzkgdtAlmS68Q==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.17.10", + "@babel/helper-compilation-targets": "^7.18.2", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.17.12", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.17.12", + "@babel/plugin-proposal-async-generator-functions": "^7.17.12", + "@babel/plugin-proposal-class-properties": "^7.17.12", + "@babel/plugin-proposal-class-static-block": "^7.18.0", + "@babel/plugin-proposal-dynamic-import": "^7.16.7", + "@babel/plugin-proposal-export-namespace-from": "^7.17.12", + "@babel/plugin-proposal-json-strings": "^7.17.12", + "@babel/plugin-proposal-logical-assignment-operators": "^7.17.12", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.17.12", + "@babel/plugin-proposal-numeric-separator": "^7.16.7", + "@babel/plugin-proposal-object-rest-spread": "^7.18.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", + "@babel/plugin-proposal-optional-chaining": "^7.17.12", + "@babel/plugin-proposal-private-methods": "^7.17.12", + "@babel/plugin-proposal-private-property-in-object": "^7.17.12", + "@babel/plugin-proposal-unicode-property-regex": "^7.17.12", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.17.12", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.17.12", + "@babel/plugin-transform-async-to-generator": "^7.17.12", + "@babel/plugin-transform-block-scoped-functions": "^7.16.7", + "@babel/plugin-transform-block-scoping": "^7.17.12", + "@babel/plugin-transform-classes": "^7.17.12", + "@babel/plugin-transform-computed-properties": "^7.17.12", + "@babel/plugin-transform-destructuring": "^7.18.0", + "@babel/plugin-transform-dotall-regex": "^7.16.7", + "@babel/plugin-transform-duplicate-keys": "^7.17.12", + "@babel/plugin-transform-exponentiation-operator": "^7.16.7", + "@babel/plugin-transform-for-of": "^7.18.1", + "@babel/plugin-transform-function-name": "^7.16.7", + "@babel/plugin-transform-literals": "^7.17.12", + "@babel/plugin-transform-member-expression-literals": "^7.16.7", + "@babel/plugin-transform-modules-amd": "^7.18.0", + "@babel/plugin-transform-modules-commonjs": "^7.18.2", + "@babel/plugin-transform-modules-systemjs": "^7.18.0", + "@babel/plugin-transform-modules-umd": "^7.18.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.17.12", + "@babel/plugin-transform-new-target": "^7.17.12", + "@babel/plugin-transform-object-super": "^7.16.7", + "@babel/plugin-transform-parameters": "^7.17.12", + "@babel/plugin-transform-property-literals": "^7.16.7", + "@babel/plugin-transform-regenerator": "^7.18.0", + "@babel/plugin-transform-reserved-words": "^7.17.12", + "@babel/plugin-transform-shorthand-properties": "^7.16.7", + "@babel/plugin-transform-spread": "^7.17.12", + "@babel/plugin-transform-sticky-regex": "^7.16.7", + "@babel/plugin-transform-template-literals": "^7.18.2", + "@babel/plugin-transform-typeof-symbol": "^7.17.12", + "@babel/plugin-transform-unicode-escapes": "^7.16.7", + "@babel/plugin-transform-unicode-regex": "^7.16.7", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.18.2", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "core-js-compat": "^3.22.1", + "semver": "^6.3.0" + } + }, + "@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/preset-typescript": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.17.12.tgz", + "integrity": "sha512-S1ViF8W2QwAKUGJXxP9NAfNaqGDdEBJKpYkxHf5Yy2C4NPPzXGeR3Lhk7G8xJaaLcFTRfNjVbtbVtm8Gb0mqvg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-transform-typescript": "^7.17.12" + } + }, + "@babel/runtime": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz", + "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/runtime-corejs3": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.18.3.tgz", + "integrity": "sha512-l4ddFwrc9rnR+EJsHsh+TJ4A35YqQz/UqcjtlX2ov53hlJYG5CxtQmNZxyajwDVmCxwy++rtvGU5HazCK4W41Q==", + "dev": true, + "requires": { + "core-js-pure": "^3.20.2", + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/traverse": { + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.5.tgz", + "integrity": "sha512-aKXj1KT66sBj0vVzk6rEeAO6Z9aiiQ68wfDgge3nHhA/my6xMM/7HGQUNumKZaoa2qUPQ5whJG9aAifsxUKfLA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.18.2", + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.18.5", + "@babel/types": "^7.18.4", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz", + "integrity": "sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "optional": true + }, + "@eslint/eslintrc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", + "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.2", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "globals": { + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + } + } + }, + "@gar/promisify": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", + "dev": true + }, + "@humanwhocodes/config-array": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + } + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true + }, + "@jest/console": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.1.tgz", + "integrity": "sha512-0RiUocPVFEm3WRMOStIHbRWllG6iW6E3/gUPnf4lkrVFyXIIDeCe+vlKeYyFOMhB2EPE6FLFCNADSOOQMaqvyA==", + "dev": true, + "requires": { + "@jest/types": "^28.1.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^28.1.1", + "jest-util": "^28.1.1", + "slash": "^3.0.0" + } + }, + "@jest/core": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-28.1.1.tgz", + "integrity": "sha512-3pYsBoZZ42tXMdlcFeCc/0j9kOlK7MYuXs2B1QbvDgMoW1K9NJ4G/VYvIbMb26iqlkTfPHo7SC2JgjDOk/mxXw==", + "dev": true, + "requires": { + "@jest/console": "^28.1.1", + "@jest/reporters": "^28.1.1", + "@jest/test-result": "^28.1.1", + "@jest/transform": "^28.1.1", + "@jest/types": "^28.1.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^28.0.2", + "jest-config": "^28.1.1", + "jest-haste-map": "^28.1.1", + "jest-message-util": "^28.1.1", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.1", + "jest-resolve-dependencies": "^28.1.1", + "jest-runner": "^28.1.1", + "jest-runtime": "^28.1.1", + "jest-snapshot": "^28.1.1", + "jest-util": "^28.1.1", + "jest-validate": "^28.1.1", + "jest-watcher": "^28.1.1", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.1", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + }, + "pretty-format": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.1.tgz", + "integrity": "sha512-wwJbVTGFHeucr5Jw2bQ9P+VYHyLdAqedFLEkdQUVaBF/eiidDwH5OpilINq4mEfhbCjLnirt6HTTDhv1HaTIQw==", + "dev": true, + "requires": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + } + } + }, + "@jest/environment": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-28.1.1.tgz", + "integrity": "sha512-9auVQ2GzQ7nrU+lAr8KyY838YahElTX9HVjbQPPS2XjlxQ+na18G113OoBhyBGBtD6ZnO/SrUy5WR8EzOj1/Uw==", + "dev": true, + "requires": { + "@jest/fake-timers": "^28.1.1", + "@jest/types": "^28.1.1", + "@types/node": "*", + "jest-mock": "^28.1.1" + } + }, + "@jest/expect": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-28.1.1.tgz", + "integrity": "sha512-/+tQprrFoT6lfkMj4mW/mUIfAmmk/+iQPmg7mLDIFOf2lyf7EBHaS+x3RbeR0VZVMe55IvX7QRoT/2aK3AuUXg==", + "dev": true, + "requires": { + "expect": "^28.1.1", + "jest-snapshot": "^28.1.1" + } + }, + "@jest/expect-utils": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.1.tgz", + "integrity": "sha512-n/ghlvdhCdMI/hTcnn4qV57kQuV9OTsZzH1TTCVARANKhl6hXJqLKUkwX69ftMGpsbpt96SsDD8n8LD2d9+FRw==", + "dev": true, + "requires": { + "jest-get-type": "^28.0.2" + } + }, + "@jest/fake-timers": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.1.tgz", + "integrity": "sha512-BY/3+TyLs5+q87rGWrGUY5f8e8uC3LsVHS9Diz8+FV3ARXL4sNnkLlIB8dvDvRrp+LUCGM+DLqlsYubizGUjIA==", + "dev": true, + "requires": { + "@jest/types": "^28.1.1", + "@sinonjs/fake-timers": "^9.1.1", + "@types/node": "*", + "jest-message-util": "^28.1.1", + "jest-mock": "^28.1.1", + "jest-util": "^28.1.1" + } + }, + "@jest/globals": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-28.1.1.tgz", + "integrity": "sha512-dEgl/6v7ToB4vXItdvcltJBgny0xBE6xy6IYQrPJAJggdEinGxCDMivNv7sFzPcTITGquXD6UJwYxfJ/5ZwDSg==", + "dev": true, + "requires": { + "@jest/environment": "^28.1.1", + "@jest/expect": "^28.1.1", + "@jest/types": "^28.1.1" + } + }, + "@jest/reporters": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-28.1.1.tgz", + "integrity": "sha512-597Zj4D4d88sZrzM4atEGLuO7SdA/YrOv9SRXHXRNC+/FwPCWxZhBAEzhXoiJzfRwn8zes/EjS8Lo6DouGN5Gg==", + "dev": true, + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^28.1.1", + "@jest/test-result": "^28.1.1", + "@jest/transform": "^28.1.1", + "@jest/types": "^28.1.1", + "@jridgewell/trace-mapping": "^0.3.7", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^28.1.1", + "jest-util": "^28.1.1", + "jest-worker": "^28.1.1", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^9.0.0" + } + }, + "@jest/schemas": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.0.2.tgz", + "integrity": "sha512-YVDJZjd4izeTDkij00vHHAymNXQ6WWsdChFRK86qck6Jpr3DCL5W3Is3vslviRlP+bLuMYRLbdp98amMvqudhA==", + "dev": true, + "requires": { + "@sinclair/typebox": "^0.23.3" + } + }, + "@jest/source-map": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-28.0.2.tgz", + "integrity": "sha512-Y9dxC8ZpN3kImkk0LkK5XCEneYMAXlZ8m5bflmSL5vrwyeUpJfentacCUg6fOb8NOpOO7hz2+l37MV77T6BFPw==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.7", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + } + }, + "@jest/test-result": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.1.tgz", + "integrity": "sha512-hPmkugBktqL6rRzwWAtp1JtYT4VHwv8OQ+9lE5Gymj6dHzubI/oJHMUpPOt8NrdVWSrz9S7bHjJUmv2ggFoUNQ==", + "dev": true, + "requires": { + "@jest/console": "^28.1.1", + "@jest/types": "^28.1.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/test-sequencer": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-28.1.1.tgz", + "integrity": "sha512-nuL+dNSVMcWB7OOtgb0EGH5AjO4UBCt68SLP08rwmC+iRhyuJWS9MtZ/MpipxFwKAlHFftbMsydXqWre8B0+XA==", + "dev": true, + "requires": { + "@jest/test-result": "^28.1.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.1", + "slash": "^3.0.0" + } + }, + "@jest/transform": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-28.1.1.tgz", + "integrity": "sha512-PkfaTUuvjUarl1EDr5ZQcCA++oXkFCP9QFUkG0yVKVmNObjhrqDy0kbMpMebfHWm3CCDHjYNem9eUSH8suVNHQ==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@jest/types": "^28.1.1", + "@jridgewell/trace-mapping": "^0.3.7", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.1", + "jest-regex-util": "^28.0.2", + "jest-util": "^28.1.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.1" + } + }, + "@jest/types": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.1.tgz", + "integrity": "sha512-vRXVqSg1VhDnB8bWcmvLzmg0Bt9CRKVgHPXqYwvWMX3TvAjeO+nRuK6+VdTKCtWOvYlmkF/HqNAL/z+N3B53Kw==", + "dev": true, + "requires": { + "@jest/schemas": "^28.0.2", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", + "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz", + "integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==", + "dev": true + }, + "@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", + "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } + } + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.13", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz", + "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz", + "integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@local/browser-testing": { + "version": "file:local/browser-testing" + }, + "@local/config": { + "version": "file:local/config" + }, + "@local/playwright-tooling": { + "version": "file:local/playwright-tooling" + }, + "@local/rollup": { + "version": "file:local/rollup" + }, + "@local/tsconfig": { + "version": "file:local/tsconfig" + }, + "@mapbox/node-pre-gyp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.9.tgz", + "integrity": "sha512-aDF3S3rK9Q2gey/WAttUlISduDItz5BU3306M9Eyv6/oS40aMprnopshtlKTykxRNIBEZuRMaZAnbrQ4QtKGyw==", + "dev": true, + "requires": { + "detect-libc": "^2.0.0", + "https-proxy-agent": "^5.0.0", + "make-dir": "^3.1.0", + "node-fetch": "^2.6.7", + "nopt": "^5.0.0", + "npmlog": "^5.0.1", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.11" + }, + "dependencies": { + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@mdn/browser-compat-data": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-4.2.1.tgz", + "integrity": "sha512-EWUguj2kd7ldmrF9F+vI5hUOralPd+sdsUnYbRy33vZTuZkduC1shE9TtEMEjAQwyfyMb4ole5KtjF8MsnQOlA==", + "dev": true + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@npmcli/fs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", + "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", + "dev": true, + "requires": { + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" + }, + "dependencies": { + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "dev": true, + "requires": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + } + }, + "@playwright/test": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.22.2.tgz", + "integrity": "sha512-cCl96BEBGPtptFz7C2FOSN3PrTnJ3rPpENe+gYCMx4GNNDlN4tmo2D89y13feGKTMMAIVrXfSQ/UmaQKLy1XLA==", + "dev": true, + "requires": { + "@types/node": "*", + "playwright-core": "1.22.2" + } + }, + "@rollup/plugin-alias": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@rollup/plugin-alias/-/plugin-alias-3.1.9.tgz", + "integrity": "sha512-QI5fsEvm9bDzt32k39wpOwZhVzRcL5ydcffUHMyLVaVaLeC70I8TJZ17F1z1eMoLu4E/UOcH9BWVkKpIKdrfiw==", + "dev": true, + "requires": { + "slash": "^3.0.0" + } + }, + "@rollup/plugin-babel": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", + "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" + } + }, + "@rollup/plugin-commonjs": { + "version": "22.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-22.0.0.tgz", + "integrity": "sha512-Ktvf2j+bAO+30awhbYoCaXpBcyPmJbaEUYClQns/+6SNCYFURbvBiNbWgHITEsIgDDWCDUclWRKEuf8cwZCFoQ==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.1.0", + "commondir": "^1.0.1", + "estree-walker": "^2.0.1", + "glob": "^7.1.6", + "is-reference": "^1.2.1", + "magic-string": "^0.25.7", + "resolve": "^1.17.0" + } + }, + "@rollup/plugin-html": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@rollup/plugin-html/-/plugin-html-0.2.4.tgz", + "integrity": "sha512-x0qpNXxbmGa9Jnl4OX89AORPe2T/a4DqNK69BGRnEdaPKq6MdiUXSTam/eCkF5DxkQGcRcPq0L4vzr/E3q4mVA==", + "dev": true, + "requires": {} + }, + "@rollup/plugin-node-resolve": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", + "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.1.0", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + } + }, + "@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "requires": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "dependencies": { + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + } + } + }, + "@sinclair/typebox": { + "version": "0.23.5", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.23.5.tgz", + "integrity": "sha512-AFBVi/iT4g20DHoujvMH1aEDn8fGJh4xsRGCP6d8RpLPMqsNPvW01Jcn0QysXTsg++/xj25NmJsGyH9xug/wKg==", + "dev": true + }, + "@sinonjs/commons": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", + "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.7.0" + } + }, + "@testing-library/dom": { + "version": "7.31.2", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-7.31.2.tgz", + "integrity": "sha512-3UqjCpey6HiTZT92vODYLPxTBWlM8ZOOjr3LX5F37/VRipW2M1kX6I/Cm4VXzteZqfGfagg8yXywpcOgQBlNsQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^4.2.0", + "aria-query": "^4.2.2", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.6", + "lz-string": "^1.4.4", + "pretty-format": "^26.6.2" + } + }, + "@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true + }, + "@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "dev": true + }, + "@types/aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==", + "dev": true + }, + "@types/babel__core": { + "version": "7.1.19", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", + "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.17.1", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.17.1.tgz", + "integrity": "sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA==", + "dev": true, + "requires": { + "@babel/types": "^7.3.0" + } + }, + "@types/cssnano": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@types/cssnano/-/cssnano-5.1.0.tgz", + "integrity": "sha512-ikR+18UpFGgvaWSur4og6SJYF/6QEYHXvrIt36dp81p1MG3cAPTYDMBJGeyWa3LCnqEbgNMHKRb+FP0NrXtoWQ==", + "dev": true, + "requires": { + "cssnano": "*" + } + }, + "@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true + }, + "@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dev": true, + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/graceful-fs": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/jest": { + "version": "26.0.24", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.24.tgz", + "integrity": "sha512-E/X5Vib8BWqZNRlDxj9vYXhsDwPYbPINqKF9BsnSoon4RQ0D9moEuLD8txgyypFLH7J4+Lho9Nr/c8H0Fi+17w==", + "dev": true, + "requires": { + "jest-diff": "^26.0.0", + "pretty-format": "^26.0.0" + } + }, + "@types/jsdom": { + "version": "16.2.14", + "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-16.2.14.tgz", + "integrity": "sha512-6BAy1xXEmMuHeAJ4Fv4yXKwBDTGTOseExKE3OaHiNycdHdZw59KfYzrt0DkDluvwmik1HRt6QS7bImxUmpSy+w==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/parse5": "*", + "@types/tough-cookie": "*" + } + }, + "@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", + "dev": true + }, + "@types/minimist": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "dev": true + }, + "@types/node": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.0.tgz", + "integrity": "sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA==", + "dev": true + }, + "@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, + "@types/object-path": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/@types/object-path/-/object-path-0.11.1.tgz", + "integrity": "sha512-219LSCO9HPcoXcRTC6DbCs0FRhZgBnEMzf16RRqkT40WbkKx3mOeQuz3e2XqbfhOz/AHfbru0kzB1n1RCAsIIg==", + "dev": true + }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "@types/parse5": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.3.tgz", + "integrity": "sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==", + "dev": true + }, + "@types/prettier": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.3.tgz", + "integrity": "sha512-ymZk3LEC/fsut+/Q5qejp6R9O1rMxz3XaRHDV6kX8MrGAhOSPqVARbDi+EZvInBpw+BnCX3TD240byVkOfQsHg==", + "dev": true + }, + "@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/semver": { + "version": "7.3.10", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.10.tgz", + "integrity": "sha512-zsv3fsC7S84NN6nPK06u79oWgrPVd0NvOyqgghV1haPaFcVxIrP4DLomRwGAXk0ui4HZA7mOcSFL98sMVW9viw==", + "dev": true + }, + "@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "@types/tough-cookie": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.2.tgz", + "integrity": "sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==", + "dev": true + }, + "@types/ua-parser-js": { + "version": "0.7.36", + "resolved": "https://registry.npmjs.org/@types/ua-parser-js/-/ua-parser-js-0.7.36.tgz", + "integrity": "sha512-N1rW+njavs70y2cApeIw1vLMYXRwfBy+7trgavGuuTfOd7j1Yh7QTRc/yqsPl6ncokt72ZXuxEU0PiCp9bSwNQ==", + "dev": true + }, + "@types/yargs": { + "version": "17.0.10", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.10.tgz", + "integrity": "sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, + "@typescript-eslint/eslint-plugin": { + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.31.0.tgz", + "integrity": "sha512-VKW4JPHzG5yhYQrQ1AzXgVgX8ZAJEvCz0QI6mLRX4tf7rnFfh5D8SKm0Pq6w5PyNfAWJk6sv313+nEt3ohWMBQ==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.31.0", + "@typescript-eslint/type-utils": "5.31.0", + "@typescript-eslint/utils": "5.31.0", + "debug": "^4.3.4", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.2.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "dependencies": { + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@typescript-eslint/parser": { + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.31.0.tgz", + "integrity": "sha512-UStjQiZ9OFTFReTrN+iGrC6O/ko9LVDhreEK5S3edmXgR396JGq7CoX2TWIptqt/ESzU2iRKXAHfSF2WJFcWHw==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.31.0", + "@typescript-eslint/types": "5.31.0", + "@typescript-eslint/typescript-estree": "5.31.0", + "debug": "^4.3.4" + } + }, + "@typescript-eslint/scope-manager": { + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.31.0.tgz", + "integrity": "sha512-8jfEzBYDBG88rcXFxajdVavGxb5/XKXyvWgvD8Qix3EEJLCFIdVloJw+r9ww0wbyNLOTYyBsR+4ALNGdlalLLg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.31.0", + "@typescript-eslint/visitor-keys": "5.31.0" + } + }, + "@typescript-eslint/type-utils": { + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.31.0.tgz", + "integrity": "sha512-7ZYqFbvEvYXFn9ax02GsPcEOmuWNg+14HIf4q+oUuLnMbpJ6eHAivCg7tZMVwzrIuzX3QCeAOqKoyMZCv5xe+w==", + "dev": true, + "requires": { + "@typescript-eslint/utils": "5.31.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/types": { + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.31.0.tgz", + "integrity": "sha512-/f/rMaEseux+I4wmR6mfpM2wvtNZb1p9hAV77hWfuKc3pmaANp5dLAZSiE3/8oXTYTt3uV9KW5yZKJsMievp6g==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.31.0.tgz", + "integrity": "sha512-3S625TMcARX71wBc2qubHaoUwMEn+l9TCsaIzYI/ET31Xm2c9YQ+zhGgpydjorwQO9pLfR/6peTzS/0G3J/hDw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.31.0", + "@typescript-eslint/visitor-keys": "5.31.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "dependencies": { + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@typescript-eslint/utils": { + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.31.0.tgz", + "integrity": "sha512-kcVPdQS6VIpVTQ7QnGNKMFtdJdvnStkqS5LeALr4rcwx11G6OWb2HB17NMPnlRHvaZP38hL9iK8DdE9Fne7NYg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.31.0", + "@typescript-eslint/types": "5.31.0", + "@typescript-eslint/typescript-estree": "5.31.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.31.0.tgz", + "integrity": "sha512-ZK0jVxSjS4gnPirpVjXHz7mgdOsZUHzNYSfTw2yPa3agfbt9YfqaBiBZFSSxeBWnpWkzCxTfUpnzA3Vily/CSg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.31.0", + "eslint-visitor-keys": "^3.3.0" + } + }, + "@wessberg/stringutil": { + "version": "1.0.19", + "resolved": "https://registry.npmjs.org/@wessberg/stringutil/-/stringutil-1.0.19.tgz", + "integrity": "sha512-9AZHVXWlpN8Cn9k5BC/O0Dzb9E9xfEMXzYrNunwvkUTvuK7xgQPVRZpLo+jWCOZ5r8oBa8NIrHuPEu1hzbb6bg==", + "dev": true + }, + "abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "dev": true + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, + "acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} + }, + "acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "requires": { + "debug": "4" + } + }, + "agentkeepalive": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", + "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "depd": "^1.1.2", + "humanize-ms": "^1.2.1" + } + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "append-transform": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", + "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", + "dev": true, + "requires": { + "default-require-extensions": "^3.0.0" + } + }, + "aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", + "dev": true + }, + "archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", + "dev": true + }, + "are-we-there-yet": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", + "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", + "dev": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", + "dev": true, + "requires": { + "@babel/runtime": "^7.10.2", + "@babel/runtime-corejs3": "^7.10.2" + } + }, + "array-includes": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", + "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" + } + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "array.prototype.flat": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", + "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" + } + }, + "array.prototype.flatmap": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", + "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" + } + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "dev": true + }, + "asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "dev": true + }, + "ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==", + "dev": true + }, + "async-foreach": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", + "integrity": "sha512-VUeSMD8nEGBWaZK4lizI1sf3yEC7pnAQ/mrI7pC2fBz2s/tq5jWWEngTwaf0Gruu/OoXRGLGg1XFqpYBiGTYJA==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "autoprefixer": { + "version": "10.4.7", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.7.tgz", + "integrity": "sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA==", + "dev": true, + "requires": { + "browserslist": "^4.20.3", + "caniuse-lite": "^1.0.30001335", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + } + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "dev": true + }, + "aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "dev": true + }, + "axe-core": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.3.tgz", + "integrity": "sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w==", + "dev": true + }, + "axobject-query": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", + "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==", + "dev": true + }, + "babel-jest": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.1.tgz", + "integrity": "sha512-MEt0263viUdAkTq5D7upHPNxvt4n9uLUGa6pPz3WviNBMtOmStb1lIXS3QobnoqM+qnH+vr4EKlvhe8QcmxIYw==", + "dev": true, + "requires": { + "@jest/transform": "^28.1.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^28.1.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "requires": { + "object.assign": "^4.1.0" + } + }, + "babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + } + }, + "babel-plugin-jest-hoist": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.1.tgz", + "integrity": "sha512-NovGCy5Hn25uMJSAU8FaHqzs13cFoOI4lhIujiepssjCKRsAo3TA734RDWSGxuFTsUJXerYOqQQodlxgmtqbzw==", + "dev": true, + "requires": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + } + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", + "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.3.1", + "semver": "^6.1.1" + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", + "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.1", + "core-js-compat": "^3.21.0" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", + "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.1" + } + }, + "babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "requires": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + } + }, + "babel-preset-jest": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-28.1.1.tgz", + "integrity": "sha512-FCq9Oud0ReTeWtcneYf/48981aTfXYuB9gbU4rBNNJVBSQ6ssv7E6v/qvbBxtOWwZFXjLZwpg+W3q7J6vhH25g==", + "dev": true, + "requires": { + "babel-plugin-jest-hoist": "^28.1.1", + "babel-preset-current-node-syntax": "^1.0.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "brotli-size": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/brotli-size/-/brotli-size-4.0.0.tgz", + "integrity": "sha512-uA9fOtlTRC0iqKfzff1W34DXUA3GyVqbUaeo3Rw3d4gd1eavKVCETXrn3NzO74W+UVkG3UHu8WxUi+XvKI/huA==", + "dev": true, + "requires": { + "duplexer": "0.1.1" + } + }, + "browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "dev": true + }, + "browserslist": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.0.tgz", + "integrity": "sha512-UQxE0DIhRB5z/zDz9iA03BOfxaN2+GQdBYH/2WrSIWEUrnpzTPJbhqt+umq6r3acaPRTW1FNTkrcp0PXgtFkvA==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001358", + "electron-to-chromium": "^1.4.164", + "node-releases": "^2.0.5", + "update-browserslist-db": "^1.0.0" + } + }, + "browserslist-generator": { + "version": "1.0.66", + "resolved": "https://registry.npmjs.org/browserslist-generator/-/browserslist-generator-1.0.66.tgz", + "integrity": "sha512-aFDax4Qzh29DdyhHQBD2Yu2L5OvaDnvYFMbmpLrLwwaNK4H6dHEhC/Nxv93/+mfAA+a/t94ln0P2JZvHO6LZDA==", + "dev": true, + "requires": { + "@mdn/browser-compat-data": "^4.1.16", + "@types/object-path": "^0.11.1", + "@types/semver": "^7.3.9", + "@types/ua-parser-js": "^0.7.36", + "browserslist": "4.20.2", + "caniuse-lite": "^1.0.30001328", + "isbot": "3.4.5", + "object-path": "^0.11.8", + "semver": "^7.3.7", + "ua-parser-js": "^1.0.2" + }, + "dependencies": { + "browserslist": { + "version": "4.20.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz", + "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001317", + "electron-to-chromium": "^1.4.84", + "escalade": "^3.1.1", + "node-releases": "^2.0.2", + "picocolors": "^1.0.0" + } + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "requires": { + "node-int64": "^0.4.0" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "bufferutil": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.6.tgz", + "integrity": "sha512-jduaYOYtnio4aIAyc6UbvPCVcgq7nYpVnucyxr6eCYg/Woad9Hf/oxxBRDnGGjPfjUm6j5O/uBWhIu4iLebFaw==", + "dev": true, + "requires": { + "node-gyp-build": "^4.3.0" + } + }, + "builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true + }, + "cacache": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "dev": true, + "requires": { + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "dependencies": { + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + } + } + }, + "caching-transform": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", + "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", + "dev": true, + "requires": { + "hasha": "^5.0.0", + "make-dir": "^3.0.0", + "package-hash": "^4.0.0", + "write-file-atomic": "^3.0.0" + }, + "dependencies": { + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + } + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + } + }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001363", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001363.tgz", + "integrity": "sha512-HpQhpzTGGPVMnCjIomjt+jvyUu8vNFo3TaDiZ/RcoTrlOq/5+tC8zHdsbgFB6MxmaY+jCpsH09aD80Bb4Ow3Sg==", + "dev": true + }, + "canvas": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/canvas/-/canvas-2.9.1.tgz", + "integrity": "sha512-vSQti1uG/2gjv3x6QLOZw7TctfufaerTWbVe+NSduHxxLGB+qf3kFgQ6n66DSnuoINtVUjrLLIK2R+lxrBG07A==", + "dev": true, + "requires": { + "@mapbox/node-pre-gyp": "^1.0.0", + "nan": "^2.15.0", + "simple-get": "^3.0.3" + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true + }, + "ci-info": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz", + "integrity": "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==", + "dev": true + }, + "cjs-module-lexer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", + "dev": true + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, + "cli-table3": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.2.tgz", + "integrity": "sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw==", + "dev": true, + "requires": { + "@colors/colors": "1.5.0", + "string-width": "^4.2.0" + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true + }, + "collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true + }, + "colord": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", + "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "compatfactory": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/compatfactory/-/compatfactory-1.0.1.tgz", + "integrity": "sha512-hR9u0HSZTKDNNchPtMHg6myeNx0XO+av7UZIJPsi4rPALJBHi/W5Mbwi19hC/xm6y3JkYpxVYjTqnSGsU5X/iw==", + "dev": true, + "requires": { + "helpertypes": "^0.0.18" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "dev": true + }, + "convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "core-js": { + "version": "3.23.2", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.23.2.tgz", + "integrity": "sha512-ELJOWxNrJfOH/WK4VJ3Qd+fOqZuOuDNDJz0xG6Bt4mGg2eO/UT9CljCrbqDGovjLKUrGajEEBcoTOc0w+yBYeQ==", + "dev": true + }, + "core-js-compat": { + "version": "3.23.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.23.2.tgz", + "integrity": "sha512-lrgZvxFwbQp9v7E8mX0rJ+JX7Bvh4eGULZXA1IAyjlsnWvCdw6TF8Tg6xtaSUSJMrSrMaLdpmk+V54LM1dvfOA==", + "dev": true, + "requires": { + "browserslist": "^4.20.4", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true + } + } + }, + "core-js-pure": { + "version": "3.23.2", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.23.2.tgz", + "integrity": "sha512-t6u7H4Ff/yZNk+zqTr74UjCcZ3k8ApBryeLLV4rYQd9aF3gqmjjGjjR44ENfeBMH8VVvSynIjAJ0mUuFhzQtrA==", + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "dev": true + }, + "cosmiconfig": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "crosspath": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crosspath/-/crosspath-2.0.0.tgz", + "integrity": "sha512-ju88BYCQ2uvjO2bR+SsgLSTwTSctU+6Vp2ePbKPgSCZyy4MWZxYsT738DlKVRE5utUjobjPRm1MkTYKJxCmpTA==", + "dev": true, + "requires": { + "@types/node": "^17.0.36" + }, + "dependencies": { + "@types/node": { + "version": "17.0.45", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", + "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==", + "dev": true + } + } + }, + "css-declaration-sorter": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.0.tgz", + "integrity": "sha512-OGT677UGHJTAVMRhPO+HJ4oKln3wkBTwtDFH0ojbqm+MJm6xuDMHp2nkhh/ThaBqq20IbraBQSWKfSLNHQO9Og==", + "dev": true, + "requires": {} + }, + "css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + } + }, + "css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dev": true, + "requires": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + } + }, + "css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "cssnano": { + "version": "5.1.12", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.12.tgz", + "integrity": "sha512-TgvArbEZu0lk/dvg2ja+B7kYoD7BBCmn3+k58xD0qjrGHsFzXY/wKTo9M5egcUCabPol05e/PVoIu79s2JN4WQ==", + "dev": true, + "requires": { + "cssnano-preset-default": "^5.2.12", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + } + }, + "cssnano-preset-default": { + "version": "5.2.12", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.12.tgz", + "integrity": "sha512-OyCBTZi+PXgylz9HAA5kHyoYhfGcYdwFmyaJzWnzxuGRtnMw/kR6ilW9XzlzlRAtB6PLT/r+prYgkef7hngFew==", + "dev": true, + "requires": { + "css-declaration-sorter": "^6.3.0", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.0", + "postcss-convert-values": "^5.1.2", + "postcss-discard-comments": "^5.1.2", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.6", + "postcss-merge-rules": "^5.1.2", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.3", + "postcss-minify-selectors": "^5.2.1", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.1", + "postcss-normalize-repeat-style": "^5.1.1", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.0", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.3", + "postcss-reduce-initial": "^5.1.0", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" + } + }, + "cssnano-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "dev": true, + "requires": {} + }, + "csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "requires": { + "css-tree": "^1.1.2" + } + }, + "cssom": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", + "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", + "dev": true + }, + "cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "requires": { + "cssom": "~0.3.6" + }, + "dependencies": { + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + } + } + }, + "damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "dev": true + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "data-urls": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", + "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", + "dev": true, + "requires": { + "abab": "^2.0.6", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0" + }, + "dependencies": { + "whatwg-url": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "dev": true, + "requires": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + } + } + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true + }, + "decamelize-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", + "integrity": "sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg==", + "dev": true, + "requires": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "dependencies": { + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "dev": true + } + } + }, + "decimal.js": { + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", + "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==", + "dev": true + }, + "decompress-response": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", + "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", + "dev": true, + "requires": { + "mimic-response": "^2.0.0" + } + }, + "dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true + }, + "default-require-extensions": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", + "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==", + "dev": true, + "requires": { + "strip-bom": "^4.0.0" + } + }, + "define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "del": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/del/-/del-5.1.0.tgz", + "integrity": "sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==", + "dev": true, + "requires": { + "globby": "^10.0.1", + "graceful-fs": "^4.2.2", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.1", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", + "slash": "^3.0.0" + }, + "dependencies": { + "globby": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", + "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", + "slash": "^3.0.0" + } + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "dev": true + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true + }, + "detect-libc": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", + "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", + "dev": true + }, + "detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true + }, + "diff-sequences": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", + "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "dom-accessibility-api": { + "version": "0.5.14", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.14.tgz", + "integrity": "sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg==", + "dev": true + }, + "dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true + }, + "domexception": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", + "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", + "dev": true, + "requires": { + "webidl-conversions": "^7.0.0" + } + }, + "domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "requires": { + "domelementtype": "^2.2.0" + } + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "duplexer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", + "integrity": "sha512-sxNZ+ljy+RA1maXoUReeqBBpBC6RLKmg5ewzV+x+mSETmWNoKdZN6vcQjpFROemza23hGFskJtFNoUWUaQ+R4Q==", + "dev": true + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "electron-to-chromium": { + "version": "1.4.167", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.167.tgz", + "integrity": "sha512-lPHuHXBwpkr4RcfaZBKm6TKOWG/1N9mVggUpP4fY3l1JIUU2x4fkM8928smYdZ5lF+6KCTAxo1aK9JmqT+X71Q==", + "dev": true + }, + "emittery": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", + "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", + "dev": true + }, + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "optional": true, + "requires": { + "iconv-lite": "^0.6.2" + } + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true + }, + "env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true + }, + "err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + } + }, + "es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true + }, + "es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true + }, + "esbuild": { + "version": "0.14.47", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.47.tgz", + "integrity": "sha512-wI4ZiIfFxpkuxB8ju4MHrGwGLyp1+awEHAHVpx6w7a+1pmYIq8T9FGEVVwFo0iFierDoMj++Xq69GXWYn2EiwA==", + "dev": true, + "requires": { + "esbuild-android-64": "0.14.47", + "esbuild-android-arm64": "0.14.47", + "esbuild-darwin-64": "0.14.47", + "esbuild-darwin-arm64": "0.14.47", + "esbuild-freebsd-64": "0.14.47", + "esbuild-freebsd-arm64": "0.14.47", + "esbuild-linux-32": "0.14.47", + "esbuild-linux-64": "0.14.47", + "esbuild-linux-arm": "0.14.47", + "esbuild-linux-arm64": "0.14.47", + "esbuild-linux-mips64le": "0.14.47", + "esbuild-linux-ppc64le": "0.14.47", + "esbuild-linux-riscv64": "0.14.47", + "esbuild-linux-s390x": "0.14.47", + "esbuild-netbsd-64": "0.14.47", + "esbuild-openbsd-64": "0.14.47", + "esbuild-sunos-64": "0.14.47", + "esbuild-windows-32": "0.14.47", + "esbuild-windows-64": "0.14.47", + "esbuild-windows-arm64": "0.14.47" + } + }, + "esbuild-android-64": { + "version": "0.14.47", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.47.tgz", + "integrity": "sha512-R13Bd9+tqLVFndncMHssZrPWe6/0Kpv2/dt4aA69soX4PRxlzsVpCvoJeFE8sOEoeVEiBkI0myjlkDodXlHa0g==", + "dev": true, + "optional": true + }, + "esbuild-android-arm64": { + "version": "0.14.47", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.47.tgz", + "integrity": "sha512-OkwOjj7ts4lBp/TL6hdd8HftIzOy/pdtbrNA4+0oVWgGG64HrdVzAF5gxtJufAPOsEjkyh1oIYvKAUinKKQRSQ==", + "dev": true, + "optional": true + }, + "esbuild-darwin-64": { + "version": "0.14.47", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.47.tgz", + "integrity": "sha512-R6oaW0y5/u6Eccti/TS6c/2c1xYTb1izwK3gajJwi4vIfNs1s8B1dQzI1UiC9T61YovOQVuePDcfqHLT3mUZJA==", + "dev": true, + "optional": true + }, + "esbuild-darwin-arm64": { + "version": "0.14.47", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.47.tgz", + "integrity": "sha512-seCmearlQyvdvM/noz1L9+qblC5vcBrhUaOoLEDDoLInF/VQ9IkobGiLlyTPYP5dW1YD4LXhtBgOyevoIHGGnw==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-64": { + "version": "0.14.47", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.47.tgz", + "integrity": "sha512-ZH8K2Q8/Ux5kXXvQMDsJcxvkIwut69KVrYQhza/ptkW50DC089bCVrJZZ3sKzIoOx+YPTrmsZvqeZERjyYrlvQ==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-arm64": { + "version": "0.14.47", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.47.tgz", + "integrity": "sha512-ZJMQAJQsIOhn3XTm7MPQfCzEu5b9STNC+s90zMWe2afy9EwnHV7Ov7ohEMv2lyWlc2pjqLW8QJnz2r0KZmeAEQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-32": { + "version": "0.14.47", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.47.tgz", + "integrity": "sha512-FxZOCKoEDPRYvq300lsWCTv1kcHgiiZfNrPtEhFAiqD7QZaXrad8LxyJ8fXGcWzIFzRiYZVtB3ttvITBvAFhKw==", + "dev": true, + "optional": true + }, + "esbuild-linux-64": { + "version": "0.14.47", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.47.tgz", + "integrity": "sha512-nFNOk9vWVfvWYF9YNYksZptgQAdstnDCMtR6m42l5Wfugbzu11VpMCY9XrD4yFxvPo9zmzcoUL/88y0lfJZJJw==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm": { + "version": "0.14.47", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.47.tgz", + "integrity": "sha512-ZGE1Bqg/gPRXrBpgpvH81tQHpiaGxa8c9Rx/XOylkIl2ypLuOcawXEAo8ls+5DFCcRGt/o3sV+PzpAFZobOsmA==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm64": { + "version": "0.14.47", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.47.tgz", + "integrity": "sha512-ywfme6HVrhWcevzmsufjd4iT3PxTfCX9HOdxA7Hd+/ZM23Y9nXeb+vG6AyA6jgq/JovkcqRHcL9XwRNpWG6XRw==", + "dev": true, + "optional": true + }, + "esbuild-linux-mips64le": { + "version": "0.14.47", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.47.tgz", + "integrity": "sha512-mg3D8YndZ1LvUiEdDYR3OsmeyAew4MA/dvaEJxvyygahWmpv1SlEEnhEZlhPokjsUMfRagzsEF/d/2XF+kTQGg==", + "dev": true, + "optional": true + }, + "esbuild-linux-ppc64le": { + "version": "0.14.47", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.47.tgz", + "integrity": "sha512-WER+f3+szmnZiWoK6AsrTKGoJoErG2LlauSmk73LEZFQ/iWC+KhhDsOkn1xBUpzXWsxN9THmQFltLoaFEH8F8w==", + "dev": true, + "optional": true + }, + "esbuild-linux-riscv64": { + "version": "0.14.47", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.47.tgz", + "integrity": "sha512-1fI6bP3A3rvI9BsaaXbMoaOjLE3lVkJtLxsgLHqlBhLlBVY7UqffWBvkrX/9zfPhhVMd9ZRFiaqXnB1T7BsL2g==", + "dev": true, + "optional": true + }, + "esbuild-linux-s390x": { + "version": "0.14.47", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.47.tgz", + "integrity": "sha512-eZrWzy0xFAhki1CWRGnhsHVz7IlSKX6yT2tj2Eg8lhAwlRE5E96Hsb0M1mPSE1dHGpt1QVwwVivXIAacF/G6mw==", + "dev": true, + "optional": true + }, + "esbuild-netbsd-64": { + "version": "0.14.47", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.47.tgz", + "integrity": "sha512-Qjdjr+KQQVH5Q2Q1r6HBYswFTToPpss3gqCiSw2Fpq/ua8+eXSQyAMG+UvULPqXceOwpnPo4smyZyHdlkcPppQ==", + "dev": true, + "optional": true + }, + "esbuild-openbsd-64": { + "version": "0.14.47", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.47.tgz", + "integrity": "sha512-QpgN8ofL7B9z8g5zZqJE+eFvD1LehRlxr25PBkjyyasakm4599iroUpaj96rdqRlO2ShuyqwJdr+oNqWwTUmQw==", + "dev": true, + "optional": true + }, + "esbuild-sunos-64": { + "version": "0.14.47", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.47.tgz", + "integrity": "sha512-uOeSgLUwukLioAJOiGYm3kNl+1wJjgJA8R671GYgcPgCx7QR73zfvYqXFFcIO93/nBdIbt5hd8RItqbbf3HtAQ==", + "dev": true, + "optional": true + }, + "esbuild-windows-32": { + "version": "0.14.47", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.47.tgz", + "integrity": "sha512-H0fWsLTp2WBfKLBgwYT4OTfFly4Im/8B5f3ojDv1Kx//kiubVY0IQunP2Koc/fr/0wI7hj3IiBDbSrmKlrNgLQ==", + "dev": true, + "optional": true + }, + "esbuild-windows-64": { + "version": "0.14.47", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.47.tgz", + "integrity": "sha512-/Pk5jIEH34T68r8PweKRi77W49KwanZ8X6lr3vDAtOlH5EumPE4pBHqkCUdELanvsT14yMXLQ/C/8XPi1pAtkQ==", + "dev": true, + "optional": true + }, + "esbuild-windows-arm64": { + "version": "0.14.47", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.47.tgz", + "integrity": "sha512-HFSW2lnp62fl86/qPQlqw6asIwCnEsEoNIL1h2uVMgakddf+vUuMcCbtUY1i8sst7KkgHrVKCJQB33YhhOweCQ==", + "dev": true, + "optional": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "dev": true, + "requires": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + }, + "dependencies": { + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + } + } + }, + "eslint": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.20.0.tgz", + "integrity": "sha512-d4ixhz5SKCa1D6SCPrivP7yYVi7nyD6A4vs6HIAul9ujBzcEmZVM3/0NN/yu5nKhmO1wjp5xQ46iRfmDGlOviA==", + "dev": true, + "requires": { + "@eslint/eslintrc": "^1.3.0", + "@humanwhocodes/config-array": "^0.9.2", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.2", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "globals": { + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + } + } + }, + "eslint-config-airbnb": { + "version": "19.0.4", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-19.0.4.tgz", + "integrity": "sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew==", + "dev": true, + "requires": { + "eslint-config-airbnb-base": "^15.0.0", + "object.assign": "^4.1.2", + "object.entries": "^1.1.5" + } + }, + "eslint-config-airbnb-base": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", + "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", + "dev": true, + "requires": { + "confusing-browser-globals": "^1.0.10", + "object.assign": "^4.1.2", + "object.entries": "^1.1.5", + "semver": "^6.3.0" + } + }, + "eslint-config-prettier": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", + "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", + "dev": true, + "requires": {} + }, + "eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "dev": true, + "requires": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-module-utils": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", + "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", + "dev": true, + "requires": { + "debug": "^3.2.7", + "find-up": "^2.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true + } + } + }, + "eslint-plugin-import": { + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "dev": true, + "requires": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.3", + "has": "^1.0.3", + "is-core-module": "^2.8.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.5", + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "eslint-plugin-jest": { + "version": "26.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-26.7.0.tgz", + "integrity": "sha512-/YNitdfG3o3cC6juZziAdkk6nfJt01jXVfj4AgaYVLs7bupHzRDL5K+eipdzhDXtQsiqaX1TzfwSuRlEgeln1A==", + "dev": true, + "requires": { + "@typescript-eslint/utils": "^5.10.0" + } + }, + "eslint-plugin-json": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-json/-/eslint-plugin-json-3.1.0.tgz", + "integrity": "sha512-MrlG2ynFEHe7wDGwbUuFPsaT2b1uhuEFhJ+W1f1u+1C2EkXmTYJp4B1aAdQQ8M+CC3t//N/oRKiIVw14L2HR1g==", + "dev": true, + "requires": { + "lodash": "^4.17.21", + "vscode-json-languageservice": "^4.1.6" + } + }, + "eslint-plugin-jsx-a11y": { + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.1.tgz", + "integrity": "sha512-sXgFVNHiWffBq23uiS/JaP6eVR622DqwB4yTzKvGZGcPq6/yZ3WmOZfuBks/vHWo9GaFOqC2ZK4i6+C35knx7Q==", + "dev": true, + "requires": { + "@babel/runtime": "^7.18.9", + "aria-query": "^4.2.2", + "array-includes": "^3.1.5", + "ast-types-flow": "^0.0.7", + "axe-core": "^4.4.3", + "axobject-query": "^2.2.0", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "has": "^1.0.3", + "jsx-ast-utils": "^3.3.2", + "language-tags": "^1.0.5", + "minimatch": "^3.1.2", + "semver": "^6.3.0" + } + }, + "eslint-plugin-prettier": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", + "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", + "dev": true, + "requires": { + "prettier-linter-helpers": "^1.0.0" + } + }, + "eslint-plugin-react": { + "version": "7.30.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.30.0.tgz", + "integrity": "sha512-RgwH7hjW48BleKsYyHK5vUAvxtE9SMPDKmcPRQgtRCYaZA0XQPt5FSkrU3nhz5ifzMZcA8opwmRJ2cmOO8tr5A==", + "dev": true, + "requires": { + "array-includes": "^3.1.5", + "array.prototype.flatmap": "^1.3.0", + "doctrine": "^2.1.0", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.5", + "object.fromentries": "^2.0.5", + "object.hasown": "^1.1.1", + "object.values": "^1.1.5", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.3", + "semver": "^6.3.0", + "string.prototype.matchall": "^4.0.7" + }, + "dependencies": { + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "resolve": { + "version": "2.0.0-next.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", + "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", + "dev": true, + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + } + } + }, + "eslint-plugin-react-hooks": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", + "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", + "dev": true, + "requires": {} + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "dependencies": { + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + } + } + }, + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + } + } + }, + "eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true + }, + "espree": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", + "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", + "dev": true, + "requires": { + "acorn": "^8.7.1", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + }, + "dependencies": { + "acorn": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", + "dev": true + } + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true + }, + "expect": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-28.1.1.tgz", + "integrity": "sha512-/AANEwGL0tWBwzLNOvO0yUdy2D52jVdNXppOqswC49sxMN2cPWsGCQdzuIf9tj6hHoBQzNvx75JUYuQAckPo3w==", + "dev": true, + "requires": { + "@jest/expect-utils": "^28.1.1", + "jest-get-type": "^28.0.2", + "jest-matcher-utils": "^28.1.1", + "jest-message-util": "^28.1.1", + "jest-util": "^28.1.1" + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, + "fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "dev": true, + "requires": { + "bser": "2.1.1" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "filesize": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", + "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "filter-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", + "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", + "dev": true + }, + "find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", + "dev": true + }, + "foreground-child": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "dev": true + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "dev": true + }, + "fromentries": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", + "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", + "dev": true + }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true + }, + "gauge": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", + "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", + "dev": true, + "requires": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", + "signal-exit": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.2" + } + }, + "gaze": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "dev": true, + "requires": { + "globule": "^1.0.0" + } + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-intrinsic": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", + "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==", + "dev": true + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "globule": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.4.tgz", + "integrity": "sha512-OPTIfhMBh7JbBYDpa5b+Q5ptmMWKwcNcFSR/0c6t8V4f3ZAVBEsKNY37QdVqmLRYSMhOUGYrY0QhSoEpzGr/Eg==", + "dev": true, + "requires": { + "glob": "~7.1.1", + "lodash": "^4.17.21", + "minimatch": "~3.0.2" + }, + "dependencies": { + "glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimatch": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", + "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "gzip-size": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-7.0.0.tgz", + "integrity": "sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA==", + "dev": true, + "requires": { + "duplexer": "^0.1.2" + }, + "dependencies": { + "duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + } + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", + "dev": true + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "dev": true, + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", + "dev": true + }, + "hasha": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", + "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", + "dev": true, + "requires": { + "is-stream": "^2.0.0", + "type-fest": "^0.8.0" + }, + "dependencies": { + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + } + } + }, + "helpertypes": { + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/helpertypes/-/helpertypes-0.0.18.tgz", + "integrity": "sha512-XRhfbSEmR+poXUC5/8AbmYNJb2riOT6qPzjGJZr0S9YedHiaY+/tzPYzWMUclYMEdCYo/1l8PDYrQFCj02v97w==", + "dev": true + }, + "hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "html-encoding-sniffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", + "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", + "dev": true, + "requires": { + "whatwg-encoding": "^2.0.0" + } + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true + }, + "http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "requires": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, + "humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "dev": true, + "requires": { + "ms": "^2.0.0" + } + }, + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "requires": {} + }, + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + } + } + }, + "import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "ip": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", + "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-builtin-module": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.1.0.tgz", + "integrity": "sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg==", + "dev": true, + "requires": { + "builtin-modules": "^3.0.0" + } + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true + }, + "is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", + "dev": true + }, + "is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true + }, + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "dev": true + }, + "is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true + }, + "is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "dev": true, + "requires": { + "@types/estree": "*" + } + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true + }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "isbot": { + "version": "3.4.5", + "resolved": "https://registry.npmjs.org/isbot/-/isbot-3.4.5.tgz", + "integrity": "sha512-+KD6q1BBtw0iK9aGBGSfxJ31/ZgizKRjhm8ebgJUBMx0aeeQuIJ1I72beCoIrltIZGrSm4vmrxRxrG5n1aUTtw==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true + }, + "istanbul-lib-hook": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", + "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", + "dev": true, + "requires": { + "append-transform": "^2.0.0" + } + }, + "istanbul-lib-instrument": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", + "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", + "dev": true, + "requires": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + } + }, + "istanbul-lib-processinfo": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz", + "integrity": "sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==", + "dev": true, + "requires": { + "archy": "^1.0.0", + "cross-spawn": "^7.0.3", + "istanbul-lib-coverage": "^3.2.0", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", + "uuid": "^8.3.2" + } + }, + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + } + }, + "istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + } + }, + "istanbul-reports": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", + "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "jest": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-28.1.1.tgz", + "integrity": "sha512-qw9YHBnjt6TCbIDMPMpJZqf9E12rh6869iZaN08/vpOGgHJSAaLLUn6H8W3IAEuy34Ls3rct064mZLETkxJ2XA==", + "dev": true, + "requires": { + "@jest/core": "^28.1.1", + "@jest/types": "^28.1.1", + "import-local": "^3.0.2", + "jest-cli": "^28.1.1" + } + }, + "jest-changed-files": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-28.0.2.tgz", + "integrity": "sha512-QX9u+5I2s54ZnGoMEjiM2WeBvJR2J7w/8ZUmH2um/WLAuGAYFQcsVXY9+1YL6k0H/AGUdH8pXUAv6erDqEsvIA==", + "dev": true, + "requires": { + "execa": "^5.0.0", + "throat": "^6.0.1" + } + }, + "jest-circus": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-28.1.1.tgz", + "integrity": "sha512-75+BBVTsL4+p2w198DQpCeyh1RdaS2lhEG87HkaFX/UG0gJExVq2skG2pT7XZEGBubNj2CytcWSPan4QEPNosw==", + "dev": true, + "requires": { + "@jest/environment": "^28.1.1", + "@jest/expect": "^28.1.1", + "@jest/test-result": "^28.1.1", + "@jest/types": "^28.1.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^28.1.1", + "jest-matcher-utils": "^28.1.1", + "jest-message-util": "^28.1.1", + "jest-runtime": "^28.1.1", + "jest-snapshot": "^28.1.1", + "jest-util": "^28.1.1", + "pretty-format": "^28.1.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + }, + "pretty-format": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.1.tgz", + "integrity": "sha512-wwJbVTGFHeucr5Jw2bQ9P+VYHyLdAqedFLEkdQUVaBF/eiidDwH5OpilINq4mEfhbCjLnirt6HTTDhv1HaTIQw==", + "dev": true, + "requires": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + } + } + }, + "jest-cli": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-28.1.1.tgz", + "integrity": "sha512-+sUfVbJqb1OjBZ0OdBbI6OWfYM1i7bSfzYy6gze1F1w3OKWq8ZTEKkZ8a7ZQPq6G/G1qMh/uKqpdWhgl11NFQQ==", + "dev": true, + "requires": { + "@jest/core": "^28.1.1", + "@jest/test-result": "^28.1.1", + "@jest/types": "^28.1.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^28.1.1", + "jest-util": "^28.1.1", + "jest-validate": "^28.1.1", + "prompts": "^2.0.1", + "yargs": "^17.3.1" + } + }, + "jest-config": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-28.1.1.tgz", + "integrity": "sha512-tASynMhS+jVV85zKvjfbJ8nUyJS/jUSYZ5KQxLUN2ZCvcQc/OmhQl2j6VEL3ezQkNofxn5pQ3SPYWPHb0unTZA==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^28.1.1", + "@jest/types": "^28.1.1", + "babel-jest": "^28.1.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^28.1.1", + "jest-environment-node": "^28.1.1", + "jest-get-type": "^28.0.2", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.1", + "jest-runner": "^28.1.1", + "jest-util": "^28.1.1", + "jest-validate": "^28.1.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^28.1.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + }, + "pretty-format": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.1.tgz", + "integrity": "sha512-wwJbVTGFHeucr5Jw2bQ9P+VYHyLdAqedFLEkdQUVaBF/eiidDwH5OpilINq4mEfhbCjLnirt6HTTDhv1HaTIQw==", + "dev": true, + "requires": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + } + } + }, + "jest-diff": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", + "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^26.6.2", + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + }, + "dependencies": { + "jest-get-type": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", + "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", + "dev": true + } + } + }, + "jest-docblock": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-28.1.1.tgz", + "integrity": "sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==", + "dev": true, + "requires": { + "detect-newline": "^3.0.0" + } + }, + "jest-each": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-28.1.1.tgz", + "integrity": "sha512-A042rqh17ZvEhRceDMi784ppoXR7MWGDEKTXEZXb4svt0eShMZvijGxzKsx+yIjeE8QYmHPrnHiTSQVhN4nqaw==", + "dev": true, + "requires": { + "@jest/types": "^28.1.1", + "chalk": "^4.0.0", + "jest-get-type": "^28.0.2", + "jest-util": "^28.1.1", + "pretty-format": "^28.1.1" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + }, + "pretty-format": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.1.tgz", + "integrity": "sha512-wwJbVTGFHeucr5Jw2bQ9P+VYHyLdAqedFLEkdQUVaBF/eiidDwH5OpilINq4mEfhbCjLnirt6HTTDhv1HaTIQw==", + "dev": true, + "requires": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + } + } + }, + "jest-environment-jsdom": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-28.1.1.tgz", + "integrity": "sha512-41ZvgSoPNcKG5q3LuuOcAczdBxRq9DbZkPe24okN6ZCmiZdAfFtPg3z+lOtsT1fM6OAERApKT+3m0MRDQH2zIA==", + "dev": true, + "requires": { + "@jest/environment": "^28.1.1", + "@jest/fake-timers": "^28.1.1", + "@jest/types": "^28.1.1", + "@types/jsdom": "^16.2.4", + "@types/node": "*", + "jest-mock": "^28.1.1", + "jest-util": "^28.1.1", + "jsdom": "^19.0.0" + } + }, + "jest-environment-node": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-28.1.1.tgz", + "integrity": "sha512-2aV/eeY/WNgUUJrrkDJ3cFEigjC5fqT1+fCclrY6paqJ5zVPoM//sHmfgUUp7WLYxIdbPwMiVIzejpN56MxnNA==", + "dev": true, + "requires": { + "@jest/environment": "^28.1.1", + "@jest/fake-timers": "^28.1.1", + "@jest/types": "^28.1.1", + "@types/node": "*", + "jest-mock": "^28.1.1", + "jest-util": "^28.1.1" + } + }, + "jest-get-type": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", + "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", + "dev": true + }, + "jest-haste-map": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.1.tgz", + "integrity": "sha512-ZrRSE2o3Ezh7sb1KmeLEZRZ4mgufbrMwolcFHNRSjKZhpLa8TdooXOOFlSwoUzlbVs1t0l7upVRW2K7RWGHzbQ==", + "dev": true, + "requires": { + "@jest/types": "^28.1.1", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^28.0.2", + "jest-util": "^28.1.1", + "jest-worker": "^28.1.1", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + } + }, + "jest-leak-detector": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-28.1.1.tgz", + "integrity": "sha512-4jvs8V8kLbAaotE+wFR7vfUGf603cwYtFf1/PYEsyX2BAjSzj8hQSVTP6OWzseTl0xL6dyHuKs2JAks7Pfubmw==", + "dev": true, + "requires": { + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.1" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + }, + "pretty-format": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.1.tgz", + "integrity": "sha512-wwJbVTGFHeucr5Jw2bQ9P+VYHyLdAqedFLEkdQUVaBF/eiidDwH5OpilINq4mEfhbCjLnirt6HTTDhv1HaTIQw==", + "dev": true, + "requires": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + } + } + }, + "jest-matcher-utils": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.1.tgz", + "integrity": "sha512-NPJPRWrbmR2nAJ+1nmnfcKKzSwgfaciCCrYZzVnNoxVoyusYWIjkBMNvu0RHJe7dNj4hH3uZOPZsQA+xAYWqsw==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^28.1.1", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.1" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + }, + "diff-sequences": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", + "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", + "dev": true + }, + "jest-diff": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.1.tgz", + "integrity": "sha512-/MUUxeR2fHbqHoMMiffe/Afm+U8U4olFRJ0hiVG2lZatPJcnGxx292ustVu7bULhjV65IYMxRdploAKLbcrsyg==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^28.1.1", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.1" + } + }, + "pretty-format": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.1.tgz", + "integrity": "sha512-wwJbVTGFHeucr5Jw2bQ9P+VYHyLdAqedFLEkdQUVaBF/eiidDwH5OpilINq4mEfhbCjLnirt6HTTDhv1HaTIQw==", + "dev": true, + "requires": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + } + } + }, + "jest-message-util": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.1.tgz", + "integrity": "sha512-xoDOOT66fLfmTRiqkoLIU7v42mal/SqwDKvfmfiWAdJMSJiU+ozgluO7KbvoAgiwIrrGZsV7viETjc8GNrA/IQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^28.1.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + }, + "pretty-format": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.1.tgz", + "integrity": "sha512-wwJbVTGFHeucr5Jw2bQ9P+VYHyLdAqedFLEkdQUVaBF/eiidDwH5OpilINq4mEfhbCjLnirt6HTTDhv1HaTIQw==", + "dev": true, + "requires": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + } + } + }, + "jest-mock": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.1.tgz", + "integrity": "sha512-bDCb0FjfsmKweAvE09dZT59IMkzgN0fYBH6t5S45NoJfd2DHkS3ySG2K+hucortryhO3fVuXdlxWcbtIuV/Skw==", + "dev": true, + "requires": { + "@jest/types": "^28.1.1", + "@types/node": "*" + } + }, + "jest-pnp-resolver": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", + "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "dev": true, + "requires": {} + }, + "jest-regex-util": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", + "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", + "dev": true + }, + "jest-resolve": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-28.1.1.tgz", + "integrity": "sha512-/d1UbyUkf9nvsgdBildLe6LAD4DalgkgZcKd0nZ8XUGPyA/7fsnaQIlKVnDiuUXv/IeZhPEDrRJubVSulxrShA==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^28.1.1", + "jest-validate": "^28.1.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + } + }, + "jest-resolve-dependencies": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.1.tgz", + "integrity": "sha512-p8Y150xYJth4EXhOuB8FzmS9r8IGLEioiaetgdNGb9VHka4fl0zqWlVe4v7mSkYOuEUg2uB61iE+zySDgrOmgQ==", + "dev": true, + "requires": { + "jest-regex-util": "^28.0.2", + "jest-snapshot": "^28.1.1" + } + }, + "jest-runner": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-28.1.1.tgz", + "integrity": "sha512-W5oFUiDBgTsCloTAj6q95wEvYDB0pxIhY6bc5F26OucnwBN+K58xGTGbliSMI4ChQal5eANDF+xvELaYkJxTmA==", + "dev": true, + "requires": { + "@jest/console": "^28.1.1", + "@jest/environment": "^28.1.1", + "@jest/test-result": "^28.1.1", + "@jest/transform": "^28.1.1", + "@jest/types": "^28.1.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "graceful-fs": "^4.2.9", + "jest-docblock": "^28.1.1", + "jest-environment-node": "^28.1.1", + "jest-haste-map": "^28.1.1", + "jest-leak-detector": "^28.1.1", + "jest-message-util": "^28.1.1", + "jest-resolve": "^28.1.1", + "jest-runtime": "^28.1.1", + "jest-util": "^28.1.1", + "jest-watcher": "^28.1.1", + "jest-worker": "^28.1.1", + "source-map-support": "0.5.13", + "throat": "^6.0.1" + } + }, + "jest-runtime": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-28.1.1.tgz", + "integrity": "sha512-J89qEJWW0leOsqyi0D9zHpFEYHwwafFdS9xgvhFHtIdRghbadodI0eA+DrthK/1PebBv3Px8mFSMGKrtaVnleg==", + "dev": true, + "requires": { + "@jest/environment": "^28.1.1", + "@jest/fake-timers": "^28.1.1", + "@jest/globals": "^28.1.1", + "@jest/source-map": "^28.0.2", + "@jest/test-result": "^28.1.1", + "@jest/transform": "^28.1.1", + "@jest/types": "^28.1.1", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.1", + "jest-message-util": "^28.1.1", + "jest-mock": "^28.1.1", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.1", + "jest-snapshot": "^28.1.1", + "jest-util": "^28.1.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + } + }, + "jest-snapshot": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.1.tgz", + "integrity": "sha512-1KjqHJ98adRcbIdMizjF5DipwZFbvxym/kFO4g4fVZCZRxH/dqV8TiBFCa6rqic3p0karsy8RWS1y4E07b7P0A==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^28.1.1", + "@jest/transform": "^28.1.1", + "@jest/types": "^28.1.1", + "@types/babel__traverse": "^7.0.6", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^28.1.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^28.1.1", + "jest-get-type": "^28.0.2", + "jest-haste-map": "^28.1.1", + "jest-matcher-utils": "^28.1.1", + "jest-message-util": "^28.1.1", + "jest-util": "^28.1.1", + "natural-compare": "^1.4.0", + "pretty-format": "^28.1.1", + "semver": "^7.3.5" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + }, + "diff-sequences": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", + "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", + "dev": true + }, + "jest-diff": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.1.tgz", + "integrity": "sha512-/MUUxeR2fHbqHoMMiffe/Afm+U8U4olFRJ0hiVG2lZatPJcnGxx292ustVu7bULhjV65IYMxRdploAKLbcrsyg==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^28.1.1", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.1" + } + }, + "pretty-format": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.1.tgz", + "integrity": "sha512-wwJbVTGFHeucr5Jw2bQ9P+VYHyLdAqedFLEkdQUVaBF/eiidDwH5OpilINq4mEfhbCjLnirt6HTTDhv1HaTIQw==", + "dev": true, + "requires": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "jest-util": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.1.tgz", + "integrity": "sha512-FktOu7ca1DZSyhPAxgxB6hfh2+9zMoJ7aEQA759Z6p45NuO8mWcqujH+UdHlCm/V6JTWwDztM2ITCzU1ijJAfw==", + "dev": true, + "requires": { + "@jest/types": "^28.1.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "jest-validate": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-28.1.1.tgz", + "integrity": "sha512-Kpf6gcClqFCIZ4ti5++XemYJWUPCFUW+N2gknn+KgnDf549iLul3cBuKVe1YcWRlaF8tZV8eJCap0eECOEE3Ug==", + "dev": true, + "requires": { + "@jest/types": "^28.1.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^28.0.2", + "leven": "^3.1.0", + "pretty-format": "^28.1.1" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + }, + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + }, + "pretty-format": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.1.tgz", + "integrity": "sha512-wwJbVTGFHeucr5Jw2bQ9P+VYHyLdAqedFLEkdQUVaBF/eiidDwH5OpilINq4mEfhbCjLnirt6HTTDhv1HaTIQw==", + "dev": true, + "requires": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + } + } + }, + "jest-watcher": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.1.tgz", + "integrity": "sha512-RQIpeZ8EIJMxbQrXpJQYIIlubBnB9imEHsxxE41f54ZwcqWLysL/A0ZcdMirf+XsMn3xfphVQVV4EW0/p7i7Ug==", + "dev": true, + "requires": { + "@jest/test-result": "^28.1.1", + "@jest/types": "^28.1.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "jest-util": "^28.1.1", + "string-length": "^4.0.1" + } + }, + "jest-worker": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.1.tgz", + "integrity": "sha512-Au7slXB08C6h+xbJPp7VIb6U0XX5Kc9uel/WFc6/rcTzGiaVCBRngBExSYuXSLFPULPSYU3cJ3ybS988lNFQhQ==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "joycon": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", + "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", + "dev": true + }, + "js-base64": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", + "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", + "dev": true + }, + "jsdom": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-19.0.0.tgz", + "integrity": "sha512-RYAyjCbxy/vri/CfnjUWJQQtZ3LKlLnDqj+9XLNnJPgEGeirZs3hllKR20re8LUZ6o1b1X4Jat+Qd26zmP41+A==", + "dev": true, + "requires": { + "abab": "^2.0.5", + "acorn": "^8.5.0", + "acorn-globals": "^6.0.0", + "cssom": "^0.5.0", + "cssstyle": "^2.3.0", + "data-urls": "^3.0.1", + "decimal.js": "^10.3.1", + "domexception": "^4.0.0", + "escodegen": "^2.0.0", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^3.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^2.0.0", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^10.0.0", + "ws": "^8.2.3", + "xml-name-validator": "^4.0.0" + }, + "dependencies": { + "acorn": { + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", + "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "dev": true + } + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true + }, + "json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true + }, + "jsonc-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", + "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", + "dev": true + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, + "jsx-ast-utils": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.2.tgz", + "integrity": "sha512-4ZCADZHRkno244xlNnn4AOG6sRQ7iBZ5BbgZ4vW4y5IZw7cVUD1PPeblm1xx/nfmMxPdt/LHsXZW8z/j58+l9Q==", + "dev": true, + "requires": { + "array-includes": "^3.1.5", + "object.assign": "^4.1.2" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true + }, + "language-subtag-registry": { + "version": "0.3.21", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz", + "integrity": "sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==", + "dev": true + }, + "language-tags": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", + "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==", + "dev": true, + "requires": { + "language-subtag-registry": "~0.3.2" + } + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "lilconfig": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", + "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", + "dev": true + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "livereload": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/livereload/-/livereload-0.9.3.tgz", + "integrity": "sha512-q7Z71n3i4X0R9xthAryBdNGVGAO2R5X+/xXpmKeuPMrteg+W2U8VusTKV3YiJbXZwKsOlFlHe+go6uSNjfxrZw==", + "dev": true, + "requires": { + "chokidar": "^3.5.0", + "livereload-js": "^3.3.1", + "opts": ">= 1.2.0", + "ws": "^7.4.3" + }, + "dependencies": { + "ws": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.8.tgz", + "integrity": "sha512-ri1Id1WinAX5Jqn9HejiGb8crfRio0Qgu8+MtL36rlTA6RLsMdWt1Az/19A2Qij6uSHUMphEFaTKa4WG+UNHNw==", + "dev": true, + "requires": {} + } + } + }, + "livereload-js": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-3.4.0.tgz", + "integrity": "sha512-F/pz9ZZP+R+arY94cECTZco7PXgBXyL+KVWUPZq8AQE9TOu14GV6fYeKOviv02JCvFa4Oi3Rs1hYEpfeajc+ow==", + "dev": true + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "lodash.flattendeep": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", + "dev": true + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "lz-string": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", + "integrity": "sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ==", + "dev": true + }, + "magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "make-fetch-happen": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", + "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", + "dev": true, + "requires": { + "agentkeepalive": "^4.1.3", + "cacache": "^15.2.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.2", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^6.0.0", + "ssri": "^8.0.0" + }, + "dependencies": { + "@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true + }, + "http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + } + } + } + }, + "makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "requires": { + "tmpl": "1.0.5" + } + }, + "map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true + }, + "mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + }, + "meow": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", + "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", + "dev": true, + "requires": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize": "^1.2.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "dependencies": { + "type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true + } + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "dev": true + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "mimic-response": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", + "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", + "dev": true + }, + "min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + } + }, + "minipass": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.3.tgz", + "integrity": "sha512-N0BOsdFAlNRfmwMhjAsLVWOk7Ljmeb39iqFlsV1At+jqRhSUP9yeof8FyJu4imaJiSUp8vQebWD/guZwGQC8iA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-fetch": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", + "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", + "dev": true, + "requires": { + "encoding": "^0.1.12", + "minipass": "^3.1.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.0.0" + } + }, + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "nan": { + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.16.0.tgz", + "integrity": "sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA==", + "dev": true + }, + "nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true + }, + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dev": true, + "requires": { + "whatwg-url": "^5.0.0" + }, + "dependencies": { + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + } + } + }, + "node-gyp": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", + "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", + "dev": true, + "requires": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^9.1.0", + "nopt": "^5.0.0", + "npmlog": "^6.0.0", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^2.0.2" + }, + "dependencies": { + "are-we-there-yet": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.0.tgz", + "integrity": "sha512-0GWpv50YSOcLXaN6/FAKY3vfRbllXWV2xvfA/oKJF8pzFhWXPV+yjhJXDBbjscDYowv7Yw1A3uigpzn5iEGTyw==", + "dev": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + } + }, + "gauge": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", + "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "dev": true, + "requires": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.3", + "console-control-strings": "^1.1.0", + "has-unicode": "^2.0.1", + "signal-exit": "^3.0.7", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.5" + } + }, + "npmlog": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", + "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "dev": true, + "requires": { + "are-we-there-yet": "^3.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^4.0.3", + "set-blocking": "^2.0.0" + } + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "node-gyp-build": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.4.0.tgz", + "integrity": "sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ==", + "dev": true + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node-preload": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", + "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", + "dev": true, + "requires": { + "process-on-spawn": "^1.0.0" + } + }, + "node-releases": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", + "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==", + "dev": true + }, + "node-sass": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-7.0.1.tgz", + "integrity": "sha512-uMy+Xt29NlqKCFdFRZyXKOTqGt+QaKHexv9STj2WeLottnlqZEEWx6Bj0MXNthmFRRdM/YwyNo/8Tr46TOM0jQ==", + "dev": true, + "requires": { + "async-foreach": "^0.1.3", + "chalk": "^4.1.2", + "cross-spawn": "^7.0.3", + "gaze": "^1.0.0", + "get-stdin": "^4.0.1", + "glob": "^7.0.3", + "lodash": "^4.17.15", + "meow": "^9.0.0", + "nan": "^2.13.2", + "node-gyp": "^8.4.1", + "npmlog": "^5.0.0", + "request": "^2.88.0", + "sass-graph": "4.0.0", + "stdout-stream": "^1.4.0", + "true-case-path": "^1.0.2" + } + }, + "nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "requires": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true + }, + "normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "npmlog": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", + "dev": true, + "requires": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" + } + }, + "nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "requires": { + "boolbase": "^1.0.0" + } + }, + "nwsapi": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", + "dev": true + }, + "nyc": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", + "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", + "dev": true, + "requires": { + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "caching-transform": "^4.0.0", + "convert-source-map": "^1.7.0", + "decamelize": "^1.2.0", + "find-cache-dir": "^3.2.0", + "find-up": "^4.1.0", + "foreground-child": "^2.0.0", + "get-package-type": "^0.1.0", + "glob": "^7.1.6", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-hook": "^3.0.0", + "istanbul-lib-instrument": "^4.0.0", + "istanbul-lib-processinfo": "^2.0.2", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "make-dir": "^3.0.0", + "node-preload": "^0.2.1", + "p-map": "^3.0.0", + "process-on-spawn": "^1.0.0", + "resolve-from": "^5.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "spawn-wrap": "^2.0.0", + "test-exclude": "^6.0.0", + "yargs": "^15.0.2" + }, + "dependencies": { + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "requires": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true + }, + "object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object-path": { + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.8.tgz", + "integrity": "sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA==", + "dev": true + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "object.entries": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", + "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "object.fromentries": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", + "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "object.hasown": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.1.tgz", + "integrity": "sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==", + "dev": true, + "requires": { + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + } + }, + "object.values": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "dev": true + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "opts": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/opts/-/opts-2.0.2.tgz", + "integrity": "sha512-k41FwbcLnlgnFh69f4qdUfvDQ+5vaSDnVPFI/y5XuhKRq97EnVVneO9F1ESVCdiVu4fCS2L8usX3mU331hB7pg==", + "dev": true + }, + "overlayscrollbars": { + "version": "file:packages/overlayscrollbars" + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "dev": true + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-queue": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", + "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", + "dev": true, + "requires": { + "eventemitter3": "^4.0.4", + "p-timeout": "^3.2.0" + } + }, + "p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "dev": true, + "requires": { + "p-finally": "^1.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "package-hash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", + "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.15", + "hasha": "^5.0.0", + "lodash.flattendeep": "^4.4.0", + "release-zalgo": "^1.0.0" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "playwright": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.22.2.tgz", + "integrity": "sha512-hUTpg7LytIl3/O4t0AQJS1V6hWsaSY5uZ7w1oCC8r3a1AQN5d6otIdCkiB3cbzgQkcMaRxisinjMFMVqZkybdQ==", + "dev": true, + "requires": { + "playwright-core": "1.22.2" + } + }, + "playwright-chromium": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/playwright-chromium/-/playwright-chromium-1.22.2.tgz", + "integrity": "sha512-msRcdCIJkdM2R6S+NMJZ02uyZHzJ7TIzkjzs3usDJ1Pwacp9HMhv9T/S4AxtpFXFmvMZq7UJYb0x+tCdHx9+0w==", + "dev": true, + "requires": { + "playwright-core": "1.22.2" + } + }, + "playwright-core": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.22.2.tgz", + "integrity": "sha512-w/hc/Ld0RM4pmsNeE6aL/fPNWw8BWit2tg+TfqJ3+p59c6s3B6C8mXvXrIPmfQEobkcFDc+4KirNzOQ+uBSP1Q==", + "dev": true + }, + "playwright-firefox": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/playwright-firefox/-/playwright-firefox-1.22.2.tgz", + "integrity": "sha512-y586dCkRST345/m+baM28oPSquJV6eizkqyB97blFaNysnVY+1+RE9BzHq10asqecajoPlt+OvSnwFPH88EyPQ==", + "dev": true, + "requires": { + "playwright-core": "1.22.2" + } + }, + "playwright-webkit": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/playwright-webkit/-/playwright-webkit-1.22.2.tgz", + "integrity": "sha512-WjgKJa6uHzj0g/B0cHjPuM9fdyGLjmGKYkYnepbyl9wtpkLzy7man01nyZ2ujigxhR0ux+u4Ix+jaCMKSdZReQ==", + "dev": true, + "requires": { + "playwright-core": "1.22.2" + } + }, + "postcss": { + "version": "8.4.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", + "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", + "dev": true, + "requires": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-colormin": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.0.tgz", + "integrity": "sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-convert-values": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.2.tgz", + "integrity": "sha512-c6Hzc4GAv95B7suy4udszX9Zy4ETyMCgFPUDtWjdFTKH1SE9eFY/jEpHSwTH1QPuwxHpWslhckUQWbNRM4ho5g==", + "dev": true, + "requires": { + "browserslist": "^4.20.3", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-discard-comments": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", + "dev": true, + "requires": {} + }, + "postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "dev": true, + "requires": {} + }, + "postcss-discard-empty": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "dev": true, + "requires": {} + }, + "postcss-discard-overridden": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "dev": true, + "requires": {} + }, + "postcss-merge-longhand": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.6.tgz", + "integrity": "sha512-6C/UGF/3T5OE2CEbOuX7iNO63dnvqhGZeUnKkDeifebY0XqkkvrctYSZurpNE902LDf2yKwwPFgotnfSoPhQiw==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.0" + } + }, + "postcss-merge-rules": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.2.tgz", + "integrity": "sha512-zKMUlnw+zYCWoPN6yhPjtcEdlJaMUZ0WyVcxTAmw3lkkN/NDMRkOkiuctQEoWAOvH7twaxUUdvBWl0d4+hifRQ==", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" + } + }, + "postcss-minify-font-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-minify-gradients": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "dev": true, + "requires": { + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-minify-params": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.3.tgz", + "integrity": "sha512-bkzpWcjykkqIujNL+EVEPOlLYi/eZ050oImVtHU7b4lFS82jPnsCb44gvC6pxaNt38Els3jWYDHTjHKf0koTgg==", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-minify-selectors": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", + "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.5" + } + }, + "postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "dev": true, + "requires": {} + }, + "postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "dev": true, + "requires": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.4" + } + }, + "postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "requires": { + "icss-utils": "^5.0.0" + } + }, + "postcss-normalize-charset": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "dev": true, + "requires": {} + }, + "postcss-normalize-display-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-positions": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", + "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-repeat-style": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", + "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-string": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-timing-functions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-unicode": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz", + "integrity": "sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "dev": true, + "requires": { + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-whitespace": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-ordered-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", + "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", + "dev": true, + "requires": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-reduce-initial": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz", + "integrity": "sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0" + } + }, + "postcss-reduce-transforms": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-svgo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" + } + }, + "postcss-unique-selectors": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.5" + } + }, + "postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "prettier": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz", + "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", + "dev": true + }, + "prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "requires": { + "fast-diff": "^1.1.2" + } + }, + "pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + }, + "dependencies": { + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "15.0.14", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz", + "integrity": "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + } + } + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "process-on-spawn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", + "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", + "dev": true, + "requires": { + "fromentries": "^1.2.0" + } + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "dev": true + }, + "promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "requires": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + } + }, + "prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, + "prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + }, + "dependencies": { + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true + } + } + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "dev": true + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "dev": true + }, + "query-string": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.1.tgz", + "integrity": "sha512-MplouLRDHBZSG9z7fpuAAcI7aAYjDLhtsiVZsevsfaHWDS2IDdORKbSd1kWUA+V4zyva/HZoSfpwnYMMQDhb0w==", + "dev": true, + "requires": { + "decode-uri-component": "^0.2.0", + "filter-obj": "^1.1.0", + "split-on-first": "^1.0.0", + "strict-uri-encode": "^2.0.0" + } + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "dependencies": { + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + } + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "requires": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + } + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", + "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", + "dev": true, + "requires": { + "regenerate": "^1.4.2" + } + }, + "regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", + "dev": true + }, + "regenerator-transform": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", + "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + } + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, + "regexpu-core": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", + "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", + "dev": true, + "requires": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.0.1", + "regjsgen": "^0.6.0", + "regjsparser": "^0.8.2", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.0.0" + } + }, + "regjsgen": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", + "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", + "dev": true + }, + "regjsparser": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", + "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true + } + } + }, + "release-zalgo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", + "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==", + "dev": true, + "requires": { + "es6-error": "^4.0.1" + } + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + } + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + }, + "resolve.exports": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", + "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", + "dev": true + }, + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "rollup": { + "version": "2.75.7", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.75.7.tgz", + "integrity": "sha512-VSE1iy0eaAYNCxEXaleThdFXqZJ42qDBatAwrfnPlENEZ8erQ+0LYX4JXOLPceWfZpV1VtZwZ3dFCuOZiSyFtQ==", + "dev": true, + "requires": { + "fsevents": "~2.3.2" + } + }, + "rollup-plugin-esbuild": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-esbuild/-/rollup-plugin-esbuild-4.9.1.tgz", + "integrity": "sha512-qn/x7Wz9p3Xnva99qcb+nopH0d2VJwVnsxJTGEg+Sh2Z3tqQl33MhOwzekVo1YTKgv+yAmosjcBRJygMfGrtLw==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^4.1.1", + "debug": "^4.3.3", + "es-module-lexer": "^0.9.3", + "joycon": "^3.0.1", + "jsonc-parser": "^3.0.0" + }, + "dependencies": { + "@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "dev": true, + "requires": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + } + } + } + }, + "rollup-plugin-ignore-import": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-ignore-import/-/rollup-plugin-ignore-import-1.3.2.tgz", + "integrity": "sha512-q7yH2c+PKVfb61+MTXqqyBHIgflikumC7OEB+OfQWNsSmDqE5FLZLeewcBGl1VDmjDjSXuALXsaBjyIsl3oNmQ==", + "dev": true, + "requires": {} + }, + "rollup-plugin-livereload": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/rollup-plugin-livereload/-/rollup-plugin-livereload-2.0.5.tgz", + "integrity": "sha512-vqQZ/UQowTW7VoiKEM5ouNW90wE5/GZLfdWuR0ELxyKOJUIaj+uismPZZaICU4DnWPVjnpCDDxEqwU7pcKY/PA==", + "dev": true, + "requires": { + "livereload": "^0.9.1" + } + }, + "rollup-plugin-scss": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-scss/-/rollup-plugin-scss-3.0.0.tgz", + "integrity": "sha512-UldNaNHEon2a5IusHvj/Nnwc7q13YDvbFxz5pfNbHBNStxGoUNyM+0XwAA/UafJ1u8XRPGdBMrhWFthrrGZdWQ==", + "dev": true, + "requires": { + "rollup-pluginutils": "^2.3.3" + } + }, + "rollup-plugin-serve": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-serve/-/rollup-plugin-serve-1.1.0.tgz", + "integrity": "sha512-pYkSsuA0/psKqhhictkJw1c2klya5b+LlCvipWqI9OE1aG2M97mRumZCbBlry5CMEOzYBBgSDgd1694sNbmyIw==", + "dev": true, + "requires": { + "mime": ">=2.4.6", + "opener": "1" + } + }, + "rollup-plugin-styles": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-styles/-/rollup-plugin-styles-4.0.0.tgz", + "integrity": "sha512-A2K2sao84OsTmDxXG83JTCdXWrmgvQkkI38XDat46rdtpGMRm9tSYqeCdlwwGDJF4kKIafhV1mUidqu8MxUGig==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^4.1.2", + "@types/cssnano": "^5.0.0", + "cosmiconfig": "^7.0.1", + "cssnano": "^5.0.15", + "fs-extra": "^10.0.0", + "icss-utils": "^5.1.0", + "mime-types": "^2.1.34", + "p-queue": "^6.6.2", + "postcss": "^8.4.5", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "query-string": "^7.1.0", + "resolve": "^1.21.0", + "source-map-js": "^1.0.1", + "tslib": "^2.3.1" + }, + "dependencies": { + "@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "dev": true, + "requires": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + } + } + } + }, + "rollup-plugin-summary": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/rollup-plugin-summary/-/rollup-plugin-summary-1.4.3.tgz", + "integrity": "sha512-m1xViwOlgocoIaaUX8AdWQVFHzti69MXqrdBsxFsXnQOIqtoU9KSNMZjlToAJvV8pjB85+boAw/P3Yu6F/VIaA==", + "dev": true, + "requires": { + "brotli-size": "^4.0.0", + "cli-table3": "^0.6.1", + "filesize": "^8.0.7", + "gzip-size": "^7.0.0", + "terser": "^5.12.1" + } + }, + "rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + }, + "dependencies": { + "jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + } + } + } + }, + "rollup-plugin-ts": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-ts/-/rollup-plugin-ts-3.0.2.tgz", + "integrity": "sha512-67qi2QTHewhLyKDG6fX3jpohWpmUPPIT/xJ7rsYK46X6MqmoWy64Ti0y8ygPfLv8mXDCdRZUofM3mTxDfCswRA==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^4.2.1", + "@wessberg/stringutil": "^1.0.19", + "ansi-colors": "^4.1.3", + "browserslist": "^4.20.4", + "browserslist-generator": "^1.0.66", + "compatfactory": "^1.0.1", + "crosspath": "^2.0.0", + "magic-string": "^0.26.2", + "ts-clone-node": "^1.0.0", + "tslib": "^2.4.0" + }, + "dependencies": { + "@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "dev": true, + "requires": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + } + }, + "magic-string": { + "version": "0.26.2", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.2.tgz", + "integrity": "sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.8" + } + } + } + }, + "rollup-pluginutils": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "dev": true, + "requires": { + "estree-walker": "^0.6.1" + }, + "dependencies": { + "estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", + "dev": true + } + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sass-graph": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-4.0.0.tgz", + "integrity": "sha512-WSO/MfXqKH7/TS8RdkCX3lVkPFQzCgbqdGsmSKq6tlPU+GpGEsa/5aW18JqItnqh+lPtcjifqdZ/VmiILkKckQ==", + "dev": true, + "requires": { + "glob": "^7.0.0", + "lodash": "^4.17.11", + "scss-tokenizer": "^0.3.0", + "yargs": "^17.2.1" + } + }, + "saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dev": true, + "requires": { + "xmlchars": "^2.2.0" + } + }, + "scss-tokenizer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.3.0.tgz", + "integrity": "sha512-14Zl9GcbBvOT9057ZKjpz5yPOyUWG2ojd9D5io28wHRYsOrs7U95Q+KNL87+32p8rc+LvDpbu/i9ZYjM9Q+FsQ==", + "dev": true, + "requires": { + "js-base64": "^2.4.3", + "source-map": "^0.7.1" + }, + "dependencies": { + "source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true + } + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "should": { + "version": "13.2.3", + "resolved": "https://registry.npmjs.org/should/-/should-13.2.3.tgz", + "integrity": "sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==", + "dev": true, + "requires": { + "should-equal": "^2.0.0", + "should-format": "^3.0.3", + "should-type": "^1.4.0", + "should-type-adaptors": "^1.0.1", + "should-util": "^1.0.0" + } + }, + "should-equal": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz", + "integrity": "sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==", + "dev": true, + "requires": { + "should-type": "^1.4.0" + } + }, + "should-format": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz", + "integrity": "sha512-hZ58adtulAk0gKtua7QxevgUaXTTXxIi8t41L3zo9AHvjXO1/7sdLECuHeIN2SRtYXpNkmhoUP2pdeWgricQ+Q==", + "dev": true, + "requires": { + "should-type": "^1.3.0", + "should-type-adaptors": "^1.0.1" + } + }, + "should-type": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz", + "integrity": "sha512-MdAsTu3n25yDbIe1NeN69G4n6mUnJGtSJHygX3+oN0ZbO3DTiATnf7XnYJdGT42JCXurTb1JI0qOBR65shvhPQ==", + "dev": true + }, + "should-type-adaptors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz", + "integrity": "sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==", + "dev": true, + "requires": { + "should-type": "^1.3.0", + "should-util": "^1.0.0" + } + }, + "should-util": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz", + "integrity": "sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==", + "dev": true + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "dev": true + }, + "simple-get": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", + "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", + "dev": true, + "requires": { + "decompress-response": "^4.2.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true + }, + "socks": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz", + "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==", + "dev": true, + "requires": { + "ip": "^1.1.5", + "smart-buffer": "^4.2.0" + } + }, + "socks-proxy-agent": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", + "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", + "dev": true, + "requires": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true + }, + "source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "spawn-wrap": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", + "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", + "dev": true, + "requires": { + "foreground-child": "^2.0.0", + "is-windows": "^1.0.2", + "make-dir": "^3.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "which": "^2.0.1" + } + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", + "dev": true + }, + "split-on-first": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", + "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", + "dev": true + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "sshpk": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", + "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "dev": true, + "requires": { + "minipass": "^3.1.1" + } + }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, + "stack-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + } + } + }, + "stdout-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", + "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", + "dev": true, + "requires": { + "readable-stream": "^2.0.1" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "strict-uri-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", + "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==", + "dev": true + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "requires": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + } + } + }, + "string.prototype.matchall": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", + "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.4.1", + "side-channel": "^1.0.4" + } + }, + "string.prototype.trimend": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", + "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + } + }, + "string.prototype.trimstart": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", + "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, + "strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "requires": { + "min-indent": "^1.0.0" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "stylehacks": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.0.tgz", + "integrity": "sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "postcss-selector-parser": "^6.0.4" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-hyperlinks": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", + "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "dev": true, + "requires": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dev": true, + "requires": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "dependencies": { + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true + } + } + }, + "symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "tar": { + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "dev": true, + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + } + }, + "terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + } + }, + "terser": { + "version": "5.14.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", + "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", + "dev": true, + "requires": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "dependencies": { + "acorn": { + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", + "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "dev": true + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + } + } + }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "testing": { + "version": "file:packages/testing-browser" + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "throat": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", + "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", + "dev": true + }, + "tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "tough-cookie": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", + "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", + "dev": true, + "requires": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.1.2" + }, + "dependencies": { + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + } + } + }, + "tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "dev": true, + "requires": { + "punycode": "^2.1.1" + } + }, + "trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "dev": true + }, + "true-case-path": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", + "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", + "dev": true, + "requires": { + "glob": "^7.1.2" + } + }, + "ts-clone-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ts-clone-node/-/ts-clone-node-1.0.0.tgz", + "integrity": "sha512-/cDYbr2HAXxFNeTT41c/xs/2bhLJjqnYheHsmA3AoHSt+n4JA4t0FL9Lk5O8kWnJ6jeB3kPcUoXIFtwERNzv6Q==", + "dev": true, + "requires": { + "compatfactory": "^1.0.1" + } + }, + "tsconfig-paths": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true + } + } + }, + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "dev": true + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "typescript": { + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", + "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", + "dev": true + }, + "ua-parser-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.2.tgz", + "integrity": "sha512-00y/AXhx0/SsnI51fTc0rLRmafiGOM4/O+ny10Ps7f+j/b8p/ZY11ytMgznXkOVo4GQ+KwQG5UQLkLGirsACRg==", + "dev": true + }, + "unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, + "unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", + "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", + "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", + "dev": true + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + }, + "update-browserslist-db": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.3.tgz", + "integrity": "sha512-ufSazemeh9Gty0qiWtoRpJ9F5Q5W3xdIPm1UZQqYQv/q0Nyb9EMHUB2lu+O9x1re9WsorpMAUu4Y6Lxcs5n+XQ==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "utf-8-validate": { + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.9.tgz", + "integrity": "sha512-Yek7dAy0v3Kl0orwMlvi7TPtiCNrdfHNd7Gcc/pLq4BLXqfAmd0J7OWMizUQnTTJsyjKn02mU7anqwfmUP4J8Q==", + "dev": true, + "requires": { + "node-gyp-build": "^4.3.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true + }, + "v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "v8-to-istanbul": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", + "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + } + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vscode-json-languageservice": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-4.2.1.tgz", + "integrity": "sha512-xGmv9QIWs2H8obGbWg+sIPI/3/pFgj/5OWBhNzs00BkYQ9UaB2F6JJaGB/2/YOZJ3BvLXQTC4Q7muqU25QgAhA==", + "dev": true, + "requires": { + "jsonc-parser": "^3.0.0", + "vscode-languageserver-textdocument": "^1.0.3", + "vscode-languageserver-types": "^3.16.0", + "vscode-nls": "^5.0.0", + "vscode-uri": "^3.0.3" + } + }, + "vscode-languageserver-textdocument": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.5.tgz", + "integrity": "sha512-1ah7zyQjKBudnMiHbZmxz5bYNM9KKZYz+5VQLj+yr8l+9w3g+WAhCkUkWbhMEdC5u0ub4Ndiye/fDyS8ghIKQg==", + "dev": true + }, + "vscode-languageserver-types": { + "version": "3.17.2", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.2.tgz", + "integrity": "sha512-zHhCWatviizPIq9B7Vh9uvrH6x3sK8itC84HkamnBWoDFJtzBf7SWlpLCZUit72b3os45h6RWQNC9xHRDF8dRA==", + "dev": true + }, + "vscode-nls": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-5.0.1.tgz", + "integrity": "sha512-hHQV6iig+M21lTdItKPkJAaWrxALQb/nqpVffakO4knJOh3DrU2SXOMzUzNgo1eADPzu3qSsJY1weCzvR52q9A==", + "dev": true + }, + "vscode-uri": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.3.tgz", + "integrity": "sha512-EcswR2S8bpR7fD0YPeS7r2xXExrScVMxg4MedACaWHEtx9ftCF/qHG1xGkolzTPcEmjTavCQgbVzHUIdTMzFGA==", + "dev": true + }, + "w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "dev": true, + "requires": { + "browser-process-hrtime": "^1.0.0" + } + }, + "w3c-xmlserializer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-3.0.0.tgz", + "integrity": "sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==", + "dev": true, + "requires": { + "xml-name-validator": "^4.0.0" + } + }, + "walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "requires": { + "makeerror": "1.0.12" + } + }, + "webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true + }, + "whatwg-encoding": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "dev": true, + "requires": { + "iconv-lite": "0.6.3" + } + }, + "whatwg-mimetype": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "dev": true + }, + "whatwg-url": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-10.0.0.tgz", + "integrity": "sha512-CLxxCmdUby142H5FZzn4D8ikO1cmypvXVQktsgosNy4a4BHrDHeciBBGZhb0bNoR5/MltoCatso+vFjjGx8t0w==", + "dev": true, + "requires": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==", + "dev": true + }, + "wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "dev": true, + "requires": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "write-file-atomic": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz", + "integrity": "sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + } + }, + "ws": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.0.tgz", + "integrity": "sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ==", + "dev": true, + "requires": {} + }, + "xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true + }, + "xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true + }, + "yargs": { + "version": "17.5.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", + "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + }, + "dependencies": { + "yargs-parser": { + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", + "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", + "dev": true + } + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + } + } +} diff --git a/package.json b/package.json index b1b24f8..8cdd900 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,9 @@ "workspaces": [ "packages/*" ], + "bin": { + "workspace-root": "./workspace.root.js" + }, "devDependencies": { "@babel/core": "^7.18.2", "@babel/plugin-transform-runtime": "^7.18.2", @@ -17,8 +20,8 @@ "@rollup/plugin-node-resolve": "^13.3.0", "@testing-library/dom": "^7.26.3", "@types/jest": "^26.0.24", - "@typescript-eslint/eslint-plugin": "^3.7.0", - "@typescript-eslint/parser": "^3.7.0", + "@typescript-eslint/eslint-plugin": "^5.31.0", + "@typescript-eslint/parser": "^5.31.0", "autoprefixer": "^10.4.7", "babel-jest": "^28.1.1", "bufferutil": "^4.0.1", @@ -27,16 +30,16 @@ "core-js": "^3.6.5", "del": "^5.1.0", "esbuild": "^0.14.42", - "eslint": "^7.5.0", - "eslint-config-airbnb": "^18.2.0", + "eslint": "^8.20.0", + "eslint-config-airbnb": "^19.0.4", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.22.0", - "eslint-plugin-jest": "^24.3.6", - "eslint-plugin-json": "^2.1.2", - "eslint-plugin-jsx-a11y": "^6.3.1", - "eslint-plugin-prettier": "^4.0.0", - "eslint-plugin-react": "^7.20.3", - "eslint-plugin-react-hooks": "^4.0.8", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-jest": "^26.6.0", + "eslint-plugin-json": "^3.1.0", + "eslint-plugin-jsx-a11y": "^6.6.1", + "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-react": "^7.30.0", + "eslint-plugin-react-hooks": "^4.6.0", "glob": "^7.1.6", "jest": "^28.1.1", "jest-environment-jsdom": "^28.1.1", @@ -55,7 +58,7 @@ "rollup-plugin-livereload": "^2.0.0", "rollup-plugin-scss": "^3.0.0", "rollup-plugin-serve": "^1.1.0", - "rollup-plugin-styles": "^3.10.0", + "rollup-plugin-styles": "^4.0.0", "rollup-plugin-summary": "^1.4.3", "rollup-plugin-terser": "^7.0.2", "rollup-plugin-ts": "^3.0.2", @@ -63,7 +66,12 @@ "tslib": "^2.4.0", "typescript": "^4.7.4", "utf-8-validate": "^5.0.2", - "v8-to-istanbul": "^9.0.1" + "v8-to-istanbul": "^9.0.1", + "@local/tsconfig": "file:./local/tsconfig", + "@local/config": "file:./local/config", + "@local/rollup": "file:./local/rollup", + "@local/playwright-tooling": "file:./local/playwright-tooling", + "@local/browser-testing": "file:./local/browser-testing" }, "scripts": { "test": "yarn workspaces run test", @@ -73,6 +81,8 @@ "test:browser-dev": "yarn workspaces run test:browser-dev", "test:playwright": "yarn workspaces run test:playwright", "build": "yarn workspaces run build", - "lint": "npx eslint --fix ." + "lint": "npx eslint --fix .", + "aa": "echo hi", + "root:some": "workspace-root aa" } } diff --git a/packages/overlayscrollbars-example/.gitignore b/packages/overlayscrollbars-example/.gitignore deleted file mode 100644 index a547bf3..0000000 --- a/packages/overlayscrollbars-example/.gitignore +++ /dev/null @@ -1,24 +0,0 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -pnpm-debug.log* -lerna-debug.log* - -node_modules -dist -dist-ssr -*.local - -# Editor directories and files -.vscode/* -!.vscode/extensions.json -.idea -.DS_Store -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? diff --git a/packages/overlayscrollbars-example/favicon.svg b/packages/overlayscrollbars-example/favicon.svg deleted file mode 100644 index de4aedd..0000000 --- a/packages/overlayscrollbars-example/favicon.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/packages/overlayscrollbars-example/index.html b/packages/overlayscrollbars-example/index.html deleted file mode 100644 index 3a37503..0000000 --- a/packages/overlayscrollbars-example/index.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - OverlayScrollbars example - - -
- - - diff --git a/packages/overlayscrollbars-example/package.json b/packages/overlayscrollbars-example/package.json deleted file mode 100644 index 9739992..0000000 --- a/packages/overlayscrollbars-example/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "overlayscrollbars-example", - "private": true, - "version": "0.0.0", - "scripts": { - "dev": "vite", - "build": "tsc && vite build", - "preview": "vite preview" - }, - "devDependencies": { - "typescript": "^4.5.4", - "vite": "^2.9.9" - }, - "dependencies": { - "overlayscrollbars": "file:./../overlayscrollbars" - } -} diff --git a/packages/overlayscrollbars-example/src/main.ts b/packages/overlayscrollbars-example/src/main.ts deleted file mode 100644 index 77ce734..0000000 --- a/packages/overlayscrollbars-example/src/main.ts +++ /dev/null @@ -1,8 +0,0 @@ -import './style.css'; - -const app = document.querySelector('#app')!; - -app.innerHTML = ` -

Hello Vite!

- Documentation -`; diff --git a/packages/overlayscrollbars-example/src/style.css b/packages/overlayscrollbars-example/src/style.css deleted file mode 100644 index 852de7a..0000000 --- a/packages/overlayscrollbars-example/src/style.css +++ /dev/null @@ -1,8 +0,0 @@ -#app { - font-family: Avenir, Helvetica, Arial, sans-serif; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - text-align: center; - color: #2c3e50; - margin-top: 60px; -} diff --git a/packages/overlayscrollbars-example/src/vite-env.d.ts b/packages/overlayscrollbars-example/src/vite-env.d.ts deleted file mode 100644 index 11f02fe..0000000 --- a/packages/overlayscrollbars-example/src/vite-env.d.ts +++ /dev/null @@ -1 +0,0 @@ -/// diff --git a/packages/overlayscrollbars-example/tsconfig.json b/packages/overlayscrollbars-example/tsconfig.json deleted file mode 100644 index fbd0225..0000000 --- a/packages/overlayscrollbars-example/tsconfig.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "compilerOptions": { - "target": "ESNext", - "useDefineForClassFields": true, - "module": "ESNext", - "lib": ["ESNext", "DOM"], - "moduleResolution": "Node", - "strict": true, - "sourceMap": true, - "resolveJsonModule": true, - "isolatedModules": true, - "esModuleInterop": true, - "noEmit": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "noImplicitReturns": true, - "skipLibCheck": true - }, - "include": ["src"] -} diff --git a/packages/overlayscrollbars-jquery/build.config.json b/packages/overlayscrollbars-jquery/build.config.json deleted file mode 100644 index 3f4e621..0000000 --- a/packages/overlayscrollbars-jquery/build.config.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "name": "OverlayScrollbars", - "exports": "auto", - "globals": { - "jquery": "jQuery" - } -} diff --git a/packages/overlayscrollbars-jquery/dist/overlayscrollbars-jquery.esm.js b/packages/overlayscrollbars-jquery/dist/overlayscrollbars-jquery.esm.js deleted file mode 100644 index 4cfc543..0000000 --- a/packages/overlayscrollbars-jquery/dist/overlayscrollbars-jquery.esm.js +++ /dev/null @@ -1,19 +0,0 @@ -export { default as not } from 'dir/not.png'; -import j from 'jquery'; - -var abc = 'abc'; - -const a = 1 + 1; -var file = { - a, -}; - -const a$1 = 'a'; -const b = 'b'; -const c = 'c'; - -var index = j('div'); - -export default index; -export { a$1 as a, abc, b, c, file }; -//# sourceMappingURL=overlayscrollbars-jquery.esm.js.map diff --git a/packages/overlayscrollbars-jquery/dist/overlayscrollbars-jquery.esm.js.map b/packages/overlayscrollbars-jquery/dist/overlayscrollbars-jquery.esm.js.map deleted file mode 100644 index 01f4d6e..0000000 --- a/packages/overlayscrollbars-jquery/dist/overlayscrollbars-jquery.esm.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"overlayscrollbars-jquery.esm.js","sources":["../src/dir/abc.js","../src/file.js","../src/test.js","../src/index.js"],"sourcesContent":["export default 'abc';\r\n","const a = 1 + 1;\r\nexport default {\r\n a,\r\n};\r\n","export const a = 'a';\r\nexport const b = 'b';\r\nexport const c = 'c';\r\n","import abc from 'dir/abc';\r\nimport not from 'dir/not.png';\r\nimport file from 'file';\r\nimport j from 'jquery';\r\nimport { a, b, c } from 'test';\r\n\r\nexport default j('div');\r\nexport { a, b, c, file, abc, not };\r\n"],"names":["a","b","c","j"],"mappings":";;;AAAA,UAAe,KAAf;;ACAA,MAAMA,CAAC,GAAG,IAAI,CAAd;AACA,WAAe;AACbA,EAAAA;AADa,CAAf;;MCDaA,GAAC,GAAG;MACJC,CAAC,GAAG;MACJC,CAAC,GAAG;;ACIjB,YAAeC,CAAC,CAAC,KAAD,CAAhB;;;;"} \ No newline at end of file diff --git a/packages/overlayscrollbars-jquery/dist/overlayscrollbars-jquery.esm.min.js b/packages/overlayscrollbars-jquery/dist/overlayscrollbars-jquery.esm.min.js deleted file mode 100644 index cc114f4..0000000 --- a/packages/overlayscrollbars-jquery/dist/overlayscrollbars-jquery.esm.min.js +++ /dev/null @@ -1 +0,0 @@ -export{default as not}from"dir/not.png";import a from"jquery";var r="abc";var o={a:2};const t="a",e="b",p="c";var d=a("div");export default d;export{t as a,r as abc,e as b,p as c,o as file}; \ No newline at end of file diff --git a/packages/overlayscrollbars-jquery/dist/overlayscrollbars-jquery.js b/packages/overlayscrollbars-jquery/dist/overlayscrollbars-jquery.js deleted file mode 100644 index 26c86d0..0000000 --- a/packages/overlayscrollbars-jquery/dist/overlayscrollbars-jquery.js +++ /dev/null @@ -1,36 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - ? factory(exports, require('dir/not.png'), require('jquery')) - : typeof define === 'function' && define.amd - ? define(['exports', 'dir/not.png', 'jquery'], factory) - : ((global = global || self), factory((global.OverlayScrollbars = {}), global.not_png, global.jQuery)); -})(this, function (exports, not_png, j) { - 'use strict'; - - not_png = not_png && Object.prototype.hasOwnProperty.call(not_png, 'default') ? not_png['default'] : not_png; - j = j && Object.prototype.hasOwnProperty.call(j, 'default') ? j['default'] : j; - - var abc = 'abc'; - - var a = 1 + 1; - var file = { - a: a, - }; - - var a$1 = 'a'; - var b = 'b'; - var c = 'c'; - - var index = j('div'); - - exports.not = not_png; - exports.a = a$1; - exports.abc = abc; - exports.b = b; - exports.c = c; - exports.default = index; - exports.file = file; - - Object.defineProperty(exports, '__esModule', { value: true }); -}); -//# sourceMappingURL=overlayscrollbars-jquery.js.map diff --git a/packages/overlayscrollbars-jquery/dist/overlayscrollbars-jquery.js.map b/packages/overlayscrollbars-jquery/dist/overlayscrollbars-jquery.js.map deleted file mode 100644 index e17baf3..0000000 --- a/packages/overlayscrollbars-jquery/dist/overlayscrollbars-jquery.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"overlayscrollbars-jquery.js","sources":["../src/dir/abc.js","../src/file.js","../src/test.js","../src/index.js"],"sourcesContent":["export default 'abc';\r\n","const a = 1 + 1;\r\nexport default {\r\n a,\r\n};\r\n","export const a = 'a';\r\nexport const b = 'b';\r\nexport const c = 'c';\r\n","import abc from 'dir/abc';\r\nimport not from 'dir/not.png';\r\nimport file from 'file';\r\nimport j from 'jquery';\r\nimport { a, b, c } from 'test';\r\n\r\nexport default j('div');\r\nexport { a, b, c, file, abc, not };\r\n"],"names":["a","b","c","j"],"mappings":";;;;;;;;;;;;AAAA,YAAe,KAAf;;ECAA,IAAMA,CAAC,GAAG,IAAI,CAAd;AACA,aAAe;EACbA,EAAAA,CAAC,EAADA;EADa,CAAf;;MCDaA,GAAC,GAAG;MACJC,CAAC,GAAG;MACJC,CAAC,GAAG;;ACIjB,cAAeC,CAAC,CAAC,KAAD,CAAhB;;;;;;;;;;;;"} \ No newline at end of file diff --git a/packages/overlayscrollbars-jquery/dist/overlayscrollbars-jquery.min.js b/packages/overlayscrollbars-jquery/dist/overlayscrollbars-jquery.min.js deleted file mode 100644 index 5f7caff..0000000 --- a/packages/overlayscrollbars-jquery/dist/overlayscrollbars-jquery.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("dir/not.png"),require("jquery")):"function"==typeof define&&define.amd?define(["exports","dir/not.png","jquery"],t):t((e=e||self).OverlayScrollbars={},e.not_png,e.jQuery)}(this,(function(e,t,r){"use strict";t=t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t;var o={a:2},n=(r=r&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r)("div");e.not=t,e.a="a",e.abc="abc",e.b="b",e.c="c",e.default=n,e.file=o,Object.defineProperty(e,"__esModule",{value:!0})})); \ No newline at end of file diff --git a/packages/overlayscrollbars-jquery/package-lock.json b/packages/overlayscrollbars-jquery/package-lock.json deleted file mode 100644 index 34dfa26..0000000 --- a/packages/overlayscrollbars-jquery/package-lock.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "version": "0.0.1", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@types/jquery": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.0.tgz", - "integrity": "sha512-C7qQUjpMWDUNYQRTXsP5nbYYwCwwgy84yPgoTT7fPN69NH92wLeCtFaMsWeolJD1AF/6uQw3pYt62rzv83sMmw==", - "dev": true, - "requires": { - "@types/sizzle": "*" - } - }, - "@types/sizzle": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.2.tgz", - "integrity": "sha512-7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg==", - "dev": true - }, - "jquery": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz", - "integrity": "sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==" - } - } -} diff --git a/packages/overlayscrollbars-jquery/package.json b/packages/overlayscrollbars-jquery/package.json deleted file mode 100644 index b4b3b0f..0000000 --- a/packages/overlayscrollbars-jquery/package.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "private": true, - "description": "OverlayScrollbars version 2", - "version": "0.0.1", - "peerDependencies": { - "jquery": "^3.5.1" - }, - "devDependencies": { - "@types/jquery": "^3.5.0" - } -} diff --git a/packages/overlayscrollbars-jquery/src/dir/abc.js b/packages/overlayscrollbars-jquery/src/dir/abc.js deleted file mode 100644 index 345a0e2..0000000 --- a/packages/overlayscrollbars-jquery/src/dir/abc.js +++ /dev/null @@ -1 +0,0 @@ -export default 'abc'; diff --git a/packages/overlayscrollbars-jquery/src/file.js b/packages/overlayscrollbars-jquery/src/file.js deleted file mode 100644 index 46f2167..0000000 --- a/packages/overlayscrollbars-jquery/src/file.js +++ /dev/null @@ -1,4 +0,0 @@ -const a = 1 + 1; -export default { - a, -}; diff --git a/packages/overlayscrollbars-jquery/src/index.js b/packages/overlayscrollbars-jquery/src/index.js deleted file mode 100644 index 723c4a0..0000000 --- a/packages/overlayscrollbars-jquery/src/index.js +++ /dev/null @@ -1,8 +0,0 @@ -import abc from 'dir/abc'; -import not from 'dir/not.png'; -import file from 'file'; -import j from 'jquery'; -import { a, b, c } from 'test'; - -export default j('div'); -export { a, b, c, file, abc, not }; diff --git a/packages/overlayscrollbars-jquery/src/test.js b/packages/overlayscrollbars-jquery/src/test.js deleted file mode 100644 index 87a9877..0000000 --- a/packages/overlayscrollbars-jquery/src/test.js +++ /dev/null @@ -1,3 +0,0 @@ -export const a = 'a'; -export const b = 'b'; -export const c = 'c'; diff --git a/packages/overlayscrollbars/babel.config.js b/packages/overlayscrollbars/babel.config.js index 2870a8d..c287763 100644 --- a/packages/overlayscrollbars/babel.config.js +++ b/packages/overlayscrollbars/babel.config.js @@ -1 +1 @@ -module.exports = require('../../babel.config.base'); +module.exports = require('@local/config/babel'); diff --git a/packages/overlayscrollbars/dist/overlayscrollbars.css b/packages/overlayscrollbars/dist/overlayscrollbars.css index a970fc1..bfde711 100644 --- a/packages/overlayscrollbars/dist/overlayscrollbars.css +++ b/packages/overlayscrollbars/dist/overlayscrollbars.css @@ -99,7 +99,7 @@ flex: none; box-sizing: border-box; position: relative; - max-width: 1px; + max-width: 0px; max-height: 1px; padding: 0; margin: 0; @@ -107,7 +107,7 @@ overflow: hidden; z-index: -1; height: 0; - top: calc(-100% + 1px); + top: calc(100% + 1px); contain: strict; } .os-trinsic-observer:not(:empty) { height: calc(100% + 1px); diff --git a/packages/overlayscrollbars/dist/overlayscrollbars.esm.js b/packages/overlayscrollbars/dist/overlayscrollbars.esm.js index 256505c..1866e21 100644 --- a/packages/overlayscrollbars/dist/overlayscrollbars.esm.js +++ b/packages/overlayscrollbars/dist/overlayscrollbars.esm.js @@ -256,34 +256,33 @@ const closest = (t, n) => { const liesBetween = (t, n, o) => { const s = t && closest(t, n); const e = t && findFirst(o, s); - return s && e ? s === t || e === t || closest(closest(t, o), n) !== s : false; + const c = closest(e, n) === s; + return s && e ? s === t || e === t || c && closest(closest(t, o), n) !== s : false; }; const before = (t, n, o) => { - if (o) { + if (o && t) { let s = n; let e; - if (t) { - if (isArrayLike(o)) { - e = document.createDocumentFragment(); - each(o, (t => { - if (t === s) { - s = t.previousSibling; - } - e.appendChild(t); - })); - } else { - e = o; - } - if (n) { - if (!s) { - s = t.firstChild; - } else if (s !== n) { - s = s.nextSibling; + if (isArrayLike(o)) { + e = document.createDocumentFragment(); + each(o, (t => { + if (t === s) { + s = t.previousSibling; } - } - t.insertBefore(e, s || null); + e.appendChild(t); + })); + } else { + e = o; } + if (n) { + if (!s) { + s = t.firstChild; + } else if (s !== n) { + s = s.nextSibling; + } + } + t.insertBefore(e, s || null); } }; @@ -520,7 +519,9 @@ const topRightBottomLeft = (t, n, o) => { }; }; -const w = { +const {round: w} = Math; + +const p = { w: 0, h: 0 }; @@ -533,43 +534,43 @@ const windowSize = () => ({ const offsetSize = t => t ? { w: t.offsetWidth, h: t.offsetHeight -} : w; +} : p; const clientSize = t => t ? { w: t.clientWidth, h: t.clientHeight -} : w; +} : p; const scrollSize = t => t ? { w: t.scrollWidth, h: t.scrollHeight -} : w; +} : p; const fractionalSize = t => { const n = parseFloat(style(t, "height")) || 0; - const o = parseFloat(style(t, "height")) || 0; + const o = parseFloat(style(t, "width")) || 0; return { - w: o - Math.round(o), - h: n - Math.round(n) + w: o - w(o), + h: n - w(n) }; }; const getBoundingClientRect = t => t.getBoundingClientRect(); -let p; +let b; const supportPassiveEvents = () => { - if (isUndefined(p)) { - p = false; + if (isUndefined(b)) { + b = false; try { window.addEventListener("test", null, Object.defineProperty({}, "passive", { get() { - p = true; + b = true; } })); } catch (t) {} } - return p; + return b; }; const splitEventNames = t => t.split(" "); @@ -606,7 +607,7 @@ const stopPropagation = t => t.stopPropagation(); const preventDefault = t => t.preventDefault(); -const b = { +const y = { x: 0, y: 0 }; @@ -616,7 +617,7 @@ const absoluteCoordinates = t => { return n ? { x: n.left + window.pageYOffset, y: n.top + window.pageXOffset - } : b; + } : y; }; const manageListener = (t, n) => { @@ -676,78 +677,78 @@ const createState = t => { } ]; }; -const y = "os-environment"; +const m = "os-environment"; -const m = `${y}-flexbox-glue`; +const S = `${m}-flexbox-glue`; -const S = `${m}-max`; +const x = `${S}-max`; -const x = "data-overlayscrollbars"; +const $ = "data-overlayscrollbars"; -const $ = `${x}-overflow-x`; +const C = `${$}-overflow-x`; -const C = `${x}-overflow-y`; +const O = `${$}-overflow-y`; -const O = "overflowVisible"; +const E = "overflowVisible"; const A = "scrollbarHidden"; const T = "updating"; -const I = "os-padding"; +const z = "os-padding"; -const z = "os-viewport"; +const I = "os-viewport"; -const E = `${z}-arrange`; +const L = `${I}-arrange`; -const L = "os-content"; +const H = "os-content"; -const H = `${z}-scrollbar-hidden`; +const P = `${I}-scrollbar-hidden`; -const P = `os-overflow-visible`; +const D = `os-overflow-visible`; -const D = "os-size-observer"; +const M = "os-size-observer"; -const M = `${D}-appear`; +const R = `${M}-appear`; -const R = `${D}-listener`; +const k = `${M}-listener`; -const k = `${R}-scroll`; +const B = `${k}-scroll`; -const B = `${R}-item`; +const V = `${k}-item`; -const V = `${B}-final`; +const j = `${V}-final`; -const j = "os-trinsic-observer"; +const Y = "os-trinsic-observer"; -const Y = "os-scrollbar"; +const q = "os-scrollbar"; -const q = `${Y}-rtl`; +const F = `${q}-rtl`; -const F = `${Y}-horizontal`; +const G = `${q}-horizontal`; -const G = `${Y}-vertical`; +const N = `${q}-vertical`; -const N = `${Y}-track`; +const U = `${q}-track`; -const U = `${Y}-handle`; +const W = `${q}-handle`; -const W = `${Y}-visible`; +const X = `${q}-visible`; -const X = `${Y}-cornerless`; +const J = `${q}-cornerless`; -const J = `${Y}-transitionless`; +const K = `${q}-transitionless`; -const K = `${Y}-interaction`; +const Z = `${q}-interaction`; -const Z = `${Y}-unusable`; +const Q = `${q}-unusable`; -const Q = `${Y}-auto-hidden`; - -const tt = `${N}-interactive`; +const tt = `${q}-auto-hidden`; const nt = `${U}-interactive`; +const ot = `${W}-interactive`; + const opsStringify = t => JSON.stringify(t, ((t, n) => { if (isFunction(n)) { throw new Error; @@ -755,7 +756,7 @@ const opsStringify = t => JSON.stringify(t, ((t, n) => { return n; })); -const ot = { +const st = { paddingAbsolute: false, showNativeOverlaidScrollbars: false, updating: { @@ -772,7 +773,7 @@ const ot = { theme: "os-theme-dark", visibility: "auto", autoHide: "never", - autoHideDelay: 800, + autoHideDelay: 1300, dragScroll: true, clickScroll: false, pointers: [ "mouse", "touch", "pen" ] @@ -804,19 +805,18 @@ const getOptionsDiff = (t, n) => { return o; }; -const st = {}; +const et = {}; -const getPlugins = () => assignDeep({}, st); +const getPlugins = () => et; const addPlugin = t => { each(isArray(t) ? t : [ t ], (t => { - each(keys(t), (n => { - st[n] = t[n]; - })); + const n = keys(t)[0]; + et[n] = t[n]; })); }; -const et = { +const ct = { boolean: "__TPL_boolean_TYPE__", number: "__TPL_number_TYPE__", string: "__TPL_string_TYPE__", @@ -826,56 +826,56 @@ const et = { null: "__TPL_null_TYPE__" }; -const ct = et.number; +const rt = ct.number; -const rt = et.boolean; +const it = ct.boolean; -const it = [ et.array, et.null ]; +const lt = [ ct.array, ct.null ]; -const lt = "hidden scroll visible visible-hidden"; +const at = "hidden scroll visible visible-hidden"; -const at = "visible hidden auto"; +const ut = "visible hidden auto"; -const ut = "never scroll leavemove"; +const dt = "never scroll leavemove"; ({ - paddingAbsolute: rt, - showNativeOverlaidScrollbars: rt, + paddingAbsolute: it, + showNativeOverlaidScrollbars: it, updating: { - elementEvents: it, - attributes: it, - debounce: [ et.number, et.array, et.null ], - ignoreMutation: [ et.function, et.null ] + elementEvents: lt, + attributes: lt, + debounce: [ ct.number, ct.array, ct.null ], + ignoreMutation: [ ct.function, ct.null ] }, overflow: { - x: lt, - y: lt + x: at, + y: at }, scrollbars: { - theme: [ et.string, et.null ], - visibility: at, - autoHide: ut, - autoHideDelay: ct, - dragScroll: rt, - clickScroll: rt, - pointers: [ et.array, et.null ] + theme: [ ct.string, ct.null ], + visibility: ut, + autoHide: dt, + autoHideDelay: rt, + dragScroll: it, + clickScroll: it, + pointers: [ ct.array, ct.null ] } }); -const dt = "__osOptionsValidationPlugin"; +const ft = "__osOptionsValidationPlugin"; -const ft = 3333333; +const _t = 3333333; -const _t = "scroll"; +const ht = "scroll"; -const ht = "__osSizeObserverPlugin"; +const gt = "__osSizeObserverPlugin"; -const gt = { - [ht]: { +const vt = { + [gt]: { O: (t, n, o) => { - const s = createDOM(`
`); + const s = createDOM(`
`); appendChildren(t, s); - addClass(t, k); + addClass(t, B); const e = s[0]; const c = e.lastChild; const r = e.firstChild; @@ -885,10 +885,10 @@ const gt = { let u = false; let _; const reset = () => { - scrollLeft(r, ft); - scrollTop(r, ft); - scrollLeft(c, ft); - scrollTop(c, ft); + scrollLeft(r, _t); + scrollTop(r, _t); + scrollLeft(c, _t); + scrollTop(c, _t); }; const onResized = t => { _ = 0; @@ -911,10 +911,10 @@ const gt = { } reset(); }; - const h = push([], [ on(r, _t, onScroll), on(c, _t, onScroll) ]); + const h = push([], [ on(r, ht, onScroll), on(c, ht, onScroll) ]); style(i, { - width: ft, - height: ft + width: _t, + height: _t }); f(reset); return [ o ? onScroll.bind(0, false) : reset, h ]; @@ -922,9 +922,9 @@ const gt = { } }; -let vt = 0; +let wt = 0; -const {round: wt, abs: pt} = Math; +const {round: pt, abs: bt} = Math; const getWindowDPR = () => { const t = window.screen.deviceXDPI || 0; @@ -933,22 +933,22 @@ const getWindowDPR = () => { }; const diffBiggerThanOne = (t, n) => { - const o = pt(t); - const s = pt(n); + const o = bt(t); + const s = bt(n); return !(o === s || o + 1 === s || o - 1 === s); }; -const bt = "__osScrollbarsHidingPlugin"; +const yt = "__osScrollbarsHidingPlugin"; -const yt = { - [bt]: { +const mt = { + [yt]: { A: t => { const {T: n, I: o, L: s} = t; const e = !s && !n && (o.x || o.y); const c = e ? document.createElement("style") : false; if (c) { - attr(c, "id", `${E}-${vt}`); - vt++; + attr(c, "id", `${L}-${wt}`); + wt++; } return c; }, @@ -974,7 +974,7 @@ const yt = { const {cssRules: n} = t; if (n) { if (!n.length) { - t.insertRule(`#${attr(s, "id")} + .${E}::before {}`, 0); + t.insertRule(`#${attr(s, "id")} + .${L}::before {}`, 0); } const o = n[0].style; o.width = b.w; @@ -1007,7 +1007,7 @@ const yt = { assignProps("marginLeft marginRight paddingLeft paddingRight"); } const g = style(o, keys(h)); - removeClass(o, E); + removeClass(o, L); if (!n) { h.height = ""; } @@ -1015,7 +1015,7 @@ const yt = { return [ () => { r(a, i, t, g); style(o, g); - addClass(o, E); + addClass(o, L); }, a ]; } return [ noop ]; @@ -1038,12 +1038,12 @@ const yt = { return; } const i = { - w: pt(r.w), - h: pt(r.h) + w: bt(r.w), + h: bt(r.h) }; const l = { - w: pt(wt(c.w / (t.w / 100))), - h: pt(wt(c.h / (t.h / 100))) + w: bt(pt(c.w / (t.w / 100))), + h: bt(pt(c.h / (t.h / 100))) }; const a = getWindowDPR(); const u = i.w > 2 && i.h > 2; @@ -1064,7 +1064,7 @@ const yt = { } }; -let mt; +let St; const getNativeScrollbarSize = (t, n, o, s) => { appendChildren(t, n); @@ -1080,7 +1080,7 @@ const getNativeScrollbarSize = (t, n, o, s) => { const getNativeScrollbarsHiding = t => { let n = false; - const o = addClass(t, H); + const o = addClass(t, P); try { n = "none" === style(t, cssProperty("scrollbar-width")) || "none" === window.getComputedStyle(t, "::-webkit-scrollbar").getPropertyValue("display"); } catch (s) {} @@ -1107,11 +1107,11 @@ const getRtlScrollBehavior = (t, n) => { }; const getFlexboxGlue = (t, n) => { - const o = addClass(t, m); + const o = addClass(t, S); const s = getBoundingClientRect(t); const e = getBoundingClientRect(n); const c = equalBCRWH(e, s, true); - const r = addClass(t, S); + const r = addClass(t, x); const i = getBoundingClientRect(t); const l = getBoundingClientRect(n); const a = equalBCRWH(l, i, true); @@ -1122,7 +1122,7 @@ const getFlexboxGlue = (t, n) => { const createEnvironment = () => { const {body: t} = document; - const n = createDOM(`
`); + const n = createDOM(`
`); const o = n[0]; const s = o.firstChild; const [e, , c] = createEventListenerHub(); @@ -1147,7 +1147,7 @@ const createEnvironment = () => { body: null } }; - const f = assignDeep({}, ot); + const f = assignDeep({}, st); const _ = { k: l, I: u, @@ -1172,7 +1172,7 @@ const createEnvironment = () => { if (!a && (!u.x || !u.y)) { let t; window.addEventListener("resize", (() => { - const n = getPlugins()[bt]; + const n = getPlugins()[yt]; t = t || n && n.R(); t && t(_, r, c.bind(0, "_")); })); @@ -1181,10 +1181,10 @@ const createEnvironment = () => { }; const getEnvironment = () => { - if (!mt) { - mt = createEnvironment(); + if (!St) { + St = createEnvironment(); } - return mt; + return St; }; const resolveInitialization = (t, n) => isFunction(t) ? t.apply(0, n) : t; @@ -1213,7 +1213,7 @@ const cancelInitialization = (t, n) => { return !!f || !!_; }; -const St = createDiv.bind(0, ""); +const xt = createDiv.bind(0, ""); const unwrap = t => { appendChildren(parent(t), contents(t)); @@ -1221,14 +1221,14 @@ const unwrap = t => { }; const addDataAttrHost = (t, n) => { - attr(t, x, n); - return removeAttr.bind(0, t, x); + attr(t, $, n); + return removeAttr.bind(0, t, $); }; const createStructureSetupElements = t => { const n = getEnvironment(); const {Y: o, T: s} = n; - const e = getPlugins()[bt]; + const e = getPlugins()[yt]; const c = e && e.A; const {host: r, viewport: i, padding: l, content: a} = o(); const u = isHTMLElement(t); @@ -1241,80 +1241,81 @@ const createStructureSetupElements = t => { const y = p.defaultView; const m = staticInitializationElement.bind(0, [ v ]); const S = dynamicInitializationElement.bind(0, [ v ]); - const O = m(St, i, h); - const A = O === v; + const x = m(xt, i, h); + const E = x === v; + const A = E && b; const T = { J: v, - K: w ? m(St, r, f) : v, - Z: O, - tt: !A && S(St, l, _), - nt: !A && S(St, a, g), - ot: !A && !s && c && c(n), - st: b ? p.documentElement : O, - et: b ? p : O, + K: w ? m(xt, r, f) : v, + Z: x, + tt: !E && S(xt, l, _), + nt: !E && S(xt, a, g), + ot: !E && !s && c && c(n), + st: A ? p.documentElement : x, + et: A ? p : x, ct: y, rt: p, it: w, W: b, lt: u, - X: A, - ut: (t, n) => A ? hasAttrClass(O, x, n) : hasClass(O, t), - dt: (t, n, o) => A ? attrClass(O, x, n, o) : (o ? addClass : removeClass)(O, t) + X: E, + ut: (t, n) => E ? hasAttrClass(x, $, n) : hasClass(x, t), + dt: (t, n, o) => E ? attrClass(x, $, n, o) : (o ? addClass : removeClass)(x, t) }; - const E = keys(T).reduce(((t, n) => { + const L = keys(T).reduce(((t, n) => { const o = T[n]; return push(t, o && !parent(o) ? o : false); }), []); - const elementIsGenerated = t => t ? indexOf(E, t) > -1 : null; - const {J: P, K: D, tt: M, Z: R, nt: k, ot: B} = T; - const V = []; - const j = w && elementIsGenerated(D); - const Y = w ? P : contents([ k, R, M, D, P ].find((t => false === elementIsGenerated(t)))); - const q = k || R; + const elementIsGenerated = t => t ? indexOf(L, t) > -1 : null; + const {J: D, K: M, tt: R, Z: k, nt: B, ot: V} = T; + const j = []; + const Y = w && elementIsGenerated(M); + const q = w ? D : contents([ B, k, R, M, D ].find((t => false === elementIsGenerated(t)))); + const F = B || k; const appendElements = () => { - const t = addDataAttrHost(D, A ? "viewport" : "host"); - const n = addClass(M, I); - const o = addClass(R, !A && z); - const e = addClass(k, L); - const c = b ? addClass(parent(v), H) : noop; - if (j) { - insertAfter(P, D); - push(V, (() => { - insertAfter(D, P); - removeElements(D); + const t = addDataAttrHost(M, E ? "viewport" : "host"); + const n = addClass(R, z); + const o = addClass(k, !E && I); + const e = addClass(B, H); + const c = A ? addClass(parent(v), P) : noop; + if (Y) { + insertAfter(D, M); + push(j, (() => { + insertAfter(M, D); + removeElements(M); })); } - appendChildren(q, Y); - appendChildren(D, M); - appendChildren(M || D, !A && R); - appendChildren(R, k); - push(V, (() => { + appendChildren(F, q); + appendChildren(M, R); + appendChildren(R || M, !E && k); + appendChildren(k, B); + push(j, (() => { c(); t(); - removeAttr(R, $); - removeAttr(R, C); + removeAttr(k, C); + removeAttr(k, O); + if (elementIsGenerated(B)) { + unwrap(B); + } if (elementIsGenerated(k)) { unwrap(k); } if (elementIsGenerated(R)) { unwrap(R); } - if (elementIsGenerated(M)) { - unwrap(M); - } n(); o(); e(); })); - if (s && !A) { - push(V, removeClass.bind(0, R, H)); + if (s && !E) { + push(j, removeClass.bind(0, k, P)); } - if (B) { - insertBefore(R, B); - push(V, removeElements.bind(0, B)); + if (V) { + insertBefore(k, V); + push(j, removeElements.bind(0, V)); } }; - return [ T, appendElements, runEachAndClear.bind(0, V) ]; + return [ T, appendElements, runEachAndClear.bind(0, j) ]; }; const createTrinsicUpdateSegment = (t, n) => { @@ -1388,13 +1389,13 @@ const createPaddingUpdateSegment = (t, n) => { }; }; -const {max: xt} = Math; +const {max: $t} = Math; -const $t = xt.bind(0, 0); +const Ct = $t.bind(0, 0); -const Ct = "visible"; +const Ot = "visible"; -const Ot = "hidden"; +const Et = "hidden"; const At = 42; @@ -1406,19 +1407,19 @@ const Tt = { } }; -const It = { +const zt = { u: equalXY, o: { - x: Ot, - y: Ot + x: Et, + y: Et } }; const getOverflowAmount = (t, n) => { const o = window.devicePixelRatio % 1 !== 0 ? 1 : 0; const s = { - w: $t(t.w - n.w), - h: $t(t.h - n.h) + w: Ct(t.w - n.w), + h: Ct(t.h - n.h) }; return { w: s.w > o ? s.w : 0, @@ -1428,19 +1429,20 @@ const getOverflowAmount = (t, n) => { const conditionalClass = (t, n, o) => o ? addClass(t, n) : removeClass(t, n); -const overflowIsVisible = t => 0 === t.indexOf(Ct); +const overflowIsVisible = t => 0 === t.indexOf(Ot); const createOverflowUpdateSegment = (t, n) => { const [o, s] = n; - const {K: e, tt: c, Z: r, ot: i, X: l, dt: a} = t; - const {k: u, V: d, T: f, I: _} = getEnvironment(); - const h = getPlugins()[bt]; - const g = !l && !f && (_.x || _.y); - const [v, w] = createCache(Tt, fractionalSize.bind(0, r)); - const [p, b] = createCache(Tt, scrollSize.bind(0, r)); - const [y, m] = createCache(Tt); - const [S, T] = createCache(Tt); - const [I] = createCache(It); + const {K: e, tt: c, Z: r, ot: i, X: l, dt: a, W: u, ct: d} = t; + const {k: f, V: _, T: h, I: g} = getEnvironment(); + const v = getPlugins()[yt]; + const w = !l && !h && (g.x || g.y); + const p = u && l; + const [b, y] = createCache(Tt, fractionalSize.bind(0, r)); + const [m, S] = createCache(Tt, scrollSize.bind(0, r)); + const [x, T] = createCache(Tt); + const [z, I] = createCache(Tt); + const [L] = createCache(zt); const fixFlexboxGlue = (t, n) => { style(r, { height: "" @@ -1452,25 +1454,25 @@ const createOverflowUpdateSegment = (t, n) => { const a = clientSize(e); const u = "content-box" === style(r, "boxSizing"); const d = n || u ? s.b + s.t : 0; - const f = !(_.x && u); + const f = !(g.x && u); style(r, { height: a.h + l.h + (c.x && f ? i.x : 0) - d }); } }; const getViewportOverflowState = (t, n) => { - const o = !f && !t ? At : 0; + const o = !h && !t ? At : 0; const getStatePerAxis = (t, s, e) => { const c = style(r, t); const i = n ? n[t] : c; const l = "scroll" === i; const a = s ? o : e; - const u = l && !f ? a : 0; + const u = l && !h ? a : 0; const d = s && !!o; return [ c, l, u, d ]; }; - const [s, e, c, i] = getStatePerAxis("overflowX", _.x, u.x); - const [l, a, d, h] = getStatePerAxis("overflowY", _.y, u.y); + const [s, e, c, i] = getStatePerAxis("overflowX", g.x, f.x); + const [l, a, u, d] = getStatePerAxis("overflowY", g.y, f.y); return { xt: { x: s, @@ -1482,18 +1484,18 @@ const createOverflowUpdateSegment = (t, n) => { }, D: { x: c, - y: d + y: u }, M: { x: i, - y: h + y: d } }; }; const setViewportOverflowState = (t, n, o, s) => { const setAxisOverflowStyle = (t, n) => { const o = overflowIsVisible(t); - const s = n && o && t.replace(`${Ct}-`, "") || ""; + const s = n && o && t.replace(`${Ot}-`, "") || ""; return [ n && !o ? t : "", overflowIsVisible(s) ? "hidden" : s ]; }; const [e, c] = setAxisOverflowStyle(o.x, n.x); @@ -1521,65 +1523,65 @@ const createOverflowUpdateSegment = (t, n) => { e.paddingBottom = w + (i ? a : 0); } }; - const [z, E] = h ? h.H(g, d, r, i, o, getViewportOverflowState, hideNativeScrollbars) : [ () => g, () => [ noop ] ]; + const [H, M] = v ? v.H(w, _, r, i, o, getViewportOverflowState, hideNativeScrollbars) : [ () => w, () => [ noop ] ]; return (t, n, i) => { - const {ht: u, $t: h, gt: g, yt: L, _t: D, wt: M} = t; - const {ft: R, vt: k} = o(); - const [B, V] = n("showNativeOverlaidScrollbars"); - const [j, Y] = n("overflow"); - const q = B && _.x && _.y; - const F = !l && !d && (u || g || h || V || D); - const G = overflowIsVisible(j.x); - const N = overflowIsVisible(j.y); - const U = G || N; - let W = w(i); - let X = b(i); - let J = m(i); - let K = T(i); - let Z; - if (V && f) { - a(H, A, !q); + const {ht: u, $t: f, gt: v, yt: w, _t: R, wt: k} = t; + const {ft: B, vt: V} = o(); + const [j, Y] = n("showNativeOverlaidScrollbars"); + const [q, F] = n("overflow"); + const G = j && g.x && g.y; + const N = !l && !_ && (u || v || f || Y || R); + const U = overflowIsVisible(q.x); + const W = overflowIsVisible(q.y); + const X = U || W; + let J = y(i); + let K = S(i); + let Z = T(i); + let Q = I(i); + let tt; + if (Y && h) { + a(P, A, !G); } - if (F) { - Z = getViewportOverflowState(q); - fixFlexboxGlue(Z, R); + if (N) { + tt = getViewportOverflowState(G); + fixFlexboxGlue(tt, B); } - if (u || L || g || M || V) { - if (U) { - a(P, O, false); + if (u || w || v || k || Y) { + if (X) { + a(D, E, false); } - const [t, n] = E(q, k, Z); - const [o, s] = W = v(i); - const [e, c] = X = p(i); + const [t, n] = M(G, V, tt); + const [o, s] = J = b(i); + const [e, c] = K = m(i); const l = clientSize(r); let u = e; - let d = l; + let f = l; t(); - if ((c || s || V) && n && !q && z(n, e, o, k)) { - d = clientSize(r); + if ((c || s || Y) && n && !G && H(n, e, o, V)) { + f = clientSize(r); u = scrollSize(r); } - const f = { - w: $t(xt(e.w, u.w) + o.w), - h: $t(xt(e.h, u.h) + o.h) - }; const _ = { - w: $t(d.w + $t(l.w - e.w) + o.w), - h: $t(d.h + $t(l.h - e.h) + o.h) + w: Ct($t(e.w, u.w) + o.w), + h: Ct($t(e.h, u.h) + o.h) }; - K = S(_); - J = y(getOverflowAmount(f, _), i); + const h = { + w: Ct(p ? d.innerWidth : f.w + Ct(l.w - e.w) + o.w), + h: Ct(p ? d.innerHeight : f.h + Ct(l.h - e.h) + o.h) + }; + Q = z(h); + Z = x(getOverflowAmount(_, h), i); } - const [Q, tt] = K; - const [nt, ot] = J; - const [st, et] = X; - const [ct, rt] = W; - const it = { - x: nt.w > 0, - y: nt.h > 0 + const [nt, ot] = Q; + const [st, et] = Z; + const [ct, rt] = K; + const [it, lt] = J; + const at = { + x: st.w > 0, + y: st.h > 0 }; - const lt = G && N && (it.x || it.y) || G && it.x && !it.y || N && it.y && !it.x; - if (L || M || rt || et || tt || ot || Y || V || F) { + const ut = U && W && (at.x || at.y) || U && at.x && !at.y || W && at.y && !at.x; + if (w || k || lt || rt || ot || et || F || Y || N) { const t = { marginRight: 0, marginBottom: 0, @@ -1588,41 +1590,41 @@ const createOverflowUpdateSegment = (t, n) => { overflowY: "", overflowX: "" }; - const n = setViewportOverflowState(q, it, j, t); - const o = z(n, st, ct, k); + const n = setViewportOverflowState(G, at, q, t); + const o = H(n, ct, it, V); if (!l) { - hideNativeScrollbars(n, k, o, t); + hideNativeScrollbars(n, V, o, t); } - if (F) { - fixFlexboxGlue(n, R); + if (N) { + fixFlexboxGlue(n, B); } if (l) { - attr(e, $, t.overflowX); - attr(e, C, t.overflowY); + attr(e, C, t.overflowX); + attr(e, O, t.overflowY); } else { style(r, t); } } - attrClass(e, x, O, lt); - conditionalClass(c, P, lt); - !l && conditionalClass(r, P, U); - const [at, ut] = I(getViewportOverflowState(q).xt); + attrClass(e, $, E, ut); + conditionalClass(c, D, ut); + !l && conditionalClass(r, D, X); + const [dt, ft] = L(getViewportOverflowState(G).xt); s({ - xt: at, + xt: dt, Ct: { - x: Q.w, - y: Q.h - }, - Ot: { x: nt.w, y: nt.h }, - At: it + Ot: { + x: st.w, + y: st.h + }, + Et: at }); return { - Tt: ut, - It: tt, - zt: ot + At: ft, + Tt: ot, + zt: et }; }; }; @@ -1650,9 +1652,9 @@ const createStructureSetupUpdate = (t, n) => { yt: false, wt: false, _t: false, - It: false, - zt: false, Tt: false, + zt: false, + At: false, $t: false, gt: false }, n), {}, e); @@ -1671,15 +1673,15 @@ const createStructureSetupUpdate = (t, n) => { }; }; -const zt = 3333333; +const It = 3333333; const domRectHasDimensions = t => t && (t.height || t.width); const createSizeObserver = (t, n, o) => { - const {Et: s = false, Lt: e = false} = o || {}; - const c = getPlugins()[ht]; + const {It: s = false, Lt: e = false} = o || {}; + const c = getPlugins()[gt]; const {B: r} = getEnvironment(); - const i = createDOM(`
`); + const i = createDOM(`
`); const l = i[0]; const a = l.firstChild; const d = directionIsRTL.bind(0, t); @@ -1708,8 +1710,8 @@ const createSizeObserver = (t, n, o) => { } if (s && a) { const n = e ? t[0] : directionIsRTL(l); - scrollLeft(l, n ? r.n ? -zt : r.i ? 0 : zt : zt); - scrollTop(l, zt); + scrollLeft(l, n ? r.n ? -It : r.i ? 0 : It : It); + scrollTop(l, It); } if (!c) { n({ @@ -1756,7 +1758,7 @@ const createSizeObserver = (t, n, o) => { }))); } if (h) { - addClass(l, M); + addClass(l, R); push(_, on(l, "animationstart", h, { C: !!u })); @@ -1769,7 +1771,7 @@ const isHeightIntrinsic = t => 0 === t.h || t.isIntersecting || t.intersectionRa const createTrinsicObserver = (t, n) => { let o; - const s = createDiv(j); + const s = createDiv(Y); const e = []; const [c] = createCache({ o: false @@ -1953,15 +1955,15 @@ const createDOMObserver = (t, n, o, s) => { } ]; }; -const Et = `[${x}]`; +const Lt = `[${$}]`; -const Lt = `.${z}`; +const Ht = `.${I}`; -const Ht = [ "tabindex" ]; +const Pt = [ "tabindex" ]; -const Pt = [ "wrap", "cols", "rows" ]; +const Dt = [ "wrap", "cols", "rows" ]; -const Dt = [ "id", "class", "style", "open" ]; +const Mt = [ "id", "class", "style", "open" ]; const createStructureSetupObservers = (t, n, o) => { let s; @@ -1977,18 +1979,18 @@ const createStructureSetupObservers = (t, n, o) => { h: 0 } }, (() => { - const t = _(P, O); - const n = _(E, ""); + const t = _(D, E); + const n = _(L, ""); const o = n && scrollLeft(l); const s = n && scrollTop(l); - h(P, O); - h(E, ""); + h(D, E); + h(L, ""); h("", T, true); const e = scrollSize(a); const c = scrollSize(l); const r = fractionalSize(l); - h(P, O, t); - h(E, "", n); + h(D, E, t); + h(L, "", n); h("", T); scrollLeft(l, o); scrollTop(l, s); @@ -1997,7 +1999,7 @@ const createStructureSetupObservers = (t, n, o) => { h: c.h + e.h + r.h }; })); - const w = d ? Pt : Dt.concat(Pt); + const w = d ? Dt : Mt.concat(Dt); const p = debounce(o, { g: () => s, v: () => e, @@ -2011,8 +2013,8 @@ const createStructureSetupObservers = (t, n, o) => { } }); const updateViewportAttrsFromHost = t => { - each(t || Ht, (t => { - if (indexOf(Ht, t) > -1) { + each(t || Pt, (t => { + if (indexOf(Pt, t) > -1) { const n = attr(i, t); if (isString(n)) { attr(l, t, n); @@ -2073,22 +2075,22 @@ const createStructureSetupObservers = (t, n, o) => { const [b, y, m] = a || !g ? createTrinsicObserver(i, onTrinsicChanged) : [ noop, noop, noop ]; const [S, x] = !f ? createSizeObserver(i, onSizeChanged, { Lt: true, - Et: true + It: true }) : [ noop, noop ]; const [$, C] = createDOMObserver(i, false, onHostMutation, { - Dt: Dt, - Pt: Dt.concat(Ht) + Dt: Mt, + Pt: Mt.concat(Pt) }); - const A = f && u && new u(onSizeChanged.bind(0, { + const O = f && u && new u(onSizeChanged.bind(0, { ht: true })); - A && A.observe(i); + O && O.observe(i); updateViewportAttrsFromHost(); return [ () => { b(); S(); c && c[0](); - A && A.disconnect(); + O && O.disconnect(); $(); }, () => { x(); @@ -2112,10 +2114,10 @@ const createStructureSetupObservers = (t, n, o) => { const [n] = t("updating.ignoreMutation"); const [o, r] = t("updating.attributes"); const [i, u] = t("updating.elementEvents"); - const [d, f] = t("updating.debounce"); - const _ = u || r; + const [d, _] = t("updating.debounce"); + const h = u || r; const ignoreMutationFromOptions = t => isFunction(n) && n(t); - if (_) { + if (h) { if (c) { c[1](); c[0](); @@ -2124,15 +2126,15 @@ const createStructureSetupObservers = (t, n, o) => { Dt: w.concat(o || []), Pt: w.concat(o || []), Mt: i, - Rt: Et, + Rt: Lt, Bt: (t, n) => { const {target: o, attributeName: s} = t; - const e = !n && s ? liesBetween(o, Et, Lt) : false; - return e || !!closest(o, `.${Y}`) || !!ignoreMutationFromOptions(t); + const e = !n && s && !f ? liesBetween(o, Lt, Ht) : false; + return e || !!closest(o, `.${q}`) || !!ignoreMutationFromOptions(t); } }); } - if (f) { + if (_) { p.m(); if (isArray(d)) { const t = d[0]; @@ -2150,12 +2152,12 @@ const createStructureSetupObservers = (t, n, o) => { } ]; }; -const Mt = { +const Rt = { x: 0, y: 0 }; -const Rt = { +const kt = { tt: { t: 0, r: 0, @@ -2172,13 +2174,13 @@ const Rt = { paddingBottom: 0, paddingLeft: 0 }, - Ct: Mt, - Ot: Mt, + Ct: Rt, + Ot: Rt, xt: { x: "hidden", y: "hidden" }, - At: { + Et: { x: false, y: false }, @@ -2188,7 +2190,7 @@ const Rt = { const createStructureSetup = (t, n) => { const o = createOptionCheck(n, {}); - const s = createState(Rt); + const s = createState(kt); const [e, c, r] = createEventListenerHub(); const [i] = s; const [l, a, u] = createStructureSetupElements(t); @@ -2222,7 +2224,7 @@ const createStructureSetup = (t, n) => { } ]; }; -const {round: kt} = Math; +const {round: Bt} = Math; const getClientOffset = t => ({ x: t.clientX, @@ -2233,8 +2235,8 @@ const getScale = t => { const {width: n, height: o} = getBoundingClientRect(t); const {w: s, h: e} = offsetSize(t); return { - x: kt(n) / s || 1, - y: kt(o) / e || 1 + x: Bt(n) / s || 1, + y: Bt(o) / e || 1 }; }; @@ -2289,13 +2291,13 @@ const createDragScrollingEvents = (t, n, o, s, e, c) => { const createScrollbarsSetupEvents = (t, n) => (o, s, e, c, r) => { const {Gt: i} = o; return runEachAndClear.bind(0, [ on(i, "pointerenter", (() => { - s(K, true); + s(Z, true); })), on(i, "pointerleave pointercancel", (() => { - s(K); + s(Z); })), createRootClickStopPropagationEvents(i, e), createDragScrollingEvents(t, e, o, c, n, r) ]); }; -const {min: Bt, max: Vt, abs: jt, round: Yt} = Math; +const {min: Vt, max: jt, abs: Yt, round: qt} = Math; const getScrollbarHandleLengthRatio = (t, n, o, s) => { if (s) { @@ -2303,12 +2305,12 @@ const getScrollbarHandleLengthRatio = (t, n, o, s) => { const {Ot: n, Ct: e} = s; const c = e[t]; const r = n[t]; - return Vt(0, Bt(1, c / (c + r))); + return jt(0, Vt(1, c / (c + r))); } const e = o ? "w" : "h"; const c = offsetSize(t)[e]; const r = offsetSize(n)[e]; - return Vt(0, Bt(1, c / r)); + return jt(0, Vt(1, c / r)); }; const getScrollbarHandleOffsetRatio = (t, n, o, s, e, c) => { @@ -2316,12 +2318,12 @@ const getScrollbarHandleOffsetRatio = (t, n, o, s, e, c) => { const i = c ? "x" : "y"; const l = c ? "Left" : "Top"; const {Ot: a} = s; - const u = Yt(a[i]); - const d = jt(o[`scroll${l}`]); + const u = qt(a[i]); + const d = Yt(o[`scroll${l}`]); const f = c && e; const _ = r.i ? d : u - d; const h = f ? _ : d; - const g = Bt(1, h / u); + const g = Vt(1, h / u); const v = getScrollbarHandleLengthRatio(t, n, c); return 1 / v * (1 - v) * g; }; @@ -2348,7 +2350,7 @@ const createScrollbarsSetupElements = (t, n, o) => { scrollbarsHandleStyle(t, (t => { const {qt: s, Ft: e} = t; return [ s, { - [o ? "width" : "height"]: `${(100 * getScrollbarHandleLengthRatio(s, e, o, n)).toFixed(5)}%` + [o ? "width" : "height"]: `${(100 * getScrollbarHandleLengthRatio(s, e, o, n)).toFixed(3)}%` } ]; })); }; @@ -2359,7 +2361,7 @@ const createScrollbarsSetupElements = (t, n, o) => { const i = getScrollbarHandleOffsetRatio(e, c, u, n, directionIsRTL(r), o); const l = i === i; return [ e, { - transform: l ? `translate${s}(${(100 * i).toFixed(5)}%)` : "" + transform: l ? `translate${s}(${(100 * i).toFixed(3)}%)` : "" } ]; })); }; @@ -2382,12 +2384,12 @@ const createScrollbarsSetupElements = (t, n, o) => { scrollbarStructureRefreshHandleOffset(v, t); }; const generateScrollbarDOM = t => { - const n = t ? F : G; + const n = t ? G : N; const s = t ? g : v; - const e = isEmptyArray(s) ? J : ""; - const r = createDiv(`${Y} ${n} ${e}`); - const i = createDiv(N); - const l = createDiv(U); + const e = isEmptyArray(s) ? K : ""; + const r = createDiv(`${q} ${n} ${e}`); + const i = createDiv(U); + const l = createDiv(W); const a = { Gt: r, Ft: i, @@ -2405,7 +2407,7 @@ const createScrollbarsSetupElements = (t, n, o) => { appendChildren(f, g[0].Gt); appendChildren(f, v[0].Gt); _((() => { - scrollbarsAddRemoveClass(J); + scrollbarsAddRemoveClass(K); }), 300); }; w(); @@ -2452,13 +2454,13 @@ const createScrollbarsSetup = (t, n, o) => { const [w, p] = createSelfCancelTimeout(100); const [b, y] = createSelfCancelTimeout((() => l)); const [m, S, x] = createScrollbarsSetupElements(t, o.Yt, createScrollbarsSetupEvents(n, o)); - const {K: $, Z: C, st: O, et: A, X: T, W: I} = o.Yt; - const {Xt: z, Qt: E, Wt: L, Nt: H, Ut: P} = m; + const {K: $, Z: C, st: O, et: E, X: A, W: T} = o.Yt; + const {Xt: z, Qt: I, Wt: L, Nt: H, Ut: P} = m; const {Zt: D} = z; - const {Zt: M} = E; + const {Zt: M} = I; const styleScrollbarPosition = t => { const {Gt: n} = t; - const o = T && !I && parent(n) === C && n; + const o = A && !T && parent(n) === C && n; return [ o, { transform: o ? `translate(${scrollLeft(O)}px, ${scrollTop(O)}px)` : "" } ]; @@ -2466,9 +2468,9 @@ const createScrollbarsSetup = (t, n, o) => { const manageScrollbarsAutoHide = (t, n) => { y(); if (t) { - L(Q); + L(tt); } else { - const hide = () => L(Q, true); + const hide = () => L(tt, true); if (l > 0 && !n) { b(hide); } else { @@ -2493,7 +2495,7 @@ const createScrollbarsSetup = (t, n, o) => { s && manageScrollbarsAutoHide(false); })); })); - })), on(A, "scroll", (() => { + })), on(E, "scroll", (() => { _((() => { P(o()); c && manageScrollbarsAutoHide(true); @@ -2501,14 +2503,14 @@ const createScrollbarsSetup = (t, n, o) => { c && !r && manageScrollbarsAutoHide(false); })); })); - T && D(styleScrollbarPosition); - T && M(styleScrollbarPosition); + A && D(styleScrollbarPosition); + A && M(styleScrollbarPosition); })) ]; const k = u.bind(0); k.Yt = m; k.jt = S; return [ (t, r, a) => { - const {It: u, zt: d, Tt: f, wt: _} = a; + const {Tt: u, zt: d, At: f, wt: _} = a; const h = createOptionCheck(n, t, r); const g = o(); const {Ot: v, xt: w, vt: p} = g; @@ -2516,13 +2518,13 @@ const createScrollbarsSetup = (t, n, o) => { const [m, S] = h("scrollbars.visibility"); const [x, $] = h("scrollbars.autoHide"); const [C] = h("scrollbars.autoHideDelay"); - const [O, A] = h("scrollbars.dragScroll"); - const [T, z] = h("scrollbars.clickScroll"); - const E = u || d || _; - const D = f || S; + const [O, E] = h("scrollbars.dragScroll"); + const [A, z] = h("scrollbars.clickScroll"); + const I = u || d || _ || r; + const D = f || S || r; const setScrollbarVisibility = (t, n) => { const o = "visible" === m || "auto" === m && "scroll" === t; - L(W, o, n); + L(X, o, n); return o; }; l = C; @@ -2537,43 +2539,43 @@ const createScrollbarsSetup = (t, n, o) => { c = "never" !== x; manageScrollbarsAutoHide(!c, true); } - if (A) { - L(nt, O); + if (E) { + L(ot, O); } if (z) { - L(tt, T); + L(nt, A); } if (D) { const t = setScrollbarVisibility(w.x, true); const n = setScrollbarVisibility(w.y, false); const o = t && n; - L(X, !o); + L(J, !o); } - if (E) { + if (I) { H(g); P(g); - L(Z, !v.x, true); - L(Z, !v.y, false); - L(q, p && !I); + L(Q, !v.x, true); + L(Q, !v.y, false); + L(F, p && !T); } }, k, runEachAndClear.bind(0, R) ]; }; -const qt = new Set; +const Ft = new Set; -const Ft = new WeakMap; +const Gt = new WeakMap; const addInstance = (t, n) => { - Ft.set(t, n); - qt.add(t); + Gt.set(t, n); + Ft.add(t); }; const removeInstance = t => { + Gt.delete(t); Ft.delete(t); - qt.delete(t); }; -const getInstance = t => Ft.get(t); +const getInstance = t => Gt.get(t); const OverlayScrollbars = (t, n, o) => { let s = false; @@ -2585,7 +2587,7 @@ const OverlayScrollbars = (t, n, o) => { if (a) { return a; } - const u = r[dt]; + const u = r[ft]; const validateOptions = t => { const n = t || {}; const o = u && u.O; @@ -2624,7 +2626,7 @@ const OverlayScrollbars = (t, n, o) => { t && n && _(t, n); }, state() { - const {Ct: t, Ot: n, xt: o, At: e, tt: c, bt: r, vt: i} = v(); + const {Ct: t, Ot: n, xt: o, Et: e, tt: c, bt: r, vt: i} = v(); return assignDeep({}, { overflowEdge: t, overflowAmount: n, @@ -2637,13 +2639,37 @@ const OverlayScrollbars = (t, n, o) => { }); }, elements() { - const {J: t, K: n, tt: o, Z: s, nt: e} = v.Yt; + const {J: t, K: n, tt: o, Z: s, nt: e, st: c, et: r} = v.Yt; + const {Xt: i, Qt: l} = b.Yt; + const translateScrollbarStructure = t => { + const {qt: n, Ft: o, Gt: s} = t; + return { + scrollbar: s, + track: o, + handle: n + }; + }; + const translateScrollbarsSetupElement = t => { + const {Jt: n, Kt: o} = t; + const s = translateScrollbarStructure(n[0]); + return assignDeep({}, s, { + clone: () => { + const t = translateScrollbarStructure(o()); + p({}, true, {}); + return t; + } + }); + }; return assignDeep({}, { target: t, host: n, padding: o || s, viewport: s, - content: e || s + content: e || s, + scrollOffsetElement: c, + scrollEventElement: r, + scrollbarHorizontal: translateScrollbarsSetupElement(i), + scrollbarVertical: translateScrollbarsSetupElement(l) }); }, update(t) { @@ -2670,7 +2696,7 @@ const OverlayScrollbars = (t, n, o) => { addInstance(l, S); h("initialized", [ S ]); v.Vt(((t, n, o) => { - const {ht: s, wt: e, _t: c, It: r, zt: i, Tt: l, gt: a, $t: u} = t; + const {ht: s, wt: e, _t: c, Tt: r, zt: i, At: l, gt: a, $t: u} = t; h("updated", [ S, { updateHints: { sizeChanged: s, @@ -2709,5 +2735,5 @@ OverlayScrollbars.env = () => { }); }; -export { OverlayScrollbars, yt as scrollbarsHidingPlugin, gt as sizeObserverPlugin }; +export { OverlayScrollbars, mt as scrollbarsHidingPlugin, vt as sizeObserverPlugin }; //# sourceMappingURL=overlayscrollbars.esm.js.map diff --git a/packages/overlayscrollbars/dist/overlayscrollbars.esm.js.map b/packages/overlayscrollbars/dist/overlayscrollbars.esm.js.map index 742a7ce..630935d 100644 --- a/packages/overlayscrollbars/dist/overlayscrollbars.esm.js.map +++ b/packages/overlayscrollbars/dist/overlayscrollbars.esm.js.map @@ -1 +1 @@ -{"version":3,"file":"overlayscrollbars.esm.js","sources":["../src/support/utils/array.ts","../src/support/dom/style.ts","../src/support/cache.ts","../src/support/utils/types.ts","../src/support/utils/object.ts","../src/support/dom/attribute.ts","../src/support/dom/traversal.ts","../src/support/dom/manipulation.ts","../src/support/dom/create.ts","../src/support/compatibility/vendors.ts","../src/support/compatibility/apis.ts","../src/support/dom/class.ts","../src/support/utils/equal.ts","../src/support/utils/function.ts","../src/support/dom/dimensions.ts","../src/support/dom/events.ts","../src/support/dom/offset.ts","../src/support/eventListeners.ts","../src/setups/setups.ts","../src/classnames.ts","../src/options.ts","../src/plugins/plugins.ts","../src/plugins/optionsValidationPlugin/validation.ts","../src/plugins/optionsValidationPlugin/optionsValidationPlugin.ts","../src/plugins/sizeObserverPlugin/sizeObserverPlugin.ts","../src/plugins/scrollbarsHidingPlugin/scrollbarsHidingPlugin.ts","../src/environment.ts","../src/initialization.ts","../src/setups/structureSetup/structureSetup.elements.ts","../src/setups/structureSetup/updateSegments/trinsicUpdateSegment.ts","../src/setups/structureSetup/updateSegments/paddingUpdateSegment.ts","../src/setups/structureSetup/updateSegments/overflowUpdateSegment.ts","../src/setups/structureSetup/structureSetup.update.ts","../src/observers/sizeObserver.ts","../src/observers/trinsicObserver.ts","../src/observers/domObserver.ts","../src/setups/structureSetup/structureSetup.observers.ts","../src/setups/structureSetup/structureSetup.ts","../src/setups/scrollbarsSetup/scrollbarsSetup.events.ts","../src/setups/scrollbarsSetup/scrollbarsSetup.calculations.ts","../src/setups/scrollbarsSetup/scrollbarsSetup.elements.ts","../src/setups/scrollbarsSetup/scrollbarsSetup.ts","../src/instances.ts","../src/overlayscrollbars.ts"],"sourcesContent":["import { isArrayLike, isString } from 'support/utils/types';\r\nimport { PlainObject } from 'typings';\r\n\r\ntype RunEachItem = ((...args: any) => any | any[]) | null | undefined;\r\n\r\n/**\r\n * Iterates through a array or object\r\n * @param arrayLikeOrObject The array or object through which shall be iterated.\r\n * @param callback The function which is responsible for the iteration.\r\n * If the function returns true its treated like a \"continue\" statement.\r\n * If the function returns false its treated like a \"break\" statement.\r\n */\r\nexport function each(\r\n array: Array | ReadonlyArray,\r\n callback: (value: T, indexOrKey: number, source: Array) => boolean | unknown\r\n): Array | ReadonlyArray;\r\nexport function each(\r\n array: Array | ReadonlyArray | false | null | undefined,\r\n callback: (value: T, indexOrKey: number, source: Array) => boolean | unknown\r\n): Array | ReadonlyArray | false | null | undefined;\r\nexport function each(\r\n arrayLikeObject: ArrayLike,\r\n callback: (value: T, indexOrKey: number, source: ArrayLike) => boolean | unknown\r\n): ArrayLike;\r\nexport function each(\r\n arrayLikeObject: ArrayLike | false | null | undefined,\r\n callback: (value: T, indexOrKey: number, source: ArrayLike) => boolean | unknown\r\n): ArrayLike | false | null | undefined;\r\nexport function each(\r\n obj: PlainObject,\r\n callback: (value: any, indexOrKey: string, source: PlainObject) => boolean | unknown\r\n): PlainObject;\r\nexport function each(\r\n obj: PlainObject | false | null | undefined,\r\n callback: (value: any, indexOrKey: string, source: PlainObject) => boolean | unknown\r\n): PlainObject | false | null | undefined;\r\nexport function each(\r\n source: Array | ArrayLike | ReadonlyArray | PlainObject | false | null | undefined,\r\n callback: (value: T, indexOrKey: any, source: any) => boolean | unknown\r\n): Array | ArrayLike | ReadonlyArray | PlainObject | false | null | undefined {\r\n if (isArrayLike(source)) {\r\n for (let i = 0; i < source.length; i++) {\r\n if (callback(source[i], i, source) === false) {\r\n break;\r\n }\r\n }\r\n } else if (source) {\r\n each(Object.keys(source), (key) => callback(source[key], key, source));\r\n }\r\n return source;\r\n}\r\n\r\n/**\r\n * Returns the index of the given inside the given array or -1 if the given item isn't part of the given array.\r\n * @param arr The array.\r\n * @param item The item.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0.\r\n */\r\nexport const indexOf = (arr: T[], item: T, fromIndex?: number): number =>\r\n arr.indexOf(item, fromIndex);\r\n\r\n/**\r\n * Pushesh all given items into the given array and returns it.\r\n * @param array The array the items shall be pushed into.\r\n * @param items The items which shall be pushed into the array.\r\n */\r\nexport const push = (array: T[], items: T | ArrayLike, arrayIsSingleItem?: boolean): T[] => {\r\n !arrayIsSingleItem && !isString(items) && isArrayLike(items)\r\n ? Array.prototype.push.apply(array, items as T[])\r\n : array.push(items as T);\r\n return array;\r\n};\r\n\r\n/**\r\n * Creates a shallow-copied Array instance from an array-like or iterable object.\r\n * @param arr The object from which the array instance shall be created.\r\n */\r\nexport const from = (arr?: ArrayLike | Set) => {\r\n const original = Array.from;\r\n const result: T[] = [];\r\n\r\n if (original && arr) {\r\n return original(arr);\r\n }\r\n\r\n if (arr instanceof Set) {\r\n arr.forEach((value) => {\r\n push(result, value);\r\n });\r\n } else {\r\n each(arr, (elm) => {\r\n push(result, elm);\r\n });\r\n }\r\n\r\n return result;\r\n};\r\n\r\n/**\r\n * Check whether the passed array is empty.\r\n * @param array The array which shall be checked.\r\n */\r\nexport const isEmptyArray = (array: any[] | null | undefined): boolean =>\r\n !!array && array.length === 0;\r\n\r\n/**\r\n * Calls all functions in the passed array/set of functions.\r\n * @param arr The array filled with function which shall be called.\r\n * @param args The args with which each function is called.\r\n * @param keep True when the Set / array should not be cleared afterwards, false otherwise.\r\n */\r\nexport const runEachAndClear = (arr: RunEachItem[], args?: any[], keep?: boolean): void => {\r\n // eslint-disable-next-line prefer-spread\r\n const runFn = (fn: RunEachItem) => fn && fn.apply(undefined, args || []);\r\n each(arr, runFn);\r\n !keep && ((arr as any[]).length = 0);\r\n};\r\n","import { each, keys } from 'support/utils';\r\nimport { isString, isNumber, isArray, isUndefined } from 'support/utils/types';\r\nimport { PlainObject, StyleObject } from 'typings';\r\n\r\nexport interface TRBL {\r\n t: number;\r\n r: number;\r\n b: number;\r\n l: number;\r\n}\r\n\r\nconst cssNumber = {\r\n // animationiterationcount: 1,\r\n // columncount: 1,\r\n // fillopacity: 1,\r\n // flexgrow: 1,\r\n // flexshrink: 1,\r\n // fontweight: 1,\r\n // lineheight: 1,\r\n // order: 1,\r\n // orphans: 1,\r\n // widows: 1,\r\n // zoom: 1,\r\n opacity: 1,\r\n zindex: 1,\r\n};\r\n\r\nconst parseToZeroOrNumber = (value: string, toFloat?: boolean): number => {\r\n /* istanbul ignore next */\r\n const num = toFloat ? parseFloat(value) : parseInt(value, 10);\r\n // num === num means num is not NaN\r\n /* istanbul ignore next */\r\n return num === num ? num : 0; // eslint-disable-line no-self-compare\r\n};\r\n\r\nconst adaptCSSVal = (prop: string, val: string | number): string | number =>\r\n !cssNumber[prop.toLowerCase()] && isNumber(val) ? `${val}px` : val;\r\n\r\nconst getCSSVal = (elm: HTMLElement, computedStyle: CSSStyleDeclaration, prop: string): string =>\r\n /* istanbul ignore next */\r\n computedStyle != null\r\n ? computedStyle[prop] || computedStyle.getPropertyValue(prop)\r\n : elm.style[prop];\r\n\r\nconst setCSSVal = (elm: HTMLElement, prop: string, val: string | number): void => {\r\n try {\r\n const { style: elmStyle } = elm;\r\n if (!isUndefined(elmStyle[prop])) {\r\n elmStyle[prop] = adaptCSSVal(prop, val);\r\n } else {\r\n elmStyle.setProperty(prop, val as string);\r\n }\r\n } catch (e) {}\r\n};\r\n\r\n/**\r\n * Gets or sets the passed styles to the passed element.\r\n * @param elm The element to which the styles shall be applied to / be read from.\r\n * @param styles The styles which shall be set or read.\r\n */\r\nexport function style(\r\n elm: HTMLElement | false | null | undefined,\r\n styles: StyleObject\r\n): void;\r\nexport function style(\r\n elm: HTMLElement | false | null | undefined,\r\n styles: string\r\n): string;\r\nexport function style(\r\n elm: HTMLElement | false | null | undefined,\r\n styles: Array | string\r\n): { [key: string]: string };\r\nexport function style(\r\n elm: HTMLElement | false | null | undefined,\r\n styles: StyleObject | Array | string\r\n): { [key: string]: string } | string | void {\r\n const getSingleStyle = isString(styles);\r\n const getStyles = isArray(styles) || getSingleStyle;\r\n\r\n if (getStyles) {\r\n let getStylesResult: string | PlainObject = getSingleStyle ? '' : {};\r\n if (elm) {\r\n const computedStyle: CSSStyleDeclaration = window.getComputedStyle(elm, null);\r\n getStylesResult = getSingleStyle\r\n ? getCSSVal(elm, computedStyle, styles as string)\r\n : (styles as Array).reduce((result, key) => {\r\n result[key] = getCSSVal(elm, computedStyle, key as string);\r\n return result;\r\n }, getStylesResult);\r\n }\r\n return getStylesResult;\r\n }\r\n elm && each(keys(styles), (key) => setCSSVal(elm, key, styles[key]));\r\n}\r\n\r\n/**\r\n * Hides the passed element (display: none).\r\n * @param elm The element which shall be hidden.\r\n */\r\nexport const hide = (elm: HTMLElement | false | null | undefined): void => {\r\n style(elm, { display: 'none' });\r\n};\r\n\r\n/**\r\n * Shows the passed element (display: block).\r\n * @param elm The element which shall be shown.\r\n */\r\nexport const show = (elm: HTMLElement | false | null | undefined): void => {\r\n style(elm, { display: 'block' });\r\n};\r\n\r\nexport const directionIsRTL = (elm: HTMLElement | false | null | undefined): boolean =>\r\n style(elm, 'direction') === 'rtl';\r\n\r\n/**\r\n * Returns the top right bottom left values of the passed css property.\r\n * @param elm The element of which the values shall be returned.\r\n * @param propertyPrefix The css property prefix. (e.g. \"border\")\r\n * @param propertySuffix The css property suffix. (e.g. \"width\")\r\n */\r\nexport const topRightBottomLeft = (\r\n elm?: HTMLElement | false | null | undefined,\r\n propertyPrefix?: string,\r\n propertySuffix?: string\r\n): TRBL => {\r\n const finalPrefix = propertyPrefix ? `${propertyPrefix}-` : '';\r\n const finalSuffix = propertySuffix ? `-${propertySuffix}` : '';\r\n const top = `${finalPrefix}top${finalSuffix}`;\r\n const right = `${finalPrefix}right${finalSuffix}`;\r\n const bottom = `${finalPrefix}bottom${finalSuffix}`;\r\n const left = `${finalPrefix}left${finalSuffix}`;\r\n const result = style(elm, [top, right, bottom, left]);\r\n return {\r\n t: parseToZeroOrNumber(result[top]),\r\n r: parseToZeroOrNumber(result[right]),\r\n b: parseToZeroOrNumber(result[bottom]),\r\n l: parseToZeroOrNumber(result[left]),\r\n };\r\n};\r\n","export interface CacheOptions {\r\n // initial value of _value.\r\n _initialValue: Value;\r\n // Custom comparison function if shallow compare isn't enough. Returns true if nothing changed.\r\n _equal?: EqualCachePropFunction;\r\n // If true always updates _value and _previous, otherwise they update only when they changed.\r\n _alwaysUpdateValues?: boolean;\r\n}\r\n\r\nexport type CacheValues = [value: T, changed: boolean, previous?: T];\r\n\r\nexport type EqualCachePropFunction = (currentVal: Value, newVal: Value) => boolean;\r\n\r\nexport type CacheUpdater = (current: Value, previous?: Value) => Value;\r\n\r\nexport type UpdateCacheContextual = (newValue: Value, force?: boolean) => CacheValues;\r\n\r\nexport type UpdateCache = (force?: boolean) => CacheValues;\r\n\r\nexport type GetCurrentCache = (force?: boolean) => CacheValues;\r\n\r\nexport type Cache = [UpdateCache, GetCurrentCache];\r\n\r\nexport type CacheContextual = [UpdateCacheContextual, GetCurrentCache];\r\n\r\ntype CreateCache = {\r\n (options: CacheOptions): CacheContextual;\r\n (options: CacheOptions, update: CacheUpdater): Cache;\r\n (options: CacheOptions, update?: CacheUpdater):\r\n | CacheContextual\r\n | Cache;\r\n};\r\n\r\nexport const createCache: CreateCache = (\r\n options: CacheOptions,\r\n update?: CacheUpdater\r\n): CacheContextual | Cache => {\r\n const { _initialValue, _equal, _alwaysUpdateValues } = options;\r\n let _value: Value = _initialValue;\r\n let _previous: Value | undefined;\r\n\r\n const cacheUpdateContextual: UpdateCacheContextual = (newValue, force?) => {\r\n const curr = _value;\r\n\r\n const newVal = newValue;\r\n const changed = force || (_equal ? !_equal(curr, newVal) : curr !== newVal);\r\n\r\n if (changed || _alwaysUpdateValues) {\r\n _value = newVal;\r\n _previous = curr;\r\n }\r\n\r\n return [_value, changed, _previous];\r\n };\r\n const cacheUpdateIsolated: UpdateCache = (force?) =>\r\n cacheUpdateContextual(update!(_value, _previous), force);\r\n\r\n const getCurrentCache: GetCurrentCache = (force?: boolean) => [\r\n _value,\r\n !!force, // changed\r\n _previous,\r\n ];\r\n\r\n return [update ? cacheUpdateIsolated : cacheUpdateContextual, getCurrentCache] as\r\n | CacheContextual\r\n | Cache;\r\n};\r\n","import { PlainObject } from 'typings';\r\n\r\nconst ElementNodeType = Node.ELEMENT_NODE;\r\nconst { toString, hasOwnProperty } = Object.prototype;\r\n\r\nexport const isUndefined = (obj: any): obj is undefined => obj === undefined;\r\n\r\nexport const isNull = (obj: any): obj is null => obj === null;\r\n\r\nexport const type = (obj: any): string =>\r\n isUndefined(obj) || isNull(obj)\r\n ? `${obj}`\r\n : toString\r\n .call(obj)\r\n .replace(/^\\[object (.+)\\]$/, '$1')\r\n .toLowerCase();\r\n\r\nexport const isNumber = (obj: any): obj is number => typeof obj === 'number';\r\n\r\nexport const isString = (obj: any): obj is string => typeof obj === 'string';\r\n\r\nexport const isBoolean = (obj: any): obj is boolean => typeof obj === 'boolean';\r\n\r\nexport const isFunction = (obj: any): obj is (...args: any[]) => any => typeof obj === 'function';\r\n\r\nexport const isArray = (obj: any): obj is Array => Array.isArray(obj);\r\n\r\nexport const isObject = (obj: any): boolean =>\r\n typeof obj === 'object' && !isArray(obj) && !isNull(obj);\r\n\r\n/**\r\n * Returns true if the given object is array like, false otherwise.\r\n * @param obj The Object\r\n */\r\nexport const isArrayLike = (obj: any): obj is ArrayLike => {\r\n const length = !!obj && obj.length;\r\n const lengthCorrectFormat = isNumber(length) && length > -1 && length % 1 == 0; // eslint-disable-line eqeqeq\r\n\r\n return isArray(obj) || (!isFunction(obj) && lengthCorrectFormat)\r\n ? length > 0 && isObject(obj)\r\n ? length - 1 in obj\r\n : true\r\n : false;\r\n};\r\n\r\n/**\r\n * Returns true if the given object is a \"plain\" (e.g. { key: value }) object, false otherwise.\r\n * @param obj The Object.\r\n */\r\nexport const isPlainObject = (obj: any): obj is PlainObject => {\r\n if (!obj || !isObject(obj) || type(obj) !== 'object') return false;\r\n\r\n let key;\r\n const cstr = 'constructor';\r\n const ctor = obj[cstr];\r\n const ctorProto = ctor && ctor.prototype;\r\n const hasOwnConstructor = hasOwnProperty.call(obj, cstr);\r\n const hasIsPrototypeOf = ctorProto && hasOwnProperty.call(ctorProto, 'isPrototypeOf');\r\n\r\n if (ctor && !hasOwnConstructor && !hasIsPrototypeOf) {\r\n return false;\r\n }\r\n\r\n /* eslint-disable no-restricted-syntax */\r\n for (key in obj) {\r\n /**/\r\n }\r\n /* eslint-enable */\r\n\r\n return isUndefined(key) || hasOwnProperty.call(obj, key);\r\n};\r\n\r\n/**\r\n * Checks whether the given object is a HTMLElement.\r\n * @param obj The object which shall be checked.\r\n */\r\nexport const isHTMLElement = (obj: any): obj is HTMLElement => {\r\n const instanceofObj = HTMLElement;\r\n return obj\r\n ? instanceofObj\r\n ? obj instanceof instanceofObj\r\n : obj.nodeType === ElementNodeType\r\n : false;\r\n};\r\n\r\n/**\r\n * Checks whether the given object is a Element.\r\n * @param obj The object which shall be checked.\r\n */\r\nexport const isElement = (obj: any): obj is Element => {\r\n const instanceofObj = Element;\r\n return obj\r\n ? instanceofObj\r\n ? obj instanceof instanceofObj\r\n : obj.nodeType === ElementNodeType\r\n : false;\r\n};\r\n","import { isArray, isFunction, isPlainObject, isNull } from 'support/utils/types';\r\nimport { each } from 'support/utils/array';\r\n\r\n/**\r\n * Determines whether the passed object has a property with the passed name.\r\n * @param obj The object.\r\n * @param prop The name of the property.\r\n */\r\nexport const hasOwnProperty = (obj: any, prop: string | number | symbol): boolean =>\r\n Object.prototype.hasOwnProperty.call(obj, prop);\r\n\r\n/**\r\n * Returns the names of the enumerable string properties and methods of an object.\r\n * @param obj The object of which the properties shall be returned.\r\n */\r\nexport const keys = (obj: any): Array => (obj ? Object.keys(obj) : []);\r\n\r\ntype AssignDeep = {\r\n (target: T, object1: U): T & U;\r\n (target: T, object1: U, object2: V): T & U & V;\r\n (target: T, object1: U, object2: V, object3: W): T & U & V & W;\r\n (target: T, object1: U, object2: V, object3: W, object4: X): T & U & V & W & X;\r\n (target: T, object1: U, object2: V, object3: W, object4: X, object5: Y): T &\r\n U &\r\n V &\r\n W &\r\n X &\r\n Y;\r\n (\r\n target: T,\r\n object1?: U,\r\n object2?: V,\r\n object3?: W,\r\n object4?: X,\r\n object5?: Y,\r\n object6?: Z\r\n ): T & U & V & W & X & Y & Z;\r\n};\r\n\r\n// https://github.com/jquery/jquery/blob/master/src/core.js#L116\r\nexport const assignDeep: AssignDeep = (\r\n target: T,\r\n object1?: U,\r\n object2?: V,\r\n object3?: W,\r\n object4?: X,\r\n object5?: Y,\r\n object6?: Z\r\n): T & U & V & W & X & Y & Z => {\r\n const sources: Array = [object1, object2, object3, object4, object5, object6];\r\n\r\n // Handle case when target is a string or something (possible in deep copy)\r\n if ((typeof target !== 'object' || isNull(target)) && !isFunction(target)) {\r\n target = {} as T;\r\n }\r\n\r\n each(sources, (source) => {\r\n // Extend the base object\r\n each(keys(source), (key) => {\r\n const copy: any = source[key];\r\n\r\n // Prevent Object.prototype pollution\r\n // Prevent never-ending loop\r\n if (target === copy) {\r\n return true;\r\n }\r\n\r\n const copyIsArray = isArray(copy);\r\n\r\n // Recurse if we're merging plain objects or arrays\r\n if (copy && (isPlainObject(copy) || copyIsArray)) {\r\n const src = target[key];\r\n let clone: any = src;\r\n\r\n // Ensure proper type for the source value\r\n if (copyIsArray && !isArray(src)) {\r\n clone = [];\r\n } else if (!copyIsArray && !isPlainObject(src)) {\r\n clone = {};\r\n }\r\n\r\n // Never move original objects, clone them\r\n target[key] = assignDeep(clone, copy) as any;\r\n } else {\r\n target[key] = copy;\r\n }\r\n });\r\n });\r\n\r\n // Return the modified object\r\n return target as any;\r\n};\r\n\r\n/**\r\n * Returns true if the given object is empty, false otherwise.\r\n * @param obj The Object.\r\n */\r\nexport const isEmptyObject = (obj: any): boolean => {\r\n /* eslint-disable no-restricted-syntax, guard-for-in */\r\n for (const name in obj) return false;\r\n return true;\r\n /* eslint-enable */\r\n};\r\n","import { from } from 'support/utils/array';\r\nimport { isNull, isUndefined } from 'support/utils/types';\r\n\r\ntype GetSetPropName = 'scrollLeft' | 'scrollTop' | 'value';\r\n\r\ntype Attr = {\r\n (elm: HTMLElement | false | null | undefined, attrName: string): string | null;\r\n (elm: HTMLElement | false | null | undefined, attrName: string, value: string): void;\r\n (elm: HTMLElement | false | null | undefined, attrName: string, value?: string):\r\n | string\r\n | null\r\n | void;\r\n};\r\n\r\ntype GetSetProp = {\r\n (elm: HTMLElement | false | null | undefined): T;\r\n (elm: HTMLElement | false | null | undefined, value: T | false | null): void;\r\n (elm: HTMLElement | false | null | undefined, value?: T | false | null): T | void;\r\n};\r\n\r\nconst getSetProp = (\r\n topLeft: GetSetPropName,\r\n fallback: number | string,\r\n elm: HTMLElement | HTMLInputElement | false | null | undefined,\r\n value?: number | string | false | null\r\n): number | string | void => {\r\n if (isUndefined(value)) {\r\n return elm ? elm[topLeft] : fallback;\r\n }\r\n elm && !isNull(value) && value !== false && (elm[topLeft] = value);\r\n};\r\n\r\n/**\r\n * Gets or sets a attribute with the given attribute of the given element depending whether the value attribute is given.\r\n * Returns null if the element has no attribute with the given name.\r\n * @param elm The element of which the attribute shall be get or set.\r\n * @param attrName The attribute name which shall be get or set.\r\n * @param value The value of the attribute which shall be set.\r\n */\r\nexport const attr = ((\r\n elm: HTMLElement | false | null | undefined,\r\n attrName: string,\r\n value?: string\r\n): string | null | void => {\r\n if (isUndefined(value)) {\r\n return elm ? elm.getAttribute(attrName) : null;\r\n }\r\n elm && elm.setAttribute(attrName, value);\r\n}) as Attr;\r\n\r\n/**\r\n * Treats the given attribute like the \"class\" attribute and adds or removes the given value from it.\r\n * @param elm The element.\r\n * @param attrName The attributeName to which the value shall be added or removed.\r\n * @param value The value which shall be added or removed.\r\n * @param add True if the value shall be added, false otherwise.\r\n */\r\nexport const attrClass = (\r\n elm: HTMLElement | false | null | undefined,\r\n attrName: string,\r\n value: string,\r\n add?: boolean\r\n) => {\r\n if (value) {\r\n const currValues = attr(elm, attrName) || '';\r\n const currValuesSet = new Set(currValues.split(' '));\r\n currValuesSet[add ? 'add' : 'delete'](value);\r\n\r\n attr(elm, attrName, from(currValuesSet).join(' ').trim());\r\n }\r\n};\r\n\r\n/**\r\n * Treats the given attribute like the \"class\" attribute and checks if the given value is in it.\r\n * @param elm The element.\r\n * @param attrName The attributeName from which the content shall be checked.\r\n * @param value The value.\r\n * @returns True if the given attribute has the value in it, false otherwise.\r\n */\r\nexport const hasAttrClass = (\r\n elm: HTMLElement | false | null | undefined,\r\n attrName: string,\r\n value: string\r\n) => {\r\n const currValues = attr(elm, attrName) || '';\r\n const currValuesSet = new Set(currValues.split(' '));\r\n return currValuesSet.has(value);\r\n};\r\n\r\n/**\r\n * Removes the given attribute from the given element.\r\n * @param elm The element of which the attribute shall be removed.\r\n * @param attrName The attribute name.\r\n */\r\nexport const removeAttr = (elm: Element | false | null | undefined, attrName: string): void => {\r\n elm && elm.removeAttribute(attrName);\r\n};\r\n\r\n/**\r\n * Gets or sets the scrollLeft value of the given element depending whether the value attribute is given.\r\n * @param elm The element of which the scrollLeft value shall be get or set.\r\n * @param value The scrollLeft value which shall be set.\r\n */\r\nexport const scrollLeft = ((\r\n elm: HTMLElement | false | null | undefined,\r\n value?: number | false | null\r\n): number | void => getSetProp('scrollLeft', 0, elm, value) as number) as GetSetProp;\r\n\r\n/**\r\n * Gets or sets the scrollTop value of the given element depending whether the value attribute is given.\r\n * @param elm The element of which the scrollTop value shall be get or set.\r\n * @param value The scrollTop value which shall be set.\r\n */\r\nexport const scrollTop = ((\r\n elm: HTMLElement | false | null | undefined,\r\n value?: number | false | null\r\n): number | void => getSetProp('scrollTop', 0, elm, value) as number) as GetSetProp;\r\n\r\n/**\r\n * Gets or sets the value of the given input element depending whether the value attribute is given.\r\n * @param elm The input element of which the value shall be get or set.\r\n * @param value The value which shall be set.\r\n */\r\nexport const val = ((\r\n elm: HTMLInputElement | false | null | undefined,\r\n value?: string\r\n): string | void => getSetProp('value', '', elm, value) as string) as GetSetProp;\r\n","import { isElement } from 'support/utils/types';\r\nimport { push, from } from 'support/utils/array';\r\n\r\ntype InputElementType = Node | Element | Node | false | null | undefined;\r\ntype OutputElementType = Node | Element | null;\r\n\r\nconst elmPrototype = Element.prototype;\r\n\r\n/**\r\n * Find all elements with the passed selector, outgoing (and including) the passed element or the document if no element was provided.\r\n * @param selector The selector which has to be searched by.\r\n * @param elm The element from which the search shall be outgoing.\r\n */\r\nconst find = (selector: string, elm?: InputElementType): Element[] => {\r\n const arr: Array = [];\r\n const rootElm = elm ? (isElement(elm) ? elm : null) : document;\r\n\r\n return rootElm ? push(arr, rootElm.querySelectorAll(selector)) : arr;\r\n};\r\n\r\n/**\r\n * Find the first element with the passed selector, outgoing (and including) the passed element or the document if no element was provided.\r\n * @param selector The selector which has to be searched by.\r\n * @param elm The element from which the search shall be outgoing.\r\n */\r\nconst findFirst = (selector: string, elm?: InputElementType): OutputElementType => {\r\n const rootElm = elm ? (isElement(elm) ? elm : null) : document;\r\n\r\n return rootElm ? rootElm.querySelector(selector) : null;\r\n};\r\n\r\n/**\r\n * Determines whether the passed element is matching with the passed selector.\r\n * @param elm The element which has to be compared with the passed selector.\r\n * @param selector The selector which has to be compared with the passed element. Additional selectors: ':visible' and ':hidden'.\r\n */\r\nconst is = (elm: InputElementType, selector: string): boolean => {\r\n if (isElement(elm)) {\r\n /* istanbul ignore next */\r\n // eslint-disable-next-line\r\n // @ts-ignore\r\n const fn: (...args: any) => boolean = elmPrototype.matches || elmPrototype.msMatchesSelector;\r\n return fn.call(elm, selector);\r\n }\r\n return false;\r\n};\r\n\r\n/**\r\n * Returns the children (no text-nodes or comments) of the passed element which are matching the passed selector. An empty array is returned if the passed element is null.\r\n * @param elm The element of which the children shall be returned.\r\n * @param selector The selector which must match with the children elements.\r\n */\r\nconst children = (elm: InputElementType, selector?: string): ReadonlyArray => {\r\n const childs: Array = [];\r\n\r\n return isElement(elm)\r\n ? push(\r\n childs,\r\n from(elm.children).filter((child) => (selector ? is(child, selector) : child))\r\n )\r\n : childs;\r\n};\r\n\r\n/**\r\n * Returns the childNodes (incl. text-nodes or comments etc.) of the passed element. An empty array is returned if the passed element is null.\r\n * @param elm The element of which the childNodes shall be returned.\r\n */\r\nconst contents = (elm: InputElementType): ReadonlyArray =>\r\n elm ? from(elm.childNodes) : [];\r\n\r\n/**\r\n * Returns the parent element of the passed element, or null if the passed element is null.\r\n * @param elm The element of which the parent element shall be returned.\r\n */\r\nconst parent = (elm: InputElementType): OutputElementType => (elm ? elm.parentElement : null);\r\n\r\nconst closest = (elm: InputElementType, selector: string): OutputElementType => {\r\n if (isElement(elm)) {\r\n const closestFn = elmPrototype.closest;\r\n if (closestFn) {\r\n return closestFn.call(elm, selector);\r\n }\r\n\r\n do {\r\n if (is(elm, selector)) {\r\n return elm as Element;\r\n }\r\n elm = parent(elm);\r\n } while (elm);\r\n }\r\n\r\n return null;\r\n};\r\n\r\n/**\r\n * Determines whether the given element lies between two selectors in the DOM.\r\n * @param elm The element.\r\n * @param highBoundarySelector The high boundary selector.\r\n * @param deepBoundarySelector The deep boundary selector.\r\n */\r\nconst liesBetween = (\r\n elm: InputElementType,\r\n highBoundarySelector: string,\r\n deepBoundarySelector: string\r\n): boolean => {\r\n const closestHighBoundaryElm = elm && closest(elm, highBoundarySelector);\r\n const closestDeepBoundaryElm = elm && findFirst(deepBoundarySelector, closestHighBoundaryElm);\r\n\r\n return closestHighBoundaryElm && closestDeepBoundaryElm\r\n ? closestHighBoundaryElm === elm ||\r\n closestDeepBoundaryElm === elm ||\r\n closest(closest(elm, deepBoundarySelector), highBoundarySelector) !== closestHighBoundaryElm\r\n : false;\r\n};\r\n\r\nexport { find, findFirst, is, children, contents, parent, liesBetween, closest };\r\n","import { isArrayLike } from 'support/utils/types';\r\nimport { each, from } from 'support/utils/array';\r\nimport { parent } from 'support/dom/traversal';\r\n\r\ntype NodeCollection = ArrayLike | Node | false | null | undefined;\r\n\r\n/**\r\n * Inserts Nodes before the given preferredAnchor element.\r\n * @param parentElm The parent of the preferredAnchor element or the element which shall be the parent of the inserted Nodes.\r\n * @param preferredAnchor The element before which the Nodes shall be inserted or null if the elements shall be appended at the end.\r\n * @param insertedElms The Nodes which shall be inserted.\r\n */\r\nconst before = (\r\n parentElm: Node | false | null | undefined,\r\n preferredAnchor: Node | false | null | undefined,\r\n insertedElms: NodeCollection\r\n): void => {\r\n if (insertedElms) {\r\n let anchor: Node | false | null | undefined = preferredAnchor;\r\n let fragment: DocumentFragment | Node | null | undefined;\r\n\r\n // parent must be defined\r\n if (parentElm) {\r\n if (isArrayLike(insertedElms)) {\r\n fragment = document.createDocumentFragment();\r\n\r\n // append all insertedElms to the fragment and if one of these is the anchor, change the anchor\r\n each(insertedElms, (insertedElm) => {\r\n if (insertedElm === anchor) {\r\n anchor = insertedElm.previousSibling;\r\n }\r\n fragment!.appendChild(insertedElm);\r\n });\r\n } else {\r\n fragment = insertedElms;\r\n }\r\n\r\n // if the preferred anchor isn't null set it to a valid anchor\r\n if (preferredAnchor) {\r\n if (!anchor) {\r\n anchor = parentElm.firstChild;\r\n } else if (anchor !== preferredAnchor) {\r\n anchor = anchor.nextSibling;\r\n }\r\n }\r\n\r\n parentElm.insertBefore(fragment, anchor || null);\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * Appends the given children at the end of the given Node.\r\n * @param node The Node to which the children shall be appended.\r\n * @param children The Nodes which shall be appended.\r\n */\r\nexport const appendChildren = (\r\n node: Node | false | null | undefined,\r\n children: NodeCollection\r\n): void => {\r\n before(node, null, children);\r\n};\r\n\r\n/**\r\n * Prepends the given children at the start of the given Node.\r\n * @param node The Node to which the children shall be prepended.\r\n * @param children The Nodes which shall be prepended.\r\n */\r\nexport const prependChildren = (\r\n node: Node | false | null | undefined,\r\n children: NodeCollection\r\n): void => {\r\n before(node, node && node.firstChild, children);\r\n};\r\n\r\n/**\r\n * Inserts the given Nodes before the given Node.\r\n * @param node The Node before which the given Nodes shall be inserted.\r\n * @param insertedNodes The Nodes which shall be inserted.\r\n */\r\nexport const insertBefore = (\r\n node: Node | false | null | undefined,\r\n insertedNodes: NodeCollection\r\n): void => {\r\n before(parent(node), node, insertedNodes);\r\n};\r\n\r\n/**\r\n * Inserts the given Nodes after the given Node.\r\n * @param node The Node after which the given Nodes shall be inserted.\r\n * @param insertedNodes The Nodes which shall be inserted.\r\n */\r\nexport const insertAfter = (\r\n node: Node | false | null | undefined,\r\n insertedNodes: NodeCollection\r\n): void => {\r\n before(parent(node), node && node.nextSibling, insertedNodes);\r\n};\r\n\r\n/**\r\n * Removes the given Nodes from their parent.\r\n * @param nodes The Nodes which shall be removed.\r\n */\r\nexport const removeElements = (nodes: NodeCollection): void => {\r\n if (isArrayLike(nodes)) {\r\n each(from(nodes), (e) => removeElements(e));\r\n } else if (nodes) {\r\n const parentElm = parent(nodes);\r\n if (parentElm) {\r\n parentElm.removeChild(nodes);\r\n }\r\n }\r\n};\r\n","import { each } from 'support/utils/array';\r\nimport { attr } from 'support/dom/attribute';\r\nimport { contents } from 'support/dom/traversal';\r\nimport { removeElements } from 'support/dom/manipulation';\r\n\r\n/**\r\n * Creates a div DOM node.\r\n */\r\nexport const createDiv = (classNames?: string): HTMLDivElement => {\r\n const div = document.createElement('div');\r\n if (classNames) {\r\n attr(div, 'class', classNames);\r\n }\r\n return div;\r\n};\r\n\r\n/**\r\n * Creates DOM nodes modeled after the passed html string and returns the root dom nodes as a array.\r\n * @param html The html string after which the DOM nodes shall be created.\r\n */\r\nexport const createDOM = (html: string): ReadonlyArray => {\r\n const createdDiv = createDiv();\r\n createdDiv.innerHTML = html.trim();\r\n\r\n return each(contents(createdDiv), (elm) => removeElements(elm));\r\n};\r\n","import { each } from 'support/utils/array';\r\nimport { hasOwnProperty } from 'support/utils/object';\r\nimport { createDiv } from 'support/dom/create';\r\n\r\nconst firstLetterToUpper = (str: string): string => str.charAt(0).toUpperCase() + str.slice(1);\r\nconst getDummyStyle = (): CSSStyleDeclaration => createDiv().style;\r\n\r\n// https://developer.mozilla.org/en-US/docs/Glossary/Vendor_Prefix\r\n\r\nexport const cssPrefixes: ReadonlyArray = ['-webkit-', '-moz-', '-o-', '-ms-'];\r\nexport const jsPrefixes: ReadonlyArray = [\r\n 'WebKit',\r\n 'Moz',\r\n 'O',\r\n 'MS',\r\n 'webkit',\r\n 'moz',\r\n 'o',\r\n 'ms',\r\n];\r\n\r\nexport const jsCache: { [key: string]: any } = {};\r\nexport const cssCache: { [key: string]: string } = {};\r\n\r\n/**\r\n * Gets the name of the given CSS property with vendor prefix if it isn't supported without it, or and empty string if unsupported.\r\n * @param name The name of the CSS property which shall be get.\r\n */\r\nexport const cssProperty = (name: string): string => {\r\n let result: string | undefined = cssCache[name];\r\n\r\n if (hasOwnProperty(cssCache, name)) {\r\n return result;\r\n }\r\n\r\n const uppercasedName: string = firstLetterToUpper(name);\r\n const elmStyle: CSSStyleDeclaration = getDummyStyle();\r\n\r\n each(cssPrefixes, (prefix: string) => {\r\n const prefixWithoutDashes: string = prefix.replace(/-/g, '');\r\n const resultPossibilities: Array = [\r\n name, // transition\r\n prefix + name, // -webkit-transition\r\n prefixWithoutDashes + uppercasedName, // webkitTransition\r\n firstLetterToUpper(prefixWithoutDashes) + uppercasedName, // WebkitTransition\r\n ];\r\n\r\n // eslint-disable-next-line no-return-assign\r\n return !(result = resultPossibilities.find(\r\n (resultPossibility: string) => elmStyle[resultPossibility] !== undefined\r\n ));\r\n });\r\n\r\n // eslint-disable-next-line no-return-assign\r\n return (cssCache[name] = result || '');\r\n};\r\n\r\n/**\r\n * Get the name of the given CSS property value(s), with vendor prefix if it isn't supported without it, or an empty string if no value is supported.\r\n * @param property The CSS property to which the CSS property value(s) belong.\r\n * @param values The value(s) separated by spaces which shall be get.\r\n * @param suffix A suffix which is added to each value in case the value is a function or something else more advanced.\r\n */\r\nexport const cssPropertyValue = (property: string, values: string, suffix?: string): string => {\r\n const name = `${property} ${values}`;\r\n let result: string | undefined = cssCache[name];\r\n\r\n if (hasOwnProperty(cssCache, name)) {\r\n return result;\r\n }\r\n\r\n const dummyStyle: CSSStyleDeclaration = getDummyStyle();\r\n const possbleValues: Array = values.split(' ');\r\n const preparedSuffix: string = suffix || '';\r\n const cssPrefixesWithFirstEmpty = [''].concat(cssPrefixes);\r\n\r\n each(possbleValues, (possibleValue: string) => {\r\n each(cssPrefixesWithFirstEmpty, (prefix: string) => {\r\n const prop = prefix + possibleValue;\r\n dummyStyle.cssText = `${property}:${prop}${preparedSuffix}`;\r\n if (dummyStyle.length) {\r\n result = prop;\r\n return false;\r\n }\r\n });\r\n return !result;\r\n });\r\n\r\n // eslint-disable-next-line no-return-assign\r\n return (cssCache[name] = result || '');\r\n};\r\n\r\n/**\r\n * Get the requested JS function, object or constructor with vendor prefix if it isn't supported without or undefined if unsupported.\r\n * @param name The name of the JS function, object or constructor.\r\n */\r\nexport const jsAPI = (name: string): T | undefined => {\r\n let result: any = jsCache[name] || window[name];\r\n\r\n if (hasOwnProperty(jsCache, name)) {\r\n return result;\r\n }\r\n\r\n each(jsPrefixes, (prefix: string) => {\r\n result = result || window[prefix + firstLetterToUpper(name)];\r\n return !result;\r\n });\r\n\r\n jsCache[name] = result;\r\n return result;\r\n};\r\n","import { jsAPI } from 'support/compatibility/vendors';\r\n\r\nexport const MutationObserverConstructor = jsAPI('MutationObserver');\r\nexport const IntersectionObserverConstructor =\r\n jsAPI('IntersectionObserver');\r\nexport const ResizeObserverConstructor = jsAPI('ResizeObserver');\r\nexport const cAF = jsAPI('cancelAnimationFrame');\r\nexport const rAF = jsAPI('requestAnimationFrame');\r\nexport const setT = window.setTimeout as (handler: TimerHandler, timeout?: number) => number;\r\nexport const clearT = window.clearTimeout as (id?: number) => void;\r\n","import { isString } from 'support/utils/types';\r\nimport { each } from 'support/utils/array';\r\nimport { keys } from 'support/utils/object';\r\n\r\ntype ClassContainingElement = Node | Element | false | null | undefined;\r\ntype ClassName = string | false | null | undefined;\r\n\r\nconst rnothtmlwhite = /[^\\x20\\t\\r\\n\\f]+/g;\r\nconst classListAction = (\r\n elm: ClassContainingElement,\r\n className: ClassName,\r\n action: (elmClassList: DOMTokenList, clazz: string) => boolean | void\r\n): boolean => {\r\n const classList = elm && (elm as Element).classList;\r\n let clazz: string;\r\n let i = 0;\r\n let result = false;\r\n\r\n if (classList && className && isString(className)) {\r\n const classes: Array = className.match(rnothtmlwhite) || [];\r\n result = classes.length > 0;\r\n while ((clazz = classes[i++])) {\r\n result = !!action(classList, clazz) && result;\r\n }\r\n }\r\n return result;\r\n};\r\n\r\n/**\r\n * Check whether the given element has the given class name(s).\r\n * @param elm The element.\r\n * @param className The class name(s).\r\n */\r\nexport const hasClass = (elm: ClassContainingElement, className: ClassName): boolean =>\r\n classListAction(elm, className, (classList, clazz) => classList.contains(clazz));\r\n\r\n/**\r\n * Removes the given class name(s) from the given element.\r\n * @param elm The element.\r\n * @param className The class name(s) which shall be removed. (separated by spaces)\r\n */\r\nexport const removeClass = (elm: ClassContainingElement, className: ClassName): void => {\r\n classListAction(elm, className, (classList, clazz) => classList.remove(clazz));\r\n};\r\n\r\n/**\r\n * Adds the given class name(s) to the given element.\r\n * @param elm The element.\r\n * @param className The class name(s) which shall be added. (separated by spaces)\r\n * @returns A function which removes the added class name(s).\r\n */\r\nexport const addClass = (elm: ClassContainingElement, className: ClassName): (() => void) => {\r\n classListAction(elm, className, (classList, clazz) => classList.add(clazz));\r\n return removeClass.bind(0, elm, className);\r\n};\r\n\r\n/**\r\n * Takes two className strings, compares them and returns the difference as array.\r\n * @param classNameA ClassName A.\r\n * @param classNameB ClassName B.\r\n */\r\nexport const diffClass = (classNameA: ClassName, classNameB: ClassName) => {\r\n const classNameASplit = classNameA && classNameA.split(' ');\r\n const classNameBSplit = classNameB && classNameB.split(' ');\r\n const tempObj = {};\r\n\r\n each(classNameASplit, (className) => {\r\n tempObj[className] = 1;\r\n });\r\n each(classNameBSplit, (className) => {\r\n if (tempObj[className]) {\r\n delete tempObj[className];\r\n } else {\r\n tempObj[className] = 1;\r\n }\r\n });\r\n\r\n return keys(tempObj);\r\n};\r\n","import { each } from 'support/utils/array';\r\nimport { WH, XY, TRBL } from 'support/dom';\r\nimport { PlainObject } from 'typings';\r\n\r\n/**\r\n * Compares two objects and returns true if all values of the passed prop names are identical, false otherwise or if one of the two object is falsy.\r\n * @param a Object a.\r\n * @param b Object b.\r\n * @param props The props which shall be compared.\r\n */\r\nexport const equal = (\r\n a: T | undefined,\r\n b: T | undefined,\r\n props: Array,\r\n propMutation?: ((value: any) => any) | null | false\r\n): boolean => {\r\n if (a && b) {\r\n let result = true;\r\n each(props, (prop) => {\r\n const compareA = propMutation ? propMutation(a[prop]) : a[prop];\r\n const compareB = propMutation ? propMutation(b[prop]) : b[prop];\r\n if (compareA !== compareB) {\r\n result = false;\r\n }\r\n });\r\n return result;\r\n }\r\n return false;\r\n};\r\n\r\n/**\r\n * Compares object a with object b and returns true if both have the same property values, false otherwise.\r\n * Also returns false if one of the objects is undefined or null.\r\n * @param a Object a.\r\n * @param b Object b.\r\n */\r\nexport const equalWH = (a?: WH, b?: WH) => equal>(a, b, ['w', 'h']);\r\n\r\n/**\r\n * Compares object a with object b and returns true if both have the same property values, false otherwise.\r\n * Also returns false if one of the objects is undefined or null.\r\n * @param a Object a.\r\n * @param b Object b.\r\n */\r\nexport const equalXY = (a?: XY, b?: XY) => equal>(a, b, ['x', 'y']);\r\n\r\n/**\r\n * Compares object a with object b and returns true if both have the same property values, false otherwise.\r\n * Also returns false if one of the objects is undefined or null.\r\n * @param a Object a.\r\n * @param b Object b.\r\n */\r\nexport const equalTRBL = (a?: TRBL, b?: TRBL) => equal(a, b, ['t', 'r', 'b', 'l']);\r\n\r\n/**\r\n * Compares two DOM Rects for their equality of their width and height properties\r\n * Also returns false if one of the DOM Rects is undefined or null.\r\n * @param a DOM Rect a.\r\n * @param b DOM Rect b.\r\n * @param round Whether the values should be rounded.\r\n */\r\nexport const equalBCRWH = (a?: DOMRect, b?: DOMRect, round?: boolean) =>\r\n equal(a, b, ['width', 'height'], round && ((value) => Math.round(value)));\r\n","import { isNumber, isFunction } from 'support/utils/types';\r\nimport { from } from 'support/utils/array';\r\nimport { rAF, cAF, setT, clearT } from 'support/compatibility/apis';\r\n\r\ntype DebounceTiming = number | false | null | undefined;\r\n\r\nexport interface DebounceOptions any> {\r\n /**\r\n * The timeout for debouncing. If null, no debounce is applied.\r\n */\r\n _timeout?: DebounceTiming | (() => DebounceTiming);\r\n /**\r\n * A maximum amount of ms. before the function will be called even with debounce.\r\n */\r\n _maxDelay?: DebounceTiming | (() => DebounceTiming);\r\n /**\r\n * Function which merges parameters for each canceled debounce.\r\n * If parameters can't be merged the function will return null, otherwise it returns the merged parameters.\r\n */\r\n _mergeParams?: (\r\n prev: Parameters,\r\n curr: Parameters\r\n ) => Parameters | false | null | undefined;\r\n}\r\n\r\nexport interface Debounced any> {\r\n (...args: Parameters): ReturnType;\r\n _flush(): void;\r\n}\r\n\r\nexport const noop = () => {}; // eslint-disable-line\r\n\r\n/**\r\n * Debounces the given function either with a timeout or a animation frame.\r\n * @param functionToDebounce The function which shall be debounced.\r\n * @param options Options for debouncing.\r\n */\r\nexport const debounce = any>(\r\n functionToDebounce: FunctionToDebounce,\r\n options?: DebounceOptions\r\n): Debounced => {\r\n let maxTimeoutId: number | undefined;\r\n let prevArguments: Parameters | null | undefined;\r\n let latestArguments: Parameters | null | undefined;\r\n let clear: () => void = noop;\r\n const { _timeout, _maxDelay, _mergeParams } = options || {};\r\n\r\n const invokeFunctionToDebounce = function (args: IArguments) {\r\n clear();\r\n clearT(maxTimeoutId);\r\n maxTimeoutId = prevArguments = undefined;\r\n clear = noop;\r\n // eslint-disable-next-line\r\n // @ts-ignore\r\n functionToDebounce.apply(this, args);\r\n };\r\n\r\n const mergeParms = (\r\n curr: Parameters\r\n ): Parameters | false | null | undefined =>\r\n _mergeParams && prevArguments ? _mergeParams(prevArguments, curr) : curr;\r\n\r\n const flush = () => {\r\n /* istanbul ignore next */\r\n if (clear !== noop) {\r\n invokeFunctionToDebounce(mergeParms(latestArguments!) || latestArguments!);\r\n }\r\n };\r\n\r\n const debouncedFn = function () {\r\n // eslint-disable-next-line prefer-rest-params\r\n const args: Parameters = from(arguments) as Parameters;\r\n const finalTimeout = isFunction(_timeout) ? _timeout() : _timeout;\r\n const hasTimeout = isNumber(finalTimeout) && finalTimeout >= 0;\r\n\r\n if (hasTimeout) {\r\n const finalMaxWait = isFunction(_maxDelay) ? _maxDelay() : _maxDelay;\r\n const hasMaxWait = isNumber(finalMaxWait) && finalMaxWait >= 0;\r\n const setTimeoutFn = finalTimeout > 0 ? setT : rAF!;\r\n const clearTimeoutFn = finalTimeout > 0 ? clearT : cAF!;\r\n const mergeParamsResult = mergeParms(args);\r\n const invokedArgs = mergeParamsResult || args;\r\n const boundInvoke = invokeFunctionToDebounce.bind(0, invokedArgs);\r\n\r\n // if (!mergeParamsResult) {\r\n // invokeFunctionToDebounce(prevArguments || args);\r\n // }\r\n\r\n clear();\r\n // @ts-ignore\r\n const timeoutId = setTimeoutFn(boundInvoke, finalTimeout);\r\n clear = () => clearTimeoutFn(timeoutId);\r\n\r\n if (hasMaxWait && !maxTimeoutId) {\r\n maxTimeoutId = setT(flush, finalMaxWait as number);\r\n }\r\n\r\n prevArguments = latestArguments = invokedArgs;\r\n } else {\r\n invokeFunctionToDebounce(args);\r\n }\r\n };\r\n debouncedFn._flush = flush;\r\n\r\n return debouncedFn as Debounced;\r\n};\r\n","import { style } from 'support/dom/style';\r\n\r\nexport interface WH {\r\n w: T;\r\n h: T;\r\n}\r\n\r\nconst elementHasDimensions = (elm: HTMLElement): boolean =>\r\n !!(elm.offsetWidth || elm.offsetHeight || elm.getClientRects().length);\r\nconst zeroObj: WH = {\r\n w: 0,\r\n h: 0,\r\n};\r\n\r\n/**\r\n * Returns the window inner- width and height.\r\n */\r\nexport const windowSize = (): WH => ({\r\n w: window.innerWidth,\r\n h: window.innerHeight,\r\n});\r\n\r\n/**\r\n * Returns the scroll- width and height of the passed element. If the element is null the width and height values are 0.\r\n * @param elm The element of which the scroll- width and height shall be returned.\r\n */\r\nexport const offsetSize = (elm: HTMLElement | null | undefined): WH =>\r\n elm\r\n ? {\r\n w: elm.offsetWidth,\r\n h: elm.offsetHeight,\r\n }\r\n : zeroObj;\r\n\r\n/**\r\n * Returns the client- width and height of the passed element. If the element is null the width and height values are 0.\r\n * @param elm The element of which the client- width and height shall be returned.\r\n */\r\nexport const clientSize = (elm: HTMLElement | false | null | undefined): WH =>\r\n elm\r\n ? {\r\n w: elm.clientWidth,\r\n h: elm.clientHeight,\r\n }\r\n : zeroObj;\r\n\r\n/**\r\n * Returns the client- width and height of the passed element. If the element is null the width and height values are 0.\r\n * @param elm The element of which the client- width and height shall be returned.\r\n */\r\nexport const scrollSize = (elm: HTMLElement | false | null | undefined): WH =>\r\n elm\r\n ? {\r\n w: elm.scrollWidth,\r\n h: elm.scrollHeight,\r\n }\r\n : zeroObj;\r\n\r\n/**\r\n * Returns the fractional- width and height of the passed element. If the element is null the width and height values are 0.\r\n * @param elm The element of which the fractional- width and height shall be returned.\r\n */\r\nexport const fractionalSize = (elm: HTMLElement | false | null | undefined): WH => {\r\n const cssHeight = parseFloat(style(elm, 'height')) || 0;\r\n const cssWidth = parseFloat(style(elm, 'height')) || 0;\r\n return {\r\n w: cssWidth - Math.round(cssWidth),\r\n h: cssHeight - Math.round(cssHeight),\r\n };\r\n};\r\n\r\n/**\r\n * Returns the BoundingClientRect of the passed element.\r\n * @param elm The element of which the BoundingClientRect shall be returned.\r\n */\r\nexport const getBoundingClientRect = (elm: HTMLElement): DOMRect => elm.getBoundingClientRect();\r\n\r\n/**\r\n * Determines whether the passed element has any dimensions.\r\n * @param elm The element.\r\n */\r\nexport const hasDimensions = (elm: HTMLElement | false | null | undefined): boolean =>\r\n elm ? elementHasDimensions(elm as HTMLElement) : false;\r\n","import { isUndefined } from 'support/utils/types';\r\nimport { each, push, runEachAndClear } from 'support/utils/array';\r\n\r\nlet passiveEventsSupport: boolean;\r\nconst supportPassiveEvents = (): boolean => {\r\n if (isUndefined(passiveEventsSupport)) {\r\n passiveEventsSupport = false;\r\n try {\r\n /* eslint-disable */\r\n // @ts-ignore\r\n window.addEventListener(\r\n 'test',\r\n null,\r\n Object.defineProperty({}, 'passive', {\r\n get() {\r\n passiveEventsSupport = true;\r\n },\r\n })\r\n );\r\n /* eslint-enable */\r\n } catch (e) {}\r\n }\r\n return passiveEventsSupport;\r\n};\r\nconst splitEventNames = (eventNames: string) => eventNames.split(' ');\r\n\r\nexport interface OnOptions {\r\n _capture?: boolean;\r\n _passive?: boolean;\r\n _once?: boolean;\r\n}\r\n\r\n/**\r\n * Removes the passed event listener for the passed events with the passed options.\r\n * @param target The element from which the listener shall be removed.\r\n * @param eventNames The eventsnames for which the listener shall be removed.\r\n * @param listener The listener which shall be removed.\r\n * @param capture The options of the removed listener.\r\n */\r\nexport const off = (\r\n target: EventTarget,\r\n eventNames: string,\r\n listener: (event: T) => any,\r\n capture?: boolean\r\n): void => {\r\n each(splitEventNames(eventNames), (eventName) => {\r\n target.removeEventListener(eventName, listener as EventListener, capture);\r\n });\r\n};\r\n\r\n/**\r\n * Adds the passed event listener for the passed eventnames with the passed options.\r\n * @param target The element to which the listener shall be added.\r\n * @param eventNames The eventsnames for which the listener shall be called.\r\n * @param listener The listener which is called on the eventnames.\r\n * @param options The options of the added listener.\r\n */\r\nexport const on = (\r\n target: EventTarget,\r\n eventNames: string,\r\n listener: (event: T) => any,\r\n options?: OnOptions\r\n): (() => void) => {\r\n const doSupportPassiveEvents = supportPassiveEvents();\r\n const passive = (doSupportPassiveEvents && options && options._passive) ?? doSupportPassiveEvents;\r\n const capture = (options && options._capture) || false;\r\n const once = (options && options._once) || false;\r\n const offListeners: (() => void)[] = [];\r\n const nativeOptions: AddEventListenerOptions | boolean = doSupportPassiveEvents\r\n ? {\r\n passive,\r\n capture,\r\n }\r\n : capture;\r\n\r\n each(splitEventNames(eventNames), (eventName) => {\r\n const finalListener = (\r\n once\r\n ? (evt: T) => {\r\n target.removeEventListener(eventName, finalListener, capture);\r\n listener && listener(evt);\r\n }\r\n : listener\r\n ) as EventListener;\r\n\r\n push(offListeners, off.bind(null, target, eventName, finalListener, capture));\r\n target.addEventListener(eventName, finalListener, nativeOptions);\r\n });\r\n\r\n return runEachAndClear.bind(0, offListeners);\r\n};\r\n\r\n/**\r\n * Shorthand for the stopPropagation event Method.\r\n * @param evt The event of which the stopPropagation method shall be called.\r\n */\r\nexport const stopPropagation = (evt: Event): void => evt.stopPropagation();\r\n\r\n/**\r\n * Shorthand for the preventDefault event Method.\r\n * @param evt The event of which the preventDefault method shall be called.\r\n */\r\nexport const preventDefault = (evt: Event): void => evt.preventDefault();\r\n\r\n/**\r\n * Shorthand for the stopPropagation and preventDefault event Method.\r\n * @param evt The event of which the stopPropagation and preventDefault methods shall be called.\r\n */\r\nexport const stopAndPrevent = (evt: Event): void =>\r\n (stopPropagation(evt) as undefined) || (preventDefault(evt) as undefined);\r\n","import { getBoundingClientRect } from 'support/dom/dimensions';\r\n\r\nexport interface XY {\r\n x: T;\r\n y: T;\r\n}\r\n\r\nconst zeroObj: XY = {\r\n x: 0,\r\n y: 0,\r\n};\r\n\r\n/**\r\n * Returns the offset- left and top coordinates of the passed element relative to the document. If the element is null the top and left values are 0.\r\n * @param elm The element of which the offset- top and left coordinates shall be returned.\r\n */\r\nexport const absoluteCoordinates = (elm: HTMLElement | null | undefined): XY => {\r\n const rect = elm ? getBoundingClientRect(elm) : 0;\r\n return rect\r\n ? {\r\n x: rect.left + window.pageYOffset,\r\n y: rect.top + window.pageXOffset,\r\n }\r\n : zeroObj;\r\n};\r\n\r\n/**\r\n * Returns the offset- left and top coordinates of the passed element. If the element is null the top and left values are 0.\r\n * @param elm The element of which the offset- top and left coordinates shall be returned.\r\n */\r\nexport const offsetCoordinates = (elm: HTMLElement | null | undefined): XY =>\r\n elm\r\n ? {\r\n x: elm.offsetLeft,\r\n y: elm.offsetTop,\r\n }\r\n : zeroObj;\r\n","import { isArray } from 'support/utils/types';\r\nimport { keys } from 'support/utils/object';\r\nimport { each, from, isEmptyArray } from 'support/utils/array';\r\n\r\nexport type EventListener<\r\n EventMap extends Record,\r\n Name extends keyof EventMap = keyof EventMap\r\n> = (...args: EventMap[Name]) => void;\r\n\r\nexport type InitialEventListeners> = {\r\n [K in keyof EventMap]?: EventListener | EventListener[];\r\n};\r\n\r\nconst manageListener = >(\r\n callback: (listener?: EventListener) => void,\r\n listener?: EventListener | EventListener[]\r\n) => {\r\n each(isArray(listener) ? listener : [listener], callback);\r\n};\r\n\r\nexport const createEventListenerHub = >(\r\n initialEventListeners?: InitialEventListeners\r\n) => {\r\n type EventListener = (\r\n ...args: EventMap[Name]\r\n ) => void;\r\n type RemoveEvent = {\r\n (name?: Name, listener?: EventListener): void;\r\n (name?: Name, listener?: EventListener[]): void;\r\n (\r\n name?: Name,\r\n listener?: EventListener | EventListener[]\r\n ): void;\r\n };\r\n type AddEvent = {\r\n (name: Name, listener: EventListener): () => void;\r\n (name: Name, listener: EventListener[]): () => void;\r\n (\r\n name: Name,\r\n listener: EventListener | EventListener[]\r\n ): () => void;\r\n };\r\n type TriggerEvent = {\r\n (name: Name, args?: EventMap[Name]): void;\r\n };\r\n\r\n const events = new Map>();\r\n\r\n const removeEvent: RemoveEvent = (\r\n name?: Name,\r\n listener?: EventListener | EventListener[]\r\n ): void => {\r\n if (name) {\r\n const eventSet = events.get(name);\r\n manageListener((currListener) => {\r\n if (eventSet) {\r\n eventSet[currListener ? 'delete' : 'clear'](currListener!);\r\n }\r\n }, listener as any);\r\n } else {\r\n events.forEach((eventSet) => {\r\n eventSet.clear();\r\n });\r\n events.clear();\r\n }\r\n };\r\n\r\n const addEvent: AddEvent = (\r\n name: Name,\r\n listener: EventListener | EventListener[]\r\n ): (() => void) => {\r\n const eventSet = events.get(name) || new Set();\r\n events.set(name, eventSet);\r\n\r\n manageListener((currListener) => {\r\n currListener && eventSet.add(currListener);\r\n }, listener as any);\r\n\r\n return removeEvent.bind(0, name as any, listener as any);\r\n };\r\n\r\n const triggerEvent: TriggerEvent = (\r\n name: Name,\r\n args?: EventMap[Name]\r\n ): void => {\r\n const eventSet = events.get(name);\r\n\r\n each(from(eventSet), (event) => {\r\n if (args && !isEmptyArray(args)) {\r\n (event as (...args: EventMap[keyof EventMap]) => void).apply(0, args as any);\r\n } else {\r\n (event as () => void)();\r\n }\r\n });\r\n };\r\n\r\n const initialListenerKeys = keys(initialEventListeners) as Extract[];\r\n each(initialListenerKeys, (key) => {\r\n addEvent(key, initialEventListeners![key] as any);\r\n });\r\n\r\n return [addEvent, removeEvent, triggerEvent] as [AddEvent, RemoveEvent, TriggerEvent];\r\n};\r\n","import { assignDeep, hasOwnProperty } from 'support';\r\nimport type { Options, ReadonlyOptions } from 'options';\r\nimport type { DeepPartial } from 'typings';\r\n\r\nexport type SetupElements> = [elements: T, destroy: () => void];\r\n\r\nexport type SetupUpdate = (\r\n changedOptions: DeepPartial,\r\n force: boolean,\r\n ...args: T\r\n) => void;\r\n\r\nexport type SetupUpdateCheckOption = (path: string) => [value: T, changed: boolean];\r\n\r\nexport type SetupUpdateSegment> = (\r\n updateHints: Hints,\r\n checkOption: SetupUpdateCheckOption,\r\n force: boolean\r\n) => Partial | void;\r\n\r\nexport type SetupState> = [\r\n get: () => T,\r\n set: (newState: Partial) => void\r\n];\r\n\r\nexport type Setup<\r\n DynamicState,\r\n StaticState extends Record = Record,\r\n A extends any[] = []\r\n> = [update: SetupUpdate, state: (() => DynamicState) & StaticState, destroy: () => void];\r\n\r\nconst getPropByPath = (obj: any, path: string): T =>\r\n obj\r\n ? path.split('.').reduce((o, prop) => (o && hasOwnProperty(o, prop) ? o[prop] : undefined), obj)\r\n : undefined;\r\n\r\nexport const createOptionCheck =\r\n (\r\n options: ReadonlyOptions,\r\n changedOptions: DeepPartial,\r\n force?: boolean\r\n ): SetupUpdateCheckOption =>\r\n (path: string) =>\r\n [getPropByPath(options, path), force || getPropByPath(changedOptions, path) !== undefined];\r\n\r\nexport const createState = (initialState: S): SetupState => {\r\n let state: S = initialState;\r\n return [\r\n () => state,\r\n (newState: Partial) => {\r\n state = assignDeep({}, state, newState);\r\n },\r\n ];\r\n};\r\n","export const classNameEnvironment = 'os-environment';\r\nexport const classNameEnvironmentFlexboxGlue = `${classNameEnvironment}-flexbox-glue`;\r\nexport const classNameEnvironmentFlexboxGlueMax = `${classNameEnvironmentFlexboxGlue}-max`;\r\n\r\nexport const dataAttributeHost = 'data-overlayscrollbars';\r\nexport const dataAttributeHostOverflowX = `${dataAttributeHost}-overflow-x`;\r\nexport const dataAttributeHostOverflowY = `${dataAttributeHost}-overflow-y`;\r\nexport const dataValueHostOverflowVisible = 'overflowVisible';\r\nexport const dataValueHostScrollbarHidden = 'scrollbarHidden';\r\nexport const dataValueHostUpdating = 'updating';\r\nexport const classNamePadding = 'os-padding';\r\nexport const classNameViewport = 'os-viewport';\r\nexport const classNameViewportArrange = `${classNameViewport}-arrange`;\r\nexport const classNameContent = 'os-content';\r\nexport const classNameViewportScrollbarHidden = `${classNameViewport}-scrollbar-hidden`;\r\nexport const classNameOverflowVisible = `os-overflow-visible`;\r\n\r\nexport const classNameSizeObserver = 'os-size-observer';\r\nexport const classNameSizeObserverAppear = `${classNameSizeObserver}-appear`;\r\nexport const classNameSizeObserverListener = `${classNameSizeObserver}-listener`;\r\nexport const classNameSizeObserverListenerScroll = `${classNameSizeObserverListener}-scroll`;\r\nexport const classNameSizeObserverListenerItem = `${classNameSizeObserverListener}-item`;\r\nexport const classNameSizeObserverListenerItemFinal = `${classNameSizeObserverListenerItem}-final`;\r\n\r\nexport const classNameTrinsicObserver = 'os-trinsic-observer';\r\n\r\nexport const classNameScrollbar = 'os-scrollbar';\r\nexport const classNameScrollbarRtl = `${classNameScrollbar}-rtl`;\r\nexport const classNameScrollbarHorizontal = `${classNameScrollbar}-horizontal`;\r\nexport const classNameScrollbarVertical = `${classNameScrollbar}-vertical`;\r\nexport const classNameScrollbarTrack = `${classNameScrollbar}-track`;\r\nexport const classNameScrollbarHandle = `${classNameScrollbar}-handle`;\r\nexport const classNamesScrollbarVisible = `${classNameScrollbar}-visible`;\r\nexport const classNamesScrollbarCornerless = `${classNameScrollbar}-cornerless`;\r\nexport const classNamesScrollbarTransitionless = `${classNameScrollbar}-transitionless`;\r\nexport const classNamesScrollbarInteraction = `${classNameScrollbar}-interaction`;\r\nexport const classNamesScrollbarUnusable = `${classNameScrollbar}-unusable`;\r\nexport const classNamesScrollbarAutoHidden = `${classNameScrollbar}-auto-hidden`;\r\nexport const classNamesScrollbarTrackInteractive = `${classNameScrollbarTrack}-interactive`;\r\nexport const classNamesScrollbarHandleInteractive = `${classNameScrollbarHandle}-interactive`;\r\n","import { assignDeep, each, isObject, keys, isArray, hasOwnProperty, isFunction } from 'support';\r\nimport { DeepPartial, DeepReadonly } from 'typings';\r\n\r\nconst opsStringify = (value: any) =>\r\n JSON.stringify(value, (_, val) => {\r\n if (isFunction(val)) {\r\n throw new Error();\r\n }\r\n return val;\r\n });\r\n\r\nexport type ResizeBehavior = 'none' | 'both' | 'horizontal' | 'vertical';\r\n\r\nexport type OverflowBehavior =\r\n | 'hidden'\r\n | 'scroll'\r\n | 'visible'\r\n | 'visible-hidden'\r\n | 'visible-scroll';\r\n\r\nexport type ScrollbarVisibilityBehavior = 'visible' | 'hidden' | 'auto';\r\n\r\nexport type ScrollbarAutoHideBehavior = 'never' | 'scroll' | 'leave' | 'move';\r\n\r\nexport type ScrollBehavior = 'always' | 'ifneeded' | 'never';\r\n\r\nexport type BasicEventCallback = (this: any) => void;\r\n\r\nexport type ScrollEventCallback = (this: any, args?: UIEvent) => void;\r\n\r\nexport type OverflowChangedCallback = (this: any, args?: OverflowChangedArgs) => void;\r\n\r\nexport type OverflowAmountChangedCallback = (this: any, args?: OverflowAmountChangedArgs) => void;\r\n\r\nexport type DirectionChangedCallback = (this: any, args?: DirectionChangedArgs) => void;\r\n\r\nexport type SizeChangedCallback = (this: any, args?: SizeChangedArgs) => void;\r\n\r\nexport type UpdatedCallback = (this: any, args?: UpdatedArgs) => void;\r\n\r\nexport interface Options {\r\n paddingAbsolute: boolean;\r\n showNativeOverlaidScrollbars: boolean;\r\n updating: {\r\n elementEvents: Array<[elementSelector: string, eventNames: string]> | null;\r\n attributes: string[] | null;\r\n debounce: [timeout: number, maxWait: number] | number | null; // (if tuple: [timeout: 0, maxWait: 33], if number: [timeout: number, maxWait: false]) debounce for content Changes\r\n ignoreMutation: ((mutation: MutationRecord) => any) | null;\r\n };\r\n overflow: {\r\n x: OverflowBehavior;\r\n y: OverflowBehavior;\r\n };\r\n scrollbars: {\r\n theme: string | null;\r\n visibility: ScrollbarVisibilityBehavior;\r\n autoHide: ScrollbarAutoHideBehavior;\r\n autoHideDelay: number;\r\n dragScroll: boolean;\r\n clickScroll: boolean;\r\n pointers: string[] | null;\r\n };\r\n}\r\n\r\nexport type ReadonlyOptions = DeepReadonly;\r\n\r\nexport interface OverflowChangedArgs {\r\n x: boolean;\r\n y: boolean;\r\n xScrollable: boolean;\r\n yScrollable: boolean;\r\n clipped: boolean;\r\n}\r\n\r\nexport interface OverflowAmountChangedArgs {\r\n x: number;\r\n y: number;\r\n}\r\n\r\nexport interface DirectionChangedArgs {\r\n isRTL: number;\r\n dir: string;\r\n}\r\n\r\nexport interface SizeChangedArgs {\r\n width: number;\r\n height: number;\r\n}\r\n\r\nexport interface UpdatedArgs {\r\n forced: boolean;\r\n}\r\n\r\nexport const defaultOptions: Options = {\r\n // resize: 'none', // none || both || horizontal || vertical || n || b || h || v\r\n paddingAbsolute: false, // true || false\r\n showNativeOverlaidScrollbars: false, // true || false\r\n updating: {\r\n elementEvents: [['img', 'load']], // array of tuples || null\r\n debounce: [0, 33], // number || number array || null\r\n attributes: null, // string array || null\r\n ignoreMutation: null, // () => any || null\r\n },\r\n overflow: {\r\n x: 'scroll', // visible-hidden || visible-scroll || hidden || scroll || v-h || v-s || h || s\r\n y: 'scroll', // visible-hidden || visible-scroll || hidden || scroll || v-h || v-s || h || s\r\n },\r\n scrollbars: {\r\n theme: 'os-theme-dark',\r\n visibility: 'auto', // visible || hidden || auto || v || h || a\r\n autoHide: 'never', // never || scroll || leave || move || n || s || l || m\r\n autoHideDelay: 800, // number\r\n dragScroll: true, // true || false\r\n clickScroll: false, // true || false\r\n pointers: ['mouse', 'touch', 'pen'], // null || array of supported pointers: https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent/pointerType\r\n },\r\n};\r\n\r\nexport const getOptionsDiff = (currOptions: T, newOptions: DeepPartial): DeepPartial => {\r\n const diff: DeepPartial = {};\r\n const optionsKeys = keys(newOptions).concat(keys(currOptions));\r\n\r\n each(optionsKeys, (optionKey) => {\r\n const currOptionValue = currOptions[optionKey];\r\n const newOptionValue = newOptions[optionKey];\r\n\r\n if (isObject(currOptionValue) && isObject(newOptionValue)) {\r\n assignDeep((diff[optionKey] = {}), getOptionsDiff(currOptionValue, newOptionValue));\r\n } else if (hasOwnProperty(newOptions, optionKey) && newOptionValue !== currOptionValue) {\r\n let isDiff = true;\r\n\r\n if (isArray(currOptionValue) || isArray(newOptionValue)) {\r\n try {\r\n if (opsStringify(currOptionValue) === opsStringify(newOptionValue)) {\r\n isDiff = false;\r\n }\r\n } catch {}\r\n }\r\n\r\n if (isDiff) {\r\n diff[optionKey] = newOptionValue;\r\n }\r\n }\r\n });\r\n\r\n return diff;\r\n};\r\n","import { assignDeep, each, isArray, keys } from 'support';\r\nimport { OverlayScrollbars, OverlayScrollbarsStatic } from 'overlayscrollbars';\r\n\r\nexport type PluginInstance =\r\n | Record\r\n | ((staticObj: OverlayScrollbarsStatic, instanceObj: OverlayScrollbars) => void);\r\nexport type Plugin = {\r\n [pluginName: string]: T;\r\n};\r\n\r\nconst pluginRegistry: Record = {};\r\n\r\nexport const getPlugins = () => assignDeep({}, pluginRegistry);\r\n\r\nexport const addPlugin = (addedPlugin: Plugin | Plugin[]) => {\r\n each((isArray(addedPlugin) ? addedPlugin : [addedPlugin]) as Plugin[], (plugin) => {\r\n each(keys(plugin), (pluginName) => {\r\n pluginRegistry[pluginName] = plugin[pluginName];\r\n });\r\n });\r\n};\r\n","import { each, hasOwnProperty, keys, push, isEmptyObject } from 'support/utils';\r\nimport { type, isArray, isUndefined, isPlainObject, isString } from 'support/utils/types';\r\nimport { PlainObject, DeepPartial } from 'typings';\r\n\r\nexport type OptionsObjectType = Record;\r\nexport type OptionsFunctionType = (this: any, ...args: any[]) => any;\r\nexport type OptionsTemplateType = ExtractPropsKey<\r\n OptionsTemplateTypeMap,\r\n T\r\n>;\r\nexport type OptionsTemplateTypes = keyof OptionsTemplateTypeMap;\r\nexport type OptionsTemplateNativeTypes = OptionsTemplateTypeMap[keyof OptionsTemplateTypeMap];\r\n\r\nexport type OptionsTemplateValue = T extends string\r\n ? string extends T\r\n ? OptionsTemplateValueNonEnum\r\n : string\r\n : OptionsTemplateValueNonEnum;\r\n\r\nexport type OptionsTemplate = {\r\n [P in keyof T]: T[P] extends OptionsObjectType\r\n ? OptionsTemplate\r\n : T[P] extends OptionsTemplateNativeTypes\r\n ? OptionsTemplateValue\r\n : never;\r\n};\r\n\r\nexport type OptionsValidationResult = [\r\n DeepPartial, // validated\r\n Record // foreign\r\n];\r\n\r\ntype OptionsTemplateTypeMap = {\r\n __TPL_boolean_TYPE__: boolean;\r\n __TPL_number_TYPE__: number;\r\n __TPL_string_TYPE__: string;\r\n __TPL_array_TYPE__: Array | ReadonlyArray;\r\n __TPL_function_TYPE__: OptionsFunctionType;\r\n __TPL_null_TYPE__: null;\r\n __TPL_object_TYPE__: OptionsObjectType;\r\n};\r\n\r\ntype OptionsTemplateValueNonEnum =\r\n | OptionsTemplateType\r\n | [OptionsTemplateType, ...Array];\r\n\r\ntype ExtractPropsKey = {\r\n [P in keyof T]: TProps extends T[P] ? P : never;\r\n}[keyof T];\r\n\r\ntype OptionsTemplateTypesDictionary = {\r\n readonly boolean: OptionsTemplateType;\r\n readonly number: OptionsTemplateType;\r\n readonly string: OptionsTemplateType;\r\n readonly array: OptionsTemplateType>;\r\n readonly object: OptionsTemplateType;\r\n readonly function: OptionsTemplateType;\r\n readonly null: OptionsTemplateType;\r\n};\r\n\r\nconst optionsTemplateTypes: OptionsTemplateTypesDictionary = {\r\n boolean: '__TPL_boolean_TYPE__',\r\n number: '__TPL_number_TYPE__',\r\n string: '__TPL_string_TYPE__',\r\n array: '__TPL_array_TYPE__',\r\n object: '__TPL_object_TYPE__',\r\n function: '__TPL_function_TYPE__',\r\n null: '__TPL_null_TYPE__',\r\n};\r\n\r\n/**\r\n * Validates the given options object according to the given template object and returns a object which looks like:\r\n * {\r\n * foreign : a object which consists of properties which aren't defined inside the template. (foreign properties)\r\n * validated : a object which consists only of valid properties. (property name is inside the template and value has a correct type)\r\n * }\r\n * @param template The template according to which the options object shall be validated.\r\n * @param options The options object which shall be validated.\r\n * @param optionsDiff When provided the returned validated object will only have properties which are different to this objects properties.\r\n * Example (assume all properties are valid to the template):\r\n * Options object : { a: 'a', b: 'b', c: 'c' }\r\n * optionsDiff object : { a: 'a', b: 'b', c: undefined }\r\n * Returned validated object : { c: 'c' }\r\n * Because the value of the properties a and b didn't change, they aren't included in the returned object.\r\n * Without the optionsDiff object the returned validated object would be: { a: 'a', b: 'b', c: 'c' }\r\n * @param doWriteErrors True if errors shall be logged into the console, false otherwise.\r\n * @param propPath The propertyPath which lead to this object. (used for error logging)\r\n */\r\nconst validateRecursive = (\r\n template: OptionsTemplate,\r\n options: DeepPartial,\r\n doWriteErrors?: boolean,\r\n propPath?: string\r\n): OptionsValidationResult => {\r\n const validatedOptions: DeepPartial = {};\r\n const optionsCopy: DeepPartial = { ...options };\r\n const props = keys(template).filter((prop) => hasOwnProperty(options, prop));\r\n\r\n each(props, (prop: Extract) => {\r\n const optionsValue: any = options[prop];\r\n const templateValue: PlainObject | string | OptionsTemplateTypes | Array =\r\n template[prop];\r\n const templateIsComplex = isPlainObject(templateValue);\r\n const propPrefix = propPath ? `${propPath}.` : '';\r\n\r\n // if the template has a object as value, it means that the options are complex (verschachtelt)\r\n if (templateIsComplex && isPlainObject(optionsValue)) {\r\n const [validated, foreign] = validateRecursive(\r\n templateValue as T,\r\n optionsValue,\r\n doWriteErrors,\r\n propPrefix + prop\r\n );\r\n validatedOptions[prop] = validated as any;\r\n optionsCopy[prop] = foreign as any;\r\n\r\n each([optionsCopy, validatedOptions], (value) => {\r\n if (isEmptyObject(value[prop])) {\r\n delete value[prop];\r\n }\r\n });\r\n } else if (!templateIsComplex) {\r\n let isValid = false;\r\n const errorEnumStrings: Array = [];\r\n const errorPossibleTypes: Array = [];\r\n const optionsValueType = type(optionsValue);\r\n const templateValueArr: Array = !isArray(templateValue)\r\n ? [templateValue as string | OptionsTemplateTypes]\r\n : (templateValue as Array);\r\n\r\n each(templateValueArr, (currTemplateType) => {\r\n // if currType value isn't inside possibleTemplateTypes we assume its a enum string value\r\n let typeString: string | undefined;\r\n each(optionsTemplateTypes, (value: string, key: string) => {\r\n if (value === currTemplateType) {\r\n typeString = key;\r\n }\r\n });\r\n const isEnumString = isUndefined(typeString);\r\n if (isEnumString && isString(optionsValue)) {\r\n // split it into a array which contains all possible values for example: [\"yes\", \"no\", \"maybe\"]\r\n const enumStringSplit = currTemplateType.split(' ');\r\n isValid = !!enumStringSplit.find((possibility) => possibility === optionsValue);\r\n\r\n // build error message\r\n push(errorEnumStrings, enumStringSplit);\r\n } else {\r\n isValid = optionsTemplateTypes[optionsValueType] === currTemplateType;\r\n }\r\n\r\n // build error message\r\n push(errorPossibleTypes, isEnumString ? optionsTemplateTypes.string : typeString!);\r\n\r\n // continue if invalid, break if valid\r\n return !isValid;\r\n });\r\n\r\n if (isValid) {\r\n validatedOptions[prop] = optionsValue;\r\n } else if (doWriteErrors) {\r\n console.warn(\r\n `${\r\n `The option \"${propPrefix}${prop}\" wasn't set, because it doesn't accept the type [ ${optionsValueType.toUpperCase()} ] with the value of \"${optionsValue}\".\\r\\n` +\r\n `Accepted types are: [ ${errorPossibleTypes.join(', ').toUpperCase()} ].\\r\\n`\r\n }${\r\n errorEnumStrings.length > 0\r\n ? `\\r\\nValid strings are: [ ${errorEnumStrings.join(', ')} ].`\r\n : ''\r\n }`\r\n );\r\n }\r\n\r\n delete optionsCopy[prop];\r\n }\r\n });\r\n\r\n return [validatedOptions, optionsCopy]; // optionsCopy equals now to foreign options\r\n};\r\n\r\n/**\r\n * Validates the given options object according to the given template object and returns a tuple which looks like:\r\n * [\r\n * validated : a object which consists only of valid properties. (property name is inside the template and value has a correct type)\r\n * foreign : a object which consists of properties which aren't defined inside the template. (foreign properties)\r\n * ]\r\n * @param template The template according to which the options object shall be validated.\r\n * @param options The options object which shall be validated.\r\n * @param doWriteErrors True if errors shall be logged into the console, false otherwise.\r\n */\r\nconst validateOptions = (\r\n template: OptionsTemplate,\r\n options: DeepPartial,\r\n doWriteErrors?: boolean\r\n): OptionsValidationResult => validateRecursive(template, options, doWriteErrors);\r\n\r\nexport { validateOptions, optionsTemplateTypes };\r\n","import {\r\n Options,\r\n OverflowBehavior,\r\n ScrollbarVisibilityBehavior,\r\n ScrollbarAutoHideBehavior,\r\n} from 'options';\r\nimport {\r\n validateOptions,\r\n OptionsTemplate,\r\n OptionsTemplateValue,\r\n optionsTemplateTypes as oTypes,\r\n} from 'plugins/optionsValidationPlugin/validation';\r\nimport type { DeepPartial } from 'typings';\r\nimport type { Plugin } from 'plugins';\r\n\r\nconst numberAllowedValues: OptionsTemplateValue = oTypes.number;\r\nconst booleanAllowedValues: OptionsTemplateValue = oTypes.boolean;\r\nconst arrayNullValues: OptionsTemplateValue | null> = [oTypes.array, oTypes.null];\r\nconst overflowAllowedValues: OptionsTemplateValue =\r\n 'hidden scroll visible visible-hidden';\r\nconst scrollbarsVisibilityAllowedValues: OptionsTemplateValue =\r\n 'visible hidden auto';\r\nconst scrollbarsAutoHideAllowedValues: OptionsTemplateValue =\r\n 'never scroll leavemove';\r\n\r\nconst optionsTemplate: OptionsTemplate = {\r\n // resize: resizeAllowedValues, // none || both || horizontal || vertical || n || b ||\r\n paddingAbsolute: booleanAllowedValues, // true || false\r\n showNativeOverlaidScrollbars: booleanAllowedValues, // true || false\r\n updating: {\r\n elementEvents: arrayNullValues, // array of tuples || null\r\n attributes: arrayNullValues,\r\n debounce: [oTypes.number, oTypes.array, oTypes.null], // number || number array || null\r\n ignoreMutation: [oTypes.function, oTypes.null], // function || null\r\n },\r\n overflow: {\r\n x: overflowAllowedValues, // visible-hidden || visible-scroll || hidden || scrol\r\n y: overflowAllowedValues, // visible-hidden || visible-scroll || hidden || scrol\r\n },\r\n scrollbars: {\r\n theme: [oTypes.string, oTypes.null], // string || null\r\n visibility: scrollbarsVisibilityAllowedValues, // visible || hidden || auto || v ||\r\n autoHide: scrollbarsAutoHideAllowedValues, // never || scroll || leave || move ||\r\n autoHideDelay: numberAllowedValues, // number\r\n dragScroll: booleanAllowedValues, // true || false\r\n clickScroll: booleanAllowedValues, // true || false\r\n pointers: [oTypes.array, oTypes.null], // string array\r\n },\r\n /*\r\n textarea: {\r\n dynWidth: booleanAllowedValues, // true || false\r\n dynHeight: booleanAllowedValues, // true || false\r\n inheritedAttrs: stringArrayNullAllowedValues, // string || array || nul\r\n },\r\n */\r\n};\r\n\r\nexport type OptionsValidationPluginInstance = {\r\n _: (options: DeepPartial, doWriteErrors?: boolean) => DeepPartial;\r\n};\r\n\r\nexport const optionsValidationPluginName = '__osOptionsValidationPlugin';\r\n\r\nexport const optionsValidationPlugin: Plugin = {\r\n [optionsValidationPluginName]: {\r\n _: (options: DeepPartial, doWriteErrors?: boolean) => {\r\n const [validated, foreign] = validateOptions(optionsTemplate, options, doWriteErrors);\r\n return { ...foreign, ...validated };\r\n },\r\n },\r\n};\r\n","import {\r\n createDOM,\r\n style,\r\n appendChildren,\r\n offsetSize,\r\n scrollLeft,\r\n scrollTop,\r\n on,\r\n addClass,\r\n equalWH,\r\n push,\r\n cAF,\r\n rAF,\r\n stopPropagation,\r\n} from 'support';\r\nimport {\r\n classNameSizeObserverListenerScroll,\r\n classNameSizeObserverListenerItem,\r\n classNameSizeObserverListenerItemFinal,\r\n} from 'classnames';\r\nimport type { Plugin } from 'plugins';\r\n\r\nexport type SizeObserverPluginInstance = {\r\n _: (\r\n listenerElement: HTMLElement,\r\n onSizeChangedCallback: (appear: boolean) => any,\r\n observeAppearChange: boolean\r\n ) => [appearCallback: () => any, offFns: (() => any)[]];\r\n};\r\n\r\nconst scrollAmount = 3333333;\r\nconst scrollEventName = 'scroll';\r\nexport const sizeObserverPluginName = '__osSizeObserverPlugin';\r\n\r\nexport const sizeObserverPlugin: Plugin = {\r\n [sizeObserverPluginName]: {\r\n _: (listenerElement, onSizeChangedCallback, observeAppearChange) => {\r\n const observerElementChildren = createDOM(\r\n `
`\r\n );\r\n appendChildren(listenerElement, observerElementChildren);\r\n addClass(listenerElement, classNameSizeObserverListenerScroll);\r\n const observerElementChildrenRoot = observerElementChildren[0] as HTMLElement;\r\n const shrinkElement = observerElementChildrenRoot.lastChild as HTMLElement;\r\n const expandElement = observerElementChildrenRoot.firstChild as HTMLElement;\r\n const expandElementChild = expandElement?.firstChild as HTMLElement;\r\n\r\n let cacheSize = offsetSize(observerElementChildrenRoot);\r\n let currSize = cacheSize;\r\n let isDirty = false;\r\n let rAFId: number;\r\n\r\n const reset = () => {\r\n scrollLeft(expandElement, scrollAmount);\r\n scrollTop(expandElement, scrollAmount);\r\n scrollLeft(shrinkElement, scrollAmount);\r\n scrollTop(shrinkElement, scrollAmount);\r\n };\r\n const onResized = (appear?: unknown) => {\r\n rAFId = 0;\r\n if (isDirty) {\r\n cacheSize = currSize;\r\n onSizeChangedCallback(appear === true);\r\n }\r\n };\r\n const onScroll = (scrollEvent?: Event | false) => {\r\n currSize = offsetSize(observerElementChildrenRoot);\r\n isDirty = !scrollEvent || !equalWH(currSize, cacheSize);\r\n\r\n if (scrollEvent) {\r\n stopPropagation(scrollEvent);\r\n\r\n if (isDirty && !rAFId) {\r\n cAF!(rAFId);\r\n rAFId = rAF!(onResized);\r\n }\r\n } else {\r\n onResized(scrollEvent === false);\r\n }\r\n\r\n reset();\r\n };\r\n const offListeners = push(\r\n [],\r\n [on(expandElement, scrollEventName, onScroll), on(shrinkElement, scrollEventName, onScroll)]\r\n );\r\n\r\n // lets assume that the divs will never be that large and a constant value is enough\r\n style(expandElementChild, {\r\n width: scrollAmount,\r\n height: scrollAmount,\r\n });\r\n\r\n rAF!(reset);\r\n\r\n return [observeAppearChange ? onScroll.bind(0, false) : reset, offListeners];\r\n },\r\n },\r\n};\r\n","import {\r\n keys,\r\n attr,\r\n WH,\r\n style,\r\n addClass,\r\n removeClass,\r\n noop,\r\n each,\r\n assignDeep,\r\n windowSize,\r\n UpdateCache,\r\n XY,\r\n} from 'support';\r\nimport { classNameViewportArrange } from 'classnames';\r\nimport type { StyleObject } from 'typings';\r\nimport type { StructureSetupState } from 'setups/structureSetup';\r\nimport type {\r\n ViewportOverflowState,\r\n GetViewportOverflowState,\r\n HideNativeScrollbars,\r\n} from 'setups/structureSetup/updateSegments/overflowUpdateSegment';\r\nimport type { InternalEnvironment } from 'environment';\r\nimport type { Plugin } from 'plugins';\r\n\r\nexport type ArrangeViewport = (\r\n viewportOverflowState: ViewportOverflowState,\r\n viewportScrollSize: WH,\r\n sizeFraction: WH,\r\n directionIsRTL: boolean\r\n) => boolean;\r\n\r\nexport type UndoViewportArrangeResult = [\r\n redoViewportArrange: () => void,\r\n overflowState?: ViewportOverflowState\r\n];\r\n\r\nexport type UndoArrangeViewport = (\r\n showNativeOverlaidScrollbars: boolean,\r\n directionIsRTL: boolean,\r\n viewportOverflowState?: ViewportOverflowState\r\n) => UndoViewportArrangeResult;\r\n\r\nexport type ScrollbarsHidingPluginInstance = {\r\n _createUniqueViewportArrangeElement(env: InternalEnvironment): HTMLStyleElement | false;\r\n _overflowUpdateSegment(\r\n doViewportArrange: boolean,\r\n flexboxGlue: boolean,\r\n viewport: HTMLElement,\r\n viewportArrange: HTMLStyleElement | false | null | undefined,\r\n getState: () => StructureSetupState,\r\n getViewportOverflowState: GetViewportOverflowState,\r\n hideNativeScrollbars: HideNativeScrollbars\r\n ): [ArrangeViewport, UndoArrangeViewport];\r\n _envWindowZoom(): (\r\n envInstance: InternalEnvironment,\r\n updateNativeScrollbarSizeCache: UpdateCache>,\r\n triggerEvent: () => void\r\n ) => void;\r\n};\r\n\r\nlet contentArrangeCounter = 0;\r\nconst { round, abs } = Math;\r\nconst getWindowDPR = (): number => {\r\n // eslint-disable-next-line\r\n // @ts-ignore\r\n const dDPI = window.screen.deviceXDPI || 0;\r\n // eslint-disable-next-line\r\n // @ts-ignore\r\n const sDPI = window.screen.logicalXDPI || 1;\r\n return window.devicePixelRatio || dDPI / sDPI;\r\n};\r\n\r\nconst diffBiggerThanOne = (valOne: number, valTwo: number): boolean => {\r\n const absValOne = abs(valOne);\r\n const absValTwo = abs(valTwo);\r\n return !(absValOne === absValTwo || absValOne + 1 === absValTwo || absValOne - 1 === absValTwo);\r\n};\r\n\r\nexport const scrollbarsHidingPluginName = '__osScrollbarsHidingPlugin';\r\n\r\nexport const scrollbarsHidingPlugin: Plugin = {\r\n [scrollbarsHidingPluginName]: {\r\n _createUniqueViewportArrangeElement: (env: InternalEnvironment) => {\r\n const { _nativeScrollbarsHiding, _nativeScrollbarsOverlaid, _cssCustomProperties } = env;\r\n const create =\r\n !_cssCustomProperties &&\r\n !_nativeScrollbarsHiding &&\r\n (_nativeScrollbarsOverlaid.x || _nativeScrollbarsOverlaid.y);\r\n const result = create ? document.createElement('style') : false;\r\n\r\n if (result) {\r\n attr(result, 'id', `${classNameViewportArrange}-${contentArrangeCounter}`);\r\n contentArrangeCounter++;\r\n }\r\n\r\n return result;\r\n },\r\n _overflowUpdateSegment: (\r\n doViewportArrange,\r\n flexboxGlue,\r\n viewport,\r\n viewportArrange,\r\n getState,\r\n getViewportOverflowState,\r\n hideNativeScrollbars\r\n ) => {\r\n /**\r\n * Sets the styles of the viewport arrange element.\r\n * @param viewportOverflowState The viewport overflow state according to which the scrollbars shall be hidden.\r\n * @param viewportScrollSize The content scroll size.\r\n * @param directionIsRTL Whether the direction is RTL or not.\r\n * @returns A boolean which indicates whether the viewport arrange element was adjusted.\r\n */\r\n const arrangeViewport: ArrangeViewport = (\r\n viewportOverflowState,\r\n viewportScrollSize,\r\n sizeFraction,\r\n directionIsRTL\r\n ) => {\r\n if (doViewportArrange) {\r\n const { _viewportPaddingStyle } = getState();\r\n const { _scrollbarsHideOffset, _scrollbarsHideOffsetArrange } = viewportOverflowState;\r\n const { x: arrangeX, y: arrangeY } = _scrollbarsHideOffsetArrange;\r\n const { x: hideOffsetX, y: hideOffsetY } = _scrollbarsHideOffset;\r\n const viewportArrangeHorizontalPaddingKey: keyof StyleObject = directionIsRTL\r\n ? 'paddingRight'\r\n : 'paddingLeft';\r\n const viewportArrangeHorizontalPaddingValue = _viewportPaddingStyle[\r\n viewportArrangeHorizontalPaddingKey\r\n ] as number;\r\n const viewportArrangeVerticalPaddingValue = _viewportPaddingStyle.paddingTop as number;\r\n const fractionalContentWidth = viewportScrollSize.w + sizeFraction.w;\r\n const fractionalContenHeight = viewportScrollSize.h + sizeFraction.h;\r\n const arrangeSize = {\r\n w:\r\n hideOffsetY && arrangeY\r\n ? `${\r\n hideOffsetY + fractionalContentWidth - viewportArrangeHorizontalPaddingValue\r\n }px`\r\n : '',\r\n h:\r\n hideOffsetX && arrangeX\r\n ? `${hideOffsetX + fractionalContenHeight - viewportArrangeVerticalPaddingValue}px`\r\n : '',\r\n };\r\n\r\n // adjust content arrange / before element\r\n if (viewportArrange) {\r\n const { sheet } = viewportArrange;\r\n if (sheet) {\r\n const { cssRules } = sheet;\r\n if (cssRules) {\r\n if (!cssRules.length) {\r\n sheet.insertRule(\r\n `#${attr(viewportArrange, 'id')} + .${classNameViewportArrange}::before {}`,\r\n 0\r\n );\r\n }\r\n\r\n // @ts-ignore\r\n const ruleStyle = cssRules[0].style;\r\n\r\n ruleStyle.width = arrangeSize.w;\r\n ruleStyle.height = arrangeSize.h;\r\n }\r\n }\r\n } else {\r\n style<'--os-vaw' | '--os-vah'>(viewport, {\r\n '--os-vaw': arrangeSize.w,\r\n '--os-vah': arrangeSize.h,\r\n });\r\n }\r\n }\r\n\r\n return doViewportArrange;\r\n };\r\n\r\n /**\r\n * Removes all styles applied because of the viewport arrange strategy.\r\n * @param showNativeOverlaidScrollbars Whether native overlaid scrollbars are shown instead of hidden.\r\n * @param directionIsRTL Whether the direction is RTL or not.\r\n * @param viewportOverflowState The currentviewport overflow state or undefined if it has to be determined.\r\n * @returns A object with a function which applies all the removed styles and the determined viewport vverflow state.\r\n */\r\n const undoViewportArrange: UndoArrangeViewport = (\r\n showNativeOverlaidScrollbars,\r\n directionIsRTL,\r\n viewportOverflowState?\r\n ) => {\r\n if (doViewportArrange) {\r\n const finalViewportOverflowState =\r\n viewportOverflowState || getViewportOverflowState(showNativeOverlaidScrollbars);\r\n const { _viewportPaddingStyle: viewportPaddingStyle } = getState();\r\n const { _scrollbarsHideOffsetArrange } = finalViewportOverflowState;\r\n const { x: arrangeX, y: arrangeY } = _scrollbarsHideOffsetArrange;\r\n const finalPaddingStyle: StyleObject = {};\r\n const assignProps = (props: string) =>\r\n each(props.split(' '), (prop) => {\r\n finalPaddingStyle[prop] = viewportPaddingStyle[prop];\r\n });\r\n\r\n if (arrangeX) {\r\n assignProps('marginBottom paddingTop paddingBottom');\r\n }\r\n\r\n if (arrangeY) {\r\n assignProps('marginLeft marginRight paddingLeft paddingRight');\r\n }\r\n\r\n const prevStyle = style(viewport, keys(finalPaddingStyle));\r\n\r\n removeClass(viewport, classNameViewportArrange);\r\n\r\n if (!flexboxGlue) {\r\n finalPaddingStyle.height = '';\r\n }\r\n\r\n style(viewport, finalPaddingStyle);\r\n\r\n return [\r\n () => {\r\n hideNativeScrollbars(\r\n finalViewportOverflowState,\r\n directionIsRTL,\r\n doViewportArrange,\r\n prevStyle\r\n );\r\n style(viewport, prevStyle);\r\n addClass(viewport, classNameViewportArrange);\r\n },\r\n finalViewportOverflowState,\r\n ];\r\n }\r\n return [noop];\r\n };\r\n\r\n return [arrangeViewport, undoViewportArrange];\r\n },\r\n _envWindowZoom: () => {\r\n let size = { w: 0, h: 0 };\r\n let dpr = 0;\r\n\r\n return (envInstance, updateNativeScrollbarSizeCache, triggerEvent) => {\r\n const sizeNew = windowSize();\r\n const deltaSize = {\r\n w: sizeNew.w - size.w,\r\n h: sizeNew.h - size.h,\r\n };\r\n\r\n if (deltaSize.w === 0 && deltaSize.h === 0) {\r\n return;\r\n }\r\n\r\n const deltaAbsSize = {\r\n w: abs(deltaSize.w),\r\n h: abs(deltaSize.h),\r\n };\r\n const deltaAbsRatio = {\r\n w: abs(round(sizeNew.w / (size.w / 100.0))),\r\n h: abs(round(sizeNew.h / (size.h / 100.0))),\r\n };\r\n const dprNew = getWindowDPR();\r\n const deltaIsBigger = deltaAbsSize.w > 2 && deltaAbsSize.h > 2;\r\n const difference = !diffBiggerThanOne(deltaAbsRatio.w, deltaAbsRatio.h);\r\n const dprChanged = dprNew !== dpr && dprNew > 0;\r\n const isZoom = deltaIsBigger && difference && dprChanged;\r\n\r\n if (isZoom) {\r\n const [scrollbarSize, scrollbarSizeChanged] = updateNativeScrollbarSizeCache();\r\n\r\n assignDeep(envInstance._nativeScrollbarsSize, scrollbarSize); // keep the object same!\r\n\r\n if (scrollbarSizeChanged) {\r\n triggerEvent();\r\n }\r\n }\r\n\r\n size = sizeNew;\r\n dpr = dprNew;\r\n };\r\n },\r\n },\r\n};\r\n","import {\r\n createDOM,\r\n addClass,\r\n style,\r\n appendChildren,\r\n fractionalSize,\r\n clientSize,\r\n absoluteCoordinates,\r\n offsetSize,\r\n scrollLeft,\r\n XY,\r\n removeAttr,\r\n removeElements,\r\n equalBCRWH,\r\n getBoundingClientRect,\r\n assignDeep,\r\n cssProperty,\r\n createCache,\r\n equalXY,\r\n createEventListenerHub,\r\n EventListener,\r\n} from 'support';\r\nimport {\r\n classNameEnvironment,\r\n classNameEnvironmentFlexboxGlue,\r\n classNameEnvironmentFlexboxGlueMax,\r\n classNameViewportScrollbarHidden,\r\n} from 'classnames';\r\nimport { Options, defaultOptions } from 'options';\r\nimport { DeepPartial } from 'typings';\r\nimport { Initialization } from 'initialization';\r\nimport { getPlugins, ScrollbarsHidingPluginInstance, scrollbarsHidingPluginName } from 'plugins';\r\n\r\ntype EnvironmentEventMap = {\r\n _: [];\r\n};\r\n\r\nexport interface InternalEnvironment {\r\n readonly _nativeScrollbarsSize: XY;\r\n readonly _nativeScrollbarsOverlaid: XY;\r\n readonly _nativeScrollbarsHiding: boolean;\r\n readonly _rtlScrollBehavior: { n: boolean; i: boolean };\r\n readonly _flexboxGlue: boolean;\r\n readonly _cssCustomProperties: boolean;\r\n readonly _staticDefaultInitialization: Initialization;\r\n readonly _staticDefaultOptions: Options;\r\n _addListener(listener: EventListener): () => void;\r\n _getDefaultInitialization(): Initialization;\r\n _setDefaultInitialization(newInitialization: DeepPartial): void;\r\n _getDefaultOptions(): Options;\r\n _setDefaultOptions(newDefaultOptions: DeepPartial): void;\r\n}\r\n\r\nlet environmentInstance: InternalEnvironment;\r\n\r\nconst getNativeScrollbarSize = (\r\n body: HTMLElement,\r\n measureElm: HTMLElement,\r\n measureElmChild: HTMLElement,\r\n clear?: boolean\r\n): XY => {\r\n appendChildren(body, measureElm);\r\n\r\n const cSize = clientSize(measureElm);\r\n const oSize = offsetSize(measureElm);\r\n const fSize = fractionalSize(measureElmChild);\r\n\r\n clear && removeElements(measureElm);\r\n\r\n return {\r\n x: oSize.h - cSize.h + fSize.h,\r\n y: oSize.w - cSize.w + fSize.w,\r\n };\r\n};\r\n\r\nconst getNativeScrollbarsHiding = (testElm: HTMLElement): boolean => {\r\n let result = false;\r\n const revertClass = addClass(testElm, classNameViewportScrollbarHidden);\r\n try {\r\n result =\r\n style(testElm, cssProperty('scrollbar-width')) === 'none' ||\r\n window.getComputedStyle(testElm, '::-webkit-scrollbar').getPropertyValue('display') ===\r\n 'none';\r\n } catch (ex) {}\r\n revertClass();\r\n return result;\r\n};\r\n\r\nconst getRtlScrollBehavior = (\r\n parentElm: HTMLElement,\r\n childElm: HTMLElement\r\n): { i: boolean; n: boolean } => {\r\n const strHidden = 'hidden';\r\n style(parentElm, { overflowX: strHidden, overflowY: strHidden, direction: 'rtl' });\r\n scrollLeft(parentElm, 0);\r\n\r\n const parentOffset = absoluteCoordinates(parentElm);\r\n const childOffset = absoluteCoordinates(childElm);\r\n scrollLeft(parentElm, -999); // https://github.com/KingSora/OverlayScrollbars/issues/187\r\n const childOffsetAfterScroll = absoluteCoordinates(childElm);\r\n return {\r\n /**\r\n * origin direction = determines if the zero scroll position is on the left or right side\r\n * 'i' means 'invert' (i === true means that the axis must be inverted to be correct)\r\n * true = on the left side\r\n * false = on the right side\r\n */\r\n i: parentOffset.x === childOffset.x,\r\n /**\r\n * negative = determines if the maximum scroll is positive or negative\r\n * 'n' means 'negate' (n === true means that the axis must be negated to be correct)\r\n * true = negative\r\n * false = positive\r\n */\r\n n: childOffset.x !== childOffsetAfterScroll.x,\r\n };\r\n};\r\n\r\nconst getFlexboxGlue = (parentElm: HTMLElement, childElm: HTMLElement): boolean => {\r\n const revertFbxGlue = addClass(parentElm, classNameEnvironmentFlexboxGlue);\r\n const minOffsetsizeParent = getBoundingClientRect(parentElm);\r\n const minOffsetsize = getBoundingClientRect(childElm);\r\n const supportsMin = equalBCRWH(minOffsetsize, minOffsetsizeParent, true);\r\n\r\n const revertFbxGlueMax = addClass(parentElm, classNameEnvironmentFlexboxGlueMax);\r\n const maxOffsetsizeParent = getBoundingClientRect(parentElm);\r\n const maxOffsetsize = getBoundingClientRect(childElm);\r\n const supportsMax = equalBCRWH(maxOffsetsize, maxOffsetsizeParent, true);\r\n\r\n revertFbxGlue();\r\n revertFbxGlueMax();\r\n\r\n return supportsMin && supportsMax;\r\n};\r\n\r\nconst createEnvironment = (): InternalEnvironment => {\r\n const { body } = document;\r\n const envDOM = createDOM(`
`);\r\n const envElm = envDOM[0] as HTMLElement;\r\n const envChildElm = envElm.firstChild as HTMLElement;\r\n const [addEvent, , triggerEvent] = createEventListenerHub();\r\n const [updateNativeScrollbarSizeCache, getNativeScrollbarSizeCache] = createCache(\r\n {\r\n _initialValue: getNativeScrollbarSize(body, envElm, envChildElm),\r\n _equal: equalXY,\r\n },\r\n getNativeScrollbarSize.bind(0, body, envElm, envChildElm, true)\r\n );\r\n const [nativeScrollbarsSize] = getNativeScrollbarSizeCache();\r\n const nativeScrollbarsHiding = getNativeScrollbarsHiding(envElm);\r\n const nativeScrollbarsOverlaid = {\r\n x: nativeScrollbarsSize.x === 0,\r\n y: nativeScrollbarsSize.y === 0,\r\n };\r\n const staticDefaultInitialization: Initialization = {\r\n host: null,\r\n padding: !nativeScrollbarsHiding,\r\n viewport: (target) => nativeScrollbarsHiding && target === target.ownerDocument.body && target,\r\n content: false,\r\n scrollbarsSlot: true,\r\n cancel: {\r\n nativeScrollbarsOverlaid: true,\r\n body: null,\r\n },\r\n };\r\n const staticDefaultOptions = assignDeep({}, defaultOptions);\r\n\r\n const env: InternalEnvironment = {\r\n _nativeScrollbarsSize: nativeScrollbarsSize,\r\n _nativeScrollbarsOverlaid: nativeScrollbarsOverlaid,\r\n _nativeScrollbarsHiding: nativeScrollbarsHiding,\r\n _cssCustomProperties: style(envElm, 'zIndex') === '-1',\r\n _rtlScrollBehavior: getRtlScrollBehavior(envElm, envChildElm),\r\n _flexboxGlue: getFlexboxGlue(envElm, envChildElm),\r\n _addListener: (listener) => addEvent('_', listener),\r\n _getDefaultInitialization: assignDeep.bind(\r\n 0,\r\n {} as Initialization,\r\n staticDefaultInitialization\r\n ),\r\n _setDefaultInitialization(newInitializationStrategy) {\r\n assignDeep(staticDefaultInitialization, newInitializationStrategy);\r\n },\r\n _getDefaultOptions: assignDeep.bind(0, {} as Options, staticDefaultOptions),\r\n _setDefaultOptions(newDefaultOptions) {\r\n assignDeep(staticDefaultOptions, newDefaultOptions);\r\n },\r\n _staticDefaultInitialization: assignDeep({}, staticDefaultInitialization),\r\n _staticDefaultOptions: assignDeep({}, staticDefaultOptions),\r\n };\r\n\r\n removeAttr(envElm, 'style');\r\n removeElements(envElm);\r\n\r\n if (!nativeScrollbarsHiding && (!nativeScrollbarsOverlaid.x || !nativeScrollbarsOverlaid.y)) {\r\n let resizeFn: undefined | ReturnType;\r\n window.addEventListener('resize', () => {\r\n const scrollbarsHidingPlugin = getPlugins()[scrollbarsHidingPluginName] as\r\n | ScrollbarsHidingPluginInstance\r\n | undefined;\r\n\r\n resizeFn = resizeFn || (scrollbarsHidingPlugin && scrollbarsHidingPlugin._envWindowZoom());\r\n resizeFn && resizeFn(env, updateNativeScrollbarSizeCache, triggerEvent.bind(0, '_'));\r\n });\r\n }\r\n\r\n return env;\r\n};\r\n\r\nconst getEnvironment = (): InternalEnvironment => {\r\n if (!environmentInstance) {\r\n environmentInstance = createEnvironment();\r\n }\r\n return environmentInstance;\r\n};\r\n\r\nexport { getEnvironment };\r\n","import { isFunction, isHTMLElement, isNull, isUndefined } from 'support';\r\nimport type { StructureInitialization } from 'setups/structureSetup';\r\nimport type { ScrollbarsInitialization } from 'setups/scrollbarsSetup';\r\nimport { getEnvironment } from 'environment';\r\nimport { DeepPartial } from 'typings';\r\nimport { StructureSetupElementsObj } from 'setups/structureSetup/structureSetup.elements';\r\n\r\ntype StaticInitialization = HTMLElement | false | null;\r\ntype DynamicInitialization = HTMLElement | boolean | null;\r\n\r\nexport type InitializationTargetElement = HTMLElement | HTMLTextAreaElement;\r\n\r\nexport type Initialization = Omit &\r\n ScrollbarsInitialization & {\r\n cancel: {\r\n nativeScrollbarsOverlaid: boolean;\r\n body: boolean | null;\r\n };\r\n };\r\n\r\nexport type InitializationTargetObject = DeepPartial &\r\n Pick;\r\n\r\nexport type InitializationTarget = InitializationTargetElement | InitializationTargetObject;\r\n\r\n/**\r\n * Static elements MUST be present.\r\n * With false, null or undefined the element will be generated, otherwise the specified element is taken.\r\n */\r\nexport type StaticInitializationElement =\r\n | ((...args: Args) => StaticInitialization)\r\n | StaticInitialization;\r\n\r\n/**\r\n * Dynamic element CAN be present.\r\n * If its a element the element will be taken as the repsective element.\r\n * With true the element will be generated.\r\n * With false, null or undefined the element won't be generated.\r\n */\r\nexport type DynamicInitializationElement =\r\n | ((...args: Args) => DynamicInitialization)\r\n | DynamicInitialization;\r\n\r\nexport type FallbackInitializtationElement<\r\n InitElm extends StaticInitializationElement | DynamicInitializationElement\r\n> = Extract any> extends (...args: infer P) => any\r\n ? (...args: P) => HTMLElement\r\n : never;\r\n\r\nconst resolveInitialization = (value: any, args: any): T =>\r\n isFunction(value) ? value.apply(0, args) : value;\r\n\r\nconst staticInitializationElement = >(\r\n args: Parameters any>>,\r\n fallbackStaticInitializationElement: FallbackInitializtationElement,\r\n defaultStaticInitializationElementStrategy: T,\r\n staticInitializationElementValue?: T\r\n): HTMLElement => {\r\n const staticInitialization = isUndefined(staticInitializationElementValue)\r\n ? defaultStaticInitializationElementStrategy\r\n : staticInitializationElementValue;\r\n const resolvedInitialization = resolveInitialization(\r\n staticInitialization,\r\n args\r\n );\r\n return resolvedInitialization || fallbackStaticInitializationElement();\r\n};\r\n\r\nconst dynamicInitializationElement = >(\r\n args: Parameters any>>,\r\n fallbackDynamicInitializationElement: FallbackInitializtationElement,\r\n defaultDynamicInitializationElementStrategy: T,\r\n dynamicInitializationElementValue?: T\r\n): HTMLElement | false => {\r\n const dynamicInitialization = isUndefined(dynamicInitializationElementValue)\r\n ? defaultDynamicInitializationElementStrategy\r\n : dynamicInitializationElementValue;\r\n const resolvedInitialization = resolveInitialization(\r\n dynamicInitialization,\r\n args\r\n );\r\n return (\r\n !!resolvedInitialization &&\r\n (isHTMLElement(resolvedInitialization)\r\n ? resolvedInitialization\r\n : fallbackDynamicInitializationElement())\r\n );\r\n};\r\n\r\nconst cancelInitialization = (\r\n cancelInitializationValue: DeepPartial | false | null | undefined,\r\n structureSetupElements: StructureSetupElementsObj\r\n): boolean => {\r\n const { nativeScrollbarsOverlaid, body } = cancelInitializationValue || {};\r\n const { _isBody, _viewportIsTarget } = structureSetupElements;\r\n const { _getDefaultInitialization, _nativeScrollbarsOverlaid } = getEnvironment();\r\n const { nativeScrollbarsOverlaid: defaultNativeScrollbarsOverlaid, body: defaultbody } =\r\n _getDefaultInitialization().cancel;\r\n\r\n const resolvedNativeScrollbarsOverlaid =\r\n nativeScrollbarsOverlaid ?? defaultNativeScrollbarsOverlaid;\r\n const resolvedDocumentScrollingElement = isUndefined(body) ? defaultbody : body;\r\n\r\n const finalNativeScrollbarsOverlaid =\r\n (_nativeScrollbarsOverlaid.x || _nativeScrollbarsOverlaid.y) &&\r\n resolvedNativeScrollbarsOverlaid;\r\n const finalDocumentScrollingElement =\r\n _isBody &&\r\n (isNull(resolvedDocumentScrollingElement)\r\n ? !_viewportIsTarget\r\n : resolvedDocumentScrollingElement);\r\n\r\n return !!finalNativeScrollbarsOverlaid || !!finalDocumentScrollingElement;\r\n};\r\n\r\nexport { staticInitializationElement, dynamicInitializationElement, cancelInitialization };\r\n","import {\r\n isHTMLElement,\r\n appendChildren,\r\n createDiv,\r\n is,\r\n contents,\r\n insertAfter,\r\n addClass,\r\n parent,\r\n indexOf,\r\n removeElements,\r\n removeClass,\r\n hasClass,\r\n push,\r\n runEachAndClear,\r\n insertBefore,\r\n attr,\r\n keys,\r\n removeAttr,\r\n attrClass,\r\n hasAttrClass,\r\n noop,\r\n} from 'support';\r\nimport {\r\n dataAttributeHost,\r\n dataAttributeHostOverflowX,\r\n dataAttributeHostOverflowY,\r\n classNamePadding,\r\n classNameViewport,\r\n classNameContent,\r\n classNameViewportScrollbarHidden,\r\n} from 'classnames';\r\nimport { getEnvironment } from 'environment';\r\nimport { getPlugins, scrollbarsHidingPluginName } from 'plugins';\r\nimport type { ScrollbarsHidingPluginInstance } from 'plugins/scrollbarsHidingPlugin';\r\nimport {\r\n staticInitializationElement as generalStaticInitializationElement,\r\n dynamicInitializationElement as generalDynamicInitializationElement,\r\n} from 'initialization';\r\nimport type {\r\n InitializationTarget,\r\n InitializationTargetElement,\r\n InitializationTargetObject,\r\n} from 'initialization';\r\nimport type {\r\n StructureDynamicInitializationElement,\r\n StructureStaticInitializationElement,\r\n} from 'setups/structureSetup/structureSetup.initialization';\r\n\r\nexport type StructureSetupElements = [\r\n targetObj: StructureSetupElementsObj,\r\n appendElements: () => void,\r\n destroy: () => void\r\n];\r\n\r\nexport interface StructureSetupElementsObj {\r\n _target: InitializationTargetElement;\r\n _host: HTMLElement;\r\n _viewport: HTMLElement;\r\n _padding: HTMLElement | false;\r\n _content: HTMLElement | false;\r\n _viewportArrange: HTMLStyleElement | false | null | undefined;\r\n _scrollOffsetElement: HTMLElement;\r\n _scrollEventElement: HTMLElement | Document;\r\n // ctx ----\r\n _isTextarea: boolean;\r\n _isBody: boolean;\r\n _windowElm: Window;\r\n _documentElm: Document;\r\n _targetIsElm: boolean;\r\n _viewportIsTarget: boolean;\r\n _viewportHasClass: (className: string, attributeClassName: string) => boolean;\r\n _viewportAddRemoveClass: (className: string, attributeClassName: string, add?: boolean) => void;\r\n}\r\n\r\nconst createNewDiv = createDiv.bind(0, '');\r\n\r\nconst unwrap = (elm: HTMLElement | false | null | undefined) => {\r\n appendChildren(parent(elm), contents(elm));\r\n removeElements(elm);\r\n};\r\n\r\nconst addDataAttrHost = (elm: HTMLElement, value: string) => {\r\n attr(elm, dataAttributeHost, value);\r\n return removeAttr.bind(0, elm, dataAttributeHost);\r\n};\r\n\r\nexport const createStructureSetupElements = (\r\n target: InitializationTarget\r\n): StructureSetupElements => {\r\n const env = getEnvironment();\r\n const { _getDefaultInitialization, _nativeScrollbarsHiding } = env;\r\n const scrollbarsHidingPlugin = getPlugins()[scrollbarsHidingPluginName] as\r\n | ScrollbarsHidingPluginInstance\r\n | undefined;\r\n const createUniqueViewportArrangeElement =\r\n scrollbarsHidingPlugin && scrollbarsHidingPlugin._createUniqueViewportArrangeElement;\r\n const {\r\n host: defaultHostInitialization,\r\n viewport: defaultViewportInitialization,\r\n padding: defaultPaddingInitialization,\r\n content: defaultContentInitialization,\r\n } = _getDefaultInitialization();\r\n const targetIsElm = isHTMLElement(target);\r\n const targetStructureInitialization = (targetIsElm ? {} : target) as InitializationTargetObject;\r\n const {\r\n host: hostInitialization,\r\n padding: paddingInitialization,\r\n viewport: viewportInitialization,\r\n content: contentInitialization,\r\n } = targetStructureInitialization;\r\n\r\n const targetElement = targetIsElm ? target : targetStructureInitialization.target;\r\n const isTextarea = is(targetElement, 'textarea');\r\n const ownerDocument = targetElement.ownerDocument;\r\n const isBody = targetElement === ownerDocument.body;\r\n const wnd = ownerDocument.defaultView as Window;\r\n const staticInitializationElement =\r\n generalStaticInitializationElement.bind(0, [\r\n targetElement,\r\n ]);\r\n const dynamicInitializationElement =\r\n generalDynamicInitializationElement.bind(0, [\r\n targetElement,\r\n ]);\r\n const viewportElement = staticInitializationElement(\r\n createNewDiv,\r\n defaultViewportInitialization,\r\n viewportInitialization\r\n );\r\n const viewportIsTarget = viewportElement === targetElement;\r\n const evaluatedTargetObj: StructureSetupElementsObj = {\r\n _target: targetElement,\r\n _host: isTextarea\r\n ? staticInitializationElement(createNewDiv, defaultHostInitialization, hostInitialization)\r\n : (targetElement as HTMLElement),\r\n _viewport: viewportElement,\r\n _padding:\r\n !viewportIsTarget &&\r\n dynamicInitializationElement(\r\n createNewDiv,\r\n defaultPaddingInitialization,\r\n paddingInitialization\r\n ),\r\n _content:\r\n !viewportIsTarget &&\r\n dynamicInitializationElement(\r\n createNewDiv,\r\n defaultContentInitialization,\r\n contentInitialization\r\n ),\r\n _viewportArrange:\r\n !viewportIsTarget &&\r\n !_nativeScrollbarsHiding &&\r\n createUniqueViewportArrangeElement &&\r\n createUniqueViewportArrangeElement(env),\r\n _scrollOffsetElement: isBody ? ownerDocument.documentElement : viewportElement,\r\n _scrollEventElement: isBody ? ownerDocument : viewportElement,\r\n _windowElm: wnd,\r\n _documentElm: ownerDocument,\r\n _isTextarea: isTextarea,\r\n _isBody: isBody,\r\n _targetIsElm: targetIsElm,\r\n _viewportIsTarget: viewportIsTarget,\r\n _viewportHasClass: (className: string, attributeClassName: string) =>\r\n viewportIsTarget\r\n ? hasAttrClass(viewportElement, dataAttributeHost, attributeClassName)\r\n : hasClass(viewportElement, className),\r\n _viewportAddRemoveClass: (className: string, attributeClassName: string, add?: boolean) =>\r\n viewportIsTarget\r\n ? attrClass(viewportElement, dataAttributeHost, attributeClassName, add)\r\n : (add ? addClass : removeClass)(viewportElement, className),\r\n };\r\n const generatedElements = keys(evaluatedTargetObj).reduce((arr, key: string) => {\r\n const value = evaluatedTargetObj[key];\r\n return push(arr, value && !parent(value) ? value : false);\r\n }, [] as HTMLElement[]);\r\n const elementIsGenerated = (elm: HTMLElement | false) =>\r\n elm ? indexOf(generatedElements, elm) > -1 : null;\r\n const { _target, _host, _padding, _viewport, _content, _viewportArrange } = evaluatedTargetObj;\r\n const destroyFns: (() => any)[] = [];\r\n const isTextareaHostGenerated = isTextarea && elementIsGenerated(_host);\r\n const targetContents = isTextarea\r\n ? _target\r\n : contents(\r\n [_content, _viewport, _padding, _host, _target].find(\r\n (elm) => elementIsGenerated(elm) === false\r\n )\r\n );\r\n const contentSlot = _content || _viewport;\r\n const appendElements = () => {\r\n const removeHostDataAttr = addDataAttrHost(_host, viewportIsTarget ? 'viewport' : 'host');\r\n const removePaddingClass = addClass(_padding, classNamePadding);\r\n const removeViewportClass = addClass(_viewport, !viewportIsTarget && classNameViewport);\r\n const removeContentClass = addClass(_content, classNameContent);\r\n const removeHtmlClass = isBody\r\n ? addClass(parent(targetElement), classNameViewportScrollbarHidden)\r\n : noop;\r\n\r\n // only insert host for textarea after target if it was generated\r\n if (isTextareaHostGenerated) {\r\n insertAfter(_target, _host);\r\n\r\n push(destroyFns, () => {\r\n insertAfter(_host, _target);\r\n removeElements(_host);\r\n });\r\n }\r\n\r\n appendChildren(contentSlot, targetContents);\r\n appendChildren(_host, _padding);\r\n appendChildren(_padding || _host, !viewportIsTarget && _viewport);\r\n appendChildren(_viewport, _content);\r\n\r\n push(destroyFns, () => {\r\n removeHtmlClass();\r\n removeHostDataAttr();\r\n removeAttr(_viewport, dataAttributeHostOverflowX);\r\n removeAttr(_viewport, dataAttributeHostOverflowY);\r\n\r\n if (elementIsGenerated(_content)) {\r\n unwrap(_content);\r\n }\r\n if (elementIsGenerated(_viewport)) {\r\n unwrap(_viewport);\r\n }\r\n if (elementIsGenerated(_padding)) {\r\n unwrap(_padding);\r\n }\r\n removePaddingClass();\r\n removeViewportClass();\r\n removeContentClass();\r\n });\r\n\r\n if (_nativeScrollbarsHiding && !viewportIsTarget) {\r\n push(destroyFns, removeClass.bind(0, _viewport, classNameViewportScrollbarHidden));\r\n }\r\n if (_viewportArrange) {\r\n insertBefore(_viewport, _viewportArrange);\r\n push(destroyFns, removeElements.bind(0, _viewportArrange));\r\n }\r\n };\r\n\r\n return [evaluatedTargetObj, appendElements, runEachAndClear.bind(0, destroyFns)];\r\n};\r\n","import { style } from 'support';\r\nimport { getEnvironment } from 'environment';\r\nimport type { CreateStructureUpdateSegment } from 'setups/structureSetup/structureSetup.update';\r\n\r\n/**\r\n * Lifecycle with the responsibility to adjust the trinsic behavior of the content element.\r\n * @param structureUpdateHub\r\n * @returns\r\n */\r\nexport const createTrinsicUpdateSegment: CreateStructureUpdateSegment = (\r\n structureSetupElements,\r\n state\r\n) => {\r\n const { _content } = structureSetupElements;\r\n const [getState] = state;\r\n\r\n return (updateHints) => {\r\n const { _flexboxGlue } = getEnvironment();\r\n const { _heightIntrinsic } = getState();\r\n const { _heightIntrinsicChanged } = updateHints;\r\n const heightIntrinsicChanged = (_content || !_flexboxGlue) && _heightIntrinsicChanged;\r\n\r\n if (heightIntrinsicChanged) {\r\n style(_content, {\r\n height: _heightIntrinsic ? '' : '100%',\r\n });\r\n }\r\n\r\n return {\r\n _sizeChanged: heightIntrinsicChanged,\r\n _contentMutation: heightIntrinsicChanged,\r\n };\r\n };\r\n};\r\n","import { createCache, topRightBottomLeft, equalTRBL, style, assignDeep } from 'support';\r\nimport { StyleObject } from 'typings';\r\nimport { getEnvironment } from 'environment';\r\nimport type { CreateStructureUpdateSegment } from 'setups/structureSetup/structureSetup.update';\r\n\r\n/**\r\n * Lifecycle with the responsibility to adjust the padding styling of the padding and viewport element.\r\n * @param structureUpdateHub\r\n * @returns\r\n */\r\nexport const createPaddingUpdateSegment: CreateStructureUpdateSegment = (\r\n structureSetupElements,\r\n state\r\n) => {\r\n const [getState, setState] = state;\r\n const { _host, _padding, _viewport, _viewportIsTarget: _isSingleElm } = structureSetupElements;\r\n const [updatePaddingCache, currentPaddingCache] = createCache(\r\n {\r\n _equal: equalTRBL,\r\n _initialValue: topRightBottomLeft(),\r\n },\r\n topRightBottomLeft.bind(0, _host, 'padding', '')\r\n );\r\n\r\n return (updateHints, checkOption, force) => {\r\n let [padding, paddingChanged] = currentPaddingCache(force);\r\n const { _nativeScrollbarsHiding: _nativeScrollbarStyling, _flexboxGlue } = getEnvironment();\r\n const { _directionIsRTL } = getState();\r\n const { _sizeChanged, _contentMutation, _directionChanged } = updateHints;\r\n const [paddingAbsolute, paddingAbsoluteChanged] = checkOption('paddingAbsolute');\r\n const contentMutation = !_flexboxGlue && _contentMutation;\r\n\r\n if (_sizeChanged || paddingChanged || contentMutation) {\r\n [padding, paddingChanged] = updatePaddingCache(force);\r\n }\r\n\r\n const paddingStyleChanged =\r\n !_isSingleElm && (paddingAbsoluteChanged || _directionChanged || paddingChanged);\r\n\r\n if (paddingStyleChanged) {\r\n // if there is no padding element and no scrollbar styling, paddingAbsolute isn't supported\r\n const paddingRelative = !paddingAbsolute || (!_padding && !_nativeScrollbarStyling);\r\n const paddingHorizontal = padding.r + padding.l;\r\n const paddingVertical = padding.t + padding.b;\r\n\r\n const paddingStyle: StyleObject = {\r\n marginRight: paddingRelative && !_directionIsRTL ? -paddingHorizontal : 0,\r\n marginBottom: paddingRelative ? -paddingVertical : 0,\r\n marginLeft: paddingRelative && _directionIsRTL ? -paddingHorizontal : 0,\r\n top: paddingRelative ? -padding.t : 0,\r\n right: paddingRelative ? (_directionIsRTL ? -padding.r : 'auto') : 0,\r\n left: paddingRelative ? (_directionIsRTL ? 'auto' : -padding.l) : 0,\r\n width: paddingRelative ? `calc(100% + ${paddingHorizontal}px)` : '',\r\n };\r\n const viewportStyle: StyleObject = {\r\n paddingTop: paddingRelative ? padding.t : 0,\r\n paddingRight: paddingRelative ? padding.r : 0,\r\n paddingBottom: paddingRelative ? padding.b : 0,\r\n paddingLeft: paddingRelative ? padding.l : 0,\r\n };\r\n\r\n // if there is no padding element apply the style to the viewport element instead\r\n style(_padding || _viewport, paddingStyle);\r\n style(_viewport, viewportStyle);\r\n\r\n setState({\r\n _padding: padding,\r\n _paddingAbsolute: !paddingRelative,\r\n _viewportPaddingStyle: _padding\r\n ? viewportStyle\r\n : assignDeep({}, paddingStyle, viewportStyle),\r\n });\r\n }\r\n\r\n return {\r\n _paddingStyleChanged: paddingStyleChanged,\r\n };\r\n };\r\n};\r\n","import {\r\n createCache,\r\n attr,\r\n WH,\r\n XY,\r\n style,\r\n scrollSize,\r\n fractionalSize,\r\n equalWH,\r\n addClass,\r\n removeClass,\r\n clientSize,\r\n equalXY,\r\n attrClass,\r\n noop,\r\n} from 'support';\r\nimport { getEnvironment } from 'environment';\r\nimport {\r\n classNameViewportScrollbarHidden,\r\n classNameOverflowVisible,\r\n dataAttributeHost,\r\n dataAttributeHostOverflowX,\r\n dataAttributeHostOverflowY,\r\n dataValueHostScrollbarHidden,\r\n dataValueHostOverflowVisible,\r\n} from 'classnames';\r\nimport { getPlugins, scrollbarsHidingPluginName } from 'plugins';\r\nimport type {\r\n ScrollbarsHidingPluginInstance,\r\n ArrangeViewport,\r\n UndoArrangeViewport,\r\n} from 'plugins/scrollbarsHidingPlugin';\r\nimport type { StyleObject, OverflowStyle } from 'typings';\r\nimport type { OverflowBehavior } from 'options';\r\nimport type { CreateStructureUpdateSegment } from 'setups/structureSetup/structureSetup.update';\r\n\r\nexport interface ViewportOverflowState {\r\n _scrollbarsHideOffset: XY;\r\n _scrollbarsHideOffsetArrange: XY;\r\n _overflowScroll: XY;\r\n _overflowStyle: XY;\r\n}\r\n\r\nexport type GetViewportOverflowState = (\r\n showNativeOverlaidScrollbars: boolean,\r\n viewportStyleObj?: StyleObject\r\n) => ViewportOverflowState;\r\n\r\nexport type HideNativeScrollbars = (\r\n viewportOverflowState: ViewportOverflowState,\r\n directionIsRTL: boolean,\r\n viewportArrange: boolean,\r\n viewportStyleObj: StyleObject\r\n) => void;\r\n\r\nconst { max } = Math;\r\nconst max0 = max.bind(0, 0);\r\nconst strVisible = 'visible';\r\nconst strHidden = 'hidden';\r\nconst overlaidScrollbarsHideOffset = 42;\r\nconst whCacheOptions = {\r\n _equal: equalWH,\r\n _initialValue: { w: 0, h: 0 },\r\n};\r\nconst xyCacheOptions = {\r\n _equal: equalXY,\r\n _initialValue: { x: strHidden, y: strHidden } as XY,\r\n};\r\n\r\nconst getOverflowAmount = (viewportScrollSize: WH, viewportClientSize: WH) => {\r\n const tollerance = window.devicePixelRatio % 1 !== 0 ? 1 : 0;\r\n const amount = {\r\n w: max0(viewportScrollSize.w - viewportClientSize.w),\r\n h: max0(viewportScrollSize.h - viewportClientSize.h),\r\n };\r\n\r\n return {\r\n w: amount.w > tollerance ? amount.w : 0,\r\n h: amount.h > tollerance ? amount.h : 0,\r\n };\r\n};\r\n\r\nconst conditionalClass = (\r\n elm: Element | false | null | undefined,\r\n classNames: string,\r\n add: boolean\r\n) => (add ? addClass(elm, classNames) : removeClass(elm, classNames));\r\n\r\nconst overflowIsVisible = (overflowBehavior: string) => overflowBehavior.indexOf(strVisible) === 0;\r\n\r\n/**\r\n * Lifecycle with the responsibility to set the correct overflow and scrollbar hiding styles of the viewport element.\r\n * @param structureUpdateHub\r\n * @returns\r\n */\r\nexport const createOverflowUpdateSegment: CreateStructureUpdateSegment = (\r\n structureSetupElements,\r\n state\r\n) => {\r\n const [getState, setState] = state;\r\n const {\r\n _host,\r\n _padding,\r\n _viewport,\r\n _viewportArrange,\r\n _viewportIsTarget,\r\n _viewportAddRemoveClass,\r\n } = structureSetupElements;\r\n const {\r\n _nativeScrollbarsSize,\r\n _flexboxGlue,\r\n _nativeScrollbarsHiding,\r\n _nativeScrollbarsOverlaid,\r\n } = getEnvironment();\r\n const scrollbarsHidingPlugin = getPlugins()[scrollbarsHidingPluginName] as\r\n | ScrollbarsHidingPluginInstance\r\n | undefined;\r\n const doViewportArrange =\r\n !_viewportIsTarget &&\r\n !_nativeScrollbarsHiding &&\r\n (_nativeScrollbarsOverlaid.x || _nativeScrollbarsOverlaid.y);\r\n\r\n const [updateSizeFraction, getCurrentSizeFraction] = createCache>(\r\n whCacheOptions,\r\n fractionalSize.bind(0, _viewport)\r\n );\r\n\r\n const [updateViewportScrollSizeCache, getCurrentViewportScrollSizeCache] = createCache<\r\n WH\r\n >(whCacheOptions, scrollSize.bind(0, _viewport));\r\n\r\n const [updateOverflowAmountCache, getCurrentOverflowAmountCache] =\r\n createCache>(whCacheOptions);\r\n\r\n const [updateOverflowEdge, getCurrentOverflowEdgeCache] = createCache>(whCacheOptions);\r\n\r\n const [updateOverflowStyleCache] = createCache>(xyCacheOptions);\r\n\r\n /**\r\n * Applies a fixed height to the viewport so it can't overflow or underflow the host element.\r\n * @param viewportOverflowState The current overflow state.\r\n * @param heightIntrinsic Whether the host height is intrinsic or not.\r\n */\r\n const fixFlexboxGlue = (\r\n viewportOverflowState: ViewportOverflowState,\r\n heightIntrinsic: boolean\r\n ) => {\r\n style(_viewport, {\r\n height: '',\r\n });\r\n\r\n if (heightIntrinsic) {\r\n const { _paddingAbsolute, _padding: padding } = getState();\r\n const { _overflowScroll, _scrollbarsHideOffset } = viewportOverflowState;\r\n const fSize = fractionalSize(_host);\r\n const hostClientSize = clientSize(_host);\r\n\r\n // padding subtraction is only needed if padding is absolute or if viewport is content-box\r\n const isContentBox = style(_viewport, 'boxSizing') === 'content-box';\r\n const paddingVertical = _paddingAbsolute || isContentBox ? padding.b + padding.t : 0;\r\n const subtractXScrollbar = !(_nativeScrollbarsOverlaid.x && isContentBox);\r\n\r\n style(_viewport, {\r\n height:\r\n hostClientSize.h +\r\n fSize.h +\r\n (_overflowScroll.x && subtractXScrollbar ? _scrollbarsHideOffset.x : 0) -\r\n paddingVertical,\r\n });\r\n }\r\n };\r\n\r\n /**\r\n * Gets the current overflow state of the viewport.\r\n * @param showNativeOverlaidScrollbars Whether native overlaid scrollbars are shown instead of hidden.\r\n * @param viewportStyleObj The viewport style object where the overflow scroll property can be read of, or undefined if shall be determined.\r\n * @returns A object which contains informations about the current overflow state.\r\n */\r\n const getViewportOverflowState: GetViewportOverflowState = (\r\n showNativeOverlaidScrollbars,\r\n viewportStyleObj?\r\n ) => {\r\n const arrangeHideOffset =\r\n !_nativeScrollbarsHiding && !showNativeOverlaidScrollbars ? overlaidScrollbarsHideOffset : 0;\r\n const getStatePerAxis = (\r\n styleKey: string,\r\n isOverlaid: boolean,\r\n nativeScrollbarSize: number\r\n ) => {\r\n const overflowStyle = style(_viewport, styleKey);\r\n // can't do something like \"viewportStyleObj && viewportStyleObj[styleKey] || overflowStyle\" here!\r\n const objectPrefferedOverflowStyle = viewportStyleObj\r\n ? viewportStyleObj[styleKey]\r\n : overflowStyle;\r\n const overflowScroll = objectPrefferedOverflowStyle === 'scroll';\r\n const nonScrollbarStylingHideOffset = isOverlaid ? arrangeHideOffset : nativeScrollbarSize;\r\n const scrollbarsHideOffset =\r\n overflowScroll && !_nativeScrollbarsHiding ? nonScrollbarStylingHideOffset : 0;\r\n const scrollbarsHideOffsetArrange = isOverlaid && !!arrangeHideOffset;\r\n\r\n return [overflowStyle, overflowScroll, scrollbarsHideOffset, scrollbarsHideOffsetArrange] as [\r\n overflowStyle: OverflowStyle,\r\n overflowScroll: boolean,\r\n scrollbarsHideOffset: number,\r\n scrollbarsHideOffsetArrange: boolean\r\n ];\r\n };\r\n\r\n const [xOverflowStyle, xOverflowScroll, xScrollbarsHideOffset, xScrollbarsHideOffsetArrange] =\r\n getStatePerAxis('overflowX', _nativeScrollbarsOverlaid.x, _nativeScrollbarsSize.x);\r\n const [yOverflowStyle, yOverflowScroll, yScrollbarsHideOffset, yScrollbarsHideOffsetArrange] =\r\n getStatePerAxis('overflowY', _nativeScrollbarsOverlaid.y, _nativeScrollbarsSize.y);\r\n\r\n return {\r\n _overflowStyle: {\r\n x: xOverflowStyle,\r\n y: yOverflowStyle,\r\n },\r\n _overflowScroll: {\r\n x: xOverflowScroll,\r\n y: yOverflowScroll,\r\n },\r\n _scrollbarsHideOffset: {\r\n x: xScrollbarsHideOffset,\r\n y: yScrollbarsHideOffset,\r\n },\r\n _scrollbarsHideOffsetArrange: {\r\n x: xScrollbarsHideOffsetArrange,\r\n y: yScrollbarsHideOffsetArrange,\r\n },\r\n };\r\n };\r\n\r\n /**\r\n * Sets the overflow property of the viewport and calculates the a overflow state according to the new parameters.\r\n * @param showNativeOverlaidScrollbars Whether to show natively overlaid scrollbars.\r\n * @param overflowAmount The overflow amount.\r\n * @param overflow The overflow behavior according to the options.\r\n * @param viewportStyleObj The viewport style object to which the overflow style shall be applied.\r\n * @returns A object which represents the newly set overflow state.\r\n */\r\n const setViewportOverflowState = (\r\n showNativeOverlaidScrollbars: boolean,\r\n hasOverflow: XY,\r\n overflowOption: XY,\r\n viewportStyleObj: StyleObject\r\n ): ViewportOverflowState => {\r\n const setAxisOverflowStyle = (behavior: OverflowBehavior, hasOverflowAxis: boolean) => {\r\n const overflowVisible = overflowIsVisible(behavior);\r\n const overflowVisibleBehavior =\r\n (hasOverflowAxis && overflowVisible && behavior.replace(`${strVisible}-`, '')) || '';\r\n return [\r\n hasOverflowAxis && !overflowVisible ? behavior : '',\r\n overflowIsVisible(overflowVisibleBehavior) ? 'hidden' : overflowVisibleBehavior,\r\n ];\r\n };\r\n\r\n const [overflowX, visibleBehaviorX] = setAxisOverflowStyle(overflowOption.x, hasOverflow.x);\r\n const [overflowY, visibleBehaviorY] = setAxisOverflowStyle(overflowOption.y, hasOverflow.y);\r\n\r\n viewportStyleObj.overflowX = visibleBehaviorX && overflowY ? visibleBehaviorX : overflowX;\r\n viewportStyleObj.overflowY = visibleBehaviorY && overflowX ? visibleBehaviorY : overflowY;\r\n\r\n return getViewportOverflowState(showNativeOverlaidScrollbars, viewportStyleObj);\r\n };\r\n\r\n /**\r\n * Hides the native scrollbars according to the passed parameters.\r\n * @param viewportOverflowState The viewport overflow state.\r\n * @param directionIsRTL Whether the direction is RTL or not.\r\n * @param viewportArrange Whether special styles related to the viewport arrange strategy shall be applied.\r\n * @param viewportStyleObj The viewport style object to which the needed styles shall be applied.\r\n */\r\n const hideNativeScrollbars: HideNativeScrollbars = (\r\n viewportOverflowState,\r\n directionIsRTL,\r\n viewportArrange,\r\n viewportStyleObj\r\n ) => {\r\n const { _scrollbarsHideOffset, _scrollbarsHideOffsetArrange } = viewportOverflowState;\r\n const { x: arrangeX, y: arrangeY } = _scrollbarsHideOffsetArrange;\r\n const { x: hideOffsetX, y: hideOffsetY } = _scrollbarsHideOffset;\r\n const { _viewportPaddingStyle: viewportPaddingStyle } = getState();\r\n const horizontalMarginKey: keyof StyleObject = directionIsRTL ? 'marginLeft' : 'marginRight';\r\n const viewportHorizontalPaddingKey: keyof StyleObject = directionIsRTL\r\n ? 'paddingLeft'\r\n : 'paddingRight';\r\n const horizontalMarginValue = viewportPaddingStyle[horizontalMarginKey] as number;\r\n const verticalMarginValue = viewportPaddingStyle.marginBottom as number;\r\n const horizontalPaddingValue = viewportPaddingStyle[viewportHorizontalPaddingKey] as number;\r\n const verticalPaddingValue = viewportPaddingStyle.paddingBottom as number;\r\n\r\n // horizontal\r\n viewportStyleObj.width = `calc(100% + ${hideOffsetY + horizontalMarginValue * -1}px)`;\r\n viewportStyleObj[horizontalMarginKey] = -hideOffsetY + horizontalMarginValue;\r\n\r\n // vertical\r\n viewportStyleObj.marginBottom = -hideOffsetX + verticalMarginValue;\r\n\r\n // viewport arrange additional styles\r\n if (viewportArrange) {\r\n viewportStyleObj[viewportHorizontalPaddingKey] =\r\n horizontalPaddingValue + (arrangeY ? hideOffsetY : 0);\r\n viewportStyleObj.paddingBottom = verticalPaddingValue + (arrangeX ? hideOffsetX : 0);\r\n }\r\n };\r\n\r\n const [arrangeViewport, undoViewportArrange] = scrollbarsHidingPlugin\r\n ? scrollbarsHidingPlugin._overflowUpdateSegment(\r\n doViewportArrange,\r\n _flexboxGlue,\r\n _viewport,\r\n _viewportArrange,\r\n getState,\r\n getViewportOverflowState,\r\n hideNativeScrollbars\r\n )\r\n : [(() => doViewportArrange) as ArrangeViewport, (() => [noop]) as UndoArrangeViewport];\r\n\r\n return (updateHints, checkOption, force) => {\r\n const {\r\n _sizeChanged,\r\n _hostMutation,\r\n _contentMutation,\r\n _paddingStyleChanged,\r\n _heightIntrinsicChanged,\r\n _directionChanged,\r\n } = updateHints;\r\n const { _heightIntrinsic, _directionIsRTL } = getState();\r\n const [showNativeOverlaidScrollbarsOption, showNativeOverlaidScrollbarsChanged] =\r\n checkOption('showNativeOverlaidScrollbars');\r\n const [overflow, overflowChanged] = checkOption>('overflow');\r\n\r\n const showNativeOverlaidScrollbars =\r\n showNativeOverlaidScrollbarsOption &&\r\n _nativeScrollbarsOverlaid.x &&\r\n _nativeScrollbarsOverlaid.y;\r\n const adjustFlexboxGlue =\r\n !_viewportIsTarget &&\r\n !_flexboxGlue &&\r\n (_sizeChanged ||\r\n _contentMutation ||\r\n _hostMutation ||\r\n showNativeOverlaidScrollbarsChanged ||\r\n _heightIntrinsicChanged);\r\n const overflowXVisible = overflowIsVisible(overflow.x);\r\n const overflowYVisible = overflowIsVisible(overflow.y);\r\n const overflowVisible = overflowXVisible || overflowYVisible;\r\n\r\n let sizeFractionCache = getCurrentSizeFraction(force);\r\n let viewportScrollSizeCache = getCurrentViewportScrollSizeCache(force);\r\n let overflowAmuntCache = getCurrentOverflowAmountCache(force);\r\n let overflowEdgeCache = getCurrentOverflowEdgeCache(force);\r\n\r\n let preMeasureViewportOverflowState: ViewportOverflowState | undefined;\r\n\r\n if (showNativeOverlaidScrollbarsChanged && _nativeScrollbarsHiding) {\r\n _viewportAddRemoveClass(\r\n classNameViewportScrollbarHidden,\r\n dataValueHostScrollbarHidden,\r\n !showNativeOverlaidScrollbars\r\n );\r\n }\r\n\r\n if (adjustFlexboxGlue) {\r\n preMeasureViewportOverflowState = getViewportOverflowState(showNativeOverlaidScrollbars);\r\n fixFlexboxGlue(preMeasureViewportOverflowState, _heightIntrinsic);\r\n }\r\n\r\n if (\r\n _sizeChanged ||\r\n _paddingStyleChanged ||\r\n _contentMutation ||\r\n _directionChanged ||\r\n showNativeOverlaidScrollbarsChanged\r\n ) {\r\n if (overflowVisible) {\r\n _viewportAddRemoveClass(classNameOverflowVisible, dataValueHostOverflowVisible, false);\r\n }\r\n\r\n const [redoViewportArrange, undoViewportArrangeOverflowState] = undoViewportArrange(\r\n showNativeOverlaidScrollbars,\r\n _directionIsRTL,\r\n preMeasureViewportOverflowState\r\n );\r\n const [sizeFraction, sizeFractionChanged] = (sizeFractionCache = updateSizeFraction(force));\r\n const [viewportScrollSize, viewportScrollSizeChanged] = (viewportScrollSizeCache =\r\n updateViewportScrollSizeCache(force));\r\n const viewportclientSize = clientSize(_viewport);\r\n let arrangedViewportScrollSize = viewportScrollSize;\r\n let arrangedViewportClientSize = viewportclientSize;\r\n\r\n redoViewportArrange();\r\n\r\n // if re measure is required (only required if content arrange strategy is used)\r\n if (\r\n (viewportScrollSizeChanged || sizeFractionChanged || showNativeOverlaidScrollbarsChanged) &&\r\n undoViewportArrangeOverflowState &&\r\n !showNativeOverlaidScrollbars &&\r\n arrangeViewport(\r\n undoViewportArrangeOverflowState,\r\n viewportScrollSize,\r\n sizeFraction,\r\n _directionIsRTL\r\n )\r\n ) {\r\n arrangedViewportClientSize = clientSize(_viewport);\r\n arrangedViewportScrollSize = scrollSize(_viewport);\r\n }\r\n\r\n const overflowAmountScrollSize = {\r\n w: max0(max(viewportScrollSize.w, arrangedViewportScrollSize.w) + sizeFraction.w),\r\n h: max0(max(viewportScrollSize.h, arrangedViewportScrollSize.h) + sizeFraction.h),\r\n };\r\n const overflowAmountClientSize = {\r\n w: max0(\r\n arrangedViewportClientSize.w +\r\n max0(viewportclientSize.w - viewportScrollSize.w) +\r\n sizeFraction.w\r\n ),\r\n h: max0(\r\n arrangedViewportClientSize.h +\r\n max0(viewportclientSize.h - viewportScrollSize.h) +\r\n sizeFraction.h\r\n ),\r\n };\r\n\r\n overflowEdgeCache = updateOverflowEdge(overflowAmountClientSize);\r\n overflowAmuntCache = updateOverflowAmountCache(\r\n getOverflowAmount(overflowAmountScrollSize, overflowAmountClientSize),\r\n force\r\n );\r\n }\r\n\r\n const [overflowEdge, overflowEdgeChanged] = overflowEdgeCache;\r\n const [overflowAmount, overflowAmountChanged] = overflowAmuntCache;\r\n const [viewportScrollSize, viewportScrollSizeChanged] = viewportScrollSizeCache;\r\n const [sizeFraction, sizeFractionChanged] = sizeFractionCache;\r\n const hasOverflow = {\r\n x: overflowAmount.w > 0,\r\n y: overflowAmount.h > 0,\r\n };\r\n const removeClipping =\r\n (overflowXVisible && overflowYVisible && (hasOverflow.x || hasOverflow.y)) ||\r\n (overflowXVisible && hasOverflow.x && !hasOverflow.y) ||\r\n (overflowYVisible && hasOverflow.y && !hasOverflow.x);\r\n\r\n if (\r\n _paddingStyleChanged ||\r\n _directionChanged ||\r\n sizeFractionChanged ||\r\n viewportScrollSizeChanged ||\r\n overflowEdgeChanged ||\r\n overflowAmountChanged ||\r\n overflowChanged ||\r\n showNativeOverlaidScrollbarsChanged ||\r\n adjustFlexboxGlue\r\n ) {\r\n const viewportStyle: StyleObject = {\r\n marginRight: 0,\r\n marginBottom: 0,\r\n marginLeft: 0,\r\n width: '',\r\n overflowY: '',\r\n overflowX: '',\r\n };\r\n const viewportOverflowState = setViewportOverflowState(\r\n showNativeOverlaidScrollbars,\r\n hasOverflow,\r\n overflow,\r\n viewportStyle\r\n );\r\n const viewportArranged = arrangeViewport(\r\n viewportOverflowState,\r\n viewportScrollSize,\r\n sizeFraction,\r\n _directionIsRTL\r\n );\r\n\r\n if (!_viewportIsTarget) {\r\n hideNativeScrollbars(\r\n viewportOverflowState,\r\n _directionIsRTL,\r\n viewportArranged,\r\n viewportStyle\r\n );\r\n }\r\n\r\n if (adjustFlexboxGlue) {\r\n fixFlexboxGlue(viewportOverflowState, _heightIntrinsic);\r\n }\r\n\r\n if (_viewportIsTarget) {\r\n attr(_host, dataAttributeHostOverflowX, viewportStyle.overflowX as string);\r\n attr(_host, dataAttributeHostOverflowY, viewportStyle.overflowY as string);\r\n } else {\r\n style(_viewport, viewportStyle);\r\n }\r\n }\r\n\r\n attrClass(_host, dataAttributeHost, dataValueHostOverflowVisible, removeClipping);\r\n conditionalClass(_padding, classNameOverflowVisible, removeClipping);\r\n !_viewportIsTarget && conditionalClass(_viewport, classNameOverflowVisible, overflowVisible);\r\n\r\n const [overflowStyle, overflowStyleChanged] = updateOverflowStyleCache(\r\n getViewportOverflowState(showNativeOverlaidScrollbars)._overflowStyle\r\n );\r\n\r\n setState({\r\n _overflowStyle: overflowStyle,\r\n _overflowEdge: {\r\n x: overflowEdge.w,\r\n y: overflowEdge.h,\r\n },\r\n _overflowAmount: {\r\n x: overflowAmount.w,\r\n y: overflowAmount.h,\r\n },\r\n _hasOverflow: hasOverflow,\r\n });\r\n\r\n return {\r\n _overflowStyleChanged: overflowStyleChanged,\r\n _overflowEdgeChanged: overflowEdgeChanged,\r\n _overflowAmountChanged: overflowAmountChanged,\r\n };\r\n };\r\n};\r\n","import { each, scrollLeft, scrollTop, assignDeep, keys } from 'support';\r\nimport { getEnvironment } from 'environment';\r\nimport { dataValueHostUpdating } from 'classnames';\r\nimport {\r\n createTrinsicUpdateSegment,\r\n createPaddingUpdateSegment,\r\n createOverflowUpdateSegment,\r\n} from 'setups/structureSetup/updateSegments';\r\nimport type { SetupState, SetupUpdateSegment, SetupUpdateCheckOption } from 'setups';\r\nimport type { StructureSetupState } from 'setups/structureSetup';\r\nimport type { StructureSetupElementsObj } from 'setups/structureSetup/structureSetup.elements';\r\n\r\nexport type CreateStructureUpdateSegment = (\r\n structureSetupElements: StructureSetupElementsObj,\r\n state: SetupState\r\n) => StructureSetupUpdateSegment;\r\n\r\nexport type StructureSetupUpdateSegment = SetupUpdateSegment;\r\n\r\nexport type StructureSetupUpdate = (\r\n checkOption: SetupUpdateCheckOption,\r\n updateHints: Partial,\r\n force?: boolean\r\n) => StructureSetupUpdateHints;\r\n\r\nexport interface StructureSetupUpdateHints {\r\n _sizeChanged: boolean;\r\n _directionChanged: boolean;\r\n _heightIntrinsicChanged: boolean;\r\n _overflowEdgeChanged: boolean;\r\n _overflowAmountChanged: boolean;\r\n _overflowStyleChanged: boolean;\r\n _paddingStyleChanged: boolean;\r\n _hostMutation: boolean;\r\n _contentMutation: boolean;\r\n}\r\n\r\nconst prepareUpdateHints = (\r\n leading: Required,\r\n adaptive?: Partial,\r\n force?: boolean\r\n): Required => {\r\n const result = {};\r\n const finalAdaptive = adaptive || {};\r\n const objKeys = keys(leading).concat(keys(finalAdaptive));\r\n\r\n each(objKeys, (key) => {\r\n const leadingValue = leading[key];\r\n const adaptiveValue = finalAdaptive[key];\r\n result[key] = !!(force || leadingValue || adaptiveValue);\r\n });\r\n\r\n return result as Required;\r\n};\r\n\r\nexport const createStructureSetupUpdate = (\r\n structureSetupElements: StructureSetupElementsObj,\r\n state: SetupState\r\n): StructureSetupUpdate => {\r\n const { _viewport, _viewportAddRemoveClass } = structureSetupElements;\r\n const { _nativeScrollbarsHiding, _nativeScrollbarsOverlaid, _flexboxGlue } = getEnvironment();\r\n const doViewportArrange =\r\n !_nativeScrollbarsHiding && (_nativeScrollbarsOverlaid.x || _nativeScrollbarsOverlaid.y);\r\n\r\n const updateSegments: StructureSetupUpdateSegment[] = [\r\n createTrinsicUpdateSegment(structureSetupElements, state),\r\n createPaddingUpdateSegment(structureSetupElements, state),\r\n createOverflowUpdateSegment(structureSetupElements, state),\r\n ];\r\n\r\n return (\r\n checkOption: SetupUpdateCheckOption,\r\n updateHints: Partial,\r\n force?: boolean\r\n ) => {\r\n const initialUpdateHints = prepareUpdateHints(\r\n assignDeep(\r\n {\r\n _sizeChanged: false,\r\n _paddingStyleChanged: false,\r\n _directionChanged: false,\r\n _heightIntrinsicChanged: false,\r\n _overflowEdgeChanged: false,\r\n _overflowAmountChanged: false,\r\n _overflowStyleChanged: false,\r\n _hostMutation: false,\r\n _contentMutation: false,\r\n },\r\n updateHints\r\n ),\r\n {},\r\n force\r\n );\r\n const adjustScrollOffset = doViewportArrange || !_flexboxGlue;\r\n const scrollOffsetX = adjustScrollOffset && scrollLeft(_viewport);\r\n const scrollOffsetY = adjustScrollOffset && scrollTop(_viewport);\r\n _viewportAddRemoveClass('', dataValueHostUpdating, true);\r\n\r\n let adaptivedUpdateHints: Required = initialUpdateHints;\r\n each(updateSegments, (updateSegment) => {\r\n adaptivedUpdateHints = prepareUpdateHints(\r\n adaptivedUpdateHints,\r\n updateSegment(adaptivedUpdateHints, checkOption, !!force) || {},\r\n force\r\n );\r\n });\r\n\r\n scrollLeft(_viewport, scrollOffsetX);\r\n scrollTop(_viewport, scrollOffsetY);\r\n _viewportAddRemoveClass('', dataValueHostUpdating);\r\n\r\n return adaptivedUpdateHints;\r\n };\r\n};\r\n","import {\r\n CacheValues,\r\n createCache,\r\n createDOM,\r\n scrollLeft,\r\n scrollTop,\r\n runEachAndClear,\r\n removeElements,\r\n on,\r\n addClass,\r\n push,\r\n ResizeObserverConstructor,\r\n isArray,\r\n isBoolean,\r\n removeClass,\r\n isObject,\r\n stopPropagation,\r\n appendChildren,\r\n directionIsRTL,\r\n} from 'support';\r\nimport { getEnvironment } from 'environment';\r\nimport {\r\n classNameSizeObserver,\r\n classNameSizeObserverAppear,\r\n classNameSizeObserverListener,\r\n} from 'classnames';\r\nimport { getPlugins, SizeObserverPluginInstance, sizeObserverPluginName } from 'plugins';\r\n\r\nexport interface SizeObserverOptions {\r\n _direction?: boolean;\r\n _appear?: boolean;\r\n}\r\n\r\nexport interface SizeObserverCallbackParams {\r\n _sizeChanged: boolean;\r\n _directionIsRTLCache?: CacheValues;\r\n _appear?: boolean;\r\n}\r\n\r\nexport type SizeObserver = [destroy: () => void, append: () => void];\r\n\r\nconst scrollAmount = 3333333;\r\nconst domRectHasDimensions = (rect?: DOMRectReadOnly) => rect && (rect.height || rect.width);\r\n\r\n/**\r\n * Creates a size observer which observes any size, padding, border, margin and box-sizing changes of the target element. Depending on the options also direction and appear can be observed.\r\n * @param target The target element which shall be observed.\r\n * @param onSizeChangedCallback The callback which gets called after a size change was detected.\r\n * @param options The options for size detection, whether to observe also direction and appear.\r\n * @returns A object which represents the instance of the size observer.\r\n */\r\nexport const createSizeObserver = (\r\n target: HTMLElement,\r\n onSizeChangedCallback: (params: SizeObserverCallbackParams) => any,\r\n options?: SizeObserverOptions\r\n): SizeObserver => {\r\n const { _direction: observeDirectionChange = false, _appear: observeAppearChange = false } =\r\n options || {};\r\n const sizeObserverPlugin = getPlugins()[sizeObserverPluginName] as\r\n | SizeObserverPluginInstance\r\n | undefined;\r\n const { _rtlScrollBehavior: rtlScrollBehavior } = getEnvironment();\r\n const baseElements = createDOM(\r\n `
`\r\n );\r\n const sizeObserver = baseElements[0] as HTMLElement;\r\n const listenerElement = sizeObserver.firstChild as HTMLElement;\r\n const getIsDirectionRTL = directionIsRTL.bind(0, target);\r\n const [updateResizeObserverContentRectCache] = createCache({\r\n _initialValue: undefined,\r\n _alwaysUpdateValues: true,\r\n _equal: (currVal, newVal) =>\r\n !(\r\n !currVal || // if no initial value\r\n // if from display: none to display: block\r\n (!domRectHasDimensions(currVal) && domRectHasDimensions(newVal))\r\n ),\r\n });\r\n const onSizeChangedCallbackProxy = (\r\n sizeChangedContext?: CacheValues | ResizeObserverEntry[] | Event | boolean\r\n ) => {\r\n const isResizeObserverCall =\r\n isArray(sizeChangedContext) &&\r\n sizeChangedContext.length > 0 &&\r\n isObject(sizeChangedContext[0]);\r\n\r\n const hasDirectionCache =\r\n !isResizeObserverCall && isBoolean((sizeChangedContext as CacheValues)[0]);\r\n\r\n let skip = false;\r\n let appear: boolean | number | undefined = false;\r\n let doDirectionScroll = true; // always true if sizeChangedContext is Event (appear callback or RO. Polyfill)\r\n\r\n // if triggered from RO.\r\n if (isResizeObserverCall) {\r\n const [currRContentRect, , prevContentRect] = updateResizeObserverContentRectCache(\r\n (sizeChangedContext as ResizeObserverEntry[]).pop()!.contentRect\r\n );\r\n const hasDimensions = domRectHasDimensions(currRContentRect);\r\n const hadDimensions = domRectHasDimensions(prevContentRect);\r\n skip = !prevContentRect || !hasDimensions; // skip on initial RO. call or if display is none\r\n appear = !hadDimensions && hasDimensions;\r\n\r\n doDirectionScroll = !skip; // direction scroll when not skipping\r\n }\r\n // else if its triggered with DirectionCache\r\n else if (hasDirectionCache) {\r\n [, doDirectionScroll] = sizeChangedContext as CacheValues; // direction scroll when DirectionCache changed, false otherwise\r\n }\r\n // else if it triggered with appear from polyfill\r\n else {\r\n appear = sizeChangedContext === true;\r\n }\r\n\r\n if (observeDirectionChange && doDirectionScroll) {\r\n const rtl = hasDirectionCache\r\n ? (sizeChangedContext as CacheValues)[0]\r\n : directionIsRTL(sizeObserver);\r\n scrollLeft(\r\n sizeObserver,\r\n rtl\r\n ? rtlScrollBehavior.n\r\n ? -scrollAmount\r\n : rtlScrollBehavior.i\r\n ? 0\r\n : scrollAmount\r\n : scrollAmount\r\n );\r\n scrollTop(sizeObserver, scrollAmount);\r\n }\r\n\r\n if (!skip) {\r\n onSizeChangedCallback({\r\n _sizeChanged: !hasDirectionCache,\r\n _directionIsRTLCache: hasDirectionCache\r\n ? (sizeChangedContext as CacheValues)\r\n : undefined,\r\n _appear: !!appear,\r\n });\r\n }\r\n };\r\n const offListeners: (() => void)[] = [];\r\n let appearCallback: ((...args: any) => any) | false = observeAppearChange\r\n ? onSizeChangedCallbackProxy\r\n : false;\r\n\r\n return [\r\n () => {\r\n runEachAndClear(offListeners);\r\n removeElements(sizeObserver);\r\n },\r\n () => {\r\n if (ResizeObserverConstructor) {\r\n const resizeObserverInstance = new ResizeObserverConstructor(onSizeChangedCallbackProxy);\r\n resizeObserverInstance.observe(listenerElement);\r\n push(offListeners, () => {\r\n resizeObserverInstance.disconnect();\r\n });\r\n } else if (sizeObserverPlugin) {\r\n const [pluginAppearCallback, pluginOffListeners] = sizeObserverPlugin._(\r\n listenerElement,\r\n onSizeChangedCallbackProxy,\r\n observeAppearChange\r\n );\r\n appearCallback = pluginAppearCallback;\r\n push(offListeners, pluginOffListeners);\r\n }\r\n\r\n if (observeDirectionChange) {\r\n const [updateDirectionIsRTLCache] = createCache(\r\n {\r\n _initialValue: !getIsDirectionRTL(), // invert current value to trigger initial change\r\n },\r\n getIsDirectionRTL\r\n );\r\n\r\n push(\r\n offListeners,\r\n on(sizeObserver, 'scroll', (event: Event) => {\r\n const directionIsRTLCacheValues = updateDirectionIsRTLCache();\r\n const [directionIsRTLCache, directionIsRTLCacheChanged] = directionIsRTLCacheValues;\r\n\r\n if (directionIsRTLCacheChanged) {\r\n removeClass(listenerElement, 'ltr rtl');\r\n if (directionIsRTLCache) {\r\n addClass(listenerElement, 'rtl');\r\n } else {\r\n addClass(listenerElement, 'ltr');\r\n }\r\n onSizeChangedCallbackProxy(directionIsRTLCacheValues);\r\n }\r\n\r\n stopPropagation(event);\r\n })\r\n );\r\n }\r\n\r\n // appearCallback is always needed on scroll-observer strategy to reset it\r\n if (appearCallback) {\r\n addClass(sizeObserver, classNameSizeObserverAppear);\r\n push(\r\n offListeners,\r\n on(sizeObserver, 'animationstart', appearCallback, {\r\n // Fire only once for \"CSS is ready\" event if ResizeObserver strategy is used\r\n _once: !!ResizeObserverConstructor,\r\n })\r\n );\r\n }\r\n\r\n appendChildren(target, sizeObserver);\r\n },\r\n ];\r\n};\r\n","import {\r\n WH,\r\n CacheValues,\r\n createDiv,\r\n offsetSize,\r\n runEachAndClear,\r\n removeElements,\r\n createCache,\r\n push,\r\n IntersectionObserverConstructor,\r\n appendChildren,\r\n} from 'support';\r\nimport { createSizeObserver } from 'observers/sizeObserver';\r\nimport { classNameTrinsicObserver } from 'classnames';\r\n\r\nexport type TrinsicObserverCallback = (heightIntrinsic: CacheValues) => any;\r\nexport type TrinsicObserver = [\r\n destroy: () => void,\r\n append: () => void,\r\n update: () => void | Parameters\r\n];\r\n\r\nconst isHeightIntrinsic = (ioEntryOrSize: IntersectionObserverEntry | WH): boolean =>\r\n (ioEntryOrSize as WH).h === 0 ||\r\n (ioEntryOrSize as IntersectionObserverEntry).isIntersecting ||\r\n (ioEntryOrSize as IntersectionObserverEntry).intersectionRatio > 0;\r\n\r\n/**\r\n * Creates a trinsic observer which observes changes to intrinsic or extrinsic sizing for the height of the target element.\r\n * @param target The element which shall be observed.\r\n * @param onTrinsicChangedCallback The callback which gets called after a change was detected.\r\n * @returns A object which represents the instance of the trinsic observer.\r\n */\r\nexport const createTrinsicObserver = (\r\n target: HTMLElement,\r\n onTrinsicChangedCallback: TrinsicObserverCallback\r\n): TrinsicObserver => {\r\n let intersectionObserverInstance: undefined | IntersectionObserver;\r\n const trinsicObserver = createDiv(classNameTrinsicObserver);\r\n const offListeners: (() => void)[] = [];\r\n const [updateHeightIntrinsicCache] = createCache({\r\n _initialValue: false,\r\n });\r\n const triggerOnTrinsicChangedCallback = (\r\n updateValue?: IntersectionObserverEntry | WH,\r\n fromRecords?: true\r\n ): void | Parameters => {\r\n if (updateValue) {\r\n const heightIntrinsic = updateHeightIntrinsicCache(isHeightIntrinsic(updateValue));\r\n const [, heightIntrinsicChanged] = heightIntrinsic;\r\n\r\n if (heightIntrinsicChanged) {\r\n !fromRecords && onTrinsicChangedCallback(heightIntrinsic);\r\n return [heightIntrinsic];\r\n }\r\n }\r\n };\r\n const intersectionObserverCallback = (\r\n entries: IntersectionObserverEntry[],\r\n fromRecords?: true\r\n ) => {\r\n if (entries && entries.length > 0) {\r\n return triggerOnTrinsicChangedCallback(entries.pop(), fromRecords);\r\n }\r\n };\r\n\r\n return [\r\n () => {\r\n runEachAndClear(offListeners);\r\n removeElements(trinsicObserver);\r\n },\r\n () => {\r\n if (IntersectionObserverConstructor) {\r\n intersectionObserverInstance = new IntersectionObserverConstructor(\r\n (entries) => intersectionObserverCallback(entries),\r\n { root: target }\r\n );\r\n intersectionObserverInstance.observe(trinsicObserver);\r\n push(offListeners, () => {\r\n intersectionObserverInstance!.disconnect();\r\n });\r\n } else {\r\n const onSizeChanged = () => {\r\n const newSize = offsetSize(trinsicObserver);\r\n triggerOnTrinsicChangedCallback(newSize);\r\n };\r\n const [destroySizeObserver, appendSizeObserver] = createSizeObserver(\r\n trinsicObserver,\r\n onSizeChanged\r\n );\r\n push(offListeners, destroySizeObserver);\r\n appendSizeObserver();\r\n onSizeChanged();\r\n }\r\n\r\n appendChildren(target, trinsicObserver);\r\n },\r\n () => {\r\n if (intersectionObserverInstance) {\r\n return intersectionObserverCallback(intersectionObserverInstance.takeRecords(), true);\r\n }\r\n },\r\n ];\r\n};\r\n","import {\r\n each,\r\n noop,\r\n debounce,\r\n indexOf,\r\n isString,\r\n MutationObserverConstructor,\r\n isEmptyArray,\r\n on,\r\n attr,\r\n is,\r\n find,\r\n push,\r\n} from 'support';\r\n\r\ntype DOMContentObserverCallback = (contentChangedTroughEvent: boolean) => any;\r\n\r\ntype DOMTargetObserverCallback = (targetChangedAttrs: string[], targetStyleChanged: boolean) => any;\r\n\r\ninterface DOMObserverOptionsBase {\r\n _attributes?: string[];\r\n _styleChangingAttributes?: string[];\r\n /**\r\n * A function which can ignore a changed attribute if it returns true.\r\n * for DOMTargetObserver this applies to the changes to the observed target\r\n * for DOMContentObserver this applies to changes to nested targets -> nested targets are elements which match the \"_nestedTargetSelector\" selector\r\n */\r\n _ignoreTargetChange?: DOMObserverIgnoreTargetChange;\r\n}\r\n\r\ninterface DOMContentObserverOptions extends DOMObserverOptionsBase {\r\n _eventContentChange?: DOMObserverEventContentChange; // [selector, eventname(s) | function returning eventname(s)] -> eventnames divided by whitespaces\r\n _nestedTargetSelector?: string;\r\n _ignoreContentChange?: DOMObserverIgnoreContentChange; // function which will prevent marking certain dom changes as content change if it returns true\r\n}\r\n\r\ntype DOMTargetObserverOptions = DOMObserverOptionsBase;\r\n\r\ntype ContentChangeArrayItem = [selector?: string, eventNames?: string] | null | undefined;\r\n\r\nexport type DOMObserverEventContentChange =\r\n | Array\r\n | false\r\n | null\r\n | undefined;\r\n\r\nexport type DOMObserverIgnoreContentChange = (\r\n mutation: MutationRecord,\r\n isNestedTarget: boolean,\r\n domObserverTarget: HTMLElement,\r\n domObserverOptions?: DOMContentObserverOptions\r\n) => boolean;\r\n\r\nexport type DOMObserverIgnoreTargetChange = (\r\n target: Node,\r\n attributeName: string,\r\n oldAttributeValue: string | null,\r\n newAttributeValue: string | null\r\n) => boolean;\r\n\r\nexport type DOMObserverCallback = ContentObserver extends true\r\n ? DOMContentObserverCallback\r\n : DOMTargetObserverCallback;\r\n\r\nexport type DOMObserverOptions = ContentObserver extends true\r\n ? DOMContentObserverOptions\r\n : DOMTargetObserverOptions;\r\n\r\nexport type DOMObserver = [\r\n destroy: () => void,\r\n update: () => void | false | Parameters>\r\n];\r\n\r\ntype EventContentChangeUpdateElement = (getElements?: (selector: string) => Node[]) => void;\r\ntype EventContentChange = [destroy: () => void, updateElements: EventContentChangeUpdateElement];\r\n\r\n/**\r\n * Creates a set of helper functions to observe events of elements inside the target element.\r\n * @param target The target element of which the children elements shall be observed. (not only direct children but also nested ones)\r\n * @param eventContentChange The event content change array. (array of tuples: selector and eventname(s))\r\n * @param callback Callback which is called if one of the elements emits the corresponding event.\r\n * @returns A object which contains a set of helper functions to destroy and update the observation of elements.\r\n */\r\nconst createEventContentChange = (\r\n target: Element,\r\n callback: (...args: any) => any,\r\n eventContentChange?: DOMObserverEventContentChange\r\n): EventContentChange => {\r\n let map: WeakMap any]> | undefined; // weak map to prevent memory leak for detached elements\r\n let destroyed = false;\r\n const destroy = () => {\r\n destroyed = true;\r\n };\r\n const updateElements: EventContentChangeUpdateElement = (getElements?) => {\r\n if (eventContentChange) {\r\n const eventElmList = eventContentChange.reduce>((arr, item) => {\r\n if (item) {\r\n const selector = item[0];\r\n const eventNames = item[1];\r\n const elements =\r\n eventNames &&\r\n selector &&\r\n (getElements ? getElements(selector) : find(selector, target));\r\n\r\n if (elements && elements.length && eventNames && isString(eventNames)) {\r\n push(arr, [elements, eventNames.trim()], true);\r\n }\r\n }\r\n return arr;\r\n }, []);\r\n\r\n each(eventElmList, (item) =>\r\n each(item[0], (elm) => {\r\n const eventNames = item[1];\r\n const entry = map!.get(elm);\r\n\r\n if (entry) {\r\n const entryEventNames = entry[0];\r\n const entryOff = entry[1];\r\n\r\n // in case an already registered element is registered again, unregister the previous events\r\n if (entryEventNames === eventNames) {\r\n entryOff();\r\n }\r\n }\r\n\r\n const off = on(elm, eventNames, (event: Event) => {\r\n if (destroyed) {\r\n off();\r\n map!.delete(elm);\r\n } else {\r\n callback(event);\r\n }\r\n });\r\n map!.set(elm, [eventNames, off]);\r\n })\r\n );\r\n }\r\n };\r\n\r\n if (eventContentChange) {\r\n map = new WeakMap();\r\n updateElements();\r\n }\r\n\r\n return [destroy, updateElements];\r\n};\r\n\r\n/**\r\n * Creates a DOM observer which observes DOM changes to either the target element or its children.\r\n * @param target The element which shall be observed.\r\n * @param isContentObserver Whether this observer is just observing the target or just the targets children. (not only direct children but also nested ones)\r\n * @param callback The callback which gets called if a change was detected.\r\n * @param options The options for DOM change detection.\r\n * @returns A object which represents the instance of the DOM observer.\r\n */\r\nexport const createDOMObserver = (\r\n target: HTMLElement,\r\n isContentObserver: ContentObserver,\r\n callback: DOMObserverCallback,\r\n options?: DOMObserverOptions\r\n): DOMObserver => {\r\n let isConnected = false;\r\n const {\r\n _attributes,\r\n _styleChangingAttributes,\r\n _eventContentChange,\r\n _nestedTargetSelector,\r\n _ignoreTargetChange,\r\n _ignoreContentChange,\r\n } = (options as DOMContentObserverOptions & DOMTargetObserverOptions) || {};\r\n const debouncedEventContentChange = debounce(\r\n () => {\r\n if (isConnected) {\r\n (callback as DOMContentObserverCallback)(true);\r\n }\r\n },\r\n { _timeout: 33, _maxDelay: 99 }\r\n );\r\n const [destroyEventContentChange, updateEventContentChangeElements] = createEventContentChange(\r\n target,\r\n debouncedEventContentChange,\r\n _eventContentChange\r\n );\r\n\r\n // MutationObserver\r\n const finalAttributes = _attributes || [];\r\n const finalStyleChangingAttributes = _styleChangingAttributes || [];\r\n const observedAttributes = finalAttributes.concat(finalStyleChangingAttributes);\r\n const observerCallback = (\r\n mutations: MutationRecord[],\r\n fromRecords?: true\r\n ): void | Parameters> => {\r\n const ignoreTargetChange = _ignoreTargetChange || noop;\r\n const ignoreContentChange = _ignoreContentChange || noop;\r\n const targetChangedAttrs: string[] = [];\r\n const totalAddedNodes: Node[] = [];\r\n let targetStyleChanged = false;\r\n let contentChanged = false;\r\n let childListChanged = false;\r\n each(mutations, (mutation) => {\r\n const { attributeName, target: mutationTarget, type, oldValue, addedNodes } = mutation;\r\n const isAttributesType = type === 'attributes';\r\n const isChildListType = type === 'childList';\r\n const targetIsMutationTarget = target === mutationTarget;\r\n const attributeValue =\r\n isAttributesType && isString(attributeName)\r\n ? attr(mutationTarget as HTMLElement, attributeName!)\r\n : 0;\r\n const attributeChanged = attributeValue !== 0 && oldValue !== attributeValue;\r\n const styleChangingAttrChanged =\r\n indexOf(finalStyleChangingAttributes, attributeName) > -1 && attributeChanged;\r\n\r\n // if is content observer and something changed in children\r\n if (isContentObserver && !targetIsMutationTarget) {\r\n const notOnlyAttrChanged = !isAttributesType;\r\n const contentAttrChanged = isAttributesType && styleChangingAttrChanged;\r\n const isNestedTarget =\r\n contentAttrChanged && _nestedTargetSelector && is(mutationTarget, _nestedTargetSelector);\r\n const baseAssertion = isNestedTarget\r\n ? !ignoreTargetChange(mutationTarget, attributeName!, oldValue, attributeValue)\r\n : notOnlyAttrChanged || contentAttrChanged;\r\n const contentFinalChanged =\r\n baseAssertion && !ignoreContentChange(mutation, !!isNestedTarget, target, options);\r\n\r\n push(totalAddedNodes, addedNodes);\r\n\r\n contentChanged = contentChanged || contentFinalChanged;\r\n childListChanged = childListChanged || isChildListType;\r\n }\r\n // if is target observer and target attr changed\r\n if (\r\n !isContentObserver &&\r\n targetIsMutationTarget &&\r\n attributeChanged &&\r\n !ignoreTargetChange(mutationTarget, attributeName!, oldValue, attributeValue)\r\n ) {\r\n push(targetChangedAttrs, attributeName!);\r\n targetStyleChanged = targetStyleChanged || styleChangingAttrChanged;\r\n }\r\n });\r\n\r\n if (childListChanged && !isEmptyArray(totalAddedNodes)) {\r\n // adds / removes the new elements from the event content change\r\n updateEventContentChangeElements((selector) =>\r\n totalAddedNodes.reduce((arr, node) => {\r\n push(arr, find(selector, node));\r\n return is(node, selector) ? push(arr, node) : arr;\r\n }, [])\r\n );\r\n }\r\n\r\n if (isContentObserver) {\r\n !fromRecords && contentChanged && (callback as DOMContentObserverCallback)(false);\r\n return [false] as Parameters>;\r\n }\r\n if (!isEmptyArray(targetChangedAttrs) || targetStyleChanged) {\r\n !fromRecords &&\r\n (callback as DOMTargetObserverCallback)(targetChangedAttrs, targetStyleChanged);\r\n return [targetChangedAttrs, targetStyleChanged] as Parameters<\r\n DOMObserverCallback\r\n >;\r\n }\r\n };\r\n const mutationObserver: MutationObserver = new MutationObserverConstructor!((mutations) =>\r\n observerCallback(mutations)\r\n );\r\n\r\n // Connect\r\n mutationObserver.observe(target, {\r\n attributes: true,\r\n attributeOldValue: true,\r\n attributeFilter: observedAttributes,\r\n subtree: isContentObserver,\r\n childList: isContentObserver,\r\n characterData: isContentObserver,\r\n });\r\n isConnected = true;\r\n\r\n return [\r\n () => {\r\n if (isConnected) {\r\n destroyEventContentChange();\r\n mutationObserver.disconnect();\r\n isConnected = false;\r\n }\r\n },\r\n () => {\r\n if (isConnected) {\r\n debouncedEventContentChange._flush();\r\n\r\n const records = mutationObserver.takeRecords();\r\n return !isEmptyArray(records) && observerCallback(records, true);\r\n }\r\n },\r\n ];\r\n};\r\n","import {\r\n debounce,\r\n isArray,\r\n isNumber,\r\n each,\r\n indexOf,\r\n isString,\r\n attr,\r\n removeAttr,\r\n CacheValues,\r\n keys,\r\n liesBetween,\r\n scrollSize,\r\n equalWH,\r\n createCache,\r\n WH,\r\n fractionalSize,\r\n isFunction,\r\n ResizeObserverConstructor,\r\n closest,\r\n assignDeep,\r\n push,\r\n scrollLeft,\r\n scrollTop,\r\n noop,\r\n} from 'support';\r\nimport { getEnvironment } from 'environment';\r\nimport {\r\n dataAttributeHost,\r\n dataValueHostOverflowVisible,\r\n dataValueHostUpdating,\r\n classNameViewport,\r\n classNameOverflowVisible,\r\n classNameScrollbar,\r\n classNameViewportArrange,\r\n} from 'classnames';\r\nimport { createSizeObserver, SizeObserverCallbackParams } from 'observers/sizeObserver';\r\nimport { createTrinsicObserver } from 'observers/trinsicObserver';\r\nimport { createDOMObserver, DOMObserver } from 'observers/domObserver';\r\nimport type { SetupState, SetupUpdateCheckOption } from 'setups';\r\nimport type { StructureSetupState } from 'setups/structureSetup';\r\nimport type { StructureSetupElementsObj } from 'setups/structureSetup/structureSetup.elements';\r\nimport type {\r\n StructureSetupUpdate,\r\n StructureSetupUpdateHints,\r\n} from 'setups/structureSetup/structureSetup.update';\r\n\r\nexport type StructureSetupObserversUpdate = (checkOption: SetupUpdateCheckOption) => void;\r\n\r\nexport type StructureSetupObservers = [\r\n destroy: () => void,\r\n appendElements: () => void,\r\n updateObservers: () => Partial,\r\n updateObserversOptions: StructureSetupObserversUpdate\r\n];\r\n\r\ntype ExcludeFromTuple = T extends [infer F, ...infer R]\r\n ? [F] extends [E]\r\n ? ExcludeFromTuple\r\n : [F, ...ExcludeFromTuple]\r\n : [];\r\n\r\nconst hostSelector = `[${dataAttributeHost}]`;\r\n\r\n// TODO: observer textarea attrs if textarea\r\n\r\nconst viewportSelector = `.${classNameViewport}`;\r\nconst viewportAttrsFromTarget = ['tabindex'];\r\nconst baseStyleChangingAttrsTextarea = ['wrap', 'cols', 'rows'];\r\nconst baseStyleChangingAttrs = ['id', 'class', 'style', 'open'];\r\n\r\nexport const createStructureSetupObservers = (\r\n structureSetupElements: StructureSetupElementsObj,\r\n state: SetupState,\r\n structureSetupUpdate: (\r\n ...args: ExcludeFromTuple, Parameters[0]>\r\n ) => any\r\n): StructureSetupObservers => {\r\n let debounceTimeout: number | false | undefined;\r\n let debounceMaxDelay: number | false | undefined;\r\n let contentMutationObserver: DOMObserver | undefined;\r\n const [, setState] = state;\r\n const {\r\n _host,\r\n _viewport,\r\n _content,\r\n _isTextarea,\r\n _viewportIsTarget,\r\n _viewportHasClass,\r\n _viewportAddRemoveClass,\r\n } = structureSetupElements;\r\n const { _flexboxGlue } = getEnvironment();\r\n\r\n const [updateContentSizeCache] = createCache>(\r\n {\r\n _equal: equalWH,\r\n _initialValue: { w: 0, h: 0 },\r\n },\r\n () => {\r\n const hasOver = _viewportHasClass(classNameOverflowVisible, dataValueHostOverflowVisible);\r\n const hasVpStyle = _viewportHasClass(classNameViewportArrange, '');\r\n const scrollOffsetX = hasVpStyle && scrollLeft(_viewport);\r\n const scrollOffsetY = hasVpStyle && scrollTop(_viewport);\r\n _viewportAddRemoveClass(classNameOverflowVisible, dataValueHostOverflowVisible);\r\n _viewportAddRemoveClass(classNameViewportArrange, '');\r\n _viewportAddRemoveClass('', dataValueHostUpdating, true);\r\n\r\n const contentScroll = scrollSize(_content);\r\n const viewportScroll = scrollSize(_viewport);\r\n const fractional = fractionalSize(_viewport);\r\n\r\n _viewportAddRemoveClass(classNameOverflowVisible, dataValueHostOverflowVisible, hasOver);\r\n _viewportAddRemoveClass(classNameViewportArrange, '', hasVpStyle);\r\n _viewportAddRemoveClass('', dataValueHostUpdating);\r\n scrollLeft(_viewport, scrollOffsetX);\r\n scrollTop(_viewport, scrollOffsetY);\r\n return {\r\n w: viewportScroll.w + contentScroll.w + fractional.w,\r\n h: viewportScroll.h + contentScroll.h + fractional.h,\r\n };\r\n }\r\n );\r\n const contentMutationObserverAttr = _isTextarea\r\n ? baseStyleChangingAttrsTextarea\r\n : baseStyleChangingAttrs.concat(baseStyleChangingAttrsTextarea);\r\n const structureSetupUpdateWithDebouncedAdaptiveUpdateHints = debounce(structureSetupUpdate, {\r\n _timeout: () => debounceTimeout,\r\n _maxDelay: () => debounceMaxDelay,\r\n _mergeParams(prev, curr) {\r\n const [prevObj] = prev;\r\n const [currObj] = curr;\r\n return [\r\n keys(prevObj)\r\n .concat(keys(currObj))\r\n .reduce((obj, key) => {\r\n obj[key] = prevObj[key] || currObj[key];\r\n return obj;\r\n }, {}),\r\n ] as [Partial];\r\n },\r\n });\r\n\r\n const updateViewportAttrsFromHost = (attributes?: string[]) => {\r\n each(attributes || viewportAttrsFromTarget, (attribute) => {\r\n if (indexOf(viewportAttrsFromTarget, attribute) > -1) {\r\n const hostAttr = attr(_host, attribute);\r\n if (isString(hostAttr)) {\r\n attr(_viewport, attribute, hostAttr);\r\n } else {\r\n removeAttr(_viewport, attribute);\r\n }\r\n }\r\n });\r\n };\r\n const onTrinsicChanged = (heightIntrinsicCache: CacheValues, fromRecords?: true) => {\r\n const [heightIntrinsic, heightIntrinsicChanged] = heightIntrinsicCache;\r\n const updateHints: Partial = {\r\n _heightIntrinsicChanged: heightIntrinsicChanged,\r\n };\r\n setState({ _heightIntrinsic: heightIntrinsic });\r\n\r\n !fromRecords && structureSetupUpdate(updateHints);\r\n return updateHints;\r\n };\r\n const onSizeChanged = ({\r\n _sizeChanged,\r\n _directionIsRTLCache,\r\n _appear,\r\n }: SizeObserverCallbackParams) => {\r\n const updateFn =\r\n !_sizeChanged || _appear\r\n ? structureSetupUpdate\r\n : structureSetupUpdateWithDebouncedAdaptiveUpdateHints;\r\n\r\n let directionChanged = false;\r\n if (_directionIsRTLCache) {\r\n const [directionIsRTL, directionIsRTLChanged] = _directionIsRTLCache;\r\n directionChanged = directionIsRTLChanged;\r\n\r\n setState({ _directionIsRTL: directionIsRTL });\r\n }\r\n\r\n updateFn({ _sizeChanged, _directionChanged: directionChanged });\r\n };\r\n const onContentMutation = (contentChangedTroughEvent: boolean, fromRecords?: true) => {\r\n const [, contentSizeChanged] = updateContentSizeCache();\r\n const updateHints: Partial = {\r\n _contentMutation: contentSizeChanged,\r\n };\r\n // if contentChangedTroughEvent is true its already debounced\r\n const updateFn = contentChangedTroughEvent\r\n ? structureSetupUpdate\r\n : structureSetupUpdateWithDebouncedAdaptiveUpdateHints;\r\n\r\n if (contentSizeChanged) {\r\n !fromRecords && updateFn(updateHints);\r\n }\r\n return updateHints;\r\n };\r\n const onHostMutation = (\r\n targetChangedAttrs: string[],\r\n targetStyleChanged: boolean,\r\n fromRecords?: true\r\n ) => {\r\n const updateHints: Partial = { _hostMutation: targetStyleChanged };\r\n if (targetStyleChanged) {\r\n !fromRecords && structureSetupUpdateWithDebouncedAdaptiveUpdateHints(updateHints);\r\n } else if (!_viewportIsTarget) {\r\n updateViewportAttrsFromHost(targetChangedAttrs);\r\n }\r\n return updateHints;\r\n };\r\n\r\n const [destroyTrinsicObserver, appendTrinsicObserver, updateTrinsicObserver] =\r\n _content || !_flexboxGlue ? createTrinsicObserver(_host, onTrinsicChanged) : [noop, noop, noop];\r\n const [destroySizeObserver, appendSizeObserver] = !_viewportIsTarget\r\n ? createSizeObserver(_host, onSizeChanged, {\r\n _appear: true,\r\n _direction: true,\r\n })\r\n : [noop, noop];\r\n const [destroyHostMutationObserver, updateHostMutationObserver] = createDOMObserver(\r\n _host,\r\n false,\r\n onHostMutation,\r\n {\r\n _styleChangingAttributes: baseStyleChangingAttrs,\r\n _attributes: baseStyleChangingAttrs.concat(viewportAttrsFromTarget),\r\n }\r\n );\r\n\r\n const viewportIsTargetResizeObserver =\r\n _viewportIsTarget &&\r\n ResizeObserverConstructor &&\r\n new ResizeObserverConstructor(onSizeChanged.bind(0, { _sizeChanged: true }));\r\n\r\n viewportIsTargetResizeObserver && viewportIsTargetResizeObserver.observe(_host);\r\n updateViewportAttrsFromHost();\r\n\r\n return [\r\n () => {\r\n destroyTrinsicObserver();\r\n destroySizeObserver();\r\n contentMutationObserver && contentMutationObserver[0](); // destroy\r\n viewportIsTargetResizeObserver && viewportIsTargetResizeObserver.disconnect();\r\n destroyHostMutationObserver();\r\n },\r\n () => {\r\n // order is matter!\r\n appendSizeObserver();\r\n appendTrinsicObserver();\r\n },\r\n () => {\r\n const updateHints: Partial = {};\r\n const hostUpdateResult = updateHostMutationObserver();\r\n const trinsicUpdateResult = updateTrinsicObserver();\r\n const contentUpdateResult = contentMutationObserver && contentMutationObserver[1](); // update\r\n\r\n if (hostUpdateResult) {\r\n assignDeep(\r\n updateHints,\r\n onHostMutation.apply(\r\n 0,\r\n push(hostUpdateResult, true) as [\r\n ...updateResult: typeof hostUpdateResult,\r\n fromRecords: true\r\n ]\r\n )\r\n );\r\n }\r\n if (trinsicUpdateResult) {\r\n assignDeep(\r\n updateHints,\r\n onTrinsicChanged.apply(\r\n 0,\r\n push(trinsicUpdateResult as any[], true) as [\r\n ...updateResult: typeof trinsicUpdateResult,\r\n fromRecords: true\r\n ]\r\n )\r\n );\r\n }\r\n if (contentUpdateResult) {\r\n assignDeep(\r\n updateHints,\r\n onContentMutation.apply(\r\n 0,\r\n push(contentUpdateResult, true) as [\r\n ...updateResult: typeof contentUpdateResult,\r\n fromRecords: true\r\n ]\r\n )\r\n );\r\n }\r\n\r\n return updateHints;\r\n },\r\n (checkOption) => {\r\n const [ignoreMutation] = checkOption('updating.ignoreMutation');\r\n const [attributes, attributesChanged] = checkOption('updating.attributes');\r\n const [elementEvents, elementEventsChanged] = checkOption | null>(\r\n 'updating.elementEvents'\r\n );\r\n const [debounceValue, debounceChanged] = checkOption | number | null>(\r\n 'updating.debounce'\r\n );\r\n const updateContentMutationObserver = elementEventsChanged || attributesChanged;\r\n const ignoreMutationFromOptions = (mutation: MutationRecord) =>\r\n isFunction(ignoreMutation) && ignoreMutation(mutation);\r\n\r\n if (updateContentMutationObserver) {\r\n if (contentMutationObserver) {\r\n contentMutationObserver[1](); // update\r\n contentMutationObserver[0](); // destroy\r\n }\r\n contentMutationObserver = createDOMObserver(\r\n _content || _viewport,\r\n true,\r\n onContentMutation,\r\n {\r\n _styleChangingAttributes: contentMutationObserverAttr.concat(attributes || []),\r\n _attributes: contentMutationObserverAttr.concat(attributes || []),\r\n _eventContentChange: elementEvents,\r\n _nestedTargetSelector: hostSelector,\r\n _ignoreContentChange: (mutation, isNestedTarget) => {\r\n const { target, attributeName } = mutation;\r\n const ignore =\r\n !isNestedTarget && attributeName\r\n ? liesBetween(target, hostSelector, viewportSelector)\r\n : false;\r\n return (\r\n ignore ||\r\n !!closest(target, `.${classNameScrollbar}`) || // ignore explicitely all scrollbar elements\r\n !!ignoreMutationFromOptions(mutation)\r\n );\r\n },\r\n }\r\n );\r\n }\r\n\r\n if (debounceChanged) {\r\n structureSetupUpdateWithDebouncedAdaptiveUpdateHints._flush();\r\n if (isArray(debounceValue)) {\r\n const timeout = debounceValue[0];\r\n const maxWait = debounceValue[1];\r\n debounceTimeout = isNumber(timeout) ? timeout : false;\r\n debounceMaxDelay = isNumber(maxWait) ? maxWait : false;\r\n } else if (isNumber(debounceValue)) {\r\n debounceTimeout = debounceValue;\r\n debounceMaxDelay = false;\r\n } else {\r\n debounceTimeout = false;\r\n debounceMaxDelay = false;\r\n }\r\n }\r\n },\r\n ];\r\n};\r\n","import { createEventListenerHub, isEmptyObject, keys } from 'support';\r\nimport { createState, createOptionCheck } from 'setups/setups';\r\nimport { createStructureSetupElements } from 'setups/structureSetup/structureSetup.elements';\r\nimport { createStructureSetupUpdate } from 'setups/structureSetup/structureSetup.update';\r\nimport { createStructureSetupObservers } from 'setups/structureSetup/structureSetup.observers';\r\nimport type { StructureSetupUpdateHints } from 'setups/structureSetup/structureSetup.update';\r\nimport type { StructureSetupElementsObj } from 'setups/structureSetup/structureSetup.elements';\r\nimport type { TRBL, XY, EventListener } from 'support';\r\nimport type { Options, ReadonlyOptions } from 'options';\r\nimport type { Setup } from 'setups';\r\nimport type { InitializationTarget } from 'initialization';\r\nimport type { DeepPartial, StyleObject, OverflowStyle } from 'typings';\r\n\r\nexport interface StructureSetupState {\r\n _padding: TRBL;\r\n _paddingAbsolute: boolean;\r\n _viewportPaddingStyle: StyleObject;\r\n _overflowEdge: XY;\r\n _overflowAmount: XY;\r\n _overflowStyle: XY;\r\n _hasOverflow: XY;\r\n _heightIntrinsic: boolean;\r\n _directionIsRTL: boolean;\r\n}\r\n\r\nexport interface StructureSetupStaticState {\r\n _elements: StructureSetupElementsObj;\r\n _appendElements: () => void;\r\n _addOnUpdatedListener: (listener: EventListener) => void;\r\n}\r\n\r\ntype StructureSetupEventMap = {\r\n u: [updateHints: StructureSetupUpdateHints, changedOptions: DeepPartial, force: boolean];\r\n};\r\n\r\nconst initialXYNumber = { x: 0, y: 0 };\r\nconst initialStructureSetupUpdateState: StructureSetupState = {\r\n _padding: {\r\n t: 0,\r\n r: 0,\r\n b: 0,\r\n l: 0,\r\n },\r\n _paddingAbsolute: false,\r\n _viewportPaddingStyle: {\r\n marginRight: 0,\r\n marginBottom: 0,\r\n marginLeft: 0,\r\n paddingTop: 0,\r\n paddingRight: 0,\r\n paddingBottom: 0,\r\n paddingLeft: 0,\r\n },\r\n _overflowEdge: initialXYNumber,\r\n _overflowAmount: initialXYNumber,\r\n _overflowStyle: {\r\n x: 'hidden',\r\n y: 'hidden',\r\n },\r\n _hasOverflow: {\r\n x: false,\r\n y: false,\r\n },\r\n _heightIntrinsic: false,\r\n _directionIsRTL: false,\r\n};\r\n\r\nexport const createStructureSetup = (\r\n target: InitializationTarget,\r\n options: ReadonlyOptions\r\n): Setup => {\r\n const checkOptionsFallback = createOptionCheck(options, {});\r\n const state = createState(initialStructureSetupUpdateState);\r\n const [addEvent, removeEvent, triggerEvent] = createEventListenerHub();\r\n const [getState] = state;\r\n const [elements, appendStructureElements, destroyElements] = createStructureSetupElements(target);\r\n const updateStructure = createStructureSetupUpdate(elements, state);\r\n const triggerUpdateEvent: (...args: StructureSetupEventMap['u']) => void = (\r\n updateHints,\r\n changedOptions,\r\n force\r\n ) => {\r\n const truthyUpdateHints = keys(updateHints).some((key) => updateHints[key]);\r\n\r\n if (truthyUpdateHints || !isEmptyObject(changedOptions) || force) {\r\n triggerEvent('u', [updateHints, changedOptions, force]);\r\n }\r\n };\r\n const [destroyObservers, appendObserverElements, updateObservers, updateObserversOptions] =\r\n createStructureSetupObservers(elements, state, (updateHints) => {\r\n triggerUpdateEvent(updateStructure(checkOptionsFallback, updateHints), {}, false);\r\n });\r\n\r\n const structureSetupState = getState.bind(0) as (() => StructureSetupState) &\r\n StructureSetupStaticState;\r\n structureSetupState._addOnUpdatedListener = (listener) => {\r\n addEvent('u', listener);\r\n };\r\n structureSetupState._appendElements = () => {\r\n appendObserverElements();\r\n appendStructureElements();\r\n };\r\n structureSetupState._elements = elements;\r\n\r\n return [\r\n (changedOptions, force?) => {\r\n const checkOption = createOptionCheck(options, changedOptions, force);\r\n updateObserversOptions(checkOption);\r\n triggerUpdateEvent(\r\n updateStructure(checkOption, updateObservers(), force),\r\n changedOptions,\r\n !!force\r\n );\r\n },\r\n structureSetupState,\r\n () => {\r\n removeEvent();\r\n destroyObservers();\r\n destroyElements();\r\n },\r\n ];\r\n};\r\n","import {\r\n directionIsRTL,\r\n getBoundingClientRect,\r\n offsetSize,\r\n on,\r\n preventDefault,\r\n runEachAndClear,\r\n stopPropagation,\r\n XY,\r\n} from 'support';\r\nimport { classNamesScrollbarInteraction } from 'classnames';\r\nimport type { ReadonlyOptions } from 'options';\r\nimport type { StructureSetupState } from 'setups';\r\nimport type {\r\n ScrollbarsSetupElementsObj,\r\n ScrollbarStructure,\r\n} from 'setups/scrollbarsSetup/scrollbarsSetup.elements';\r\nimport { getEnvironment } from 'environment';\r\n\r\nexport type ScrollbarsSetupEvents = (\r\n scrollbarStructure: ScrollbarStructure,\r\n scrollbarsAddRemoveClass: ScrollbarsSetupElementsObj['_scrollbarsAddRemoveClass'],\r\n documentElm: Document,\r\n scrollOffsetElm: HTMLElement,\r\n isHorizontal?: boolean\r\n) => () => void;\r\n\r\nconst { round } = Math;\r\nconst getClientOffset = (event: PointerEvent): XY => ({\r\n x: event.clientX,\r\n y: event.clientY,\r\n});\r\nconst getScale = (element: HTMLElement): XY => {\r\n const { width, height } = getBoundingClientRect(element);\r\n const { w, h } = offsetSize(element);\r\n return {\r\n x: round(width) / w || 1,\r\n y: round(height) / h || 1,\r\n };\r\n};\r\nconst continuePointerDown = (\r\n event: PointerEvent,\r\n options: ReadonlyOptions,\r\n scrollType: 'dragScroll' | 'clickScroll'\r\n) => {\r\n const scrollbarOptions = options.scrollbars;\r\n const { button, isPrimary, pointerType } = event;\r\n const { pointers } = scrollbarOptions;\r\n return (\r\n button === 0 &&\r\n isPrimary &&\r\n scrollbarOptions[scrollType] &&\r\n (pointers || []).includes(pointerType)\r\n );\r\n};\r\nconst createRootClickStopPropagationEvents = (scrollbar: HTMLElement, documentElm: Document) =>\r\n on(\r\n scrollbar,\r\n 'mousedown',\r\n on.bind(0, documentElm, 'click', stopPropagation, { _once: true, _capture: true }),\r\n { _capture: true }\r\n );\r\nconst createDragScrollingEvents = (\r\n options: ReadonlyOptions,\r\n doc: Document,\r\n scrollbarStructure: ScrollbarStructure,\r\n scrollOffsetElement: HTMLElement,\r\n structureSetupState: () => StructureSetupState,\r\n isHorizontal?: boolean\r\n) => {\r\n const { _rtlScrollBehavior } = getEnvironment();\r\n const { _handle, _track, _scrollbar } = scrollbarStructure;\r\n const scrollOffsetKey = `scroll${isHorizontal ? 'Left' : 'Top'}`;\r\n const xyKey = `${isHorizontal ? 'x' : 'y'}`;\r\n const whKey = `${isHorizontal ? 'w' : 'h'}`;\r\n const createOnPointerMoveHandler =\r\n (mouseDownScroll: number, mouseDownClientOffset: number, mouseDownInvertedScale: number) =>\r\n (event: PointerEvent) => {\r\n const { _overflowAmount } = structureSetupState();\r\n const movement =\r\n (getClientOffset(event)[xyKey] - mouseDownClientOffset) * mouseDownInvertedScale;\r\n const handleTrackDiff = offsetSize(_track)[whKey] - offsetSize(_handle)[whKey];\r\n const scrollDeltaPercent = movement / handleTrackDiff;\r\n const scrollDelta = scrollDeltaPercent * _overflowAmount[xyKey];\r\n const isRTL = directionIsRTL(_scrollbar);\r\n const negateMultiplactor =\r\n isRTL && isHorizontal ? (_rtlScrollBehavior.n || _rtlScrollBehavior.i ? 1 : -1) : 1;\r\n\r\n scrollOffsetElement[scrollOffsetKey] = mouseDownScroll + scrollDelta * negateMultiplactor;\r\n };\r\n\r\n return on(_handle, 'pointerdown', (pointerDownEvent: PointerEvent) => {\r\n if (continuePointerDown(pointerDownEvent, options, 'dragScroll')) {\r\n const offSelectStart = on(doc, 'selectstart', (event: Event) => preventDefault(event), {\r\n _passive: false,\r\n });\r\n const offPointerMove = on(\r\n _handle,\r\n 'pointermove',\r\n createOnPointerMoveHandler(\r\n scrollOffsetElement[scrollOffsetKey] || 0,\r\n getClientOffset(pointerDownEvent)[xyKey],\r\n 1 / getScale(scrollOffsetElement)[xyKey]\r\n )\r\n );\r\n\r\n on(\r\n _handle,\r\n 'pointerup',\r\n (pointerUpEvent: PointerEvent) => {\r\n offSelectStart();\r\n offPointerMove();\r\n _handle.releasePointerCapture(pointerUpEvent.pointerId);\r\n },\r\n { _once: true }\r\n );\r\n _handle.setPointerCapture(pointerDownEvent.pointerId);\r\n }\r\n });\r\n};\r\n\r\nexport const createScrollbarsSetupEvents =\r\n (\r\n options: ReadonlyOptions,\r\n structureSetupState: () => StructureSetupState\r\n ): ScrollbarsSetupEvents =>\r\n (scrollbarStructure, scrollbarsAddRemoveClass, documentElm, scrollOffsetElm, isHorizontal) => {\r\n const { _scrollbar } = scrollbarStructure;\r\n\r\n return runEachAndClear.bind(0, [\r\n on(_scrollbar, 'pointerenter', () => {\r\n scrollbarsAddRemoveClass(classNamesScrollbarInteraction, true);\r\n }),\r\n on(_scrollbar, 'pointerleave pointercancel', () => {\r\n scrollbarsAddRemoveClass(classNamesScrollbarInteraction);\r\n }),\r\n createRootClickStopPropagationEvents(_scrollbar, documentElm),\r\n createDragScrollingEvents(\r\n options,\r\n documentElm,\r\n scrollbarStructure,\r\n scrollOffsetElm,\r\n structureSetupState,\r\n isHorizontal\r\n ),\r\n ]);\r\n };\r\n","import { offsetSize } from 'support';\r\nimport { getEnvironment } from 'environment';\r\nimport type { StructureSetupState } from 'setups';\r\n\r\nconst { min, max, abs, round } = Math;\r\nexport const getScrollbarHandleLengthRatio = (\r\n scrollbarHandle: HTMLElement,\r\n scrollbarTrack: HTMLElement,\r\n isHorizontal?: boolean,\r\n structureSetupState?: StructureSetupState\r\n) => {\r\n if (structureSetupState) {\r\n const axis = isHorizontal ? 'x' : 'y';\r\n const { _overflowAmount, _overflowEdge } = structureSetupState;\r\n\r\n const viewportSize = _overflowEdge[axis];\r\n const overflowAmount = _overflowAmount[axis];\r\n return max(0, min(1, viewportSize / (viewportSize + overflowAmount)));\r\n }\r\n const axis = isHorizontal ? 'w' : 'h';\r\n const handleSize = offsetSize(scrollbarHandle)[axis];\r\n const trackSize = offsetSize(scrollbarTrack)[axis];\r\n return max(0, min(1, handleSize / trackSize));\r\n};\r\nexport const getScrollbarHandleOffsetRatio = (\r\n scrollbarHandle: HTMLElement,\r\n scrollbarTrack: HTMLElement,\r\n scrollOffsetElement: HTMLElement,\r\n structureSetupState: StructureSetupState,\r\n isRTL: boolean,\r\n isHorizontal?: boolean\r\n) => {\r\n const { _rtlScrollBehavior } = getEnvironment();\r\n const axis = isHorizontal ? 'x' : 'y';\r\n const scrollLeftTop = isHorizontal ? 'Left' : 'Top';\r\n const { _overflowAmount } = structureSetupState;\r\n const scrollPositionMax = round(_overflowAmount[axis]);\r\n const scrollPosition = abs(scrollOffsetElement[`scroll${scrollLeftTop}`]);\r\n const handleRTL = isHorizontal && isRTL;\r\n const rtlNormalizedScrollPosition = _rtlScrollBehavior.i\r\n ? scrollPosition\r\n : scrollPositionMax - scrollPosition;\r\n const finalScrollPosition = handleRTL ? rtlNormalizedScrollPosition : scrollPosition;\r\n const scrollPercent = min(1, finalScrollPosition / scrollPositionMax);\r\n const lengthRatio = getScrollbarHandleLengthRatio(scrollbarHandle, scrollbarTrack, isHorizontal);\r\n\r\n return (1 / lengthRatio) * (1 - lengthRatio) * scrollPercent;\r\n};\r\n","import {\r\n addClass,\r\n appendChildren,\r\n createDiv,\r\n directionIsRTL,\r\n each,\r\n isBoolean,\r\n isEmptyArray,\r\n push,\r\n removeClass,\r\n removeElements,\r\n runEachAndClear,\r\n setT,\r\n style,\r\n} from 'support';\r\nimport {\r\n classNameScrollbar,\r\n classNameScrollbarHorizontal,\r\n classNameScrollbarVertical,\r\n classNameScrollbarTrack,\r\n classNameScrollbarHandle,\r\n classNamesScrollbarTransitionless,\r\n} from 'classnames';\r\nimport { getEnvironment } from 'environment';\r\nimport { dynamicInitializationElement as generalDynamicInitializationElement } from 'initialization';\r\nimport {\r\n getScrollbarHandleLengthRatio,\r\n getScrollbarHandleOffsetRatio,\r\n} from 'setups/scrollbarsSetup/scrollbarsSetup.calculations';\r\nimport type { InitializationTarget } from 'initialization';\r\nimport type { StructureSetupElementsObj } from 'setups/structureSetup/structureSetup.elements';\r\nimport type { ScrollbarsSetupEvents } from 'setups/scrollbarsSetup/scrollbarsSetup.events';\r\nimport type {\r\n ScrollbarsInitialization,\r\n ScrollbarsDynamicInitializationElement,\r\n} from 'setups/scrollbarsSetup/scrollbarsSetup.initialization';\r\nimport type { StyleObject } from 'typings';\r\nimport { StructureSetupState } from 'setups';\r\n\r\nexport interface ScrollbarStructure {\r\n _scrollbar: HTMLElement;\r\n _track: HTMLElement;\r\n _handle: HTMLElement;\r\n}\r\n\r\nexport interface ScrollbarsSetupElement {\r\n _scrollbarStructures: ScrollbarStructure[];\r\n _clone: () => ScrollbarStructure;\r\n _handleStyle: (\r\n elmStyle: (\r\n scrollbarStructure: ScrollbarStructure\r\n ) => [HTMLElement | false | null | undefined, StyleObject]\r\n ) => void;\r\n}\r\n\r\nexport interface ScrollbarsSetupElementsObj {\r\n _scrollbarsAddRemoveClass: (\r\n classNames: string | false | null | undefined,\r\n add?: boolean,\r\n isHorizontal?: boolean\r\n ) => void;\r\n _refreshScrollbarsHandleLength: (structureSetupState: StructureSetupState) => void;\r\n _refreshScrollbarsHandleOffset: (structureSetupState: StructureSetupState) => void;\r\n _horizontal: ScrollbarsSetupElement;\r\n _vertical: ScrollbarsSetupElement;\r\n}\r\n\r\nexport type ScrollbarsSetupElements = [\r\n elements: ScrollbarsSetupElementsObj,\r\n appendElements: () => void,\r\n destroy: () => void\r\n];\r\n\r\nexport const createScrollbarsSetupElements = (\r\n target: InitializationTarget,\r\n structureSetupElements: StructureSetupElementsObj,\r\n scrollbarsSetupEvents: ScrollbarsSetupEvents\r\n): ScrollbarsSetupElements => {\r\n const { _getDefaultInitialization } = getEnvironment();\r\n const { scrollbarsSlot: defaultScrollbarsSlot } = _getDefaultInitialization();\r\n const { _documentElm, _target, _host, _viewport, _targetIsElm, _scrollOffsetElement } =\r\n structureSetupElements;\r\n const { scrollbarsSlot } = (_targetIsElm ? {} : target) as ScrollbarsInitialization;\r\n const evaluatedScrollbarSlot =\r\n generalDynamicInitializationElement(\r\n [_target, _host, _viewport],\r\n () => _host,\r\n defaultScrollbarsSlot,\r\n scrollbarsSlot\r\n );\r\n const scrollbarStructureAddRemoveClass = (\r\n scrollbarStructures: ScrollbarStructure[],\r\n classNames: string | false | null | undefined,\r\n add?: boolean\r\n ) => {\r\n const action = add ? addClass : removeClass;\r\n each(scrollbarStructures, (scrollbarStructure) => {\r\n action(scrollbarStructure._scrollbar, classNames);\r\n });\r\n };\r\n const scrollbarsHandleStyle = (\r\n scrollbarStructures: ScrollbarStructure[],\r\n elmStyle: (\r\n scrollbarStructure: ScrollbarStructure\r\n ) => [HTMLElement | false | null | undefined, StyleObject]\r\n ) => {\r\n each(scrollbarStructures, (scrollbarStructure) => {\r\n const [elm, styles] = elmStyle(scrollbarStructure);\r\n style(elm, styles);\r\n });\r\n };\r\n const scrollbarStructureRefreshHandleLength = (\r\n scrollbarStructures: ScrollbarStructure[],\r\n structureSetupState: StructureSetupState,\r\n isHorizontal?: boolean\r\n ) => {\r\n scrollbarsHandleStyle(scrollbarStructures, (structure) => {\r\n const { _handle, _track } = structure;\r\n return [\r\n _handle,\r\n {\r\n [isHorizontal ? 'width' : 'height']: `${(\r\n getScrollbarHandleLengthRatio(_handle, _track, isHorizontal, structureSetupState) * 100\r\n ).toFixed(5)}%`,\r\n },\r\n ];\r\n });\r\n };\r\n const scrollbarStructureRefreshHandleOffset = (\r\n scrollbarStructures: ScrollbarStructure[],\r\n structureSetupState: StructureSetupState,\r\n isHorizontal?: boolean\r\n ) => {\r\n const translateAxis = isHorizontal ? 'X' : 'Y';\r\n scrollbarsHandleStyle(scrollbarStructures, (structure) => {\r\n const { _handle, _track, _scrollbar } = structure;\r\n const offsetRatio = getScrollbarHandleOffsetRatio(\r\n _handle,\r\n _track,\r\n _scrollOffsetElement,\r\n structureSetupState,\r\n directionIsRTL(_scrollbar),\r\n isHorizontal\r\n );\r\n // eslint-disable-next-line no-self-compare\r\n const validOffsetRatio = offsetRatio === offsetRatio; // is false when offset is NaN\r\n return [\r\n _handle,\r\n {\r\n transform: validOffsetRatio\r\n ? `translate${translateAxis}(${(offsetRatio * 100).toFixed(5)}%)`\r\n : '',\r\n },\r\n ];\r\n });\r\n };\r\n\r\n const destroyFns: (() => void)[] = [];\r\n const horizontalScrollbars: ScrollbarStructure[] = [];\r\n const verticalScrollbars: ScrollbarStructure[] = [];\r\n\r\n const scrollbarsAddRemoveClass = (\r\n className: string | false | null | undefined,\r\n add?: boolean,\r\n onlyHorizontal?: boolean\r\n ) => {\r\n const singleAxis = isBoolean(onlyHorizontal);\r\n const runHorizontal = singleAxis ? onlyHorizontal : true;\r\n const runVertical = singleAxis ? !onlyHorizontal : true;\r\n runHorizontal && scrollbarStructureAddRemoveClass(horizontalScrollbars, className, add);\r\n runVertical && scrollbarStructureAddRemoveClass(verticalScrollbars, className, add);\r\n };\r\n const refreshScrollbarsHandleLength = (structureSetupState: StructureSetupState) => {\r\n scrollbarStructureRefreshHandleLength(horizontalScrollbars, structureSetupState, true);\r\n scrollbarStructureRefreshHandleLength(verticalScrollbars, structureSetupState);\r\n };\r\n const refreshScrollbarsHandleOffset = (structureSetupState: StructureSetupState) => {\r\n scrollbarStructureRefreshHandleOffset(horizontalScrollbars, structureSetupState, true);\r\n scrollbarStructureRefreshHandleOffset(verticalScrollbars, structureSetupState);\r\n };\r\n const generateScrollbarDOM = (isHorizontal?: boolean): ScrollbarStructure => {\r\n const scrollbarClassName = isHorizontal\r\n ? classNameScrollbarHorizontal\r\n : classNameScrollbarVertical;\r\n const arrToPush = isHorizontal ? horizontalScrollbars : verticalScrollbars;\r\n const transitionlessClass = isEmptyArray(arrToPush) ? classNamesScrollbarTransitionless : '';\r\n const scrollbar = createDiv(\r\n `${classNameScrollbar} ${scrollbarClassName} ${transitionlessClass}`\r\n );\r\n const track = createDiv(classNameScrollbarTrack);\r\n const handle = createDiv(classNameScrollbarHandle);\r\n const result = {\r\n _scrollbar: scrollbar,\r\n _track: track,\r\n _handle: handle,\r\n };\r\n\r\n appendChildren(scrollbar, track);\r\n appendChildren(track, handle);\r\n\r\n push(arrToPush, result);\r\n push(destroyFns, [\r\n removeElements.bind(0, scrollbar),\r\n scrollbarsSetupEvents(\r\n result,\r\n scrollbarsAddRemoveClass,\r\n _documentElm,\r\n _scrollOffsetElement,\r\n isHorizontal\r\n ),\r\n ]);\r\n\r\n return result;\r\n };\r\n const generateHorizontalScrollbarStructure = generateScrollbarDOM.bind(0, true);\r\n const generateVerticalScrollbarStructure = generateScrollbarDOM.bind(0, false);\r\n const appendElements = () => {\r\n appendChildren(evaluatedScrollbarSlot, horizontalScrollbars[0]._scrollbar);\r\n appendChildren(evaluatedScrollbarSlot, verticalScrollbars[0]._scrollbar);\r\n\r\n setT(() => {\r\n scrollbarsAddRemoveClass(classNamesScrollbarTransitionless);\r\n }, 300);\r\n };\r\n\r\n generateHorizontalScrollbarStructure();\r\n generateVerticalScrollbarStructure();\r\n\r\n return [\r\n {\r\n _refreshScrollbarsHandleLength: refreshScrollbarsHandleLength,\r\n _refreshScrollbarsHandleOffset: refreshScrollbarsHandleOffset,\r\n _scrollbarsAddRemoveClass: scrollbarsAddRemoveClass,\r\n _horizontal: {\r\n _scrollbarStructures: horizontalScrollbars,\r\n _clone: generateHorizontalScrollbarStructure,\r\n _handleStyle: scrollbarsHandleStyle.bind(0, horizontalScrollbars),\r\n },\r\n _vertical: {\r\n _scrollbarStructures: verticalScrollbars,\r\n _clone: generateVerticalScrollbarStructure,\r\n _handleStyle: scrollbarsHandleStyle.bind(0, verticalScrollbars),\r\n },\r\n },\r\n appendElements,\r\n runEachAndClear.bind(0, destroyFns),\r\n ];\r\n};\r\n","import {\r\n rAF,\r\n cAF,\r\n isFunction,\r\n on,\r\n runEachAndClear,\r\n setT,\r\n clearT,\r\n parent,\r\n scrollLeft,\r\n scrollTop,\r\n} from 'support';\r\nimport { createState, createOptionCheck } from 'setups/setups';\r\nimport { createScrollbarsSetupEvents } from 'setups/scrollbarsSetup/scrollbarsSetup.events';\r\nimport {\r\n createScrollbarsSetupElements,\r\n ScrollbarsSetupElementsObj,\r\n ScrollbarStructure,\r\n} from 'setups/scrollbarsSetup/scrollbarsSetup.elements';\r\nimport {\r\n classNamesScrollbarVisible,\r\n classNamesScrollbarUnusable,\r\n classNamesScrollbarCornerless,\r\n classNamesScrollbarAutoHidden,\r\n classNamesScrollbarHandleInteractive,\r\n classNamesScrollbarTrackInteractive,\r\n classNameScrollbarRtl,\r\n} from 'classnames';\r\nimport type { StructureSetupUpdateHints } from 'setups/structureSetup/structureSetup.update';\r\nimport type {\r\n ReadonlyOptions,\r\n ScrollbarVisibilityBehavior,\r\n ScrollbarAutoHideBehavior,\r\n} from 'options';\r\nimport type { Setup, StructureSetupState, StructureSetupStaticState } from 'setups';\r\nimport type { InitializationTarget } from 'initialization';\r\nimport type { OverflowStyle, StyleObject } from 'typings';\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\r\nexport interface ScrollbarsSetupState {}\r\n\r\nexport interface ScrollbarsSetupStaticState {\r\n _elements: ScrollbarsSetupElementsObj;\r\n _appendElements: () => void;\r\n}\r\n\r\nconst createSelfCancelTimeout = (timeout?: number | (() => number)) => {\r\n let id: number;\r\n const setTFn = timeout ? setT : rAF!;\r\n const clearTFn = timeout ? clearT : cAF!;\r\n return [\r\n (callback: () => any) => {\r\n clearTFn(id);\r\n // @ts-ignore\r\n id = setTFn(callback, isFunction(timeout) ? timeout() : timeout);\r\n },\r\n () => clearTFn(id),\r\n ] as [timeout: (callback: () => any) => void, clear: () => void];\r\n};\r\n\r\nexport const createScrollbarsSetup = (\r\n target: InitializationTarget,\r\n options: ReadonlyOptions,\r\n structureSetupState: (() => StructureSetupState) & StructureSetupStaticState\r\n): Setup => {\r\n let autoHideIsMove: boolean;\r\n let autoHideIsLeave: boolean;\r\n let autoHideNotNever: boolean;\r\n let mouseInHost: boolean | undefined;\r\n let prevTheme: string | null | undefined;\r\n let globalAutoHideDelay = 0;\r\n\r\n const state = createState({});\r\n const [getState] = state;\r\n const [requestMouseMoveAnimationFrame, cancelMouseMoveAnimationFrame] = createSelfCancelTimeout();\r\n const [requestScrollAnimationFrame, cancelScrollAnimationFrame] = createSelfCancelTimeout();\r\n const [scrollTimeout, clearScrollTimeout] = createSelfCancelTimeout(100);\r\n const [auotHideMoveTimeout, clearAutoHideTimeout] = createSelfCancelTimeout(100);\r\n const [auotHideTimeout, clearAutoTimeout] = createSelfCancelTimeout(() => globalAutoHideDelay);\r\n const [elements, appendElements, destroyElements] = createScrollbarsSetupElements(\r\n target,\r\n structureSetupState._elements,\r\n createScrollbarsSetupEvents(options, structureSetupState)\r\n );\r\n const {\r\n _host,\r\n _viewport,\r\n _scrollOffsetElement,\r\n _scrollEventElement,\r\n _viewportIsTarget,\r\n _isBody,\r\n } = structureSetupState._elements;\r\n const {\r\n _horizontal,\r\n _vertical,\r\n _scrollbarsAddRemoveClass: scrollbarsAddRemoveClass,\r\n _refreshScrollbarsHandleLength,\r\n _refreshScrollbarsHandleOffset,\r\n } = elements;\r\n const { _handleStyle: styleHorizontal } = _horizontal;\r\n const { _handleStyle: styleVertical } = _vertical;\r\n const styleScrollbarPosition = (structure: ScrollbarStructure) => {\r\n const { _scrollbar } = structure;\r\n const elm = _viewportIsTarget && !_isBody && parent(_scrollbar) === _viewport && _scrollbar;\r\n return [\r\n elm,\r\n {\r\n transform: elm\r\n ? `translate(${scrollLeft(_scrollOffsetElement)}px, ${scrollTop(_scrollOffsetElement)}px)`\r\n : '',\r\n },\r\n ] as [HTMLElement | false, StyleObject];\r\n };\r\n const manageScrollbarsAutoHide = (removeAutoHide: boolean, delayless?: boolean) => {\r\n clearAutoTimeout();\r\n if (removeAutoHide) {\r\n scrollbarsAddRemoveClass(classNamesScrollbarAutoHidden);\r\n } else {\r\n const hide = () => scrollbarsAddRemoveClass(classNamesScrollbarAutoHidden, true);\r\n if (globalAutoHideDelay > 0 && !delayless) {\r\n auotHideTimeout(hide);\r\n } else {\r\n hide();\r\n }\r\n }\r\n };\r\n const onHostMouseEnter = () => {\r\n mouseInHost = autoHideIsLeave;\r\n mouseInHost && manageScrollbarsAutoHide(true);\r\n };\r\n\r\n const destroyFns: (() => void)[] = [\r\n clearScrollTimeout,\r\n clearAutoTimeout,\r\n clearAutoHideTimeout,\r\n cancelScrollAnimationFrame,\r\n cancelMouseMoveAnimationFrame,\r\n destroyElements,\r\n\r\n on(_host, 'pointerover', onHostMouseEnter, { _once: true }),\r\n on(_host, 'pointerenter', onHostMouseEnter),\r\n on(_host, 'pointerleave', () => {\r\n mouseInHost = false;\r\n autoHideIsLeave && manageScrollbarsAutoHide(false);\r\n }),\r\n on(_host, 'pointermove', () => {\r\n autoHideIsMove &&\r\n requestMouseMoveAnimationFrame(() => {\r\n clearScrollTimeout();\r\n manageScrollbarsAutoHide(true);\r\n auotHideMoveTimeout(() => {\r\n autoHideIsMove && manageScrollbarsAutoHide(false);\r\n });\r\n });\r\n }),\r\n on(_scrollEventElement, 'scroll', () => {\r\n requestScrollAnimationFrame(() => {\r\n _refreshScrollbarsHandleOffset(structureSetupState());\r\n\r\n autoHideNotNever && manageScrollbarsAutoHide(true);\r\n scrollTimeout(() => {\r\n autoHideNotNever && !mouseInHost && manageScrollbarsAutoHide(false);\r\n });\r\n });\r\n\r\n _viewportIsTarget && styleHorizontal(styleScrollbarPosition);\r\n _viewportIsTarget && styleVertical(styleScrollbarPosition);\r\n }),\r\n ];\r\n const scrollbarsSetupState = getState.bind(0) as (() => ScrollbarsSetupState) &\r\n ScrollbarsSetupStaticState;\r\n scrollbarsSetupState._elements = elements;\r\n scrollbarsSetupState._appendElements = appendElements;\r\n\r\n return [\r\n (changedOptions, force, structureUpdateHints) => {\r\n const {\r\n _overflowEdgeChanged,\r\n _overflowAmountChanged,\r\n _overflowStyleChanged,\r\n _directionChanged,\r\n } = structureUpdateHints;\r\n const checkOption = createOptionCheck(options, changedOptions, force);\r\n const currStructureSetupState = structureSetupState();\r\n const { _overflowAmount, _overflowStyle, _directionIsRTL } = currStructureSetupState;\r\n const [theme, themeChanged] = checkOption('scrollbars.theme');\r\n const [visibility, visibilityChanged] =\r\n checkOption('scrollbars.visibility');\r\n const [autoHide, autoHideChanged] =\r\n checkOption('scrollbars.autoHide');\r\n const [autoHideDelay] = checkOption('scrollbars.autoHideDelay');\r\n const [dragScroll, dragScrollChanged] = checkOption('scrollbars.dragScroll');\r\n const [clickScroll, clickScrollChanged] = checkOption('scrollbars.clickScroll');\r\n\r\n const updateHandle = _overflowEdgeChanged || _overflowAmountChanged || _directionChanged;\r\n const updateVisibility = _overflowStyleChanged || visibilityChanged;\r\n\r\n const setScrollbarVisibility = (overflowStyle: OverflowStyle, isHorizontal: boolean) => {\r\n const isVisible =\r\n visibility === 'visible' || (visibility === 'auto' && overflowStyle === 'scroll');\r\n scrollbarsAddRemoveClass(classNamesScrollbarVisible, isVisible, isHorizontal);\r\n return isVisible;\r\n };\r\n\r\n globalAutoHideDelay = autoHideDelay;\r\n\r\n if (themeChanged) {\r\n scrollbarsAddRemoveClass(prevTheme);\r\n scrollbarsAddRemoveClass(theme, true);\r\n\r\n prevTheme = theme;\r\n }\r\n if (autoHideChanged) {\r\n autoHideIsMove = autoHide === 'move';\r\n autoHideIsLeave = autoHide === 'leave';\r\n autoHideNotNever = autoHide !== 'never';\r\n manageScrollbarsAutoHide(!autoHideNotNever, true);\r\n }\r\n if (dragScrollChanged) {\r\n scrollbarsAddRemoveClass(classNamesScrollbarHandleInteractive, dragScroll);\r\n }\r\n if (clickScrollChanged) {\r\n scrollbarsAddRemoveClass(classNamesScrollbarTrackInteractive, clickScroll);\r\n }\r\n if (updateVisibility) {\r\n const xVisible = setScrollbarVisibility(_overflowStyle.x, true);\r\n const yVisible = setScrollbarVisibility(_overflowStyle.y, false);\r\n const hasCorner = xVisible && yVisible;\r\n\r\n scrollbarsAddRemoveClass(classNamesScrollbarCornerless, !hasCorner);\r\n }\r\n if (updateHandle) {\r\n _refreshScrollbarsHandleLength(currStructureSetupState);\r\n _refreshScrollbarsHandleOffset(currStructureSetupState);\r\n\r\n scrollbarsAddRemoveClass(classNamesScrollbarUnusable, !_overflowAmount.x, true);\r\n scrollbarsAddRemoveClass(classNamesScrollbarUnusable, !_overflowAmount.y, false);\r\n scrollbarsAddRemoveClass(classNameScrollbarRtl, _directionIsRTL && !_isBody);\r\n }\r\n },\r\n scrollbarsSetupState,\r\n runEachAndClear.bind(0, destroyFns),\r\n ];\r\n};\r\n","import { OverlayScrollbars } from 'overlayscrollbars';\r\n\r\nconst targets: Set = new Set();\r\nconst targetInstanceMap: WeakMap = new WeakMap();\r\n\r\n/**\r\n * Adds the given OverlayScrollbars instance to the given element.\r\n * @param target The element which is the target of the OverlayScrollbars instance.\r\n * @param osInstance The OverlayScrollbars instance.\r\n */\r\nexport const addInstance = (target: Element, osInstance: OverlayScrollbars): void => {\r\n targetInstanceMap.set(target, osInstance);\r\n targets.add(target);\r\n};\r\n\r\n/**\r\n * Removes a OverlayScrollbars instance from the given element.\r\n * @param target The element from which its OverlayScrollbars instance shall be removed.\r\n */\r\nexport const removeInstance = (target: Element): void => {\r\n targetInstanceMap.delete(target);\r\n targets.delete(target);\r\n};\r\n\r\n/**\r\n * Gets the OverlayScrollbars from the given element or undefined if it doesn't have one.\r\n * @param target The element of which its OverlayScrollbars instance shall be get.\r\n */\r\nexport const getInstance = (target: Element): OverlayScrollbars | undefined =>\r\n targetInstanceMap.get(target);\r\n\r\n/**\r\n * Gets a Map which represents all active OverayScrollbars instances.\r\n * The Key is the element and the value is the instance.\r\n */\r\nexport const allInstances = (): ReadonlyMap => {\r\n const validTargetInstanceMap: Map = new Map();\r\n\r\n targets.forEach((target: Element) => {\r\n /* istanbul ignore else */\r\n if (targetInstanceMap.has(target)) {\r\n validTargetInstanceMap.set(target, targetInstanceMap.get(target)!);\r\n }\r\n });\r\n\r\n targets.clear();\r\n\r\n validTargetInstanceMap.forEach((instance: OverlayScrollbars, validTarget: Element) => {\r\n targets.add(validTarget);\r\n });\r\n\r\n return validTargetInstanceMap;\r\n};\r\n","import {\r\n assignDeep,\r\n isEmptyObject,\r\n each,\r\n isFunction,\r\n keys,\r\n isHTMLElement,\r\n XY,\r\n TRBL,\r\n createEventListenerHub,\r\n} from 'support';\r\nimport { createStructureSetup, createScrollbarsSetup } from 'setups';\r\nimport { getOptionsDiff, Options, ReadonlyOptions } from 'options';\r\nimport { getEnvironment } from 'environment';\r\nimport {\r\n getPlugins,\r\n addPlugin,\r\n optionsValidationPluginName,\r\n Plugin,\r\n OptionsValidationPluginInstance,\r\n} from 'plugins';\r\nimport { addInstance, getInstance, removeInstance } from 'instances';\r\nimport type { DeepPartial, OverflowStyle } from 'typings';\r\nimport { InitializationTarget, Initialization, cancelInitialization } from 'initialization';\r\nimport type {\r\n InitialEventListeners as GeneralInitialEventListeners,\r\n EventListener as GeneralEventListener,\r\n} from 'support/eventListeners';\r\n\r\nexport interface OverlayScrollbarsStatic {\r\n (\r\n target: InitializationTarget,\r\n options?: DeepPartial,\r\n eventListeners?: GeneralInitialEventListeners\r\n ): OverlayScrollbars;\r\n\r\n plugin(plugin: Plugin | Plugin[]): void;\r\n env(): Environment;\r\n}\r\n\r\nexport interface Environment {\r\n scrollbarsSize: XY;\r\n scrollbarsOverlaid: XY;\r\n scrollbarsHiding: boolean;\r\n rtlScrollBehavior: { n: boolean; i: boolean };\r\n flexboxGlue: boolean;\r\n cssCustomProperties: boolean;\r\n staticDefaultInitialization: Initialization;\r\n staticDefaultOptions: Options;\r\n\r\n getDefaultInitialization(): Initialization;\r\n setDefaultInitialization(newDefaultInitialization: DeepPartial): void;\r\n getDefaultOptions(): Options;\r\n setDefaultOptions(newDefaultOptions: DeepPartial): void;\r\n}\r\n\r\nexport interface State {\r\n padding: TRBL;\r\n paddingAbsolute: boolean;\r\n overflowEdge: XY;\r\n overflowAmount: XY;\r\n overflowStyle: XY;\r\n hasOverflow: XY;\r\n directionRTL: boolean;\r\n destroyed: boolean;\r\n}\r\n\r\nexport interface Elements {\r\n target: HTMLElement;\r\n host: HTMLElement;\r\n padding: HTMLElement;\r\n viewport: HTMLElement;\r\n content: HTMLElement;\r\n}\r\n\r\nexport interface OnUpdatedEventListenerArgs {\r\n updateHints: {\r\n sizeChanged: boolean;\r\n directionChanged: boolean;\r\n heightIntrinsicChanged: boolean;\r\n overflowEdgeChanged: boolean;\r\n overflowAmountChanged: boolean;\r\n overflowStyleChanged: boolean;\r\n hostMutation: boolean;\r\n contentMutation: boolean;\r\n };\r\n changedOptions: DeepPartial;\r\n force: boolean;\r\n}\r\n\r\nexport type EventListenerMap = {\r\n /**\r\n * Triggered after all elements are initialized and appended.\r\n */\r\n initialized: [instance: OverlayScrollbars];\r\n /**\r\n * Triggered after an update.\r\n */\r\n updated: [instance: OverlayScrollbars, onUpdatedArgs: OnUpdatedEventListenerArgs];\r\n /**\r\n * Triggered after all elements, observers and events are destroyed.\r\n */\r\n destroyed: [instance: OverlayScrollbars, canceled: boolean];\r\n};\r\n\r\nexport type InitialEventListeners = GeneralInitialEventListeners;\r\n\r\nexport type EventListener = GeneralEventListener<\r\n EventListenerMap,\r\n Name\r\n>;\r\n\r\nexport interface OverlayScrollbars {\r\n options(): Options;\r\n options(newOptions?: DeepPartial): Options;\r\n\r\n update(force?: boolean): OverlayScrollbars;\r\n\r\n destroy(): void;\r\n\r\n state(): State;\r\n\r\n elements(): Elements;\r\n\r\n on(name: Name, listener: EventListener): () => void;\r\n on(name: Name, listener: EventListener[]): () => void;\r\n\r\n off(name: Name, listener: EventListener): void;\r\n off(name: Name, listener: EventListener[]): void;\r\n}\r\n\r\n/**\r\n * Notes:\r\n * Height intrinsic detection use \"content: true\" init strategy - or open ticket for custom height intrinsic observer\r\n */\r\n\r\nexport const OverlayScrollbars: OverlayScrollbarsStatic = (\r\n target,\r\n options?,\r\n eventListeners?\r\n): OverlayScrollbars => {\r\n let destroyed = false;\r\n const { _getDefaultOptions, _addListener: addEnvListener } = getEnvironment();\r\n const plugins = getPlugins();\r\n const targetIsElement = isHTMLElement(target);\r\n const instanceTarget = targetIsElement ? target : target.target;\r\n const potentialInstance = getInstance(instanceTarget);\r\n if (potentialInstance) {\r\n return potentialInstance;\r\n }\r\n\r\n const optionsValidationPlugin = plugins[\r\n optionsValidationPluginName\r\n ] as OptionsValidationPluginInstance;\r\n const validateOptions = (newOptions?: DeepPartial) => {\r\n const opts = newOptions || {};\r\n const validate = optionsValidationPlugin && optionsValidationPlugin._;\r\n return validate ? validate(opts, true) : opts;\r\n };\r\n const currentOptions: ReadonlyOptions = assignDeep(\r\n {},\r\n _getDefaultOptions(),\r\n validateOptions(options)\r\n );\r\n const [addEvent, removeEvent, triggerEvent] = createEventListenerHub(eventListeners);\r\n const [updateStructure, structureState, destroyStructure] = createStructureSetup(\r\n target,\r\n currentOptions\r\n );\r\n const [updateScrollbars, scrollbarsState, destroyScrollbars] = createScrollbarsSetup(\r\n target,\r\n currentOptions,\r\n structureState\r\n );\r\n const update = (changedOptions: DeepPartial, force?: boolean) => {\r\n updateStructure(changedOptions, !!force);\r\n };\r\n const removeEnvListener = addEnvListener(update.bind(0, {}, true));\r\n const destroy = (canceled?: boolean) => {\r\n removeInstance(instanceTarget);\r\n removeEnvListener();\r\n\r\n destroyScrollbars();\r\n destroyStructure();\r\n\r\n destroyed = true;\r\n\r\n // eslint-disable-next-line no-use-before-define\r\n triggerEvent('destroyed', [instance, !!canceled]);\r\n removeEvent();\r\n };\r\n\r\n const instance: OverlayScrollbars = {\r\n options(newOptions?: DeepPartial) {\r\n if (newOptions) {\r\n const changedOptions = getOptionsDiff(currentOptions, validateOptions(newOptions));\r\n\r\n if (!isEmptyObject(changedOptions)) {\r\n assignDeep(currentOptions, changedOptions);\r\n update(changedOptions);\r\n }\r\n }\r\n return assignDeep({}, currentOptions);\r\n },\r\n on: addEvent,\r\n off: (name, listener) => {\r\n name && listener && removeEvent(name, listener as any);\r\n },\r\n state() {\r\n const {\r\n _overflowEdge,\r\n _overflowAmount,\r\n _overflowStyle,\r\n _hasOverflow,\r\n _padding,\r\n _paddingAbsolute,\r\n _directionIsRTL,\r\n } = structureState();\r\n return assignDeep(\r\n {},\r\n {\r\n overflowEdge: _overflowEdge,\r\n overflowAmount: _overflowAmount,\r\n overflowStyle: _overflowStyle,\r\n hasOverflow: _hasOverflow,\r\n padding: _padding,\r\n paddingAbsolute: _paddingAbsolute,\r\n directionRTL: _directionIsRTL,\r\n destroyed,\r\n }\r\n );\r\n },\r\n elements() {\r\n const { _target, _host, _padding, _viewport, _content } = structureState._elements;\r\n return assignDeep(\r\n {},\r\n {\r\n target: _target,\r\n host: _host,\r\n padding: _padding || _viewport,\r\n viewport: _viewport,\r\n content: _content || _viewport,\r\n }\r\n );\r\n },\r\n update(force?: boolean) {\r\n update({}, force);\r\n return instance;\r\n },\r\n destroy: destroy.bind(0),\r\n };\r\n\r\n structureState._addOnUpdatedListener((updateHints, changedOptions, force: boolean) => {\r\n updateScrollbars(changedOptions, force, updateHints);\r\n });\r\n\r\n each(keys(plugins), (pluginName) => {\r\n const pluginInstance = plugins[pluginName];\r\n if (isFunction(pluginInstance)) {\r\n pluginInstance(OverlayScrollbars, instance);\r\n }\r\n });\r\n\r\n if (cancelInitialization(!targetIsElement && target.cancel, structureState._elements)) {\r\n destroy(true);\r\n return instance;\r\n }\r\n\r\n structureState._appendElements();\r\n scrollbarsState._appendElements();\r\n\r\n addInstance(instanceTarget, instance);\r\n triggerEvent('initialized', [instance]);\r\n\r\n structureState._addOnUpdatedListener((updateHints, changedOptions, force) => {\r\n const {\r\n _sizeChanged,\r\n _directionChanged,\r\n _heightIntrinsicChanged,\r\n _overflowEdgeChanged,\r\n _overflowAmountChanged,\r\n _overflowStyleChanged,\r\n _contentMutation,\r\n _hostMutation,\r\n } = updateHints;\r\n\r\n triggerEvent('updated', [\r\n instance,\r\n {\r\n updateHints: {\r\n sizeChanged: _sizeChanged,\r\n directionChanged: _directionChanged,\r\n heightIntrinsicChanged: _heightIntrinsicChanged,\r\n overflowEdgeChanged: _overflowEdgeChanged,\r\n overflowAmountChanged: _overflowAmountChanged,\r\n overflowStyleChanged: _overflowStyleChanged,\r\n contentMutation: _contentMutation,\r\n hostMutation: _hostMutation,\r\n },\r\n changedOptions,\r\n force,\r\n },\r\n ]);\r\n });\r\n\r\n return instance.update(true);\r\n};\r\n\r\nOverlayScrollbars.plugin = addPlugin;\r\nOverlayScrollbars.env = () => {\r\n const {\r\n _nativeScrollbarsSize,\r\n _nativeScrollbarsOverlaid,\r\n _nativeScrollbarsHiding,\r\n _rtlScrollBehavior,\r\n _flexboxGlue,\r\n _cssCustomProperties,\r\n _staticDefaultInitialization,\r\n _staticDefaultOptions,\r\n _getDefaultInitialization,\r\n _setDefaultInitialization,\r\n _getDefaultOptions,\r\n _setDefaultOptions,\r\n } = getEnvironment();\r\n return assignDeep(\r\n {},\r\n {\r\n scrollbarsSize: _nativeScrollbarsSize,\r\n scrollbarsOverlaid: _nativeScrollbarsOverlaid,\r\n scrollbarsHiding: _nativeScrollbarsHiding,\r\n rtlScrollBehavior: _rtlScrollBehavior,\r\n flexboxGlue: _flexboxGlue,\r\n cssCustomProperties: _cssCustomProperties,\r\n staticDefaultInitialization: _staticDefaultInitialization,\r\n staticDefaultOptions: _staticDefaultOptions,\r\n\r\n getDefaultInitialization: _getDefaultInitialization,\r\n setDefaultInitialization: _setDefaultInitialization,\r\n getDefaultOptions: _getDefaultOptions,\r\n setDefaultOptions: _setDefaultOptions,\r\n }\r\n );\r\n};\r\n"],"names":["each","source","callback","isArrayLike","i","length","Object","keys","key","style","elm","styles","getSingleStyle","isString","getStyles","isArray","getStylesResult","computedStyle","window","getComputedStyle","getCSSVal","reduce","result","setCSSVal","createCache","options","update","o","_initialValue","u","_equal","_","_alwaysUpdateValues","_value","_previous","cacheUpdateContextual","newValue","force","curr","newVal","changed","cacheUpdateIsolated","getCurrentCache","ElementNodeType","Node","ELEMENT_NODE","toString","hasOwnProperty","prototype","isUndefined","obj","undefined","isNull","type","call","replace","toLowerCase","isNumber","isBoolean","isFunction","Array","isObject","lengthCorrectFormat","isPlainObject","cstr","ctor","ctorProto","hasOwnConstructor","hasIsPrototypeOf","isHTMLElement","instanceofObj","HTMLElement","nodeType","isElement","Element","indexOf","arr","item","fromIndex","push","array","items","arrayIsSingleItem","apply","from","original","Set","forEach","value","isEmptyArray","runEachAndClear","args","keep","runFn","fn","prop","assignDeep","target","object1","object2","object3","object4","object5","object6","sources","copy","copyIsArray","src","clone","isEmptyObject","name","getSetProp","topLeft","fallback","attr","attrName","getAttribute","setAttribute","attrClass","add","currValues","currValuesSet","split","join","trim","hasAttrClass","has","removeAttr","removeAttribute","scrollLeft","scrollTop","elmPrototype","find","selector","rootElm","document","querySelectorAll","findFirst","querySelector","is","matches","msMatchesSelector","contents","childNodes","parent","parentElement","closest","closestFn","liesBetween","highBoundarySelector","deepBoundarySelector","closestHighBoundaryElm","closestDeepBoundaryElm","before","parentElm","preferredAnchor","insertedElms","anchor","fragment","createDocumentFragment","insertedElm","previousSibling","appendChild","firstChild","nextSibling","insertBefore","appendChildren","node","children","insertedNodes","insertAfter","removeElements","nodes","e","removeChild","createDiv","classNames","div","createElement","createDOM","html","createdDiv","innerHTML","firstLetterToUpper","str","charAt","toUpperCase","slice","getDummyStyle","cssPrefixes","jsPrefixes","jsCache","cssCache","cssProperty","uppercasedName","elmStyle","prefix","prefixWithoutDashes","resultPossibilities","resultPossibility","jsAPI","MutationObserverConstructor","IntersectionObserverConstructor","ResizeObserverConstructor","cAF","rAF","setT","setTimeout","clearT","clearTimeout","rnothtmlwhite","classListAction","className","action","classList","clazz","classes","match","hasClass","contains","removeClass","remove","addClass","bind","equal","a","b","props","propMutation","compareA","compareB","equalWH","equalXY","equalTRBL","equalBCRWH","round","Math","noop","debounce","functionToDebounce","maxTimeoutId","prevArguments","latestArguments","clear","g","_timeout","v","_maxDelay","p","_mergeParams","invokeFunctionToDebounce","this","mergeParms","flush","debouncedFn","arguments","finalTimeout","hasTimeout","finalMaxWait","hasMaxWait","setTimeoutFn","clearTimeoutFn","mergeParamsResult","invokedArgs","boundInvoke","timeoutId","_flush","cssNumber","opacity","zindex","parseToZeroOrNumber","toFloat","num","parseFloat","parseInt","adaptCSSVal","val","getPropertyValue","setProperty","directionIsRTL","topRightBottomLeft","propertyPrefix","propertySuffix","finalPrefix","finalSuffix","top","right","bottom","left","t","r","l","zeroObj","w","h","windowSize","innerWidth","innerHeight","offsetSize","offsetWidth","offsetHeight","clientSize","clientWidth","clientHeight","scrollSize","scrollWidth","scrollHeight","fractionalSize","cssHeight","cssWidth","getBoundingClientRect","passiveEventsSupport","supportPassiveEvents","addEventListener","defineProperty","get","splitEventNames","eventNames","off","listener","capture","eventName","removeEventListener","on","_ref","doSupportPassiveEvents","passive","_passive","_capture","once","_once","offListeners","nativeOptions","finalListener","evt","stopPropagation","preventDefault","x","y","absoluteCoordinates","rect","pageYOffset","pageXOffset","manageListener","createEventListenerHub","initialEventListeners","events","Map","removeEvent","eventSet","currListener","addEvent","set","triggerEvent","event","initialListenerKeys","getPropByPath","path","createOptionCheck","changedOptions","createState","initialState","state","newState","classNameEnvironment","classNameEnvironmentFlexboxGlue","classNameEnvironmentFlexboxGlueMax","dataAttributeHost","dataAttributeHostOverflowX","dataAttributeHostOverflowY","dataValueHostOverflowVisible","dataValueHostScrollbarHidden","dataValueHostUpdating","classNamePadding","classNameViewport","classNameViewportArrange","classNameContent","classNameViewportScrollbarHidden","classNameOverflowVisible","classNameSizeObserver","classNameSizeObserverAppear","classNameSizeObserverListener","classNameSizeObserverListenerScroll","classNameSizeObserverListenerItem","classNameSizeObserverListenerItemFinal","classNameTrinsicObserver","classNameScrollbar","classNameScrollbarRtl","classNameScrollbarHorizontal","classNameScrollbarVertical","classNameScrollbarTrack","classNameScrollbarHandle","classNamesScrollbarVisible","classNamesScrollbarCornerless","classNamesScrollbarTransitionless","classNamesScrollbarInteraction","classNamesScrollbarUnusable","classNamesScrollbarAutoHidden","classNamesScrollbarTrackInteractive","classNamesScrollbarHandleInteractive","opsStringify","JSON","stringify","Error","defaultOptions","paddingAbsolute","showNativeOverlaidScrollbars","updating","elementEvents","attributes","ignoreMutation","overflow","scrollbars","theme","visibility","autoHide","autoHideDelay","dragScroll","clickScroll","pointers","getOptionsDiff","currOptions","newOptions","diff","optionsKeys","concat","optionKey","currOptionValue","newOptionValue","isDiff","pluginRegistry","getPlugins","addPlugin","addedPlugin","plugin","pluginName","optionsTemplateTypes","boolean","number","string","object","function","null","numberAllowedValues","oTypes","booleanAllowedValues","arrayNullValues","overflowAllowedValues","scrollbarsVisibilityAllowedValues","scrollbarsAutoHideAllowedValues","optionsValidationPluginName","scrollAmount","scrollEventName","sizeObserverPluginName","sizeObserverPlugin","listenerElement","onSizeChangedCallback","observeAppearChange","observerElementChildren","observerElementChildrenRoot","shrinkElement","lastChild","expandElement","expandElementChild","cacheSize","currSize","isDirty","rAFId","reset","onResized","appear","onScroll","scrollEvent","width","height","contentArrangeCounter","abs","getWindowDPR","dDPI","screen","deviceXDPI","sDPI","logicalXDPI","devicePixelRatio","diffBiggerThanOne","valOne","valTwo","absValOne","absValTwo","scrollbarsHidingPluginName","scrollbarsHidingPlugin","_createUniqueViewportArrangeElement","env","T","_nativeScrollbarsHiding","I","_nativeScrollbarsOverlaid","L","_cssCustomProperties","create","_overflowUpdateSegment","doViewportArrange","flexboxGlue","viewport","viewportArrange","getState","getViewportOverflowState","hideNativeScrollbars","arrangeViewport","viewportOverflowState","viewportScrollSize","sizeFraction","P","_viewportPaddingStyle","D","_scrollbarsHideOffset","M","_scrollbarsHideOffsetArrange","arrangeX","arrangeY","hideOffsetX","hideOffsetY","viewportArrangeHorizontalPaddingKey","viewportArrangeHorizontalPaddingValue","viewportArrangeVerticalPaddingValue","paddingTop","fractionalContentWidth","fractionalContenHeight","arrangeSize","sheet","cssRules","insertRule","ruleStyle","undoViewportArrange","finalViewportOverflowState","viewportPaddingStyle","finalPaddingStyle","assignProps","prevStyle","_envWindowZoom","size","dpr","envInstance","updateNativeScrollbarSizeCache","sizeNew","deltaSize","deltaAbsSize","deltaAbsRatio","dprNew","deltaIsBigger","difference","dprChanged","isZoom","scrollbarSize","scrollbarSizeChanged","_nativeScrollbarsSize","environmentInstance","getNativeScrollbarSize","body","measureElm","measureElmChild","cSize","oSize","fSize","getNativeScrollbarsHiding","testElm","revertClass","ex","getRtlScrollBehavior","childElm","strHidden","overflowX","overflowY","direction","parentOffset","childOffset","childOffsetAfterScroll","n","getFlexboxGlue","revertFbxGlue","minOffsetsizeParent","minOffsetsize","supportsMin","revertFbxGlueMax","maxOffsetsizeParent","maxOffsetsize","supportsMax","createEnvironment","envDOM","envElm","envChildElm","getNativeScrollbarSizeCache","nativeScrollbarsSize","nativeScrollbarsHiding","nativeScrollbarsOverlaid","staticDefaultInitialization","host","padding","ownerDocument","content","scrollbarsSlot","cancel","staticDefaultOptions","_rtlScrollBehavior","_flexboxGlue","_addListener","_getDefaultInitialization","_setDefaultInitialization","newInitializationStrategy","_getDefaultOptions","_setDefaultOptions","newDefaultOptions","_staticDefaultInitialization","_staticDefaultOptions","resizeFn","getEnvironment","resolveInitialization","staticInitializationElement","fallbackStaticInitializationElement","defaultStaticInitializationElementStrategy","staticInitializationElementValue","staticInitialization","resolvedInitialization","dynamicInitializationElement","fallbackDynamicInitializationElement","defaultDynamicInitializationElementStrategy","dynamicInitializationElementValue","dynamicInitialization","cancelInitialization","cancelInitializationValue","structureSetupElements","W","_isBody","X","_viewportIsTarget","Y","defaultNativeScrollbarsOverlaid","defaultbody","resolvedNativeScrollbarsOverlaid","resolvedDocumentScrollingElement","finalNativeScrollbarsOverlaid","finalDocumentScrollingElement","createNewDiv","unwrap","addDataAttrHost","createStructureSetupElements","createUniqueViewportArrangeElement","defaultHostInitialization","defaultViewportInitialization","defaultPaddingInitialization","defaultContentInitialization","targetIsElm","targetStructureInitialization","hostInitialization","paddingInitialization","viewportInitialization","contentInitialization","targetElement","isTextarea","isBody","wnd","defaultView","generalStaticInitializationElement","generalDynamicInitializationElement","viewportElement","viewportIsTarget","evaluatedTargetObj","_target","_host","_viewport","_padding","_content","_viewportArrange","_scrollOffsetElement","documentElement","_scrollEventElement","_windowElm","_documentElm","_isTextarea","_targetIsElm","_viewportHasClass","attributeClassName","_viewportAddRemoveClass","generatedElements","elementIsGenerated","J","K","tt","Z","nt","ot","destroyFns","isTextareaHostGenerated","targetContents","contentSlot","appendElements","removeHostDataAttr","removePaddingClass","removeViewportClass","removeContentClass","removeHtmlClass","createTrinsicUpdateSegment","updateHints","V","ft","_heightIntrinsic","_t","_heightIntrinsicChanged","heightIntrinsicChanged","_sizeChanged","_contentMutation","createPaddingUpdateSegment","setState","_isSingleElm","updatePaddingCache","currentPaddingCache","checkOption","paddingChanged","_nativeScrollbarStyling","vt","_directionIsRTL","ht","gt","wt","_directionChanged","paddingAbsoluteChanged","contentMutation","paddingStyleChanged","paddingRelative","paddingHorizontal","paddingVertical","paddingStyle","marginRight","marginBottom","marginLeft","viewportStyle","paddingRight","paddingBottom","paddingLeft","_paddingAbsolute","_paddingStyleChanged","max","max0","strVisible","overlaidScrollbarsHideOffset","whCacheOptions","xyCacheOptions","getOverflowAmount","viewportClientSize","tollerance","amount","conditionalClass","overflowIsVisible","overflowBehavior","createOverflowUpdateSegment","dt","k","updateSizeFraction","getCurrentSizeFraction","updateViewportScrollSizeCache","getCurrentViewportScrollSizeCache","updateOverflowAmountCache","getCurrentOverflowAmountCache","updateOverflowEdge","getCurrentOverflowEdgeCache","updateOverflowStyleCache","fixFlexboxGlue","heightIntrinsic","bt","St","_overflowScroll","hostClientSize","isContentBox","subtractXScrollbar","viewportStyleObj","arrangeHideOffset","getStatePerAxis","styleKey","isOverlaid","nativeScrollbarSize","overflowStyle","objectPrefferedOverflowStyle","overflowScroll","nonScrollbarStylingHideOffset","scrollbarsHideOffset","scrollbarsHideOffsetArrange","xOverflowStyle","xOverflowScroll","xScrollbarsHideOffset","xScrollbarsHideOffsetArrange","yOverflowStyle","yOverflowScroll","yScrollbarsHideOffset","yScrollbarsHideOffsetArrange","_overflowStyle","setViewportOverflowState","hasOverflow","overflowOption","setAxisOverflowStyle","behavior","hasOverflowAxis","overflowVisible","overflowVisibleBehavior","visibleBehaviorX","visibleBehaviorY","horizontalMarginKey","viewportHorizontalPaddingKey","horizontalMarginValue","verticalMarginValue","horizontalPaddingValue","verticalPaddingValue","$t","_hostMutation","yt","showNativeOverlaidScrollbarsOption","showNativeOverlaidScrollbarsChanged","overflowChanged","adjustFlexboxGlue","overflowXVisible","overflowYVisible","sizeFractionCache","viewportScrollSizeCache","overflowAmuntCache","overflowEdgeCache","preMeasureViewportOverflowState","redoViewportArrange","undoViewportArrangeOverflowState","sizeFractionChanged","viewportScrollSizeChanged","viewportclientSize","arrangedViewportScrollSize","arrangedViewportClientSize","overflowAmountScrollSize","overflowAmountClientSize","overflowEdge","overflowEdgeChanged","overflowAmount","overflowAmountChanged","removeClipping","viewportArranged","overflowStyleChanged","_overflowEdge","_overflowAmount","_hasOverflow","_overflowStyleChanged","_overflowEdgeChanged","_overflowAmountChanged","prepareUpdateHints","leading","adaptive","finalAdaptive","objKeys","leadingValue","adaptiveValue","createStructureSetupUpdate","updateSegments","initialUpdateHints","adjustScrollOffset","scrollOffsetX","scrollOffsetY","adaptivedUpdateHints","updateSegment","domRectHasDimensions","createSizeObserver","_direction","observeDirectionChange","_appear","rtlScrollBehavior","baseElements","sizeObserver","getIsDirectionRTL","updateResizeObserverContentRectCache","currVal","onSizeChangedCallbackProxy","sizeChangedContext","isResizeObserverCall","hasDirectionCache","skip","doDirectionScroll","currRContentRect","prevContentRect","pop","contentRect","hasDimensions","hadDimensions","rtl","_directionIsRTLCache","appearCallback","resizeObserverInstance","observe","disconnect","pluginAppearCallback","pluginOffListeners","updateDirectionIsRTLCache","directionIsRTLCacheValues","directionIsRTLCache","directionIsRTLCacheChanged","isHeightIntrinsic","ioEntryOrSize","isIntersecting","intersectionRatio","createTrinsicObserver","onTrinsicChangedCallback","intersectionObserverInstance","trinsicObserver","updateHeightIntrinsicCache","triggerOnTrinsicChangedCallback","updateValue","fromRecords","intersectionObserverCallback","entries","root","onSizeChanged","newSize","destroySizeObserver","appendSizeObserver","takeRecords","createEventContentChange","eventContentChange","map","destroyed","destroy","updateElements","getElements","eventElmList","elements","entry","entryEventNames","entryOff","delete","WeakMap","createDOMObserver","isContentObserver","isConnected","Pt","_attributes","Dt","_styleChangingAttributes","Mt","_eventContentChange","Rt","_nestedTargetSelector","kt","_ignoreTargetChange","Bt","_ignoreContentChange","debouncedEventContentChange","destroyEventContentChange","updateEventContentChangeElements","finalAttributes","finalStyleChangingAttributes","observedAttributes","observerCallback","mutations","ignoreTargetChange","ignoreContentChange","targetChangedAttrs","totalAddedNodes","targetStyleChanged","contentChanged","childListChanged","mutation","attributeName","mutationTarget","oldValue","addedNodes","isAttributesType","isChildListType","targetIsMutationTarget","attributeValue","attributeChanged","styleChangingAttrChanged","notOnlyAttrChanged","contentAttrChanged","isNestedTarget","baseAssertion","contentFinalChanged","mutationObserver","attributeOldValue","attributeFilter","subtree","childList","characterData","records","hostSelector","viewportSelector","viewportAttrsFromTarget","baseStyleChangingAttrsTextarea","baseStyleChangingAttrs","createStructureSetupObservers","structureSetupUpdate","debounceTimeout","debounceMaxDelay","contentMutationObserver","it","ut","updateContentSizeCache","hasOver","hasVpStyle","contentScroll","viewportScroll","fractional","contentMutationObserverAttr","structureSetupUpdateWithDebouncedAdaptiveUpdateHints","prev","prevObj","currObj","updateViewportAttrsFromHost","attribute","hostAttr","onTrinsicChanged","heightIntrinsicCache","updateFn","directionChanged","directionIsRTLChanged","onContentMutation","contentChangedTroughEvent","contentSizeChanged","onHostMutation","destroyTrinsicObserver","appendTrinsicObserver","updateTrinsicObserver","destroyHostMutationObserver","updateHostMutationObserver","viewportIsTargetResizeObserver","hostUpdateResult","trinsicUpdateResult","contentUpdateResult","attributesChanged","elementEventsChanged","debounceValue","debounceChanged","updateContentMutationObserver","ignoreMutationFromOptions","ignore","timeout","maxWait","initialXYNumber","initialStructureSetupUpdateState","createStructureSetup","checkOptionsFallback","appendStructureElements","destroyElements","updateStructure","triggerUpdateEvent","truthyUpdateHints","some","destroyObservers","appendObserverElements","updateObservers","updateObserversOptions","structureSetupState","_addOnUpdatedListener","_appendElements","_elements","getClientOffset","clientX","clientY","getScale","element","continuePointerDown","scrollType","scrollbarOptions","button","isPrimary","pointerType","includes","createRootClickStopPropagationEvents","scrollbar","documentElm","createDragScrollingEvents","doc","scrollbarStructure","scrollOffsetElement","isHorizontal","B","qt","_handle","Ft","_track","Gt","_scrollbar","scrollOffsetKey","xyKey","whKey","createOnPointerMoveHandler","mouseDownScroll","mouseDownClientOffset","mouseDownInvertedScale","Ot","movement","handleTrackDiff","scrollDeltaPercent","scrollDelta","isRTL","negateMultiplactor","pointerDownEvent","offSelectStart","offPointerMove","pointerUpEvent","releasePointerCapture","pointerId","setPointerCapture","createScrollbarsSetupEvents","scrollbarsAddRemoveClass","scrollOffsetElm","min","getScrollbarHandleLengthRatio","scrollbarHandle","scrollbarTrack","axis","Ct","viewportSize","handleSize","trackSize","getScrollbarHandleOffsetRatio","scrollLeftTop","scrollPositionMax","scrollPosition","handleRTL","rtlNormalizedScrollPosition","finalScrollPosition","scrollPercent","lengthRatio","createScrollbarsSetupElements","scrollbarsSetupEvents","defaultScrollbarsSlot","rt","lt","st","evaluatedScrollbarSlot","scrollbarStructureAddRemoveClass","scrollbarStructures","scrollbarsHandleStyle","scrollbarStructureRefreshHandleLength","structure","toFixed","scrollbarStructureRefreshHandleOffset","translateAxis","offsetRatio","validOffsetRatio","transform","horizontalScrollbars","verticalScrollbars","onlyHorizontal","singleAxis","runHorizontal","runVertical","refreshScrollbarsHandleLength","refreshScrollbarsHandleOffset","generateScrollbarDOM","scrollbarClassName","arrToPush","transitionlessClass","track","handle","generateHorizontalScrollbarStructure","generateVerticalScrollbarStructure","_refreshScrollbarsHandleLength","_refreshScrollbarsHandleOffset","_scrollbarsAddRemoveClass","_horizontal","_scrollbarStructures","_clone","_handleStyle","_vertical","createSelfCancelTimeout","id","setTFn","clearTFn","createScrollbarsSetup","autoHideIsMove","autoHideIsLeave","autoHideNotNever","mouseInHost","prevTheme","globalAutoHideDelay","requestMouseMoveAnimationFrame","cancelMouseMoveAnimationFrame","requestScrollAnimationFrame","cancelScrollAnimationFrame","scrollTimeout","clearScrollTimeout","auotHideMoveTimeout","clearAutoHideTimeout","auotHideTimeout","clearAutoTimeout","et","Xt","Qt","Nt","Ut","styleHorizontal","styleVertical","styleScrollbarPosition","manageScrollbarsAutoHide","removeAutoHide","delayless","hide","onHostMouseEnter","scrollbarsSetupState","structureUpdateHints","It","zt","Tt","currStructureSetupState","xt","themeChanged","visibilityChanged","autoHideChanged","dragScrollChanged","clickScrollChanged","updateHandle","updateVisibility","setScrollbarVisibility","isVisible","xVisible","yVisible","hasCorner","targets","targetInstanceMap","addInstance","osInstance","removeInstance","getInstance","OverlayScrollbars","eventListeners","F","addEnvListener","plugins","targetIsElement","instanceTarget","potentialInstance","optionsValidationPlugin","validateOptions","opts","validate","currentOptions","structureState","destroyStructure","updateScrollbars","scrollbarsState","destroyScrollbars","removeEnvListener","canceled","instance","At","directionRTL","pluginInstance","sizeChanged","hostMutation","N","U","q","G","scrollbarsSize","scrollbarsOverlaid","scrollbarsHiding","cssCustomProperties","getDefaultInitialization","setDefaultInitialization","getDefaultOptions","setDefaultOptions"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"overlayscrollbars.esm.js","sources":["../src/support/utils/array.ts","../src/support/dom/style.ts","../src/support/cache.ts","../src/support/utils/types.ts","../src/support/utils/object.ts","../src/support/dom/attribute.ts","../src/support/dom/traversal.ts","../src/support/dom/manipulation.ts","../src/support/dom/create.ts","../src/support/compatibility/vendors.ts","../src/support/compatibility/apis.ts","../src/support/dom/class.ts","../src/support/utils/equal.ts","../src/support/utils/function.ts","../src/support/dom/dimensions.ts","../src/support/dom/events.ts","../src/support/dom/offset.ts","../src/support/eventListeners.ts","../src/setups/setups.ts","../src/classnames.ts","../src/options.ts","../src/plugins/plugins.ts","../src/plugins/optionsValidationPlugin/validation.ts","../src/plugins/optionsValidationPlugin/optionsValidationPlugin.ts","../src/plugins/sizeObserverPlugin/sizeObserverPlugin.ts","../src/plugins/scrollbarsHidingPlugin/scrollbarsHidingPlugin.ts","../src/environment.ts","../src/initialization.ts","../src/setups/structureSetup/structureSetup.elements.ts","../src/setups/structureSetup/updateSegments/trinsicUpdateSegment.ts","../src/setups/structureSetup/updateSegments/paddingUpdateSegment.ts","../src/setups/structureSetup/updateSegments/overflowUpdateSegment.ts","../src/setups/structureSetup/structureSetup.update.ts","../src/observers/sizeObserver.ts","../src/observers/trinsicObserver.ts","../src/observers/domObserver.ts","../src/setups/structureSetup/structureSetup.observers.ts","../src/setups/structureSetup/structureSetup.ts","../src/setups/scrollbarsSetup/scrollbarsSetup.events.ts","../src/setups/scrollbarsSetup/scrollbarsSetup.calculations.ts","../src/setups/scrollbarsSetup/scrollbarsSetup.elements.ts","../src/setups/scrollbarsSetup/scrollbarsSetup.ts","../src/instances.ts","../src/overlayscrollbars.ts"],"sourcesContent":["import { isArrayLike, isString } from 'support/utils/types';\r\nimport { PlainObject } from 'typings';\r\n\r\ntype RunEachItem = ((...args: any) => any | any[]) | null | undefined;\r\n\r\n/**\r\n * Iterates through a array or object\r\n * @param arrayLikeOrObject The array or object through which shall be iterated.\r\n * @param callback The function which is responsible for the iteration.\r\n * If the function returns true its treated like a \"continue\" statement.\r\n * If the function returns false its treated like a \"break\" statement.\r\n */\r\nexport function each(\r\n array: Array | ReadonlyArray,\r\n callback: (value: T, indexOrKey: number, source: Array) => boolean | unknown\r\n): Array | ReadonlyArray;\r\nexport function each(\r\n array: Array | ReadonlyArray | false | null | undefined,\r\n callback: (value: T, indexOrKey: number, source: Array) => boolean | unknown\r\n): Array | ReadonlyArray | false | null | undefined;\r\nexport function each(\r\n arrayLikeObject: ArrayLike,\r\n callback: (value: T, indexOrKey: number, source: ArrayLike) => boolean | unknown\r\n): ArrayLike;\r\nexport function each(\r\n arrayLikeObject: ArrayLike | false | null | undefined,\r\n callback: (value: T, indexOrKey: number, source: ArrayLike) => boolean | unknown\r\n): ArrayLike | false | null | undefined;\r\nexport function each(\r\n obj: PlainObject,\r\n callback: (value: any, indexOrKey: string, source: PlainObject) => boolean | unknown\r\n): PlainObject;\r\nexport function each(\r\n obj: PlainObject | false | null | undefined,\r\n callback: (value: any, indexOrKey: string, source: PlainObject) => boolean | unknown\r\n): PlainObject | false | null | undefined;\r\nexport function each(\r\n source: Array | ArrayLike | ReadonlyArray | PlainObject | false | null | undefined,\r\n callback: (value: T, indexOrKey: any, source: any) => boolean | unknown\r\n): Array | ArrayLike | ReadonlyArray | PlainObject | false | null | undefined {\r\n if (isArrayLike(source)) {\r\n for (let i = 0; i < source.length; i++) {\r\n if (callback(source[i], i, source) === false) {\r\n break;\r\n }\r\n }\r\n } else if (source) {\r\n each(Object.keys(source), (key) => callback(source[key], key, source));\r\n }\r\n return source;\r\n}\r\n\r\n/**\r\n * Returns the index of the given inside the given array or -1 if the given item isn't part of the given array.\r\n * @param arr The array.\r\n * @param item The item.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0.\r\n */\r\nexport const indexOf = (arr: T[], item: T, fromIndex?: number): number =>\r\n arr.indexOf(item, fromIndex);\r\n\r\n/**\r\n * Pushesh all given items into the given array and returns it.\r\n * @param array The array the items shall be pushed into.\r\n * @param items The items which shall be pushed into the array.\r\n */\r\nexport const push = (array: T[], items: T | ArrayLike, arrayIsSingleItem?: boolean): T[] => {\r\n !arrayIsSingleItem && !isString(items) && isArrayLike(items)\r\n ? Array.prototype.push.apply(array, items as T[])\r\n : array.push(items as T);\r\n return array;\r\n};\r\n\r\n/**\r\n * Creates a shallow-copied Array instance from an array-like or iterable object.\r\n * @param arr The object from which the array instance shall be created.\r\n */\r\nexport const from = (arr?: ArrayLike | Set) => {\r\n const original = Array.from;\r\n const result: T[] = [];\r\n\r\n if (original && arr) {\r\n return original(arr);\r\n }\r\n\r\n if (arr instanceof Set) {\r\n arr.forEach((value) => {\r\n push(result, value);\r\n });\r\n } else {\r\n each(arr, (elm) => {\r\n push(result, elm);\r\n });\r\n }\r\n\r\n return result;\r\n};\r\n\r\n/**\r\n * Check whether the passed array is empty.\r\n * @param array The array which shall be checked.\r\n */\r\nexport const isEmptyArray = (array: any[] | null | undefined): boolean =>\r\n !!array && array.length === 0;\r\n\r\n/**\r\n * Calls all functions in the passed array/set of functions.\r\n * @param arr The array filled with function which shall be called.\r\n * @param args The args with which each function is called.\r\n * @param keep True when the Set / array should not be cleared afterwards, false otherwise.\r\n */\r\nexport const runEachAndClear = (arr: RunEachItem[], args?: any[], keep?: boolean): void => {\r\n // eslint-disable-next-line prefer-spread\r\n const runFn = (fn: RunEachItem) => fn && fn.apply(undefined, args || []);\r\n each(arr, runFn);\r\n !keep && ((arr as any[]).length = 0);\r\n};\r\n","import { each, keys } from 'support/utils';\r\nimport { isString, isNumber, isArray, isUndefined } from 'support/utils/types';\r\nimport { PlainObject, StyleObject } from 'typings';\r\n\r\nexport interface TRBL {\r\n t: number;\r\n r: number;\r\n b: number;\r\n l: number;\r\n}\r\n\r\nconst cssNumber = {\r\n // animationiterationcount: 1,\r\n // columncount: 1,\r\n // fillopacity: 1,\r\n // flexgrow: 1,\r\n // flexshrink: 1,\r\n // fontweight: 1,\r\n // lineheight: 1,\r\n // order: 1,\r\n // orphans: 1,\r\n // widows: 1,\r\n // zoom: 1,\r\n opacity: 1,\r\n zindex: 1,\r\n};\r\n\r\nconst parseToZeroOrNumber = (value: string, toFloat?: boolean): number => {\r\n /* istanbul ignore next */\r\n const num = toFloat ? parseFloat(value) : parseInt(value, 10);\r\n // num === num means num is not NaN\r\n /* istanbul ignore next */\r\n return num === num ? num : 0; // eslint-disable-line no-self-compare\r\n};\r\n\r\nconst adaptCSSVal = (prop: string, val: string | number): string | number =>\r\n !cssNumber[prop.toLowerCase()] && isNumber(val) ? `${val}px` : val;\r\n\r\nconst getCSSVal = (elm: HTMLElement, computedStyle: CSSStyleDeclaration, prop: string): string =>\r\n /* istanbul ignore next */\r\n computedStyle != null\r\n ? computedStyle[prop] || computedStyle.getPropertyValue(prop)\r\n : elm.style[prop];\r\n\r\nconst setCSSVal = (elm: HTMLElement, prop: string, val: string | number): void => {\r\n try {\r\n const { style: elmStyle } = elm;\r\n if (!isUndefined(elmStyle[prop])) {\r\n elmStyle[prop] = adaptCSSVal(prop, val);\r\n } else {\r\n elmStyle.setProperty(prop, val as string);\r\n }\r\n } catch (e) {}\r\n};\r\n\r\n/**\r\n * Gets or sets the passed styles to the passed element.\r\n * @param elm The element to which the styles shall be applied to / be read from.\r\n * @param styles The styles which shall be set or read.\r\n */\r\nexport function style(\r\n elm: HTMLElement | false | null | undefined,\r\n styles: StyleObject\r\n): void;\r\nexport function style(\r\n elm: HTMLElement | false | null | undefined,\r\n styles: string\r\n): string;\r\nexport function style(\r\n elm: HTMLElement | false | null | undefined,\r\n styles: Array | string\r\n): { [key: string]: string };\r\nexport function style(\r\n elm: HTMLElement | false | null | undefined,\r\n styles: StyleObject | Array | string\r\n): { [key: string]: string } | string | void {\r\n const getSingleStyle = isString(styles);\r\n const getStyles = isArray(styles) || getSingleStyle;\r\n\r\n if (getStyles) {\r\n let getStylesResult: string | PlainObject = getSingleStyle ? '' : {};\r\n if (elm) {\r\n const computedStyle: CSSStyleDeclaration = window.getComputedStyle(elm, null);\r\n getStylesResult = getSingleStyle\r\n ? getCSSVal(elm, computedStyle, styles as string)\r\n : (styles as Array).reduce((result, key) => {\r\n result[key] = getCSSVal(elm, computedStyle, key as string);\r\n return result;\r\n }, getStylesResult);\r\n }\r\n return getStylesResult;\r\n }\r\n elm && each(keys(styles), (key) => setCSSVal(elm, key, styles[key]));\r\n}\r\n\r\n/**\r\n * Hides the passed element (display: none).\r\n * @param elm The element which shall be hidden.\r\n */\r\nexport const hide = (elm: HTMLElement | false | null | undefined): void => {\r\n style(elm, { display: 'none' });\r\n};\r\n\r\n/**\r\n * Shows the passed element (display: block).\r\n * @param elm The element which shall be shown.\r\n */\r\nexport const show = (elm: HTMLElement | false | null | undefined): void => {\r\n style(elm, { display: 'block' });\r\n};\r\n\r\nexport const directionIsRTL = (elm: HTMLElement | false | null | undefined): boolean =>\r\n style(elm, 'direction') === 'rtl';\r\n\r\n/**\r\n * Returns the top right bottom left values of the passed css property.\r\n * @param elm The element of which the values shall be returned.\r\n * @param propertyPrefix The css property prefix. (e.g. \"border\")\r\n * @param propertySuffix The css property suffix. (e.g. \"width\")\r\n */\r\nexport const topRightBottomLeft = (\r\n elm?: HTMLElement | false | null | undefined,\r\n propertyPrefix?: string,\r\n propertySuffix?: string\r\n): TRBL => {\r\n const finalPrefix = propertyPrefix ? `${propertyPrefix}-` : '';\r\n const finalSuffix = propertySuffix ? `-${propertySuffix}` : '';\r\n const top = `${finalPrefix}top${finalSuffix}`;\r\n const right = `${finalPrefix}right${finalSuffix}`;\r\n const bottom = `${finalPrefix}bottom${finalSuffix}`;\r\n const left = `${finalPrefix}left${finalSuffix}`;\r\n const result = style(elm, [top, right, bottom, left]);\r\n return {\r\n t: parseToZeroOrNumber(result[top]),\r\n r: parseToZeroOrNumber(result[right]),\r\n b: parseToZeroOrNumber(result[bottom]),\r\n l: parseToZeroOrNumber(result[left]),\r\n };\r\n};\r\n","export interface CacheOptions {\r\n // initial value of _value.\r\n _initialValue: Value;\r\n // Custom comparison function if shallow compare isn't enough. Returns true if nothing changed.\r\n _equal?: EqualCachePropFunction;\r\n // If true always updates _value and _previous, otherwise they update only when they changed.\r\n _alwaysUpdateValues?: boolean;\r\n}\r\n\r\nexport type CacheValues = [value: T, changed: boolean, previous?: T];\r\n\r\nexport type EqualCachePropFunction = (currentVal: Value, newVal: Value) => boolean;\r\n\r\nexport type CacheUpdater = (current: Value, previous?: Value) => Value;\r\n\r\nexport type UpdateCacheContextual = (newValue: Value, force?: boolean) => CacheValues;\r\n\r\nexport type UpdateCache = (force?: boolean) => CacheValues;\r\n\r\nexport type GetCurrentCache = (force?: boolean) => CacheValues;\r\n\r\nexport type Cache = [UpdateCache, GetCurrentCache];\r\n\r\nexport type CacheContextual = [UpdateCacheContextual, GetCurrentCache];\r\n\r\ntype CreateCache = {\r\n (options: CacheOptions): CacheContextual;\r\n (options: CacheOptions, update: CacheUpdater): Cache;\r\n (options: CacheOptions, update?: CacheUpdater):\r\n | CacheContextual\r\n | Cache;\r\n};\r\n\r\nexport const createCache: CreateCache = (\r\n options: CacheOptions,\r\n update?: CacheUpdater\r\n): CacheContextual | Cache => {\r\n const { _initialValue, _equal, _alwaysUpdateValues } = options;\r\n let _value: Value = _initialValue;\r\n let _previous: Value | undefined;\r\n\r\n const cacheUpdateContextual: UpdateCacheContextual = (newValue, force?) => {\r\n const curr = _value;\r\n\r\n const newVal = newValue;\r\n const changed = force || (_equal ? !_equal(curr, newVal) : curr !== newVal);\r\n\r\n if (changed || _alwaysUpdateValues) {\r\n _value = newVal;\r\n _previous = curr;\r\n }\r\n\r\n return [_value, changed, _previous];\r\n };\r\n const cacheUpdateIsolated: UpdateCache = (force?) =>\r\n cacheUpdateContextual(update!(_value, _previous), force);\r\n\r\n const getCurrentCache: GetCurrentCache = (force?: boolean) => [\r\n _value,\r\n !!force, // changed\r\n _previous,\r\n ];\r\n\r\n return [update ? cacheUpdateIsolated : cacheUpdateContextual, getCurrentCache] as\r\n | CacheContextual\r\n | Cache;\r\n};\r\n","import { PlainObject } from 'typings';\r\n\r\nconst ElementNodeType = Node.ELEMENT_NODE;\r\nconst { toString, hasOwnProperty } = Object.prototype;\r\n\r\nexport const isUndefined = (obj: any): obj is undefined => obj === undefined;\r\n\r\nexport const isNull = (obj: any): obj is null => obj === null;\r\n\r\nexport const type = (obj: any): string =>\r\n isUndefined(obj) || isNull(obj)\r\n ? `${obj}`\r\n : toString\r\n .call(obj)\r\n .replace(/^\\[object (.+)\\]$/, '$1')\r\n .toLowerCase();\r\n\r\nexport const isNumber = (obj: any): obj is number => typeof obj === 'number';\r\n\r\nexport const isString = (obj: any): obj is string => typeof obj === 'string';\r\n\r\nexport const isBoolean = (obj: any): obj is boolean => typeof obj === 'boolean';\r\n\r\nexport const isFunction = (obj: any): obj is (...args: any[]) => any => typeof obj === 'function';\r\n\r\nexport const isArray = (obj: any): obj is Array => Array.isArray(obj);\r\n\r\nexport const isObject = (obj: any): boolean =>\r\n typeof obj === 'object' && !isArray(obj) && !isNull(obj);\r\n\r\n/**\r\n * Returns true if the given object is array like, false otherwise.\r\n * @param obj The Object\r\n */\r\nexport const isArrayLike = (obj: any): obj is ArrayLike => {\r\n const length = !!obj && obj.length;\r\n const lengthCorrectFormat = isNumber(length) && length > -1 && length % 1 == 0; // eslint-disable-line eqeqeq\r\n\r\n return isArray(obj) || (!isFunction(obj) && lengthCorrectFormat)\r\n ? length > 0 && isObject(obj)\r\n ? length - 1 in obj\r\n : true\r\n : false;\r\n};\r\n\r\n/**\r\n * Returns true if the given object is a \"plain\" (e.g. { key: value }) object, false otherwise.\r\n * @param obj The Object.\r\n */\r\nexport const isPlainObject = (obj: any): obj is PlainObject => {\r\n if (!obj || !isObject(obj) || type(obj) !== 'object') return false;\r\n\r\n let key;\r\n const cstr = 'constructor';\r\n const ctor = obj[cstr];\r\n const ctorProto = ctor && ctor.prototype;\r\n const hasOwnConstructor = hasOwnProperty.call(obj, cstr);\r\n const hasIsPrototypeOf = ctorProto && hasOwnProperty.call(ctorProto, 'isPrototypeOf');\r\n\r\n if (ctor && !hasOwnConstructor && !hasIsPrototypeOf) {\r\n return false;\r\n }\r\n\r\n /* eslint-disable no-restricted-syntax */\r\n for (key in obj) {\r\n /**/\r\n }\r\n /* eslint-enable */\r\n\r\n return isUndefined(key) || hasOwnProperty.call(obj, key);\r\n};\r\n\r\n/**\r\n * Checks whether the given object is a HTMLElement.\r\n * @param obj The object which shall be checked.\r\n */\r\nexport const isHTMLElement = (obj: any): obj is HTMLElement => {\r\n const instanceofObj = HTMLElement;\r\n return obj\r\n ? instanceofObj\r\n ? obj instanceof instanceofObj\r\n : obj.nodeType === ElementNodeType\r\n : false;\r\n};\r\n\r\n/**\r\n * Checks whether the given object is a Element.\r\n * @param obj The object which shall be checked.\r\n */\r\nexport const isElement = (obj: any): obj is Element => {\r\n const instanceofObj = Element;\r\n return obj\r\n ? instanceofObj\r\n ? obj instanceof instanceofObj\r\n : obj.nodeType === ElementNodeType\r\n : false;\r\n};\r\n","import { isArray, isFunction, isPlainObject, isNull } from 'support/utils/types';\r\nimport { each } from 'support/utils/array';\r\n\r\n/**\r\n * Determines whether the passed object has a property with the passed name.\r\n * @param obj The object.\r\n * @param prop The name of the property.\r\n */\r\nexport const hasOwnProperty = (obj: any, prop: string | number | symbol): boolean =>\r\n Object.prototype.hasOwnProperty.call(obj, prop);\r\n\r\n/**\r\n * Returns the names of the enumerable string properties and methods of an object.\r\n * @param obj The object of which the properties shall be returned.\r\n */\r\nexport const keys = (obj: any): Array => (obj ? Object.keys(obj) : []);\r\n\r\ntype AssignDeep = {\r\n (target: T, object1: U): T & U;\r\n (target: T, object1: U, object2: V): T & U & V;\r\n (target: T, object1: U, object2: V, object3: W): T & U & V & W;\r\n (target: T, object1: U, object2: V, object3: W, object4: X): T & U & V & W & X;\r\n (target: T, object1: U, object2: V, object3: W, object4: X, object5: Y): T &\r\n U &\r\n V &\r\n W &\r\n X &\r\n Y;\r\n (\r\n target: T,\r\n object1?: U,\r\n object2?: V,\r\n object3?: W,\r\n object4?: X,\r\n object5?: Y,\r\n object6?: Z\r\n ): T & U & V & W & X & Y & Z;\r\n};\r\n\r\n// https://github.com/jquery/jquery/blob/master/src/core.js#L116\r\nexport const assignDeep: AssignDeep = (\r\n target: T,\r\n object1?: U,\r\n object2?: V,\r\n object3?: W,\r\n object4?: X,\r\n object5?: Y,\r\n object6?: Z\r\n): T & U & V & W & X & Y & Z => {\r\n const sources: Array = [object1, object2, object3, object4, object5, object6];\r\n\r\n // Handle case when target is a string or something (possible in deep copy)\r\n if ((typeof target !== 'object' || isNull(target)) && !isFunction(target)) {\r\n target = {} as T;\r\n }\r\n\r\n each(sources, (source) => {\r\n // Extend the base object\r\n each(keys(source), (key) => {\r\n const copy: any = source[key];\r\n\r\n // Prevent Object.prototype pollution\r\n // Prevent never-ending loop\r\n if (target === copy) {\r\n return true;\r\n }\r\n\r\n const copyIsArray = isArray(copy);\r\n\r\n // Recurse if we're merging plain objects or arrays\r\n if (copy && (isPlainObject(copy) || copyIsArray)) {\r\n const src = target[key];\r\n let clone: any = src;\r\n\r\n // Ensure proper type for the source value\r\n if (copyIsArray && !isArray(src)) {\r\n clone = [];\r\n } else if (!copyIsArray && !isPlainObject(src)) {\r\n clone = {};\r\n }\r\n\r\n // Never move original objects, clone them\r\n target[key] = assignDeep(clone, copy) as any;\r\n } else {\r\n target[key] = copy;\r\n }\r\n });\r\n });\r\n\r\n // Return the modified object\r\n return target as any;\r\n};\r\n\r\n/**\r\n * Returns true if the given object is empty, false otherwise.\r\n * @param obj The Object.\r\n */\r\nexport const isEmptyObject = (obj: any): boolean => {\r\n /* eslint-disable no-restricted-syntax, guard-for-in */\r\n for (const name in obj) return false;\r\n return true;\r\n /* eslint-enable */\r\n};\r\n","import { from } from 'support/utils/array';\r\nimport { isNull, isUndefined } from 'support/utils/types';\r\n\r\ntype GetSetPropName = 'scrollLeft' | 'scrollTop' | 'value';\r\n\r\ntype Attr = {\r\n (elm: HTMLElement | false | null | undefined, attrName: string): string | null;\r\n (elm: HTMLElement | false | null | undefined, attrName: string, value: string): void;\r\n (elm: HTMLElement | false | null | undefined, attrName: string, value?: string):\r\n | string\r\n | null\r\n | void;\r\n};\r\n\r\ntype GetSetProp = {\r\n (elm: HTMLElement | false | null | undefined): T;\r\n (elm: HTMLElement | false | null | undefined, value: T | false | null): void;\r\n (elm: HTMLElement | false | null | undefined, value?: T | false | null): T | void;\r\n};\r\n\r\nconst getSetProp = (\r\n topLeft: GetSetPropName,\r\n fallback: number | string,\r\n elm: HTMLElement | HTMLInputElement | false | null | undefined,\r\n value?: number | string | false | null\r\n): number | string | void => {\r\n if (isUndefined(value)) {\r\n return elm ? elm[topLeft] : fallback;\r\n }\r\n elm && !isNull(value) && value !== false && (elm[topLeft] = value);\r\n};\r\n\r\n/**\r\n * Gets or sets a attribute with the given attribute of the given element depending whether the value attribute is given.\r\n * Returns null if the element has no attribute with the given name.\r\n * @param elm The element of which the attribute shall be get or set.\r\n * @param attrName The attribute name which shall be get or set.\r\n * @param value The value of the attribute which shall be set.\r\n */\r\nexport const attr = ((\r\n elm: HTMLElement | false | null | undefined,\r\n attrName: string,\r\n value?: string\r\n): string | null | void => {\r\n if (isUndefined(value)) {\r\n return elm ? elm.getAttribute(attrName) : null;\r\n }\r\n elm && elm.setAttribute(attrName, value);\r\n}) as Attr;\r\n\r\n/**\r\n * Treats the given attribute like the \"class\" attribute and adds or removes the given value from it.\r\n * @param elm The element.\r\n * @param attrName The attributeName to which the value shall be added or removed.\r\n * @param value The value which shall be added or removed.\r\n * @param add True if the value shall be added, false otherwise.\r\n */\r\nexport const attrClass = (\r\n elm: HTMLElement | false | null | undefined,\r\n attrName: string,\r\n value: string,\r\n add?: boolean\r\n) => {\r\n if (value) {\r\n const currValues = attr(elm, attrName) || '';\r\n const currValuesSet = new Set(currValues.split(' '));\r\n currValuesSet[add ? 'add' : 'delete'](value);\r\n\r\n attr(elm, attrName, from(currValuesSet).join(' ').trim());\r\n }\r\n};\r\n\r\n/**\r\n * Treats the given attribute like the \"class\" attribute and checks if the given value is in it.\r\n * @param elm The element.\r\n * @param attrName The attributeName from which the content shall be checked.\r\n * @param value The value.\r\n * @returns True if the given attribute has the value in it, false otherwise.\r\n */\r\nexport const hasAttrClass = (\r\n elm: HTMLElement | false | null | undefined,\r\n attrName: string,\r\n value: string\r\n) => {\r\n const currValues = attr(elm, attrName) || '';\r\n const currValuesSet = new Set(currValues.split(' '));\r\n return currValuesSet.has(value);\r\n};\r\n\r\n/**\r\n * Removes the given attribute from the given element.\r\n * @param elm The element of which the attribute shall be removed.\r\n * @param attrName The attribute name.\r\n */\r\nexport const removeAttr = (elm: Element | false | null | undefined, attrName: string): void => {\r\n elm && elm.removeAttribute(attrName);\r\n};\r\n\r\n/**\r\n * Gets or sets the scrollLeft value of the given element depending whether the value attribute is given.\r\n * @param elm The element of which the scrollLeft value shall be get or set.\r\n * @param value The scrollLeft value which shall be set.\r\n */\r\nexport const scrollLeft = ((\r\n elm: HTMLElement | false | null | undefined,\r\n value?: number | false | null\r\n): number | void => getSetProp('scrollLeft', 0, elm, value) as number) as GetSetProp;\r\n\r\n/**\r\n * Gets or sets the scrollTop value of the given element depending whether the value attribute is given.\r\n * @param elm The element of which the scrollTop value shall be get or set.\r\n * @param value The scrollTop value which shall be set.\r\n */\r\nexport const scrollTop = ((\r\n elm: HTMLElement | false | null | undefined,\r\n value?: number | false | null\r\n): number | void => getSetProp('scrollTop', 0, elm, value) as number) as GetSetProp;\r\n\r\n/**\r\n * Gets or sets the value of the given input element depending whether the value attribute is given.\r\n * @param elm The input element of which the value shall be get or set.\r\n * @param value The value which shall be set.\r\n */\r\nexport const val = ((\r\n elm: HTMLInputElement | false | null | undefined,\r\n value?: string\r\n): string | void => getSetProp('value', '', elm, value) as string) as GetSetProp;\r\n","import { isElement } from 'support/utils/types';\r\nimport { push, from } from 'support/utils/array';\r\n\r\ntype InputElementType = Node | Element | Node | false | null | undefined;\r\ntype OutputElementType = Node | Element | null;\r\n\r\nconst elmPrototype = Element.prototype;\r\n\r\n/**\r\n * Find all elements with the passed selector, outgoing (and including) the passed element or the document if no element was provided.\r\n * @param selector The selector which has to be searched by.\r\n * @param elm The element from which the search shall be outgoing.\r\n */\r\nconst find = (selector: string, elm?: InputElementType): Element[] => {\r\n const arr: Array = [];\r\n const rootElm = elm ? (isElement(elm) ? elm : null) : document;\r\n\r\n return rootElm ? push(arr, rootElm.querySelectorAll(selector)) : arr;\r\n};\r\n\r\n/**\r\n * Find the first element with the passed selector, outgoing (and including) the passed element or the document if no element was provided.\r\n * @param selector The selector which has to be searched by.\r\n * @param elm The element from which the search shall be outgoing.\r\n */\r\nconst findFirst = (selector: string, elm?: InputElementType): OutputElementType => {\r\n const rootElm = elm ? (isElement(elm) ? elm : null) : document;\r\n\r\n return rootElm ? rootElm.querySelector(selector) : null;\r\n};\r\n\r\n/**\r\n * Determines whether the passed element is matching with the passed selector.\r\n * @param elm The element which has to be compared with the passed selector.\r\n * @param selector The selector which has to be compared with the passed element. Additional selectors: ':visible' and ':hidden'.\r\n */\r\nconst is = (elm: InputElementType, selector: string): boolean => {\r\n if (isElement(elm)) {\r\n /* istanbul ignore next */\r\n // eslint-disable-next-line\r\n // @ts-ignore\r\n const fn: (...args: any) => boolean = elmPrototype.matches || elmPrototype.msMatchesSelector;\r\n return fn.call(elm, selector);\r\n }\r\n return false;\r\n};\r\n\r\n/**\r\n * Returns the children (no text-nodes or comments) of the passed element which are matching the passed selector. An empty array is returned if the passed element is null.\r\n * @param elm The element of which the children shall be returned.\r\n * @param selector The selector which must match with the children elements.\r\n */\r\nconst children = (elm: InputElementType, selector?: string): ReadonlyArray => {\r\n const childs: Array = [];\r\n\r\n return isElement(elm)\r\n ? push(\r\n childs,\r\n from(elm.children).filter((child) => (selector ? is(child, selector) : child))\r\n )\r\n : childs;\r\n};\r\n\r\n/**\r\n * Returns the childNodes (incl. text-nodes or comments etc.) of the passed element. An empty array is returned if the passed element is null.\r\n * @param elm The element of which the childNodes shall be returned.\r\n */\r\nconst contents = (elm: InputElementType): ReadonlyArray =>\r\n elm ? from(elm.childNodes) : [];\r\n\r\n/**\r\n * Returns the parent element of the passed element, or null if the passed element is null.\r\n * @param elm The element of which the parent element shall be returned.\r\n */\r\nconst parent = (elm: InputElementType): OutputElementType => (elm ? elm.parentElement : null);\r\n\r\nconst closest = (elm: InputElementType, selector: string): OutputElementType => {\r\n if (isElement(elm)) {\r\n const closestFn = elmPrototype.closest;\r\n if (closestFn) {\r\n return closestFn.call(elm, selector);\r\n }\r\n\r\n do {\r\n if (is(elm, selector)) {\r\n return elm as Element;\r\n }\r\n elm = parent(elm);\r\n } while (elm);\r\n }\r\n\r\n return null;\r\n};\r\n\r\n/**\r\n * Determines whether the given element lies between two selectors in the DOM.\r\n * @param elm The element.\r\n * @param highBoundarySelector The high boundary selector.\r\n * @param deepBoundarySelector The deep boundary selector.\r\n */\r\nconst liesBetween = (\r\n elm: InputElementType,\r\n highBoundarySelector: string,\r\n deepBoundarySelector: string\r\n): boolean => {\r\n const closestHighBoundaryElm = elm && closest(elm, highBoundarySelector);\r\n const closestDeepBoundaryElm = elm && findFirst(deepBoundarySelector, closestHighBoundaryElm);\r\n const deepBoundaryIsValid =\r\n closest(closestDeepBoundaryElm, highBoundarySelector) === closestHighBoundaryElm;\r\n\r\n return closestHighBoundaryElm && closestDeepBoundaryElm\r\n ? closestHighBoundaryElm === elm ||\r\n closestDeepBoundaryElm === elm ||\r\n (deepBoundaryIsValid &&\r\n closest(closest(elm, deepBoundarySelector), highBoundarySelector) !==\r\n closestHighBoundaryElm)\r\n : false;\r\n};\r\n\r\nexport { find, findFirst, is, children, contents, parent, liesBetween, closest };\r\n","import { isArrayLike } from 'support/utils/types';\r\nimport { each, from } from 'support/utils/array';\r\nimport { parent } from 'support/dom/traversal';\r\n\r\ntype NodeCollection = ArrayLike | Node | false | null | undefined;\r\n\r\n/**\r\n * Inserts Nodes before the given preferredAnchor element.\r\n * @param parentElm The parent of the preferredAnchor element or the element which shall be the parent of the inserted Nodes.\r\n * @param preferredAnchor The element before which the Nodes shall be inserted or null if the elements shall be appended at the end.\r\n * @param insertedElms The Nodes which shall be inserted.\r\n */\r\nconst before = (\r\n parentElm: Node | false | null | undefined,\r\n preferredAnchor: Node | false | null | undefined,\r\n insertedElms: NodeCollection\r\n): void => {\r\n if (insertedElms && parentElm) {\r\n let anchor: Node | false | null | undefined = preferredAnchor;\r\n let fragment: DocumentFragment | Node | null | undefined;\r\n\r\n if (isArrayLike(insertedElms)) {\r\n fragment = document.createDocumentFragment();\r\n\r\n // append all insertedElms to the fragment and if one of these is the anchor, change the anchor\r\n each(insertedElms, (insertedElm) => {\r\n if (insertedElm === anchor) {\r\n anchor = insertedElm.previousSibling;\r\n }\r\n fragment!.appendChild(insertedElm);\r\n });\r\n } else {\r\n fragment = insertedElms;\r\n }\r\n\r\n // if the preferred anchor isn't null set it to a valid anchor\r\n if (preferredAnchor) {\r\n if (!anchor) {\r\n anchor = parentElm.firstChild;\r\n } else if (anchor !== preferredAnchor) {\r\n anchor = anchor.nextSibling;\r\n }\r\n }\r\n\r\n parentElm.insertBefore(fragment, anchor || null);\r\n }\r\n};\r\n\r\n/**\r\n * Appends the given children at the end of the given Node.\r\n * @param node The Node to which the children shall be appended.\r\n * @param children The Nodes which shall be appended.\r\n */\r\nexport const appendChildren = (\r\n node: Node | false | null | undefined,\r\n children: NodeCollection\r\n): void => {\r\n before(node, null, children);\r\n};\r\n\r\n/**\r\n * Prepends the given children at the start of the given Node.\r\n * @param node The Node to which the children shall be prepended.\r\n * @param children The Nodes which shall be prepended.\r\n */\r\nexport const prependChildren = (\r\n node: Node | false | null | undefined,\r\n children: NodeCollection\r\n): void => {\r\n before(node, node && node.firstChild, children);\r\n};\r\n\r\n/**\r\n * Inserts the given Nodes before the given Node.\r\n * @param node The Node before which the given Nodes shall be inserted.\r\n * @param insertedNodes The Nodes which shall be inserted.\r\n */\r\nexport const insertBefore = (\r\n node: Node | false | null | undefined,\r\n insertedNodes: NodeCollection\r\n): void => {\r\n before(parent(node), node, insertedNodes);\r\n};\r\n\r\n/**\r\n * Inserts the given Nodes after the given Node.\r\n * @param node The Node after which the given Nodes shall be inserted.\r\n * @param insertedNodes The Nodes which shall be inserted.\r\n */\r\nexport const insertAfter = (\r\n node: Node | false | null | undefined,\r\n insertedNodes: NodeCollection\r\n): void => {\r\n before(parent(node), node && node.nextSibling, insertedNodes);\r\n};\r\n\r\n/**\r\n * Removes the given Nodes from their parent.\r\n * @param nodes The Nodes which shall be removed.\r\n */\r\nexport const removeElements = (nodes: NodeCollection): void => {\r\n if (isArrayLike(nodes)) {\r\n each(from(nodes), (e) => removeElements(e));\r\n } else if (nodes) {\r\n const parentElm = parent(nodes);\r\n if (parentElm) {\r\n parentElm.removeChild(nodes);\r\n }\r\n }\r\n};\r\n","import { each } from 'support/utils/array';\r\nimport { attr } from 'support/dom/attribute';\r\nimport { contents } from 'support/dom/traversal';\r\nimport { removeElements } from 'support/dom/manipulation';\r\n\r\n/**\r\n * Creates a div DOM node.\r\n */\r\nexport const createDiv = (classNames?: string): HTMLDivElement => {\r\n const div = document.createElement('div');\r\n if (classNames) {\r\n attr(div, 'class', classNames);\r\n }\r\n return div;\r\n};\r\n\r\n/**\r\n * Creates DOM nodes modeled after the passed html string and returns the root dom nodes as a array.\r\n * @param html The html string after which the DOM nodes shall be created.\r\n */\r\nexport const createDOM = (html: string): ReadonlyArray => {\r\n const createdDiv = createDiv();\r\n createdDiv.innerHTML = html.trim();\r\n\r\n return each(contents(createdDiv), (elm) => removeElements(elm));\r\n};\r\n","import { each } from 'support/utils/array';\r\nimport { hasOwnProperty } from 'support/utils/object';\r\nimport { createDiv } from 'support/dom/create';\r\n\r\nconst firstLetterToUpper = (str: string): string => str.charAt(0).toUpperCase() + str.slice(1);\r\nconst getDummyStyle = (): CSSStyleDeclaration => createDiv().style;\r\n\r\n// https://developer.mozilla.org/en-US/docs/Glossary/Vendor_Prefix\r\n\r\nexport const cssPrefixes: ReadonlyArray = ['-webkit-', '-moz-', '-o-', '-ms-'];\r\nexport const jsPrefixes: ReadonlyArray = [\r\n 'WebKit',\r\n 'Moz',\r\n 'O',\r\n 'MS',\r\n 'webkit',\r\n 'moz',\r\n 'o',\r\n 'ms',\r\n];\r\n\r\nexport const jsCache: { [key: string]: any } = {};\r\nexport const cssCache: { [key: string]: string } = {};\r\n\r\n/**\r\n * Gets the name of the given CSS property with vendor prefix if it isn't supported without it, or and empty string if unsupported.\r\n * @param name The name of the CSS property which shall be get.\r\n */\r\nexport const cssProperty = (name: string): string => {\r\n let result: string | undefined = cssCache[name];\r\n\r\n if (hasOwnProperty(cssCache, name)) {\r\n return result;\r\n }\r\n\r\n const uppercasedName: string = firstLetterToUpper(name);\r\n const elmStyle: CSSStyleDeclaration = getDummyStyle();\r\n\r\n each(cssPrefixes, (prefix: string) => {\r\n const prefixWithoutDashes: string = prefix.replace(/-/g, '');\r\n const resultPossibilities: Array = [\r\n name, // transition\r\n prefix + name, // -webkit-transition\r\n prefixWithoutDashes + uppercasedName, // webkitTransition\r\n firstLetterToUpper(prefixWithoutDashes) + uppercasedName, // WebkitTransition\r\n ];\r\n\r\n // eslint-disable-next-line no-return-assign\r\n return !(result = resultPossibilities.find(\r\n (resultPossibility: string) => elmStyle[resultPossibility] !== undefined\r\n ));\r\n });\r\n\r\n // eslint-disable-next-line no-return-assign\r\n return (cssCache[name] = result || '');\r\n};\r\n\r\n/**\r\n * Get the name of the given CSS property value(s), with vendor prefix if it isn't supported without it, or an empty string if no value is supported.\r\n * @param property The CSS property to which the CSS property value(s) belong.\r\n * @param values The value(s) separated by spaces which shall be get.\r\n * @param suffix A suffix which is added to each value in case the value is a function or something else more advanced.\r\n */\r\nexport const cssPropertyValue = (property: string, values: string, suffix?: string): string => {\r\n const name = `${property} ${values}`;\r\n let result: string | undefined = cssCache[name];\r\n\r\n if (hasOwnProperty(cssCache, name)) {\r\n return result;\r\n }\r\n\r\n const dummyStyle: CSSStyleDeclaration = getDummyStyle();\r\n const possbleValues: Array = values.split(' ');\r\n const preparedSuffix: string = suffix || '';\r\n const cssPrefixesWithFirstEmpty = [''].concat(cssPrefixes);\r\n\r\n each(possbleValues, (possibleValue: string) => {\r\n each(cssPrefixesWithFirstEmpty, (prefix: string) => {\r\n const prop = prefix + possibleValue;\r\n dummyStyle.cssText = `${property}:${prop}${preparedSuffix}`;\r\n if (dummyStyle.length) {\r\n result = prop;\r\n return false;\r\n }\r\n });\r\n return !result;\r\n });\r\n\r\n // eslint-disable-next-line no-return-assign\r\n return (cssCache[name] = result || '');\r\n};\r\n\r\n/**\r\n * Get the requested JS function, object or constructor with vendor prefix if it isn't supported without or undefined if unsupported.\r\n * @param name The name of the JS function, object or constructor.\r\n */\r\nexport const jsAPI = (name: string): T | undefined => {\r\n let result: any = jsCache[name] || window[name];\r\n\r\n if (hasOwnProperty(jsCache, name)) {\r\n return result;\r\n }\r\n\r\n each(jsPrefixes, (prefix: string) => {\r\n result = result || window[prefix + firstLetterToUpper(name)];\r\n return !result;\r\n });\r\n\r\n jsCache[name] = result;\r\n return result;\r\n};\r\n","import { jsAPI } from 'support/compatibility/vendors';\r\n\r\nexport const MutationObserverConstructor = jsAPI('MutationObserver');\r\nexport const IntersectionObserverConstructor =\r\n jsAPI('IntersectionObserver');\r\nexport const ResizeObserverConstructor = jsAPI('ResizeObserver');\r\nexport const cAF = jsAPI('cancelAnimationFrame');\r\nexport const rAF = jsAPI('requestAnimationFrame');\r\nexport const setT = window.setTimeout as (handler: TimerHandler, timeout?: number) => number;\r\nexport const clearT = window.clearTimeout as (id?: number) => void;\r\n","import { isString } from 'support/utils/types';\r\nimport { each } from 'support/utils/array';\r\nimport { keys } from 'support/utils/object';\r\n\r\ntype ClassContainingElement = Node | Element | false | null | undefined;\r\ntype ClassName = string | false | null | undefined;\r\n\r\nconst rnothtmlwhite = /[^\\x20\\t\\r\\n\\f]+/g;\r\nconst classListAction = (\r\n elm: ClassContainingElement,\r\n className: ClassName,\r\n action: (elmClassList: DOMTokenList, clazz: string) => boolean | void\r\n): boolean => {\r\n const classList = elm && (elm as Element).classList;\r\n let clazz: string;\r\n let i = 0;\r\n let result = false;\r\n\r\n if (classList && className && isString(className)) {\r\n const classes: Array = className.match(rnothtmlwhite) || [];\r\n result = classes.length > 0;\r\n while ((clazz = classes[i++])) {\r\n result = !!action(classList, clazz) && result;\r\n }\r\n }\r\n return result;\r\n};\r\n\r\n/**\r\n * Check whether the given element has the given class name(s).\r\n * @param elm The element.\r\n * @param className The class name(s).\r\n */\r\nexport const hasClass = (elm: ClassContainingElement, className: ClassName): boolean =>\r\n classListAction(elm, className, (classList, clazz) => classList.contains(clazz));\r\n\r\n/**\r\n * Removes the given class name(s) from the given element.\r\n * @param elm The element.\r\n * @param className The class name(s) which shall be removed. (separated by spaces)\r\n */\r\nexport const removeClass = (elm: ClassContainingElement, className: ClassName): void => {\r\n classListAction(elm, className, (classList, clazz) => classList.remove(clazz));\r\n};\r\n\r\n/**\r\n * Adds the given class name(s) to the given element.\r\n * @param elm The element.\r\n * @param className The class name(s) which shall be added. (separated by spaces)\r\n * @returns A function which removes the added class name(s).\r\n */\r\nexport const addClass = (elm: ClassContainingElement, className: ClassName): (() => void) => {\r\n classListAction(elm, className, (classList, clazz) => classList.add(clazz));\r\n return removeClass.bind(0, elm, className);\r\n};\r\n\r\n/**\r\n * Takes two className strings, compares them and returns the difference as array.\r\n * @param classNameA ClassName A.\r\n * @param classNameB ClassName B.\r\n */\r\nexport const diffClass = (classNameA: ClassName, classNameB: ClassName) => {\r\n const classNameASplit = classNameA && classNameA.split(' ');\r\n const classNameBSplit = classNameB && classNameB.split(' ');\r\n const tempObj = {};\r\n\r\n each(classNameASplit, (className) => {\r\n tempObj[className] = 1;\r\n });\r\n each(classNameBSplit, (className) => {\r\n if (tempObj[className]) {\r\n delete tempObj[className];\r\n } else {\r\n tempObj[className] = 1;\r\n }\r\n });\r\n\r\n return keys(tempObj);\r\n};\r\n","import { each } from 'support/utils/array';\r\nimport { WH, XY, TRBL } from 'support/dom';\r\nimport { PlainObject } from 'typings';\r\n\r\n/**\r\n * Compares two objects and returns true if all values of the passed prop names are identical, false otherwise or if one of the two object is falsy.\r\n * @param a Object a.\r\n * @param b Object b.\r\n * @param props The props which shall be compared.\r\n */\r\nexport const equal = (\r\n a: T | undefined,\r\n b: T | undefined,\r\n props: Array,\r\n propMutation?: ((value: any) => any) | null | false\r\n): boolean => {\r\n if (a && b) {\r\n let result = true;\r\n each(props, (prop) => {\r\n const compareA = propMutation ? propMutation(a[prop]) : a[prop];\r\n const compareB = propMutation ? propMutation(b[prop]) : b[prop];\r\n if (compareA !== compareB) {\r\n result = false;\r\n }\r\n });\r\n return result;\r\n }\r\n return false;\r\n};\r\n\r\n/**\r\n * Compares object a with object b and returns true if both have the same property values, false otherwise.\r\n * Also returns false if one of the objects is undefined or null.\r\n * @param a Object a.\r\n * @param b Object b.\r\n */\r\nexport const equalWH = (a?: WH, b?: WH) => equal>(a, b, ['w', 'h']);\r\n\r\n/**\r\n * Compares object a with object b and returns true if both have the same property values, false otherwise.\r\n * Also returns false if one of the objects is undefined or null.\r\n * @param a Object a.\r\n * @param b Object b.\r\n */\r\nexport const equalXY = (a?: XY, b?: XY) => equal>(a, b, ['x', 'y']);\r\n\r\n/**\r\n * Compares object a with object b and returns true if both have the same property values, false otherwise.\r\n * Also returns false if one of the objects is undefined or null.\r\n * @param a Object a.\r\n * @param b Object b.\r\n */\r\nexport const equalTRBL = (a?: TRBL, b?: TRBL) => equal(a, b, ['t', 'r', 'b', 'l']);\r\n\r\n/**\r\n * Compares two DOM Rects for their equality of their width and height properties\r\n * Also returns false if one of the DOM Rects is undefined or null.\r\n * @param a DOM Rect a.\r\n * @param b DOM Rect b.\r\n * @param round Whether the values should be rounded.\r\n */\r\nexport const equalBCRWH = (a?: DOMRect, b?: DOMRect, round?: boolean) =>\r\n equal(a, b, ['width', 'height'], round && ((value) => Math.round(value)));\r\n","import { isNumber, isFunction } from 'support/utils/types';\r\nimport { from } from 'support/utils/array';\r\nimport { rAF, cAF, setT, clearT } from 'support/compatibility/apis';\r\n\r\ntype DebounceTiming = number | false | null | undefined;\r\n\r\nexport interface DebounceOptions any> {\r\n /**\r\n * The timeout for debouncing. If null, no debounce is applied.\r\n */\r\n _timeout?: DebounceTiming | (() => DebounceTiming);\r\n /**\r\n * A maximum amount of ms. before the function will be called even with debounce.\r\n */\r\n _maxDelay?: DebounceTiming | (() => DebounceTiming);\r\n /**\r\n * Function which merges parameters for each canceled debounce.\r\n * If parameters can't be merged the function will return null, otherwise it returns the merged parameters.\r\n */\r\n _mergeParams?: (\r\n prev: Parameters,\r\n curr: Parameters\r\n ) => Parameters | false | null | undefined;\r\n}\r\n\r\nexport interface Debounced any> {\r\n (...args: Parameters): ReturnType;\r\n _flush(): void;\r\n}\r\n\r\nexport const noop = () => {}; // eslint-disable-line\r\n\r\n/**\r\n * Debounces the given function either with a timeout or a animation frame.\r\n * @param functionToDebounce The function which shall be debounced.\r\n * @param options Options for debouncing.\r\n */\r\nexport const debounce = any>(\r\n functionToDebounce: FunctionToDebounce,\r\n options?: DebounceOptions\r\n): Debounced => {\r\n let maxTimeoutId: number | undefined;\r\n let prevArguments: Parameters | null | undefined;\r\n let latestArguments: Parameters | null | undefined;\r\n let clear: () => void = noop;\r\n const { _timeout, _maxDelay, _mergeParams } = options || {};\r\n\r\n const invokeFunctionToDebounce = function (args: IArguments) {\r\n clear();\r\n clearT(maxTimeoutId);\r\n maxTimeoutId = prevArguments = undefined;\r\n clear = noop;\r\n // eslint-disable-next-line\r\n // @ts-ignore\r\n functionToDebounce.apply(this, args);\r\n };\r\n\r\n const mergeParms = (\r\n curr: Parameters\r\n ): Parameters | false | null | undefined =>\r\n _mergeParams && prevArguments ? _mergeParams(prevArguments, curr) : curr;\r\n\r\n const flush = () => {\r\n /* istanbul ignore next */\r\n if (clear !== noop) {\r\n invokeFunctionToDebounce(mergeParms(latestArguments!) || latestArguments!);\r\n }\r\n };\r\n\r\n const debouncedFn = function () {\r\n // eslint-disable-next-line prefer-rest-params\r\n const args: Parameters = from(arguments) as Parameters;\r\n const finalTimeout = isFunction(_timeout) ? _timeout() : _timeout;\r\n const hasTimeout = isNumber(finalTimeout) && finalTimeout >= 0;\r\n\r\n if (hasTimeout) {\r\n const finalMaxWait = isFunction(_maxDelay) ? _maxDelay() : _maxDelay;\r\n const hasMaxWait = isNumber(finalMaxWait) && finalMaxWait >= 0;\r\n const setTimeoutFn = finalTimeout > 0 ? setT : rAF!;\r\n const clearTimeoutFn = finalTimeout > 0 ? clearT : cAF!;\r\n const mergeParamsResult = mergeParms(args);\r\n const invokedArgs = mergeParamsResult || args;\r\n const boundInvoke = invokeFunctionToDebounce.bind(0, invokedArgs);\r\n\r\n // if (!mergeParamsResult) {\r\n // invokeFunctionToDebounce(prevArguments || args);\r\n // }\r\n\r\n clear();\r\n // @ts-ignore\r\n const timeoutId = setTimeoutFn(boundInvoke, finalTimeout);\r\n clear = () => clearTimeoutFn(timeoutId);\r\n\r\n if (hasMaxWait && !maxTimeoutId) {\r\n maxTimeoutId = setT(flush, finalMaxWait as number);\r\n }\r\n\r\n prevArguments = latestArguments = invokedArgs;\r\n } else {\r\n invokeFunctionToDebounce(args);\r\n }\r\n };\r\n debouncedFn._flush = flush;\r\n\r\n return debouncedFn as Debounced;\r\n};\r\n","import { style } from 'support/dom/style';\r\n\r\nexport interface WH {\r\n w: T;\r\n h: T;\r\n}\r\n\r\nconst { round } = Math;\r\nconst elementHasDimensions = (elm: HTMLElement): boolean =>\r\n !!(elm.offsetWidth || elm.offsetHeight || elm.getClientRects().length);\r\nconst zeroObj: WH = {\r\n w: 0,\r\n h: 0,\r\n};\r\n\r\n/**\r\n * Returns the window inner- width and height.\r\n */\r\nexport const windowSize = (): WH => ({\r\n w: window.innerWidth,\r\n h: window.innerHeight,\r\n});\r\n\r\n/**\r\n * Returns the scroll- width and height of the passed element. If the element is null the width and height values are 0.\r\n * @param elm The element of which the scroll- width and height shall be returned.\r\n */\r\nexport const offsetSize = (elm: HTMLElement | null | undefined): WH =>\r\n elm\r\n ? {\r\n w: elm.offsetWidth,\r\n h: elm.offsetHeight,\r\n }\r\n : zeroObj;\r\n\r\n/**\r\n * Returns the client- width and height of the passed element. If the element is null the width and height values are 0.\r\n * @param elm The element of which the client- width and height shall be returned.\r\n */\r\nexport const clientSize = (elm: HTMLElement | false | null | undefined): WH =>\r\n elm\r\n ? {\r\n w: elm.clientWidth,\r\n h: elm.clientHeight,\r\n }\r\n : zeroObj;\r\n\r\n/**\r\n * Returns the client- width and height of the passed element. If the element is null the width and height values are 0.\r\n * @param elm The element of which the client- width and height shall be returned.\r\n */\r\nexport const scrollSize = (elm: HTMLElement | false | null | undefined): WH =>\r\n elm\r\n ? {\r\n w: elm.scrollWidth,\r\n h: elm.scrollHeight,\r\n }\r\n : zeroObj;\r\n\r\n/**\r\n * Returns the fractional- width and height of the passed element. If the element is null the width and height values are 0.\r\n * @param elm The element of which the fractional- width and height shall be returned.\r\n */\r\nexport const fractionalSize = (elm: HTMLElement | false | null | undefined): WH => {\r\n const cssHeight = parseFloat(style(elm, 'height')) || 0;\r\n const cssWidth = parseFloat(style(elm, 'width')) || 0;\r\n return {\r\n w: cssWidth - round(cssWidth),\r\n h: cssHeight - round(cssHeight),\r\n };\r\n};\r\n\r\n/**\r\n * Returns the BoundingClientRect of the passed element.\r\n * @param elm The element of which the BoundingClientRect shall be returned.\r\n */\r\nexport const getBoundingClientRect = (elm: HTMLElement): DOMRect => elm.getBoundingClientRect();\r\n\r\n/**\r\n * Determines whether the passed element has any dimensions.\r\n * @param elm The element.\r\n */\r\nexport const hasDimensions = (elm: HTMLElement | false | null | undefined): boolean =>\r\n elm ? elementHasDimensions(elm as HTMLElement) : false;\r\n","import { isUndefined } from 'support/utils/types';\r\nimport { each, push, runEachAndClear } from 'support/utils/array';\r\n\r\nlet passiveEventsSupport: boolean;\r\nconst supportPassiveEvents = (): boolean => {\r\n if (isUndefined(passiveEventsSupport)) {\r\n passiveEventsSupport = false;\r\n try {\r\n /* eslint-disable */\r\n // @ts-ignore\r\n window.addEventListener(\r\n 'test',\r\n null,\r\n Object.defineProperty({}, 'passive', {\r\n get() {\r\n passiveEventsSupport = true;\r\n },\r\n })\r\n );\r\n /* eslint-enable */\r\n } catch (e) {}\r\n }\r\n return passiveEventsSupport;\r\n};\r\nconst splitEventNames = (eventNames: string) => eventNames.split(' ');\r\n\r\nexport interface OnOptions {\r\n _capture?: boolean;\r\n _passive?: boolean;\r\n _once?: boolean;\r\n}\r\n\r\n/**\r\n * Removes the passed event listener for the passed events with the passed options.\r\n * @param target The element from which the listener shall be removed.\r\n * @param eventNames The eventsnames for which the listener shall be removed.\r\n * @param listener The listener which shall be removed.\r\n * @param capture The options of the removed listener.\r\n */\r\nexport const off = (\r\n target: EventTarget,\r\n eventNames: string,\r\n listener: (event: T) => any,\r\n capture?: boolean\r\n): void => {\r\n each(splitEventNames(eventNames), (eventName) => {\r\n target.removeEventListener(eventName, listener as EventListener, capture);\r\n });\r\n};\r\n\r\n/**\r\n * Adds the passed event listener for the passed eventnames with the passed options.\r\n * @param target The element to which the listener shall be added.\r\n * @param eventNames The eventsnames for which the listener shall be called.\r\n * @param listener The listener which is called on the eventnames.\r\n * @param options The options of the added listener.\r\n */\r\nexport const on = (\r\n target: EventTarget,\r\n eventNames: string,\r\n listener: (event: T) => any,\r\n options?: OnOptions\r\n): (() => void) => {\r\n const doSupportPassiveEvents = supportPassiveEvents();\r\n const passive = (doSupportPassiveEvents && options && options._passive) ?? doSupportPassiveEvents;\r\n const capture = (options && options._capture) || false;\r\n const once = (options && options._once) || false;\r\n const offListeners: (() => void)[] = [];\r\n const nativeOptions: AddEventListenerOptions | boolean = doSupportPassiveEvents\r\n ? {\r\n passive,\r\n capture,\r\n }\r\n : capture;\r\n\r\n each(splitEventNames(eventNames), (eventName) => {\r\n const finalListener = (\r\n once\r\n ? (evt: T) => {\r\n target.removeEventListener(eventName, finalListener, capture);\r\n listener && listener(evt);\r\n }\r\n : listener\r\n ) as EventListener;\r\n\r\n push(offListeners, off.bind(null, target, eventName, finalListener, capture));\r\n target.addEventListener(eventName, finalListener, nativeOptions);\r\n });\r\n\r\n return runEachAndClear.bind(0, offListeners);\r\n};\r\n\r\n/**\r\n * Shorthand for the stopPropagation event Method.\r\n * @param evt The event of which the stopPropagation method shall be called.\r\n */\r\nexport const stopPropagation = (evt: Event): void => evt.stopPropagation();\r\n\r\n/**\r\n * Shorthand for the preventDefault event Method.\r\n * @param evt The event of which the preventDefault method shall be called.\r\n */\r\nexport const preventDefault = (evt: Event): void => evt.preventDefault();\r\n\r\n/**\r\n * Shorthand for the stopPropagation and preventDefault event Method.\r\n * @param evt The event of which the stopPropagation and preventDefault methods shall be called.\r\n */\r\nexport const stopAndPrevent = (evt: Event): void =>\r\n (stopPropagation(evt) as undefined) || (preventDefault(evt) as undefined);\r\n","import { getBoundingClientRect } from 'support/dom/dimensions';\r\n\r\nexport interface XY {\r\n x: T;\r\n y: T;\r\n}\r\n\r\nconst zeroObj: XY = {\r\n x: 0,\r\n y: 0,\r\n};\r\n\r\n/**\r\n * Returns the offset- left and top coordinates of the passed element relative to the document. If the element is null the top and left values are 0.\r\n * @param elm The element of which the offset- top and left coordinates shall be returned.\r\n */\r\nexport const absoluteCoordinates = (elm: HTMLElement | null | undefined): XY => {\r\n const rect = elm ? getBoundingClientRect(elm) : 0;\r\n return rect\r\n ? {\r\n x: rect.left + window.pageYOffset,\r\n y: rect.top + window.pageXOffset,\r\n }\r\n : zeroObj;\r\n};\r\n\r\n/**\r\n * Returns the offset- left and top coordinates of the passed element. If the element is null the top and left values are 0.\r\n * @param elm The element of which the offset- top and left coordinates shall be returned.\r\n */\r\nexport const offsetCoordinates = (elm: HTMLElement | null | undefined): XY =>\r\n elm\r\n ? {\r\n x: elm.offsetLeft,\r\n y: elm.offsetTop,\r\n }\r\n : zeroObj;\r\n","import { isArray } from 'support/utils/types';\r\nimport { keys } from 'support/utils/object';\r\nimport { each, from, isEmptyArray } from 'support/utils/array';\r\n\r\nexport type EventListener<\r\n EventMap extends Record,\r\n Name extends keyof EventMap = keyof EventMap\r\n> = (...args: EventMap[Name]) => void;\r\n\r\nexport type InitialEventListeners> = {\r\n [K in keyof EventMap]?: EventListener | EventListener[];\r\n};\r\n\r\nconst manageListener = >(\r\n callback: (listener?: EventListener) => void,\r\n listener?: EventListener | EventListener[]\r\n) => {\r\n each(isArray(listener) ? listener : [listener], callback);\r\n};\r\n\r\nexport const createEventListenerHub = >(\r\n initialEventListeners?: InitialEventListeners\r\n) => {\r\n type EventListener = (\r\n ...args: EventMap[Name]\r\n ) => void;\r\n type RemoveEvent = {\r\n (name?: Name, listener?: EventListener): void;\r\n (name?: Name, listener?: EventListener[]): void;\r\n (\r\n name?: Name,\r\n listener?: EventListener | EventListener[]\r\n ): void;\r\n };\r\n type AddEvent = {\r\n (name: Name, listener: EventListener): () => void;\r\n (name: Name, listener: EventListener[]): () => void;\r\n (\r\n name: Name,\r\n listener: EventListener | EventListener[]\r\n ): () => void;\r\n };\r\n type TriggerEvent = {\r\n (name: Name, args?: EventMap[Name]): void;\r\n };\r\n\r\n const events = new Map>();\r\n\r\n const removeEvent: RemoveEvent = (\r\n name?: Name,\r\n listener?: EventListener | EventListener[]\r\n ): void => {\r\n if (name) {\r\n const eventSet = events.get(name);\r\n manageListener((currListener) => {\r\n if (eventSet) {\r\n eventSet[currListener ? 'delete' : 'clear'](currListener!);\r\n }\r\n }, listener as any);\r\n } else {\r\n events.forEach((eventSet) => {\r\n eventSet.clear();\r\n });\r\n events.clear();\r\n }\r\n };\r\n\r\n const addEvent: AddEvent = (\r\n name: Name,\r\n listener: EventListener | EventListener[]\r\n ): (() => void) => {\r\n const eventSet = events.get(name) || new Set();\r\n events.set(name, eventSet);\r\n\r\n manageListener((currListener) => {\r\n currListener && eventSet.add(currListener);\r\n }, listener as any);\r\n\r\n return removeEvent.bind(0, name as any, listener as any);\r\n };\r\n\r\n const triggerEvent: TriggerEvent = (\r\n name: Name,\r\n args?: EventMap[Name]\r\n ): void => {\r\n const eventSet = events.get(name);\r\n\r\n each(from(eventSet), (event) => {\r\n if (args && !isEmptyArray(args)) {\r\n (event as (...args: EventMap[keyof EventMap]) => void).apply(0, args as any);\r\n } else {\r\n (event as () => void)();\r\n }\r\n });\r\n };\r\n\r\n const initialListenerKeys = keys(initialEventListeners) as Extract[];\r\n each(initialListenerKeys, (key) => {\r\n addEvent(key, initialEventListeners![key] as any);\r\n });\r\n\r\n return [addEvent, removeEvent, triggerEvent] as [AddEvent, RemoveEvent, TriggerEvent];\r\n};\r\n","import { assignDeep, hasOwnProperty } from 'support';\r\nimport type { Options, ReadonlyOptions } from 'options';\r\nimport type { DeepPartial } from 'typings';\r\n\r\nexport type SetupElements> = [elements: T, destroy: () => void];\r\n\r\nexport type SetupUpdate = (\r\n changedOptions: DeepPartial,\r\n force: boolean,\r\n ...args: T\r\n) => void;\r\n\r\nexport type SetupUpdateCheckOption = (path: string) => [value: T, changed: boolean];\r\n\r\nexport type SetupUpdateSegment> = (\r\n updateHints: Hints,\r\n checkOption: SetupUpdateCheckOption,\r\n force: boolean\r\n) => Partial | void;\r\n\r\nexport type SetupState> = [\r\n get: () => T,\r\n set: (newState: Partial) => void\r\n];\r\n\r\nexport type Setup<\r\n DynamicState,\r\n StaticState extends Record = Record,\r\n A extends any[] = []\r\n> = [update: SetupUpdate
, state: (() => DynamicState) & StaticState, destroy: () => void];\r\n\r\nconst getPropByPath = (obj: any, path: string): T =>\r\n obj\r\n ? path.split('.').reduce((o, prop) => (o && hasOwnProperty(o, prop) ? o[prop] : undefined), obj)\r\n : undefined;\r\n\r\nexport const createOptionCheck =\r\n (\r\n options: ReadonlyOptions,\r\n changedOptions: DeepPartial,\r\n force?: boolean\r\n ): SetupUpdateCheckOption =>\r\n (path: string) =>\r\n [getPropByPath(options, path), force || getPropByPath(changedOptions, path) !== undefined];\r\n\r\nexport const createState = (initialState: S): SetupState => {\r\n let state: S = initialState;\r\n return [\r\n () => state,\r\n (newState: Partial) => {\r\n state = assignDeep({}, state, newState);\r\n },\r\n ];\r\n};\r\n","export const classNameEnvironment = 'os-environment';\r\nexport const classNameEnvironmentFlexboxGlue = `${classNameEnvironment}-flexbox-glue`;\r\nexport const classNameEnvironmentFlexboxGlueMax = `${classNameEnvironmentFlexboxGlue}-max`;\r\n\r\nexport const dataAttributeHost = 'data-overlayscrollbars';\r\nexport const dataAttributeHostOverflowX = `${dataAttributeHost}-overflow-x`;\r\nexport const dataAttributeHostOverflowY = `${dataAttributeHost}-overflow-y`;\r\nexport const dataValueHostOverflowVisible = 'overflowVisible';\r\nexport const dataValueHostScrollbarHidden = 'scrollbarHidden';\r\nexport const dataValueHostUpdating = 'updating';\r\nexport const classNamePadding = 'os-padding';\r\nexport const classNameViewport = 'os-viewport';\r\nexport const classNameViewportArrange = `${classNameViewport}-arrange`;\r\nexport const classNameContent = 'os-content';\r\nexport const classNameViewportScrollbarHidden = `${classNameViewport}-scrollbar-hidden`;\r\nexport const classNameOverflowVisible = `os-overflow-visible`;\r\n\r\nexport const classNameSizeObserver = 'os-size-observer';\r\nexport const classNameSizeObserverAppear = `${classNameSizeObserver}-appear`;\r\nexport const classNameSizeObserverListener = `${classNameSizeObserver}-listener`;\r\nexport const classNameSizeObserverListenerScroll = `${classNameSizeObserverListener}-scroll`;\r\nexport const classNameSizeObserverListenerItem = `${classNameSizeObserverListener}-item`;\r\nexport const classNameSizeObserverListenerItemFinal = `${classNameSizeObserverListenerItem}-final`;\r\n\r\nexport const classNameTrinsicObserver = 'os-trinsic-observer';\r\n\r\nexport const classNameScrollbar = 'os-scrollbar';\r\nexport const classNameScrollbarRtl = `${classNameScrollbar}-rtl`;\r\nexport const classNameScrollbarHorizontal = `${classNameScrollbar}-horizontal`;\r\nexport const classNameScrollbarVertical = `${classNameScrollbar}-vertical`;\r\nexport const classNameScrollbarTrack = `${classNameScrollbar}-track`;\r\nexport const classNameScrollbarHandle = `${classNameScrollbar}-handle`;\r\nexport const classNamesScrollbarVisible = `${classNameScrollbar}-visible`;\r\nexport const classNamesScrollbarCornerless = `${classNameScrollbar}-cornerless`;\r\nexport const classNamesScrollbarTransitionless = `${classNameScrollbar}-transitionless`;\r\nexport const classNamesScrollbarInteraction = `${classNameScrollbar}-interaction`;\r\nexport const classNamesScrollbarUnusable = `${classNameScrollbar}-unusable`;\r\nexport const classNamesScrollbarAutoHidden = `${classNameScrollbar}-auto-hidden`;\r\nexport const classNamesScrollbarTrackInteractive = `${classNameScrollbarTrack}-interactive`;\r\nexport const classNamesScrollbarHandleInteractive = `${classNameScrollbarHandle}-interactive`;\r\n","import { assignDeep, each, isObject, keys, isArray, hasOwnProperty, isFunction } from 'support';\r\nimport { DeepPartial, DeepReadonly } from 'typings';\r\n\r\nconst opsStringify = (value: any) =>\r\n JSON.stringify(value, (_, val) => {\r\n if (isFunction(val)) {\r\n throw new Error();\r\n }\r\n return val;\r\n });\r\n\r\nexport type ResizeBehavior = 'none' | 'both' | 'horizontal' | 'vertical';\r\n\r\nexport type OverflowBehavior =\r\n | 'hidden'\r\n | 'scroll'\r\n | 'visible'\r\n | 'visible-hidden'\r\n | 'visible-scroll';\r\n\r\nexport type ScrollbarVisibilityBehavior = 'visible' | 'hidden' | 'auto';\r\n\r\nexport type ScrollbarAutoHideBehavior = 'never' | 'scroll' | 'leave' | 'move';\r\n\r\nexport type ScrollBehavior = 'always' | 'ifneeded' | 'never';\r\n\r\nexport type BasicEventCallback = (this: any) => void;\r\n\r\nexport type ScrollEventCallback = (this: any, args?: UIEvent) => void;\r\n\r\nexport type OverflowChangedCallback = (this: any, args?: OverflowChangedArgs) => void;\r\n\r\nexport type OverflowAmountChangedCallback = (this: any, args?: OverflowAmountChangedArgs) => void;\r\n\r\nexport type DirectionChangedCallback = (this: any, args?: DirectionChangedArgs) => void;\r\n\r\nexport type SizeChangedCallback = (this: any, args?: SizeChangedArgs) => void;\r\n\r\nexport type UpdatedCallback = (this: any, args?: UpdatedArgs) => void;\r\n\r\nexport interface Options {\r\n paddingAbsolute: boolean;\r\n showNativeOverlaidScrollbars: boolean;\r\n updating: {\r\n elementEvents: Array<[elementSelector: string, eventNames: string]> | null;\r\n attributes: string[] | null;\r\n debounce: [timeout: number, maxWait: number] | number | null; // (if tuple: [timeout: 0, maxWait: 33], if number: [timeout: number, maxWait: false]) debounce for content Changes\r\n ignoreMutation: ((mutation: MutationRecord) => any) | null;\r\n };\r\n overflow: {\r\n x: OverflowBehavior;\r\n y: OverflowBehavior;\r\n };\r\n scrollbars: {\r\n theme: string | null;\r\n visibility: ScrollbarVisibilityBehavior;\r\n autoHide: ScrollbarAutoHideBehavior;\r\n autoHideDelay: number;\r\n dragScroll: boolean;\r\n clickScroll: boolean;\r\n pointers: string[] | null;\r\n };\r\n}\r\n\r\nexport type ReadonlyOptions = DeepReadonly;\r\n\r\nexport interface OverflowChangedArgs {\r\n x: boolean;\r\n y: boolean;\r\n xScrollable: boolean;\r\n yScrollable: boolean;\r\n clipped: boolean;\r\n}\r\n\r\nexport interface OverflowAmountChangedArgs {\r\n x: number;\r\n y: number;\r\n}\r\n\r\nexport interface DirectionChangedArgs {\r\n isRTL: number;\r\n dir: string;\r\n}\r\n\r\nexport interface SizeChangedArgs {\r\n width: number;\r\n height: number;\r\n}\r\n\r\nexport interface UpdatedArgs {\r\n forced: boolean;\r\n}\r\n\r\nexport const defaultOptions: Options = {\r\n // resize: 'none', // none || both || horizontal || vertical || n || b || h || v\r\n paddingAbsolute: false, // true || false\r\n showNativeOverlaidScrollbars: false, // true || false\r\n updating: {\r\n elementEvents: [['img', 'load']], // array of tuples || null\r\n debounce: [0, 33], // number || number array || null\r\n attributes: null, // string array || null\r\n ignoreMutation: null, // () => any || null\r\n },\r\n overflow: {\r\n x: 'scroll', // visible-hidden || visible-scroll || hidden || scroll || v-h || v-s || h || s\r\n y: 'scroll', // visible-hidden || visible-scroll || hidden || scroll || v-h || v-s || h || s\r\n },\r\n scrollbars: {\r\n theme: 'os-theme-dark',\r\n visibility: 'auto', // visible || hidden || auto || v || h || a\r\n autoHide: 'never', // never || scroll || leave || move || n || s || l || m\r\n autoHideDelay: 1300, // number\r\n dragScroll: true, // true || false\r\n clickScroll: false, // true || false\r\n pointers: ['mouse', 'touch', 'pen'], // null || array of supported pointers: https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent/pointerType\r\n },\r\n};\r\n\r\nexport const getOptionsDiff = (currOptions: T, newOptions: DeepPartial): DeepPartial => {\r\n const diff: DeepPartial = {};\r\n const optionsKeys = keys(newOptions).concat(keys(currOptions));\r\n\r\n each(optionsKeys, (optionKey) => {\r\n const currOptionValue = currOptions[optionKey];\r\n const newOptionValue = newOptions[optionKey];\r\n\r\n if (isObject(currOptionValue) && isObject(newOptionValue)) {\r\n assignDeep((diff[optionKey] = {}), getOptionsDiff(currOptionValue, newOptionValue));\r\n } else if (hasOwnProperty(newOptions, optionKey) && newOptionValue !== currOptionValue) {\r\n let isDiff = true;\r\n\r\n if (isArray(currOptionValue) || isArray(newOptionValue)) {\r\n try {\r\n if (opsStringify(currOptionValue) === opsStringify(newOptionValue)) {\r\n isDiff = false;\r\n }\r\n } catch {}\r\n }\r\n\r\n if (isDiff) {\r\n diff[optionKey] = newOptionValue;\r\n }\r\n }\r\n });\r\n\r\n return diff;\r\n};\r\n","import { each, isArray, keys } from 'support';\r\nimport { OverlayScrollbars, OverlayScrollbarsStatic } from 'overlayscrollbars';\r\n\r\nexport type PluginInstance =\r\n | Record\r\n | ((staticObj: OverlayScrollbarsStatic, instanceObj: OverlayScrollbars) => void);\r\nexport type Plugin = {\r\n [pluginName: string]: T;\r\n};\r\n\r\nconst pluginRegistry: Record = {};\r\n\r\nexport const getPlugins = () => pluginRegistry;\r\n\r\nexport const addPlugin = (addedPlugin: Plugin | Plugin[]) => {\r\n each((isArray(addedPlugin) ? addedPlugin : [addedPlugin]) as Plugin[], (plugin) => {\r\n const pluginName = keys(plugin)[0];\r\n pluginRegistry[pluginName] = plugin[pluginName];\r\n });\r\n};\r\n","import { each, hasOwnProperty, keys, push, isEmptyObject } from 'support/utils';\r\nimport { type, isArray, isUndefined, isPlainObject, isString } from 'support/utils/types';\r\nimport { PlainObject, DeepPartial } from 'typings';\r\n\r\nexport type OptionsObjectType = Record;\r\nexport type OptionsFunctionType = (this: any, ...args: any[]) => any;\r\nexport type OptionsTemplateType = ExtractPropsKey<\r\n OptionsTemplateTypeMap,\r\n T\r\n>;\r\nexport type OptionsTemplateTypes = keyof OptionsTemplateTypeMap;\r\nexport type OptionsTemplateNativeTypes = OptionsTemplateTypeMap[keyof OptionsTemplateTypeMap];\r\n\r\nexport type OptionsTemplateValue = T extends string\r\n ? string extends T\r\n ? OptionsTemplateValueNonEnum\r\n : string\r\n : OptionsTemplateValueNonEnum;\r\n\r\nexport type OptionsTemplate = {\r\n [P in keyof T]: T[P] extends OptionsObjectType\r\n ? OptionsTemplate\r\n : T[P] extends OptionsTemplateNativeTypes\r\n ? OptionsTemplateValue\r\n : never;\r\n};\r\n\r\nexport type OptionsValidationResult = [\r\n DeepPartial, // validated\r\n Record // foreign\r\n];\r\n\r\ntype OptionsTemplateTypeMap = {\r\n __TPL_boolean_TYPE__: boolean;\r\n __TPL_number_TYPE__: number;\r\n __TPL_string_TYPE__: string;\r\n __TPL_array_TYPE__: Array | ReadonlyArray;\r\n __TPL_function_TYPE__: OptionsFunctionType;\r\n __TPL_null_TYPE__: null;\r\n __TPL_object_TYPE__: OptionsObjectType;\r\n};\r\n\r\ntype OptionsTemplateValueNonEnum =\r\n | OptionsTemplateType\r\n | [OptionsTemplateType, ...Array];\r\n\r\ntype ExtractPropsKey = {\r\n [P in keyof T]: TProps extends T[P] ? P : never;\r\n}[keyof T];\r\n\r\ntype OptionsTemplateTypesDictionary = {\r\n readonly boolean: OptionsTemplateType;\r\n readonly number: OptionsTemplateType;\r\n readonly string: OptionsTemplateType;\r\n readonly array: OptionsTemplateType>;\r\n readonly object: OptionsTemplateType;\r\n readonly function: OptionsTemplateType;\r\n readonly null: OptionsTemplateType;\r\n};\r\n\r\nconst optionsTemplateTypes: OptionsTemplateTypesDictionary = {\r\n boolean: '__TPL_boolean_TYPE__',\r\n number: '__TPL_number_TYPE__',\r\n string: '__TPL_string_TYPE__',\r\n array: '__TPL_array_TYPE__',\r\n object: '__TPL_object_TYPE__',\r\n function: '__TPL_function_TYPE__',\r\n null: '__TPL_null_TYPE__',\r\n};\r\n\r\n/**\r\n * Validates the given options object according to the given template object and returns a object which looks like:\r\n * {\r\n * foreign : a object which consists of properties which aren't defined inside the template. (foreign properties)\r\n * validated : a object which consists only of valid properties. (property name is inside the template and value has a correct type)\r\n * }\r\n * @param template The template according to which the options object shall be validated.\r\n * @param options The options object which shall be validated.\r\n * @param optionsDiff When provided the returned validated object will only have properties which are different to this objects properties.\r\n * Example (assume all properties are valid to the template):\r\n * Options object : { a: 'a', b: 'b', c: 'c' }\r\n * optionsDiff object : { a: 'a', b: 'b', c: undefined }\r\n * Returned validated object : { c: 'c' }\r\n * Because the value of the properties a and b didn't change, they aren't included in the returned object.\r\n * Without the optionsDiff object the returned validated object would be: { a: 'a', b: 'b', c: 'c' }\r\n * @param doWriteErrors True if errors shall be logged into the console, false otherwise.\r\n * @param propPath The propertyPath which lead to this object. (used for error logging)\r\n */\r\nconst validateRecursive = (\r\n template: OptionsTemplate,\r\n options: DeepPartial,\r\n doWriteErrors?: boolean,\r\n propPath?: string\r\n): OptionsValidationResult => {\r\n const validatedOptions: DeepPartial = {};\r\n const optionsCopy: DeepPartial = { ...options };\r\n const props = keys(template).filter((prop) => hasOwnProperty(options, prop));\r\n\r\n each(props, (prop: Extract) => {\r\n const optionsValue: any = options[prop];\r\n const templateValue: PlainObject | string | OptionsTemplateTypes | Array =\r\n template[prop];\r\n const templateIsComplex = isPlainObject(templateValue);\r\n const propPrefix = propPath ? `${propPath}.` : '';\r\n\r\n // if the template has a object as value, it means that the options are complex (verschachtelt)\r\n if (templateIsComplex && isPlainObject(optionsValue)) {\r\n const [validated, foreign] = validateRecursive(\r\n templateValue as T,\r\n optionsValue,\r\n doWriteErrors,\r\n propPrefix + prop\r\n );\r\n validatedOptions[prop] = validated as any;\r\n optionsCopy[prop] = foreign as any;\r\n\r\n each([optionsCopy, validatedOptions], (value) => {\r\n if (isEmptyObject(value[prop])) {\r\n delete value[prop];\r\n }\r\n });\r\n } else if (!templateIsComplex) {\r\n let isValid = false;\r\n const errorEnumStrings: Array = [];\r\n const errorPossibleTypes: Array = [];\r\n const optionsValueType = type(optionsValue);\r\n const templateValueArr: Array = !isArray(templateValue)\r\n ? [templateValue as string | OptionsTemplateTypes]\r\n : (templateValue as Array);\r\n\r\n each(templateValueArr, (currTemplateType) => {\r\n // if currType value isn't inside possibleTemplateTypes we assume its a enum string value\r\n let typeString: string | undefined;\r\n each(optionsTemplateTypes, (value: string, key: string) => {\r\n if (value === currTemplateType) {\r\n typeString = key;\r\n }\r\n });\r\n const isEnumString = isUndefined(typeString);\r\n if (isEnumString && isString(optionsValue)) {\r\n // split it into a array which contains all possible values for example: [\"yes\", \"no\", \"maybe\"]\r\n const enumStringSplit = currTemplateType.split(' ');\r\n isValid = !!enumStringSplit.find((possibility) => possibility === optionsValue);\r\n\r\n // build error message\r\n push(errorEnumStrings, enumStringSplit);\r\n } else {\r\n isValid = optionsTemplateTypes[optionsValueType] === currTemplateType;\r\n }\r\n\r\n // build error message\r\n push(errorPossibleTypes, isEnumString ? optionsTemplateTypes.string : typeString!);\r\n\r\n // continue if invalid, break if valid\r\n return !isValid;\r\n });\r\n\r\n if (isValid) {\r\n validatedOptions[prop] = optionsValue;\r\n } else if (doWriteErrors) {\r\n console.warn(\r\n `${\r\n `The option \"${propPrefix}${prop}\" wasn't set, because it doesn't accept the type [ ${optionsValueType.toUpperCase()} ] with the value of \"${optionsValue}\".\\r\\n` +\r\n `Accepted types are: [ ${errorPossibleTypes.join(', ').toUpperCase()} ].\\r\\n`\r\n }${\r\n errorEnumStrings.length > 0\r\n ? `\\r\\nValid strings are: [ ${errorEnumStrings.join(', ')} ].`\r\n : ''\r\n }`\r\n );\r\n }\r\n\r\n delete optionsCopy[prop];\r\n }\r\n });\r\n\r\n return [validatedOptions, optionsCopy]; // optionsCopy equals now to foreign options\r\n};\r\n\r\n/**\r\n * Validates the given options object according to the given template object and returns a tuple which looks like:\r\n * [\r\n * validated : a object which consists only of valid properties. (property name is inside the template and value has a correct type)\r\n * foreign : a object which consists of properties which aren't defined inside the template. (foreign properties)\r\n * ]\r\n * @param template The template according to which the options object shall be validated.\r\n * @param options The options object which shall be validated.\r\n * @param doWriteErrors True if errors shall be logged into the console, false otherwise.\r\n */\r\nconst validateOptions = (\r\n template: OptionsTemplate,\r\n options: DeepPartial,\r\n doWriteErrors?: boolean\r\n): OptionsValidationResult => validateRecursive(template, options, doWriteErrors);\r\n\r\nexport { validateOptions, optionsTemplateTypes };\r\n","import {\r\n Options,\r\n OverflowBehavior,\r\n ScrollbarVisibilityBehavior,\r\n ScrollbarAutoHideBehavior,\r\n} from 'options';\r\nimport {\r\n validateOptions,\r\n OptionsTemplate,\r\n OptionsTemplateValue,\r\n optionsTemplateTypes as oTypes,\r\n} from 'plugins/optionsValidationPlugin/validation';\r\nimport type { DeepPartial } from 'typings';\r\nimport type { Plugin } from 'plugins';\r\n\r\nconst numberAllowedValues: OptionsTemplateValue = oTypes.number;\r\nconst booleanAllowedValues: OptionsTemplateValue = oTypes.boolean;\r\nconst arrayNullValues: OptionsTemplateValue | null> = [oTypes.array, oTypes.null];\r\nconst overflowAllowedValues: OptionsTemplateValue =\r\n 'hidden scroll visible visible-hidden';\r\nconst scrollbarsVisibilityAllowedValues: OptionsTemplateValue =\r\n 'visible hidden auto';\r\nconst scrollbarsAutoHideAllowedValues: OptionsTemplateValue =\r\n 'never scroll leavemove';\r\n\r\nconst optionsTemplate: OptionsTemplate = {\r\n // resize: resizeAllowedValues, // none || both || horizontal || vertical || n || b ||\r\n paddingAbsolute: booleanAllowedValues, // true || false\r\n showNativeOverlaidScrollbars: booleanAllowedValues, // true || false\r\n updating: {\r\n elementEvents: arrayNullValues, // array of tuples || null\r\n attributes: arrayNullValues,\r\n debounce: [oTypes.number, oTypes.array, oTypes.null], // number || number array || null\r\n ignoreMutation: [oTypes.function, oTypes.null], // function || null\r\n },\r\n overflow: {\r\n x: overflowAllowedValues, // visible-hidden || visible-scroll || hidden || scrol\r\n y: overflowAllowedValues, // visible-hidden || visible-scroll || hidden || scrol\r\n },\r\n scrollbars: {\r\n theme: [oTypes.string, oTypes.null], // string || null\r\n visibility: scrollbarsVisibilityAllowedValues, // visible || hidden || auto || v ||\r\n autoHide: scrollbarsAutoHideAllowedValues, // never || scroll || leave || move ||\r\n autoHideDelay: numberAllowedValues, // number\r\n dragScroll: booleanAllowedValues, // true || false\r\n clickScroll: booleanAllowedValues, // true || false\r\n pointers: [oTypes.array, oTypes.null], // string array\r\n },\r\n /*\r\n textarea: {\r\n dynWidth: booleanAllowedValues, // true || false\r\n dynHeight: booleanAllowedValues, // true || false\r\n inheritedAttrs: stringArrayNullAllowedValues, // string || array || nul\r\n },\r\n */\r\n};\r\n\r\nexport type OptionsValidationPluginInstance = {\r\n _: (options: DeepPartial, doWriteErrors?: boolean) => DeepPartial;\r\n};\r\n\r\nexport const optionsValidationPluginName = '__osOptionsValidationPlugin';\r\n\r\nexport const optionsValidationPlugin: Plugin = {\r\n [optionsValidationPluginName]: {\r\n _: (options: DeepPartial, doWriteErrors?: boolean) => {\r\n const [validated, foreign] = validateOptions(optionsTemplate, options, doWriteErrors);\r\n return { ...foreign, ...validated };\r\n },\r\n },\r\n};\r\n","import {\r\n createDOM,\r\n style,\r\n appendChildren,\r\n offsetSize,\r\n scrollLeft,\r\n scrollTop,\r\n on,\r\n addClass,\r\n equalWH,\r\n push,\r\n cAF,\r\n rAF,\r\n stopPropagation,\r\n} from 'support';\r\nimport {\r\n classNameSizeObserverListenerScroll,\r\n classNameSizeObserverListenerItem,\r\n classNameSizeObserverListenerItemFinal,\r\n} from 'classnames';\r\nimport type { Plugin } from 'plugins';\r\n\r\nexport type SizeObserverPluginInstance = {\r\n _: (\r\n listenerElement: HTMLElement,\r\n onSizeChangedCallback: (appear: boolean) => any,\r\n observeAppearChange: boolean\r\n ) => [appearCallback: () => any, offFns: (() => any)[]];\r\n};\r\n\r\nconst scrollAmount = 3333333;\r\nconst scrollEventName = 'scroll';\r\nexport const sizeObserverPluginName = '__osSizeObserverPlugin';\r\n\r\nexport const sizeObserverPlugin: Plugin = {\r\n [sizeObserverPluginName]: {\r\n _: (listenerElement, onSizeChangedCallback, observeAppearChange) => {\r\n const observerElementChildren = createDOM(\r\n `
`\r\n );\r\n appendChildren(listenerElement, observerElementChildren);\r\n addClass(listenerElement, classNameSizeObserverListenerScroll);\r\n const observerElementChildrenRoot = observerElementChildren[0] as HTMLElement;\r\n const shrinkElement = observerElementChildrenRoot.lastChild as HTMLElement;\r\n const expandElement = observerElementChildrenRoot.firstChild as HTMLElement;\r\n const expandElementChild = expandElement?.firstChild as HTMLElement;\r\n\r\n let cacheSize = offsetSize(observerElementChildrenRoot);\r\n let currSize = cacheSize;\r\n let isDirty = false;\r\n let rAFId: number;\r\n\r\n const reset = () => {\r\n scrollLeft(expandElement, scrollAmount);\r\n scrollTop(expandElement, scrollAmount);\r\n scrollLeft(shrinkElement, scrollAmount);\r\n scrollTop(shrinkElement, scrollAmount);\r\n };\r\n const onResized = (appear?: unknown) => {\r\n rAFId = 0;\r\n if (isDirty) {\r\n cacheSize = currSize;\r\n onSizeChangedCallback(appear === true);\r\n }\r\n };\r\n const onScroll = (scrollEvent?: Event | false) => {\r\n currSize = offsetSize(observerElementChildrenRoot);\r\n isDirty = !scrollEvent || !equalWH(currSize, cacheSize);\r\n\r\n if (scrollEvent) {\r\n stopPropagation(scrollEvent);\r\n\r\n if (isDirty && !rAFId) {\r\n cAF!(rAFId);\r\n rAFId = rAF!(onResized);\r\n }\r\n } else {\r\n onResized(scrollEvent === false);\r\n }\r\n\r\n reset();\r\n };\r\n const offListeners = push(\r\n [],\r\n [on(expandElement, scrollEventName, onScroll), on(shrinkElement, scrollEventName, onScroll)]\r\n );\r\n\r\n // lets assume that the divs will never be that large and a constant value is enough\r\n style(expandElementChild, {\r\n width: scrollAmount,\r\n height: scrollAmount,\r\n });\r\n\r\n rAF!(reset);\r\n\r\n return [observeAppearChange ? onScroll.bind(0, false) : reset, offListeners];\r\n },\r\n },\r\n};\r\n","import {\r\n keys,\r\n attr,\r\n WH,\r\n style,\r\n addClass,\r\n removeClass,\r\n noop,\r\n each,\r\n assignDeep,\r\n windowSize,\r\n UpdateCache,\r\n XY,\r\n} from 'support';\r\nimport { classNameViewportArrange } from 'classnames';\r\nimport type { StyleObject } from 'typings';\r\nimport type { StructureSetupState } from 'setups/structureSetup';\r\nimport type {\r\n ViewportOverflowState,\r\n GetViewportOverflowState,\r\n HideNativeScrollbars,\r\n} from 'setups/structureSetup/updateSegments/overflowUpdateSegment';\r\nimport type { InternalEnvironment } from 'environment';\r\nimport type { Plugin } from 'plugins';\r\n\r\nexport type ArrangeViewport = (\r\n viewportOverflowState: ViewportOverflowState,\r\n viewportScrollSize: WH,\r\n sizeFraction: WH,\r\n directionIsRTL: boolean\r\n) => boolean;\r\n\r\nexport type UndoViewportArrangeResult = [\r\n redoViewportArrange: () => void,\r\n overflowState?: ViewportOverflowState\r\n];\r\n\r\nexport type UndoArrangeViewport = (\r\n showNativeOverlaidScrollbars: boolean,\r\n directionIsRTL: boolean,\r\n viewportOverflowState?: ViewportOverflowState\r\n) => UndoViewportArrangeResult;\r\n\r\nexport type ScrollbarsHidingPluginInstance = {\r\n _createUniqueViewportArrangeElement(env: InternalEnvironment): HTMLStyleElement | false;\r\n _overflowUpdateSegment(\r\n doViewportArrange: boolean,\r\n flexboxGlue: boolean,\r\n viewport: HTMLElement,\r\n viewportArrange: HTMLStyleElement | false | null | undefined,\r\n getState: () => StructureSetupState,\r\n getViewportOverflowState: GetViewportOverflowState,\r\n hideNativeScrollbars: HideNativeScrollbars\r\n ): [ArrangeViewport, UndoArrangeViewport];\r\n _envWindowZoom(): (\r\n envInstance: InternalEnvironment,\r\n updateNativeScrollbarSizeCache: UpdateCache>,\r\n triggerEvent: () => void\r\n ) => void;\r\n};\r\n\r\nlet contentArrangeCounter = 0;\r\nconst { round, abs } = Math;\r\nconst getWindowDPR = (): number => {\r\n // eslint-disable-next-line\r\n // @ts-ignore\r\n const dDPI = window.screen.deviceXDPI || 0;\r\n // eslint-disable-next-line\r\n // @ts-ignore\r\n const sDPI = window.screen.logicalXDPI || 1;\r\n return window.devicePixelRatio || dDPI / sDPI;\r\n};\r\n\r\nconst diffBiggerThanOne = (valOne: number, valTwo: number): boolean => {\r\n const absValOne = abs(valOne);\r\n const absValTwo = abs(valTwo);\r\n return !(absValOne === absValTwo || absValOne + 1 === absValTwo || absValOne - 1 === absValTwo);\r\n};\r\n\r\nexport const scrollbarsHidingPluginName = '__osScrollbarsHidingPlugin';\r\n\r\nexport const scrollbarsHidingPlugin: Plugin = {\r\n [scrollbarsHidingPluginName]: {\r\n _createUniqueViewportArrangeElement: (env: InternalEnvironment) => {\r\n const { _nativeScrollbarsHiding, _nativeScrollbarsOverlaid, _cssCustomProperties } = env;\r\n const create =\r\n !_cssCustomProperties &&\r\n !_nativeScrollbarsHiding &&\r\n (_nativeScrollbarsOverlaid.x || _nativeScrollbarsOverlaid.y);\r\n const result = create ? document.createElement('style') : false;\r\n\r\n if (result) {\r\n attr(result, 'id', `${classNameViewportArrange}-${contentArrangeCounter}`);\r\n contentArrangeCounter++;\r\n }\r\n\r\n return result;\r\n },\r\n _overflowUpdateSegment: (\r\n doViewportArrange,\r\n flexboxGlue,\r\n viewport,\r\n viewportArrange,\r\n getState,\r\n getViewportOverflowState,\r\n hideNativeScrollbars\r\n ) => {\r\n /**\r\n * Sets the styles of the viewport arrange element.\r\n * @param viewportOverflowState The viewport overflow state according to which the scrollbars shall be hidden.\r\n * @param viewportScrollSize The content scroll size.\r\n * @param directionIsRTL Whether the direction is RTL or not.\r\n * @returns A boolean which indicates whether the viewport arrange element was adjusted.\r\n */\r\n const arrangeViewport: ArrangeViewport = (\r\n viewportOverflowState,\r\n viewportScrollSize,\r\n sizeFraction,\r\n directionIsRTL\r\n ) => {\r\n if (doViewportArrange) {\r\n const { _viewportPaddingStyle } = getState();\r\n const { _scrollbarsHideOffset, _scrollbarsHideOffsetArrange } = viewportOverflowState;\r\n const { x: arrangeX, y: arrangeY } = _scrollbarsHideOffsetArrange;\r\n const { x: hideOffsetX, y: hideOffsetY } = _scrollbarsHideOffset;\r\n const viewportArrangeHorizontalPaddingKey: keyof StyleObject = directionIsRTL\r\n ? 'paddingRight'\r\n : 'paddingLeft';\r\n const viewportArrangeHorizontalPaddingValue = _viewportPaddingStyle[\r\n viewportArrangeHorizontalPaddingKey\r\n ] as number;\r\n const viewportArrangeVerticalPaddingValue = _viewportPaddingStyle.paddingTop as number;\r\n const fractionalContentWidth = viewportScrollSize.w + sizeFraction.w;\r\n const fractionalContenHeight = viewportScrollSize.h + sizeFraction.h;\r\n const arrangeSize = {\r\n w:\r\n hideOffsetY && arrangeY\r\n ? `${\r\n hideOffsetY + fractionalContentWidth - viewportArrangeHorizontalPaddingValue\r\n }px`\r\n : '',\r\n h:\r\n hideOffsetX && arrangeX\r\n ? `${hideOffsetX + fractionalContenHeight - viewportArrangeVerticalPaddingValue}px`\r\n : '',\r\n };\r\n\r\n // adjust content arrange / before element\r\n if (viewportArrange) {\r\n const { sheet } = viewportArrange;\r\n if (sheet) {\r\n const { cssRules } = sheet;\r\n if (cssRules) {\r\n if (!cssRules.length) {\r\n sheet.insertRule(\r\n `#${attr(viewportArrange, 'id')} + .${classNameViewportArrange}::before {}`,\r\n 0\r\n );\r\n }\r\n\r\n // @ts-ignore\r\n const ruleStyle = cssRules[0].style;\r\n\r\n ruleStyle.width = arrangeSize.w;\r\n ruleStyle.height = arrangeSize.h;\r\n }\r\n }\r\n } else {\r\n style<'--os-vaw' | '--os-vah'>(viewport, {\r\n '--os-vaw': arrangeSize.w,\r\n '--os-vah': arrangeSize.h,\r\n });\r\n }\r\n }\r\n\r\n return doViewportArrange;\r\n };\r\n\r\n /**\r\n * Removes all styles applied because of the viewport arrange strategy.\r\n * @param showNativeOverlaidScrollbars Whether native overlaid scrollbars are shown instead of hidden.\r\n * @param directionIsRTL Whether the direction is RTL or not.\r\n * @param viewportOverflowState The currentviewport overflow state or undefined if it has to be determined.\r\n * @returns A object with a function which applies all the removed styles and the determined viewport vverflow state.\r\n */\r\n const undoViewportArrange: UndoArrangeViewport = (\r\n showNativeOverlaidScrollbars,\r\n directionIsRTL,\r\n viewportOverflowState?\r\n ) => {\r\n if (doViewportArrange) {\r\n const finalViewportOverflowState =\r\n viewportOverflowState || getViewportOverflowState(showNativeOverlaidScrollbars);\r\n const { _viewportPaddingStyle: viewportPaddingStyle } = getState();\r\n const { _scrollbarsHideOffsetArrange } = finalViewportOverflowState;\r\n const { x: arrangeX, y: arrangeY } = _scrollbarsHideOffsetArrange;\r\n const finalPaddingStyle: StyleObject = {};\r\n const assignProps = (props: string) =>\r\n each(props.split(' '), (prop) => {\r\n finalPaddingStyle[prop] = viewportPaddingStyle[prop];\r\n });\r\n\r\n if (arrangeX) {\r\n assignProps('marginBottom paddingTop paddingBottom');\r\n }\r\n\r\n if (arrangeY) {\r\n assignProps('marginLeft marginRight paddingLeft paddingRight');\r\n }\r\n\r\n const prevStyle = style(viewport, keys(finalPaddingStyle));\r\n\r\n removeClass(viewport, classNameViewportArrange);\r\n\r\n if (!flexboxGlue) {\r\n finalPaddingStyle.height = '';\r\n }\r\n\r\n style(viewport, finalPaddingStyle);\r\n\r\n return [\r\n () => {\r\n hideNativeScrollbars(\r\n finalViewportOverflowState,\r\n directionIsRTL,\r\n doViewportArrange,\r\n prevStyle\r\n );\r\n style(viewport, prevStyle);\r\n addClass(viewport, classNameViewportArrange);\r\n },\r\n finalViewportOverflowState,\r\n ];\r\n }\r\n return [noop];\r\n };\r\n\r\n return [arrangeViewport, undoViewportArrange];\r\n },\r\n _envWindowZoom: () => {\r\n let size = { w: 0, h: 0 };\r\n let dpr = 0;\r\n\r\n return (envInstance, updateNativeScrollbarSizeCache, triggerEvent) => {\r\n const sizeNew = windowSize();\r\n const deltaSize = {\r\n w: sizeNew.w - size.w,\r\n h: sizeNew.h - size.h,\r\n };\r\n\r\n if (deltaSize.w === 0 && deltaSize.h === 0) {\r\n return;\r\n }\r\n\r\n const deltaAbsSize = {\r\n w: abs(deltaSize.w),\r\n h: abs(deltaSize.h),\r\n };\r\n const deltaAbsRatio = {\r\n w: abs(round(sizeNew.w / (size.w / 100.0))),\r\n h: abs(round(sizeNew.h / (size.h / 100.0))),\r\n };\r\n const dprNew = getWindowDPR();\r\n const deltaIsBigger = deltaAbsSize.w > 2 && deltaAbsSize.h > 2;\r\n const difference = !diffBiggerThanOne(deltaAbsRatio.w, deltaAbsRatio.h);\r\n const dprChanged = dprNew !== dpr && dprNew > 0;\r\n const isZoom = deltaIsBigger && difference && dprChanged;\r\n\r\n if (isZoom) {\r\n const [scrollbarSize, scrollbarSizeChanged] = updateNativeScrollbarSizeCache();\r\n\r\n assignDeep(envInstance._nativeScrollbarsSize, scrollbarSize); // keep the object same!\r\n\r\n if (scrollbarSizeChanged) {\r\n triggerEvent();\r\n }\r\n }\r\n\r\n size = sizeNew;\r\n dpr = dprNew;\r\n };\r\n },\r\n },\r\n};\r\n","import {\r\n createDOM,\r\n addClass,\r\n style,\r\n appendChildren,\r\n fractionalSize,\r\n clientSize,\r\n absoluteCoordinates,\r\n offsetSize,\r\n scrollLeft,\r\n XY,\r\n removeAttr,\r\n removeElements,\r\n equalBCRWH,\r\n getBoundingClientRect,\r\n assignDeep,\r\n cssProperty,\r\n createCache,\r\n equalXY,\r\n createEventListenerHub,\r\n EventListener,\r\n} from 'support';\r\nimport {\r\n classNameEnvironment,\r\n classNameEnvironmentFlexboxGlue,\r\n classNameEnvironmentFlexboxGlueMax,\r\n classNameViewportScrollbarHidden,\r\n} from 'classnames';\r\nimport { Options, defaultOptions } from 'options';\r\nimport { DeepPartial } from 'typings';\r\nimport { Initialization } from 'initialization';\r\nimport { getPlugins, ScrollbarsHidingPluginInstance, scrollbarsHidingPluginName } from 'plugins';\r\n\r\ntype EnvironmentEventMap = {\r\n _: [];\r\n};\r\n\r\nexport interface InternalEnvironment {\r\n readonly _nativeScrollbarsSize: XY;\r\n readonly _nativeScrollbarsOverlaid: XY;\r\n readonly _nativeScrollbarsHiding: boolean;\r\n readonly _rtlScrollBehavior: { n: boolean; i: boolean };\r\n readonly _flexboxGlue: boolean;\r\n readonly _cssCustomProperties: boolean;\r\n readonly _staticDefaultInitialization: Initialization;\r\n readonly _staticDefaultOptions: Options;\r\n _addListener(listener: EventListener): () => void;\r\n _getDefaultInitialization(): Initialization;\r\n _setDefaultInitialization(newInitialization: DeepPartial): void;\r\n _getDefaultOptions(): Options;\r\n _setDefaultOptions(newDefaultOptions: DeepPartial): void;\r\n}\r\n\r\nlet environmentInstance: InternalEnvironment;\r\n\r\nconst getNativeScrollbarSize = (\r\n body: HTMLElement,\r\n measureElm: HTMLElement,\r\n measureElmChild: HTMLElement,\r\n clear?: boolean\r\n): XY => {\r\n appendChildren(body, measureElm);\r\n\r\n const cSize = clientSize(measureElm);\r\n const oSize = offsetSize(measureElm);\r\n const fSize = fractionalSize(measureElmChild);\r\n\r\n clear && removeElements(measureElm);\r\n\r\n return {\r\n x: oSize.h - cSize.h + fSize.h,\r\n y: oSize.w - cSize.w + fSize.w,\r\n };\r\n};\r\n\r\nconst getNativeScrollbarsHiding = (testElm: HTMLElement): boolean => {\r\n let result = false;\r\n const revertClass = addClass(testElm, classNameViewportScrollbarHidden);\r\n try {\r\n result =\r\n style(testElm, cssProperty('scrollbar-width')) === 'none' ||\r\n window.getComputedStyle(testElm, '::-webkit-scrollbar').getPropertyValue('display') ===\r\n 'none';\r\n } catch (ex) {}\r\n revertClass();\r\n return result;\r\n};\r\n\r\nconst getRtlScrollBehavior = (\r\n parentElm: HTMLElement,\r\n childElm: HTMLElement\r\n): { i: boolean; n: boolean } => {\r\n const strHidden = 'hidden';\r\n style(parentElm, { overflowX: strHidden, overflowY: strHidden, direction: 'rtl' });\r\n scrollLeft(parentElm, 0);\r\n\r\n const parentOffset = absoluteCoordinates(parentElm);\r\n const childOffset = absoluteCoordinates(childElm);\r\n scrollLeft(parentElm, -999); // https://github.com/KingSora/OverlayScrollbars/issues/187\r\n const childOffsetAfterScroll = absoluteCoordinates(childElm);\r\n return {\r\n /**\r\n * origin direction = determines if the zero scroll position is on the left or right side\r\n * 'i' means 'invert' (i === true means that the axis must be inverted to be correct)\r\n * true = on the left side\r\n * false = on the right side\r\n */\r\n i: parentOffset.x === childOffset.x,\r\n /**\r\n * negative = determines if the maximum scroll is positive or negative\r\n * 'n' means 'negate' (n === true means that the axis must be negated to be correct)\r\n * true = negative\r\n * false = positive\r\n */\r\n n: childOffset.x !== childOffsetAfterScroll.x,\r\n };\r\n};\r\n\r\nconst getFlexboxGlue = (parentElm: HTMLElement, childElm: HTMLElement): boolean => {\r\n const revertFbxGlue = addClass(parentElm, classNameEnvironmentFlexboxGlue);\r\n const minOffsetsizeParent = getBoundingClientRect(parentElm);\r\n const minOffsetsize = getBoundingClientRect(childElm);\r\n const supportsMin = equalBCRWH(minOffsetsize, minOffsetsizeParent, true);\r\n\r\n const revertFbxGlueMax = addClass(parentElm, classNameEnvironmentFlexboxGlueMax);\r\n const maxOffsetsizeParent = getBoundingClientRect(parentElm);\r\n const maxOffsetsize = getBoundingClientRect(childElm);\r\n const supportsMax = equalBCRWH(maxOffsetsize, maxOffsetsizeParent, true);\r\n\r\n revertFbxGlue();\r\n revertFbxGlueMax();\r\n\r\n return supportsMin && supportsMax;\r\n};\r\n\r\nconst createEnvironment = (): InternalEnvironment => {\r\n const { body } = document;\r\n const envDOM = createDOM(`
`);\r\n const envElm = envDOM[0] as HTMLElement;\r\n const envChildElm = envElm.firstChild as HTMLElement;\r\n const [addEvent, , triggerEvent] = createEventListenerHub();\r\n const [updateNativeScrollbarSizeCache, getNativeScrollbarSizeCache] = createCache(\r\n {\r\n _initialValue: getNativeScrollbarSize(body, envElm, envChildElm),\r\n _equal: equalXY,\r\n },\r\n getNativeScrollbarSize.bind(0, body, envElm, envChildElm, true)\r\n );\r\n const [nativeScrollbarsSize] = getNativeScrollbarSizeCache();\r\n const nativeScrollbarsHiding = getNativeScrollbarsHiding(envElm);\r\n const nativeScrollbarsOverlaid = {\r\n x: nativeScrollbarsSize.x === 0,\r\n y: nativeScrollbarsSize.y === 0,\r\n };\r\n const staticDefaultInitialization: Initialization = {\r\n host: null,\r\n padding: !nativeScrollbarsHiding,\r\n viewport: (target) => nativeScrollbarsHiding && target === target.ownerDocument.body && target,\r\n content: false,\r\n scrollbarsSlot: true,\r\n cancel: {\r\n nativeScrollbarsOverlaid: true,\r\n body: null,\r\n },\r\n };\r\n const staticDefaultOptions = assignDeep({}, defaultOptions);\r\n\r\n const env: InternalEnvironment = {\r\n _nativeScrollbarsSize: nativeScrollbarsSize,\r\n _nativeScrollbarsOverlaid: nativeScrollbarsOverlaid,\r\n _nativeScrollbarsHiding: nativeScrollbarsHiding,\r\n _cssCustomProperties: style(envElm, 'zIndex') === '-1',\r\n _rtlScrollBehavior: getRtlScrollBehavior(envElm, envChildElm),\r\n _flexboxGlue: getFlexboxGlue(envElm, envChildElm),\r\n _addListener: (listener) => addEvent('_', listener),\r\n _getDefaultInitialization: assignDeep.bind(\r\n 0,\r\n {} as Initialization,\r\n staticDefaultInitialization\r\n ),\r\n _setDefaultInitialization(newInitializationStrategy) {\r\n assignDeep(staticDefaultInitialization, newInitializationStrategy);\r\n },\r\n _getDefaultOptions: assignDeep.bind(0, {} as Options, staticDefaultOptions),\r\n _setDefaultOptions(newDefaultOptions) {\r\n assignDeep(staticDefaultOptions, newDefaultOptions);\r\n },\r\n _staticDefaultInitialization: assignDeep({}, staticDefaultInitialization),\r\n _staticDefaultOptions: assignDeep({}, staticDefaultOptions),\r\n };\r\n\r\n removeAttr(envElm, 'style');\r\n removeElements(envElm);\r\n\r\n if (!nativeScrollbarsHiding && (!nativeScrollbarsOverlaid.x || !nativeScrollbarsOverlaid.y)) {\r\n let resizeFn: undefined | ReturnType;\r\n window.addEventListener('resize', () => {\r\n const scrollbarsHidingPlugin = getPlugins()[scrollbarsHidingPluginName] as\r\n | ScrollbarsHidingPluginInstance\r\n | undefined;\r\n\r\n resizeFn = resizeFn || (scrollbarsHidingPlugin && scrollbarsHidingPlugin._envWindowZoom());\r\n resizeFn && resizeFn(env, updateNativeScrollbarSizeCache, triggerEvent.bind(0, '_'));\r\n });\r\n }\r\n\r\n return env;\r\n};\r\n\r\nconst getEnvironment = (): InternalEnvironment => {\r\n if (!environmentInstance) {\r\n environmentInstance = createEnvironment();\r\n }\r\n return environmentInstance;\r\n};\r\n\r\nexport { getEnvironment };\r\n","import { isFunction, isHTMLElement, isNull, isUndefined } from 'support';\r\nimport type { StructureInitialization } from 'setups/structureSetup';\r\nimport type { ScrollbarsInitialization } from 'setups/scrollbarsSetup';\r\nimport { getEnvironment } from 'environment';\r\nimport { DeepPartial } from 'typings';\r\nimport { StructureSetupElementsObj } from 'setups/structureSetup/structureSetup.elements';\r\n\r\ntype StaticInitialization = HTMLElement | false | null;\r\ntype DynamicInitialization = HTMLElement | boolean | null;\r\n\r\nexport type InitializationTargetElement = HTMLElement | HTMLTextAreaElement;\r\n\r\nexport type Initialization = Omit &\r\n ScrollbarsInitialization & {\r\n cancel: {\r\n nativeScrollbarsOverlaid: boolean;\r\n body: boolean | null;\r\n };\r\n };\r\n\r\nexport type InitializationTargetObject = DeepPartial &\r\n Pick;\r\n\r\nexport type InitializationTarget = InitializationTargetElement | InitializationTargetObject;\r\n\r\n/**\r\n * Static elements MUST be present.\r\n * With false, null or undefined the element will be generated, otherwise the specified element is taken.\r\n */\r\nexport type StaticInitializationElement =\r\n | ((...args: Args) => StaticInitialization)\r\n | StaticInitialization;\r\n\r\n/**\r\n * Dynamic element CAN be present.\r\n * If its a element the element will be taken as the repsective element.\r\n * With true the element will be generated.\r\n * With false, null or undefined the element won't be generated.\r\n */\r\nexport type DynamicInitializationElement =\r\n | ((...args: Args) => DynamicInitialization)\r\n | DynamicInitialization;\r\n\r\nexport type FallbackInitializtationElement<\r\n InitElm extends StaticInitializationElement | DynamicInitializationElement\r\n> = Extract any> extends (...args: infer P) => any\r\n ? (...args: P) => HTMLElement\r\n : never;\r\n\r\nconst resolveInitialization = (value: any, args: any): T =>\r\n isFunction(value) ? value.apply(0, args) : value;\r\n\r\nconst staticInitializationElement = >(\r\n args: Parameters any>>,\r\n fallbackStaticInitializationElement: FallbackInitializtationElement,\r\n defaultStaticInitializationElementStrategy: T,\r\n staticInitializationElementValue?: T\r\n): HTMLElement => {\r\n const staticInitialization = isUndefined(staticInitializationElementValue)\r\n ? defaultStaticInitializationElementStrategy\r\n : staticInitializationElementValue;\r\n const resolvedInitialization = resolveInitialization(\r\n staticInitialization,\r\n args\r\n );\r\n return resolvedInitialization || fallbackStaticInitializationElement();\r\n};\r\n\r\nconst dynamicInitializationElement = >(\r\n args: Parameters any>>,\r\n fallbackDynamicInitializationElement: FallbackInitializtationElement,\r\n defaultDynamicInitializationElementStrategy: T,\r\n dynamicInitializationElementValue?: T\r\n): HTMLElement | false => {\r\n const dynamicInitialization = isUndefined(dynamicInitializationElementValue)\r\n ? defaultDynamicInitializationElementStrategy\r\n : dynamicInitializationElementValue;\r\n const resolvedInitialization = resolveInitialization(\r\n dynamicInitialization,\r\n args\r\n );\r\n return (\r\n !!resolvedInitialization &&\r\n (isHTMLElement(resolvedInitialization)\r\n ? resolvedInitialization\r\n : fallbackDynamicInitializationElement())\r\n );\r\n};\r\n\r\nconst cancelInitialization = (\r\n cancelInitializationValue: DeepPartial | false | null | undefined,\r\n structureSetupElements: StructureSetupElementsObj\r\n): boolean => {\r\n const { nativeScrollbarsOverlaid, body } = cancelInitializationValue || {};\r\n const { _isBody, _viewportIsTarget } = structureSetupElements;\r\n const { _getDefaultInitialization, _nativeScrollbarsOverlaid } = getEnvironment();\r\n const { nativeScrollbarsOverlaid: defaultNativeScrollbarsOverlaid, body: defaultbody } =\r\n _getDefaultInitialization().cancel;\r\n\r\n const resolvedNativeScrollbarsOverlaid =\r\n nativeScrollbarsOverlaid ?? defaultNativeScrollbarsOverlaid;\r\n const resolvedDocumentScrollingElement = isUndefined(body) ? defaultbody : body;\r\n\r\n const finalNativeScrollbarsOverlaid =\r\n (_nativeScrollbarsOverlaid.x || _nativeScrollbarsOverlaid.y) &&\r\n resolvedNativeScrollbarsOverlaid;\r\n const finalDocumentScrollingElement =\r\n _isBody &&\r\n (isNull(resolvedDocumentScrollingElement)\r\n ? !_viewportIsTarget\r\n : resolvedDocumentScrollingElement);\r\n\r\n return !!finalNativeScrollbarsOverlaid || !!finalDocumentScrollingElement;\r\n};\r\n\r\nexport { staticInitializationElement, dynamicInitializationElement, cancelInitialization };\r\n","import {\r\n isHTMLElement,\r\n appendChildren,\r\n createDiv,\r\n is,\r\n contents,\r\n insertAfter,\r\n addClass,\r\n parent,\r\n indexOf,\r\n removeElements,\r\n removeClass,\r\n hasClass,\r\n push,\r\n runEachAndClear,\r\n insertBefore,\r\n attr,\r\n keys,\r\n removeAttr,\r\n attrClass,\r\n hasAttrClass,\r\n noop,\r\n} from 'support';\r\nimport {\r\n dataAttributeHost,\r\n dataAttributeHostOverflowX,\r\n dataAttributeHostOverflowY,\r\n classNamePadding,\r\n classNameViewport,\r\n classNameContent,\r\n classNameViewportScrollbarHidden,\r\n} from 'classnames';\r\nimport { getEnvironment } from 'environment';\r\nimport { getPlugins, scrollbarsHidingPluginName } from 'plugins';\r\nimport type { ScrollbarsHidingPluginInstance } from 'plugins/scrollbarsHidingPlugin';\r\nimport {\r\n staticInitializationElement as generalStaticInitializationElement,\r\n dynamicInitializationElement as generalDynamicInitializationElement,\r\n} from 'initialization';\r\nimport type {\r\n InitializationTarget,\r\n InitializationTargetElement,\r\n InitializationTargetObject,\r\n} from 'initialization';\r\nimport type {\r\n StructureDynamicInitializationElement,\r\n StructureStaticInitializationElement,\r\n} from 'setups/structureSetup/structureSetup.initialization';\r\n\r\nexport type StructureSetupElements = [\r\n targetObj: StructureSetupElementsObj,\r\n appendElements: () => void,\r\n destroy: () => void\r\n];\r\n\r\nexport interface StructureSetupElementsObj {\r\n _target: InitializationTargetElement;\r\n _host: HTMLElement;\r\n _viewport: HTMLElement;\r\n _padding: HTMLElement | false;\r\n _content: HTMLElement | false;\r\n _viewportArrange: HTMLStyleElement | false | null | undefined;\r\n _scrollOffsetElement: HTMLElement;\r\n _scrollEventElement: HTMLElement | Document;\r\n // ctx ----\r\n _isTextarea: boolean;\r\n _isBody: boolean;\r\n _windowElm: Window;\r\n _documentElm: Document;\r\n _targetIsElm: boolean;\r\n _viewportIsTarget: boolean;\r\n _viewportHasClass: (className: string, attributeClassName: string) => boolean;\r\n _viewportAddRemoveClass: (className: string, attributeClassName: string, add?: boolean) => void;\r\n}\r\n\r\nconst createNewDiv = createDiv.bind(0, '');\r\n\r\nconst unwrap = (elm: HTMLElement | false | null | undefined) => {\r\n appendChildren(parent(elm), contents(elm));\r\n removeElements(elm);\r\n};\r\n\r\nconst addDataAttrHost = (elm: HTMLElement, value: string) => {\r\n attr(elm, dataAttributeHost, value);\r\n return removeAttr.bind(0, elm, dataAttributeHost);\r\n};\r\n\r\nexport const createStructureSetupElements = (\r\n target: InitializationTarget\r\n): StructureSetupElements => {\r\n const env = getEnvironment();\r\n const { _getDefaultInitialization, _nativeScrollbarsHiding } = env;\r\n const scrollbarsHidingPlugin = getPlugins()[scrollbarsHidingPluginName] as\r\n | ScrollbarsHidingPluginInstance\r\n | undefined;\r\n const createUniqueViewportArrangeElement =\r\n scrollbarsHidingPlugin && scrollbarsHidingPlugin._createUniqueViewportArrangeElement;\r\n const {\r\n host: defaultHostInitialization,\r\n viewport: defaultViewportInitialization,\r\n padding: defaultPaddingInitialization,\r\n content: defaultContentInitialization,\r\n } = _getDefaultInitialization();\r\n const targetIsElm = isHTMLElement(target);\r\n const targetStructureInitialization = (targetIsElm ? {} : target) as InitializationTargetObject;\r\n const {\r\n host: hostInitialization,\r\n padding: paddingInitialization,\r\n viewport: viewportInitialization,\r\n content: contentInitialization,\r\n } = targetStructureInitialization;\r\n\r\n const targetElement = targetIsElm ? target : targetStructureInitialization.target;\r\n const isTextarea = is(targetElement, 'textarea');\r\n const ownerDocument = targetElement.ownerDocument;\r\n const isBody = targetElement === ownerDocument.body;\r\n const wnd = ownerDocument.defaultView as Window;\r\n const staticInitializationElement =\r\n generalStaticInitializationElement.bind(0, [\r\n targetElement,\r\n ]);\r\n const dynamicInitializationElement =\r\n generalDynamicInitializationElement.bind(0, [\r\n targetElement,\r\n ]);\r\n const viewportElement = staticInitializationElement(\r\n createNewDiv,\r\n defaultViewportInitialization,\r\n viewportInitialization\r\n );\r\n const viewportIsTarget = viewportElement === targetElement;\r\n const viewportIsTargetBody = viewportIsTarget && isBody;\r\n const evaluatedTargetObj: StructureSetupElementsObj = {\r\n _target: targetElement,\r\n _host: isTextarea\r\n ? staticInitializationElement(createNewDiv, defaultHostInitialization, hostInitialization)\r\n : (targetElement as HTMLElement),\r\n _viewport: viewportElement,\r\n _padding:\r\n !viewportIsTarget &&\r\n dynamicInitializationElement(\r\n createNewDiv,\r\n defaultPaddingInitialization,\r\n paddingInitialization\r\n ),\r\n _content:\r\n !viewportIsTarget &&\r\n dynamicInitializationElement(\r\n createNewDiv,\r\n defaultContentInitialization,\r\n contentInitialization\r\n ),\r\n _viewportArrange:\r\n !viewportIsTarget &&\r\n !_nativeScrollbarsHiding &&\r\n createUniqueViewportArrangeElement &&\r\n createUniqueViewportArrangeElement(env),\r\n _scrollOffsetElement: viewportIsTargetBody ? ownerDocument.documentElement : viewportElement,\r\n _scrollEventElement: viewportIsTargetBody ? ownerDocument : viewportElement,\r\n _windowElm: wnd,\r\n _documentElm: ownerDocument,\r\n _isTextarea: isTextarea,\r\n _isBody: isBody,\r\n _targetIsElm: targetIsElm,\r\n _viewportIsTarget: viewportIsTarget,\r\n _viewportHasClass: (className: string, attributeClassName: string) =>\r\n viewportIsTarget\r\n ? hasAttrClass(viewportElement, dataAttributeHost, attributeClassName)\r\n : hasClass(viewportElement, className),\r\n _viewportAddRemoveClass: (className: string, attributeClassName: string, add?: boolean) =>\r\n viewportIsTarget\r\n ? attrClass(viewportElement, dataAttributeHost, attributeClassName, add)\r\n : (add ? addClass : removeClass)(viewportElement, className),\r\n };\r\n const generatedElements = keys(evaluatedTargetObj).reduce((arr, key: string) => {\r\n const value = evaluatedTargetObj[key];\r\n return push(arr, value && !parent(value) ? value : false);\r\n }, [] as HTMLElement[]);\r\n const elementIsGenerated = (elm: HTMLElement | false) =>\r\n elm ? indexOf(generatedElements, elm) > -1 : null;\r\n const { _target, _host, _padding, _viewport, _content, _viewportArrange } = evaluatedTargetObj;\r\n const destroyFns: (() => any)[] = [];\r\n const isTextareaHostGenerated = isTextarea && elementIsGenerated(_host);\r\n const targetContents = isTextarea\r\n ? _target\r\n : contents(\r\n [_content, _viewport, _padding, _host, _target].find(\r\n (elm) => elementIsGenerated(elm) === false\r\n )\r\n );\r\n const contentSlot = _content || _viewport;\r\n const appendElements = () => {\r\n const removeHostDataAttr = addDataAttrHost(_host, viewportIsTarget ? 'viewport' : 'host');\r\n const removePaddingClass = addClass(_padding, classNamePadding);\r\n const removeViewportClass = addClass(_viewport, !viewportIsTarget && classNameViewport);\r\n const removeContentClass = addClass(_content, classNameContent);\r\n const removeHtmlClass = viewportIsTargetBody\r\n ? addClass(parent(targetElement), classNameViewportScrollbarHidden)\r\n : noop;\r\n\r\n // only insert host for textarea after target if it was generated\r\n if (isTextareaHostGenerated) {\r\n insertAfter(_target, _host);\r\n\r\n push(destroyFns, () => {\r\n insertAfter(_host, _target);\r\n removeElements(_host);\r\n });\r\n }\r\n\r\n appendChildren(contentSlot, targetContents);\r\n appendChildren(_host, _padding);\r\n appendChildren(_padding || _host, !viewportIsTarget && _viewport);\r\n appendChildren(_viewport, _content);\r\n\r\n push(destroyFns, () => {\r\n removeHtmlClass();\r\n removeHostDataAttr();\r\n removeAttr(_viewport, dataAttributeHostOverflowX);\r\n removeAttr(_viewport, dataAttributeHostOverflowY);\r\n\r\n if (elementIsGenerated(_content)) {\r\n unwrap(_content);\r\n }\r\n if (elementIsGenerated(_viewport)) {\r\n unwrap(_viewport);\r\n }\r\n if (elementIsGenerated(_padding)) {\r\n unwrap(_padding);\r\n }\r\n removePaddingClass();\r\n removeViewportClass();\r\n removeContentClass();\r\n });\r\n\r\n if (_nativeScrollbarsHiding && !viewportIsTarget) {\r\n push(destroyFns, removeClass.bind(0, _viewport, classNameViewportScrollbarHidden));\r\n }\r\n if (_viewportArrange) {\r\n insertBefore(_viewport, _viewportArrange);\r\n push(destroyFns, removeElements.bind(0, _viewportArrange));\r\n }\r\n };\r\n\r\n return [evaluatedTargetObj, appendElements, runEachAndClear.bind(0, destroyFns)];\r\n};\r\n","import { style } from 'support';\r\nimport { getEnvironment } from 'environment';\r\nimport type { CreateStructureUpdateSegment } from 'setups/structureSetup/structureSetup.update';\r\n\r\n/**\r\n * Lifecycle with the responsibility to adjust the trinsic behavior of the content element.\r\n * @param structureUpdateHub\r\n * @returns\r\n */\r\nexport const createTrinsicUpdateSegment: CreateStructureUpdateSegment = (\r\n structureSetupElements,\r\n state\r\n) => {\r\n const { _content } = structureSetupElements;\r\n const [getState] = state;\r\n\r\n return (updateHints) => {\r\n const { _flexboxGlue } = getEnvironment();\r\n const { _heightIntrinsic } = getState();\r\n const { _heightIntrinsicChanged } = updateHints;\r\n const heightIntrinsicChanged = (_content || !_flexboxGlue) && _heightIntrinsicChanged;\r\n\r\n if (heightIntrinsicChanged) {\r\n style(_content, {\r\n height: _heightIntrinsic ? '' : '100%',\r\n });\r\n }\r\n\r\n return {\r\n _sizeChanged: heightIntrinsicChanged,\r\n _contentMutation: heightIntrinsicChanged,\r\n };\r\n };\r\n};\r\n","import { createCache, topRightBottomLeft, equalTRBL, style, assignDeep } from 'support';\r\nimport { StyleObject } from 'typings';\r\nimport { getEnvironment } from 'environment';\r\nimport type { CreateStructureUpdateSegment } from 'setups/structureSetup/structureSetup.update';\r\n\r\n/**\r\n * Lifecycle with the responsibility to adjust the padding styling of the padding and viewport element.\r\n * @param structureUpdateHub\r\n * @returns\r\n */\r\nexport const createPaddingUpdateSegment: CreateStructureUpdateSegment = (\r\n structureSetupElements,\r\n state\r\n) => {\r\n const [getState, setState] = state;\r\n const { _host, _padding, _viewport, _viewportIsTarget: _isSingleElm } = structureSetupElements;\r\n const [updatePaddingCache, currentPaddingCache] = createCache(\r\n {\r\n _equal: equalTRBL,\r\n _initialValue: topRightBottomLeft(),\r\n },\r\n topRightBottomLeft.bind(0, _host, 'padding', '')\r\n );\r\n\r\n return (updateHints, checkOption, force) => {\r\n let [padding, paddingChanged] = currentPaddingCache(force);\r\n const { _nativeScrollbarsHiding: _nativeScrollbarStyling, _flexboxGlue } = getEnvironment();\r\n const { _directionIsRTL } = getState();\r\n const { _sizeChanged, _contentMutation, _directionChanged } = updateHints;\r\n const [paddingAbsolute, paddingAbsoluteChanged] = checkOption('paddingAbsolute');\r\n const contentMutation = !_flexboxGlue && _contentMutation;\r\n\r\n if (_sizeChanged || paddingChanged || contentMutation) {\r\n [padding, paddingChanged] = updatePaddingCache(force);\r\n }\r\n\r\n const paddingStyleChanged =\r\n !_isSingleElm && (paddingAbsoluteChanged || _directionChanged || paddingChanged);\r\n\r\n if (paddingStyleChanged) {\r\n // if there is no padding element and no scrollbar styling, paddingAbsolute isn't supported\r\n const paddingRelative = !paddingAbsolute || (!_padding && !_nativeScrollbarStyling);\r\n const paddingHorizontal = padding.r + padding.l;\r\n const paddingVertical = padding.t + padding.b;\r\n\r\n const paddingStyle: StyleObject = {\r\n marginRight: paddingRelative && !_directionIsRTL ? -paddingHorizontal : 0,\r\n marginBottom: paddingRelative ? -paddingVertical : 0,\r\n marginLeft: paddingRelative && _directionIsRTL ? -paddingHorizontal : 0,\r\n top: paddingRelative ? -padding.t : 0,\r\n right: paddingRelative ? (_directionIsRTL ? -padding.r : 'auto') : 0,\r\n left: paddingRelative ? (_directionIsRTL ? 'auto' : -padding.l) : 0,\r\n width: paddingRelative ? `calc(100% + ${paddingHorizontal}px)` : '',\r\n };\r\n const viewportStyle: StyleObject = {\r\n paddingTop: paddingRelative ? padding.t : 0,\r\n paddingRight: paddingRelative ? padding.r : 0,\r\n paddingBottom: paddingRelative ? padding.b : 0,\r\n paddingLeft: paddingRelative ? padding.l : 0,\r\n };\r\n\r\n // if there is no padding element apply the style to the viewport element instead\r\n style(_padding || _viewport, paddingStyle);\r\n style(_viewport, viewportStyle);\r\n\r\n setState({\r\n _padding: padding,\r\n _paddingAbsolute: !paddingRelative,\r\n _viewportPaddingStyle: _padding\r\n ? viewportStyle\r\n : assignDeep({}, paddingStyle, viewportStyle),\r\n });\r\n }\r\n\r\n return {\r\n _paddingStyleChanged: paddingStyleChanged,\r\n };\r\n };\r\n};\r\n","import {\r\n createCache,\r\n attr,\r\n WH,\r\n XY,\r\n style,\r\n scrollSize,\r\n fractionalSize,\r\n equalWH,\r\n addClass,\r\n removeClass,\r\n clientSize,\r\n equalXY,\r\n attrClass,\r\n noop,\r\n} from 'support';\r\nimport { getEnvironment } from 'environment';\r\nimport {\r\n classNameViewportScrollbarHidden,\r\n classNameOverflowVisible,\r\n dataAttributeHost,\r\n dataAttributeHostOverflowX,\r\n dataAttributeHostOverflowY,\r\n dataValueHostScrollbarHidden,\r\n dataValueHostOverflowVisible,\r\n} from 'classnames';\r\nimport { getPlugins, scrollbarsHidingPluginName } from 'plugins';\r\nimport type {\r\n ScrollbarsHidingPluginInstance,\r\n ArrangeViewport,\r\n UndoArrangeViewport,\r\n} from 'plugins/scrollbarsHidingPlugin';\r\nimport type { StyleObject, OverflowStyle } from 'typings';\r\nimport type { OverflowBehavior } from 'options';\r\nimport type { CreateStructureUpdateSegment } from 'setups/structureSetup/structureSetup.update';\r\n\r\nexport interface ViewportOverflowState {\r\n _scrollbarsHideOffset: XY;\r\n _scrollbarsHideOffsetArrange: XY;\r\n _overflowScroll: XY;\r\n _overflowStyle: XY;\r\n}\r\n\r\nexport type GetViewportOverflowState = (\r\n showNativeOverlaidScrollbars: boolean,\r\n viewportStyleObj?: StyleObject\r\n) => ViewportOverflowState;\r\n\r\nexport type HideNativeScrollbars = (\r\n viewportOverflowState: ViewportOverflowState,\r\n directionIsRTL: boolean,\r\n viewportArrange: boolean,\r\n viewportStyleObj: StyleObject\r\n) => void;\r\n\r\nconst { max } = Math;\r\nconst max0 = max.bind(0, 0);\r\nconst strVisible = 'visible';\r\nconst strHidden = 'hidden';\r\nconst overlaidScrollbarsHideOffset = 42;\r\nconst whCacheOptions = {\r\n _equal: equalWH,\r\n _initialValue: { w: 0, h: 0 },\r\n};\r\nconst xyCacheOptions = {\r\n _equal: equalXY,\r\n _initialValue: { x: strHidden, y: strHidden } as XY,\r\n};\r\n\r\nconst getOverflowAmount = (viewportScrollSize: WH, viewportClientSize: WH) => {\r\n const tollerance = window.devicePixelRatio % 1 !== 0 ? 1 : 0;\r\n const amount = {\r\n w: max0(viewportScrollSize.w - viewportClientSize.w),\r\n h: max0(viewportScrollSize.h - viewportClientSize.h),\r\n };\r\n\r\n return {\r\n w: amount.w > tollerance ? amount.w : 0,\r\n h: amount.h > tollerance ? amount.h : 0,\r\n };\r\n};\r\n\r\nconst conditionalClass = (\r\n elm: Element | false | null | undefined,\r\n classNames: string,\r\n add: boolean\r\n) => (add ? addClass(elm, classNames) : removeClass(elm, classNames));\r\n\r\nconst overflowIsVisible = (overflowBehavior: string) => overflowBehavior.indexOf(strVisible) === 0;\r\n\r\n/**\r\n * Lifecycle with the responsibility to set the correct overflow and scrollbar hiding styles of the viewport element.\r\n * @param structureUpdateHub\r\n * @returns\r\n */\r\nexport const createOverflowUpdateSegment: CreateStructureUpdateSegment = (\r\n structureSetupElements,\r\n state\r\n) => {\r\n const [getState, setState] = state;\r\n const {\r\n _host,\r\n _padding,\r\n _viewport,\r\n _viewportArrange,\r\n _viewportIsTarget,\r\n _viewportAddRemoveClass,\r\n _isBody,\r\n _windowElm,\r\n } = structureSetupElements;\r\n const {\r\n _nativeScrollbarsSize,\r\n _flexboxGlue,\r\n _nativeScrollbarsHiding,\r\n _nativeScrollbarsOverlaid,\r\n } = getEnvironment();\r\n const scrollbarsHidingPlugin = getPlugins()[scrollbarsHidingPluginName] as\r\n | ScrollbarsHidingPluginInstance\r\n | undefined;\r\n const doViewportArrange =\r\n !_viewportIsTarget &&\r\n !_nativeScrollbarsHiding &&\r\n (_nativeScrollbarsOverlaid.x || _nativeScrollbarsOverlaid.y);\r\n const viewportIsTargetBody = _isBody && _viewportIsTarget;\r\n\r\n const [updateSizeFraction, getCurrentSizeFraction] = createCache>(\r\n whCacheOptions,\r\n fractionalSize.bind(0, _viewport)\r\n );\r\n\r\n const [updateViewportScrollSizeCache, getCurrentViewportScrollSizeCache] = createCache<\r\n WH\r\n >(whCacheOptions, scrollSize.bind(0, _viewport));\r\n\r\n const [updateOverflowAmountCache, getCurrentOverflowAmountCache] =\r\n createCache>(whCacheOptions);\r\n\r\n const [updateOverflowEdge, getCurrentOverflowEdgeCache] = createCache>(whCacheOptions);\r\n\r\n const [updateOverflowStyleCache] = createCache>(xyCacheOptions);\r\n\r\n /**\r\n * Applies a fixed height to the viewport so it can't overflow or underflow the host element.\r\n * @param viewportOverflowState The current overflow state.\r\n * @param heightIntrinsic Whether the host height is intrinsic or not.\r\n */\r\n const fixFlexboxGlue = (\r\n viewportOverflowState: ViewportOverflowState,\r\n heightIntrinsic: boolean\r\n ) => {\r\n style(_viewport, {\r\n height: '',\r\n });\r\n\r\n if (heightIntrinsic) {\r\n const { _paddingAbsolute, _padding: padding } = getState();\r\n const { _overflowScroll, _scrollbarsHideOffset } = viewportOverflowState;\r\n const fSize = fractionalSize(_host);\r\n const hostClientSize = clientSize(_host);\r\n\r\n // padding subtraction is only needed if padding is absolute or if viewport is content-box\r\n const isContentBox = style(_viewport, 'boxSizing') === 'content-box';\r\n const paddingVertical = _paddingAbsolute || isContentBox ? padding.b + padding.t : 0;\r\n const subtractXScrollbar = !(_nativeScrollbarsOverlaid.x && isContentBox);\r\n\r\n style(_viewport, {\r\n height:\r\n hostClientSize.h +\r\n fSize.h +\r\n (_overflowScroll.x && subtractXScrollbar ? _scrollbarsHideOffset.x : 0) -\r\n paddingVertical,\r\n });\r\n }\r\n };\r\n\r\n /**\r\n * Gets the current overflow state of the viewport.\r\n * @param showNativeOverlaidScrollbars Whether native overlaid scrollbars are shown instead of hidden.\r\n * @param viewportStyleObj The viewport style object where the overflow scroll property can be read of, or undefined if shall be determined.\r\n * @returns A object which contains informations about the current overflow state.\r\n */\r\n const getViewportOverflowState: GetViewportOverflowState = (\r\n showNativeOverlaidScrollbars,\r\n viewportStyleObj?\r\n ) => {\r\n const arrangeHideOffset =\r\n !_nativeScrollbarsHiding && !showNativeOverlaidScrollbars ? overlaidScrollbarsHideOffset : 0;\r\n const getStatePerAxis = (\r\n styleKey: string,\r\n isOverlaid: boolean,\r\n nativeScrollbarSize: number\r\n ) => {\r\n const overflowStyle = style(_viewport, styleKey);\r\n // can't do something like \"viewportStyleObj && viewportStyleObj[styleKey] || overflowStyle\" here!\r\n const objectPrefferedOverflowStyle = viewportStyleObj\r\n ? viewportStyleObj[styleKey]\r\n : overflowStyle;\r\n const overflowScroll = objectPrefferedOverflowStyle === 'scroll';\r\n const nonScrollbarStylingHideOffset = isOverlaid ? arrangeHideOffset : nativeScrollbarSize;\r\n const scrollbarsHideOffset =\r\n overflowScroll && !_nativeScrollbarsHiding ? nonScrollbarStylingHideOffset : 0;\r\n const scrollbarsHideOffsetArrange = isOverlaid && !!arrangeHideOffset;\r\n\r\n return [overflowStyle, overflowScroll, scrollbarsHideOffset, scrollbarsHideOffsetArrange] as [\r\n overflowStyle: OverflowStyle,\r\n overflowScroll: boolean,\r\n scrollbarsHideOffset: number,\r\n scrollbarsHideOffsetArrange: boolean\r\n ];\r\n };\r\n\r\n const [xOverflowStyle, xOverflowScroll, xScrollbarsHideOffset, xScrollbarsHideOffsetArrange] =\r\n getStatePerAxis('overflowX', _nativeScrollbarsOverlaid.x, _nativeScrollbarsSize.x);\r\n const [yOverflowStyle, yOverflowScroll, yScrollbarsHideOffset, yScrollbarsHideOffsetArrange] =\r\n getStatePerAxis('overflowY', _nativeScrollbarsOverlaid.y, _nativeScrollbarsSize.y);\r\n\r\n return {\r\n _overflowStyle: {\r\n x: xOverflowStyle,\r\n y: yOverflowStyle,\r\n },\r\n _overflowScroll: {\r\n x: xOverflowScroll,\r\n y: yOverflowScroll,\r\n },\r\n _scrollbarsHideOffset: {\r\n x: xScrollbarsHideOffset,\r\n y: yScrollbarsHideOffset,\r\n },\r\n _scrollbarsHideOffsetArrange: {\r\n x: xScrollbarsHideOffsetArrange,\r\n y: yScrollbarsHideOffsetArrange,\r\n },\r\n };\r\n };\r\n\r\n /**\r\n * Sets the overflow property of the viewport and calculates the a overflow state according to the new parameters.\r\n * @param showNativeOverlaidScrollbars Whether to show natively overlaid scrollbars.\r\n * @param overflowAmount The overflow amount.\r\n * @param overflow The overflow behavior according to the options.\r\n * @param viewportStyleObj The viewport style object to which the overflow style shall be applied.\r\n * @returns A object which represents the newly set overflow state.\r\n */\r\n const setViewportOverflowState = (\r\n showNativeOverlaidScrollbars: boolean,\r\n hasOverflow: XY,\r\n overflowOption: XY,\r\n viewportStyleObj: StyleObject\r\n ): ViewportOverflowState => {\r\n const setAxisOverflowStyle = (behavior: OverflowBehavior, hasOverflowAxis: boolean) => {\r\n const overflowVisible = overflowIsVisible(behavior);\r\n const overflowVisibleBehavior =\r\n (hasOverflowAxis && overflowVisible && behavior.replace(`${strVisible}-`, '')) || '';\r\n return [\r\n hasOverflowAxis && !overflowVisible ? behavior : '',\r\n overflowIsVisible(overflowVisibleBehavior) ? 'hidden' : overflowVisibleBehavior,\r\n ];\r\n };\r\n\r\n const [overflowX, visibleBehaviorX] = setAxisOverflowStyle(overflowOption.x, hasOverflow.x);\r\n const [overflowY, visibleBehaviorY] = setAxisOverflowStyle(overflowOption.y, hasOverflow.y);\r\n\r\n viewportStyleObj.overflowX = visibleBehaviorX && overflowY ? visibleBehaviorX : overflowX;\r\n viewportStyleObj.overflowY = visibleBehaviorY && overflowX ? visibleBehaviorY : overflowY;\r\n\r\n return getViewportOverflowState(showNativeOverlaidScrollbars, viewportStyleObj);\r\n };\r\n\r\n /**\r\n * Hides the native scrollbars according to the passed parameters.\r\n * @param viewportOverflowState The viewport overflow state.\r\n * @param directionIsRTL Whether the direction is RTL or not.\r\n * @param viewportArrange Whether special styles related to the viewport arrange strategy shall be applied.\r\n * @param viewportStyleObj The viewport style object to which the needed styles shall be applied.\r\n */\r\n const hideNativeScrollbars: HideNativeScrollbars = (\r\n viewportOverflowState,\r\n directionIsRTL,\r\n viewportArrange,\r\n viewportStyleObj\r\n ) => {\r\n const { _scrollbarsHideOffset, _scrollbarsHideOffsetArrange } = viewportOverflowState;\r\n const { x: arrangeX, y: arrangeY } = _scrollbarsHideOffsetArrange;\r\n const { x: hideOffsetX, y: hideOffsetY } = _scrollbarsHideOffset;\r\n const { _viewportPaddingStyle: viewportPaddingStyle } = getState();\r\n const horizontalMarginKey: keyof StyleObject = directionIsRTL ? 'marginLeft' : 'marginRight';\r\n const viewportHorizontalPaddingKey: keyof StyleObject = directionIsRTL\r\n ? 'paddingLeft'\r\n : 'paddingRight';\r\n const horizontalMarginValue = viewportPaddingStyle[horizontalMarginKey] as number;\r\n const verticalMarginValue = viewportPaddingStyle.marginBottom as number;\r\n const horizontalPaddingValue = viewportPaddingStyle[viewportHorizontalPaddingKey] as number;\r\n const verticalPaddingValue = viewportPaddingStyle.paddingBottom as number;\r\n\r\n // horizontal\r\n viewportStyleObj.width = `calc(100% + ${hideOffsetY + horizontalMarginValue * -1}px)`;\r\n viewportStyleObj[horizontalMarginKey] = -hideOffsetY + horizontalMarginValue;\r\n\r\n // vertical\r\n viewportStyleObj.marginBottom = -hideOffsetX + verticalMarginValue;\r\n\r\n // viewport arrange additional styles\r\n if (viewportArrange) {\r\n viewportStyleObj[viewportHorizontalPaddingKey] =\r\n horizontalPaddingValue + (arrangeY ? hideOffsetY : 0);\r\n viewportStyleObj.paddingBottom = verticalPaddingValue + (arrangeX ? hideOffsetX : 0);\r\n }\r\n };\r\n\r\n const [arrangeViewport, undoViewportArrange] = scrollbarsHidingPlugin\r\n ? scrollbarsHidingPlugin._overflowUpdateSegment(\r\n doViewportArrange,\r\n _flexboxGlue,\r\n _viewport,\r\n _viewportArrange,\r\n getState,\r\n getViewportOverflowState,\r\n hideNativeScrollbars\r\n )\r\n : [(() => doViewportArrange) as ArrangeViewport, (() => [noop]) as UndoArrangeViewport];\r\n\r\n return (updateHints, checkOption, force) => {\r\n const {\r\n _sizeChanged,\r\n _hostMutation,\r\n _contentMutation,\r\n _paddingStyleChanged,\r\n _heightIntrinsicChanged,\r\n _directionChanged,\r\n } = updateHints;\r\n const { _heightIntrinsic, _directionIsRTL } = getState();\r\n const [showNativeOverlaidScrollbarsOption, showNativeOverlaidScrollbarsChanged] =\r\n checkOption('showNativeOverlaidScrollbars');\r\n const [overflow, overflowChanged] = checkOption>('overflow');\r\n\r\n const showNativeOverlaidScrollbars =\r\n showNativeOverlaidScrollbarsOption &&\r\n _nativeScrollbarsOverlaid.x &&\r\n _nativeScrollbarsOverlaid.y;\r\n const adjustFlexboxGlue =\r\n !_viewportIsTarget &&\r\n !_flexboxGlue &&\r\n (_sizeChanged ||\r\n _contentMutation ||\r\n _hostMutation ||\r\n showNativeOverlaidScrollbarsChanged ||\r\n _heightIntrinsicChanged);\r\n const overflowXVisible = overflowIsVisible(overflow.x);\r\n const overflowYVisible = overflowIsVisible(overflow.y);\r\n const overflowVisible = overflowXVisible || overflowYVisible;\r\n\r\n let sizeFractionCache = getCurrentSizeFraction(force);\r\n let viewportScrollSizeCache = getCurrentViewportScrollSizeCache(force);\r\n let overflowAmuntCache = getCurrentOverflowAmountCache(force);\r\n let overflowEdgeCache = getCurrentOverflowEdgeCache(force);\r\n\r\n let preMeasureViewportOverflowState: ViewportOverflowState | undefined;\r\n\r\n if (showNativeOverlaidScrollbarsChanged && _nativeScrollbarsHiding) {\r\n _viewportAddRemoveClass(\r\n classNameViewportScrollbarHidden,\r\n dataValueHostScrollbarHidden,\r\n !showNativeOverlaidScrollbars\r\n );\r\n }\r\n\r\n if (adjustFlexboxGlue) {\r\n preMeasureViewportOverflowState = getViewportOverflowState(showNativeOverlaidScrollbars);\r\n fixFlexboxGlue(preMeasureViewportOverflowState, _heightIntrinsic);\r\n }\r\n\r\n if (\r\n _sizeChanged ||\r\n _paddingStyleChanged ||\r\n _contentMutation ||\r\n _directionChanged ||\r\n showNativeOverlaidScrollbarsChanged\r\n ) {\r\n if (overflowVisible) {\r\n _viewportAddRemoveClass(classNameOverflowVisible, dataValueHostOverflowVisible, false);\r\n }\r\n\r\n const [redoViewportArrange, undoViewportArrangeOverflowState] = undoViewportArrange(\r\n showNativeOverlaidScrollbars,\r\n _directionIsRTL,\r\n preMeasureViewportOverflowState\r\n );\r\n const [sizeFraction, sizeFractionChanged] = (sizeFractionCache = updateSizeFraction(force));\r\n const [viewportScrollSize, viewportScrollSizeChanged] = (viewportScrollSizeCache =\r\n updateViewportScrollSizeCache(force));\r\n const viewportclientSize = clientSize(_viewport);\r\n let arrangedViewportScrollSize = viewportScrollSize;\r\n let arrangedViewportClientSize = viewportclientSize;\r\n\r\n redoViewportArrange();\r\n\r\n // if re measure is required (only required if content arrange strategy is used)\r\n if (\r\n (viewportScrollSizeChanged || sizeFractionChanged || showNativeOverlaidScrollbarsChanged) &&\r\n undoViewportArrangeOverflowState &&\r\n !showNativeOverlaidScrollbars &&\r\n arrangeViewport(\r\n undoViewportArrangeOverflowState,\r\n viewportScrollSize,\r\n sizeFraction,\r\n _directionIsRTL\r\n )\r\n ) {\r\n arrangedViewportClientSize = clientSize(_viewport);\r\n arrangedViewportScrollSize = scrollSize(_viewport);\r\n }\r\n\r\n const overflowAmountScrollSize = {\r\n w: max0(max(viewportScrollSize.w, arrangedViewportScrollSize.w) + sizeFraction.w),\r\n h: max0(max(viewportScrollSize.h, arrangedViewportScrollSize.h) + sizeFraction.h),\r\n };\r\n const overflowAmountClientSize = {\r\n w: max0(\r\n viewportIsTargetBody\r\n ? _windowElm.innerWidth\r\n : arrangedViewportClientSize.w +\r\n max0(viewportclientSize.w - viewportScrollSize.w) +\r\n sizeFraction.w\r\n ),\r\n h: max0(\r\n viewportIsTargetBody\r\n ? _windowElm.innerHeight\r\n : arrangedViewportClientSize.h +\r\n max0(viewportclientSize.h - viewportScrollSize.h) +\r\n sizeFraction.h\r\n ),\r\n };\r\n\r\n overflowEdgeCache = updateOverflowEdge(overflowAmountClientSize);\r\n overflowAmuntCache = updateOverflowAmountCache(\r\n getOverflowAmount(overflowAmountScrollSize, overflowAmountClientSize),\r\n force\r\n );\r\n }\r\n\r\n const [overflowEdge, overflowEdgeChanged] = overflowEdgeCache;\r\n const [overflowAmount, overflowAmountChanged] = overflowAmuntCache;\r\n const [viewportScrollSize, viewportScrollSizeChanged] = viewportScrollSizeCache;\r\n const [sizeFraction, sizeFractionChanged] = sizeFractionCache;\r\n const hasOverflow = {\r\n x: overflowAmount.w > 0,\r\n y: overflowAmount.h > 0,\r\n };\r\n const removeClipping =\r\n (overflowXVisible && overflowYVisible && (hasOverflow.x || hasOverflow.y)) ||\r\n (overflowXVisible && hasOverflow.x && !hasOverflow.y) ||\r\n (overflowYVisible && hasOverflow.y && !hasOverflow.x);\r\n\r\n if (\r\n _paddingStyleChanged ||\r\n _directionChanged ||\r\n sizeFractionChanged ||\r\n viewportScrollSizeChanged ||\r\n overflowEdgeChanged ||\r\n overflowAmountChanged ||\r\n overflowChanged ||\r\n showNativeOverlaidScrollbarsChanged ||\r\n adjustFlexboxGlue\r\n ) {\r\n const viewportStyle: StyleObject = {\r\n marginRight: 0,\r\n marginBottom: 0,\r\n marginLeft: 0,\r\n width: '',\r\n overflowY: '',\r\n overflowX: '',\r\n };\r\n const viewportOverflowState = setViewportOverflowState(\r\n showNativeOverlaidScrollbars,\r\n hasOverflow,\r\n overflow,\r\n viewportStyle\r\n );\r\n const viewportArranged = arrangeViewport(\r\n viewportOverflowState,\r\n viewportScrollSize,\r\n sizeFraction,\r\n _directionIsRTL\r\n );\r\n\r\n if (!_viewportIsTarget) {\r\n hideNativeScrollbars(\r\n viewportOverflowState,\r\n _directionIsRTL,\r\n viewportArranged,\r\n viewportStyle\r\n );\r\n }\r\n\r\n if (adjustFlexboxGlue) {\r\n fixFlexboxGlue(viewportOverflowState, _heightIntrinsic);\r\n }\r\n\r\n if (_viewportIsTarget) {\r\n attr(_host, dataAttributeHostOverflowX, viewportStyle.overflowX as string);\r\n attr(_host, dataAttributeHostOverflowY, viewportStyle.overflowY as string);\r\n } else {\r\n style(_viewport, viewportStyle);\r\n }\r\n }\r\n\r\n attrClass(_host, dataAttributeHost, dataValueHostOverflowVisible, removeClipping);\r\n conditionalClass(_padding, classNameOverflowVisible, removeClipping);\r\n !_viewportIsTarget && conditionalClass(_viewport, classNameOverflowVisible, overflowVisible);\r\n\r\n const [overflowStyle, overflowStyleChanged] = updateOverflowStyleCache(\r\n getViewportOverflowState(showNativeOverlaidScrollbars)._overflowStyle\r\n );\r\n\r\n setState({\r\n _overflowStyle: overflowStyle,\r\n _overflowEdge: {\r\n x: overflowEdge.w,\r\n y: overflowEdge.h,\r\n },\r\n _overflowAmount: {\r\n x: overflowAmount.w,\r\n y: overflowAmount.h,\r\n },\r\n _hasOverflow: hasOverflow,\r\n });\r\n\r\n return {\r\n _overflowStyleChanged: overflowStyleChanged,\r\n _overflowEdgeChanged: overflowEdgeChanged,\r\n _overflowAmountChanged: overflowAmountChanged,\r\n };\r\n };\r\n};\r\n","import { each, scrollLeft, scrollTop, assignDeep, keys } from 'support';\r\nimport { getEnvironment } from 'environment';\r\nimport { dataValueHostUpdating } from 'classnames';\r\nimport {\r\n createTrinsicUpdateSegment,\r\n createPaddingUpdateSegment,\r\n createOverflowUpdateSegment,\r\n} from 'setups/structureSetup/updateSegments';\r\nimport type { SetupState, SetupUpdateSegment, SetupUpdateCheckOption } from 'setups';\r\nimport type { StructureSetupState } from 'setups/structureSetup';\r\nimport type { StructureSetupElementsObj } from 'setups/structureSetup/structureSetup.elements';\r\n\r\nexport type CreateStructureUpdateSegment = (\r\n structureSetupElements: StructureSetupElementsObj,\r\n state: SetupState\r\n) => StructureSetupUpdateSegment;\r\n\r\nexport type StructureSetupUpdateSegment = SetupUpdateSegment;\r\n\r\nexport type StructureSetupUpdate = (\r\n checkOption: SetupUpdateCheckOption,\r\n updateHints: Partial,\r\n force?: boolean\r\n) => StructureSetupUpdateHints;\r\n\r\nexport interface StructureSetupUpdateHints {\r\n _sizeChanged: boolean;\r\n _directionChanged: boolean;\r\n _heightIntrinsicChanged: boolean;\r\n _overflowEdgeChanged: boolean;\r\n _overflowAmountChanged: boolean;\r\n _overflowStyleChanged: boolean;\r\n _paddingStyleChanged: boolean;\r\n _hostMutation: boolean;\r\n _contentMutation: boolean;\r\n}\r\n\r\nconst prepareUpdateHints = (\r\n leading: Required,\r\n adaptive?: Partial,\r\n force?: boolean\r\n): Required => {\r\n const result = {};\r\n const finalAdaptive = adaptive || {};\r\n const objKeys = keys(leading).concat(keys(finalAdaptive));\r\n\r\n each(objKeys, (key) => {\r\n const leadingValue = leading[key];\r\n const adaptiveValue = finalAdaptive[key];\r\n result[key] = !!(force || leadingValue || adaptiveValue);\r\n });\r\n\r\n return result as Required;\r\n};\r\n\r\nexport const createStructureSetupUpdate = (\r\n structureSetupElements: StructureSetupElementsObj,\r\n state: SetupState\r\n): StructureSetupUpdate => {\r\n const { _viewport, _viewportAddRemoveClass } = structureSetupElements;\r\n const { _nativeScrollbarsHiding, _nativeScrollbarsOverlaid, _flexboxGlue } = getEnvironment();\r\n const doViewportArrange =\r\n !_nativeScrollbarsHiding && (_nativeScrollbarsOverlaid.x || _nativeScrollbarsOverlaid.y);\r\n\r\n const updateSegments: StructureSetupUpdateSegment[] = [\r\n createTrinsicUpdateSegment(structureSetupElements, state),\r\n createPaddingUpdateSegment(structureSetupElements, state),\r\n createOverflowUpdateSegment(structureSetupElements, state),\r\n ];\r\n\r\n return (\r\n checkOption: SetupUpdateCheckOption,\r\n updateHints: Partial,\r\n force?: boolean\r\n ) => {\r\n const initialUpdateHints = prepareUpdateHints(\r\n assignDeep(\r\n {\r\n _sizeChanged: false,\r\n _paddingStyleChanged: false,\r\n _directionChanged: false,\r\n _heightIntrinsicChanged: false,\r\n _overflowEdgeChanged: false,\r\n _overflowAmountChanged: false,\r\n _overflowStyleChanged: false,\r\n _hostMutation: false,\r\n _contentMutation: false,\r\n },\r\n updateHints\r\n ),\r\n {},\r\n force\r\n );\r\n const adjustScrollOffset = doViewportArrange || !_flexboxGlue;\r\n const scrollOffsetX = adjustScrollOffset && scrollLeft(_viewport);\r\n const scrollOffsetY = adjustScrollOffset && scrollTop(_viewport);\r\n _viewportAddRemoveClass('', dataValueHostUpdating, true);\r\n\r\n let adaptivedUpdateHints: Required = initialUpdateHints;\r\n each(updateSegments, (updateSegment) => {\r\n adaptivedUpdateHints = prepareUpdateHints(\r\n adaptivedUpdateHints,\r\n updateSegment(adaptivedUpdateHints, checkOption, !!force) || {},\r\n force\r\n );\r\n });\r\n\r\n scrollLeft(_viewport, scrollOffsetX);\r\n scrollTop(_viewport, scrollOffsetY);\r\n _viewportAddRemoveClass('', dataValueHostUpdating);\r\n\r\n return adaptivedUpdateHints;\r\n };\r\n};\r\n","import {\r\n CacheValues,\r\n createCache,\r\n createDOM,\r\n scrollLeft,\r\n scrollTop,\r\n runEachAndClear,\r\n removeElements,\r\n on,\r\n addClass,\r\n push,\r\n ResizeObserverConstructor,\r\n isArray,\r\n isBoolean,\r\n removeClass,\r\n isObject,\r\n stopPropagation,\r\n appendChildren,\r\n directionIsRTL,\r\n} from 'support';\r\nimport { getEnvironment } from 'environment';\r\nimport {\r\n classNameSizeObserver,\r\n classNameSizeObserverAppear,\r\n classNameSizeObserverListener,\r\n} from 'classnames';\r\nimport { getPlugins, SizeObserverPluginInstance, sizeObserverPluginName } from 'plugins';\r\n\r\nexport interface SizeObserverOptions {\r\n _direction?: boolean;\r\n _appear?: boolean;\r\n}\r\n\r\nexport interface SizeObserverCallbackParams {\r\n _sizeChanged: boolean;\r\n _directionIsRTLCache?: CacheValues;\r\n _appear?: boolean;\r\n}\r\n\r\nexport type SizeObserver = [destroy: () => void, append: () => void];\r\n\r\nconst scrollAmount = 3333333;\r\nconst domRectHasDimensions = (rect?: DOMRectReadOnly) => rect && (rect.height || rect.width);\r\n\r\n/**\r\n * Creates a size observer which observes any size, padding, border, margin and box-sizing changes of the target element. Depending on the options also direction and appear can be observed.\r\n * @param target The target element which shall be observed.\r\n * @param onSizeChangedCallback The callback which gets called after a size change was detected.\r\n * @param options The options for size detection, whether to observe also direction and appear.\r\n * @returns A object which represents the instance of the size observer.\r\n */\r\nexport const createSizeObserver = (\r\n target: HTMLElement,\r\n onSizeChangedCallback: (params: SizeObserverCallbackParams) => any,\r\n options?: SizeObserverOptions\r\n): SizeObserver => {\r\n const { _direction: observeDirectionChange = false, _appear: observeAppearChange = false } =\r\n options || {};\r\n const sizeObserverPlugin = getPlugins()[sizeObserverPluginName] as\r\n | SizeObserverPluginInstance\r\n | undefined;\r\n const { _rtlScrollBehavior: rtlScrollBehavior } = getEnvironment();\r\n const baseElements = createDOM(\r\n `
`\r\n );\r\n const sizeObserver = baseElements[0] as HTMLElement;\r\n const listenerElement = sizeObserver.firstChild as HTMLElement;\r\n const getIsDirectionRTL = directionIsRTL.bind(0, target);\r\n const [updateResizeObserverContentRectCache] = createCache({\r\n _initialValue: undefined,\r\n _alwaysUpdateValues: true,\r\n _equal: (currVal, newVal) =>\r\n !(\r\n !currVal || // if no initial value\r\n // if from display: none to display: block\r\n (!domRectHasDimensions(currVal) && domRectHasDimensions(newVal))\r\n ),\r\n });\r\n const onSizeChangedCallbackProxy = (\r\n sizeChangedContext?: CacheValues | ResizeObserverEntry[] | Event | boolean\r\n ) => {\r\n const isResizeObserverCall =\r\n isArray(sizeChangedContext) &&\r\n sizeChangedContext.length > 0 &&\r\n isObject(sizeChangedContext[0]);\r\n\r\n const hasDirectionCache =\r\n !isResizeObserverCall && isBoolean((sizeChangedContext as CacheValues)[0]);\r\n\r\n let skip = false;\r\n let appear: boolean | number | undefined = false;\r\n let doDirectionScroll = true; // always true if sizeChangedContext is Event (appear callback or RO. Polyfill)\r\n\r\n // if triggered from RO.\r\n if (isResizeObserverCall) {\r\n const [currRContentRect, , prevContentRect] = updateResizeObserverContentRectCache(\r\n (sizeChangedContext as ResizeObserverEntry[]).pop()!.contentRect\r\n );\r\n const hasDimensions = domRectHasDimensions(currRContentRect);\r\n const hadDimensions = domRectHasDimensions(prevContentRect);\r\n skip = !prevContentRect || !hasDimensions; // skip on initial RO. call or if display is none\r\n appear = !hadDimensions && hasDimensions;\r\n\r\n doDirectionScroll = !skip; // direction scroll when not skipping\r\n }\r\n // else if its triggered with DirectionCache\r\n else if (hasDirectionCache) {\r\n [, doDirectionScroll] = sizeChangedContext as CacheValues; // direction scroll when DirectionCache changed, false otherwise\r\n }\r\n // else if it triggered with appear from polyfill\r\n else {\r\n appear = sizeChangedContext === true;\r\n }\r\n\r\n if (observeDirectionChange && doDirectionScroll) {\r\n const rtl = hasDirectionCache\r\n ? (sizeChangedContext as CacheValues)[0]\r\n : directionIsRTL(sizeObserver);\r\n scrollLeft(\r\n sizeObserver,\r\n rtl\r\n ? rtlScrollBehavior.n\r\n ? -scrollAmount\r\n : rtlScrollBehavior.i\r\n ? 0\r\n : scrollAmount\r\n : scrollAmount\r\n );\r\n scrollTop(sizeObserver, scrollAmount);\r\n }\r\n\r\n if (!skip) {\r\n onSizeChangedCallback({\r\n _sizeChanged: !hasDirectionCache,\r\n _directionIsRTLCache: hasDirectionCache\r\n ? (sizeChangedContext as CacheValues)\r\n : undefined,\r\n _appear: !!appear,\r\n });\r\n }\r\n };\r\n const offListeners: (() => void)[] = [];\r\n let appearCallback: ((...args: any) => any) | false = observeAppearChange\r\n ? onSizeChangedCallbackProxy\r\n : false;\r\n\r\n return [\r\n () => {\r\n runEachAndClear(offListeners);\r\n removeElements(sizeObserver);\r\n },\r\n () => {\r\n if (ResizeObserverConstructor) {\r\n const resizeObserverInstance = new ResizeObserverConstructor(onSizeChangedCallbackProxy);\r\n resizeObserverInstance.observe(listenerElement);\r\n push(offListeners, () => {\r\n resizeObserverInstance.disconnect();\r\n });\r\n } else if (sizeObserverPlugin) {\r\n const [pluginAppearCallback, pluginOffListeners] = sizeObserverPlugin._(\r\n listenerElement,\r\n onSizeChangedCallbackProxy,\r\n observeAppearChange\r\n );\r\n appearCallback = pluginAppearCallback;\r\n push(offListeners, pluginOffListeners);\r\n }\r\n\r\n if (observeDirectionChange) {\r\n const [updateDirectionIsRTLCache] = createCache(\r\n {\r\n _initialValue: !getIsDirectionRTL(), // invert current value to trigger initial change\r\n },\r\n getIsDirectionRTL\r\n );\r\n\r\n push(\r\n offListeners,\r\n on(sizeObserver, 'scroll', (event: Event) => {\r\n const directionIsRTLCacheValues = updateDirectionIsRTLCache();\r\n const [directionIsRTLCache, directionIsRTLCacheChanged] = directionIsRTLCacheValues;\r\n\r\n if (directionIsRTLCacheChanged) {\r\n removeClass(listenerElement, 'ltr rtl');\r\n if (directionIsRTLCache) {\r\n addClass(listenerElement, 'rtl');\r\n } else {\r\n addClass(listenerElement, 'ltr');\r\n }\r\n onSizeChangedCallbackProxy(directionIsRTLCacheValues);\r\n }\r\n\r\n stopPropagation(event);\r\n })\r\n );\r\n }\r\n\r\n // appearCallback is always needed on scroll-observer strategy to reset it\r\n if (appearCallback) {\r\n addClass(sizeObserver, classNameSizeObserverAppear);\r\n push(\r\n offListeners,\r\n on(sizeObserver, 'animationstart', appearCallback, {\r\n // Fire only once for \"CSS is ready\" event if ResizeObserver strategy is used\r\n _once: !!ResizeObserverConstructor,\r\n })\r\n );\r\n }\r\n\r\n appendChildren(target, sizeObserver);\r\n },\r\n ];\r\n};\r\n","import {\r\n WH,\r\n CacheValues,\r\n createDiv,\r\n offsetSize,\r\n runEachAndClear,\r\n removeElements,\r\n createCache,\r\n push,\r\n IntersectionObserverConstructor,\r\n appendChildren,\r\n} from 'support';\r\nimport { createSizeObserver } from 'observers/sizeObserver';\r\nimport { classNameTrinsicObserver } from 'classnames';\r\n\r\nexport type TrinsicObserverCallback = (heightIntrinsic: CacheValues) => any;\r\nexport type TrinsicObserver = [\r\n destroy: () => void,\r\n append: () => void,\r\n update: () => void | Parameters\r\n];\r\n\r\nconst isHeightIntrinsic = (ioEntryOrSize: IntersectionObserverEntry | WH): boolean =>\r\n (ioEntryOrSize as WH).h === 0 ||\r\n (ioEntryOrSize as IntersectionObserverEntry).isIntersecting ||\r\n (ioEntryOrSize as IntersectionObserverEntry).intersectionRatio > 0;\r\n\r\n/**\r\n * Creates a trinsic observer which observes changes to intrinsic or extrinsic sizing for the height of the target element.\r\n * @param target The element which shall be observed.\r\n * @param onTrinsicChangedCallback The callback which gets called after a change was detected.\r\n * @returns A object which represents the instance of the trinsic observer.\r\n */\r\nexport const createTrinsicObserver = (\r\n target: HTMLElement,\r\n onTrinsicChangedCallback: TrinsicObserverCallback\r\n): TrinsicObserver => {\r\n let intersectionObserverInstance: undefined | IntersectionObserver;\r\n const trinsicObserver = createDiv(classNameTrinsicObserver);\r\n const offListeners: (() => void)[] = [];\r\n const [updateHeightIntrinsicCache] = createCache({\r\n _initialValue: false,\r\n });\r\n const triggerOnTrinsicChangedCallback = (\r\n updateValue?: IntersectionObserverEntry | WH,\r\n fromRecords?: true\r\n ): void | Parameters => {\r\n if (updateValue) {\r\n const heightIntrinsic = updateHeightIntrinsicCache(isHeightIntrinsic(updateValue));\r\n const [, heightIntrinsicChanged] = heightIntrinsic;\r\n\r\n if (heightIntrinsicChanged) {\r\n !fromRecords && onTrinsicChangedCallback(heightIntrinsic);\r\n return [heightIntrinsic];\r\n }\r\n }\r\n };\r\n const intersectionObserverCallback = (\r\n entries: IntersectionObserverEntry[],\r\n fromRecords?: true\r\n ) => {\r\n if (entries && entries.length > 0) {\r\n return triggerOnTrinsicChangedCallback(entries.pop(), fromRecords);\r\n }\r\n };\r\n\r\n return [\r\n () => {\r\n runEachAndClear(offListeners);\r\n removeElements(trinsicObserver);\r\n },\r\n () => {\r\n if (IntersectionObserverConstructor) {\r\n intersectionObserverInstance = new IntersectionObserverConstructor(\r\n (entries) => intersectionObserverCallback(entries),\r\n { root: target }\r\n );\r\n intersectionObserverInstance.observe(trinsicObserver);\r\n push(offListeners, () => {\r\n intersectionObserverInstance!.disconnect();\r\n });\r\n } else {\r\n const onSizeChanged = () => {\r\n const newSize = offsetSize(trinsicObserver);\r\n triggerOnTrinsicChangedCallback(newSize);\r\n };\r\n const [destroySizeObserver, appendSizeObserver] = createSizeObserver(\r\n trinsicObserver,\r\n onSizeChanged\r\n );\r\n push(offListeners, destroySizeObserver);\r\n appendSizeObserver();\r\n onSizeChanged();\r\n }\r\n\r\n appendChildren(target, trinsicObserver);\r\n },\r\n () => {\r\n if (intersectionObserverInstance) {\r\n return intersectionObserverCallback(intersectionObserverInstance.takeRecords(), true);\r\n }\r\n },\r\n ];\r\n};\r\n","import {\r\n each,\r\n noop,\r\n debounce,\r\n indexOf,\r\n isString,\r\n MutationObserverConstructor,\r\n isEmptyArray,\r\n on,\r\n attr,\r\n is,\r\n find,\r\n push,\r\n} from 'support';\r\n\r\ntype DOMContentObserverCallback = (contentChangedTroughEvent: boolean) => any;\r\n\r\ntype DOMTargetObserverCallback = (targetChangedAttrs: string[], targetStyleChanged: boolean) => any;\r\n\r\ninterface DOMObserverOptionsBase {\r\n _attributes?: string[];\r\n _styleChangingAttributes?: string[];\r\n /**\r\n * A function which can ignore a changed attribute if it returns true.\r\n * for DOMTargetObserver this applies to the changes to the observed target\r\n * for DOMContentObserver this applies to changes to nested targets -> nested targets are elements which match the \"_nestedTargetSelector\" selector\r\n */\r\n _ignoreTargetChange?: DOMObserverIgnoreTargetChange;\r\n}\r\n\r\ninterface DOMContentObserverOptions extends DOMObserverOptionsBase {\r\n _eventContentChange?: DOMObserverEventContentChange; // [selector, eventname(s) | function returning eventname(s)] -> eventnames divided by whitespaces\r\n _nestedTargetSelector?: string;\r\n _ignoreContentChange?: DOMObserverIgnoreContentChange; // function which will prevent marking certain dom changes as content change if it returns true\r\n}\r\n\r\ntype DOMTargetObserverOptions = DOMObserverOptionsBase;\r\n\r\ntype ContentChangeArrayItem = [selector?: string, eventNames?: string] | null | undefined;\r\n\r\nexport type DOMObserverEventContentChange =\r\n | Array\r\n | false\r\n | null\r\n | undefined;\r\n\r\nexport type DOMObserverIgnoreContentChange = (\r\n mutation: MutationRecord,\r\n isNestedTarget: boolean,\r\n domObserverTarget: HTMLElement,\r\n domObserverOptions?: DOMContentObserverOptions\r\n) => boolean;\r\n\r\nexport type DOMObserverIgnoreTargetChange = (\r\n target: Node,\r\n attributeName: string,\r\n oldAttributeValue: string | null,\r\n newAttributeValue: string | null\r\n) => boolean;\r\n\r\nexport type DOMObserverCallback = ContentObserver extends true\r\n ? DOMContentObserverCallback\r\n : DOMTargetObserverCallback;\r\n\r\nexport type DOMObserverOptions = ContentObserver extends true\r\n ? DOMContentObserverOptions\r\n : DOMTargetObserverOptions;\r\n\r\nexport type DOMObserver = [\r\n destroy: () => void,\r\n update: () => void | false | Parameters>\r\n];\r\n\r\ntype EventContentChangeUpdateElement = (getElements?: (selector: string) => Node[]) => void;\r\ntype EventContentChange = [destroy: () => void, updateElements: EventContentChangeUpdateElement];\r\n\r\n/**\r\n * Creates a set of helper functions to observe events of elements inside the target element.\r\n * @param target The target element of which the children elements shall be observed. (not only direct children but also nested ones)\r\n * @param eventContentChange The event content change array. (array of tuples: selector and eventname(s))\r\n * @param callback Callback which is called if one of the elements emits the corresponding event.\r\n * @returns A object which contains a set of helper functions to destroy and update the observation of elements.\r\n */\r\nconst createEventContentChange = (\r\n target: Element,\r\n callback: (...args: any) => any,\r\n eventContentChange?: DOMObserverEventContentChange\r\n): EventContentChange => {\r\n let map: WeakMap any]> | undefined; // weak map to prevent memory leak for detached elements\r\n let destroyed = false;\r\n const destroy = () => {\r\n destroyed = true;\r\n };\r\n const updateElements: EventContentChangeUpdateElement = (getElements?) => {\r\n if (eventContentChange) {\r\n const eventElmList = eventContentChange.reduce>((arr, item) => {\r\n if (item) {\r\n const selector = item[0];\r\n const eventNames = item[1];\r\n const elements =\r\n eventNames &&\r\n selector &&\r\n (getElements ? getElements(selector) : find(selector, target));\r\n\r\n if (elements && elements.length && eventNames && isString(eventNames)) {\r\n push(arr, [elements, eventNames.trim()], true);\r\n }\r\n }\r\n return arr;\r\n }, []);\r\n\r\n each(eventElmList, (item) =>\r\n each(item[0], (elm) => {\r\n const eventNames = item[1];\r\n const entry = map!.get(elm);\r\n\r\n if (entry) {\r\n const entryEventNames = entry[0];\r\n const entryOff = entry[1];\r\n\r\n // in case an already registered element is registered again, unregister the previous events\r\n if (entryEventNames === eventNames) {\r\n entryOff();\r\n }\r\n }\r\n\r\n const off = on(elm, eventNames, (event: Event) => {\r\n if (destroyed) {\r\n off();\r\n map!.delete(elm);\r\n } else {\r\n callback(event);\r\n }\r\n });\r\n map!.set(elm, [eventNames, off]);\r\n })\r\n );\r\n }\r\n };\r\n\r\n if (eventContentChange) {\r\n map = new WeakMap();\r\n updateElements();\r\n }\r\n\r\n return [destroy, updateElements];\r\n};\r\n\r\n/**\r\n * Creates a DOM observer which observes DOM changes to either the target element or its children.\r\n * @param target The element which shall be observed.\r\n * @param isContentObserver Whether this observer is just observing the target or just the targets children. (not only direct children but also nested ones)\r\n * @param callback The callback which gets called if a change was detected.\r\n * @param options The options for DOM change detection.\r\n * @returns A object which represents the instance of the DOM observer.\r\n */\r\nexport const createDOMObserver = (\r\n target: HTMLElement,\r\n isContentObserver: ContentObserver,\r\n callback: DOMObserverCallback,\r\n options?: DOMObserverOptions\r\n): DOMObserver => {\r\n let isConnected = false;\r\n const {\r\n _attributes,\r\n _styleChangingAttributes,\r\n _eventContentChange,\r\n _nestedTargetSelector,\r\n _ignoreTargetChange,\r\n _ignoreContentChange,\r\n } = (options as DOMContentObserverOptions & DOMTargetObserverOptions) || {};\r\n const debouncedEventContentChange = debounce(\r\n () => {\r\n if (isConnected) {\r\n (callback as DOMContentObserverCallback)(true);\r\n }\r\n },\r\n { _timeout: 33, _maxDelay: 99 }\r\n );\r\n const [destroyEventContentChange, updateEventContentChangeElements] = createEventContentChange(\r\n target,\r\n debouncedEventContentChange,\r\n _eventContentChange\r\n );\r\n\r\n // MutationObserver\r\n const finalAttributes = _attributes || [];\r\n const finalStyleChangingAttributes = _styleChangingAttributes || [];\r\n const observedAttributes = finalAttributes.concat(finalStyleChangingAttributes);\r\n const observerCallback = (\r\n mutations: MutationRecord[],\r\n fromRecords?: true\r\n ): void | Parameters> => {\r\n const ignoreTargetChange = _ignoreTargetChange || noop;\r\n const ignoreContentChange = _ignoreContentChange || noop;\r\n const targetChangedAttrs: string[] = [];\r\n const totalAddedNodes: Node[] = [];\r\n let targetStyleChanged = false;\r\n let contentChanged = false;\r\n let childListChanged = false;\r\n each(mutations, (mutation) => {\r\n const { attributeName, target: mutationTarget, type, oldValue, addedNodes } = mutation;\r\n const isAttributesType = type === 'attributes';\r\n const isChildListType = type === 'childList';\r\n const targetIsMutationTarget = target === mutationTarget;\r\n const attributeValue =\r\n isAttributesType && isString(attributeName)\r\n ? attr(mutationTarget as HTMLElement, attributeName!)\r\n : 0;\r\n const attributeChanged = attributeValue !== 0 && oldValue !== attributeValue;\r\n const styleChangingAttrChanged =\r\n indexOf(finalStyleChangingAttributes, attributeName) > -1 && attributeChanged;\r\n\r\n // if is content observer and something changed in children\r\n if (isContentObserver && !targetIsMutationTarget) {\r\n const notOnlyAttrChanged = !isAttributesType;\r\n const contentAttrChanged = isAttributesType && styleChangingAttrChanged;\r\n const isNestedTarget =\r\n contentAttrChanged && _nestedTargetSelector && is(mutationTarget, _nestedTargetSelector);\r\n const baseAssertion = isNestedTarget\r\n ? !ignoreTargetChange(mutationTarget, attributeName!, oldValue, attributeValue)\r\n : notOnlyAttrChanged || contentAttrChanged;\r\n const contentFinalChanged =\r\n baseAssertion && !ignoreContentChange(mutation, !!isNestedTarget, target, options);\r\n\r\n push(totalAddedNodes, addedNodes);\r\n\r\n contentChanged = contentChanged || contentFinalChanged;\r\n childListChanged = childListChanged || isChildListType;\r\n }\r\n // if is target observer and target attr changed\r\n if (\r\n !isContentObserver &&\r\n targetIsMutationTarget &&\r\n attributeChanged &&\r\n !ignoreTargetChange(mutationTarget, attributeName!, oldValue, attributeValue)\r\n ) {\r\n push(targetChangedAttrs, attributeName!);\r\n targetStyleChanged = targetStyleChanged || styleChangingAttrChanged;\r\n }\r\n });\r\n\r\n if (childListChanged && !isEmptyArray(totalAddedNodes)) {\r\n // adds / removes the new elements from the event content change\r\n updateEventContentChangeElements((selector) =>\r\n totalAddedNodes.reduce((arr, node) => {\r\n push(arr, find(selector, node));\r\n return is(node, selector) ? push(arr, node) : arr;\r\n }, [])\r\n );\r\n }\r\n\r\n if (isContentObserver) {\r\n !fromRecords && contentChanged && (callback as DOMContentObserverCallback)(false);\r\n return [false] as Parameters>;\r\n }\r\n if (!isEmptyArray(targetChangedAttrs) || targetStyleChanged) {\r\n !fromRecords &&\r\n (callback as DOMTargetObserverCallback)(targetChangedAttrs, targetStyleChanged);\r\n return [targetChangedAttrs, targetStyleChanged] as Parameters<\r\n DOMObserverCallback\r\n >;\r\n }\r\n };\r\n const mutationObserver: MutationObserver = new MutationObserverConstructor!((mutations) =>\r\n observerCallback(mutations)\r\n );\r\n\r\n // Connect\r\n mutationObserver.observe(target, {\r\n attributes: true,\r\n attributeOldValue: true,\r\n attributeFilter: observedAttributes,\r\n subtree: isContentObserver,\r\n childList: isContentObserver,\r\n characterData: isContentObserver,\r\n });\r\n isConnected = true;\r\n\r\n return [\r\n () => {\r\n if (isConnected) {\r\n destroyEventContentChange();\r\n mutationObserver.disconnect();\r\n isConnected = false;\r\n }\r\n },\r\n () => {\r\n if (isConnected) {\r\n debouncedEventContentChange._flush();\r\n\r\n const records = mutationObserver.takeRecords();\r\n return !isEmptyArray(records) && observerCallback(records, true);\r\n }\r\n },\r\n ];\r\n};\r\n","import {\r\n debounce,\r\n isArray,\r\n isNumber,\r\n each,\r\n indexOf,\r\n isString,\r\n attr,\r\n removeAttr,\r\n CacheValues,\r\n keys,\r\n liesBetween,\r\n scrollSize,\r\n equalWH,\r\n createCache,\r\n WH,\r\n fractionalSize,\r\n isFunction,\r\n ResizeObserverConstructor,\r\n closest,\r\n assignDeep,\r\n push,\r\n scrollLeft,\r\n scrollTop,\r\n noop,\r\n} from 'support';\r\nimport { getEnvironment } from 'environment';\r\nimport {\r\n dataAttributeHost,\r\n dataValueHostOverflowVisible,\r\n dataValueHostUpdating,\r\n classNameViewport,\r\n classNameOverflowVisible,\r\n classNameScrollbar,\r\n classNameViewportArrange,\r\n} from 'classnames';\r\nimport { createSizeObserver, SizeObserverCallbackParams } from 'observers/sizeObserver';\r\nimport { createTrinsicObserver } from 'observers/trinsicObserver';\r\nimport { createDOMObserver, DOMObserver } from 'observers/domObserver';\r\nimport type { SetupState, SetupUpdateCheckOption } from 'setups';\r\nimport type { StructureSetupState } from 'setups/structureSetup';\r\nimport type { StructureSetupElementsObj } from 'setups/structureSetup/structureSetup.elements';\r\nimport type {\r\n StructureSetupUpdate,\r\n StructureSetupUpdateHints,\r\n} from 'setups/structureSetup/structureSetup.update';\r\n\r\nexport type StructureSetupObserversUpdate = (checkOption: SetupUpdateCheckOption) => void;\r\n\r\nexport type StructureSetupObservers = [\r\n destroy: () => void,\r\n appendElements: () => void,\r\n updateObservers: () => Partial,\r\n updateObserversOptions: StructureSetupObserversUpdate\r\n];\r\n\r\ntype ExcludeFromTuple = T extends [infer F, ...infer R]\r\n ? [F] extends [E]\r\n ? ExcludeFromTuple\r\n : [F, ...ExcludeFromTuple]\r\n : [];\r\n\r\nconst hostSelector = `[${dataAttributeHost}]`;\r\n\r\n// TODO: observer textarea attrs if textarea\r\n\r\nconst viewportSelector = `.${classNameViewport}`;\r\nconst viewportAttrsFromTarget = ['tabindex'];\r\nconst baseStyleChangingAttrsTextarea = ['wrap', 'cols', 'rows'];\r\nconst baseStyleChangingAttrs = ['id', 'class', 'style', 'open'];\r\n\r\nexport const createStructureSetupObservers = (\r\n structureSetupElements: StructureSetupElementsObj,\r\n state: SetupState,\r\n structureSetupUpdate: (\r\n ...args: ExcludeFromTuple, Parameters[0]>\r\n ) => any\r\n): StructureSetupObservers => {\r\n let debounceTimeout: number | false | undefined;\r\n let debounceMaxDelay: number | false | undefined;\r\n let contentMutationObserver: DOMObserver | undefined;\r\n const [, setState] = state;\r\n const {\r\n _host,\r\n _viewport,\r\n _content,\r\n _isTextarea,\r\n _viewportIsTarget,\r\n _viewportHasClass,\r\n _viewportAddRemoveClass,\r\n } = structureSetupElements;\r\n const { _flexboxGlue } = getEnvironment();\r\n\r\n const [updateContentSizeCache] = createCache>(\r\n {\r\n _equal: equalWH,\r\n _initialValue: { w: 0, h: 0 },\r\n },\r\n () => {\r\n const hasOver = _viewportHasClass(classNameOverflowVisible, dataValueHostOverflowVisible);\r\n const hasVpStyle = _viewportHasClass(classNameViewportArrange, '');\r\n const scrollOffsetX = hasVpStyle && scrollLeft(_viewport);\r\n const scrollOffsetY = hasVpStyle && scrollTop(_viewport);\r\n _viewportAddRemoveClass(classNameOverflowVisible, dataValueHostOverflowVisible);\r\n _viewportAddRemoveClass(classNameViewportArrange, '');\r\n _viewportAddRemoveClass('', dataValueHostUpdating, true);\r\n\r\n const contentScroll = scrollSize(_content);\r\n const viewportScroll = scrollSize(_viewport);\r\n const fractional = fractionalSize(_viewport);\r\n\r\n _viewportAddRemoveClass(classNameOverflowVisible, dataValueHostOverflowVisible, hasOver);\r\n _viewportAddRemoveClass(classNameViewportArrange, '', hasVpStyle);\r\n _viewportAddRemoveClass('', dataValueHostUpdating);\r\n scrollLeft(_viewport, scrollOffsetX);\r\n scrollTop(_viewport, scrollOffsetY);\r\n return {\r\n w: viewportScroll.w + contentScroll.w + fractional.w,\r\n h: viewportScroll.h + contentScroll.h + fractional.h,\r\n };\r\n }\r\n );\r\n const contentMutationObserverAttr = _isTextarea\r\n ? baseStyleChangingAttrsTextarea\r\n : baseStyleChangingAttrs.concat(baseStyleChangingAttrsTextarea);\r\n const structureSetupUpdateWithDebouncedAdaptiveUpdateHints = debounce(structureSetupUpdate, {\r\n _timeout: () => debounceTimeout,\r\n _maxDelay: () => debounceMaxDelay,\r\n _mergeParams(prev, curr) {\r\n const [prevObj] = prev;\r\n const [currObj] = curr;\r\n return [\r\n keys(prevObj)\r\n .concat(keys(currObj))\r\n .reduce((obj, key) => {\r\n obj[key] = prevObj[key] || currObj[key];\r\n return obj;\r\n }, {}),\r\n ] as [Partial];\r\n },\r\n });\r\n\r\n const updateViewportAttrsFromHost = (attributes?: string[]) => {\r\n each(attributes || viewportAttrsFromTarget, (attribute) => {\r\n if (indexOf(viewportAttrsFromTarget, attribute) > -1) {\r\n const hostAttr = attr(_host, attribute);\r\n if (isString(hostAttr)) {\r\n attr(_viewport, attribute, hostAttr);\r\n } else {\r\n removeAttr(_viewport, attribute);\r\n }\r\n }\r\n });\r\n };\r\n const onTrinsicChanged = (heightIntrinsicCache: CacheValues, fromRecords?: true) => {\r\n const [heightIntrinsic, heightIntrinsicChanged] = heightIntrinsicCache;\r\n const updateHints: Partial = {\r\n _heightIntrinsicChanged: heightIntrinsicChanged,\r\n };\r\n setState({ _heightIntrinsic: heightIntrinsic });\r\n\r\n !fromRecords && structureSetupUpdate(updateHints);\r\n return updateHints;\r\n };\r\n const onSizeChanged = ({\r\n _sizeChanged,\r\n _directionIsRTLCache,\r\n _appear,\r\n }: SizeObserverCallbackParams) => {\r\n const updateFn =\r\n !_sizeChanged || _appear\r\n ? structureSetupUpdate\r\n : structureSetupUpdateWithDebouncedAdaptiveUpdateHints;\r\n\r\n let directionChanged = false;\r\n if (_directionIsRTLCache) {\r\n const [directionIsRTL, directionIsRTLChanged] = _directionIsRTLCache;\r\n directionChanged = directionIsRTLChanged;\r\n\r\n setState({ _directionIsRTL: directionIsRTL });\r\n }\r\n\r\n updateFn({ _sizeChanged, _directionChanged: directionChanged });\r\n };\r\n const onContentMutation = (contentChangedTroughEvent: boolean, fromRecords?: true) => {\r\n const [, contentSizeChanged] = updateContentSizeCache();\r\n const updateHints: Partial = {\r\n _contentMutation: contentSizeChanged,\r\n };\r\n // if contentChangedTroughEvent is true its already debounced\r\n const updateFn = contentChangedTroughEvent\r\n ? structureSetupUpdate\r\n : structureSetupUpdateWithDebouncedAdaptiveUpdateHints;\r\n\r\n if (contentSizeChanged) {\r\n !fromRecords && updateFn(updateHints);\r\n }\r\n return updateHints;\r\n };\r\n const onHostMutation = (\r\n targetChangedAttrs: string[],\r\n targetStyleChanged: boolean,\r\n fromRecords?: true\r\n ) => {\r\n const updateHints: Partial = { _hostMutation: targetStyleChanged };\r\n if (targetStyleChanged) {\r\n !fromRecords && structureSetupUpdateWithDebouncedAdaptiveUpdateHints(updateHints);\r\n } else if (!_viewportIsTarget) {\r\n updateViewportAttrsFromHost(targetChangedAttrs);\r\n }\r\n return updateHints;\r\n };\r\n\r\n const [destroyTrinsicObserver, appendTrinsicObserver, updateTrinsicObserver] =\r\n _content || !_flexboxGlue ? createTrinsicObserver(_host, onTrinsicChanged) : [noop, noop, noop];\r\n const [destroySizeObserver, appendSizeObserver] = !_viewportIsTarget\r\n ? createSizeObserver(_host, onSizeChanged, {\r\n _appear: true,\r\n _direction: true,\r\n })\r\n : [noop, noop];\r\n const [destroyHostMutationObserver, updateHostMutationObserver] = createDOMObserver(\r\n _host,\r\n false,\r\n onHostMutation,\r\n {\r\n _styleChangingAttributes: baseStyleChangingAttrs,\r\n _attributes: baseStyleChangingAttrs.concat(viewportAttrsFromTarget),\r\n }\r\n );\r\n\r\n const viewportIsTargetResizeObserver =\r\n _viewportIsTarget &&\r\n ResizeObserverConstructor &&\r\n new ResizeObserverConstructor(onSizeChanged.bind(0, { _sizeChanged: true }));\r\n\r\n viewportIsTargetResizeObserver && viewportIsTargetResizeObserver.observe(_host);\r\n updateViewportAttrsFromHost();\r\n\r\n return [\r\n () => {\r\n destroyTrinsicObserver();\r\n destroySizeObserver();\r\n contentMutationObserver && contentMutationObserver[0](); // destroy\r\n viewportIsTargetResizeObserver && viewportIsTargetResizeObserver.disconnect();\r\n destroyHostMutationObserver();\r\n },\r\n () => {\r\n // order is matter!\r\n appendSizeObserver();\r\n appendTrinsicObserver();\r\n },\r\n () => {\r\n const updateHints: Partial = {};\r\n const hostUpdateResult = updateHostMutationObserver();\r\n const trinsicUpdateResult = updateTrinsicObserver();\r\n const contentUpdateResult = contentMutationObserver && contentMutationObserver[1](); // update\r\n\r\n if (hostUpdateResult) {\r\n assignDeep(\r\n updateHints,\r\n onHostMutation.apply(\r\n 0,\r\n push(hostUpdateResult, true) as [\r\n ...updateResult: typeof hostUpdateResult,\r\n fromRecords: true\r\n ]\r\n )\r\n );\r\n }\r\n if (trinsicUpdateResult) {\r\n assignDeep(\r\n updateHints,\r\n onTrinsicChanged.apply(\r\n 0,\r\n push(trinsicUpdateResult as any[], true) as [\r\n ...updateResult: typeof trinsicUpdateResult,\r\n fromRecords: true\r\n ]\r\n )\r\n );\r\n }\r\n if (contentUpdateResult) {\r\n assignDeep(\r\n updateHints,\r\n onContentMutation.apply(\r\n 0,\r\n push(contentUpdateResult, true) as [\r\n ...updateResult: typeof contentUpdateResult,\r\n fromRecords: true\r\n ]\r\n )\r\n );\r\n }\r\n\r\n return updateHints;\r\n },\r\n (checkOption) => {\r\n const [ignoreMutation] = checkOption('updating.ignoreMutation');\r\n const [attributes, attributesChanged] = checkOption('updating.attributes');\r\n const [elementEvents, elementEventsChanged] = checkOption | null>(\r\n 'updating.elementEvents'\r\n );\r\n const [debounceValue, debounceChanged] = checkOption | number | null>(\r\n 'updating.debounce'\r\n );\r\n const updateContentMutationObserver = elementEventsChanged || attributesChanged;\r\n const ignoreMutationFromOptions = (mutation: MutationRecord) =>\r\n isFunction(ignoreMutation) && ignoreMutation(mutation);\r\n\r\n if (updateContentMutationObserver) {\r\n if (contentMutationObserver) {\r\n contentMutationObserver[1](); // update\r\n contentMutationObserver[0](); // destroy\r\n }\r\n contentMutationObserver = createDOMObserver(\r\n _content || _viewport,\r\n true,\r\n onContentMutation,\r\n {\r\n _styleChangingAttributes: contentMutationObserverAttr.concat(attributes || []),\r\n _attributes: contentMutationObserverAttr.concat(attributes || []),\r\n _eventContentChange: elementEvents,\r\n _nestedTargetSelector: hostSelector,\r\n _ignoreContentChange: (mutation, isNestedTarget) => {\r\n const { target, attributeName } = mutation;\r\n const ignore =\r\n !isNestedTarget && attributeName && !_viewportIsTarget\r\n ? liesBetween(target, hostSelector, viewportSelector)\r\n : false;\r\n return (\r\n ignore ||\r\n !!closest(target, `.${classNameScrollbar}`) || // ignore explicitely all scrollbar elements\r\n !!ignoreMutationFromOptions(mutation)\r\n );\r\n },\r\n }\r\n );\r\n }\r\n\r\n if (debounceChanged) {\r\n structureSetupUpdateWithDebouncedAdaptiveUpdateHints._flush();\r\n if (isArray(debounceValue)) {\r\n const timeout = debounceValue[0];\r\n const maxWait = debounceValue[1];\r\n debounceTimeout = isNumber(timeout) ? timeout : false;\r\n debounceMaxDelay = isNumber(maxWait) ? maxWait : false;\r\n } else if (isNumber(debounceValue)) {\r\n debounceTimeout = debounceValue;\r\n debounceMaxDelay = false;\r\n } else {\r\n debounceTimeout = false;\r\n debounceMaxDelay = false;\r\n }\r\n }\r\n },\r\n ];\r\n};\r\n","import { createEventListenerHub, isEmptyObject, keys } from 'support';\r\nimport { createState, createOptionCheck } from 'setups/setups';\r\nimport { createStructureSetupElements } from 'setups/structureSetup/structureSetup.elements';\r\nimport { createStructureSetupUpdate } from 'setups/structureSetup/structureSetup.update';\r\nimport { createStructureSetupObservers } from 'setups/structureSetup/structureSetup.observers';\r\nimport type { StructureSetupUpdateHints } from 'setups/structureSetup/structureSetup.update';\r\nimport type { StructureSetupElementsObj } from 'setups/structureSetup/structureSetup.elements';\r\nimport type { TRBL, XY, EventListener } from 'support';\r\nimport type { Options, ReadonlyOptions } from 'options';\r\nimport type { Setup } from 'setups';\r\nimport type { InitializationTarget } from 'initialization';\r\nimport type { DeepPartial, StyleObject, OverflowStyle } from 'typings';\r\n\r\nexport interface StructureSetupState {\r\n _padding: TRBL;\r\n _paddingAbsolute: boolean;\r\n _viewportPaddingStyle: StyleObject;\r\n _overflowEdge: XY;\r\n _overflowAmount: XY;\r\n _overflowStyle: XY;\r\n _hasOverflow: XY;\r\n _heightIntrinsic: boolean;\r\n _directionIsRTL: boolean;\r\n}\r\n\r\nexport interface StructureSetupStaticState {\r\n _elements: StructureSetupElementsObj;\r\n _appendElements: () => void;\r\n _addOnUpdatedListener: (listener: EventListener) => void;\r\n}\r\n\r\ntype StructureSetupEventMap = {\r\n u: [updateHints: StructureSetupUpdateHints, changedOptions: DeepPartial, force: boolean];\r\n};\r\n\r\nconst initialXYNumber = { x: 0, y: 0 };\r\nconst initialStructureSetupUpdateState: StructureSetupState = {\r\n _padding: {\r\n t: 0,\r\n r: 0,\r\n b: 0,\r\n l: 0,\r\n },\r\n _paddingAbsolute: false,\r\n _viewportPaddingStyle: {\r\n marginRight: 0,\r\n marginBottom: 0,\r\n marginLeft: 0,\r\n paddingTop: 0,\r\n paddingRight: 0,\r\n paddingBottom: 0,\r\n paddingLeft: 0,\r\n },\r\n _overflowEdge: initialXYNumber,\r\n _overflowAmount: initialXYNumber,\r\n _overflowStyle: {\r\n x: 'hidden',\r\n y: 'hidden',\r\n },\r\n _hasOverflow: {\r\n x: false,\r\n y: false,\r\n },\r\n _heightIntrinsic: false,\r\n _directionIsRTL: false,\r\n};\r\n\r\nexport const createStructureSetup = (\r\n target: InitializationTarget,\r\n options: ReadonlyOptions\r\n): Setup => {\r\n const checkOptionsFallback = createOptionCheck(options, {});\r\n const state = createState(initialStructureSetupUpdateState);\r\n const [addEvent, removeEvent, triggerEvent] = createEventListenerHub();\r\n const [getState] = state;\r\n const [elements, appendStructureElements, destroyElements] = createStructureSetupElements(target);\r\n const updateStructure = createStructureSetupUpdate(elements, state);\r\n const triggerUpdateEvent: (...args: StructureSetupEventMap['u']) => void = (\r\n updateHints,\r\n changedOptions,\r\n force\r\n ) => {\r\n const truthyUpdateHints = keys(updateHints).some((key) => updateHints[key]);\r\n\r\n if (truthyUpdateHints || !isEmptyObject(changedOptions) || force) {\r\n triggerEvent('u', [updateHints, changedOptions, force]);\r\n }\r\n };\r\n const [destroyObservers, appendObserverElements, updateObservers, updateObserversOptions] =\r\n createStructureSetupObservers(elements, state, (updateHints) => {\r\n triggerUpdateEvent(updateStructure(checkOptionsFallback, updateHints), {}, false);\r\n });\r\n\r\n const structureSetupState = getState.bind(0) as (() => StructureSetupState) &\r\n StructureSetupStaticState;\r\n structureSetupState._addOnUpdatedListener = (listener) => {\r\n addEvent('u', listener);\r\n };\r\n structureSetupState._appendElements = () => {\r\n appendObserverElements();\r\n appendStructureElements();\r\n };\r\n structureSetupState._elements = elements;\r\n\r\n return [\r\n (changedOptions, force?) => {\r\n const checkOption = createOptionCheck(options, changedOptions, force);\r\n updateObserversOptions(checkOption);\r\n triggerUpdateEvent(\r\n updateStructure(checkOption, updateObservers(), force),\r\n changedOptions,\r\n !!force\r\n );\r\n },\r\n structureSetupState,\r\n () => {\r\n removeEvent();\r\n destroyObservers();\r\n destroyElements();\r\n },\r\n ];\r\n};\r\n","import {\r\n directionIsRTL,\r\n getBoundingClientRect,\r\n offsetSize,\r\n on,\r\n preventDefault,\r\n runEachAndClear,\r\n stopPropagation,\r\n XY,\r\n} from 'support';\r\nimport { classNamesScrollbarInteraction } from 'classnames';\r\nimport type { ReadonlyOptions } from 'options';\r\nimport type { StructureSetupState } from 'setups';\r\nimport type {\r\n ScrollbarsSetupElementsObj,\r\n ScrollbarStructure,\r\n} from 'setups/scrollbarsSetup/scrollbarsSetup.elements';\r\nimport { getEnvironment } from 'environment';\r\n\r\nexport type ScrollbarsSetupEvents = (\r\n scrollbarStructure: ScrollbarStructure,\r\n scrollbarsAddRemoveClass: ScrollbarsSetupElementsObj['_scrollbarsAddRemoveClass'],\r\n documentElm: Document,\r\n scrollOffsetElm: HTMLElement,\r\n isHorizontal?: boolean\r\n) => () => void;\r\n\r\nconst { round } = Math;\r\nconst getClientOffset = (event: PointerEvent): XY => ({\r\n x: event.clientX,\r\n y: event.clientY,\r\n});\r\nconst getScale = (element: HTMLElement): XY => {\r\n const { width, height } = getBoundingClientRect(element);\r\n const { w, h } = offsetSize(element);\r\n return {\r\n x: round(width) / w || 1,\r\n y: round(height) / h || 1,\r\n };\r\n};\r\nconst continuePointerDown = (\r\n event: PointerEvent,\r\n options: ReadonlyOptions,\r\n scrollType: 'dragScroll' | 'clickScroll'\r\n) => {\r\n const scrollbarOptions = options.scrollbars;\r\n const { button, isPrimary, pointerType } = event;\r\n const { pointers } = scrollbarOptions;\r\n return (\r\n button === 0 &&\r\n isPrimary &&\r\n scrollbarOptions[scrollType] &&\r\n (pointers || []).includes(pointerType)\r\n );\r\n};\r\nconst createRootClickStopPropagationEvents = (scrollbar: HTMLElement, documentElm: Document) =>\r\n on(\r\n scrollbar,\r\n 'mousedown',\r\n on.bind(0, documentElm, 'click', stopPropagation, { _once: true, _capture: true }),\r\n { _capture: true }\r\n );\r\nconst createDragScrollingEvents = (\r\n options: ReadonlyOptions,\r\n doc: Document,\r\n scrollbarStructure: ScrollbarStructure,\r\n scrollOffsetElement: HTMLElement,\r\n structureSetupState: () => StructureSetupState,\r\n isHorizontal?: boolean\r\n) => {\r\n const { _rtlScrollBehavior } = getEnvironment();\r\n const { _handle, _track, _scrollbar } = scrollbarStructure;\r\n const scrollOffsetKey = `scroll${isHorizontal ? 'Left' : 'Top'}`;\r\n const xyKey = `${isHorizontal ? 'x' : 'y'}`;\r\n const whKey = `${isHorizontal ? 'w' : 'h'}`;\r\n const createOnPointerMoveHandler =\r\n (mouseDownScroll: number, mouseDownClientOffset: number, mouseDownInvertedScale: number) =>\r\n (event: PointerEvent) => {\r\n const { _overflowAmount } = structureSetupState();\r\n const movement =\r\n (getClientOffset(event)[xyKey] - mouseDownClientOffset) * mouseDownInvertedScale;\r\n const handleTrackDiff = offsetSize(_track)[whKey] - offsetSize(_handle)[whKey];\r\n const scrollDeltaPercent = movement / handleTrackDiff;\r\n const scrollDelta = scrollDeltaPercent * _overflowAmount[xyKey];\r\n const isRTL = directionIsRTL(_scrollbar);\r\n const negateMultiplactor =\r\n isRTL && isHorizontal ? (_rtlScrollBehavior.n || _rtlScrollBehavior.i ? 1 : -1) : 1;\r\n\r\n scrollOffsetElement[scrollOffsetKey] = mouseDownScroll + scrollDelta * negateMultiplactor;\r\n };\r\n\r\n return on(_handle, 'pointerdown', (pointerDownEvent: PointerEvent) => {\r\n if (continuePointerDown(pointerDownEvent, options, 'dragScroll')) {\r\n const offSelectStart = on(doc, 'selectstart', (event: Event) => preventDefault(event), {\r\n _passive: false,\r\n });\r\n const offPointerMove = on(\r\n _handle,\r\n 'pointermove',\r\n createOnPointerMoveHandler(\r\n scrollOffsetElement[scrollOffsetKey] || 0,\r\n getClientOffset(pointerDownEvent)[xyKey],\r\n 1 / getScale(scrollOffsetElement)[xyKey]\r\n )\r\n );\r\n\r\n on(\r\n _handle,\r\n 'pointerup',\r\n (pointerUpEvent: PointerEvent) => {\r\n offSelectStart();\r\n offPointerMove();\r\n _handle.releasePointerCapture(pointerUpEvent.pointerId);\r\n },\r\n { _once: true }\r\n );\r\n _handle.setPointerCapture(pointerDownEvent.pointerId);\r\n }\r\n });\r\n};\r\n\r\nexport const createScrollbarsSetupEvents =\r\n (\r\n options: ReadonlyOptions,\r\n structureSetupState: () => StructureSetupState\r\n ): ScrollbarsSetupEvents =>\r\n (scrollbarStructure, scrollbarsAddRemoveClass, documentElm, scrollOffsetElm, isHorizontal) => {\r\n const { _scrollbar } = scrollbarStructure;\r\n\r\n return runEachAndClear.bind(0, [\r\n on(_scrollbar, 'pointerenter', () => {\r\n scrollbarsAddRemoveClass(classNamesScrollbarInteraction, true);\r\n }),\r\n on(_scrollbar, 'pointerleave pointercancel', () => {\r\n scrollbarsAddRemoveClass(classNamesScrollbarInteraction);\r\n }),\r\n createRootClickStopPropagationEvents(_scrollbar, documentElm),\r\n createDragScrollingEvents(\r\n options,\r\n documentElm,\r\n scrollbarStructure,\r\n scrollOffsetElm,\r\n structureSetupState,\r\n isHorizontal\r\n ),\r\n ]);\r\n };\r\n","import { offsetSize } from 'support';\r\nimport { getEnvironment } from 'environment';\r\nimport type { StructureSetupState } from 'setups';\r\n\r\nconst { min, max, abs, round } = Math;\r\n\r\nexport const getScrollbarHandleLengthRatio = (\r\n scrollbarHandle: HTMLElement,\r\n scrollbarTrack: HTMLElement,\r\n isHorizontal?: boolean,\r\n structureSetupState?: StructureSetupState\r\n) => {\r\n if (structureSetupState) {\r\n const axis = isHorizontal ? 'x' : 'y';\r\n const { _overflowAmount, _overflowEdge } = structureSetupState;\r\n\r\n const viewportSize = _overflowEdge[axis];\r\n const overflowAmount = _overflowAmount[axis];\r\n return max(0, min(1, viewportSize / (viewportSize + overflowAmount)));\r\n }\r\n const axis = isHorizontal ? 'w' : 'h';\r\n const handleSize = offsetSize(scrollbarHandle)[axis];\r\n const trackSize = offsetSize(scrollbarTrack)[axis];\r\n return max(0, min(1, handleSize / trackSize));\r\n};\r\n\r\nexport const getScrollbarHandleOffsetRatio = (\r\n scrollbarHandle: HTMLElement,\r\n scrollbarTrack: HTMLElement,\r\n scrollOffsetElement: HTMLElement,\r\n structureSetupState: StructureSetupState,\r\n isRTL: boolean,\r\n isHorizontal?: boolean\r\n) => {\r\n const { _rtlScrollBehavior } = getEnvironment();\r\n const axis = isHorizontal ? 'x' : 'y';\r\n const scrollLeftTop = isHorizontal ? 'Left' : 'Top';\r\n const { _overflowAmount } = structureSetupState;\r\n const scrollPositionMax = round(_overflowAmount[axis]);\r\n const scrollPosition = abs(scrollOffsetElement[`scroll${scrollLeftTop}`]);\r\n const handleRTL = isHorizontal && isRTL;\r\n const rtlNormalizedScrollPosition = _rtlScrollBehavior.i\r\n ? scrollPosition\r\n : scrollPositionMax - scrollPosition;\r\n const finalScrollPosition = handleRTL ? rtlNormalizedScrollPosition : scrollPosition;\r\n const scrollPercent = min(1, finalScrollPosition / scrollPositionMax);\r\n const lengthRatio = getScrollbarHandleLengthRatio(scrollbarHandle, scrollbarTrack, isHorizontal);\r\n\r\n return (1 / lengthRatio) * (1 - lengthRatio) * scrollPercent;\r\n};\r\n","import {\r\n addClass,\r\n appendChildren,\r\n createDiv,\r\n directionIsRTL,\r\n each,\r\n isBoolean,\r\n isEmptyArray,\r\n push,\r\n removeClass,\r\n removeElements,\r\n runEachAndClear,\r\n setT,\r\n style,\r\n} from 'support';\r\nimport {\r\n classNameScrollbar,\r\n classNameScrollbarHorizontal,\r\n classNameScrollbarVertical,\r\n classNameScrollbarTrack,\r\n classNameScrollbarHandle,\r\n classNamesScrollbarTransitionless,\r\n} from 'classnames';\r\nimport { getEnvironment } from 'environment';\r\nimport { dynamicInitializationElement as generalDynamicInitializationElement } from 'initialization';\r\nimport {\r\n getScrollbarHandleLengthRatio,\r\n getScrollbarHandleOffsetRatio,\r\n} from 'setups/scrollbarsSetup/scrollbarsSetup.calculations';\r\nimport type { InitializationTarget } from 'initialization';\r\nimport type { StructureSetupElementsObj } from 'setups/structureSetup/structureSetup.elements';\r\nimport type { ScrollbarsSetupEvents } from 'setups/scrollbarsSetup/scrollbarsSetup.events';\r\nimport type {\r\n ScrollbarsInitialization,\r\n ScrollbarsDynamicInitializationElement,\r\n} from 'setups/scrollbarsSetup/scrollbarsSetup.initialization';\r\nimport type { StyleObject } from 'typings';\r\nimport { StructureSetupState } from 'setups';\r\n\r\nexport interface ScrollbarStructure {\r\n _scrollbar: HTMLElement;\r\n _track: HTMLElement;\r\n _handle: HTMLElement;\r\n}\r\n\r\nexport interface ScrollbarsSetupElement {\r\n _scrollbarStructures: ScrollbarStructure[];\r\n _clone: () => ScrollbarStructure;\r\n _handleStyle: (\r\n elmStyle: (\r\n scrollbarStructure: ScrollbarStructure\r\n ) => [HTMLElement | false | null | undefined, StyleObject]\r\n ) => void;\r\n}\r\n\r\nexport interface ScrollbarsSetupElementsObj {\r\n _scrollbarsAddRemoveClass: (\r\n classNames: string | false | null | undefined,\r\n add?: boolean,\r\n isHorizontal?: boolean\r\n ) => void;\r\n _refreshScrollbarsHandleLength: (structureSetupState: StructureSetupState) => void;\r\n _refreshScrollbarsHandleOffset: (structureSetupState: StructureSetupState) => void;\r\n _horizontal: ScrollbarsSetupElement;\r\n _vertical: ScrollbarsSetupElement;\r\n}\r\n\r\nexport type ScrollbarsSetupElements = [\r\n elements: ScrollbarsSetupElementsObj,\r\n appendElements: () => void,\r\n destroy: () => void\r\n];\r\n\r\nexport const createScrollbarsSetupElements = (\r\n target: InitializationTarget,\r\n structureSetupElements: StructureSetupElementsObj,\r\n scrollbarsSetupEvents: ScrollbarsSetupEvents\r\n): ScrollbarsSetupElements => {\r\n const { _getDefaultInitialization } = getEnvironment();\r\n const { scrollbarsSlot: defaultScrollbarsSlot } = _getDefaultInitialization();\r\n const { _documentElm, _target, _host, _viewport, _targetIsElm, _scrollOffsetElement } =\r\n structureSetupElements;\r\n const { scrollbarsSlot } = (_targetIsElm ? {} : target) as ScrollbarsInitialization;\r\n const evaluatedScrollbarSlot =\r\n generalDynamicInitializationElement(\r\n [_target, _host, _viewport],\r\n () => _host,\r\n defaultScrollbarsSlot,\r\n scrollbarsSlot\r\n );\r\n const scrollbarStructureAddRemoveClass = (\r\n scrollbarStructures: ScrollbarStructure[],\r\n classNames: string | false | null | undefined,\r\n add?: boolean\r\n ) => {\r\n const action = add ? addClass : removeClass;\r\n each(scrollbarStructures, (scrollbarStructure) => {\r\n action(scrollbarStructure._scrollbar, classNames);\r\n });\r\n };\r\n const scrollbarsHandleStyle = (\r\n scrollbarStructures: ScrollbarStructure[],\r\n elmStyle: (\r\n scrollbarStructure: ScrollbarStructure\r\n ) => [HTMLElement | false | null | undefined, StyleObject]\r\n ) => {\r\n each(scrollbarStructures, (scrollbarStructure) => {\r\n const [elm, styles] = elmStyle(scrollbarStructure);\r\n style(elm, styles);\r\n });\r\n };\r\n const scrollbarStructureRefreshHandleLength = (\r\n scrollbarStructures: ScrollbarStructure[],\r\n structureSetupState: StructureSetupState,\r\n isHorizontal?: boolean\r\n ) => {\r\n scrollbarsHandleStyle(scrollbarStructures, (structure) => {\r\n const { _handle, _track } = structure;\r\n return [\r\n _handle,\r\n {\r\n [isHorizontal ? 'width' : 'height']: `${(\r\n getScrollbarHandleLengthRatio(_handle, _track, isHorizontal, structureSetupState) * 100\r\n ).toFixed(3)}%`,\r\n },\r\n ];\r\n });\r\n };\r\n const scrollbarStructureRefreshHandleOffset = (\r\n scrollbarStructures: ScrollbarStructure[],\r\n structureSetupState: StructureSetupState,\r\n isHorizontal?: boolean\r\n ) => {\r\n const translateAxis = isHorizontal ? 'X' : 'Y';\r\n scrollbarsHandleStyle(scrollbarStructures, (structure) => {\r\n const { _handle, _track, _scrollbar } = structure;\r\n const offsetRatio = getScrollbarHandleOffsetRatio(\r\n _handle,\r\n _track,\r\n _scrollOffsetElement,\r\n structureSetupState,\r\n directionIsRTL(_scrollbar),\r\n isHorizontal\r\n );\r\n // eslint-disable-next-line no-self-compare\r\n const validOffsetRatio = offsetRatio === offsetRatio; // is false when offset is NaN\r\n return [\r\n _handle,\r\n {\r\n transform: validOffsetRatio\r\n ? `translate${translateAxis}(${(offsetRatio * 100).toFixed(3)}%)`\r\n : '',\r\n },\r\n ];\r\n });\r\n };\r\n\r\n const destroyFns: (() => void)[] = [];\r\n const horizontalScrollbars: ScrollbarStructure[] = [];\r\n const verticalScrollbars: ScrollbarStructure[] = [];\r\n\r\n const scrollbarsAddRemoveClass = (\r\n className: string | false | null | undefined,\r\n add?: boolean,\r\n onlyHorizontal?: boolean\r\n ) => {\r\n const singleAxis = isBoolean(onlyHorizontal);\r\n const runHorizontal = singleAxis ? onlyHorizontal : true;\r\n const runVertical = singleAxis ? !onlyHorizontal : true;\r\n runHorizontal && scrollbarStructureAddRemoveClass(horizontalScrollbars, className, add);\r\n runVertical && scrollbarStructureAddRemoveClass(verticalScrollbars, className, add);\r\n };\r\n const refreshScrollbarsHandleLength = (structureSetupState: StructureSetupState) => {\r\n scrollbarStructureRefreshHandleLength(horizontalScrollbars, structureSetupState, true);\r\n scrollbarStructureRefreshHandleLength(verticalScrollbars, structureSetupState);\r\n };\r\n const refreshScrollbarsHandleOffset = (structureSetupState: StructureSetupState) => {\r\n scrollbarStructureRefreshHandleOffset(horizontalScrollbars, structureSetupState, true);\r\n scrollbarStructureRefreshHandleOffset(verticalScrollbars, structureSetupState);\r\n };\r\n const generateScrollbarDOM = (isHorizontal?: boolean): ScrollbarStructure => {\r\n const scrollbarClassName = isHorizontal\r\n ? classNameScrollbarHorizontal\r\n : classNameScrollbarVertical;\r\n const arrToPush = isHorizontal ? horizontalScrollbars : verticalScrollbars;\r\n const transitionlessClass = isEmptyArray(arrToPush) ? classNamesScrollbarTransitionless : '';\r\n const scrollbar = createDiv(\r\n `${classNameScrollbar} ${scrollbarClassName} ${transitionlessClass}`\r\n );\r\n const track = createDiv(classNameScrollbarTrack);\r\n const handle = createDiv(classNameScrollbarHandle);\r\n const result = {\r\n _scrollbar: scrollbar,\r\n _track: track,\r\n _handle: handle,\r\n };\r\n\r\n appendChildren(scrollbar, track);\r\n appendChildren(track, handle);\r\n\r\n push(arrToPush, result);\r\n push(destroyFns, [\r\n removeElements.bind(0, scrollbar),\r\n scrollbarsSetupEvents(\r\n result,\r\n scrollbarsAddRemoveClass,\r\n _documentElm,\r\n _scrollOffsetElement,\r\n isHorizontal\r\n ),\r\n ]);\r\n\r\n return result;\r\n };\r\n const generateHorizontalScrollbarStructure = generateScrollbarDOM.bind(0, true);\r\n const generateVerticalScrollbarStructure = generateScrollbarDOM.bind(0, false);\r\n const appendElements = () => {\r\n appendChildren(evaluatedScrollbarSlot, horizontalScrollbars[0]._scrollbar);\r\n appendChildren(evaluatedScrollbarSlot, verticalScrollbars[0]._scrollbar);\r\n\r\n setT(() => {\r\n scrollbarsAddRemoveClass(classNamesScrollbarTransitionless);\r\n }, 300);\r\n };\r\n\r\n generateHorizontalScrollbarStructure();\r\n generateVerticalScrollbarStructure();\r\n\r\n return [\r\n {\r\n _refreshScrollbarsHandleLength: refreshScrollbarsHandleLength,\r\n _refreshScrollbarsHandleOffset: refreshScrollbarsHandleOffset,\r\n _scrollbarsAddRemoveClass: scrollbarsAddRemoveClass,\r\n _horizontal: {\r\n _scrollbarStructures: horizontalScrollbars,\r\n _clone: generateHorizontalScrollbarStructure,\r\n _handleStyle: scrollbarsHandleStyle.bind(0, horizontalScrollbars),\r\n },\r\n _vertical: {\r\n _scrollbarStructures: verticalScrollbars,\r\n _clone: generateVerticalScrollbarStructure,\r\n _handleStyle: scrollbarsHandleStyle.bind(0, verticalScrollbars),\r\n },\r\n },\r\n appendElements,\r\n runEachAndClear.bind(0, destroyFns),\r\n ];\r\n};\r\n","import {\r\n rAF,\r\n cAF,\r\n isFunction,\r\n on,\r\n runEachAndClear,\r\n setT,\r\n clearT,\r\n parent,\r\n scrollLeft,\r\n scrollTop,\r\n} from 'support';\r\nimport { createState, createOptionCheck } from 'setups/setups';\r\nimport { createScrollbarsSetupEvents } from 'setups/scrollbarsSetup/scrollbarsSetup.events';\r\nimport {\r\n createScrollbarsSetupElements,\r\n ScrollbarsSetupElementsObj,\r\n ScrollbarStructure,\r\n} from 'setups/scrollbarsSetup/scrollbarsSetup.elements';\r\nimport {\r\n classNamesScrollbarVisible,\r\n classNamesScrollbarUnusable,\r\n classNamesScrollbarCornerless,\r\n classNamesScrollbarAutoHidden,\r\n classNamesScrollbarHandleInteractive,\r\n classNamesScrollbarTrackInteractive,\r\n classNameScrollbarRtl,\r\n} from 'classnames';\r\nimport type { StructureSetupUpdateHints } from 'setups/structureSetup/structureSetup.update';\r\nimport type {\r\n ReadonlyOptions,\r\n ScrollbarVisibilityBehavior,\r\n ScrollbarAutoHideBehavior,\r\n} from 'options';\r\nimport type { Setup, StructureSetupState, StructureSetupStaticState } from 'setups';\r\nimport type { InitializationTarget } from 'initialization';\r\nimport type { DeepPartial, OverflowStyle, StyleObject } from 'typings';\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\r\nexport interface ScrollbarsSetupState {}\r\n\r\nexport interface ScrollbarsSetupStaticState {\r\n _elements: ScrollbarsSetupElementsObj;\r\n _appendElements: () => void;\r\n}\r\n\r\nconst createSelfCancelTimeout = (timeout?: number | (() => number)) => {\r\n let id: number;\r\n const setTFn = timeout ? setT : rAF!;\r\n const clearTFn = timeout ? clearT : cAF!;\r\n return [\r\n (callback: () => any) => {\r\n clearTFn(id);\r\n // @ts-ignore\r\n id = setTFn(callback, isFunction(timeout) ? timeout() : timeout);\r\n },\r\n () => clearTFn(id),\r\n ] as [timeout: (callback: () => any) => void, clear: () => void];\r\n};\r\n\r\nexport const createScrollbarsSetup = (\r\n target: InitializationTarget,\r\n options: ReadonlyOptions,\r\n structureSetupState: (() => StructureSetupState) & StructureSetupStaticState\r\n): Setup<\r\n ScrollbarsSetupState,\r\n ScrollbarsSetupStaticState,\r\n [DeepPartial]\r\n> => {\r\n let autoHideIsMove: boolean;\r\n let autoHideIsLeave: boolean;\r\n let autoHideNotNever: boolean;\r\n let mouseInHost: boolean | undefined;\r\n let prevTheme: string | null | undefined;\r\n let globalAutoHideDelay = 0;\r\n\r\n const state = createState({});\r\n const [getState] = state;\r\n const [requestMouseMoveAnimationFrame, cancelMouseMoveAnimationFrame] = createSelfCancelTimeout();\r\n const [requestScrollAnimationFrame, cancelScrollAnimationFrame] = createSelfCancelTimeout();\r\n const [scrollTimeout, clearScrollTimeout] = createSelfCancelTimeout(100);\r\n const [auotHideMoveTimeout, clearAutoHideTimeout] = createSelfCancelTimeout(100);\r\n const [auotHideTimeout, clearAutoTimeout] = createSelfCancelTimeout(() => globalAutoHideDelay);\r\n const [elements, appendElements, destroyElements] = createScrollbarsSetupElements(\r\n target,\r\n structureSetupState._elements,\r\n createScrollbarsSetupEvents(options, structureSetupState)\r\n );\r\n const {\r\n _host,\r\n _viewport,\r\n _scrollOffsetElement,\r\n _scrollEventElement,\r\n _viewportIsTarget,\r\n _isBody,\r\n } = structureSetupState._elements;\r\n const {\r\n _horizontal,\r\n _vertical,\r\n _scrollbarsAddRemoveClass: scrollbarsAddRemoveClass,\r\n _refreshScrollbarsHandleLength,\r\n _refreshScrollbarsHandleOffset,\r\n } = elements;\r\n const { _handleStyle: styleHorizontal } = _horizontal;\r\n const { _handleStyle: styleVertical } = _vertical;\r\n const styleScrollbarPosition = (structure: ScrollbarStructure) => {\r\n const { _scrollbar } = structure;\r\n const elm = _viewportIsTarget && !_isBody && parent(_scrollbar) === _viewport && _scrollbar;\r\n return [\r\n elm,\r\n {\r\n transform: elm\r\n ? `translate(${scrollLeft(_scrollOffsetElement)}px, ${scrollTop(_scrollOffsetElement)}px)`\r\n : '',\r\n },\r\n ] as [HTMLElement | false, StyleObject];\r\n };\r\n const manageScrollbarsAutoHide = (removeAutoHide: boolean, delayless?: boolean) => {\r\n clearAutoTimeout();\r\n if (removeAutoHide) {\r\n scrollbarsAddRemoveClass(classNamesScrollbarAutoHidden);\r\n } else {\r\n const hide = () => scrollbarsAddRemoveClass(classNamesScrollbarAutoHidden, true);\r\n if (globalAutoHideDelay > 0 && !delayless) {\r\n auotHideTimeout(hide);\r\n } else {\r\n hide();\r\n }\r\n }\r\n };\r\n const onHostMouseEnter = () => {\r\n mouseInHost = autoHideIsLeave;\r\n mouseInHost && manageScrollbarsAutoHide(true);\r\n };\r\n\r\n const destroyFns: (() => void)[] = [\r\n clearScrollTimeout,\r\n clearAutoTimeout,\r\n clearAutoHideTimeout,\r\n cancelScrollAnimationFrame,\r\n cancelMouseMoveAnimationFrame,\r\n destroyElements,\r\n\r\n on(_host, 'pointerover', onHostMouseEnter, { _once: true }),\r\n on(_host, 'pointerenter', onHostMouseEnter),\r\n on(_host, 'pointerleave', () => {\r\n mouseInHost = false;\r\n autoHideIsLeave && manageScrollbarsAutoHide(false);\r\n }),\r\n on(_host, 'pointermove', () => {\r\n autoHideIsMove &&\r\n requestMouseMoveAnimationFrame(() => {\r\n clearScrollTimeout();\r\n manageScrollbarsAutoHide(true);\r\n auotHideMoveTimeout(() => {\r\n autoHideIsMove && manageScrollbarsAutoHide(false);\r\n });\r\n });\r\n }),\r\n on(_scrollEventElement, 'scroll', () => {\r\n requestScrollAnimationFrame(() => {\r\n _refreshScrollbarsHandleOffset(structureSetupState());\r\n\r\n autoHideNotNever && manageScrollbarsAutoHide(true);\r\n scrollTimeout(() => {\r\n autoHideNotNever && !mouseInHost && manageScrollbarsAutoHide(false);\r\n });\r\n });\r\n\r\n _viewportIsTarget && styleHorizontal(styleScrollbarPosition);\r\n _viewportIsTarget && styleVertical(styleScrollbarPosition);\r\n }),\r\n ];\r\n const scrollbarsSetupState = getState.bind(0) as (() => ScrollbarsSetupState) &\r\n ScrollbarsSetupStaticState;\r\n scrollbarsSetupState._elements = elements;\r\n scrollbarsSetupState._appendElements = appendElements;\r\n\r\n return [\r\n (changedOptions, force, structureUpdateHints) => {\r\n const {\r\n _overflowEdgeChanged,\r\n _overflowAmountChanged,\r\n _overflowStyleChanged,\r\n _directionChanged,\r\n } = structureUpdateHints;\r\n const checkOption = createOptionCheck(options, changedOptions, force);\r\n const currStructureSetupState = structureSetupState();\r\n const { _overflowAmount, _overflowStyle, _directionIsRTL } = currStructureSetupState;\r\n const [theme, themeChanged] = checkOption('scrollbars.theme');\r\n const [visibility, visibilityChanged] =\r\n checkOption('scrollbars.visibility');\r\n const [autoHide, autoHideChanged] =\r\n checkOption('scrollbars.autoHide');\r\n const [autoHideDelay] = checkOption('scrollbars.autoHideDelay');\r\n const [dragScroll, dragScrollChanged] = checkOption('scrollbars.dragScroll');\r\n const [clickScroll, clickScrollChanged] = checkOption('scrollbars.clickScroll');\r\n\r\n const updateHandle =\r\n _overflowEdgeChanged || _overflowAmountChanged || _directionChanged || force;\r\n const updateVisibility = _overflowStyleChanged || visibilityChanged || force;\r\n\r\n const setScrollbarVisibility = (overflowStyle: OverflowStyle, isHorizontal: boolean) => {\r\n const isVisible =\r\n visibility === 'visible' || (visibility === 'auto' && overflowStyle === 'scroll');\r\n scrollbarsAddRemoveClass(classNamesScrollbarVisible, isVisible, isHorizontal);\r\n return isVisible;\r\n };\r\n\r\n globalAutoHideDelay = autoHideDelay;\r\n\r\n if (themeChanged) {\r\n scrollbarsAddRemoveClass(prevTheme);\r\n scrollbarsAddRemoveClass(theme, true);\r\n\r\n prevTheme = theme;\r\n }\r\n if (autoHideChanged) {\r\n autoHideIsMove = autoHide === 'move';\r\n autoHideIsLeave = autoHide === 'leave';\r\n autoHideNotNever = autoHide !== 'never';\r\n manageScrollbarsAutoHide(!autoHideNotNever, true);\r\n }\r\n if (dragScrollChanged) {\r\n scrollbarsAddRemoveClass(classNamesScrollbarHandleInteractive, dragScroll);\r\n }\r\n if (clickScrollChanged) {\r\n scrollbarsAddRemoveClass(classNamesScrollbarTrackInteractive, clickScroll);\r\n }\r\n if (updateVisibility) {\r\n const xVisible = setScrollbarVisibility(_overflowStyle.x, true);\r\n const yVisible = setScrollbarVisibility(_overflowStyle.y, false);\r\n const hasCorner = xVisible && yVisible;\r\n\r\n scrollbarsAddRemoveClass(classNamesScrollbarCornerless, !hasCorner);\r\n }\r\n if (updateHandle) {\r\n _refreshScrollbarsHandleLength(currStructureSetupState);\r\n _refreshScrollbarsHandleOffset(currStructureSetupState);\r\n\r\n scrollbarsAddRemoveClass(classNamesScrollbarUnusable, !_overflowAmount.x, true);\r\n scrollbarsAddRemoveClass(classNamesScrollbarUnusable, !_overflowAmount.y, false);\r\n scrollbarsAddRemoveClass(classNameScrollbarRtl, _directionIsRTL && !_isBody);\r\n }\r\n },\r\n scrollbarsSetupState,\r\n runEachAndClear.bind(0, destroyFns),\r\n ];\r\n};\r\n","import { OverlayScrollbars } from 'overlayscrollbars';\r\n\r\nconst targets: Set = new Set();\r\nconst targetInstanceMap: WeakMap = new WeakMap();\r\n\r\n/**\r\n * Adds the given OverlayScrollbars instance to the given element.\r\n * @param target The element which is the target of the OverlayScrollbars instance.\r\n * @param osInstance The OverlayScrollbars instance.\r\n */\r\nexport const addInstance = (target: Element, osInstance: OverlayScrollbars): void => {\r\n targetInstanceMap.set(target, osInstance);\r\n targets.add(target);\r\n};\r\n\r\n/**\r\n * Removes a OverlayScrollbars instance from the given element.\r\n * @param target The element from which its OverlayScrollbars instance shall be removed.\r\n */\r\nexport const removeInstance = (target: Element): void => {\r\n targetInstanceMap.delete(target);\r\n targets.delete(target);\r\n};\r\n\r\n/**\r\n * Gets the OverlayScrollbars from the given element or undefined if it doesn't have one.\r\n * @param target The element of which its OverlayScrollbars instance shall be get.\r\n */\r\nexport const getInstance = (target: Element): OverlayScrollbars | undefined =>\r\n targetInstanceMap.get(target);\r\n\r\n/**\r\n * Gets a Map which represents all active OverayScrollbars instances.\r\n * The Key is the element and the value is the instance.\r\n */\r\nexport const allInstances = (): ReadonlyMap => {\r\n const validTargetInstanceMap: Map = new Map();\r\n\r\n targets.forEach((target: Element) => {\r\n /* istanbul ignore else */\r\n if (targetInstanceMap.has(target)) {\r\n validTargetInstanceMap.set(target, targetInstanceMap.get(target)!);\r\n }\r\n });\r\n\r\n targets.clear();\r\n\r\n validTargetInstanceMap.forEach((instance: OverlayScrollbars, validTarget: Element) => {\r\n targets.add(validTarget);\r\n });\r\n\r\n return validTargetInstanceMap;\r\n};\r\n","import {\r\n assignDeep,\r\n isEmptyObject,\r\n each,\r\n isFunction,\r\n keys,\r\n isHTMLElement,\r\n XY,\r\n TRBL,\r\n createEventListenerHub,\r\n} from 'support';\r\nimport { createStructureSetup, createScrollbarsSetup } from 'setups';\r\nimport { getOptionsDiff, Options, ReadonlyOptions } from 'options';\r\nimport { getEnvironment } from 'environment';\r\nimport {\r\n getPlugins,\r\n addPlugin,\r\n optionsValidationPluginName,\r\n Plugin,\r\n OptionsValidationPluginInstance,\r\n} from 'plugins';\r\nimport { addInstance, getInstance, removeInstance } from 'instances';\r\nimport type { DeepPartial, OverflowStyle } from 'typings';\r\nimport { InitializationTarget, Initialization, cancelInitialization } from 'initialization';\r\nimport type {\r\n InitialEventListeners as GeneralInitialEventListeners,\r\n EventListener as GeneralEventListener,\r\n} from 'support/eventListeners';\r\nimport {\r\n ScrollbarsSetupElement,\r\n ScrollbarStructure,\r\n} from 'setups/scrollbarsSetup/scrollbarsSetup.elements';\r\n\r\nexport interface OverlayScrollbarsStatic {\r\n (\r\n target: InitializationTarget,\r\n options?: DeepPartial,\r\n eventListeners?: GeneralInitialEventListeners\r\n ): OverlayScrollbars;\r\n\r\n plugin(plugin: Plugin | Plugin[]): void;\r\n env(): Environment;\r\n}\r\n\r\nexport interface Environment {\r\n scrollbarsSize: XY;\r\n scrollbarsOverlaid: XY;\r\n scrollbarsHiding: boolean;\r\n rtlScrollBehavior: { n: boolean; i: boolean };\r\n flexboxGlue: boolean;\r\n cssCustomProperties: boolean;\r\n staticDefaultInitialization: Initialization;\r\n staticDefaultOptions: Options;\r\n\r\n getDefaultInitialization(): Initialization;\r\n setDefaultInitialization(newDefaultInitialization: DeepPartial): void;\r\n getDefaultOptions(): Options;\r\n setDefaultOptions(newDefaultOptions: DeepPartial): void;\r\n}\r\n\r\nexport interface State {\r\n padding: TRBL;\r\n paddingAbsolute: boolean;\r\n overflowEdge: XY;\r\n overflowAmount: XY;\r\n overflowStyle: XY;\r\n hasOverflow: XY;\r\n directionRTL: boolean;\r\n destroyed: boolean;\r\n}\r\n\r\nexport interface ScrollbarElements {\r\n scrollbar: HTMLElement;\r\n track: HTMLElement;\r\n handle: HTMLElement;\r\n}\r\n\r\nexport interface CloneableScrollbarElements extends ScrollbarElements {\r\n clone(): ScrollbarElements;\r\n}\r\n\r\nexport interface Elements {\r\n target: HTMLElement;\r\n host: HTMLElement;\r\n padding: HTMLElement;\r\n viewport: HTMLElement;\r\n content: HTMLElement;\r\n scrollOffsetElement: HTMLElement;\r\n scrollEventElement: HTMLElement | Document;\r\n scrollbarHorizontal: CloneableScrollbarElements;\r\n scrollbarVertical: CloneableScrollbarElements;\r\n}\r\n\r\nexport interface OnUpdatedEventListenerArgs {\r\n updateHints: {\r\n sizeChanged: boolean;\r\n directionChanged: boolean;\r\n heightIntrinsicChanged: boolean;\r\n overflowEdgeChanged: boolean;\r\n overflowAmountChanged: boolean;\r\n overflowStyleChanged: boolean;\r\n hostMutation: boolean;\r\n contentMutation: boolean;\r\n };\r\n changedOptions: DeepPartial;\r\n force: boolean;\r\n}\r\n\r\nexport type EventListenerMap = {\r\n /**\r\n * Triggered after all elements are initialized and appended.\r\n */\r\n initialized: [instance: OverlayScrollbars];\r\n /**\r\n * Triggered after an update.\r\n */\r\n updated: [instance: OverlayScrollbars, onUpdatedArgs: OnUpdatedEventListenerArgs];\r\n /**\r\n * Triggered after all elements, observers and events are destroyed.\r\n */\r\n destroyed: [instance: OverlayScrollbars, canceled: boolean];\r\n};\r\n\r\nexport type InitialEventListeners = GeneralInitialEventListeners;\r\n\r\nexport type EventListener = GeneralEventListener<\r\n EventListenerMap,\r\n Name\r\n>;\r\n\r\nexport interface OverlayScrollbars {\r\n options(): Options;\r\n options(newOptions?: DeepPartial): Options;\r\n\r\n update(force?: boolean): OverlayScrollbars;\r\n\r\n destroy(): void;\r\n\r\n state(): State;\r\n\r\n elements(): Elements;\r\n\r\n on(name: Name, listener: EventListener): () => void;\r\n on(name: Name, listener: EventListener[]): () => void;\r\n\r\n off(name: Name, listener: EventListener): void;\r\n off(name: Name, listener: EventListener[]): void;\r\n}\r\n\r\n/**\r\n * Notes:\r\n * Height intrinsic detection use \"content: true\" init strategy - or open ticket for custom height intrinsic observer\r\n */\r\n\r\nexport const OverlayScrollbars: OverlayScrollbarsStatic = (\r\n target,\r\n options?,\r\n eventListeners?\r\n): OverlayScrollbars => {\r\n let destroyed = false;\r\n const { _getDefaultOptions, _addListener: addEnvListener } = getEnvironment();\r\n const plugins = getPlugins();\r\n const targetIsElement = isHTMLElement(target);\r\n const instanceTarget = targetIsElement ? target : target.target;\r\n const potentialInstance = getInstance(instanceTarget);\r\n if (potentialInstance) {\r\n return potentialInstance;\r\n }\r\n\r\n const optionsValidationPlugin = plugins[\r\n optionsValidationPluginName\r\n ] as OptionsValidationPluginInstance;\r\n const validateOptions = (newOptions?: DeepPartial) => {\r\n const opts = newOptions || {};\r\n const validate = optionsValidationPlugin && optionsValidationPlugin._;\r\n return validate ? validate(opts, true) : opts;\r\n };\r\n const currentOptions: ReadonlyOptions = assignDeep(\r\n {},\r\n _getDefaultOptions(),\r\n validateOptions(options)\r\n );\r\n const [addEvent, removeEvent, triggerEvent] = createEventListenerHub(eventListeners);\r\n const [updateStructure, structureState, destroyStructure] = createStructureSetup(\r\n target,\r\n currentOptions\r\n );\r\n const [updateScrollbars, scrollbarsState, destroyScrollbars] = createScrollbarsSetup(\r\n target,\r\n currentOptions,\r\n structureState\r\n );\r\n const update = (changedOptions: DeepPartial, force?: boolean) => {\r\n updateStructure(changedOptions, !!force);\r\n };\r\n const removeEnvListener = addEnvListener(update.bind(0, {}, true));\r\n const destroy = (canceled?: boolean) => {\r\n removeInstance(instanceTarget);\r\n removeEnvListener();\r\n\r\n destroyScrollbars();\r\n destroyStructure();\r\n\r\n destroyed = true;\r\n\r\n // eslint-disable-next-line no-use-before-define\r\n triggerEvent('destroyed', [instance, !!canceled]);\r\n removeEvent();\r\n };\r\n\r\n const instance: OverlayScrollbars = {\r\n options(newOptions?: DeepPartial) {\r\n if (newOptions) {\r\n const changedOptions = getOptionsDiff(currentOptions, validateOptions(newOptions));\r\n\r\n if (!isEmptyObject(changedOptions)) {\r\n assignDeep(currentOptions, changedOptions);\r\n update(changedOptions);\r\n }\r\n }\r\n return assignDeep({}, currentOptions);\r\n },\r\n on: addEvent,\r\n off: (name, listener) => {\r\n name && listener && removeEvent(name, listener as any);\r\n },\r\n state() {\r\n const {\r\n _overflowEdge,\r\n _overflowAmount,\r\n _overflowStyle,\r\n _hasOverflow,\r\n _padding,\r\n _paddingAbsolute,\r\n _directionIsRTL,\r\n } = structureState();\r\n return assignDeep(\r\n {},\r\n {\r\n overflowEdge: _overflowEdge,\r\n overflowAmount: _overflowAmount,\r\n overflowStyle: _overflowStyle,\r\n hasOverflow: _hasOverflow,\r\n padding: _padding,\r\n paddingAbsolute: _paddingAbsolute,\r\n directionRTL: _directionIsRTL,\r\n destroyed,\r\n }\r\n );\r\n },\r\n elements() {\r\n const {\r\n _target,\r\n _host,\r\n _padding,\r\n _viewport,\r\n _content,\r\n _scrollOffsetElement,\r\n _scrollEventElement,\r\n } = structureState._elements;\r\n const { _horizontal, _vertical } = scrollbarsState._elements;\r\n const translateScrollbarStructure = (\r\n scrollbarStructure: ScrollbarStructure\r\n ): ScrollbarElements => {\r\n const { _handle, _track, _scrollbar } = scrollbarStructure;\r\n return {\r\n scrollbar: _scrollbar,\r\n track: _track,\r\n handle: _handle,\r\n };\r\n };\r\n const translateScrollbarsSetupElement = (\r\n scrollbarsSetupElement: ScrollbarsSetupElement\r\n ): CloneableScrollbarElements => {\r\n const { _scrollbarStructures, _clone } = scrollbarsSetupElement;\r\n const translatedStructure = translateScrollbarStructure(_scrollbarStructures[0]);\r\n\r\n return assignDeep({}, translatedStructure, {\r\n clone: () => {\r\n const result = translateScrollbarStructure(_clone());\r\n updateScrollbars({}, true, {});\r\n return result;\r\n },\r\n });\r\n };\r\n return assignDeep(\r\n {},\r\n {\r\n target: _target,\r\n host: _host,\r\n padding: _padding || _viewport,\r\n viewport: _viewport,\r\n content: _content || _viewport,\r\n scrollOffsetElement: _scrollOffsetElement,\r\n scrollEventElement: _scrollEventElement,\r\n scrollbarHorizontal: translateScrollbarsSetupElement(_horizontal),\r\n scrollbarVertical: translateScrollbarsSetupElement(_vertical),\r\n }\r\n );\r\n },\r\n update(force?: boolean) {\r\n update({}, force);\r\n return instance;\r\n },\r\n destroy: destroy.bind(0),\r\n };\r\n\r\n structureState._addOnUpdatedListener((updateHints, changedOptions, force: boolean) => {\r\n updateScrollbars(changedOptions, force, updateHints);\r\n });\r\n\r\n each(keys(plugins), (pluginName) => {\r\n const pluginInstance = plugins[pluginName];\r\n if (isFunction(pluginInstance)) {\r\n pluginInstance(OverlayScrollbars, instance);\r\n }\r\n });\r\n\r\n if (cancelInitialization(!targetIsElement && target.cancel, structureState._elements)) {\r\n destroy(true);\r\n return instance;\r\n }\r\n\r\n structureState._appendElements();\r\n scrollbarsState._appendElements();\r\n\r\n addInstance(instanceTarget, instance);\r\n triggerEvent('initialized', [instance]);\r\n\r\n structureState._addOnUpdatedListener((updateHints, changedOptions, force) => {\r\n const {\r\n _sizeChanged,\r\n _directionChanged,\r\n _heightIntrinsicChanged,\r\n _overflowEdgeChanged,\r\n _overflowAmountChanged,\r\n _overflowStyleChanged,\r\n _contentMutation,\r\n _hostMutation,\r\n } = updateHints;\r\n\r\n triggerEvent('updated', [\r\n instance,\r\n {\r\n updateHints: {\r\n sizeChanged: _sizeChanged,\r\n directionChanged: _directionChanged,\r\n heightIntrinsicChanged: _heightIntrinsicChanged,\r\n overflowEdgeChanged: _overflowEdgeChanged,\r\n overflowAmountChanged: _overflowAmountChanged,\r\n overflowStyleChanged: _overflowStyleChanged,\r\n contentMutation: _contentMutation,\r\n hostMutation: _hostMutation,\r\n },\r\n changedOptions,\r\n force,\r\n },\r\n ]);\r\n });\r\n\r\n return instance.update(true);\r\n};\r\n\r\nOverlayScrollbars.plugin = addPlugin;\r\nOverlayScrollbars.env = () => {\r\n const {\r\n _nativeScrollbarsSize,\r\n _nativeScrollbarsOverlaid,\r\n _nativeScrollbarsHiding,\r\n _rtlScrollBehavior,\r\n _flexboxGlue,\r\n _cssCustomProperties,\r\n _staticDefaultInitialization,\r\n _staticDefaultOptions,\r\n _getDefaultInitialization,\r\n _setDefaultInitialization,\r\n _getDefaultOptions,\r\n _setDefaultOptions,\r\n } = getEnvironment();\r\n return assignDeep(\r\n {},\r\n {\r\n scrollbarsSize: _nativeScrollbarsSize,\r\n scrollbarsOverlaid: _nativeScrollbarsOverlaid,\r\n scrollbarsHiding: _nativeScrollbarsHiding,\r\n rtlScrollBehavior: _rtlScrollBehavior,\r\n flexboxGlue: _flexboxGlue,\r\n cssCustomProperties: _cssCustomProperties,\r\n staticDefaultInitialization: _staticDefaultInitialization,\r\n staticDefaultOptions: _staticDefaultOptions,\r\n\r\n getDefaultInitialization: _getDefaultInitialization,\r\n setDefaultInitialization: _setDefaultInitialization,\r\n getDefaultOptions: _getDefaultOptions,\r\n setDefaultOptions: _setDefaultOptions,\r\n }\r\n );\r\n};\r\n"],"names":["each","source","callback","isArrayLike","i","length","Object","keys","key","style","elm","styles","getSingleStyle","isString","getStyles","isArray","getStylesResult","computedStyle","window","getComputedStyle","getCSSVal","reduce","result","setCSSVal","createCache","options","update","o","_initialValue","u","_equal","_","_alwaysUpdateValues","_value","_previous","cacheUpdateContextual","newValue","force","curr","newVal","changed","cacheUpdateIsolated","getCurrentCache","ElementNodeType","Node","ELEMENT_NODE","toString","hasOwnProperty","prototype","isUndefined","obj","undefined","isNull","type","call","replace","toLowerCase","isNumber","isBoolean","isFunction","Array","isObject","lengthCorrectFormat","isPlainObject","cstr","ctor","ctorProto","hasOwnConstructor","hasIsPrototypeOf","isHTMLElement","instanceofObj","HTMLElement","nodeType","isElement","Element","indexOf","arr","item","fromIndex","push","array","items","arrayIsSingleItem","apply","from","original","Set","forEach","value","isEmptyArray","runEachAndClear","args","keep","runFn","fn","prop","assignDeep","target","object1","object2","object3","object4","object5","object6","sources","copy","copyIsArray","src","clone","isEmptyObject","name","getSetProp","topLeft","fallback","attr","attrName","getAttribute","setAttribute","attrClass","add","currValues","currValuesSet","split","join","trim","hasAttrClass","has","removeAttr","removeAttribute","scrollLeft","scrollTop","elmPrototype","find","selector","rootElm","document","querySelectorAll","findFirst","querySelector","is","matches","msMatchesSelector","contents","childNodes","parent","parentElement","closest","closestFn","liesBetween","highBoundarySelector","deepBoundarySelector","closestHighBoundaryElm","closestDeepBoundaryElm","deepBoundaryIsValid","before","parentElm","preferredAnchor","insertedElms","anchor","fragment","createDocumentFragment","insertedElm","previousSibling","appendChild","firstChild","nextSibling","insertBefore","appendChildren","node","children","insertedNodes","insertAfter","removeElements","nodes","e","removeChild","createDiv","classNames","div","createElement","createDOM","html","createdDiv","innerHTML","firstLetterToUpper","str","charAt","toUpperCase","slice","getDummyStyle","cssPrefixes","jsPrefixes","jsCache","cssCache","cssProperty","uppercasedName","elmStyle","prefix","prefixWithoutDashes","resultPossibilities","resultPossibility","jsAPI","MutationObserverConstructor","IntersectionObserverConstructor","ResizeObserverConstructor","cAF","rAF","setT","setTimeout","clearT","clearTimeout","rnothtmlwhite","classListAction","className","action","classList","clazz","classes","match","hasClass","contains","removeClass","remove","addClass","bind","equal","a","b","props","propMutation","compareA","compareB","equalWH","equalXY","equalTRBL","equalBCRWH","round","Math","noop","debounce","functionToDebounce","maxTimeoutId","prevArguments","latestArguments","clear","g","_timeout","v","_maxDelay","p","_mergeParams","invokeFunctionToDebounce","this","mergeParms","flush","debouncedFn","arguments","finalTimeout","hasTimeout","finalMaxWait","hasMaxWait","setTimeoutFn","clearTimeoutFn","mergeParamsResult","invokedArgs","boundInvoke","timeoutId","_flush","cssNumber","opacity","zindex","parseToZeroOrNumber","toFloat","num","parseFloat","parseInt","adaptCSSVal","val","getPropertyValue","setProperty","directionIsRTL","topRightBottomLeft","propertyPrefix","propertySuffix","finalPrefix","finalSuffix","top","right","bottom","left","t","r","l","zeroObj","w","h","windowSize","innerWidth","innerHeight","offsetSize","offsetWidth","offsetHeight","clientSize","clientWidth","clientHeight","scrollSize","scrollWidth","scrollHeight","fractionalSize","cssHeight","cssWidth","getBoundingClientRect","passiveEventsSupport","supportPassiveEvents","addEventListener","defineProperty","get","splitEventNames","eventNames","off","listener","capture","eventName","removeEventListener","on","_ref","doSupportPassiveEvents","passive","_passive","_capture","once","_once","offListeners","nativeOptions","finalListener","evt","stopPropagation","preventDefault","x","y","absoluteCoordinates","rect","pageYOffset","pageXOffset","manageListener","createEventListenerHub","initialEventListeners","events","Map","removeEvent","eventSet","currListener","addEvent","set","triggerEvent","event","initialListenerKeys","getPropByPath","path","createOptionCheck","changedOptions","createState","initialState","state","newState","classNameEnvironment","classNameEnvironmentFlexboxGlue","classNameEnvironmentFlexboxGlueMax","dataAttributeHost","dataAttributeHostOverflowX","dataAttributeHostOverflowY","dataValueHostOverflowVisible","dataValueHostScrollbarHidden","dataValueHostUpdating","classNamePadding","classNameViewport","classNameViewportArrange","classNameContent","classNameViewportScrollbarHidden","classNameOverflowVisible","classNameSizeObserver","classNameSizeObserverAppear","classNameSizeObserverListener","classNameSizeObserverListenerScroll","classNameSizeObserverListenerItem","classNameSizeObserverListenerItemFinal","classNameTrinsicObserver","classNameScrollbar","classNameScrollbarRtl","classNameScrollbarHorizontal","classNameScrollbarVertical","classNameScrollbarTrack","classNameScrollbarHandle","classNamesScrollbarVisible","classNamesScrollbarCornerless","classNamesScrollbarTransitionless","classNamesScrollbarInteraction","classNamesScrollbarUnusable","classNamesScrollbarAutoHidden","classNamesScrollbarTrackInteractive","classNamesScrollbarHandleInteractive","opsStringify","JSON","stringify","Error","defaultOptions","paddingAbsolute","showNativeOverlaidScrollbars","updating","elementEvents","attributes","ignoreMutation","overflow","scrollbars","theme","visibility","autoHide","autoHideDelay","dragScroll","clickScroll","pointers","getOptionsDiff","currOptions","newOptions","diff","optionsKeys","concat","optionKey","currOptionValue","newOptionValue","isDiff","pluginRegistry","getPlugins","addPlugin","addedPlugin","plugin","pluginName","optionsTemplateTypes","boolean","number","string","object","function","null","numberAllowedValues","oTypes","booleanAllowedValues","arrayNullValues","overflowAllowedValues","scrollbarsVisibilityAllowedValues","scrollbarsAutoHideAllowedValues","optionsValidationPluginName","scrollAmount","scrollEventName","sizeObserverPluginName","sizeObserverPlugin","listenerElement","onSizeChangedCallback","observeAppearChange","observerElementChildren","observerElementChildrenRoot","shrinkElement","lastChild","expandElement","expandElementChild","cacheSize","currSize","isDirty","rAFId","reset","onResized","appear","onScroll","scrollEvent","width","height","contentArrangeCounter","abs","getWindowDPR","dDPI","screen","deviceXDPI","sDPI","logicalXDPI","devicePixelRatio","diffBiggerThanOne","valOne","valTwo","absValOne","absValTwo","scrollbarsHidingPluginName","scrollbarsHidingPlugin","_createUniqueViewportArrangeElement","env","T","_nativeScrollbarsHiding","I","_nativeScrollbarsOverlaid","L","_cssCustomProperties","create","_overflowUpdateSegment","doViewportArrange","flexboxGlue","viewport","viewportArrange","getState","getViewportOverflowState","hideNativeScrollbars","arrangeViewport","viewportOverflowState","viewportScrollSize","sizeFraction","P","_viewportPaddingStyle","D","_scrollbarsHideOffset","M","_scrollbarsHideOffsetArrange","arrangeX","arrangeY","hideOffsetX","hideOffsetY","viewportArrangeHorizontalPaddingKey","viewportArrangeHorizontalPaddingValue","viewportArrangeVerticalPaddingValue","paddingTop","fractionalContentWidth","fractionalContenHeight","arrangeSize","sheet","cssRules","insertRule","ruleStyle","undoViewportArrange","finalViewportOverflowState","viewportPaddingStyle","finalPaddingStyle","assignProps","prevStyle","_envWindowZoom","size","dpr","envInstance","updateNativeScrollbarSizeCache","sizeNew","deltaSize","deltaAbsSize","deltaAbsRatio","dprNew","deltaIsBigger","difference","dprChanged","isZoom","scrollbarSize","scrollbarSizeChanged","_nativeScrollbarsSize","environmentInstance","getNativeScrollbarSize","body","measureElm","measureElmChild","cSize","oSize","fSize","getNativeScrollbarsHiding","testElm","revertClass","ex","getRtlScrollBehavior","childElm","strHidden","overflowX","overflowY","direction","parentOffset","childOffset","childOffsetAfterScroll","n","getFlexboxGlue","revertFbxGlue","minOffsetsizeParent","minOffsetsize","supportsMin","revertFbxGlueMax","maxOffsetsizeParent","maxOffsetsize","supportsMax","createEnvironment","envDOM","envElm","envChildElm","getNativeScrollbarSizeCache","nativeScrollbarsSize","nativeScrollbarsHiding","nativeScrollbarsOverlaid","staticDefaultInitialization","host","padding","ownerDocument","content","scrollbarsSlot","cancel","staticDefaultOptions","_rtlScrollBehavior","_flexboxGlue","_addListener","_getDefaultInitialization","_setDefaultInitialization","newInitializationStrategy","_getDefaultOptions","_setDefaultOptions","newDefaultOptions","_staticDefaultInitialization","_staticDefaultOptions","resizeFn","getEnvironment","resolveInitialization","staticInitializationElement","fallbackStaticInitializationElement","defaultStaticInitializationElementStrategy","staticInitializationElementValue","staticInitialization","resolvedInitialization","dynamicInitializationElement","fallbackDynamicInitializationElement","defaultDynamicInitializationElementStrategy","dynamicInitializationElementValue","dynamicInitialization","cancelInitialization","cancelInitializationValue","structureSetupElements","W","_isBody","X","_viewportIsTarget","Y","defaultNativeScrollbarsOverlaid","defaultbody","resolvedNativeScrollbarsOverlaid","resolvedDocumentScrollingElement","finalNativeScrollbarsOverlaid","finalDocumentScrollingElement","createNewDiv","unwrap","addDataAttrHost","createStructureSetupElements","createUniqueViewportArrangeElement","defaultHostInitialization","defaultViewportInitialization","defaultPaddingInitialization","defaultContentInitialization","targetIsElm","targetStructureInitialization","hostInitialization","paddingInitialization","viewportInitialization","contentInitialization","targetElement","isTextarea","isBody","wnd","defaultView","generalStaticInitializationElement","generalDynamicInitializationElement","viewportElement","viewportIsTarget","viewportIsTargetBody","evaluatedTargetObj","_target","_host","_viewport","_padding","_content","_viewportArrange","_scrollOffsetElement","documentElement","_scrollEventElement","_windowElm","_documentElm","_isTextarea","_targetIsElm","_viewportHasClass","attributeClassName","_viewportAddRemoveClass","generatedElements","elementIsGenerated","J","K","tt","Z","nt","ot","destroyFns","isTextareaHostGenerated","targetContents","contentSlot","appendElements","removeHostDataAttr","removePaddingClass","removeViewportClass","removeContentClass","removeHtmlClass","createTrinsicUpdateSegment","updateHints","V","ft","_heightIntrinsic","_t","_heightIntrinsicChanged","heightIntrinsicChanged","_sizeChanged","_contentMutation","createPaddingUpdateSegment","setState","_isSingleElm","updatePaddingCache","currentPaddingCache","checkOption","paddingChanged","_nativeScrollbarStyling","vt","_directionIsRTL","ht","gt","wt","_directionChanged","paddingAbsoluteChanged","contentMutation","paddingStyleChanged","paddingRelative","paddingHorizontal","paddingVertical","paddingStyle","marginRight","marginBottom","marginLeft","viewportStyle","paddingRight","paddingBottom","paddingLeft","_paddingAbsolute","_paddingStyleChanged","max","max0","strVisible","overlaidScrollbarsHideOffset","whCacheOptions","xyCacheOptions","getOverflowAmount","viewportClientSize","tollerance","amount","conditionalClass","overflowIsVisible","overflowBehavior","createOverflowUpdateSegment","dt","ct","k","updateSizeFraction","getCurrentSizeFraction","updateViewportScrollSizeCache","getCurrentViewportScrollSizeCache","updateOverflowAmountCache","getCurrentOverflowAmountCache","updateOverflowEdge","getCurrentOverflowEdgeCache","updateOverflowStyleCache","fixFlexboxGlue","heightIntrinsic","bt","St","_overflowScroll","hostClientSize","isContentBox","subtractXScrollbar","viewportStyleObj","arrangeHideOffset","getStatePerAxis","styleKey","isOverlaid","nativeScrollbarSize","overflowStyle","objectPrefferedOverflowStyle","overflowScroll","nonScrollbarStylingHideOffset","scrollbarsHideOffset","scrollbarsHideOffsetArrange","xOverflowStyle","xOverflowScroll","xScrollbarsHideOffset","xScrollbarsHideOffsetArrange","yOverflowStyle","yOverflowScroll","yScrollbarsHideOffset","yScrollbarsHideOffsetArrange","_overflowStyle","setViewportOverflowState","hasOverflow","overflowOption","setAxisOverflowStyle","behavior","hasOverflowAxis","overflowVisible","overflowVisibleBehavior","visibleBehaviorX","visibleBehaviorY","horizontalMarginKey","viewportHorizontalPaddingKey","horizontalMarginValue","verticalMarginValue","horizontalPaddingValue","verticalPaddingValue","$t","_hostMutation","yt","showNativeOverlaidScrollbarsOption","showNativeOverlaidScrollbarsChanged","overflowChanged","adjustFlexboxGlue","overflowXVisible","overflowYVisible","sizeFractionCache","viewportScrollSizeCache","overflowAmuntCache","overflowEdgeCache","preMeasureViewportOverflowState","redoViewportArrange","undoViewportArrangeOverflowState","sizeFractionChanged","viewportScrollSizeChanged","viewportclientSize","arrangedViewportScrollSize","arrangedViewportClientSize","overflowAmountScrollSize","overflowAmountClientSize","overflowEdge","overflowEdgeChanged","overflowAmount","overflowAmountChanged","removeClipping","viewportArranged","overflowStyleChanged","_overflowEdge","_overflowAmount","_hasOverflow","_overflowStyleChanged","_overflowEdgeChanged","_overflowAmountChanged","prepareUpdateHints","leading","adaptive","finalAdaptive","objKeys","leadingValue","adaptiveValue","createStructureSetupUpdate","updateSegments","initialUpdateHints","adjustScrollOffset","scrollOffsetX","scrollOffsetY","adaptivedUpdateHints","updateSegment","domRectHasDimensions","createSizeObserver","_direction","observeDirectionChange","_appear","rtlScrollBehavior","baseElements","sizeObserver","getIsDirectionRTL","updateResizeObserverContentRectCache","currVal","onSizeChangedCallbackProxy","sizeChangedContext","isResizeObserverCall","hasDirectionCache","skip","doDirectionScroll","currRContentRect","prevContentRect","pop","contentRect","hasDimensions","hadDimensions","rtl","_directionIsRTLCache","appearCallback","resizeObserverInstance","observe","disconnect","pluginAppearCallback","pluginOffListeners","updateDirectionIsRTLCache","directionIsRTLCacheValues","directionIsRTLCache","directionIsRTLCacheChanged","isHeightIntrinsic","ioEntryOrSize","isIntersecting","intersectionRatio","createTrinsicObserver","onTrinsicChangedCallback","intersectionObserverInstance","trinsicObserver","updateHeightIntrinsicCache","triggerOnTrinsicChangedCallback","updateValue","fromRecords","intersectionObserverCallback","entries","root","onSizeChanged","newSize","destroySizeObserver","appendSizeObserver","takeRecords","createEventContentChange","eventContentChange","map","destroyed","destroy","updateElements","getElements","eventElmList","elements","entry","entryEventNames","entryOff","delete","WeakMap","createDOMObserver","isContentObserver","isConnected","Pt","_attributes","Dt","_styleChangingAttributes","Mt","_eventContentChange","Rt","_nestedTargetSelector","kt","_ignoreTargetChange","Bt","_ignoreContentChange","debouncedEventContentChange","destroyEventContentChange","updateEventContentChangeElements","finalAttributes","finalStyleChangingAttributes","observedAttributes","observerCallback","mutations","ignoreTargetChange","ignoreContentChange","targetChangedAttrs","totalAddedNodes","targetStyleChanged","contentChanged","childListChanged","mutation","attributeName","mutationTarget","oldValue","addedNodes","isAttributesType","isChildListType","targetIsMutationTarget","attributeValue","attributeChanged","styleChangingAttrChanged","notOnlyAttrChanged","contentAttrChanged","isNestedTarget","baseAssertion","contentFinalChanged","mutationObserver","attributeOldValue","attributeFilter","subtree","childList","characterData","records","hostSelector","viewportSelector","viewportAttrsFromTarget","baseStyleChangingAttrsTextarea","baseStyleChangingAttrs","createStructureSetupObservers","structureSetupUpdate","debounceTimeout","debounceMaxDelay","contentMutationObserver","it","ut","updateContentSizeCache","hasOver","hasVpStyle","contentScroll","viewportScroll","fractional","contentMutationObserverAttr","structureSetupUpdateWithDebouncedAdaptiveUpdateHints","prev","prevObj","currObj","updateViewportAttrsFromHost","attribute","hostAttr","onTrinsicChanged","heightIntrinsicCache","updateFn","directionChanged","directionIsRTLChanged","onContentMutation","contentChangedTroughEvent","contentSizeChanged","onHostMutation","destroyTrinsicObserver","appendTrinsicObserver","updateTrinsicObserver","destroyHostMutationObserver","updateHostMutationObserver","viewportIsTargetResizeObserver","hostUpdateResult","trinsicUpdateResult","contentUpdateResult","attributesChanged","elementEventsChanged","debounceValue","debounceChanged","updateContentMutationObserver","ignoreMutationFromOptions","ignore","timeout","maxWait","initialXYNumber","initialStructureSetupUpdateState","createStructureSetup","checkOptionsFallback","appendStructureElements","destroyElements","updateStructure","triggerUpdateEvent","truthyUpdateHints","some","destroyObservers","appendObserverElements","updateObservers","updateObserversOptions","structureSetupState","_addOnUpdatedListener","_appendElements","_elements","getClientOffset","clientX","clientY","getScale","element","continuePointerDown","scrollType","scrollbarOptions","button","isPrimary","pointerType","includes","createRootClickStopPropagationEvents","scrollbar","documentElm","createDragScrollingEvents","doc","scrollbarStructure","scrollOffsetElement","isHorizontal","B","qt","_handle","Ft","_track","Gt","_scrollbar","scrollOffsetKey","xyKey","whKey","createOnPointerMoveHandler","mouseDownScroll","mouseDownClientOffset","mouseDownInvertedScale","Ot","movement","handleTrackDiff","scrollDeltaPercent","scrollDelta","isRTL","negateMultiplactor","pointerDownEvent","offSelectStart","offPointerMove","pointerUpEvent","releasePointerCapture","pointerId","setPointerCapture","createScrollbarsSetupEvents","scrollbarsAddRemoveClass","scrollOffsetElm","min","getScrollbarHandleLengthRatio","scrollbarHandle","scrollbarTrack","axis","Ct","viewportSize","handleSize","trackSize","getScrollbarHandleOffsetRatio","scrollLeftTop","scrollPositionMax","scrollPosition","handleRTL","rtlNormalizedScrollPosition","finalScrollPosition","scrollPercent","lengthRatio","createScrollbarsSetupElements","scrollbarsSetupEvents","defaultScrollbarsSlot","rt","lt","st","evaluatedScrollbarSlot","scrollbarStructureAddRemoveClass","scrollbarStructures","scrollbarsHandleStyle","scrollbarStructureRefreshHandleLength","structure","toFixed","scrollbarStructureRefreshHandleOffset","translateAxis","offsetRatio","validOffsetRatio","transform","horizontalScrollbars","verticalScrollbars","onlyHorizontal","singleAxis","runHorizontal","runVertical","refreshScrollbarsHandleLength","refreshScrollbarsHandleOffset","generateScrollbarDOM","scrollbarClassName","arrToPush","transitionlessClass","track","handle","generateHorizontalScrollbarStructure","generateVerticalScrollbarStructure","_refreshScrollbarsHandleLength","_refreshScrollbarsHandleOffset","_scrollbarsAddRemoveClass","_horizontal","_scrollbarStructures","_clone","_handleStyle","_vertical","createSelfCancelTimeout","id","setTFn","clearTFn","createScrollbarsSetup","autoHideIsMove","autoHideIsLeave","autoHideNotNever","mouseInHost","prevTheme","globalAutoHideDelay","requestMouseMoveAnimationFrame","cancelMouseMoveAnimationFrame","requestScrollAnimationFrame","cancelScrollAnimationFrame","scrollTimeout","clearScrollTimeout","auotHideMoveTimeout","clearAutoHideTimeout","auotHideTimeout","clearAutoTimeout","et","Xt","Qt","Nt","Ut","styleHorizontal","styleVertical","styleScrollbarPosition","manageScrollbarsAutoHide","removeAutoHide","delayless","hide","onHostMouseEnter","scrollbarsSetupState","structureUpdateHints","Tt","zt","At","currStructureSetupState","xt","themeChanged","visibilityChanged","autoHideChanged","dragScrollChanged","clickScrollChanged","updateHandle","updateVisibility","setScrollbarVisibility","isVisible","xVisible","yVisible","hasCorner","targets","targetInstanceMap","addInstance","osInstance","removeInstance","getInstance","OverlayScrollbars","eventListeners","F","addEnvListener","plugins","targetIsElement","instanceTarget","potentialInstance","optionsValidationPlugin","validateOptions","opts","validate","currentOptions","structureState","destroyStructure","updateScrollbars","scrollbarsState","destroyScrollbars","removeEnvListener","canceled","instance","Et","directionRTL","translateScrollbarStructure","translateScrollbarsSetupElement","scrollbarsSetupElement","Jt","Kt","translatedStructure","scrollEventElement","scrollbarHorizontal","scrollbarVertical","pluginInstance","sizeChanged","hostMutation","N","U","q","G","scrollbarsSize","scrollbarsOverlaid","scrollbarsHiding","cssCustomProperties","getDefaultInitialization","setDefaultInitialization","getDefaultOptions","setDefaultOptions"],"mappings":"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"} \ No newline at end of file diff --git a/packages/overlayscrollbars/dist/overlayscrollbars.esm.min.js b/packages/overlayscrollbars/dist/overlayscrollbars.esm.min.js index 253746d..e65df20 100644 --- a/packages/overlayscrollbars/dist/overlayscrollbars.esm.min.js +++ b/packages/overlayscrollbars/dist/overlayscrollbars.esm.min.js @@ -1 +1 @@ -function t(e,n){if(w(e))for(let t=0;tn(e[t],t,e)));return e}function e(e,n){const o=d(n);if(p(n)||o){let t=o?"":{};if(e){const r=window.getComputedStyle(e,null);t=o?yt(e,r,n):n.reduce(((t,n)=>(t[n]=yt(e,r,n),t)),t)}return t}e&&t(L(n),(t=>mt(e,t,n[t])))}const n=(t,e)=>{const{o:n,u:o,_:r}=t;let i,s=n;const l=(t,e)=>{const n=s,l=t,c=e||(o?!o(n,l):n!==l);return(c||r)&&(s=l,i=n),[s,c,i]};return[e?t=>l(e(s,i),t):l,t=>[s,!!t,i]]},o=Node.ELEMENT_NODE,{toString:r,hasOwnProperty:i}=Object.prototype,s=t=>void 0===t,l=t=>null===t,c=t=>s(t)||l(t)?`${t}`:r.call(t).replace(/^\[object (.+)\]$/,"$1").toLowerCase(),a=t=>"number"==typeof t,d=t=>"string"==typeof t,u=t=>"boolean"==typeof t,h=t=>"function"==typeof t,p=t=>Array.isArray(t),f=t=>"object"==typeof t&&!p(t)&&!l(t),w=t=>{const e=!!t&&t.length,n=a(e)&&e>-1&&e%1==0;return!(!(p(t)||!h(t)&&n)||e>0&&f(t)&&!(e-1 in t))},g=t=>{if(!t||!f(t)||"object"!==c(t))return!1;let e;const n="constructor",o=t[n],r=o&&o.prototype,l=i.call(t,n),a=r&&i.call(r,"isPrototypeOf");if(o&&!l&&!a)return!1;for(e in t);return s(e)||i.call(t,e)},b=t=>{const e=HTMLElement;return!!t&&(e?t instanceof e:t.nodeType===o)},v=t=>{const e=Element;return!!t&&(e?t instanceof e:t.nodeType===o)},y=(t,e,n)=>t.indexOf(e,n),m=(t,e,n)=>(n||d(e)||!w(e)?t.push(e):Array.prototype.push.apply(t,e),t),x=e=>{const n=Array.from,o=[];return n&&e?n(e):(e instanceof Set?e.forEach((t=>{m(o,t)})):t(e,(t=>{m(o,t)})),o)},$=t=>!!t&&0===t.length,O=(e,n,o)=>{t(e,(t=>t&&t.apply(void 0,n||[]))),!o&&(e.length=0)},S=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),L=t=>t?Object.keys(t):[],C=(e,n,o,r,i,s,c)=>{const a=[n,o,r,i,s,c];return"object"==typeof e&&!l(e)||h(e)||(e={}),t(a,(n=>{t(L(n),(t=>{const o=n[t];if(e===o)return!0;const r=p(o);if(o&&(g(o)||r)){const n=e[t];let i=n;r&&!p(n)?i=[]:r||g(n)||(i={}),e[t]=C(i,o)}else e[t]=o}))})),e},P=t=>{for(const e in t)return!1;return!0},M=(t,e,n,o)=>{if(s(o))return n?n[t]:e;n&&!l(o)&&!1!==o&&(n[t]=o)},T=(t,e,n)=>{if(s(n))return t?t.getAttribute(e):null;t&&t.setAttribute(e,n)},E=(t,e,n,o)=>{if(n){const r=T(t,e)||"",i=new Set(r.split(" "));i[o?"add":"delete"](n),T(t,e,x(i).join(" ").trim())}},R=(t,e)=>{t&&t.removeAttribute(e)},D=(t,e)=>M("scrollLeft",0,t,e),z=(t,e)=>M("scrollTop",0,t,e),I=Element.prototype,A=(t,e)=>{const n=[],o=e?v(e)?e:null:document;return o?m(n,o.querySelectorAll(t)):n},B=(t,e)=>!!v(t)&&(I.matches||I.msMatchesSelector).call(t,e),k=t=>t?x(t.childNodes):[],H=t=>t?t.parentElement:null,Y=(t,e)=>{if(v(t)){const n=I.closest;if(n)return n.call(t,e);do{if(B(t,e))return t;t=H(t)}while(t)}return null},X=(e,n,o)=>{if(o){let r,i=n;e&&(w(o)?(r=document.createDocumentFragment(),t(o,(t=>{t===i&&(i=t.previousSibling),r.appendChild(t)}))):r=o,n&&(i?i!==n&&(i=i.nextSibling):i=e.firstChild),e.insertBefore(r,i||null))}},V=(t,e)=>{X(t,null,e)},j=(t,e)=>{X(H(t),t&&t.nextSibling,e)},F=e=>{if(w(e))t(x(e),(t=>F(t)));else if(e){const t=H(e);t&&t.removeChild(e)}},_=t=>{const e=document.createElement("div");return t&&T(e,"class",t),e},N=e=>{const n=_();return n.innerHTML=e.trim(),t(k(n),(t=>F(t)))},Z=t=>t.charAt(0).toUpperCase()+t.slice(1),W=["-webkit-","-moz-","-o-","-ms-"],G=["WebKit","Moz","O","MS","webkit","moz","o","ms"],K={},q={},J=e=>{let n=q[e];if(S(q,e))return n;const o=Z(e),r=_().style;return t(W,(t=>{const i=t.replace(/-/g,""),s=[e,t+e,i+o,Z(i)+o];return!(n=s.find((t=>void 0!==r[t])))})),q[e]=n||""},U=e=>{let n=K[e]||window[e];return S(K,e)||(t(G,(t=>(n=n||window[t+Z(e)],!n))),K[e]=n),n},Q=U("MutationObserver"),tt=U("IntersectionObserver"),et=U("ResizeObserver"),nt=U("cancelAnimationFrame"),ot=U("requestAnimationFrame"),rt=window.setTimeout,it=window.clearTimeout,st=/[^\x20\t\r\n\f]+/g,lt=(t,e,n)=>{const o=t&&t.classList;let r,i=0,s=!1;if(o&&e&&d(e)){const t=e.match(st)||[];for(s=t.length>0;r=t[i++];)s=!!n(o,r)&&s}return s},ct=(t,e)=>{lt(t,e,((t,e)=>t.remove(e)))},at=(t,e)=>(lt(t,e,((t,e)=>t.add(e))),ct.bind(0,t,e)),dt=(e,n,o,r)=>{if(e&&n){let i=!0;return t(o,(t=>{(r?r(e[t]):e[t])!==(r?r(n[t]):n[t])&&(i=!1)})),i}return!1},ut=(t,e)=>dt(t,e,["w","h"]),ht=(t,e)=>dt(t,e,["x","y"]),pt=(t,e)=>dt(t,e,["t","r","b","l"]),ft=(t,e,n)=>dt(t,e,["width","height"],n&&(t=>Math.round(t))),wt=()=>{},gt=(t,e)=>{let n,o,r,i=wt;const{g:s,v:l,p:c}=e||{},d=function(e){i(),it(n),n=o=void 0,i=wt,t.apply(this,e)},u=t=>c&&o?c(o,t):t,p=()=>{i!==wt&&d(u(r)||r)},f=function(){const t=x(arguments),e=h(s)?s():s,c=a(e)&&e>=0;if(c){const s=h(l)?l():l,c=a(s)&&s>=0,f=e>0?rt:ot,w=e>0?it:nt,g=u(t)||t,b=d.bind(0,g);i();const v=f(b,e);i=()=>w(v),c&&!n&&(n=rt(p,s)),o=r=g}else d(t)};return f.m=p,f},bt={opacity:1,zindex:1},vt=(t,e)=>{const n=e?parseFloat(t):parseInt(t,10);return n==n?n:0},yt=(t,e,n)=>null!=e?e[n]||e.getPropertyValue(n):t.style[n],mt=(t,e,n)=>{try{const{style:o}=t;s(o[e])?o.setProperty(e,n):o[e]=((t,e)=>!bt[t.toLowerCase()]&&a(e)?`${e}px`:e)(e,n)}catch(I){}},xt=t=>"rtl"===e(t,"direction"),$t=(t,n,o)=>{const r=n?`${n}-`:"",i=o?`-${o}`:"",s=`${r}top${i}`,l=`${r}right${i}`,c=`${r}bottom${i}`,a=`${r}left${i}`,d=e(t,[s,l,c,a]);return{t:vt(d[s]),r:vt(d[l]),b:vt(d[c]),l:vt(d[a])}},Ot={w:0,h:0},St=t=>t?{w:t.offsetWidth,h:t.offsetHeight}:Ot,Lt=t=>t?{w:t.clientWidth,h:t.clientHeight}:Ot,Ct=t=>t?{w:t.scrollWidth,h:t.scrollHeight}:Ot,Pt=t=>{const n=parseFloat(e(t,"height"))||0,o=parseFloat(e(t,"height"))||0;return{w:o-Math.round(o),h:n-Math.round(n)}},Mt=t=>t.getBoundingClientRect();let Tt;const Et=t=>t.split(" "),Rt=(e,n,o,r)=>{t(Et(n),(t=>{e.removeEventListener(t,o,r)}))},Dt=(e,n,o,r)=>{var i;const l=(()=>{if(s(Tt)){Tt=!1;try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get(){Tt=!0}}))}catch(e){}}return Tt})(),c=null!=(i=l&&r&&r.S)?i:l,a=r&&r.$||!1,d=r&&r.C||!1,u=[],h=l?{passive:c,capture:a}:a;return t(Et(n),(t=>{const n=d?r=>{e.removeEventListener(t,n,a),o&&o(r)}:o;m(u,Rt.bind(null,e,t,n,a)),e.addEventListener(t,n,h)})),O.bind(0,u)},zt=t=>t.stopPropagation(),It={x:0,y:0},At=t=>{const e=t?Mt(t):0;return e?{x:e.left+window.pageYOffset,y:e.top+window.pageXOffset}:It},Bt=(e,n)=>{t(p(n)?n:[n],e)},kt=e=>{const n=new Map,o=(t,e)=>{if(t){const o=n.get(t);Bt((t=>{o&&o[t?"delete":"clear"](t)}),e)}else n.forEach((t=>{t.clear()})),n.clear()},r=(t,e)=>{const r=n.get(t)||new Set;return n.set(t,r),Bt((t=>{t&&r.add(t)}),e),o.bind(0,t,e)};return t(L(e),(t=>{r(t,e[t])})),[r,o,(e,o)=>{const r=n.get(e);t(x(r),(t=>{o&&!$(o)?t.apply(0,o):t()}))}]},Ht=(t,e)=>t?e.split(".").reduce(((t,e)=>t&&S(t,e)?t[e]:void 0),t):void 0,Yt=(t,e,n)=>o=>[Ht(t,o),n||void 0!==Ht(e,o)],Xt=t=>{let e=t;return[()=>e,t=>{e=C({},e,t)}]},Vt="os-environment",jt=`${Vt}-flexbox-glue`,Ft=`${jt}-max`,_t="data-overlayscrollbars",Nt=`${_t}-overflow-x`,Zt=`${_t}-overflow-y`,Wt="overflowVisible",Gt="scrollbarHidden",Kt="updating",qt="os-padding",Jt="os-viewport",Ut=`${Jt}-arrange`,Qt="os-content",te=`${Jt}-scrollbar-hidden`,ee=`os-overflow-visible`,ne="os-size-observer",oe=`${ne}-appear`,re=`${ne}-listener`,ie=`${re}-scroll`,se=`${re}-item`,le=`${se}-final`,ce="os-trinsic-observer",ae="os-scrollbar",de=`${ae}-rtl`,ue=`${ae}-horizontal`,he=`${ae}-vertical`,pe=`${ae}-track`,fe=`${ae}-handle`,we=`${ae}-visible`,ge=`${ae}-cornerless`,be=`${ae}-transitionless`,ve=`${ae}-interaction`,ye=`${ae}-unusable`,me=`${ae}-auto-hidden`,xe=`${pe}-interactive`,$e=`${fe}-interactive`,Oe=t=>JSON.stringify(t,((t,e)=>{if(h(e))throw new Error;return e})),Se={paddingAbsolute:!1,showNativeOverlaidScrollbars:!1,updating:{elementEvents:[["img","load"]],debounce:[0,33],attributes:null,ignoreMutation:null},overflow:{x:"scroll",y:"scroll"},scrollbars:{theme:"os-theme-dark",visibility:"auto",autoHide:"never",autoHideDelay:800,dragScroll:!0,clickScroll:!1,pointers:["mouse","touch","pen"]}},Le=(e,n)=>{const o={};return t(L(n).concat(L(e)),(t=>{const r=e[t],i=n[t];if(f(r)&&f(i))C(o[t]={},Le(r,i));else if(S(n,t)&&i!==r){let e=!0;if(p(r)||p(i))try{Oe(r)===Oe(i)&&(e=!1)}catch(K){}e&&(o[t]=i)}})),o},Ce={},Pe=()=>C({},Ce),Me="__osOptionsValidationPlugin",Te=3333333,Ee="scroll",Re="__osSizeObserverPlugin",De={[Re]:{O:(t,n,o)=>{const r=N(`
`);V(t,r),at(t,ie);const i=r[0],s=i.lastChild,l=i.firstChild,c=null==l?void 0:l.firstChild;let a,d=St(i),u=d,h=!1;const p=()=>{D(l,Te),z(l,Te),D(s,Te),z(s,Te)},f=t=>{a=0,h&&(d=u,n(!0===t))},w=t=>{u=St(i),h=!t||!ut(u,d),t?(zt(t),h&&!a&&(nt(a),a=ot(f))):f(!1===t),p()},g=m([],[Dt(l,Ee,w),Dt(s,Ee,w)]);return e(c,{width:Te,height:Te}),ot(p),[o?w.bind(0,!1):p,g]}}};let ze=0;const{round:Ie,abs:Ae}=Math,Be="__osScrollbarsHidingPlugin",ke={[Be]:{A:t=>{const{T:e,I:n,L:o}=t,r=!(o||e||!n.x&&!n.y)&&document.createElement("style");return r&&(T(r,"id",`${Ut}-${ze}`),ze++),r},H:(n,o,r,i,s,l,c)=>[(t,o,l,c)=>{if(n){const{P:n}=s(),{D:a,M:d}=t,{x:u,y:h}=d,{x:p,y:f}=a,w=n[c?"paddingRight":"paddingLeft"],g=n.paddingTop,b=o.w+l.w,v=o.h+l.h,y={w:f&&h?`${f+b-w}px`:"",h:p&&u?`${p+v-g}px`:""};if(i){const{sheet:t}=i;if(t){const{cssRules:e}=t;if(e){e.length||t.insertRule(`#${T(i,"id")} + .${Ut}::before {}`,0);const n=e[0].style;n.width=y.w,n.height=y.h}}}else e(r,{"--os-vaw":y.w,"--os-vah":y.h})}return n},(i,a,d)=>{if(n){const u=d||l(i),{P:h}=s(),{M:p}=u,{x:f,y:w}=p,g={},b=e=>t(e.split(" "),(t=>{g[t]=h[t]}));f&&b("marginBottom paddingTop paddingBottom"),w&&b("marginLeft marginRight paddingLeft paddingRight");const v=e(r,L(g));return ct(r,Ut),o||(g.height=""),e(r,g),[()=>{c(u,a,n,v),e(r,v),at(r,Ut)},u]}return[wt]}],R:()=>{let t={w:0,h:0},e=0;return(n,o,r)=>{const i={w:window.innerWidth,h:window.innerHeight},s={w:i.w-t.w,h:i.h-t.h};if(0===s.w&&0===s.h)return;const l=Ae(s.w),c=Ae(s.h),a={w:Ae(Ie(i.w/(t.w/100))),h:Ae(Ie(i.h/(t.h/100)))},d=(()=>{const t=window.screen.deviceXDPI||0,e=window.screen.logicalXDPI||1;return window.devicePixelRatio||t/e})(),u=l>2&&c>2,h=!((t,e)=>{const n=Ae(t),o=Ae(e);return!(n===o||n+1===o||n-1===o)})(a.w,a.h);if(u&&h&&d!==e&&d>0){const[t,e]=o();C(n.k,t),e&&r()}t=i,e=d}}}};let He;const Ye=(t,e,n,o)=>{V(t,e);const r=Lt(e),i=St(e),s=Pt(n);return o&&F(e),{x:i.h-r.h+s.h,y:i.w-r.w+s.w}},Xe=(t,n)=>{const o="hidden";e(t,{overflowX:o,overflowY:o,direction:"rtl"}),D(t,0);const r=At(t),i=At(n);D(t,-999);const s=At(n);return{i:r.x===i.x,n:i.x!==s.x}},Ve=(t,e)=>{const n=at(t,jt),o=Mt(t),r=Mt(e),i=ft(r,o,!0),s=at(t,Ft),l=Mt(t),c=Mt(e),a=ft(c,l,!0);return n(),s(),i&&a},je=()=>(He||(He=(()=>{const{body:t}=document,o=N(`
`)[0],r=o.firstChild,[i,,s]=kt(),[l,c]=n({o:Ye(t,o,r),u:ht},Ye.bind(0,t,o,r,!0)),[a]=c(),d=(t=>{let n=!1;const o=at(t,te);try{n="none"===e(t,J("scrollbar-width"))||"none"===window.getComputedStyle(t,"::-webkit-scrollbar").getPropertyValue("display")}catch(r){}return o(),n})(o),u={x:0===a.x,y:0===a.y},h={host:null,padding:!d,viewport:t=>d&&t===t.ownerDocument.body&&t,content:!1,scrollbarsSlot:!0,cancel:{nativeScrollbarsOverlaid:!0,body:null}},p=C({},Se),f={k:a,I:u,T:d,L:"-1"===e(o,"zIndex"),B:Xe(o,r),V:Ve(o,r),j:t=>i("_",t),Y:C.bind(0,{},h),q(t){C(h,t)},F:C.bind(0,{},p),G(t){C(p,t)},N:C({},h),U:C({},p)};if(R(o,"style"),F(o),!(d||u.x&&u.y)){let t;window.addEventListener("resize",(()=>{const e=Pe()[Be];t=t||e&&e.R(),t&&t(f,l,s.bind(0,"_"))}))}return f})()),He),Fe=(t,e)=>h(t)?t.apply(0,e):t,_e=(t,e,n,o)=>{const r=s(o)?n:o;return Fe(r,t)||e()},Ne=(t,e,n,o)=>{const r=s(o)?n:o,i=Fe(r,t);return!!i&&(b(i)?i:e())},Ze=_.bind(0,""),We=t=>{V(H(t),k(t)),F(t)},Ge=t=>{const e=je(),{Y:n,T:o}=e,r=Pe()[Be],i=r&&r.A,{host:s,viewport:l,padding:c,content:a}=n(),d=b(t),u=d?{}:t,{host:h,padding:p,viewport:f,content:w}=u,g=d?t:u.target,v=B(g,"textarea"),x=g.ownerDocument,$=g===x.body,S=x.defaultView,C=_e.bind(0,[g]),P=Ne.bind(0,[g]),M=C(Ze,l,f),D=M===g,z={J:g,K:v?C(Ze,s,h):g,Z:M,tt:!D&&P(Ze,c,p),nt:!D&&P(Ze,a,w),ot:!D&&!o&&i&&i(e),st:$?x.documentElement:M,et:$?x:M,ct:S,rt:x,it:v,W:$,lt:d,X:D,ut:(t,e)=>D?((t,e,n)=>{const o=T(t,_t)||"";return new Set(o.split(" ")).has(n)})(M,0,e):((t,e)=>lt(t,e,((t,e)=>t.contains(e))))(M,t),dt:(t,e,n)=>D?E(M,_t,e,n):(n?at:ct)(M,t)},I=L(z).reduce(((t,e)=>{const n=z[e];return m(t,!(!n||H(n))&&n)}),[]),A=t=>t?y(I,t)>-1:null,{J:Y,K:_,tt:N,Z,nt:W,ot:G}=z,K=[],q=v&&A(_),J=v?Y:k([W,Z,N,_,Y].find((t=>!1===A(t)))),U=W||Z;return[z,()=>{const t=((t,e)=>(T(t,_t,e),R.bind(0,t,_t)))(_,D?"viewport":"host"),e=at(N,qt),n=at(Z,!D&&Jt),r=at(W,Qt),i=$?at(H(g),te):wt;q&&(j(Y,_),m(K,(()=>{j(_,Y),F(_)}))),V(U,J),V(_,N),V(N||_,!D&&Z),V(Z,W),m(K,(()=>{i(),t(),R(Z,Nt),R(Z,Zt),A(W)&&We(W),A(Z)&&We(Z),A(N)&&We(N),e(),n(),r()})),o&&!D&&m(K,ct.bind(0,Z,te)),G&&(((t,e)=>{X(H(t),t,e)})(Z,G),m(K,F.bind(0,G)))},O.bind(0,K)]},Ke=(t,n)=>{const{nt:o}=t,[r]=n;return t=>{const{V:n}=je(),{ft:i}=r(),{_t:s}=t,l=(o||!n)&&s;return l&&e(o,{height:i?"":"100%"}),{ht:l,gt:l}}},qe=(t,o)=>{const[r,i]=o,{K:s,tt:l,Z:c,X:a}=t,[d,u]=n({u:pt,o:$t()},$t.bind(0,s,"padding",""));return(t,n,o)=>{let[s,h]=u(o);const{T:p,V:f}=je(),{vt:w}=r(),{ht:g,gt:b,wt:v}=t,[y,m]=n("paddingAbsolute");(g||h||!f&&b)&&([s,h]=d(o));const x=!a&&(m||v||h);if(x){const t=!y||!l&&!p,n=s.r+s.l,o=s.t+s.b,r={marginRight:t&&!w?-n:0,marginBottom:t?-o:0,marginLeft:t&&w?-n:0,top:t?-s.t:0,right:t?w?-s.r:"auto":0,left:t?w?"auto":-s.l:0,width:t?`calc(100% + ${n}px)`:""},a={paddingTop:t?s.t:0,paddingRight:t?s.r:0,paddingBottom:t?s.b:0,paddingLeft:t?s.l:0};e(l||c,r),e(c,a),i({tt:s,bt:!t,P:l?a:C({},r,a)})}return{yt:x}}},{max:Je}=Math,Ue=Je.bind(0,0),Qe="visible",tn="hidden",en=42,nn={u:ut,o:{w:0,h:0}},on={u:ht,o:{x:tn,y:tn}},rn=(t,e,n)=>n?at(t,e):ct(t,e),sn=t=>0===t.indexOf(Qe),ln=(t,o)=>{const[r,i]=o,{K:s,tt:l,Z:c,ot:a,X:d,dt:u}=t,{k:h,V:p,T:f,I:w}=je(),g=Pe()[Be],b=!d&&!f&&(w.x||w.y),[v,y]=n(nn,Pt.bind(0,c)),[m,x]=n(nn,Ct.bind(0,c)),[$,O]=n(nn),[S,L]=n(nn),[C]=n(on),P=(t,n)=>{if(e(c,{height:""}),n){const{bt:n,tt:o}=r(),{St:i,D:l}=t,a=Pt(s),d=Lt(s),u="content-box"===e(c,"boxSizing"),h=n||u?o.b+o.t:0,p=!(w.x&&u);e(c,{height:d.h+a.h+(i.x&&p?l.x:0)-h})}},M=(t,n)=>{const o=f||t?0:en,r=(t,r,i)=>{const s=e(c,t),l="scroll"===(n?n[t]:s);return[s,l,l&&!f?r?o:i:0,r&&!!o]},[i,s,l,a]=r("overflowX",w.x,h.x),[d,u,p,g]=r("overflowY",w.y,h.y);return{xt:{x:i,y:d},St:{x:s,y:u},D:{x:l,y:p},M:{x:a,y:g}}},R=(t,e,n,o)=>{const{D:i,M:s}=t,{x:l,y:c}=s,{x:a,y:d}=i,{P:u}=r(),h=e?"marginLeft":"marginRight",p=e?"paddingLeft":"paddingRight",f=u[h],w=u.marginBottom,g=u[p],b=u.paddingBottom;o.width=`calc(100% + ${d+-1*f}px)`,o[h]=-d+f,o.marginBottom=-a+w,n&&(o[p]=g+(c?d:0),o.paddingBottom=b+(l?a:0))},[D,z]=g?g.H(b,p,c,a,r,M,R):[()=>b,()=>[wt]];return(t,n,o)=>{const{ht:a,$t:h,gt:g,yt:b,_t:I,wt:A}=t,{ft:B,vt:k}=r(),[H,Y]=n("showNativeOverlaidScrollbars"),[X,V]=n("overflow"),j=H&&w.x&&w.y,F=!d&&!p&&(a||g||h||Y||I),_=sn(X.x),N=sn(X.y),Z=_||N;let W,G=y(o),K=x(o),q=O(o),J=L(o);if(Y&&f&&u(te,Gt,!j),F&&(W=M(j),P(W,B)),a||b||g||A||Y){Z&&u(ee,Wt,!1);const[t,e]=z(j,k,W),[n,r]=G=v(o),[i,s]=K=m(o),l=Lt(c);let a=i,d=l;t(),(s||r||Y)&&e&&!j&&D(e,i,n,k)&&(d=Lt(c),a=Ct(c));const h={w:Ue(Je(i.w,a.w)+n.w),h:Ue(Je(i.h,a.h)+n.h)},p={w:Ue(d.w+Ue(l.w-i.w)+n.w),h:Ue(d.h+Ue(l.h-i.h)+n.h)};J=S(p),q=$(((t,e)=>{const n=window.devicePixelRatio%1!=0?1:0,o={w:Ue(t.w-e.w),h:Ue(t.h-e.h)};return{w:o.w>n?o.w:0,h:o.h>n?o.h:0}})(h,p),o)}const[U,Q]=J,[tt,et]=q,[nt,ot]=K,[rt,it]=G,st={x:tt.w>0,y:tt.h>0},lt=_&&N&&(st.x||st.y)||_&&st.x&&!st.y||N&&st.y&&!st.x;if(b||A||it||ot||Q||et||V||Y||F){const t={marginRight:0,marginBottom:0,marginLeft:0,width:"",overflowY:"",overflowX:""},n=((t,e,n,o)=>{const r=(t,e)=>{const n=sn(t),o=e&&n&&t.replace(`${Qe}-`,"")||"";return[e&&!n?t:"",sn(o)?"hidden":o]},[i,s]=r(n.x,e.x),[l,c]=r(n.y,e.y);return o.overflowX=s&&l?s:i,o.overflowY=c&&i?c:l,M(t,o)})(j,st,X,t),o=D(n,nt,rt,k);d||R(n,k,o,t),F&&P(n,B),d?(T(s,Nt,t.overflowX),T(s,Zt,t.overflowY)):e(c,t)}E(s,_t,Wt,lt),rn(l,ee,lt),!d&&rn(c,ee,Z);const[ct,at]=C(M(j).xt);return i({xt:ct,Ct:{x:U.w,y:U.h},Ot:{x:tt.w,y:tt.h},At:st}),{Tt:at,It:Q,zt:et}}},cn=(e,n,o)=>{const r={},i=n||{};return t(L(e).concat(L(i)),(t=>{const n=e[t],s=i[t];r[t]=!!(o||n||s)})),r},an=3333333,dn=t=>t&&(t.height||t.width),un=(t,e,o)=>{const{Et:r=!1,Lt:i=!1}=o||{},s=Pe()[Re],{B:l}=je(),c=N(`
`)[0],a=c.firstChild,d=xt.bind(0,t),[h]=n({o:void 0,_:!0,u:(t,e)=>!(!t||!dn(t)&&dn(e))}),w=t=>{const n=p(t)&&t.length>0&&f(t[0]),o=!n&&u(t[0]);let i=!1,s=!1,a=!0;if(n){const[e,,n]=h(t.pop().contentRect),o=dn(e),r=dn(n);i=!n||!o,s=!r&&o,a=!i}else o?[,a]=t:s=!0===t;if(r&&a){const e=o?t[0]:xt(c);D(c,e?l.n?-an:l.i?0:an:an),z(c,an)}i||e({ht:!o,Ht:o?t:void 0,Lt:!!s})},g=[];let b=!!i&&w;return[()=>{O(g),F(c)},()=>{if(et){const t=new et(w);t.observe(a),m(g,(()=>{t.disconnect()}))}else if(s){const[t,e]=s.O(a,w,i);b=t,m(g,e)}if(r){const[t]=n({o:!d()},d);m(g,Dt(c,"scroll",(e=>{const n=t(),[o,r]=n;r&&(ct(a,"ltr rtl"),at(a,o?"rtl":"ltr"),w(n)),zt(e)})))}b&&(at(c,oe),m(g,Dt(c,"animationstart",b,{C:!!et}))),V(t,c)}]},hn=(t,e)=>{let o;const r=_(ce),i=[],[s]=n({o:!1}),l=(t,n)=>{if(t){const o=s((t=>0===t.h||t.isIntersecting||t.intersectionRatio>0)(t)),[,r]=o;if(r)return!n&&e(o),[o]}},c=(t,e)=>{if(t&&t.length>0)return l(t.pop(),e)};return[()=>{O(i),F(r)},()=>{if(tt)o=new tt((t=>c(t)),{root:t}),o.observe(r),m(i,(()=>{o.disconnect()}));else{const t=()=>{const t=St(r);l(t)},[e,n]=un(r,t);m(i,e),n(),t()}V(t,r)},()=>{if(o)return c(o.takeRecords(),!0)}]},pn=(e,n,o,r)=>{let i=!1;const{Pt:s,Dt:l,Mt:c,Rt:a,kt:u,Bt:h}=r||{},p=gt((()=>{i&&o(!0)}),{g:33,v:99}),[f,w]=((e,n,o)=>{let r,i=!1;const s=s=>{if(o){const l=o.reduce(((t,n)=>{if(n){const o=n[0],r=n[1],i=r&&o&&(s?s(o):A(o,e));i&&i.length&&r&&d(r)&&m(t,[i,r.trim()],!0)}return t}),[]);t(l,(e=>t(e[0],(t=>{const o=e[1],s=r.get(t);if(s){const t=s[0],e=s[1];t===o&&e()}const l=Dt(t,o,(e=>{i?(l(),r.delete(t)):n(e)}));r.set(t,[o,l])}))))}};return o&&(r=new WeakMap,s()),[()=>{i=!0},s]})(e,p,c),g=l||[],b=(s||[]).concat(g),v=(i,s)=>{const l=u||wt,c=h||wt,p=[],f=[];let b=!1,v=!1,x=!1;return t(i,(t=>{const{attributeName:o,target:i,type:s,oldValue:u,addedNodes:h}=t,w="attributes"===s,$="childList"===s,O=e===i,S=w&&d(o)?T(i,o):0,L=0!==S&&u!==S,C=y(g,o)>-1&&L;if(n&&!O){const n=!w,s=w&&C,d=s&&a&&B(i,a),p=(d?!l(i,o,u,S):n||s)&&!c(t,!!d,e,r);m(f,h),v=v||p,x=x||$}!n&&O&&L&&!l(i,o,u,S)&&(m(p,o),b=b||C)})),x&&!$(f)&&w((t=>f.reduce(((e,n)=>(m(e,A(t,n)),B(n,t)?m(e,n):e)),[]))),n?(!s&&v&&o(!1),[!1]):!$(p)||b?(!s&&o(p,b),[p,b]):void 0},x=new Q((t=>v(t)));return x.observe(e,{attributes:!0,attributeOldValue:!0,attributeFilter:b,subtree:n,childList:n,characterData:n}),i=!0,[()=>{i&&(f(),x.disconnect(),i=!1)},()=>{if(i){p.m();const t=x.takeRecords();return!$(t)&&v(t,!0)}}]},fn=`[${_t}]`,wn=`.${Jt}`,gn=["tabindex"],bn=["wrap","cols","rows"],vn=["id","class","style","open"],yn=(e,o,r)=>{let i,s,l;const[,c]=o,{K:u,Z:f,nt:w,it:g,X:b,ut:x,dt:$}=e,{V:O}=je(),[S]=n({u:ut,o:{w:0,h:0}},(()=>{const t=x(ee,Wt),e=x(Ut,""),n=e&&D(f),o=e&&z(f);$(ee,Wt),$(Ut,""),$("",Kt,!0);const r=Ct(w),i=Ct(f),s=Pt(f);return $(ee,Wt,t),$(Ut,"",e),$("",Kt),D(f,n),z(f,o),{w:i.w+r.w+s.w,h:i.h+r.h+s.h}})),P=g?bn:vn.concat(bn),M=gt(r,{g:()=>i,v:()=>s,p(t,e){const[n]=t,[o]=e;return[L(n).concat(L(o)).reduce(((t,e)=>(t[e]=n[e]||o[e],t)),{})]}}),E=e=>{t(e||gn,(t=>{if(y(gn,t)>-1){const e=T(u,t);d(e)?T(f,t,e):R(f,t)}}))},I=(t,e)=>{const[n,o]=t,i={_t:o};return c({ft:n}),!e&&r(i),i},A=({ht:t,Ht:e,Lt:n})=>{const o=!t||n?r:M;let i=!1;if(e){const[t,n]=e;i=n,c({vt:t})}o({ht:t,wt:i})},B=(t,e)=>{const[,n]=S(),o={gt:n};return n&&!e&&(t?r:M)(o),o},k=(t,e,n)=>{const o={$t:e};return e?!n&&M(o):b||E(t),o},[H,X,V]=w||!O?hn(u,I):[wt,wt,wt],[j,F]=b?[wt,wt]:un(u,A,{Lt:!0,Et:!0}),[_,N]=pn(u,!1,k,{Dt:vn,Pt:vn.concat(gn)}),Z=b&&et&&new et(A.bind(0,{ht:!0}));return Z&&Z.observe(u),E(),[()=>{H(),j(),l&&l[0](),Z&&Z.disconnect(),_()},()=>{F(),X()},()=>{const t={},e=N(),n=V(),o=l&&l[1]();return e&&C(t,k.apply(0,m(e,!0))),n&&C(t,I.apply(0,m(n,!0))),o&&C(t,B.apply(0,m(o,!0))),t},t=>{const[e]=t("updating.ignoreMutation"),[n,o]=t("updating.attributes"),[r,c]=t("updating.elementEvents"),[d,u]=t("updating.debounce"),g=t=>h(e)&&e(t);if((c||o)&&(l&&(l[1](),l[0]()),l=pn(w||f,!0,B,{Dt:P.concat(n||[]),Pt:P.concat(n||[]),Mt:r,Rt:fn,Bt:(t,e)=>{const{target:n,attributeName:o}=t;return!(e||!o)&&((t,e,n)=>{const o=t&&Y(t,e),r=t&&((t,e)=>{const n=e?v(e)?e:null:document;return n?n.querySelector(t):null})(n,o);return!(!o||!r||o!==t&&r!==t&&Y(Y(t,n),e)===o)})(n,fn,wn)||!!Y(n,`.${ae}`)||!!g(t)}})),u)if(M.m(),p(d)){const t=d[0],e=d[1];i=!!a(t)&&t,s=!!a(e)&&e}else a(d)?(i=d,s=!1):(i=!1,s=!1)}]},mn={x:0,y:0},xn={tt:{t:0,r:0,b:0,l:0},bt:!1,P:{marginRight:0,marginBottom:0,marginLeft:0,paddingTop:0,paddingRight:0,paddingBottom:0,paddingLeft:0},Ct:mn,Ot:mn,xt:{x:"hidden",y:"hidden"},At:{x:!1,y:!1},ft:!1,vt:!1},{round:$n}=Math,On=t=>({x:t.clientX,y:t.clientY}),Sn=(t,e)=>Dt(t,"mousedown",Dt.bind(0,e,"click",zt,{C:!0,$:!0}),{$:!0}),Ln=(t,e,n,o,r,i)=>{const{B:s}=je(),{qt:l,Ft:c,Gt:a}=n,d=`scroll${i?"Left":"Top"}`,u=`${i?"x":"y"}`,h=`${i?"w":"h"}`,p=(t,e,n)=>p=>{const{Ot:f}=r(),w=(On(p)[u]-e)*n/(St(c)[h]-St(l)[h])*f[u],g=xt(a)&&i?s.n||s.i?1:-1:1;o[d]=t+w*g};return Dt(l,"pointerdown",(n=>{if(((t,e,n)=>{const o=e.scrollbars,{button:r,isPrimary:i,pointerType:s}=t,{pointers:l}=o;return 0===r&&i&&o["dragScroll"]&&(l||[]).includes(s)})(n,t)){const t=Dt(e,"selectstart",(t=>(t=>t.preventDefault())(t)),{S:!1}),r=Dt(l,"pointermove",p(o[d]||0,On(n)[u],1/(t=>{const{width:e,height:n}=Mt(t),{w:o,h:r}=St(t);return{x:$n(e)/o||1,y:$n(n)/r||1}})(o)[u]));Dt(l,"pointerup",(e=>{t(),r(),l.releasePointerCapture(e.pointerId)}),{C:!0}),l.setPointerCapture(n.pointerId)}}))},{min:Cn,max:Pn,abs:Mn,round:Tn}=Math,En=(t,e,n,o)=>{if(o){const t=n?"x":"y",{Ot:e,Ct:r}=o,i=r[t],s=e[t];return Pn(0,Cn(1,i/(i+s)))}const r=n?"w":"h",i=St(t)[r],s=St(e)[r];return Pn(0,Cn(1,i/s))},Rn=(n,o,r)=>{const{Y:i}=je(),{scrollbarsSlot:s}=i(),{rt:l,J:c,K:a,Z:d,lt:h,st:p}=o,{scrollbarsSlot:f}=h?{}:n,w=Ne([c,a,d],(()=>a),s,f),g=(e,n,o)=>{const r=o?at:ct;t(e,(t=>{r(t.Gt,n)}))},b=(n,o)=>{t(n,(t=>{const[n,r]=o(t);e(n,r)}))},v=(t,e,n)=>{b(t,(t=>{const{qt:o,Ft:r}=t;return[o,{[n?"width":"height"]:`${(100*En(o,r,n,e)).toFixed(5)}%`}]}))},y=(t,e,n)=>{const o=n?"X":"Y";b(t,(t=>{const{qt:r,Ft:i,Gt:s}=t,l=((t,e,n,o,r,i)=>{const{B:s}=je(),l=i?"x":"y",c=i?"Left":"Top",{Ot:a}=o,d=Tn(a[l]),u=Mn(n[`scroll${c}`]),h=i&&r,p=s.i?u:d-u,f=Cn(1,(h?p:u)/d),w=En(t,e,i);return 1/w*(1-w)*f})(r,i,p,e,xt(s),n);return[r,{transform:l==l?`translate${o}(${(100*l).toFixed(5)}%)`:""}]}))},x=[],S=[],L=[],C=(t,e,n)=>{const o=u(n),r=!o||!n;(!o||n)&&g(S,t,e),r&&g(L,t,e)},P=t=>{const e=t?ue:he,n=t?S:L,o=$(n)?be:"",i=_(`${ae} ${e} ${o}`),s=_(pe),c=_(fe),a={Gt:i,Ft:s,qt:c};return V(i,s),V(s,c),m(n,a),m(x,[F.bind(0,i),r(a,C,l,p,t)]),a},M=P.bind(0,!0),T=P.bind(0,!1);return M(),T(),[{Nt:t=>{v(S,t,!0),v(L,t)},Ut:t=>{y(S,t,!0),y(L,t)},Wt:C,Xt:{Jt:S,Kt:M,Zt:b.bind(0,S)},Qt:{Jt:L,Kt:T,Zt:b.bind(0,L)}},()=>{V(w,S[0].Gt),V(w,L[0].Gt),rt((()=>{C(be)}),300)},O.bind(0,x)]},Dn=t=>{let e;const n=t?rt:ot,o=t?it:nt;return[r=>{o(e),e=n(r,h(t)?t():t)},()=>o(e)]},zn=new Set,In=new WeakMap,An=(e,n,o)=>{let r=!1;const{F:i,j:c}=je(),a=Pe(),d=b(e),u=d?e:e.target,p=(t=>In.get(t))(u);if(p)return p;const f=a[Me],w=t=>{const e=t||{},n=f&&f.O;return n?n(e,!0):e},g=C({},i(),w(n)),[v,y,m]=kt(o),[x,$,S]=((e,n)=>{const o=Yt(n,{}),r=Xt(xn),[i,s,l]=kt(),[c]=r,[a,d,u]=Ge(e),h=((e,n)=>{const{Z:o,dt:r}=e,{T:i,I:s,V:l}=je(),c=!i&&(s.x||s.y),a=[Ke(e,n),qe(e,n),ln(e,n)];return(e,n,i)=>{const s=cn(C({ht:!1,yt:!1,wt:!1,_t:!1,It:!1,zt:!1,Tt:!1,$t:!1,gt:!1},n),{},i),d=c||!l,u=d&&D(o),h=d&&z(o);r("",Kt,!0);let p=s;return t(a,(t=>{p=cn(p,t(p,e,!!i)||{},i)})),D(o,u),z(o,h),r("",Kt),p}})(a,r),p=(t,e,n)=>{const o=L(t).some((e=>t[e]));(o||!P(e)||n)&&l("u",[t,e,n])},[f,w,g,b]=yn(a,r,(t=>{p(h(o,t),{},!1)})),v=c.bind(0);return v.Vt=t=>{i("u",t)},v.jt=()=>{w(),d()},v.Yt=a,[(t,e)=>{const o=Yt(n,t,e);b(o),p(h(o,g(),e),t,!!e)},v,()=>{s(),f(),u()}]})(e,g),[M,T,E]=((t,e,n)=>{let o,r,i,s,l,c=0;const a=Xt({}),[d]=a,[u,h]=Dn(),[p,f]=Dn(),[w,g]=Dn(100),[b,v]=Dn(100),[y,m]=Dn((()=>c)),[x,$,S]=Rn(t,n.Yt,((t,e)=>(n,o,r,i,s)=>{const{Gt:l}=n;return O.bind(0,[Dt(l,"pointerenter",(()=>{o(ve,!0)})),Dt(l,"pointerleave pointercancel",(()=>{o(ve)})),Sn(l,r),Ln(t,r,n,i,e,s)])})(e,n)),{K:L,Z:C,st:P,et:M,X:T,W:E}=n.Yt,{Xt:R,Qt:I,Wt:A,Nt:B,Ut:k}=x,{Zt:Y}=R,{Zt:X}=I,V=t=>{const{Gt:e}=t,n=T&&!E&&H(e)===C&&e;return[n,{transform:n?`translate(${D(P)}px, ${z(P)}px)`:""}]},j=(t,e)=>{if(m(),t)A(me);else{const t=()=>A(me,!0);c>0&&!e?y(t):t()}},F=()=>{s=r,s&&j(!0)},_=[g,m,v,f,h,S,Dt(L,"pointerover",F,{C:!0}),Dt(L,"pointerenter",F),Dt(L,"pointerleave",(()=>{s=!1,r&&j(!1)})),Dt(L,"pointermove",(()=>{o&&u((()=>{g(),j(!0),b((()=>{o&&j(!1)}))}))})),Dt(M,"scroll",(()=>{p((()=>{k(n()),i&&j(!0),w((()=>{i&&!s&&j(!1)}))})),T&&Y(V),T&&X(V)}))],N=d.bind(0);return N.Yt=x,N.jt=$,[(t,s,a)=>{const{It:d,zt:u,Tt:h,wt:p}=a,f=Yt(e,t,s),w=n(),{Ot:g,xt:b,vt:v}=w,[y,m]=f("scrollbars.theme"),[x,$]=f("scrollbars.visibility"),[O,S]=f("scrollbars.autoHide"),[L]=f("scrollbars.autoHideDelay"),[C,P]=f("scrollbars.dragScroll"),[M,T]=f("scrollbars.clickScroll"),R=d||u||p,D=h||$,z=(t,e)=>{const n="visible"===x||"auto"===x&&"scroll"===t;return A(we,n,e),n};if(c=L,m&&(A(l),A(y,!0),l=y),S&&(o="move"===O,r="leave"===O,i="never"!==O,j(!i,!0)),P&&A($e,C),T&&A(xe,M),D){const t=z(b.x,!0),e=z(b.y,!1);A(ge,!(t&&e))}R&&(B(w),k(w),A(ye,!g.x,!0),A(ye,!g.y,!1),A(de,v&&!E))},N,O.bind(0,_)]})(e,g,$),R=(t,e)=>{x(t,!!e)},I=c(R.bind(0,{},!0)),A=t=>{(t=>{In.delete(t),zn.delete(t)})(u),I(),E(),S(),r=!0,m("destroyed",[B,!!t]),y()},B={options(t){if(t){const e=Le(g,w(t));P(e)||(C(g,e),R(e))}return C({},g)},on:v,off:(t,e)=>{t&&e&&y(t,e)},state(){const{Ct:t,Ot:e,xt:n,At:o,tt:i,bt:s,vt:l}=$();return C({},{overflowEdge:t,overflowAmount:e,overflowStyle:n,hasOverflow:o,padding:i,paddingAbsolute:s,directionRTL:l,destroyed:r})},elements(){const{J:t,K:e,tt:n,Z:o,nt:r}=$.Yt;return C({},{target:t,host:e,padding:n||o,viewport:o,content:r||o})},update:t=>(R({},t),B),destroy:A.bind(0)};return $.Vt(((t,e,n)=>{M(e,n,t)})),t(L(a),(t=>{const e=a[t];h(e)&&e(An,B)})),((t,e)=>{const{nativeScrollbarsOverlaid:n,body:o}=t||{},{W:r,X:i}=e,{Y:c,I:a}=je(),{nativeScrollbarsOverlaid:d,body:u}=c().cancel,h=null!=n?n:d,p=s(o)?u:o,f=(a.x||a.y)&&h,w=r&&(l(p)?!i:p);return!!f||!!w})(!d&&e.cancel,$.Yt)?(A(!0),B):($.jt(),T.jt(),((t,e)=>{In.set(t,e),zn.add(t)})(u,B),m("initialized",[B]),$.Vt(((t,e,n)=>{const{ht:o,wt:r,_t:i,It:s,zt:l,Tt:c,gt:a,$t:d}=t;m("updated",[B,{updateHints:{sizeChanged:o,directionChanged:r,heightIntrinsicChanged:i,overflowEdgeChanged:s,overflowAmountChanged:l,overflowStyleChanged:c,contentMutation:a,hostMutation:d},changedOptions:e,force:n}])})),B.update(!0))};An.plugin=e=>{t(p(e)?e:[e],(e=>{t(L(e),(t=>{Ce[t]=e[t]}))}))},An.env=()=>{const{k:t,I:e,T:n,B:o,V:r,L:i,N:s,U:l,Y:c,q:a,F:d,G:u}=je();return C({},{scrollbarsSize:t,scrollbarsOverlaid:e,scrollbarsHiding:n,rtlScrollBehavior:o,flexboxGlue:r,cssCustomProperties:i,staticDefaultInitialization:s,staticDefaultOptions:l,getDefaultInitialization:c,setDefaultInitialization:a,getDefaultOptions:d,setDefaultOptions:u})};export{An as OverlayScrollbars,ke as scrollbarsHidingPlugin,De as sizeObserverPlugin}; \ No newline at end of file +function t(e,n){if(w(e))for(let t=0;tn(e[t],t,e)));return e}function e(e,n){const r=d(n);if(p(n)||r){let t=r?"":{};if(e){const o=window.getComputedStyle(e,null);t=r?yt(e,o,n):n.reduce(((t,n)=>(t[n]=yt(e,o,n),t)),t)}return t}e&&t(L(n),(t=>mt(e,t,n[t])))}const n=(t,e)=>{const{o:n,u:r,_:o}=t;let i,s=n;const l=(t,e)=>{const n=s,l=t,c=e||(r?!r(n,l):n!==l);return(c||o)&&(s=l,i=n),[s,c,i]};return[e?t=>l(e(s,i),t):l,t=>[s,!!t,i]]},r=Node.ELEMENT_NODE,{toString:o,hasOwnProperty:i}=Object.prototype,s=t=>void 0===t,l=t=>null===t,c=t=>s(t)||l(t)?`${t}`:o.call(t).replace(/^\[object (.+)\]$/,"$1").toLowerCase(),a=t=>"number"==typeof t,d=t=>"string"==typeof t,u=t=>"boolean"==typeof t,h=t=>"function"==typeof t,p=t=>Array.isArray(t),f=t=>"object"==typeof t&&!p(t)&&!l(t),w=t=>{const e=!!t&&t.length,n=a(e)&&e>-1&&e%1==0;return!(!(p(t)||!h(t)&&n)||e>0&&f(t)&&!(e-1 in t))},g=t=>{if(!t||!f(t)||"object"!==c(t))return!1;let e;const n="constructor",r=t[n],o=r&&r.prototype,l=i.call(t,n),a=o&&i.call(o,"isPrototypeOf");if(r&&!l&&!a)return!1;for(e in t);return s(e)||i.call(t,e)},b=t=>{const e=HTMLElement;return!!t&&(e?t instanceof e:t.nodeType===r)},v=t=>{const e=Element;return!!t&&(e?t instanceof e:t.nodeType===r)},y=(t,e,n)=>t.indexOf(e,n),m=(t,e,n)=>(n||d(e)||!w(e)?t.push(e):Array.prototype.push.apply(t,e),t),x=e=>{const n=Array.from,r=[];return n&&e?n(e):(e instanceof Set?e.forEach((t=>{m(r,t)})):t(e,(t=>{m(r,t)})),r)},$=t=>!!t&&0===t.length,O=(e,n,r)=>{t(e,(t=>t&&t.apply(void 0,n||[]))),!r&&(e.length=0)},S=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),L=t=>t?Object.keys(t):[],C=(e,n,r,o,i,s,c)=>{const a=[n,r,o,i,s,c];return"object"==typeof e&&!l(e)||h(e)||(e={}),t(a,(n=>{t(L(n),(t=>{const r=n[t];if(e===r)return!0;const o=p(r);if(r&&(g(r)||o)){const n=e[t];let i=n;o&&!p(n)?i=[]:o||g(n)||(i={}),e[t]=C(i,r)}else e[t]=r}))})),e},E=t=>{for(const e in t)return!1;return!0},P=(t,e,n,r)=>{if(s(r))return n?n[t]:e;n&&!l(r)&&!1!==r&&(n[t]=r)},T=(t,e,n)=>{if(s(n))return t?t.getAttribute(e):null;t&&t.setAttribute(e,n)},M=(t,e,n,r)=>{if(n){const o=T(t,e)||"",i=new Set(o.split(" "));i[r?"add":"delete"](n),T(t,e,x(i).join(" ").trim())}},R=(t,e)=>{t&&t.removeAttribute(e)},z=(t,e)=>P("scrollLeft",0,t,e),D=(t,e)=>P("scrollTop",0,t,e),A=Element.prototype,B=(t,e)=>{const n=[],r=e?v(e)?e:null:document;return r?m(n,r.querySelectorAll(t)):n},H=(t,e)=>!!v(t)&&(A.matches||A.msMatchesSelector).call(t,e),k=t=>t?x(t.childNodes):[],I=t=>t?t.parentElement:null,Y=(t,e)=>{if(v(t)){const n=A.closest;if(n)return n.call(t,e);do{if(H(t,e))return t;t=I(t)}while(t)}return null},X=(e,n,r)=>{if(r&&e){let o,i=n;w(r)?(o=document.createDocumentFragment(),t(r,(t=>{t===i&&(i=t.previousSibling),o.appendChild(t)}))):o=r,n&&(i?i!==n&&(i=i.nextSibling):i=e.firstChild),e.insertBefore(o,i||null)}},V=(t,e)=>{X(t,null,e)},F=(t,e)=>{X(I(t),t&&t.nextSibling,e)},j=e=>{if(w(e))t(x(e),(t=>j(t)));else if(e){const t=I(e);t&&t.removeChild(e)}},_=t=>{const e=document.createElement("div");return t&&T(e,"class",t),e},N=e=>{const n=_();return n.innerHTML=e.trim(),t(k(n),(t=>j(t)))},W=t=>t.charAt(0).toUpperCase()+t.slice(1),Z=["-webkit-","-moz-","-o-","-ms-"],G=["WebKit","Moz","O","MS","webkit","moz","o","ms"],K={},q={},J=e=>{let n=q[e];if(S(q,e))return n;const r=W(e),o=_().style;return t(Z,(t=>{const i=t.replace(/-/g,""),s=[e,t+e,i+r,W(i)+r];return!(n=s.find((t=>void 0!==o[t])))})),q[e]=n||""},U=e=>{let n=K[e]||window[e];return S(K,e)||(t(G,(t=>(n=n||window[t+W(e)],!n))),K[e]=n),n},Q=U("MutationObserver"),tt=U("IntersectionObserver"),et=U("ResizeObserver"),nt=U("cancelAnimationFrame"),rt=U("requestAnimationFrame"),ot=window.setTimeout,it=window.clearTimeout,st=/[^\x20\t\r\n\f]+/g,lt=(t,e,n)=>{const r=t&&t.classList;let o,i=0,s=!1;if(r&&e&&d(e)){const t=e.match(st)||[];for(s=t.length>0;o=t[i++];)s=!!n(r,o)&&s}return s},ct=(t,e)=>{lt(t,e,((t,e)=>t.remove(e)))},at=(t,e)=>(lt(t,e,((t,e)=>t.add(e))),ct.bind(0,t,e)),dt=(e,n,r,o)=>{if(e&&n){let i=!0;return t(r,(t=>{(o?o(e[t]):e[t])!==(o?o(n[t]):n[t])&&(i=!1)})),i}return!1},ut=(t,e)=>dt(t,e,["w","h"]),ht=(t,e)=>dt(t,e,["x","y"]),pt=(t,e)=>dt(t,e,["t","r","b","l"]),ft=(t,e,n)=>dt(t,e,["width","height"],n&&(t=>Math.round(t))),wt=()=>{},gt=(t,e)=>{let n,r,o,i=wt;const{g:s,v:l,p:c}=e||{},d=function(e){i(),it(n),n=r=void 0,i=wt,t.apply(this,e)},u=t=>c&&r?c(r,t):t,p=()=>{i!==wt&&d(u(o)||o)},f=function(){const t=x(arguments),e=h(s)?s():s,c=a(e)&&e>=0;if(c){const s=h(l)?l():l,c=a(s)&&s>=0,f=e>0?ot:rt,w=e>0?it:nt,g=u(t)||t,b=d.bind(0,g);i();const v=f(b,e);i=()=>w(v),c&&!n&&(n=ot(p,s)),r=o=g}else d(t)};return f.m=p,f},bt={opacity:1,zindex:1},vt=(t,e)=>{const n=e?parseFloat(t):parseInt(t,10);return n==n?n:0},yt=(t,e,n)=>null!=e?e[n]||e.getPropertyValue(n):t.style[n],mt=(t,e,n)=>{try{const{style:r}=t;s(r[e])?r.setProperty(e,n):r[e]=((t,e)=>!bt[t.toLowerCase()]&&a(e)?`${e}px`:e)(e,n)}catch(A){}},xt=t=>"rtl"===e(t,"direction"),$t=(t,n,r)=>{const o=n?`${n}-`:"",i=r?`-${r}`:"",s=`${o}top${i}`,l=`${o}right${i}`,c=`${o}bottom${i}`,a=`${o}left${i}`,d=e(t,[s,l,c,a]);return{t:vt(d[s]),r:vt(d[l]),b:vt(d[c]),l:vt(d[a])}},{round:Ot}=Math,St={w:0,h:0},Lt=t=>t?{w:t.offsetWidth,h:t.offsetHeight}:St,Ct=t=>t?{w:t.clientWidth,h:t.clientHeight}:St,Et=t=>t?{w:t.scrollWidth,h:t.scrollHeight}:St,Pt=t=>{const n=parseFloat(e(t,"height"))||0,r=parseFloat(e(t,"width"))||0;return{w:r-Ot(r),h:n-Ot(n)}},Tt=t=>t.getBoundingClientRect();let Mt;const Rt=t=>t.split(" "),zt=(e,n,r,o)=>{t(Rt(n),(t=>{e.removeEventListener(t,r,o)}))},Dt=(e,n,r,o)=>{var i;const l=(()=>{if(s(Mt)){Mt=!1;try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get(){Mt=!0}}))}catch(e){}}return Mt})(),c=null!=(i=l&&o&&o.S)?i:l,a=o&&o.$||!1,d=o&&o.C||!1,u=[],h=l?{passive:c,capture:a}:a;return t(Rt(n),(t=>{const n=d?o=>{e.removeEventListener(t,n,a),r&&r(o)}:r;m(u,zt.bind(null,e,t,n,a)),e.addEventListener(t,n,h)})),O.bind(0,u)},At=t=>t.stopPropagation(),Bt={x:0,y:0},Ht=t=>{const e=t?Tt(t):0;return e?{x:e.left+window.pageYOffset,y:e.top+window.pageXOffset}:Bt},kt=(e,n)=>{t(p(n)?n:[n],e)},It=e=>{const n=new Map,r=(t,e)=>{if(t){const r=n.get(t);kt((t=>{r&&r[t?"delete":"clear"](t)}),e)}else n.forEach((t=>{t.clear()})),n.clear()},o=(t,e)=>{const o=n.get(t)||new Set;return n.set(t,o),kt((t=>{t&&o.add(t)}),e),r.bind(0,t,e)};return t(L(e),(t=>{o(t,e[t])})),[o,r,(e,r)=>{const o=n.get(e);t(x(o),(t=>{r&&!$(r)?t.apply(0,r):t()}))}]},Yt=(t,e)=>t?e.split(".").reduce(((t,e)=>t&&S(t,e)?t[e]:void 0),t):void 0,Xt=(t,e,n)=>r=>[Yt(t,r),n||void 0!==Yt(e,r)],Vt=t=>{let e=t;return[()=>e,t=>{e=C({},e,t)}]},Ft="os-environment",jt=`${Ft}-flexbox-glue`,_t=`${jt}-max`,Nt="data-overlayscrollbars",Wt=`${Nt}-overflow-x`,Zt=`${Nt}-overflow-y`,Gt="overflowVisible",Kt="scrollbarHidden",qt="updating",Jt="os-padding",Ut="os-viewport",Qt=`${Ut}-arrange`,te="os-content",ee=`${Ut}-scrollbar-hidden`,ne=`os-overflow-visible`,re="os-size-observer",oe=`${re}-appear`,ie=`${re}-listener`,se=`${ie}-scroll`,le=`${ie}-item`,ce=`${le}-final`,ae="os-trinsic-observer",de="os-scrollbar",ue=`${de}-rtl`,he=`${de}-horizontal`,pe=`${de}-vertical`,fe=`${de}-track`,we=`${de}-handle`,ge=`${de}-visible`,be=`${de}-cornerless`,ve=`${de}-transitionless`,ye=`${de}-interaction`,me=`${de}-unusable`,xe=`${de}-auto-hidden`,$e=`${fe}-interactive`,Oe=`${we}-interactive`,Se=t=>JSON.stringify(t,((t,e)=>{if(h(e))throw new Error;return e})),Le={paddingAbsolute:!1,showNativeOverlaidScrollbars:!1,updating:{elementEvents:[["img","load"]],debounce:[0,33],attributes:null,ignoreMutation:null},overflow:{x:"scroll",y:"scroll"},scrollbars:{theme:"os-theme-dark",visibility:"auto",autoHide:"never",autoHideDelay:1300,dragScroll:!0,clickScroll:!1,pointers:["mouse","touch","pen"]}},Ce=(e,n)=>{const r={};return t(L(n).concat(L(e)),(t=>{const o=e[t],i=n[t];if(f(o)&&f(i))C(r[t]={},Ce(o,i));else if(S(n,t)&&i!==o){let e=!0;if(p(o)||p(i))try{Se(o)===Se(i)&&(e=!1)}catch(K){}e&&(r[t]=i)}})),r},Ee={},Pe=()=>Ee,Te="__osOptionsValidationPlugin",Me=3333333,Re="scroll",ze="__osSizeObserverPlugin",De={[ze]:{O:(t,n,r)=>{const o=N(`
`);V(t,o),at(t,se);const i=o[0],s=i.lastChild,l=i.firstChild,c=null==l?void 0:l.firstChild;let a,d=Lt(i),u=d,h=!1;const p=()=>{z(l,Me),D(l,Me),z(s,Me),D(s,Me)},f=t=>{a=0,h&&(d=u,n(!0===t))},w=t=>{u=Lt(i),h=!t||!ut(u,d),t?(At(t),h&&!a&&(nt(a),a=rt(f))):f(!1===t),p()},g=m([],[Dt(l,Re,w),Dt(s,Re,w)]);return e(c,{width:Me,height:Me}),rt(p),[r?w.bind(0,!1):p,g]}}};let Ae=0;const{round:Be,abs:He}=Math,ke="__osScrollbarsHidingPlugin",Ie={[ke]:{A:t=>{const{T:e,I:n,L:r}=t,o=!(r||e||!n.x&&!n.y)&&document.createElement("style");return o&&(T(o,"id",`${Qt}-${Ae}`),Ae++),o},H:(n,r,o,i,s,l,c)=>[(t,r,l,c)=>{if(n){const{P:n}=s(),{D:a,M:d}=t,{x:u,y:h}=d,{x:p,y:f}=a,w=n[c?"paddingRight":"paddingLeft"],g=n.paddingTop,b=r.w+l.w,v=r.h+l.h,y={w:f&&h?`${f+b-w}px`:"",h:p&&u?`${p+v-g}px`:""};if(i){const{sheet:t}=i;if(t){const{cssRules:e}=t;if(e){e.length||t.insertRule(`#${T(i,"id")} + .${Qt}::before {}`,0);const n=e[0].style;n.width=y.w,n.height=y.h}}}else e(o,{"--os-vaw":y.w,"--os-vah":y.h})}return n},(i,a,d)=>{if(n){const u=d||l(i),{P:h}=s(),{M:p}=u,{x:f,y:w}=p,g={},b=e=>t(e.split(" "),(t=>{g[t]=h[t]}));f&&b("marginBottom paddingTop paddingBottom"),w&&b("marginLeft marginRight paddingLeft paddingRight");const v=e(o,L(g));return ct(o,Qt),r||(g.height=""),e(o,g),[()=>{c(u,a,n,v),e(o,v),at(o,Qt)},u]}return[wt]}],R:()=>{let t={w:0,h:0},e=0;return(n,r,o)=>{const i={w:window.innerWidth,h:window.innerHeight},s={w:i.w-t.w,h:i.h-t.h};if(0===s.w&&0===s.h)return;const l=He(s.w),c=He(s.h),a={w:He(Be(i.w/(t.w/100))),h:He(Be(i.h/(t.h/100)))},d=(()=>{const t=window.screen.deviceXDPI||0,e=window.screen.logicalXDPI||1;return window.devicePixelRatio||t/e})(),u=l>2&&c>2,h=!((t,e)=>{const n=He(t),r=He(e);return!(n===r||n+1===r||n-1===r)})(a.w,a.h);if(u&&h&&d!==e&&d>0){const[t,e]=r();C(n.k,t),e&&o()}t=i,e=d}}}};let Ye;const Xe=(t,e,n,r)=>{V(t,e);const o=Ct(e),i=Lt(e),s=Pt(n);return r&&j(e),{x:i.h-o.h+s.h,y:i.w-o.w+s.w}},Ve=(t,n)=>{const r="hidden";e(t,{overflowX:r,overflowY:r,direction:"rtl"}),z(t,0);const o=Ht(t),i=Ht(n);z(t,-999);const s=Ht(n);return{i:o.x===i.x,n:i.x!==s.x}},Fe=(t,e)=>{const n=at(t,jt),r=Tt(t),o=Tt(e),i=ft(o,r,!0),s=at(t,_t),l=Tt(t),c=Tt(e),a=ft(c,l,!0);return n(),s(),i&&a},je=()=>(Ye||(Ye=(()=>{const{body:t}=document,r=N(`
`)[0],o=r.firstChild,[i,,s]=It(),[l,c]=n({o:Xe(t,r,o),u:ht},Xe.bind(0,t,r,o,!0)),[a]=c(),d=(t=>{let n=!1;const r=at(t,ee);try{n="none"===e(t,J("scrollbar-width"))||"none"===window.getComputedStyle(t,"::-webkit-scrollbar").getPropertyValue("display")}catch(o){}return r(),n})(r),u={x:0===a.x,y:0===a.y},h={host:null,padding:!d,viewport:t=>d&&t===t.ownerDocument.body&&t,content:!1,scrollbarsSlot:!0,cancel:{nativeScrollbarsOverlaid:!0,body:null}},p=C({},Le),f={k:a,I:u,T:d,L:"-1"===e(r,"zIndex"),B:Ve(r,o),V:Fe(r,o),j:t=>i("_",t),Y:C.bind(0,{},h),q(t){C(h,t)},F:C.bind(0,{},p),G(t){C(p,t)},N:C({},h),U:C({},p)};if(R(r,"style"),j(r),!(d||u.x&&u.y)){let t;window.addEventListener("resize",(()=>{const e=Pe()[ke];t=t||e&&e.R(),t&&t(f,l,s.bind(0,"_"))}))}return f})()),Ye),_e=(t,e)=>h(t)?t.apply(0,e):t,Ne=(t,e,n,r)=>{const o=s(r)?n:r;return _e(o,t)||e()},We=(t,e,n,r)=>{const o=s(r)?n:r,i=_e(o,t);return!!i&&(b(i)?i:e())},Ze=_.bind(0,""),Ge=t=>{V(I(t),k(t)),j(t)},Ke=t=>{const e=je(),{Y:n,T:r}=e,o=Pe()[ke],i=o&&o.A,{host:s,viewport:l,padding:c,content:a}=n(),d=b(t),u=d?{}:t,{host:h,padding:p,viewport:f,content:w}=u,g=d?t:u.target,v=H(g,"textarea"),x=g.ownerDocument,$=g===x.body,S=x.defaultView,C=Ne.bind(0,[g]),E=We.bind(0,[g]),P=C(Ze,l,f),z=P===g,D=z&&$,A={J:g,K:v?C(Ze,s,h):g,Z:P,tt:!z&&E(Ze,c,p),nt:!z&&E(Ze,a,w),ot:!z&&!r&&i&&i(e),st:D?x.documentElement:P,et:D?x:P,ct:S,rt:x,it:v,W:$,lt:d,X:z,ut:(t,e)=>z?((t,e,n)=>{const r=T(t,Nt)||"";return new Set(r.split(" ")).has(n)})(P,0,e):((t,e)=>lt(t,e,((t,e)=>t.contains(e))))(P,t),dt:(t,e,n)=>z?M(P,Nt,e,n):(n?at:ct)(P,t)},B=L(A).reduce(((t,e)=>{const n=A[e];return m(t,!(!n||I(n))&&n)}),[]),Y=t=>t?y(B,t)>-1:null,{J:_,K:N,tt:W,Z,nt:G,ot:K}=A,q=[],J=v&&Y(N),U=v?_:k([G,Z,W,N,_].find((t=>!1===Y(t)))),Q=G||Z;return[A,()=>{const t=((t,e)=>(T(t,Nt,e),R.bind(0,t,Nt)))(N,z?"viewport":"host"),e=at(W,Jt),n=at(Z,!z&&Ut),o=at(G,te),i=D?at(I(g),ee):wt;J&&(F(_,N),m(q,(()=>{F(N,_),j(N)}))),V(Q,U),V(N,W),V(W||N,!z&&Z),V(Z,G),m(q,(()=>{i(),t(),R(Z,Wt),R(Z,Zt),Y(G)&&Ge(G),Y(Z)&&Ge(Z),Y(W)&&Ge(W),e(),n(),o()})),r&&!z&&m(q,ct.bind(0,Z,ee)),K&&(((t,e)=>{X(I(t),t,e)})(Z,K),m(q,j.bind(0,K)))},O.bind(0,q)]},qe=(t,n)=>{const{nt:r}=t,[o]=n;return t=>{const{V:n}=je(),{ft:i}=o(),{_t:s}=t,l=(r||!n)&&s;return l&&e(r,{height:i?"":"100%"}),{ht:l,gt:l}}},Je=(t,r)=>{const[o,i]=r,{K:s,tt:l,Z:c,X:a}=t,[d,u]=n({u:pt,o:$t()},$t.bind(0,s,"padding",""));return(t,n,r)=>{let[s,h]=u(r);const{T:p,V:f}=je(),{vt:w}=o(),{ht:g,gt:b,wt:v}=t,[y,m]=n("paddingAbsolute");(g||h||!f&&b)&&([s,h]=d(r));const x=!a&&(m||v||h);if(x){const t=!y||!l&&!p,n=s.r+s.l,r=s.t+s.b,o={marginRight:t&&!w?-n:0,marginBottom:t?-r:0,marginLeft:t&&w?-n:0,top:t?-s.t:0,right:t?w?-s.r:"auto":0,left:t?w?"auto":-s.l:0,width:t?`calc(100% + ${n}px)`:""},a={paddingTop:t?s.t:0,paddingRight:t?s.r:0,paddingBottom:t?s.b:0,paddingLeft:t?s.l:0};e(l||c,o),e(c,a),i({tt:s,bt:!t,P:l?a:C({},o,a)})}return{yt:x}}},{max:Ue}=Math,Qe=Ue.bind(0,0),tn="visible",en="hidden",nn=42,rn={u:ut,o:{w:0,h:0}},on={u:ht,o:{x:en,y:en}},sn=(t,e,n)=>n?at(t,e):ct(t,e),ln=t=>0===t.indexOf(tn),cn=(t,r)=>{const[o,i]=r,{K:s,tt:l,Z:c,ot:a,X:d,dt:u,W:h,ct:p}=t,{k:f,V:w,T:g,I:b}=je(),v=Pe()[ke],y=!d&&!g&&(b.x||b.y),m=h&&d,[x,$]=n(rn,Pt.bind(0,c)),[O,S]=n(rn,Et.bind(0,c)),[L,C]=n(rn),[E,P]=n(rn),[R]=n(on),z=(t,n)=>{if(e(c,{height:""}),n){const{bt:n,tt:r}=o(),{St:i,D:l}=t,a=Pt(s),d=Ct(s),u="content-box"===e(c,"boxSizing"),h=n||u?r.b+r.t:0,p=!(b.x&&u);e(c,{height:d.h+a.h+(i.x&&p?l.x:0)-h})}},D=(t,n)=>{const r=g||t?0:nn,o=(t,o,i)=>{const s=e(c,t),l="scroll"===(n?n[t]:s);return[s,l,l&&!g?o?r:i:0,o&&!!r]},[i,s,l,a]=o("overflowX",b.x,f.x),[d,u,h,p]=o("overflowY",b.y,f.y);return{xt:{x:i,y:d},St:{x:s,y:u},D:{x:l,y:h},M:{x:a,y:p}}},A=(t,e,n,r)=>{const{D:i,M:s}=t,{x:l,y:c}=s,{x:a,y:d}=i,{P:u}=o(),h=e?"marginLeft":"marginRight",p=e?"paddingLeft":"paddingRight",f=u[h],w=u.marginBottom,g=u[p],b=u.paddingBottom;r.width=`calc(100% + ${d+-1*f}px)`,r[h]=-d+f,r.marginBottom=-a+w,n&&(r[p]=g+(c?d:0),r.paddingBottom=b+(l?a:0))},[B,H]=v?v.H(y,w,c,a,o,D,A):[()=>y,()=>[wt]];return(t,n,r)=>{const{ht:a,$t:h,gt:f,yt:v,_t:y,wt:k}=t,{ft:I,vt:Y}=o(),[X,V]=n("showNativeOverlaidScrollbars"),[F,j]=n("overflow"),_=X&&b.x&&b.y,N=!d&&!w&&(a||f||h||V||y),W=ln(F.x),Z=ln(F.y),G=W||Z;let K,q=$(r),J=S(r),U=C(r),Q=P(r);if(V&&g&&u(ee,Kt,!_),N&&(K=D(_),z(K,I)),a||v||f||k||V){G&&u(ne,Gt,!1);const[t,e]=H(_,Y,K),[n,o]=q=x(r),[i,s]=J=O(r),l=Ct(c);let a=i,d=l;t(),(s||o||V)&&e&&!_&&B(e,i,n,Y)&&(d=Ct(c),a=Et(c));const h={w:Qe(Ue(i.w,a.w)+n.w),h:Qe(Ue(i.h,a.h)+n.h)},f={w:Qe(m?p.innerWidth:d.w+Qe(l.w-i.w)+n.w),h:Qe(m?p.innerHeight:d.h+Qe(l.h-i.h)+n.h)};Q=E(f),U=L(((t,e)=>{const n=window.devicePixelRatio%1!=0?1:0,r={w:Qe(t.w-e.w),h:Qe(t.h-e.h)};return{w:r.w>n?r.w:0,h:r.h>n?r.h:0}})(h,f),r)}const[tt,et]=Q,[nt,rt]=U,[ot,it]=J,[st,lt]=q,ct={x:nt.w>0,y:nt.h>0},at=W&&Z&&(ct.x||ct.y)||W&&ct.x&&!ct.y||Z&&ct.y&&!ct.x;if(v||k||lt||it||et||rt||j||V||N){const t={marginRight:0,marginBottom:0,marginLeft:0,width:"",overflowY:"",overflowX:""},n=((t,e,n,r)=>{const o=(t,e)=>{const n=ln(t),r=e&&n&&t.replace(`${tn}-`,"")||"";return[e&&!n?t:"",ln(r)?"hidden":r]},[i,s]=o(n.x,e.x),[l,c]=o(n.y,e.y);return r.overflowX=s&&l?s:i,r.overflowY=c&&i?c:l,D(t,r)})(_,ct,F,t),r=B(n,ot,st,Y);d||A(n,Y,r,t),N&&z(n,I),d?(T(s,Wt,t.overflowX),T(s,Zt,t.overflowY)):e(c,t)}M(s,Nt,Gt,at),sn(l,ne,at),!d&&sn(c,ne,G);const[dt,ut]=R(D(_).xt);return i({xt:dt,Ct:{x:tt.w,y:tt.h},Ot:{x:nt.w,y:nt.h},Et:ct}),{At:ut,Tt:et,zt:rt}}},an=(e,n,r)=>{const o={},i=n||{};return t(L(e).concat(L(i)),(t=>{const n=e[t],s=i[t];o[t]=!!(r||n||s)})),o},dn=3333333,un=t=>t&&(t.height||t.width),hn=(t,e,r)=>{const{It:o=!1,Lt:i=!1}=r||{},s=Pe()[ze],{B:l}=je(),c=N(`
`)[0],a=c.firstChild,d=xt.bind(0,t),[h]=n({o:void 0,_:!0,u:(t,e)=>!(!t||!un(t)&&un(e))}),w=t=>{const n=p(t)&&t.length>0&&f(t[0]),r=!n&&u(t[0]);let i=!1,s=!1,a=!0;if(n){const[e,,n]=h(t.pop().contentRect),r=un(e),o=un(n);i=!n||!r,s=!o&&r,a=!i}else r?[,a]=t:s=!0===t;if(o&&a){const e=r?t[0]:xt(c);z(c,e?l.n?-dn:l.i?0:dn:dn),D(c,dn)}i||e({ht:!r,Ht:r?t:void 0,Lt:!!s})},g=[];let b=!!i&&w;return[()=>{O(g),j(c)},()=>{if(et){const t=new et(w);t.observe(a),m(g,(()=>{t.disconnect()}))}else if(s){const[t,e]=s.O(a,w,i);b=t,m(g,e)}if(o){const[t]=n({o:!d()},d);m(g,Dt(c,"scroll",(e=>{const n=t(),[r,o]=n;o&&(ct(a,"ltr rtl"),at(a,r?"rtl":"ltr"),w(n)),At(e)})))}b&&(at(c,oe),m(g,Dt(c,"animationstart",b,{C:!!et}))),V(t,c)}]},pn=(t,e)=>{let r;const o=_(ae),i=[],[s]=n({o:!1}),l=(t,n)=>{if(t){const r=s((t=>0===t.h||t.isIntersecting||t.intersectionRatio>0)(t)),[,o]=r;if(o)return!n&&e(r),[r]}},c=(t,e)=>{if(t&&t.length>0)return l(t.pop(),e)};return[()=>{O(i),j(o)},()=>{if(tt)r=new tt((t=>c(t)),{root:t}),r.observe(o),m(i,(()=>{r.disconnect()}));else{const t=()=>{const t=Lt(o);l(t)},[e,n]=hn(o,t);m(i,e),n(),t()}V(t,o)},()=>{if(r)return c(r.takeRecords(),!0)}]},fn=(e,n,r,o)=>{let i=!1;const{Pt:s,Dt:l,Mt:c,Rt:a,kt:u,Bt:h}=o||{},p=gt((()=>{i&&r(!0)}),{g:33,v:99}),[f,w]=((e,n,r)=>{let o,i=!1;const s=s=>{if(r){const l=r.reduce(((t,n)=>{if(n){const r=n[0],o=n[1],i=o&&r&&(s?s(r):B(r,e));i&&i.length&&o&&d(o)&&m(t,[i,o.trim()],!0)}return t}),[]);t(l,(e=>t(e[0],(t=>{const r=e[1],s=o.get(t);if(s){const t=s[0],e=s[1];t===r&&e()}const l=Dt(t,r,(e=>{i?(l(),o.delete(t)):n(e)}));o.set(t,[r,l])}))))}};return r&&(o=new WeakMap,s()),[()=>{i=!0},s]})(e,p,c),g=l||[],b=(s||[]).concat(g),v=(i,s)=>{const l=u||wt,c=h||wt,p=[],f=[];let b=!1,v=!1,x=!1;return t(i,(t=>{const{attributeName:r,target:i,type:s,oldValue:u,addedNodes:h}=t,w="attributes"===s,$="childList"===s,O=e===i,S=w&&d(r)?T(i,r):0,L=0!==S&&u!==S,C=y(g,r)>-1&&L;if(n&&!O){const n=!w,s=w&&C,d=s&&a&&H(i,a),p=(d?!l(i,r,u,S):n||s)&&!c(t,!!d,e,o);m(f,h),v=v||p,x=x||$}!n&&O&&L&&!l(i,r,u,S)&&(m(p,r),b=b||C)})),x&&!$(f)&&w((t=>f.reduce(((e,n)=>(m(e,B(t,n)),H(n,t)?m(e,n):e)),[]))),n?(!s&&v&&r(!1),[!1]):!$(p)||b?(!s&&r(p,b),[p,b]):void 0},x=new Q((t=>v(t)));return x.observe(e,{attributes:!0,attributeOldValue:!0,attributeFilter:b,subtree:n,childList:n,characterData:n}),i=!0,[()=>{i&&(f(),x.disconnect(),i=!1)},()=>{if(i){p.m();const t=x.takeRecords();return!$(t)&&v(t,!0)}}]},wn=`[${Nt}]`,gn=`.${Ut}`,bn=["tabindex"],vn=["wrap","cols","rows"],yn=["id","class","style","open"],mn=(e,r,o)=>{let i,s,l;const[,c]=r,{K:u,Z:f,nt:w,it:g,X:b,ut:x,dt:$}=e,{V:O}=je(),[S]=n({u:ut,o:{w:0,h:0}},(()=>{const t=x(ne,Gt),e=x(Qt,""),n=e&&z(f),r=e&&D(f);$(ne,Gt),$(Qt,""),$("",qt,!0);const o=Et(w),i=Et(f),s=Pt(f);return $(ne,Gt,t),$(Qt,"",e),$("",qt),z(f,n),D(f,r),{w:i.w+o.w+s.w,h:i.h+o.h+s.h}})),E=g?vn:yn.concat(vn),P=gt(o,{g:()=>i,v:()=>s,p(t,e){const[n]=t,[r]=e;return[L(n).concat(L(r)).reduce(((t,e)=>(t[e]=n[e]||r[e],t)),{})]}}),M=e=>{t(e||bn,(t=>{if(y(bn,t)>-1){const e=T(u,t);d(e)?T(f,t,e):R(f,t)}}))},A=(t,e)=>{const[n,r]=t,i={_t:r};return c({ft:n}),!e&&o(i),i},B=({ht:t,Ht:e,Lt:n})=>{const r=!t||n?o:P;let i=!1;if(e){const[t,n]=e;i=n,c({vt:t})}r({ht:t,wt:i})},H=(t,e)=>{const[,n]=S(),r={gt:n};return n&&!e&&(t?o:P)(r),r},k=(t,e,n)=>{const r={$t:e};return e?!n&&P(r):b||M(t),r},[I,X,V]=w||!O?pn(u,A):[wt,wt,wt],[F,j]=b?[wt,wt]:hn(u,B,{Lt:!0,It:!0}),[_,N]=fn(u,!1,k,{Dt:yn,Pt:yn.concat(bn)}),W=b&&et&&new et(B.bind(0,{ht:!0}));return W&&W.observe(u),M(),[()=>{I(),F(),l&&l[0](),W&&W.disconnect(),_()},()=>{j(),X()},()=>{const t={},e=N(),n=V(),r=l&&l[1]();return e&&C(t,k.apply(0,m(e,!0))),n&&C(t,A.apply(0,m(n,!0))),r&&C(t,H.apply(0,m(r,!0))),t},t=>{const[e]=t("updating.ignoreMutation"),[n,r]=t("updating.attributes"),[o,c]=t("updating.elementEvents"),[d,u]=t("updating.debounce"),g=t=>h(e)&&e(t);if((c||r)&&(l&&(l[1](),l[0]()),l=fn(w||f,!0,H,{Dt:E.concat(n||[]),Pt:E.concat(n||[]),Mt:o,Rt:wn,Bt:(t,e)=>{const{target:n,attributeName:r}=t;return!(e||!r||b)&&((t,e,n)=>{const r=t&&Y(t,e),o=t&&((t,e)=>{const n=e?v(e)?e:null:document;return n?n.querySelector(t):null})(n,r),i=Y(o,e)===r;return!(!r||!o)&&(r===t||o===t||i&&Y(Y(t,n),e)!==r)})(n,wn,gn)||!!Y(n,`.${de}`)||!!g(t)}})),u)if(P.m(),p(d)){const t=d[0],e=d[1];i=!!a(t)&&t,s=!!a(e)&&e}else a(d)?(i=d,s=!1):(i=!1,s=!1)}]},xn={x:0,y:0},$n={tt:{t:0,r:0,b:0,l:0},bt:!1,P:{marginRight:0,marginBottom:0,marginLeft:0,paddingTop:0,paddingRight:0,paddingBottom:0,paddingLeft:0},Ct:xn,Ot:xn,xt:{x:"hidden",y:"hidden"},Et:{x:!1,y:!1},ft:!1,vt:!1},{round:On}=Math,Sn=t=>({x:t.clientX,y:t.clientY}),Ln=(t,e)=>Dt(t,"mousedown",Dt.bind(0,e,"click",At,{C:!0,$:!0}),{$:!0}),Cn=(t,e,n,r,o,i)=>{const{B:s}=je(),{qt:l,Ft:c,Gt:a}=n,d=`scroll${i?"Left":"Top"}`,u=`${i?"x":"y"}`,h=`${i?"w":"h"}`,p=(t,e,n)=>p=>{const{Ot:f}=o(),w=(Sn(p)[u]-e)*n/(Lt(c)[h]-Lt(l)[h])*f[u],g=xt(a)&&i?s.n||s.i?1:-1:1;r[d]=t+w*g};return Dt(l,"pointerdown",(n=>{if(((t,e,n)=>{const r=e.scrollbars,{button:o,isPrimary:i,pointerType:s}=t,{pointers:l}=r;return 0===o&&i&&r["dragScroll"]&&(l||[]).includes(s)})(n,t)){const t=Dt(e,"selectstart",(t=>(t=>t.preventDefault())(t)),{S:!1}),o=Dt(l,"pointermove",p(r[d]||0,Sn(n)[u],1/(t=>{const{width:e,height:n}=Tt(t),{w:r,h:o}=Lt(t);return{x:On(e)/r||1,y:On(n)/o||1}})(r)[u]));Dt(l,"pointerup",(e=>{t(),o(),l.releasePointerCapture(e.pointerId)}),{C:!0}),l.setPointerCapture(n.pointerId)}}))},{min:En,max:Pn,abs:Tn,round:Mn}=Math,Rn=(t,e,n,r)=>{if(r){const t=n?"x":"y",{Ot:e,Ct:o}=r,i=o[t],s=e[t];return Pn(0,En(1,i/(i+s)))}const o=n?"w":"h",i=Lt(t)[o],s=Lt(e)[o];return Pn(0,En(1,i/s))},zn=(n,r,o)=>{const{Y:i}=je(),{scrollbarsSlot:s}=i(),{rt:l,J:c,K:a,Z:d,lt:h,st:p}=r,{scrollbarsSlot:f}=h?{}:n,w=We([c,a,d],(()=>a),s,f),g=(e,n,r)=>{const o=r?at:ct;t(e,(t=>{o(t.Gt,n)}))},b=(n,r)=>{t(n,(t=>{const[n,o]=r(t);e(n,o)}))},v=(t,e,n)=>{b(t,(t=>{const{qt:r,Ft:o}=t;return[r,{[n?"width":"height"]:`${(100*Rn(r,o,n,e)).toFixed(3)}%`}]}))},y=(t,e,n)=>{const r=n?"X":"Y";b(t,(t=>{const{qt:o,Ft:i,Gt:s}=t,l=((t,e,n,r,o,i)=>{const{B:s}=je(),l=i?"x":"y",c=i?"Left":"Top",{Ot:a}=r,d=Mn(a[l]),u=Tn(n[`scroll${c}`]),h=i&&o,p=s.i?u:d-u,f=En(1,(h?p:u)/d),w=Rn(t,e,i);return 1/w*(1-w)*f})(o,i,p,e,xt(s),n);return[o,{transform:l==l?`translate${r}(${(100*l).toFixed(3)}%)`:""}]}))},x=[],S=[],L=[],C=(t,e,n)=>{const r=u(n),o=!r||!n;(!r||n)&&g(S,t,e),o&&g(L,t,e)},E=t=>{const e=t?he:pe,n=t?S:L,r=$(n)?ve:"",i=_(`${de} ${e} ${r}`),s=_(fe),c=_(we),a={Gt:i,Ft:s,qt:c};return V(i,s),V(s,c),m(n,a),m(x,[j.bind(0,i),o(a,C,l,p,t)]),a},P=E.bind(0,!0),T=E.bind(0,!1);return P(),T(),[{Nt:t=>{v(S,t,!0),v(L,t)},Ut:t=>{y(S,t,!0),y(L,t)},Wt:C,Xt:{Jt:S,Kt:P,Zt:b.bind(0,S)},Qt:{Jt:L,Kt:T,Zt:b.bind(0,L)}},()=>{V(w,S[0].Gt),V(w,L[0].Gt),ot((()=>{C(ve)}),300)},O.bind(0,x)]},Dn=t=>{let e;const n=t?ot:rt,r=t?it:nt;return[o=>{r(e),e=n(o,h(t)?t():t)},()=>r(e)]},An=new Set,Bn=new WeakMap,Hn=(e,n,r)=>{let o=!1;const{F:i,j:c}=je(),a=Pe(),d=b(e),u=d?e:e.target,p=(t=>Bn.get(t))(u);if(p)return p;const f=a[Te],w=t=>{const e=t||{},n=f&&f.O;return n?n(e,!0):e},g=C({},i(),w(n)),[v,y,m]=It(r),[x,$,S]=((e,n)=>{const r=Xt(n,{}),o=Vt($n),[i,s,l]=It(),[c]=o,[a,d,u]=Ke(e),h=((e,n)=>{const{Z:r,dt:o}=e,{T:i,I:s,V:l}=je(),c=!i&&(s.x||s.y),a=[qe(e,n),Je(e,n),cn(e,n)];return(e,n,i)=>{const s=an(C({ht:!1,yt:!1,wt:!1,_t:!1,Tt:!1,zt:!1,At:!1,$t:!1,gt:!1},n),{},i),d=c||!l,u=d&&z(r),h=d&&D(r);o("",qt,!0);let p=s;return t(a,(t=>{p=an(p,t(p,e,!!i)||{},i)})),z(r,u),D(r,h),o("",qt),p}})(a,o),p=(t,e,n)=>{const r=L(t).some((e=>t[e]));(r||!E(e)||n)&&l("u",[t,e,n])},[f,w,g,b]=mn(a,o,(t=>{p(h(r,t),{},!1)})),v=c.bind(0);return v.Vt=t=>{i("u",t)},v.jt=()=>{w(),d()},v.Yt=a,[(t,e)=>{const r=Xt(n,t,e);b(r),p(h(r,g(),e),t,!!e)},v,()=>{s(),f(),u()}]})(e,g),[P,T,M]=((t,e,n)=>{let r,o,i,s,l,c=0;const a=Vt({}),[d]=a,[u,h]=Dn(),[p,f]=Dn(),[w,g]=Dn(100),[b,v]=Dn(100),[y,m]=Dn((()=>c)),[x,$,S]=zn(t,n.Yt,((t,e)=>(n,r,o,i,s)=>{const{Gt:l}=n;return O.bind(0,[Dt(l,"pointerenter",(()=>{r(ye,!0)})),Dt(l,"pointerleave pointercancel",(()=>{r(ye)})),Ln(l,o),Cn(t,o,n,i,e,s)])})(e,n)),{K:L,Z:C,st:E,et:P,X:T,W:M}=n.Yt,{Xt:R,Qt:A,Wt:B,Nt:H,Ut:k}=x,{Zt:Y}=R,{Zt:X}=A,V=t=>{const{Gt:e}=t,n=T&&!M&&I(e)===C&&e;return[n,{transform:n?`translate(${z(E)}px, ${D(E)}px)`:""}]},F=(t,e)=>{if(m(),t)B(xe);else{const t=()=>B(xe,!0);c>0&&!e?y(t):t()}},j=()=>{s=o,s&&F(!0)},_=[g,m,v,f,h,S,Dt(L,"pointerover",j,{C:!0}),Dt(L,"pointerenter",j),Dt(L,"pointerleave",(()=>{s=!1,o&&F(!1)})),Dt(L,"pointermove",(()=>{r&&u((()=>{g(),F(!0),b((()=>{r&&F(!1)}))}))})),Dt(P,"scroll",(()=>{p((()=>{k(n()),i&&F(!0),w((()=>{i&&!s&&F(!1)}))})),T&&Y(V),T&&X(V)}))],N=d.bind(0);return N.Yt=x,N.jt=$,[(t,s,a)=>{const{Tt:d,zt:u,At:h,wt:p}=a,f=Xt(e,t,s),w=n(),{Ot:g,xt:b,vt:v}=w,[y,m]=f("scrollbars.theme"),[x,$]=f("scrollbars.visibility"),[O,S]=f("scrollbars.autoHide"),[L]=f("scrollbars.autoHideDelay"),[C,E]=f("scrollbars.dragScroll"),[P,T]=f("scrollbars.clickScroll"),R=d||u||p||s,z=h||$||s,D=(t,e)=>{const n="visible"===x||"auto"===x&&"scroll"===t;return B(ge,n,e),n};if(c=L,m&&(B(l),B(y,!0),l=y),S&&(r="move"===O,o="leave"===O,i="never"!==O,F(!i,!0)),E&&B(Oe,C),T&&B($e,P),z){const t=D(b.x,!0),e=D(b.y,!1);B(be,!(t&&e))}R&&(H(w),k(w),B(me,!g.x,!0),B(me,!g.y,!1),B(ue,v&&!M))},N,O.bind(0,_)]})(e,g,$),R=(t,e)=>{x(t,!!e)},A=c(R.bind(0,{},!0)),B=t=>{(t=>{Bn.delete(t),An.delete(t)})(u),A(),M(),S(),o=!0,m("destroyed",[H,!!t]),y()},H={options(t){if(t){const e=Ce(g,w(t));E(e)||(C(g,e),R(e))}return C({},g)},on:v,off:(t,e)=>{t&&e&&y(t,e)},state(){const{Ct:t,Ot:e,xt:n,Et:r,tt:i,bt:s,vt:l}=$();return C({},{overflowEdge:t,overflowAmount:e,overflowStyle:n,hasOverflow:r,padding:i,paddingAbsolute:s,directionRTL:l,destroyed:o})},elements(){const{J:t,K:e,tt:n,Z:r,nt:o,st:i,et:s}=$.Yt,{Xt:l,Qt:c}=T.Yt,a=t=>{const{qt:e,Ft:n,Gt:r}=t;return{scrollbar:r,track:n,handle:e}},d=t=>{const{Jt:e,Kt:n}=t,r=a(e[0]);return C({},r,{clone:()=>{const t=a(n());return P({},!0,{}),t}})};return C({},{target:t,host:e,padding:n||r,viewport:r,content:o||r,scrollOffsetElement:i,scrollEventElement:s,scrollbarHorizontal:d(l),scrollbarVertical:d(c)})},update:t=>(R({},t),H),destroy:B.bind(0)};return $.Vt(((t,e,n)=>{P(e,n,t)})),t(L(a),(t=>{const e=a[t];h(e)&&e(Hn,H)})),((t,e)=>{const{nativeScrollbarsOverlaid:n,body:r}=t||{},{W:o,X:i}=e,{Y:c,I:a}=je(),{nativeScrollbarsOverlaid:d,body:u}=c().cancel,h=null!=n?n:d,p=s(r)?u:r,f=(a.x||a.y)&&h,w=o&&(l(p)?!i:p);return!!f||!!w})(!d&&e.cancel,$.Yt)?(B(!0),H):($.jt(),T.jt(),((t,e)=>{Bn.set(t,e),An.add(t)})(u,H),m("initialized",[H]),$.Vt(((t,e,n)=>{const{ht:r,wt:o,_t:i,Tt:s,zt:l,At:c,gt:a,$t:d}=t;m("updated",[H,{updateHints:{sizeChanged:r,directionChanged:o,heightIntrinsicChanged:i,overflowEdgeChanged:s,overflowAmountChanged:l,overflowStyleChanged:c,contentMutation:a,hostMutation:d},changedOptions:e,force:n}])})),H.update(!0))};Hn.plugin=e=>{t(p(e)?e:[e],(t=>{const e=L(t)[0];Ee[e]=t[e]}))},Hn.env=()=>{const{k:t,I:e,T:n,B:r,V:o,L:i,N:s,U:l,Y:c,q:a,F:d,G:u}=je();return C({},{scrollbarsSize:t,scrollbarsOverlaid:e,scrollbarsHiding:n,rtlScrollBehavior:r,flexboxGlue:o,cssCustomProperties:i,staticDefaultInitialization:s,staticDefaultOptions:l,getDefaultInitialization:c,setDefaultInitialization:a,getDefaultOptions:d,setDefaultOptions:u})};export{Hn as OverlayScrollbars,Ie as scrollbarsHidingPlugin,De as sizeObserverPlugin}; \ No newline at end of file diff --git a/packages/overlayscrollbars/dist/overlayscrollbars.js b/packages/overlayscrollbars/dist/overlayscrollbars.js index a2f4df7..e504e99 100644 --- a/packages/overlayscrollbars/dist/overlayscrollbars.js +++ b/packages/overlayscrollbars/dist/overlayscrollbars.js @@ -110,11 +110,11 @@ for (a in r) {} return v(a) || i.call(r, a); }; - var w = function isHTMLElement(r) { + var b = function isHTMLElement(r) { var a = HTMLElement; return r ? a ? r instanceof a : r.nodeType === e : false; }; - var b = function isElement(r) { + var w = function isElement(r) { var a = Element; return r ? a ? r instanceof a : r.nodeType === e : false; }; @@ -192,13 +192,13 @@ } return true; }; - var T = function getSetProp(r, a, e, n) { + var z = function getSetProp(r, a, e, n) { if (v(n)) { return e ? e[r] : a; } e && !o(n) && false !== n && (e[r] = n); }; - var z = function attr(r, a, e) { + var T = function attr(r, a, e) { if (v(e)) { return r ? r.getAttribute(a) : null; } @@ -206,38 +206,38 @@ }; var L = function attrClass(r, a, e, n) { if (e) { - var t = z(r, a) || ""; + var t = T(r, a) || ""; var i = new Set(t.split(" ")); i[n ? "add" : "delete"](e); - z(r, a, S(i).join(" ").trim()); + T(r, a, S(i).join(" ").trim()); } }; - var D = function hasAttrClass(r, a, e) { - var n = z(r, a) || ""; + var H = function hasAttrClass(r, a, e) { + var n = T(r, a) || ""; var t = new Set(n.split(" ")); return t.has(e); }; - var H = function removeAttr(r, a) { + var D = function removeAttr(r, a) { r && r.removeAttribute(a); }; var M = function scrollLeft(r, a) { - return T("scrollLeft", 0, r, a); + return z("scrollLeft", 0, r, a); }; var R = function scrollTop(r, a) { - return T("scrollTop", 0, r, a); + return z("scrollTop", 0, r, a); }; var I = Element.prototype; var V = function find(r, a) { var e = []; - var n = a ? b(a) ? a : null : document; + var n = a ? w(a) ? a : null : document; return n ? y(e, n.querySelectorAll(r)) : e; }; var j = function findFirst(r, a) { - var e = a ? b(a) ? a : null : document; + var e = a ? w(a) ? a : null : document; return e ? e.querySelector(r) : null; }; var k = function is(r, a) { - if (b(r)) { + if (w(r)) { var e = I.matches || I.msMatchesSelector; return e.call(r, a); } @@ -250,7 +250,7 @@ return r ? r.parentElement : null; }; var q = function closest(r, a) { - if (b(r)) { + if (w(r)) { var e = I.closest; if (e) { return e.call(r, a); @@ -267,33 +267,32 @@ var U = function liesBetween(r, a, e) { var n = r && q(r, a); var t = r && j(e, n); - return n && t ? n === r || t === r || q(q(r, e), a) !== n : false; + var i = q(t, a) === n; + return n && t ? n === r || t === r || i && q(q(r, e), a) !== n : false; }; var N = function before(r, a, e) { - if (e) { + if (e && r) { var n = a; var t; - if (r) { - if (h(e)) { - t = document.createDocumentFragment(); - each(e, (function(r) { - if (r === n) { - n = r.previousSibling; - } - t.appendChild(r); - })); - } else { - t = e; - } - if (a) { - if (!n) { - n = r.firstChild; - } else if (n !== a) { - n = n.nextSibling; + if (h(e)) { + t = document.createDocumentFragment(); + each(e, (function(r) { + if (r === n) { + n = r.previousSibling; } - } - r.insertBefore(t, n || null); + t.appendChild(r); + })); + } else { + t = e; } + if (a) { + if (!n) { + n = r.firstChild; + } else if (n !== a) { + n = n.nextSibling; + } + } + r.insertBefore(t, n || null); } }; var Y = function appendChildren(r, a) { @@ -320,7 +319,7 @@ var Z = function createDiv(r) { var a = document.createElement("div"); if (r) { - z(a, "class", r); + T(a, "class", r); } return a; }; @@ -421,10 +420,10 @@ } return false; }; - var wr = function equalWH(r, a) { + var br = function equalWH(r, a) { return _r(r, a, [ "w", "h" ]); }; - var br = function equalXY(r, a) { + var wr = function equalXY(r, a) { return _r(r, a, [ "x", "y" ]); }; var mr = function equalTRBL(r, a) { @@ -465,14 +464,14 @@ var l = s(u) ? u() : u; var h = f(l) && l >= 0; var p = a > 0 ? lr : fr; - var w = a > 0 ? cr : ur; - var b = d(r); - var m = b || r; + var b = a > 0 ? cr : ur; + var w = d(r); + var m = w || r; var y = c.bind(0, m); i(); var C = p(y, a); i = function clear() { - return w(C); + return b(C); }; if (h && !e) { e = lr(g, l); @@ -509,10 +508,10 @@ } } catch (t) {} }; - var Tr = function directionIsRTL(r) { + var zr = function directionIsRTL(r) { return "rtl" === style(r, "direction"); }; - var zr = function topRightBottomLeft(r, a, e) { + var Tr = function topRightBottomLeft(r, a, e) { var n = a ? a + "-" : ""; var t = e ? "-" + e : ""; var i = n + "top" + t; @@ -527,7 +526,8 @@ l: xr(f[u]) }; }; - var Lr = { + var Lr = Math.round; + var Hr = { w: 0, h: 0 }; @@ -537,60 +537,60 @@ h: window.innerHeight }; }; - var Hr = function offsetSize(r) { + var Mr = function offsetSize(r) { return r ? { w: r.offsetWidth, h: r.offsetHeight - } : Lr; + } : Hr; }; - var Mr = function clientSize(r) { + var Rr = function clientSize(r) { return r ? { w: r.clientWidth, h: r.clientHeight - } : Lr; + } : Hr; }; - var Rr = function scrollSize(r) { + var Ir = function scrollSize(r) { return r ? { w: r.scrollWidth, h: r.scrollHeight - } : Lr; + } : Hr; }; - var Ir = function fractionalSize(r) { + var Vr = function fractionalSize(r) { var a = parseFloat(style(r, "height")) || 0; - var e = parseFloat(style(r, "height")) || 0; + var e = parseFloat(style(r, "width")) || 0; return { - w: e - Math.round(e), - h: a - Math.round(a) + w: e - Lr(e), + h: a - Lr(a) }; }; - var Vr = function getBoundingClientRect(r) { + var jr = function getBoundingClientRect(r) { return r.getBoundingClientRect(); }; - var jr; - var kr = function supportPassiveEvents() { - if (v(jr)) { - jr = false; + var kr; + var Br = function supportPassiveEvents() { + if (v(kr)) { + kr = false; try { window.addEventListener("test", null, Object.defineProperty({}, "passive", { get: function get() { - jr = true; + kr = true; } })); } catch (r) {} } - return jr; + return kr; }; - var Br = function splitEventNames(r) { + var Fr = function splitEventNames(r) { return r.split(" "); }; - var Fr = function off(r, a, e, n) { - each(Br(a), (function(a) { + var qr = function off(r, a, e, n) { + each(Fr(a), (function(a) { r.removeEventListener(a, e, n); })); }; - var qr = function on(r, a, e, n) { + var Ur = function on(r, a, e, n) { var t; - var i = kr(); + var i = Br(); var v = null != (t = i && n && n.C) ? t : i; var o = n && n.O || false; var u = n && n.A || false; @@ -599,42 +599,42 @@ passive: v, capture: o } : o; - each(Br(a), (function(a) { + each(Fr(a), (function(a) { var n = u ? function(t) { r.removeEventListener(a, n, o); e && e(t); } : e; - y(f, Fr.bind(null, r, a, n, o)); + y(f, qr.bind(null, r, a, n, o)); r.addEventListener(a, n, l); })); return O.bind(0, f); }; - var Ur = function stopPropagation(r) { + var Nr = function stopPropagation(r) { return r.stopPropagation(); }; - var Nr = function preventDefault(r) { + var Yr = function preventDefault(r) { return r.preventDefault(); }; - var Yr = { + var Wr = { x: 0, y: 0 }; - var Wr = function absoluteCoordinates(r) { - var a = r ? Vr(r) : 0; + var Gr = function absoluteCoordinates(r) { + var a = r ? jr(r) : 0; return a ? { x: a.left + window.pageYOffset, y: a.top + window.pageXOffset - } : Yr; + } : Wr; }; - var Gr = function manageListener(r, a) { + var Xr = function manageListener(r, a) { each(d(a) ? a : [ a ], r); }; - var Xr = function createEventListenerHub(r) { + var Zr = function createEventListenerHub(r) { var a = new Map; var e = function removeEvent(r, e) { if (r) { var n = a.get(r); - Gr((function(r) { + Xr((function(r) { if (n) { n[r ? "delete" : "clear"](r); } @@ -649,7 +649,7 @@ var n = function addEvent(r, n) { var t = a.get(r) || new Set; a.set(r, t); - Gr((function(r) { + Xr((function(r) { r && t.add(r); }), n); return e.bind(0, r, n); @@ -670,17 +670,17 @@ })); return [ n, e, t ]; }; - var Zr = function getPropByPath(r, a) { + var $r = function getPropByPath(r, a) { return r ? a.split(".").reduce((function(r, a) { return r && x(r, a) ? r[a] : void 0; }), r) : void 0; }; - var $r = function createOptionCheck(r, a, e) { + var Jr = function createOptionCheck(r, a, e) { return function(n) { - return [ Zr(r, n), e || void 0 !== Zr(a, n) ]; + return [ $r(r, n), e || void 0 !== $r(a, n) ]; }; }; - var Jr = function createState(r) { + var Kr = function createState(r) { var a = r; return [ function() { return a; @@ -688,43 +688,43 @@ a = A({}, a, r); } ]; }; - var Kr = "os-environment"; - var Qr = Kr + "-flexbox-glue"; - var ra = Qr + "-max"; - var aa = "data-overlayscrollbars"; - var ea = aa + "-overflow-x"; - var na = aa + "-overflow-y"; - var ta = "overflowVisible"; - var ia = "scrollbarHidden"; - var va = "updating"; - var oa = "os-padding"; - var ua = "os-viewport"; - var fa = ua + "-arrange"; - var la = "os-content"; - var ca = ua + "-scrollbar-hidden"; - var sa = "os-overflow-visible"; - var da = "os-size-observer"; - var ga = da + "-appear"; - var ha = da + "-listener"; - var pa = ha + "-scroll"; - var _a = ha + "-item"; - var wa = _a + "-final"; - var ba = "os-trinsic-observer"; - var ma = "os-scrollbar"; - var ya = ma + "-rtl"; - var Sa = ma + "-horizontal"; - var Ca = ma + "-vertical"; - var Oa = ma + "-track"; - var xa = ma + "-handle"; - var Ea = ma + "-visible"; - var Aa = ma + "-cornerless"; - var Pa = ma + "-transitionless"; - var Ta = ma + "-interaction"; - var za = ma + "-unusable"; - var La = ma + "-auto-hidden"; - var Da = Oa + "-interactive"; - var Ha = xa + "-interactive"; - var Ma = function opsStringify(r) { + var Qr = "os-environment"; + var ra = Qr + "-flexbox-glue"; + var aa = ra + "-max"; + var ea = "data-overlayscrollbars"; + var na = ea + "-overflow-x"; + var ta = ea + "-overflow-y"; + var ia = "overflowVisible"; + var va = "scrollbarHidden"; + var oa = "updating"; + var ua = "os-padding"; + var fa = "os-viewport"; + var la = fa + "-arrange"; + var ca = "os-content"; + var sa = fa + "-scrollbar-hidden"; + var da = "os-overflow-visible"; + var ga = "os-size-observer"; + var ha = ga + "-appear"; + var pa = ga + "-listener"; + var _a = pa + "-scroll"; + var ba = pa + "-item"; + var wa = ba + "-final"; + var ma = "os-trinsic-observer"; + var ya = "os-scrollbar"; + var Sa = ya + "-rtl"; + var Ca = ya + "-horizontal"; + var Oa = ya + "-vertical"; + var xa = ya + "-track"; + var Ea = ya + "-handle"; + var Aa = ya + "-visible"; + var Pa = ya + "-cornerless"; + var za = ya + "-transitionless"; + var Ta = ya + "-interaction"; + var La = ya + "-unusable"; + var Ha = ya + "-auto-hidden"; + var Da = xa + "-interactive"; + var Ma = Ea + "-interactive"; + var Ra = function opsStringify(r) { return JSON.stringify(r, (function(r, a) { if (s(a)) { throw new Error; @@ -732,7 +732,7 @@ return a; })); }; - var Ra = { + var Ia = { paddingAbsolute: false, showNativeOverlaidScrollbars: false, updating: { @@ -749,13 +749,13 @@ theme: "os-theme-dark", visibility: "auto", autoHide: "never", - autoHideDelay: 800, + autoHideDelay: 1300, dragScroll: true, clickScroll: false, pointers: [ "mouse", "touch", "pen" ] } }; - var Ia = function getOptionsDiff(r, a) { + var Va = function getOptionsDiff(r, a) { var e = {}; var n = E(a).concat(E(r)); each(n, (function(n) { @@ -767,7 +767,7 @@ var v = true; if (d(t) || d(i)) { try { - if (Ma(t) === Ma(i)) { + if (Ra(t) === Ra(i)) { v = false; } } catch (o) {} @@ -779,18 +779,17 @@ })); return e; }; - var Va = {}; - var ja = function getPlugins() { - return A({}, Va); + var ja = {}; + var ka = function getPlugins() { + return ja; }; - var ka = function addPlugin(r) { + var Ba = function addPlugin(r) { each(d(r) ? r : [ r ], (function(r) { - each(E(r), (function(a) { - Va[a] = r[a]; - })); + var a = E(r)[0]; + ja[a] = r[a]; })); }; - var Ba = { + var Fa = { exports: {} }; (function(r) { @@ -809,9 +808,9 @@ return _extends.apply(this, arguments); } r.exports = _extends, r.exports.v = true, r.exports["default"] = r.exports; - })(Ba); - var Fa = getDefaultExportFromCjs(Ba.exports); - var qa = { + })(Fa); + var qa = getDefaultExportFromCjs(Fa.exports); + var Ua = { boolean: "__TPL_boolean_TYPE__", number: "__TPL_number_TYPE__", string: "__TPL_string_TYPE__", @@ -820,9 +819,9 @@ function: "__TPL_function_TYPE__", null: "__TPL_null_TYPE__" }; - var Ua = function validateRecursive(r, a, e, n) { + var Na = function validateRecursive(r, a, e, n) { var t = {}; - var i = Fa({}, a); + var i = qa({}, a); var o = E(r).filter((function(r) { return x(a, r); })); @@ -832,9 +831,9 @@ var s = p(c); var g = n ? n + "." : ""; if (s && p(f)) { - var h = validateRecursive(c, f, e, g + o), w = h[0], b = h[1]; - t[o] = w; - i[o] = b; + var h = validateRecursive(c, f, e, g + o), b = h[0], w = h[1]; + t[o] = b; + i[o] = w; each([ i, t ], (function(r) { if (P(r[o])) { delete r[o]; @@ -848,7 +847,7 @@ var x = !d(c) ? [ c ] : c; each(x, (function(r) { var a; - each(qa, (function(e, n) { + each(Ua, (function(e, n) { if (e === r) { a = n; } @@ -861,9 +860,9 @@ })); y(S, n); } else { - m = qa[O] === r; + m = Ua[O] === r; } - y(C, e ? qa.string : a); + y(C, e ? Ua.string : a); return !m; })); if (m) { @@ -876,68 +875,68 @@ })); return [ t, i ]; }; - var Na = function validateOptions(r, a, e) { - return Ua(r, a, e); + var Ya = function validateOptions(r, a, e) { + return Na(r, a, e); }; - var Ya; - var Wa = qa.number; - var Ga = qa.boolean; - var Xa = [ qa.array, qa.null ]; - var Za = "hidden scroll visible visible-hidden"; - var $a = "visible hidden auto"; - var Ja = "never scroll leavemove"; - var Ka = { - paddingAbsolute: Ga, - showNativeOverlaidScrollbars: Ga, + var Wa; + var Ga = Ua.number; + var Xa = Ua.boolean; + var Za = [ Ua.array, Ua.null ]; + var $a = "hidden scroll visible visible-hidden"; + var Ja = "visible hidden auto"; + var Ka = "never scroll leavemove"; + var Qa = { + paddingAbsolute: Xa, + showNativeOverlaidScrollbars: Xa, updating: { - elementEvents: Xa, - attributes: Xa, - debounce: [ qa.number, qa.array, qa.null ], - ignoreMutation: [ qa.function, qa.null ] + elementEvents: Za, + attributes: Za, + debounce: [ Ua.number, Ua.array, Ua.null ], + ignoreMutation: [ Ua.function, Ua.null ] }, overflow: { - x: Za, - y: Za + x: $a, + y: $a }, scrollbars: { - theme: [ qa.string, qa.null ], - visibility: $a, - autoHide: Ja, - autoHideDelay: Wa, - dragScroll: Ga, - clickScroll: Ga, - pointers: [ qa.array, qa.null ] + theme: [ Ua.string, Ua.null ], + visibility: Ja, + autoHide: Ka, + autoHideDelay: Ga, + dragScroll: Xa, + clickScroll: Xa, + pointers: [ Ua.array, Ua.null ] } }; - var Qa = "__osOptionsValidationPlugin"; - Ya = {}, Ya[Qa] = { + var re = "__osOptionsValidationPlugin"; + Wa = {}, Wa[re] = { P: function _(r, a) { - var e = Na(Ka, r, a), n = e[0], t = e[1]; - return Fa({}, t, n); + var e = Ya(Qa, r, a), n = e[0], t = e[1]; + return qa({}, t, n); } - }, Ya; - var re; - var ae = 3333333; - var ee = "scroll"; - var ne = "__osSizeObserverPlugin"; - var te = (re = {}, re[ne] = { + }, Wa; + var ae; + var ee = 3333333; + var ne = "scroll"; + var te = "__osSizeObserverPlugin"; + var ie = (ae = {}, ae[te] = { P: function _(r, a, e) { - var n = $('
'); + var n = $('
'); Y(r, n); - pr(r, pa); + pr(r, _a); var t = n[0]; var i = t.lastChild; var v = t.firstChild; var o = null == v ? void 0 : v.firstChild; - var u = Hr(t); + var u = Mr(t); var f = u; var l = false; var c; var s = function reset() { - M(v, ae); - R(v, ae); - M(i, ae); - R(i, ae); + M(v, ee); + R(v, ee); + M(i, ee); + R(i, ee); }; var d = function onResized(r) { c = 0; @@ -947,10 +946,10 @@ } }; var g = function onScroll(r) { - f = Hr(t); - l = !r || !wr(f, u); + f = Mr(t); + l = !r || !br(f, u); if (r) { - Ur(r); + Nr(r); if (l && !c) { ur(c); c = fr(d); @@ -960,37 +959,37 @@ } s(); }; - var h = y([], [ qr(v, ee, g), qr(i, ee, g) ]); + var h = y([], [ Ur(v, ne, g), Ur(i, ne, g) ]); style(o, { - width: ae, - height: ae + width: ee, + height: ee }); fr(s); return [ e ? g.bind(0, false) : s, h ]; } - }, re); - var ie; - var ve = 0; - var oe = Math.round, ue = Math.abs; - var fe = function getWindowDPR() { + }, ae); + var ve; + var oe = 0; + var ue = Math.round, fe = Math.abs; + var le = function getWindowDPR() { var r = window.screen.deviceXDPI || 0; var a = window.screen.logicalXDPI || 1; return window.devicePixelRatio || r / a; }; - var le = function diffBiggerThanOne(r, a) { - var e = ue(r); - var n = ue(a); + var ce = function diffBiggerThanOne(r, a) { + var e = fe(r); + var n = fe(a); return !(e === n || e + 1 === n || e - 1 === n); }; - var ce = "__osScrollbarsHidingPlugin"; - var se = (ie = {}, ie[ce] = { + var se = "__osScrollbarsHidingPlugin"; + var de = (ve = {}, ve[se] = { T: function _createUniqueViewportArrangeElement(r) { - var a = r.L, e = r.D, n = r.H; + var a = r.L, e = r.H, n = r.D; var t = !n && !a && (e.x || e.y); var i = t ? document.createElement("style") : false; if (i) { - z(i, "id", fa + "-" + ve); - ve++; + T(i, "id", la + "-" + oe); + oe++; } return i; }, @@ -1002,13 +1001,13 @@ var s = c.x, d = c.y; var g = l.x, h = l.y; var p = o ? "paddingRight" : "paddingLeft"; - var w = f[p]; - var b = f.paddingTop; + var b = f[p]; + var w = f.paddingTop; var m = i.w + v.w; var y = i.h + v.h; var S = { - w: h && d ? h + m - w + "px" : "", - h: g && s ? g + y - b + "px" : "" + w: h && d ? h + m - b + "px" : "", + h: g && s ? g + y - w + "px" : "" }; if (n) { var C = n.sheet; @@ -1016,7 +1015,7 @@ var O = C.cssRules; if (O) { if (!O.length) { - C.insertRule("#" + z(n, "id") + " + ." + fa + "::before {}", 0); + C.insertRule("#" + T(n, "id") + " + ." + la + "::before {}", 0); } var x = O[0].style; x.width = S.w; @@ -1050,16 +1049,16 @@ if (g) { p("marginLeft marginRight paddingLeft paddingRight"); } - var w = style(e, E(h)); - hr(e, fa); + var b = style(e, E(h)); + hr(e, la); if (!a) { h.height = ""; } style(e, h); return [ function() { - v(f, o, r, w); - style(e, w); - pr(e, fa); + v(f, o, r, b); + style(e, b); + pr(e, la); }, f ]; } return [ Sr ]; @@ -1082,16 +1081,16 @@ return; } var o = { - w: ue(v.w), - h: ue(v.h) + w: fe(v.w), + h: fe(v.h) }; var u = { - w: ue(oe(i.w / (r.w / 100))), - h: ue(oe(i.h / (r.h / 100))) + w: fe(ue(i.w / (r.w / 100))), + h: fe(ue(i.h / (r.h / 100))) }; - var f = fe(); + var f = le(); var l = o.w > 2 && o.h > 2; - var c = !le(u.w, u.h); + var c = !ce(u.w, u.h); var s = f !== a && f > 0; var d = l && c && s; if (d) { @@ -1105,29 +1104,29 @@ a = f; }; } - }, ie); - var de; - var ge = function getNativeScrollbarSize(r, a, e, n) { + }, ve); + var ge; + var he = function getNativeScrollbarSize(r, a, e, n) { Y(r, a); - var t = Mr(a); - var i = Hr(a); - var v = Ir(e); + var t = Rr(a); + var i = Mr(a); + var v = Vr(e); n && X(a); return { x: i.h - t.h + v.h, y: i.w - t.w + v.w }; }; - var he = function getNativeScrollbarsHiding(r) { + var pe = function getNativeScrollbarsHiding(r) { var a = false; - var e = pr(r, ca); + var e = pr(r, sa); try { a = "none" === style(r, nr("scrollbar-width")) || "none" === window.getComputedStyle(r, "::-webkit-scrollbar").getPropertyValue("display"); } catch (n) {} e(); return a; }; - var pe = function getRtlScrollBehavior(r, a) { + var _e = function getRtlScrollBehavior(r, a) { var e = "hidden"; style(r, { overflowX: e, @@ -1135,23 +1134,23 @@ direction: "rtl" }); M(r, 0); - var n = Wr(r); - var t = Wr(a); + var n = Gr(r); + var t = Gr(a); M(r, -999); - var i = Wr(a); + var i = Gr(a); return { i: n.x === t.x, n: t.x !== i.x }; }; - var _e = function getFlexboxGlue(r, a) { - var e = pr(r, Qr); - var n = Vr(r); - var t = Vr(a); + var be = function getFlexboxGlue(r, a) { + var e = pr(r, ra); + var n = jr(r); + var t = jr(a); var i = yr(t, n, true); - var v = pr(r, ra); - var o = Vr(r); - var u = Vr(a); + var v = pr(r, aa); + var o = jr(r); + var u = jr(a); var f = yr(u, o, true); e(); v(); @@ -1159,16 +1158,16 @@ }; var we = function createEnvironment() { var r = document, e = r.body; - var n = $('
'); + var n = $('
'); var t = n[0]; var i = t.firstChild; - var v = Xr(), o = v[0], u = v[2]; + var v = Zr(), o = v[0], u = v[2]; var f = a({ - o: ge(e, t, i), - u: br - }, ge.bind(0, e, t, i, true)), l = f[0], c = f[1]; + o: he(e, t, i), + u: wr + }, he.bind(0, e, t, i, true)), l = f[0], c = f[1]; var s = c(), d = s[0]; - var g = he(t); + var g = pe(t); var h = { x: 0 === d.x, y: 0 === d.y @@ -1186,14 +1185,14 @@ body: null } }; - var w = A({}, Ra); - var b = { + var b = A({}, Ia); + var w = { k: d, - D: h, + H: h, L: g, - H: "-1" === style(t, "zIndex"), - B: pe(t, i), - F: _e(t, i), + D: "-1" === style(t, "zIndex"), + B: _e(t, i), + F: be(t, i), q: function _addListener(r) { return o("_", r); }, @@ -1201,91 +1200,92 @@ N: function _setDefaultInitialization(r) { A(p, r); }, - Y: A.bind(0, {}, w), + Y: A.bind(0, {}, b), W: function _setDefaultOptions(r) { - A(w, r); + A(b, r); }, G: A({}, p), - X: A({}, w) + X: A({}, b) }; - H(t, "style"); + D(t, "style"); X(t); if (!g && (!h.x || !h.y)) { var m; window.addEventListener("resize", (function() { - var r = ja()[ce]; + var r = ka()[se]; m = m || r && r.j(); - m && m(b, l, u.bind(0, "_")); + m && m(w, l, u.bind(0, "_")); })); } - return b; + return w; }; - var be = function getEnvironment() { - if (!de) { - de = we(); + var me = function getEnvironment() { + if (!ge) { + ge = we(); } - return de; + return ge; }; - var me = function resolveInitialization(r, a) { + var ye = function resolveInitialization(r, a) { return s(r) ? r.apply(0, a) : r; }; - var ye = function staticInitializationElement(r, a, e, n) { + var Se = function staticInitializationElement(r, a, e, n) { var t = v(n) ? e : n; - var i = me(t, r); + var i = ye(t, r); return i || a(); }; - var Se = function dynamicInitializationElement(r, a, e, n) { + var Ce = function dynamicInitializationElement(r, a, e, n) { var t = v(n) ? e : n; - var i = me(t, r); - return !!i && (w(i) ? i : a()); + var i = ye(t, r); + return !!i && (b(i) ? i : a()); }; - var Ce = function cancelInitialization(r, a) { + var Oe = function cancelInitialization(r, a) { var e = r || {}, n = e.nativeScrollbarsOverlaid, t = e.body; var i = a.Z, u = a.$; - var f = be(), l = f.U, c = f.D; + var f = me(), l = f.U, c = f.H; var s = l().cancel, d = s.nativeScrollbarsOverlaid, g = s.body; var h = null != n ? n : d; var p = v(t) ? g : t; - var w = (c.x || c.y) && h; - var b = i && (o(p) ? !u : p); - return !!w || !!b; + var b = (c.x || c.y) && h; + var w = i && (o(p) ? !u : p); + return !!b || !!w; }; - var Oe = Z.bind(0, ""); - var xe = function unwrap(r) { + var xe = Z.bind(0, ""); + var Ee = function unwrap(r) { Y(F(r), B(r)); X(r); }; - var Ee = function addDataAttrHost(r, a) { - z(r, aa, a); - return H.bind(0, r, aa); + var Ae = function addDataAttrHost(r, a) { + T(r, ea, a); + return D.bind(0, r, ea); }; - var Ae = function createStructureSetupElements(r) { - var a = be(); + var Pe = function createStructureSetupElements(r) { + var a = me(); var e = a.U, n = a.L; - var t = ja()[ce]; + var t = ka()[se]; var i = t && t.T; var v = e(), o = v.host, u = v.viewport, f = v.padding, l = v.content; - var c = w(r); + var c = b(r); var s = c ? {} : r; var d = s.host, g = s.padding, h = s.viewport, p = s.content; - var b = c ? r : s.target; - var S = k(b, "textarea"); - var C = b.ownerDocument; - var x = b === C.body; + var w = c ? r : s.target; + var S = k(w, "textarea"); + var C = w.ownerDocument; + var x = w === C.body; var A = C.defaultView; - var P = ye.bind(0, [ b ]); - var T = Se.bind(0, [ b ]); - var z = P(Oe, u, h); - var M = z === b; - var R = { - J: b, - K: S ? P(Oe, o, d) : b, - rr: z, - ar: !M && T(Oe, f, g), - er: !M && T(Oe, l, p), + var P = Se.bind(0, [ w ]); + var z = Ce.bind(0, [ w ]); + var T = P(xe, u, h); + var M = T === w; + var R = M && x; + var I = { + J: w, + K: S ? P(xe, o, d) : w, + rr: T, + ar: !M && z(xe, f, g), + er: !M && z(xe, l, p), nr: !M && !n && i && i(a), - tr: x ? C.documentElement : z, - ir: x ? C : z, + tr: R ? C.documentElement : T, + ir: R ? C : T, vr: A, ur: C, lr: S, @@ -1293,76 +1293,76 @@ cr: c, $: M, sr: function _viewportHasClass(r, a) { - return M ? D(z, aa, a) : gr(z, r); + return M ? H(T, ea, a) : gr(T, r); }, dr: function _viewportAddRemoveClass(r, a, e) { - return M ? L(z, aa, a, e) : (e ? pr : hr)(z, r); + return M ? L(T, ea, a, e) : (e ? pr : hr)(T, r); } }; - var I = E(R).reduce((function(r, a) { - var e = R[a]; + var V = E(I).reduce((function(r, a) { + var e = I[a]; return y(r, e && !F(e) ? e : false); }), []); - var V = function elementIsGenerated(r) { - return r ? m(I, r) > -1 : null; + var j = function elementIsGenerated(r) { + return r ? m(V, r) > -1 : null; }; - var j = R.J, q = R.K, U = R.ar, N = R.rr, Z = R.er, $ = R.nr; - var J = []; - var K = S && V(q); - var Q = S ? j : B([ Z, N, U, q, j ].find((function(r) { - return false === V(r); + var q = I.J, U = I.K, N = I.ar, Z = I.rr, $ = I.er, J = I.nr; + var K = []; + var Q = S && j(U); + var rr = S ? q : B([ $, Z, N, U, q ].find((function(r) { + return false === j(r); }))); - var rr = Z || N; - var ar = function appendElements() { - var r = Ee(q, M ? "viewport" : "host"); - var a = pr(U, oa); - var e = pr(N, !M && ua); - var t = pr(Z, la); - var i = x ? pr(F(b), ca) : Sr; - if (K) { - G(j, q); - y(J, (function() { - G(q, j); - X(q); + var ar = $ || Z; + var er = function appendElements() { + var r = Ae(U, M ? "viewport" : "host"); + var a = pr(N, ua); + var e = pr(Z, !M && fa); + var t = pr($, ca); + var i = R ? pr(F(w), sa) : Sr; + if (Q) { + G(q, U); + y(K, (function() { + G(U, q); + X(U); })); } - Y(rr, Q); - Y(q, U); - Y(U || q, !M && N); - Y(N, Z); - y(J, (function() { + Y(ar, rr); + Y(U, N); + Y(N || U, !M && Z); + Y(Z, $); + y(K, (function() { i(); r(); - H(N, ea); - H(N, na); - if (V(Z)) { - xe(Z); + D(Z, na); + D(Z, ta); + if (j($)) { + Ee($); } - if (V(N)) { - xe(N); + if (j(Z)) { + Ee(Z); } - if (V(U)) { - xe(U); + if (j(N)) { + Ee(N); } a(); e(); t(); })); if (n && !M) { - y(J, hr.bind(0, N, ca)); + y(K, hr.bind(0, Z, sa)); } - if ($) { - W(N, $); - y(J, X.bind(0, $)); + if (J) { + W(Z, J); + y(K, X.bind(0, J)); } }; - return [ R, ar, O.bind(0, J) ]; + return [ I, er, O.bind(0, K) ]; }; - var Pe = function createTrinsicUpdateSegment(r, a) { + var ze = function createTrinsicUpdateSegment(r, a) { var e = r.er; var n = a[0]; return function(r) { - var a = be(), t = a.F; + var a = me(), t = a.F; var i = n(), v = i.gr; var o = r.hr; var u = (e || !t) && o; @@ -1382,46 +1382,46 @@ var i = r.K, v = r.ar, o = r.rr, u = r.$; var f = a({ u: mr, - o: zr() - }, zr.bind(0, i, "padding", "")), l = f[0], c = f[1]; + o: Tr() + }, Tr.bind(0, i, "padding", "")), l = f[0], c = f[1]; return function(r, a, e) { var i = c(e), f = i[0], s = i[1]; - var d = be(), g = d.L, h = d.F; - var p = n(), w = p.wr; - var b = r.pr, m = r._r, y = r.br; + var d = me(), g = d.L, h = d.F; + var p = n(), b = p.br; + var w = r.pr, m = r._r, y = r.wr; var S = a("paddingAbsolute"), C = S[0], O = S[1]; var x = !h && m; - if (b || s || x) { + if (w || s || x) { var E = l(e); f = E[0]; s = E[1]; } var P = !u && (O || y || s); if (P) { - var T = !C || !v && !g; - var z = f.r + f.l; + var z = !C || !v && !g; + var T = f.r + f.l; var L = f.t + f.b; - var D = { - marginRight: T && !w ? -z : 0, - marginBottom: T ? -L : 0, - marginLeft: T && w ? -z : 0, - top: T ? -f.t : 0, - right: T ? w ? -f.r : "auto" : 0, - left: T ? w ? "auto" : -f.l : 0, - width: T ? "calc(100% + " + z + "px)" : "" - }; var H = { - paddingTop: T ? f.t : 0, - paddingRight: T ? f.r : 0, - paddingBottom: T ? f.b : 0, - paddingLeft: T ? f.l : 0 + marginRight: z && !b ? -T : 0, + marginBottom: z ? -L : 0, + marginLeft: z && b ? -T : 0, + top: z ? -f.t : 0, + right: z ? b ? -f.r : "auto" : 0, + left: z ? b ? "auto" : -f.l : 0, + width: z ? "calc(100% + " + T + "px)" : "" }; - style(v || o, D); - style(o, H); + var D = { + paddingTop: z ? f.t : 0, + paddingRight: z ? f.r : 0, + paddingBottom: z ? f.b : 0, + paddingLeft: z ? f.l : 0 + }; + style(v || o, H); + style(o, D); t({ ar: f, - mr: !T, - R: v ? H : A({}, D, H) + mr: !z, + R: v ? D : A({}, H, D) }); } return { @@ -1429,83 +1429,84 @@ }; }; }; - var ze = Math.max; - var Le = ze.bind(0, 0); + var Le = Math.max; + var He = Le.bind(0, 0); var De = "visible"; - var He = "hidden"; - var Me = 42; - var Re = { - u: wr, + var Me = "hidden"; + var Re = 42; + var Ie = { + u: br, o: { w: 0, h: 0 } }; - var Ie = { - u: br, + var Ve = { + u: wr, o: { - x: He, - y: He + x: Me, + y: Me } }; - var Ve = function getOverflowAmount(r, a) { + var je = function getOverflowAmount(r, a) { var e = window.devicePixelRatio % 1 !== 0 ? 1 : 0; var n = { - w: Le(r.w - a.w), - h: Le(r.h - a.h) + w: He(r.w - a.w), + h: He(r.h - a.h) }; return { w: n.w > e ? n.w : 0, h: n.h > e ? n.h : 0 }; }; - var je = function conditionalClass(r, a, e) { + var ke = function conditionalClass(r, a, e) { return e ? pr(r, a) : hr(r, a); }; - var ke = function overflowIsVisible(r) { + var Be = function overflowIsVisible(r) { return 0 === r.indexOf(De); }; - var Be = function createOverflowUpdateSegment(r, e) { + var Fe = function createOverflowUpdateSegment(r, e) { var n = e[0], t = e[1]; - var i = r.K, v = r.ar, o = r.rr, u = r.nr, f = r.$, l = r.dr; - var c = be(), s = c.k, d = c.F, g = c.L, h = c.D; - var p = ja()[ce]; - var w = !f && !g && (h.x || h.y); - var b = a(Re, Ir.bind(0, o)), m = b[0], y = b[1]; - var S = a(Re, Rr.bind(0, o)), C = S[0], O = S[1]; - var x = a(Re), E = x[0], A = x[1]; - var P = a(Re), T = P[0], D = P[1]; - var H = a(Ie), M = H[0]; - var R = function fixFlexboxGlue(r, a) { + var i = r.K, v = r.ar, o = r.rr, u = r.nr, f = r.$, l = r.dr, c = r.Z, s = r.vr; + var d = me(), g = d.k, h = d.F, p = d.L, b = d.H; + var w = ka()[se]; + var m = !f && !p && (b.x || b.y); + var y = c && f; + var S = a(Ie, Vr.bind(0, o)), C = S[0], O = S[1]; + var x = a(Ie, Ir.bind(0, o)), E = x[0], A = x[1]; + var P = a(Ie), z = P[0], H = P[1]; + var D = a(Ie), M = D[0], R = D[1]; + var I = a(Ve), V = I[0]; + var j = function fixFlexboxGlue(r, a) { style(o, { height: "" }); if (a) { var e = n(), t = e.mr, v = e.ar; var u = r.Sr, f = r.I; - var l = Ir(i); - var c = Mr(i); + var l = Vr(i); + var c = Rr(i); var s = "content-box" === style(o, "boxSizing"); var d = t || s ? v.b + v.t : 0; - var g = !(h.x && s); + var g = !(b.x && s); style(o, { height: c.h + l.h + (u.x && g ? f.x : 0) - d }); } }; - var I = function getViewportOverflowState(r, a) { - var e = !g && !r ? Me : 0; + var k = function getViewportOverflowState(r, a) { + var e = !p && !r ? Re : 0; var n = function getStatePerAxis(r, n, t) { var i = style(o, r); var v = a ? a[r] : i; var u = "scroll" === v; var f = n ? e : t; - var l = u && !g ? f : 0; + var l = u && !p ? f : 0; var c = n && !!e; return [ i, u, l, c ]; }; - var t = n("overflowX", h.x, s.x), i = t[0], v = t[1], u = t[2], f = t[3]; - var l = n("overflowY", h.y, s.y), c = l[0], d = l[1], p = l[2], w = l[3]; + var t = n("overflowX", b.x, g.x), i = t[0], v = t[1], u = t[2], f = t[3]; + var l = n("overflowY", b.y, g.y), c = l[0], s = l[1], d = l[2], h = l[3]; return { Cr: { x: i, @@ -1513,31 +1514,31 @@ }, Sr: { x: v, - y: d + y: s }, I: { x: u, - y: p + y: d }, V: { x: f, - y: w + y: h } }; }; - var V = function setViewportOverflowState(r, a, e, n) { + var B = function setViewportOverflowState(r, a, e, n) { var t = function setAxisOverflowStyle(r, a) { - var e = ke(r); + var e = Be(r); var n = a && e && r.replace(De + "-", "") || ""; - return [ a && !e ? r : "", ke(n) ? "hidden" : n ]; + return [ a && !e ? r : "", Be(n) ? "hidden" : n ]; }; var i = t(e.x, a.x), v = i[0], o = i[1]; var u = t(e.y, a.y), f = u[0], l = u[1]; n.overflowX = o && f ? o : v; n.overflowY = l && v ? l : f; - return I(r, n); + return k(r, n); }; - var j = function hideNativeScrollbars(r, a, e, t) { + var F = function hideNativeScrollbars(r, a, e, t) { var i = r.I, v = r.V; var o = v.x, u = v.y; var f = i.x, l = i.y; @@ -1546,80 +1547,80 @@ var g = a ? "paddingLeft" : "paddingRight"; var h = s[d]; var p = s.marginBottom; - var w = s[g]; - var b = s.paddingBottom; + var b = s[g]; + var w = s.paddingBottom; t.width = "calc(100% + " + (l + -1 * h) + "px)"; t[d] = -l + h; t.marginBottom = -f + p; if (e) { - t[g] = w + (u ? l : 0); - t.paddingBottom = b + (o ? f : 0); + t[g] = b + (u ? l : 0); + t.paddingBottom = w + (o ? f : 0); } }; - var k = p ? p.M(w, d, o, u, n, I, j) : [ function() { - return w; + var q = w ? w.M(m, h, o, u, n, k, F) : [ function() { + return m; }, function() { return [ Sr ]; - } ], B = k[0], F = k[1]; + } ], U = q[0], N = q[1]; return function(r, a, e) { - var u = r.pr, c = r.Or, s = r._r, p = r.yr, w = r.hr, b = r.br; - var S = n(), x = S.gr, P = S.wr; - var H = a("showNativeOverlaidScrollbars"), k = H[0], q = H[1]; - var U = a("overflow"), N = U[0], Y = U[1]; - var W = k && h.x && h.y; - var G = !f && !d && (u || s || c || q || w); - var X = ke(N.x); - var Z = ke(N.y); - var $ = X || Z; - var J = y(e); - var K = O(e); - var Q = A(e); - var rr = D(e); - var ar; - if (q && g) { - l(ca, ia, !W); + var u = r.pr, c = r.Or, d = r._r, g = r.yr, w = r.hr, m = r.wr; + var S = n(), x = S.gr, P = S.br; + var D = a("showNativeOverlaidScrollbars"), I = D[0], q = D[1]; + var Y = a("overflow"), W = Y[0], G = Y[1]; + var X = I && b.x && b.y; + var Z = !f && !h && (u || d || c || q || w); + var $ = Be(W.x); + var J = Be(W.y); + var K = $ || J; + var Q = O(e); + var rr = A(e); + var ar = H(e); + var er = R(e); + var nr; + if (q && p) { + l(sa, va, !X); } - if (G) { - ar = I(W); - R(ar, x); + if (Z) { + nr = k(X); + j(nr, x); } - if (u || p || s || b || q) { - if ($) { - l(sa, ta, false); + if (u || g || d || m || q) { + if (K) { + l(da, ia, false); } - var er = F(W, P, ar), nr = er[0], tr = er[1]; - var ir = J = m(e), vr = ir[0], or = ir[1]; - var ur = K = C(e), fr = ur[0], lr = ur[1]; - var cr = Mr(o); - var sr = fr; - var dr = cr; - nr(); - if ((lr || or || q) && tr && !W && B(tr, fr, vr, P)) { - dr = Mr(o); - sr = Rr(o); + var tr = N(X, P, nr), ir = tr[0], vr = tr[1]; + var or = Q = C(e), ur = or[0], fr = or[1]; + var lr = rr = E(e), cr = lr[0], sr = lr[1]; + var dr = Rr(o); + var gr = cr; + var hr = dr; + ir(); + if ((sr || fr || q) && vr && !X && U(vr, cr, ur, P)) { + hr = Rr(o); + gr = Ir(o); } - var gr = { - w: Le(ze(fr.w, sr.w) + vr.w), - h: Le(ze(fr.h, sr.h) + vr.h) + var pr = { + w: He(Le(cr.w, gr.w) + ur.w), + h: He(Le(cr.h, gr.h) + ur.h) }; - var hr = { - w: Le(dr.w + Le(cr.w - fr.w) + vr.w), - h: Le(dr.h + Le(cr.h - fr.h) + vr.h) + var _r = { + w: He(y ? s.innerWidth : hr.w + He(dr.w - cr.w) + ur.w), + h: He(y ? s.innerHeight : hr.h + He(dr.h - cr.h) + ur.h) }; - rr = T(hr); - Q = E(Ve(gr, hr), e); + er = M(_r); + ar = z(je(pr, _r), e); } - var pr = rr, _r = pr[0], wr = pr[1]; - var br = Q, mr = br[0], yr = br[1]; - var Sr = K, Cr = Sr[0], Or = Sr[1]; - var xr = J, Er = xr[0], Ar = xr[1]; - var Pr = { - x: mr.w > 0, - y: mr.h > 0 + var br = er, wr = br[0], mr = br[1]; + var yr = ar, Sr = yr[0], Cr = yr[1]; + var Or = rr, xr = Or[0], Er = Or[1]; + var Ar = Q, Pr = Ar[0], zr = Ar[1]; + var Tr = { + x: Sr.w > 0, + y: Sr.h > 0 }; - var Tr = X && Z && (Pr.x || Pr.y) || X && Pr.x && !Pr.y || Z && Pr.y && !Pr.x; - if (p || b || Ar || Or || wr || yr || Y || q || G) { - var zr = { + var Lr = $ && J && (Tr.x || Tr.y) || $ && Tr.x && !Tr.y || J && Tr.y && !Tr.x; + if (g || m || zr || Er || mr || Cr || G || q || Z) { + var Hr = { marginRight: 0, marginBottom: 0, marginLeft: 0, @@ -1627,45 +1628,45 @@ overflowY: "", overflowX: "" }; - var Lr = V(W, Pr, N, zr); - var Dr = B(Lr, Cr, Er, P); + var Dr = B(X, Tr, W, Hr); + var Mr = U(Dr, xr, Pr, P); if (!f) { - j(Lr, P, Dr, zr); + F(Dr, P, Mr, Hr); } - if (G) { - R(Lr, x); + if (Z) { + j(Dr, x); } if (f) { - z(i, ea, zr.overflowX); - z(i, na, zr.overflowY); + T(i, na, Hr.overflowX); + T(i, ta, Hr.overflowY); } else { - style(o, zr); + style(o, Hr); } } - L(i, aa, ta, Tr); - je(v, sa, Tr); - !f && je(o, sa, $); - var Hr = M(I(W).Cr), Ir = Hr[0], Vr = Hr[1]; + L(i, ea, ia, Lr); + ke(v, da, Lr); + !f && ke(o, da, K); + var Vr = V(k(X).Cr), jr = Vr[0], kr = Vr[1]; t({ - Cr: Ir, + Cr: jr, Er: { - x: _r.w, - y: _r.h + x: wr.w, + y: wr.h }, Ar: { - x: mr.w, - y: mr.h + x: Sr.w, + y: Sr.h }, - Pr: Pr + Pr: Tr }); return { - Tr: Vr, - zr: wr, - Lr: yr + zr: kr, + Tr: mr, + Lr: Cr }; }; }; - var Fe = function prepareUpdateHints(r, a, e) { + var qe = function prepareUpdateHints(r, a, e) { var n = {}; var t = a || {}; var i = E(r).concat(E(t)); @@ -1676,54 +1677,54 @@ })); return n; }; - var qe = function createStructureSetupUpdate(r, a) { + var Ue = function createStructureSetupUpdate(r, a) { var e = r.rr, n = r.dr; - var t = be(), i = t.L, v = t.D, o = t.F; + var t = me(), i = t.L, v = t.H, o = t.F; var u = !i && (v.x || v.y); - var f = [ Pe(r, a), Te(r, a), Be(r, a) ]; + var f = [ ze(r, a), Te(r, a), Fe(r, a) ]; return function(r, a, t) { - var i = Fe(A({ + var i = qe(A({ pr: false, yr: false, - br: false, + wr: false, hr: false, - zr: false, - Lr: false, Tr: false, + Lr: false, + zr: false, Or: false, _r: false }, a), {}, t); var v = u || !o; var l = v && M(e); var c = v && R(e); - n("", va, true); + n("", oa, true); var s = i; each(f, (function(a) { - s = Fe(s, a(s, r, !!t) || {}, t); + s = qe(s, a(s, r, !!t) || {}, t); })); M(e, l); R(e, c); - n("", va); + n("", oa); return s; }; }; - var Ue = 3333333; - var Ne = function domRectHasDimensions(r) { + var Ne = 3333333; + var Ye = function domRectHasDimensions(r) { return r && (r.height || r.width); }; - var Ye = function createSizeObserver(r, e, n) { - var t = n || {}, i = t.Dr, v = void 0 === i ? false : i, o = t.Hr, u = void 0 === o ? false : o; - var f = ja()[ne]; - var l = be(), s = l.B; - var h = $('
'); + var We = function createSizeObserver(r, e, n) { + var t = n || {}, i = t.Hr, v = void 0 === i ? false : i, o = t.Dr, u = void 0 === o ? false : o; + var f = ka()[te]; + var l = me(), s = l.B; + var h = $('
'); var p = h[0]; - var w = p.firstChild; - var b = Tr.bind(0, r); + var b = p.firstChild; + var w = zr.bind(0, r); var m = a({ o: void 0, g: true, u: function _equal(r, a) { - return !(!r || !Ne(r) && Ne(a)); + return !(!r || !Ye(r) && Ye(a)); } }), S = m[0]; var C = function onSizeChangedCallbackProxy(r) { @@ -1734,10 +1735,10 @@ var o = true; if (a) { var u = S(r.pop().contentRect), f = u[0], l = u[2]; - var h = Ne(f); - var w = Ne(l); + var h = Ye(f); + var b = Ye(l); t = !l || !h; - i = !w && h; + i = !b && h; o = !t; } else if (n) { o = r[1]; @@ -1745,15 +1746,15 @@ i = true === r; } if (v && o) { - var b = n ? r[0] : Tr(p); - M(p, b ? s.n ? -Ue : s.i ? 0 : Ue : Ue); - R(p, Ue); + var w = n ? r[0] : zr(p); + M(p, w ? s.n ? -Ne : s.i ? 0 : Ne : Ne); + R(p, Ne); } if (!t) { e({ pr: !n, Mr: n ? r : void 0, - Hr: !!i + Dr: !!i }); } }; @@ -1765,56 +1766,56 @@ }, function() { if (or) { var e = new or(C); - e.observe(w); + e.observe(b); y(x, (function() { e.disconnect(); })); } else if (f) { - var n = f.P(w, C, u), t = n[0], i = n[1]; + var n = f.P(b, C, u), t = n[0], i = n[1]; E = t; y(x, i); } if (v) { var o = a({ - o: !b() - }, b), l = o[0]; - y(x, qr(p, "scroll", (function(r) { + o: !w() + }, w), l = o[0]; + y(x, Ur(p, "scroll", (function(r) { var a = l(); var e = a[0], n = a[1]; if (n) { - hr(w, "ltr rtl"); + hr(b, "ltr rtl"); if (e) { - pr(w, "rtl"); + pr(b, "rtl"); } else { - pr(w, "ltr"); + pr(b, "ltr"); } C(a); } - Ur(r); + Nr(r); }))); } if (E) { - pr(p, ga); - y(x, qr(p, "animationstart", E, { + pr(p, ha); + y(x, Ur(p, "animationstart", E, { A: !!or })); } Y(r, p); } ]; }; - var We = function isHeightIntrinsic(r) { + var Ge = function isHeightIntrinsic(r) { return 0 === r.h || r.isIntersecting || r.intersectionRatio > 0; }; - var Ge = function createTrinsicObserver(r, e) { + var Xe = function createTrinsicObserver(r, e) { var n; - var t = Z(ba); + var t = Z(ma); var i = []; var v = a({ o: false }), o = v[0]; var u = function triggerOnTrinsicChangedCallback(r, a) { if (r) { - var n = o(We(r)); + var n = o(Ge(r)); var t = n[1]; if (t) { !a && e(n); @@ -1843,10 +1844,10 @@ })); } else { var a = function onSizeChanged() { - var r = Hr(t); + var r = Mr(t); u(r); }; - var e = Ye(t, a), v = e[0], o = e[1]; + var e = We(t, a), v = e[0], o = e[1]; y(i, v); o(); a(); @@ -1858,7 +1859,7 @@ } } ]; }; - var Xe = function createEventContentChange(r, a, e) { + var Ze = function createEventContentChange(r, a, e) { var n; var t = false; var i = function destroy() { @@ -1888,7 +1889,7 @@ u(); } } - var f = qr(e, i, (function(r) { + var f = Ur(e, i, (function(r) { if (t) { f(); n.delete(e); @@ -1907,7 +1908,7 @@ } return [ i, v ]; }; - var Ze = function createDOMObserver(r, a, e, n) { + var $e = function createDOMObserver(r, a, e, n) { var t = false; var i = n || {}, v = i.Rr, o = i.Ir, u = i.Vr, f = i.jr, c = i.kr, s = i.Br; var d = Cr((function() { @@ -1918,10 +1919,10 @@ p: 33, _: 99 }); - var g = Xe(r, d, u), h = g[0], p = g[1]; - var w = v || []; - var b = o || []; - var S = w.concat(b); + var g = Ze(r, d, u), h = g[0], p = g[1]; + var b = v || []; + var w = o || []; + var S = b.concat(w); var O = function observerCallback(t, i) { var v = c || Sr; var o = s || Sr; @@ -1929,31 +1930,31 @@ var d = []; var g = false; var h = false; - var w = false; + var b = false; each(t, (function(e) { var t = e.attributeName, i = e.target, c = e.type, s = e.oldValue, p = e.addedNodes; var S = "attributes" === c; var C = "childList" === c; var O = r === i; - var x = S && l(t) ? z(i, t) : 0; + var x = S && l(t) ? T(i, t) : 0; var E = 0 !== x && s !== x; - var A = m(b, t) > -1 && E; + var A = m(w, t) > -1 && E; if (a && !O) { var P = !S; - var T = S && A; - var L = T && f && k(i, f); - var D = L ? !v(i, t, s, x) : P || T; - var H = D && !o(e, !!L, r, n); + var z = S && A; + var L = z && f && k(i, f); + var H = L ? !v(i, t, s, x) : P || z; + var D = H && !o(e, !!L, r, n); y(d, p); - h = h || H; - w = w || C; + h = h || D; + b = b || C; } if (!a && O && E && !v(i, t, s, x)) { y(u, t); g = g || A; } })); - if (w && !C(d)) { + if (b && !C(d)) { p((function(r) { return d.reduce((function(a, e) { y(a, V(r, e)); @@ -1996,38 +1997,38 @@ } } ]; }; - var $e = "[" + aa + "]"; - var Je = "." + ua; - var Ke = [ "tabindex" ]; - var Qe = [ "wrap", "cols", "rows" ]; - var rn = [ "id", "class", "style", "open" ]; - var an = function createStructureSetupObservers(r, e, n) { + var Je = "[" + ea + "]"; + var Ke = "." + fa; + var Qe = [ "tabindex" ]; + var rn = [ "wrap", "cols", "rows" ]; + var an = [ "id", "class", "style", "open" ]; + var en = function createStructureSetupObservers(r, e, n) { var t; var i; var v; var o = e[1]; - var u = r.K, c = r.rr, g = r.er, h = r.lr, p = r.$, w = r.sr, b = r.dr; - var S = be(), C = S.F; + var u = r.K, c = r.rr, g = r.er, h = r.lr, p = r.$, b = r.sr, w = r.dr; + var S = me(), C = S.F; var O = a({ - u: wr, + u: br, o: { w: 0, h: 0 } }, (function() { - var r = w(sa, ta); - var a = w(fa, ""); + var r = b(da, ia); + var a = b(la, ""); var e = a && M(c); var n = a && R(c); - b(sa, ta); - b(fa, ""); - b("", va, true); - var t = Rr(g); - var i = Rr(c); - var v = Ir(c); - b(sa, ta, r); - b(fa, "", a); - b("", va); + w(da, ia); + w(la, ""); + w("", oa, true); + var t = Ir(g); + var i = Ir(c); + var v = Vr(c); + w(da, ia, r); + w(la, "", a); + w("", oa); M(c, e); R(c, n); return { @@ -2035,8 +2036,8 @@ h: i.h + t.h + v.h }; })), x = O[0]; - var P = h ? Qe : rn.concat(Qe); - var T = Cr(n, { + var P = h ? rn : an.concat(rn); + var z = Cr(n, { p: function _timeout() { return t; }, @@ -2053,18 +2054,18 @@ } }); var L = function updateViewportAttrsFromHost(r) { - each(r || Ke, (function(r) { - if (m(Ke, r) > -1) { - var a = z(u, r); + each(r || Qe, (function(r) { + if (m(Qe, r) > -1) { + var a = T(u, r); if (l(a)) { - z(c, r, a); + T(c, r, a); } else { - H(c, r); + D(c, r); } } })); }; - var D = function onTrinsicChanged(r, a) { + var H = function onTrinsicChanged(r, a) { var e = r[0], t = r[1]; var i = { hr: t @@ -2076,19 +2077,19 @@ return i; }; var I = function onSizeChanged(r) { - var a = r.pr, e = r.Mr, t = r.Hr; - var i = !a || t ? n : T; + var a = r.pr, e = r.Mr, t = r.Dr; + var i = !a || t ? n : z; var v = false; if (e) { var u = e[0], f = e[1]; v = f; o({ - wr: u + br: u }); } i({ pr: a, - br: v + wr: v }); }; var V = function onContentMutation(r, a) { @@ -2096,7 +2097,7 @@ var i = { _r: t }; - var v = r ? n : T; + var v = r ? n : z; if (t) { !a && v(i); } @@ -2107,20 +2108,20 @@ Or: a }; if (a) { - !e && T(n); + !e && z(n); } else if (!p) { L(r); } return n; }; - var k = g || !C ? Ge(u, D) : [ Sr, Sr, Sr ], B = k[0], F = k[1], N = k[2]; - var Y = !p ? Ye(u, I, { - Hr: true, - Dr: true + var k = g || !C ? Xe(u, H) : [ Sr, Sr, Sr ], B = k[0], F = k[1], N = k[2]; + var Y = !p ? We(u, I, { + Dr: true, + Hr: true }) : [ Sr, Sr ], W = Y[0], G = Y[1]; - var X = Ze(u, false, j, { - Ir: rn, - Rr: rn.concat(Ke) + var X = $e(u, false, j, { + Ir: an, + Rr: an.concat(Qe) }), Z = X[0], $ = X[1]; var J = p && or && new or(I.bind(0, { pr: true @@ -2145,7 +2146,7 @@ A(r, j.apply(0, y(a, true))); } if (e) { - A(r, D.apply(0, y(e, true))); + A(r, H.apply(0, y(e, true))); } if (n) { A(r, V.apply(0, y(n, true))); @@ -2154,38 +2155,38 @@ }, function(r) { var a = r("updating.ignoreMutation"), e = a[0]; var n = r("updating.attributes"), o = n[0], u = n[1]; - var l = r("updating.elementEvents"), h = l[0], p = l[1]; - var w = r("updating.debounce"), b = w[0], m = w[1]; - var y = p || u; - var S = function ignoreMutationFromOptions(r) { + var l = r("updating.elementEvents"), h = l[0], b = l[1]; + var w = r("updating.debounce"), m = w[0], y = w[1]; + var S = b || u; + var C = function ignoreMutationFromOptions(r) { return s(e) && e(r); }; - if (y) { + if (S) { if (v) { v[1](); v[0](); } - v = Ze(g || c, true, V, { + v = $e(g || c, true, V, { Ir: P.concat(o || []), Rr: P.concat(o || []), Vr: h, - jr: $e, + jr: Je, Br: function _ignoreContentChange(r, a) { var e = r.target, n = r.attributeName; - var t = !a && n ? U(e, $e, Je) : false; - return t || !!q(e, "." + ma) || !!S(r); + var t = !a && n && !p ? U(e, Je, Ke) : false; + return t || !!q(e, "." + ya) || !!C(r); } }); } - if (m) { - T.S(); - if (d(b)) { - var C = b[0]; - var O = b[1]; - t = f(C) ? C : false; - i = f(O) ? O : false; - } else if (f(b)) { - t = b; + if (y) { + z.S(); + if (d(m)) { + var O = m[0]; + var x = m[1]; + t = f(O) ? O : false; + i = f(x) ? x : false; + } else if (f(m)) { + t = m; i = false; } else { t = false; @@ -2194,11 +2195,11 @@ } } ]; }; - var en = { + var nn = { x: 0, y: 0 }; - var nn = { + var tn = { ar: { t: 0, r: 0, @@ -2215,8 +2216,8 @@ paddingBottom: 0, paddingLeft: 0 }, - Er: en, - Ar: en, + Er: nn, + Ar: nn, Cr: { x: "hidden", y: "hidden" @@ -2226,15 +2227,15 @@ y: false }, gr: false, - wr: false + br: false }; - var tn = function createStructureSetup(r, a) { - var e = $r(a, {}); - var n = Jr(nn); - var t = Xr(), i = t[0], v = t[1], o = t[2]; + var vn = function createStructureSetup(r, a) { + var e = Jr(a, {}); + var n = Kr(tn); + var t = Zr(), i = t[0], v = t[1], o = t[2]; var u = n[0]; - var f = Ae(r), l = f[0], c = f[1], s = f[2]; - var d = qe(l, n); + var f = Pe(r), l = f[0], c = f[1], s = f[2]; + var d = Ue(l, n); var g = function triggerUpdateEvent(r, a, e) { var n = E(r).some((function(a) { return r[a]; @@ -2243,59 +2244,59 @@ o("u", [ r, a, e ]); } }; - var h = an(l, n, (function(r) { + var h = en(l, n, (function(r) { g(d(e, r), {}, false); - })), p = h[0], w = h[1], b = h[2], m = h[3]; + })), p = h[0], b = h[1], w = h[2], m = h[3]; var y = u.bind(0); y.Fr = function(r) { i("u", r); }; y.qr = function() { - w(); + b(); c(); }; y.Ur = l; return [ function(r, e) { - var n = $r(a, r, e); + var n = Jr(a, r, e); m(n); - g(d(n, b(), e), r, !!e); + g(d(n, w(), e), r, !!e); }, y, function() { v(); p(); s(); } ]; }; - var vn = Math.round; - var un = function getClientOffset(r) { + var un = Math.round; + var fn = function getClientOffset(r) { return { x: r.clientX, y: r.clientY }; }; - var fn = function getScale(r) { - var a = Vr(r), e = a.width, n = a.height; - var t = Hr(r), i = t.w, v = t.h; + var ln = function getScale(r) { + var a = jr(r), e = a.width, n = a.height; + var t = Mr(r), i = t.w, v = t.h; return { - x: vn(e) / i || 1, - y: vn(n) / v || 1 + x: un(e) / i || 1, + y: un(n) / v || 1 }; }; - var ln = function continuePointerDown(r, a, e) { + var cn = function continuePointerDown(r, a, e) { var n = a.scrollbars; var t = r.button, i = r.isPrimary, v = r.pointerType; var o = n.pointers; return 0 === t && i && n[e] && (o || []).includes(v); }; - var cn = function createRootClickStopPropagationEvents(r, a) { - return qr(r, "mousedown", qr.bind(0, a, "click", Ur, { + var sn = function createRootClickStopPropagationEvents(r, a) { + return Ur(r, "mousedown", Ur.bind(0, a, "click", Nr, { A: true, O: true }), { O: true }); }; - var sn = function createDragScrollingEvents(r, a, e, n, t, i) { - var v = be(), o = v.B; + var dn = function createDragScrollingEvents(r, a, e, n, t, i) { + var v = me(), o = v.B; var u = e.Nr, f = e.Yr, l = e.Wr; var c = "scroll" + (i ? "Left" : "Top"); var s = i ? "x" : "y"; @@ -2303,24 +2304,24 @@ var g = function createOnPointerMoveHandler(r, a, e) { return function(v) { var g = t(), h = g.Ar; - var p = (un(v)[s] - a) * e; - var w = Hr(f)[d] - Hr(u)[d]; - var b = p / w; - var m = b * h[s]; - var y = Tr(l); + var p = (fn(v)[s] - a) * e; + var b = Mr(f)[d] - Mr(u)[d]; + var w = p / b; + var m = w * h[s]; + var y = zr(l); var S = y && i ? o.n || o.i ? 1 : -1 : 1; n[c] = r + m * S; }; }; - return qr(u, "pointerdown", (function(e) { - if (ln(e, r, "dragScroll")) { - var t = qr(a, "selectstart", (function(r) { - return Nr(r); + return Ur(u, "pointerdown", (function(e) { + if (cn(e, r, "dragScroll")) { + var t = Ur(a, "selectstart", (function(r) { + return Yr(r); }), { C: false }); - var i = qr(u, "pointermove", g(n[c] || 0, un(e)[s], 1 / fn(n)[s])); - qr(u, "pointerup", (function(r) { + var i = Ur(u, "pointermove", g(n[c] || 0, fn(e)[s], 1 / ln(n)[s])); + Ur(u, "pointerup", (function(r) { t(); i(); u.releasePointerCapture(r.pointerId); @@ -2331,80 +2332,80 @@ } })); }; - var dn = function createScrollbarsSetupEvents(r, a) { + var gn = function createScrollbarsSetupEvents(r, a) { return function(e, n, t, i, v) { var o = e.Wr; - return O.bind(0, [ qr(o, "pointerenter", (function() { + return O.bind(0, [ Ur(o, "pointerenter", (function() { n(Ta, true); - })), qr(o, "pointerleave pointercancel", (function() { + })), Ur(o, "pointerleave pointercancel", (function() { n(Ta); - })), cn(o, t), sn(r, t, e, i, a, v) ]); + })), sn(o, t), dn(r, t, e, i, a, v) ]); }; }; - var gn = Math.min, hn = Math.max, pn = Math.abs, _n = Math.round; + var hn = Math.min, pn = Math.max, _n = Math.abs, bn = Math.round; var wn = function getScrollbarHandleLengthRatio(r, a, e, n) { if (n) { var t = e ? "x" : "y"; var i = n.Ar, v = n.Er; var o = v[t]; var u = i[t]; - return hn(0, gn(1, o / (o + u))); + return pn(0, hn(1, o / (o + u))); } var f = e ? "w" : "h"; - var l = Hr(r)[f]; - var c = Hr(a)[f]; - return hn(0, gn(1, l / c)); + var l = Mr(r)[f]; + var c = Mr(a)[f]; + return pn(0, hn(1, l / c)); }; - var bn = function getScrollbarHandleOffsetRatio(r, a, e, n, t, i) { - var v = be(), o = v.B; + var mn = function getScrollbarHandleOffsetRatio(r, a, e, n, t, i) { + var v = me(), o = v.B; var u = i ? "x" : "y"; var f = i ? "Left" : "Top"; var l = n.Ar; - var c = _n(l[u]); - var s = pn(e["scroll" + f]); + var c = bn(l[u]); + var s = _n(e["scroll" + f]); var d = i && t; var g = o.i ? s : c - s; var h = d ? g : s; - var p = gn(1, h / c); - var w = wn(r, a, i); - return 1 / w * (1 - w) * p; + var p = hn(1, h / c); + var b = wn(r, a, i); + return 1 / b * (1 - b) * p; }; - var mn = function createScrollbarsSetupElements(r, a, e) { - var n = be(), t = n.U; + var yn = function createScrollbarsSetupElements(r, a, e) { + var n = me(), t = n.U; var i = t(), v = i.scrollbarsSlot; var o = a.ur, u = a.J, f = a.K, l = a.rr, s = a.cr, d = a.tr; var g = s ? {} : r, h = g.scrollbarsSlot; - var p = Se([ u, f, l ], (function() { + var p = Ce([ u, f, l ], (function() { return f; }), v, h); - var w = function scrollbarStructureAddRemoveClass(r, a, e) { + var b = function scrollbarStructureAddRemoveClass(r, a, e) { var n = e ? pr : hr; each(r, (function(r) { n(r.Wr, a); })); }; - var b = function scrollbarsHandleStyle(r, a) { + var w = function scrollbarsHandleStyle(r, a) { each(r, (function(r) { var e = a(r), n = e[0], t = e[1]; style(n, t); })); }; var m = function scrollbarStructureRefreshHandleLength(r, a, e) { - b(r, (function(r) { + w(r, (function(r) { var n; var t = r.Nr, i = r.Yr; - return [ t, (n = {}, n[e ? "width" : "height"] = (100 * wn(t, i, e, a)).toFixed(5) + "%", + return [ t, (n = {}, n[e ? "width" : "height"] = (100 * wn(t, i, e, a)).toFixed(3) + "%", n) ]; })); }; var S = function scrollbarStructureRefreshHandleOffset(r, a, e) { var n = e ? "X" : "Y"; - b(r, (function(r) { + w(r, (function(r) { var t = r.Nr, i = r.Yr, v = r.Wr; - var o = bn(t, i, d, a, Tr(v), e); + var o = mn(t, i, d, a, zr(v), e); var u = o === o; return [ t, { - transform: u ? "translate" + n + "(" + (100 * o).toFixed(5) + "%)" : "" + transform: u ? "translate" + n + "(" + (100 * o).toFixed(3) + "%)" : "" } ]; })); }; @@ -2415,24 +2416,24 @@ var n = c(e); var t = n ? e : true; var i = n ? !e : true; - t && w(E, r, a); - i && w(A, r, a); + t && b(E, r, a); + i && b(A, r, a); }; - var T = function refreshScrollbarsHandleLength(r) { + var z = function refreshScrollbarsHandleLength(r) { m(E, r, true); m(A, r); }; - var z = function refreshScrollbarsHandleOffset(r) { + var T = function refreshScrollbarsHandleOffset(r) { S(E, r, true); S(A, r); }; var L = function generateScrollbarDOM(r) { - var a = r ? Sa : Ca; + var a = r ? Ca : Oa; var n = r ? E : A; - var t = C(n) ? Pa : ""; - var i = Z(ma + " " + a + " " + t); - var v = Z(Oa); - var u = Z(xa); + var t = C(n) ? za : ""; + var i = Z(ya + " " + a + " " + t); + var v = Z(xa); + var u = Z(Ea); var f = { Wr: i, Yr: v, @@ -2444,34 +2445,34 @@ y(x, [ X.bind(0, i), e(f, P, o, d, r) ]); return f; }; - var D = L.bind(0, true); - var H = L.bind(0, false); + var H = L.bind(0, true); + var D = L.bind(0, false); var M = function appendElements() { Y(p, E[0].Wr); Y(p, A[0].Wr); lr((function() { - P(Pa); + P(za); }), 300); }; - D(); H(); + D(); return [ { - Gr: T, - Xr: z, + Gr: z, + Xr: T, Zr: P, $r: { Jr: E, - Kr: D, - Qr: b.bind(0, E) + Kr: H, + Qr: w.bind(0, E) }, ra: { Jr: A, - Kr: H, - Qr: b.bind(0, A) + Kr: D, + Qr: w.bind(0, A) } }, M, O.bind(0, x) ]; }; - var yn = function createSelfCancelTimeout(r) { + var Sn = function createSelfCancelTimeout(r) { var a; var e = r ? lr : fr; var n = r ? cr : ur; @@ -2482,25 +2483,25 @@ return n(a); } ]; }; - var Sn = function createScrollbarsSetup(r, a, e) { + var Cn = function createScrollbarsSetup(r, a, e) { var n; var t; var i; var v; var o; var u = 0; - var f = Jr({}); + var f = Kr({}); var l = f[0]; - var c = yn(), s = c[0], d = c[1]; - var g = yn(), h = g[0], p = g[1]; - var w = yn(100), b = w[0], m = w[1]; - var y = yn(100), S = y[0], C = y[1]; - var x = yn((function() { + var c = Sn(), s = c[0], d = c[1]; + var g = Sn(), h = g[0], p = g[1]; + var b = Sn(100), w = b[0], m = b[1]; + var y = Sn(100), S = y[0], C = y[1]; + var x = Sn((function() { return u; })), E = x[0], A = x[1]; - var P = mn(r, e.Ur, dn(a, e)), T = P[0], z = P[1], L = P[2]; - var D = e.Ur, H = D.K, I = D.rr, V = D.tr, j = D.ir, k = D.$, B = D.Z; - var q = T.$r, U = T.ra, N = T.Zr, Y = T.Gr, W = T.Xr; + var P = yn(r, e.Ur, gn(a, e)), z = P[0], T = P[1], L = P[2]; + var H = e.Ur, D = H.K, I = H.rr, V = H.tr, j = H.ir, k = H.$, B = H.Z; + var q = z.$r, U = z.ra, N = z.Zr, Y = z.Gr, W = z.Xr; var G = q.Qr; var X = U.Qr; var Z = function styleScrollbarPosition(r) { @@ -2513,10 +2514,10 @@ var $ = function manageScrollbarsAutoHide(r, a) { A(); if (r) { - N(La); + N(Ha); } else { var e = function hide() { - return N(La, true); + return N(Ha, true); }; if (u > 0 && !a) { E(e); @@ -2529,12 +2530,12 @@ v = t; v && $(true); }; - var K = [ m, A, C, p, d, L, qr(H, "pointerover", J, { + var K = [ m, A, C, p, d, L, Ur(D, "pointerover", J, { A: true - }), qr(H, "pointerenter", J), qr(H, "pointerleave", (function() { + }), Ur(D, "pointerenter", J), Ur(D, "pointerleave", (function() { v = false; t && $(false); - })), qr(H, "pointermove", (function() { + })), Ur(D, "pointermove", (function() { n && s((function() { m(); $(true); @@ -2542,11 +2543,11 @@ n && $(false); })); })); - })), qr(j, "scroll", (function() { + })), Ur(j, "scroll", (function() { h((function() { W(e()); i && $(true); - b((function() { + w((function() { i && !v && $(false); })); })); @@ -2554,27 +2555,27 @@ k && X(Z); })) ]; var Q = l.bind(0); - Q.Ur = T; - Q.qr = z; + Q.Ur = z; + Q.qr = T; return [ function(r, v, f) { - var l = f.zr, c = f.Lr, s = f.Tr, d = f.br; - var g = $r(a, r, v); + var l = f.Tr, c = f.Lr, s = f.zr, d = f.wr; + var g = Jr(a, r, v); var h = e(); - var p = h.Ar, w = h.Cr, b = h.wr; + var p = h.Ar, b = h.Cr, w = h.br; var m = g("scrollbars.theme"), y = m[0], S = m[1]; var C = g("scrollbars.visibility"), O = C[0], x = C[1]; var E = g("scrollbars.autoHide"), A = E[0], P = E[1]; - var T = g("scrollbars.autoHideDelay"), z = T[0]; - var L = g("scrollbars.dragScroll"), D = L[0], H = L[1]; + var z = g("scrollbars.autoHideDelay"), T = z[0]; + var L = g("scrollbars.dragScroll"), H = L[0], D = L[1]; var M = g("scrollbars.clickScroll"), R = M[0], I = M[1]; - var V = l || c || d; - var j = s || x; + var V = l || c || d || v; + var j = s || x || v; var k = function setScrollbarVisibility(r, a) { var e = "visible" === O || "auto" === O && "scroll" === r; - N(Ea, e, a); + N(Aa, e, a); return e; }; - u = z; + u = T; if (S) { N(o); N(y, true); @@ -2586,90 +2587,90 @@ i = "never" !== A; $(!i, true); } - if (H) { - N(Ha, D); + if (D) { + N(Ma, H); } if (I) { N(Da, R); } if (j) { - var F = k(w.x, true); - var q = k(w.y, false); + var F = k(b.x, true); + var q = k(b.y, false); var U = F && q; - N(Aa, !U); + N(Pa, !U); } if (V) { Y(h); W(h); - N(za, !p.x, true); - N(za, !p.y, false); - N(ya, b && !B); + N(La, !p.x, true); + N(La, !p.y, false); + N(Sa, w && !B); } }, Q, O.bind(0, K) ]; }; - var Cn = new Set; - var On = new WeakMap; - var xn = function addInstance(r, a) { - On.set(r, a); - Cn.add(r); + var On = new Set; + var xn = new WeakMap; + var En = function addInstance(r, a) { + xn.set(r, a); + On.add(r); }; - var En = function removeInstance(r) { + var An = function removeInstance(r) { + xn.delete(r); On.delete(r); - Cn.delete(r); }; - var An = function getInstance(r) { - return On.get(r); + var Pn = function getInstance(r) { + return xn.get(r); }; - var Pn = function OverlayScrollbars(r, a, e) { + var zn = function OverlayScrollbars(r, a, e) { var n = false; - var t = be(), i = t.Y, v = t.q; - var o = ja(); - var u = w(r); + var t = me(), i = t.Y, v = t.q; + var o = ka(); + var u = b(r); var f = u ? r : r.target; - var l = An(f); + var l = Pn(f); if (l) { return l; } - var c = o[Qa]; + var c = o[re]; var d = function validateOptions(r) { var a = r || {}; var e = c && c.P; return e ? e(a, true) : a; }; var g = A({}, i(), d(a)); - var h = Xr(e), p = h[0], b = h[1], m = h[2]; - var y = tn(r, g), S = y[0], C = y[1], O = y[2]; - var x = Sn(r, g, C), T = x[0], z = x[1], L = x[2]; - var D = function update(r, a) { + var h = Zr(e), p = h[0], w = h[1], m = h[2]; + var y = vn(r, g), S = y[0], C = y[1], O = y[2]; + var x = Cn(r, g, C), z = x[0], T = x[1], L = x[2]; + var H = function update(r, a) { S(r, !!a); }; - var H = v(D.bind(0, {}, true)); + var D = v(H.bind(0, {}, true)); var M = function destroy(r) { - En(f); - H(); + An(f); + D(); L(); O(); n = true; m("destroyed", [ R, !!r ]); - b(); + w(); }; var R = { options: function options(r) { if (r) { - var a = Ia(g, d(r)); + var a = Va(g, d(r)); if (!P(a)) { A(g, a); - D(a); + H(a); } } return A({}, g); }, on: p, off: function off(r, a) { - r && a && b(r, a); + r && a && w(r, a); }, state: function state() { - var r = C(), a = r.Er, e = r.Ar, t = r.Cr, i = r.Pr, v = r.ar, o = r.mr, u = r.wr; + var r = C(), a = r.Er, e = r.Ar, t = r.Cr, i = r.Pr, v = r.ar, o = r.mr, u = r.br; return A({}, { overflowEdge: a, overflowAmount: e, @@ -2682,23 +2683,47 @@ }); }, elements: function elements() { - var r = C.Ur, a = r.J, e = r.K, n = r.ar, t = r.rr, i = r.er; + var r = C.Ur, a = r.J, e = r.K, n = r.ar, t = r.rr, i = r.er, v = r.tr, o = r.ir; + var u = T.Ur, f = u.$r, l = u.ra; + var c = function translateScrollbarStructure(r) { + var a = r.Nr, e = r.Yr, n = r.Wr; + return { + scrollbar: n, + track: e, + handle: a + }; + }; + var s = function translateScrollbarsSetupElement(r) { + var a = r.Jr, e = r.Kr; + var n = c(a[0]); + return A({}, n, { + clone: function clone() { + var r = c(e()); + z({}, true, {}); + return r; + } + }); + }; return A({}, { target: a, host: e, padding: n || t, viewport: t, - content: i || t + content: i || t, + scrollOffsetElement: v, + scrollEventElement: o, + scrollbarHorizontal: s(f), + scrollbarVertical: s(l) }); }, update: function update(r) { - D({}, r); + H({}, r); return R; }, destroy: M.bind(0) }; C.Fr((function(r, a, e) { - T(a, e, r); + z(a, e, r); })); each(E(o), (function(r) { var a = o[r]; @@ -2706,16 +2731,16 @@ a(OverlayScrollbars, R); } })); - if (Ce(!u && r.cancel, C.Ur)) { + if (Oe(!u && r.cancel, C.Ur)) { M(true); return R; } C.qr(); - z.qr(); - xn(f, R); + T.qr(); + En(f, R); m("initialized", [ R ]); C.Fr((function(r, a, e) { - var n = r.pr, t = r.br, i = r.hr, v = r.zr, o = r.Lr, u = r.Tr, f = r._r, l = r.Or; + var n = r.pr, t = r.wr, i = r.hr, v = r.Tr, o = r.Lr, u = r.zr, f = r._r, l = r.Or; m("updated", [ R, { updateHints: { sizeChanged: n, @@ -2733,9 +2758,9 @@ })); return R.update(true); }; - Pn.plugin = ka; - Pn.env = function() { - var r = be(), a = r.k, e = r.D, n = r.L, t = r.B, i = r.F, v = r.H, o = r.G, u = r.X, f = r.U, l = r.N, c = r.Y, s = r.W; + zn.plugin = Ba; + zn.env = function() { + var r = me(), a = r.k, e = r.H, n = r.L, t = r.B, i = r.F, v = r.D, o = r.G, u = r.X, f = r.U, l = r.N, c = r.Y, s = r.W; return A({}, { scrollbarsSize: a, scrollbarsOverlaid: e, @@ -2751,9 +2776,9 @@ setDefaultOptions: s }); }; - r.OverlayScrollbars = Pn; - r.scrollbarsHidingPlugin = se; - r.sizeObserverPlugin = te; + r.OverlayScrollbars = zn; + r.scrollbarsHidingPlugin = de; + r.sizeObserverPlugin = ie; Object.defineProperty(r, "v", { value: true }); diff --git a/packages/overlayscrollbars/dist/overlayscrollbars.js.map b/packages/overlayscrollbars/dist/overlayscrollbars.js.map index e4c5718..97bcf3e 100644 --- a/packages/overlayscrollbars/dist/overlayscrollbars.js.map +++ b/packages/overlayscrollbars/dist/overlayscrollbars.js.map @@ -1 +1 @@ -{"version":3,"file":"overlayscrollbars.js","sources":["../src/support/utils/array.ts","../src/support/dom/style.ts","../src/support/cache.ts","../src/support/utils/types.ts","../src/support/utils/object.ts","../src/support/dom/attribute.ts","../src/support/dom/traversal.ts","../src/support/dom/manipulation.ts","../src/support/dom/create.ts","../src/support/compatibility/vendors.ts","../src/support/compatibility/apis.ts","../src/support/dom/class.ts","../src/support/utils/equal.ts","../src/support/utils/function.ts","../src/support/dom/dimensions.ts","../src/support/dom/events.ts","../src/support/dom/offset.ts","../src/support/eventListeners.ts","../src/setups/setups.ts","../src/classnames.ts","../src/options.ts","../src/plugins/plugins.ts","../../../node_modules/@babel/runtime/helpers/extends.js","../src/plugins/optionsValidationPlugin/validation.ts","../src/plugins/optionsValidationPlugin/optionsValidationPlugin.ts","../src/plugins/sizeObserverPlugin/sizeObserverPlugin.ts","../src/plugins/scrollbarsHidingPlugin/scrollbarsHidingPlugin.ts","../src/environment.ts","../src/initialization.ts","../src/setups/structureSetup/structureSetup.elements.ts","../src/setups/structureSetup/updateSegments/trinsicUpdateSegment.ts","../src/setups/structureSetup/updateSegments/paddingUpdateSegment.ts","../src/setups/structureSetup/updateSegments/overflowUpdateSegment.ts","../src/setups/structureSetup/structureSetup.update.ts","../src/observers/sizeObserver.ts","../src/observers/trinsicObserver.ts","../src/observers/domObserver.ts","../src/setups/structureSetup/structureSetup.observers.ts","../src/setups/structureSetup/structureSetup.ts","../src/setups/scrollbarsSetup/scrollbarsSetup.events.ts","../src/setups/scrollbarsSetup/scrollbarsSetup.calculations.ts","../src/setups/scrollbarsSetup/scrollbarsSetup.elements.ts","../src/setups/scrollbarsSetup/scrollbarsSetup.ts","../src/instances.ts","../src/overlayscrollbars.ts"],"sourcesContent":["import { isArrayLike, isString } from 'support/utils/types';\r\nimport { PlainObject } from 'typings';\r\n\r\ntype RunEachItem = ((...args: any) => any | any[]) | null | undefined;\r\n\r\n/**\r\n * Iterates through a array or object\r\n * @param arrayLikeOrObject The array or object through which shall be iterated.\r\n * @param callback The function which is responsible for the iteration.\r\n * If the function returns true its treated like a \"continue\" statement.\r\n * If the function returns false its treated like a \"break\" statement.\r\n */\r\nexport function each(\r\n array: Array | ReadonlyArray,\r\n callback: (value: T, indexOrKey: number, source: Array) => boolean | unknown\r\n): Array | ReadonlyArray;\r\nexport function each(\r\n array: Array | ReadonlyArray | false | null | undefined,\r\n callback: (value: T, indexOrKey: number, source: Array) => boolean | unknown\r\n): Array | ReadonlyArray | false | null | undefined;\r\nexport function each(\r\n arrayLikeObject: ArrayLike,\r\n callback: (value: T, indexOrKey: number, source: ArrayLike) => boolean | unknown\r\n): ArrayLike;\r\nexport function each(\r\n arrayLikeObject: ArrayLike | false | null | undefined,\r\n callback: (value: T, indexOrKey: number, source: ArrayLike) => boolean | unknown\r\n): ArrayLike | false | null | undefined;\r\nexport function each(\r\n obj: PlainObject,\r\n callback: (value: any, indexOrKey: string, source: PlainObject) => boolean | unknown\r\n): PlainObject;\r\nexport function each(\r\n obj: PlainObject | false | null | undefined,\r\n callback: (value: any, indexOrKey: string, source: PlainObject) => boolean | unknown\r\n): PlainObject | false | null | undefined;\r\nexport function each(\r\n source: Array | ArrayLike | ReadonlyArray | PlainObject | false | null | undefined,\r\n callback: (value: T, indexOrKey: any, source: any) => boolean | unknown\r\n): Array | ArrayLike | ReadonlyArray | PlainObject | false | null | undefined {\r\n if (isArrayLike(source)) {\r\n for (let i = 0; i < source.length; i++) {\r\n if (callback(source[i], i, source) === false) {\r\n break;\r\n }\r\n }\r\n } else if (source) {\r\n each(Object.keys(source), (key) => callback(source[key], key, source));\r\n }\r\n return source;\r\n}\r\n\r\n/**\r\n * Returns the index of the given inside the given array or -1 if the given item isn't part of the given array.\r\n * @param arr The array.\r\n * @param item The item.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0.\r\n */\r\nexport const indexOf = (arr: T[], item: T, fromIndex?: number): number =>\r\n arr.indexOf(item, fromIndex);\r\n\r\n/**\r\n * Pushesh all given items into the given array and returns it.\r\n * @param array The array the items shall be pushed into.\r\n * @param items The items which shall be pushed into the array.\r\n */\r\nexport const push = (array: T[], items: T | ArrayLike, arrayIsSingleItem?: boolean): T[] => {\r\n !arrayIsSingleItem && !isString(items) && isArrayLike(items)\r\n ? Array.prototype.push.apply(array, items as T[])\r\n : array.push(items as T);\r\n return array;\r\n};\r\n\r\n/**\r\n * Creates a shallow-copied Array instance from an array-like or iterable object.\r\n * @param arr The object from which the array instance shall be created.\r\n */\r\nexport const from = (arr?: ArrayLike | Set) => {\r\n const original = Array.from;\r\n const result: T[] = [];\r\n\r\n if (original && arr) {\r\n return original(arr);\r\n }\r\n\r\n if (arr instanceof Set) {\r\n arr.forEach((value) => {\r\n push(result, value);\r\n });\r\n } else {\r\n each(arr, (elm) => {\r\n push(result, elm);\r\n });\r\n }\r\n\r\n return result;\r\n};\r\n\r\n/**\r\n * Check whether the passed array is empty.\r\n * @param array The array which shall be checked.\r\n */\r\nexport const isEmptyArray = (array: any[] | null | undefined): boolean =>\r\n !!array && array.length === 0;\r\n\r\n/**\r\n * Calls all functions in the passed array/set of functions.\r\n * @param arr The array filled with function which shall be called.\r\n * @param args The args with which each function is called.\r\n * @param keep True when the Set / array should not be cleared afterwards, false otherwise.\r\n */\r\nexport const runEachAndClear = (arr: RunEachItem[], args?: any[], keep?: boolean): void => {\r\n // eslint-disable-next-line prefer-spread\r\n const runFn = (fn: RunEachItem) => fn && fn.apply(undefined, args || []);\r\n each(arr, runFn);\r\n !keep && ((arr as any[]).length = 0);\r\n};\r\n","import { each, keys } from 'support/utils';\r\nimport { isString, isNumber, isArray, isUndefined } from 'support/utils/types';\r\nimport { PlainObject, StyleObject } from 'typings';\r\n\r\nexport interface TRBL {\r\n t: number;\r\n r: number;\r\n b: number;\r\n l: number;\r\n}\r\n\r\nconst cssNumber = {\r\n // animationiterationcount: 1,\r\n // columncount: 1,\r\n // fillopacity: 1,\r\n // flexgrow: 1,\r\n // flexshrink: 1,\r\n // fontweight: 1,\r\n // lineheight: 1,\r\n // order: 1,\r\n // orphans: 1,\r\n // widows: 1,\r\n // zoom: 1,\r\n opacity: 1,\r\n zindex: 1,\r\n};\r\n\r\nconst parseToZeroOrNumber = (value: string, toFloat?: boolean): number => {\r\n /* istanbul ignore next */\r\n const num = toFloat ? parseFloat(value) : parseInt(value, 10);\r\n // num === num means num is not NaN\r\n /* istanbul ignore next */\r\n return num === num ? num : 0; // eslint-disable-line no-self-compare\r\n};\r\n\r\nconst adaptCSSVal = (prop: string, val: string | number): string | number =>\r\n !cssNumber[prop.toLowerCase()] && isNumber(val) ? `${val}px` : val;\r\n\r\nconst getCSSVal = (elm: HTMLElement, computedStyle: CSSStyleDeclaration, prop: string): string =>\r\n /* istanbul ignore next */\r\n computedStyle != null\r\n ? computedStyle[prop] || computedStyle.getPropertyValue(prop)\r\n : elm.style[prop];\r\n\r\nconst setCSSVal = (elm: HTMLElement, prop: string, val: string | number): void => {\r\n try {\r\n const { style: elmStyle } = elm;\r\n if (!isUndefined(elmStyle[prop])) {\r\n elmStyle[prop] = adaptCSSVal(prop, val);\r\n } else {\r\n elmStyle.setProperty(prop, val as string);\r\n }\r\n } catch (e) {}\r\n};\r\n\r\n/**\r\n * Gets or sets the passed styles to the passed element.\r\n * @param elm The element to which the styles shall be applied to / be read from.\r\n * @param styles The styles which shall be set or read.\r\n */\r\nexport function style(\r\n elm: HTMLElement | false | null | undefined,\r\n styles: StyleObject\r\n): void;\r\nexport function style(\r\n elm: HTMLElement | false | null | undefined,\r\n styles: string\r\n): string;\r\nexport function style(\r\n elm: HTMLElement | false | null | undefined,\r\n styles: Array | string\r\n): { [key: string]: string };\r\nexport function style(\r\n elm: HTMLElement | false | null | undefined,\r\n styles: StyleObject | Array | string\r\n): { [key: string]: string } | string | void {\r\n const getSingleStyle = isString(styles);\r\n const getStyles = isArray(styles) || getSingleStyle;\r\n\r\n if (getStyles) {\r\n let getStylesResult: string | PlainObject = getSingleStyle ? '' : {};\r\n if (elm) {\r\n const computedStyle: CSSStyleDeclaration = window.getComputedStyle(elm, null);\r\n getStylesResult = getSingleStyle\r\n ? getCSSVal(elm, computedStyle, styles as string)\r\n : (styles as Array).reduce((result, key) => {\r\n result[key] = getCSSVal(elm, computedStyle, key as string);\r\n return result;\r\n }, getStylesResult);\r\n }\r\n return getStylesResult;\r\n }\r\n elm && each(keys(styles), (key) => setCSSVal(elm, key, styles[key]));\r\n}\r\n\r\n/**\r\n * Hides the passed element (display: none).\r\n * @param elm The element which shall be hidden.\r\n */\r\nexport const hide = (elm: HTMLElement | false | null | undefined): void => {\r\n style(elm, { display: 'none' });\r\n};\r\n\r\n/**\r\n * Shows the passed element (display: block).\r\n * @param elm The element which shall be shown.\r\n */\r\nexport const show = (elm: HTMLElement | false | null | undefined): void => {\r\n style(elm, { display: 'block' });\r\n};\r\n\r\nexport const directionIsRTL = (elm: HTMLElement | false | null | undefined): boolean =>\r\n style(elm, 'direction') === 'rtl';\r\n\r\n/**\r\n * Returns the top right bottom left values of the passed css property.\r\n * @param elm The element of which the values shall be returned.\r\n * @param propertyPrefix The css property prefix. (e.g. \"border\")\r\n * @param propertySuffix The css property suffix. (e.g. \"width\")\r\n */\r\nexport const topRightBottomLeft = (\r\n elm?: HTMLElement | false | null | undefined,\r\n propertyPrefix?: string,\r\n propertySuffix?: string\r\n): TRBL => {\r\n const finalPrefix = propertyPrefix ? `${propertyPrefix}-` : '';\r\n const finalSuffix = propertySuffix ? `-${propertySuffix}` : '';\r\n const top = `${finalPrefix}top${finalSuffix}`;\r\n const right = `${finalPrefix}right${finalSuffix}`;\r\n const bottom = `${finalPrefix}bottom${finalSuffix}`;\r\n const left = `${finalPrefix}left${finalSuffix}`;\r\n const result = style(elm, [top, right, bottom, left]);\r\n return {\r\n t: parseToZeroOrNumber(result[top]),\r\n r: parseToZeroOrNumber(result[right]),\r\n b: parseToZeroOrNumber(result[bottom]),\r\n l: parseToZeroOrNumber(result[left]),\r\n };\r\n};\r\n","export interface CacheOptions {\r\n // initial value of _value.\r\n _initialValue: Value;\r\n // Custom comparison function if shallow compare isn't enough. Returns true if nothing changed.\r\n _equal?: EqualCachePropFunction;\r\n // If true always updates _value and _previous, otherwise they update only when they changed.\r\n _alwaysUpdateValues?: boolean;\r\n}\r\n\r\nexport type CacheValues = [value: T, changed: boolean, previous?: T];\r\n\r\nexport type EqualCachePropFunction = (currentVal: Value, newVal: Value) => boolean;\r\n\r\nexport type CacheUpdater = (current: Value, previous?: Value) => Value;\r\n\r\nexport type UpdateCacheContextual = (newValue: Value, force?: boolean) => CacheValues;\r\n\r\nexport type UpdateCache = (force?: boolean) => CacheValues;\r\n\r\nexport type GetCurrentCache = (force?: boolean) => CacheValues;\r\n\r\nexport type Cache = [UpdateCache, GetCurrentCache];\r\n\r\nexport type CacheContextual = [UpdateCacheContextual, GetCurrentCache];\r\n\r\ntype CreateCache = {\r\n (options: CacheOptions): CacheContextual;\r\n (options: CacheOptions, update: CacheUpdater): Cache;\r\n (options: CacheOptions, update?: CacheUpdater):\r\n | CacheContextual\r\n | Cache;\r\n};\r\n\r\nexport const createCache: CreateCache = (\r\n options: CacheOptions,\r\n update?: CacheUpdater\r\n): CacheContextual | Cache => {\r\n const { _initialValue, _equal, _alwaysUpdateValues } = options;\r\n let _value: Value = _initialValue;\r\n let _previous: Value | undefined;\r\n\r\n const cacheUpdateContextual: UpdateCacheContextual = (newValue, force?) => {\r\n const curr = _value;\r\n\r\n const newVal = newValue;\r\n const changed = force || (_equal ? !_equal(curr, newVal) : curr !== newVal);\r\n\r\n if (changed || _alwaysUpdateValues) {\r\n _value = newVal;\r\n _previous = curr;\r\n }\r\n\r\n return [_value, changed, _previous];\r\n };\r\n const cacheUpdateIsolated: UpdateCache = (force?) =>\r\n cacheUpdateContextual(update!(_value, _previous), force);\r\n\r\n const getCurrentCache: GetCurrentCache = (force?: boolean) => [\r\n _value,\r\n !!force, // changed\r\n _previous,\r\n ];\r\n\r\n return [update ? cacheUpdateIsolated : cacheUpdateContextual, getCurrentCache] as\r\n | CacheContextual\r\n | Cache;\r\n};\r\n","import { PlainObject } from 'typings';\r\n\r\nconst ElementNodeType = Node.ELEMENT_NODE;\r\nconst { toString, hasOwnProperty } = Object.prototype;\r\n\r\nexport const isUndefined = (obj: any): obj is undefined => obj === undefined;\r\n\r\nexport const isNull = (obj: any): obj is null => obj === null;\r\n\r\nexport const type = (obj: any): string =>\r\n isUndefined(obj) || isNull(obj)\r\n ? `${obj}`\r\n : toString\r\n .call(obj)\r\n .replace(/^\\[object (.+)\\]$/, '$1')\r\n .toLowerCase();\r\n\r\nexport const isNumber = (obj: any): obj is number => typeof obj === 'number';\r\n\r\nexport const isString = (obj: any): obj is string => typeof obj === 'string';\r\n\r\nexport const isBoolean = (obj: any): obj is boolean => typeof obj === 'boolean';\r\n\r\nexport const isFunction = (obj: any): obj is (...args: any[]) => any => typeof obj === 'function';\r\n\r\nexport const isArray = (obj: any): obj is Array => Array.isArray(obj);\r\n\r\nexport const isObject = (obj: any): boolean =>\r\n typeof obj === 'object' && !isArray(obj) && !isNull(obj);\r\n\r\n/**\r\n * Returns true if the given object is array like, false otherwise.\r\n * @param obj The Object\r\n */\r\nexport const isArrayLike = (obj: any): obj is ArrayLike => {\r\n const length = !!obj && obj.length;\r\n const lengthCorrectFormat = isNumber(length) && length > -1 && length % 1 == 0; // eslint-disable-line eqeqeq\r\n\r\n return isArray(obj) || (!isFunction(obj) && lengthCorrectFormat)\r\n ? length > 0 && isObject(obj)\r\n ? length - 1 in obj\r\n : true\r\n : false;\r\n};\r\n\r\n/**\r\n * Returns true if the given object is a \"plain\" (e.g. { key: value }) object, false otherwise.\r\n * @param obj The Object.\r\n */\r\nexport const isPlainObject = (obj: any): obj is PlainObject => {\r\n if (!obj || !isObject(obj) || type(obj) !== 'object') return false;\r\n\r\n let key;\r\n const cstr = 'constructor';\r\n const ctor = obj[cstr];\r\n const ctorProto = ctor && ctor.prototype;\r\n const hasOwnConstructor = hasOwnProperty.call(obj, cstr);\r\n const hasIsPrototypeOf = ctorProto && hasOwnProperty.call(ctorProto, 'isPrototypeOf');\r\n\r\n if (ctor && !hasOwnConstructor && !hasIsPrototypeOf) {\r\n return false;\r\n }\r\n\r\n /* eslint-disable no-restricted-syntax */\r\n for (key in obj) {\r\n /**/\r\n }\r\n /* eslint-enable */\r\n\r\n return isUndefined(key) || hasOwnProperty.call(obj, key);\r\n};\r\n\r\n/**\r\n * Checks whether the given object is a HTMLElement.\r\n * @param obj The object which shall be checked.\r\n */\r\nexport const isHTMLElement = (obj: any): obj is HTMLElement => {\r\n const instanceofObj = HTMLElement;\r\n return obj\r\n ? instanceofObj\r\n ? obj instanceof instanceofObj\r\n : obj.nodeType === ElementNodeType\r\n : false;\r\n};\r\n\r\n/**\r\n * Checks whether the given object is a Element.\r\n * @param obj The object which shall be checked.\r\n */\r\nexport const isElement = (obj: any): obj is Element => {\r\n const instanceofObj = Element;\r\n return obj\r\n ? instanceofObj\r\n ? obj instanceof instanceofObj\r\n : obj.nodeType === ElementNodeType\r\n : false;\r\n};\r\n","import { isArray, isFunction, isPlainObject, isNull } from 'support/utils/types';\r\nimport { each } from 'support/utils/array';\r\n\r\n/**\r\n * Determines whether the passed object has a property with the passed name.\r\n * @param obj The object.\r\n * @param prop The name of the property.\r\n */\r\nexport const hasOwnProperty = (obj: any, prop: string | number | symbol): boolean =>\r\n Object.prototype.hasOwnProperty.call(obj, prop);\r\n\r\n/**\r\n * Returns the names of the enumerable string properties and methods of an object.\r\n * @param obj The object of which the properties shall be returned.\r\n */\r\nexport const keys = (obj: any): Array => (obj ? Object.keys(obj) : []);\r\n\r\ntype AssignDeep = {\r\n (target: T, object1: U): T & U;\r\n (target: T, object1: U, object2: V): T & U & V;\r\n (target: T, object1: U, object2: V, object3: W): T & U & V & W;\r\n (target: T, object1: U, object2: V, object3: W, object4: X): T & U & V & W & X;\r\n (target: T, object1: U, object2: V, object3: W, object4: X, object5: Y): T &\r\n U &\r\n V &\r\n W &\r\n X &\r\n Y;\r\n (\r\n target: T,\r\n object1?: U,\r\n object2?: V,\r\n object3?: W,\r\n object4?: X,\r\n object5?: Y,\r\n object6?: Z\r\n ): T & U & V & W & X & Y & Z;\r\n};\r\n\r\n// https://github.com/jquery/jquery/blob/master/src/core.js#L116\r\nexport const assignDeep: AssignDeep = (\r\n target: T,\r\n object1?: U,\r\n object2?: V,\r\n object3?: W,\r\n object4?: X,\r\n object5?: Y,\r\n object6?: Z\r\n): T & U & V & W & X & Y & Z => {\r\n const sources: Array = [object1, object2, object3, object4, object5, object6];\r\n\r\n // Handle case when target is a string or something (possible in deep copy)\r\n if ((typeof target !== 'object' || isNull(target)) && !isFunction(target)) {\r\n target = {} as T;\r\n }\r\n\r\n each(sources, (source) => {\r\n // Extend the base object\r\n each(keys(source), (key) => {\r\n const copy: any = source[key];\r\n\r\n // Prevent Object.prototype pollution\r\n // Prevent never-ending loop\r\n if (target === copy) {\r\n return true;\r\n }\r\n\r\n const copyIsArray = isArray(copy);\r\n\r\n // Recurse if we're merging plain objects or arrays\r\n if (copy && (isPlainObject(copy) || copyIsArray)) {\r\n const src = target[key];\r\n let clone: any = src;\r\n\r\n // Ensure proper type for the source value\r\n if (copyIsArray && !isArray(src)) {\r\n clone = [];\r\n } else if (!copyIsArray && !isPlainObject(src)) {\r\n clone = {};\r\n }\r\n\r\n // Never move original objects, clone them\r\n target[key] = assignDeep(clone, copy) as any;\r\n } else {\r\n target[key] = copy;\r\n }\r\n });\r\n });\r\n\r\n // Return the modified object\r\n return target as any;\r\n};\r\n\r\n/**\r\n * Returns true if the given object is empty, false otherwise.\r\n * @param obj The Object.\r\n */\r\nexport const isEmptyObject = (obj: any): boolean => {\r\n /* eslint-disable no-restricted-syntax, guard-for-in */\r\n for (const name in obj) return false;\r\n return true;\r\n /* eslint-enable */\r\n};\r\n","import { from } from 'support/utils/array';\r\nimport { isNull, isUndefined } from 'support/utils/types';\r\n\r\ntype GetSetPropName = 'scrollLeft' | 'scrollTop' | 'value';\r\n\r\ntype Attr = {\r\n (elm: HTMLElement | false | null | undefined, attrName: string): string | null;\r\n (elm: HTMLElement | false | null | undefined, attrName: string, value: string): void;\r\n (elm: HTMLElement | false | null | undefined, attrName: string, value?: string):\r\n | string\r\n | null\r\n | void;\r\n};\r\n\r\ntype GetSetProp = {\r\n (elm: HTMLElement | false | null | undefined): T;\r\n (elm: HTMLElement | false | null | undefined, value: T | false | null): void;\r\n (elm: HTMLElement | false | null | undefined, value?: T | false | null): T | void;\r\n};\r\n\r\nconst getSetProp = (\r\n topLeft: GetSetPropName,\r\n fallback: number | string,\r\n elm: HTMLElement | HTMLInputElement | false | null | undefined,\r\n value?: number | string | false | null\r\n): number | string | void => {\r\n if (isUndefined(value)) {\r\n return elm ? elm[topLeft] : fallback;\r\n }\r\n elm && !isNull(value) && value !== false && (elm[topLeft] = value);\r\n};\r\n\r\n/**\r\n * Gets or sets a attribute with the given attribute of the given element depending whether the value attribute is given.\r\n * Returns null if the element has no attribute with the given name.\r\n * @param elm The element of which the attribute shall be get or set.\r\n * @param attrName The attribute name which shall be get or set.\r\n * @param value The value of the attribute which shall be set.\r\n */\r\nexport const attr = ((\r\n elm: HTMLElement | false | null | undefined,\r\n attrName: string,\r\n value?: string\r\n): string | null | void => {\r\n if (isUndefined(value)) {\r\n return elm ? elm.getAttribute(attrName) : null;\r\n }\r\n elm && elm.setAttribute(attrName, value);\r\n}) as Attr;\r\n\r\n/**\r\n * Treats the given attribute like the \"class\" attribute and adds or removes the given value from it.\r\n * @param elm The element.\r\n * @param attrName The attributeName to which the value shall be added or removed.\r\n * @param value The value which shall be added or removed.\r\n * @param add True if the value shall be added, false otherwise.\r\n */\r\nexport const attrClass = (\r\n elm: HTMLElement | false | null | undefined,\r\n attrName: string,\r\n value: string,\r\n add?: boolean\r\n) => {\r\n if (value) {\r\n const currValues = attr(elm, attrName) || '';\r\n const currValuesSet = new Set(currValues.split(' '));\r\n currValuesSet[add ? 'add' : 'delete'](value);\r\n\r\n attr(elm, attrName, from(currValuesSet).join(' ').trim());\r\n }\r\n};\r\n\r\n/**\r\n * Treats the given attribute like the \"class\" attribute and checks if the given value is in it.\r\n * @param elm The element.\r\n * @param attrName The attributeName from which the content shall be checked.\r\n * @param value The value.\r\n * @returns True if the given attribute has the value in it, false otherwise.\r\n */\r\nexport const hasAttrClass = (\r\n elm: HTMLElement | false | null | undefined,\r\n attrName: string,\r\n value: string\r\n) => {\r\n const currValues = attr(elm, attrName) || '';\r\n const currValuesSet = new Set(currValues.split(' '));\r\n return currValuesSet.has(value);\r\n};\r\n\r\n/**\r\n * Removes the given attribute from the given element.\r\n * @param elm The element of which the attribute shall be removed.\r\n * @param attrName The attribute name.\r\n */\r\nexport const removeAttr = (elm: Element | false | null | undefined, attrName: string): void => {\r\n elm && elm.removeAttribute(attrName);\r\n};\r\n\r\n/**\r\n * Gets or sets the scrollLeft value of the given element depending whether the value attribute is given.\r\n * @param elm The element of which the scrollLeft value shall be get or set.\r\n * @param value The scrollLeft value which shall be set.\r\n */\r\nexport const scrollLeft = ((\r\n elm: HTMLElement | false | null | undefined,\r\n value?: number | false | null\r\n): number | void => getSetProp('scrollLeft', 0, elm, value) as number) as GetSetProp;\r\n\r\n/**\r\n * Gets or sets the scrollTop value of the given element depending whether the value attribute is given.\r\n * @param elm The element of which the scrollTop value shall be get or set.\r\n * @param value The scrollTop value which shall be set.\r\n */\r\nexport const scrollTop = ((\r\n elm: HTMLElement | false | null | undefined,\r\n value?: number | false | null\r\n): number | void => getSetProp('scrollTop', 0, elm, value) as number) as GetSetProp;\r\n\r\n/**\r\n * Gets or sets the value of the given input element depending whether the value attribute is given.\r\n * @param elm The input element of which the value shall be get or set.\r\n * @param value The value which shall be set.\r\n */\r\nexport const val = ((\r\n elm: HTMLInputElement | false | null | undefined,\r\n value?: string\r\n): string | void => getSetProp('value', '', elm, value) as string) as GetSetProp;\r\n","import { isElement } from 'support/utils/types';\r\nimport { push, from } from 'support/utils/array';\r\n\r\ntype InputElementType = Node | Element | Node | false | null | undefined;\r\ntype OutputElementType = Node | Element | null;\r\n\r\nconst elmPrototype = Element.prototype;\r\n\r\n/**\r\n * Find all elements with the passed selector, outgoing (and including) the passed element or the document if no element was provided.\r\n * @param selector The selector which has to be searched by.\r\n * @param elm The element from which the search shall be outgoing.\r\n */\r\nconst find = (selector: string, elm?: InputElementType): Element[] => {\r\n const arr: Array = [];\r\n const rootElm = elm ? (isElement(elm) ? elm : null) : document;\r\n\r\n return rootElm ? push(arr, rootElm.querySelectorAll(selector)) : arr;\r\n};\r\n\r\n/**\r\n * Find the first element with the passed selector, outgoing (and including) the passed element or the document if no element was provided.\r\n * @param selector The selector which has to be searched by.\r\n * @param elm The element from which the search shall be outgoing.\r\n */\r\nconst findFirst = (selector: string, elm?: InputElementType): OutputElementType => {\r\n const rootElm = elm ? (isElement(elm) ? elm : null) : document;\r\n\r\n return rootElm ? rootElm.querySelector(selector) : null;\r\n};\r\n\r\n/**\r\n * Determines whether the passed element is matching with the passed selector.\r\n * @param elm The element which has to be compared with the passed selector.\r\n * @param selector The selector which has to be compared with the passed element. Additional selectors: ':visible' and ':hidden'.\r\n */\r\nconst is = (elm: InputElementType, selector: string): boolean => {\r\n if (isElement(elm)) {\r\n /* istanbul ignore next */\r\n // eslint-disable-next-line\r\n // @ts-ignore\r\n const fn: (...args: any) => boolean = elmPrototype.matches || elmPrototype.msMatchesSelector;\r\n return fn.call(elm, selector);\r\n }\r\n return false;\r\n};\r\n\r\n/**\r\n * Returns the children (no text-nodes or comments) of the passed element which are matching the passed selector. An empty array is returned if the passed element is null.\r\n * @param elm The element of which the children shall be returned.\r\n * @param selector The selector which must match with the children elements.\r\n */\r\nconst children = (elm: InputElementType, selector?: string): ReadonlyArray => {\r\n const childs: Array = [];\r\n\r\n return isElement(elm)\r\n ? push(\r\n childs,\r\n from(elm.children).filter((child) => (selector ? is(child, selector) : child))\r\n )\r\n : childs;\r\n};\r\n\r\n/**\r\n * Returns the childNodes (incl. text-nodes or comments etc.) of the passed element. An empty array is returned if the passed element is null.\r\n * @param elm The element of which the childNodes shall be returned.\r\n */\r\nconst contents = (elm: InputElementType): ReadonlyArray =>\r\n elm ? from(elm.childNodes) : [];\r\n\r\n/**\r\n * Returns the parent element of the passed element, or null if the passed element is null.\r\n * @param elm The element of which the parent element shall be returned.\r\n */\r\nconst parent = (elm: InputElementType): OutputElementType => (elm ? elm.parentElement : null);\r\n\r\nconst closest = (elm: InputElementType, selector: string): OutputElementType => {\r\n if (isElement(elm)) {\r\n const closestFn = elmPrototype.closest;\r\n if (closestFn) {\r\n return closestFn.call(elm, selector);\r\n }\r\n\r\n do {\r\n if (is(elm, selector)) {\r\n return elm as Element;\r\n }\r\n elm = parent(elm);\r\n } while (elm);\r\n }\r\n\r\n return null;\r\n};\r\n\r\n/**\r\n * Determines whether the given element lies between two selectors in the DOM.\r\n * @param elm The element.\r\n * @param highBoundarySelector The high boundary selector.\r\n * @param deepBoundarySelector The deep boundary selector.\r\n */\r\nconst liesBetween = (\r\n elm: InputElementType,\r\n highBoundarySelector: string,\r\n deepBoundarySelector: string\r\n): boolean => {\r\n const closestHighBoundaryElm = elm && closest(elm, highBoundarySelector);\r\n const closestDeepBoundaryElm = elm && findFirst(deepBoundarySelector, closestHighBoundaryElm);\r\n\r\n return closestHighBoundaryElm && closestDeepBoundaryElm\r\n ? closestHighBoundaryElm === elm ||\r\n closestDeepBoundaryElm === elm ||\r\n closest(closest(elm, deepBoundarySelector), highBoundarySelector) !== closestHighBoundaryElm\r\n : false;\r\n};\r\n\r\nexport { find, findFirst, is, children, contents, parent, liesBetween, closest };\r\n","import { isArrayLike } from 'support/utils/types';\r\nimport { each, from } from 'support/utils/array';\r\nimport { parent } from 'support/dom/traversal';\r\n\r\ntype NodeCollection = ArrayLike | Node | false | null | undefined;\r\n\r\n/**\r\n * Inserts Nodes before the given preferredAnchor element.\r\n * @param parentElm The parent of the preferredAnchor element or the element which shall be the parent of the inserted Nodes.\r\n * @param preferredAnchor The element before which the Nodes shall be inserted or null if the elements shall be appended at the end.\r\n * @param insertedElms The Nodes which shall be inserted.\r\n */\r\nconst before = (\r\n parentElm: Node | false | null | undefined,\r\n preferredAnchor: Node | false | null | undefined,\r\n insertedElms: NodeCollection\r\n): void => {\r\n if (insertedElms) {\r\n let anchor: Node | false | null | undefined = preferredAnchor;\r\n let fragment: DocumentFragment | Node | null | undefined;\r\n\r\n // parent must be defined\r\n if (parentElm) {\r\n if (isArrayLike(insertedElms)) {\r\n fragment = document.createDocumentFragment();\r\n\r\n // append all insertedElms to the fragment and if one of these is the anchor, change the anchor\r\n each(insertedElms, (insertedElm) => {\r\n if (insertedElm === anchor) {\r\n anchor = insertedElm.previousSibling;\r\n }\r\n fragment!.appendChild(insertedElm);\r\n });\r\n } else {\r\n fragment = insertedElms;\r\n }\r\n\r\n // if the preferred anchor isn't null set it to a valid anchor\r\n if (preferredAnchor) {\r\n if (!anchor) {\r\n anchor = parentElm.firstChild;\r\n } else if (anchor !== preferredAnchor) {\r\n anchor = anchor.nextSibling;\r\n }\r\n }\r\n\r\n parentElm.insertBefore(fragment, anchor || null);\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * Appends the given children at the end of the given Node.\r\n * @param node The Node to which the children shall be appended.\r\n * @param children The Nodes which shall be appended.\r\n */\r\nexport const appendChildren = (\r\n node: Node | false | null | undefined,\r\n children: NodeCollection\r\n): void => {\r\n before(node, null, children);\r\n};\r\n\r\n/**\r\n * Prepends the given children at the start of the given Node.\r\n * @param node The Node to which the children shall be prepended.\r\n * @param children The Nodes which shall be prepended.\r\n */\r\nexport const prependChildren = (\r\n node: Node | false | null | undefined,\r\n children: NodeCollection\r\n): void => {\r\n before(node, node && node.firstChild, children);\r\n};\r\n\r\n/**\r\n * Inserts the given Nodes before the given Node.\r\n * @param node The Node before which the given Nodes shall be inserted.\r\n * @param insertedNodes The Nodes which shall be inserted.\r\n */\r\nexport const insertBefore = (\r\n node: Node | false | null | undefined,\r\n insertedNodes: NodeCollection\r\n): void => {\r\n before(parent(node), node, insertedNodes);\r\n};\r\n\r\n/**\r\n * Inserts the given Nodes after the given Node.\r\n * @param node The Node after which the given Nodes shall be inserted.\r\n * @param insertedNodes The Nodes which shall be inserted.\r\n */\r\nexport const insertAfter = (\r\n node: Node | false | null | undefined,\r\n insertedNodes: NodeCollection\r\n): void => {\r\n before(parent(node), node && node.nextSibling, insertedNodes);\r\n};\r\n\r\n/**\r\n * Removes the given Nodes from their parent.\r\n * @param nodes The Nodes which shall be removed.\r\n */\r\nexport const removeElements = (nodes: NodeCollection): void => {\r\n if (isArrayLike(nodes)) {\r\n each(from(nodes), (e) => removeElements(e));\r\n } else if (nodes) {\r\n const parentElm = parent(nodes);\r\n if (parentElm) {\r\n parentElm.removeChild(nodes);\r\n }\r\n }\r\n};\r\n","import { each } from 'support/utils/array';\r\nimport { attr } from 'support/dom/attribute';\r\nimport { contents } from 'support/dom/traversal';\r\nimport { removeElements } from 'support/dom/manipulation';\r\n\r\n/**\r\n * Creates a div DOM node.\r\n */\r\nexport const createDiv = (classNames?: string): HTMLDivElement => {\r\n const div = document.createElement('div');\r\n if (classNames) {\r\n attr(div, 'class', classNames);\r\n }\r\n return div;\r\n};\r\n\r\n/**\r\n * Creates DOM nodes modeled after the passed html string and returns the root dom nodes as a array.\r\n * @param html The html string after which the DOM nodes shall be created.\r\n */\r\nexport const createDOM = (html: string): ReadonlyArray => {\r\n const createdDiv = createDiv();\r\n createdDiv.innerHTML = html.trim();\r\n\r\n return each(contents(createdDiv), (elm) => removeElements(elm));\r\n};\r\n","import { each } from 'support/utils/array';\r\nimport { hasOwnProperty } from 'support/utils/object';\r\nimport { createDiv } from 'support/dom/create';\r\n\r\nconst firstLetterToUpper = (str: string): string => str.charAt(0).toUpperCase() + str.slice(1);\r\nconst getDummyStyle = (): CSSStyleDeclaration => createDiv().style;\r\n\r\n// https://developer.mozilla.org/en-US/docs/Glossary/Vendor_Prefix\r\n\r\nexport const cssPrefixes: ReadonlyArray = ['-webkit-', '-moz-', '-o-', '-ms-'];\r\nexport const jsPrefixes: ReadonlyArray = [\r\n 'WebKit',\r\n 'Moz',\r\n 'O',\r\n 'MS',\r\n 'webkit',\r\n 'moz',\r\n 'o',\r\n 'ms',\r\n];\r\n\r\nexport const jsCache: { [key: string]: any } = {};\r\nexport const cssCache: { [key: string]: string } = {};\r\n\r\n/**\r\n * Gets the name of the given CSS property with vendor prefix if it isn't supported without it, or and empty string if unsupported.\r\n * @param name The name of the CSS property which shall be get.\r\n */\r\nexport const cssProperty = (name: string): string => {\r\n let result: string | undefined = cssCache[name];\r\n\r\n if (hasOwnProperty(cssCache, name)) {\r\n return result;\r\n }\r\n\r\n const uppercasedName: string = firstLetterToUpper(name);\r\n const elmStyle: CSSStyleDeclaration = getDummyStyle();\r\n\r\n each(cssPrefixes, (prefix: string) => {\r\n const prefixWithoutDashes: string = prefix.replace(/-/g, '');\r\n const resultPossibilities: Array = [\r\n name, // transition\r\n prefix + name, // -webkit-transition\r\n prefixWithoutDashes + uppercasedName, // webkitTransition\r\n firstLetterToUpper(prefixWithoutDashes) + uppercasedName, // WebkitTransition\r\n ];\r\n\r\n // eslint-disable-next-line no-return-assign\r\n return !(result = resultPossibilities.find(\r\n (resultPossibility: string) => elmStyle[resultPossibility] !== undefined\r\n ));\r\n });\r\n\r\n // eslint-disable-next-line no-return-assign\r\n return (cssCache[name] = result || '');\r\n};\r\n\r\n/**\r\n * Get the name of the given CSS property value(s), with vendor prefix if it isn't supported without it, or an empty string if no value is supported.\r\n * @param property The CSS property to which the CSS property value(s) belong.\r\n * @param values The value(s) separated by spaces which shall be get.\r\n * @param suffix A suffix which is added to each value in case the value is a function or something else more advanced.\r\n */\r\nexport const cssPropertyValue = (property: string, values: string, suffix?: string): string => {\r\n const name = `${property} ${values}`;\r\n let result: string | undefined = cssCache[name];\r\n\r\n if (hasOwnProperty(cssCache, name)) {\r\n return result;\r\n }\r\n\r\n const dummyStyle: CSSStyleDeclaration = getDummyStyle();\r\n const possbleValues: Array = values.split(' ');\r\n const preparedSuffix: string = suffix || '';\r\n const cssPrefixesWithFirstEmpty = [''].concat(cssPrefixes);\r\n\r\n each(possbleValues, (possibleValue: string) => {\r\n each(cssPrefixesWithFirstEmpty, (prefix: string) => {\r\n const prop = prefix + possibleValue;\r\n dummyStyle.cssText = `${property}:${prop}${preparedSuffix}`;\r\n if (dummyStyle.length) {\r\n result = prop;\r\n return false;\r\n }\r\n });\r\n return !result;\r\n });\r\n\r\n // eslint-disable-next-line no-return-assign\r\n return (cssCache[name] = result || '');\r\n};\r\n\r\n/**\r\n * Get the requested JS function, object or constructor with vendor prefix if it isn't supported without or undefined if unsupported.\r\n * @param name The name of the JS function, object or constructor.\r\n */\r\nexport const jsAPI = (name: string): T | undefined => {\r\n let result: any = jsCache[name] || window[name];\r\n\r\n if (hasOwnProperty(jsCache, name)) {\r\n return result;\r\n }\r\n\r\n each(jsPrefixes, (prefix: string) => {\r\n result = result || window[prefix + firstLetterToUpper(name)];\r\n return !result;\r\n });\r\n\r\n jsCache[name] = result;\r\n return result;\r\n};\r\n","import { jsAPI } from 'support/compatibility/vendors';\r\n\r\nexport const MutationObserverConstructor = jsAPI('MutationObserver');\r\nexport const IntersectionObserverConstructor =\r\n jsAPI('IntersectionObserver');\r\nexport const ResizeObserverConstructor = jsAPI('ResizeObserver');\r\nexport const cAF = jsAPI('cancelAnimationFrame');\r\nexport const rAF = jsAPI('requestAnimationFrame');\r\nexport const setT = window.setTimeout as (handler: TimerHandler, timeout?: number) => number;\r\nexport const clearT = window.clearTimeout as (id?: number) => void;\r\n","import { isString } from 'support/utils/types';\r\nimport { each } from 'support/utils/array';\r\nimport { keys } from 'support/utils/object';\r\n\r\ntype ClassContainingElement = Node | Element | false | null | undefined;\r\ntype ClassName = string | false | null | undefined;\r\n\r\nconst rnothtmlwhite = /[^\\x20\\t\\r\\n\\f]+/g;\r\nconst classListAction = (\r\n elm: ClassContainingElement,\r\n className: ClassName,\r\n action: (elmClassList: DOMTokenList, clazz: string) => boolean | void\r\n): boolean => {\r\n const classList = elm && (elm as Element).classList;\r\n let clazz: string;\r\n let i = 0;\r\n let result = false;\r\n\r\n if (classList && className && isString(className)) {\r\n const classes: Array = className.match(rnothtmlwhite) || [];\r\n result = classes.length > 0;\r\n while ((clazz = classes[i++])) {\r\n result = !!action(classList, clazz) && result;\r\n }\r\n }\r\n return result;\r\n};\r\n\r\n/**\r\n * Check whether the given element has the given class name(s).\r\n * @param elm The element.\r\n * @param className The class name(s).\r\n */\r\nexport const hasClass = (elm: ClassContainingElement, className: ClassName): boolean =>\r\n classListAction(elm, className, (classList, clazz) => classList.contains(clazz));\r\n\r\n/**\r\n * Removes the given class name(s) from the given element.\r\n * @param elm The element.\r\n * @param className The class name(s) which shall be removed. (separated by spaces)\r\n */\r\nexport const removeClass = (elm: ClassContainingElement, className: ClassName): void => {\r\n classListAction(elm, className, (classList, clazz) => classList.remove(clazz));\r\n};\r\n\r\n/**\r\n * Adds the given class name(s) to the given element.\r\n * @param elm The element.\r\n * @param className The class name(s) which shall be added. (separated by spaces)\r\n * @returns A function which removes the added class name(s).\r\n */\r\nexport const addClass = (elm: ClassContainingElement, className: ClassName): (() => void) => {\r\n classListAction(elm, className, (classList, clazz) => classList.add(clazz));\r\n return removeClass.bind(0, elm, className);\r\n};\r\n\r\n/**\r\n * Takes two className strings, compares them and returns the difference as array.\r\n * @param classNameA ClassName A.\r\n * @param classNameB ClassName B.\r\n */\r\nexport const diffClass = (classNameA: ClassName, classNameB: ClassName) => {\r\n const classNameASplit = classNameA && classNameA.split(' ');\r\n const classNameBSplit = classNameB && classNameB.split(' ');\r\n const tempObj = {};\r\n\r\n each(classNameASplit, (className) => {\r\n tempObj[className] = 1;\r\n });\r\n each(classNameBSplit, (className) => {\r\n if (tempObj[className]) {\r\n delete tempObj[className];\r\n } else {\r\n tempObj[className] = 1;\r\n }\r\n });\r\n\r\n return keys(tempObj);\r\n};\r\n","import { each } from 'support/utils/array';\r\nimport { WH, XY, TRBL } from 'support/dom';\r\nimport { PlainObject } from 'typings';\r\n\r\n/**\r\n * Compares two objects and returns true if all values of the passed prop names are identical, false otherwise or if one of the two object is falsy.\r\n * @param a Object a.\r\n * @param b Object b.\r\n * @param props The props which shall be compared.\r\n */\r\nexport const equal = (\r\n a: T | undefined,\r\n b: T | undefined,\r\n props: Array,\r\n propMutation?: ((value: any) => any) | null | false\r\n): boolean => {\r\n if (a && b) {\r\n let result = true;\r\n each(props, (prop) => {\r\n const compareA = propMutation ? propMutation(a[prop]) : a[prop];\r\n const compareB = propMutation ? propMutation(b[prop]) : b[prop];\r\n if (compareA !== compareB) {\r\n result = false;\r\n }\r\n });\r\n return result;\r\n }\r\n return false;\r\n};\r\n\r\n/**\r\n * Compares object a with object b and returns true if both have the same property values, false otherwise.\r\n * Also returns false if one of the objects is undefined or null.\r\n * @param a Object a.\r\n * @param b Object b.\r\n */\r\nexport const equalWH = (a?: WH, b?: WH) => equal>(a, b, ['w', 'h']);\r\n\r\n/**\r\n * Compares object a with object b and returns true if both have the same property values, false otherwise.\r\n * Also returns false if one of the objects is undefined or null.\r\n * @param a Object a.\r\n * @param b Object b.\r\n */\r\nexport const equalXY = (a?: XY, b?: XY) => equal>(a, b, ['x', 'y']);\r\n\r\n/**\r\n * Compares object a with object b and returns true if both have the same property values, false otherwise.\r\n * Also returns false if one of the objects is undefined or null.\r\n * @param a Object a.\r\n * @param b Object b.\r\n */\r\nexport const equalTRBL = (a?: TRBL, b?: TRBL) => equal(a, b, ['t', 'r', 'b', 'l']);\r\n\r\n/**\r\n * Compares two DOM Rects for their equality of their width and height properties\r\n * Also returns false if one of the DOM Rects is undefined or null.\r\n * @param a DOM Rect a.\r\n * @param b DOM Rect b.\r\n * @param round Whether the values should be rounded.\r\n */\r\nexport const equalBCRWH = (a?: DOMRect, b?: DOMRect, round?: boolean) =>\r\n equal(a, b, ['width', 'height'], round && ((value) => Math.round(value)));\r\n","import { isNumber, isFunction } from 'support/utils/types';\r\nimport { from } from 'support/utils/array';\r\nimport { rAF, cAF, setT, clearT } from 'support/compatibility/apis';\r\n\r\ntype DebounceTiming = number | false | null | undefined;\r\n\r\nexport interface DebounceOptions any> {\r\n /**\r\n * The timeout for debouncing. If null, no debounce is applied.\r\n */\r\n _timeout?: DebounceTiming | (() => DebounceTiming);\r\n /**\r\n * A maximum amount of ms. before the function will be called even with debounce.\r\n */\r\n _maxDelay?: DebounceTiming | (() => DebounceTiming);\r\n /**\r\n * Function which merges parameters for each canceled debounce.\r\n * If parameters can't be merged the function will return null, otherwise it returns the merged parameters.\r\n */\r\n _mergeParams?: (\r\n prev: Parameters,\r\n curr: Parameters\r\n ) => Parameters | false | null | undefined;\r\n}\r\n\r\nexport interface Debounced any> {\r\n (...args: Parameters): ReturnType;\r\n _flush(): void;\r\n}\r\n\r\nexport const noop = () => {}; // eslint-disable-line\r\n\r\n/**\r\n * Debounces the given function either with a timeout or a animation frame.\r\n * @param functionToDebounce The function which shall be debounced.\r\n * @param options Options for debouncing.\r\n */\r\nexport const debounce = any>(\r\n functionToDebounce: FunctionToDebounce,\r\n options?: DebounceOptions\r\n): Debounced => {\r\n let maxTimeoutId: number | undefined;\r\n let prevArguments: Parameters | null | undefined;\r\n let latestArguments: Parameters | null | undefined;\r\n let clear: () => void = noop;\r\n const { _timeout, _maxDelay, _mergeParams } = options || {};\r\n\r\n const invokeFunctionToDebounce = function (args: IArguments) {\r\n clear();\r\n clearT(maxTimeoutId);\r\n maxTimeoutId = prevArguments = undefined;\r\n clear = noop;\r\n // eslint-disable-next-line\r\n // @ts-ignore\r\n functionToDebounce.apply(this, args);\r\n };\r\n\r\n const mergeParms = (\r\n curr: Parameters\r\n ): Parameters | false | null | undefined =>\r\n _mergeParams && prevArguments ? _mergeParams(prevArguments, curr) : curr;\r\n\r\n const flush = () => {\r\n /* istanbul ignore next */\r\n if (clear !== noop) {\r\n invokeFunctionToDebounce(mergeParms(latestArguments!) || latestArguments!);\r\n }\r\n };\r\n\r\n const debouncedFn = function () {\r\n // eslint-disable-next-line prefer-rest-params\r\n const args: Parameters = from(arguments) as Parameters;\r\n const finalTimeout = isFunction(_timeout) ? _timeout() : _timeout;\r\n const hasTimeout = isNumber(finalTimeout) && finalTimeout >= 0;\r\n\r\n if (hasTimeout) {\r\n const finalMaxWait = isFunction(_maxDelay) ? _maxDelay() : _maxDelay;\r\n const hasMaxWait = isNumber(finalMaxWait) && finalMaxWait >= 0;\r\n const setTimeoutFn = finalTimeout > 0 ? setT : rAF!;\r\n const clearTimeoutFn = finalTimeout > 0 ? clearT : cAF!;\r\n const mergeParamsResult = mergeParms(args);\r\n const invokedArgs = mergeParamsResult || args;\r\n const boundInvoke = invokeFunctionToDebounce.bind(0, invokedArgs);\r\n\r\n // if (!mergeParamsResult) {\r\n // invokeFunctionToDebounce(prevArguments || args);\r\n // }\r\n\r\n clear();\r\n // @ts-ignore\r\n const timeoutId = setTimeoutFn(boundInvoke, finalTimeout);\r\n clear = () => clearTimeoutFn(timeoutId);\r\n\r\n if (hasMaxWait && !maxTimeoutId) {\r\n maxTimeoutId = setT(flush, finalMaxWait as number);\r\n }\r\n\r\n prevArguments = latestArguments = invokedArgs;\r\n } else {\r\n invokeFunctionToDebounce(args);\r\n }\r\n };\r\n debouncedFn._flush = flush;\r\n\r\n return debouncedFn as Debounced;\r\n};\r\n","import { style } from 'support/dom/style';\r\n\r\nexport interface WH {\r\n w: T;\r\n h: T;\r\n}\r\n\r\nconst elementHasDimensions = (elm: HTMLElement): boolean =>\r\n !!(elm.offsetWidth || elm.offsetHeight || elm.getClientRects().length);\r\nconst zeroObj: WH = {\r\n w: 0,\r\n h: 0,\r\n};\r\n\r\n/**\r\n * Returns the window inner- width and height.\r\n */\r\nexport const windowSize = (): WH => ({\r\n w: window.innerWidth,\r\n h: window.innerHeight,\r\n});\r\n\r\n/**\r\n * Returns the scroll- width and height of the passed element. If the element is null the width and height values are 0.\r\n * @param elm The element of which the scroll- width and height shall be returned.\r\n */\r\nexport const offsetSize = (elm: HTMLElement | null | undefined): WH =>\r\n elm\r\n ? {\r\n w: elm.offsetWidth,\r\n h: elm.offsetHeight,\r\n }\r\n : zeroObj;\r\n\r\n/**\r\n * Returns the client- width and height of the passed element. If the element is null the width and height values are 0.\r\n * @param elm The element of which the client- width and height shall be returned.\r\n */\r\nexport const clientSize = (elm: HTMLElement | false | null | undefined): WH =>\r\n elm\r\n ? {\r\n w: elm.clientWidth,\r\n h: elm.clientHeight,\r\n }\r\n : zeroObj;\r\n\r\n/**\r\n * Returns the client- width and height of the passed element. If the element is null the width and height values are 0.\r\n * @param elm The element of which the client- width and height shall be returned.\r\n */\r\nexport const scrollSize = (elm: HTMLElement | false | null | undefined): WH =>\r\n elm\r\n ? {\r\n w: elm.scrollWidth,\r\n h: elm.scrollHeight,\r\n }\r\n : zeroObj;\r\n\r\n/**\r\n * Returns the fractional- width and height of the passed element. If the element is null the width and height values are 0.\r\n * @param elm The element of which the fractional- width and height shall be returned.\r\n */\r\nexport const fractionalSize = (elm: HTMLElement | false | null | undefined): WH => {\r\n const cssHeight = parseFloat(style(elm, 'height')) || 0;\r\n const cssWidth = parseFloat(style(elm, 'height')) || 0;\r\n return {\r\n w: cssWidth - Math.round(cssWidth),\r\n h: cssHeight - Math.round(cssHeight),\r\n };\r\n};\r\n\r\n/**\r\n * Returns the BoundingClientRect of the passed element.\r\n * @param elm The element of which the BoundingClientRect shall be returned.\r\n */\r\nexport const getBoundingClientRect = (elm: HTMLElement): DOMRect => elm.getBoundingClientRect();\r\n\r\n/**\r\n * Determines whether the passed element has any dimensions.\r\n * @param elm The element.\r\n */\r\nexport const hasDimensions = (elm: HTMLElement | false | null | undefined): boolean =>\r\n elm ? elementHasDimensions(elm as HTMLElement) : false;\r\n","import { isUndefined } from 'support/utils/types';\r\nimport { each, push, runEachAndClear } from 'support/utils/array';\r\n\r\nlet passiveEventsSupport: boolean;\r\nconst supportPassiveEvents = (): boolean => {\r\n if (isUndefined(passiveEventsSupport)) {\r\n passiveEventsSupport = false;\r\n try {\r\n /* eslint-disable */\r\n // @ts-ignore\r\n window.addEventListener(\r\n 'test',\r\n null,\r\n Object.defineProperty({}, 'passive', {\r\n get() {\r\n passiveEventsSupport = true;\r\n },\r\n })\r\n );\r\n /* eslint-enable */\r\n } catch (e) {}\r\n }\r\n return passiveEventsSupport;\r\n};\r\nconst splitEventNames = (eventNames: string) => eventNames.split(' ');\r\n\r\nexport interface OnOptions {\r\n _capture?: boolean;\r\n _passive?: boolean;\r\n _once?: boolean;\r\n}\r\n\r\n/**\r\n * Removes the passed event listener for the passed events with the passed options.\r\n * @param target The element from which the listener shall be removed.\r\n * @param eventNames The eventsnames for which the listener shall be removed.\r\n * @param listener The listener which shall be removed.\r\n * @param capture The options of the removed listener.\r\n */\r\nexport const off = (\r\n target: EventTarget,\r\n eventNames: string,\r\n listener: (event: T) => any,\r\n capture?: boolean\r\n): void => {\r\n each(splitEventNames(eventNames), (eventName) => {\r\n target.removeEventListener(eventName, listener as EventListener, capture);\r\n });\r\n};\r\n\r\n/**\r\n * Adds the passed event listener for the passed eventnames with the passed options.\r\n * @param target The element to which the listener shall be added.\r\n * @param eventNames The eventsnames for which the listener shall be called.\r\n * @param listener The listener which is called on the eventnames.\r\n * @param options The options of the added listener.\r\n */\r\nexport const on = (\r\n target: EventTarget,\r\n eventNames: string,\r\n listener: (event: T) => any,\r\n options?: OnOptions\r\n): (() => void) => {\r\n const doSupportPassiveEvents = supportPassiveEvents();\r\n const passive = (doSupportPassiveEvents && options && options._passive) ?? doSupportPassiveEvents;\r\n const capture = (options && options._capture) || false;\r\n const once = (options && options._once) || false;\r\n const offListeners: (() => void)[] = [];\r\n const nativeOptions: AddEventListenerOptions | boolean = doSupportPassiveEvents\r\n ? {\r\n passive,\r\n capture,\r\n }\r\n : capture;\r\n\r\n each(splitEventNames(eventNames), (eventName) => {\r\n const finalListener = (\r\n once\r\n ? (evt: T) => {\r\n target.removeEventListener(eventName, finalListener, capture);\r\n listener && listener(evt);\r\n }\r\n : listener\r\n ) as EventListener;\r\n\r\n push(offListeners, off.bind(null, target, eventName, finalListener, capture));\r\n target.addEventListener(eventName, finalListener, nativeOptions);\r\n });\r\n\r\n return runEachAndClear.bind(0, offListeners);\r\n};\r\n\r\n/**\r\n * Shorthand for the stopPropagation event Method.\r\n * @param evt The event of which the stopPropagation method shall be called.\r\n */\r\nexport const stopPropagation = (evt: Event): void => evt.stopPropagation();\r\n\r\n/**\r\n * Shorthand for the preventDefault event Method.\r\n * @param evt The event of which the preventDefault method shall be called.\r\n */\r\nexport const preventDefault = (evt: Event): void => evt.preventDefault();\r\n\r\n/**\r\n * Shorthand for the stopPropagation and preventDefault event Method.\r\n * @param evt The event of which the stopPropagation and preventDefault methods shall be called.\r\n */\r\nexport const stopAndPrevent = (evt: Event): void =>\r\n (stopPropagation(evt) as undefined) || (preventDefault(evt) as undefined);\r\n","import { getBoundingClientRect } from 'support/dom/dimensions';\r\n\r\nexport interface XY {\r\n x: T;\r\n y: T;\r\n}\r\n\r\nconst zeroObj: XY = {\r\n x: 0,\r\n y: 0,\r\n};\r\n\r\n/**\r\n * Returns the offset- left and top coordinates of the passed element relative to the document. If the element is null the top and left values are 0.\r\n * @param elm The element of which the offset- top and left coordinates shall be returned.\r\n */\r\nexport const absoluteCoordinates = (elm: HTMLElement | null | undefined): XY => {\r\n const rect = elm ? getBoundingClientRect(elm) : 0;\r\n return rect\r\n ? {\r\n x: rect.left + window.pageYOffset,\r\n y: rect.top + window.pageXOffset,\r\n }\r\n : zeroObj;\r\n};\r\n\r\n/**\r\n * Returns the offset- left and top coordinates of the passed element. If the element is null the top and left values are 0.\r\n * @param elm The element of which the offset- top and left coordinates shall be returned.\r\n */\r\nexport const offsetCoordinates = (elm: HTMLElement | null | undefined): XY =>\r\n elm\r\n ? {\r\n x: elm.offsetLeft,\r\n y: elm.offsetTop,\r\n }\r\n : zeroObj;\r\n","import { isArray } from 'support/utils/types';\r\nimport { keys } from 'support/utils/object';\r\nimport { each, from, isEmptyArray } from 'support/utils/array';\r\n\r\nexport type EventListener<\r\n EventMap extends Record,\r\n Name extends keyof EventMap = keyof EventMap\r\n> = (...args: EventMap[Name]) => void;\r\n\r\nexport type InitialEventListeners> = {\r\n [K in keyof EventMap]?: EventListener | EventListener[];\r\n};\r\n\r\nconst manageListener = >(\r\n callback: (listener?: EventListener) => void,\r\n listener?: EventListener | EventListener[]\r\n) => {\r\n each(isArray(listener) ? listener : [listener], callback);\r\n};\r\n\r\nexport const createEventListenerHub = >(\r\n initialEventListeners?: InitialEventListeners\r\n) => {\r\n type EventListener = (\r\n ...args: EventMap[Name]\r\n ) => void;\r\n type RemoveEvent = {\r\n (name?: Name, listener?: EventListener): void;\r\n (name?: Name, listener?: EventListener[]): void;\r\n (\r\n name?: Name,\r\n listener?: EventListener | EventListener[]\r\n ): void;\r\n };\r\n type AddEvent = {\r\n (name: Name, listener: EventListener): () => void;\r\n (name: Name, listener: EventListener[]): () => void;\r\n (\r\n name: Name,\r\n listener: EventListener | EventListener[]\r\n ): () => void;\r\n };\r\n type TriggerEvent = {\r\n (name: Name, args?: EventMap[Name]): void;\r\n };\r\n\r\n const events = new Map>();\r\n\r\n const removeEvent: RemoveEvent = (\r\n name?: Name,\r\n listener?: EventListener | EventListener[]\r\n ): void => {\r\n if (name) {\r\n const eventSet = events.get(name);\r\n manageListener((currListener) => {\r\n if (eventSet) {\r\n eventSet[currListener ? 'delete' : 'clear'](currListener!);\r\n }\r\n }, listener as any);\r\n } else {\r\n events.forEach((eventSet) => {\r\n eventSet.clear();\r\n });\r\n events.clear();\r\n }\r\n };\r\n\r\n const addEvent: AddEvent = (\r\n name: Name,\r\n listener: EventListener | EventListener[]\r\n ): (() => void) => {\r\n const eventSet = events.get(name) || new Set();\r\n events.set(name, eventSet);\r\n\r\n manageListener((currListener) => {\r\n currListener && eventSet.add(currListener);\r\n }, listener as any);\r\n\r\n return removeEvent.bind(0, name as any, listener as any);\r\n };\r\n\r\n const triggerEvent: TriggerEvent = (\r\n name: Name,\r\n args?: EventMap[Name]\r\n ): void => {\r\n const eventSet = events.get(name);\r\n\r\n each(from(eventSet), (event) => {\r\n if (args && !isEmptyArray(args)) {\r\n (event as (...args: EventMap[keyof EventMap]) => void).apply(0, args as any);\r\n } else {\r\n (event as () => void)();\r\n }\r\n });\r\n };\r\n\r\n const initialListenerKeys = keys(initialEventListeners) as Extract[];\r\n each(initialListenerKeys, (key) => {\r\n addEvent(key, initialEventListeners![key] as any);\r\n });\r\n\r\n return [addEvent, removeEvent, triggerEvent] as [AddEvent, RemoveEvent, TriggerEvent];\r\n};\r\n","import { assignDeep, hasOwnProperty } from 'support';\r\nimport type { Options, ReadonlyOptions } from 'options';\r\nimport type { DeepPartial } from 'typings';\r\n\r\nexport type SetupElements> = [elements: T, destroy: () => void];\r\n\r\nexport type SetupUpdate = (\r\n changedOptions: DeepPartial,\r\n force: boolean,\r\n ...args: T\r\n) => void;\r\n\r\nexport type SetupUpdateCheckOption = (path: string) => [value: T, changed: boolean];\r\n\r\nexport type SetupUpdateSegment> = (\r\n updateHints: Hints,\r\n checkOption: SetupUpdateCheckOption,\r\n force: boolean\r\n) => Partial | void;\r\n\r\nexport type SetupState> = [\r\n get: () => T,\r\n set: (newState: Partial) => void\r\n];\r\n\r\nexport type Setup<\r\n DynamicState,\r\n StaticState extends Record = Record,\r\n A extends any[] = []\r\n> = [update: SetupUpdate
, state: (() => DynamicState) & StaticState, destroy: () => void];\r\n\r\nconst getPropByPath = (obj: any, path: string): T =>\r\n obj\r\n ? path.split('.').reduce((o, prop) => (o && hasOwnProperty(o, prop) ? o[prop] : undefined), obj)\r\n : undefined;\r\n\r\nexport const createOptionCheck =\r\n (\r\n options: ReadonlyOptions,\r\n changedOptions: DeepPartial,\r\n force?: boolean\r\n ): SetupUpdateCheckOption =>\r\n (path: string) =>\r\n [getPropByPath(options, path), force || getPropByPath(changedOptions, path) !== undefined];\r\n\r\nexport const createState = (initialState: S): SetupState => {\r\n let state: S = initialState;\r\n return [\r\n () => state,\r\n (newState: Partial) => {\r\n state = assignDeep({}, state, newState);\r\n },\r\n ];\r\n};\r\n","export const classNameEnvironment = 'os-environment';\r\nexport const classNameEnvironmentFlexboxGlue = `${classNameEnvironment}-flexbox-glue`;\r\nexport const classNameEnvironmentFlexboxGlueMax = `${classNameEnvironmentFlexboxGlue}-max`;\r\n\r\nexport const dataAttributeHost = 'data-overlayscrollbars';\r\nexport const dataAttributeHostOverflowX = `${dataAttributeHost}-overflow-x`;\r\nexport const dataAttributeHostOverflowY = `${dataAttributeHost}-overflow-y`;\r\nexport const dataValueHostOverflowVisible = 'overflowVisible';\r\nexport const dataValueHostScrollbarHidden = 'scrollbarHidden';\r\nexport const dataValueHostUpdating = 'updating';\r\nexport const classNamePadding = 'os-padding';\r\nexport const classNameViewport = 'os-viewport';\r\nexport const classNameViewportArrange = `${classNameViewport}-arrange`;\r\nexport const classNameContent = 'os-content';\r\nexport const classNameViewportScrollbarHidden = `${classNameViewport}-scrollbar-hidden`;\r\nexport const classNameOverflowVisible = `os-overflow-visible`;\r\n\r\nexport const classNameSizeObserver = 'os-size-observer';\r\nexport const classNameSizeObserverAppear = `${classNameSizeObserver}-appear`;\r\nexport const classNameSizeObserverListener = `${classNameSizeObserver}-listener`;\r\nexport const classNameSizeObserverListenerScroll = `${classNameSizeObserverListener}-scroll`;\r\nexport const classNameSizeObserverListenerItem = `${classNameSizeObserverListener}-item`;\r\nexport const classNameSizeObserverListenerItemFinal = `${classNameSizeObserverListenerItem}-final`;\r\n\r\nexport const classNameTrinsicObserver = 'os-trinsic-observer';\r\n\r\nexport const classNameScrollbar = 'os-scrollbar';\r\nexport const classNameScrollbarRtl = `${classNameScrollbar}-rtl`;\r\nexport const classNameScrollbarHorizontal = `${classNameScrollbar}-horizontal`;\r\nexport const classNameScrollbarVertical = `${classNameScrollbar}-vertical`;\r\nexport const classNameScrollbarTrack = `${classNameScrollbar}-track`;\r\nexport const classNameScrollbarHandle = `${classNameScrollbar}-handle`;\r\nexport const classNamesScrollbarVisible = `${classNameScrollbar}-visible`;\r\nexport const classNamesScrollbarCornerless = `${classNameScrollbar}-cornerless`;\r\nexport const classNamesScrollbarTransitionless = `${classNameScrollbar}-transitionless`;\r\nexport const classNamesScrollbarInteraction = `${classNameScrollbar}-interaction`;\r\nexport const classNamesScrollbarUnusable = `${classNameScrollbar}-unusable`;\r\nexport const classNamesScrollbarAutoHidden = `${classNameScrollbar}-auto-hidden`;\r\nexport const classNamesScrollbarTrackInteractive = `${classNameScrollbarTrack}-interactive`;\r\nexport const classNamesScrollbarHandleInteractive = `${classNameScrollbarHandle}-interactive`;\r\n","import { assignDeep, each, isObject, keys, isArray, hasOwnProperty, isFunction } from 'support';\r\nimport { DeepPartial, DeepReadonly } from 'typings';\r\n\r\nconst opsStringify = (value: any) =>\r\n JSON.stringify(value, (_, val) => {\r\n if (isFunction(val)) {\r\n throw new Error();\r\n }\r\n return val;\r\n });\r\n\r\nexport type ResizeBehavior = 'none' | 'both' | 'horizontal' | 'vertical';\r\n\r\nexport type OverflowBehavior =\r\n | 'hidden'\r\n | 'scroll'\r\n | 'visible'\r\n | 'visible-hidden'\r\n | 'visible-scroll';\r\n\r\nexport type ScrollbarVisibilityBehavior = 'visible' | 'hidden' | 'auto';\r\n\r\nexport type ScrollbarAutoHideBehavior = 'never' | 'scroll' | 'leave' | 'move';\r\n\r\nexport type ScrollBehavior = 'always' | 'ifneeded' | 'never';\r\n\r\nexport type BasicEventCallback = (this: any) => void;\r\n\r\nexport type ScrollEventCallback = (this: any, args?: UIEvent) => void;\r\n\r\nexport type OverflowChangedCallback = (this: any, args?: OverflowChangedArgs) => void;\r\n\r\nexport type OverflowAmountChangedCallback = (this: any, args?: OverflowAmountChangedArgs) => void;\r\n\r\nexport type DirectionChangedCallback = (this: any, args?: DirectionChangedArgs) => void;\r\n\r\nexport type SizeChangedCallback = (this: any, args?: SizeChangedArgs) => void;\r\n\r\nexport type UpdatedCallback = (this: any, args?: UpdatedArgs) => void;\r\n\r\nexport interface Options {\r\n paddingAbsolute: boolean;\r\n showNativeOverlaidScrollbars: boolean;\r\n updating: {\r\n elementEvents: Array<[elementSelector: string, eventNames: string]> | null;\r\n attributes: string[] | null;\r\n debounce: [timeout: number, maxWait: number] | number | null; // (if tuple: [timeout: 0, maxWait: 33], if number: [timeout: number, maxWait: false]) debounce for content Changes\r\n ignoreMutation: ((mutation: MutationRecord) => any) | null;\r\n };\r\n overflow: {\r\n x: OverflowBehavior;\r\n y: OverflowBehavior;\r\n };\r\n scrollbars: {\r\n theme: string | null;\r\n visibility: ScrollbarVisibilityBehavior;\r\n autoHide: ScrollbarAutoHideBehavior;\r\n autoHideDelay: number;\r\n dragScroll: boolean;\r\n clickScroll: boolean;\r\n pointers: string[] | null;\r\n };\r\n}\r\n\r\nexport type ReadonlyOptions = DeepReadonly;\r\n\r\nexport interface OverflowChangedArgs {\r\n x: boolean;\r\n y: boolean;\r\n xScrollable: boolean;\r\n yScrollable: boolean;\r\n clipped: boolean;\r\n}\r\n\r\nexport interface OverflowAmountChangedArgs {\r\n x: number;\r\n y: number;\r\n}\r\n\r\nexport interface DirectionChangedArgs {\r\n isRTL: number;\r\n dir: string;\r\n}\r\n\r\nexport interface SizeChangedArgs {\r\n width: number;\r\n height: number;\r\n}\r\n\r\nexport interface UpdatedArgs {\r\n forced: boolean;\r\n}\r\n\r\nexport const defaultOptions: Options = {\r\n // resize: 'none', // none || both || horizontal || vertical || n || b || h || v\r\n paddingAbsolute: false, // true || false\r\n showNativeOverlaidScrollbars: false, // true || false\r\n updating: {\r\n elementEvents: [['img', 'load']], // array of tuples || null\r\n debounce: [0, 33], // number || number array || null\r\n attributes: null, // string array || null\r\n ignoreMutation: null, // () => any || null\r\n },\r\n overflow: {\r\n x: 'scroll', // visible-hidden || visible-scroll || hidden || scroll || v-h || v-s || h || s\r\n y: 'scroll', // visible-hidden || visible-scroll || hidden || scroll || v-h || v-s || h || s\r\n },\r\n scrollbars: {\r\n theme: 'os-theme-dark',\r\n visibility: 'auto', // visible || hidden || auto || v || h || a\r\n autoHide: 'never', // never || scroll || leave || move || n || s || l || m\r\n autoHideDelay: 800, // number\r\n dragScroll: true, // true || false\r\n clickScroll: false, // true || false\r\n pointers: ['mouse', 'touch', 'pen'], // null || array of supported pointers: https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent/pointerType\r\n },\r\n};\r\n\r\nexport const getOptionsDiff = (currOptions: T, newOptions: DeepPartial): DeepPartial => {\r\n const diff: DeepPartial = {};\r\n const optionsKeys = keys(newOptions).concat(keys(currOptions));\r\n\r\n each(optionsKeys, (optionKey) => {\r\n const currOptionValue = currOptions[optionKey];\r\n const newOptionValue = newOptions[optionKey];\r\n\r\n if (isObject(currOptionValue) && isObject(newOptionValue)) {\r\n assignDeep((diff[optionKey] = {}), getOptionsDiff(currOptionValue, newOptionValue));\r\n } else if (hasOwnProperty(newOptions, optionKey) && newOptionValue !== currOptionValue) {\r\n let isDiff = true;\r\n\r\n if (isArray(currOptionValue) || isArray(newOptionValue)) {\r\n try {\r\n if (opsStringify(currOptionValue) === opsStringify(newOptionValue)) {\r\n isDiff = false;\r\n }\r\n } catch {}\r\n }\r\n\r\n if (isDiff) {\r\n diff[optionKey] = newOptionValue;\r\n }\r\n }\r\n });\r\n\r\n return diff;\r\n};\r\n","import { assignDeep, each, isArray, keys } from 'support';\r\nimport { OverlayScrollbars, OverlayScrollbarsStatic } from 'overlayscrollbars';\r\n\r\nexport type PluginInstance =\r\n | Record\r\n | ((staticObj: OverlayScrollbarsStatic, instanceObj: OverlayScrollbars) => void);\r\nexport type Plugin = {\r\n [pluginName: string]: T;\r\n};\r\n\r\nconst pluginRegistry: Record = {};\r\n\r\nexport const getPlugins = () => assignDeep({}, pluginRegistry);\r\n\r\nexport const addPlugin = (addedPlugin: Plugin | Plugin[]) => {\r\n each((isArray(addedPlugin) ? addedPlugin : [addedPlugin]) as Plugin[], (plugin) => {\r\n each(keys(plugin), (pluginName) => {\r\n pluginRegistry[pluginName] = plugin[pluginName];\r\n });\r\n });\r\n};\r\n","function _extends() {\n module.exports = _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import { each, hasOwnProperty, keys, push, isEmptyObject } from 'support/utils';\r\nimport { type, isArray, isUndefined, isPlainObject, isString } from 'support/utils/types';\r\nimport { PlainObject, DeepPartial } from 'typings';\r\n\r\nexport type OptionsObjectType = Record;\r\nexport type OptionsFunctionType = (this: any, ...args: any[]) => any;\r\nexport type OptionsTemplateType = ExtractPropsKey<\r\n OptionsTemplateTypeMap,\r\n T\r\n>;\r\nexport type OptionsTemplateTypes = keyof OptionsTemplateTypeMap;\r\nexport type OptionsTemplateNativeTypes = OptionsTemplateTypeMap[keyof OptionsTemplateTypeMap];\r\n\r\nexport type OptionsTemplateValue = T extends string\r\n ? string extends T\r\n ? OptionsTemplateValueNonEnum\r\n : string\r\n : OptionsTemplateValueNonEnum;\r\n\r\nexport type OptionsTemplate = {\r\n [P in keyof T]: T[P] extends OptionsObjectType\r\n ? OptionsTemplate\r\n : T[P] extends OptionsTemplateNativeTypes\r\n ? OptionsTemplateValue\r\n : never;\r\n};\r\n\r\nexport type OptionsValidationResult = [\r\n DeepPartial, // validated\r\n Record // foreign\r\n];\r\n\r\ntype OptionsTemplateTypeMap = {\r\n __TPL_boolean_TYPE__: boolean;\r\n __TPL_number_TYPE__: number;\r\n __TPL_string_TYPE__: string;\r\n __TPL_array_TYPE__: Array | ReadonlyArray;\r\n __TPL_function_TYPE__: OptionsFunctionType;\r\n __TPL_null_TYPE__: null;\r\n __TPL_object_TYPE__: OptionsObjectType;\r\n};\r\n\r\ntype OptionsTemplateValueNonEnum =\r\n | OptionsTemplateType\r\n | [OptionsTemplateType, ...Array];\r\n\r\ntype ExtractPropsKey = {\r\n [P in keyof T]: TProps extends T[P] ? P : never;\r\n}[keyof T];\r\n\r\ntype OptionsTemplateTypesDictionary = {\r\n readonly boolean: OptionsTemplateType;\r\n readonly number: OptionsTemplateType;\r\n readonly string: OptionsTemplateType;\r\n readonly array: OptionsTemplateType>;\r\n readonly object: OptionsTemplateType;\r\n readonly function: OptionsTemplateType;\r\n readonly null: OptionsTemplateType;\r\n};\r\n\r\nconst optionsTemplateTypes: OptionsTemplateTypesDictionary = {\r\n boolean: '__TPL_boolean_TYPE__',\r\n number: '__TPL_number_TYPE__',\r\n string: '__TPL_string_TYPE__',\r\n array: '__TPL_array_TYPE__',\r\n object: '__TPL_object_TYPE__',\r\n function: '__TPL_function_TYPE__',\r\n null: '__TPL_null_TYPE__',\r\n};\r\n\r\n/**\r\n * Validates the given options object according to the given template object and returns a object which looks like:\r\n * {\r\n * foreign : a object which consists of properties which aren't defined inside the template. (foreign properties)\r\n * validated : a object which consists only of valid properties. (property name is inside the template and value has a correct type)\r\n * }\r\n * @param template The template according to which the options object shall be validated.\r\n * @param options The options object which shall be validated.\r\n * @param optionsDiff When provided the returned validated object will only have properties which are different to this objects properties.\r\n * Example (assume all properties are valid to the template):\r\n * Options object : { a: 'a', b: 'b', c: 'c' }\r\n * optionsDiff object : { a: 'a', b: 'b', c: undefined }\r\n * Returned validated object : { c: 'c' }\r\n * Because the value of the properties a and b didn't change, they aren't included in the returned object.\r\n * Without the optionsDiff object the returned validated object would be: { a: 'a', b: 'b', c: 'c' }\r\n * @param doWriteErrors True if errors shall be logged into the console, false otherwise.\r\n * @param propPath The propertyPath which lead to this object. (used for error logging)\r\n */\r\nconst validateRecursive = (\r\n template: OptionsTemplate,\r\n options: DeepPartial,\r\n doWriteErrors?: boolean,\r\n propPath?: string\r\n): OptionsValidationResult => {\r\n const validatedOptions: DeepPartial = {};\r\n const optionsCopy: DeepPartial = { ...options };\r\n const props = keys(template).filter((prop) => hasOwnProperty(options, prop));\r\n\r\n each(props, (prop: Extract) => {\r\n const optionsValue: any = options[prop];\r\n const templateValue: PlainObject | string | OptionsTemplateTypes | Array =\r\n template[prop];\r\n const templateIsComplex = isPlainObject(templateValue);\r\n const propPrefix = propPath ? `${propPath}.` : '';\r\n\r\n // if the template has a object as value, it means that the options are complex (verschachtelt)\r\n if (templateIsComplex && isPlainObject(optionsValue)) {\r\n const [validated, foreign] = validateRecursive(\r\n templateValue as T,\r\n optionsValue,\r\n doWriteErrors,\r\n propPrefix + prop\r\n );\r\n validatedOptions[prop] = validated as any;\r\n optionsCopy[prop] = foreign as any;\r\n\r\n each([optionsCopy, validatedOptions], (value) => {\r\n if (isEmptyObject(value[prop])) {\r\n delete value[prop];\r\n }\r\n });\r\n } else if (!templateIsComplex) {\r\n let isValid = false;\r\n const errorEnumStrings: Array = [];\r\n const errorPossibleTypes: Array = [];\r\n const optionsValueType = type(optionsValue);\r\n const templateValueArr: Array = !isArray(templateValue)\r\n ? [templateValue as string | OptionsTemplateTypes]\r\n : (templateValue as Array);\r\n\r\n each(templateValueArr, (currTemplateType) => {\r\n // if currType value isn't inside possibleTemplateTypes we assume its a enum string value\r\n let typeString: string | undefined;\r\n each(optionsTemplateTypes, (value: string, key: string) => {\r\n if (value === currTemplateType) {\r\n typeString = key;\r\n }\r\n });\r\n const isEnumString = isUndefined(typeString);\r\n if (isEnumString && isString(optionsValue)) {\r\n // split it into a array which contains all possible values for example: [\"yes\", \"no\", \"maybe\"]\r\n const enumStringSplit = currTemplateType.split(' ');\r\n isValid = !!enumStringSplit.find((possibility) => possibility === optionsValue);\r\n\r\n // build error message\r\n push(errorEnumStrings, enumStringSplit);\r\n } else {\r\n isValid = optionsTemplateTypes[optionsValueType] === currTemplateType;\r\n }\r\n\r\n // build error message\r\n push(errorPossibleTypes, isEnumString ? optionsTemplateTypes.string : typeString!);\r\n\r\n // continue if invalid, break if valid\r\n return !isValid;\r\n });\r\n\r\n if (isValid) {\r\n validatedOptions[prop] = optionsValue;\r\n } else if (doWriteErrors) {\r\n console.warn(\r\n `${\r\n `The option \"${propPrefix}${prop}\" wasn't set, because it doesn't accept the type [ ${optionsValueType.toUpperCase()} ] with the value of \"${optionsValue}\".\\r\\n` +\r\n `Accepted types are: [ ${errorPossibleTypes.join(', ').toUpperCase()} ].\\r\\n`\r\n }${\r\n errorEnumStrings.length > 0\r\n ? `\\r\\nValid strings are: [ ${errorEnumStrings.join(', ')} ].`\r\n : ''\r\n }`\r\n );\r\n }\r\n\r\n delete optionsCopy[prop];\r\n }\r\n });\r\n\r\n return [validatedOptions, optionsCopy]; // optionsCopy equals now to foreign options\r\n};\r\n\r\n/**\r\n * Validates the given options object according to the given template object and returns a tuple which looks like:\r\n * [\r\n * validated : a object which consists only of valid properties. (property name is inside the template and value has a correct type)\r\n * foreign : a object which consists of properties which aren't defined inside the template. (foreign properties)\r\n * ]\r\n * @param template The template according to which the options object shall be validated.\r\n * @param options The options object which shall be validated.\r\n * @param doWriteErrors True if errors shall be logged into the console, false otherwise.\r\n */\r\nconst validateOptions = (\r\n template: OptionsTemplate,\r\n options: DeepPartial,\r\n doWriteErrors?: boolean\r\n): OptionsValidationResult => validateRecursive(template, options, doWriteErrors);\r\n\r\nexport { validateOptions, optionsTemplateTypes };\r\n","import {\r\n Options,\r\n OverflowBehavior,\r\n ScrollbarVisibilityBehavior,\r\n ScrollbarAutoHideBehavior,\r\n} from 'options';\r\nimport {\r\n validateOptions,\r\n OptionsTemplate,\r\n OptionsTemplateValue,\r\n optionsTemplateTypes as oTypes,\r\n} from 'plugins/optionsValidationPlugin/validation';\r\nimport type { DeepPartial } from 'typings';\r\nimport type { Plugin } from 'plugins';\r\n\r\nconst numberAllowedValues: OptionsTemplateValue = oTypes.number;\r\nconst booleanAllowedValues: OptionsTemplateValue = oTypes.boolean;\r\nconst arrayNullValues: OptionsTemplateValue | null> = [oTypes.array, oTypes.null];\r\nconst overflowAllowedValues: OptionsTemplateValue =\r\n 'hidden scroll visible visible-hidden';\r\nconst scrollbarsVisibilityAllowedValues: OptionsTemplateValue =\r\n 'visible hidden auto';\r\nconst scrollbarsAutoHideAllowedValues: OptionsTemplateValue =\r\n 'never scroll leavemove';\r\n\r\nconst optionsTemplate: OptionsTemplate = {\r\n // resize: resizeAllowedValues, // none || both || horizontal || vertical || n || b ||\r\n paddingAbsolute: booleanAllowedValues, // true || false\r\n showNativeOverlaidScrollbars: booleanAllowedValues, // true || false\r\n updating: {\r\n elementEvents: arrayNullValues, // array of tuples || null\r\n attributes: arrayNullValues,\r\n debounce: [oTypes.number, oTypes.array, oTypes.null], // number || number array || null\r\n ignoreMutation: [oTypes.function, oTypes.null], // function || null\r\n },\r\n overflow: {\r\n x: overflowAllowedValues, // visible-hidden || visible-scroll || hidden || scrol\r\n y: overflowAllowedValues, // visible-hidden || visible-scroll || hidden || scrol\r\n },\r\n scrollbars: {\r\n theme: [oTypes.string, oTypes.null], // string || null\r\n visibility: scrollbarsVisibilityAllowedValues, // visible || hidden || auto || v ||\r\n autoHide: scrollbarsAutoHideAllowedValues, // never || scroll || leave || move ||\r\n autoHideDelay: numberAllowedValues, // number\r\n dragScroll: booleanAllowedValues, // true || false\r\n clickScroll: booleanAllowedValues, // true || false\r\n pointers: [oTypes.array, oTypes.null], // string array\r\n },\r\n /*\r\n textarea: {\r\n dynWidth: booleanAllowedValues, // true || false\r\n dynHeight: booleanAllowedValues, // true || false\r\n inheritedAttrs: stringArrayNullAllowedValues, // string || array || nul\r\n },\r\n */\r\n};\r\n\r\nexport type OptionsValidationPluginInstance = {\r\n _: (options: DeepPartial, doWriteErrors?: boolean) => DeepPartial;\r\n};\r\n\r\nexport const optionsValidationPluginName = '__osOptionsValidationPlugin';\r\n\r\nexport const optionsValidationPlugin: Plugin = {\r\n [optionsValidationPluginName]: {\r\n _: (options: DeepPartial, doWriteErrors?: boolean) => {\r\n const [validated, foreign] = validateOptions(optionsTemplate, options, doWriteErrors);\r\n return { ...foreign, ...validated };\r\n },\r\n },\r\n};\r\n","import {\r\n createDOM,\r\n style,\r\n appendChildren,\r\n offsetSize,\r\n scrollLeft,\r\n scrollTop,\r\n on,\r\n addClass,\r\n equalWH,\r\n push,\r\n cAF,\r\n rAF,\r\n stopPropagation,\r\n} from 'support';\r\nimport {\r\n classNameSizeObserverListenerScroll,\r\n classNameSizeObserverListenerItem,\r\n classNameSizeObserverListenerItemFinal,\r\n} from 'classnames';\r\nimport type { Plugin } from 'plugins';\r\n\r\nexport type SizeObserverPluginInstance = {\r\n _: (\r\n listenerElement: HTMLElement,\r\n onSizeChangedCallback: (appear: boolean) => any,\r\n observeAppearChange: boolean\r\n ) => [appearCallback: () => any, offFns: (() => any)[]];\r\n};\r\n\r\nconst scrollAmount = 3333333;\r\nconst scrollEventName = 'scroll';\r\nexport const sizeObserverPluginName = '__osSizeObserverPlugin';\r\n\r\nexport const sizeObserverPlugin: Plugin = {\r\n [sizeObserverPluginName]: {\r\n _: (listenerElement, onSizeChangedCallback, observeAppearChange) => {\r\n const observerElementChildren = createDOM(\r\n `
`\r\n );\r\n appendChildren(listenerElement, observerElementChildren);\r\n addClass(listenerElement, classNameSizeObserverListenerScroll);\r\n const observerElementChildrenRoot = observerElementChildren[0] as HTMLElement;\r\n const shrinkElement = observerElementChildrenRoot.lastChild as HTMLElement;\r\n const expandElement = observerElementChildrenRoot.firstChild as HTMLElement;\r\n const expandElementChild = expandElement?.firstChild as HTMLElement;\r\n\r\n let cacheSize = offsetSize(observerElementChildrenRoot);\r\n let currSize = cacheSize;\r\n let isDirty = false;\r\n let rAFId: number;\r\n\r\n const reset = () => {\r\n scrollLeft(expandElement, scrollAmount);\r\n scrollTop(expandElement, scrollAmount);\r\n scrollLeft(shrinkElement, scrollAmount);\r\n scrollTop(shrinkElement, scrollAmount);\r\n };\r\n const onResized = (appear?: unknown) => {\r\n rAFId = 0;\r\n if (isDirty) {\r\n cacheSize = currSize;\r\n onSizeChangedCallback(appear === true);\r\n }\r\n };\r\n const onScroll = (scrollEvent?: Event | false) => {\r\n currSize = offsetSize(observerElementChildrenRoot);\r\n isDirty = !scrollEvent || !equalWH(currSize, cacheSize);\r\n\r\n if (scrollEvent) {\r\n stopPropagation(scrollEvent);\r\n\r\n if (isDirty && !rAFId) {\r\n cAF!(rAFId);\r\n rAFId = rAF!(onResized);\r\n }\r\n } else {\r\n onResized(scrollEvent === false);\r\n }\r\n\r\n reset();\r\n };\r\n const offListeners = push(\r\n [],\r\n [on(expandElement, scrollEventName, onScroll), on(shrinkElement, scrollEventName, onScroll)]\r\n );\r\n\r\n // lets assume that the divs will never be that large and a constant value is enough\r\n style(expandElementChild, {\r\n width: scrollAmount,\r\n height: scrollAmount,\r\n });\r\n\r\n rAF!(reset);\r\n\r\n return [observeAppearChange ? onScroll.bind(0, false) : reset, offListeners];\r\n },\r\n },\r\n};\r\n","import {\r\n keys,\r\n attr,\r\n WH,\r\n style,\r\n addClass,\r\n removeClass,\r\n noop,\r\n each,\r\n assignDeep,\r\n windowSize,\r\n UpdateCache,\r\n XY,\r\n} from 'support';\r\nimport { classNameViewportArrange } from 'classnames';\r\nimport type { StyleObject } from 'typings';\r\nimport type { StructureSetupState } from 'setups/structureSetup';\r\nimport type {\r\n ViewportOverflowState,\r\n GetViewportOverflowState,\r\n HideNativeScrollbars,\r\n} from 'setups/structureSetup/updateSegments/overflowUpdateSegment';\r\nimport type { InternalEnvironment } from 'environment';\r\nimport type { Plugin } from 'plugins';\r\n\r\nexport type ArrangeViewport = (\r\n viewportOverflowState: ViewportOverflowState,\r\n viewportScrollSize: WH,\r\n sizeFraction: WH,\r\n directionIsRTL: boolean\r\n) => boolean;\r\n\r\nexport type UndoViewportArrangeResult = [\r\n redoViewportArrange: () => void,\r\n overflowState?: ViewportOverflowState\r\n];\r\n\r\nexport type UndoArrangeViewport = (\r\n showNativeOverlaidScrollbars: boolean,\r\n directionIsRTL: boolean,\r\n viewportOverflowState?: ViewportOverflowState\r\n) => UndoViewportArrangeResult;\r\n\r\nexport type ScrollbarsHidingPluginInstance = {\r\n _createUniqueViewportArrangeElement(env: InternalEnvironment): HTMLStyleElement | false;\r\n _overflowUpdateSegment(\r\n doViewportArrange: boolean,\r\n flexboxGlue: boolean,\r\n viewport: HTMLElement,\r\n viewportArrange: HTMLStyleElement | false | null | undefined,\r\n getState: () => StructureSetupState,\r\n getViewportOverflowState: GetViewportOverflowState,\r\n hideNativeScrollbars: HideNativeScrollbars\r\n ): [ArrangeViewport, UndoArrangeViewport];\r\n _envWindowZoom(): (\r\n envInstance: InternalEnvironment,\r\n updateNativeScrollbarSizeCache: UpdateCache>,\r\n triggerEvent: () => void\r\n ) => void;\r\n};\r\n\r\nlet contentArrangeCounter = 0;\r\nconst { round, abs } = Math;\r\nconst getWindowDPR = (): number => {\r\n // eslint-disable-next-line\r\n // @ts-ignore\r\n const dDPI = window.screen.deviceXDPI || 0;\r\n // eslint-disable-next-line\r\n // @ts-ignore\r\n const sDPI = window.screen.logicalXDPI || 1;\r\n return window.devicePixelRatio || dDPI / sDPI;\r\n};\r\n\r\nconst diffBiggerThanOne = (valOne: number, valTwo: number): boolean => {\r\n const absValOne = abs(valOne);\r\n const absValTwo = abs(valTwo);\r\n return !(absValOne === absValTwo || absValOne + 1 === absValTwo || absValOne - 1 === absValTwo);\r\n};\r\n\r\nexport const scrollbarsHidingPluginName = '__osScrollbarsHidingPlugin';\r\n\r\nexport const scrollbarsHidingPlugin: Plugin = {\r\n [scrollbarsHidingPluginName]: {\r\n _createUniqueViewportArrangeElement: (env: InternalEnvironment) => {\r\n const { _nativeScrollbarsHiding, _nativeScrollbarsOverlaid, _cssCustomProperties } = env;\r\n const create =\r\n !_cssCustomProperties &&\r\n !_nativeScrollbarsHiding &&\r\n (_nativeScrollbarsOverlaid.x || _nativeScrollbarsOverlaid.y);\r\n const result = create ? document.createElement('style') : false;\r\n\r\n if (result) {\r\n attr(result, 'id', `${classNameViewportArrange}-${contentArrangeCounter}`);\r\n contentArrangeCounter++;\r\n }\r\n\r\n return result;\r\n },\r\n _overflowUpdateSegment: (\r\n doViewportArrange,\r\n flexboxGlue,\r\n viewport,\r\n viewportArrange,\r\n getState,\r\n getViewportOverflowState,\r\n hideNativeScrollbars\r\n ) => {\r\n /**\r\n * Sets the styles of the viewport arrange element.\r\n * @param viewportOverflowState The viewport overflow state according to which the scrollbars shall be hidden.\r\n * @param viewportScrollSize The content scroll size.\r\n * @param directionIsRTL Whether the direction is RTL or not.\r\n * @returns A boolean which indicates whether the viewport arrange element was adjusted.\r\n */\r\n const arrangeViewport: ArrangeViewport = (\r\n viewportOverflowState,\r\n viewportScrollSize,\r\n sizeFraction,\r\n directionIsRTL\r\n ) => {\r\n if (doViewportArrange) {\r\n const { _viewportPaddingStyle } = getState();\r\n const { _scrollbarsHideOffset, _scrollbarsHideOffsetArrange } = viewportOverflowState;\r\n const { x: arrangeX, y: arrangeY } = _scrollbarsHideOffsetArrange;\r\n const { x: hideOffsetX, y: hideOffsetY } = _scrollbarsHideOffset;\r\n const viewportArrangeHorizontalPaddingKey: keyof StyleObject = directionIsRTL\r\n ? 'paddingRight'\r\n : 'paddingLeft';\r\n const viewportArrangeHorizontalPaddingValue = _viewportPaddingStyle[\r\n viewportArrangeHorizontalPaddingKey\r\n ] as number;\r\n const viewportArrangeVerticalPaddingValue = _viewportPaddingStyle.paddingTop as number;\r\n const fractionalContentWidth = viewportScrollSize.w + sizeFraction.w;\r\n const fractionalContenHeight = viewportScrollSize.h + sizeFraction.h;\r\n const arrangeSize = {\r\n w:\r\n hideOffsetY && arrangeY\r\n ? `${\r\n hideOffsetY + fractionalContentWidth - viewportArrangeHorizontalPaddingValue\r\n }px`\r\n : '',\r\n h:\r\n hideOffsetX && arrangeX\r\n ? `${hideOffsetX + fractionalContenHeight - viewportArrangeVerticalPaddingValue}px`\r\n : '',\r\n };\r\n\r\n // adjust content arrange / before element\r\n if (viewportArrange) {\r\n const { sheet } = viewportArrange;\r\n if (sheet) {\r\n const { cssRules } = sheet;\r\n if (cssRules) {\r\n if (!cssRules.length) {\r\n sheet.insertRule(\r\n `#${attr(viewportArrange, 'id')} + .${classNameViewportArrange}::before {}`,\r\n 0\r\n );\r\n }\r\n\r\n // @ts-ignore\r\n const ruleStyle = cssRules[0].style;\r\n\r\n ruleStyle.width = arrangeSize.w;\r\n ruleStyle.height = arrangeSize.h;\r\n }\r\n }\r\n } else {\r\n style<'--os-vaw' | '--os-vah'>(viewport, {\r\n '--os-vaw': arrangeSize.w,\r\n '--os-vah': arrangeSize.h,\r\n });\r\n }\r\n }\r\n\r\n return doViewportArrange;\r\n };\r\n\r\n /**\r\n * Removes all styles applied because of the viewport arrange strategy.\r\n * @param showNativeOverlaidScrollbars Whether native overlaid scrollbars are shown instead of hidden.\r\n * @param directionIsRTL Whether the direction is RTL or not.\r\n * @param viewportOverflowState The currentviewport overflow state or undefined if it has to be determined.\r\n * @returns A object with a function which applies all the removed styles and the determined viewport vverflow state.\r\n */\r\n const undoViewportArrange: UndoArrangeViewport = (\r\n showNativeOverlaidScrollbars,\r\n directionIsRTL,\r\n viewportOverflowState?\r\n ) => {\r\n if (doViewportArrange) {\r\n const finalViewportOverflowState =\r\n viewportOverflowState || getViewportOverflowState(showNativeOverlaidScrollbars);\r\n const { _viewportPaddingStyle: viewportPaddingStyle } = getState();\r\n const { _scrollbarsHideOffsetArrange } = finalViewportOverflowState;\r\n const { x: arrangeX, y: arrangeY } = _scrollbarsHideOffsetArrange;\r\n const finalPaddingStyle: StyleObject = {};\r\n const assignProps = (props: string) =>\r\n each(props.split(' '), (prop) => {\r\n finalPaddingStyle[prop] = viewportPaddingStyle[prop];\r\n });\r\n\r\n if (arrangeX) {\r\n assignProps('marginBottom paddingTop paddingBottom');\r\n }\r\n\r\n if (arrangeY) {\r\n assignProps('marginLeft marginRight paddingLeft paddingRight');\r\n }\r\n\r\n const prevStyle = style(viewport, keys(finalPaddingStyle));\r\n\r\n removeClass(viewport, classNameViewportArrange);\r\n\r\n if (!flexboxGlue) {\r\n finalPaddingStyle.height = '';\r\n }\r\n\r\n style(viewport, finalPaddingStyle);\r\n\r\n return [\r\n () => {\r\n hideNativeScrollbars(\r\n finalViewportOverflowState,\r\n directionIsRTL,\r\n doViewportArrange,\r\n prevStyle\r\n );\r\n style(viewport, prevStyle);\r\n addClass(viewport, classNameViewportArrange);\r\n },\r\n finalViewportOverflowState,\r\n ];\r\n }\r\n return [noop];\r\n };\r\n\r\n return [arrangeViewport, undoViewportArrange];\r\n },\r\n _envWindowZoom: () => {\r\n let size = { w: 0, h: 0 };\r\n let dpr = 0;\r\n\r\n return (envInstance, updateNativeScrollbarSizeCache, triggerEvent) => {\r\n const sizeNew = windowSize();\r\n const deltaSize = {\r\n w: sizeNew.w - size.w,\r\n h: sizeNew.h - size.h,\r\n };\r\n\r\n if (deltaSize.w === 0 && deltaSize.h === 0) {\r\n return;\r\n }\r\n\r\n const deltaAbsSize = {\r\n w: abs(deltaSize.w),\r\n h: abs(deltaSize.h),\r\n };\r\n const deltaAbsRatio = {\r\n w: abs(round(sizeNew.w / (size.w / 100.0))),\r\n h: abs(round(sizeNew.h / (size.h / 100.0))),\r\n };\r\n const dprNew = getWindowDPR();\r\n const deltaIsBigger = deltaAbsSize.w > 2 && deltaAbsSize.h > 2;\r\n const difference = !diffBiggerThanOne(deltaAbsRatio.w, deltaAbsRatio.h);\r\n const dprChanged = dprNew !== dpr && dprNew > 0;\r\n const isZoom = deltaIsBigger && difference && dprChanged;\r\n\r\n if (isZoom) {\r\n const [scrollbarSize, scrollbarSizeChanged] = updateNativeScrollbarSizeCache();\r\n\r\n assignDeep(envInstance._nativeScrollbarsSize, scrollbarSize); // keep the object same!\r\n\r\n if (scrollbarSizeChanged) {\r\n triggerEvent();\r\n }\r\n }\r\n\r\n size = sizeNew;\r\n dpr = dprNew;\r\n };\r\n },\r\n },\r\n};\r\n","import {\r\n createDOM,\r\n addClass,\r\n style,\r\n appendChildren,\r\n fractionalSize,\r\n clientSize,\r\n absoluteCoordinates,\r\n offsetSize,\r\n scrollLeft,\r\n XY,\r\n removeAttr,\r\n removeElements,\r\n equalBCRWH,\r\n getBoundingClientRect,\r\n assignDeep,\r\n cssProperty,\r\n createCache,\r\n equalXY,\r\n createEventListenerHub,\r\n EventListener,\r\n} from 'support';\r\nimport {\r\n classNameEnvironment,\r\n classNameEnvironmentFlexboxGlue,\r\n classNameEnvironmentFlexboxGlueMax,\r\n classNameViewportScrollbarHidden,\r\n} from 'classnames';\r\nimport { Options, defaultOptions } from 'options';\r\nimport { DeepPartial } from 'typings';\r\nimport { Initialization } from 'initialization';\r\nimport { getPlugins, ScrollbarsHidingPluginInstance, scrollbarsHidingPluginName } from 'plugins';\r\n\r\ntype EnvironmentEventMap = {\r\n _: [];\r\n};\r\n\r\nexport interface InternalEnvironment {\r\n readonly _nativeScrollbarsSize: XY;\r\n readonly _nativeScrollbarsOverlaid: XY;\r\n readonly _nativeScrollbarsHiding: boolean;\r\n readonly _rtlScrollBehavior: { n: boolean; i: boolean };\r\n readonly _flexboxGlue: boolean;\r\n readonly _cssCustomProperties: boolean;\r\n readonly _staticDefaultInitialization: Initialization;\r\n readonly _staticDefaultOptions: Options;\r\n _addListener(listener: EventListener): () => void;\r\n _getDefaultInitialization(): Initialization;\r\n _setDefaultInitialization(newInitialization: DeepPartial): void;\r\n _getDefaultOptions(): Options;\r\n _setDefaultOptions(newDefaultOptions: DeepPartial): void;\r\n}\r\n\r\nlet environmentInstance: InternalEnvironment;\r\n\r\nconst getNativeScrollbarSize = (\r\n body: HTMLElement,\r\n measureElm: HTMLElement,\r\n measureElmChild: HTMLElement,\r\n clear?: boolean\r\n): XY => {\r\n appendChildren(body, measureElm);\r\n\r\n const cSize = clientSize(measureElm);\r\n const oSize = offsetSize(measureElm);\r\n const fSize = fractionalSize(measureElmChild);\r\n\r\n clear && removeElements(measureElm);\r\n\r\n return {\r\n x: oSize.h - cSize.h + fSize.h,\r\n y: oSize.w - cSize.w + fSize.w,\r\n };\r\n};\r\n\r\nconst getNativeScrollbarsHiding = (testElm: HTMLElement): boolean => {\r\n let result = false;\r\n const revertClass = addClass(testElm, classNameViewportScrollbarHidden);\r\n try {\r\n result =\r\n style(testElm, cssProperty('scrollbar-width')) === 'none' ||\r\n window.getComputedStyle(testElm, '::-webkit-scrollbar').getPropertyValue('display') ===\r\n 'none';\r\n } catch (ex) {}\r\n revertClass();\r\n return result;\r\n};\r\n\r\nconst getRtlScrollBehavior = (\r\n parentElm: HTMLElement,\r\n childElm: HTMLElement\r\n): { i: boolean; n: boolean } => {\r\n const strHidden = 'hidden';\r\n style(parentElm, { overflowX: strHidden, overflowY: strHidden, direction: 'rtl' });\r\n scrollLeft(parentElm, 0);\r\n\r\n const parentOffset = absoluteCoordinates(parentElm);\r\n const childOffset = absoluteCoordinates(childElm);\r\n scrollLeft(parentElm, -999); // https://github.com/KingSora/OverlayScrollbars/issues/187\r\n const childOffsetAfterScroll = absoluteCoordinates(childElm);\r\n return {\r\n /**\r\n * origin direction = determines if the zero scroll position is on the left or right side\r\n * 'i' means 'invert' (i === true means that the axis must be inverted to be correct)\r\n * true = on the left side\r\n * false = on the right side\r\n */\r\n i: parentOffset.x === childOffset.x,\r\n /**\r\n * negative = determines if the maximum scroll is positive or negative\r\n * 'n' means 'negate' (n === true means that the axis must be negated to be correct)\r\n * true = negative\r\n * false = positive\r\n */\r\n n: childOffset.x !== childOffsetAfterScroll.x,\r\n };\r\n};\r\n\r\nconst getFlexboxGlue = (parentElm: HTMLElement, childElm: HTMLElement): boolean => {\r\n const revertFbxGlue = addClass(parentElm, classNameEnvironmentFlexboxGlue);\r\n const minOffsetsizeParent = getBoundingClientRect(parentElm);\r\n const minOffsetsize = getBoundingClientRect(childElm);\r\n const supportsMin = equalBCRWH(minOffsetsize, minOffsetsizeParent, true);\r\n\r\n const revertFbxGlueMax = addClass(parentElm, classNameEnvironmentFlexboxGlueMax);\r\n const maxOffsetsizeParent = getBoundingClientRect(parentElm);\r\n const maxOffsetsize = getBoundingClientRect(childElm);\r\n const supportsMax = equalBCRWH(maxOffsetsize, maxOffsetsizeParent, true);\r\n\r\n revertFbxGlue();\r\n revertFbxGlueMax();\r\n\r\n return supportsMin && supportsMax;\r\n};\r\n\r\nconst createEnvironment = (): InternalEnvironment => {\r\n const { body } = document;\r\n const envDOM = createDOM(`
`);\r\n const envElm = envDOM[0] as HTMLElement;\r\n const envChildElm = envElm.firstChild as HTMLElement;\r\n const [addEvent, , triggerEvent] = createEventListenerHub();\r\n const [updateNativeScrollbarSizeCache, getNativeScrollbarSizeCache] = createCache(\r\n {\r\n _initialValue: getNativeScrollbarSize(body, envElm, envChildElm),\r\n _equal: equalXY,\r\n },\r\n getNativeScrollbarSize.bind(0, body, envElm, envChildElm, true)\r\n );\r\n const [nativeScrollbarsSize] = getNativeScrollbarSizeCache();\r\n const nativeScrollbarsHiding = getNativeScrollbarsHiding(envElm);\r\n const nativeScrollbarsOverlaid = {\r\n x: nativeScrollbarsSize.x === 0,\r\n y: nativeScrollbarsSize.y === 0,\r\n };\r\n const staticDefaultInitialization: Initialization = {\r\n host: null,\r\n padding: !nativeScrollbarsHiding,\r\n viewport: (target) => nativeScrollbarsHiding && target === target.ownerDocument.body && target,\r\n content: false,\r\n scrollbarsSlot: true,\r\n cancel: {\r\n nativeScrollbarsOverlaid: true,\r\n body: null,\r\n },\r\n };\r\n const staticDefaultOptions = assignDeep({}, defaultOptions);\r\n\r\n const env: InternalEnvironment = {\r\n _nativeScrollbarsSize: nativeScrollbarsSize,\r\n _nativeScrollbarsOverlaid: nativeScrollbarsOverlaid,\r\n _nativeScrollbarsHiding: nativeScrollbarsHiding,\r\n _cssCustomProperties: style(envElm, 'zIndex') === '-1',\r\n _rtlScrollBehavior: getRtlScrollBehavior(envElm, envChildElm),\r\n _flexboxGlue: getFlexboxGlue(envElm, envChildElm),\r\n _addListener: (listener) => addEvent('_', listener),\r\n _getDefaultInitialization: assignDeep.bind(\r\n 0,\r\n {} as Initialization,\r\n staticDefaultInitialization\r\n ),\r\n _setDefaultInitialization(newInitializationStrategy) {\r\n assignDeep(staticDefaultInitialization, newInitializationStrategy);\r\n },\r\n _getDefaultOptions: assignDeep.bind(0, {} as Options, staticDefaultOptions),\r\n _setDefaultOptions(newDefaultOptions) {\r\n assignDeep(staticDefaultOptions, newDefaultOptions);\r\n },\r\n _staticDefaultInitialization: assignDeep({}, staticDefaultInitialization),\r\n _staticDefaultOptions: assignDeep({}, staticDefaultOptions),\r\n };\r\n\r\n removeAttr(envElm, 'style');\r\n removeElements(envElm);\r\n\r\n if (!nativeScrollbarsHiding && (!nativeScrollbarsOverlaid.x || !nativeScrollbarsOverlaid.y)) {\r\n let resizeFn: undefined | ReturnType;\r\n window.addEventListener('resize', () => {\r\n const scrollbarsHidingPlugin = getPlugins()[scrollbarsHidingPluginName] as\r\n | ScrollbarsHidingPluginInstance\r\n | undefined;\r\n\r\n resizeFn = resizeFn || (scrollbarsHidingPlugin && scrollbarsHidingPlugin._envWindowZoom());\r\n resizeFn && resizeFn(env, updateNativeScrollbarSizeCache, triggerEvent.bind(0, '_'));\r\n });\r\n }\r\n\r\n return env;\r\n};\r\n\r\nconst getEnvironment = (): InternalEnvironment => {\r\n if (!environmentInstance) {\r\n environmentInstance = createEnvironment();\r\n }\r\n return environmentInstance;\r\n};\r\n\r\nexport { getEnvironment };\r\n","import { isFunction, isHTMLElement, isNull, isUndefined } from 'support';\r\nimport type { StructureInitialization } from 'setups/structureSetup';\r\nimport type { ScrollbarsInitialization } from 'setups/scrollbarsSetup';\r\nimport { getEnvironment } from 'environment';\r\nimport { DeepPartial } from 'typings';\r\nimport { StructureSetupElementsObj } from 'setups/structureSetup/structureSetup.elements';\r\n\r\ntype StaticInitialization = HTMLElement | false | null;\r\ntype DynamicInitialization = HTMLElement | boolean | null;\r\n\r\nexport type InitializationTargetElement = HTMLElement | HTMLTextAreaElement;\r\n\r\nexport type Initialization = Omit &\r\n ScrollbarsInitialization & {\r\n cancel: {\r\n nativeScrollbarsOverlaid: boolean;\r\n body: boolean | null;\r\n };\r\n };\r\n\r\nexport type InitializationTargetObject = DeepPartial &\r\n Pick;\r\n\r\nexport type InitializationTarget = InitializationTargetElement | InitializationTargetObject;\r\n\r\n/**\r\n * Static elements MUST be present.\r\n * With false, null or undefined the element will be generated, otherwise the specified element is taken.\r\n */\r\nexport type StaticInitializationElement =\r\n | ((...args: Args) => StaticInitialization)\r\n | StaticInitialization;\r\n\r\n/**\r\n * Dynamic element CAN be present.\r\n * If its a element the element will be taken as the repsective element.\r\n * With true the element will be generated.\r\n * With false, null or undefined the element won't be generated.\r\n */\r\nexport type DynamicInitializationElement =\r\n | ((...args: Args) => DynamicInitialization)\r\n | DynamicInitialization;\r\n\r\nexport type FallbackInitializtationElement<\r\n InitElm extends StaticInitializationElement | DynamicInitializationElement\r\n> = Extract any> extends (...args: infer P) => any\r\n ? (...args: P) => HTMLElement\r\n : never;\r\n\r\nconst resolveInitialization = (value: any, args: any): T =>\r\n isFunction(value) ? value.apply(0, args) : value;\r\n\r\nconst staticInitializationElement = >(\r\n args: Parameters any>>,\r\n fallbackStaticInitializationElement: FallbackInitializtationElement,\r\n defaultStaticInitializationElementStrategy: T,\r\n staticInitializationElementValue?: T\r\n): HTMLElement => {\r\n const staticInitialization = isUndefined(staticInitializationElementValue)\r\n ? defaultStaticInitializationElementStrategy\r\n : staticInitializationElementValue;\r\n const resolvedInitialization = resolveInitialization(\r\n staticInitialization,\r\n args\r\n );\r\n return resolvedInitialization || fallbackStaticInitializationElement();\r\n};\r\n\r\nconst dynamicInitializationElement = >(\r\n args: Parameters any>>,\r\n fallbackDynamicInitializationElement: FallbackInitializtationElement,\r\n defaultDynamicInitializationElementStrategy: T,\r\n dynamicInitializationElementValue?: T\r\n): HTMLElement | false => {\r\n const dynamicInitialization = isUndefined(dynamicInitializationElementValue)\r\n ? defaultDynamicInitializationElementStrategy\r\n : dynamicInitializationElementValue;\r\n const resolvedInitialization = resolveInitialization(\r\n dynamicInitialization,\r\n args\r\n );\r\n return (\r\n !!resolvedInitialization &&\r\n (isHTMLElement(resolvedInitialization)\r\n ? resolvedInitialization\r\n : fallbackDynamicInitializationElement())\r\n );\r\n};\r\n\r\nconst cancelInitialization = (\r\n cancelInitializationValue: DeepPartial | false | null | undefined,\r\n structureSetupElements: StructureSetupElementsObj\r\n): boolean => {\r\n const { nativeScrollbarsOverlaid, body } = cancelInitializationValue || {};\r\n const { _isBody, _viewportIsTarget } = structureSetupElements;\r\n const { _getDefaultInitialization, _nativeScrollbarsOverlaid } = getEnvironment();\r\n const { nativeScrollbarsOverlaid: defaultNativeScrollbarsOverlaid, body: defaultbody } =\r\n _getDefaultInitialization().cancel;\r\n\r\n const resolvedNativeScrollbarsOverlaid =\r\n nativeScrollbarsOverlaid ?? defaultNativeScrollbarsOverlaid;\r\n const resolvedDocumentScrollingElement = isUndefined(body) ? defaultbody : body;\r\n\r\n const finalNativeScrollbarsOverlaid =\r\n (_nativeScrollbarsOverlaid.x || _nativeScrollbarsOverlaid.y) &&\r\n resolvedNativeScrollbarsOverlaid;\r\n const finalDocumentScrollingElement =\r\n _isBody &&\r\n (isNull(resolvedDocumentScrollingElement)\r\n ? !_viewportIsTarget\r\n : resolvedDocumentScrollingElement);\r\n\r\n return !!finalNativeScrollbarsOverlaid || !!finalDocumentScrollingElement;\r\n};\r\n\r\nexport { staticInitializationElement, dynamicInitializationElement, cancelInitialization };\r\n","import {\r\n isHTMLElement,\r\n appendChildren,\r\n createDiv,\r\n is,\r\n contents,\r\n insertAfter,\r\n addClass,\r\n parent,\r\n indexOf,\r\n removeElements,\r\n removeClass,\r\n hasClass,\r\n push,\r\n runEachAndClear,\r\n insertBefore,\r\n attr,\r\n keys,\r\n removeAttr,\r\n attrClass,\r\n hasAttrClass,\r\n noop,\r\n} from 'support';\r\nimport {\r\n dataAttributeHost,\r\n dataAttributeHostOverflowX,\r\n dataAttributeHostOverflowY,\r\n classNamePadding,\r\n classNameViewport,\r\n classNameContent,\r\n classNameViewportScrollbarHidden,\r\n} from 'classnames';\r\nimport { getEnvironment } from 'environment';\r\nimport { getPlugins, scrollbarsHidingPluginName } from 'plugins';\r\nimport type { ScrollbarsHidingPluginInstance } from 'plugins/scrollbarsHidingPlugin';\r\nimport {\r\n staticInitializationElement as generalStaticInitializationElement,\r\n dynamicInitializationElement as generalDynamicInitializationElement,\r\n} from 'initialization';\r\nimport type {\r\n InitializationTarget,\r\n InitializationTargetElement,\r\n InitializationTargetObject,\r\n} from 'initialization';\r\nimport type {\r\n StructureDynamicInitializationElement,\r\n StructureStaticInitializationElement,\r\n} from 'setups/structureSetup/structureSetup.initialization';\r\n\r\nexport type StructureSetupElements = [\r\n targetObj: StructureSetupElementsObj,\r\n appendElements: () => void,\r\n destroy: () => void\r\n];\r\n\r\nexport interface StructureSetupElementsObj {\r\n _target: InitializationTargetElement;\r\n _host: HTMLElement;\r\n _viewport: HTMLElement;\r\n _padding: HTMLElement | false;\r\n _content: HTMLElement | false;\r\n _viewportArrange: HTMLStyleElement | false | null | undefined;\r\n _scrollOffsetElement: HTMLElement;\r\n _scrollEventElement: HTMLElement | Document;\r\n // ctx ----\r\n _isTextarea: boolean;\r\n _isBody: boolean;\r\n _windowElm: Window;\r\n _documentElm: Document;\r\n _targetIsElm: boolean;\r\n _viewportIsTarget: boolean;\r\n _viewportHasClass: (className: string, attributeClassName: string) => boolean;\r\n _viewportAddRemoveClass: (className: string, attributeClassName: string, add?: boolean) => void;\r\n}\r\n\r\nconst createNewDiv = createDiv.bind(0, '');\r\n\r\nconst unwrap = (elm: HTMLElement | false | null | undefined) => {\r\n appendChildren(parent(elm), contents(elm));\r\n removeElements(elm);\r\n};\r\n\r\nconst addDataAttrHost = (elm: HTMLElement, value: string) => {\r\n attr(elm, dataAttributeHost, value);\r\n return removeAttr.bind(0, elm, dataAttributeHost);\r\n};\r\n\r\nexport const createStructureSetupElements = (\r\n target: InitializationTarget\r\n): StructureSetupElements => {\r\n const env = getEnvironment();\r\n const { _getDefaultInitialization, _nativeScrollbarsHiding } = env;\r\n const scrollbarsHidingPlugin = getPlugins()[scrollbarsHidingPluginName] as\r\n | ScrollbarsHidingPluginInstance\r\n | undefined;\r\n const createUniqueViewportArrangeElement =\r\n scrollbarsHidingPlugin && scrollbarsHidingPlugin._createUniqueViewportArrangeElement;\r\n const {\r\n host: defaultHostInitialization,\r\n viewport: defaultViewportInitialization,\r\n padding: defaultPaddingInitialization,\r\n content: defaultContentInitialization,\r\n } = _getDefaultInitialization();\r\n const targetIsElm = isHTMLElement(target);\r\n const targetStructureInitialization = (targetIsElm ? {} : target) as InitializationTargetObject;\r\n const {\r\n host: hostInitialization,\r\n padding: paddingInitialization,\r\n viewport: viewportInitialization,\r\n content: contentInitialization,\r\n } = targetStructureInitialization;\r\n\r\n const targetElement = targetIsElm ? target : targetStructureInitialization.target;\r\n const isTextarea = is(targetElement, 'textarea');\r\n const ownerDocument = targetElement.ownerDocument;\r\n const isBody = targetElement === ownerDocument.body;\r\n const wnd = ownerDocument.defaultView as Window;\r\n const staticInitializationElement =\r\n generalStaticInitializationElement.bind(0, [\r\n targetElement,\r\n ]);\r\n const dynamicInitializationElement =\r\n generalDynamicInitializationElement.bind(0, [\r\n targetElement,\r\n ]);\r\n const viewportElement = staticInitializationElement(\r\n createNewDiv,\r\n defaultViewportInitialization,\r\n viewportInitialization\r\n );\r\n const viewportIsTarget = viewportElement === targetElement;\r\n const evaluatedTargetObj: StructureSetupElementsObj = {\r\n _target: targetElement,\r\n _host: isTextarea\r\n ? staticInitializationElement(createNewDiv, defaultHostInitialization, hostInitialization)\r\n : (targetElement as HTMLElement),\r\n _viewport: viewportElement,\r\n _padding:\r\n !viewportIsTarget &&\r\n dynamicInitializationElement(\r\n createNewDiv,\r\n defaultPaddingInitialization,\r\n paddingInitialization\r\n ),\r\n _content:\r\n !viewportIsTarget &&\r\n dynamicInitializationElement(\r\n createNewDiv,\r\n defaultContentInitialization,\r\n contentInitialization\r\n ),\r\n _viewportArrange:\r\n !viewportIsTarget &&\r\n !_nativeScrollbarsHiding &&\r\n createUniqueViewportArrangeElement &&\r\n createUniqueViewportArrangeElement(env),\r\n _scrollOffsetElement: isBody ? ownerDocument.documentElement : viewportElement,\r\n _scrollEventElement: isBody ? ownerDocument : viewportElement,\r\n _windowElm: wnd,\r\n _documentElm: ownerDocument,\r\n _isTextarea: isTextarea,\r\n _isBody: isBody,\r\n _targetIsElm: targetIsElm,\r\n _viewportIsTarget: viewportIsTarget,\r\n _viewportHasClass: (className: string, attributeClassName: string) =>\r\n viewportIsTarget\r\n ? hasAttrClass(viewportElement, dataAttributeHost, attributeClassName)\r\n : hasClass(viewportElement, className),\r\n _viewportAddRemoveClass: (className: string, attributeClassName: string, add?: boolean) =>\r\n viewportIsTarget\r\n ? attrClass(viewportElement, dataAttributeHost, attributeClassName, add)\r\n : (add ? addClass : removeClass)(viewportElement, className),\r\n };\r\n const generatedElements = keys(evaluatedTargetObj).reduce((arr, key: string) => {\r\n const value = evaluatedTargetObj[key];\r\n return push(arr, value && !parent(value) ? value : false);\r\n }, [] as HTMLElement[]);\r\n const elementIsGenerated = (elm: HTMLElement | false) =>\r\n elm ? indexOf(generatedElements, elm) > -1 : null;\r\n const { _target, _host, _padding, _viewport, _content, _viewportArrange } = evaluatedTargetObj;\r\n const destroyFns: (() => any)[] = [];\r\n const isTextareaHostGenerated = isTextarea && elementIsGenerated(_host);\r\n const targetContents = isTextarea\r\n ? _target\r\n : contents(\r\n [_content, _viewport, _padding, _host, _target].find(\r\n (elm) => elementIsGenerated(elm) === false\r\n )\r\n );\r\n const contentSlot = _content || _viewport;\r\n const appendElements = () => {\r\n const removeHostDataAttr = addDataAttrHost(_host, viewportIsTarget ? 'viewport' : 'host');\r\n const removePaddingClass = addClass(_padding, classNamePadding);\r\n const removeViewportClass = addClass(_viewport, !viewportIsTarget && classNameViewport);\r\n const removeContentClass = addClass(_content, classNameContent);\r\n const removeHtmlClass = isBody\r\n ? addClass(parent(targetElement), classNameViewportScrollbarHidden)\r\n : noop;\r\n\r\n // only insert host for textarea after target if it was generated\r\n if (isTextareaHostGenerated) {\r\n insertAfter(_target, _host);\r\n\r\n push(destroyFns, () => {\r\n insertAfter(_host, _target);\r\n removeElements(_host);\r\n });\r\n }\r\n\r\n appendChildren(contentSlot, targetContents);\r\n appendChildren(_host, _padding);\r\n appendChildren(_padding || _host, !viewportIsTarget && _viewport);\r\n appendChildren(_viewport, _content);\r\n\r\n push(destroyFns, () => {\r\n removeHtmlClass();\r\n removeHostDataAttr();\r\n removeAttr(_viewport, dataAttributeHostOverflowX);\r\n removeAttr(_viewport, dataAttributeHostOverflowY);\r\n\r\n if (elementIsGenerated(_content)) {\r\n unwrap(_content);\r\n }\r\n if (elementIsGenerated(_viewport)) {\r\n unwrap(_viewport);\r\n }\r\n if (elementIsGenerated(_padding)) {\r\n unwrap(_padding);\r\n }\r\n removePaddingClass();\r\n removeViewportClass();\r\n removeContentClass();\r\n });\r\n\r\n if (_nativeScrollbarsHiding && !viewportIsTarget) {\r\n push(destroyFns, removeClass.bind(0, _viewport, classNameViewportScrollbarHidden));\r\n }\r\n if (_viewportArrange) {\r\n insertBefore(_viewport, _viewportArrange);\r\n push(destroyFns, removeElements.bind(0, _viewportArrange));\r\n }\r\n };\r\n\r\n return [evaluatedTargetObj, appendElements, runEachAndClear.bind(0, destroyFns)];\r\n};\r\n","import { style } from 'support';\r\nimport { getEnvironment } from 'environment';\r\nimport type { CreateStructureUpdateSegment } from 'setups/structureSetup/structureSetup.update';\r\n\r\n/**\r\n * Lifecycle with the responsibility to adjust the trinsic behavior of the content element.\r\n * @param structureUpdateHub\r\n * @returns\r\n */\r\nexport const createTrinsicUpdateSegment: CreateStructureUpdateSegment = (\r\n structureSetupElements,\r\n state\r\n) => {\r\n const { _content } = structureSetupElements;\r\n const [getState] = state;\r\n\r\n return (updateHints) => {\r\n const { _flexboxGlue } = getEnvironment();\r\n const { _heightIntrinsic } = getState();\r\n const { _heightIntrinsicChanged } = updateHints;\r\n const heightIntrinsicChanged = (_content || !_flexboxGlue) && _heightIntrinsicChanged;\r\n\r\n if (heightIntrinsicChanged) {\r\n style(_content, {\r\n height: _heightIntrinsic ? '' : '100%',\r\n });\r\n }\r\n\r\n return {\r\n _sizeChanged: heightIntrinsicChanged,\r\n _contentMutation: heightIntrinsicChanged,\r\n };\r\n };\r\n};\r\n","import { createCache, topRightBottomLeft, equalTRBL, style, assignDeep } from 'support';\r\nimport { StyleObject } from 'typings';\r\nimport { getEnvironment } from 'environment';\r\nimport type { CreateStructureUpdateSegment } from 'setups/structureSetup/structureSetup.update';\r\n\r\n/**\r\n * Lifecycle with the responsibility to adjust the padding styling of the padding and viewport element.\r\n * @param structureUpdateHub\r\n * @returns\r\n */\r\nexport const createPaddingUpdateSegment: CreateStructureUpdateSegment = (\r\n structureSetupElements,\r\n state\r\n) => {\r\n const [getState, setState] = state;\r\n const { _host, _padding, _viewport, _viewportIsTarget: _isSingleElm } = structureSetupElements;\r\n const [updatePaddingCache, currentPaddingCache] = createCache(\r\n {\r\n _equal: equalTRBL,\r\n _initialValue: topRightBottomLeft(),\r\n },\r\n topRightBottomLeft.bind(0, _host, 'padding', '')\r\n );\r\n\r\n return (updateHints, checkOption, force) => {\r\n let [padding, paddingChanged] = currentPaddingCache(force);\r\n const { _nativeScrollbarsHiding: _nativeScrollbarStyling, _flexboxGlue } = getEnvironment();\r\n const { _directionIsRTL } = getState();\r\n const { _sizeChanged, _contentMutation, _directionChanged } = updateHints;\r\n const [paddingAbsolute, paddingAbsoluteChanged] = checkOption('paddingAbsolute');\r\n const contentMutation = !_flexboxGlue && _contentMutation;\r\n\r\n if (_sizeChanged || paddingChanged || contentMutation) {\r\n [padding, paddingChanged] = updatePaddingCache(force);\r\n }\r\n\r\n const paddingStyleChanged =\r\n !_isSingleElm && (paddingAbsoluteChanged || _directionChanged || paddingChanged);\r\n\r\n if (paddingStyleChanged) {\r\n // if there is no padding element and no scrollbar styling, paddingAbsolute isn't supported\r\n const paddingRelative = !paddingAbsolute || (!_padding && !_nativeScrollbarStyling);\r\n const paddingHorizontal = padding.r + padding.l;\r\n const paddingVertical = padding.t + padding.b;\r\n\r\n const paddingStyle: StyleObject = {\r\n marginRight: paddingRelative && !_directionIsRTL ? -paddingHorizontal : 0,\r\n marginBottom: paddingRelative ? -paddingVertical : 0,\r\n marginLeft: paddingRelative && _directionIsRTL ? -paddingHorizontal : 0,\r\n top: paddingRelative ? -padding.t : 0,\r\n right: paddingRelative ? (_directionIsRTL ? -padding.r : 'auto') : 0,\r\n left: paddingRelative ? (_directionIsRTL ? 'auto' : -padding.l) : 0,\r\n width: paddingRelative ? `calc(100% + ${paddingHorizontal}px)` : '',\r\n };\r\n const viewportStyle: StyleObject = {\r\n paddingTop: paddingRelative ? padding.t : 0,\r\n paddingRight: paddingRelative ? padding.r : 0,\r\n paddingBottom: paddingRelative ? padding.b : 0,\r\n paddingLeft: paddingRelative ? padding.l : 0,\r\n };\r\n\r\n // if there is no padding element apply the style to the viewport element instead\r\n style(_padding || _viewport, paddingStyle);\r\n style(_viewport, viewportStyle);\r\n\r\n setState({\r\n _padding: padding,\r\n _paddingAbsolute: !paddingRelative,\r\n _viewportPaddingStyle: _padding\r\n ? viewportStyle\r\n : assignDeep({}, paddingStyle, viewportStyle),\r\n });\r\n }\r\n\r\n return {\r\n _paddingStyleChanged: paddingStyleChanged,\r\n };\r\n };\r\n};\r\n","import {\r\n createCache,\r\n attr,\r\n WH,\r\n XY,\r\n style,\r\n scrollSize,\r\n fractionalSize,\r\n equalWH,\r\n addClass,\r\n removeClass,\r\n clientSize,\r\n equalXY,\r\n attrClass,\r\n noop,\r\n} from 'support';\r\nimport { getEnvironment } from 'environment';\r\nimport {\r\n classNameViewportScrollbarHidden,\r\n classNameOverflowVisible,\r\n dataAttributeHost,\r\n dataAttributeHostOverflowX,\r\n dataAttributeHostOverflowY,\r\n dataValueHostScrollbarHidden,\r\n dataValueHostOverflowVisible,\r\n} from 'classnames';\r\nimport { getPlugins, scrollbarsHidingPluginName } from 'plugins';\r\nimport type {\r\n ScrollbarsHidingPluginInstance,\r\n ArrangeViewport,\r\n UndoArrangeViewport,\r\n} from 'plugins/scrollbarsHidingPlugin';\r\nimport type { StyleObject, OverflowStyle } from 'typings';\r\nimport type { OverflowBehavior } from 'options';\r\nimport type { CreateStructureUpdateSegment } from 'setups/structureSetup/structureSetup.update';\r\n\r\nexport interface ViewportOverflowState {\r\n _scrollbarsHideOffset: XY;\r\n _scrollbarsHideOffsetArrange: XY;\r\n _overflowScroll: XY;\r\n _overflowStyle: XY;\r\n}\r\n\r\nexport type GetViewportOverflowState = (\r\n showNativeOverlaidScrollbars: boolean,\r\n viewportStyleObj?: StyleObject\r\n) => ViewportOverflowState;\r\n\r\nexport type HideNativeScrollbars = (\r\n viewportOverflowState: ViewportOverflowState,\r\n directionIsRTL: boolean,\r\n viewportArrange: boolean,\r\n viewportStyleObj: StyleObject\r\n) => void;\r\n\r\nconst { max } = Math;\r\nconst max0 = max.bind(0, 0);\r\nconst strVisible = 'visible';\r\nconst strHidden = 'hidden';\r\nconst overlaidScrollbarsHideOffset = 42;\r\nconst whCacheOptions = {\r\n _equal: equalWH,\r\n _initialValue: { w: 0, h: 0 },\r\n};\r\nconst xyCacheOptions = {\r\n _equal: equalXY,\r\n _initialValue: { x: strHidden, y: strHidden } as XY,\r\n};\r\n\r\nconst getOverflowAmount = (viewportScrollSize: WH, viewportClientSize: WH) => {\r\n const tollerance = window.devicePixelRatio % 1 !== 0 ? 1 : 0;\r\n const amount = {\r\n w: max0(viewportScrollSize.w - viewportClientSize.w),\r\n h: max0(viewportScrollSize.h - viewportClientSize.h),\r\n };\r\n\r\n return {\r\n w: amount.w > tollerance ? amount.w : 0,\r\n h: amount.h > tollerance ? amount.h : 0,\r\n };\r\n};\r\n\r\nconst conditionalClass = (\r\n elm: Element | false | null | undefined,\r\n classNames: string,\r\n add: boolean\r\n) => (add ? addClass(elm, classNames) : removeClass(elm, classNames));\r\n\r\nconst overflowIsVisible = (overflowBehavior: string) => overflowBehavior.indexOf(strVisible) === 0;\r\n\r\n/**\r\n * Lifecycle with the responsibility to set the correct overflow and scrollbar hiding styles of the viewport element.\r\n * @param structureUpdateHub\r\n * @returns\r\n */\r\nexport const createOverflowUpdateSegment: CreateStructureUpdateSegment = (\r\n structureSetupElements,\r\n state\r\n) => {\r\n const [getState, setState] = state;\r\n const {\r\n _host,\r\n _padding,\r\n _viewport,\r\n _viewportArrange,\r\n _viewportIsTarget,\r\n _viewportAddRemoveClass,\r\n } = structureSetupElements;\r\n const {\r\n _nativeScrollbarsSize,\r\n _flexboxGlue,\r\n _nativeScrollbarsHiding,\r\n _nativeScrollbarsOverlaid,\r\n } = getEnvironment();\r\n const scrollbarsHidingPlugin = getPlugins()[scrollbarsHidingPluginName] as\r\n | ScrollbarsHidingPluginInstance\r\n | undefined;\r\n const doViewportArrange =\r\n !_viewportIsTarget &&\r\n !_nativeScrollbarsHiding &&\r\n (_nativeScrollbarsOverlaid.x || _nativeScrollbarsOverlaid.y);\r\n\r\n const [updateSizeFraction, getCurrentSizeFraction] = createCache>(\r\n whCacheOptions,\r\n fractionalSize.bind(0, _viewport)\r\n );\r\n\r\n const [updateViewportScrollSizeCache, getCurrentViewportScrollSizeCache] = createCache<\r\n WH\r\n >(whCacheOptions, scrollSize.bind(0, _viewport));\r\n\r\n const [updateOverflowAmountCache, getCurrentOverflowAmountCache] =\r\n createCache>(whCacheOptions);\r\n\r\n const [updateOverflowEdge, getCurrentOverflowEdgeCache] = createCache>(whCacheOptions);\r\n\r\n const [updateOverflowStyleCache] = createCache>(xyCacheOptions);\r\n\r\n /**\r\n * Applies a fixed height to the viewport so it can't overflow or underflow the host element.\r\n * @param viewportOverflowState The current overflow state.\r\n * @param heightIntrinsic Whether the host height is intrinsic or not.\r\n */\r\n const fixFlexboxGlue = (\r\n viewportOverflowState: ViewportOverflowState,\r\n heightIntrinsic: boolean\r\n ) => {\r\n style(_viewport, {\r\n height: '',\r\n });\r\n\r\n if (heightIntrinsic) {\r\n const { _paddingAbsolute, _padding: padding } = getState();\r\n const { _overflowScroll, _scrollbarsHideOffset } = viewportOverflowState;\r\n const fSize = fractionalSize(_host);\r\n const hostClientSize = clientSize(_host);\r\n\r\n // padding subtraction is only needed if padding is absolute or if viewport is content-box\r\n const isContentBox = style(_viewport, 'boxSizing') === 'content-box';\r\n const paddingVertical = _paddingAbsolute || isContentBox ? padding.b + padding.t : 0;\r\n const subtractXScrollbar = !(_nativeScrollbarsOverlaid.x && isContentBox);\r\n\r\n style(_viewport, {\r\n height:\r\n hostClientSize.h +\r\n fSize.h +\r\n (_overflowScroll.x && subtractXScrollbar ? _scrollbarsHideOffset.x : 0) -\r\n paddingVertical,\r\n });\r\n }\r\n };\r\n\r\n /**\r\n * Gets the current overflow state of the viewport.\r\n * @param showNativeOverlaidScrollbars Whether native overlaid scrollbars are shown instead of hidden.\r\n * @param viewportStyleObj The viewport style object where the overflow scroll property can be read of, or undefined if shall be determined.\r\n * @returns A object which contains informations about the current overflow state.\r\n */\r\n const getViewportOverflowState: GetViewportOverflowState = (\r\n showNativeOverlaidScrollbars,\r\n viewportStyleObj?\r\n ) => {\r\n const arrangeHideOffset =\r\n !_nativeScrollbarsHiding && !showNativeOverlaidScrollbars ? overlaidScrollbarsHideOffset : 0;\r\n const getStatePerAxis = (\r\n styleKey: string,\r\n isOverlaid: boolean,\r\n nativeScrollbarSize: number\r\n ) => {\r\n const overflowStyle = style(_viewport, styleKey);\r\n // can't do something like \"viewportStyleObj && viewportStyleObj[styleKey] || overflowStyle\" here!\r\n const objectPrefferedOverflowStyle = viewportStyleObj\r\n ? viewportStyleObj[styleKey]\r\n : overflowStyle;\r\n const overflowScroll = objectPrefferedOverflowStyle === 'scroll';\r\n const nonScrollbarStylingHideOffset = isOverlaid ? arrangeHideOffset : nativeScrollbarSize;\r\n const scrollbarsHideOffset =\r\n overflowScroll && !_nativeScrollbarsHiding ? nonScrollbarStylingHideOffset : 0;\r\n const scrollbarsHideOffsetArrange = isOverlaid && !!arrangeHideOffset;\r\n\r\n return [overflowStyle, overflowScroll, scrollbarsHideOffset, scrollbarsHideOffsetArrange] as [\r\n overflowStyle: OverflowStyle,\r\n overflowScroll: boolean,\r\n scrollbarsHideOffset: number,\r\n scrollbarsHideOffsetArrange: boolean\r\n ];\r\n };\r\n\r\n const [xOverflowStyle, xOverflowScroll, xScrollbarsHideOffset, xScrollbarsHideOffsetArrange] =\r\n getStatePerAxis('overflowX', _nativeScrollbarsOverlaid.x, _nativeScrollbarsSize.x);\r\n const [yOverflowStyle, yOverflowScroll, yScrollbarsHideOffset, yScrollbarsHideOffsetArrange] =\r\n getStatePerAxis('overflowY', _nativeScrollbarsOverlaid.y, _nativeScrollbarsSize.y);\r\n\r\n return {\r\n _overflowStyle: {\r\n x: xOverflowStyle,\r\n y: yOverflowStyle,\r\n },\r\n _overflowScroll: {\r\n x: xOverflowScroll,\r\n y: yOverflowScroll,\r\n },\r\n _scrollbarsHideOffset: {\r\n x: xScrollbarsHideOffset,\r\n y: yScrollbarsHideOffset,\r\n },\r\n _scrollbarsHideOffsetArrange: {\r\n x: xScrollbarsHideOffsetArrange,\r\n y: yScrollbarsHideOffsetArrange,\r\n },\r\n };\r\n };\r\n\r\n /**\r\n * Sets the overflow property of the viewport and calculates the a overflow state according to the new parameters.\r\n * @param showNativeOverlaidScrollbars Whether to show natively overlaid scrollbars.\r\n * @param overflowAmount The overflow amount.\r\n * @param overflow The overflow behavior according to the options.\r\n * @param viewportStyleObj The viewport style object to which the overflow style shall be applied.\r\n * @returns A object which represents the newly set overflow state.\r\n */\r\n const setViewportOverflowState = (\r\n showNativeOverlaidScrollbars: boolean,\r\n hasOverflow: XY,\r\n overflowOption: XY,\r\n viewportStyleObj: StyleObject\r\n ): ViewportOverflowState => {\r\n const setAxisOverflowStyle = (behavior: OverflowBehavior, hasOverflowAxis: boolean) => {\r\n const overflowVisible = overflowIsVisible(behavior);\r\n const overflowVisibleBehavior =\r\n (hasOverflowAxis && overflowVisible && behavior.replace(`${strVisible}-`, '')) || '';\r\n return [\r\n hasOverflowAxis && !overflowVisible ? behavior : '',\r\n overflowIsVisible(overflowVisibleBehavior) ? 'hidden' : overflowVisibleBehavior,\r\n ];\r\n };\r\n\r\n const [overflowX, visibleBehaviorX] = setAxisOverflowStyle(overflowOption.x, hasOverflow.x);\r\n const [overflowY, visibleBehaviorY] = setAxisOverflowStyle(overflowOption.y, hasOverflow.y);\r\n\r\n viewportStyleObj.overflowX = visibleBehaviorX && overflowY ? visibleBehaviorX : overflowX;\r\n viewportStyleObj.overflowY = visibleBehaviorY && overflowX ? visibleBehaviorY : overflowY;\r\n\r\n return getViewportOverflowState(showNativeOverlaidScrollbars, viewportStyleObj);\r\n };\r\n\r\n /**\r\n * Hides the native scrollbars according to the passed parameters.\r\n * @param viewportOverflowState The viewport overflow state.\r\n * @param directionIsRTL Whether the direction is RTL or not.\r\n * @param viewportArrange Whether special styles related to the viewport arrange strategy shall be applied.\r\n * @param viewportStyleObj The viewport style object to which the needed styles shall be applied.\r\n */\r\n const hideNativeScrollbars: HideNativeScrollbars = (\r\n viewportOverflowState,\r\n directionIsRTL,\r\n viewportArrange,\r\n viewportStyleObj\r\n ) => {\r\n const { _scrollbarsHideOffset, _scrollbarsHideOffsetArrange } = viewportOverflowState;\r\n const { x: arrangeX, y: arrangeY } = _scrollbarsHideOffsetArrange;\r\n const { x: hideOffsetX, y: hideOffsetY } = _scrollbarsHideOffset;\r\n const { _viewportPaddingStyle: viewportPaddingStyle } = getState();\r\n const horizontalMarginKey: keyof StyleObject = directionIsRTL ? 'marginLeft' : 'marginRight';\r\n const viewportHorizontalPaddingKey: keyof StyleObject = directionIsRTL\r\n ? 'paddingLeft'\r\n : 'paddingRight';\r\n const horizontalMarginValue = viewportPaddingStyle[horizontalMarginKey] as number;\r\n const verticalMarginValue = viewportPaddingStyle.marginBottom as number;\r\n const horizontalPaddingValue = viewportPaddingStyle[viewportHorizontalPaddingKey] as number;\r\n const verticalPaddingValue = viewportPaddingStyle.paddingBottom as number;\r\n\r\n // horizontal\r\n viewportStyleObj.width = `calc(100% + ${hideOffsetY + horizontalMarginValue * -1}px)`;\r\n viewportStyleObj[horizontalMarginKey] = -hideOffsetY + horizontalMarginValue;\r\n\r\n // vertical\r\n viewportStyleObj.marginBottom = -hideOffsetX + verticalMarginValue;\r\n\r\n // viewport arrange additional styles\r\n if (viewportArrange) {\r\n viewportStyleObj[viewportHorizontalPaddingKey] =\r\n horizontalPaddingValue + (arrangeY ? hideOffsetY : 0);\r\n viewportStyleObj.paddingBottom = verticalPaddingValue + (arrangeX ? hideOffsetX : 0);\r\n }\r\n };\r\n\r\n const [arrangeViewport, undoViewportArrange] = scrollbarsHidingPlugin\r\n ? scrollbarsHidingPlugin._overflowUpdateSegment(\r\n doViewportArrange,\r\n _flexboxGlue,\r\n _viewport,\r\n _viewportArrange,\r\n getState,\r\n getViewportOverflowState,\r\n hideNativeScrollbars\r\n )\r\n : [(() => doViewportArrange) as ArrangeViewport, (() => [noop]) as UndoArrangeViewport];\r\n\r\n return (updateHints, checkOption, force) => {\r\n const {\r\n _sizeChanged,\r\n _hostMutation,\r\n _contentMutation,\r\n _paddingStyleChanged,\r\n _heightIntrinsicChanged,\r\n _directionChanged,\r\n } = updateHints;\r\n const { _heightIntrinsic, _directionIsRTL } = getState();\r\n const [showNativeOverlaidScrollbarsOption, showNativeOverlaidScrollbarsChanged] =\r\n checkOption('showNativeOverlaidScrollbars');\r\n const [overflow, overflowChanged] = checkOption>('overflow');\r\n\r\n const showNativeOverlaidScrollbars =\r\n showNativeOverlaidScrollbarsOption &&\r\n _nativeScrollbarsOverlaid.x &&\r\n _nativeScrollbarsOverlaid.y;\r\n const adjustFlexboxGlue =\r\n !_viewportIsTarget &&\r\n !_flexboxGlue &&\r\n (_sizeChanged ||\r\n _contentMutation ||\r\n _hostMutation ||\r\n showNativeOverlaidScrollbarsChanged ||\r\n _heightIntrinsicChanged);\r\n const overflowXVisible = overflowIsVisible(overflow.x);\r\n const overflowYVisible = overflowIsVisible(overflow.y);\r\n const overflowVisible = overflowXVisible || overflowYVisible;\r\n\r\n let sizeFractionCache = getCurrentSizeFraction(force);\r\n let viewportScrollSizeCache = getCurrentViewportScrollSizeCache(force);\r\n let overflowAmuntCache = getCurrentOverflowAmountCache(force);\r\n let overflowEdgeCache = getCurrentOverflowEdgeCache(force);\r\n\r\n let preMeasureViewportOverflowState: ViewportOverflowState | undefined;\r\n\r\n if (showNativeOverlaidScrollbarsChanged && _nativeScrollbarsHiding) {\r\n _viewportAddRemoveClass(\r\n classNameViewportScrollbarHidden,\r\n dataValueHostScrollbarHidden,\r\n !showNativeOverlaidScrollbars\r\n );\r\n }\r\n\r\n if (adjustFlexboxGlue) {\r\n preMeasureViewportOverflowState = getViewportOverflowState(showNativeOverlaidScrollbars);\r\n fixFlexboxGlue(preMeasureViewportOverflowState, _heightIntrinsic);\r\n }\r\n\r\n if (\r\n _sizeChanged ||\r\n _paddingStyleChanged ||\r\n _contentMutation ||\r\n _directionChanged ||\r\n showNativeOverlaidScrollbarsChanged\r\n ) {\r\n if (overflowVisible) {\r\n _viewportAddRemoveClass(classNameOverflowVisible, dataValueHostOverflowVisible, false);\r\n }\r\n\r\n const [redoViewportArrange, undoViewportArrangeOverflowState] = undoViewportArrange(\r\n showNativeOverlaidScrollbars,\r\n _directionIsRTL,\r\n preMeasureViewportOverflowState\r\n );\r\n const [sizeFraction, sizeFractionChanged] = (sizeFractionCache = updateSizeFraction(force));\r\n const [viewportScrollSize, viewportScrollSizeChanged] = (viewportScrollSizeCache =\r\n updateViewportScrollSizeCache(force));\r\n const viewportclientSize = clientSize(_viewport);\r\n let arrangedViewportScrollSize = viewportScrollSize;\r\n let arrangedViewportClientSize = viewportclientSize;\r\n\r\n redoViewportArrange();\r\n\r\n // if re measure is required (only required if content arrange strategy is used)\r\n if (\r\n (viewportScrollSizeChanged || sizeFractionChanged || showNativeOverlaidScrollbarsChanged) &&\r\n undoViewportArrangeOverflowState &&\r\n !showNativeOverlaidScrollbars &&\r\n arrangeViewport(\r\n undoViewportArrangeOverflowState,\r\n viewportScrollSize,\r\n sizeFraction,\r\n _directionIsRTL\r\n )\r\n ) {\r\n arrangedViewportClientSize = clientSize(_viewport);\r\n arrangedViewportScrollSize = scrollSize(_viewport);\r\n }\r\n\r\n const overflowAmountScrollSize = {\r\n w: max0(max(viewportScrollSize.w, arrangedViewportScrollSize.w) + sizeFraction.w),\r\n h: max0(max(viewportScrollSize.h, arrangedViewportScrollSize.h) + sizeFraction.h),\r\n };\r\n const overflowAmountClientSize = {\r\n w: max0(\r\n arrangedViewportClientSize.w +\r\n max0(viewportclientSize.w - viewportScrollSize.w) +\r\n sizeFraction.w\r\n ),\r\n h: max0(\r\n arrangedViewportClientSize.h +\r\n max0(viewportclientSize.h - viewportScrollSize.h) +\r\n sizeFraction.h\r\n ),\r\n };\r\n\r\n overflowEdgeCache = updateOverflowEdge(overflowAmountClientSize);\r\n overflowAmuntCache = updateOverflowAmountCache(\r\n getOverflowAmount(overflowAmountScrollSize, overflowAmountClientSize),\r\n force\r\n );\r\n }\r\n\r\n const [overflowEdge, overflowEdgeChanged] = overflowEdgeCache;\r\n const [overflowAmount, overflowAmountChanged] = overflowAmuntCache;\r\n const [viewportScrollSize, viewportScrollSizeChanged] = viewportScrollSizeCache;\r\n const [sizeFraction, sizeFractionChanged] = sizeFractionCache;\r\n const hasOverflow = {\r\n x: overflowAmount.w > 0,\r\n y: overflowAmount.h > 0,\r\n };\r\n const removeClipping =\r\n (overflowXVisible && overflowYVisible && (hasOverflow.x || hasOverflow.y)) ||\r\n (overflowXVisible && hasOverflow.x && !hasOverflow.y) ||\r\n (overflowYVisible && hasOverflow.y && !hasOverflow.x);\r\n\r\n if (\r\n _paddingStyleChanged ||\r\n _directionChanged ||\r\n sizeFractionChanged ||\r\n viewportScrollSizeChanged ||\r\n overflowEdgeChanged ||\r\n overflowAmountChanged ||\r\n overflowChanged ||\r\n showNativeOverlaidScrollbarsChanged ||\r\n adjustFlexboxGlue\r\n ) {\r\n const viewportStyle: StyleObject = {\r\n marginRight: 0,\r\n marginBottom: 0,\r\n marginLeft: 0,\r\n width: '',\r\n overflowY: '',\r\n overflowX: '',\r\n };\r\n const viewportOverflowState = setViewportOverflowState(\r\n showNativeOverlaidScrollbars,\r\n hasOverflow,\r\n overflow,\r\n viewportStyle\r\n );\r\n const viewportArranged = arrangeViewport(\r\n viewportOverflowState,\r\n viewportScrollSize,\r\n sizeFraction,\r\n _directionIsRTL\r\n );\r\n\r\n if (!_viewportIsTarget) {\r\n hideNativeScrollbars(\r\n viewportOverflowState,\r\n _directionIsRTL,\r\n viewportArranged,\r\n viewportStyle\r\n );\r\n }\r\n\r\n if (adjustFlexboxGlue) {\r\n fixFlexboxGlue(viewportOverflowState, _heightIntrinsic);\r\n }\r\n\r\n if (_viewportIsTarget) {\r\n attr(_host, dataAttributeHostOverflowX, viewportStyle.overflowX as string);\r\n attr(_host, dataAttributeHostOverflowY, viewportStyle.overflowY as string);\r\n } else {\r\n style(_viewport, viewportStyle);\r\n }\r\n }\r\n\r\n attrClass(_host, dataAttributeHost, dataValueHostOverflowVisible, removeClipping);\r\n conditionalClass(_padding, classNameOverflowVisible, removeClipping);\r\n !_viewportIsTarget && conditionalClass(_viewport, classNameOverflowVisible, overflowVisible);\r\n\r\n const [overflowStyle, overflowStyleChanged] = updateOverflowStyleCache(\r\n getViewportOverflowState(showNativeOverlaidScrollbars)._overflowStyle\r\n );\r\n\r\n setState({\r\n _overflowStyle: overflowStyle,\r\n _overflowEdge: {\r\n x: overflowEdge.w,\r\n y: overflowEdge.h,\r\n },\r\n _overflowAmount: {\r\n x: overflowAmount.w,\r\n y: overflowAmount.h,\r\n },\r\n _hasOverflow: hasOverflow,\r\n });\r\n\r\n return {\r\n _overflowStyleChanged: overflowStyleChanged,\r\n _overflowEdgeChanged: overflowEdgeChanged,\r\n _overflowAmountChanged: overflowAmountChanged,\r\n };\r\n };\r\n};\r\n","import { each, scrollLeft, scrollTop, assignDeep, keys } from 'support';\r\nimport { getEnvironment } from 'environment';\r\nimport { dataValueHostUpdating } from 'classnames';\r\nimport {\r\n createTrinsicUpdateSegment,\r\n createPaddingUpdateSegment,\r\n createOverflowUpdateSegment,\r\n} from 'setups/structureSetup/updateSegments';\r\nimport type { SetupState, SetupUpdateSegment, SetupUpdateCheckOption } from 'setups';\r\nimport type { StructureSetupState } from 'setups/structureSetup';\r\nimport type { StructureSetupElementsObj } from 'setups/structureSetup/structureSetup.elements';\r\n\r\nexport type CreateStructureUpdateSegment = (\r\n structureSetupElements: StructureSetupElementsObj,\r\n state: SetupState\r\n) => StructureSetupUpdateSegment;\r\n\r\nexport type StructureSetupUpdateSegment = SetupUpdateSegment;\r\n\r\nexport type StructureSetupUpdate = (\r\n checkOption: SetupUpdateCheckOption,\r\n updateHints: Partial,\r\n force?: boolean\r\n) => StructureSetupUpdateHints;\r\n\r\nexport interface StructureSetupUpdateHints {\r\n _sizeChanged: boolean;\r\n _directionChanged: boolean;\r\n _heightIntrinsicChanged: boolean;\r\n _overflowEdgeChanged: boolean;\r\n _overflowAmountChanged: boolean;\r\n _overflowStyleChanged: boolean;\r\n _paddingStyleChanged: boolean;\r\n _hostMutation: boolean;\r\n _contentMutation: boolean;\r\n}\r\n\r\nconst prepareUpdateHints = (\r\n leading: Required,\r\n adaptive?: Partial,\r\n force?: boolean\r\n): Required => {\r\n const result = {};\r\n const finalAdaptive = adaptive || {};\r\n const objKeys = keys(leading).concat(keys(finalAdaptive));\r\n\r\n each(objKeys, (key) => {\r\n const leadingValue = leading[key];\r\n const adaptiveValue = finalAdaptive[key];\r\n result[key] = !!(force || leadingValue || adaptiveValue);\r\n });\r\n\r\n return result as Required;\r\n};\r\n\r\nexport const createStructureSetupUpdate = (\r\n structureSetupElements: StructureSetupElementsObj,\r\n state: SetupState\r\n): StructureSetupUpdate => {\r\n const { _viewport, _viewportAddRemoveClass } = structureSetupElements;\r\n const { _nativeScrollbarsHiding, _nativeScrollbarsOverlaid, _flexboxGlue } = getEnvironment();\r\n const doViewportArrange =\r\n !_nativeScrollbarsHiding && (_nativeScrollbarsOverlaid.x || _nativeScrollbarsOverlaid.y);\r\n\r\n const updateSegments: StructureSetupUpdateSegment[] = [\r\n createTrinsicUpdateSegment(structureSetupElements, state),\r\n createPaddingUpdateSegment(structureSetupElements, state),\r\n createOverflowUpdateSegment(structureSetupElements, state),\r\n ];\r\n\r\n return (\r\n checkOption: SetupUpdateCheckOption,\r\n updateHints: Partial,\r\n force?: boolean\r\n ) => {\r\n const initialUpdateHints = prepareUpdateHints(\r\n assignDeep(\r\n {\r\n _sizeChanged: false,\r\n _paddingStyleChanged: false,\r\n _directionChanged: false,\r\n _heightIntrinsicChanged: false,\r\n _overflowEdgeChanged: false,\r\n _overflowAmountChanged: false,\r\n _overflowStyleChanged: false,\r\n _hostMutation: false,\r\n _contentMutation: false,\r\n },\r\n updateHints\r\n ),\r\n {},\r\n force\r\n );\r\n const adjustScrollOffset = doViewportArrange || !_flexboxGlue;\r\n const scrollOffsetX = adjustScrollOffset && scrollLeft(_viewport);\r\n const scrollOffsetY = adjustScrollOffset && scrollTop(_viewport);\r\n _viewportAddRemoveClass('', dataValueHostUpdating, true);\r\n\r\n let adaptivedUpdateHints: Required = initialUpdateHints;\r\n each(updateSegments, (updateSegment) => {\r\n adaptivedUpdateHints = prepareUpdateHints(\r\n adaptivedUpdateHints,\r\n updateSegment(adaptivedUpdateHints, checkOption, !!force) || {},\r\n force\r\n );\r\n });\r\n\r\n scrollLeft(_viewport, scrollOffsetX);\r\n scrollTop(_viewport, scrollOffsetY);\r\n _viewportAddRemoveClass('', dataValueHostUpdating);\r\n\r\n return adaptivedUpdateHints;\r\n };\r\n};\r\n","import {\r\n CacheValues,\r\n createCache,\r\n createDOM,\r\n scrollLeft,\r\n scrollTop,\r\n runEachAndClear,\r\n removeElements,\r\n on,\r\n addClass,\r\n push,\r\n ResizeObserverConstructor,\r\n isArray,\r\n isBoolean,\r\n removeClass,\r\n isObject,\r\n stopPropagation,\r\n appendChildren,\r\n directionIsRTL,\r\n} from 'support';\r\nimport { getEnvironment } from 'environment';\r\nimport {\r\n classNameSizeObserver,\r\n classNameSizeObserverAppear,\r\n classNameSizeObserverListener,\r\n} from 'classnames';\r\nimport { getPlugins, SizeObserverPluginInstance, sizeObserverPluginName } from 'plugins';\r\n\r\nexport interface SizeObserverOptions {\r\n _direction?: boolean;\r\n _appear?: boolean;\r\n}\r\n\r\nexport interface SizeObserverCallbackParams {\r\n _sizeChanged: boolean;\r\n _directionIsRTLCache?: CacheValues;\r\n _appear?: boolean;\r\n}\r\n\r\nexport type SizeObserver = [destroy: () => void, append: () => void];\r\n\r\nconst scrollAmount = 3333333;\r\nconst domRectHasDimensions = (rect?: DOMRectReadOnly) => rect && (rect.height || rect.width);\r\n\r\n/**\r\n * Creates a size observer which observes any size, padding, border, margin and box-sizing changes of the target element. Depending on the options also direction and appear can be observed.\r\n * @param target The target element which shall be observed.\r\n * @param onSizeChangedCallback The callback which gets called after a size change was detected.\r\n * @param options The options for size detection, whether to observe also direction and appear.\r\n * @returns A object which represents the instance of the size observer.\r\n */\r\nexport const createSizeObserver = (\r\n target: HTMLElement,\r\n onSizeChangedCallback: (params: SizeObserverCallbackParams) => any,\r\n options?: SizeObserverOptions\r\n): SizeObserver => {\r\n const { _direction: observeDirectionChange = false, _appear: observeAppearChange = false } =\r\n options || {};\r\n const sizeObserverPlugin = getPlugins()[sizeObserverPluginName] as\r\n | SizeObserverPluginInstance\r\n | undefined;\r\n const { _rtlScrollBehavior: rtlScrollBehavior } = getEnvironment();\r\n const baseElements = createDOM(\r\n `
`\r\n );\r\n const sizeObserver = baseElements[0] as HTMLElement;\r\n const listenerElement = sizeObserver.firstChild as HTMLElement;\r\n const getIsDirectionRTL = directionIsRTL.bind(0, target);\r\n const [updateResizeObserverContentRectCache] = createCache({\r\n _initialValue: undefined,\r\n _alwaysUpdateValues: true,\r\n _equal: (currVal, newVal) =>\r\n !(\r\n !currVal || // if no initial value\r\n // if from display: none to display: block\r\n (!domRectHasDimensions(currVal) && domRectHasDimensions(newVal))\r\n ),\r\n });\r\n const onSizeChangedCallbackProxy = (\r\n sizeChangedContext?: CacheValues | ResizeObserverEntry[] | Event | boolean\r\n ) => {\r\n const isResizeObserverCall =\r\n isArray(sizeChangedContext) &&\r\n sizeChangedContext.length > 0 &&\r\n isObject(sizeChangedContext[0]);\r\n\r\n const hasDirectionCache =\r\n !isResizeObserverCall && isBoolean((sizeChangedContext as CacheValues)[0]);\r\n\r\n let skip = false;\r\n let appear: boolean | number | undefined = false;\r\n let doDirectionScroll = true; // always true if sizeChangedContext is Event (appear callback or RO. Polyfill)\r\n\r\n // if triggered from RO.\r\n if (isResizeObserverCall) {\r\n const [currRContentRect, , prevContentRect] = updateResizeObserverContentRectCache(\r\n (sizeChangedContext as ResizeObserverEntry[]).pop()!.contentRect\r\n );\r\n const hasDimensions = domRectHasDimensions(currRContentRect);\r\n const hadDimensions = domRectHasDimensions(prevContentRect);\r\n skip = !prevContentRect || !hasDimensions; // skip on initial RO. call or if display is none\r\n appear = !hadDimensions && hasDimensions;\r\n\r\n doDirectionScroll = !skip; // direction scroll when not skipping\r\n }\r\n // else if its triggered with DirectionCache\r\n else if (hasDirectionCache) {\r\n [, doDirectionScroll] = sizeChangedContext as CacheValues; // direction scroll when DirectionCache changed, false otherwise\r\n }\r\n // else if it triggered with appear from polyfill\r\n else {\r\n appear = sizeChangedContext === true;\r\n }\r\n\r\n if (observeDirectionChange && doDirectionScroll) {\r\n const rtl = hasDirectionCache\r\n ? (sizeChangedContext as CacheValues)[0]\r\n : directionIsRTL(sizeObserver);\r\n scrollLeft(\r\n sizeObserver,\r\n rtl\r\n ? rtlScrollBehavior.n\r\n ? -scrollAmount\r\n : rtlScrollBehavior.i\r\n ? 0\r\n : scrollAmount\r\n : scrollAmount\r\n );\r\n scrollTop(sizeObserver, scrollAmount);\r\n }\r\n\r\n if (!skip) {\r\n onSizeChangedCallback({\r\n _sizeChanged: !hasDirectionCache,\r\n _directionIsRTLCache: hasDirectionCache\r\n ? (sizeChangedContext as CacheValues)\r\n : undefined,\r\n _appear: !!appear,\r\n });\r\n }\r\n };\r\n const offListeners: (() => void)[] = [];\r\n let appearCallback: ((...args: any) => any) | false = observeAppearChange\r\n ? onSizeChangedCallbackProxy\r\n : false;\r\n\r\n return [\r\n () => {\r\n runEachAndClear(offListeners);\r\n removeElements(sizeObserver);\r\n },\r\n () => {\r\n if (ResizeObserverConstructor) {\r\n const resizeObserverInstance = new ResizeObserverConstructor(onSizeChangedCallbackProxy);\r\n resizeObserverInstance.observe(listenerElement);\r\n push(offListeners, () => {\r\n resizeObserverInstance.disconnect();\r\n });\r\n } else if (sizeObserverPlugin) {\r\n const [pluginAppearCallback, pluginOffListeners] = sizeObserverPlugin._(\r\n listenerElement,\r\n onSizeChangedCallbackProxy,\r\n observeAppearChange\r\n );\r\n appearCallback = pluginAppearCallback;\r\n push(offListeners, pluginOffListeners);\r\n }\r\n\r\n if (observeDirectionChange) {\r\n const [updateDirectionIsRTLCache] = createCache(\r\n {\r\n _initialValue: !getIsDirectionRTL(), // invert current value to trigger initial change\r\n },\r\n getIsDirectionRTL\r\n );\r\n\r\n push(\r\n offListeners,\r\n on(sizeObserver, 'scroll', (event: Event) => {\r\n const directionIsRTLCacheValues = updateDirectionIsRTLCache();\r\n const [directionIsRTLCache, directionIsRTLCacheChanged] = directionIsRTLCacheValues;\r\n\r\n if (directionIsRTLCacheChanged) {\r\n removeClass(listenerElement, 'ltr rtl');\r\n if (directionIsRTLCache) {\r\n addClass(listenerElement, 'rtl');\r\n } else {\r\n addClass(listenerElement, 'ltr');\r\n }\r\n onSizeChangedCallbackProxy(directionIsRTLCacheValues);\r\n }\r\n\r\n stopPropagation(event);\r\n })\r\n );\r\n }\r\n\r\n // appearCallback is always needed on scroll-observer strategy to reset it\r\n if (appearCallback) {\r\n addClass(sizeObserver, classNameSizeObserverAppear);\r\n push(\r\n offListeners,\r\n on(sizeObserver, 'animationstart', appearCallback, {\r\n // Fire only once for \"CSS is ready\" event if ResizeObserver strategy is used\r\n _once: !!ResizeObserverConstructor,\r\n })\r\n );\r\n }\r\n\r\n appendChildren(target, sizeObserver);\r\n },\r\n ];\r\n};\r\n","import {\r\n WH,\r\n CacheValues,\r\n createDiv,\r\n offsetSize,\r\n runEachAndClear,\r\n removeElements,\r\n createCache,\r\n push,\r\n IntersectionObserverConstructor,\r\n appendChildren,\r\n} from 'support';\r\nimport { createSizeObserver } from 'observers/sizeObserver';\r\nimport { classNameTrinsicObserver } from 'classnames';\r\n\r\nexport type TrinsicObserverCallback = (heightIntrinsic: CacheValues) => any;\r\nexport type TrinsicObserver = [\r\n destroy: () => void,\r\n append: () => void,\r\n update: () => void | Parameters\r\n];\r\n\r\nconst isHeightIntrinsic = (ioEntryOrSize: IntersectionObserverEntry | WH): boolean =>\r\n (ioEntryOrSize as WH).h === 0 ||\r\n (ioEntryOrSize as IntersectionObserverEntry).isIntersecting ||\r\n (ioEntryOrSize as IntersectionObserverEntry).intersectionRatio > 0;\r\n\r\n/**\r\n * Creates a trinsic observer which observes changes to intrinsic or extrinsic sizing for the height of the target element.\r\n * @param target The element which shall be observed.\r\n * @param onTrinsicChangedCallback The callback which gets called after a change was detected.\r\n * @returns A object which represents the instance of the trinsic observer.\r\n */\r\nexport const createTrinsicObserver = (\r\n target: HTMLElement,\r\n onTrinsicChangedCallback: TrinsicObserverCallback\r\n): TrinsicObserver => {\r\n let intersectionObserverInstance: undefined | IntersectionObserver;\r\n const trinsicObserver = createDiv(classNameTrinsicObserver);\r\n const offListeners: (() => void)[] = [];\r\n const [updateHeightIntrinsicCache] = createCache({\r\n _initialValue: false,\r\n });\r\n const triggerOnTrinsicChangedCallback = (\r\n updateValue?: IntersectionObserverEntry | WH,\r\n fromRecords?: true\r\n ): void | Parameters => {\r\n if (updateValue) {\r\n const heightIntrinsic = updateHeightIntrinsicCache(isHeightIntrinsic(updateValue));\r\n const [, heightIntrinsicChanged] = heightIntrinsic;\r\n\r\n if (heightIntrinsicChanged) {\r\n !fromRecords && onTrinsicChangedCallback(heightIntrinsic);\r\n return [heightIntrinsic];\r\n }\r\n }\r\n };\r\n const intersectionObserverCallback = (\r\n entries: IntersectionObserverEntry[],\r\n fromRecords?: true\r\n ) => {\r\n if (entries && entries.length > 0) {\r\n return triggerOnTrinsicChangedCallback(entries.pop(), fromRecords);\r\n }\r\n };\r\n\r\n return [\r\n () => {\r\n runEachAndClear(offListeners);\r\n removeElements(trinsicObserver);\r\n },\r\n () => {\r\n if (IntersectionObserverConstructor) {\r\n intersectionObserverInstance = new IntersectionObserverConstructor(\r\n (entries) => intersectionObserverCallback(entries),\r\n { root: target }\r\n );\r\n intersectionObserverInstance.observe(trinsicObserver);\r\n push(offListeners, () => {\r\n intersectionObserverInstance!.disconnect();\r\n });\r\n } else {\r\n const onSizeChanged = () => {\r\n const newSize = offsetSize(trinsicObserver);\r\n triggerOnTrinsicChangedCallback(newSize);\r\n };\r\n const [destroySizeObserver, appendSizeObserver] = createSizeObserver(\r\n trinsicObserver,\r\n onSizeChanged\r\n );\r\n push(offListeners, destroySizeObserver);\r\n appendSizeObserver();\r\n onSizeChanged();\r\n }\r\n\r\n appendChildren(target, trinsicObserver);\r\n },\r\n () => {\r\n if (intersectionObserverInstance) {\r\n return intersectionObserverCallback(intersectionObserverInstance.takeRecords(), true);\r\n }\r\n },\r\n ];\r\n};\r\n","import {\r\n each,\r\n noop,\r\n debounce,\r\n indexOf,\r\n isString,\r\n MutationObserverConstructor,\r\n isEmptyArray,\r\n on,\r\n attr,\r\n is,\r\n find,\r\n push,\r\n} from 'support';\r\n\r\ntype DOMContentObserverCallback = (contentChangedTroughEvent: boolean) => any;\r\n\r\ntype DOMTargetObserverCallback = (targetChangedAttrs: string[], targetStyleChanged: boolean) => any;\r\n\r\ninterface DOMObserverOptionsBase {\r\n _attributes?: string[];\r\n _styleChangingAttributes?: string[];\r\n /**\r\n * A function which can ignore a changed attribute if it returns true.\r\n * for DOMTargetObserver this applies to the changes to the observed target\r\n * for DOMContentObserver this applies to changes to nested targets -> nested targets are elements which match the \"_nestedTargetSelector\" selector\r\n */\r\n _ignoreTargetChange?: DOMObserverIgnoreTargetChange;\r\n}\r\n\r\ninterface DOMContentObserverOptions extends DOMObserverOptionsBase {\r\n _eventContentChange?: DOMObserverEventContentChange; // [selector, eventname(s) | function returning eventname(s)] -> eventnames divided by whitespaces\r\n _nestedTargetSelector?: string;\r\n _ignoreContentChange?: DOMObserverIgnoreContentChange; // function which will prevent marking certain dom changes as content change if it returns true\r\n}\r\n\r\ntype DOMTargetObserverOptions = DOMObserverOptionsBase;\r\n\r\ntype ContentChangeArrayItem = [selector?: string, eventNames?: string] | null | undefined;\r\n\r\nexport type DOMObserverEventContentChange =\r\n | Array\r\n | false\r\n | null\r\n | undefined;\r\n\r\nexport type DOMObserverIgnoreContentChange = (\r\n mutation: MutationRecord,\r\n isNestedTarget: boolean,\r\n domObserverTarget: HTMLElement,\r\n domObserverOptions?: DOMContentObserverOptions\r\n) => boolean;\r\n\r\nexport type DOMObserverIgnoreTargetChange = (\r\n target: Node,\r\n attributeName: string,\r\n oldAttributeValue: string | null,\r\n newAttributeValue: string | null\r\n) => boolean;\r\n\r\nexport type DOMObserverCallback = ContentObserver extends true\r\n ? DOMContentObserverCallback\r\n : DOMTargetObserverCallback;\r\n\r\nexport type DOMObserverOptions = ContentObserver extends true\r\n ? DOMContentObserverOptions\r\n : DOMTargetObserverOptions;\r\n\r\nexport type DOMObserver = [\r\n destroy: () => void,\r\n update: () => void | false | Parameters>\r\n];\r\n\r\ntype EventContentChangeUpdateElement = (getElements?: (selector: string) => Node[]) => void;\r\ntype EventContentChange = [destroy: () => void, updateElements: EventContentChangeUpdateElement];\r\n\r\n/**\r\n * Creates a set of helper functions to observe events of elements inside the target element.\r\n * @param target The target element of which the children elements shall be observed. (not only direct children but also nested ones)\r\n * @param eventContentChange The event content change array. (array of tuples: selector and eventname(s))\r\n * @param callback Callback which is called if one of the elements emits the corresponding event.\r\n * @returns A object which contains a set of helper functions to destroy and update the observation of elements.\r\n */\r\nconst createEventContentChange = (\r\n target: Element,\r\n callback: (...args: any) => any,\r\n eventContentChange?: DOMObserverEventContentChange\r\n): EventContentChange => {\r\n let map: WeakMap any]> | undefined; // weak map to prevent memory leak for detached elements\r\n let destroyed = false;\r\n const destroy = () => {\r\n destroyed = true;\r\n };\r\n const updateElements: EventContentChangeUpdateElement = (getElements?) => {\r\n if (eventContentChange) {\r\n const eventElmList = eventContentChange.reduce>((arr, item) => {\r\n if (item) {\r\n const selector = item[0];\r\n const eventNames = item[1];\r\n const elements =\r\n eventNames &&\r\n selector &&\r\n (getElements ? getElements(selector) : find(selector, target));\r\n\r\n if (elements && elements.length && eventNames && isString(eventNames)) {\r\n push(arr, [elements, eventNames.trim()], true);\r\n }\r\n }\r\n return arr;\r\n }, []);\r\n\r\n each(eventElmList, (item) =>\r\n each(item[0], (elm) => {\r\n const eventNames = item[1];\r\n const entry = map!.get(elm);\r\n\r\n if (entry) {\r\n const entryEventNames = entry[0];\r\n const entryOff = entry[1];\r\n\r\n // in case an already registered element is registered again, unregister the previous events\r\n if (entryEventNames === eventNames) {\r\n entryOff();\r\n }\r\n }\r\n\r\n const off = on(elm, eventNames, (event: Event) => {\r\n if (destroyed) {\r\n off();\r\n map!.delete(elm);\r\n } else {\r\n callback(event);\r\n }\r\n });\r\n map!.set(elm, [eventNames, off]);\r\n })\r\n );\r\n }\r\n };\r\n\r\n if (eventContentChange) {\r\n map = new WeakMap();\r\n updateElements();\r\n }\r\n\r\n return [destroy, updateElements];\r\n};\r\n\r\n/**\r\n * Creates a DOM observer which observes DOM changes to either the target element or its children.\r\n * @param target The element which shall be observed.\r\n * @param isContentObserver Whether this observer is just observing the target or just the targets children. (not only direct children but also nested ones)\r\n * @param callback The callback which gets called if a change was detected.\r\n * @param options The options for DOM change detection.\r\n * @returns A object which represents the instance of the DOM observer.\r\n */\r\nexport const createDOMObserver = (\r\n target: HTMLElement,\r\n isContentObserver: ContentObserver,\r\n callback: DOMObserverCallback,\r\n options?: DOMObserverOptions\r\n): DOMObserver => {\r\n let isConnected = false;\r\n const {\r\n _attributes,\r\n _styleChangingAttributes,\r\n _eventContentChange,\r\n _nestedTargetSelector,\r\n _ignoreTargetChange,\r\n _ignoreContentChange,\r\n } = (options as DOMContentObserverOptions & DOMTargetObserverOptions) || {};\r\n const debouncedEventContentChange = debounce(\r\n () => {\r\n if (isConnected) {\r\n (callback as DOMContentObserverCallback)(true);\r\n }\r\n },\r\n { _timeout: 33, _maxDelay: 99 }\r\n );\r\n const [destroyEventContentChange, updateEventContentChangeElements] = createEventContentChange(\r\n target,\r\n debouncedEventContentChange,\r\n _eventContentChange\r\n );\r\n\r\n // MutationObserver\r\n const finalAttributes = _attributes || [];\r\n const finalStyleChangingAttributes = _styleChangingAttributes || [];\r\n const observedAttributes = finalAttributes.concat(finalStyleChangingAttributes);\r\n const observerCallback = (\r\n mutations: MutationRecord[],\r\n fromRecords?: true\r\n ): void | Parameters> => {\r\n const ignoreTargetChange = _ignoreTargetChange || noop;\r\n const ignoreContentChange = _ignoreContentChange || noop;\r\n const targetChangedAttrs: string[] = [];\r\n const totalAddedNodes: Node[] = [];\r\n let targetStyleChanged = false;\r\n let contentChanged = false;\r\n let childListChanged = false;\r\n each(mutations, (mutation) => {\r\n const { attributeName, target: mutationTarget, type, oldValue, addedNodes } = mutation;\r\n const isAttributesType = type === 'attributes';\r\n const isChildListType = type === 'childList';\r\n const targetIsMutationTarget = target === mutationTarget;\r\n const attributeValue =\r\n isAttributesType && isString(attributeName)\r\n ? attr(mutationTarget as HTMLElement, attributeName!)\r\n : 0;\r\n const attributeChanged = attributeValue !== 0 && oldValue !== attributeValue;\r\n const styleChangingAttrChanged =\r\n indexOf(finalStyleChangingAttributes, attributeName) > -1 && attributeChanged;\r\n\r\n // if is content observer and something changed in children\r\n if (isContentObserver && !targetIsMutationTarget) {\r\n const notOnlyAttrChanged = !isAttributesType;\r\n const contentAttrChanged = isAttributesType && styleChangingAttrChanged;\r\n const isNestedTarget =\r\n contentAttrChanged && _nestedTargetSelector && is(mutationTarget, _nestedTargetSelector);\r\n const baseAssertion = isNestedTarget\r\n ? !ignoreTargetChange(mutationTarget, attributeName!, oldValue, attributeValue)\r\n : notOnlyAttrChanged || contentAttrChanged;\r\n const contentFinalChanged =\r\n baseAssertion && !ignoreContentChange(mutation, !!isNestedTarget, target, options);\r\n\r\n push(totalAddedNodes, addedNodes);\r\n\r\n contentChanged = contentChanged || contentFinalChanged;\r\n childListChanged = childListChanged || isChildListType;\r\n }\r\n // if is target observer and target attr changed\r\n if (\r\n !isContentObserver &&\r\n targetIsMutationTarget &&\r\n attributeChanged &&\r\n !ignoreTargetChange(mutationTarget, attributeName!, oldValue, attributeValue)\r\n ) {\r\n push(targetChangedAttrs, attributeName!);\r\n targetStyleChanged = targetStyleChanged || styleChangingAttrChanged;\r\n }\r\n });\r\n\r\n if (childListChanged && !isEmptyArray(totalAddedNodes)) {\r\n // adds / removes the new elements from the event content change\r\n updateEventContentChangeElements((selector) =>\r\n totalAddedNodes.reduce((arr, node) => {\r\n push(arr, find(selector, node));\r\n return is(node, selector) ? push(arr, node) : arr;\r\n }, [])\r\n );\r\n }\r\n\r\n if (isContentObserver) {\r\n !fromRecords && contentChanged && (callback as DOMContentObserverCallback)(false);\r\n return [false] as Parameters>;\r\n }\r\n if (!isEmptyArray(targetChangedAttrs) || targetStyleChanged) {\r\n !fromRecords &&\r\n (callback as DOMTargetObserverCallback)(targetChangedAttrs, targetStyleChanged);\r\n return [targetChangedAttrs, targetStyleChanged] as Parameters<\r\n DOMObserverCallback\r\n >;\r\n }\r\n };\r\n const mutationObserver: MutationObserver = new MutationObserverConstructor!((mutations) =>\r\n observerCallback(mutations)\r\n );\r\n\r\n // Connect\r\n mutationObserver.observe(target, {\r\n attributes: true,\r\n attributeOldValue: true,\r\n attributeFilter: observedAttributes,\r\n subtree: isContentObserver,\r\n childList: isContentObserver,\r\n characterData: isContentObserver,\r\n });\r\n isConnected = true;\r\n\r\n return [\r\n () => {\r\n if (isConnected) {\r\n destroyEventContentChange();\r\n mutationObserver.disconnect();\r\n isConnected = false;\r\n }\r\n },\r\n () => {\r\n if (isConnected) {\r\n debouncedEventContentChange._flush();\r\n\r\n const records = mutationObserver.takeRecords();\r\n return !isEmptyArray(records) && observerCallback(records, true);\r\n }\r\n },\r\n ];\r\n};\r\n","import {\r\n debounce,\r\n isArray,\r\n isNumber,\r\n each,\r\n indexOf,\r\n isString,\r\n attr,\r\n removeAttr,\r\n CacheValues,\r\n keys,\r\n liesBetween,\r\n scrollSize,\r\n equalWH,\r\n createCache,\r\n WH,\r\n fractionalSize,\r\n isFunction,\r\n ResizeObserverConstructor,\r\n closest,\r\n assignDeep,\r\n push,\r\n scrollLeft,\r\n scrollTop,\r\n noop,\r\n} from 'support';\r\nimport { getEnvironment } from 'environment';\r\nimport {\r\n dataAttributeHost,\r\n dataValueHostOverflowVisible,\r\n dataValueHostUpdating,\r\n classNameViewport,\r\n classNameOverflowVisible,\r\n classNameScrollbar,\r\n classNameViewportArrange,\r\n} from 'classnames';\r\nimport { createSizeObserver, SizeObserverCallbackParams } from 'observers/sizeObserver';\r\nimport { createTrinsicObserver } from 'observers/trinsicObserver';\r\nimport { createDOMObserver, DOMObserver } from 'observers/domObserver';\r\nimport type { SetupState, SetupUpdateCheckOption } from 'setups';\r\nimport type { StructureSetupState } from 'setups/structureSetup';\r\nimport type { StructureSetupElementsObj } from 'setups/structureSetup/structureSetup.elements';\r\nimport type {\r\n StructureSetupUpdate,\r\n StructureSetupUpdateHints,\r\n} from 'setups/structureSetup/structureSetup.update';\r\n\r\nexport type StructureSetupObserversUpdate = (checkOption: SetupUpdateCheckOption) => void;\r\n\r\nexport type StructureSetupObservers = [\r\n destroy: () => void,\r\n appendElements: () => void,\r\n updateObservers: () => Partial,\r\n updateObserversOptions: StructureSetupObserversUpdate\r\n];\r\n\r\ntype ExcludeFromTuple = T extends [infer F, ...infer R]\r\n ? [F] extends [E]\r\n ? ExcludeFromTuple\r\n : [F, ...ExcludeFromTuple]\r\n : [];\r\n\r\nconst hostSelector = `[${dataAttributeHost}]`;\r\n\r\n// TODO: observer textarea attrs if textarea\r\n\r\nconst viewportSelector = `.${classNameViewport}`;\r\nconst viewportAttrsFromTarget = ['tabindex'];\r\nconst baseStyleChangingAttrsTextarea = ['wrap', 'cols', 'rows'];\r\nconst baseStyleChangingAttrs = ['id', 'class', 'style', 'open'];\r\n\r\nexport const createStructureSetupObservers = (\r\n structureSetupElements: StructureSetupElementsObj,\r\n state: SetupState,\r\n structureSetupUpdate: (\r\n ...args: ExcludeFromTuple, Parameters[0]>\r\n ) => any\r\n): StructureSetupObservers => {\r\n let debounceTimeout: number | false | undefined;\r\n let debounceMaxDelay: number | false | undefined;\r\n let contentMutationObserver: DOMObserver | undefined;\r\n const [, setState] = state;\r\n const {\r\n _host,\r\n _viewport,\r\n _content,\r\n _isTextarea,\r\n _viewportIsTarget,\r\n _viewportHasClass,\r\n _viewportAddRemoveClass,\r\n } = structureSetupElements;\r\n const { _flexboxGlue } = getEnvironment();\r\n\r\n const [updateContentSizeCache] = createCache>(\r\n {\r\n _equal: equalWH,\r\n _initialValue: { w: 0, h: 0 },\r\n },\r\n () => {\r\n const hasOver = _viewportHasClass(classNameOverflowVisible, dataValueHostOverflowVisible);\r\n const hasVpStyle = _viewportHasClass(classNameViewportArrange, '');\r\n const scrollOffsetX = hasVpStyle && scrollLeft(_viewport);\r\n const scrollOffsetY = hasVpStyle && scrollTop(_viewport);\r\n _viewportAddRemoveClass(classNameOverflowVisible, dataValueHostOverflowVisible);\r\n _viewportAddRemoveClass(classNameViewportArrange, '');\r\n _viewportAddRemoveClass('', dataValueHostUpdating, true);\r\n\r\n const contentScroll = scrollSize(_content);\r\n const viewportScroll = scrollSize(_viewport);\r\n const fractional = fractionalSize(_viewport);\r\n\r\n _viewportAddRemoveClass(classNameOverflowVisible, dataValueHostOverflowVisible, hasOver);\r\n _viewportAddRemoveClass(classNameViewportArrange, '', hasVpStyle);\r\n _viewportAddRemoveClass('', dataValueHostUpdating);\r\n scrollLeft(_viewport, scrollOffsetX);\r\n scrollTop(_viewport, scrollOffsetY);\r\n return {\r\n w: viewportScroll.w + contentScroll.w + fractional.w,\r\n h: viewportScroll.h + contentScroll.h + fractional.h,\r\n };\r\n }\r\n );\r\n const contentMutationObserverAttr = _isTextarea\r\n ? baseStyleChangingAttrsTextarea\r\n : baseStyleChangingAttrs.concat(baseStyleChangingAttrsTextarea);\r\n const structureSetupUpdateWithDebouncedAdaptiveUpdateHints = debounce(structureSetupUpdate, {\r\n _timeout: () => debounceTimeout,\r\n _maxDelay: () => debounceMaxDelay,\r\n _mergeParams(prev, curr) {\r\n const [prevObj] = prev;\r\n const [currObj] = curr;\r\n return [\r\n keys(prevObj)\r\n .concat(keys(currObj))\r\n .reduce((obj, key) => {\r\n obj[key] = prevObj[key] || currObj[key];\r\n return obj;\r\n }, {}),\r\n ] as [Partial];\r\n },\r\n });\r\n\r\n const updateViewportAttrsFromHost = (attributes?: string[]) => {\r\n each(attributes || viewportAttrsFromTarget, (attribute) => {\r\n if (indexOf(viewportAttrsFromTarget, attribute) > -1) {\r\n const hostAttr = attr(_host, attribute);\r\n if (isString(hostAttr)) {\r\n attr(_viewport, attribute, hostAttr);\r\n } else {\r\n removeAttr(_viewport, attribute);\r\n }\r\n }\r\n });\r\n };\r\n const onTrinsicChanged = (heightIntrinsicCache: CacheValues, fromRecords?: true) => {\r\n const [heightIntrinsic, heightIntrinsicChanged] = heightIntrinsicCache;\r\n const updateHints: Partial = {\r\n _heightIntrinsicChanged: heightIntrinsicChanged,\r\n };\r\n setState({ _heightIntrinsic: heightIntrinsic });\r\n\r\n !fromRecords && structureSetupUpdate(updateHints);\r\n return updateHints;\r\n };\r\n const onSizeChanged = ({\r\n _sizeChanged,\r\n _directionIsRTLCache,\r\n _appear,\r\n }: SizeObserverCallbackParams) => {\r\n const updateFn =\r\n !_sizeChanged || _appear\r\n ? structureSetupUpdate\r\n : structureSetupUpdateWithDebouncedAdaptiveUpdateHints;\r\n\r\n let directionChanged = false;\r\n if (_directionIsRTLCache) {\r\n const [directionIsRTL, directionIsRTLChanged] = _directionIsRTLCache;\r\n directionChanged = directionIsRTLChanged;\r\n\r\n setState({ _directionIsRTL: directionIsRTL });\r\n }\r\n\r\n updateFn({ _sizeChanged, _directionChanged: directionChanged });\r\n };\r\n const onContentMutation = (contentChangedTroughEvent: boolean, fromRecords?: true) => {\r\n const [, contentSizeChanged] = updateContentSizeCache();\r\n const updateHints: Partial = {\r\n _contentMutation: contentSizeChanged,\r\n };\r\n // if contentChangedTroughEvent is true its already debounced\r\n const updateFn = contentChangedTroughEvent\r\n ? structureSetupUpdate\r\n : structureSetupUpdateWithDebouncedAdaptiveUpdateHints;\r\n\r\n if (contentSizeChanged) {\r\n !fromRecords && updateFn(updateHints);\r\n }\r\n return updateHints;\r\n };\r\n const onHostMutation = (\r\n targetChangedAttrs: string[],\r\n targetStyleChanged: boolean,\r\n fromRecords?: true\r\n ) => {\r\n const updateHints: Partial = { _hostMutation: targetStyleChanged };\r\n if (targetStyleChanged) {\r\n !fromRecords && structureSetupUpdateWithDebouncedAdaptiveUpdateHints(updateHints);\r\n } else if (!_viewportIsTarget) {\r\n updateViewportAttrsFromHost(targetChangedAttrs);\r\n }\r\n return updateHints;\r\n };\r\n\r\n const [destroyTrinsicObserver, appendTrinsicObserver, updateTrinsicObserver] =\r\n _content || !_flexboxGlue ? createTrinsicObserver(_host, onTrinsicChanged) : [noop, noop, noop];\r\n const [destroySizeObserver, appendSizeObserver] = !_viewportIsTarget\r\n ? createSizeObserver(_host, onSizeChanged, {\r\n _appear: true,\r\n _direction: true,\r\n })\r\n : [noop, noop];\r\n const [destroyHostMutationObserver, updateHostMutationObserver] = createDOMObserver(\r\n _host,\r\n false,\r\n onHostMutation,\r\n {\r\n _styleChangingAttributes: baseStyleChangingAttrs,\r\n _attributes: baseStyleChangingAttrs.concat(viewportAttrsFromTarget),\r\n }\r\n );\r\n\r\n const viewportIsTargetResizeObserver =\r\n _viewportIsTarget &&\r\n ResizeObserverConstructor &&\r\n new ResizeObserverConstructor(onSizeChanged.bind(0, { _sizeChanged: true }));\r\n\r\n viewportIsTargetResizeObserver && viewportIsTargetResizeObserver.observe(_host);\r\n updateViewportAttrsFromHost();\r\n\r\n return [\r\n () => {\r\n destroyTrinsicObserver();\r\n destroySizeObserver();\r\n contentMutationObserver && contentMutationObserver[0](); // destroy\r\n viewportIsTargetResizeObserver && viewportIsTargetResizeObserver.disconnect();\r\n destroyHostMutationObserver();\r\n },\r\n () => {\r\n // order is matter!\r\n appendSizeObserver();\r\n appendTrinsicObserver();\r\n },\r\n () => {\r\n const updateHints: Partial = {};\r\n const hostUpdateResult = updateHostMutationObserver();\r\n const trinsicUpdateResult = updateTrinsicObserver();\r\n const contentUpdateResult = contentMutationObserver && contentMutationObserver[1](); // update\r\n\r\n if (hostUpdateResult) {\r\n assignDeep(\r\n updateHints,\r\n onHostMutation.apply(\r\n 0,\r\n push(hostUpdateResult, true) as [\r\n ...updateResult: typeof hostUpdateResult,\r\n fromRecords: true\r\n ]\r\n )\r\n );\r\n }\r\n if (trinsicUpdateResult) {\r\n assignDeep(\r\n updateHints,\r\n onTrinsicChanged.apply(\r\n 0,\r\n push(trinsicUpdateResult as any[], true) as [\r\n ...updateResult: typeof trinsicUpdateResult,\r\n fromRecords: true\r\n ]\r\n )\r\n );\r\n }\r\n if (contentUpdateResult) {\r\n assignDeep(\r\n updateHints,\r\n onContentMutation.apply(\r\n 0,\r\n push(contentUpdateResult, true) as [\r\n ...updateResult: typeof contentUpdateResult,\r\n fromRecords: true\r\n ]\r\n )\r\n );\r\n }\r\n\r\n return updateHints;\r\n },\r\n (checkOption) => {\r\n const [ignoreMutation] = checkOption('updating.ignoreMutation');\r\n const [attributes, attributesChanged] = checkOption('updating.attributes');\r\n const [elementEvents, elementEventsChanged] = checkOption | null>(\r\n 'updating.elementEvents'\r\n );\r\n const [debounceValue, debounceChanged] = checkOption | number | null>(\r\n 'updating.debounce'\r\n );\r\n const updateContentMutationObserver = elementEventsChanged || attributesChanged;\r\n const ignoreMutationFromOptions = (mutation: MutationRecord) =>\r\n isFunction(ignoreMutation) && ignoreMutation(mutation);\r\n\r\n if (updateContentMutationObserver) {\r\n if (contentMutationObserver) {\r\n contentMutationObserver[1](); // update\r\n contentMutationObserver[0](); // destroy\r\n }\r\n contentMutationObserver = createDOMObserver(\r\n _content || _viewport,\r\n true,\r\n onContentMutation,\r\n {\r\n _styleChangingAttributes: contentMutationObserverAttr.concat(attributes || []),\r\n _attributes: contentMutationObserverAttr.concat(attributes || []),\r\n _eventContentChange: elementEvents,\r\n _nestedTargetSelector: hostSelector,\r\n _ignoreContentChange: (mutation, isNestedTarget) => {\r\n const { target, attributeName } = mutation;\r\n const ignore =\r\n !isNestedTarget && attributeName\r\n ? liesBetween(target, hostSelector, viewportSelector)\r\n : false;\r\n return (\r\n ignore ||\r\n !!closest(target, `.${classNameScrollbar}`) || // ignore explicitely all scrollbar elements\r\n !!ignoreMutationFromOptions(mutation)\r\n );\r\n },\r\n }\r\n );\r\n }\r\n\r\n if (debounceChanged) {\r\n structureSetupUpdateWithDebouncedAdaptiveUpdateHints._flush();\r\n if (isArray(debounceValue)) {\r\n const timeout = debounceValue[0];\r\n const maxWait = debounceValue[1];\r\n debounceTimeout = isNumber(timeout) ? timeout : false;\r\n debounceMaxDelay = isNumber(maxWait) ? maxWait : false;\r\n } else if (isNumber(debounceValue)) {\r\n debounceTimeout = debounceValue;\r\n debounceMaxDelay = false;\r\n } else {\r\n debounceTimeout = false;\r\n debounceMaxDelay = false;\r\n }\r\n }\r\n },\r\n ];\r\n};\r\n","import { createEventListenerHub, isEmptyObject, keys } from 'support';\r\nimport { createState, createOptionCheck } from 'setups/setups';\r\nimport { createStructureSetupElements } from 'setups/structureSetup/structureSetup.elements';\r\nimport { createStructureSetupUpdate } from 'setups/structureSetup/structureSetup.update';\r\nimport { createStructureSetupObservers } from 'setups/structureSetup/structureSetup.observers';\r\nimport type { StructureSetupUpdateHints } from 'setups/structureSetup/structureSetup.update';\r\nimport type { StructureSetupElementsObj } from 'setups/structureSetup/structureSetup.elements';\r\nimport type { TRBL, XY, EventListener } from 'support';\r\nimport type { Options, ReadonlyOptions } from 'options';\r\nimport type { Setup } from 'setups';\r\nimport type { InitializationTarget } from 'initialization';\r\nimport type { DeepPartial, StyleObject, OverflowStyle } from 'typings';\r\n\r\nexport interface StructureSetupState {\r\n _padding: TRBL;\r\n _paddingAbsolute: boolean;\r\n _viewportPaddingStyle: StyleObject;\r\n _overflowEdge: XY;\r\n _overflowAmount: XY;\r\n _overflowStyle: XY;\r\n _hasOverflow: XY;\r\n _heightIntrinsic: boolean;\r\n _directionIsRTL: boolean;\r\n}\r\n\r\nexport interface StructureSetupStaticState {\r\n _elements: StructureSetupElementsObj;\r\n _appendElements: () => void;\r\n _addOnUpdatedListener: (listener: EventListener) => void;\r\n}\r\n\r\ntype StructureSetupEventMap = {\r\n u: [updateHints: StructureSetupUpdateHints, changedOptions: DeepPartial, force: boolean];\r\n};\r\n\r\nconst initialXYNumber = { x: 0, y: 0 };\r\nconst initialStructureSetupUpdateState: StructureSetupState = {\r\n _padding: {\r\n t: 0,\r\n r: 0,\r\n b: 0,\r\n l: 0,\r\n },\r\n _paddingAbsolute: false,\r\n _viewportPaddingStyle: {\r\n marginRight: 0,\r\n marginBottom: 0,\r\n marginLeft: 0,\r\n paddingTop: 0,\r\n paddingRight: 0,\r\n paddingBottom: 0,\r\n paddingLeft: 0,\r\n },\r\n _overflowEdge: initialXYNumber,\r\n _overflowAmount: initialXYNumber,\r\n _overflowStyle: {\r\n x: 'hidden',\r\n y: 'hidden',\r\n },\r\n _hasOverflow: {\r\n x: false,\r\n y: false,\r\n },\r\n _heightIntrinsic: false,\r\n _directionIsRTL: false,\r\n};\r\n\r\nexport const createStructureSetup = (\r\n target: InitializationTarget,\r\n options: ReadonlyOptions\r\n): Setup => {\r\n const checkOptionsFallback = createOptionCheck(options, {});\r\n const state = createState(initialStructureSetupUpdateState);\r\n const [addEvent, removeEvent, triggerEvent] = createEventListenerHub();\r\n const [getState] = state;\r\n const [elements, appendStructureElements, destroyElements] = createStructureSetupElements(target);\r\n const updateStructure = createStructureSetupUpdate(elements, state);\r\n const triggerUpdateEvent: (...args: StructureSetupEventMap['u']) => void = (\r\n updateHints,\r\n changedOptions,\r\n force\r\n ) => {\r\n const truthyUpdateHints = keys(updateHints).some((key) => updateHints[key]);\r\n\r\n if (truthyUpdateHints || !isEmptyObject(changedOptions) || force) {\r\n triggerEvent('u', [updateHints, changedOptions, force]);\r\n }\r\n };\r\n const [destroyObservers, appendObserverElements, updateObservers, updateObserversOptions] =\r\n createStructureSetupObservers(elements, state, (updateHints) => {\r\n triggerUpdateEvent(updateStructure(checkOptionsFallback, updateHints), {}, false);\r\n });\r\n\r\n const structureSetupState = getState.bind(0) as (() => StructureSetupState) &\r\n StructureSetupStaticState;\r\n structureSetupState._addOnUpdatedListener = (listener) => {\r\n addEvent('u', listener);\r\n };\r\n structureSetupState._appendElements = () => {\r\n appendObserverElements();\r\n appendStructureElements();\r\n };\r\n structureSetupState._elements = elements;\r\n\r\n return [\r\n (changedOptions, force?) => {\r\n const checkOption = createOptionCheck(options, changedOptions, force);\r\n updateObserversOptions(checkOption);\r\n triggerUpdateEvent(\r\n updateStructure(checkOption, updateObservers(), force),\r\n changedOptions,\r\n !!force\r\n );\r\n },\r\n structureSetupState,\r\n () => {\r\n removeEvent();\r\n destroyObservers();\r\n destroyElements();\r\n },\r\n ];\r\n};\r\n","import {\r\n directionIsRTL,\r\n getBoundingClientRect,\r\n offsetSize,\r\n on,\r\n preventDefault,\r\n runEachAndClear,\r\n stopPropagation,\r\n XY,\r\n} from 'support';\r\nimport { classNamesScrollbarInteraction } from 'classnames';\r\nimport type { ReadonlyOptions } from 'options';\r\nimport type { StructureSetupState } from 'setups';\r\nimport type {\r\n ScrollbarsSetupElementsObj,\r\n ScrollbarStructure,\r\n} from 'setups/scrollbarsSetup/scrollbarsSetup.elements';\r\nimport { getEnvironment } from 'environment';\r\n\r\nexport type ScrollbarsSetupEvents = (\r\n scrollbarStructure: ScrollbarStructure,\r\n scrollbarsAddRemoveClass: ScrollbarsSetupElementsObj['_scrollbarsAddRemoveClass'],\r\n documentElm: Document,\r\n scrollOffsetElm: HTMLElement,\r\n isHorizontal?: boolean\r\n) => () => void;\r\n\r\nconst { round } = Math;\r\nconst getClientOffset = (event: PointerEvent): XY => ({\r\n x: event.clientX,\r\n y: event.clientY,\r\n});\r\nconst getScale = (element: HTMLElement): XY => {\r\n const { width, height } = getBoundingClientRect(element);\r\n const { w, h } = offsetSize(element);\r\n return {\r\n x: round(width) / w || 1,\r\n y: round(height) / h || 1,\r\n };\r\n};\r\nconst continuePointerDown = (\r\n event: PointerEvent,\r\n options: ReadonlyOptions,\r\n scrollType: 'dragScroll' | 'clickScroll'\r\n) => {\r\n const scrollbarOptions = options.scrollbars;\r\n const { button, isPrimary, pointerType } = event;\r\n const { pointers } = scrollbarOptions;\r\n return (\r\n button === 0 &&\r\n isPrimary &&\r\n scrollbarOptions[scrollType] &&\r\n (pointers || []).includes(pointerType)\r\n );\r\n};\r\nconst createRootClickStopPropagationEvents = (scrollbar: HTMLElement, documentElm: Document) =>\r\n on(\r\n scrollbar,\r\n 'mousedown',\r\n on.bind(0, documentElm, 'click', stopPropagation, { _once: true, _capture: true }),\r\n { _capture: true }\r\n );\r\nconst createDragScrollingEvents = (\r\n options: ReadonlyOptions,\r\n doc: Document,\r\n scrollbarStructure: ScrollbarStructure,\r\n scrollOffsetElement: HTMLElement,\r\n structureSetupState: () => StructureSetupState,\r\n isHorizontal?: boolean\r\n) => {\r\n const { _rtlScrollBehavior } = getEnvironment();\r\n const { _handle, _track, _scrollbar } = scrollbarStructure;\r\n const scrollOffsetKey = `scroll${isHorizontal ? 'Left' : 'Top'}`;\r\n const xyKey = `${isHorizontal ? 'x' : 'y'}`;\r\n const whKey = `${isHorizontal ? 'w' : 'h'}`;\r\n const createOnPointerMoveHandler =\r\n (mouseDownScroll: number, mouseDownClientOffset: number, mouseDownInvertedScale: number) =>\r\n (event: PointerEvent) => {\r\n const { _overflowAmount } = structureSetupState();\r\n const movement =\r\n (getClientOffset(event)[xyKey] - mouseDownClientOffset) * mouseDownInvertedScale;\r\n const handleTrackDiff = offsetSize(_track)[whKey] - offsetSize(_handle)[whKey];\r\n const scrollDeltaPercent = movement / handleTrackDiff;\r\n const scrollDelta = scrollDeltaPercent * _overflowAmount[xyKey];\r\n const isRTL = directionIsRTL(_scrollbar);\r\n const negateMultiplactor =\r\n isRTL && isHorizontal ? (_rtlScrollBehavior.n || _rtlScrollBehavior.i ? 1 : -1) : 1;\r\n\r\n scrollOffsetElement[scrollOffsetKey] = mouseDownScroll + scrollDelta * negateMultiplactor;\r\n };\r\n\r\n return on(_handle, 'pointerdown', (pointerDownEvent: PointerEvent) => {\r\n if (continuePointerDown(pointerDownEvent, options, 'dragScroll')) {\r\n const offSelectStart = on(doc, 'selectstart', (event: Event) => preventDefault(event), {\r\n _passive: false,\r\n });\r\n const offPointerMove = on(\r\n _handle,\r\n 'pointermove',\r\n createOnPointerMoveHandler(\r\n scrollOffsetElement[scrollOffsetKey] || 0,\r\n getClientOffset(pointerDownEvent)[xyKey],\r\n 1 / getScale(scrollOffsetElement)[xyKey]\r\n )\r\n );\r\n\r\n on(\r\n _handle,\r\n 'pointerup',\r\n (pointerUpEvent: PointerEvent) => {\r\n offSelectStart();\r\n offPointerMove();\r\n _handle.releasePointerCapture(pointerUpEvent.pointerId);\r\n },\r\n { _once: true }\r\n );\r\n _handle.setPointerCapture(pointerDownEvent.pointerId);\r\n }\r\n });\r\n};\r\n\r\nexport const createScrollbarsSetupEvents =\r\n (\r\n options: ReadonlyOptions,\r\n structureSetupState: () => StructureSetupState\r\n ): ScrollbarsSetupEvents =>\r\n (scrollbarStructure, scrollbarsAddRemoveClass, documentElm, scrollOffsetElm, isHorizontal) => {\r\n const { _scrollbar } = scrollbarStructure;\r\n\r\n return runEachAndClear.bind(0, [\r\n on(_scrollbar, 'pointerenter', () => {\r\n scrollbarsAddRemoveClass(classNamesScrollbarInteraction, true);\r\n }),\r\n on(_scrollbar, 'pointerleave pointercancel', () => {\r\n scrollbarsAddRemoveClass(classNamesScrollbarInteraction);\r\n }),\r\n createRootClickStopPropagationEvents(_scrollbar, documentElm),\r\n createDragScrollingEvents(\r\n options,\r\n documentElm,\r\n scrollbarStructure,\r\n scrollOffsetElm,\r\n structureSetupState,\r\n isHorizontal\r\n ),\r\n ]);\r\n };\r\n","import { offsetSize } from 'support';\r\nimport { getEnvironment } from 'environment';\r\nimport type { StructureSetupState } from 'setups';\r\n\r\nconst { min, max, abs, round } = Math;\r\nexport const getScrollbarHandleLengthRatio = (\r\n scrollbarHandle: HTMLElement,\r\n scrollbarTrack: HTMLElement,\r\n isHorizontal?: boolean,\r\n structureSetupState?: StructureSetupState\r\n) => {\r\n if (structureSetupState) {\r\n const axis = isHorizontal ? 'x' : 'y';\r\n const { _overflowAmount, _overflowEdge } = structureSetupState;\r\n\r\n const viewportSize = _overflowEdge[axis];\r\n const overflowAmount = _overflowAmount[axis];\r\n return max(0, min(1, viewportSize / (viewportSize + overflowAmount)));\r\n }\r\n const axis = isHorizontal ? 'w' : 'h';\r\n const handleSize = offsetSize(scrollbarHandle)[axis];\r\n const trackSize = offsetSize(scrollbarTrack)[axis];\r\n return max(0, min(1, handleSize / trackSize));\r\n};\r\nexport const getScrollbarHandleOffsetRatio = (\r\n scrollbarHandle: HTMLElement,\r\n scrollbarTrack: HTMLElement,\r\n scrollOffsetElement: HTMLElement,\r\n structureSetupState: StructureSetupState,\r\n isRTL: boolean,\r\n isHorizontal?: boolean\r\n) => {\r\n const { _rtlScrollBehavior } = getEnvironment();\r\n const axis = isHorizontal ? 'x' : 'y';\r\n const scrollLeftTop = isHorizontal ? 'Left' : 'Top';\r\n const { _overflowAmount } = structureSetupState;\r\n const scrollPositionMax = round(_overflowAmount[axis]);\r\n const scrollPosition = abs(scrollOffsetElement[`scroll${scrollLeftTop}`]);\r\n const handleRTL = isHorizontal && isRTL;\r\n const rtlNormalizedScrollPosition = _rtlScrollBehavior.i\r\n ? scrollPosition\r\n : scrollPositionMax - scrollPosition;\r\n const finalScrollPosition = handleRTL ? rtlNormalizedScrollPosition : scrollPosition;\r\n const scrollPercent = min(1, finalScrollPosition / scrollPositionMax);\r\n const lengthRatio = getScrollbarHandleLengthRatio(scrollbarHandle, scrollbarTrack, isHorizontal);\r\n\r\n return (1 / lengthRatio) * (1 - lengthRatio) * scrollPercent;\r\n};\r\n","import {\r\n addClass,\r\n appendChildren,\r\n createDiv,\r\n directionIsRTL,\r\n each,\r\n isBoolean,\r\n isEmptyArray,\r\n push,\r\n removeClass,\r\n removeElements,\r\n runEachAndClear,\r\n setT,\r\n style,\r\n} from 'support';\r\nimport {\r\n classNameScrollbar,\r\n classNameScrollbarHorizontal,\r\n classNameScrollbarVertical,\r\n classNameScrollbarTrack,\r\n classNameScrollbarHandle,\r\n classNamesScrollbarTransitionless,\r\n} from 'classnames';\r\nimport { getEnvironment } from 'environment';\r\nimport { dynamicInitializationElement as generalDynamicInitializationElement } from 'initialization';\r\nimport {\r\n getScrollbarHandleLengthRatio,\r\n getScrollbarHandleOffsetRatio,\r\n} from 'setups/scrollbarsSetup/scrollbarsSetup.calculations';\r\nimport type { InitializationTarget } from 'initialization';\r\nimport type { StructureSetupElementsObj } from 'setups/structureSetup/structureSetup.elements';\r\nimport type { ScrollbarsSetupEvents } from 'setups/scrollbarsSetup/scrollbarsSetup.events';\r\nimport type {\r\n ScrollbarsInitialization,\r\n ScrollbarsDynamicInitializationElement,\r\n} from 'setups/scrollbarsSetup/scrollbarsSetup.initialization';\r\nimport type { StyleObject } from 'typings';\r\nimport { StructureSetupState } from 'setups';\r\n\r\nexport interface ScrollbarStructure {\r\n _scrollbar: HTMLElement;\r\n _track: HTMLElement;\r\n _handle: HTMLElement;\r\n}\r\n\r\nexport interface ScrollbarsSetupElement {\r\n _scrollbarStructures: ScrollbarStructure[];\r\n _clone: () => ScrollbarStructure;\r\n _handleStyle: (\r\n elmStyle: (\r\n scrollbarStructure: ScrollbarStructure\r\n ) => [HTMLElement | false | null | undefined, StyleObject]\r\n ) => void;\r\n}\r\n\r\nexport interface ScrollbarsSetupElementsObj {\r\n _scrollbarsAddRemoveClass: (\r\n classNames: string | false | null | undefined,\r\n add?: boolean,\r\n isHorizontal?: boolean\r\n ) => void;\r\n _refreshScrollbarsHandleLength: (structureSetupState: StructureSetupState) => void;\r\n _refreshScrollbarsHandleOffset: (structureSetupState: StructureSetupState) => void;\r\n _horizontal: ScrollbarsSetupElement;\r\n _vertical: ScrollbarsSetupElement;\r\n}\r\n\r\nexport type ScrollbarsSetupElements = [\r\n elements: ScrollbarsSetupElementsObj,\r\n appendElements: () => void,\r\n destroy: () => void\r\n];\r\n\r\nexport const createScrollbarsSetupElements = (\r\n target: InitializationTarget,\r\n structureSetupElements: StructureSetupElementsObj,\r\n scrollbarsSetupEvents: ScrollbarsSetupEvents\r\n): ScrollbarsSetupElements => {\r\n const { _getDefaultInitialization } = getEnvironment();\r\n const { scrollbarsSlot: defaultScrollbarsSlot } = _getDefaultInitialization();\r\n const { _documentElm, _target, _host, _viewport, _targetIsElm, _scrollOffsetElement } =\r\n structureSetupElements;\r\n const { scrollbarsSlot } = (_targetIsElm ? {} : target) as ScrollbarsInitialization;\r\n const evaluatedScrollbarSlot =\r\n generalDynamicInitializationElement(\r\n [_target, _host, _viewport],\r\n () => _host,\r\n defaultScrollbarsSlot,\r\n scrollbarsSlot\r\n );\r\n const scrollbarStructureAddRemoveClass = (\r\n scrollbarStructures: ScrollbarStructure[],\r\n classNames: string | false | null | undefined,\r\n add?: boolean\r\n ) => {\r\n const action = add ? addClass : removeClass;\r\n each(scrollbarStructures, (scrollbarStructure) => {\r\n action(scrollbarStructure._scrollbar, classNames);\r\n });\r\n };\r\n const scrollbarsHandleStyle = (\r\n scrollbarStructures: ScrollbarStructure[],\r\n elmStyle: (\r\n scrollbarStructure: ScrollbarStructure\r\n ) => [HTMLElement | false | null | undefined, StyleObject]\r\n ) => {\r\n each(scrollbarStructures, (scrollbarStructure) => {\r\n const [elm, styles] = elmStyle(scrollbarStructure);\r\n style(elm, styles);\r\n });\r\n };\r\n const scrollbarStructureRefreshHandleLength = (\r\n scrollbarStructures: ScrollbarStructure[],\r\n structureSetupState: StructureSetupState,\r\n isHorizontal?: boolean\r\n ) => {\r\n scrollbarsHandleStyle(scrollbarStructures, (structure) => {\r\n const { _handle, _track } = structure;\r\n return [\r\n _handle,\r\n {\r\n [isHorizontal ? 'width' : 'height']: `${(\r\n getScrollbarHandleLengthRatio(_handle, _track, isHorizontal, structureSetupState) * 100\r\n ).toFixed(5)}%`,\r\n },\r\n ];\r\n });\r\n };\r\n const scrollbarStructureRefreshHandleOffset = (\r\n scrollbarStructures: ScrollbarStructure[],\r\n structureSetupState: StructureSetupState,\r\n isHorizontal?: boolean\r\n ) => {\r\n const translateAxis = isHorizontal ? 'X' : 'Y';\r\n scrollbarsHandleStyle(scrollbarStructures, (structure) => {\r\n const { _handle, _track, _scrollbar } = structure;\r\n const offsetRatio = getScrollbarHandleOffsetRatio(\r\n _handle,\r\n _track,\r\n _scrollOffsetElement,\r\n structureSetupState,\r\n directionIsRTL(_scrollbar),\r\n isHorizontal\r\n );\r\n // eslint-disable-next-line no-self-compare\r\n const validOffsetRatio = offsetRatio === offsetRatio; // is false when offset is NaN\r\n return [\r\n _handle,\r\n {\r\n transform: validOffsetRatio\r\n ? `translate${translateAxis}(${(offsetRatio * 100).toFixed(5)}%)`\r\n : '',\r\n },\r\n ];\r\n });\r\n };\r\n\r\n const destroyFns: (() => void)[] = [];\r\n const horizontalScrollbars: ScrollbarStructure[] = [];\r\n const verticalScrollbars: ScrollbarStructure[] = [];\r\n\r\n const scrollbarsAddRemoveClass = (\r\n className: string | false | null | undefined,\r\n add?: boolean,\r\n onlyHorizontal?: boolean\r\n ) => {\r\n const singleAxis = isBoolean(onlyHorizontal);\r\n const runHorizontal = singleAxis ? onlyHorizontal : true;\r\n const runVertical = singleAxis ? !onlyHorizontal : true;\r\n runHorizontal && scrollbarStructureAddRemoveClass(horizontalScrollbars, className, add);\r\n runVertical && scrollbarStructureAddRemoveClass(verticalScrollbars, className, add);\r\n };\r\n const refreshScrollbarsHandleLength = (structureSetupState: StructureSetupState) => {\r\n scrollbarStructureRefreshHandleLength(horizontalScrollbars, structureSetupState, true);\r\n scrollbarStructureRefreshHandleLength(verticalScrollbars, structureSetupState);\r\n };\r\n const refreshScrollbarsHandleOffset = (structureSetupState: StructureSetupState) => {\r\n scrollbarStructureRefreshHandleOffset(horizontalScrollbars, structureSetupState, true);\r\n scrollbarStructureRefreshHandleOffset(verticalScrollbars, structureSetupState);\r\n };\r\n const generateScrollbarDOM = (isHorizontal?: boolean): ScrollbarStructure => {\r\n const scrollbarClassName = isHorizontal\r\n ? classNameScrollbarHorizontal\r\n : classNameScrollbarVertical;\r\n const arrToPush = isHorizontal ? horizontalScrollbars : verticalScrollbars;\r\n const transitionlessClass = isEmptyArray(arrToPush) ? classNamesScrollbarTransitionless : '';\r\n const scrollbar = createDiv(\r\n `${classNameScrollbar} ${scrollbarClassName} ${transitionlessClass}`\r\n );\r\n const track = createDiv(classNameScrollbarTrack);\r\n const handle = createDiv(classNameScrollbarHandle);\r\n const result = {\r\n _scrollbar: scrollbar,\r\n _track: track,\r\n _handle: handle,\r\n };\r\n\r\n appendChildren(scrollbar, track);\r\n appendChildren(track, handle);\r\n\r\n push(arrToPush, result);\r\n push(destroyFns, [\r\n removeElements.bind(0, scrollbar),\r\n scrollbarsSetupEvents(\r\n result,\r\n scrollbarsAddRemoveClass,\r\n _documentElm,\r\n _scrollOffsetElement,\r\n isHorizontal\r\n ),\r\n ]);\r\n\r\n return result;\r\n };\r\n const generateHorizontalScrollbarStructure = generateScrollbarDOM.bind(0, true);\r\n const generateVerticalScrollbarStructure = generateScrollbarDOM.bind(0, false);\r\n const appendElements = () => {\r\n appendChildren(evaluatedScrollbarSlot, horizontalScrollbars[0]._scrollbar);\r\n appendChildren(evaluatedScrollbarSlot, verticalScrollbars[0]._scrollbar);\r\n\r\n setT(() => {\r\n scrollbarsAddRemoveClass(classNamesScrollbarTransitionless);\r\n }, 300);\r\n };\r\n\r\n generateHorizontalScrollbarStructure();\r\n generateVerticalScrollbarStructure();\r\n\r\n return [\r\n {\r\n _refreshScrollbarsHandleLength: refreshScrollbarsHandleLength,\r\n _refreshScrollbarsHandleOffset: refreshScrollbarsHandleOffset,\r\n _scrollbarsAddRemoveClass: scrollbarsAddRemoveClass,\r\n _horizontal: {\r\n _scrollbarStructures: horizontalScrollbars,\r\n _clone: generateHorizontalScrollbarStructure,\r\n _handleStyle: scrollbarsHandleStyle.bind(0, horizontalScrollbars),\r\n },\r\n _vertical: {\r\n _scrollbarStructures: verticalScrollbars,\r\n _clone: generateVerticalScrollbarStructure,\r\n _handleStyle: scrollbarsHandleStyle.bind(0, verticalScrollbars),\r\n },\r\n },\r\n appendElements,\r\n runEachAndClear.bind(0, destroyFns),\r\n ];\r\n};\r\n","import {\r\n rAF,\r\n cAF,\r\n isFunction,\r\n on,\r\n runEachAndClear,\r\n setT,\r\n clearT,\r\n parent,\r\n scrollLeft,\r\n scrollTop,\r\n} from 'support';\r\nimport { createState, createOptionCheck } from 'setups/setups';\r\nimport { createScrollbarsSetupEvents } from 'setups/scrollbarsSetup/scrollbarsSetup.events';\r\nimport {\r\n createScrollbarsSetupElements,\r\n ScrollbarsSetupElementsObj,\r\n ScrollbarStructure,\r\n} from 'setups/scrollbarsSetup/scrollbarsSetup.elements';\r\nimport {\r\n classNamesScrollbarVisible,\r\n classNamesScrollbarUnusable,\r\n classNamesScrollbarCornerless,\r\n classNamesScrollbarAutoHidden,\r\n classNamesScrollbarHandleInteractive,\r\n classNamesScrollbarTrackInteractive,\r\n classNameScrollbarRtl,\r\n} from 'classnames';\r\nimport type { StructureSetupUpdateHints } from 'setups/structureSetup/structureSetup.update';\r\nimport type {\r\n ReadonlyOptions,\r\n ScrollbarVisibilityBehavior,\r\n ScrollbarAutoHideBehavior,\r\n} from 'options';\r\nimport type { Setup, StructureSetupState, StructureSetupStaticState } from 'setups';\r\nimport type { InitializationTarget } from 'initialization';\r\nimport type { OverflowStyle, StyleObject } from 'typings';\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\r\nexport interface ScrollbarsSetupState {}\r\n\r\nexport interface ScrollbarsSetupStaticState {\r\n _elements: ScrollbarsSetupElementsObj;\r\n _appendElements: () => void;\r\n}\r\n\r\nconst createSelfCancelTimeout = (timeout?: number | (() => number)) => {\r\n let id: number;\r\n const setTFn = timeout ? setT : rAF!;\r\n const clearTFn = timeout ? clearT : cAF!;\r\n return [\r\n (callback: () => any) => {\r\n clearTFn(id);\r\n // @ts-ignore\r\n id = setTFn(callback, isFunction(timeout) ? timeout() : timeout);\r\n },\r\n () => clearTFn(id),\r\n ] as [timeout: (callback: () => any) => void, clear: () => void];\r\n};\r\n\r\nexport const createScrollbarsSetup = (\r\n target: InitializationTarget,\r\n options: ReadonlyOptions,\r\n structureSetupState: (() => StructureSetupState) & StructureSetupStaticState\r\n): Setup => {\r\n let autoHideIsMove: boolean;\r\n let autoHideIsLeave: boolean;\r\n let autoHideNotNever: boolean;\r\n let mouseInHost: boolean | undefined;\r\n let prevTheme: string | null | undefined;\r\n let globalAutoHideDelay = 0;\r\n\r\n const state = createState({});\r\n const [getState] = state;\r\n const [requestMouseMoveAnimationFrame, cancelMouseMoveAnimationFrame] = createSelfCancelTimeout();\r\n const [requestScrollAnimationFrame, cancelScrollAnimationFrame] = createSelfCancelTimeout();\r\n const [scrollTimeout, clearScrollTimeout] = createSelfCancelTimeout(100);\r\n const [auotHideMoveTimeout, clearAutoHideTimeout] = createSelfCancelTimeout(100);\r\n const [auotHideTimeout, clearAutoTimeout] = createSelfCancelTimeout(() => globalAutoHideDelay);\r\n const [elements, appendElements, destroyElements] = createScrollbarsSetupElements(\r\n target,\r\n structureSetupState._elements,\r\n createScrollbarsSetupEvents(options, structureSetupState)\r\n );\r\n const {\r\n _host,\r\n _viewport,\r\n _scrollOffsetElement,\r\n _scrollEventElement,\r\n _viewportIsTarget,\r\n _isBody,\r\n } = structureSetupState._elements;\r\n const {\r\n _horizontal,\r\n _vertical,\r\n _scrollbarsAddRemoveClass: scrollbarsAddRemoveClass,\r\n _refreshScrollbarsHandleLength,\r\n _refreshScrollbarsHandleOffset,\r\n } = elements;\r\n const { _handleStyle: styleHorizontal } = _horizontal;\r\n const { _handleStyle: styleVertical } = _vertical;\r\n const styleScrollbarPosition = (structure: ScrollbarStructure) => {\r\n const { _scrollbar } = structure;\r\n const elm = _viewportIsTarget && !_isBody && parent(_scrollbar) === _viewport && _scrollbar;\r\n return [\r\n elm,\r\n {\r\n transform: elm\r\n ? `translate(${scrollLeft(_scrollOffsetElement)}px, ${scrollTop(_scrollOffsetElement)}px)`\r\n : '',\r\n },\r\n ] as [HTMLElement | false, StyleObject];\r\n };\r\n const manageScrollbarsAutoHide = (removeAutoHide: boolean, delayless?: boolean) => {\r\n clearAutoTimeout();\r\n if (removeAutoHide) {\r\n scrollbarsAddRemoveClass(classNamesScrollbarAutoHidden);\r\n } else {\r\n const hide = () => scrollbarsAddRemoveClass(classNamesScrollbarAutoHidden, true);\r\n if (globalAutoHideDelay > 0 && !delayless) {\r\n auotHideTimeout(hide);\r\n } else {\r\n hide();\r\n }\r\n }\r\n };\r\n const onHostMouseEnter = () => {\r\n mouseInHost = autoHideIsLeave;\r\n mouseInHost && manageScrollbarsAutoHide(true);\r\n };\r\n\r\n const destroyFns: (() => void)[] = [\r\n clearScrollTimeout,\r\n clearAutoTimeout,\r\n clearAutoHideTimeout,\r\n cancelScrollAnimationFrame,\r\n cancelMouseMoveAnimationFrame,\r\n destroyElements,\r\n\r\n on(_host, 'pointerover', onHostMouseEnter, { _once: true }),\r\n on(_host, 'pointerenter', onHostMouseEnter),\r\n on(_host, 'pointerleave', () => {\r\n mouseInHost = false;\r\n autoHideIsLeave && manageScrollbarsAutoHide(false);\r\n }),\r\n on(_host, 'pointermove', () => {\r\n autoHideIsMove &&\r\n requestMouseMoveAnimationFrame(() => {\r\n clearScrollTimeout();\r\n manageScrollbarsAutoHide(true);\r\n auotHideMoveTimeout(() => {\r\n autoHideIsMove && manageScrollbarsAutoHide(false);\r\n });\r\n });\r\n }),\r\n on(_scrollEventElement, 'scroll', () => {\r\n requestScrollAnimationFrame(() => {\r\n _refreshScrollbarsHandleOffset(structureSetupState());\r\n\r\n autoHideNotNever && manageScrollbarsAutoHide(true);\r\n scrollTimeout(() => {\r\n autoHideNotNever && !mouseInHost && manageScrollbarsAutoHide(false);\r\n });\r\n });\r\n\r\n _viewportIsTarget && styleHorizontal(styleScrollbarPosition);\r\n _viewportIsTarget && styleVertical(styleScrollbarPosition);\r\n }),\r\n ];\r\n const scrollbarsSetupState = getState.bind(0) as (() => ScrollbarsSetupState) &\r\n ScrollbarsSetupStaticState;\r\n scrollbarsSetupState._elements = elements;\r\n scrollbarsSetupState._appendElements = appendElements;\r\n\r\n return [\r\n (changedOptions, force, structureUpdateHints) => {\r\n const {\r\n _overflowEdgeChanged,\r\n _overflowAmountChanged,\r\n _overflowStyleChanged,\r\n _directionChanged,\r\n } = structureUpdateHints;\r\n const checkOption = createOptionCheck(options, changedOptions, force);\r\n const currStructureSetupState = structureSetupState();\r\n const { _overflowAmount, _overflowStyle, _directionIsRTL } = currStructureSetupState;\r\n const [theme, themeChanged] = checkOption('scrollbars.theme');\r\n const [visibility, visibilityChanged] =\r\n checkOption('scrollbars.visibility');\r\n const [autoHide, autoHideChanged] =\r\n checkOption('scrollbars.autoHide');\r\n const [autoHideDelay] = checkOption('scrollbars.autoHideDelay');\r\n const [dragScroll, dragScrollChanged] = checkOption('scrollbars.dragScroll');\r\n const [clickScroll, clickScrollChanged] = checkOption('scrollbars.clickScroll');\r\n\r\n const updateHandle = _overflowEdgeChanged || _overflowAmountChanged || _directionChanged;\r\n const updateVisibility = _overflowStyleChanged || visibilityChanged;\r\n\r\n const setScrollbarVisibility = (overflowStyle: OverflowStyle, isHorizontal: boolean) => {\r\n const isVisible =\r\n visibility === 'visible' || (visibility === 'auto' && overflowStyle === 'scroll');\r\n scrollbarsAddRemoveClass(classNamesScrollbarVisible, isVisible, isHorizontal);\r\n return isVisible;\r\n };\r\n\r\n globalAutoHideDelay = autoHideDelay;\r\n\r\n if (themeChanged) {\r\n scrollbarsAddRemoveClass(prevTheme);\r\n scrollbarsAddRemoveClass(theme, true);\r\n\r\n prevTheme = theme;\r\n }\r\n if (autoHideChanged) {\r\n autoHideIsMove = autoHide === 'move';\r\n autoHideIsLeave = autoHide === 'leave';\r\n autoHideNotNever = autoHide !== 'never';\r\n manageScrollbarsAutoHide(!autoHideNotNever, true);\r\n }\r\n if (dragScrollChanged) {\r\n scrollbarsAddRemoveClass(classNamesScrollbarHandleInteractive, dragScroll);\r\n }\r\n if (clickScrollChanged) {\r\n scrollbarsAddRemoveClass(classNamesScrollbarTrackInteractive, clickScroll);\r\n }\r\n if (updateVisibility) {\r\n const xVisible = setScrollbarVisibility(_overflowStyle.x, true);\r\n const yVisible = setScrollbarVisibility(_overflowStyle.y, false);\r\n const hasCorner = xVisible && yVisible;\r\n\r\n scrollbarsAddRemoveClass(classNamesScrollbarCornerless, !hasCorner);\r\n }\r\n if (updateHandle) {\r\n _refreshScrollbarsHandleLength(currStructureSetupState);\r\n _refreshScrollbarsHandleOffset(currStructureSetupState);\r\n\r\n scrollbarsAddRemoveClass(classNamesScrollbarUnusable, !_overflowAmount.x, true);\r\n scrollbarsAddRemoveClass(classNamesScrollbarUnusable, !_overflowAmount.y, false);\r\n scrollbarsAddRemoveClass(classNameScrollbarRtl, _directionIsRTL && !_isBody);\r\n }\r\n },\r\n scrollbarsSetupState,\r\n runEachAndClear.bind(0, destroyFns),\r\n ];\r\n};\r\n","import { OverlayScrollbars } from 'overlayscrollbars';\r\n\r\nconst targets: Set = new Set();\r\nconst targetInstanceMap: WeakMap = new WeakMap();\r\n\r\n/**\r\n * Adds the given OverlayScrollbars instance to the given element.\r\n * @param target The element which is the target of the OverlayScrollbars instance.\r\n * @param osInstance The OverlayScrollbars instance.\r\n */\r\nexport const addInstance = (target: Element, osInstance: OverlayScrollbars): void => {\r\n targetInstanceMap.set(target, osInstance);\r\n targets.add(target);\r\n};\r\n\r\n/**\r\n * Removes a OverlayScrollbars instance from the given element.\r\n * @param target The element from which its OverlayScrollbars instance shall be removed.\r\n */\r\nexport const removeInstance = (target: Element): void => {\r\n targetInstanceMap.delete(target);\r\n targets.delete(target);\r\n};\r\n\r\n/**\r\n * Gets the OverlayScrollbars from the given element or undefined if it doesn't have one.\r\n * @param target The element of which its OverlayScrollbars instance shall be get.\r\n */\r\nexport const getInstance = (target: Element): OverlayScrollbars | undefined =>\r\n targetInstanceMap.get(target);\r\n\r\n/**\r\n * Gets a Map which represents all active OverayScrollbars instances.\r\n * The Key is the element and the value is the instance.\r\n */\r\nexport const allInstances = (): ReadonlyMap => {\r\n const validTargetInstanceMap: Map = new Map();\r\n\r\n targets.forEach((target: Element) => {\r\n /* istanbul ignore else */\r\n if (targetInstanceMap.has(target)) {\r\n validTargetInstanceMap.set(target, targetInstanceMap.get(target)!);\r\n }\r\n });\r\n\r\n targets.clear();\r\n\r\n validTargetInstanceMap.forEach((instance: OverlayScrollbars, validTarget: Element) => {\r\n targets.add(validTarget);\r\n });\r\n\r\n return validTargetInstanceMap;\r\n};\r\n","import {\r\n assignDeep,\r\n isEmptyObject,\r\n each,\r\n isFunction,\r\n keys,\r\n isHTMLElement,\r\n XY,\r\n TRBL,\r\n createEventListenerHub,\r\n} from 'support';\r\nimport { createStructureSetup, createScrollbarsSetup } from 'setups';\r\nimport { getOptionsDiff, Options, ReadonlyOptions } from 'options';\r\nimport { getEnvironment } from 'environment';\r\nimport {\r\n getPlugins,\r\n addPlugin,\r\n optionsValidationPluginName,\r\n Plugin,\r\n OptionsValidationPluginInstance,\r\n} from 'plugins';\r\nimport { addInstance, getInstance, removeInstance } from 'instances';\r\nimport type { DeepPartial, OverflowStyle } from 'typings';\r\nimport { InitializationTarget, Initialization, cancelInitialization } from 'initialization';\r\nimport type {\r\n InitialEventListeners as GeneralInitialEventListeners,\r\n EventListener as GeneralEventListener,\r\n} from 'support/eventListeners';\r\n\r\nexport interface OverlayScrollbarsStatic {\r\n (\r\n target: InitializationTarget,\r\n options?: DeepPartial,\r\n eventListeners?: GeneralInitialEventListeners\r\n ): OverlayScrollbars;\r\n\r\n plugin(plugin: Plugin | Plugin[]): void;\r\n env(): Environment;\r\n}\r\n\r\nexport interface Environment {\r\n scrollbarsSize: XY;\r\n scrollbarsOverlaid: XY;\r\n scrollbarsHiding: boolean;\r\n rtlScrollBehavior: { n: boolean; i: boolean };\r\n flexboxGlue: boolean;\r\n cssCustomProperties: boolean;\r\n staticDefaultInitialization: Initialization;\r\n staticDefaultOptions: Options;\r\n\r\n getDefaultInitialization(): Initialization;\r\n setDefaultInitialization(newDefaultInitialization: DeepPartial): void;\r\n getDefaultOptions(): Options;\r\n setDefaultOptions(newDefaultOptions: DeepPartial): void;\r\n}\r\n\r\nexport interface State {\r\n padding: TRBL;\r\n paddingAbsolute: boolean;\r\n overflowEdge: XY;\r\n overflowAmount: XY;\r\n overflowStyle: XY;\r\n hasOverflow: XY;\r\n directionRTL: boolean;\r\n destroyed: boolean;\r\n}\r\n\r\nexport interface Elements {\r\n target: HTMLElement;\r\n host: HTMLElement;\r\n padding: HTMLElement;\r\n viewport: HTMLElement;\r\n content: HTMLElement;\r\n}\r\n\r\nexport interface OnUpdatedEventListenerArgs {\r\n updateHints: {\r\n sizeChanged: boolean;\r\n directionChanged: boolean;\r\n heightIntrinsicChanged: boolean;\r\n overflowEdgeChanged: boolean;\r\n overflowAmountChanged: boolean;\r\n overflowStyleChanged: boolean;\r\n hostMutation: boolean;\r\n contentMutation: boolean;\r\n };\r\n changedOptions: DeepPartial;\r\n force: boolean;\r\n}\r\n\r\nexport type EventListenerMap = {\r\n /**\r\n * Triggered after all elements are initialized and appended.\r\n */\r\n initialized: [instance: OverlayScrollbars];\r\n /**\r\n * Triggered after an update.\r\n */\r\n updated: [instance: OverlayScrollbars, onUpdatedArgs: OnUpdatedEventListenerArgs];\r\n /**\r\n * Triggered after all elements, observers and events are destroyed.\r\n */\r\n destroyed: [instance: OverlayScrollbars, canceled: boolean];\r\n};\r\n\r\nexport type InitialEventListeners = GeneralInitialEventListeners;\r\n\r\nexport type EventListener = GeneralEventListener<\r\n EventListenerMap,\r\n Name\r\n>;\r\n\r\nexport interface OverlayScrollbars {\r\n options(): Options;\r\n options(newOptions?: DeepPartial): Options;\r\n\r\n update(force?: boolean): OverlayScrollbars;\r\n\r\n destroy(): void;\r\n\r\n state(): State;\r\n\r\n elements(): Elements;\r\n\r\n on(name: Name, listener: EventListener): () => void;\r\n on(name: Name, listener: EventListener[]): () => void;\r\n\r\n off(name: Name, listener: EventListener): void;\r\n off(name: Name, listener: EventListener[]): void;\r\n}\r\n\r\n/**\r\n * Notes:\r\n * Height intrinsic detection use \"content: true\" init strategy - or open ticket for custom height intrinsic observer\r\n */\r\n\r\nexport const OverlayScrollbars: OverlayScrollbarsStatic = (\r\n target,\r\n options?,\r\n eventListeners?\r\n): OverlayScrollbars => {\r\n let destroyed = false;\r\n const { _getDefaultOptions, _addListener: addEnvListener } = getEnvironment();\r\n const plugins = getPlugins();\r\n const targetIsElement = isHTMLElement(target);\r\n const instanceTarget = targetIsElement ? target : target.target;\r\n const potentialInstance = getInstance(instanceTarget);\r\n if (potentialInstance) {\r\n return potentialInstance;\r\n }\r\n\r\n const optionsValidationPlugin = plugins[\r\n optionsValidationPluginName\r\n ] as OptionsValidationPluginInstance;\r\n const validateOptions = (newOptions?: DeepPartial) => {\r\n const opts = newOptions || {};\r\n const validate = optionsValidationPlugin && optionsValidationPlugin._;\r\n return validate ? validate(opts, true) : opts;\r\n };\r\n const currentOptions: ReadonlyOptions = assignDeep(\r\n {},\r\n _getDefaultOptions(),\r\n validateOptions(options)\r\n );\r\n const [addEvent, removeEvent, triggerEvent] = createEventListenerHub(eventListeners);\r\n const [updateStructure, structureState, destroyStructure] = createStructureSetup(\r\n target,\r\n currentOptions\r\n );\r\n const [updateScrollbars, scrollbarsState, destroyScrollbars] = createScrollbarsSetup(\r\n target,\r\n currentOptions,\r\n structureState\r\n );\r\n const update = (changedOptions: DeepPartial, force?: boolean) => {\r\n updateStructure(changedOptions, !!force);\r\n };\r\n const removeEnvListener = addEnvListener(update.bind(0, {}, true));\r\n const destroy = (canceled?: boolean) => {\r\n removeInstance(instanceTarget);\r\n removeEnvListener();\r\n\r\n destroyScrollbars();\r\n destroyStructure();\r\n\r\n destroyed = true;\r\n\r\n // eslint-disable-next-line no-use-before-define\r\n triggerEvent('destroyed', [instance, !!canceled]);\r\n removeEvent();\r\n };\r\n\r\n const instance: OverlayScrollbars = {\r\n options(newOptions?: DeepPartial) {\r\n if (newOptions) {\r\n const changedOptions = getOptionsDiff(currentOptions, validateOptions(newOptions));\r\n\r\n if (!isEmptyObject(changedOptions)) {\r\n assignDeep(currentOptions, changedOptions);\r\n update(changedOptions);\r\n }\r\n }\r\n return assignDeep({}, currentOptions);\r\n },\r\n on: addEvent,\r\n off: (name, listener) => {\r\n name && listener && removeEvent(name, listener as any);\r\n },\r\n state() {\r\n const {\r\n _overflowEdge,\r\n _overflowAmount,\r\n _overflowStyle,\r\n _hasOverflow,\r\n _padding,\r\n _paddingAbsolute,\r\n _directionIsRTL,\r\n } = structureState();\r\n return assignDeep(\r\n {},\r\n {\r\n overflowEdge: _overflowEdge,\r\n overflowAmount: _overflowAmount,\r\n overflowStyle: _overflowStyle,\r\n hasOverflow: _hasOverflow,\r\n padding: _padding,\r\n paddingAbsolute: _paddingAbsolute,\r\n directionRTL: _directionIsRTL,\r\n destroyed,\r\n }\r\n );\r\n },\r\n elements() {\r\n const { _target, _host, _padding, _viewport, _content } = structureState._elements;\r\n return assignDeep(\r\n {},\r\n {\r\n target: _target,\r\n host: _host,\r\n padding: _padding || _viewport,\r\n viewport: _viewport,\r\n content: _content || _viewport,\r\n }\r\n );\r\n },\r\n update(force?: boolean) {\r\n update({}, force);\r\n return instance;\r\n },\r\n destroy: destroy.bind(0),\r\n };\r\n\r\n structureState._addOnUpdatedListener((updateHints, changedOptions, force: boolean) => {\r\n updateScrollbars(changedOptions, force, updateHints);\r\n });\r\n\r\n each(keys(plugins), (pluginName) => {\r\n const pluginInstance = plugins[pluginName];\r\n if (isFunction(pluginInstance)) {\r\n pluginInstance(OverlayScrollbars, instance);\r\n }\r\n });\r\n\r\n if (cancelInitialization(!targetIsElement && target.cancel, structureState._elements)) {\r\n destroy(true);\r\n return instance;\r\n }\r\n\r\n structureState._appendElements();\r\n scrollbarsState._appendElements();\r\n\r\n addInstance(instanceTarget, instance);\r\n triggerEvent('initialized', [instance]);\r\n\r\n structureState._addOnUpdatedListener((updateHints, changedOptions, force) => {\r\n const {\r\n _sizeChanged,\r\n _directionChanged,\r\n _heightIntrinsicChanged,\r\n _overflowEdgeChanged,\r\n _overflowAmountChanged,\r\n _overflowStyleChanged,\r\n _contentMutation,\r\n _hostMutation,\r\n } = updateHints;\r\n\r\n triggerEvent('updated', [\r\n instance,\r\n {\r\n updateHints: {\r\n sizeChanged: _sizeChanged,\r\n directionChanged: _directionChanged,\r\n heightIntrinsicChanged: _heightIntrinsicChanged,\r\n overflowEdgeChanged: _overflowEdgeChanged,\r\n overflowAmountChanged: _overflowAmountChanged,\r\n overflowStyleChanged: _overflowStyleChanged,\r\n contentMutation: _contentMutation,\r\n hostMutation: _hostMutation,\r\n },\r\n changedOptions,\r\n force,\r\n },\r\n ]);\r\n });\r\n\r\n return instance.update(true);\r\n};\r\n\r\nOverlayScrollbars.plugin = addPlugin;\r\nOverlayScrollbars.env = () => {\r\n const {\r\n _nativeScrollbarsSize,\r\n _nativeScrollbarsOverlaid,\r\n _nativeScrollbarsHiding,\r\n _rtlScrollBehavior,\r\n _flexboxGlue,\r\n _cssCustomProperties,\r\n _staticDefaultInitialization,\r\n _staticDefaultOptions,\r\n _getDefaultInitialization,\r\n _setDefaultInitialization,\r\n _getDefaultOptions,\r\n _setDefaultOptions,\r\n } = getEnvironment();\r\n return assignDeep(\r\n {},\r\n {\r\n scrollbarsSize: _nativeScrollbarsSize,\r\n scrollbarsOverlaid: _nativeScrollbarsOverlaid,\r\n scrollbarsHiding: _nativeScrollbarsHiding,\r\n rtlScrollBehavior: _rtlScrollBehavior,\r\n flexboxGlue: _flexboxGlue,\r\n cssCustomProperties: _cssCustomProperties,\r\n staticDefaultInitialization: _staticDefaultInitialization,\r\n staticDefaultOptions: _staticDefaultOptions,\r\n\r\n getDefaultInitialization: _getDefaultInitialization,\r\n setDefaultInitialization: _setDefaultInitialization,\r\n getDefaultOptions: _getDefaultOptions,\r\n setDefaultOptions: _setDefaultOptions,\r\n }\r\n );\r\n};\r\n"],"names":["each","source","callback","isArrayLike","i","length","Object","keys","key","style","elm","styles","getSingleStyle","isString","getStyles","isArray","getStylesResult","computedStyle","window","getComputedStyle","getCSSVal","reduce","result","setCSSVal","createCache","options","update","_initialValue","_equal","_alwaysUpdateValues","_value","_previous","cacheUpdateContextual","newValue","force","curr","newVal","changed","cacheUpdateIsolated","getCurrentCache","ElementNodeType","Node","ELEMENT_NODE","prototype","toString","hasOwnProperty","isUndefined","obj","undefined","isNull","type","call","replace","toLowerCase","isNumber","isBoolean","isFunction","Array","isObject","lengthCorrectFormat","isPlainObject","cstr","ctor","ctorProto","hasOwnConstructor","hasIsPrototypeOf","isHTMLElement","instanceofObj","HTMLElement","nodeType","isElement","Element","indexOf","arr","item","fromIndex","push","array","items","arrayIsSingleItem","apply","from","original","Set","forEach","value","isEmptyArray","runEachAndClear","args","keep","runFn","fn","prop","assignDeep","target","object1","object2","object3","object4","object5","object6","sources","copy","copyIsArray","src","clone","isEmptyObject","name","getSetProp","topLeft","fallback","attr","attrName","getAttribute","setAttribute","attrClass","add","currValues","currValuesSet","split","join","trim","hasAttrClass","has","removeAttr","removeAttribute","scrollLeft","scrollTop","elmPrototype","find","selector","rootElm","document","querySelectorAll","findFirst","querySelector","is","matches","msMatchesSelector","contents","childNodes","parent","parentElement","closest","closestFn","liesBetween","highBoundarySelector","deepBoundarySelector","closestHighBoundaryElm","closestDeepBoundaryElm","before","parentElm","preferredAnchor","insertedElms","anchor","fragment","createDocumentFragment","insertedElm","previousSibling","appendChild","firstChild","nextSibling","insertBefore","appendChildren","node","children","insertedNodes","insertAfter","removeElements","nodes","e","removeChild","createDiv","classNames","div","createElement","createDOM","html","createdDiv","innerHTML","firstLetterToUpper","str","charAt","toUpperCase","slice","getDummyStyle","cssPrefixes","jsPrefixes","jsCache","cssCache","cssProperty","uppercasedName","elmStyle","prefix","prefixWithoutDashes","resultPossibilities","resultPossibility","jsAPI","MutationObserverConstructor","IntersectionObserverConstructor","ResizeObserverConstructor","cAF","rAF","setT","setTimeout","clearT","clearTimeout","rnothtmlwhite","classListAction","className","action","classList","clazz","classes","match","hasClass","contains","removeClass","remove","addClass","bind","equal","a","b","props","propMutation","compareA","compareB","equalWH","equalXY","equalTRBL","equalBCRWH","round","Math","noop","debounce","functionToDebounce","maxTimeoutId","prevArguments","latestArguments","clear","_timeout","_maxDelay","_mergeParams","invokeFunctionToDebounce","this","mergeParms","flush","debouncedFn","arguments","finalTimeout","hasTimeout","finalMaxWait","hasMaxWait","setTimeoutFn","clearTimeoutFn","mergeParamsResult","invokedArgs","boundInvoke","timeoutId","_flush","cssNumber","opacity","zindex","parseToZeroOrNumber","toFloat","num","parseFloat","parseInt","adaptCSSVal","val","getPropertyValue","setProperty","directionIsRTL","topRightBottomLeft","propertyPrefix","propertySuffix","finalPrefix","finalSuffix","top","right","bottom","left","t","r","l","zeroObj","w","h","windowSize","innerWidth","innerHeight","offsetSize","offsetWidth","offsetHeight","clientSize","clientWidth","clientHeight","scrollSize","scrollWidth","scrollHeight","fractionalSize","cssHeight","cssWidth","getBoundingClientRect","passiveEventsSupport","supportPassiveEvents","addEventListener","defineProperty","get","splitEventNames","eventNames","off","listener","capture","eventName","removeEventListener","on","_ref","doSupportPassiveEvents","passive","_passive","_capture","once","_once","offListeners","nativeOptions","finalListener","evt","stopPropagation","preventDefault","x","y","absoluteCoordinates","rect","pageYOffset","pageXOffset","manageListener","createEventListenerHub","initialEventListeners","events","Map","removeEvent","eventSet","currListener","addEvent","set","triggerEvent","event","initialListenerKeys","getPropByPath","path","o","createOptionCheck","changedOptions","createState","initialState","state","newState","classNameEnvironment","classNameEnvironmentFlexboxGlue","classNameEnvironmentFlexboxGlueMax","dataAttributeHost","dataAttributeHostOverflowX","dataAttributeHostOverflowY","dataValueHostOverflowVisible","dataValueHostScrollbarHidden","dataValueHostUpdating","classNamePadding","classNameViewport","classNameViewportArrange","classNameContent","classNameViewportScrollbarHidden","classNameOverflowVisible","classNameSizeObserver","classNameSizeObserverAppear","classNameSizeObserverListener","classNameSizeObserverListenerScroll","classNameSizeObserverListenerItem","classNameSizeObserverListenerItemFinal","classNameTrinsicObserver","classNameScrollbar","classNameScrollbarRtl","classNameScrollbarHorizontal","classNameScrollbarVertical","classNameScrollbarTrack","classNameScrollbarHandle","classNamesScrollbarVisible","classNamesScrollbarCornerless","classNamesScrollbarTransitionless","classNamesScrollbarInteraction","classNamesScrollbarUnusable","classNamesScrollbarAutoHidden","classNamesScrollbarTrackInteractive","classNamesScrollbarHandleInteractive","opsStringify","JSON","stringify","_","Error","defaultOptions","paddingAbsolute","showNativeOverlaidScrollbars","updating","elementEvents","attributes","ignoreMutation","overflow","scrollbars","theme","visibility","autoHide","autoHideDelay","dragScroll","clickScroll","pointers","getOptionsDiff","currOptions","newOptions","diff","optionsKeys","concat","optionKey","currOptionValue","newOptionValue","isDiff","pluginRegistry","getPlugins","addPlugin","addedPlugin","plugin","pluginName","_extends","module","assign","exports","__esModule","optionsTemplateTypes","boolean","number","string","object","function","null","validateRecursive","template","doWriteErrors","propPath","validatedOptions","optionsCopy","filter","optionsValue","templateValue","templateIsComplex","propPrefix","validated","_validateRecursive","foreign","isValid","errorEnumStrings","errorPossibleTypes","optionsValueType","templateValueArr","currTemplateType","typeString","isEnumString","enumStringSplit","possibility","console","warn","validateOptions","numberAllowedValues","oTypes","booleanAllowedValues","arrayNullValues","overflowAllowedValues","scrollbarsVisibilityAllowedValues","scrollbarsAutoHideAllowedValues","optionsTemplate","optionsValidationPluginName","_validateOptions","_optionsValidationPlu","scrollAmount","scrollEventName","sizeObserverPluginName","sizeObserverPlugin","listenerElement","onSizeChangedCallback","observeAppearChange","observerElementChildren","observerElementChildrenRoot","shrinkElement","lastChild","expandElement","expandElementChild","cacheSize","currSize","isDirty","rAFId","reset","onResized","appear","onScroll","scrollEvent","width","height","_sizeObserverPlugin","contentArrangeCounter","abs","getWindowDPR","dDPI","screen","deviceXDPI","sDPI","logicalXDPI","devicePixelRatio","diffBiggerThanOne","valOne","valTwo","absValOne","absValTwo","scrollbarsHidingPluginName","scrollbarsHidingPlugin","_createUniqueViewportArrangeElement","env","_nativeScrollbarsHiding","_nativeScrollbarsOverlaid","_cssCustomProperties","create","_overflowUpdateSegment","doViewportArrange","flexboxGlue","viewport","viewportArrange","getState","getViewportOverflowState","hideNativeScrollbars","arrangeViewport","viewportOverflowState","viewportScrollSize","sizeFraction","_getState","_viewportPaddingStyle","_scrollbarsHideOffset","_scrollbarsHideOffsetArrange","arrangeX","arrangeY","hideOffsetX","hideOffsetY","viewportArrangeHorizontalPaddingKey","viewportArrangeHorizontalPaddingValue","viewportArrangeVerticalPaddingValue","paddingTop","fractionalContentWidth","fractionalContenHeight","arrangeSize","sheet","cssRules","insertRule","ruleStyle","undoViewportArrange","finalViewportOverflowState","_getState2","viewportPaddingStyle","finalPaddingStyle","assignProps","prevStyle","_envWindowZoom","size","dpr","envInstance","updateNativeScrollbarSizeCache","sizeNew","deltaSize","deltaAbsSize","deltaAbsRatio","dprNew","deltaIsBigger","difference","dprChanged","isZoom","_updateNativeScrollba","scrollbarSize","scrollbarSizeChanged","_nativeScrollbarsSize","_scrollbarsHidingPlug","environmentInstance","getNativeScrollbarSize","body","measureElm","measureElmChild","cSize","oSize","fSize","getNativeScrollbarsHiding","testElm","revertClass","ex","getRtlScrollBehavior","childElm","strHidden","overflowX","overflowY","direction","parentOffset","childOffset","childOffsetAfterScroll","n","getFlexboxGlue","revertFbxGlue","minOffsetsizeParent","minOffsetsize","supportsMin","revertFbxGlueMax","maxOffsetsizeParent","maxOffsetsize","supportsMax","createEnvironment","_document","envDOM","envElm","envChildElm","_createEventListenerH","_createCache","getNativeScrollbarSizeCache","_getNativeScrollbarSi","nativeScrollbarsSize","nativeScrollbarsHiding","nativeScrollbarsOverlaid","staticDefaultInitialization","host","padding","ownerDocument","content","scrollbarsSlot","cancel","staticDefaultOptions","_rtlScrollBehavior","_flexboxGlue","_addListener","_getDefaultInitialization","_setDefaultInitialization","newInitializationStrategy","_getDefaultOptions","_setDefaultOptions","newDefaultOptions","_staticDefaultInitialization","_staticDefaultOptions","resizeFn","getEnvironment","resolveInitialization","staticInitializationElement","fallbackStaticInitializationElement","defaultStaticInitializationElementStrategy","staticInitializationElementValue","staticInitialization","resolvedInitialization","dynamicInitializationElement","fallbackDynamicInitializationElement","defaultDynamicInitializationElementStrategy","dynamicInitializationElementValue","dynamicInitialization","cancelInitialization","cancelInitializationValue","structureSetupElements","_isBody","_viewportIsTarget","_getEnvironment","defaultNativeScrollbarsOverlaid","defaultbody","resolvedNativeScrollbarsOverlaid","resolvedDocumentScrollingElement","finalNativeScrollbarsOverlaid","finalDocumentScrollingElement","createNewDiv","unwrap","addDataAttrHost","createStructureSetupElements","createUniqueViewportArrangeElement","_getDefaultInitializa","defaultHostInitialization","defaultViewportInitialization","defaultPaddingInitialization","defaultContentInitialization","targetIsElm","targetStructureInitialization","hostInitialization","paddingInitialization","viewportInitialization","contentInitialization","targetElement","isTextarea","isBody","wnd","defaultView","generalStaticInitializationElement","generalDynamicInitializationElement","viewportElement","viewportIsTarget","evaluatedTargetObj","_target","_host","_viewport","_padding","_content","_viewportArrange","_scrollOffsetElement","documentElement","_scrollEventElement","_windowElm","_documentElm","_isTextarea","_targetIsElm","_viewportHasClass","attributeClassName","_viewportAddRemoveClass","generatedElements","elementIsGenerated","destroyFns","isTextareaHostGenerated","targetContents","contentSlot","appendElements","removeHostDataAttr","removePaddingClass","removeViewportClass","removeContentClass","removeHtmlClass","createTrinsicUpdateSegment","updateHints","_heightIntrinsic","_heightIntrinsicChanged","heightIntrinsicChanged","_sizeChanged","_contentMutation","createPaddingUpdateSegment","setState","_isSingleElm","updatePaddingCache","currentPaddingCache","checkOption","_currentPaddingCache","paddingChanged","_nativeScrollbarStyling","_directionIsRTL","_directionChanged","_checkOption","paddingAbsoluteChanged","contentMutation","_updatePaddingCache","paddingStyleChanged","paddingRelative","paddingHorizontal","paddingVertical","paddingStyle","marginRight","marginBottom","marginLeft","viewportStyle","paddingRight","paddingBottom","paddingLeft","_paddingAbsolute","_paddingStyleChanged","max","max0","strVisible","overlaidScrollbarsHideOffset","whCacheOptions","xyCacheOptions","getOverflowAmount","viewportClientSize","tollerance","amount","conditionalClass","overflowIsVisible","overflowBehavior","createOverflowUpdateSegment","updateSizeFraction","getCurrentSizeFraction","_createCache2","updateViewportScrollSizeCache","getCurrentViewportScrollSizeCache","updateOverflowAmountCache","_createCache3","getCurrentOverflowAmountCache","updateOverflowEdge","_createCache4","getCurrentOverflowEdgeCache","updateOverflowStyleCache","_createCache5","fixFlexboxGlue","heightIntrinsic","_overflowScroll","hostClientSize","isContentBox","subtractXScrollbar","viewportStyleObj","arrangeHideOffset","getStatePerAxis","styleKey","isOverlaid","nativeScrollbarSize","overflowStyle","objectPrefferedOverflowStyle","overflowScroll","nonScrollbarStylingHideOffset","scrollbarsHideOffset","scrollbarsHideOffsetArrange","xOverflowStyle","_getStatePerAxis","xOverflowScroll","xScrollbarsHideOffset","xScrollbarsHideOffsetArrange","yOverflowStyle","_getStatePerAxis2","yOverflowScroll","yScrollbarsHideOffset","yScrollbarsHideOffsetArrange","_overflowStyle","setViewportOverflowState","hasOverflow","overflowOption","setAxisOverflowStyle","behavior","hasOverflowAxis","overflowVisible","overflowVisibleBehavior","_setAxisOverflowStyle","visibleBehaviorX","_setAxisOverflowStyle2","visibleBehaviorY","horizontalMarginKey","viewportHorizontalPaddingKey","horizontalMarginValue","verticalMarginValue","horizontalPaddingValue","verticalPaddingValue","_hostMutation","_getState3","showNativeOverlaidScrollbarsOption","showNativeOverlaidScrollbarsChanged","_checkOption2","overflowChanged","adjustFlexboxGlue","overflowXVisible","overflowYVisible","sizeFractionCache","viewportScrollSizeCache","overflowAmuntCache","overflowEdgeCache","preMeasureViewportOverflowState","_undoViewportArrange","redoViewportArrange","undoViewportArrangeOverflowState","_sizeFractionCache","sizeFractionChanged","_viewportScrollSizeCa","viewportScrollSizeChanged","viewportclientSize","arrangedViewportScrollSize","arrangedViewportClientSize","overflowAmountScrollSize","overflowAmountClientSize","_overflowEdgeCache","overflowEdge","overflowEdgeChanged","_overflowAmuntCache","overflowAmount","overflowAmountChanged","_viewportScrollSizeCa2","_sizeFractionCache2","removeClipping","viewportArranged","_updateOverflowStyleC","overflowStyleChanged","_overflowEdge","_overflowAmount","_hasOverflow","_overflowStyleChanged","_overflowEdgeChanged","_overflowAmountChanged","prepareUpdateHints","leading","adaptive","finalAdaptive","objKeys","leadingValue","adaptiveValue","createStructureSetupUpdate","updateSegments","initialUpdateHints","adjustScrollOffset","scrollOffsetX","scrollOffsetY","adaptivedUpdateHints","updateSegment","domRectHasDimensions","createSizeObserver","_ref$_direction","_direction","observeDirectionChange","_ref$_appear","_appear","rtlScrollBehavior","baseElements","sizeObserver","getIsDirectionRTL","currVal","updateResizeObserverContentRectCache","onSizeChangedCallbackProxy","sizeChangedContext","isResizeObserverCall","hasDirectionCache","skip","doDirectionScroll","_updateResizeObserver","pop","contentRect","currRContentRect","prevContentRect","hasDimensions","hadDimensions","rtl","_directionIsRTLCache","appearCallback","resizeObserverInstance","observe","disconnect","pluginAppearCallback","_sizeObserverPlugin$_","pluginOffListeners","updateDirectionIsRTLCache","directionIsRTLCacheValues","directionIsRTLCache","directionIsRTLCacheChanged","isHeightIntrinsic","ioEntryOrSize","isIntersecting","intersectionRatio","createTrinsicObserver","onTrinsicChangedCallback","intersectionObserverInstance","trinsicObserver","updateHeightIntrinsicCache","triggerOnTrinsicChangedCallback","updateValue","fromRecords","intersectionObserverCallback","entries","root","onSizeChanged","newSize","_createSizeObserver","destroySizeObserver","appendSizeObserver","takeRecords","createEventContentChange","eventContentChange","map","destroyed","destroy","updateElements","getElements","eventElmList","elements","entry","entryEventNames","entryOff","delete","WeakMap","createDOMObserver","isContentObserver","isConnected","_attributes","_styleChangingAttributes","_eventContentChange","_nestedTargetSelector","_ignoreTargetChange","_ignoreContentChange","debouncedEventContentChange","_createEventContentCh","destroyEventContentChange","updateEventContentChangeElements","finalAttributes","finalStyleChangingAttributes","observedAttributes","observerCallback","mutations","ignoreTargetChange","ignoreContentChange","targetChangedAttrs","totalAddedNodes","targetStyleChanged","contentChanged","childListChanged","mutation","attributeName","mutationTarget","oldValue","addedNodes","isAttributesType","isChildListType","targetIsMutationTarget","attributeValue","attributeChanged","styleChangingAttrChanged","notOnlyAttrChanged","contentAttrChanged","isNestedTarget","baseAssertion","contentFinalChanged","mutationObserver","attributeOldValue","attributeFilter","subtree","childList","characterData","records","hostSelector","viewportSelector","viewportAttrsFromTarget","baseStyleChangingAttrsTextarea","baseStyleChangingAttrs","createStructureSetupObservers","structureSetupUpdate","debounceTimeout","debounceMaxDelay","contentMutationObserver","hasOver","hasVpStyle","contentScroll","viewportScroll","fractional","updateContentSizeCache","contentMutationObserverAttr","structureSetupUpdateWithDebouncedAdaptiveUpdateHints","prev","prevObj","currObj","updateViewportAttrsFromHost","attribute","hostAttr","onTrinsicChanged","heightIntrinsicCache","updateFn","directionChanged","directionIsRTLChanged","onContentMutation","contentChangedTroughEvent","_updateContentSizeCac","contentSizeChanged","onHostMutation","_ref2","destroyTrinsicObserver","appendTrinsicObserver","updateTrinsicObserver","_ref3","_createDOMObserver","destroyHostMutationObserver","updateHostMutationObserver","viewportIsTargetResizeObserver","hostUpdateResult","trinsicUpdateResult","contentUpdateResult","attributesChanged","_checkOption3","elementEventsChanged","debounceValue","_checkOption4","debounceChanged","updateContentMutationObserver","ignoreMutationFromOptions","ignore","timeout","maxWait","initialXYNumber","initialStructureSetupUpdateState","createStructureSetup","checkOptionsFallback","_createStructureSetup","appendStructureElements","destroyElements","updateStructure","triggerUpdateEvent","truthyUpdateHints","some","destroyObservers","_createStructureSetup2","appendObserverElements","updateObservers","updateObserversOptions","structureSetupState","_addOnUpdatedListener","_appendElements","_elements","getClientOffset","clientX","clientY","getScale","element","continuePointerDown","scrollType","scrollbarOptions","button","isPrimary","pointerType","includes","createRootClickStopPropagationEvents","scrollbar","documentElm","createDragScrollingEvents","doc","scrollbarStructure","scrollOffsetElement","isHorizontal","_handle","_track","_scrollbar","scrollOffsetKey","xyKey","whKey","createOnPointerMoveHandler","mouseDownScroll","mouseDownClientOffset","mouseDownInvertedScale","_structureSetupState","movement","handleTrackDiff","scrollDeltaPercent","scrollDelta","isRTL","negateMultiplactor","pointerDownEvent","offSelectStart","offPointerMove","pointerUpEvent","releasePointerCapture","pointerId","setPointerCapture","createScrollbarsSetupEvents","scrollbarsAddRemoveClass","scrollOffsetElm","min","getScrollbarHandleLengthRatio","scrollbarHandle","scrollbarTrack","axis","viewportSize","handleSize","trackSize","getScrollbarHandleOffsetRatio","scrollLeftTop","scrollPositionMax","scrollPosition","handleRTL","rtlNormalizedScrollPosition","finalScrollPosition","scrollPercent","lengthRatio","createScrollbarsSetupElements","scrollbarsSetupEvents","defaultScrollbarsSlot","evaluatedScrollbarSlot","scrollbarStructureAddRemoveClass","scrollbarStructures","scrollbarsHandleStyle","_elmStyle","scrollbarStructureRefreshHandleLength","structure","toFixed","scrollbarStructureRefreshHandleOffset","translateAxis","offsetRatio","validOffsetRatio","transform","horizontalScrollbars","verticalScrollbars","onlyHorizontal","singleAxis","runHorizontal","runVertical","refreshScrollbarsHandleLength","refreshScrollbarsHandleOffset","generateScrollbarDOM","scrollbarClassName","arrToPush","transitionlessClass","track","handle","generateHorizontalScrollbarStructure","generateVerticalScrollbarStructure","_refreshScrollbarsHandleLength","_refreshScrollbarsHandleOffset","_scrollbarsAddRemoveClass","_horizontal","_scrollbarStructures","_clone","_handleStyle","_vertical","createSelfCancelTimeout","id","setTFn","clearTFn","createScrollbarsSetup","autoHideIsMove","autoHideIsLeave","autoHideNotNever","mouseInHost","prevTheme","globalAutoHideDelay","_createSelfCancelTime","requestMouseMoveAnimationFrame","cancelMouseMoveAnimationFrame","_createSelfCancelTime2","requestScrollAnimationFrame","cancelScrollAnimationFrame","scrollTimeout","_createSelfCancelTime3","clearScrollTimeout","auotHideMoveTimeout","_createSelfCancelTime4","clearAutoHideTimeout","_createSelfCancelTime5","auotHideTimeout","clearAutoTimeout","_createScrollbarsSetu","styleHorizontal","styleVertical","styleScrollbarPosition","manageScrollbarsAutoHide","removeAutoHide","delayless","hide","onHostMouseEnter","scrollbarsSetupState","structureUpdateHints","currStructureSetupState","themeChanged","visibilityChanged","autoHideChanged","_checkOption5","dragScrollChanged","_checkOption6","clickScrollChanged","updateHandle","updateVisibility","setScrollbarVisibility","isVisible","xVisible","yVisible","hasCorner","targets","targetInstanceMap","addInstance","osInstance","removeInstance","getInstance","OverlayScrollbars","eventListeners","addEnvListener","plugins","targetIsElement","instanceTarget","potentialInstance","optionsValidationPlugin","opts","validate","currentOptions","structureState","destroyStructure","updateScrollbars","scrollbarsState","destroyScrollbars","removeEnvListener","canceled","instance","_structureState","directionRTL","pluginInstance","sizeChanged","hostMutation","_getEnvironment2","scrollbarsSize","scrollbarsOverlaid","scrollbarsHiding","cssCustomProperties","getDefaultInitialization","setDefaultInitialization","getDefaultOptions","setDefaultOptions"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"overlayscrollbars.js","sources":["../src/support/utils/array.ts","../src/support/dom/style.ts","../src/support/cache.ts","../src/support/utils/types.ts","../src/support/utils/object.ts","../src/support/dom/attribute.ts","../src/support/dom/traversal.ts","../src/support/dom/manipulation.ts","../src/support/dom/create.ts","../src/support/compatibility/vendors.ts","../src/support/compatibility/apis.ts","../src/support/dom/class.ts","../src/support/utils/equal.ts","../src/support/utils/function.ts","../src/support/dom/dimensions.ts","../src/support/dom/events.ts","../src/support/dom/offset.ts","../src/support/eventListeners.ts","../src/setups/setups.ts","../src/classnames.ts","../src/options.ts","../src/plugins/plugins.ts","../../../node_modules/@babel/runtime/helpers/extends.js","../src/plugins/optionsValidationPlugin/validation.ts","../src/plugins/optionsValidationPlugin/optionsValidationPlugin.ts","../src/plugins/sizeObserverPlugin/sizeObserverPlugin.ts","../src/plugins/scrollbarsHidingPlugin/scrollbarsHidingPlugin.ts","../src/environment.ts","../src/initialization.ts","../src/setups/structureSetup/structureSetup.elements.ts","../src/setups/structureSetup/updateSegments/trinsicUpdateSegment.ts","../src/setups/structureSetup/updateSegments/paddingUpdateSegment.ts","../src/setups/structureSetup/updateSegments/overflowUpdateSegment.ts","../src/setups/structureSetup/structureSetup.update.ts","../src/observers/sizeObserver.ts","../src/observers/trinsicObserver.ts","../src/observers/domObserver.ts","../src/setups/structureSetup/structureSetup.observers.ts","../src/setups/structureSetup/structureSetup.ts","../src/setups/scrollbarsSetup/scrollbarsSetup.events.ts","../src/setups/scrollbarsSetup/scrollbarsSetup.calculations.ts","../src/setups/scrollbarsSetup/scrollbarsSetup.elements.ts","../src/setups/scrollbarsSetup/scrollbarsSetup.ts","../src/instances.ts","../src/overlayscrollbars.ts"],"sourcesContent":["import { isArrayLike, isString } from 'support/utils/types';\r\nimport { PlainObject } from 'typings';\r\n\r\ntype RunEachItem = ((...args: any) => any | any[]) | null | undefined;\r\n\r\n/**\r\n * Iterates through a array or object\r\n * @param arrayLikeOrObject The array or object through which shall be iterated.\r\n * @param callback The function which is responsible for the iteration.\r\n * If the function returns true its treated like a \"continue\" statement.\r\n * If the function returns false its treated like a \"break\" statement.\r\n */\r\nexport function each(\r\n array: Array | ReadonlyArray,\r\n callback: (value: T, indexOrKey: number, source: Array) => boolean | unknown\r\n): Array | ReadonlyArray;\r\nexport function each(\r\n array: Array | ReadonlyArray | false | null | undefined,\r\n callback: (value: T, indexOrKey: number, source: Array) => boolean | unknown\r\n): Array | ReadonlyArray | false | null | undefined;\r\nexport function each(\r\n arrayLikeObject: ArrayLike,\r\n callback: (value: T, indexOrKey: number, source: ArrayLike) => boolean | unknown\r\n): ArrayLike;\r\nexport function each(\r\n arrayLikeObject: ArrayLike | false | null | undefined,\r\n callback: (value: T, indexOrKey: number, source: ArrayLike) => boolean | unknown\r\n): ArrayLike | false | null | undefined;\r\nexport function each(\r\n obj: PlainObject,\r\n callback: (value: any, indexOrKey: string, source: PlainObject) => boolean | unknown\r\n): PlainObject;\r\nexport function each(\r\n obj: PlainObject | false | null | undefined,\r\n callback: (value: any, indexOrKey: string, source: PlainObject) => boolean | unknown\r\n): PlainObject | false | null | undefined;\r\nexport function each(\r\n source: Array | ArrayLike | ReadonlyArray | PlainObject | false | null | undefined,\r\n callback: (value: T, indexOrKey: any, source: any) => boolean | unknown\r\n): Array | ArrayLike | ReadonlyArray | PlainObject | false | null | undefined {\r\n if (isArrayLike(source)) {\r\n for (let i = 0; i < source.length; i++) {\r\n if (callback(source[i], i, source) === false) {\r\n break;\r\n }\r\n }\r\n } else if (source) {\r\n each(Object.keys(source), (key) => callback(source[key], key, source));\r\n }\r\n return source;\r\n}\r\n\r\n/**\r\n * Returns the index of the given inside the given array or -1 if the given item isn't part of the given array.\r\n * @param arr The array.\r\n * @param item The item.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0.\r\n */\r\nexport const indexOf = (arr: T[], item: T, fromIndex?: number): number =>\r\n arr.indexOf(item, fromIndex);\r\n\r\n/**\r\n * Pushesh all given items into the given array and returns it.\r\n * @param array The array the items shall be pushed into.\r\n * @param items The items which shall be pushed into the array.\r\n */\r\nexport const push = (array: T[], items: T | ArrayLike, arrayIsSingleItem?: boolean): T[] => {\r\n !arrayIsSingleItem && !isString(items) && isArrayLike(items)\r\n ? Array.prototype.push.apply(array, items as T[])\r\n : array.push(items as T);\r\n return array;\r\n};\r\n\r\n/**\r\n * Creates a shallow-copied Array instance from an array-like or iterable object.\r\n * @param arr The object from which the array instance shall be created.\r\n */\r\nexport const from = (arr?: ArrayLike | Set) => {\r\n const original = Array.from;\r\n const result: T[] = [];\r\n\r\n if (original && arr) {\r\n return original(arr);\r\n }\r\n\r\n if (arr instanceof Set) {\r\n arr.forEach((value) => {\r\n push(result, value);\r\n });\r\n } else {\r\n each(arr, (elm) => {\r\n push(result, elm);\r\n });\r\n }\r\n\r\n return result;\r\n};\r\n\r\n/**\r\n * Check whether the passed array is empty.\r\n * @param array The array which shall be checked.\r\n */\r\nexport const isEmptyArray = (array: any[] | null | undefined): boolean =>\r\n !!array && array.length === 0;\r\n\r\n/**\r\n * Calls all functions in the passed array/set of functions.\r\n * @param arr The array filled with function which shall be called.\r\n * @param args The args with which each function is called.\r\n * @param keep True when the Set / array should not be cleared afterwards, false otherwise.\r\n */\r\nexport const runEachAndClear = (arr: RunEachItem[], args?: any[], keep?: boolean): void => {\r\n // eslint-disable-next-line prefer-spread\r\n const runFn = (fn: RunEachItem) => fn && fn.apply(undefined, args || []);\r\n each(arr, runFn);\r\n !keep && ((arr as any[]).length = 0);\r\n};\r\n","import { each, keys } from 'support/utils';\r\nimport { isString, isNumber, isArray, isUndefined } from 'support/utils/types';\r\nimport { PlainObject, StyleObject } from 'typings';\r\n\r\nexport interface TRBL {\r\n t: number;\r\n r: number;\r\n b: number;\r\n l: number;\r\n}\r\n\r\nconst cssNumber = {\r\n // animationiterationcount: 1,\r\n // columncount: 1,\r\n // fillopacity: 1,\r\n // flexgrow: 1,\r\n // flexshrink: 1,\r\n // fontweight: 1,\r\n // lineheight: 1,\r\n // order: 1,\r\n // orphans: 1,\r\n // widows: 1,\r\n // zoom: 1,\r\n opacity: 1,\r\n zindex: 1,\r\n};\r\n\r\nconst parseToZeroOrNumber = (value: string, toFloat?: boolean): number => {\r\n /* istanbul ignore next */\r\n const num = toFloat ? parseFloat(value) : parseInt(value, 10);\r\n // num === num means num is not NaN\r\n /* istanbul ignore next */\r\n return num === num ? num : 0; // eslint-disable-line no-self-compare\r\n};\r\n\r\nconst adaptCSSVal = (prop: string, val: string | number): string | number =>\r\n !cssNumber[prop.toLowerCase()] && isNumber(val) ? `${val}px` : val;\r\n\r\nconst getCSSVal = (elm: HTMLElement, computedStyle: CSSStyleDeclaration, prop: string): string =>\r\n /* istanbul ignore next */\r\n computedStyle != null\r\n ? computedStyle[prop] || computedStyle.getPropertyValue(prop)\r\n : elm.style[prop];\r\n\r\nconst setCSSVal = (elm: HTMLElement, prop: string, val: string | number): void => {\r\n try {\r\n const { style: elmStyle } = elm;\r\n if (!isUndefined(elmStyle[prop])) {\r\n elmStyle[prop] = adaptCSSVal(prop, val);\r\n } else {\r\n elmStyle.setProperty(prop, val as string);\r\n }\r\n } catch (e) {}\r\n};\r\n\r\n/**\r\n * Gets or sets the passed styles to the passed element.\r\n * @param elm The element to which the styles shall be applied to / be read from.\r\n * @param styles The styles which shall be set or read.\r\n */\r\nexport function style(\r\n elm: HTMLElement | false | null | undefined,\r\n styles: StyleObject\r\n): void;\r\nexport function style(\r\n elm: HTMLElement | false | null | undefined,\r\n styles: string\r\n): string;\r\nexport function style(\r\n elm: HTMLElement | false | null | undefined,\r\n styles: Array | string\r\n): { [key: string]: string };\r\nexport function style(\r\n elm: HTMLElement | false | null | undefined,\r\n styles: StyleObject | Array | string\r\n): { [key: string]: string } | string | void {\r\n const getSingleStyle = isString(styles);\r\n const getStyles = isArray(styles) || getSingleStyle;\r\n\r\n if (getStyles) {\r\n let getStylesResult: string | PlainObject = getSingleStyle ? '' : {};\r\n if (elm) {\r\n const computedStyle: CSSStyleDeclaration = window.getComputedStyle(elm, null);\r\n getStylesResult = getSingleStyle\r\n ? getCSSVal(elm, computedStyle, styles as string)\r\n : (styles as Array).reduce((result, key) => {\r\n result[key] = getCSSVal(elm, computedStyle, key as string);\r\n return result;\r\n }, getStylesResult);\r\n }\r\n return getStylesResult;\r\n }\r\n elm && each(keys(styles), (key) => setCSSVal(elm, key, styles[key]));\r\n}\r\n\r\n/**\r\n * Hides the passed element (display: none).\r\n * @param elm The element which shall be hidden.\r\n */\r\nexport const hide = (elm: HTMLElement | false | null | undefined): void => {\r\n style(elm, { display: 'none' });\r\n};\r\n\r\n/**\r\n * Shows the passed element (display: block).\r\n * @param elm The element which shall be shown.\r\n */\r\nexport const show = (elm: HTMLElement | false | null | undefined): void => {\r\n style(elm, { display: 'block' });\r\n};\r\n\r\nexport const directionIsRTL = (elm: HTMLElement | false | null | undefined): boolean =>\r\n style(elm, 'direction') === 'rtl';\r\n\r\n/**\r\n * Returns the top right bottom left values of the passed css property.\r\n * @param elm The element of which the values shall be returned.\r\n * @param propertyPrefix The css property prefix. (e.g. \"border\")\r\n * @param propertySuffix The css property suffix. (e.g. \"width\")\r\n */\r\nexport const topRightBottomLeft = (\r\n elm?: HTMLElement | false | null | undefined,\r\n propertyPrefix?: string,\r\n propertySuffix?: string\r\n): TRBL => {\r\n const finalPrefix = propertyPrefix ? `${propertyPrefix}-` : '';\r\n const finalSuffix = propertySuffix ? `-${propertySuffix}` : '';\r\n const top = `${finalPrefix}top${finalSuffix}`;\r\n const right = `${finalPrefix}right${finalSuffix}`;\r\n const bottom = `${finalPrefix}bottom${finalSuffix}`;\r\n const left = `${finalPrefix}left${finalSuffix}`;\r\n const result = style(elm, [top, right, bottom, left]);\r\n return {\r\n t: parseToZeroOrNumber(result[top]),\r\n r: parseToZeroOrNumber(result[right]),\r\n b: parseToZeroOrNumber(result[bottom]),\r\n l: parseToZeroOrNumber(result[left]),\r\n };\r\n};\r\n","export interface CacheOptions {\r\n // initial value of _value.\r\n _initialValue: Value;\r\n // Custom comparison function if shallow compare isn't enough. Returns true if nothing changed.\r\n _equal?: EqualCachePropFunction;\r\n // If true always updates _value and _previous, otherwise they update only when they changed.\r\n _alwaysUpdateValues?: boolean;\r\n}\r\n\r\nexport type CacheValues = [value: T, changed: boolean, previous?: T];\r\n\r\nexport type EqualCachePropFunction = (currentVal: Value, newVal: Value) => boolean;\r\n\r\nexport type CacheUpdater = (current: Value, previous?: Value) => Value;\r\n\r\nexport type UpdateCacheContextual = (newValue: Value, force?: boolean) => CacheValues;\r\n\r\nexport type UpdateCache = (force?: boolean) => CacheValues;\r\n\r\nexport type GetCurrentCache = (force?: boolean) => CacheValues;\r\n\r\nexport type Cache = [UpdateCache, GetCurrentCache];\r\n\r\nexport type CacheContextual = [UpdateCacheContextual, GetCurrentCache];\r\n\r\ntype CreateCache = {\r\n (options: CacheOptions): CacheContextual;\r\n (options: CacheOptions, update: CacheUpdater): Cache;\r\n (options: CacheOptions, update?: CacheUpdater):\r\n | CacheContextual\r\n | Cache;\r\n};\r\n\r\nexport const createCache: CreateCache = (\r\n options: CacheOptions,\r\n update?: CacheUpdater\r\n): CacheContextual | Cache => {\r\n const { _initialValue, _equal, _alwaysUpdateValues } = options;\r\n let _value: Value = _initialValue;\r\n let _previous: Value | undefined;\r\n\r\n const cacheUpdateContextual: UpdateCacheContextual = (newValue, force?) => {\r\n const curr = _value;\r\n\r\n const newVal = newValue;\r\n const changed = force || (_equal ? !_equal(curr, newVal) : curr !== newVal);\r\n\r\n if (changed || _alwaysUpdateValues) {\r\n _value = newVal;\r\n _previous = curr;\r\n }\r\n\r\n return [_value, changed, _previous];\r\n };\r\n const cacheUpdateIsolated: UpdateCache = (force?) =>\r\n cacheUpdateContextual(update!(_value, _previous), force);\r\n\r\n const getCurrentCache: GetCurrentCache = (force?: boolean) => [\r\n _value,\r\n !!force, // changed\r\n _previous,\r\n ];\r\n\r\n return [update ? cacheUpdateIsolated : cacheUpdateContextual, getCurrentCache] as\r\n | CacheContextual\r\n | Cache;\r\n};\r\n","import { PlainObject } from 'typings';\r\n\r\nconst ElementNodeType = Node.ELEMENT_NODE;\r\nconst { toString, hasOwnProperty } = Object.prototype;\r\n\r\nexport const isUndefined = (obj: any): obj is undefined => obj === undefined;\r\n\r\nexport const isNull = (obj: any): obj is null => obj === null;\r\n\r\nexport const type = (obj: any): string =>\r\n isUndefined(obj) || isNull(obj)\r\n ? `${obj}`\r\n : toString\r\n .call(obj)\r\n .replace(/^\\[object (.+)\\]$/, '$1')\r\n .toLowerCase();\r\n\r\nexport const isNumber = (obj: any): obj is number => typeof obj === 'number';\r\n\r\nexport const isString = (obj: any): obj is string => typeof obj === 'string';\r\n\r\nexport const isBoolean = (obj: any): obj is boolean => typeof obj === 'boolean';\r\n\r\nexport const isFunction = (obj: any): obj is (...args: any[]) => any => typeof obj === 'function';\r\n\r\nexport const isArray = (obj: any): obj is Array => Array.isArray(obj);\r\n\r\nexport const isObject = (obj: any): boolean =>\r\n typeof obj === 'object' && !isArray(obj) && !isNull(obj);\r\n\r\n/**\r\n * Returns true if the given object is array like, false otherwise.\r\n * @param obj The Object\r\n */\r\nexport const isArrayLike = (obj: any): obj is ArrayLike => {\r\n const length = !!obj && obj.length;\r\n const lengthCorrectFormat = isNumber(length) && length > -1 && length % 1 == 0; // eslint-disable-line eqeqeq\r\n\r\n return isArray(obj) || (!isFunction(obj) && lengthCorrectFormat)\r\n ? length > 0 && isObject(obj)\r\n ? length - 1 in obj\r\n : true\r\n : false;\r\n};\r\n\r\n/**\r\n * Returns true if the given object is a \"plain\" (e.g. { key: value }) object, false otherwise.\r\n * @param obj The Object.\r\n */\r\nexport const isPlainObject = (obj: any): obj is PlainObject => {\r\n if (!obj || !isObject(obj) || type(obj) !== 'object') return false;\r\n\r\n let key;\r\n const cstr = 'constructor';\r\n const ctor = obj[cstr];\r\n const ctorProto = ctor && ctor.prototype;\r\n const hasOwnConstructor = hasOwnProperty.call(obj, cstr);\r\n const hasIsPrototypeOf = ctorProto && hasOwnProperty.call(ctorProto, 'isPrototypeOf');\r\n\r\n if (ctor && !hasOwnConstructor && !hasIsPrototypeOf) {\r\n return false;\r\n }\r\n\r\n /* eslint-disable no-restricted-syntax */\r\n for (key in obj) {\r\n /**/\r\n }\r\n /* eslint-enable */\r\n\r\n return isUndefined(key) || hasOwnProperty.call(obj, key);\r\n};\r\n\r\n/**\r\n * Checks whether the given object is a HTMLElement.\r\n * @param obj The object which shall be checked.\r\n */\r\nexport const isHTMLElement = (obj: any): obj is HTMLElement => {\r\n const instanceofObj = HTMLElement;\r\n return obj\r\n ? instanceofObj\r\n ? obj instanceof instanceofObj\r\n : obj.nodeType === ElementNodeType\r\n : false;\r\n};\r\n\r\n/**\r\n * Checks whether the given object is a Element.\r\n * @param obj The object which shall be checked.\r\n */\r\nexport const isElement = (obj: any): obj is Element => {\r\n const instanceofObj = Element;\r\n return obj\r\n ? instanceofObj\r\n ? obj instanceof instanceofObj\r\n : obj.nodeType === ElementNodeType\r\n : false;\r\n};\r\n","import { isArray, isFunction, isPlainObject, isNull } from 'support/utils/types';\r\nimport { each } from 'support/utils/array';\r\n\r\n/**\r\n * Determines whether the passed object has a property with the passed name.\r\n * @param obj The object.\r\n * @param prop The name of the property.\r\n */\r\nexport const hasOwnProperty = (obj: any, prop: string | number | symbol): boolean =>\r\n Object.prototype.hasOwnProperty.call(obj, prop);\r\n\r\n/**\r\n * Returns the names of the enumerable string properties and methods of an object.\r\n * @param obj The object of which the properties shall be returned.\r\n */\r\nexport const keys = (obj: any): Array => (obj ? Object.keys(obj) : []);\r\n\r\ntype AssignDeep = {\r\n (target: T, object1: U): T & U;\r\n (target: T, object1: U, object2: V): T & U & V;\r\n (target: T, object1: U, object2: V, object3: W): T & U & V & W;\r\n (target: T, object1: U, object2: V, object3: W, object4: X): T & U & V & W & X;\r\n (target: T, object1: U, object2: V, object3: W, object4: X, object5: Y): T &\r\n U &\r\n V &\r\n W &\r\n X &\r\n Y;\r\n (\r\n target: T,\r\n object1?: U,\r\n object2?: V,\r\n object3?: W,\r\n object4?: X,\r\n object5?: Y,\r\n object6?: Z\r\n ): T & U & V & W & X & Y & Z;\r\n};\r\n\r\n// https://github.com/jquery/jquery/blob/master/src/core.js#L116\r\nexport const assignDeep: AssignDeep = (\r\n target: T,\r\n object1?: U,\r\n object2?: V,\r\n object3?: W,\r\n object4?: X,\r\n object5?: Y,\r\n object6?: Z\r\n): T & U & V & W & X & Y & Z => {\r\n const sources: Array = [object1, object2, object3, object4, object5, object6];\r\n\r\n // Handle case when target is a string or something (possible in deep copy)\r\n if ((typeof target !== 'object' || isNull(target)) && !isFunction(target)) {\r\n target = {} as T;\r\n }\r\n\r\n each(sources, (source) => {\r\n // Extend the base object\r\n each(keys(source), (key) => {\r\n const copy: any = source[key];\r\n\r\n // Prevent Object.prototype pollution\r\n // Prevent never-ending loop\r\n if (target === copy) {\r\n return true;\r\n }\r\n\r\n const copyIsArray = isArray(copy);\r\n\r\n // Recurse if we're merging plain objects or arrays\r\n if (copy && (isPlainObject(copy) || copyIsArray)) {\r\n const src = target[key];\r\n let clone: any = src;\r\n\r\n // Ensure proper type for the source value\r\n if (copyIsArray && !isArray(src)) {\r\n clone = [];\r\n } else if (!copyIsArray && !isPlainObject(src)) {\r\n clone = {};\r\n }\r\n\r\n // Never move original objects, clone them\r\n target[key] = assignDeep(clone, copy) as any;\r\n } else {\r\n target[key] = copy;\r\n }\r\n });\r\n });\r\n\r\n // Return the modified object\r\n return target as any;\r\n};\r\n\r\n/**\r\n * Returns true if the given object is empty, false otherwise.\r\n * @param obj The Object.\r\n */\r\nexport const isEmptyObject = (obj: any): boolean => {\r\n /* eslint-disable no-restricted-syntax, guard-for-in */\r\n for (const name in obj) return false;\r\n return true;\r\n /* eslint-enable */\r\n};\r\n","import { from } from 'support/utils/array';\r\nimport { isNull, isUndefined } from 'support/utils/types';\r\n\r\ntype GetSetPropName = 'scrollLeft' | 'scrollTop' | 'value';\r\n\r\ntype Attr = {\r\n (elm: HTMLElement | false | null | undefined, attrName: string): string | null;\r\n (elm: HTMLElement | false | null | undefined, attrName: string, value: string): void;\r\n (elm: HTMLElement | false | null | undefined, attrName: string, value?: string):\r\n | string\r\n | null\r\n | void;\r\n};\r\n\r\ntype GetSetProp = {\r\n (elm: HTMLElement | false | null | undefined): T;\r\n (elm: HTMLElement | false | null | undefined, value: T | false | null): void;\r\n (elm: HTMLElement | false | null | undefined, value?: T | false | null): T | void;\r\n};\r\n\r\nconst getSetProp = (\r\n topLeft: GetSetPropName,\r\n fallback: number | string,\r\n elm: HTMLElement | HTMLInputElement | false | null | undefined,\r\n value?: number | string | false | null\r\n): number | string | void => {\r\n if (isUndefined(value)) {\r\n return elm ? elm[topLeft] : fallback;\r\n }\r\n elm && !isNull(value) && value !== false && (elm[topLeft] = value);\r\n};\r\n\r\n/**\r\n * Gets or sets a attribute with the given attribute of the given element depending whether the value attribute is given.\r\n * Returns null if the element has no attribute with the given name.\r\n * @param elm The element of which the attribute shall be get or set.\r\n * @param attrName The attribute name which shall be get or set.\r\n * @param value The value of the attribute which shall be set.\r\n */\r\nexport const attr = ((\r\n elm: HTMLElement | false | null | undefined,\r\n attrName: string,\r\n value?: string\r\n): string | null | void => {\r\n if (isUndefined(value)) {\r\n return elm ? elm.getAttribute(attrName) : null;\r\n }\r\n elm && elm.setAttribute(attrName, value);\r\n}) as Attr;\r\n\r\n/**\r\n * Treats the given attribute like the \"class\" attribute and adds or removes the given value from it.\r\n * @param elm The element.\r\n * @param attrName The attributeName to which the value shall be added or removed.\r\n * @param value The value which shall be added or removed.\r\n * @param add True if the value shall be added, false otherwise.\r\n */\r\nexport const attrClass = (\r\n elm: HTMLElement | false | null | undefined,\r\n attrName: string,\r\n value: string,\r\n add?: boolean\r\n) => {\r\n if (value) {\r\n const currValues = attr(elm, attrName) || '';\r\n const currValuesSet = new Set(currValues.split(' '));\r\n currValuesSet[add ? 'add' : 'delete'](value);\r\n\r\n attr(elm, attrName, from(currValuesSet).join(' ').trim());\r\n }\r\n};\r\n\r\n/**\r\n * Treats the given attribute like the \"class\" attribute and checks if the given value is in it.\r\n * @param elm The element.\r\n * @param attrName The attributeName from which the content shall be checked.\r\n * @param value The value.\r\n * @returns True if the given attribute has the value in it, false otherwise.\r\n */\r\nexport const hasAttrClass = (\r\n elm: HTMLElement | false | null | undefined,\r\n attrName: string,\r\n value: string\r\n) => {\r\n const currValues = attr(elm, attrName) || '';\r\n const currValuesSet = new Set(currValues.split(' '));\r\n return currValuesSet.has(value);\r\n};\r\n\r\n/**\r\n * Removes the given attribute from the given element.\r\n * @param elm The element of which the attribute shall be removed.\r\n * @param attrName The attribute name.\r\n */\r\nexport const removeAttr = (elm: Element | false | null | undefined, attrName: string): void => {\r\n elm && elm.removeAttribute(attrName);\r\n};\r\n\r\n/**\r\n * Gets or sets the scrollLeft value of the given element depending whether the value attribute is given.\r\n * @param elm The element of which the scrollLeft value shall be get or set.\r\n * @param value The scrollLeft value which shall be set.\r\n */\r\nexport const scrollLeft = ((\r\n elm: HTMLElement | false | null | undefined,\r\n value?: number | false | null\r\n): number | void => getSetProp('scrollLeft', 0, elm, value) as number) as GetSetProp;\r\n\r\n/**\r\n * Gets or sets the scrollTop value of the given element depending whether the value attribute is given.\r\n * @param elm The element of which the scrollTop value shall be get or set.\r\n * @param value The scrollTop value which shall be set.\r\n */\r\nexport const scrollTop = ((\r\n elm: HTMLElement | false | null | undefined,\r\n value?: number | false | null\r\n): number | void => getSetProp('scrollTop', 0, elm, value) as number) as GetSetProp;\r\n\r\n/**\r\n * Gets or sets the value of the given input element depending whether the value attribute is given.\r\n * @param elm The input element of which the value shall be get or set.\r\n * @param value The value which shall be set.\r\n */\r\nexport const val = ((\r\n elm: HTMLInputElement | false | null | undefined,\r\n value?: string\r\n): string | void => getSetProp('value', '', elm, value) as string) as GetSetProp;\r\n","import { isElement } from 'support/utils/types';\r\nimport { push, from } from 'support/utils/array';\r\n\r\ntype InputElementType = Node | Element | Node | false | null | undefined;\r\ntype OutputElementType = Node | Element | null;\r\n\r\nconst elmPrototype = Element.prototype;\r\n\r\n/**\r\n * Find all elements with the passed selector, outgoing (and including) the passed element or the document if no element was provided.\r\n * @param selector The selector which has to be searched by.\r\n * @param elm The element from which the search shall be outgoing.\r\n */\r\nconst find = (selector: string, elm?: InputElementType): Element[] => {\r\n const arr: Array = [];\r\n const rootElm = elm ? (isElement(elm) ? elm : null) : document;\r\n\r\n return rootElm ? push(arr, rootElm.querySelectorAll(selector)) : arr;\r\n};\r\n\r\n/**\r\n * Find the first element with the passed selector, outgoing (and including) the passed element or the document if no element was provided.\r\n * @param selector The selector which has to be searched by.\r\n * @param elm The element from which the search shall be outgoing.\r\n */\r\nconst findFirst = (selector: string, elm?: InputElementType): OutputElementType => {\r\n const rootElm = elm ? (isElement(elm) ? elm : null) : document;\r\n\r\n return rootElm ? rootElm.querySelector(selector) : null;\r\n};\r\n\r\n/**\r\n * Determines whether the passed element is matching with the passed selector.\r\n * @param elm The element which has to be compared with the passed selector.\r\n * @param selector The selector which has to be compared with the passed element. Additional selectors: ':visible' and ':hidden'.\r\n */\r\nconst is = (elm: InputElementType, selector: string): boolean => {\r\n if (isElement(elm)) {\r\n /* istanbul ignore next */\r\n // eslint-disable-next-line\r\n // @ts-ignore\r\n const fn: (...args: any) => boolean = elmPrototype.matches || elmPrototype.msMatchesSelector;\r\n return fn.call(elm, selector);\r\n }\r\n return false;\r\n};\r\n\r\n/**\r\n * Returns the children (no text-nodes or comments) of the passed element which are matching the passed selector. An empty array is returned if the passed element is null.\r\n * @param elm The element of which the children shall be returned.\r\n * @param selector The selector which must match with the children elements.\r\n */\r\nconst children = (elm: InputElementType, selector?: string): ReadonlyArray => {\r\n const childs: Array = [];\r\n\r\n return isElement(elm)\r\n ? push(\r\n childs,\r\n from(elm.children).filter((child) => (selector ? is(child, selector) : child))\r\n )\r\n : childs;\r\n};\r\n\r\n/**\r\n * Returns the childNodes (incl. text-nodes or comments etc.) of the passed element. An empty array is returned if the passed element is null.\r\n * @param elm The element of which the childNodes shall be returned.\r\n */\r\nconst contents = (elm: InputElementType): ReadonlyArray =>\r\n elm ? from(elm.childNodes) : [];\r\n\r\n/**\r\n * Returns the parent element of the passed element, or null if the passed element is null.\r\n * @param elm The element of which the parent element shall be returned.\r\n */\r\nconst parent = (elm: InputElementType): OutputElementType => (elm ? elm.parentElement : null);\r\n\r\nconst closest = (elm: InputElementType, selector: string): OutputElementType => {\r\n if (isElement(elm)) {\r\n const closestFn = elmPrototype.closest;\r\n if (closestFn) {\r\n return closestFn.call(elm, selector);\r\n }\r\n\r\n do {\r\n if (is(elm, selector)) {\r\n return elm as Element;\r\n }\r\n elm = parent(elm);\r\n } while (elm);\r\n }\r\n\r\n return null;\r\n};\r\n\r\n/**\r\n * Determines whether the given element lies between two selectors in the DOM.\r\n * @param elm The element.\r\n * @param highBoundarySelector The high boundary selector.\r\n * @param deepBoundarySelector The deep boundary selector.\r\n */\r\nconst liesBetween = (\r\n elm: InputElementType,\r\n highBoundarySelector: string,\r\n deepBoundarySelector: string\r\n): boolean => {\r\n const closestHighBoundaryElm = elm && closest(elm, highBoundarySelector);\r\n const closestDeepBoundaryElm = elm && findFirst(deepBoundarySelector, closestHighBoundaryElm);\r\n const deepBoundaryIsValid =\r\n closest(closestDeepBoundaryElm, highBoundarySelector) === closestHighBoundaryElm;\r\n\r\n return closestHighBoundaryElm && closestDeepBoundaryElm\r\n ? closestHighBoundaryElm === elm ||\r\n closestDeepBoundaryElm === elm ||\r\n (deepBoundaryIsValid &&\r\n closest(closest(elm, deepBoundarySelector), highBoundarySelector) !==\r\n closestHighBoundaryElm)\r\n : false;\r\n};\r\n\r\nexport { find, findFirst, is, children, contents, parent, liesBetween, closest };\r\n","import { isArrayLike } from 'support/utils/types';\r\nimport { each, from } from 'support/utils/array';\r\nimport { parent } from 'support/dom/traversal';\r\n\r\ntype NodeCollection = ArrayLike | Node | false | null | undefined;\r\n\r\n/**\r\n * Inserts Nodes before the given preferredAnchor element.\r\n * @param parentElm The parent of the preferredAnchor element or the element which shall be the parent of the inserted Nodes.\r\n * @param preferredAnchor The element before which the Nodes shall be inserted or null if the elements shall be appended at the end.\r\n * @param insertedElms The Nodes which shall be inserted.\r\n */\r\nconst before = (\r\n parentElm: Node | false | null | undefined,\r\n preferredAnchor: Node | false | null | undefined,\r\n insertedElms: NodeCollection\r\n): void => {\r\n if (insertedElms && parentElm) {\r\n let anchor: Node | false | null | undefined = preferredAnchor;\r\n let fragment: DocumentFragment | Node | null | undefined;\r\n\r\n if (isArrayLike(insertedElms)) {\r\n fragment = document.createDocumentFragment();\r\n\r\n // append all insertedElms to the fragment and if one of these is the anchor, change the anchor\r\n each(insertedElms, (insertedElm) => {\r\n if (insertedElm === anchor) {\r\n anchor = insertedElm.previousSibling;\r\n }\r\n fragment!.appendChild(insertedElm);\r\n });\r\n } else {\r\n fragment = insertedElms;\r\n }\r\n\r\n // if the preferred anchor isn't null set it to a valid anchor\r\n if (preferredAnchor) {\r\n if (!anchor) {\r\n anchor = parentElm.firstChild;\r\n } else if (anchor !== preferredAnchor) {\r\n anchor = anchor.nextSibling;\r\n }\r\n }\r\n\r\n parentElm.insertBefore(fragment, anchor || null);\r\n }\r\n};\r\n\r\n/**\r\n * Appends the given children at the end of the given Node.\r\n * @param node The Node to which the children shall be appended.\r\n * @param children The Nodes which shall be appended.\r\n */\r\nexport const appendChildren = (\r\n node: Node | false | null | undefined,\r\n children: NodeCollection\r\n): void => {\r\n before(node, null, children);\r\n};\r\n\r\n/**\r\n * Prepends the given children at the start of the given Node.\r\n * @param node The Node to which the children shall be prepended.\r\n * @param children The Nodes which shall be prepended.\r\n */\r\nexport const prependChildren = (\r\n node: Node | false | null | undefined,\r\n children: NodeCollection\r\n): void => {\r\n before(node, node && node.firstChild, children);\r\n};\r\n\r\n/**\r\n * Inserts the given Nodes before the given Node.\r\n * @param node The Node before which the given Nodes shall be inserted.\r\n * @param insertedNodes The Nodes which shall be inserted.\r\n */\r\nexport const insertBefore = (\r\n node: Node | false | null | undefined,\r\n insertedNodes: NodeCollection\r\n): void => {\r\n before(parent(node), node, insertedNodes);\r\n};\r\n\r\n/**\r\n * Inserts the given Nodes after the given Node.\r\n * @param node The Node after which the given Nodes shall be inserted.\r\n * @param insertedNodes The Nodes which shall be inserted.\r\n */\r\nexport const insertAfter = (\r\n node: Node | false | null | undefined,\r\n insertedNodes: NodeCollection\r\n): void => {\r\n before(parent(node), node && node.nextSibling, insertedNodes);\r\n};\r\n\r\n/**\r\n * Removes the given Nodes from their parent.\r\n * @param nodes The Nodes which shall be removed.\r\n */\r\nexport const removeElements = (nodes: NodeCollection): void => {\r\n if (isArrayLike(nodes)) {\r\n each(from(nodes), (e) => removeElements(e));\r\n } else if (nodes) {\r\n const parentElm = parent(nodes);\r\n if (parentElm) {\r\n parentElm.removeChild(nodes);\r\n }\r\n }\r\n};\r\n","import { each } from 'support/utils/array';\r\nimport { attr } from 'support/dom/attribute';\r\nimport { contents } from 'support/dom/traversal';\r\nimport { removeElements } from 'support/dom/manipulation';\r\n\r\n/**\r\n * Creates a div DOM node.\r\n */\r\nexport const createDiv = (classNames?: string): HTMLDivElement => {\r\n const div = document.createElement('div');\r\n if (classNames) {\r\n attr(div, 'class', classNames);\r\n }\r\n return div;\r\n};\r\n\r\n/**\r\n * Creates DOM nodes modeled after the passed html string and returns the root dom nodes as a array.\r\n * @param html The html string after which the DOM nodes shall be created.\r\n */\r\nexport const createDOM = (html: string): ReadonlyArray => {\r\n const createdDiv = createDiv();\r\n createdDiv.innerHTML = html.trim();\r\n\r\n return each(contents(createdDiv), (elm) => removeElements(elm));\r\n};\r\n","import { each } from 'support/utils/array';\r\nimport { hasOwnProperty } from 'support/utils/object';\r\nimport { createDiv } from 'support/dom/create';\r\n\r\nconst firstLetterToUpper = (str: string): string => str.charAt(0).toUpperCase() + str.slice(1);\r\nconst getDummyStyle = (): CSSStyleDeclaration => createDiv().style;\r\n\r\n// https://developer.mozilla.org/en-US/docs/Glossary/Vendor_Prefix\r\n\r\nexport const cssPrefixes: ReadonlyArray = ['-webkit-', '-moz-', '-o-', '-ms-'];\r\nexport const jsPrefixes: ReadonlyArray = [\r\n 'WebKit',\r\n 'Moz',\r\n 'O',\r\n 'MS',\r\n 'webkit',\r\n 'moz',\r\n 'o',\r\n 'ms',\r\n];\r\n\r\nexport const jsCache: { [key: string]: any } = {};\r\nexport const cssCache: { [key: string]: string } = {};\r\n\r\n/**\r\n * Gets the name of the given CSS property with vendor prefix if it isn't supported without it, or and empty string if unsupported.\r\n * @param name The name of the CSS property which shall be get.\r\n */\r\nexport const cssProperty = (name: string): string => {\r\n let result: string | undefined = cssCache[name];\r\n\r\n if (hasOwnProperty(cssCache, name)) {\r\n return result;\r\n }\r\n\r\n const uppercasedName: string = firstLetterToUpper(name);\r\n const elmStyle: CSSStyleDeclaration = getDummyStyle();\r\n\r\n each(cssPrefixes, (prefix: string) => {\r\n const prefixWithoutDashes: string = prefix.replace(/-/g, '');\r\n const resultPossibilities: Array = [\r\n name, // transition\r\n prefix + name, // -webkit-transition\r\n prefixWithoutDashes + uppercasedName, // webkitTransition\r\n firstLetterToUpper(prefixWithoutDashes) + uppercasedName, // WebkitTransition\r\n ];\r\n\r\n // eslint-disable-next-line no-return-assign\r\n return !(result = resultPossibilities.find(\r\n (resultPossibility: string) => elmStyle[resultPossibility] !== undefined\r\n ));\r\n });\r\n\r\n // eslint-disable-next-line no-return-assign\r\n return (cssCache[name] = result || '');\r\n};\r\n\r\n/**\r\n * Get the name of the given CSS property value(s), with vendor prefix if it isn't supported without it, or an empty string if no value is supported.\r\n * @param property The CSS property to which the CSS property value(s) belong.\r\n * @param values The value(s) separated by spaces which shall be get.\r\n * @param suffix A suffix which is added to each value in case the value is a function or something else more advanced.\r\n */\r\nexport const cssPropertyValue = (property: string, values: string, suffix?: string): string => {\r\n const name = `${property} ${values}`;\r\n let result: string | undefined = cssCache[name];\r\n\r\n if (hasOwnProperty(cssCache, name)) {\r\n return result;\r\n }\r\n\r\n const dummyStyle: CSSStyleDeclaration = getDummyStyle();\r\n const possbleValues: Array = values.split(' ');\r\n const preparedSuffix: string = suffix || '';\r\n const cssPrefixesWithFirstEmpty = [''].concat(cssPrefixes);\r\n\r\n each(possbleValues, (possibleValue: string) => {\r\n each(cssPrefixesWithFirstEmpty, (prefix: string) => {\r\n const prop = prefix + possibleValue;\r\n dummyStyle.cssText = `${property}:${prop}${preparedSuffix}`;\r\n if (dummyStyle.length) {\r\n result = prop;\r\n return false;\r\n }\r\n });\r\n return !result;\r\n });\r\n\r\n // eslint-disable-next-line no-return-assign\r\n return (cssCache[name] = result || '');\r\n};\r\n\r\n/**\r\n * Get the requested JS function, object or constructor with vendor prefix if it isn't supported without or undefined if unsupported.\r\n * @param name The name of the JS function, object or constructor.\r\n */\r\nexport const jsAPI = (name: string): T | undefined => {\r\n let result: any = jsCache[name] || window[name];\r\n\r\n if (hasOwnProperty(jsCache, name)) {\r\n return result;\r\n }\r\n\r\n each(jsPrefixes, (prefix: string) => {\r\n result = result || window[prefix + firstLetterToUpper(name)];\r\n return !result;\r\n });\r\n\r\n jsCache[name] = result;\r\n return result;\r\n};\r\n","import { jsAPI } from 'support/compatibility/vendors';\r\n\r\nexport const MutationObserverConstructor = jsAPI('MutationObserver');\r\nexport const IntersectionObserverConstructor =\r\n jsAPI('IntersectionObserver');\r\nexport const ResizeObserverConstructor = jsAPI('ResizeObserver');\r\nexport const cAF = jsAPI('cancelAnimationFrame');\r\nexport const rAF = jsAPI('requestAnimationFrame');\r\nexport const setT = window.setTimeout as (handler: TimerHandler, timeout?: number) => number;\r\nexport const clearT = window.clearTimeout as (id?: number) => void;\r\n","import { isString } from 'support/utils/types';\r\nimport { each } from 'support/utils/array';\r\nimport { keys } from 'support/utils/object';\r\n\r\ntype ClassContainingElement = Node | Element | false | null | undefined;\r\ntype ClassName = string | false | null | undefined;\r\n\r\nconst rnothtmlwhite = /[^\\x20\\t\\r\\n\\f]+/g;\r\nconst classListAction = (\r\n elm: ClassContainingElement,\r\n className: ClassName,\r\n action: (elmClassList: DOMTokenList, clazz: string) => boolean | void\r\n): boolean => {\r\n const classList = elm && (elm as Element).classList;\r\n let clazz: string;\r\n let i = 0;\r\n let result = false;\r\n\r\n if (classList && className && isString(className)) {\r\n const classes: Array = className.match(rnothtmlwhite) || [];\r\n result = classes.length > 0;\r\n while ((clazz = classes[i++])) {\r\n result = !!action(classList, clazz) && result;\r\n }\r\n }\r\n return result;\r\n};\r\n\r\n/**\r\n * Check whether the given element has the given class name(s).\r\n * @param elm The element.\r\n * @param className The class name(s).\r\n */\r\nexport const hasClass = (elm: ClassContainingElement, className: ClassName): boolean =>\r\n classListAction(elm, className, (classList, clazz) => classList.contains(clazz));\r\n\r\n/**\r\n * Removes the given class name(s) from the given element.\r\n * @param elm The element.\r\n * @param className The class name(s) which shall be removed. (separated by spaces)\r\n */\r\nexport const removeClass = (elm: ClassContainingElement, className: ClassName): void => {\r\n classListAction(elm, className, (classList, clazz) => classList.remove(clazz));\r\n};\r\n\r\n/**\r\n * Adds the given class name(s) to the given element.\r\n * @param elm The element.\r\n * @param className The class name(s) which shall be added. (separated by spaces)\r\n * @returns A function which removes the added class name(s).\r\n */\r\nexport const addClass = (elm: ClassContainingElement, className: ClassName): (() => void) => {\r\n classListAction(elm, className, (classList, clazz) => classList.add(clazz));\r\n return removeClass.bind(0, elm, className);\r\n};\r\n\r\n/**\r\n * Takes two className strings, compares them and returns the difference as array.\r\n * @param classNameA ClassName A.\r\n * @param classNameB ClassName B.\r\n */\r\nexport const diffClass = (classNameA: ClassName, classNameB: ClassName) => {\r\n const classNameASplit = classNameA && classNameA.split(' ');\r\n const classNameBSplit = classNameB && classNameB.split(' ');\r\n const tempObj = {};\r\n\r\n each(classNameASplit, (className) => {\r\n tempObj[className] = 1;\r\n });\r\n each(classNameBSplit, (className) => {\r\n if (tempObj[className]) {\r\n delete tempObj[className];\r\n } else {\r\n tempObj[className] = 1;\r\n }\r\n });\r\n\r\n return keys(tempObj);\r\n};\r\n","import { each } from 'support/utils/array';\r\nimport { WH, XY, TRBL } from 'support/dom';\r\nimport { PlainObject } from 'typings';\r\n\r\n/**\r\n * Compares two objects and returns true if all values of the passed prop names are identical, false otherwise or if one of the two object is falsy.\r\n * @param a Object a.\r\n * @param b Object b.\r\n * @param props The props which shall be compared.\r\n */\r\nexport const equal = (\r\n a: T | undefined,\r\n b: T | undefined,\r\n props: Array,\r\n propMutation?: ((value: any) => any) | null | false\r\n): boolean => {\r\n if (a && b) {\r\n let result = true;\r\n each(props, (prop) => {\r\n const compareA = propMutation ? propMutation(a[prop]) : a[prop];\r\n const compareB = propMutation ? propMutation(b[prop]) : b[prop];\r\n if (compareA !== compareB) {\r\n result = false;\r\n }\r\n });\r\n return result;\r\n }\r\n return false;\r\n};\r\n\r\n/**\r\n * Compares object a with object b and returns true if both have the same property values, false otherwise.\r\n * Also returns false if one of the objects is undefined or null.\r\n * @param a Object a.\r\n * @param b Object b.\r\n */\r\nexport const equalWH = (a?: WH, b?: WH) => equal>(a, b, ['w', 'h']);\r\n\r\n/**\r\n * Compares object a with object b and returns true if both have the same property values, false otherwise.\r\n * Also returns false if one of the objects is undefined or null.\r\n * @param a Object a.\r\n * @param b Object b.\r\n */\r\nexport const equalXY = (a?: XY, b?: XY) => equal>(a, b, ['x', 'y']);\r\n\r\n/**\r\n * Compares object a with object b and returns true if both have the same property values, false otherwise.\r\n * Also returns false if one of the objects is undefined or null.\r\n * @param a Object a.\r\n * @param b Object b.\r\n */\r\nexport const equalTRBL = (a?: TRBL, b?: TRBL) => equal(a, b, ['t', 'r', 'b', 'l']);\r\n\r\n/**\r\n * Compares two DOM Rects for their equality of their width and height properties\r\n * Also returns false if one of the DOM Rects is undefined or null.\r\n * @param a DOM Rect a.\r\n * @param b DOM Rect b.\r\n * @param round Whether the values should be rounded.\r\n */\r\nexport const equalBCRWH = (a?: DOMRect, b?: DOMRect, round?: boolean) =>\r\n equal(a, b, ['width', 'height'], round && ((value) => Math.round(value)));\r\n","import { isNumber, isFunction } from 'support/utils/types';\r\nimport { from } from 'support/utils/array';\r\nimport { rAF, cAF, setT, clearT } from 'support/compatibility/apis';\r\n\r\ntype DebounceTiming = number | false | null | undefined;\r\n\r\nexport interface DebounceOptions any> {\r\n /**\r\n * The timeout for debouncing. If null, no debounce is applied.\r\n */\r\n _timeout?: DebounceTiming | (() => DebounceTiming);\r\n /**\r\n * A maximum amount of ms. before the function will be called even with debounce.\r\n */\r\n _maxDelay?: DebounceTiming | (() => DebounceTiming);\r\n /**\r\n * Function which merges parameters for each canceled debounce.\r\n * If parameters can't be merged the function will return null, otherwise it returns the merged parameters.\r\n */\r\n _mergeParams?: (\r\n prev: Parameters,\r\n curr: Parameters\r\n ) => Parameters | false | null | undefined;\r\n}\r\n\r\nexport interface Debounced any> {\r\n (...args: Parameters): ReturnType;\r\n _flush(): void;\r\n}\r\n\r\nexport const noop = () => {}; // eslint-disable-line\r\n\r\n/**\r\n * Debounces the given function either with a timeout or a animation frame.\r\n * @param functionToDebounce The function which shall be debounced.\r\n * @param options Options for debouncing.\r\n */\r\nexport const debounce = any>(\r\n functionToDebounce: FunctionToDebounce,\r\n options?: DebounceOptions\r\n): Debounced => {\r\n let maxTimeoutId: number | undefined;\r\n let prevArguments: Parameters | null | undefined;\r\n let latestArguments: Parameters | null | undefined;\r\n let clear: () => void = noop;\r\n const { _timeout, _maxDelay, _mergeParams } = options || {};\r\n\r\n const invokeFunctionToDebounce = function (args: IArguments) {\r\n clear();\r\n clearT(maxTimeoutId);\r\n maxTimeoutId = prevArguments = undefined;\r\n clear = noop;\r\n // eslint-disable-next-line\r\n // @ts-ignore\r\n functionToDebounce.apply(this, args);\r\n };\r\n\r\n const mergeParms = (\r\n curr: Parameters\r\n ): Parameters | false | null | undefined =>\r\n _mergeParams && prevArguments ? _mergeParams(prevArguments, curr) : curr;\r\n\r\n const flush = () => {\r\n /* istanbul ignore next */\r\n if (clear !== noop) {\r\n invokeFunctionToDebounce(mergeParms(latestArguments!) || latestArguments!);\r\n }\r\n };\r\n\r\n const debouncedFn = function () {\r\n // eslint-disable-next-line prefer-rest-params\r\n const args: Parameters = from(arguments) as Parameters;\r\n const finalTimeout = isFunction(_timeout) ? _timeout() : _timeout;\r\n const hasTimeout = isNumber(finalTimeout) && finalTimeout >= 0;\r\n\r\n if (hasTimeout) {\r\n const finalMaxWait = isFunction(_maxDelay) ? _maxDelay() : _maxDelay;\r\n const hasMaxWait = isNumber(finalMaxWait) && finalMaxWait >= 0;\r\n const setTimeoutFn = finalTimeout > 0 ? setT : rAF!;\r\n const clearTimeoutFn = finalTimeout > 0 ? clearT : cAF!;\r\n const mergeParamsResult = mergeParms(args);\r\n const invokedArgs = mergeParamsResult || args;\r\n const boundInvoke = invokeFunctionToDebounce.bind(0, invokedArgs);\r\n\r\n // if (!mergeParamsResult) {\r\n // invokeFunctionToDebounce(prevArguments || args);\r\n // }\r\n\r\n clear();\r\n // @ts-ignore\r\n const timeoutId = setTimeoutFn(boundInvoke, finalTimeout);\r\n clear = () => clearTimeoutFn(timeoutId);\r\n\r\n if (hasMaxWait && !maxTimeoutId) {\r\n maxTimeoutId = setT(flush, finalMaxWait as number);\r\n }\r\n\r\n prevArguments = latestArguments = invokedArgs;\r\n } else {\r\n invokeFunctionToDebounce(args);\r\n }\r\n };\r\n debouncedFn._flush = flush;\r\n\r\n return debouncedFn as Debounced;\r\n};\r\n","import { style } from 'support/dom/style';\r\n\r\nexport interface WH {\r\n w: T;\r\n h: T;\r\n}\r\n\r\nconst { round } = Math;\r\nconst elementHasDimensions = (elm: HTMLElement): boolean =>\r\n !!(elm.offsetWidth || elm.offsetHeight || elm.getClientRects().length);\r\nconst zeroObj: WH = {\r\n w: 0,\r\n h: 0,\r\n};\r\n\r\n/**\r\n * Returns the window inner- width and height.\r\n */\r\nexport const windowSize = (): WH => ({\r\n w: window.innerWidth,\r\n h: window.innerHeight,\r\n});\r\n\r\n/**\r\n * Returns the scroll- width and height of the passed element. If the element is null the width and height values are 0.\r\n * @param elm The element of which the scroll- width and height shall be returned.\r\n */\r\nexport const offsetSize = (elm: HTMLElement | null | undefined): WH =>\r\n elm\r\n ? {\r\n w: elm.offsetWidth,\r\n h: elm.offsetHeight,\r\n }\r\n : zeroObj;\r\n\r\n/**\r\n * Returns the client- width and height of the passed element. If the element is null the width and height values are 0.\r\n * @param elm The element of which the client- width and height shall be returned.\r\n */\r\nexport const clientSize = (elm: HTMLElement | false | null | undefined): WH =>\r\n elm\r\n ? {\r\n w: elm.clientWidth,\r\n h: elm.clientHeight,\r\n }\r\n : zeroObj;\r\n\r\n/**\r\n * Returns the client- width and height of the passed element. If the element is null the width and height values are 0.\r\n * @param elm The element of which the client- width and height shall be returned.\r\n */\r\nexport const scrollSize = (elm: HTMLElement | false | null | undefined): WH =>\r\n elm\r\n ? {\r\n w: elm.scrollWidth,\r\n h: elm.scrollHeight,\r\n }\r\n : zeroObj;\r\n\r\n/**\r\n * Returns the fractional- width and height of the passed element. If the element is null the width and height values are 0.\r\n * @param elm The element of which the fractional- width and height shall be returned.\r\n */\r\nexport const fractionalSize = (elm: HTMLElement | false | null | undefined): WH => {\r\n const cssHeight = parseFloat(style(elm, 'height')) || 0;\r\n const cssWidth = parseFloat(style(elm, 'width')) || 0;\r\n return {\r\n w: cssWidth - round(cssWidth),\r\n h: cssHeight - round(cssHeight),\r\n };\r\n};\r\n\r\n/**\r\n * Returns the BoundingClientRect of the passed element.\r\n * @param elm The element of which the BoundingClientRect shall be returned.\r\n */\r\nexport const getBoundingClientRect = (elm: HTMLElement): DOMRect => elm.getBoundingClientRect();\r\n\r\n/**\r\n * Determines whether the passed element has any dimensions.\r\n * @param elm The element.\r\n */\r\nexport const hasDimensions = (elm: HTMLElement | false | null | undefined): boolean =>\r\n elm ? elementHasDimensions(elm as HTMLElement) : false;\r\n","import { isUndefined } from 'support/utils/types';\r\nimport { each, push, runEachAndClear } from 'support/utils/array';\r\n\r\nlet passiveEventsSupport: boolean;\r\nconst supportPassiveEvents = (): boolean => {\r\n if (isUndefined(passiveEventsSupport)) {\r\n passiveEventsSupport = false;\r\n try {\r\n /* eslint-disable */\r\n // @ts-ignore\r\n window.addEventListener(\r\n 'test',\r\n null,\r\n Object.defineProperty({}, 'passive', {\r\n get() {\r\n passiveEventsSupport = true;\r\n },\r\n })\r\n );\r\n /* eslint-enable */\r\n } catch (e) {}\r\n }\r\n return passiveEventsSupport;\r\n};\r\nconst splitEventNames = (eventNames: string) => eventNames.split(' ');\r\n\r\nexport interface OnOptions {\r\n _capture?: boolean;\r\n _passive?: boolean;\r\n _once?: boolean;\r\n}\r\n\r\n/**\r\n * Removes the passed event listener for the passed events with the passed options.\r\n * @param target The element from which the listener shall be removed.\r\n * @param eventNames The eventsnames for which the listener shall be removed.\r\n * @param listener The listener which shall be removed.\r\n * @param capture The options of the removed listener.\r\n */\r\nexport const off = (\r\n target: EventTarget,\r\n eventNames: string,\r\n listener: (event: T) => any,\r\n capture?: boolean\r\n): void => {\r\n each(splitEventNames(eventNames), (eventName) => {\r\n target.removeEventListener(eventName, listener as EventListener, capture);\r\n });\r\n};\r\n\r\n/**\r\n * Adds the passed event listener for the passed eventnames with the passed options.\r\n * @param target The element to which the listener shall be added.\r\n * @param eventNames The eventsnames for which the listener shall be called.\r\n * @param listener The listener which is called on the eventnames.\r\n * @param options The options of the added listener.\r\n */\r\nexport const on = (\r\n target: EventTarget,\r\n eventNames: string,\r\n listener: (event: T) => any,\r\n options?: OnOptions\r\n): (() => void) => {\r\n const doSupportPassiveEvents = supportPassiveEvents();\r\n const passive = (doSupportPassiveEvents && options && options._passive) ?? doSupportPassiveEvents;\r\n const capture = (options && options._capture) || false;\r\n const once = (options && options._once) || false;\r\n const offListeners: (() => void)[] = [];\r\n const nativeOptions: AddEventListenerOptions | boolean = doSupportPassiveEvents\r\n ? {\r\n passive,\r\n capture,\r\n }\r\n : capture;\r\n\r\n each(splitEventNames(eventNames), (eventName) => {\r\n const finalListener = (\r\n once\r\n ? (evt: T) => {\r\n target.removeEventListener(eventName, finalListener, capture);\r\n listener && listener(evt);\r\n }\r\n : listener\r\n ) as EventListener;\r\n\r\n push(offListeners, off.bind(null, target, eventName, finalListener, capture));\r\n target.addEventListener(eventName, finalListener, nativeOptions);\r\n });\r\n\r\n return runEachAndClear.bind(0, offListeners);\r\n};\r\n\r\n/**\r\n * Shorthand for the stopPropagation event Method.\r\n * @param evt The event of which the stopPropagation method shall be called.\r\n */\r\nexport const stopPropagation = (evt: Event): void => evt.stopPropagation();\r\n\r\n/**\r\n * Shorthand for the preventDefault event Method.\r\n * @param evt The event of which the preventDefault method shall be called.\r\n */\r\nexport const preventDefault = (evt: Event): void => evt.preventDefault();\r\n\r\n/**\r\n * Shorthand for the stopPropagation and preventDefault event Method.\r\n * @param evt The event of which the stopPropagation and preventDefault methods shall be called.\r\n */\r\nexport const stopAndPrevent = (evt: Event): void =>\r\n (stopPropagation(evt) as undefined) || (preventDefault(evt) as undefined);\r\n","import { getBoundingClientRect } from 'support/dom/dimensions';\r\n\r\nexport interface XY {\r\n x: T;\r\n y: T;\r\n}\r\n\r\nconst zeroObj: XY = {\r\n x: 0,\r\n y: 0,\r\n};\r\n\r\n/**\r\n * Returns the offset- left and top coordinates of the passed element relative to the document. If the element is null the top and left values are 0.\r\n * @param elm The element of which the offset- top and left coordinates shall be returned.\r\n */\r\nexport const absoluteCoordinates = (elm: HTMLElement | null | undefined): XY => {\r\n const rect = elm ? getBoundingClientRect(elm) : 0;\r\n return rect\r\n ? {\r\n x: rect.left + window.pageYOffset,\r\n y: rect.top + window.pageXOffset,\r\n }\r\n : zeroObj;\r\n};\r\n\r\n/**\r\n * Returns the offset- left and top coordinates of the passed element. If the element is null the top and left values are 0.\r\n * @param elm The element of which the offset- top and left coordinates shall be returned.\r\n */\r\nexport const offsetCoordinates = (elm: HTMLElement | null | undefined): XY =>\r\n elm\r\n ? {\r\n x: elm.offsetLeft,\r\n y: elm.offsetTop,\r\n }\r\n : zeroObj;\r\n","import { isArray } from 'support/utils/types';\r\nimport { keys } from 'support/utils/object';\r\nimport { each, from, isEmptyArray } from 'support/utils/array';\r\n\r\nexport type EventListener<\r\n EventMap extends Record,\r\n Name extends keyof EventMap = keyof EventMap\r\n> = (...args: EventMap[Name]) => void;\r\n\r\nexport type InitialEventListeners> = {\r\n [K in keyof EventMap]?: EventListener | EventListener[];\r\n};\r\n\r\nconst manageListener = >(\r\n callback: (listener?: EventListener) => void,\r\n listener?: EventListener | EventListener[]\r\n) => {\r\n each(isArray(listener) ? listener : [listener], callback);\r\n};\r\n\r\nexport const createEventListenerHub = >(\r\n initialEventListeners?: InitialEventListeners\r\n) => {\r\n type EventListener = (\r\n ...args: EventMap[Name]\r\n ) => void;\r\n type RemoveEvent = {\r\n (name?: Name, listener?: EventListener): void;\r\n (name?: Name, listener?: EventListener[]): void;\r\n (\r\n name?: Name,\r\n listener?: EventListener | EventListener[]\r\n ): void;\r\n };\r\n type AddEvent = {\r\n (name: Name, listener: EventListener): () => void;\r\n (name: Name, listener: EventListener[]): () => void;\r\n (\r\n name: Name,\r\n listener: EventListener | EventListener[]\r\n ): () => void;\r\n };\r\n type TriggerEvent = {\r\n (name: Name, args?: EventMap[Name]): void;\r\n };\r\n\r\n const events = new Map>();\r\n\r\n const removeEvent: RemoveEvent = (\r\n name?: Name,\r\n listener?: EventListener | EventListener[]\r\n ): void => {\r\n if (name) {\r\n const eventSet = events.get(name);\r\n manageListener((currListener) => {\r\n if (eventSet) {\r\n eventSet[currListener ? 'delete' : 'clear'](currListener!);\r\n }\r\n }, listener as any);\r\n } else {\r\n events.forEach((eventSet) => {\r\n eventSet.clear();\r\n });\r\n events.clear();\r\n }\r\n };\r\n\r\n const addEvent: AddEvent = (\r\n name: Name,\r\n listener: EventListener | EventListener[]\r\n ): (() => void) => {\r\n const eventSet = events.get(name) || new Set();\r\n events.set(name, eventSet);\r\n\r\n manageListener((currListener) => {\r\n currListener && eventSet.add(currListener);\r\n }, listener as any);\r\n\r\n return removeEvent.bind(0, name as any, listener as any);\r\n };\r\n\r\n const triggerEvent: TriggerEvent = (\r\n name: Name,\r\n args?: EventMap[Name]\r\n ): void => {\r\n const eventSet = events.get(name);\r\n\r\n each(from(eventSet), (event) => {\r\n if (args && !isEmptyArray(args)) {\r\n (event as (...args: EventMap[keyof EventMap]) => void).apply(0, args as any);\r\n } else {\r\n (event as () => void)();\r\n }\r\n });\r\n };\r\n\r\n const initialListenerKeys = keys(initialEventListeners) as Extract[];\r\n each(initialListenerKeys, (key) => {\r\n addEvent(key, initialEventListeners![key] as any);\r\n });\r\n\r\n return [addEvent, removeEvent, triggerEvent] as [AddEvent, RemoveEvent, TriggerEvent];\r\n};\r\n","import { assignDeep, hasOwnProperty } from 'support';\r\nimport type { Options, ReadonlyOptions } from 'options';\r\nimport type { DeepPartial } from 'typings';\r\n\r\nexport type SetupElements> = [elements: T, destroy: () => void];\r\n\r\nexport type SetupUpdate = (\r\n changedOptions: DeepPartial,\r\n force: boolean,\r\n ...args: T\r\n) => void;\r\n\r\nexport type SetupUpdateCheckOption = (path: string) => [value: T, changed: boolean];\r\n\r\nexport type SetupUpdateSegment> = (\r\n updateHints: Hints,\r\n checkOption: SetupUpdateCheckOption,\r\n force: boolean\r\n) => Partial | void;\r\n\r\nexport type SetupState> = [\r\n get: () => T,\r\n set: (newState: Partial) => void\r\n];\r\n\r\nexport type Setup<\r\n DynamicState,\r\n StaticState extends Record = Record,\r\n A extends any[] = []\r\n> = [update: SetupUpdate
, state: (() => DynamicState) & StaticState, destroy: () => void];\r\n\r\nconst getPropByPath = (obj: any, path: string): T =>\r\n obj\r\n ? path.split('.').reduce((o, prop) => (o && hasOwnProperty(o, prop) ? o[prop] : undefined), obj)\r\n : undefined;\r\n\r\nexport const createOptionCheck =\r\n (\r\n options: ReadonlyOptions,\r\n changedOptions: DeepPartial,\r\n force?: boolean\r\n ): SetupUpdateCheckOption =>\r\n (path: string) =>\r\n [getPropByPath(options, path), force || getPropByPath(changedOptions, path) !== undefined];\r\n\r\nexport const createState = (initialState: S): SetupState => {\r\n let state: S = initialState;\r\n return [\r\n () => state,\r\n (newState: Partial) => {\r\n state = assignDeep({}, state, newState);\r\n },\r\n ];\r\n};\r\n","export const classNameEnvironment = 'os-environment';\r\nexport const classNameEnvironmentFlexboxGlue = `${classNameEnvironment}-flexbox-glue`;\r\nexport const classNameEnvironmentFlexboxGlueMax = `${classNameEnvironmentFlexboxGlue}-max`;\r\n\r\nexport const dataAttributeHost = 'data-overlayscrollbars';\r\nexport const dataAttributeHostOverflowX = `${dataAttributeHost}-overflow-x`;\r\nexport const dataAttributeHostOverflowY = `${dataAttributeHost}-overflow-y`;\r\nexport const dataValueHostOverflowVisible = 'overflowVisible';\r\nexport const dataValueHostScrollbarHidden = 'scrollbarHidden';\r\nexport const dataValueHostUpdating = 'updating';\r\nexport const classNamePadding = 'os-padding';\r\nexport const classNameViewport = 'os-viewport';\r\nexport const classNameViewportArrange = `${classNameViewport}-arrange`;\r\nexport const classNameContent = 'os-content';\r\nexport const classNameViewportScrollbarHidden = `${classNameViewport}-scrollbar-hidden`;\r\nexport const classNameOverflowVisible = `os-overflow-visible`;\r\n\r\nexport const classNameSizeObserver = 'os-size-observer';\r\nexport const classNameSizeObserverAppear = `${classNameSizeObserver}-appear`;\r\nexport const classNameSizeObserverListener = `${classNameSizeObserver}-listener`;\r\nexport const classNameSizeObserverListenerScroll = `${classNameSizeObserverListener}-scroll`;\r\nexport const classNameSizeObserverListenerItem = `${classNameSizeObserverListener}-item`;\r\nexport const classNameSizeObserverListenerItemFinal = `${classNameSizeObserverListenerItem}-final`;\r\n\r\nexport const classNameTrinsicObserver = 'os-trinsic-observer';\r\n\r\nexport const classNameScrollbar = 'os-scrollbar';\r\nexport const classNameScrollbarRtl = `${classNameScrollbar}-rtl`;\r\nexport const classNameScrollbarHorizontal = `${classNameScrollbar}-horizontal`;\r\nexport const classNameScrollbarVertical = `${classNameScrollbar}-vertical`;\r\nexport const classNameScrollbarTrack = `${classNameScrollbar}-track`;\r\nexport const classNameScrollbarHandle = `${classNameScrollbar}-handle`;\r\nexport const classNamesScrollbarVisible = `${classNameScrollbar}-visible`;\r\nexport const classNamesScrollbarCornerless = `${classNameScrollbar}-cornerless`;\r\nexport const classNamesScrollbarTransitionless = `${classNameScrollbar}-transitionless`;\r\nexport const classNamesScrollbarInteraction = `${classNameScrollbar}-interaction`;\r\nexport const classNamesScrollbarUnusable = `${classNameScrollbar}-unusable`;\r\nexport const classNamesScrollbarAutoHidden = `${classNameScrollbar}-auto-hidden`;\r\nexport const classNamesScrollbarTrackInteractive = `${classNameScrollbarTrack}-interactive`;\r\nexport const classNamesScrollbarHandleInteractive = `${classNameScrollbarHandle}-interactive`;\r\n","import { assignDeep, each, isObject, keys, isArray, hasOwnProperty, isFunction } from 'support';\r\nimport { DeepPartial, DeepReadonly } from 'typings';\r\n\r\nconst opsStringify = (value: any) =>\r\n JSON.stringify(value, (_, val) => {\r\n if (isFunction(val)) {\r\n throw new Error();\r\n }\r\n return val;\r\n });\r\n\r\nexport type ResizeBehavior = 'none' | 'both' | 'horizontal' | 'vertical';\r\n\r\nexport type OverflowBehavior =\r\n | 'hidden'\r\n | 'scroll'\r\n | 'visible'\r\n | 'visible-hidden'\r\n | 'visible-scroll';\r\n\r\nexport type ScrollbarVisibilityBehavior = 'visible' | 'hidden' | 'auto';\r\n\r\nexport type ScrollbarAutoHideBehavior = 'never' | 'scroll' | 'leave' | 'move';\r\n\r\nexport type ScrollBehavior = 'always' | 'ifneeded' | 'never';\r\n\r\nexport type BasicEventCallback = (this: any) => void;\r\n\r\nexport type ScrollEventCallback = (this: any, args?: UIEvent) => void;\r\n\r\nexport type OverflowChangedCallback = (this: any, args?: OverflowChangedArgs) => void;\r\n\r\nexport type OverflowAmountChangedCallback = (this: any, args?: OverflowAmountChangedArgs) => void;\r\n\r\nexport type DirectionChangedCallback = (this: any, args?: DirectionChangedArgs) => void;\r\n\r\nexport type SizeChangedCallback = (this: any, args?: SizeChangedArgs) => void;\r\n\r\nexport type UpdatedCallback = (this: any, args?: UpdatedArgs) => void;\r\n\r\nexport interface Options {\r\n paddingAbsolute: boolean;\r\n showNativeOverlaidScrollbars: boolean;\r\n updating: {\r\n elementEvents: Array<[elementSelector: string, eventNames: string]> | null;\r\n attributes: string[] | null;\r\n debounce: [timeout: number, maxWait: number] | number | null; // (if tuple: [timeout: 0, maxWait: 33], if number: [timeout: number, maxWait: false]) debounce for content Changes\r\n ignoreMutation: ((mutation: MutationRecord) => any) | null;\r\n };\r\n overflow: {\r\n x: OverflowBehavior;\r\n y: OverflowBehavior;\r\n };\r\n scrollbars: {\r\n theme: string | null;\r\n visibility: ScrollbarVisibilityBehavior;\r\n autoHide: ScrollbarAutoHideBehavior;\r\n autoHideDelay: number;\r\n dragScroll: boolean;\r\n clickScroll: boolean;\r\n pointers: string[] | null;\r\n };\r\n}\r\n\r\nexport type ReadonlyOptions = DeepReadonly;\r\n\r\nexport interface OverflowChangedArgs {\r\n x: boolean;\r\n y: boolean;\r\n xScrollable: boolean;\r\n yScrollable: boolean;\r\n clipped: boolean;\r\n}\r\n\r\nexport interface OverflowAmountChangedArgs {\r\n x: number;\r\n y: number;\r\n}\r\n\r\nexport interface DirectionChangedArgs {\r\n isRTL: number;\r\n dir: string;\r\n}\r\n\r\nexport interface SizeChangedArgs {\r\n width: number;\r\n height: number;\r\n}\r\n\r\nexport interface UpdatedArgs {\r\n forced: boolean;\r\n}\r\n\r\nexport const defaultOptions: Options = {\r\n // resize: 'none', // none || both || horizontal || vertical || n || b || h || v\r\n paddingAbsolute: false, // true || false\r\n showNativeOverlaidScrollbars: false, // true || false\r\n updating: {\r\n elementEvents: [['img', 'load']], // array of tuples || null\r\n debounce: [0, 33], // number || number array || null\r\n attributes: null, // string array || null\r\n ignoreMutation: null, // () => any || null\r\n },\r\n overflow: {\r\n x: 'scroll', // visible-hidden || visible-scroll || hidden || scroll || v-h || v-s || h || s\r\n y: 'scroll', // visible-hidden || visible-scroll || hidden || scroll || v-h || v-s || h || s\r\n },\r\n scrollbars: {\r\n theme: 'os-theme-dark',\r\n visibility: 'auto', // visible || hidden || auto || v || h || a\r\n autoHide: 'never', // never || scroll || leave || move || n || s || l || m\r\n autoHideDelay: 1300, // number\r\n dragScroll: true, // true || false\r\n clickScroll: false, // true || false\r\n pointers: ['mouse', 'touch', 'pen'], // null || array of supported pointers: https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent/pointerType\r\n },\r\n};\r\n\r\nexport const getOptionsDiff = (currOptions: T, newOptions: DeepPartial): DeepPartial => {\r\n const diff: DeepPartial = {};\r\n const optionsKeys = keys(newOptions).concat(keys(currOptions));\r\n\r\n each(optionsKeys, (optionKey) => {\r\n const currOptionValue = currOptions[optionKey];\r\n const newOptionValue = newOptions[optionKey];\r\n\r\n if (isObject(currOptionValue) && isObject(newOptionValue)) {\r\n assignDeep((diff[optionKey] = {}), getOptionsDiff(currOptionValue, newOptionValue));\r\n } else if (hasOwnProperty(newOptions, optionKey) && newOptionValue !== currOptionValue) {\r\n let isDiff = true;\r\n\r\n if (isArray(currOptionValue) || isArray(newOptionValue)) {\r\n try {\r\n if (opsStringify(currOptionValue) === opsStringify(newOptionValue)) {\r\n isDiff = false;\r\n }\r\n } catch {}\r\n }\r\n\r\n if (isDiff) {\r\n diff[optionKey] = newOptionValue;\r\n }\r\n }\r\n });\r\n\r\n return diff;\r\n};\r\n","import { each, isArray, keys } from 'support';\r\nimport { OverlayScrollbars, OverlayScrollbarsStatic } from 'overlayscrollbars';\r\n\r\nexport type PluginInstance =\r\n | Record\r\n | ((staticObj: OverlayScrollbarsStatic, instanceObj: OverlayScrollbars) => void);\r\nexport type Plugin = {\r\n [pluginName: string]: T;\r\n};\r\n\r\nconst pluginRegistry: Record = {};\r\n\r\nexport const getPlugins = () => pluginRegistry;\r\n\r\nexport const addPlugin = (addedPlugin: Plugin | Plugin[]) => {\r\n each((isArray(addedPlugin) ? addedPlugin : [addedPlugin]) as Plugin[], (plugin) => {\r\n const pluginName = keys(plugin)[0];\r\n pluginRegistry[pluginName] = plugin[pluginName];\r\n });\r\n};\r\n","function _extends() {\n module.exports = _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import { each, hasOwnProperty, keys, push, isEmptyObject } from 'support/utils';\r\nimport { type, isArray, isUndefined, isPlainObject, isString } from 'support/utils/types';\r\nimport { PlainObject, DeepPartial } from 'typings';\r\n\r\nexport type OptionsObjectType = Record;\r\nexport type OptionsFunctionType = (this: any, ...args: any[]) => any;\r\nexport type OptionsTemplateType = ExtractPropsKey<\r\n OptionsTemplateTypeMap,\r\n T\r\n>;\r\nexport type OptionsTemplateTypes = keyof OptionsTemplateTypeMap;\r\nexport type OptionsTemplateNativeTypes = OptionsTemplateTypeMap[keyof OptionsTemplateTypeMap];\r\n\r\nexport type OptionsTemplateValue = T extends string\r\n ? string extends T\r\n ? OptionsTemplateValueNonEnum\r\n : string\r\n : OptionsTemplateValueNonEnum;\r\n\r\nexport type OptionsTemplate = {\r\n [P in keyof T]: T[P] extends OptionsObjectType\r\n ? OptionsTemplate\r\n : T[P] extends OptionsTemplateNativeTypes\r\n ? OptionsTemplateValue\r\n : never;\r\n};\r\n\r\nexport type OptionsValidationResult = [\r\n DeepPartial, // validated\r\n Record // foreign\r\n];\r\n\r\ntype OptionsTemplateTypeMap = {\r\n __TPL_boolean_TYPE__: boolean;\r\n __TPL_number_TYPE__: number;\r\n __TPL_string_TYPE__: string;\r\n __TPL_array_TYPE__: Array | ReadonlyArray;\r\n __TPL_function_TYPE__: OptionsFunctionType;\r\n __TPL_null_TYPE__: null;\r\n __TPL_object_TYPE__: OptionsObjectType;\r\n};\r\n\r\ntype OptionsTemplateValueNonEnum =\r\n | OptionsTemplateType\r\n | [OptionsTemplateType, ...Array];\r\n\r\ntype ExtractPropsKey = {\r\n [P in keyof T]: TProps extends T[P] ? P : never;\r\n}[keyof T];\r\n\r\ntype OptionsTemplateTypesDictionary = {\r\n readonly boolean: OptionsTemplateType;\r\n readonly number: OptionsTemplateType;\r\n readonly string: OptionsTemplateType;\r\n readonly array: OptionsTemplateType>;\r\n readonly object: OptionsTemplateType;\r\n readonly function: OptionsTemplateType;\r\n readonly null: OptionsTemplateType;\r\n};\r\n\r\nconst optionsTemplateTypes: OptionsTemplateTypesDictionary = {\r\n boolean: '__TPL_boolean_TYPE__',\r\n number: '__TPL_number_TYPE__',\r\n string: '__TPL_string_TYPE__',\r\n array: '__TPL_array_TYPE__',\r\n object: '__TPL_object_TYPE__',\r\n function: '__TPL_function_TYPE__',\r\n null: '__TPL_null_TYPE__',\r\n};\r\n\r\n/**\r\n * Validates the given options object according to the given template object and returns a object which looks like:\r\n * {\r\n * foreign : a object which consists of properties which aren't defined inside the template. (foreign properties)\r\n * validated : a object which consists only of valid properties. (property name is inside the template and value has a correct type)\r\n * }\r\n * @param template The template according to which the options object shall be validated.\r\n * @param options The options object which shall be validated.\r\n * @param optionsDiff When provided the returned validated object will only have properties which are different to this objects properties.\r\n * Example (assume all properties are valid to the template):\r\n * Options object : { a: 'a', b: 'b', c: 'c' }\r\n * optionsDiff object : { a: 'a', b: 'b', c: undefined }\r\n * Returned validated object : { c: 'c' }\r\n * Because the value of the properties a and b didn't change, they aren't included in the returned object.\r\n * Without the optionsDiff object the returned validated object would be: { a: 'a', b: 'b', c: 'c' }\r\n * @param doWriteErrors True if errors shall be logged into the console, false otherwise.\r\n * @param propPath The propertyPath which lead to this object. (used for error logging)\r\n */\r\nconst validateRecursive = (\r\n template: OptionsTemplate,\r\n options: DeepPartial,\r\n doWriteErrors?: boolean,\r\n propPath?: string\r\n): OptionsValidationResult => {\r\n const validatedOptions: DeepPartial = {};\r\n const optionsCopy: DeepPartial = { ...options };\r\n const props = keys(template).filter((prop) => hasOwnProperty(options, prop));\r\n\r\n each(props, (prop: Extract) => {\r\n const optionsValue: any = options[prop];\r\n const templateValue: PlainObject | string | OptionsTemplateTypes | Array =\r\n template[prop];\r\n const templateIsComplex = isPlainObject(templateValue);\r\n const propPrefix = propPath ? `${propPath}.` : '';\r\n\r\n // if the template has a object as value, it means that the options are complex (verschachtelt)\r\n if (templateIsComplex && isPlainObject(optionsValue)) {\r\n const [validated, foreign] = validateRecursive(\r\n templateValue as T,\r\n optionsValue,\r\n doWriteErrors,\r\n propPrefix + prop\r\n );\r\n validatedOptions[prop] = validated as any;\r\n optionsCopy[prop] = foreign as any;\r\n\r\n each([optionsCopy, validatedOptions], (value) => {\r\n if (isEmptyObject(value[prop])) {\r\n delete value[prop];\r\n }\r\n });\r\n } else if (!templateIsComplex) {\r\n let isValid = false;\r\n const errorEnumStrings: Array = [];\r\n const errorPossibleTypes: Array = [];\r\n const optionsValueType = type(optionsValue);\r\n const templateValueArr: Array = !isArray(templateValue)\r\n ? [templateValue as string | OptionsTemplateTypes]\r\n : (templateValue as Array);\r\n\r\n each(templateValueArr, (currTemplateType) => {\r\n // if currType value isn't inside possibleTemplateTypes we assume its a enum string value\r\n let typeString: string | undefined;\r\n each(optionsTemplateTypes, (value: string, key: string) => {\r\n if (value === currTemplateType) {\r\n typeString = key;\r\n }\r\n });\r\n const isEnumString = isUndefined(typeString);\r\n if (isEnumString && isString(optionsValue)) {\r\n // split it into a array which contains all possible values for example: [\"yes\", \"no\", \"maybe\"]\r\n const enumStringSplit = currTemplateType.split(' ');\r\n isValid = !!enumStringSplit.find((possibility) => possibility === optionsValue);\r\n\r\n // build error message\r\n push(errorEnumStrings, enumStringSplit);\r\n } else {\r\n isValid = optionsTemplateTypes[optionsValueType] === currTemplateType;\r\n }\r\n\r\n // build error message\r\n push(errorPossibleTypes, isEnumString ? optionsTemplateTypes.string : typeString!);\r\n\r\n // continue if invalid, break if valid\r\n return !isValid;\r\n });\r\n\r\n if (isValid) {\r\n validatedOptions[prop] = optionsValue;\r\n } else if (doWriteErrors) {\r\n console.warn(\r\n `${\r\n `The option \"${propPrefix}${prop}\" wasn't set, because it doesn't accept the type [ ${optionsValueType.toUpperCase()} ] with the value of \"${optionsValue}\".\\r\\n` +\r\n `Accepted types are: [ ${errorPossibleTypes.join(', ').toUpperCase()} ].\\r\\n`\r\n }${\r\n errorEnumStrings.length > 0\r\n ? `\\r\\nValid strings are: [ ${errorEnumStrings.join(', ')} ].`\r\n : ''\r\n }`\r\n );\r\n }\r\n\r\n delete optionsCopy[prop];\r\n }\r\n });\r\n\r\n return [validatedOptions, optionsCopy]; // optionsCopy equals now to foreign options\r\n};\r\n\r\n/**\r\n * Validates the given options object according to the given template object and returns a tuple which looks like:\r\n * [\r\n * validated : a object which consists only of valid properties. (property name is inside the template and value has a correct type)\r\n * foreign : a object which consists of properties which aren't defined inside the template. (foreign properties)\r\n * ]\r\n * @param template The template according to which the options object shall be validated.\r\n * @param options The options object which shall be validated.\r\n * @param doWriteErrors True if errors shall be logged into the console, false otherwise.\r\n */\r\nconst validateOptions = (\r\n template: OptionsTemplate,\r\n options: DeepPartial,\r\n doWriteErrors?: boolean\r\n): OptionsValidationResult => validateRecursive(template, options, doWriteErrors);\r\n\r\nexport { validateOptions, optionsTemplateTypes };\r\n","import {\r\n Options,\r\n OverflowBehavior,\r\n ScrollbarVisibilityBehavior,\r\n ScrollbarAutoHideBehavior,\r\n} from 'options';\r\nimport {\r\n validateOptions,\r\n OptionsTemplate,\r\n OptionsTemplateValue,\r\n optionsTemplateTypes as oTypes,\r\n} from 'plugins/optionsValidationPlugin/validation';\r\nimport type { DeepPartial } from 'typings';\r\nimport type { Plugin } from 'plugins';\r\n\r\nconst numberAllowedValues: OptionsTemplateValue = oTypes.number;\r\nconst booleanAllowedValues: OptionsTemplateValue = oTypes.boolean;\r\nconst arrayNullValues: OptionsTemplateValue | null> = [oTypes.array, oTypes.null];\r\nconst overflowAllowedValues: OptionsTemplateValue =\r\n 'hidden scroll visible visible-hidden';\r\nconst scrollbarsVisibilityAllowedValues: OptionsTemplateValue =\r\n 'visible hidden auto';\r\nconst scrollbarsAutoHideAllowedValues: OptionsTemplateValue =\r\n 'never scroll leavemove';\r\n\r\nconst optionsTemplate: OptionsTemplate = {\r\n // resize: resizeAllowedValues, // none || both || horizontal || vertical || n || b ||\r\n paddingAbsolute: booleanAllowedValues, // true || false\r\n showNativeOverlaidScrollbars: booleanAllowedValues, // true || false\r\n updating: {\r\n elementEvents: arrayNullValues, // array of tuples || null\r\n attributes: arrayNullValues,\r\n debounce: [oTypes.number, oTypes.array, oTypes.null], // number || number array || null\r\n ignoreMutation: [oTypes.function, oTypes.null], // function || null\r\n },\r\n overflow: {\r\n x: overflowAllowedValues, // visible-hidden || visible-scroll || hidden || scrol\r\n y: overflowAllowedValues, // visible-hidden || visible-scroll || hidden || scrol\r\n },\r\n scrollbars: {\r\n theme: [oTypes.string, oTypes.null], // string || null\r\n visibility: scrollbarsVisibilityAllowedValues, // visible || hidden || auto || v ||\r\n autoHide: scrollbarsAutoHideAllowedValues, // never || scroll || leave || move ||\r\n autoHideDelay: numberAllowedValues, // number\r\n dragScroll: booleanAllowedValues, // true || false\r\n clickScroll: booleanAllowedValues, // true || false\r\n pointers: [oTypes.array, oTypes.null], // string array\r\n },\r\n /*\r\n textarea: {\r\n dynWidth: booleanAllowedValues, // true || false\r\n dynHeight: booleanAllowedValues, // true || false\r\n inheritedAttrs: stringArrayNullAllowedValues, // string || array || nul\r\n },\r\n */\r\n};\r\n\r\nexport type OptionsValidationPluginInstance = {\r\n _: (options: DeepPartial, doWriteErrors?: boolean) => DeepPartial;\r\n};\r\n\r\nexport const optionsValidationPluginName = '__osOptionsValidationPlugin';\r\n\r\nexport const optionsValidationPlugin: Plugin = {\r\n [optionsValidationPluginName]: {\r\n _: (options: DeepPartial, doWriteErrors?: boolean) => {\r\n const [validated, foreign] = validateOptions(optionsTemplate, options, doWriteErrors);\r\n return { ...foreign, ...validated };\r\n },\r\n },\r\n};\r\n","import {\r\n createDOM,\r\n style,\r\n appendChildren,\r\n offsetSize,\r\n scrollLeft,\r\n scrollTop,\r\n on,\r\n addClass,\r\n equalWH,\r\n push,\r\n cAF,\r\n rAF,\r\n stopPropagation,\r\n} from 'support';\r\nimport {\r\n classNameSizeObserverListenerScroll,\r\n classNameSizeObserverListenerItem,\r\n classNameSizeObserverListenerItemFinal,\r\n} from 'classnames';\r\nimport type { Plugin } from 'plugins';\r\n\r\nexport type SizeObserverPluginInstance = {\r\n _: (\r\n listenerElement: HTMLElement,\r\n onSizeChangedCallback: (appear: boolean) => any,\r\n observeAppearChange: boolean\r\n ) => [appearCallback: () => any, offFns: (() => any)[]];\r\n};\r\n\r\nconst scrollAmount = 3333333;\r\nconst scrollEventName = 'scroll';\r\nexport const sizeObserverPluginName = '__osSizeObserverPlugin';\r\n\r\nexport const sizeObserverPlugin: Plugin = {\r\n [sizeObserverPluginName]: {\r\n _: (listenerElement, onSizeChangedCallback, observeAppearChange) => {\r\n const observerElementChildren = createDOM(\r\n `
`\r\n );\r\n appendChildren(listenerElement, observerElementChildren);\r\n addClass(listenerElement, classNameSizeObserverListenerScroll);\r\n const observerElementChildrenRoot = observerElementChildren[0] as HTMLElement;\r\n const shrinkElement = observerElementChildrenRoot.lastChild as HTMLElement;\r\n const expandElement = observerElementChildrenRoot.firstChild as HTMLElement;\r\n const expandElementChild = expandElement?.firstChild as HTMLElement;\r\n\r\n let cacheSize = offsetSize(observerElementChildrenRoot);\r\n let currSize = cacheSize;\r\n let isDirty = false;\r\n let rAFId: number;\r\n\r\n const reset = () => {\r\n scrollLeft(expandElement, scrollAmount);\r\n scrollTop(expandElement, scrollAmount);\r\n scrollLeft(shrinkElement, scrollAmount);\r\n scrollTop(shrinkElement, scrollAmount);\r\n };\r\n const onResized = (appear?: unknown) => {\r\n rAFId = 0;\r\n if (isDirty) {\r\n cacheSize = currSize;\r\n onSizeChangedCallback(appear === true);\r\n }\r\n };\r\n const onScroll = (scrollEvent?: Event | false) => {\r\n currSize = offsetSize(observerElementChildrenRoot);\r\n isDirty = !scrollEvent || !equalWH(currSize, cacheSize);\r\n\r\n if (scrollEvent) {\r\n stopPropagation(scrollEvent);\r\n\r\n if (isDirty && !rAFId) {\r\n cAF!(rAFId);\r\n rAFId = rAF!(onResized);\r\n }\r\n } else {\r\n onResized(scrollEvent === false);\r\n }\r\n\r\n reset();\r\n };\r\n const offListeners = push(\r\n [],\r\n [on(expandElement, scrollEventName, onScroll), on(shrinkElement, scrollEventName, onScroll)]\r\n );\r\n\r\n // lets assume that the divs will never be that large and a constant value is enough\r\n style(expandElementChild, {\r\n width: scrollAmount,\r\n height: scrollAmount,\r\n });\r\n\r\n rAF!(reset);\r\n\r\n return [observeAppearChange ? onScroll.bind(0, false) : reset, offListeners];\r\n },\r\n },\r\n};\r\n","import {\r\n keys,\r\n attr,\r\n WH,\r\n style,\r\n addClass,\r\n removeClass,\r\n noop,\r\n each,\r\n assignDeep,\r\n windowSize,\r\n UpdateCache,\r\n XY,\r\n} from 'support';\r\nimport { classNameViewportArrange } from 'classnames';\r\nimport type { StyleObject } from 'typings';\r\nimport type { StructureSetupState } from 'setups/structureSetup';\r\nimport type {\r\n ViewportOverflowState,\r\n GetViewportOverflowState,\r\n HideNativeScrollbars,\r\n} from 'setups/structureSetup/updateSegments/overflowUpdateSegment';\r\nimport type { InternalEnvironment } from 'environment';\r\nimport type { Plugin } from 'plugins';\r\n\r\nexport type ArrangeViewport = (\r\n viewportOverflowState: ViewportOverflowState,\r\n viewportScrollSize: WH,\r\n sizeFraction: WH,\r\n directionIsRTL: boolean\r\n) => boolean;\r\n\r\nexport type UndoViewportArrangeResult = [\r\n redoViewportArrange: () => void,\r\n overflowState?: ViewportOverflowState\r\n];\r\n\r\nexport type UndoArrangeViewport = (\r\n showNativeOverlaidScrollbars: boolean,\r\n directionIsRTL: boolean,\r\n viewportOverflowState?: ViewportOverflowState\r\n) => UndoViewportArrangeResult;\r\n\r\nexport type ScrollbarsHidingPluginInstance = {\r\n _createUniqueViewportArrangeElement(env: InternalEnvironment): HTMLStyleElement | false;\r\n _overflowUpdateSegment(\r\n doViewportArrange: boolean,\r\n flexboxGlue: boolean,\r\n viewport: HTMLElement,\r\n viewportArrange: HTMLStyleElement | false | null | undefined,\r\n getState: () => StructureSetupState,\r\n getViewportOverflowState: GetViewportOverflowState,\r\n hideNativeScrollbars: HideNativeScrollbars\r\n ): [ArrangeViewport, UndoArrangeViewport];\r\n _envWindowZoom(): (\r\n envInstance: InternalEnvironment,\r\n updateNativeScrollbarSizeCache: UpdateCache>,\r\n triggerEvent: () => void\r\n ) => void;\r\n};\r\n\r\nlet contentArrangeCounter = 0;\r\nconst { round, abs } = Math;\r\nconst getWindowDPR = (): number => {\r\n // eslint-disable-next-line\r\n // @ts-ignore\r\n const dDPI = window.screen.deviceXDPI || 0;\r\n // eslint-disable-next-line\r\n // @ts-ignore\r\n const sDPI = window.screen.logicalXDPI || 1;\r\n return window.devicePixelRatio || dDPI / sDPI;\r\n};\r\n\r\nconst diffBiggerThanOne = (valOne: number, valTwo: number): boolean => {\r\n const absValOne = abs(valOne);\r\n const absValTwo = abs(valTwo);\r\n return !(absValOne === absValTwo || absValOne + 1 === absValTwo || absValOne - 1 === absValTwo);\r\n};\r\n\r\nexport const scrollbarsHidingPluginName = '__osScrollbarsHidingPlugin';\r\n\r\nexport const scrollbarsHidingPlugin: Plugin = {\r\n [scrollbarsHidingPluginName]: {\r\n _createUniqueViewportArrangeElement: (env: InternalEnvironment) => {\r\n const { _nativeScrollbarsHiding, _nativeScrollbarsOverlaid, _cssCustomProperties } = env;\r\n const create =\r\n !_cssCustomProperties &&\r\n !_nativeScrollbarsHiding &&\r\n (_nativeScrollbarsOverlaid.x || _nativeScrollbarsOverlaid.y);\r\n const result = create ? document.createElement('style') : false;\r\n\r\n if (result) {\r\n attr(result, 'id', `${classNameViewportArrange}-${contentArrangeCounter}`);\r\n contentArrangeCounter++;\r\n }\r\n\r\n return result;\r\n },\r\n _overflowUpdateSegment: (\r\n doViewportArrange,\r\n flexboxGlue,\r\n viewport,\r\n viewportArrange,\r\n getState,\r\n getViewportOverflowState,\r\n hideNativeScrollbars\r\n ) => {\r\n /**\r\n * Sets the styles of the viewport arrange element.\r\n * @param viewportOverflowState The viewport overflow state according to which the scrollbars shall be hidden.\r\n * @param viewportScrollSize The content scroll size.\r\n * @param directionIsRTL Whether the direction is RTL or not.\r\n * @returns A boolean which indicates whether the viewport arrange element was adjusted.\r\n */\r\n const arrangeViewport: ArrangeViewport = (\r\n viewportOverflowState,\r\n viewportScrollSize,\r\n sizeFraction,\r\n directionIsRTL\r\n ) => {\r\n if (doViewportArrange) {\r\n const { _viewportPaddingStyle } = getState();\r\n const { _scrollbarsHideOffset, _scrollbarsHideOffsetArrange } = viewportOverflowState;\r\n const { x: arrangeX, y: arrangeY } = _scrollbarsHideOffsetArrange;\r\n const { x: hideOffsetX, y: hideOffsetY } = _scrollbarsHideOffset;\r\n const viewportArrangeHorizontalPaddingKey: keyof StyleObject = directionIsRTL\r\n ? 'paddingRight'\r\n : 'paddingLeft';\r\n const viewportArrangeHorizontalPaddingValue = _viewportPaddingStyle[\r\n viewportArrangeHorizontalPaddingKey\r\n ] as number;\r\n const viewportArrangeVerticalPaddingValue = _viewportPaddingStyle.paddingTop as number;\r\n const fractionalContentWidth = viewportScrollSize.w + sizeFraction.w;\r\n const fractionalContenHeight = viewportScrollSize.h + sizeFraction.h;\r\n const arrangeSize = {\r\n w:\r\n hideOffsetY && arrangeY\r\n ? `${\r\n hideOffsetY + fractionalContentWidth - viewportArrangeHorizontalPaddingValue\r\n }px`\r\n : '',\r\n h:\r\n hideOffsetX && arrangeX\r\n ? `${hideOffsetX + fractionalContenHeight - viewportArrangeVerticalPaddingValue}px`\r\n : '',\r\n };\r\n\r\n // adjust content arrange / before element\r\n if (viewportArrange) {\r\n const { sheet } = viewportArrange;\r\n if (sheet) {\r\n const { cssRules } = sheet;\r\n if (cssRules) {\r\n if (!cssRules.length) {\r\n sheet.insertRule(\r\n `#${attr(viewportArrange, 'id')} + .${classNameViewportArrange}::before {}`,\r\n 0\r\n );\r\n }\r\n\r\n // @ts-ignore\r\n const ruleStyle = cssRules[0].style;\r\n\r\n ruleStyle.width = arrangeSize.w;\r\n ruleStyle.height = arrangeSize.h;\r\n }\r\n }\r\n } else {\r\n style<'--os-vaw' | '--os-vah'>(viewport, {\r\n '--os-vaw': arrangeSize.w,\r\n '--os-vah': arrangeSize.h,\r\n });\r\n }\r\n }\r\n\r\n return doViewportArrange;\r\n };\r\n\r\n /**\r\n * Removes all styles applied because of the viewport arrange strategy.\r\n * @param showNativeOverlaidScrollbars Whether native overlaid scrollbars are shown instead of hidden.\r\n * @param directionIsRTL Whether the direction is RTL or not.\r\n * @param viewportOverflowState The currentviewport overflow state or undefined if it has to be determined.\r\n * @returns A object with a function which applies all the removed styles and the determined viewport vverflow state.\r\n */\r\n const undoViewportArrange: UndoArrangeViewport = (\r\n showNativeOverlaidScrollbars,\r\n directionIsRTL,\r\n viewportOverflowState?\r\n ) => {\r\n if (doViewportArrange) {\r\n const finalViewportOverflowState =\r\n viewportOverflowState || getViewportOverflowState(showNativeOverlaidScrollbars);\r\n const { _viewportPaddingStyle: viewportPaddingStyle } = getState();\r\n const { _scrollbarsHideOffsetArrange } = finalViewportOverflowState;\r\n const { x: arrangeX, y: arrangeY } = _scrollbarsHideOffsetArrange;\r\n const finalPaddingStyle: StyleObject = {};\r\n const assignProps = (props: string) =>\r\n each(props.split(' '), (prop) => {\r\n finalPaddingStyle[prop] = viewportPaddingStyle[prop];\r\n });\r\n\r\n if (arrangeX) {\r\n assignProps('marginBottom paddingTop paddingBottom');\r\n }\r\n\r\n if (arrangeY) {\r\n assignProps('marginLeft marginRight paddingLeft paddingRight');\r\n }\r\n\r\n const prevStyle = style(viewport, keys(finalPaddingStyle));\r\n\r\n removeClass(viewport, classNameViewportArrange);\r\n\r\n if (!flexboxGlue) {\r\n finalPaddingStyle.height = '';\r\n }\r\n\r\n style(viewport, finalPaddingStyle);\r\n\r\n return [\r\n () => {\r\n hideNativeScrollbars(\r\n finalViewportOverflowState,\r\n directionIsRTL,\r\n doViewportArrange,\r\n prevStyle\r\n );\r\n style(viewport, prevStyle);\r\n addClass(viewport, classNameViewportArrange);\r\n },\r\n finalViewportOverflowState,\r\n ];\r\n }\r\n return [noop];\r\n };\r\n\r\n return [arrangeViewport, undoViewportArrange];\r\n },\r\n _envWindowZoom: () => {\r\n let size = { w: 0, h: 0 };\r\n let dpr = 0;\r\n\r\n return (envInstance, updateNativeScrollbarSizeCache, triggerEvent) => {\r\n const sizeNew = windowSize();\r\n const deltaSize = {\r\n w: sizeNew.w - size.w,\r\n h: sizeNew.h - size.h,\r\n };\r\n\r\n if (deltaSize.w === 0 && deltaSize.h === 0) {\r\n return;\r\n }\r\n\r\n const deltaAbsSize = {\r\n w: abs(deltaSize.w),\r\n h: abs(deltaSize.h),\r\n };\r\n const deltaAbsRatio = {\r\n w: abs(round(sizeNew.w / (size.w / 100.0))),\r\n h: abs(round(sizeNew.h / (size.h / 100.0))),\r\n };\r\n const dprNew = getWindowDPR();\r\n const deltaIsBigger = deltaAbsSize.w > 2 && deltaAbsSize.h > 2;\r\n const difference = !diffBiggerThanOne(deltaAbsRatio.w, deltaAbsRatio.h);\r\n const dprChanged = dprNew !== dpr && dprNew > 0;\r\n const isZoom = deltaIsBigger && difference && dprChanged;\r\n\r\n if (isZoom) {\r\n const [scrollbarSize, scrollbarSizeChanged] = updateNativeScrollbarSizeCache();\r\n\r\n assignDeep(envInstance._nativeScrollbarsSize, scrollbarSize); // keep the object same!\r\n\r\n if (scrollbarSizeChanged) {\r\n triggerEvent();\r\n }\r\n }\r\n\r\n size = sizeNew;\r\n dpr = dprNew;\r\n };\r\n },\r\n },\r\n};\r\n","import {\r\n createDOM,\r\n addClass,\r\n style,\r\n appendChildren,\r\n fractionalSize,\r\n clientSize,\r\n absoluteCoordinates,\r\n offsetSize,\r\n scrollLeft,\r\n XY,\r\n removeAttr,\r\n removeElements,\r\n equalBCRWH,\r\n getBoundingClientRect,\r\n assignDeep,\r\n cssProperty,\r\n createCache,\r\n equalXY,\r\n createEventListenerHub,\r\n EventListener,\r\n} from 'support';\r\nimport {\r\n classNameEnvironment,\r\n classNameEnvironmentFlexboxGlue,\r\n classNameEnvironmentFlexboxGlueMax,\r\n classNameViewportScrollbarHidden,\r\n} from 'classnames';\r\nimport { Options, defaultOptions } from 'options';\r\nimport { DeepPartial } from 'typings';\r\nimport { Initialization } from 'initialization';\r\nimport { getPlugins, ScrollbarsHidingPluginInstance, scrollbarsHidingPluginName } from 'plugins';\r\n\r\ntype EnvironmentEventMap = {\r\n _: [];\r\n};\r\n\r\nexport interface InternalEnvironment {\r\n readonly _nativeScrollbarsSize: XY;\r\n readonly _nativeScrollbarsOverlaid: XY;\r\n readonly _nativeScrollbarsHiding: boolean;\r\n readonly _rtlScrollBehavior: { n: boolean; i: boolean };\r\n readonly _flexboxGlue: boolean;\r\n readonly _cssCustomProperties: boolean;\r\n readonly _staticDefaultInitialization: Initialization;\r\n readonly _staticDefaultOptions: Options;\r\n _addListener(listener: EventListener): () => void;\r\n _getDefaultInitialization(): Initialization;\r\n _setDefaultInitialization(newInitialization: DeepPartial): void;\r\n _getDefaultOptions(): Options;\r\n _setDefaultOptions(newDefaultOptions: DeepPartial): void;\r\n}\r\n\r\nlet environmentInstance: InternalEnvironment;\r\n\r\nconst getNativeScrollbarSize = (\r\n body: HTMLElement,\r\n measureElm: HTMLElement,\r\n measureElmChild: HTMLElement,\r\n clear?: boolean\r\n): XY => {\r\n appendChildren(body, measureElm);\r\n\r\n const cSize = clientSize(measureElm);\r\n const oSize = offsetSize(measureElm);\r\n const fSize = fractionalSize(measureElmChild);\r\n\r\n clear && removeElements(measureElm);\r\n\r\n return {\r\n x: oSize.h - cSize.h + fSize.h,\r\n y: oSize.w - cSize.w + fSize.w,\r\n };\r\n};\r\n\r\nconst getNativeScrollbarsHiding = (testElm: HTMLElement): boolean => {\r\n let result = false;\r\n const revertClass = addClass(testElm, classNameViewportScrollbarHidden);\r\n try {\r\n result =\r\n style(testElm, cssProperty('scrollbar-width')) === 'none' ||\r\n window.getComputedStyle(testElm, '::-webkit-scrollbar').getPropertyValue('display') ===\r\n 'none';\r\n } catch (ex) {}\r\n revertClass();\r\n return result;\r\n};\r\n\r\nconst getRtlScrollBehavior = (\r\n parentElm: HTMLElement,\r\n childElm: HTMLElement\r\n): { i: boolean; n: boolean } => {\r\n const strHidden = 'hidden';\r\n style(parentElm, { overflowX: strHidden, overflowY: strHidden, direction: 'rtl' });\r\n scrollLeft(parentElm, 0);\r\n\r\n const parentOffset = absoluteCoordinates(parentElm);\r\n const childOffset = absoluteCoordinates(childElm);\r\n scrollLeft(parentElm, -999); // https://github.com/KingSora/OverlayScrollbars/issues/187\r\n const childOffsetAfterScroll = absoluteCoordinates(childElm);\r\n return {\r\n /**\r\n * origin direction = determines if the zero scroll position is on the left or right side\r\n * 'i' means 'invert' (i === true means that the axis must be inverted to be correct)\r\n * true = on the left side\r\n * false = on the right side\r\n */\r\n i: parentOffset.x === childOffset.x,\r\n /**\r\n * negative = determines if the maximum scroll is positive or negative\r\n * 'n' means 'negate' (n === true means that the axis must be negated to be correct)\r\n * true = negative\r\n * false = positive\r\n */\r\n n: childOffset.x !== childOffsetAfterScroll.x,\r\n };\r\n};\r\n\r\nconst getFlexboxGlue = (parentElm: HTMLElement, childElm: HTMLElement): boolean => {\r\n const revertFbxGlue = addClass(parentElm, classNameEnvironmentFlexboxGlue);\r\n const minOffsetsizeParent = getBoundingClientRect(parentElm);\r\n const minOffsetsize = getBoundingClientRect(childElm);\r\n const supportsMin = equalBCRWH(minOffsetsize, minOffsetsizeParent, true);\r\n\r\n const revertFbxGlueMax = addClass(parentElm, classNameEnvironmentFlexboxGlueMax);\r\n const maxOffsetsizeParent = getBoundingClientRect(parentElm);\r\n const maxOffsetsize = getBoundingClientRect(childElm);\r\n const supportsMax = equalBCRWH(maxOffsetsize, maxOffsetsizeParent, true);\r\n\r\n revertFbxGlue();\r\n revertFbxGlueMax();\r\n\r\n return supportsMin && supportsMax;\r\n};\r\n\r\nconst createEnvironment = (): InternalEnvironment => {\r\n const { body } = document;\r\n const envDOM = createDOM(`
`);\r\n const envElm = envDOM[0] as HTMLElement;\r\n const envChildElm = envElm.firstChild as HTMLElement;\r\n const [addEvent, , triggerEvent] = createEventListenerHub();\r\n const [updateNativeScrollbarSizeCache, getNativeScrollbarSizeCache] = createCache(\r\n {\r\n _initialValue: getNativeScrollbarSize(body, envElm, envChildElm),\r\n _equal: equalXY,\r\n },\r\n getNativeScrollbarSize.bind(0, body, envElm, envChildElm, true)\r\n );\r\n const [nativeScrollbarsSize] = getNativeScrollbarSizeCache();\r\n const nativeScrollbarsHiding = getNativeScrollbarsHiding(envElm);\r\n const nativeScrollbarsOverlaid = {\r\n x: nativeScrollbarsSize.x === 0,\r\n y: nativeScrollbarsSize.y === 0,\r\n };\r\n const staticDefaultInitialization: Initialization = {\r\n host: null,\r\n padding: !nativeScrollbarsHiding,\r\n viewport: (target) => nativeScrollbarsHiding && target === target.ownerDocument.body && target,\r\n content: false,\r\n scrollbarsSlot: true,\r\n cancel: {\r\n nativeScrollbarsOverlaid: true,\r\n body: null,\r\n },\r\n };\r\n const staticDefaultOptions = assignDeep({}, defaultOptions);\r\n\r\n const env: InternalEnvironment = {\r\n _nativeScrollbarsSize: nativeScrollbarsSize,\r\n _nativeScrollbarsOverlaid: nativeScrollbarsOverlaid,\r\n _nativeScrollbarsHiding: nativeScrollbarsHiding,\r\n _cssCustomProperties: style(envElm, 'zIndex') === '-1',\r\n _rtlScrollBehavior: getRtlScrollBehavior(envElm, envChildElm),\r\n _flexboxGlue: getFlexboxGlue(envElm, envChildElm),\r\n _addListener: (listener) => addEvent('_', listener),\r\n _getDefaultInitialization: assignDeep.bind(\r\n 0,\r\n {} as Initialization,\r\n staticDefaultInitialization\r\n ),\r\n _setDefaultInitialization(newInitializationStrategy) {\r\n assignDeep(staticDefaultInitialization, newInitializationStrategy);\r\n },\r\n _getDefaultOptions: assignDeep.bind(0, {} as Options, staticDefaultOptions),\r\n _setDefaultOptions(newDefaultOptions) {\r\n assignDeep(staticDefaultOptions, newDefaultOptions);\r\n },\r\n _staticDefaultInitialization: assignDeep({}, staticDefaultInitialization),\r\n _staticDefaultOptions: assignDeep({}, staticDefaultOptions),\r\n };\r\n\r\n removeAttr(envElm, 'style');\r\n removeElements(envElm);\r\n\r\n if (!nativeScrollbarsHiding && (!nativeScrollbarsOverlaid.x || !nativeScrollbarsOverlaid.y)) {\r\n let resizeFn: undefined | ReturnType;\r\n window.addEventListener('resize', () => {\r\n const scrollbarsHidingPlugin = getPlugins()[scrollbarsHidingPluginName] as\r\n | ScrollbarsHidingPluginInstance\r\n | undefined;\r\n\r\n resizeFn = resizeFn || (scrollbarsHidingPlugin && scrollbarsHidingPlugin._envWindowZoom());\r\n resizeFn && resizeFn(env, updateNativeScrollbarSizeCache, triggerEvent.bind(0, '_'));\r\n });\r\n }\r\n\r\n return env;\r\n};\r\n\r\nconst getEnvironment = (): InternalEnvironment => {\r\n if (!environmentInstance) {\r\n environmentInstance = createEnvironment();\r\n }\r\n return environmentInstance;\r\n};\r\n\r\nexport { getEnvironment };\r\n","import { isFunction, isHTMLElement, isNull, isUndefined } from 'support';\r\nimport type { StructureInitialization } from 'setups/structureSetup';\r\nimport type { ScrollbarsInitialization } from 'setups/scrollbarsSetup';\r\nimport { getEnvironment } from 'environment';\r\nimport { DeepPartial } from 'typings';\r\nimport { StructureSetupElementsObj } from 'setups/structureSetup/structureSetup.elements';\r\n\r\ntype StaticInitialization = HTMLElement | false | null;\r\ntype DynamicInitialization = HTMLElement | boolean | null;\r\n\r\nexport type InitializationTargetElement = HTMLElement | HTMLTextAreaElement;\r\n\r\nexport type Initialization = Omit &\r\n ScrollbarsInitialization & {\r\n cancel: {\r\n nativeScrollbarsOverlaid: boolean;\r\n body: boolean | null;\r\n };\r\n };\r\n\r\nexport type InitializationTargetObject = DeepPartial &\r\n Pick;\r\n\r\nexport type InitializationTarget = InitializationTargetElement | InitializationTargetObject;\r\n\r\n/**\r\n * Static elements MUST be present.\r\n * With false, null or undefined the element will be generated, otherwise the specified element is taken.\r\n */\r\nexport type StaticInitializationElement =\r\n | ((...args: Args) => StaticInitialization)\r\n | StaticInitialization;\r\n\r\n/**\r\n * Dynamic element CAN be present.\r\n * If its a element the element will be taken as the repsective element.\r\n * With true the element will be generated.\r\n * With false, null or undefined the element won't be generated.\r\n */\r\nexport type DynamicInitializationElement =\r\n | ((...args: Args) => DynamicInitialization)\r\n | DynamicInitialization;\r\n\r\nexport type FallbackInitializtationElement<\r\n InitElm extends StaticInitializationElement | DynamicInitializationElement\r\n> = Extract any> extends (...args: infer P) => any\r\n ? (...args: P) => HTMLElement\r\n : never;\r\n\r\nconst resolveInitialization = (value: any, args: any): T =>\r\n isFunction(value) ? value.apply(0, args) : value;\r\n\r\nconst staticInitializationElement = >(\r\n args: Parameters any>>,\r\n fallbackStaticInitializationElement: FallbackInitializtationElement,\r\n defaultStaticInitializationElementStrategy: T,\r\n staticInitializationElementValue?: T\r\n): HTMLElement => {\r\n const staticInitialization = isUndefined(staticInitializationElementValue)\r\n ? defaultStaticInitializationElementStrategy\r\n : staticInitializationElementValue;\r\n const resolvedInitialization = resolveInitialization(\r\n staticInitialization,\r\n args\r\n );\r\n return resolvedInitialization || fallbackStaticInitializationElement();\r\n};\r\n\r\nconst dynamicInitializationElement = >(\r\n args: Parameters any>>,\r\n fallbackDynamicInitializationElement: FallbackInitializtationElement,\r\n defaultDynamicInitializationElementStrategy: T,\r\n dynamicInitializationElementValue?: T\r\n): HTMLElement | false => {\r\n const dynamicInitialization = isUndefined(dynamicInitializationElementValue)\r\n ? defaultDynamicInitializationElementStrategy\r\n : dynamicInitializationElementValue;\r\n const resolvedInitialization = resolveInitialization(\r\n dynamicInitialization,\r\n args\r\n );\r\n return (\r\n !!resolvedInitialization &&\r\n (isHTMLElement(resolvedInitialization)\r\n ? resolvedInitialization\r\n : fallbackDynamicInitializationElement())\r\n );\r\n};\r\n\r\nconst cancelInitialization = (\r\n cancelInitializationValue: DeepPartial | false | null | undefined,\r\n structureSetupElements: StructureSetupElementsObj\r\n): boolean => {\r\n const { nativeScrollbarsOverlaid, body } = cancelInitializationValue || {};\r\n const { _isBody, _viewportIsTarget } = structureSetupElements;\r\n const { _getDefaultInitialization, _nativeScrollbarsOverlaid } = getEnvironment();\r\n const { nativeScrollbarsOverlaid: defaultNativeScrollbarsOverlaid, body: defaultbody } =\r\n _getDefaultInitialization().cancel;\r\n\r\n const resolvedNativeScrollbarsOverlaid =\r\n nativeScrollbarsOverlaid ?? defaultNativeScrollbarsOverlaid;\r\n const resolvedDocumentScrollingElement = isUndefined(body) ? defaultbody : body;\r\n\r\n const finalNativeScrollbarsOverlaid =\r\n (_nativeScrollbarsOverlaid.x || _nativeScrollbarsOverlaid.y) &&\r\n resolvedNativeScrollbarsOverlaid;\r\n const finalDocumentScrollingElement =\r\n _isBody &&\r\n (isNull(resolvedDocumentScrollingElement)\r\n ? !_viewportIsTarget\r\n : resolvedDocumentScrollingElement);\r\n\r\n return !!finalNativeScrollbarsOverlaid || !!finalDocumentScrollingElement;\r\n};\r\n\r\nexport { staticInitializationElement, dynamicInitializationElement, cancelInitialization };\r\n","import {\r\n isHTMLElement,\r\n appendChildren,\r\n createDiv,\r\n is,\r\n contents,\r\n insertAfter,\r\n addClass,\r\n parent,\r\n indexOf,\r\n removeElements,\r\n removeClass,\r\n hasClass,\r\n push,\r\n runEachAndClear,\r\n insertBefore,\r\n attr,\r\n keys,\r\n removeAttr,\r\n attrClass,\r\n hasAttrClass,\r\n noop,\r\n} from 'support';\r\nimport {\r\n dataAttributeHost,\r\n dataAttributeHostOverflowX,\r\n dataAttributeHostOverflowY,\r\n classNamePadding,\r\n classNameViewport,\r\n classNameContent,\r\n classNameViewportScrollbarHidden,\r\n} from 'classnames';\r\nimport { getEnvironment } from 'environment';\r\nimport { getPlugins, scrollbarsHidingPluginName } from 'plugins';\r\nimport type { ScrollbarsHidingPluginInstance } from 'plugins/scrollbarsHidingPlugin';\r\nimport {\r\n staticInitializationElement as generalStaticInitializationElement,\r\n dynamicInitializationElement as generalDynamicInitializationElement,\r\n} from 'initialization';\r\nimport type {\r\n InitializationTarget,\r\n InitializationTargetElement,\r\n InitializationTargetObject,\r\n} from 'initialization';\r\nimport type {\r\n StructureDynamicInitializationElement,\r\n StructureStaticInitializationElement,\r\n} from 'setups/structureSetup/structureSetup.initialization';\r\n\r\nexport type StructureSetupElements = [\r\n targetObj: StructureSetupElementsObj,\r\n appendElements: () => void,\r\n destroy: () => void\r\n];\r\n\r\nexport interface StructureSetupElementsObj {\r\n _target: InitializationTargetElement;\r\n _host: HTMLElement;\r\n _viewport: HTMLElement;\r\n _padding: HTMLElement | false;\r\n _content: HTMLElement | false;\r\n _viewportArrange: HTMLStyleElement | false | null | undefined;\r\n _scrollOffsetElement: HTMLElement;\r\n _scrollEventElement: HTMLElement | Document;\r\n // ctx ----\r\n _isTextarea: boolean;\r\n _isBody: boolean;\r\n _windowElm: Window;\r\n _documentElm: Document;\r\n _targetIsElm: boolean;\r\n _viewportIsTarget: boolean;\r\n _viewportHasClass: (className: string, attributeClassName: string) => boolean;\r\n _viewportAddRemoveClass: (className: string, attributeClassName: string, add?: boolean) => void;\r\n}\r\n\r\nconst createNewDiv = createDiv.bind(0, '');\r\n\r\nconst unwrap = (elm: HTMLElement | false | null | undefined) => {\r\n appendChildren(parent(elm), contents(elm));\r\n removeElements(elm);\r\n};\r\n\r\nconst addDataAttrHost = (elm: HTMLElement, value: string) => {\r\n attr(elm, dataAttributeHost, value);\r\n return removeAttr.bind(0, elm, dataAttributeHost);\r\n};\r\n\r\nexport const createStructureSetupElements = (\r\n target: InitializationTarget\r\n): StructureSetupElements => {\r\n const env = getEnvironment();\r\n const { _getDefaultInitialization, _nativeScrollbarsHiding } = env;\r\n const scrollbarsHidingPlugin = getPlugins()[scrollbarsHidingPluginName] as\r\n | ScrollbarsHidingPluginInstance\r\n | undefined;\r\n const createUniqueViewportArrangeElement =\r\n scrollbarsHidingPlugin && scrollbarsHidingPlugin._createUniqueViewportArrangeElement;\r\n const {\r\n host: defaultHostInitialization,\r\n viewport: defaultViewportInitialization,\r\n padding: defaultPaddingInitialization,\r\n content: defaultContentInitialization,\r\n } = _getDefaultInitialization();\r\n const targetIsElm = isHTMLElement(target);\r\n const targetStructureInitialization = (targetIsElm ? {} : target) as InitializationTargetObject;\r\n const {\r\n host: hostInitialization,\r\n padding: paddingInitialization,\r\n viewport: viewportInitialization,\r\n content: contentInitialization,\r\n } = targetStructureInitialization;\r\n\r\n const targetElement = targetIsElm ? target : targetStructureInitialization.target;\r\n const isTextarea = is(targetElement, 'textarea');\r\n const ownerDocument = targetElement.ownerDocument;\r\n const isBody = targetElement === ownerDocument.body;\r\n const wnd = ownerDocument.defaultView as Window;\r\n const staticInitializationElement =\r\n generalStaticInitializationElement.bind(0, [\r\n targetElement,\r\n ]);\r\n const dynamicInitializationElement =\r\n generalDynamicInitializationElement.bind(0, [\r\n targetElement,\r\n ]);\r\n const viewportElement = staticInitializationElement(\r\n createNewDiv,\r\n defaultViewportInitialization,\r\n viewportInitialization\r\n );\r\n const viewportIsTarget = viewportElement === targetElement;\r\n const viewportIsTargetBody = viewportIsTarget && isBody;\r\n const evaluatedTargetObj: StructureSetupElementsObj = {\r\n _target: targetElement,\r\n _host: isTextarea\r\n ? staticInitializationElement(createNewDiv, defaultHostInitialization, hostInitialization)\r\n : (targetElement as HTMLElement),\r\n _viewport: viewportElement,\r\n _padding:\r\n !viewportIsTarget &&\r\n dynamicInitializationElement(\r\n createNewDiv,\r\n defaultPaddingInitialization,\r\n paddingInitialization\r\n ),\r\n _content:\r\n !viewportIsTarget &&\r\n dynamicInitializationElement(\r\n createNewDiv,\r\n defaultContentInitialization,\r\n contentInitialization\r\n ),\r\n _viewportArrange:\r\n !viewportIsTarget &&\r\n !_nativeScrollbarsHiding &&\r\n createUniqueViewportArrangeElement &&\r\n createUniqueViewportArrangeElement(env),\r\n _scrollOffsetElement: viewportIsTargetBody ? ownerDocument.documentElement : viewportElement,\r\n _scrollEventElement: viewportIsTargetBody ? ownerDocument : viewportElement,\r\n _windowElm: wnd,\r\n _documentElm: ownerDocument,\r\n _isTextarea: isTextarea,\r\n _isBody: isBody,\r\n _targetIsElm: targetIsElm,\r\n _viewportIsTarget: viewportIsTarget,\r\n _viewportHasClass: (className: string, attributeClassName: string) =>\r\n viewportIsTarget\r\n ? hasAttrClass(viewportElement, dataAttributeHost, attributeClassName)\r\n : hasClass(viewportElement, className),\r\n _viewportAddRemoveClass: (className: string, attributeClassName: string, add?: boolean) =>\r\n viewportIsTarget\r\n ? attrClass(viewportElement, dataAttributeHost, attributeClassName, add)\r\n : (add ? addClass : removeClass)(viewportElement, className),\r\n };\r\n const generatedElements = keys(evaluatedTargetObj).reduce((arr, key: string) => {\r\n const value = evaluatedTargetObj[key];\r\n return push(arr, value && !parent(value) ? value : false);\r\n }, [] as HTMLElement[]);\r\n const elementIsGenerated = (elm: HTMLElement | false) =>\r\n elm ? indexOf(generatedElements, elm) > -1 : null;\r\n const { _target, _host, _padding, _viewport, _content, _viewportArrange } = evaluatedTargetObj;\r\n const destroyFns: (() => any)[] = [];\r\n const isTextareaHostGenerated = isTextarea && elementIsGenerated(_host);\r\n const targetContents = isTextarea\r\n ? _target\r\n : contents(\r\n [_content, _viewport, _padding, _host, _target].find(\r\n (elm) => elementIsGenerated(elm) === false\r\n )\r\n );\r\n const contentSlot = _content || _viewport;\r\n const appendElements = () => {\r\n const removeHostDataAttr = addDataAttrHost(_host, viewportIsTarget ? 'viewport' : 'host');\r\n const removePaddingClass = addClass(_padding, classNamePadding);\r\n const removeViewportClass = addClass(_viewport, !viewportIsTarget && classNameViewport);\r\n const removeContentClass = addClass(_content, classNameContent);\r\n const removeHtmlClass = viewportIsTargetBody\r\n ? addClass(parent(targetElement), classNameViewportScrollbarHidden)\r\n : noop;\r\n\r\n // only insert host for textarea after target if it was generated\r\n if (isTextareaHostGenerated) {\r\n insertAfter(_target, _host);\r\n\r\n push(destroyFns, () => {\r\n insertAfter(_host, _target);\r\n removeElements(_host);\r\n });\r\n }\r\n\r\n appendChildren(contentSlot, targetContents);\r\n appendChildren(_host, _padding);\r\n appendChildren(_padding || _host, !viewportIsTarget && _viewport);\r\n appendChildren(_viewport, _content);\r\n\r\n push(destroyFns, () => {\r\n removeHtmlClass();\r\n removeHostDataAttr();\r\n removeAttr(_viewport, dataAttributeHostOverflowX);\r\n removeAttr(_viewport, dataAttributeHostOverflowY);\r\n\r\n if (elementIsGenerated(_content)) {\r\n unwrap(_content);\r\n }\r\n if (elementIsGenerated(_viewport)) {\r\n unwrap(_viewport);\r\n }\r\n if (elementIsGenerated(_padding)) {\r\n unwrap(_padding);\r\n }\r\n removePaddingClass();\r\n removeViewportClass();\r\n removeContentClass();\r\n });\r\n\r\n if (_nativeScrollbarsHiding && !viewportIsTarget) {\r\n push(destroyFns, removeClass.bind(0, _viewport, classNameViewportScrollbarHidden));\r\n }\r\n if (_viewportArrange) {\r\n insertBefore(_viewport, _viewportArrange);\r\n push(destroyFns, removeElements.bind(0, _viewportArrange));\r\n }\r\n };\r\n\r\n return [evaluatedTargetObj, appendElements, runEachAndClear.bind(0, destroyFns)];\r\n};\r\n","import { style } from 'support';\r\nimport { getEnvironment } from 'environment';\r\nimport type { CreateStructureUpdateSegment } from 'setups/structureSetup/structureSetup.update';\r\n\r\n/**\r\n * Lifecycle with the responsibility to adjust the trinsic behavior of the content element.\r\n * @param structureUpdateHub\r\n * @returns\r\n */\r\nexport const createTrinsicUpdateSegment: CreateStructureUpdateSegment = (\r\n structureSetupElements,\r\n state\r\n) => {\r\n const { _content } = structureSetupElements;\r\n const [getState] = state;\r\n\r\n return (updateHints) => {\r\n const { _flexboxGlue } = getEnvironment();\r\n const { _heightIntrinsic } = getState();\r\n const { _heightIntrinsicChanged } = updateHints;\r\n const heightIntrinsicChanged = (_content || !_flexboxGlue) && _heightIntrinsicChanged;\r\n\r\n if (heightIntrinsicChanged) {\r\n style(_content, {\r\n height: _heightIntrinsic ? '' : '100%',\r\n });\r\n }\r\n\r\n return {\r\n _sizeChanged: heightIntrinsicChanged,\r\n _contentMutation: heightIntrinsicChanged,\r\n };\r\n };\r\n};\r\n","import { createCache, topRightBottomLeft, equalTRBL, style, assignDeep } from 'support';\r\nimport { StyleObject } from 'typings';\r\nimport { getEnvironment } from 'environment';\r\nimport type { CreateStructureUpdateSegment } from 'setups/structureSetup/structureSetup.update';\r\n\r\n/**\r\n * Lifecycle with the responsibility to adjust the padding styling of the padding and viewport element.\r\n * @param structureUpdateHub\r\n * @returns\r\n */\r\nexport const createPaddingUpdateSegment: CreateStructureUpdateSegment = (\r\n structureSetupElements,\r\n state\r\n) => {\r\n const [getState, setState] = state;\r\n const { _host, _padding, _viewport, _viewportIsTarget: _isSingleElm } = structureSetupElements;\r\n const [updatePaddingCache, currentPaddingCache] = createCache(\r\n {\r\n _equal: equalTRBL,\r\n _initialValue: topRightBottomLeft(),\r\n },\r\n topRightBottomLeft.bind(0, _host, 'padding', '')\r\n );\r\n\r\n return (updateHints, checkOption, force) => {\r\n let [padding, paddingChanged] = currentPaddingCache(force);\r\n const { _nativeScrollbarsHiding: _nativeScrollbarStyling, _flexboxGlue } = getEnvironment();\r\n const { _directionIsRTL } = getState();\r\n const { _sizeChanged, _contentMutation, _directionChanged } = updateHints;\r\n const [paddingAbsolute, paddingAbsoluteChanged] = checkOption('paddingAbsolute');\r\n const contentMutation = !_flexboxGlue && _contentMutation;\r\n\r\n if (_sizeChanged || paddingChanged || contentMutation) {\r\n [padding, paddingChanged] = updatePaddingCache(force);\r\n }\r\n\r\n const paddingStyleChanged =\r\n !_isSingleElm && (paddingAbsoluteChanged || _directionChanged || paddingChanged);\r\n\r\n if (paddingStyleChanged) {\r\n // if there is no padding element and no scrollbar styling, paddingAbsolute isn't supported\r\n const paddingRelative = !paddingAbsolute || (!_padding && !_nativeScrollbarStyling);\r\n const paddingHorizontal = padding.r + padding.l;\r\n const paddingVertical = padding.t + padding.b;\r\n\r\n const paddingStyle: StyleObject = {\r\n marginRight: paddingRelative && !_directionIsRTL ? -paddingHorizontal : 0,\r\n marginBottom: paddingRelative ? -paddingVertical : 0,\r\n marginLeft: paddingRelative && _directionIsRTL ? -paddingHorizontal : 0,\r\n top: paddingRelative ? -padding.t : 0,\r\n right: paddingRelative ? (_directionIsRTL ? -padding.r : 'auto') : 0,\r\n left: paddingRelative ? (_directionIsRTL ? 'auto' : -padding.l) : 0,\r\n width: paddingRelative ? `calc(100% + ${paddingHorizontal}px)` : '',\r\n };\r\n const viewportStyle: StyleObject = {\r\n paddingTop: paddingRelative ? padding.t : 0,\r\n paddingRight: paddingRelative ? padding.r : 0,\r\n paddingBottom: paddingRelative ? padding.b : 0,\r\n paddingLeft: paddingRelative ? padding.l : 0,\r\n };\r\n\r\n // if there is no padding element apply the style to the viewport element instead\r\n style(_padding || _viewport, paddingStyle);\r\n style(_viewport, viewportStyle);\r\n\r\n setState({\r\n _padding: padding,\r\n _paddingAbsolute: !paddingRelative,\r\n _viewportPaddingStyle: _padding\r\n ? viewportStyle\r\n : assignDeep({}, paddingStyle, viewportStyle),\r\n });\r\n }\r\n\r\n return {\r\n _paddingStyleChanged: paddingStyleChanged,\r\n };\r\n };\r\n};\r\n","import {\r\n createCache,\r\n attr,\r\n WH,\r\n XY,\r\n style,\r\n scrollSize,\r\n fractionalSize,\r\n equalWH,\r\n addClass,\r\n removeClass,\r\n clientSize,\r\n equalXY,\r\n attrClass,\r\n noop,\r\n} from 'support';\r\nimport { getEnvironment } from 'environment';\r\nimport {\r\n classNameViewportScrollbarHidden,\r\n classNameOverflowVisible,\r\n dataAttributeHost,\r\n dataAttributeHostOverflowX,\r\n dataAttributeHostOverflowY,\r\n dataValueHostScrollbarHidden,\r\n dataValueHostOverflowVisible,\r\n} from 'classnames';\r\nimport { getPlugins, scrollbarsHidingPluginName } from 'plugins';\r\nimport type {\r\n ScrollbarsHidingPluginInstance,\r\n ArrangeViewport,\r\n UndoArrangeViewport,\r\n} from 'plugins/scrollbarsHidingPlugin';\r\nimport type { StyleObject, OverflowStyle } from 'typings';\r\nimport type { OverflowBehavior } from 'options';\r\nimport type { CreateStructureUpdateSegment } from 'setups/structureSetup/structureSetup.update';\r\n\r\nexport interface ViewportOverflowState {\r\n _scrollbarsHideOffset: XY;\r\n _scrollbarsHideOffsetArrange: XY;\r\n _overflowScroll: XY;\r\n _overflowStyle: XY;\r\n}\r\n\r\nexport type GetViewportOverflowState = (\r\n showNativeOverlaidScrollbars: boolean,\r\n viewportStyleObj?: StyleObject\r\n) => ViewportOverflowState;\r\n\r\nexport type HideNativeScrollbars = (\r\n viewportOverflowState: ViewportOverflowState,\r\n directionIsRTL: boolean,\r\n viewportArrange: boolean,\r\n viewportStyleObj: StyleObject\r\n) => void;\r\n\r\nconst { max } = Math;\r\nconst max0 = max.bind(0, 0);\r\nconst strVisible = 'visible';\r\nconst strHidden = 'hidden';\r\nconst overlaidScrollbarsHideOffset = 42;\r\nconst whCacheOptions = {\r\n _equal: equalWH,\r\n _initialValue: { w: 0, h: 0 },\r\n};\r\nconst xyCacheOptions = {\r\n _equal: equalXY,\r\n _initialValue: { x: strHidden, y: strHidden } as XY,\r\n};\r\n\r\nconst getOverflowAmount = (viewportScrollSize: WH, viewportClientSize: WH) => {\r\n const tollerance = window.devicePixelRatio % 1 !== 0 ? 1 : 0;\r\n const amount = {\r\n w: max0(viewportScrollSize.w - viewportClientSize.w),\r\n h: max0(viewportScrollSize.h - viewportClientSize.h),\r\n };\r\n\r\n return {\r\n w: amount.w > tollerance ? amount.w : 0,\r\n h: amount.h > tollerance ? amount.h : 0,\r\n };\r\n};\r\n\r\nconst conditionalClass = (\r\n elm: Element | false | null | undefined,\r\n classNames: string,\r\n add: boolean\r\n) => (add ? addClass(elm, classNames) : removeClass(elm, classNames));\r\n\r\nconst overflowIsVisible = (overflowBehavior: string) => overflowBehavior.indexOf(strVisible) === 0;\r\n\r\n/**\r\n * Lifecycle with the responsibility to set the correct overflow and scrollbar hiding styles of the viewport element.\r\n * @param structureUpdateHub\r\n * @returns\r\n */\r\nexport const createOverflowUpdateSegment: CreateStructureUpdateSegment = (\r\n structureSetupElements,\r\n state\r\n) => {\r\n const [getState, setState] = state;\r\n const {\r\n _host,\r\n _padding,\r\n _viewport,\r\n _viewportArrange,\r\n _viewportIsTarget,\r\n _viewportAddRemoveClass,\r\n _isBody,\r\n _windowElm,\r\n } = structureSetupElements;\r\n const {\r\n _nativeScrollbarsSize,\r\n _flexboxGlue,\r\n _nativeScrollbarsHiding,\r\n _nativeScrollbarsOverlaid,\r\n } = getEnvironment();\r\n const scrollbarsHidingPlugin = getPlugins()[scrollbarsHidingPluginName] as\r\n | ScrollbarsHidingPluginInstance\r\n | undefined;\r\n const doViewportArrange =\r\n !_viewportIsTarget &&\r\n !_nativeScrollbarsHiding &&\r\n (_nativeScrollbarsOverlaid.x || _nativeScrollbarsOverlaid.y);\r\n const viewportIsTargetBody = _isBody && _viewportIsTarget;\r\n\r\n const [updateSizeFraction, getCurrentSizeFraction] = createCache>(\r\n whCacheOptions,\r\n fractionalSize.bind(0, _viewport)\r\n );\r\n\r\n const [updateViewportScrollSizeCache, getCurrentViewportScrollSizeCache] = createCache<\r\n WH\r\n >(whCacheOptions, scrollSize.bind(0, _viewport));\r\n\r\n const [updateOverflowAmountCache, getCurrentOverflowAmountCache] =\r\n createCache>(whCacheOptions);\r\n\r\n const [updateOverflowEdge, getCurrentOverflowEdgeCache] = createCache>(whCacheOptions);\r\n\r\n const [updateOverflowStyleCache] = createCache>(xyCacheOptions);\r\n\r\n /**\r\n * Applies a fixed height to the viewport so it can't overflow or underflow the host element.\r\n * @param viewportOverflowState The current overflow state.\r\n * @param heightIntrinsic Whether the host height is intrinsic or not.\r\n */\r\n const fixFlexboxGlue = (\r\n viewportOverflowState: ViewportOverflowState,\r\n heightIntrinsic: boolean\r\n ) => {\r\n style(_viewport, {\r\n height: '',\r\n });\r\n\r\n if (heightIntrinsic) {\r\n const { _paddingAbsolute, _padding: padding } = getState();\r\n const { _overflowScroll, _scrollbarsHideOffset } = viewportOverflowState;\r\n const fSize = fractionalSize(_host);\r\n const hostClientSize = clientSize(_host);\r\n\r\n // padding subtraction is only needed if padding is absolute or if viewport is content-box\r\n const isContentBox = style(_viewport, 'boxSizing') === 'content-box';\r\n const paddingVertical = _paddingAbsolute || isContentBox ? padding.b + padding.t : 0;\r\n const subtractXScrollbar = !(_nativeScrollbarsOverlaid.x && isContentBox);\r\n\r\n style(_viewport, {\r\n height:\r\n hostClientSize.h +\r\n fSize.h +\r\n (_overflowScroll.x && subtractXScrollbar ? _scrollbarsHideOffset.x : 0) -\r\n paddingVertical,\r\n });\r\n }\r\n };\r\n\r\n /**\r\n * Gets the current overflow state of the viewport.\r\n * @param showNativeOverlaidScrollbars Whether native overlaid scrollbars are shown instead of hidden.\r\n * @param viewportStyleObj The viewport style object where the overflow scroll property can be read of, or undefined if shall be determined.\r\n * @returns A object which contains informations about the current overflow state.\r\n */\r\n const getViewportOverflowState: GetViewportOverflowState = (\r\n showNativeOverlaidScrollbars,\r\n viewportStyleObj?\r\n ) => {\r\n const arrangeHideOffset =\r\n !_nativeScrollbarsHiding && !showNativeOverlaidScrollbars ? overlaidScrollbarsHideOffset : 0;\r\n const getStatePerAxis = (\r\n styleKey: string,\r\n isOverlaid: boolean,\r\n nativeScrollbarSize: number\r\n ) => {\r\n const overflowStyle = style(_viewport, styleKey);\r\n // can't do something like \"viewportStyleObj && viewportStyleObj[styleKey] || overflowStyle\" here!\r\n const objectPrefferedOverflowStyle = viewportStyleObj\r\n ? viewportStyleObj[styleKey]\r\n : overflowStyle;\r\n const overflowScroll = objectPrefferedOverflowStyle === 'scroll';\r\n const nonScrollbarStylingHideOffset = isOverlaid ? arrangeHideOffset : nativeScrollbarSize;\r\n const scrollbarsHideOffset =\r\n overflowScroll && !_nativeScrollbarsHiding ? nonScrollbarStylingHideOffset : 0;\r\n const scrollbarsHideOffsetArrange = isOverlaid && !!arrangeHideOffset;\r\n\r\n return [overflowStyle, overflowScroll, scrollbarsHideOffset, scrollbarsHideOffsetArrange] as [\r\n overflowStyle: OverflowStyle,\r\n overflowScroll: boolean,\r\n scrollbarsHideOffset: number,\r\n scrollbarsHideOffsetArrange: boolean\r\n ];\r\n };\r\n\r\n const [xOverflowStyle, xOverflowScroll, xScrollbarsHideOffset, xScrollbarsHideOffsetArrange] =\r\n getStatePerAxis('overflowX', _nativeScrollbarsOverlaid.x, _nativeScrollbarsSize.x);\r\n const [yOverflowStyle, yOverflowScroll, yScrollbarsHideOffset, yScrollbarsHideOffsetArrange] =\r\n getStatePerAxis('overflowY', _nativeScrollbarsOverlaid.y, _nativeScrollbarsSize.y);\r\n\r\n return {\r\n _overflowStyle: {\r\n x: xOverflowStyle,\r\n y: yOverflowStyle,\r\n },\r\n _overflowScroll: {\r\n x: xOverflowScroll,\r\n y: yOverflowScroll,\r\n },\r\n _scrollbarsHideOffset: {\r\n x: xScrollbarsHideOffset,\r\n y: yScrollbarsHideOffset,\r\n },\r\n _scrollbarsHideOffsetArrange: {\r\n x: xScrollbarsHideOffsetArrange,\r\n y: yScrollbarsHideOffsetArrange,\r\n },\r\n };\r\n };\r\n\r\n /**\r\n * Sets the overflow property of the viewport and calculates the a overflow state according to the new parameters.\r\n * @param showNativeOverlaidScrollbars Whether to show natively overlaid scrollbars.\r\n * @param overflowAmount The overflow amount.\r\n * @param overflow The overflow behavior according to the options.\r\n * @param viewportStyleObj The viewport style object to which the overflow style shall be applied.\r\n * @returns A object which represents the newly set overflow state.\r\n */\r\n const setViewportOverflowState = (\r\n showNativeOverlaidScrollbars: boolean,\r\n hasOverflow: XY,\r\n overflowOption: XY,\r\n viewportStyleObj: StyleObject\r\n ): ViewportOverflowState => {\r\n const setAxisOverflowStyle = (behavior: OverflowBehavior, hasOverflowAxis: boolean) => {\r\n const overflowVisible = overflowIsVisible(behavior);\r\n const overflowVisibleBehavior =\r\n (hasOverflowAxis && overflowVisible && behavior.replace(`${strVisible}-`, '')) || '';\r\n return [\r\n hasOverflowAxis && !overflowVisible ? behavior : '',\r\n overflowIsVisible(overflowVisibleBehavior) ? 'hidden' : overflowVisibleBehavior,\r\n ];\r\n };\r\n\r\n const [overflowX, visibleBehaviorX] = setAxisOverflowStyle(overflowOption.x, hasOverflow.x);\r\n const [overflowY, visibleBehaviorY] = setAxisOverflowStyle(overflowOption.y, hasOverflow.y);\r\n\r\n viewportStyleObj.overflowX = visibleBehaviorX && overflowY ? visibleBehaviorX : overflowX;\r\n viewportStyleObj.overflowY = visibleBehaviorY && overflowX ? visibleBehaviorY : overflowY;\r\n\r\n return getViewportOverflowState(showNativeOverlaidScrollbars, viewportStyleObj);\r\n };\r\n\r\n /**\r\n * Hides the native scrollbars according to the passed parameters.\r\n * @param viewportOverflowState The viewport overflow state.\r\n * @param directionIsRTL Whether the direction is RTL or not.\r\n * @param viewportArrange Whether special styles related to the viewport arrange strategy shall be applied.\r\n * @param viewportStyleObj The viewport style object to which the needed styles shall be applied.\r\n */\r\n const hideNativeScrollbars: HideNativeScrollbars = (\r\n viewportOverflowState,\r\n directionIsRTL,\r\n viewportArrange,\r\n viewportStyleObj\r\n ) => {\r\n const { _scrollbarsHideOffset, _scrollbarsHideOffsetArrange } = viewportOverflowState;\r\n const { x: arrangeX, y: arrangeY } = _scrollbarsHideOffsetArrange;\r\n const { x: hideOffsetX, y: hideOffsetY } = _scrollbarsHideOffset;\r\n const { _viewportPaddingStyle: viewportPaddingStyle } = getState();\r\n const horizontalMarginKey: keyof StyleObject = directionIsRTL ? 'marginLeft' : 'marginRight';\r\n const viewportHorizontalPaddingKey: keyof StyleObject = directionIsRTL\r\n ? 'paddingLeft'\r\n : 'paddingRight';\r\n const horizontalMarginValue = viewportPaddingStyle[horizontalMarginKey] as number;\r\n const verticalMarginValue = viewportPaddingStyle.marginBottom as number;\r\n const horizontalPaddingValue = viewportPaddingStyle[viewportHorizontalPaddingKey] as number;\r\n const verticalPaddingValue = viewportPaddingStyle.paddingBottom as number;\r\n\r\n // horizontal\r\n viewportStyleObj.width = `calc(100% + ${hideOffsetY + horizontalMarginValue * -1}px)`;\r\n viewportStyleObj[horizontalMarginKey] = -hideOffsetY + horizontalMarginValue;\r\n\r\n // vertical\r\n viewportStyleObj.marginBottom = -hideOffsetX + verticalMarginValue;\r\n\r\n // viewport arrange additional styles\r\n if (viewportArrange) {\r\n viewportStyleObj[viewportHorizontalPaddingKey] =\r\n horizontalPaddingValue + (arrangeY ? hideOffsetY : 0);\r\n viewportStyleObj.paddingBottom = verticalPaddingValue + (arrangeX ? hideOffsetX : 0);\r\n }\r\n };\r\n\r\n const [arrangeViewport, undoViewportArrange] = scrollbarsHidingPlugin\r\n ? scrollbarsHidingPlugin._overflowUpdateSegment(\r\n doViewportArrange,\r\n _flexboxGlue,\r\n _viewport,\r\n _viewportArrange,\r\n getState,\r\n getViewportOverflowState,\r\n hideNativeScrollbars\r\n )\r\n : [(() => doViewportArrange) as ArrangeViewport, (() => [noop]) as UndoArrangeViewport];\r\n\r\n return (updateHints, checkOption, force) => {\r\n const {\r\n _sizeChanged,\r\n _hostMutation,\r\n _contentMutation,\r\n _paddingStyleChanged,\r\n _heightIntrinsicChanged,\r\n _directionChanged,\r\n } = updateHints;\r\n const { _heightIntrinsic, _directionIsRTL } = getState();\r\n const [showNativeOverlaidScrollbarsOption, showNativeOverlaidScrollbarsChanged] =\r\n checkOption('showNativeOverlaidScrollbars');\r\n const [overflow, overflowChanged] = checkOption>('overflow');\r\n\r\n const showNativeOverlaidScrollbars =\r\n showNativeOverlaidScrollbarsOption &&\r\n _nativeScrollbarsOverlaid.x &&\r\n _nativeScrollbarsOverlaid.y;\r\n const adjustFlexboxGlue =\r\n !_viewportIsTarget &&\r\n !_flexboxGlue &&\r\n (_sizeChanged ||\r\n _contentMutation ||\r\n _hostMutation ||\r\n showNativeOverlaidScrollbarsChanged ||\r\n _heightIntrinsicChanged);\r\n const overflowXVisible = overflowIsVisible(overflow.x);\r\n const overflowYVisible = overflowIsVisible(overflow.y);\r\n const overflowVisible = overflowXVisible || overflowYVisible;\r\n\r\n let sizeFractionCache = getCurrentSizeFraction(force);\r\n let viewportScrollSizeCache = getCurrentViewportScrollSizeCache(force);\r\n let overflowAmuntCache = getCurrentOverflowAmountCache(force);\r\n let overflowEdgeCache = getCurrentOverflowEdgeCache(force);\r\n\r\n let preMeasureViewportOverflowState: ViewportOverflowState | undefined;\r\n\r\n if (showNativeOverlaidScrollbarsChanged && _nativeScrollbarsHiding) {\r\n _viewportAddRemoveClass(\r\n classNameViewportScrollbarHidden,\r\n dataValueHostScrollbarHidden,\r\n !showNativeOverlaidScrollbars\r\n );\r\n }\r\n\r\n if (adjustFlexboxGlue) {\r\n preMeasureViewportOverflowState = getViewportOverflowState(showNativeOverlaidScrollbars);\r\n fixFlexboxGlue(preMeasureViewportOverflowState, _heightIntrinsic);\r\n }\r\n\r\n if (\r\n _sizeChanged ||\r\n _paddingStyleChanged ||\r\n _contentMutation ||\r\n _directionChanged ||\r\n showNativeOverlaidScrollbarsChanged\r\n ) {\r\n if (overflowVisible) {\r\n _viewportAddRemoveClass(classNameOverflowVisible, dataValueHostOverflowVisible, false);\r\n }\r\n\r\n const [redoViewportArrange, undoViewportArrangeOverflowState] = undoViewportArrange(\r\n showNativeOverlaidScrollbars,\r\n _directionIsRTL,\r\n preMeasureViewportOverflowState\r\n );\r\n const [sizeFraction, sizeFractionChanged] = (sizeFractionCache = updateSizeFraction(force));\r\n const [viewportScrollSize, viewportScrollSizeChanged] = (viewportScrollSizeCache =\r\n updateViewportScrollSizeCache(force));\r\n const viewportclientSize = clientSize(_viewport);\r\n let arrangedViewportScrollSize = viewportScrollSize;\r\n let arrangedViewportClientSize = viewportclientSize;\r\n\r\n redoViewportArrange();\r\n\r\n // if re measure is required (only required if content arrange strategy is used)\r\n if (\r\n (viewportScrollSizeChanged || sizeFractionChanged || showNativeOverlaidScrollbarsChanged) &&\r\n undoViewportArrangeOverflowState &&\r\n !showNativeOverlaidScrollbars &&\r\n arrangeViewport(\r\n undoViewportArrangeOverflowState,\r\n viewportScrollSize,\r\n sizeFraction,\r\n _directionIsRTL\r\n )\r\n ) {\r\n arrangedViewportClientSize = clientSize(_viewport);\r\n arrangedViewportScrollSize = scrollSize(_viewport);\r\n }\r\n\r\n const overflowAmountScrollSize = {\r\n w: max0(max(viewportScrollSize.w, arrangedViewportScrollSize.w) + sizeFraction.w),\r\n h: max0(max(viewportScrollSize.h, arrangedViewportScrollSize.h) + sizeFraction.h),\r\n };\r\n const overflowAmountClientSize = {\r\n w: max0(\r\n viewportIsTargetBody\r\n ? _windowElm.innerWidth\r\n : arrangedViewportClientSize.w +\r\n max0(viewportclientSize.w - viewportScrollSize.w) +\r\n sizeFraction.w\r\n ),\r\n h: max0(\r\n viewportIsTargetBody\r\n ? _windowElm.innerHeight\r\n : arrangedViewportClientSize.h +\r\n max0(viewportclientSize.h - viewportScrollSize.h) +\r\n sizeFraction.h\r\n ),\r\n };\r\n\r\n overflowEdgeCache = updateOverflowEdge(overflowAmountClientSize);\r\n overflowAmuntCache = updateOverflowAmountCache(\r\n getOverflowAmount(overflowAmountScrollSize, overflowAmountClientSize),\r\n force\r\n );\r\n }\r\n\r\n const [overflowEdge, overflowEdgeChanged] = overflowEdgeCache;\r\n const [overflowAmount, overflowAmountChanged] = overflowAmuntCache;\r\n const [viewportScrollSize, viewportScrollSizeChanged] = viewportScrollSizeCache;\r\n const [sizeFraction, sizeFractionChanged] = sizeFractionCache;\r\n const hasOverflow = {\r\n x: overflowAmount.w > 0,\r\n y: overflowAmount.h > 0,\r\n };\r\n const removeClipping =\r\n (overflowXVisible && overflowYVisible && (hasOverflow.x || hasOverflow.y)) ||\r\n (overflowXVisible && hasOverflow.x && !hasOverflow.y) ||\r\n (overflowYVisible && hasOverflow.y && !hasOverflow.x);\r\n\r\n if (\r\n _paddingStyleChanged ||\r\n _directionChanged ||\r\n sizeFractionChanged ||\r\n viewportScrollSizeChanged ||\r\n overflowEdgeChanged ||\r\n overflowAmountChanged ||\r\n overflowChanged ||\r\n showNativeOverlaidScrollbarsChanged ||\r\n adjustFlexboxGlue\r\n ) {\r\n const viewportStyle: StyleObject = {\r\n marginRight: 0,\r\n marginBottom: 0,\r\n marginLeft: 0,\r\n width: '',\r\n overflowY: '',\r\n overflowX: '',\r\n };\r\n const viewportOverflowState = setViewportOverflowState(\r\n showNativeOverlaidScrollbars,\r\n hasOverflow,\r\n overflow,\r\n viewportStyle\r\n );\r\n const viewportArranged = arrangeViewport(\r\n viewportOverflowState,\r\n viewportScrollSize,\r\n sizeFraction,\r\n _directionIsRTL\r\n );\r\n\r\n if (!_viewportIsTarget) {\r\n hideNativeScrollbars(\r\n viewportOverflowState,\r\n _directionIsRTL,\r\n viewportArranged,\r\n viewportStyle\r\n );\r\n }\r\n\r\n if (adjustFlexboxGlue) {\r\n fixFlexboxGlue(viewportOverflowState, _heightIntrinsic);\r\n }\r\n\r\n if (_viewportIsTarget) {\r\n attr(_host, dataAttributeHostOverflowX, viewportStyle.overflowX as string);\r\n attr(_host, dataAttributeHostOverflowY, viewportStyle.overflowY as string);\r\n } else {\r\n style(_viewport, viewportStyle);\r\n }\r\n }\r\n\r\n attrClass(_host, dataAttributeHost, dataValueHostOverflowVisible, removeClipping);\r\n conditionalClass(_padding, classNameOverflowVisible, removeClipping);\r\n !_viewportIsTarget && conditionalClass(_viewport, classNameOverflowVisible, overflowVisible);\r\n\r\n const [overflowStyle, overflowStyleChanged] = updateOverflowStyleCache(\r\n getViewportOverflowState(showNativeOverlaidScrollbars)._overflowStyle\r\n );\r\n\r\n setState({\r\n _overflowStyle: overflowStyle,\r\n _overflowEdge: {\r\n x: overflowEdge.w,\r\n y: overflowEdge.h,\r\n },\r\n _overflowAmount: {\r\n x: overflowAmount.w,\r\n y: overflowAmount.h,\r\n },\r\n _hasOverflow: hasOverflow,\r\n });\r\n\r\n return {\r\n _overflowStyleChanged: overflowStyleChanged,\r\n _overflowEdgeChanged: overflowEdgeChanged,\r\n _overflowAmountChanged: overflowAmountChanged,\r\n };\r\n };\r\n};\r\n","import { each, scrollLeft, scrollTop, assignDeep, keys } from 'support';\r\nimport { getEnvironment } from 'environment';\r\nimport { dataValueHostUpdating } from 'classnames';\r\nimport {\r\n createTrinsicUpdateSegment,\r\n createPaddingUpdateSegment,\r\n createOverflowUpdateSegment,\r\n} from 'setups/structureSetup/updateSegments';\r\nimport type { SetupState, SetupUpdateSegment, SetupUpdateCheckOption } from 'setups';\r\nimport type { StructureSetupState } from 'setups/structureSetup';\r\nimport type { StructureSetupElementsObj } from 'setups/structureSetup/structureSetup.elements';\r\n\r\nexport type CreateStructureUpdateSegment = (\r\n structureSetupElements: StructureSetupElementsObj,\r\n state: SetupState\r\n) => StructureSetupUpdateSegment;\r\n\r\nexport type StructureSetupUpdateSegment = SetupUpdateSegment;\r\n\r\nexport type StructureSetupUpdate = (\r\n checkOption: SetupUpdateCheckOption,\r\n updateHints: Partial,\r\n force?: boolean\r\n) => StructureSetupUpdateHints;\r\n\r\nexport interface StructureSetupUpdateHints {\r\n _sizeChanged: boolean;\r\n _directionChanged: boolean;\r\n _heightIntrinsicChanged: boolean;\r\n _overflowEdgeChanged: boolean;\r\n _overflowAmountChanged: boolean;\r\n _overflowStyleChanged: boolean;\r\n _paddingStyleChanged: boolean;\r\n _hostMutation: boolean;\r\n _contentMutation: boolean;\r\n}\r\n\r\nconst prepareUpdateHints = (\r\n leading: Required,\r\n adaptive?: Partial,\r\n force?: boolean\r\n): Required => {\r\n const result = {};\r\n const finalAdaptive = adaptive || {};\r\n const objKeys = keys(leading).concat(keys(finalAdaptive));\r\n\r\n each(objKeys, (key) => {\r\n const leadingValue = leading[key];\r\n const adaptiveValue = finalAdaptive[key];\r\n result[key] = !!(force || leadingValue || adaptiveValue);\r\n });\r\n\r\n return result as Required;\r\n};\r\n\r\nexport const createStructureSetupUpdate = (\r\n structureSetupElements: StructureSetupElementsObj,\r\n state: SetupState\r\n): StructureSetupUpdate => {\r\n const { _viewport, _viewportAddRemoveClass } = structureSetupElements;\r\n const { _nativeScrollbarsHiding, _nativeScrollbarsOverlaid, _flexboxGlue } = getEnvironment();\r\n const doViewportArrange =\r\n !_nativeScrollbarsHiding && (_nativeScrollbarsOverlaid.x || _nativeScrollbarsOverlaid.y);\r\n\r\n const updateSegments: StructureSetupUpdateSegment[] = [\r\n createTrinsicUpdateSegment(structureSetupElements, state),\r\n createPaddingUpdateSegment(structureSetupElements, state),\r\n createOverflowUpdateSegment(structureSetupElements, state),\r\n ];\r\n\r\n return (\r\n checkOption: SetupUpdateCheckOption,\r\n updateHints: Partial,\r\n force?: boolean\r\n ) => {\r\n const initialUpdateHints = prepareUpdateHints(\r\n assignDeep(\r\n {\r\n _sizeChanged: false,\r\n _paddingStyleChanged: false,\r\n _directionChanged: false,\r\n _heightIntrinsicChanged: false,\r\n _overflowEdgeChanged: false,\r\n _overflowAmountChanged: false,\r\n _overflowStyleChanged: false,\r\n _hostMutation: false,\r\n _contentMutation: false,\r\n },\r\n updateHints\r\n ),\r\n {},\r\n force\r\n );\r\n const adjustScrollOffset = doViewportArrange || !_flexboxGlue;\r\n const scrollOffsetX = adjustScrollOffset && scrollLeft(_viewport);\r\n const scrollOffsetY = adjustScrollOffset && scrollTop(_viewport);\r\n _viewportAddRemoveClass('', dataValueHostUpdating, true);\r\n\r\n let adaptivedUpdateHints: Required = initialUpdateHints;\r\n each(updateSegments, (updateSegment) => {\r\n adaptivedUpdateHints = prepareUpdateHints(\r\n adaptivedUpdateHints,\r\n updateSegment(adaptivedUpdateHints, checkOption, !!force) || {},\r\n force\r\n );\r\n });\r\n\r\n scrollLeft(_viewport, scrollOffsetX);\r\n scrollTop(_viewport, scrollOffsetY);\r\n _viewportAddRemoveClass('', dataValueHostUpdating);\r\n\r\n return adaptivedUpdateHints;\r\n };\r\n};\r\n","import {\r\n CacheValues,\r\n createCache,\r\n createDOM,\r\n scrollLeft,\r\n scrollTop,\r\n runEachAndClear,\r\n removeElements,\r\n on,\r\n addClass,\r\n push,\r\n ResizeObserverConstructor,\r\n isArray,\r\n isBoolean,\r\n removeClass,\r\n isObject,\r\n stopPropagation,\r\n appendChildren,\r\n directionIsRTL,\r\n} from 'support';\r\nimport { getEnvironment } from 'environment';\r\nimport {\r\n classNameSizeObserver,\r\n classNameSizeObserverAppear,\r\n classNameSizeObserverListener,\r\n} from 'classnames';\r\nimport { getPlugins, SizeObserverPluginInstance, sizeObserverPluginName } from 'plugins';\r\n\r\nexport interface SizeObserverOptions {\r\n _direction?: boolean;\r\n _appear?: boolean;\r\n}\r\n\r\nexport interface SizeObserverCallbackParams {\r\n _sizeChanged: boolean;\r\n _directionIsRTLCache?: CacheValues;\r\n _appear?: boolean;\r\n}\r\n\r\nexport type SizeObserver = [destroy: () => void, append: () => void];\r\n\r\nconst scrollAmount = 3333333;\r\nconst domRectHasDimensions = (rect?: DOMRectReadOnly) => rect && (rect.height || rect.width);\r\n\r\n/**\r\n * Creates a size observer which observes any size, padding, border, margin and box-sizing changes of the target element. Depending on the options also direction and appear can be observed.\r\n * @param target The target element which shall be observed.\r\n * @param onSizeChangedCallback The callback which gets called after a size change was detected.\r\n * @param options The options for size detection, whether to observe also direction and appear.\r\n * @returns A object which represents the instance of the size observer.\r\n */\r\nexport const createSizeObserver = (\r\n target: HTMLElement,\r\n onSizeChangedCallback: (params: SizeObserverCallbackParams) => any,\r\n options?: SizeObserverOptions\r\n): SizeObserver => {\r\n const { _direction: observeDirectionChange = false, _appear: observeAppearChange = false } =\r\n options || {};\r\n const sizeObserverPlugin = getPlugins()[sizeObserverPluginName] as\r\n | SizeObserverPluginInstance\r\n | undefined;\r\n const { _rtlScrollBehavior: rtlScrollBehavior } = getEnvironment();\r\n const baseElements = createDOM(\r\n `
`\r\n );\r\n const sizeObserver = baseElements[0] as HTMLElement;\r\n const listenerElement = sizeObserver.firstChild as HTMLElement;\r\n const getIsDirectionRTL = directionIsRTL.bind(0, target);\r\n const [updateResizeObserverContentRectCache] = createCache({\r\n _initialValue: undefined,\r\n _alwaysUpdateValues: true,\r\n _equal: (currVal, newVal) =>\r\n !(\r\n !currVal || // if no initial value\r\n // if from display: none to display: block\r\n (!domRectHasDimensions(currVal) && domRectHasDimensions(newVal))\r\n ),\r\n });\r\n const onSizeChangedCallbackProxy = (\r\n sizeChangedContext?: CacheValues | ResizeObserverEntry[] | Event | boolean\r\n ) => {\r\n const isResizeObserverCall =\r\n isArray(sizeChangedContext) &&\r\n sizeChangedContext.length > 0 &&\r\n isObject(sizeChangedContext[0]);\r\n\r\n const hasDirectionCache =\r\n !isResizeObserverCall && isBoolean((sizeChangedContext as CacheValues)[0]);\r\n\r\n let skip = false;\r\n let appear: boolean | number | undefined = false;\r\n let doDirectionScroll = true; // always true if sizeChangedContext is Event (appear callback or RO. Polyfill)\r\n\r\n // if triggered from RO.\r\n if (isResizeObserverCall) {\r\n const [currRContentRect, , prevContentRect] = updateResizeObserverContentRectCache(\r\n (sizeChangedContext as ResizeObserverEntry[]).pop()!.contentRect\r\n );\r\n const hasDimensions = domRectHasDimensions(currRContentRect);\r\n const hadDimensions = domRectHasDimensions(prevContentRect);\r\n skip = !prevContentRect || !hasDimensions; // skip on initial RO. call or if display is none\r\n appear = !hadDimensions && hasDimensions;\r\n\r\n doDirectionScroll = !skip; // direction scroll when not skipping\r\n }\r\n // else if its triggered with DirectionCache\r\n else if (hasDirectionCache) {\r\n [, doDirectionScroll] = sizeChangedContext as CacheValues; // direction scroll when DirectionCache changed, false otherwise\r\n }\r\n // else if it triggered with appear from polyfill\r\n else {\r\n appear = sizeChangedContext === true;\r\n }\r\n\r\n if (observeDirectionChange && doDirectionScroll) {\r\n const rtl = hasDirectionCache\r\n ? (sizeChangedContext as CacheValues)[0]\r\n : directionIsRTL(sizeObserver);\r\n scrollLeft(\r\n sizeObserver,\r\n rtl\r\n ? rtlScrollBehavior.n\r\n ? -scrollAmount\r\n : rtlScrollBehavior.i\r\n ? 0\r\n : scrollAmount\r\n : scrollAmount\r\n );\r\n scrollTop(sizeObserver, scrollAmount);\r\n }\r\n\r\n if (!skip) {\r\n onSizeChangedCallback({\r\n _sizeChanged: !hasDirectionCache,\r\n _directionIsRTLCache: hasDirectionCache\r\n ? (sizeChangedContext as CacheValues)\r\n : undefined,\r\n _appear: !!appear,\r\n });\r\n }\r\n };\r\n const offListeners: (() => void)[] = [];\r\n let appearCallback: ((...args: any) => any) | false = observeAppearChange\r\n ? onSizeChangedCallbackProxy\r\n : false;\r\n\r\n return [\r\n () => {\r\n runEachAndClear(offListeners);\r\n removeElements(sizeObserver);\r\n },\r\n () => {\r\n if (ResizeObserverConstructor) {\r\n const resizeObserverInstance = new ResizeObserverConstructor(onSizeChangedCallbackProxy);\r\n resizeObserverInstance.observe(listenerElement);\r\n push(offListeners, () => {\r\n resizeObserverInstance.disconnect();\r\n });\r\n } else if (sizeObserverPlugin) {\r\n const [pluginAppearCallback, pluginOffListeners] = sizeObserverPlugin._(\r\n listenerElement,\r\n onSizeChangedCallbackProxy,\r\n observeAppearChange\r\n );\r\n appearCallback = pluginAppearCallback;\r\n push(offListeners, pluginOffListeners);\r\n }\r\n\r\n if (observeDirectionChange) {\r\n const [updateDirectionIsRTLCache] = createCache(\r\n {\r\n _initialValue: !getIsDirectionRTL(), // invert current value to trigger initial change\r\n },\r\n getIsDirectionRTL\r\n );\r\n\r\n push(\r\n offListeners,\r\n on(sizeObserver, 'scroll', (event: Event) => {\r\n const directionIsRTLCacheValues = updateDirectionIsRTLCache();\r\n const [directionIsRTLCache, directionIsRTLCacheChanged] = directionIsRTLCacheValues;\r\n\r\n if (directionIsRTLCacheChanged) {\r\n removeClass(listenerElement, 'ltr rtl');\r\n if (directionIsRTLCache) {\r\n addClass(listenerElement, 'rtl');\r\n } else {\r\n addClass(listenerElement, 'ltr');\r\n }\r\n onSizeChangedCallbackProxy(directionIsRTLCacheValues);\r\n }\r\n\r\n stopPropagation(event);\r\n })\r\n );\r\n }\r\n\r\n // appearCallback is always needed on scroll-observer strategy to reset it\r\n if (appearCallback) {\r\n addClass(sizeObserver, classNameSizeObserverAppear);\r\n push(\r\n offListeners,\r\n on(sizeObserver, 'animationstart', appearCallback, {\r\n // Fire only once for \"CSS is ready\" event if ResizeObserver strategy is used\r\n _once: !!ResizeObserverConstructor,\r\n })\r\n );\r\n }\r\n\r\n appendChildren(target, sizeObserver);\r\n },\r\n ];\r\n};\r\n","import {\r\n WH,\r\n CacheValues,\r\n createDiv,\r\n offsetSize,\r\n runEachAndClear,\r\n removeElements,\r\n createCache,\r\n push,\r\n IntersectionObserverConstructor,\r\n appendChildren,\r\n} from 'support';\r\nimport { createSizeObserver } from 'observers/sizeObserver';\r\nimport { classNameTrinsicObserver } from 'classnames';\r\n\r\nexport type TrinsicObserverCallback = (heightIntrinsic: CacheValues) => any;\r\nexport type TrinsicObserver = [\r\n destroy: () => void,\r\n append: () => void,\r\n update: () => void | Parameters\r\n];\r\n\r\nconst isHeightIntrinsic = (ioEntryOrSize: IntersectionObserverEntry | WH): boolean =>\r\n (ioEntryOrSize as WH).h === 0 ||\r\n (ioEntryOrSize as IntersectionObserverEntry).isIntersecting ||\r\n (ioEntryOrSize as IntersectionObserverEntry).intersectionRatio > 0;\r\n\r\n/**\r\n * Creates a trinsic observer which observes changes to intrinsic or extrinsic sizing for the height of the target element.\r\n * @param target The element which shall be observed.\r\n * @param onTrinsicChangedCallback The callback which gets called after a change was detected.\r\n * @returns A object which represents the instance of the trinsic observer.\r\n */\r\nexport const createTrinsicObserver = (\r\n target: HTMLElement,\r\n onTrinsicChangedCallback: TrinsicObserverCallback\r\n): TrinsicObserver => {\r\n let intersectionObserverInstance: undefined | IntersectionObserver;\r\n const trinsicObserver = createDiv(classNameTrinsicObserver);\r\n const offListeners: (() => void)[] = [];\r\n const [updateHeightIntrinsicCache] = createCache({\r\n _initialValue: false,\r\n });\r\n const triggerOnTrinsicChangedCallback = (\r\n updateValue?: IntersectionObserverEntry | WH,\r\n fromRecords?: true\r\n ): void | Parameters => {\r\n if (updateValue) {\r\n const heightIntrinsic = updateHeightIntrinsicCache(isHeightIntrinsic(updateValue));\r\n const [, heightIntrinsicChanged] = heightIntrinsic;\r\n\r\n if (heightIntrinsicChanged) {\r\n !fromRecords && onTrinsicChangedCallback(heightIntrinsic);\r\n return [heightIntrinsic];\r\n }\r\n }\r\n };\r\n const intersectionObserverCallback = (\r\n entries: IntersectionObserverEntry[],\r\n fromRecords?: true\r\n ) => {\r\n if (entries && entries.length > 0) {\r\n return triggerOnTrinsicChangedCallback(entries.pop(), fromRecords);\r\n }\r\n };\r\n\r\n return [\r\n () => {\r\n runEachAndClear(offListeners);\r\n removeElements(trinsicObserver);\r\n },\r\n () => {\r\n if (IntersectionObserverConstructor) {\r\n intersectionObserverInstance = new IntersectionObserverConstructor(\r\n (entries) => intersectionObserverCallback(entries),\r\n { root: target }\r\n );\r\n intersectionObserverInstance.observe(trinsicObserver);\r\n push(offListeners, () => {\r\n intersectionObserverInstance!.disconnect();\r\n });\r\n } else {\r\n const onSizeChanged = () => {\r\n const newSize = offsetSize(trinsicObserver);\r\n triggerOnTrinsicChangedCallback(newSize);\r\n };\r\n const [destroySizeObserver, appendSizeObserver] = createSizeObserver(\r\n trinsicObserver,\r\n onSizeChanged\r\n );\r\n push(offListeners, destroySizeObserver);\r\n appendSizeObserver();\r\n onSizeChanged();\r\n }\r\n\r\n appendChildren(target, trinsicObserver);\r\n },\r\n () => {\r\n if (intersectionObserverInstance) {\r\n return intersectionObserverCallback(intersectionObserverInstance.takeRecords(), true);\r\n }\r\n },\r\n ];\r\n};\r\n","import {\r\n each,\r\n noop,\r\n debounce,\r\n indexOf,\r\n isString,\r\n MutationObserverConstructor,\r\n isEmptyArray,\r\n on,\r\n attr,\r\n is,\r\n find,\r\n push,\r\n} from 'support';\r\n\r\ntype DOMContentObserverCallback = (contentChangedTroughEvent: boolean) => any;\r\n\r\ntype DOMTargetObserverCallback = (targetChangedAttrs: string[], targetStyleChanged: boolean) => any;\r\n\r\ninterface DOMObserverOptionsBase {\r\n _attributes?: string[];\r\n _styleChangingAttributes?: string[];\r\n /**\r\n * A function which can ignore a changed attribute if it returns true.\r\n * for DOMTargetObserver this applies to the changes to the observed target\r\n * for DOMContentObserver this applies to changes to nested targets -> nested targets are elements which match the \"_nestedTargetSelector\" selector\r\n */\r\n _ignoreTargetChange?: DOMObserverIgnoreTargetChange;\r\n}\r\n\r\ninterface DOMContentObserverOptions extends DOMObserverOptionsBase {\r\n _eventContentChange?: DOMObserverEventContentChange; // [selector, eventname(s) | function returning eventname(s)] -> eventnames divided by whitespaces\r\n _nestedTargetSelector?: string;\r\n _ignoreContentChange?: DOMObserverIgnoreContentChange; // function which will prevent marking certain dom changes as content change if it returns true\r\n}\r\n\r\ntype DOMTargetObserverOptions = DOMObserverOptionsBase;\r\n\r\ntype ContentChangeArrayItem = [selector?: string, eventNames?: string] | null | undefined;\r\n\r\nexport type DOMObserverEventContentChange =\r\n | Array\r\n | false\r\n | null\r\n | undefined;\r\n\r\nexport type DOMObserverIgnoreContentChange = (\r\n mutation: MutationRecord,\r\n isNestedTarget: boolean,\r\n domObserverTarget: HTMLElement,\r\n domObserverOptions?: DOMContentObserverOptions\r\n) => boolean;\r\n\r\nexport type DOMObserverIgnoreTargetChange = (\r\n target: Node,\r\n attributeName: string,\r\n oldAttributeValue: string | null,\r\n newAttributeValue: string | null\r\n) => boolean;\r\n\r\nexport type DOMObserverCallback = ContentObserver extends true\r\n ? DOMContentObserverCallback\r\n : DOMTargetObserverCallback;\r\n\r\nexport type DOMObserverOptions = ContentObserver extends true\r\n ? DOMContentObserverOptions\r\n : DOMTargetObserverOptions;\r\n\r\nexport type DOMObserver = [\r\n destroy: () => void,\r\n update: () => void | false | Parameters>\r\n];\r\n\r\ntype EventContentChangeUpdateElement = (getElements?: (selector: string) => Node[]) => void;\r\ntype EventContentChange = [destroy: () => void, updateElements: EventContentChangeUpdateElement];\r\n\r\n/**\r\n * Creates a set of helper functions to observe events of elements inside the target element.\r\n * @param target The target element of which the children elements shall be observed. (not only direct children but also nested ones)\r\n * @param eventContentChange The event content change array. (array of tuples: selector and eventname(s))\r\n * @param callback Callback which is called if one of the elements emits the corresponding event.\r\n * @returns A object which contains a set of helper functions to destroy and update the observation of elements.\r\n */\r\nconst createEventContentChange = (\r\n target: Element,\r\n callback: (...args: any) => any,\r\n eventContentChange?: DOMObserverEventContentChange\r\n): EventContentChange => {\r\n let map: WeakMap any]> | undefined; // weak map to prevent memory leak for detached elements\r\n let destroyed = false;\r\n const destroy = () => {\r\n destroyed = true;\r\n };\r\n const updateElements: EventContentChangeUpdateElement = (getElements?) => {\r\n if (eventContentChange) {\r\n const eventElmList = eventContentChange.reduce>((arr, item) => {\r\n if (item) {\r\n const selector = item[0];\r\n const eventNames = item[1];\r\n const elements =\r\n eventNames &&\r\n selector &&\r\n (getElements ? getElements(selector) : find(selector, target));\r\n\r\n if (elements && elements.length && eventNames && isString(eventNames)) {\r\n push(arr, [elements, eventNames.trim()], true);\r\n }\r\n }\r\n return arr;\r\n }, []);\r\n\r\n each(eventElmList, (item) =>\r\n each(item[0], (elm) => {\r\n const eventNames = item[1];\r\n const entry = map!.get(elm);\r\n\r\n if (entry) {\r\n const entryEventNames = entry[0];\r\n const entryOff = entry[1];\r\n\r\n // in case an already registered element is registered again, unregister the previous events\r\n if (entryEventNames === eventNames) {\r\n entryOff();\r\n }\r\n }\r\n\r\n const off = on(elm, eventNames, (event: Event) => {\r\n if (destroyed) {\r\n off();\r\n map!.delete(elm);\r\n } else {\r\n callback(event);\r\n }\r\n });\r\n map!.set(elm, [eventNames, off]);\r\n })\r\n );\r\n }\r\n };\r\n\r\n if (eventContentChange) {\r\n map = new WeakMap();\r\n updateElements();\r\n }\r\n\r\n return [destroy, updateElements];\r\n};\r\n\r\n/**\r\n * Creates a DOM observer which observes DOM changes to either the target element or its children.\r\n * @param target The element which shall be observed.\r\n * @param isContentObserver Whether this observer is just observing the target or just the targets children. (not only direct children but also nested ones)\r\n * @param callback The callback which gets called if a change was detected.\r\n * @param options The options for DOM change detection.\r\n * @returns A object which represents the instance of the DOM observer.\r\n */\r\nexport const createDOMObserver = (\r\n target: HTMLElement,\r\n isContentObserver: ContentObserver,\r\n callback: DOMObserverCallback,\r\n options?: DOMObserverOptions\r\n): DOMObserver => {\r\n let isConnected = false;\r\n const {\r\n _attributes,\r\n _styleChangingAttributes,\r\n _eventContentChange,\r\n _nestedTargetSelector,\r\n _ignoreTargetChange,\r\n _ignoreContentChange,\r\n } = (options as DOMContentObserverOptions & DOMTargetObserverOptions) || {};\r\n const debouncedEventContentChange = debounce(\r\n () => {\r\n if (isConnected) {\r\n (callback as DOMContentObserverCallback)(true);\r\n }\r\n },\r\n { _timeout: 33, _maxDelay: 99 }\r\n );\r\n const [destroyEventContentChange, updateEventContentChangeElements] = createEventContentChange(\r\n target,\r\n debouncedEventContentChange,\r\n _eventContentChange\r\n );\r\n\r\n // MutationObserver\r\n const finalAttributes = _attributes || [];\r\n const finalStyleChangingAttributes = _styleChangingAttributes || [];\r\n const observedAttributes = finalAttributes.concat(finalStyleChangingAttributes);\r\n const observerCallback = (\r\n mutations: MutationRecord[],\r\n fromRecords?: true\r\n ): void | Parameters> => {\r\n const ignoreTargetChange = _ignoreTargetChange || noop;\r\n const ignoreContentChange = _ignoreContentChange || noop;\r\n const targetChangedAttrs: string[] = [];\r\n const totalAddedNodes: Node[] = [];\r\n let targetStyleChanged = false;\r\n let contentChanged = false;\r\n let childListChanged = false;\r\n each(mutations, (mutation) => {\r\n const { attributeName, target: mutationTarget, type, oldValue, addedNodes } = mutation;\r\n const isAttributesType = type === 'attributes';\r\n const isChildListType = type === 'childList';\r\n const targetIsMutationTarget = target === mutationTarget;\r\n const attributeValue =\r\n isAttributesType && isString(attributeName)\r\n ? attr(mutationTarget as HTMLElement, attributeName!)\r\n : 0;\r\n const attributeChanged = attributeValue !== 0 && oldValue !== attributeValue;\r\n const styleChangingAttrChanged =\r\n indexOf(finalStyleChangingAttributes, attributeName) > -1 && attributeChanged;\r\n\r\n // if is content observer and something changed in children\r\n if (isContentObserver && !targetIsMutationTarget) {\r\n const notOnlyAttrChanged = !isAttributesType;\r\n const contentAttrChanged = isAttributesType && styleChangingAttrChanged;\r\n const isNestedTarget =\r\n contentAttrChanged && _nestedTargetSelector && is(mutationTarget, _nestedTargetSelector);\r\n const baseAssertion = isNestedTarget\r\n ? !ignoreTargetChange(mutationTarget, attributeName!, oldValue, attributeValue)\r\n : notOnlyAttrChanged || contentAttrChanged;\r\n const contentFinalChanged =\r\n baseAssertion && !ignoreContentChange(mutation, !!isNestedTarget, target, options);\r\n\r\n push(totalAddedNodes, addedNodes);\r\n\r\n contentChanged = contentChanged || contentFinalChanged;\r\n childListChanged = childListChanged || isChildListType;\r\n }\r\n // if is target observer and target attr changed\r\n if (\r\n !isContentObserver &&\r\n targetIsMutationTarget &&\r\n attributeChanged &&\r\n !ignoreTargetChange(mutationTarget, attributeName!, oldValue, attributeValue)\r\n ) {\r\n push(targetChangedAttrs, attributeName!);\r\n targetStyleChanged = targetStyleChanged || styleChangingAttrChanged;\r\n }\r\n });\r\n\r\n if (childListChanged && !isEmptyArray(totalAddedNodes)) {\r\n // adds / removes the new elements from the event content change\r\n updateEventContentChangeElements((selector) =>\r\n totalAddedNodes.reduce((arr, node) => {\r\n push(arr, find(selector, node));\r\n return is(node, selector) ? push(arr, node) : arr;\r\n }, [])\r\n );\r\n }\r\n\r\n if (isContentObserver) {\r\n !fromRecords && contentChanged && (callback as DOMContentObserverCallback)(false);\r\n return [false] as Parameters>;\r\n }\r\n if (!isEmptyArray(targetChangedAttrs) || targetStyleChanged) {\r\n !fromRecords &&\r\n (callback as DOMTargetObserverCallback)(targetChangedAttrs, targetStyleChanged);\r\n return [targetChangedAttrs, targetStyleChanged] as Parameters<\r\n DOMObserverCallback\r\n >;\r\n }\r\n };\r\n const mutationObserver: MutationObserver = new MutationObserverConstructor!((mutations) =>\r\n observerCallback(mutations)\r\n );\r\n\r\n // Connect\r\n mutationObserver.observe(target, {\r\n attributes: true,\r\n attributeOldValue: true,\r\n attributeFilter: observedAttributes,\r\n subtree: isContentObserver,\r\n childList: isContentObserver,\r\n characterData: isContentObserver,\r\n });\r\n isConnected = true;\r\n\r\n return [\r\n () => {\r\n if (isConnected) {\r\n destroyEventContentChange();\r\n mutationObserver.disconnect();\r\n isConnected = false;\r\n }\r\n },\r\n () => {\r\n if (isConnected) {\r\n debouncedEventContentChange._flush();\r\n\r\n const records = mutationObserver.takeRecords();\r\n return !isEmptyArray(records) && observerCallback(records, true);\r\n }\r\n },\r\n ];\r\n};\r\n","import {\r\n debounce,\r\n isArray,\r\n isNumber,\r\n each,\r\n indexOf,\r\n isString,\r\n attr,\r\n removeAttr,\r\n CacheValues,\r\n keys,\r\n liesBetween,\r\n scrollSize,\r\n equalWH,\r\n createCache,\r\n WH,\r\n fractionalSize,\r\n isFunction,\r\n ResizeObserverConstructor,\r\n closest,\r\n assignDeep,\r\n push,\r\n scrollLeft,\r\n scrollTop,\r\n noop,\r\n} from 'support';\r\nimport { getEnvironment } from 'environment';\r\nimport {\r\n dataAttributeHost,\r\n dataValueHostOverflowVisible,\r\n dataValueHostUpdating,\r\n classNameViewport,\r\n classNameOverflowVisible,\r\n classNameScrollbar,\r\n classNameViewportArrange,\r\n} from 'classnames';\r\nimport { createSizeObserver, SizeObserverCallbackParams } from 'observers/sizeObserver';\r\nimport { createTrinsicObserver } from 'observers/trinsicObserver';\r\nimport { createDOMObserver, DOMObserver } from 'observers/domObserver';\r\nimport type { SetupState, SetupUpdateCheckOption } from 'setups';\r\nimport type { StructureSetupState } from 'setups/structureSetup';\r\nimport type { StructureSetupElementsObj } from 'setups/structureSetup/structureSetup.elements';\r\nimport type {\r\n StructureSetupUpdate,\r\n StructureSetupUpdateHints,\r\n} from 'setups/structureSetup/structureSetup.update';\r\n\r\nexport type StructureSetupObserversUpdate = (checkOption: SetupUpdateCheckOption) => void;\r\n\r\nexport type StructureSetupObservers = [\r\n destroy: () => void,\r\n appendElements: () => void,\r\n updateObservers: () => Partial,\r\n updateObserversOptions: StructureSetupObserversUpdate\r\n];\r\n\r\ntype ExcludeFromTuple = T extends [infer F, ...infer R]\r\n ? [F] extends [E]\r\n ? ExcludeFromTuple\r\n : [F, ...ExcludeFromTuple]\r\n : [];\r\n\r\nconst hostSelector = `[${dataAttributeHost}]`;\r\n\r\n// TODO: observer textarea attrs if textarea\r\n\r\nconst viewportSelector = `.${classNameViewport}`;\r\nconst viewportAttrsFromTarget = ['tabindex'];\r\nconst baseStyleChangingAttrsTextarea = ['wrap', 'cols', 'rows'];\r\nconst baseStyleChangingAttrs = ['id', 'class', 'style', 'open'];\r\n\r\nexport const createStructureSetupObservers = (\r\n structureSetupElements: StructureSetupElementsObj,\r\n state: SetupState,\r\n structureSetupUpdate: (\r\n ...args: ExcludeFromTuple, Parameters[0]>\r\n ) => any\r\n): StructureSetupObservers => {\r\n let debounceTimeout: number | false | undefined;\r\n let debounceMaxDelay: number | false | undefined;\r\n let contentMutationObserver: DOMObserver | undefined;\r\n const [, setState] = state;\r\n const {\r\n _host,\r\n _viewport,\r\n _content,\r\n _isTextarea,\r\n _viewportIsTarget,\r\n _viewportHasClass,\r\n _viewportAddRemoveClass,\r\n } = structureSetupElements;\r\n const { _flexboxGlue } = getEnvironment();\r\n\r\n const [updateContentSizeCache] = createCache>(\r\n {\r\n _equal: equalWH,\r\n _initialValue: { w: 0, h: 0 },\r\n },\r\n () => {\r\n const hasOver = _viewportHasClass(classNameOverflowVisible, dataValueHostOverflowVisible);\r\n const hasVpStyle = _viewportHasClass(classNameViewportArrange, '');\r\n const scrollOffsetX = hasVpStyle && scrollLeft(_viewport);\r\n const scrollOffsetY = hasVpStyle && scrollTop(_viewport);\r\n _viewportAddRemoveClass(classNameOverflowVisible, dataValueHostOverflowVisible);\r\n _viewportAddRemoveClass(classNameViewportArrange, '');\r\n _viewportAddRemoveClass('', dataValueHostUpdating, true);\r\n\r\n const contentScroll = scrollSize(_content);\r\n const viewportScroll = scrollSize(_viewport);\r\n const fractional = fractionalSize(_viewport);\r\n\r\n _viewportAddRemoveClass(classNameOverflowVisible, dataValueHostOverflowVisible, hasOver);\r\n _viewportAddRemoveClass(classNameViewportArrange, '', hasVpStyle);\r\n _viewportAddRemoveClass('', dataValueHostUpdating);\r\n scrollLeft(_viewport, scrollOffsetX);\r\n scrollTop(_viewport, scrollOffsetY);\r\n return {\r\n w: viewportScroll.w + contentScroll.w + fractional.w,\r\n h: viewportScroll.h + contentScroll.h + fractional.h,\r\n };\r\n }\r\n );\r\n const contentMutationObserverAttr = _isTextarea\r\n ? baseStyleChangingAttrsTextarea\r\n : baseStyleChangingAttrs.concat(baseStyleChangingAttrsTextarea);\r\n const structureSetupUpdateWithDebouncedAdaptiveUpdateHints = debounce(structureSetupUpdate, {\r\n _timeout: () => debounceTimeout,\r\n _maxDelay: () => debounceMaxDelay,\r\n _mergeParams(prev, curr) {\r\n const [prevObj] = prev;\r\n const [currObj] = curr;\r\n return [\r\n keys(prevObj)\r\n .concat(keys(currObj))\r\n .reduce((obj, key) => {\r\n obj[key] = prevObj[key] || currObj[key];\r\n return obj;\r\n }, {}),\r\n ] as [Partial];\r\n },\r\n });\r\n\r\n const updateViewportAttrsFromHost = (attributes?: string[]) => {\r\n each(attributes || viewportAttrsFromTarget, (attribute) => {\r\n if (indexOf(viewportAttrsFromTarget, attribute) > -1) {\r\n const hostAttr = attr(_host, attribute);\r\n if (isString(hostAttr)) {\r\n attr(_viewport, attribute, hostAttr);\r\n } else {\r\n removeAttr(_viewport, attribute);\r\n }\r\n }\r\n });\r\n };\r\n const onTrinsicChanged = (heightIntrinsicCache: CacheValues, fromRecords?: true) => {\r\n const [heightIntrinsic, heightIntrinsicChanged] = heightIntrinsicCache;\r\n const updateHints: Partial = {\r\n _heightIntrinsicChanged: heightIntrinsicChanged,\r\n };\r\n setState({ _heightIntrinsic: heightIntrinsic });\r\n\r\n !fromRecords && structureSetupUpdate(updateHints);\r\n return updateHints;\r\n };\r\n const onSizeChanged = ({\r\n _sizeChanged,\r\n _directionIsRTLCache,\r\n _appear,\r\n }: SizeObserverCallbackParams) => {\r\n const updateFn =\r\n !_sizeChanged || _appear\r\n ? structureSetupUpdate\r\n : structureSetupUpdateWithDebouncedAdaptiveUpdateHints;\r\n\r\n let directionChanged = false;\r\n if (_directionIsRTLCache) {\r\n const [directionIsRTL, directionIsRTLChanged] = _directionIsRTLCache;\r\n directionChanged = directionIsRTLChanged;\r\n\r\n setState({ _directionIsRTL: directionIsRTL });\r\n }\r\n\r\n updateFn({ _sizeChanged, _directionChanged: directionChanged });\r\n };\r\n const onContentMutation = (contentChangedTroughEvent: boolean, fromRecords?: true) => {\r\n const [, contentSizeChanged] = updateContentSizeCache();\r\n const updateHints: Partial = {\r\n _contentMutation: contentSizeChanged,\r\n };\r\n // if contentChangedTroughEvent is true its already debounced\r\n const updateFn = contentChangedTroughEvent\r\n ? structureSetupUpdate\r\n : structureSetupUpdateWithDebouncedAdaptiveUpdateHints;\r\n\r\n if (contentSizeChanged) {\r\n !fromRecords && updateFn(updateHints);\r\n }\r\n return updateHints;\r\n };\r\n const onHostMutation = (\r\n targetChangedAttrs: string[],\r\n targetStyleChanged: boolean,\r\n fromRecords?: true\r\n ) => {\r\n const updateHints: Partial = { _hostMutation: targetStyleChanged };\r\n if (targetStyleChanged) {\r\n !fromRecords && structureSetupUpdateWithDebouncedAdaptiveUpdateHints(updateHints);\r\n } else if (!_viewportIsTarget) {\r\n updateViewportAttrsFromHost(targetChangedAttrs);\r\n }\r\n return updateHints;\r\n };\r\n\r\n const [destroyTrinsicObserver, appendTrinsicObserver, updateTrinsicObserver] =\r\n _content || !_flexboxGlue ? createTrinsicObserver(_host, onTrinsicChanged) : [noop, noop, noop];\r\n const [destroySizeObserver, appendSizeObserver] = !_viewportIsTarget\r\n ? createSizeObserver(_host, onSizeChanged, {\r\n _appear: true,\r\n _direction: true,\r\n })\r\n : [noop, noop];\r\n const [destroyHostMutationObserver, updateHostMutationObserver] = createDOMObserver(\r\n _host,\r\n false,\r\n onHostMutation,\r\n {\r\n _styleChangingAttributes: baseStyleChangingAttrs,\r\n _attributes: baseStyleChangingAttrs.concat(viewportAttrsFromTarget),\r\n }\r\n );\r\n\r\n const viewportIsTargetResizeObserver =\r\n _viewportIsTarget &&\r\n ResizeObserverConstructor &&\r\n new ResizeObserverConstructor(onSizeChanged.bind(0, { _sizeChanged: true }));\r\n\r\n viewportIsTargetResizeObserver && viewportIsTargetResizeObserver.observe(_host);\r\n updateViewportAttrsFromHost();\r\n\r\n return [\r\n () => {\r\n destroyTrinsicObserver();\r\n destroySizeObserver();\r\n contentMutationObserver && contentMutationObserver[0](); // destroy\r\n viewportIsTargetResizeObserver && viewportIsTargetResizeObserver.disconnect();\r\n destroyHostMutationObserver();\r\n },\r\n () => {\r\n // order is matter!\r\n appendSizeObserver();\r\n appendTrinsicObserver();\r\n },\r\n () => {\r\n const updateHints: Partial = {};\r\n const hostUpdateResult = updateHostMutationObserver();\r\n const trinsicUpdateResult = updateTrinsicObserver();\r\n const contentUpdateResult = contentMutationObserver && contentMutationObserver[1](); // update\r\n\r\n if (hostUpdateResult) {\r\n assignDeep(\r\n updateHints,\r\n onHostMutation.apply(\r\n 0,\r\n push(hostUpdateResult, true) as [\r\n ...updateResult: typeof hostUpdateResult,\r\n fromRecords: true\r\n ]\r\n )\r\n );\r\n }\r\n if (trinsicUpdateResult) {\r\n assignDeep(\r\n updateHints,\r\n onTrinsicChanged.apply(\r\n 0,\r\n push(trinsicUpdateResult as any[], true) as [\r\n ...updateResult: typeof trinsicUpdateResult,\r\n fromRecords: true\r\n ]\r\n )\r\n );\r\n }\r\n if (contentUpdateResult) {\r\n assignDeep(\r\n updateHints,\r\n onContentMutation.apply(\r\n 0,\r\n push(contentUpdateResult, true) as [\r\n ...updateResult: typeof contentUpdateResult,\r\n fromRecords: true\r\n ]\r\n )\r\n );\r\n }\r\n\r\n return updateHints;\r\n },\r\n (checkOption) => {\r\n const [ignoreMutation] = checkOption('updating.ignoreMutation');\r\n const [attributes, attributesChanged] = checkOption('updating.attributes');\r\n const [elementEvents, elementEventsChanged] = checkOption | null>(\r\n 'updating.elementEvents'\r\n );\r\n const [debounceValue, debounceChanged] = checkOption | number | null>(\r\n 'updating.debounce'\r\n );\r\n const updateContentMutationObserver = elementEventsChanged || attributesChanged;\r\n const ignoreMutationFromOptions = (mutation: MutationRecord) =>\r\n isFunction(ignoreMutation) && ignoreMutation(mutation);\r\n\r\n if (updateContentMutationObserver) {\r\n if (contentMutationObserver) {\r\n contentMutationObserver[1](); // update\r\n contentMutationObserver[0](); // destroy\r\n }\r\n contentMutationObserver = createDOMObserver(\r\n _content || _viewport,\r\n true,\r\n onContentMutation,\r\n {\r\n _styleChangingAttributes: contentMutationObserverAttr.concat(attributes || []),\r\n _attributes: contentMutationObserverAttr.concat(attributes || []),\r\n _eventContentChange: elementEvents,\r\n _nestedTargetSelector: hostSelector,\r\n _ignoreContentChange: (mutation, isNestedTarget) => {\r\n const { target, attributeName } = mutation;\r\n const ignore =\r\n !isNestedTarget && attributeName && !_viewportIsTarget\r\n ? liesBetween(target, hostSelector, viewportSelector)\r\n : false;\r\n return (\r\n ignore ||\r\n !!closest(target, `.${classNameScrollbar}`) || // ignore explicitely all scrollbar elements\r\n !!ignoreMutationFromOptions(mutation)\r\n );\r\n },\r\n }\r\n );\r\n }\r\n\r\n if (debounceChanged) {\r\n structureSetupUpdateWithDebouncedAdaptiveUpdateHints._flush();\r\n if (isArray(debounceValue)) {\r\n const timeout = debounceValue[0];\r\n const maxWait = debounceValue[1];\r\n debounceTimeout = isNumber(timeout) ? timeout : false;\r\n debounceMaxDelay = isNumber(maxWait) ? maxWait : false;\r\n } else if (isNumber(debounceValue)) {\r\n debounceTimeout = debounceValue;\r\n debounceMaxDelay = false;\r\n } else {\r\n debounceTimeout = false;\r\n debounceMaxDelay = false;\r\n }\r\n }\r\n },\r\n ];\r\n};\r\n","import { createEventListenerHub, isEmptyObject, keys } from 'support';\r\nimport { createState, createOptionCheck } from 'setups/setups';\r\nimport { createStructureSetupElements } from 'setups/structureSetup/structureSetup.elements';\r\nimport { createStructureSetupUpdate } from 'setups/structureSetup/structureSetup.update';\r\nimport { createStructureSetupObservers } from 'setups/structureSetup/structureSetup.observers';\r\nimport type { StructureSetupUpdateHints } from 'setups/structureSetup/structureSetup.update';\r\nimport type { StructureSetupElementsObj } from 'setups/structureSetup/structureSetup.elements';\r\nimport type { TRBL, XY, EventListener } from 'support';\r\nimport type { Options, ReadonlyOptions } from 'options';\r\nimport type { Setup } from 'setups';\r\nimport type { InitializationTarget } from 'initialization';\r\nimport type { DeepPartial, StyleObject, OverflowStyle } from 'typings';\r\n\r\nexport interface StructureSetupState {\r\n _padding: TRBL;\r\n _paddingAbsolute: boolean;\r\n _viewportPaddingStyle: StyleObject;\r\n _overflowEdge: XY;\r\n _overflowAmount: XY;\r\n _overflowStyle: XY;\r\n _hasOverflow: XY;\r\n _heightIntrinsic: boolean;\r\n _directionIsRTL: boolean;\r\n}\r\n\r\nexport interface StructureSetupStaticState {\r\n _elements: StructureSetupElementsObj;\r\n _appendElements: () => void;\r\n _addOnUpdatedListener: (listener: EventListener) => void;\r\n}\r\n\r\ntype StructureSetupEventMap = {\r\n u: [updateHints: StructureSetupUpdateHints, changedOptions: DeepPartial, force: boolean];\r\n};\r\n\r\nconst initialXYNumber = { x: 0, y: 0 };\r\nconst initialStructureSetupUpdateState: StructureSetupState = {\r\n _padding: {\r\n t: 0,\r\n r: 0,\r\n b: 0,\r\n l: 0,\r\n },\r\n _paddingAbsolute: false,\r\n _viewportPaddingStyle: {\r\n marginRight: 0,\r\n marginBottom: 0,\r\n marginLeft: 0,\r\n paddingTop: 0,\r\n paddingRight: 0,\r\n paddingBottom: 0,\r\n paddingLeft: 0,\r\n },\r\n _overflowEdge: initialXYNumber,\r\n _overflowAmount: initialXYNumber,\r\n _overflowStyle: {\r\n x: 'hidden',\r\n y: 'hidden',\r\n },\r\n _hasOverflow: {\r\n x: false,\r\n y: false,\r\n },\r\n _heightIntrinsic: false,\r\n _directionIsRTL: false,\r\n};\r\n\r\nexport const createStructureSetup = (\r\n target: InitializationTarget,\r\n options: ReadonlyOptions\r\n): Setup => {\r\n const checkOptionsFallback = createOptionCheck(options, {});\r\n const state = createState(initialStructureSetupUpdateState);\r\n const [addEvent, removeEvent, triggerEvent] = createEventListenerHub();\r\n const [getState] = state;\r\n const [elements, appendStructureElements, destroyElements] = createStructureSetupElements(target);\r\n const updateStructure = createStructureSetupUpdate(elements, state);\r\n const triggerUpdateEvent: (...args: StructureSetupEventMap['u']) => void = (\r\n updateHints,\r\n changedOptions,\r\n force\r\n ) => {\r\n const truthyUpdateHints = keys(updateHints).some((key) => updateHints[key]);\r\n\r\n if (truthyUpdateHints || !isEmptyObject(changedOptions) || force) {\r\n triggerEvent('u', [updateHints, changedOptions, force]);\r\n }\r\n };\r\n const [destroyObservers, appendObserverElements, updateObservers, updateObserversOptions] =\r\n createStructureSetupObservers(elements, state, (updateHints) => {\r\n triggerUpdateEvent(updateStructure(checkOptionsFallback, updateHints), {}, false);\r\n });\r\n\r\n const structureSetupState = getState.bind(0) as (() => StructureSetupState) &\r\n StructureSetupStaticState;\r\n structureSetupState._addOnUpdatedListener = (listener) => {\r\n addEvent('u', listener);\r\n };\r\n structureSetupState._appendElements = () => {\r\n appendObserverElements();\r\n appendStructureElements();\r\n };\r\n structureSetupState._elements = elements;\r\n\r\n return [\r\n (changedOptions, force?) => {\r\n const checkOption = createOptionCheck(options, changedOptions, force);\r\n updateObserversOptions(checkOption);\r\n triggerUpdateEvent(\r\n updateStructure(checkOption, updateObservers(), force),\r\n changedOptions,\r\n !!force\r\n );\r\n },\r\n structureSetupState,\r\n () => {\r\n removeEvent();\r\n destroyObservers();\r\n destroyElements();\r\n },\r\n ];\r\n};\r\n","import {\r\n directionIsRTL,\r\n getBoundingClientRect,\r\n offsetSize,\r\n on,\r\n preventDefault,\r\n runEachAndClear,\r\n stopPropagation,\r\n XY,\r\n} from 'support';\r\nimport { classNamesScrollbarInteraction } from 'classnames';\r\nimport type { ReadonlyOptions } from 'options';\r\nimport type { StructureSetupState } from 'setups';\r\nimport type {\r\n ScrollbarsSetupElementsObj,\r\n ScrollbarStructure,\r\n} from 'setups/scrollbarsSetup/scrollbarsSetup.elements';\r\nimport { getEnvironment } from 'environment';\r\n\r\nexport type ScrollbarsSetupEvents = (\r\n scrollbarStructure: ScrollbarStructure,\r\n scrollbarsAddRemoveClass: ScrollbarsSetupElementsObj['_scrollbarsAddRemoveClass'],\r\n documentElm: Document,\r\n scrollOffsetElm: HTMLElement,\r\n isHorizontal?: boolean\r\n) => () => void;\r\n\r\nconst { round } = Math;\r\nconst getClientOffset = (event: PointerEvent): XY => ({\r\n x: event.clientX,\r\n y: event.clientY,\r\n});\r\nconst getScale = (element: HTMLElement): XY => {\r\n const { width, height } = getBoundingClientRect(element);\r\n const { w, h } = offsetSize(element);\r\n return {\r\n x: round(width) / w || 1,\r\n y: round(height) / h || 1,\r\n };\r\n};\r\nconst continuePointerDown = (\r\n event: PointerEvent,\r\n options: ReadonlyOptions,\r\n scrollType: 'dragScroll' | 'clickScroll'\r\n) => {\r\n const scrollbarOptions = options.scrollbars;\r\n const { button, isPrimary, pointerType } = event;\r\n const { pointers } = scrollbarOptions;\r\n return (\r\n button === 0 &&\r\n isPrimary &&\r\n scrollbarOptions[scrollType] &&\r\n (pointers || []).includes(pointerType)\r\n );\r\n};\r\nconst createRootClickStopPropagationEvents = (scrollbar: HTMLElement, documentElm: Document) =>\r\n on(\r\n scrollbar,\r\n 'mousedown',\r\n on.bind(0, documentElm, 'click', stopPropagation, { _once: true, _capture: true }),\r\n { _capture: true }\r\n );\r\nconst createDragScrollingEvents = (\r\n options: ReadonlyOptions,\r\n doc: Document,\r\n scrollbarStructure: ScrollbarStructure,\r\n scrollOffsetElement: HTMLElement,\r\n structureSetupState: () => StructureSetupState,\r\n isHorizontal?: boolean\r\n) => {\r\n const { _rtlScrollBehavior } = getEnvironment();\r\n const { _handle, _track, _scrollbar } = scrollbarStructure;\r\n const scrollOffsetKey = `scroll${isHorizontal ? 'Left' : 'Top'}`;\r\n const xyKey = `${isHorizontal ? 'x' : 'y'}`;\r\n const whKey = `${isHorizontal ? 'w' : 'h'}`;\r\n const createOnPointerMoveHandler =\r\n (mouseDownScroll: number, mouseDownClientOffset: number, mouseDownInvertedScale: number) =>\r\n (event: PointerEvent) => {\r\n const { _overflowAmount } = structureSetupState();\r\n const movement =\r\n (getClientOffset(event)[xyKey] - mouseDownClientOffset) * mouseDownInvertedScale;\r\n const handleTrackDiff = offsetSize(_track)[whKey] - offsetSize(_handle)[whKey];\r\n const scrollDeltaPercent = movement / handleTrackDiff;\r\n const scrollDelta = scrollDeltaPercent * _overflowAmount[xyKey];\r\n const isRTL = directionIsRTL(_scrollbar);\r\n const negateMultiplactor =\r\n isRTL && isHorizontal ? (_rtlScrollBehavior.n || _rtlScrollBehavior.i ? 1 : -1) : 1;\r\n\r\n scrollOffsetElement[scrollOffsetKey] = mouseDownScroll + scrollDelta * negateMultiplactor;\r\n };\r\n\r\n return on(_handle, 'pointerdown', (pointerDownEvent: PointerEvent) => {\r\n if (continuePointerDown(pointerDownEvent, options, 'dragScroll')) {\r\n const offSelectStart = on(doc, 'selectstart', (event: Event) => preventDefault(event), {\r\n _passive: false,\r\n });\r\n const offPointerMove = on(\r\n _handle,\r\n 'pointermove',\r\n createOnPointerMoveHandler(\r\n scrollOffsetElement[scrollOffsetKey] || 0,\r\n getClientOffset(pointerDownEvent)[xyKey],\r\n 1 / getScale(scrollOffsetElement)[xyKey]\r\n )\r\n );\r\n\r\n on(\r\n _handle,\r\n 'pointerup',\r\n (pointerUpEvent: PointerEvent) => {\r\n offSelectStart();\r\n offPointerMove();\r\n _handle.releasePointerCapture(pointerUpEvent.pointerId);\r\n },\r\n { _once: true }\r\n );\r\n _handle.setPointerCapture(pointerDownEvent.pointerId);\r\n }\r\n });\r\n};\r\n\r\nexport const createScrollbarsSetupEvents =\r\n (\r\n options: ReadonlyOptions,\r\n structureSetupState: () => StructureSetupState\r\n ): ScrollbarsSetupEvents =>\r\n (scrollbarStructure, scrollbarsAddRemoveClass, documentElm, scrollOffsetElm, isHorizontal) => {\r\n const { _scrollbar } = scrollbarStructure;\r\n\r\n return runEachAndClear.bind(0, [\r\n on(_scrollbar, 'pointerenter', () => {\r\n scrollbarsAddRemoveClass(classNamesScrollbarInteraction, true);\r\n }),\r\n on(_scrollbar, 'pointerleave pointercancel', () => {\r\n scrollbarsAddRemoveClass(classNamesScrollbarInteraction);\r\n }),\r\n createRootClickStopPropagationEvents(_scrollbar, documentElm),\r\n createDragScrollingEvents(\r\n options,\r\n documentElm,\r\n scrollbarStructure,\r\n scrollOffsetElm,\r\n structureSetupState,\r\n isHorizontal\r\n ),\r\n ]);\r\n };\r\n","import { offsetSize } from 'support';\r\nimport { getEnvironment } from 'environment';\r\nimport type { StructureSetupState } from 'setups';\r\n\r\nconst { min, max, abs, round } = Math;\r\n\r\nexport const getScrollbarHandleLengthRatio = (\r\n scrollbarHandle: HTMLElement,\r\n scrollbarTrack: HTMLElement,\r\n isHorizontal?: boolean,\r\n structureSetupState?: StructureSetupState\r\n) => {\r\n if (structureSetupState) {\r\n const axis = isHorizontal ? 'x' : 'y';\r\n const { _overflowAmount, _overflowEdge } = structureSetupState;\r\n\r\n const viewportSize = _overflowEdge[axis];\r\n const overflowAmount = _overflowAmount[axis];\r\n return max(0, min(1, viewportSize / (viewportSize + overflowAmount)));\r\n }\r\n const axis = isHorizontal ? 'w' : 'h';\r\n const handleSize = offsetSize(scrollbarHandle)[axis];\r\n const trackSize = offsetSize(scrollbarTrack)[axis];\r\n return max(0, min(1, handleSize / trackSize));\r\n};\r\n\r\nexport const getScrollbarHandleOffsetRatio = (\r\n scrollbarHandle: HTMLElement,\r\n scrollbarTrack: HTMLElement,\r\n scrollOffsetElement: HTMLElement,\r\n structureSetupState: StructureSetupState,\r\n isRTL: boolean,\r\n isHorizontal?: boolean\r\n) => {\r\n const { _rtlScrollBehavior } = getEnvironment();\r\n const axis = isHorizontal ? 'x' : 'y';\r\n const scrollLeftTop = isHorizontal ? 'Left' : 'Top';\r\n const { _overflowAmount } = structureSetupState;\r\n const scrollPositionMax = round(_overflowAmount[axis]);\r\n const scrollPosition = abs(scrollOffsetElement[`scroll${scrollLeftTop}`]);\r\n const handleRTL = isHorizontal && isRTL;\r\n const rtlNormalizedScrollPosition = _rtlScrollBehavior.i\r\n ? scrollPosition\r\n : scrollPositionMax - scrollPosition;\r\n const finalScrollPosition = handleRTL ? rtlNormalizedScrollPosition : scrollPosition;\r\n const scrollPercent = min(1, finalScrollPosition / scrollPositionMax);\r\n const lengthRatio = getScrollbarHandleLengthRatio(scrollbarHandle, scrollbarTrack, isHorizontal);\r\n\r\n return (1 / lengthRatio) * (1 - lengthRatio) * scrollPercent;\r\n};\r\n","import {\r\n addClass,\r\n appendChildren,\r\n createDiv,\r\n directionIsRTL,\r\n each,\r\n isBoolean,\r\n isEmptyArray,\r\n push,\r\n removeClass,\r\n removeElements,\r\n runEachAndClear,\r\n setT,\r\n style,\r\n} from 'support';\r\nimport {\r\n classNameScrollbar,\r\n classNameScrollbarHorizontal,\r\n classNameScrollbarVertical,\r\n classNameScrollbarTrack,\r\n classNameScrollbarHandle,\r\n classNamesScrollbarTransitionless,\r\n} from 'classnames';\r\nimport { getEnvironment } from 'environment';\r\nimport { dynamicInitializationElement as generalDynamicInitializationElement } from 'initialization';\r\nimport {\r\n getScrollbarHandleLengthRatio,\r\n getScrollbarHandleOffsetRatio,\r\n} from 'setups/scrollbarsSetup/scrollbarsSetup.calculations';\r\nimport type { InitializationTarget } from 'initialization';\r\nimport type { StructureSetupElementsObj } from 'setups/structureSetup/structureSetup.elements';\r\nimport type { ScrollbarsSetupEvents } from 'setups/scrollbarsSetup/scrollbarsSetup.events';\r\nimport type {\r\n ScrollbarsInitialization,\r\n ScrollbarsDynamicInitializationElement,\r\n} from 'setups/scrollbarsSetup/scrollbarsSetup.initialization';\r\nimport type { StyleObject } from 'typings';\r\nimport { StructureSetupState } from 'setups';\r\n\r\nexport interface ScrollbarStructure {\r\n _scrollbar: HTMLElement;\r\n _track: HTMLElement;\r\n _handle: HTMLElement;\r\n}\r\n\r\nexport interface ScrollbarsSetupElement {\r\n _scrollbarStructures: ScrollbarStructure[];\r\n _clone: () => ScrollbarStructure;\r\n _handleStyle: (\r\n elmStyle: (\r\n scrollbarStructure: ScrollbarStructure\r\n ) => [HTMLElement | false | null | undefined, StyleObject]\r\n ) => void;\r\n}\r\n\r\nexport interface ScrollbarsSetupElementsObj {\r\n _scrollbarsAddRemoveClass: (\r\n classNames: string | false | null | undefined,\r\n add?: boolean,\r\n isHorizontal?: boolean\r\n ) => void;\r\n _refreshScrollbarsHandleLength: (structureSetupState: StructureSetupState) => void;\r\n _refreshScrollbarsHandleOffset: (structureSetupState: StructureSetupState) => void;\r\n _horizontal: ScrollbarsSetupElement;\r\n _vertical: ScrollbarsSetupElement;\r\n}\r\n\r\nexport type ScrollbarsSetupElements = [\r\n elements: ScrollbarsSetupElementsObj,\r\n appendElements: () => void,\r\n destroy: () => void\r\n];\r\n\r\nexport const createScrollbarsSetupElements = (\r\n target: InitializationTarget,\r\n structureSetupElements: StructureSetupElementsObj,\r\n scrollbarsSetupEvents: ScrollbarsSetupEvents\r\n): ScrollbarsSetupElements => {\r\n const { _getDefaultInitialization } = getEnvironment();\r\n const { scrollbarsSlot: defaultScrollbarsSlot } = _getDefaultInitialization();\r\n const { _documentElm, _target, _host, _viewport, _targetIsElm, _scrollOffsetElement } =\r\n structureSetupElements;\r\n const { scrollbarsSlot } = (_targetIsElm ? {} : target) as ScrollbarsInitialization;\r\n const evaluatedScrollbarSlot =\r\n generalDynamicInitializationElement(\r\n [_target, _host, _viewport],\r\n () => _host,\r\n defaultScrollbarsSlot,\r\n scrollbarsSlot\r\n );\r\n const scrollbarStructureAddRemoveClass = (\r\n scrollbarStructures: ScrollbarStructure[],\r\n classNames: string | false | null | undefined,\r\n add?: boolean\r\n ) => {\r\n const action = add ? addClass : removeClass;\r\n each(scrollbarStructures, (scrollbarStructure) => {\r\n action(scrollbarStructure._scrollbar, classNames);\r\n });\r\n };\r\n const scrollbarsHandleStyle = (\r\n scrollbarStructures: ScrollbarStructure[],\r\n elmStyle: (\r\n scrollbarStructure: ScrollbarStructure\r\n ) => [HTMLElement | false | null | undefined, StyleObject]\r\n ) => {\r\n each(scrollbarStructures, (scrollbarStructure) => {\r\n const [elm, styles] = elmStyle(scrollbarStructure);\r\n style(elm, styles);\r\n });\r\n };\r\n const scrollbarStructureRefreshHandleLength = (\r\n scrollbarStructures: ScrollbarStructure[],\r\n structureSetupState: StructureSetupState,\r\n isHorizontal?: boolean\r\n ) => {\r\n scrollbarsHandleStyle(scrollbarStructures, (structure) => {\r\n const { _handle, _track } = structure;\r\n return [\r\n _handle,\r\n {\r\n [isHorizontal ? 'width' : 'height']: `${(\r\n getScrollbarHandleLengthRatio(_handle, _track, isHorizontal, structureSetupState) * 100\r\n ).toFixed(3)}%`,\r\n },\r\n ];\r\n });\r\n };\r\n const scrollbarStructureRefreshHandleOffset = (\r\n scrollbarStructures: ScrollbarStructure[],\r\n structureSetupState: StructureSetupState,\r\n isHorizontal?: boolean\r\n ) => {\r\n const translateAxis = isHorizontal ? 'X' : 'Y';\r\n scrollbarsHandleStyle(scrollbarStructures, (structure) => {\r\n const { _handle, _track, _scrollbar } = structure;\r\n const offsetRatio = getScrollbarHandleOffsetRatio(\r\n _handle,\r\n _track,\r\n _scrollOffsetElement,\r\n structureSetupState,\r\n directionIsRTL(_scrollbar),\r\n isHorizontal\r\n );\r\n // eslint-disable-next-line no-self-compare\r\n const validOffsetRatio = offsetRatio === offsetRatio; // is false when offset is NaN\r\n return [\r\n _handle,\r\n {\r\n transform: validOffsetRatio\r\n ? `translate${translateAxis}(${(offsetRatio * 100).toFixed(3)}%)`\r\n : '',\r\n },\r\n ];\r\n });\r\n };\r\n\r\n const destroyFns: (() => void)[] = [];\r\n const horizontalScrollbars: ScrollbarStructure[] = [];\r\n const verticalScrollbars: ScrollbarStructure[] = [];\r\n\r\n const scrollbarsAddRemoveClass = (\r\n className: string | false | null | undefined,\r\n add?: boolean,\r\n onlyHorizontal?: boolean\r\n ) => {\r\n const singleAxis = isBoolean(onlyHorizontal);\r\n const runHorizontal = singleAxis ? onlyHorizontal : true;\r\n const runVertical = singleAxis ? !onlyHorizontal : true;\r\n runHorizontal && scrollbarStructureAddRemoveClass(horizontalScrollbars, className, add);\r\n runVertical && scrollbarStructureAddRemoveClass(verticalScrollbars, className, add);\r\n };\r\n const refreshScrollbarsHandleLength = (structureSetupState: StructureSetupState) => {\r\n scrollbarStructureRefreshHandleLength(horizontalScrollbars, structureSetupState, true);\r\n scrollbarStructureRefreshHandleLength(verticalScrollbars, structureSetupState);\r\n };\r\n const refreshScrollbarsHandleOffset = (structureSetupState: StructureSetupState) => {\r\n scrollbarStructureRefreshHandleOffset(horizontalScrollbars, structureSetupState, true);\r\n scrollbarStructureRefreshHandleOffset(verticalScrollbars, structureSetupState);\r\n };\r\n const generateScrollbarDOM = (isHorizontal?: boolean): ScrollbarStructure => {\r\n const scrollbarClassName = isHorizontal\r\n ? classNameScrollbarHorizontal\r\n : classNameScrollbarVertical;\r\n const arrToPush = isHorizontal ? horizontalScrollbars : verticalScrollbars;\r\n const transitionlessClass = isEmptyArray(arrToPush) ? classNamesScrollbarTransitionless : '';\r\n const scrollbar = createDiv(\r\n `${classNameScrollbar} ${scrollbarClassName} ${transitionlessClass}`\r\n );\r\n const track = createDiv(classNameScrollbarTrack);\r\n const handle = createDiv(classNameScrollbarHandle);\r\n const result = {\r\n _scrollbar: scrollbar,\r\n _track: track,\r\n _handle: handle,\r\n };\r\n\r\n appendChildren(scrollbar, track);\r\n appendChildren(track, handle);\r\n\r\n push(arrToPush, result);\r\n push(destroyFns, [\r\n removeElements.bind(0, scrollbar),\r\n scrollbarsSetupEvents(\r\n result,\r\n scrollbarsAddRemoveClass,\r\n _documentElm,\r\n _scrollOffsetElement,\r\n isHorizontal\r\n ),\r\n ]);\r\n\r\n return result;\r\n };\r\n const generateHorizontalScrollbarStructure = generateScrollbarDOM.bind(0, true);\r\n const generateVerticalScrollbarStructure = generateScrollbarDOM.bind(0, false);\r\n const appendElements = () => {\r\n appendChildren(evaluatedScrollbarSlot, horizontalScrollbars[0]._scrollbar);\r\n appendChildren(evaluatedScrollbarSlot, verticalScrollbars[0]._scrollbar);\r\n\r\n setT(() => {\r\n scrollbarsAddRemoveClass(classNamesScrollbarTransitionless);\r\n }, 300);\r\n };\r\n\r\n generateHorizontalScrollbarStructure();\r\n generateVerticalScrollbarStructure();\r\n\r\n return [\r\n {\r\n _refreshScrollbarsHandleLength: refreshScrollbarsHandleLength,\r\n _refreshScrollbarsHandleOffset: refreshScrollbarsHandleOffset,\r\n _scrollbarsAddRemoveClass: scrollbarsAddRemoveClass,\r\n _horizontal: {\r\n _scrollbarStructures: horizontalScrollbars,\r\n _clone: generateHorizontalScrollbarStructure,\r\n _handleStyle: scrollbarsHandleStyle.bind(0, horizontalScrollbars),\r\n },\r\n _vertical: {\r\n _scrollbarStructures: verticalScrollbars,\r\n _clone: generateVerticalScrollbarStructure,\r\n _handleStyle: scrollbarsHandleStyle.bind(0, verticalScrollbars),\r\n },\r\n },\r\n appendElements,\r\n runEachAndClear.bind(0, destroyFns),\r\n ];\r\n};\r\n","import {\r\n rAF,\r\n cAF,\r\n isFunction,\r\n on,\r\n runEachAndClear,\r\n setT,\r\n clearT,\r\n parent,\r\n scrollLeft,\r\n scrollTop,\r\n} from 'support';\r\nimport { createState, createOptionCheck } from 'setups/setups';\r\nimport { createScrollbarsSetupEvents } from 'setups/scrollbarsSetup/scrollbarsSetup.events';\r\nimport {\r\n createScrollbarsSetupElements,\r\n ScrollbarsSetupElementsObj,\r\n ScrollbarStructure,\r\n} from 'setups/scrollbarsSetup/scrollbarsSetup.elements';\r\nimport {\r\n classNamesScrollbarVisible,\r\n classNamesScrollbarUnusable,\r\n classNamesScrollbarCornerless,\r\n classNamesScrollbarAutoHidden,\r\n classNamesScrollbarHandleInteractive,\r\n classNamesScrollbarTrackInteractive,\r\n classNameScrollbarRtl,\r\n} from 'classnames';\r\nimport type { StructureSetupUpdateHints } from 'setups/structureSetup/structureSetup.update';\r\nimport type {\r\n ReadonlyOptions,\r\n ScrollbarVisibilityBehavior,\r\n ScrollbarAutoHideBehavior,\r\n} from 'options';\r\nimport type { Setup, StructureSetupState, StructureSetupStaticState } from 'setups';\r\nimport type { InitializationTarget } from 'initialization';\r\nimport type { DeepPartial, OverflowStyle, StyleObject } from 'typings';\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\r\nexport interface ScrollbarsSetupState {}\r\n\r\nexport interface ScrollbarsSetupStaticState {\r\n _elements: ScrollbarsSetupElementsObj;\r\n _appendElements: () => void;\r\n}\r\n\r\nconst createSelfCancelTimeout = (timeout?: number | (() => number)) => {\r\n let id: number;\r\n const setTFn = timeout ? setT : rAF!;\r\n const clearTFn = timeout ? clearT : cAF!;\r\n return [\r\n (callback: () => any) => {\r\n clearTFn(id);\r\n // @ts-ignore\r\n id = setTFn(callback, isFunction(timeout) ? timeout() : timeout);\r\n },\r\n () => clearTFn(id),\r\n ] as [timeout: (callback: () => any) => void, clear: () => void];\r\n};\r\n\r\nexport const createScrollbarsSetup = (\r\n target: InitializationTarget,\r\n options: ReadonlyOptions,\r\n structureSetupState: (() => StructureSetupState) & StructureSetupStaticState\r\n): Setup<\r\n ScrollbarsSetupState,\r\n ScrollbarsSetupStaticState,\r\n [DeepPartial]\r\n> => {\r\n let autoHideIsMove: boolean;\r\n let autoHideIsLeave: boolean;\r\n let autoHideNotNever: boolean;\r\n let mouseInHost: boolean | undefined;\r\n let prevTheme: string | null | undefined;\r\n let globalAutoHideDelay = 0;\r\n\r\n const state = createState({});\r\n const [getState] = state;\r\n const [requestMouseMoveAnimationFrame, cancelMouseMoveAnimationFrame] = createSelfCancelTimeout();\r\n const [requestScrollAnimationFrame, cancelScrollAnimationFrame] = createSelfCancelTimeout();\r\n const [scrollTimeout, clearScrollTimeout] = createSelfCancelTimeout(100);\r\n const [auotHideMoveTimeout, clearAutoHideTimeout] = createSelfCancelTimeout(100);\r\n const [auotHideTimeout, clearAutoTimeout] = createSelfCancelTimeout(() => globalAutoHideDelay);\r\n const [elements, appendElements, destroyElements] = createScrollbarsSetupElements(\r\n target,\r\n structureSetupState._elements,\r\n createScrollbarsSetupEvents(options, structureSetupState)\r\n );\r\n const {\r\n _host,\r\n _viewport,\r\n _scrollOffsetElement,\r\n _scrollEventElement,\r\n _viewportIsTarget,\r\n _isBody,\r\n } = structureSetupState._elements;\r\n const {\r\n _horizontal,\r\n _vertical,\r\n _scrollbarsAddRemoveClass: scrollbarsAddRemoveClass,\r\n _refreshScrollbarsHandleLength,\r\n _refreshScrollbarsHandleOffset,\r\n } = elements;\r\n const { _handleStyle: styleHorizontal } = _horizontal;\r\n const { _handleStyle: styleVertical } = _vertical;\r\n const styleScrollbarPosition = (structure: ScrollbarStructure) => {\r\n const { _scrollbar } = structure;\r\n const elm = _viewportIsTarget && !_isBody && parent(_scrollbar) === _viewport && _scrollbar;\r\n return [\r\n elm,\r\n {\r\n transform: elm\r\n ? `translate(${scrollLeft(_scrollOffsetElement)}px, ${scrollTop(_scrollOffsetElement)}px)`\r\n : '',\r\n },\r\n ] as [HTMLElement | false, StyleObject];\r\n };\r\n const manageScrollbarsAutoHide = (removeAutoHide: boolean, delayless?: boolean) => {\r\n clearAutoTimeout();\r\n if (removeAutoHide) {\r\n scrollbarsAddRemoveClass(classNamesScrollbarAutoHidden);\r\n } else {\r\n const hide = () => scrollbarsAddRemoveClass(classNamesScrollbarAutoHidden, true);\r\n if (globalAutoHideDelay > 0 && !delayless) {\r\n auotHideTimeout(hide);\r\n } else {\r\n hide();\r\n }\r\n }\r\n };\r\n const onHostMouseEnter = () => {\r\n mouseInHost = autoHideIsLeave;\r\n mouseInHost && manageScrollbarsAutoHide(true);\r\n };\r\n\r\n const destroyFns: (() => void)[] = [\r\n clearScrollTimeout,\r\n clearAutoTimeout,\r\n clearAutoHideTimeout,\r\n cancelScrollAnimationFrame,\r\n cancelMouseMoveAnimationFrame,\r\n destroyElements,\r\n\r\n on(_host, 'pointerover', onHostMouseEnter, { _once: true }),\r\n on(_host, 'pointerenter', onHostMouseEnter),\r\n on(_host, 'pointerleave', () => {\r\n mouseInHost = false;\r\n autoHideIsLeave && manageScrollbarsAutoHide(false);\r\n }),\r\n on(_host, 'pointermove', () => {\r\n autoHideIsMove &&\r\n requestMouseMoveAnimationFrame(() => {\r\n clearScrollTimeout();\r\n manageScrollbarsAutoHide(true);\r\n auotHideMoveTimeout(() => {\r\n autoHideIsMove && manageScrollbarsAutoHide(false);\r\n });\r\n });\r\n }),\r\n on(_scrollEventElement, 'scroll', () => {\r\n requestScrollAnimationFrame(() => {\r\n _refreshScrollbarsHandleOffset(structureSetupState());\r\n\r\n autoHideNotNever && manageScrollbarsAutoHide(true);\r\n scrollTimeout(() => {\r\n autoHideNotNever && !mouseInHost && manageScrollbarsAutoHide(false);\r\n });\r\n });\r\n\r\n _viewportIsTarget && styleHorizontal(styleScrollbarPosition);\r\n _viewportIsTarget && styleVertical(styleScrollbarPosition);\r\n }),\r\n ];\r\n const scrollbarsSetupState = getState.bind(0) as (() => ScrollbarsSetupState) &\r\n ScrollbarsSetupStaticState;\r\n scrollbarsSetupState._elements = elements;\r\n scrollbarsSetupState._appendElements = appendElements;\r\n\r\n return [\r\n (changedOptions, force, structureUpdateHints) => {\r\n const {\r\n _overflowEdgeChanged,\r\n _overflowAmountChanged,\r\n _overflowStyleChanged,\r\n _directionChanged,\r\n } = structureUpdateHints;\r\n const checkOption = createOptionCheck(options, changedOptions, force);\r\n const currStructureSetupState = structureSetupState();\r\n const { _overflowAmount, _overflowStyle, _directionIsRTL } = currStructureSetupState;\r\n const [theme, themeChanged] = checkOption('scrollbars.theme');\r\n const [visibility, visibilityChanged] =\r\n checkOption('scrollbars.visibility');\r\n const [autoHide, autoHideChanged] =\r\n checkOption('scrollbars.autoHide');\r\n const [autoHideDelay] = checkOption('scrollbars.autoHideDelay');\r\n const [dragScroll, dragScrollChanged] = checkOption('scrollbars.dragScroll');\r\n const [clickScroll, clickScrollChanged] = checkOption('scrollbars.clickScroll');\r\n\r\n const updateHandle =\r\n _overflowEdgeChanged || _overflowAmountChanged || _directionChanged || force;\r\n const updateVisibility = _overflowStyleChanged || visibilityChanged || force;\r\n\r\n const setScrollbarVisibility = (overflowStyle: OverflowStyle, isHorizontal: boolean) => {\r\n const isVisible =\r\n visibility === 'visible' || (visibility === 'auto' && overflowStyle === 'scroll');\r\n scrollbarsAddRemoveClass(classNamesScrollbarVisible, isVisible, isHorizontal);\r\n return isVisible;\r\n };\r\n\r\n globalAutoHideDelay = autoHideDelay;\r\n\r\n if (themeChanged) {\r\n scrollbarsAddRemoveClass(prevTheme);\r\n scrollbarsAddRemoveClass(theme, true);\r\n\r\n prevTheme = theme;\r\n }\r\n if (autoHideChanged) {\r\n autoHideIsMove = autoHide === 'move';\r\n autoHideIsLeave = autoHide === 'leave';\r\n autoHideNotNever = autoHide !== 'never';\r\n manageScrollbarsAutoHide(!autoHideNotNever, true);\r\n }\r\n if (dragScrollChanged) {\r\n scrollbarsAddRemoveClass(classNamesScrollbarHandleInteractive, dragScroll);\r\n }\r\n if (clickScrollChanged) {\r\n scrollbarsAddRemoveClass(classNamesScrollbarTrackInteractive, clickScroll);\r\n }\r\n if (updateVisibility) {\r\n const xVisible = setScrollbarVisibility(_overflowStyle.x, true);\r\n const yVisible = setScrollbarVisibility(_overflowStyle.y, false);\r\n const hasCorner = xVisible && yVisible;\r\n\r\n scrollbarsAddRemoveClass(classNamesScrollbarCornerless, !hasCorner);\r\n }\r\n if (updateHandle) {\r\n _refreshScrollbarsHandleLength(currStructureSetupState);\r\n _refreshScrollbarsHandleOffset(currStructureSetupState);\r\n\r\n scrollbarsAddRemoveClass(classNamesScrollbarUnusable, !_overflowAmount.x, true);\r\n scrollbarsAddRemoveClass(classNamesScrollbarUnusable, !_overflowAmount.y, false);\r\n scrollbarsAddRemoveClass(classNameScrollbarRtl, _directionIsRTL && !_isBody);\r\n }\r\n },\r\n scrollbarsSetupState,\r\n runEachAndClear.bind(0, destroyFns),\r\n ];\r\n};\r\n","import { OverlayScrollbars } from 'overlayscrollbars';\r\n\r\nconst targets: Set = new Set();\r\nconst targetInstanceMap: WeakMap = new WeakMap();\r\n\r\n/**\r\n * Adds the given OverlayScrollbars instance to the given element.\r\n * @param target The element which is the target of the OverlayScrollbars instance.\r\n * @param osInstance The OverlayScrollbars instance.\r\n */\r\nexport const addInstance = (target: Element, osInstance: OverlayScrollbars): void => {\r\n targetInstanceMap.set(target, osInstance);\r\n targets.add(target);\r\n};\r\n\r\n/**\r\n * Removes a OverlayScrollbars instance from the given element.\r\n * @param target The element from which its OverlayScrollbars instance shall be removed.\r\n */\r\nexport const removeInstance = (target: Element): void => {\r\n targetInstanceMap.delete(target);\r\n targets.delete(target);\r\n};\r\n\r\n/**\r\n * Gets the OverlayScrollbars from the given element or undefined if it doesn't have one.\r\n * @param target The element of which its OverlayScrollbars instance shall be get.\r\n */\r\nexport const getInstance = (target: Element): OverlayScrollbars | undefined =>\r\n targetInstanceMap.get(target);\r\n\r\n/**\r\n * Gets a Map which represents all active OverayScrollbars instances.\r\n * The Key is the element and the value is the instance.\r\n */\r\nexport const allInstances = (): ReadonlyMap => {\r\n const validTargetInstanceMap: Map = new Map();\r\n\r\n targets.forEach((target: Element) => {\r\n /* istanbul ignore else */\r\n if (targetInstanceMap.has(target)) {\r\n validTargetInstanceMap.set(target, targetInstanceMap.get(target)!);\r\n }\r\n });\r\n\r\n targets.clear();\r\n\r\n validTargetInstanceMap.forEach((instance: OverlayScrollbars, validTarget: Element) => {\r\n targets.add(validTarget);\r\n });\r\n\r\n return validTargetInstanceMap;\r\n};\r\n","import {\r\n assignDeep,\r\n isEmptyObject,\r\n each,\r\n isFunction,\r\n keys,\r\n isHTMLElement,\r\n XY,\r\n TRBL,\r\n createEventListenerHub,\r\n} from 'support';\r\nimport { createStructureSetup, createScrollbarsSetup } from 'setups';\r\nimport { getOptionsDiff, Options, ReadonlyOptions } from 'options';\r\nimport { getEnvironment } from 'environment';\r\nimport {\r\n getPlugins,\r\n addPlugin,\r\n optionsValidationPluginName,\r\n Plugin,\r\n OptionsValidationPluginInstance,\r\n} from 'plugins';\r\nimport { addInstance, getInstance, removeInstance } from 'instances';\r\nimport type { DeepPartial, OverflowStyle } from 'typings';\r\nimport { InitializationTarget, Initialization, cancelInitialization } from 'initialization';\r\nimport type {\r\n InitialEventListeners as GeneralInitialEventListeners,\r\n EventListener as GeneralEventListener,\r\n} from 'support/eventListeners';\r\nimport {\r\n ScrollbarsSetupElement,\r\n ScrollbarStructure,\r\n} from 'setups/scrollbarsSetup/scrollbarsSetup.elements';\r\n\r\nexport interface OverlayScrollbarsStatic {\r\n (\r\n target: InitializationTarget,\r\n options?: DeepPartial,\r\n eventListeners?: GeneralInitialEventListeners\r\n ): OverlayScrollbars;\r\n\r\n plugin(plugin: Plugin | Plugin[]): void;\r\n env(): Environment;\r\n}\r\n\r\nexport interface Environment {\r\n scrollbarsSize: XY;\r\n scrollbarsOverlaid: XY;\r\n scrollbarsHiding: boolean;\r\n rtlScrollBehavior: { n: boolean; i: boolean };\r\n flexboxGlue: boolean;\r\n cssCustomProperties: boolean;\r\n staticDefaultInitialization: Initialization;\r\n staticDefaultOptions: Options;\r\n\r\n getDefaultInitialization(): Initialization;\r\n setDefaultInitialization(newDefaultInitialization: DeepPartial): void;\r\n getDefaultOptions(): Options;\r\n setDefaultOptions(newDefaultOptions: DeepPartial): void;\r\n}\r\n\r\nexport interface State {\r\n padding: TRBL;\r\n paddingAbsolute: boolean;\r\n overflowEdge: XY;\r\n overflowAmount: XY;\r\n overflowStyle: XY;\r\n hasOverflow: XY;\r\n directionRTL: boolean;\r\n destroyed: boolean;\r\n}\r\n\r\nexport interface ScrollbarElements {\r\n scrollbar: HTMLElement;\r\n track: HTMLElement;\r\n handle: HTMLElement;\r\n}\r\n\r\nexport interface CloneableScrollbarElements extends ScrollbarElements {\r\n clone(): ScrollbarElements;\r\n}\r\n\r\nexport interface Elements {\r\n target: HTMLElement;\r\n host: HTMLElement;\r\n padding: HTMLElement;\r\n viewport: HTMLElement;\r\n content: HTMLElement;\r\n scrollOffsetElement: HTMLElement;\r\n scrollEventElement: HTMLElement | Document;\r\n scrollbarHorizontal: CloneableScrollbarElements;\r\n scrollbarVertical: CloneableScrollbarElements;\r\n}\r\n\r\nexport interface OnUpdatedEventListenerArgs {\r\n updateHints: {\r\n sizeChanged: boolean;\r\n directionChanged: boolean;\r\n heightIntrinsicChanged: boolean;\r\n overflowEdgeChanged: boolean;\r\n overflowAmountChanged: boolean;\r\n overflowStyleChanged: boolean;\r\n hostMutation: boolean;\r\n contentMutation: boolean;\r\n };\r\n changedOptions: DeepPartial;\r\n force: boolean;\r\n}\r\n\r\nexport type EventListenerMap = {\r\n /**\r\n * Triggered after all elements are initialized and appended.\r\n */\r\n initialized: [instance: OverlayScrollbars];\r\n /**\r\n * Triggered after an update.\r\n */\r\n updated: [instance: OverlayScrollbars, onUpdatedArgs: OnUpdatedEventListenerArgs];\r\n /**\r\n * Triggered after all elements, observers and events are destroyed.\r\n */\r\n destroyed: [instance: OverlayScrollbars, canceled: boolean];\r\n};\r\n\r\nexport type InitialEventListeners = GeneralInitialEventListeners;\r\n\r\nexport type EventListener = GeneralEventListener<\r\n EventListenerMap,\r\n Name\r\n>;\r\n\r\nexport interface OverlayScrollbars {\r\n options(): Options;\r\n options(newOptions?: DeepPartial): Options;\r\n\r\n update(force?: boolean): OverlayScrollbars;\r\n\r\n destroy(): void;\r\n\r\n state(): State;\r\n\r\n elements(): Elements;\r\n\r\n on(name: Name, listener: EventListener): () => void;\r\n on(name: Name, listener: EventListener[]): () => void;\r\n\r\n off(name: Name, listener: EventListener): void;\r\n off(name: Name, listener: EventListener[]): void;\r\n}\r\n\r\n/**\r\n * Notes:\r\n * Height intrinsic detection use \"content: true\" init strategy - or open ticket for custom height intrinsic observer\r\n */\r\n\r\nexport const OverlayScrollbars: OverlayScrollbarsStatic = (\r\n target,\r\n options?,\r\n eventListeners?\r\n): OverlayScrollbars => {\r\n let destroyed = false;\r\n const { _getDefaultOptions, _addListener: addEnvListener } = getEnvironment();\r\n const plugins = getPlugins();\r\n const targetIsElement = isHTMLElement(target);\r\n const instanceTarget = targetIsElement ? target : target.target;\r\n const potentialInstance = getInstance(instanceTarget);\r\n if (potentialInstance) {\r\n return potentialInstance;\r\n }\r\n\r\n const optionsValidationPlugin = plugins[\r\n optionsValidationPluginName\r\n ] as OptionsValidationPluginInstance;\r\n const validateOptions = (newOptions?: DeepPartial) => {\r\n const opts = newOptions || {};\r\n const validate = optionsValidationPlugin && optionsValidationPlugin._;\r\n return validate ? validate(opts, true) : opts;\r\n };\r\n const currentOptions: ReadonlyOptions = assignDeep(\r\n {},\r\n _getDefaultOptions(),\r\n validateOptions(options)\r\n );\r\n const [addEvent, removeEvent, triggerEvent] = createEventListenerHub(eventListeners);\r\n const [updateStructure, structureState, destroyStructure] = createStructureSetup(\r\n target,\r\n currentOptions\r\n );\r\n const [updateScrollbars, scrollbarsState, destroyScrollbars] = createScrollbarsSetup(\r\n target,\r\n currentOptions,\r\n structureState\r\n );\r\n const update = (changedOptions: DeepPartial, force?: boolean) => {\r\n updateStructure(changedOptions, !!force);\r\n };\r\n const removeEnvListener = addEnvListener(update.bind(0, {}, true));\r\n const destroy = (canceled?: boolean) => {\r\n removeInstance(instanceTarget);\r\n removeEnvListener();\r\n\r\n destroyScrollbars();\r\n destroyStructure();\r\n\r\n destroyed = true;\r\n\r\n // eslint-disable-next-line no-use-before-define\r\n triggerEvent('destroyed', [instance, !!canceled]);\r\n removeEvent();\r\n };\r\n\r\n const instance: OverlayScrollbars = {\r\n options(newOptions?: DeepPartial) {\r\n if (newOptions) {\r\n const changedOptions = getOptionsDiff(currentOptions, validateOptions(newOptions));\r\n\r\n if (!isEmptyObject(changedOptions)) {\r\n assignDeep(currentOptions, changedOptions);\r\n update(changedOptions);\r\n }\r\n }\r\n return assignDeep({}, currentOptions);\r\n },\r\n on: addEvent,\r\n off: (name, listener) => {\r\n name && listener && removeEvent(name, listener as any);\r\n },\r\n state() {\r\n const {\r\n _overflowEdge,\r\n _overflowAmount,\r\n _overflowStyle,\r\n _hasOverflow,\r\n _padding,\r\n _paddingAbsolute,\r\n _directionIsRTL,\r\n } = structureState();\r\n return assignDeep(\r\n {},\r\n {\r\n overflowEdge: _overflowEdge,\r\n overflowAmount: _overflowAmount,\r\n overflowStyle: _overflowStyle,\r\n hasOverflow: _hasOverflow,\r\n padding: _padding,\r\n paddingAbsolute: _paddingAbsolute,\r\n directionRTL: _directionIsRTL,\r\n destroyed,\r\n }\r\n );\r\n },\r\n elements() {\r\n const {\r\n _target,\r\n _host,\r\n _padding,\r\n _viewport,\r\n _content,\r\n _scrollOffsetElement,\r\n _scrollEventElement,\r\n } = structureState._elements;\r\n const { _horizontal, _vertical } = scrollbarsState._elements;\r\n const translateScrollbarStructure = (\r\n scrollbarStructure: ScrollbarStructure\r\n ): ScrollbarElements => {\r\n const { _handle, _track, _scrollbar } = scrollbarStructure;\r\n return {\r\n scrollbar: _scrollbar,\r\n track: _track,\r\n handle: _handle,\r\n };\r\n };\r\n const translateScrollbarsSetupElement = (\r\n scrollbarsSetupElement: ScrollbarsSetupElement\r\n ): CloneableScrollbarElements => {\r\n const { _scrollbarStructures, _clone } = scrollbarsSetupElement;\r\n const translatedStructure = translateScrollbarStructure(_scrollbarStructures[0]);\r\n\r\n return assignDeep({}, translatedStructure, {\r\n clone: () => {\r\n const result = translateScrollbarStructure(_clone());\r\n updateScrollbars({}, true, {});\r\n return result;\r\n },\r\n });\r\n };\r\n return assignDeep(\r\n {},\r\n {\r\n target: _target,\r\n host: _host,\r\n padding: _padding || _viewport,\r\n viewport: _viewport,\r\n content: _content || _viewport,\r\n scrollOffsetElement: _scrollOffsetElement,\r\n scrollEventElement: _scrollEventElement,\r\n scrollbarHorizontal: translateScrollbarsSetupElement(_horizontal),\r\n scrollbarVertical: translateScrollbarsSetupElement(_vertical),\r\n }\r\n );\r\n },\r\n update(force?: boolean) {\r\n update({}, force);\r\n return instance;\r\n },\r\n destroy: destroy.bind(0),\r\n };\r\n\r\n structureState._addOnUpdatedListener((updateHints, changedOptions, force: boolean) => {\r\n updateScrollbars(changedOptions, force, updateHints);\r\n });\r\n\r\n each(keys(plugins), (pluginName) => {\r\n const pluginInstance = plugins[pluginName];\r\n if (isFunction(pluginInstance)) {\r\n pluginInstance(OverlayScrollbars, instance);\r\n }\r\n });\r\n\r\n if (cancelInitialization(!targetIsElement && target.cancel, structureState._elements)) {\r\n destroy(true);\r\n return instance;\r\n }\r\n\r\n structureState._appendElements();\r\n scrollbarsState._appendElements();\r\n\r\n addInstance(instanceTarget, instance);\r\n triggerEvent('initialized', [instance]);\r\n\r\n structureState._addOnUpdatedListener((updateHints, changedOptions, force) => {\r\n const {\r\n _sizeChanged,\r\n _directionChanged,\r\n _heightIntrinsicChanged,\r\n _overflowEdgeChanged,\r\n _overflowAmountChanged,\r\n _overflowStyleChanged,\r\n _contentMutation,\r\n _hostMutation,\r\n } = updateHints;\r\n\r\n triggerEvent('updated', [\r\n instance,\r\n {\r\n updateHints: {\r\n sizeChanged: _sizeChanged,\r\n directionChanged: _directionChanged,\r\n heightIntrinsicChanged: _heightIntrinsicChanged,\r\n overflowEdgeChanged: _overflowEdgeChanged,\r\n overflowAmountChanged: _overflowAmountChanged,\r\n overflowStyleChanged: _overflowStyleChanged,\r\n contentMutation: _contentMutation,\r\n hostMutation: _hostMutation,\r\n },\r\n changedOptions,\r\n force,\r\n },\r\n ]);\r\n });\r\n\r\n return instance.update(true);\r\n};\r\n\r\nOverlayScrollbars.plugin = addPlugin;\r\nOverlayScrollbars.env = () => {\r\n const {\r\n _nativeScrollbarsSize,\r\n _nativeScrollbarsOverlaid,\r\n _nativeScrollbarsHiding,\r\n _rtlScrollBehavior,\r\n _flexboxGlue,\r\n _cssCustomProperties,\r\n _staticDefaultInitialization,\r\n _staticDefaultOptions,\r\n _getDefaultInitialization,\r\n _setDefaultInitialization,\r\n _getDefaultOptions,\r\n _setDefaultOptions,\r\n } = getEnvironment();\r\n return assignDeep(\r\n {},\r\n {\r\n scrollbarsSize: _nativeScrollbarsSize,\r\n scrollbarsOverlaid: _nativeScrollbarsOverlaid,\r\n scrollbarsHiding: _nativeScrollbarsHiding,\r\n rtlScrollBehavior: _rtlScrollBehavior,\r\n flexboxGlue: _flexboxGlue,\r\n cssCustomProperties: _cssCustomProperties,\r\n staticDefaultInitialization: _staticDefaultInitialization,\r\n staticDefaultOptions: _staticDefaultOptions,\r\n\r\n getDefaultInitialization: _getDefaultInitialization,\r\n setDefaultInitialization: _setDefaultInitialization,\r\n getDefaultOptions: _getDefaultOptions,\r\n setDefaultOptions: _setDefaultOptions,\r\n }\r\n );\r\n};\r\n"],"names":["each","source","callback","isArrayLike","i","length","Object","keys","key","style","elm","styles","getSingleStyle","isString","getStyles","isArray","getStylesResult","computedStyle","window","getComputedStyle","getCSSVal","reduce","result","setCSSVal","createCache","options","update","_initialValue","_equal","_alwaysUpdateValues","_value","_previous","cacheUpdateContextual","newValue","force","curr","newVal","changed","cacheUpdateIsolated","getCurrentCache","ElementNodeType","Node","ELEMENT_NODE","prototype","toString","hasOwnProperty","isUndefined","obj","undefined","isNull","type","call","replace","toLowerCase","isNumber","isBoolean","isFunction","Array","isObject","lengthCorrectFormat","isPlainObject","cstr","ctor","ctorProto","hasOwnConstructor","hasIsPrototypeOf","isHTMLElement","instanceofObj","HTMLElement","nodeType","isElement","Element","indexOf","arr","item","fromIndex","push","array","items","arrayIsSingleItem","apply","from","original","Set","forEach","value","isEmptyArray","runEachAndClear","args","keep","runFn","fn","prop","assignDeep","target","object1","object2","object3","object4","object5","object6","sources","copy","copyIsArray","src","clone","isEmptyObject","name","getSetProp","topLeft","fallback","attr","attrName","getAttribute","setAttribute","attrClass","add","currValues","currValuesSet","split","join","trim","hasAttrClass","has","removeAttr","removeAttribute","scrollLeft","scrollTop","elmPrototype","find","selector","rootElm","document","querySelectorAll","findFirst","querySelector","is","matches","msMatchesSelector","contents","childNodes","parent","parentElement","closest","closestFn","liesBetween","highBoundarySelector","deepBoundarySelector","closestHighBoundaryElm","closestDeepBoundaryElm","deepBoundaryIsValid","before","parentElm","preferredAnchor","insertedElms","anchor","fragment","createDocumentFragment","insertedElm","previousSibling","appendChild","firstChild","nextSibling","insertBefore","appendChildren","node","children","insertedNodes","insertAfter","removeElements","nodes","e","removeChild","createDiv","classNames","div","createElement","createDOM","html","createdDiv","innerHTML","firstLetterToUpper","str","charAt","toUpperCase","slice","getDummyStyle","cssPrefixes","jsPrefixes","jsCache","cssCache","cssProperty","uppercasedName","elmStyle","prefix","prefixWithoutDashes","resultPossibilities","resultPossibility","jsAPI","MutationObserverConstructor","IntersectionObserverConstructor","ResizeObserverConstructor","cAF","rAF","setT","setTimeout","clearT","clearTimeout","rnothtmlwhite","classListAction","className","action","classList","clazz","classes","match","hasClass","contains","removeClass","remove","addClass","bind","equal","a","b","props","propMutation","compareA","compareB","equalWH","equalXY","equalTRBL","equalBCRWH","round","Math","noop","debounce","functionToDebounce","maxTimeoutId","prevArguments","latestArguments","clear","_timeout","_maxDelay","_mergeParams","invokeFunctionToDebounce","this","mergeParms","flush","debouncedFn","arguments","finalTimeout","hasTimeout","finalMaxWait","hasMaxWait","setTimeoutFn","clearTimeoutFn","mergeParamsResult","invokedArgs","boundInvoke","timeoutId","_flush","cssNumber","opacity","zindex","parseToZeroOrNumber","toFloat","num","parseFloat","parseInt","adaptCSSVal","val","getPropertyValue","setProperty","directionIsRTL","topRightBottomLeft","propertyPrefix","propertySuffix","finalPrefix","finalSuffix","top","right","bottom","left","t","r","l","zeroObj","w","h","windowSize","innerWidth","innerHeight","offsetSize","offsetWidth","offsetHeight","clientSize","clientWidth","clientHeight","scrollSize","scrollWidth","scrollHeight","fractionalSize","cssHeight","cssWidth","getBoundingClientRect","passiveEventsSupport","supportPassiveEvents","addEventListener","defineProperty","get","splitEventNames","eventNames","off","listener","capture","eventName","removeEventListener","on","_ref","doSupportPassiveEvents","passive","_passive","_capture","once","_once","offListeners","nativeOptions","finalListener","evt","stopPropagation","preventDefault","x","y","absoluteCoordinates","rect","pageYOffset","pageXOffset","manageListener","createEventListenerHub","initialEventListeners","events","Map","removeEvent","eventSet","currListener","addEvent","set","triggerEvent","event","initialListenerKeys","getPropByPath","path","o","createOptionCheck","changedOptions","createState","initialState","state","newState","classNameEnvironment","classNameEnvironmentFlexboxGlue","classNameEnvironmentFlexboxGlueMax","dataAttributeHost","dataAttributeHostOverflowX","dataAttributeHostOverflowY","dataValueHostOverflowVisible","dataValueHostScrollbarHidden","dataValueHostUpdating","classNamePadding","classNameViewport","classNameViewportArrange","classNameContent","classNameViewportScrollbarHidden","classNameOverflowVisible","classNameSizeObserver","classNameSizeObserverAppear","classNameSizeObserverListener","classNameSizeObserverListenerScroll","classNameSizeObserverListenerItem","classNameSizeObserverListenerItemFinal","classNameTrinsicObserver","classNameScrollbar","classNameScrollbarRtl","classNameScrollbarHorizontal","classNameScrollbarVertical","classNameScrollbarTrack","classNameScrollbarHandle","classNamesScrollbarVisible","classNamesScrollbarCornerless","classNamesScrollbarTransitionless","classNamesScrollbarInteraction","classNamesScrollbarUnusable","classNamesScrollbarAutoHidden","classNamesScrollbarTrackInteractive","classNamesScrollbarHandleInteractive","opsStringify","JSON","stringify","_","Error","defaultOptions","paddingAbsolute","showNativeOverlaidScrollbars","updating","elementEvents","attributes","ignoreMutation","overflow","scrollbars","theme","visibility","autoHide","autoHideDelay","dragScroll","clickScroll","pointers","getOptionsDiff","currOptions","newOptions","diff","optionsKeys","concat","optionKey","currOptionValue","newOptionValue","isDiff","pluginRegistry","getPlugins","addPlugin","addedPlugin","plugin","pluginName","_extends","module","assign","exports","__esModule","optionsTemplateTypes","boolean","number","string","object","function","null","validateRecursive","template","doWriteErrors","propPath","validatedOptions","optionsCopy","filter","optionsValue","templateValue","templateIsComplex","propPrefix","validated","_validateRecursive","foreign","isValid","errorEnumStrings","errorPossibleTypes","optionsValueType","templateValueArr","currTemplateType","typeString","isEnumString","enumStringSplit","possibility","console","warn","validateOptions","numberAllowedValues","oTypes","booleanAllowedValues","arrayNullValues","overflowAllowedValues","scrollbarsVisibilityAllowedValues","scrollbarsAutoHideAllowedValues","optionsTemplate","optionsValidationPluginName","_validateOptions","_optionsValidationPlu","scrollAmount","scrollEventName","sizeObserverPluginName","sizeObserverPlugin","listenerElement","onSizeChangedCallback","observeAppearChange","observerElementChildren","observerElementChildrenRoot","shrinkElement","lastChild","expandElement","expandElementChild","cacheSize","currSize","isDirty","rAFId","reset","onResized","appear","onScroll","scrollEvent","width","height","_sizeObserverPlugin","contentArrangeCounter","abs","getWindowDPR","dDPI","screen","deviceXDPI","sDPI","logicalXDPI","devicePixelRatio","diffBiggerThanOne","valOne","valTwo","absValOne","absValTwo","scrollbarsHidingPluginName","scrollbarsHidingPlugin","_createUniqueViewportArrangeElement","env","_nativeScrollbarsHiding","_nativeScrollbarsOverlaid","_cssCustomProperties","create","_overflowUpdateSegment","doViewportArrange","flexboxGlue","viewport","viewportArrange","getState","getViewportOverflowState","hideNativeScrollbars","arrangeViewport","viewportOverflowState","viewportScrollSize","sizeFraction","_getState","_viewportPaddingStyle","_scrollbarsHideOffset","_scrollbarsHideOffsetArrange","arrangeX","arrangeY","hideOffsetX","hideOffsetY","viewportArrangeHorizontalPaddingKey","viewportArrangeHorizontalPaddingValue","viewportArrangeVerticalPaddingValue","paddingTop","fractionalContentWidth","fractionalContenHeight","arrangeSize","sheet","cssRules","insertRule","ruleStyle","undoViewportArrange","finalViewportOverflowState","_getState2","viewportPaddingStyle","finalPaddingStyle","assignProps","prevStyle","_envWindowZoom","size","dpr","envInstance","updateNativeScrollbarSizeCache","sizeNew","deltaSize","deltaAbsSize","deltaAbsRatio","dprNew","deltaIsBigger","difference","dprChanged","isZoom","_updateNativeScrollba","scrollbarSize","scrollbarSizeChanged","_nativeScrollbarsSize","_scrollbarsHidingPlug","environmentInstance","getNativeScrollbarSize","body","measureElm","measureElmChild","cSize","oSize","fSize","getNativeScrollbarsHiding","testElm","revertClass","ex","getRtlScrollBehavior","childElm","strHidden","overflowX","overflowY","direction","parentOffset","childOffset","childOffsetAfterScroll","n","getFlexboxGlue","revertFbxGlue","minOffsetsizeParent","minOffsetsize","supportsMin","revertFbxGlueMax","maxOffsetsizeParent","maxOffsetsize","supportsMax","createEnvironment","_document","envDOM","envElm","envChildElm","_createEventListenerH","_createCache","getNativeScrollbarSizeCache","_getNativeScrollbarSi","nativeScrollbarsSize","nativeScrollbarsHiding","nativeScrollbarsOverlaid","staticDefaultInitialization","host","padding","ownerDocument","content","scrollbarsSlot","cancel","staticDefaultOptions","_rtlScrollBehavior","_flexboxGlue","_addListener","_getDefaultInitialization","_setDefaultInitialization","newInitializationStrategy","_getDefaultOptions","_setDefaultOptions","newDefaultOptions","_staticDefaultInitialization","_staticDefaultOptions","resizeFn","getEnvironment","resolveInitialization","staticInitializationElement","fallbackStaticInitializationElement","defaultStaticInitializationElementStrategy","staticInitializationElementValue","staticInitialization","resolvedInitialization","dynamicInitializationElement","fallbackDynamicInitializationElement","defaultDynamicInitializationElementStrategy","dynamicInitializationElementValue","dynamicInitialization","cancelInitialization","cancelInitializationValue","structureSetupElements","_isBody","_viewportIsTarget","_getEnvironment","defaultNativeScrollbarsOverlaid","defaultbody","resolvedNativeScrollbarsOverlaid","resolvedDocumentScrollingElement","finalNativeScrollbarsOverlaid","finalDocumentScrollingElement","createNewDiv","unwrap","addDataAttrHost","createStructureSetupElements","createUniqueViewportArrangeElement","_getDefaultInitializa","defaultHostInitialization","defaultViewportInitialization","defaultPaddingInitialization","defaultContentInitialization","targetIsElm","targetStructureInitialization","hostInitialization","paddingInitialization","viewportInitialization","contentInitialization","targetElement","isTextarea","isBody","wnd","defaultView","generalStaticInitializationElement","generalDynamicInitializationElement","viewportElement","viewportIsTarget","viewportIsTargetBody","evaluatedTargetObj","_target","_host","_viewport","_padding","_content","_viewportArrange","_scrollOffsetElement","documentElement","_scrollEventElement","_windowElm","_documentElm","_isTextarea","_targetIsElm","_viewportHasClass","attributeClassName","_viewportAddRemoveClass","generatedElements","elementIsGenerated","destroyFns","isTextareaHostGenerated","targetContents","contentSlot","appendElements","removeHostDataAttr","removePaddingClass","removeViewportClass","removeContentClass","removeHtmlClass","createTrinsicUpdateSegment","updateHints","_heightIntrinsic","_heightIntrinsicChanged","heightIntrinsicChanged","_sizeChanged","_contentMutation","createPaddingUpdateSegment","setState","_isSingleElm","updatePaddingCache","currentPaddingCache","checkOption","_currentPaddingCache","paddingChanged","_nativeScrollbarStyling","_directionIsRTL","_directionChanged","_checkOption","paddingAbsoluteChanged","contentMutation","_updatePaddingCache","paddingStyleChanged","paddingRelative","paddingHorizontal","paddingVertical","paddingStyle","marginRight","marginBottom","marginLeft","viewportStyle","paddingRight","paddingBottom","paddingLeft","_paddingAbsolute","_paddingStyleChanged","max","max0","strVisible","overlaidScrollbarsHideOffset","whCacheOptions","xyCacheOptions","getOverflowAmount","viewportClientSize","tollerance","amount","conditionalClass","overflowIsVisible","overflowBehavior","createOverflowUpdateSegment","updateSizeFraction","getCurrentSizeFraction","_createCache2","updateViewportScrollSizeCache","getCurrentViewportScrollSizeCache","updateOverflowAmountCache","_createCache3","getCurrentOverflowAmountCache","updateOverflowEdge","_createCache4","getCurrentOverflowEdgeCache","updateOverflowStyleCache","_createCache5","fixFlexboxGlue","heightIntrinsic","_overflowScroll","hostClientSize","isContentBox","subtractXScrollbar","viewportStyleObj","arrangeHideOffset","getStatePerAxis","styleKey","isOverlaid","nativeScrollbarSize","overflowStyle","objectPrefferedOverflowStyle","overflowScroll","nonScrollbarStylingHideOffset","scrollbarsHideOffset","scrollbarsHideOffsetArrange","xOverflowStyle","_getStatePerAxis","xOverflowScroll","xScrollbarsHideOffset","xScrollbarsHideOffsetArrange","yOverflowStyle","_getStatePerAxis2","yOverflowScroll","yScrollbarsHideOffset","yScrollbarsHideOffsetArrange","_overflowStyle","setViewportOverflowState","hasOverflow","overflowOption","setAxisOverflowStyle","behavior","hasOverflowAxis","overflowVisible","overflowVisibleBehavior","_setAxisOverflowStyle","visibleBehaviorX","_setAxisOverflowStyle2","visibleBehaviorY","horizontalMarginKey","viewportHorizontalPaddingKey","horizontalMarginValue","verticalMarginValue","horizontalPaddingValue","verticalPaddingValue","_hostMutation","_getState3","showNativeOverlaidScrollbarsOption","showNativeOverlaidScrollbarsChanged","_checkOption2","overflowChanged","adjustFlexboxGlue","overflowXVisible","overflowYVisible","sizeFractionCache","viewportScrollSizeCache","overflowAmuntCache","overflowEdgeCache","preMeasureViewportOverflowState","_undoViewportArrange","redoViewportArrange","undoViewportArrangeOverflowState","_sizeFractionCache","sizeFractionChanged","_viewportScrollSizeCa","viewportScrollSizeChanged","viewportclientSize","arrangedViewportScrollSize","arrangedViewportClientSize","overflowAmountScrollSize","overflowAmountClientSize","_overflowEdgeCache","overflowEdge","overflowEdgeChanged","_overflowAmuntCache","overflowAmount","overflowAmountChanged","_viewportScrollSizeCa2","_sizeFractionCache2","removeClipping","viewportArranged","_updateOverflowStyleC","overflowStyleChanged","_overflowEdge","_overflowAmount","_hasOverflow","_overflowStyleChanged","_overflowEdgeChanged","_overflowAmountChanged","prepareUpdateHints","leading","adaptive","finalAdaptive","objKeys","leadingValue","adaptiveValue","createStructureSetupUpdate","updateSegments","initialUpdateHints","adjustScrollOffset","scrollOffsetX","scrollOffsetY","adaptivedUpdateHints","updateSegment","domRectHasDimensions","createSizeObserver","_ref$_direction","_direction","observeDirectionChange","_ref$_appear","_appear","rtlScrollBehavior","baseElements","sizeObserver","getIsDirectionRTL","currVal","updateResizeObserverContentRectCache","onSizeChangedCallbackProxy","sizeChangedContext","isResizeObserverCall","hasDirectionCache","skip","doDirectionScroll","_updateResizeObserver","pop","contentRect","currRContentRect","prevContentRect","hasDimensions","hadDimensions","rtl","_directionIsRTLCache","appearCallback","resizeObserverInstance","observe","disconnect","pluginAppearCallback","_sizeObserverPlugin$_","pluginOffListeners","updateDirectionIsRTLCache","directionIsRTLCacheValues","directionIsRTLCache","directionIsRTLCacheChanged","isHeightIntrinsic","ioEntryOrSize","isIntersecting","intersectionRatio","createTrinsicObserver","onTrinsicChangedCallback","intersectionObserverInstance","trinsicObserver","updateHeightIntrinsicCache","triggerOnTrinsicChangedCallback","updateValue","fromRecords","intersectionObserverCallback","entries","root","onSizeChanged","newSize","_createSizeObserver","destroySizeObserver","appendSizeObserver","takeRecords","createEventContentChange","eventContentChange","map","destroyed","destroy","updateElements","getElements","eventElmList","elements","entry","entryEventNames","entryOff","delete","WeakMap","createDOMObserver","isContentObserver","isConnected","_attributes","_styleChangingAttributes","_eventContentChange","_nestedTargetSelector","_ignoreTargetChange","_ignoreContentChange","debouncedEventContentChange","_createEventContentCh","destroyEventContentChange","updateEventContentChangeElements","finalAttributes","finalStyleChangingAttributes","observedAttributes","observerCallback","mutations","ignoreTargetChange","ignoreContentChange","targetChangedAttrs","totalAddedNodes","targetStyleChanged","contentChanged","childListChanged","mutation","attributeName","mutationTarget","oldValue","addedNodes","isAttributesType","isChildListType","targetIsMutationTarget","attributeValue","attributeChanged","styleChangingAttrChanged","notOnlyAttrChanged","contentAttrChanged","isNestedTarget","baseAssertion","contentFinalChanged","mutationObserver","attributeOldValue","attributeFilter","subtree","childList","characterData","records","hostSelector","viewportSelector","viewportAttrsFromTarget","baseStyleChangingAttrsTextarea","baseStyleChangingAttrs","createStructureSetupObservers","structureSetupUpdate","debounceTimeout","debounceMaxDelay","contentMutationObserver","hasOver","hasVpStyle","contentScroll","viewportScroll","fractional","updateContentSizeCache","contentMutationObserverAttr","structureSetupUpdateWithDebouncedAdaptiveUpdateHints","prev","prevObj","currObj","updateViewportAttrsFromHost","attribute","hostAttr","onTrinsicChanged","heightIntrinsicCache","updateFn","directionChanged","directionIsRTLChanged","onContentMutation","contentChangedTroughEvent","_updateContentSizeCac","contentSizeChanged","onHostMutation","_ref2","destroyTrinsicObserver","appendTrinsicObserver","updateTrinsicObserver","_ref3","_createDOMObserver","destroyHostMutationObserver","updateHostMutationObserver","viewportIsTargetResizeObserver","hostUpdateResult","trinsicUpdateResult","contentUpdateResult","attributesChanged","_checkOption3","elementEventsChanged","debounceValue","_checkOption4","debounceChanged","updateContentMutationObserver","ignoreMutationFromOptions","ignore","timeout","maxWait","initialXYNumber","initialStructureSetupUpdateState","createStructureSetup","checkOptionsFallback","_createStructureSetup","appendStructureElements","destroyElements","updateStructure","triggerUpdateEvent","truthyUpdateHints","some","destroyObservers","_createStructureSetup2","appendObserverElements","updateObservers","updateObserversOptions","structureSetupState","_addOnUpdatedListener","_appendElements","_elements","getClientOffset","clientX","clientY","getScale","element","continuePointerDown","scrollType","scrollbarOptions","button","isPrimary","pointerType","includes","createRootClickStopPropagationEvents","scrollbar","documentElm","createDragScrollingEvents","doc","scrollbarStructure","scrollOffsetElement","isHorizontal","_handle","_track","_scrollbar","scrollOffsetKey","xyKey","whKey","createOnPointerMoveHandler","mouseDownScroll","mouseDownClientOffset","mouseDownInvertedScale","_structureSetupState","movement","handleTrackDiff","scrollDeltaPercent","scrollDelta","isRTL","negateMultiplactor","pointerDownEvent","offSelectStart","offPointerMove","pointerUpEvent","releasePointerCapture","pointerId","setPointerCapture","createScrollbarsSetupEvents","scrollbarsAddRemoveClass","scrollOffsetElm","min","getScrollbarHandleLengthRatio","scrollbarHandle","scrollbarTrack","axis","viewportSize","handleSize","trackSize","getScrollbarHandleOffsetRatio","scrollLeftTop","scrollPositionMax","scrollPosition","handleRTL","rtlNormalizedScrollPosition","finalScrollPosition","scrollPercent","lengthRatio","createScrollbarsSetupElements","scrollbarsSetupEvents","defaultScrollbarsSlot","evaluatedScrollbarSlot","scrollbarStructureAddRemoveClass","scrollbarStructures","scrollbarsHandleStyle","_elmStyle","scrollbarStructureRefreshHandleLength","structure","toFixed","scrollbarStructureRefreshHandleOffset","translateAxis","offsetRatio","validOffsetRatio","transform","horizontalScrollbars","verticalScrollbars","onlyHorizontal","singleAxis","runHorizontal","runVertical","refreshScrollbarsHandleLength","refreshScrollbarsHandleOffset","generateScrollbarDOM","scrollbarClassName","arrToPush","transitionlessClass","track","handle","generateHorizontalScrollbarStructure","generateVerticalScrollbarStructure","_refreshScrollbarsHandleLength","_refreshScrollbarsHandleOffset","_scrollbarsAddRemoveClass","_horizontal","_scrollbarStructures","_clone","_handleStyle","_vertical","createSelfCancelTimeout","id","setTFn","clearTFn","createScrollbarsSetup","autoHideIsMove","autoHideIsLeave","autoHideNotNever","mouseInHost","prevTheme","globalAutoHideDelay","_createSelfCancelTime","requestMouseMoveAnimationFrame","cancelMouseMoveAnimationFrame","_createSelfCancelTime2","requestScrollAnimationFrame","cancelScrollAnimationFrame","scrollTimeout","_createSelfCancelTime3","clearScrollTimeout","auotHideMoveTimeout","_createSelfCancelTime4","clearAutoHideTimeout","_createSelfCancelTime5","auotHideTimeout","clearAutoTimeout","_createScrollbarsSetu","styleHorizontal","styleVertical","styleScrollbarPosition","manageScrollbarsAutoHide","removeAutoHide","delayless","hide","onHostMouseEnter","scrollbarsSetupState","structureUpdateHints","currStructureSetupState","themeChanged","visibilityChanged","autoHideChanged","_checkOption5","dragScrollChanged","_checkOption6","clickScrollChanged","updateHandle","updateVisibility","setScrollbarVisibility","isVisible","xVisible","yVisible","hasCorner","targets","targetInstanceMap","addInstance","osInstance","removeInstance","getInstance","OverlayScrollbars","eventListeners","addEnvListener","plugins","targetIsElement","instanceTarget","potentialInstance","optionsValidationPlugin","opts","validate","currentOptions","structureState","destroyStructure","updateScrollbars","scrollbarsState","destroyScrollbars","removeEnvListener","canceled","instance","_structureState","directionRTL","translateScrollbarStructure","translateScrollbarsSetupElement","scrollbarsSetupElement","translatedStructure","scrollEventElement","scrollbarHorizontal","scrollbarVertical","pluginInstance","sizeChanged","hostMutation","_getEnvironment2","scrollbarsSize","scrollbarsOverlaid","scrollbarsHiding","cssCustomProperties","getDefaultInitialization","setDefaultInitialization","getDefaultOptions","setDefaultOptions"],"mappings":"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"} \ No newline at end of file diff --git a/packages/overlayscrollbars/dist/overlayscrollbars.min.js b/packages/overlayscrollbars/dist/overlayscrollbars.min.js index 46efb0c..4e5a647 100644 --- a/packages/overlayscrollbars/dist/overlayscrollbars.min.js +++ b/packages/overlayscrollbars/dist/overlayscrollbars.min.js @@ -1 +1 @@ -!function(n,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports):"function"==typeof define&&define.amd?define(["exports"],r):r((n="undefined"!=typeof globalThis?globalThis:n||self).OverlayScrollbars={})}(this,(function(n){"use strict";function r(n,t){if(b(n))for(var e=0;e-1&&r%1==0;return!(!(w(n)||!h(n)&&t)||r>0&&g(n)&&!(r-1 in n))},y=function(n){if(!n||!g(n)||"object"!==d(n))return!1;var r,t="constructor",e=n[t],i=e&&e.prototype,o=a.call(n,t),u=i&&a.call(i,"isPrototypeOf");if(e&&!o&&!u)return!1;for(r in n);return f(r)||a.call(n,r)},m=function(n){var r=HTMLElement;return!!n&&(r?n instanceof r:n.nodeType===o)},x=function(n){var r=Element;return!!n&&(r?n instanceof r:n.nodeType===o)},O=function(n,r,t){return n.indexOf(r,t)},S=function(n,r,t){return t||v(r)||!b(r)?n.push(r):Array.prototype.push.apply(n,r),n},L=function(n){var t=Array.from,e=[];return t&&n?t(n):(n instanceof Set?n.forEach((function(n){S(e,n)})):r(n,(function(n){S(e,n)})),e)},C=function(n){return!!n&&0===n.length},P=function(n,t,e){r(n,(function(n){return n&&n.apply(void 0,t||[])})),!e&&(n.length=0)},M=function(n,r){return Object.prototype.hasOwnProperty.call(n,r)},R=function(n){return n?Object.keys(n):[]},A=function n(t,e,i,o,u,c,a){var f=[e,i,o,u,c,a];return"object"==typeof t&&!l(t)||h(t)||(t={}),r(f,(function(e){r(R(e),(function(r){var i=e[r];if(t===i)return!0;var o=w(i);if(i&&(y(i)||o)){var u=t[r],c=u;o&&!w(u)?c=[]:o||y(u)||(c={}),t[r]=n(c,i)}else t[r]=i}))})),t},E=function(n){for(var r in n)return!1;return!0},D=function(n,r,t,e){if(f(e))return t?t[n]:r;t&&!l(e)&&!1!==e&&(t[n]=e)},T=function(n,r,t){if(f(t))return n?n.getAttribute(r):null;n&&n.setAttribute(r,t)},z=function(n,r,t,e){if(t){var i=T(n,r)||"",o=new Set(i.split(" "));o[e?"add":"delete"](t),T(n,r,L(o).join(" ").trim())}},H=function(n,r,t){var e=T(n,r)||"";return new Set(e.split(" ")).has(t)},B=function(n,r){n&&n.removeAttribute(r)},j=function(n,r){return D("scrollLeft",0,n,r)},k=function(n,r){return D("scrollTop",0,n,r)},F=Element.prototype,I=function(n,r){var t=[],e=r?x(r)?r:null:document;return e?S(t,e.querySelectorAll(n)):t},_=function(n,r){return!!x(n)&&(F.matches||F.msMatchesSelector).call(n,r)},W=function(n){return n?L(n.childNodes):[]},N=function(n){return n?n.parentElement:null},Y=function(n,r){if(x(n)){var t=F.closest;if(t)return t.call(n,r);do{if(_(n,r))return n;n=N(n)}while(n)}return null},X=function(n,r,t){var e=n&&Y(n,r),i=n&&function(n,r){var t=r?x(r)?r:null:document;return t?t.querySelector(n):null}(t,e);return!(!e||!i||e!==n&&i!==n&&Y(Y(n,t),r)===e)},V=function(n,t,e){if(e){var i,o=t;n&&(b(e)?(i=document.createDocumentFragment(),r(e,(function(n){n===o&&(o=n.previousSibling),i.appendChild(n)}))):i=e,t&&(o?o!==t&&(o=o.nextSibling):o=n.firstChild),n.insertBefore(i,o||null))}},U=function(n,r){V(n,null,r)},K=function(n,r){V(N(n),n,r)},$=function(n,r){V(N(n),n&&n.nextSibling,r)},q=function n(t){if(b(t))r(L(t),(function(r){return n(r)}));else if(t){var e=N(t);e&&e.removeChild(t)}},J=function(n){var r=document.createElement("div");return n&&T(r,"class",n),r},G=function(n){var t=J();return t.innerHTML=n.trim(),r(W(t),(function(n){return q(n)}))},Z=function(n){return n.charAt(0).toUpperCase()+n.slice(1)},Q=["-webkit-","-moz-","-o-","-ms-"],nn=["WebKit","Moz","O","MS","webkit","moz","o","ms"],rn={},tn={},en=function(n){var t=rn[n]||window[n];return M(rn,n)||(r(nn,(function(r){return!(t=t||window[r+Z(n)])})),rn[n]=t),t},on=en("MutationObserver"),un=en("IntersectionObserver"),cn=en("ResizeObserver"),an=en("cancelAnimationFrame"),fn=en("requestAnimationFrame"),ln=window.setTimeout,dn=window.clearTimeout,sn=/[^\x20\t\r\n\f]+/g,vn=function(n,r,t){var e,i=n&&n.classList,o=0,u=!1;if(i&&r&&v(r)){var c=r.match(sn)||[];for(u=c.length>0;e=c[o++];)u=!!t(i,e)&&u}return u},pn=function(n,r){vn(n,r,(function(n,r){return n.remove(r)}))},hn=function(n,r){return vn(n,r,(function(n,r){return n.add(r)})),pn.bind(0,n,r)},wn=function(n,t,e,i){if(n&&t){var o=!0;return r(e,(function(r){(i?i(n[r]):n[r])!==(i?i(t[r]):t[r])&&(o=!1)})),o}return!1},gn=function(n,r){return wn(n,r,["w","h"])},bn=function(n,r){return wn(n,r,["x","y"])},yn=function(n,r){return wn(n,r,["t","r","b","l"])},mn=function(n,r,t){return wn(n,r,["width","height"],t&&function(n){return Math.round(n)})},xn=function(){},On=function(n,r){var t,e,i,o=xn,u=r||{},c=u.p,a=u._,f=u.m,l=function(r){o(),dn(t),t=e=void 0,o=xn,n.apply(this,r)},d=function(n){return f&&e?f(e,n):n},v=function(){o!==xn&&l(d(i)||i)},p=function(){var n=L(arguments),r=h(c)?c():c,u=s(r)&&r>=0;if(u){var f=h(a)?a():a,p=s(f)&&f>=0,w=r>0?ln:fn,g=r>0?dn:an,b=d(n),y=b||n,m=l.bind(0,y);o();var x=w(m,r);o=function(){return g(x)},p&&!t&&(t=ln(v,f)),e=i=y}else l(n)};return p.S=v,p},Sn={opacity:1,zindex:1},Ln=function(n,r){var t=r?parseFloat(n):parseInt(n,10);return t==t?t:0},Cn=function(n,r,t){return null!=r?r[t]||r.getPropertyValue(t):n.style[t]},Pn=function(n,r,t){try{var e=n.style;f(e[r])?e.setProperty(r,t):e[r]=function(n,r){return!Sn[n.toLowerCase()]&&s(r)?r+"px":r}(r,t)}catch(c){}},Mn=function(n){return"rtl"===t(n,"direction")},Rn=function(n,r,e){var i=r?r+"-":"",o=e?"-"+e:"",u=i+"top"+o,c=i+"right"+o,a=i+"bottom"+o,f=i+"left"+o,l=t(n,[u,c,a,f]);return{t:Ln(l[u]),r:Ln(l[c]),b:Ln(l[a]),l:Ln(l[f])}},An={w:0,h:0},En=function(n){return n?{w:n.offsetWidth,h:n.offsetHeight}:An},Dn=function(n){return n?{w:n.clientWidth,h:n.clientHeight}:An},Tn=function(n){return n?{w:n.scrollWidth,h:n.scrollHeight}:An},zn=function(n){var r=parseFloat(t(n,"height"))||0,e=parseFloat(t(n,"height"))||0;return{w:e-Math.round(e),h:r-Math.round(r)}},Hn=function(n){return n.getBoundingClientRect()},Bn=function(){if(f(e)){e=!1;try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:function(){e=!0}}))}catch(n){}}return e},jn=function(n){return n.split(" ")},kn=function(n,t,e,i){r(jn(t),(function(r){n.removeEventListener(r,e,i)}))},Fn=function(n,t,e,i){var o,u=Bn(),c=null!=(o=u&&i&&i.C)?o:u,a=i&&i.O||!1,f=i&&i.A||!1,l=[],d=u?{passive:c,capture:a}:a;return r(jn(t),(function(r){var t=f?function(i){n.removeEventListener(r,t,a),e&&e(i)}:e;S(l,kn.bind(null,n,r,t,a)),n.addEventListener(r,t,d)})),P.bind(0,l)},In=function(n){return n.stopPropagation()},_n={x:0,y:0},Wn=function(n){var r=n?Hn(n):0;return r?{x:r.left+window.pageYOffset,y:r.top+window.pageXOffset}:_n},Nn=function(n,t){r(w(t)?t:[t],n)},Yn=function(n){var t=new Map,e=function(n,r){if(n){var e=t.get(n);Nn((function(n){e&&e[n?"delete":"clear"](n)}),r)}else t.forEach((function(n){n.clear()})),t.clear()},i=function(n,r){var i=t.get(n)||new Set;return t.set(n,i),Nn((function(n){n&&i.add(n)}),r),e.bind(0,n,r)};return r(R(n),(function(r){i(r,n[r])})),[i,e,function(n,e){var i=t.get(n);r(L(i),(function(n){e&&!C(e)?n.apply(0,e):n()}))}]},Xn=function(n,r){return n?r.split(".").reduce((function(n,r){return n&&M(n,r)?n[r]:void 0}),n):void 0},Vn=function(n,r,t){return function(e){return[Xn(n,e),t||void 0!==Xn(r,e)]}},Un=function(n){var r=n;return[function(){return r},function(n){r=A({},r,n)}]},Kn="os-environment",$n=Kn+"-flexbox-glue",qn=$n+"-max",Jn="data-overlayscrollbars",Gn=Jn+"-overflow-x",Zn=Jn+"-overflow-y",Qn="overflowVisible",nr="scrollbarHidden",rr="updating",tr="os-padding",er="os-viewport",ir=er+"-arrange",or="os-content",ur=er+"-scrollbar-hidden",cr="os-overflow-visible",ar="os-size-observer",fr=ar+"-appear",lr=ar+"-listener",dr=lr+"-scroll",sr=lr+"-item",vr=sr+"-final",pr="os-trinsic-observer",hr="os-scrollbar",wr=hr+"-rtl",gr=hr+"-horizontal",br=hr+"-vertical",yr=hr+"-track",mr=hr+"-handle",xr=hr+"-visible",Or=hr+"-cornerless",Sr=hr+"-transitionless",Lr=hr+"-interaction",Cr=hr+"-unusable",Pr=hr+"-auto-hidden",Mr=yr+"-interactive",Rr=mr+"-interactive",Ar=function(n){return JSON.stringify(n,(function(n,r){if(h(r))throw new Error;return r}))},Er={paddingAbsolute:!1,showNativeOverlaidScrollbars:!1,updating:{elementEvents:[["img","load"]],debounce:[0,33],attributes:null,ignoreMutation:null},overflow:{x:"scroll",y:"scroll"},scrollbars:{theme:"os-theme-dark",visibility:"auto",autoHide:"never",autoHideDelay:800,dragScroll:!0,clickScroll:!1,pointers:["mouse","touch","pen"]}},Dr=function n(t,e){var i={};return r(R(e).concat(R(t)),(function(r){var o=t[r],u=e[r];if(g(o)&&g(u))A(i[r]={},n(o,u));else if(M(e,r)&&u!==o){var c=!0;if(w(o)||w(u))try{Ar(o)===Ar(u)&&(c=!1)}catch(l){}c&&(i[r]=u)}})),i},Tr={},zr=function(){return A({},Tr)},Hr={exports:{}};!function(n){function r(){return n.exports=r=Object.assign?Object.assign.bind():function(n){for(var r=1;r
');U(n,i),hn(n,dr);var o,u=i[0],c=u.lastChild,a=u.firstChild,f=null==a?void 0:a.firstChild,l=En(u),d=l,s=!1,v=function(){j(a,Ir),k(a,Ir),j(c,Ir),k(c,Ir)},p=function(n){o=0,s&&(l=d,r(!0===n))},h=function(n){d=En(u),s=!n||!gn(d,l),n?(In(n),s&&!o&&(an(o),o=fn(p))):p(!1===n),v()},w=S([],[Fn(a,_r,h),Fn(c,_r,h)]);return t(f,{width:Ir,height:Ir}),fn(v),[e?h.bind(0,!1):v,w]}},Br),Yr=0,Xr=Math.round,Vr=Math.abs,Ur="__osScrollbarsHidingPlugin",Kr=((jr={})[Ur]={T:function(n){var r=n.L,t=n.D,e=!(n.H||r||!t.x&&!t.y)&&document.createElement("style");return e&&(T(e,"id",ir+"-"+Yr),Yr++),e},M:function(n,e,i,o,u,c,a){return[function(r,e,c,a){if(n){var f=u().R,l=r.I,d=r.V,s=d.x,v=d.y,p=l.x,h=l.y,w=f[a?"paddingRight":"paddingLeft"],g=f.paddingTop,b=e.w+c.w,y=e.h+c.h,m={w:h&&v?h+b-w+"px":"",h:p&&s?p+y-g+"px":""};if(o){var x=o.sheet;if(x){var O=x.cssRules;if(O){O.length||x.insertRule("#"+T(o,"id")+" + ."+ir+"::before {}",0);var S=O[0].style;S.width=m.w,S.height=m.h}}}else t(i,{"--os-vaw":m.w,"--os-vah":m.h})}return n},function(o,f,l){if(n){var d=l||c(o),s=u().R,v=d.V,p=v.x,h=v.y,w={},g=function(n){return r(n.split(" "),(function(n){w[n]=s[n]}))};p&&g("marginBottom paddingTop paddingBottom"),h&&g("marginLeft marginRight paddingLeft paddingRight");var b=t(i,R(w));return pn(i,ir),e||(w.height=""),t(i,w),[function(){a(d,f,n,b),t(i,b),hn(i,ir)},d]}return[xn]}]},j:function(){var n={w:0,h:0},r=0;return function(t,e,i){var o={w:window.innerWidth,h:window.innerHeight},u={w:o.w-n.w,h:o.h-n.h};if(0!==u.w||0!==u.h){var c=Vr(u.w),a=Vr(u.h),f={w:Vr(Xr(o.w/(n.w/100))),h:Vr(Xr(o.h/(n.h/100)))},l=function(){var n=window.screen.deviceXDPI||0,r=window.screen.logicalXDPI||1;return window.devicePixelRatio||n/r}(),d=c>2&&a>2,s=!function(n,r){var t=Vr(n),e=Vr(r);return!(t===e||t+1===e||t-1===e)}(f.w,f.h);if(d&&s&&l!==r&&l>0){var v=e(),p=v[0],h=v[1];A(t.k,p),h&&i()}n=o,r=l}}}},jr),$r=function(n,r,t,e){U(n,r);var i=Dn(r),o=En(r),u=zn(t);return e&&q(r),{x:o.h-i.h+u.h,y:o.w-i.w+u.w}},qr=function(n,r){var e="hidden";t(n,{overflowX:e,overflowY:e,direction:"rtl"}),j(n,0);var i=Wn(n),o=Wn(r);j(n,-999);var u=Wn(r);return{i:i.x===o.x,n:o.x!==u.x}},Jr=function(n,r){var t=hn(n,$n),e=Hn(n),i=Hn(r),o=mn(i,e,!0),u=hn(n,qn),c=Hn(n),a=Hn(r),f=mn(a,c,!0);return t(),u(),o&&f},Gr=function(){return kr||(kr=function(){var n,e=document.body,o=G('
')[0],c=o.firstChild,a=Yn(),f=a[0],l=a[2],d=i({o:$r(e,o,c),u:bn},$r.bind(0,e,o,c,!0)),s=d[0],v=(0,d[1])()[0],p=function(n){var e=!1,i=hn(n,ur);try{e="none"===t(n,function(n){var t=tn[n];if(M(tn,n))return t;var e=Z(n),i=J().style;return r(Q,(function(r){var o=r.replace(/-/g,""),u=[n,r+n,o+e,Z(o)+e];return!(t=u.find((function(n){return void 0!==i[n]})))})),tn[n]=t||""}("scrollbar-width"))||"none"===window.getComputedStyle(n,"::-webkit-scrollbar").getPropertyValue("display")}catch(u){}return i(),e}(o),h={x:0===v.x,y:0===v.y},w={host:null,padding:!p,viewport:function(n){return p&&n===n.ownerDocument.body&&n},content:!1,scrollbarsSlot:!0,cancel:{nativeScrollbarsOverlaid:!0,body:null}},g=A({},Er),b={k:v,D:h,L:p,H:"-1"===t(o,"zIndex"),B:qr(o,c),F:Jr(o,c),q:function(n){return f("_",n)},U:A.bind(0,{},w),N:function(n){A(w,n)},Y:A.bind(0,{},g),W:function(n){A(g,n)},G:A({},w),X:A({},g)};return B(o,"style"),q(o),p||h.x&&h.y||window.addEventListener("resize",(function(){var r=zr()[Ur];(n=n||r&&r.j())&&n(b,s,l.bind(0,"_"))})),b}()),kr},Zr=function(n,r){return h(n)?n.apply(0,r):n},Qr=function(n,r,t,e){var i=f(e)?t:e;return Zr(i,n)||r()},nt=function(n,r,t,e){var i=f(e)?t:e,o=Zr(i,n);return!!o&&(m(o)?o:r())},rt=function(n,r){var t=n||{},e=t.nativeScrollbarsOverlaid,i=t.body,o=r.Z,u=r.$,c=Gr(),a=c.U,d=c.D,s=a().cancel,v=s.nativeScrollbarsOverlaid,p=s.body,h=null!=e?e:v,w=f(i)?p:i,g=(d.x||d.y)&&h,b=o&&(l(w)?!u:w);return!!g||!!b},tt=J.bind(0,""),et=function(n){U(N(n),W(n)),q(n)},it=function(n,r){return T(n,Jn,r),B.bind(0,n,Jn)},ot=function(n){var r=Gr(),t=r.U,e=r.L,i=zr()[Ur],o=i&&i.T,u=t(),c=u.host,a=u.viewport,f=u.padding,l=u.content,d=m(n),s=d?{}:n,v=s.host,p=s.padding,h=s.viewport,w=s.content,g=d?n:s.target,b=_(g,"textarea"),y=g.ownerDocument,x=g===y.body,L=y.defaultView,C=Qr.bind(0,[g]),M=nt.bind(0,[g]),A=C(tt,a,h),E=A===g,D={J:g,K:b?C(tt,c,v):g,rr:A,ar:!E&&M(tt,f,p),er:!E&&M(tt,l,w),nr:!E&&!e&&o&&o(r),tr:x?y.documentElement:A,ir:x?y:A,vr:L,ur:y,lr:b,Z:x,cr:d,$:E,sr:function(n,r){return E?H(A,Jn,r):function(n,r){return vn(n,r,(function(n,r){return n.contains(r)}))}(A,n)},dr:function(n,r,t){return E?z(A,Jn,r,t):(t?hn:pn)(A,n)}},T=R(D).reduce((function(n,r){var t=D[r];return S(n,!(!t||N(t))&&t)}),[]),j=function(n){return n?O(T,n)>-1:null},k=D.J,F=D.K,I=D.ar,Y=D.rr,X=D.er,V=D.nr,J=[],G=b&&j(F),Z=b?k:W([X,Y,I,F,k].find((function(n){return!1===j(n)}))),Q=X||Y;return[D,function(){var n=it(F,E?"viewport":"host"),r=hn(I,tr),t=hn(Y,!E&&er),i=hn(X,or),o=x?hn(N(g),ur):xn;G&&($(k,F),S(J,(function(){$(F,k),q(F)}))),U(Q,Z),U(F,I),U(I||F,!E&&Y),U(Y,X),S(J,(function(){o(),n(),B(Y,Gn),B(Y,Zn),j(X)&&et(X),j(Y)&&et(Y),j(I)&&et(I),r(),t(),i()})),e&&!E&&S(J,pn.bind(0,Y,ur)),V&&(K(Y,V),S(J,q.bind(0,V)))},P.bind(0,J)]},ut=function(n,r){var e=n.er,i=r[0];return function(n){var r=Gr().F,o=i().gr,u=n.hr,c=(e||!r)&&u;return c&&t(e,{height:o?"":"100%"}),{pr:c,_r:c}}},ct=function(n,r){var e=r[0],o=r[1],u=n.K,c=n.ar,a=n.rr,f=n.$,l=i({u:yn,o:Rn()},Rn.bind(0,u,"padding","")),d=l[0],s=l[1];return function(n,r,i){var u=s(i),l=u[0],v=u[1],p=Gr(),h=p.L,w=p.F,g=e().wr,b=n.pr,y=n._r,m=n.br,x=r("paddingAbsolute"),O=x[0],S=x[1];if(b||v||!w&&y){var L=d(i);l=L[0],v=L[1]}var C=!f&&(S||m||v);if(C){var P=!O||!c&&!h,M=l.r+l.l,R=l.t+l.b,E={marginRight:P&&!g?-M:0,marginBottom:P?-R:0,marginLeft:P&&g?-M:0,top:P?-l.t:0,right:P?g?-l.r:"auto":0,left:P?g?"auto":-l.l:0,width:P?"calc(100% + "+M+"px)":""},D={paddingTop:P?l.t:0,paddingRight:P?l.r:0,paddingBottom:P?l.b:0,paddingLeft:P?l.l:0};t(c||a,E),t(a,D),o({ar:l,mr:!P,R:c?D:A({},E,D)})}return{yr:C}}},at=Math.max,ft=at.bind(0,0),lt="visible",dt="hidden",st=42,vt={u:gn,o:{w:0,h:0}},pt={u:bn,o:{x:dt,y:dt}},ht=function(n,r,t){return t?hn(n,r):pn(n,r)},wt=function(n){return 0===n.indexOf(lt)},gt=function(n,r){var e=r[0],o=r[1],u=n.K,c=n.ar,a=n.rr,f=n.nr,l=n.$,d=n.dr,s=Gr(),v=s.k,p=s.F,h=s.L,w=s.D,g=zr()[Ur],b=!l&&!h&&(w.x||w.y),y=i(vt,zn.bind(0,a)),m=y[0],x=y[1],O=i(vt,Tn.bind(0,a)),S=O[0],L=O[1],C=i(vt),P=C[0],M=C[1],R=i(vt),A=R[0],E=R[1],D=i(pt)[0],H=function(n,r){if(t(a,{height:""}),r){var i=e(),o=i.mr,c=i.ar,f=n.Sr,l=n.I,d=zn(u),s=Dn(u),v="content-box"===t(a,"boxSizing"),p=o||v?c.b+c.t:0,h=!(w.x&&v);t(a,{height:s.h+d.h+(f.x&&h?l.x:0)-p})}},B=function(n,r){var e=h||n?0:st,i=function(n,i,o){var u=t(a,n),c="scroll"===(r?r[n]:u);return[u,c,c&&!h?i?e:o:0,i&&!!e]},o=i("overflowX",w.x,v.x),u=o[0],c=o[1],f=o[2],l=o[3],d=i("overflowY",w.y,v.y);return{Cr:{x:u,y:d[0]},Sr:{x:c,y:d[1]},I:{x:f,y:d[2]},V:{x:l,y:d[3]}}},j=function(n,r,t,i){var o=n.I,u=n.V,c=u.x,a=u.y,f=o.x,l=o.y,d=e().R,s=r?"marginLeft":"marginRight",v=r?"paddingLeft":"paddingRight",p=d[s],h=d.marginBottom,w=d[v],g=d.paddingBottom;i.width="calc(100% + "+(l+-1*p)+"px)",i[s]=-l+p,i.marginBottom=-f+h,t&&(i[v]=w+(a?l:0),i.paddingBottom=g+(c?f:0))},k=g?g.M(b,p,a,f,e,B,j):[function(){return b},function(){return[xn]}],F=k[0],I=k[1];return function(n,r,i){var f,s=n.pr,v=n.Or,g=n._r,b=n.yr,y=n.hr,O=n.br,C=e(),R=C.gr,k=C.wr,_=r("showNativeOverlaidScrollbars"),W=_[0],N=_[1],Y=r("overflow"),X=Y[0],V=Y[1],U=W&&w.x&&w.y,K=!l&&!p&&(s||g||v||N||y),$=wt(X.x),q=wt(X.y),J=$||q,G=x(i),Z=L(i),Q=M(i),nn=E(i);if(N&&h&&d(ur,nr,!U),K&&(f=B(U),H(f,R)),s||b||g||O||N){J&&d(cr,Qn,!1);var rn=I(U,k,f),tn=rn[0],en=rn[1],on=G=m(i),un=on[0],cn=on[1],an=Z=S(i),fn=an[0],ln=an[1],dn=Dn(a),sn=fn,vn=dn;tn(),(ln||cn||N)&&en&&!U&&F(en,fn,un,k)&&(vn=Dn(a),sn=Tn(a));var pn={w:ft(at(fn.w,sn.w)+un.w),h:ft(at(fn.h,sn.h)+un.h)},hn={w:ft(vn.w+ft(dn.w-fn.w)+un.w),h:ft(vn.h+ft(dn.h-fn.h)+un.h)};nn=A(hn),Q=P(function(n,r){var t=window.devicePixelRatio%1!=0?1:0,e={w:ft(n.w-r.w),h:ft(n.h-r.h)};return{w:e.w>t?e.w:0,h:e.h>t?e.h:0}}(pn,hn),i)}var wn=nn,gn=wn[0],bn=wn[1],yn=Q,mn=yn[0],xn=yn[1],On=Z,Sn=On[0],Ln=On[1],Cn=G,Pn=Cn[0],Mn=Cn[1],Rn={x:mn.w>0,y:mn.h>0},An=$&&q&&(Rn.x||Rn.y)||$&&Rn.x&&!Rn.y||q&&Rn.y&&!Rn.x;if(b||O||Mn||Ln||bn||xn||V||N||K){var En={marginRight:0,marginBottom:0,marginLeft:0,width:"",overflowY:"",overflowX:""},zn=function(n,r,t,e){var i=function(n,r){var t=wt(n),e=r&&t&&n.replace(lt+"-","")||"";return[r&&!t?n:"",wt(e)?"hidden":e]},o=i(t.x,r.x),u=o[0],c=o[1],a=i(t.y,r.y),f=a[0],l=a[1];return e.overflowX=c&&f?c:u,e.overflowY=l&&u?l:f,B(n,e)}(U,Rn,X,En),Hn=F(zn,Sn,Pn,k);l||j(zn,k,Hn,En),K&&H(zn,R),l?(T(u,Gn,En.overflowX),T(u,Zn,En.overflowY)):t(a,En)}z(u,Jn,Qn,An),ht(c,cr,An),!l&&ht(a,cr,J);var Bn=D(B(U).Cr),jn=Bn[0],kn=Bn[1];return o({Cr:jn,Er:{x:gn.w,y:gn.h},Ar:{x:mn.w,y:mn.h},Pr:Rn}),{Tr:kn,zr:bn,Lr:xn}}},bt=function(n,t,e){var i={},o=t||{};return r(R(n).concat(R(o)),(function(r){var t=n[r],u=o[r];i[r]=!!(e||t||u)})),i},yt=3333333,mt=function(n){return n&&(n.height||n.width)},xt=function(n,r,t){var e=t||{},o=e.Dr,u=void 0!==o&&o,c=e.Hr,a=void 0!==c&&c,f=zr()[Wr],l=Gr().B,d=G('
')[0],s=d.firstChild,v=Mn.bind(0,n),h=i({o:void 0,g:!0,u:function(n,r){return!(!n||!mt(n)&&mt(r))}}),b=h[0],y=function(n){var t=w(n)&&n.length>0&&g(n[0]),e=!t&&p(n[0]),i=!1,o=!1,c=!0;if(t){var a=b(n.pop().contentRect),f=a[0],s=a[2],v=mt(f);o=!mt(s)&&v,c=!(i=!s||!v)}else e?c=n[1]:o=!0===n;if(u&&c){var h=e?n[0]:Mn(d);j(d,h?l.n?-yt:l.i?0:yt:yt),k(d,yt)}i||r({pr:!e,Mr:e?n:void 0,Hr:!!o})},m=[],x=!!a&&y;return[function(){P(m),q(d)},function(){if(cn){var r=new cn(y);r.observe(s),S(m,(function(){r.disconnect()}))}else if(f){var t=f.P(s,y,a),e=t[0],o=t[1];x=e,S(m,o)}if(u){var c=i({o:!v()},v)[0];S(m,Fn(d,"scroll",(function(n){var r=c(),t=r[0];r[1]&&(pn(s,"ltr rtl"),hn(s,t?"rtl":"ltr"),y(r)),In(n)})))}x&&(hn(d,fr),S(m,Fn(d,"animationstart",x,{A:!!cn}))),U(n,d)}]},Ot=function(n,r){var t,e=J(pr),o=[],u=i({o:!1})[0],c=function(n,t){if(n){var e=u(function(n){return 0===n.h||n.isIntersecting||n.intersectionRatio>0}(n));if(e[1])return!t&&r(e),[e]}},a=function(n,r){if(n&&n.length>0)return c(n.pop(),r)};return[function(){P(o),q(e)},function(){if(un)(t=new un((function(n){return a(n)}),{root:n})).observe(e),S(o,(function(){t.disconnect()}));else{var r=function(){var n=En(e);c(n)},i=xt(e,r),u=i[0],f=i[1];S(o,u),f(),r()}U(n,e)},function(){if(t)return a(t.takeRecords(),!0)}]},St=function(n,t,e,i){var o=!1,u=i||{},c=u.Rr,a=u.Ir,f=u.Vr,l=u.jr,d=u.kr,s=u.Br,p=On((function(){o&&e(!0)}),{p:33,_:99}),h=function(n,t,e){var i,o=!1,u=function(u){if(e){var c=e.reduce((function(r,t){if(t){var e=t[0],i=t[1],o=i&&e&&(u?u(e):I(e,n));o&&o.length&&i&&v(i)&&S(r,[o,i.trim()],!0)}return r}),[]);r(c,(function(n){return r(n[0],(function(r){var e=n[1],u=i.get(r);if(u){var c=u[0],a=u[1];c===e&&a()}var f=Fn(r,e,(function(n){o?(f(),i.delete(r)):t(n)}));i.set(r,[e,f])}))}))}};return e&&(i=new WeakMap,u()),[function(){o=!0},u]}(n,p,f),w=h[0],g=h[1],b=a||[],y=(c||[]).concat(b),m=function(o,u){var c=d||xn,a=s||xn,f=[],p=[],h=!1,w=!1,y=!1;return r(o,(function(r){var e=r.attributeName,o=r.target,u=r.type,d=r.oldValue,s=r.addedNodes,g="attributes"===u,m="childList"===u,x=n===o,L=g&&v(e)?T(o,e):0,C=0!==L&&d!==L,P=O(b,e)>-1&&C;if(t&&!x){var M=!g,R=g&&P,A=R&&l&&_(o,l),E=(A?!c(o,e,d,L):M||R)&&!a(r,!!A,n,i);S(p,s),w=w||E,y=y||m}!t&&x&&C&&!c(o,e,d,L)&&(S(f,e),h=h||P)})),y&&!C(p)&&g((function(n){return p.reduce((function(r,t){return S(r,I(n,t)),_(t,n)?S(r,t):r}),[])})),t?(!u&&w&&e(!1),[!1]):!C(f)||h?(!u&&e(f,h),[f,h]):void 0},x=new on((function(n){return m(n)}));return x.observe(n,{attributes:!0,attributeOldValue:!0,attributeFilter:y,subtree:t,childList:t,characterData:t}),o=!0,[function(){o&&(w(),x.disconnect(),o=!1)},function(){if(o){p.S();var n=x.takeRecords();return!C(n)&&m(n,!0)}}]},Lt="["+Jn+"]",Ct="."+er,Pt=["tabindex"],Mt=["wrap","cols","rows"],Rt=["id","class","style","open"],At=function(n,t,e){var o,u,c,a=t[1],f=n.K,l=n.rr,d=n.er,p=n.lr,g=n.$,b=n.sr,y=n.dr,m=Gr().F,x=i({u:gn,o:{w:0,h:0}},(function(){var n=b(cr,Qn),r=b(ir,""),t=r&&j(l),e=r&&k(l);y(cr,Qn),y(ir,""),y("",rr,!0);var i=Tn(d),o=Tn(l),u=zn(l);return y(cr,Qn,n),y(ir,"",r),y("",rr),j(l,t),k(l,e),{w:o.w+i.w+u.w,h:o.h+i.h+u.h}})),L=x[0],C=p?Mt:Rt.concat(Mt),P=On(e,{p:function(){return o},_:function(){return u},m:function(n,r){var t=n[0],e=r[0];return[R(t).concat(R(e)).reduce((function(n,r){return n[r]=t[r]||e[r],n}),{})]}}),M=function(n){r(n||Pt,(function(n){if(O(Pt,n)>-1){var r=T(f,n);v(r)?T(l,n,r):B(l,n)}}))},E=function(n,r){var t=n[0],i={hr:n[1]};return a({gr:t}),!r&&e(i),i},D=function(n){var r=n.pr,t=n.Mr,i=n.Hr,o=!r||i?e:P,u=!1;if(t){var c=t[0];u=t[1],a({wr:c})}o({pr:r,br:u})},z=function(n,r){var t=L()[1],i={_r:t};return t&&!r&&(n?e:P)(i),i},H=function(n,r,t){var e={Or:r};return r?!t&&P(e):g||M(n),e},F=d||!m?Ot(f,E):[xn,xn,xn],I=F[0],_=F[1],W=F[2],N=g?[xn,xn]:xt(f,D,{Hr:!0,Dr:!0}),V=N[0],U=N[1],K=St(f,!1,H,{Ir:Rt,Rr:Rt.concat(Pt)}),$=K[0],q=K[1],J=g&&cn&&new cn(D.bind(0,{pr:!0}));return J&&J.observe(f),M(),[function(){I(),V(),c&&c[0](),J&&J.disconnect(),$()},function(){U(),_()},function(){var n={},r=q(),t=W(),e=c&&c[1]();return r&&A(n,H.apply(0,S(r,!0))),t&&A(n,E.apply(0,S(t,!0))),e&&A(n,z.apply(0,S(e,!0))),n},function(n){var r=n("updating.ignoreMutation")[0],t=n("updating.attributes"),e=t[0],i=t[1],a=n("updating.elementEvents"),f=a[0],v=a[1],p=n("updating.debounce"),g=p[0],b=p[1],y=function(n){return h(r)&&r(n)};if((v||i)&&(c&&(c[1](),c[0]()),c=St(d||l,!0,z,{Ir:C.concat(e||[]),Rr:C.concat(e||[]),Vr:f,jr:Lt,Br:function(n,r){var t=n.target,e=n.attributeName;return!(r||!e)&&X(t,Lt,Ct)||!!Y(t,"."+hr)||!!y(n)}})),b)if(P.S(),w(g)){var m=g[0],x=g[1];o=!!s(m)&&m,u=!!s(x)&&x}else s(g)?(o=g,u=!1):(o=!1,u=!1)}]},Et={x:0,y:0},Dt={ar:{t:0,r:0,b:0,l:0},mr:!1,R:{marginRight:0,marginBottom:0,marginLeft:0,paddingTop:0,paddingRight:0,paddingBottom:0,paddingLeft:0},Er:Et,Ar:Et,Cr:{x:"hidden",y:"hidden"},Pr:{x:!1,y:!1},gr:!1,wr:!1},Tt=function(n,t){var e=Vn(t,{}),i=Un(Dt),o=Yn(),u=o[0],c=o[1],a=o[2],f=i[0],l=ot(n),d=l[0],s=l[1],v=l[2],p=function(n,t){var e=n.rr,i=n.dr,o=Gr(),u=o.L,c=o.D,a=o.F,f=!u&&(c.x||c.y),l=[ut(n,t),ct(n,t),gt(n,t)];return function(n,t,o){var u=bt(A({pr:!1,yr:!1,br:!1,hr:!1,zr:!1,Lr:!1,Tr:!1,Or:!1,_r:!1},t),{},o),c=f||!a,d=c&&j(e),s=c&&k(e);i("",rr,!0);var v=u;return r(l,(function(r){v=bt(v,r(v,n,!!o)||{},o)})),j(e,d),k(e,s),i("",rr),v}}(d,i),h=function(n,r,t){var e=R(n).some((function(r){return n[r]}));(e||!E(r)||t)&&a("u",[n,r,t])},w=At(d,i,(function(n){h(p(e,n),{},!1)})),g=w[0],b=w[1],y=w[2],m=w[3],x=f.bind(0);return x.Fr=function(n){u("u",n)},x.qr=function(){b(),s()},x.Ur=d,[function(n,r){var e=Vn(t,n,r);m(e),h(p(e,y(),r),n,!!r)},x,function(){c(),g(),v()}]},zt=Math.round,Ht=function(n){return{x:n.clientX,y:n.clientY}},Bt=function(n,r){return Fn(n,"mousedown",Fn.bind(0,r,"click",In,{A:!0,O:!0}),{O:!0})},jt=function(n,r,t,e,i,o){var u=Gr().B,c=t.Nr,a=t.Yr,f=t.Wr,l="scroll"+(o?"Left":"Top"),d=o?"x":"y",s=o?"w":"h",v=function(n,r,t){return function(v){var p=i().Ar,h=(Ht(v)[d]-r)*t/(En(a)[s]-En(c)[s])*p[d],w=Mn(f)&&o?u.n||u.i?1:-1:1;e[l]=n+h*w}};return Fn(c,"pointerdown",(function(t){if(function(n,r,t){var e=r.scrollbars,i=n.button,o=n.isPrimary,u=n.pointerType,c=e.pointers;return 0===i&&o&&e["dragScroll"]&&(c||[]).includes(u)}(t,n)){var i=Fn(r,"selectstart",(function(n){return function(n){return n.preventDefault()}(n)}),{C:!1}),o=Fn(c,"pointermove",v(e[l]||0,Ht(t)[d],1/function(n){var r=Hn(n),t=r.width,e=r.height,i=En(n),o=i.w,u=i.h;return{x:zt(t)/o||1,y:zt(e)/u||1}}(e)[d]));Fn(c,"pointerup",(function(n){i(),o(),c.releasePointerCapture(n.pointerId)}),{A:!0}),c.setPointerCapture(t.pointerId)}}))},kt=Math.min,Ft=Math.max,It=Math.abs,_t=Math.round,Wt=function(n,r,t,e){if(e){var i=t?"x":"y",o=e.Ar,u=e.Er[i],c=o[i];return Ft(0,kt(1,u/(u+c)))}var a=t?"w":"h",f=En(n)[a],l=En(r)[a];return Ft(0,kt(1,f/l))},Nt=function(n,e,i){var o=(0,Gr().U)().scrollbarsSlot,u=e.ur,c=e.J,a=e.K,f=e.rr,l=e.cr,d=e.tr,s=(l?{}:n).scrollbarsSlot,v=nt([c,a,f],(function(){return a}),o,s),h=function(n,t,e){var i=e?hn:pn;r(n,(function(n){i(n.Wr,t)}))},w=function(n,e){r(n,(function(n){var r=e(n);t(r[0],r[1])}))},g=function(n,r,t){w(n,(function(n){var e,i=n.Nr,o=n.Yr;return[i,(e={},e[t?"width":"height"]=(100*Wt(i,o,t,r)).toFixed(5)+"%",e)]}))},b=function(n,r,t){var e=t?"X":"Y";w(n,(function(n){var i=n.Nr,o=n.Yr,u=n.Wr,c=function(n,r,t,e,i,o){var u=Gr().B,c=o?"x":"y",a=o?"Left":"Top",f=e.Ar,l=_t(f[c]),d=It(t["scroll"+a]),s=o&&i,v=u.i?d:l-d,p=kt(1,(s?v:d)/l),h=Wt(n,r,o);return 1/h*(1-h)*p}(i,o,d,r,Mn(u),t);return[i,{transform:c==c?"translate"+e+"("+(100*c).toFixed(5)+"%)":""}]}))},y=[],m=[],x=[],O=function(n,r,t){var e=p(t),i=!e||!t;(!e||t)&&h(m,n,r),i&&h(x,n,r)},L=function(n){var r=n?gr:br,t=n?m:x,e=C(t)?Sr:"",o=J(hr+" "+r+" "+e),c=J(yr),a=J(mr),f={Wr:o,Yr:c,Nr:a};return U(o,c),U(c,a),S(t,f),S(y,[q.bind(0,o),i(f,O,u,d,n)]),f},M=L.bind(0,!0),R=L.bind(0,!1);return M(),R(),[{Gr:function(n){g(m,n,!0),g(x,n)},Xr:function(n){b(m,n,!0),b(x,n)},Zr:O,$r:{Jr:m,Kr:M,Qr:w.bind(0,m)},ra:{Jr:x,Kr:R,Qr:w.bind(0,x)}},function(){U(v,m[0].Wr),U(v,x[0].Wr),ln((function(){O(Sr)}),300)},P.bind(0,y)]},Yt=function(n){var r,t=n?ln:fn,e=n?dn:an;return[function(i){e(r),r=t(i,h(n)?n():n)},function(){return e(r)}]},Xt=function(n,r,t){var e,i,o,u,c,a=0,f=Un({})[0],l=Yt(),d=l[0],s=l[1],v=Yt(),p=v[0],h=v[1],w=Yt(100),g=w[0],b=w[1],y=Yt(100),m=y[0],x=y[1],O=Yt((function(){return a})),S=O[0],L=O[1],C=Nt(n,t.Ur,function(n,r){return function(t,e,i,o,u){var c=t.Wr;return P.bind(0,[Fn(c,"pointerenter",(function(){e(Lr,!0)})),Fn(c,"pointerleave pointercancel",(function(){e(Lr)})),Bt(c,i),jt(n,i,t,o,r,u)])}}(r,t)),M=C[0],R=C[1],A=C[2],E=t.Ur,D=E.K,T=E.rr,z=E.tr,H=E.ir,B=E.$,F=E.Z,I=M.$r,_=M.ra,W=M.Zr,Y=M.Gr,X=M.Xr,V=I.Qr,U=_.Qr,K=function(n){var r=n.Wr,t=B&&!F&&N(r)===T&&r;return[t,{transform:t?"translate("+j(z)+"px, "+k(z)+"px)":""}]},$=function(n,r){if(L(),n)W(Pr);else{var t=function(){return W(Pr,!0)};a>0&&!r?S(t):t()}},q=function(){(u=i)&&$(!0)},J=[b,L,x,h,s,A,Fn(D,"pointerover",q,{A:!0}),Fn(D,"pointerenter",q),Fn(D,"pointerleave",(function(){u=!1,i&&$(!1)})),Fn(D,"pointermove",(function(){e&&d((function(){b(),$(!0),m((function(){e&&$(!1)}))}))})),Fn(H,"scroll",(function(){p((function(){X(t()),o&&$(!0),g((function(){o&&!u&&$(!1)}))})),B&&V(K),B&&U(K)}))],G=f.bind(0);return G.Ur=M,G.qr=R,[function(n,u,f){var l=f.zr,d=f.Lr,s=f.Tr,v=f.br,p=Vn(r,n,u),h=t(),w=h.Ar,g=h.Cr,b=h.wr,y=p("scrollbars.theme"),m=y[0],x=y[1],O=p("scrollbars.visibility"),S=O[0],L=O[1],C=p("scrollbars.autoHide"),P=C[0],M=C[1],R=p("scrollbars.autoHideDelay")[0],A=p("scrollbars.dragScroll"),E=A[0],D=A[1],T=p("scrollbars.clickScroll"),z=T[0],H=T[1],B=l||d||v,j=s||L,k=function(n,r){var t="visible"===S||"auto"===S&&"scroll"===n;return W(xr,t,r),t};if(a=R,x&&(W(c),W(m,!0),c=m),M&&(e="move"===P,i="leave"===P,$(!(o="never"!==P),!0)),D&&W(Rr,E),H&&W(Mr,z),j){var I=k(g.x,!0),_=k(g.y,!1);W(Or,!(I&&_))}B&&(Y(h),X(h),W(Cr,!w.x,!0),W(Cr,!w.y,!1),W(wr,b&&!F))},G,P.bind(0,J)]},Vt=new Set,Ut=new WeakMap,Kt=function n(t,e,i){var o=!1,u=Gr(),c=u.Y,a=u.q,f=zr(),l=m(t),d=l?t:t.target,s=function(n){return Ut.get(n)}(d);if(s)return s;var v=f[Fr],p=function(n){var r=n||{},t=v&&v.P;return t?t(r,!0):r},w=A({},c(),p(e)),g=Yn(i),b=g[0],y=g[1],x=g[2],O=Tt(t,w),S=O[0],L=O[1],C=O[2],P=Xt(t,w,L),M=P[0],D=P[1],T=P[2],z=function(n,r){S(n,!!r)},H=a(z.bind(0,{},!0)),B=function(n){!function(n){Ut.delete(n),Vt.delete(n)}(d),H(),T(),C(),o=!0,x("destroyed",[j,!!n]),y()},j={options:function(n){if(n){var r=Dr(w,p(n));E(r)||(A(w,r),z(r))}return A({},w)},on:b,off:function(n,r){n&&r&&y(n,r)},state:function(){var n=L(),r=n.Er,t=n.Ar,e=n.Cr,i=n.Pr,u=n.ar,c=n.mr,a=n.wr;return A({},{overflowEdge:r,overflowAmount:t,overflowStyle:e,hasOverflow:i,padding:u,paddingAbsolute:c,directionRTL:a,destroyed:o})},elements:function(){var n=L.Ur,r=n.J,t=n.K,e=n.ar,i=n.rr,o=n.er;return A({},{target:r,host:t,padding:e||i,viewport:i,content:o||i})},update:function(n){return z({},n),j},destroy:B.bind(0)};return L.Fr((function(n,r,t){M(r,t,n)})),r(R(f),(function(r){var t=f[r];h(t)&&t(n,j)})),rt(!l&&t.cancel,L.Ur)?(B(!0),j):(L.qr(),D.qr(),function(n,r){Ut.set(n,r),Vt.add(n)}(d,j),x("initialized",[j]),L.Fr((function(n,r,t){var e=n.pr,i=n.br,o=n.hr,u=n.zr,c=n.Lr,a=n.Tr,f=n._r,l=n.Or;x("updated",[j,{updateHints:{sizeChanged:e,directionChanged:i,heightIntrinsicChanged:o,overflowEdgeChanged:u,overflowAmountChanged:c,overflowStyleChanged:a,contentMutation:f,hostMutation:l},changedOptions:r,force:t}])})),j.update(!0))};Kt.plugin=function(n){r(w(n)?n:[n],(function(n){r(R(n),(function(r){Tr[r]=n[r]}))}))},Kt.env=function(){var n=Gr(),r=n.k,t=n.D,e=n.L,i=n.B,o=n.F,u=n.H,c=n.G,a=n.X,f=n.U,l=n.N,d=n.Y,s=n.W;return A({},{scrollbarsSize:r,scrollbarsOverlaid:t,scrollbarsHiding:e,rtlScrollBehavior:i,flexboxGlue:o,cssCustomProperties:u,staticDefaultInitialization:c,staticDefaultOptions:a,getDefaultInitialization:f,setDefaultInitialization:l,getDefaultOptions:d,setDefaultOptions:s})},n.OverlayScrollbars=Kt,n.scrollbarsHidingPlugin=Kr,n.sizeObserverPlugin=Nr,Object.defineProperty(n,"v",{value:!0})})); \ No newline at end of file +!function(n,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports):"function"==typeof define&&define.amd?define(["exports"],r):r((n="undefined"!=typeof globalThis?globalThis:n||self).OverlayScrollbars={})}(this,(function(n){"use strict";function r(n,t){if(b(n))for(var e=0;e-1&&r%1==0;return!(!(w(n)||!h(n)&&t)||r>0&&g(n)&&!(r-1 in n))},y=function(n){if(!n||!g(n)||"object"!==d(n))return!1;var r,t="constructor",e=n[t],i=e&&e.prototype,o=a.call(n,t),u=i&&a.call(i,"isPrototypeOf");if(e&&!o&&!u)return!1;for(r in n);return f(r)||a.call(n,r)},m=function(n){var r=HTMLElement;return!!n&&(r?n instanceof r:n.nodeType===o)},x=function(n){var r=Element;return!!n&&(r?n instanceof r:n.nodeType===o)},O=function(n,r,t){return n.indexOf(r,t)},S=function(n,r,t){return t||v(r)||!b(r)?n.push(r):Array.prototype.push.apply(n,r),n},L=function(n){var t=Array.from,e=[];return t&&n?t(n):(n instanceof Set?n.forEach((function(n){S(e,n)})):r(n,(function(n){S(e,n)})),e)},C=function(n){return!!n&&0===n.length},E=function(n,t,e){r(n,(function(n){return n&&n.apply(void 0,t||[])})),!e&&(n.length=0)},P=function(n,r){return Object.prototype.hasOwnProperty.call(n,r)},R=function(n){return n?Object.keys(n):[]},A=function n(t,e,i,o,u,c,a){var f=[e,i,o,u,c,a];return"object"==typeof t&&!l(t)||h(t)||(t={}),r(f,(function(e){r(R(e),(function(r){var i=e[r];if(t===i)return!0;var o=w(i);if(i&&(y(i)||o)){var u=t[r],c=u;o&&!w(u)?c=[]:o||y(u)||(c={}),t[r]=n(c,i)}else t[r]=i}))})),t},M=function(n){for(var r in n)return!1;return!0},H=function(n,r,t,e){if(f(e))return t?t[n]:r;t&&!l(e)&&!1!==e&&(t[n]=e)},T=function(n,r,t){if(f(t))return n?n.getAttribute(r):null;n&&n.setAttribute(r,t)},z=function(n,r,t,e){if(t){var i=T(n,r)||"",o=new Set(i.split(" "));o[e?"add":"delete"](t),T(n,r,L(o).join(" ").trim())}},D=function(n,r,t){var e=T(n,r)||"";return new Set(e.split(" ")).has(t)},B=function(n,r){n&&n.removeAttribute(r)},j=function(n,r){return H("scrollLeft",0,n,r)},k=function(n,r){return H("scrollTop",0,n,r)},F=Element.prototype,I=function(n,r){var t=[],e=r?x(r)?r:null:document;return e?S(t,e.querySelectorAll(n)):t},W=function(n,r){return!!x(n)&&(F.matches||F.msMatchesSelector).call(n,r)},_=function(n){return n?L(n.childNodes):[]},N=function(n){return n?n.parentElement:null},Y=function(n,r){if(x(n)){var t=F.closest;if(t)return t.call(n,r);do{if(W(n,r))return n;n=N(n)}while(n)}return null},V=function(n,r,t){var e=n&&Y(n,r),i=n&&function(n,r){var t=r?x(r)?r:null:document;return t?t.querySelector(n):null}(t,e),o=Y(i,r)===e;return!(!e||!i)&&(e===n||i===n||o&&Y(Y(n,t),r)!==e)},X=function(n,t,e){if(e&&n){var i,o=t;b(e)?(i=document.createDocumentFragment(),r(e,(function(n){n===o&&(o=n.previousSibling),i.appendChild(n)}))):i=e,t&&(o?o!==t&&(o=o.nextSibling):o=n.firstChild),n.insertBefore(i,o||null)}},U=function(n,r){X(n,null,r)},K=function(n,r){X(N(n),n,r)},$=function(n,r){X(N(n),n&&n.nextSibling,r)},q=function n(t){if(b(t))r(L(t),(function(r){return n(r)}));else if(t){var e=N(t);e&&e.removeChild(t)}},J=function(n){var r=document.createElement("div");return n&&T(r,"class",n),r},Z=function(n){var t=J();return t.innerHTML=n.trim(),r(_(t),(function(n){return q(n)}))},G=function(n){return n.charAt(0).toUpperCase()+n.slice(1)},Q=["-webkit-","-moz-","-o-","-ms-"],nn=["WebKit","Moz","O","MS","webkit","moz","o","ms"],rn={},tn={},en=function(n){var t=rn[n]||window[n];return P(rn,n)||(r(nn,(function(r){return!(t=t||window[r+G(n)])})),rn[n]=t),t},on=en("MutationObserver"),un=en("IntersectionObserver"),cn=en("ResizeObserver"),an=en("cancelAnimationFrame"),fn=en("requestAnimationFrame"),ln=window.setTimeout,dn=window.clearTimeout,sn=/[^\x20\t\r\n\f]+/g,vn=function(n,r,t){var e,i=n&&n.classList,o=0,u=!1;if(i&&r&&v(r)){var c=r.match(sn)||[];for(u=c.length>0;e=c[o++];)u=!!t(i,e)&&u}return u},pn=function(n,r){vn(n,r,(function(n,r){return n.remove(r)}))},hn=function(n,r){return vn(n,r,(function(n,r){return n.add(r)})),pn.bind(0,n,r)},wn=function(n,t,e,i){if(n&&t){var o=!0;return r(e,(function(r){(i?i(n[r]):n[r])!==(i?i(t[r]):t[r])&&(o=!1)})),o}return!1},gn=function(n,r){return wn(n,r,["w","h"])},bn=function(n,r){return wn(n,r,["x","y"])},yn=function(n,r){return wn(n,r,["t","r","b","l"])},mn=function(n,r,t){return wn(n,r,["width","height"],t&&function(n){return Math.round(n)})},xn=function(){},On=function(n,r){var t,e,i,o=xn,u=r||{},c=u.p,a=u._,f=u.m,l=function(r){o(),dn(t),t=e=void 0,o=xn,n.apply(this,r)},d=function(n){return f&&e?f(e,n):n},v=function(){o!==xn&&l(d(i)||i)},p=function(){var n=L(arguments),r=h(c)?c():c,u=s(r)&&r>=0;if(u){var f=h(a)?a():a,p=s(f)&&f>=0,w=r>0?ln:fn,g=r>0?dn:an,b=d(n),y=b||n,m=l.bind(0,y);o();var x=w(m,r);o=function(){return g(x)},p&&!t&&(t=ln(v,f)),e=i=y}else l(n)};return p.S=v,p},Sn={opacity:1,zindex:1},Ln=function(n,r){var t=r?parseFloat(n):parseInt(n,10);return t==t?t:0},Cn=function(n,r,t){return null!=r?r[t]||r.getPropertyValue(t):n.style[t]},En=function(n,r,t){try{var e=n.style;f(e[r])?e.setProperty(r,t):e[r]=function(n,r){return!Sn[n.toLowerCase()]&&s(r)?r+"px":r}(r,t)}catch(c){}},Pn=function(n){return"rtl"===t(n,"direction")},Rn=function(n,r,e){var i=r?r+"-":"",o=e?"-"+e:"",u=i+"top"+o,c=i+"right"+o,a=i+"bottom"+o,f=i+"left"+o,l=t(n,[u,c,a,f]);return{t:Ln(l[u]),r:Ln(l[c]),b:Ln(l[a]),l:Ln(l[f])}},An=Math.round,Mn={w:0,h:0},Hn=function(n){return n?{w:n.offsetWidth,h:n.offsetHeight}:Mn},Tn=function(n){return n?{w:n.clientWidth,h:n.clientHeight}:Mn},zn=function(n){return n?{w:n.scrollWidth,h:n.scrollHeight}:Mn},Dn=function(n){var r=parseFloat(t(n,"height"))||0,e=parseFloat(t(n,"width"))||0;return{w:e-An(e),h:r-An(r)}},Bn=function(n){return n.getBoundingClientRect()},jn=function(){if(f(e)){e=!1;try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:function(){e=!0}}))}catch(n){}}return e},kn=function(n){return n.split(" ")},Fn=function(n,t,e,i){r(kn(t),(function(r){n.removeEventListener(r,e,i)}))},In=function(n,t,e,i){var o,u=jn(),c=null!=(o=u&&i&&i.C)?o:u,a=i&&i.O||!1,f=i&&i.A||!1,l=[],d=u?{passive:c,capture:a}:a;return r(kn(t),(function(r){var t=f?function(i){n.removeEventListener(r,t,a),e&&e(i)}:e;S(l,Fn.bind(null,n,r,t,a)),n.addEventListener(r,t,d)})),E.bind(0,l)},Wn=function(n){return n.stopPropagation()},_n={x:0,y:0},Nn=function(n){var r=n?Bn(n):0;return r?{x:r.left+window.pageYOffset,y:r.top+window.pageXOffset}:_n},Yn=function(n,t){r(w(t)?t:[t],n)},Vn=function(n){var t=new Map,e=function(n,r){if(n){var e=t.get(n);Yn((function(n){e&&e[n?"delete":"clear"](n)}),r)}else t.forEach((function(n){n.clear()})),t.clear()},i=function(n,r){var i=t.get(n)||new Set;return t.set(n,i),Yn((function(n){n&&i.add(n)}),r),e.bind(0,n,r)};return r(R(n),(function(r){i(r,n[r])})),[i,e,function(n,e){var i=t.get(n);r(L(i),(function(n){e&&!C(e)?n.apply(0,e):n()}))}]},Xn=function(n,r){return n?r.split(".").reduce((function(n,r){return n&&P(n,r)?n[r]:void 0}),n):void 0},Un=function(n,r,t){return function(e){return[Xn(n,e),t||void 0!==Xn(r,e)]}},Kn=function(n){var r=n;return[function(){return r},function(n){r=A({},r,n)}]},$n="os-environment",qn=$n+"-flexbox-glue",Jn=qn+"-max",Zn="data-overlayscrollbars",Gn=Zn+"-overflow-x",Qn=Zn+"-overflow-y",nr="overflowVisible",rr="scrollbarHidden",tr="updating",er="os-padding",ir="os-viewport",or=ir+"-arrange",ur="os-content",cr=ir+"-scrollbar-hidden",ar="os-overflow-visible",fr="os-size-observer",lr=fr+"-appear",dr=fr+"-listener",sr=dr+"-scroll",vr=dr+"-item",pr=vr+"-final",hr="os-trinsic-observer",wr="os-scrollbar",gr=wr+"-rtl",br=wr+"-horizontal",yr=wr+"-vertical",mr=wr+"-track",xr=wr+"-handle",Or=wr+"-visible",Sr=wr+"-cornerless",Lr=wr+"-transitionless",Cr=wr+"-interaction",Er=wr+"-unusable",Pr=wr+"-auto-hidden",Rr=mr+"-interactive",Ar=xr+"-interactive",Mr=function(n){return JSON.stringify(n,(function(n,r){if(h(r))throw new Error;return r}))},Hr={paddingAbsolute:!1,showNativeOverlaidScrollbars:!1,updating:{elementEvents:[["img","load"]],debounce:[0,33],attributes:null,ignoreMutation:null},overflow:{x:"scroll",y:"scroll"},scrollbars:{theme:"os-theme-dark",visibility:"auto",autoHide:"never",autoHideDelay:1300,dragScroll:!0,clickScroll:!1,pointers:["mouse","touch","pen"]}},Tr=function n(t,e){var i={};return r(R(e).concat(R(t)),(function(r){var o=t[r],u=e[r];if(g(o)&&g(u))A(i[r]={},n(o,u));else if(P(e,r)&&u!==o){var c=!0;if(w(o)||w(u))try{Mr(o)===Mr(u)&&(c=!1)}catch(l){}c&&(i[r]=u)}})),i},zr={},Dr=function(){return zr},Br={exports:{}};!function(n){function r(){return n.exports=r=Object.assign?Object.assign.bind():function(n){for(var r=1;r
');U(n,i),hn(n,sr);var o,u=i[0],c=u.lastChild,a=u.firstChild,f=null==a?void 0:a.firstChild,l=Hn(u),d=l,s=!1,v=function(){j(a,Wr),k(a,Wr),j(c,Wr),k(c,Wr)},p=function(n){o=0,s&&(l=d,r(!0===n))},h=function(n){d=Hn(u),s=!n||!gn(d,l),n?(Wn(n),s&&!o&&(an(o),o=fn(p))):p(!1===n),v()},w=S([],[In(a,_r,h),In(c,_r,h)]);return t(f,{width:Wr,height:Wr}),fn(v),[e?h.bind(0,!1):v,w]}},jr),Vr=0,Xr=Math.round,Ur=Math.abs,Kr="__osScrollbarsHidingPlugin",$r=((kr={})[Kr]={T:function(n){var r=n.L,t=n.H,e=!(n.D||r||!t.x&&!t.y)&&document.createElement("style");return e&&(T(e,"id",or+"-"+Vr),Vr++),e},M:function(n,e,i,o,u,c,a){return[function(r,e,c,a){if(n){var f=u().R,l=r.I,d=r.V,s=d.x,v=d.y,p=l.x,h=l.y,w=f[a?"paddingRight":"paddingLeft"],g=f.paddingTop,b=e.w+c.w,y=e.h+c.h,m={w:h&&v?h+b-w+"px":"",h:p&&s?p+y-g+"px":""};if(o){var x=o.sheet;if(x){var O=x.cssRules;if(O){O.length||x.insertRule("#"+T(o,"id")+" + ."+or+"::before {}",0);var S=O[0].style;S.width=m.w,S.height=m.h}}}else t(i,{"--os-vaw":m.w,"--os-vah":m.h})}return n},function(o,f,l){if(n){var d=l||c(o),s=u().R,v=d.V,p=v.x,h=v.y,w={},g=function(n){return r(n.split(" "),(function(n){w[n]=s[n]}))};p&&g("marginBottom paddingTop paddingBottom"),h&&g("marginLeft marginRight paddingLeft paddingRight");var b=t(i,R(w));return pn(i,or),e||(w.height=""),t(i,w),[function(){a(d,f,n,b),t(i,b),hn(i,or)},d]}return[xn]}]},j:function(){var n={w:0,h:0},r=0;return function(t,e,i){var o={w:window.innerWidth,h:window.innerHeight},u={w:o.w-n.w,h:o.h-n.h};if(0!==u.w||0!==u.h){var c=Ur(u.w),a=Ur(u.h),f={w:Ur(Xr(o.w/(n.w/100))),h:Ur(Xr(o.h/(n.h/100)))},l=function(){var n=window.screen.deviceXDPI||0,r=window.screen.logicalXDPI||1;return window.devicePixelRatio||n/r}(),d=c>2&&a>2,s=!function(n,r){var t=Ur(n),e=Ur(r);return!(t===e||t+1===e||t-1===e)}(f.w,f.h);if(d&&s&&l!==r&&l>0){var v=e(),p=v[0],h=v[1];A(t.k,p),h&&i()}n=o,r=l}}}},kr),qr=function(n,r,t,e){U(n,r);var i=Tn(r),o=Hn(r),u=Dn(t);return e&&q(r),{x:o.h-i.h+u.h,y:o.w-i.w+u.w}},Jr=function(n,r){var e="hidden";t(n,{overflowX:e,overflowY:e,direction:"rtl"}),j(n,0);var i=Nn(n),o=Nn(r);j(n,-999);var u=Nn(r);return{i:i.x===o.x,n:o.x!==u.x}},Zr=function(n,r){var t=hn(n,qn),e=Bn(n),i=Bn(r),o=mn(i,e,!0),u=hn(n,Jn),c=Bn(n),a=Bn(r),f=mn(a,c,!0);return t(),u(),o&&f},Gr=function(){return Fr||(Fr=function(){var n,e=document.body,o=Z('
')[0],c=o.firstChild,a=Vn(),f=a[0],l=a[2],d=i({o:qr(e,o,c),u:bn},qr.bind(0,e,o,c,!0)),s=d[0],v=(0,d[1])()[0],p=function(n){var e=!1,i=hn(n,cr);try{e="none"===t(n,function(n){var t=tn[n];if(P(tn,n))return t;var e=G(n),i=J().style;return r(Q,(function(r){var o=r.replace(/-/g,""),u=[n,r+n,o+e,G(o)+e];return!(t=u.find((function(n){return void 0!==i[n]})))})),tn[n]=t||""}("scrollbar-width"))||"none"===window.getComputedStyle(n,"::-webkit-scrollbar").getPropertyValue("display")}catch(u){}return i(),e}(o),h={x:0===v.x,y:0===v.y},w={host:null,padding:!p,viewport:function(n){return p&&n===n.ownerDocument.body&&n},content:!1,scrollbarsSlot:!0,cancel:{nativeScrollbarsOverlaid:!0,body:null}},g=A({},Hr),b={k:v,H:h,L:p,D:"-1"===t(o,"zIndex"),B:Jr(o,c),F:Zr(o,c),q:function(n){return f("_",n)},U:A.bind(0,{},w),N:function(n){A(w,n)},Y:A.bind(0,{},g),W:function(n){A(g,n)},G:A({},w),X:A({},g)};return B(o,"style"),q(o),p||h.x&&h.y||window.addEventListener("resize",(function(){var r=Dr()[Kr];(n=n||r&&r.j())&&n(b,s,l.bind(0,"_"))})),b}()),Fr},Qr=function(n,r){return h(n)?n.apply(0,r):n},nt=function(n,r,t,e){var i=f(e)?t:e;return Qr(i,n)||r()},rt=function(n,r,t,e){var i=f(e)?t:e,o=Qr(i,n);return!!o&&(m(o)?o:r())},tt=function(n,r){var t=n||{},e=t.nativeScrollbarsOverlaid,i=t.body,o=r.Z,u=r.$,c=Gr(),a=c.U,d=c.H,s=a().cancel,v=s.nativeScrollbarsOverlaid,p=s.body,h=null!=e?e:v,w=f(i)?p:i,g=(d.x||d.y)&&h,b=o&&(l(w)?!u:w);return!!g||!!b},et=J.bind(0,""),it=function(n){U(N(n),_(n)),q(n)},ot=function(n,r){return T(n,Zn,r),B.bind(0,n,Zn)},ut=function(n){var r=Gr(),t=r.U,e=r.L,i=Dr()[Kr],o=i&&i.T,u=t(),c=u.host,a=u.viewport,f=u.padding,l=u.content,d=m(n),s=d?{}:n,v=s.host,p=s.padding,h=s.viewport,w=s.content,g=d?n:s.target,b=W(g,"textarea"),y=g.ownerDocument,x=g===y.body,L=y.defaultView,C=nt.bind(0,[g]),P=rt.bind(0,[g]),A=C(et,a,h),M=A===g,H=M&&x,T={J:g,K:b?C(et,c,v):g,rr:A,ar:!M&&P(et,f,p),er:!M&&P(et,l,w),nr:!M&&!e&&o&&o(r),tr:H?y.documentElement:A,ir:H?y:A,vr:L,ur:y,lr:b,Z:x,cr:d,$:M,sr:function(n,r){return M?D(A,Zn,r):function(n,r){return vn(n,r,(function(n,r){return n.contains(r)}))}(A,n)},dr:function(n,r,t){return M?z(A,Zn,r,t):(t?hn:pn)(A,n)}},j=R(T).reduce((function(n,r){var t=T[r];return S(n,!(!t||N(t))&&t)}),[]),k=function(n){return n?O(j,n)>-1:null},F=T.J,I=T.K,Y=T.ar,V=T.rr,X=T.er,J=T.nr,Z=[],G=b&&k(I),Q=b?F:_([X,V,Y,I,F].find((function(n){return!1===k(n)}))),nn=X||V;return[T,function(){var n=ot(I,M?"viewport":"host"),r=hn(Y,er),t=hn(V,!M&&ir),i=hn(X,ur),o=H?hn(N(g),cr):xn;G&&($(F,I),S(Z,(function(){$(I,F),q(I)}))),U(nn,Q),U(I,Y),U(Y||I,!M&&V),U(V,X),S(Z,(function(){o(),n(),B(V,Gn),B(V,Qn),k(X)&&it(X),k(V)&&it(V),k(Y)&&it(Y),r(),t(),i()})),e&&!M&&S(Z,pn.bind(0,V,cr)),J&&(K(V,J),S(Z,q.bind(0,J)))},E.bind(0,Z)]},ct=function(n,r){var e=n.er,i=r[0];return function(n){var r=Gr().F,o=i().gr,u=n.hr,c=(e||!r)&&u;return c&&t(e,{height:o?"":"100%"}),{pr:c,_r:c}}},at=function(n,r){var e=r[0],o=r[1],u=n.K,c=n.ar,a=n.rr,f=n.$,l=i({u:yn,o:Rn()},Rn.bind(0,u,"padding","")),d=l[0],s=l[1];return function(n,r,i){var u=s(i),l=u[0],v=u[1],p=Gr(),h=p.L,w=p.F,g=e().br,b=n.pr,y=n._r,m=n.wr,x=r("paddingAbsolute"),O=x[0],S=x[1];if(b||v||!w&&y){var L=d(i);l=L[0],v=L[1]}var C=!f&&(S||m||v);if(C){var E=!O||!c&&!h,P=l.r+l.l,R=l.t+l.b,M={marginRight:E&&!g?-P:0,marginBottom:E?-R:0,marginLeft:E&&g?-P:0,top:E?-l.t:0,right:E?g?-l.r:"auto":0,left:E?g?"auto":-l.l:0,width:E?"calc(100% + "+P+"px)":""},H={paddingTop:E?l.t:0,paddingRight:E?l.r:0,paddingBottom:E?l.b:0,paddingLeft:E?l.l:0};t(c||a,M),t(a,H),o({ar:l,mr:!E,R:c?H:A({},M,H)})}return{yr:C}}},ft=Math.max,lt=ft.bind(0,0),dt="visible",st="hidden",vt=42,pt={u:gn,o:{w:0,h:0}},ht={u:bn,o:{x:st,y:st}},wt=function(n,r,t){return t?hn(n,r):pn(n,r)},gt=function(n){return 0===n.indexOf(dt)},bt=function(n,r){var e=r[0],o=r[1],u=n.K,c=n.ar,a=n.rr,f=n.nr,l=n.$,d=n.dr,s=n.Z,v=n.vr,p=Gr(),h=p.k,w=p.F,g=p.L,b=p.H,y=Dr()[Kr],m=!l&&!g&&(b.x||b.y),x=s&&l,O=i(pt,Dn.bind(0,a)),S=O[0],L=O[1],C=i(pt,zn.bind(0,a)),E=C[0],P=C[1],R=i(pt),A=R[0],M=R[1],H=i(pt),D=H[0],B=H[1],j=i(ht)[0],k=function(n,r){if(t(a,{height:""}),r){var i=e(),o=i.mr,c=i.ar,f=n.Sr,l=n.I,d=Dn(u),s=Tn(u),v="content-box"===t(a,"boxSizing"),p=o||v?c.b+c.t:0,h=!(b.x&&v);t(a,{height:s.h+d.h+(f.x&&h?l.x:0)-p})}},F=function(n,r){var e=g||n?0:vt,i=function(n,i,o){var u=t(a,n),c="scroll"===(r?r[n]:u);return[u,c,c&&!g?i?e:o:0,i&&!!e]},o=i("overflowX",b.x,h.x),u=o[0],c=o[1],f=o[2],l=o[3],d=i("overflowY",b.y,h.y);return{Cr:{x:u,y:d[0]},Sr:{x:c,y:d[1]},I:{x:f,y:d[2]},V:{x:l,y:d[3]}}},I=function(n,r,t,i){var o=n.I,u=n.V,c=u.x,a=u.y,f=o.x,l=o.y,d=e().R,s=r?"marginLeft":"marginRight",v=r?"paddingLeft":"paddingRight",p=d[s],h=d.marginBottom,w=d[v],g=d.paddingBottom;i.width="calc(100% + "+(l+-1*p)+"px)",i[s]=-l+p,i.marginBottom=-f+h,t&&(i[v]=w+(a?l:0),i.paddingBottom=g+(c?f:0))},W=y?y.M(m,w,a,f,e,F,I):[function(){return m},function(){return[xn]}],_=W[0],N=W[1];return function(n,r,i){var f,s=n.pr,p=n.Or,h=n._r,y=n.yr,m=n.hr,O=n.wr,C=e(),R=C.gr,H=C.br,W=r("showNativeOverlaidScrollbars"),Y=W[0],V=W[1],X=r("overflow"),U=X[0],K=X[1],$=Y&&b.x&&b.y,q=!l&&!w&&(s||h||p||V||m),J=gt(U.x),Z=gt(U.y),G=J||Z,Q=L(i),nn=P(i),rn=M(i),tn=B(i);if(V&&g&&d(cr,rr,!$),q&&(f=F($),k(f,R)),s||y||h||O||V){G&&d(ar,nr,!1);var en=N($,H,f),on=en[0],un=en[1],cn=Q=S(i),an=cn[0],fn=cn[1],ln=nn=E(i),dn=ln[0],sn=ln[1],vn=Tn(a),pn=dn,hn=vn;on(),(sn||fn||V)&&un&&!$&&_(un,dn,an,H)&&(hn=Tn(a),pn=zn(a));var wn={w:lt(ft(dn.w,pn.w)+an.w),h:lt(ft(dn.h,pn.h)+an.h)},gn={w:lt(x?v.innerWidth:hn.w+lt(vn.w-dn.w)+an.w),h:lt(x?v.innerHeight:hn.h+lt(vn.h-dn.h)+an.h)};tn=D(gn),rn=A(function(n,r){var t=window.devicePixelRatio%1!=0?1:0,e={w:lt(n.w-r.w),h:lt(n.h-r.h)};return{w:e.w>t?e.w:0,h:e.h>t?e.h:0}}(wn,gn),i)}var bn=tn,yn=bn[0],mn=bn[1],xn=rn,On=xn[0],Sn=xn[1],Ln=nn,Cn=Ln[0],En=Ln[1],Pn=Q,Rn=Pn[0],An=Pn[1],Mn={x:On.w>0,y:On.h>0},Hn=J&&Z&&(Mn.x||Mn.y)||J&&Mn.x&&!Mn.y||Z&&Mn.y&&!Mn.x;if(y||O||An||En||mn||Sn||K||V||q){var Dn={marginRight:0,marginBottom:0,marginLeft:0,width:"",overflowY:"",overflowX:""},Bn=function(n,r,t,e){var i=function(n,r){var t=gt(n),e=r&&t&&n.replace(dt+"-","")||"";return[r&&!t?n:"",gt(e)?"hidden":e]},o=i(t.x,r.x),u=o[0],c=o[1],a=i(t.y,r.y),f=a[0],l=a[1];return e.overflowX=c&&f?c:u,e.overflowY=l&&u?l:f,F(n,e)}($,Mn,U,Dn),jn=_(Bn,Cn,Rn,H);l||I(Bn,H,jn,Dn),q&&k(Bn,R),l?(T(u,Gn,Dn.overflowX),T(u,Qn,Dn.overflowY)):t(a,Dn)}z(u,Zn,nr,Hn),wt(c,ar,Hn),!l&&wt(a,ar,G);var kn=j(F($).Cr),Fn=kn[0],In=kn[1];return o({Cr:Fn,Er:{x:yn.w,y:yn.h},Ar:{x:On.w,y:On.h},Pr:Mn}),{zr:In,Tr:mn,Lr:Sn}}},yt=function(n,t,e){var i={},o=t||{};return r(R(n).concat(R(o)),(function(r){var t=n[r],u=o[r];i[r]=!!(e||t||u)})),i},mt=3333333,xt=function(n){return n&&(n.height||n.width)},Ot=function(n,r,t){var e=t||{},o=e.Hr,u=void 0!==o&&o,c=e.Dr,a=void 0!==c&&c,f=Dr()[Nr],l=Gr().B,d=Z('
')[0],s=d.firstChild,v=Pn.bind(0,n),h=i({o:void 0,g:!0,u:function(n,r){return!(!n||!xt(n)&&xt(r))}}),b=h[0],y=function(n){var t=w(n)&&n.length>0&&g(n[0]),e=!t&&p(n[0]),i=!1,o=!1,c=!0;if(t){var a=b(n.pop().contentRect),f=a[0],s=a[2],v=xt(f);o=!xt(s)&&v,c=!(i=!s||!v)}else e?c=n[1]:o=!0===n;if(u&&c){var h=e?n[0]:Pn(d);j(d,h?l.n?-mt:l.i?0:mt:mt),k(d,mt)}i||r({pr:!e,Mr:e?n:void 0,Dr:!!o})},m=[],x=!!a&&y;return[function(){E(m),q(d)},function(){if(cn){var r=new cn(y);r.observe(s),S(m,(function(){r.disconnect()}))}else if(f){var t=f.P(s,y,a),e=t[0],o=t[1];x=e,S(m,o)}if(u){var c=i({o:!v()},v)[0];S(m,In(d,"scroll",(function(n){var r=c(),t=r[0];r[1]&&(pn(s,"ltr rtl"),hn(s,t?"rtl":"ltr"),y(r)),Wn(n)})))}x&&(hn(d,lr),S(m,In(d,"animationstart",x,{A:!!cn}))),U(n,d)}]},St=function(n,r){var t,e=J(hr),o=[],u=i({o:!1})[0],c=function(n,t){if(n){var e=u(function(n){return 0===n.h||n.isIntersecting||n.intersectionRatio>0}(n));if(e[1])return!t&&r(e),[e]}},a=function(n,r){if(n&&n.length>0)return c(n.pop(),r)};return[function(){E(o),q(e)},function(){if(un)(t=new un((function(n){return a(n)}),{root:n})).observe(e),S(o,(function(){t.disconnect()}));else{var r=function(){var n=Hn(e);c(n)},i=Ot(e,r),u=i[0],f=i[1];S(o,u),f(),r()}U(n,e)},function(){if(t)return a(t.takeRecords(),!0)}]},Lt=function(n,t,e,i){var o=!1,u=i||{},c=u.Rr,a=u.Ir,f=u.Vr,l=u.jr,d=u.kr,s=u.Br,p=On((function(){o&&e(!0)}),{p:33,_:99}),h=function(n,t,e){var i,o=!1,u=function(u){if(e){var c=e.reduce((function(r,t){if(t){var e=t[0],i=t[1],o=i&&e&&(u?u(e):I(e,n));o&&o.length&&i&&v(i)&&S(r,[o,i.trim()],!0)}return r}),[]);r(c,(function(n){return r(n[0],(function(r){var e=n[1],u=i.get(r);if(u){var c=u[0],a=u[1];c===e&&a()}var f=In(r,e,(function(n){o?(f(),i.delete(r)):t(n)}));i.set(r,[e,f])}))}))}};return e&&(i=new WeakMap,u()),[function(){o=!0},u]}(n,p,f),w=h[0],g=h[1],b=a||[],y=(c||[]).concat(b),m=function(o,u){var c=d||xn,a=s||xn,f=[],p=[],h=!1,w=!1,y=!1;return r(o,(function(r){var e=r.attributeName,o=r.target,u=r.type,d=r.oldValue,s=r.addedNodes,g="attributes"===u,m="childList"===u,x=n===o,L=g&&v(e)?T(o,e):0,C=0!==L&&d!==L,E=O(b,e)>-1&&C;if(t&&!x){var P=!g,R=g&&E,A=R&&l&&W(o,l),M=(A?!c(o,e,d,L):P||R)&&!a(r,!!A,n,i);S(p,s),w=w||M,y=y||m}!t&&x&&C&&!c(o,e,d,L)&&(S(f,e),h=h||E)})),y&&!C(p)&&g((function(n){return p.reduce((function(r,t){return S(r,I(n,t)),W(t,n)?S(r,t):r}),[])})),t?(!u&&w&&e(!1),[!1]):!C(f)||h?(!u&&e(f,h),[f,h]):void 0},x=new on((function(n){return m(n)}));return x.observe(n,{attributes:!0,attributeOldValue:!0,attributeFilter:y,subtree:t,childList:t,characterData:t}),o=!0,[function(){o&&(w(),x.disconnect(),o=!1)},function(){if(o){p.S();var n=x.takeRecords();return!C(n)&&m(n,!0)}}]},Ct="["+Zn+"]",Et="."+ir,Pt=["tabindex"],Rt=["wrap","cols","rows"],At=["id","class","style","open"],Mt=function(n,t,e){var o,u,c,a=t[1],f=n.K,l=n.rr,d=n.er,p=n.lr,g=n.$,b=n.sr,y=n.dr,m=Gr().F,x=i({u:gn,o:{w:0,h:0}},(function(){var n=b(ar,nr),r=b(or,""),t=r&&j(l),e=r&&k(l);y(ar,nr),y(or,""),y("",tr,!0);var i=zn(d),o=zn(l),u=Dn(l);return y(ar,nr,n),y(or,"",r),y("",tr),j(l,t),k(l,e),{w:o.w+i.w+u.w,h:o.h+i.h+u.h}})),L=x[0],C=p?Rt:At.concat(Rt),E=On(e,{p:function(){return o},_:function(){return u},m:function(n,r){var t=n[0],e=r[0];return[R(t).concat(R(e)).reduce((function(n,r){return n[r]=t[r]||e[r],n}),{})]}}),P=function(n){r(n||Pt,(function(n){if(O(Pt,n)>-1){var r=T(f,n);v(r)?T(l,n,r):B(l,n)}}))},M=function(n,r){var t=n[0],i={hr:n[1]};return a({gr:t}),!r&&e(i),i},H=function(n){var r=n.pr,t=n.Mr,i=n.Dr,o=!r||i?e:E,u=!1;if(t){var c=t[0];u=t[1],a({br:c})}o({pr:r,wr:u})},z=function(n,r){var t=L()[1],i={_r:t};return t&&!r&&(n?e:E)(i),i},D=function(n,r,t){var e={Or:r};return r?!t&&E(e):g||P(n),e},F=d||!m?St(f,M):[xn,xn,xn],I=F[0],W=F[1],_=F[2],N=g?[xn,xn]:Ot(f,H,{Dr:!0,Hr:!0}),X=N[0],U=N[1],K=Lt(f,!1,D,{Ir:At,Rr:At.concat(Pt)}),$=K[0],q=K[1],J=g&&cn&&new cn(H.bind(0,{pr:!0}));return J&&J.observe(f),P(),[function(){I(),X(),c&&c[0](),J&&J.disconnect(),$()},function(){U(),W()},function(){var n={},r=q(),t=_(),e=c&&c[1]();return r&&A(n,D.apply(0,S(r,!0))),t&&A(n,M.apply(0,S(t,!0))),e&&A(n,z.apply(0,S(e,!0))),n},function(n){var r=n("updating.ignoreMutation")[0],t=n("updating.attributes"),e=t[0],i=t[1],a=n("updating.elementEvents"),f=a[0],v=a[1],p=n("updating.debounce"),b=p[0],y=p[1],m=function(n){return h(r)&&r(n)};if((v||i)&&(c&&(c[1](),c[0]()),c=Lt(d||l,!0,z,{Ir:C.concat(e||[]),Rr:C.concat(e||[]),Vr:f,jr:Ct,Br:function(n,r){var t=n.target,e=n.attributeName;return!(r||!e||g)&&V(t,Ct,Et)||!!Y(t,"."+wr)||!!m(n)}})),y)if(E.S(),w(b)){var x=b[0],O=b[1];o=!!s(x)&&x,u=!!s(O)&&O}else s(b)?(o=b,u=!1):(o=!1,u=!1)}]},Ht={x:0,y:0},Tt={ar:{t:0,r:0,b:0,l:0},mr:!1,R:{marginRight:0,marginBottom:0,marginLeft:0,paddingTop:0,paddingRight:0,paddingBottom:0,paddingLeft:0},Er:Ht,Ar:Ht,Cr:{x:"hidden",y:"hidden"},Pr:{x:!1,y:!1},gr:!1,br:!1},zt=function(n,t){var e=Un(t,{}),i=Kn(Tt),o=Vn(),u=o[0],c=o[1],a=o[2],f=i[0],l=ut(n),d=l[0],s=l[1],v=l[2],p=function(n,t){var e=n.rr,i=n.dr,o=Gr(),u=o.L,c=o.H,a=o.F,f=!u&&(c.x||c.y),l=[ct(n,t),at(n,t),bt(n,t)];return function(n,t,o){var u=yt(A({pr:!1,yr:!1,wr:!1,hr:!1,Tr:!1,Lr:!1,zr:!1,Or:!1,_r:!1},t),{},o),c=f||!a,d=c&&j(e),s=c&&k(e);i("",tr,!0);var v=u;return r(l,(function(r){v=yt(v,r(v,n,!!o)||{},o)})),j(e,d),k(e,s),i("",tr),v}}(d,i),h=function(n,r,t){var e=R(n).some((function(r){return n[r]}));(e||!M(r)||t)&&a("u",[n,r,t])},w=Mt(d,i,(function(n){h(p(e,n),{},!1)})),g=w[0],b=w[1],y=w[2],m=w[3],x=f.bind(0);return x.Fr=function(n){u("u",n)},x.qr=function(){b(),s()},x.Ur=d,[function(n,r){var e=Un(t,n,r);m(e),h(p(e,y(),r),n,!!r)},x,function(){c(),g(),v()}]},Dt=Math.round,Bt=function(n){return{x:n.clientX,y:n.clientY}},jt=function(n,r){return In(n,"mousedown",In.bind(0,r,"click",Wn,{A:!0,O:!0}),{O:!0})},kt=function(n,r,t,e,i,o){var u=Gr().B,c=t.Nr,a=t.Yr,f=t.Wr,l="scroll"+(o?"Left":"Top"),d=o?"x":"y",s=o?"w":"h",v=function(n,r,t){return function(v){var p=i().Ar,h=(Bt(v)[d]-r)*t/(Hn(a)[s]-Hn(c)[s])*p[d],w=Pn(f)&&o?u.n||u.i?1:-1:1;e[l]=n+h*w}};return In(c,"pointerdown",(function(t){if(function(n,r,t){var e=r.scrollbars,i=n.button,o=n.isPrimary,u=n.pointerType,c=e.pointers;return 0===i&&o&&e["dragScroll"]&&(c||[]).includes(u)}(t,n)){var i=In(r,"selectstart",(function(n){return function(n){return n.preventDefault()}(n)}),{C:!1}),o=In(c,"pointermove",v(e[l]||0,Bt(t)[d],1/function(n){var r=Bn(n),t=r.width,e=r.height,i=Hn(n),o=i.w,u=i.h;return{x:Dt(t)/o||1,y:Dt(e)/u||1}}(e)[d]));In(c,"pointerup",(function(n){i(),o(),c.releasePointerCapture(n.pointerId)}),{A:!0}),c.setPointerCapture(t.pointerId)}}))},Ft=Math.min,It=Math.max,Wt=Math.abs,_t=Math.round,Nt=function(n,r,t,e){if(e){var i=t?"x":"y",o=e.Ar,u=e.Er[i],c=o[i];return It(0,Ft(1,u/(u+c)))}var a=t?"w":"h",f=Hn(n)[a],l=Hn(r)[a];return It(0,Ft(1,f/l))},Yt=function(n,e,i){var o=(0,Gr().U)().scrollbarsSlot,u=e.ur,c=e.J,a=e.K,f=e.rr,l=e.cr,d=e.tr,s=(l?{}:n).scrollbarsSlot,v=rt([c,a,f],(function(){return a}),o,s),h=function(n,t,e){var i=e?hn:pn;r(n,(function(n){i(n.Wr,t)}))},w=function(n,e){r(n,(function(n){var r=e(n);t(r[0],r[1])}))},g=function(n,r,t){w(n,(function(n){var e,i=n.Nr,o=n.Yr;return[i,(e={},e[t?"width":"height"]=(100*Nt(i,o,t,r)).toFixed(3)+"%",e)]}))},b=function(n,r,t){var e=t?"X":"Y";w(n,(function(n){var i=n.Nr,o=n.Yr,u=n.Wr,c=function(n,r,t,e,i,o){var u=Gr().B,c=o?"x":"y",a=o?"Left":"Top",f=e.Ar,l=_t(f[c]),d=Wt(t["scroll"+a]),s=o&&i,v=u.i?d:l-d,p=Ft(1,(s?v:d)/l),h=Nt(n,r,o);return 1/h*(1-h)*p}(i,o,d,r,Pn(u),t);return[i,{transform:c==c?"translate"+e+"("+(100*c).toFixed(3)+"%)":""}]}))},y=[],m=[],x=[],O=function(n,r,t){var e=p(t),i=!e||!t;(!e||t)&&h(m,n,r),i&&h(x,n,r)},L=function(n){var r=n?br:yr,t=n?m:x,e=C(t)?Lr:"",o=J(wr+" "+r+" "+e),c=J(mr),a=J(xr),f={Wr:o,Yr:c,Nr:a};return U(o,c),U(c,a),S(t,f),S(y,[q.bind(0,o),i(f,O,u,d,n)]),f},P=L.bind(0,!0),R=L.bind(0,!1);return P(),R(),[{Gr:function(n){g(m,n,!0),g(x,n)},Xr:function(n){b(m,n,!0),b(x,n)},Zr:O,$r:{Jr:m,Kr:P,Qr:w.bind(0,m)},ra:{Jr:x,Kr:R,Qr:w.bind(0,x)}},function(){U(v,m[0].Wr),U(v,x[0].Wr),ln((function(){O(Lr)}),300)},E.bind(0,y)]},Vt=function(n){var r,t=n?ln:fn,e=n?dn:an;return[function(i){e(r),r=t(i,h(n)?n():n)},function(){return e(r)}]},Xt=function(n,r,t){var e,i,o,u,c,a=0,f=Kn({})[0],l=Vt(),d=l[0],s=l[1],v=Vt(),p=v[0],h=v[1],w=Vt(100),g=w[0],b=w[1],y=Vt(100),m=y[0],x=y[1],O=Vt((function(){return a})),S=O[0],L=O[1],C=Yt(n,t.Ur,function(n,r){return function(t,e,i,o,u){var c=t.Wr;return E.bind(0,[In(c,"pointerenter",(function(){e(Cr,!0)})),In(c,"pointerleave pointercancel",(function(){e(Cr)})),jt(c,i),kt(n,i,t,o,r,u)])}}(r,t)),P=C[0],R=C[1],A=C[2],M=t.Ur,H=M.K,T=M.rr,z=M.tr,D=M.ir,B=M.$,F=M.Z,I=P.$r,W=P.ra,_=P.Zr,Y=P.Gr,V=P.Xr,X=I.Qr,U=W.Qr,K=function(n){var r=n.Wr,t=B&&!F&&N(r)===T&&r;return[t,{transform:t?"translate("+j(z)+"px, "+k(z)+"px)":""}]},$=function(n,r){if(L(),n)_(Pr);else{var t=function(){return _(Pr,!0)};a>0&&!r?S(t):t()}},q=function(){(u=i)&&$(!0)},J=[b,L,x,h,s,A,In(H,"pointerover",q,{A:!0}),In(H,"pointerenter",q),In(H,"pointerleave",(function(){u=!1,i&&$(!1)})),In(H,"pointermove",(function(){e&&d((function(){b(),$(!0),m((function(){e&&$(!1)}))}))})),In(D,"scroll",(function(){p((function(){V(t()),o&&$(!0),g((function(){o&&!u&&$(!1)}))})),B&&X(K),B&&U(K)}))],Z=f.bind(0);return Z.Ur=P,Z.qr=R,[function(n,u,f){var l=f.Tr,d=f.Lr,s=f.zr,v=f.wr,p=Un(r,n,u),h=t(),w=h.Ar,g=h.Cr,b=h.br,y=p("scrollbars.theme"),m=y[0],x=y[1],O=p("scrollbars.visibility"),S=O[0],L=O[1],C=p("scrollbars.autoHide"),E=C[0],P=C[1],R=p("scrollbars.autoHideDelay")[0],A=p("scrollbars.dragScroll"),M=A[0],H=A[1],T=p("scrollbars.clickScroll"),z=T[0],D=T[1],B=l||d||v||u,j=s||L||u,k=function(n,r){var t="visible"===S||"auto"===S&&"scroll"===n;return _(Or,t,r),t};if(a=R,x&&(_(c),_(m,!0),c=m),P&&(e="move"===E,i="leave"===E,$(!(o="never"!==E),!0)),H&&_(Ar,M),D&&_(Rr,z),j){var I=k(g.x,!0),W=k(g.y,!1);_(Sr,!(I&&W))}B&&(Y(h),V(h),_(Er,!w.x,!0),_(Er,!w.y,!1),_(gr,b&&!F))},Z,E.bind(0,J)]},Ut=new Set,Kt=new WeakMap,$t=function n(t,e,i){var o=!1,u=Gr(),c=u.Y,a=u.q,f=Dr(),l=m(t),d=l?t:t.target,s=function(n){return Kt.get(n)}(d);if(s)return s;var v=f[Ir],p=function(n){var r=n||{},t=v&&v.P;return t?t(r,!0):r},w=A({},c(),p(e)),g=Vn(i),b=g[0],y=g[1],x=g[2],O=zt(t,w),S=O[0],L=O[1],C=O[2],E=Xt(t,w,L),P=E[0],H=E[1],T=E[2],z=function(n,r){S(n,!!r)},D=a(z.bind(0,{},!0)),B=function(n){!function(n){Kt.delete(n),Ut.delete(n)}(d),D(),T(),C(),o=!0,x("destroyed",[j,!!n]),y()},j={options:function(n){if(n){var r=Tr(w,p(n));M(r)||(A(w,r),z(r))}return A({},w)},on:b,off:function(n,r){n&&r&&y(n,r)},state:function(){var n=L(),r=n.Er,t=n.Ar,e=n.Cr,i=n.Pr,u=n.ar,c=n.mr,a=n.br;return A({},{overflowEdge:r,overflowAmount:t,overflowStyle:e,hasOverflow:i,padding:u,paddingAbsolute:c,directionRTL:a,destroyed:o})},elements:function(){var n=L.Ur,r=n.J,t=n.K,e=n.ar,i=n.rr,o=n.er,u=n.tr,c=n.ir,a=H.Ur,f=a.$r,l=a.ra,d=function(n){var r=n.Nr,t=n.Yr;return{scrollbar:n.Wr,track:t,handle:r}},s=function(n){var r=n.Jr,t=n.Kr,e=d(r[0]);return A({},e,{clone:function(){var n=d(t());return P({},!0,{}),n}})};return A({},{target:r,host:t,padding:e||i,viewport:i,content:o||i,scrollOffsetElement:u,scrollEventElement:c,scrollbarHorizontal:s(f),scrollbarVertical:s(l)})},update:function(n){return z({},n),j},destroy:B.bind(0)};return L.Fr((function(n,r,t){P(r,t,n)})),r(R(f),(function(r){var t=f[r];h(t)&&t(n,j)})),tt(!l&&t.cancel,L.Ur)?(B(!0),j):(L.qr(),H.qr(),function(n,r){Kt.set(n,r),Ut.add(n)}(d,j),x("initialized",[j]),L.Fr((function(n,r,t){var e=n.pr,i=n.wr,o=n.hr,u=n.Tr,c=n.Lr,a=n.zr,f=n._r,l=n.Or;x("updated",[j,{updateHints:{sizeChanged:e,directionChanged:i,heightIntrinsicChanged:o,overflowEdgeChanged:u,overflowAmountChanged:c,overflowStyleChanged:a,contentMutation:f,hostMutation:l},changedOptions:r,force:t}])})),j.update(!0))};$t.plugin=function(n){r(w(n)?n:[n],(function(n){var r=R(n)[0];zr[r]=n[r]}))},$t.env=function(){var n=Gr(),r=n.k,t=n.H,e=n.L,i=n.B,o=n.F,u=n.D,c=n.G,a=n.X,f=n.U,l=n.N,d=n.Y,s=n.W;return A({},{scrollbarsSize:r,scrollbarsOverlaid:t,scrollbarsHiding:e,rtlScrollBehavior:i,flexboxGlue:o,cssCustomProperties:u,staticDefaultInitialization:c,staticDefaultOptions:a,getDefaultInitialization:f,setDefaultInitialization:l,getDefaultOptions:d,setDefaultOptions:s})},n.OverlayScrollbars=$t,n.scrollbarsHidingPlugin=$r,n.sizeObserverPlugin=Yr,Object.defineProperty(n,"v",{value:!0})})); \ No newline at end of file diff --git a/packages/overlayscrollbars/jest-playwright.config.js b/packages/overlayscrollbars/jest-playwright.config.js deleted file mode 100644 index 4f8612c..0000000 --- a/packages/overlayscrollbars/jest-playwright.config.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('../../jest-playwright.config.base'); diff --git a/packages/overlayscrollbars/jest.config.js b/packages/overlayscrollbars/jest.config.js index f53d374..c492f3b 100644 --- a/packages/overlayscrollbars/jest.config.js +++ b/packages/overlayscrollbars/jest.config.js @@ -1 +1 @@ -module.exports = require('../../jest.config.base'); +module.exports = require('@local/config/jest'); diff --git a/packages/overlayscrollbars/package.json b/packages/overlayscrollbars/package.json index e7a77fb..dc23e10 100644 --- a/packages/overlayscrollbars/package.json +++ b/packages/overlayscrollbars/package.json @@ -16,6 +16,7 @@ "test:browser-dev": "jest --runInBand --detectOpenHandles --selectProjects browser-dev --testPathPattern", "build": "rollup -c", "test:playwright": "playwright test", - "posttest:playwright": "node playwright.coverage.js" + "posttest:playwright": "node playwright.coverage.js", + "root:tt": "node workspace.root.js root:some" } } diff --git a/packages/overlayscrollbars/playwright.config.js b/packages/overlayscrollbars/playwright.config.js index b6e8960..14df0b3 100644 --- a/packages/overlayscrollbars/playwright.config.js +++ b/packages/overlayscrollbars/playwright.config.js @@ -1 +1 @@ -module.exports = require('../../playwright.config.base'); +module.exports = require('@local/config/playwright'); diff --git a/packages/overlayscrollbars/playwright.coverage.js b/packages/overlayscrollbars/playwright.coverage.js deleted file mode 100644 index 59b3040..0000000 --- a/packages/overlayscrollbars/playwright.coverage.js +++ /dev/null @@ -1 +0,0 @@ -require('../../playwright.coverage.base'); diff --git a/packages/overlayscrollbars/playwright.rollup.js b/packages/overlayscrollbars/playwright.rollup.js deleted file mode 100644 index 4cf77d8..0000000 --- a/packages/overlayscrollbars/playwright.rollup.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('../../playwright.rollup.base'); diff --git a/packages/overlayscrollbars/rollup.config.js b/packages/overlayscrollbars/rollup.config.js index 73a1e91..de7ed0d 100644 --- a/packages/overlayscrollbars/rollup.config.js +++ b/packages/overlayscrollbars/rollup.config.js @@ -1,5 +1,5 @@ const { terser: rollupTerser } = require('rollup-plugin-terser'); -const createRollupConfig = require('../../rollup.config.base'); +const createRollupConfig = require('@local/rollup'); const { devDependencies, peerDependencies } = require('./package.json'); module.exports = createRollupConfig({ diff --git a/packages/overlayscrollbars/tests/playwright/environment/index.test.ts b/packages/overlayscrollbars/tests/playwright/environment/index.test.ts index 8ccfad3..1f98632 100644 --- a/packages/overlayscrollbars/tests/playwright/environment/index.test.ts +++ b/packages/overlayscrollbars/tests/playwright/environment/index.test.ts @@ -1,5 +1,4 @@ -// @ts-ignore -import { playwrightRollup } from '@/playwright/rollup'; +import { playwrightRollup } from '@local/playwright-tooling'; import { test } from '@playwright/test'; import { InternalEnvironment } from 'environment'; diff --git a/packages/overlayscrollbars/tests/playwright/observers/domObserver/index.test.ts b/packages/overlayscrollbars/tests/playwright/observers/domObserver/index.test.ts index 97dece0..f30cef0 100644 --- a/packages/overlayscrollbars/tests/playwright/observers/domObserver/index.test.ts +++ b/packages/overlayscrollbars/tests/playwright/observers/domObserver/index.test.ts @@ -1,5 +1,4 @@ -// @ts-ignore -import { playwrightRollup, expectSuccess } from '@/playwright/rollup'; +import { playwrightRollup, expectSuccess } from '@local/playwright-tooling'; import { test } from '@playwright/test'; playwrightRollup(); diff --git a/packages/overlayscrollbars/tests/playwright/observers/sizeObserver/index.test.ts b/packages/overlayscrollbars/tests/playwright/observers/sizeObserver/index.test.ts index 4297ea5..643279a 100644 --- a/packages/overlayscrollbars/tests/playwright/observers/sizeObserver/index.test.ts +++ b/packages/overlayscrollbars/tests/playwright/observers/sizeObserver/index.test.ts @@ -1,5 +1,4 @@ -// @ts-ignore -import { playwrightRollup, expectSuccess } from '@/playwright/rollup'; +import { playwrightRollup, expectSuccess } from '@local/playwright-tooling'; import { test } from '@playwright/test'; playwrightRollup(); diff --git a/packages/overlayscrollbars/tests/playwright/observers/trinsicObserver/index.test.ts b/packages/overlayscrollbars/tests/playwright/observers/trinsicObserver/index.test.ts index 199971b..3f4970b 100644 --- a/packages/overlayscrollbars/tests/playwright/observers/trinsicObserver/index.test.ts +++ b/packages/overlayscrollbars/tests/playwright/observers/trinsicObserver/index.test.ts @@ -1,5 +1,4 @@ -// @ts-ignore -import { playwrightRollup, expectSuccess } from '@/playwright/rollup'; +import { playwrightRollup, expectSuccess } from '@local/playwright-tooling'; import { test } from '@playwright/test'; playwrightRollup(); diff --git a/packages/overlayscrollbars/tests/playwright/setups/structureSetup/body/index.test.ts b/packages/overlayscrollbars/tests/playwright/setups/structureSetup/body/index.test.ts index 675be2c..39ff690 100644 --- a/packages/overlayscrollbars/tests/playwright/setups/structureSetup/body/index.test.ts +++ b/packages/overlayscrollbars/tests/playwright/setups/structureSetup/body/index.test.ts @@ -1,5 +1,4 @@ -// @ts-ignore -import { playwrightRollup, expectSuccess } from '@/playwright/rollup'; +import { playwrightRollup, expectSuccess } from '@local/playwright-tooling'; import { test } from '@playwright/test'; playwrightRollup(); diff --git a/packages/overlayscrollbars/tests/playwright/setups/structureSetup/nesting/index.test.ts b/packages/overlayscrollbars/tests/playwright/setups/structureSetup/nesting/index.test.ts index 2466b1f..436b4ef 100644 --- a/packages/overlayscrollbars/tests/playwright/setups/structureSetup/nesting/index.test.ts +++ b/packages/overlayscrollbars/tests/playwright/setups/structureSetup/nesting/index.test.ts @@ -1,5 +1,4 @@ -// @ts-ignore -import { playwrightRollup, expectSuccess } from '@/playwright/rollup'; +import { playwrightRollup, expectSuccess } from '@local/playwright-tooling'; import { test } from '@playwright/test'; playwrightRollup(); diff --git a/packages/overlayscrollbars/tests/playwright/setups/structureSetup/observers/index.test.ts b/packages/overlayscrollbars/tests/playwright/setups/structureSetup/observers/index.test.ts index 675be2c..39ff690 100644 --- a/packages/overlayscrollbars/tests/playwright/setups/structureSetup/observers/index.test.ts +++ b/packages/overlayscrollbars/tests/playwright/setups/structureSetup/observers/index.test.ts @@ -1,5 +1,4 @@ -// @ts-ignore -import { playwrightRollup, expectSuccess } from '@/playwright/rollup'; +import { playwrightRollup, expectSuccess } from '@local/playwright-tooling'; import { test } from '@playwright/test'; playwrightRollup(); diff --git a/packages/overlayscrollbars/tests/playwright/setups/structureSetup/update/index.test.ts b/packages/overlayscrollbars/tests/playwright/setups/structureSetup/update/index.test.ts index 92e7346..b6fc590 100644 --- a/packages/overlayscrollbars/tests/playwright/setups/structureSetup/update/index.test.ts +++ b/packages/overlayscrollbars/tests/playwright/setups/structureSetup/update/index.test.ts @@ -1,5 +1,4 @@ -// @ts-ignore -import { playwrightRollup, expectSuccess } from '@/playwright/rollup'; +import { playwrightRollup, expectSuccess } from '@local/playwright-tooling'; import { test, Page } from '@playwright/test'; playwrightRollup(); diff --git a/packages/overlayscrollbars/tsconfig.json b/packages/overlayscrollbars/tsconfig.json index 2a8cff6..ea2a624 100644 --- a/packages/overlayscrollbars/tsconfig.json +++ b/packages/overlayscrollbars/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.base.json", + "extends": "@local/tsconfig", "compilerOptions": { "baseUrl": "./src", "paths": { diff --git a/packages/overlayscrollbars/types/overlayscrollbars.d.ts b/packages/overlayscrollbars/types/overlayscrollbars.d.ts index 52f1f10..035a4f6 100644 --- a/packages/overlayscrollbars/types/overlayscrollbars.d.ts +++ b/packages/overlayscrollbars/types/overlayscrollbars.d.ts @@ -136,7 +136,7 @@ type StructureDynamicInitializationElement = DynamicInitializationElement<[ * If element is provided, the provided element takes all its responsibilities. * DOM hierarchy isn't checked in this case, its assumed that hieararchy is correct in such a case. * - * Null or Undefined means that the environment initialization strategy is used. + * undefined means that the default initialization strategy is used. */ interface StructureInitialization { target: InitializationTargetElement; @@ -224,12 +224,24 @@ interface State { directionRTL: boolean; destroyed: boolean; } +interface ScrollbarElements { + scrollbar: HTMLElement; + track: HTMLElement; + handle: HTMLElement; +} +interface CloneableScrollbarElements extends ScrollbarElements { + clone(): ScrollbarElements; +} interface Elements { target: HTMLElement; host: HTMLElement; padding: HTMLElement; viewport: HTMLElement; content: HTMLElement; + scrollOffsetElement: HTMLElement; + scrollEventElement: HTMLElement | Document; + scrollbarHorizontal: CloneableScrollbarElements; + scrollbarVertical: CloneableScrollbarElements; } interface OnUpdatedEventListenerArgs { updateHints: { diff --git a/packages/overlayscrollbars-jquery/index.js b/packages/overlayscrollbars/types/overlayscrollbars.min.d.ts similarity index 100% rename from packages/overlayscrollbars-jquery/index.js rename to packages/overlayscrollbars/types/overlayscrollbars.min.d.ts diff --git a/packages/testing-browser/tsconfig.json b/packages/testing-browser/tsconfig.json index 27c2657..d46e509 100644 --- a/packages/testing-browser/tsconfig.json +++ b/packages/testing-browser/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.base.json", + "extends": "@local/tsconfig", "compilerOptions": { "baseUrl": "./src/" } diff --git a/playwright.coverage.base.js b/playwright.coverage.base.js deleted file mode 100644 index 5526470..0000000 --- a/playwright.coverage.base.js +++ /dev/null @@ -1,3 +0,0 @@ -const { mergeCoverage } = require('./config/playwright/collectCoverage'); - -mergeCoverage(); diff --git a/playwright.rollup.base.js b/playwright.rollup.base.js deleted file mode 100644 index 1e91752..0000000 --- a/playwright.rollup.base.js +++ /dev/null @@ -1,89 +0,0 @@ -const { dirname } = require('path'); -const { rollup, watch: rollupWatch } = require('rollup'); -const { test, expect } = require('@playwright/test'); -const { collectCoverage, mergeCoverage } = require('./config/playwright/collectCoverage'); - -const playwrightRollup = async (testDir, watch = false) => { - let server; - const createPlaywrightRollupConfig = require(`${__dirname}/config/playwright/rollup.config.js`); - const onListening = (srv) => { - server = srv; - }; - const config = await createPlaywrightRollupConfig(testDir, onListening); - - if (watch) { - const watcher = rollupWatch(config); - let outputPath = ''; - // eslint-disable-next-line no-await-in-loop - await new Promise((resolve) => { - watcher.on('event', ({ code, error, result, output }) => { - if (code === 'ERROR') { - console.log('Error:', error); // eslint-disable-line - } - if (code === 'BUNDLE_END') { - outputPath = output[0]; - if (result && result.close) { - result.close(); - } - } - if (code === 'END') { - /* - console.log('Watching for changes, press ENTER to continue.'); // eslint-disable-line - console.log(''); // eslint-disable-line - */ - resolve(); - } - }); - }); - - const { address, port } = server.address(); - return { - url: `${address}:${port}`, - output: outputPath, - close: () => { - server.close(); - watcher.close(); - }, - }; - } - - const bundle = await rollup(config); - await bundle.write(config.output); -}; - -module.exports = { - playwrightRollup: () => { - const originalCwd = process.cwd(); - let url; - let close; - let output; - - // eslint-disable-next-line no-empty-pattern - test.beforeAll(async ({}, { file }) => { - ({ close, url, output } = await playwrightRollup(dirname(file), true)); - }); - - test.beforeEach(async ({ page, browserName }) => { - await page.goto(url); - if (browserName === 'chromium') { - await page.coverage.startJSCoverage(); - } - }); - - test.afterEach(async ({ page, browserName }, { file }) => { - if (browserName === 'chromium') { - const coverage = await page.coverage.stopJSCoverage(); - await collectCoverage(originalCwd, dirname(output), coverage, file); - } - }); - - test.afterAll(() => { - close(); - }); - }, - expectSuccess: async (page) => { - await page.locator('#testResult').waitFor({ state: 'visible', timeout: 10 * 60 * 1000 }); // 10mins - await expect(page.locator('#testResult')).toHaveClass('passed', { timeout: 500 }); - }, - mergeCoverage, -}; diff --git a/rollup.config.base.js b/rollup.config.base.js deleted file mode 100644 index 0b9bba3..0000000 --- a/rollup.config.base.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('./config/rollup/rollup.config'); diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index 1203345..0000000 --- a/yarn.lock +++ /dev/null @@ -1,8242 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@ampproject/remapping@^2.1.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" - integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== - dependencies: - "@jridgewell/gen-mapping" "^0.1.0" - "@jridgewell/trace-mapping" "^0.3.9" - -"@babel/code-frame@7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" - integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== - dependencies: - "@babel/highlight" "^7.10.4" - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" - integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== - dependencies: - "@babel/highlight" "^7.16.7" - -"@babel/code-frame@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" - integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== - dependencies: - "@babel/highlight" "^7.18.6" - -"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.17.10": - version "7.18.5" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.18.5.tgz#acac0c839e317038c73137fbb6ef71a1d6238471" - integrity sha512-BxhE40PVCBxVEJsSBhB6UWyAuqJRxGsAw8BdHMJ3AKGydcwuWW4kOO3HmqBQAdcq/OP+/DlTVxLvsCzRTnZuGg== - -"@babel/compat-data@^7.18.8": - version "7.18.8" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.18.8.tgz#2483f565faca607b8535590e84e7de323f27764d" - integrity sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ== - -"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.18.2": - version "7.18.5" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.5.tgz#c597fa680e58d571c28dda9827669c78cdd7f000" - integrity sha512-MGY8vg3DxMnctw0LdvSEojOsumc70g0t18gNyUdAZqB1Rpd1Bqo/svHGvt+UJ6JcGX+DIekGFDxxIWofBxLCnQ== - dependencies: - "@ampproject/remapping" "^2.1.0" - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.18.2" - "@babel/helper-compilation-targets" "^7.18.2" - "@babel/helper-module-transforms" "^7.18.0" - "@babel/helpers" "^7.18.2" - "@babel/parser" "^7.18.5" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.18.5" - "@babel/types" "^7.18.4" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.1" - semver "^6.3.0" - -"@babel/core@^7.7.5": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.9.tgz#805461f967c77ff46c74ca0460ccf4fe933ddd59" - integrity sha512-1LIb1eL8APMy91/IMW+31ckrfBM4yCoLaVzoDhZUKSM4cu1L1nIidyxkCgzPAgrC5WEz36IPEr/eSeSF9pIn+g== - dependencies: - "@ampproject/remapping" "^2.1.0" - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.18.9" - "@babel/helper-compilation-targets" "^7.18.9" - "@babel/helper-module-transforms" "^7.18.9" - "@babel/helpers" "^7.18.9" - "@babel/parser" "^7.18.9" - "@babel/template" "^7.18.6" - "@babel/traverse" "^7.18.9" - "@babel/types" "^7.18.9" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.1" - semver "^6.3.0" - -"@babel/generator@^7.18.2", "@babel/generator@^7.7.2": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.2.tgz#33873d6f89b21efe2da63fe554460f3df1c5880d" - integrity sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw== - dependencies: - "@babel/types" "^7.18.2" - "@jridgewell/gen-mapping" "^0.3.0" - jsesc "^2.5.1" - -"@babel/generator@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.9.tgz#68337e9ea8044d6ddc690fb29acae39359cca0a5" - integrity sha512-wt5Naw6lJrL1/SGkipMiFxJjtyczUWTP38deiP1PO60HsBjDeKk08CGC3S8iVuvf0FmTdgKwU1KIXzSKL1G0Ug== - dependencies: - "@babel/types" "^7.18.9" - "@jridgewell/gen-mapping" "^0.3.2" - jsesc "^2.5.1" - -"@babel/helper-annotate-as-pure@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz#bb2339a7534a9c128e3102024c60760a3a7f3862" - integrity sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz#38d138561ea207f0f69eb1626a418e4f7e6a580b" - integrity sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA== - dependencies: - "@babel/helper-explode-assignable-expression" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.17.10", "@babel/helper-compilation-targets@^7.18.2": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.2.tgz#67a85a10cbd5fc7f1457fec2e7f45441dc6c754b" - integrity sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ== - dependencies: - "@babel/compat-data" "^7.17.10" - "@babel/helper-validator-option" "^7.16.7" - browserslist "^4.20.2" - semver "^6.3.0" - -"@babel/helper-compilation-targets@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz#69e64f57b524cde3e5ff6cc5a9f4a387ee5563bf" - integrity sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg== - dependencies: - "@babel/compat-data" "^7.18.8" - "@babel/helper-validator-option" "^7.18.6" - browserslist "^4.20.2" - semver "^6.3.0" - -"@babel/helper-create-class-features-plugin@^7.17.12", "@babel/helper-create-class-features-plugin@^7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz#fac430912606331cb075ea8d82f9a4c145a4da19" - integrity sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.17.9" - "@babel/helper-member-expression-to-functions" "^7.17.7" - "@babel/helper-optimise-call-expression" "^7.16.7" - "@babel/helper-replace-supers" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - -"@babel/helper-create-regexp-features-plugin@^7.16.7", "@babel/helper-create-regexp-features-plugin@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.12.tgz#bb37ca467f9694bbe55b884ae7a5cc1e0084e4fd" - integrity sha512-b2aZrV4zvutr9AIa6/gA3wsZKRwTKYoDxYiFKcESS3Ug2GTXzwBEvMuuFLhCQpEnRXs1zng4ISAXSUxxKBIcxw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - regexpu-core "^5.0.1" - -"@babel/helper-define-polyfill-provider@^0.3.1": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz#52411b445bdb2e676869e5a74960d2d3826d2665" - integrity sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA== - dependencies: - "@babel/helper-compilation-targets" "^7.13.0" - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/traverse" "^7.13.0" - debug "^4.1.1" - lodash.debounce "^4.0.8" - resolve "^1.14.2" - semver "^6.1.2" - -"@babel/helper-environment-visitor@^7.16.7", "@babel/helper-environment-visitor@^7.18.2": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.2.tgz#8a6d2dedb53f6bf248e31b4baf38739ee4a637bd" - integrity sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ== - -"@babel/helper-environment-visitor@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" - integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== - -"@babel/helper-explode-assignable-expression@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz#12a6d8522fdd834f194e868af6354e8650242b7a" - integrity sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-function-name@^7.16.7", "@babel/helper-function-name@^7.17.9": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz#136fcd54bc1da82fcb47565cf16fd8e444b1ff12" - integrity sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg== - dependencies: - "@babel/template" "^7.16.7" - "@babel/types" "^7.17.0" - -"@babel/helper-function-name@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz#940e6084a55dee867d33b4e487da2676365e86b0" - integrity sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A== - dependencies: - "@babel/template" "^7.18.6" - "@babel/types" "^7.18.9" - -"@babel/helper-hoist-variables@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz#86bcb19a77a509c7b77d0e22323ef588fa58c246" - integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-hoist-variables@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" - integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-member-expression-to-functions@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz#a34013b57d8542a8c4ff8ba3f747c02452a4d8c4" - integrity sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw== - dependencies: - "@babel/types" "^7.17.0" - -"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437" - integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-module-imports@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" - integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-module-transforms@^7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz#baf05dec7a5875fb9235bd34ca18bad4e21221cd" - integrity sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA== - dependencies: - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-simple-access" "^7.17.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/helper-validator-identifier" "^7.16.7" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.18.0" - "@babel/types" "^7.18.0" - -"@babel/helper-module-transforms@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz#5a1079c005135ed627442df31a42887e80fcb712" - integrity sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g== - dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-simple-access" "^7.18.6" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/helper-validator-identifier" "^7.18.6" - "@babel/template" "^7.18.6" - "@babel/traverse" "^7.18.9" - "@babel/types" "^7.18.9" - -"@babel/helper-optimise-call-expression@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz#a34e3560605abbd31a18546bd2aad3e6d9a174f2" - integrity sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.17.12", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz#86c2347da5acbf5583ba0a10aed4c9bf9da9cf96" - integrity sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA== - -"@babel/helper-remap-async-to-generator@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz#29ffaade68a367e2ed09c90901986918d25e57e3" - integrity sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-wrap-function" "^7.16.8" - "@babel/types" "^7.16.8" - -"@babel/helper-replace-supers@^7.16.7", "@babel/helper-replace-supers@^7.18.2": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.18.2.tgz#41fdfcc9abaf900e18ba6e5931816d9062a7b2e0" - integrity sha512-XzAIyxx+vFnrOxiQrToSUOzUOn0e1J2Li40ntddek1Y69AXUTXoDJ40/D5RdjFu7s7qHiaeoTiempZcbuVXh2Q== - dependencies: - "@babel/helper-environment-visitor" "^7.18.2" - "@babel/helper-member-expression-to-functions" "^7.17.7" - "@babel/helper-optimise-call-expression" "^7.16.7" - "@babel/traverse" "^7.18.2" - "@babel/types" "^7.18.2" - -"@babel/helper-simple-access@^7.17.7", "@babel/helper-simple-access@^7.18.2": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.18.2.tgz#4dc473c2169ac3a1c9f4a51cfcd091d1c36fcff9" - integrity sha512-7LIrjYzndorDY88MycupkpQLKS1AFfsVRm2k/9PtKScSy5tZq0McZTj+DiMRynboZfIqOKvo03pmhTaUgiD6fQ== - dependencies: - "@babel/types" "^7.18.2" - -"@babel/helper-simple-access@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz#d6d8f51f4ac2978068df934b569f08f29788c7ea" - integrity sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-skip-transparent-expression-wrappers@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz#0ee3388070147c3ae051e487eca3ebb0e2e8bb09" - integrity sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw== - dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-split-export-declaration@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b" - integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-split-export-declaration@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" - integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-validator-identifier@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" - integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== - -"@babel/helper-validator-identifier@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" - integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== - -"@babel/helper-validator-option@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23" - integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ== - -"@babel/helper-validator-option@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" - integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== - -"@babel/helper-wrap-function@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz#58afda087c4cd235de92f7ceedebca2c41274200" - integrity sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw== - dependencies: - "@babel/helper-function-name" "^7.16.7" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.16.8" - "@babel/types" "^7.16.8" - -"@babel/helpers@^7.18.2": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.18.2.tgz#970d74f0deadc3f5a938bfa250738eb4ac889384" - integrity sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg== - dependencies: - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.18.2" - "@babel/types" "^7.18.2" - -"@babel/helpers@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.18.9.tgz#4bef3b893f253a1eced04516824ede94dcfe7ff9" - integrity sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ== - dependencies: - "@babel/template" "^7.18.6" - "@babel/traverse" "^7.18.9" - "@babel/types" "^7.18.9" - -"@babel/highlight@^7.10.4", "@babel/highlight@^7.16.7": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.17.12.tgz#257de56ee5afbd20451ac0a75686b6b404257351" - integrity sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg== - dependencies: - "@babel/helper-validator-identifier" "^7.16.7" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/highlight@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" - integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== - dependencies: - "@babel/helper-validator-identifier" "^7.18.6" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7", "@babel/parser@^7.18.5": - version "7.18.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.5.tgz#337062363436a893a2d22faa60be5bb37091c83c" - integrity sha512-YZWVaglMiplo7v8f1oMQ5ZPQr0vn7HPeZXxXWsxXJRjGVrzUFn9OxFQl1sb5wzfootjA/yChhW84BV+383FSOw== - -"@babel/parser@^7.18.6", "@babel/parser@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.9.tgz#f2dde0c682ccc264a9a8595efd030a5cc8fd2539" - integrity sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg== - -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.17.12.tgz#1dca338caaefca368639c9ffb095afbd4d420b1e" - integrity sha512-xCJQXl4EeQ3J9C4yOmpTrtVGmzpm2iSzyxbkZHw7UCnZBftHpF/hpII80uWVyVrc40ytIClHjgWGTG1g/yB+aw== - dependencies: - "@babel/helper-plugin-utils" "^7.17.12" - -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.17.12.tgz#0d498ec8f0374b1e2eb54b9cb2c4c78714c77753" - integrity sha512-/vt0hpIw0x4b6BLKUkwlvEoiGZYYLNZ96CzyHYPbtG2jZGz6LBe7/V+drYrc/d+ovrF9NBi0pmtvmNb/FsWtRQ== - dependencies: - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" - "@babel/plugin-proposal-optional-chaining" "^7.17.12" - -"@babel/plugin-proposal-async-generator-functions@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.17.12.tgz#094a417e31ce7e692d84bab06c8e2a607cbeef03" - integrity sha512-RWVvqD1ooLKP6IqWTA5GyFVX2isGEgC5iFxKzfYOIy/QEFdxYyCybBDtIGjipHpb9bDWHzcqGqFakf+mVmBTdQ== - dependencies: - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/helper-remap-async-to-generator" "^7.16.8" - "@babel/plugin-syntax-async-generators" "^7.8.4" - -"@babel/plugin-proposal-class-properties@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.17.12.tgz#84f65c0cc247d46f40a6da99aadd6438315d80a4" - integrity sha512-U0mI9q8pW5Q9EaTHFPwSVusPMV/DV9Mm8p7csqROFLtIE9rBF5piLqyrBGigftALrBcsBGu4m38JneAe7ZDLXw== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.17.12" - "@babel/helper-plugin-utils" "^7.17.12" - -"@babel/plugin-proposal-class-static-block@^7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.0.tgz#7d02253156e3c3793bdb9f2faac3a1c05f0ba710" - integrity sha512-t+8LsRMMDE74c6sV7KShIw13sqbqd58tlqNrsWoWBTIMw7SVQ0cZ905wLNS/FBCy/3PyooRHLFFlfrUNyyz5lA== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.0" - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - -"@babel/plugin-proposal-dynamic-import@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz#c19c897eaa46b27634a00fee9fb7d829158704b2" - integrity sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - -"@babel/plugin-proposal-export-namespace-from@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.17.12.tgz#b22864ccd662db9606edb2287ea5fd1709f05378" - integrity sha512-j7Ye5EWdwoXOpRmo5QmRyHPsDIe6+u70ZYZrd7uz+ebPYFKfRcLcNu3Ro0vOlJ5zuv8rU7xa+GttNiRzX56snQ== - dependencies: - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - -"@babel/plugin-proposal-json-strings@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.17.12.tgz#f4642951792437233216d8c1af370bb0fbff4664" - integrity sha512-rKJ+rKBoXwLnIn7n6o6fulViHMrOThz99ybH+hKHcOZbnN14VuMnH9fo2eHE69C8pO4uX1Q7t2HYYIDmv8VYkg== - dependencies: - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/plugin-syntax-json-strings" "^7.8.3" - -"@babel/plugin-proposal-logical-assignment-operators@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.17.12.tgz#c64a1bcb2b0a6d0ed2ff674fd120f90ee4b88a23" - integrity sha512-EqFo2s1Z5yy+JeJu7SFfbIUtToJTVlC61/C7WLKDntSw4Sz6JNAIfL7zQ74VvirxpjB5kz/kIx0gCcb+5OEo2Q== - dependencies: - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - -"@babel/plugin-proposal-nullish-coalescing-operator@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.17.12.tgz#1e93079bbc2cbc756f6db6a1925157c4a92b94be" - integrity sha512-ws/g3FSGVzv+VH86+QvgtuJL/kR67xaEIF2x0iPqdDfYW6ra6JF3lKVBkWynRLcNtIC1oCTfDRVxmm2mKzy+ag== - dependencies: - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - -"@babel/plugin-proposal-numeric-separator@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz#d6b69f4af63fb38b6ca2558442a7fb191236eba9" - integrity sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - -"@babel/plugin-proposal-object-rest-spread@^7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.0.tgz#79f2390c892ba2a68ec112eb0d895cfbd11155e8" - integrity sha512-nbTv371eTrFabDfHLElkn9oyf9VG+VKK6WMzhY2o4eHKaG19BToD9947zzGMO6I/Irstx9d8CwX6njPNIAR/yw== - dependencies: - "@babel/compat-data" "^7.17.10" - "@babel/helper-compilation-targets" "^7.17.10" - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.17.12" - -"@babel/plugin-proposal-optional-catch-binding@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz#c623a430674ffc4ab732fd0a0ae7722b67cb74cf" - integrity sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - -"@babel/plugin-proposal-optional-chaining@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.17.12.tgz#f96949e9bacace3a9066323a5cf90cfb9de67174" - integrity sha512-7wigcOs/Z4YWlK7xxjkvaIw84vGhDv/P1dFGQap0nHkc8gFKY/r+hXc8Qzf5k1gY7CvGIcHqAnOagVKJJ1wVOQ== - dependencies: - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - -"@babel/plugin-proposal-private-methods@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.17.12.tgz#c2ca3a80beb7539289938da005ad525a038a819c" - integrity sha512-SllXoxo19HmxhDWm3luPz+cPhtoTSKLJE9PXshsfrOzBqs60QP0r8OaJItrPhAj0d7mZMnNF0Y1UUggCDgMz1A== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.17.12" - "@babel/helper-plugin-utils" "^7.17.12" - -"@babel/plugin-proposal-private-property-in-object@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.17.12.tgz#b02efb7f106d544667d91ae97405a9fd8c93952d" - integrity sha512-/6BtVi57CJfrtDNKfK5b66ydK2J5pXUKBKSPD2G1whamMuEnZWgoOIfO8Vf9F/DoD4izBLD/Au4NMQfruzzykg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-create-class-features-plugin" "^7.17.12" - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - -"@babel/plugin-proposal-unicode-property-regex@^7.17.12", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.17.12.tgz#3dbd7a67bd7f94c8238b394da112d86aaf32ad4d" - integrity sha512-Wb9qLjXf3ZazqXA7IvI7ozqRIXIGPtSo+L5coFmEkhTQK18ao4UDDD0zdTGAarmbLj2urpRwrc6893cu5Bfh0A== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.17.12" - "@babel/helper-plugin-utils" "^7.17.12" - -"@babel/plugin-syntax-async-generators@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-bigint@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" - integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" - integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-class-static-block@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" - integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-dynamic-import@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" - integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-export-namespace-from@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" - integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-syntax-import-assertions@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.17.12.tgz#58096a92b11b2e4e54b24c6a0cc0e5e607abcedd" - integrity sha512-n/loy2zkq9ZEM8tEOwON9wTQSTNDTDEz6NujPtJGLU7qObzT1N4c4YZZf8E6ATB2AjNQg/Ib2AIpO03EZaCehw== - dependencies: - "@babel/helper-plugin-utils" "^7.17.12" - -"@babel/plugin-syntax-import-meta@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" - integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" - integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" - integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-object-rest-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-private-property-in-object@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" - integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" - integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-typescript@^7.17.12", "@babel/plugin-syntax-typescript@^7.7.2": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.17.12.tgz#b54fc3be6de734a56b87508f99d6428b5b605a7b" - integrity sha512-TYY0SXFiO31YXtNg3HtFwNJHjLsAyIIhAhNWkQ5whPPS7HWUFlg9z0Ta4qAQNjQbP1wsSt/oKkmZ/4/WWdMUpw== - dependencies: - "@babel/helper-plugin-utils" "^7.17.12" - -"@babel/plugin-transform-arrow-functions@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.17.12.tgz#dddd783b473b1b1537ef46423e3944ff24898c45" - integrity sha512-PHln3CNi/49V+mza4xMwrg+WGYevSF1oaiXaC2EQfdp4HWlSjRsrDXWJiQBKpP7749u6vQ9mcry2uuFOv5CXvA== - dependencies: - "@babel/helper-plugin-utils" "^7.17.12" - -"@babel/plugin-transform-async-to-generator@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.17.12.tgz#dbe5511e6b01eee1496c944e35cdfe3f58050832" - integrity sha512-J8dbrWIOO3orDzir57NRsjg4uxucvhby0L/KZuGsWDj0g7twWK3g7JhJhOrXtuXiw8MeiSdJ3E0OW9H8LYEzLQ== - dependencies: - "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/helper-remap-async-to-generator" "^7.16.8" - -"@babel/plugin-transform-block-scoped-functions@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz#4d0d57d9632ef6062cdf354bb717102ee042a620" - integrity sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-block-scoping@^7.17.12": - version "7.18.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.4.tgz#7988627b3e9186a13e4d7735dc9c34a056613fb9" - integrity sha512-+Hq10ye+jlvLEogSOtq4mKvtk7qwcUQ1f0Mrueai866C82f844Yom2cttfJdMdqRLTxWpsbfbkIkOIfovyUQXw== - dependencies: - "@babel/helper-plugin-utils" "^7.17.12" - -"@babel/plugin-transform-classes@^7.17.12": - version "7.18.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.4.tgz#51310b812a090b846c784e47087fa6457baef814" - integrity sha512-e42NSG2mlKWgxKUAD9EJJSkZxR67+wZqzNxLSpc51T8tRU5SLFHsPmgYR5yr7sdgX4u+iHA1C5VafJ6AyImV3A== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-environment-visitor" "^7.18.2" - "@babel/helper-function-name" "^7.17.9" - "@babel/helper-optimise-call-expression" "^7.16.7" - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/helper-replace-supers" "^7.18.2" - "@babel/helper-split-export-declaration" "^7.16.7" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.17.12.tgz#bca616a83679698f3258e892ed422546e531387f" - integrity sha512-a7XINeplB5cQUWMg1E/GI1tFz3LfK021IjV1rj1ypE+R7jHm+pIHmHl25VNkZxtx9uuYp7ThGk8fur1HHG7PgQ== - dependencies: - "@babel/helper-plugin-utils" "^7.17.12" - -"@babel/plugin-transform-destructuring@^7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.0.tgz#dc4f92587e291b4daa78aa20cc2d7a63aa11e858" - integrity sha512-Mo69klS79z6KEfrLg/1WkmVnB8javh75HX4pi2btjvlIoasuxilEyjtsQW6XPrubNd7AQy0MMaNIaQE4e7+PQw== - dependencies: - "@babel/helper-plugin-utils" "^7.17.12" - -"@babel/plugin-transform-dotall-regex@^7.16.7", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz#6b2d67686fab15fb6a7fd4bd895d5982cfc81241" - integrity sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-duplicate-keys@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.17.12.tgz#a09aa709a3310013f8e48e0e23bc7ace0f21477c" - integrity sha512-EA5eYFUG6xeerdabina/xIoB95jJ17mAkR8ivx6ZSu9frKShBjpOGZPn511MTDTkiCO+zXnzNczvUM69YSf3Zw== - dependencies: - "@babel/helper-plugin-utils" "^7.17.12" - -"@babel/plugin-transform-exponentiation-operator@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz#efa9862ef97e9e9e5f653f6ddc7b665e8536fe9b" - integrity sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-for-of@^7.18.1": - version "7.18.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.1.tgz#ed14b657e162b72afbbb2b4cdad277bf2bb32036" - integrity sha512-+TTB5XwvJ5hZbO8xvl2H4XaMDOAK57zF4miuC9qQJgysPNEAZZ9Z69rdF5LJkozGdZrjBIUAIyKUWRMmebI7vg== - dependencies: - "@babel/helper-plugin-utils" "^7.17.12" - -"@babel/plugin-transform-function-name@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz#5ab34375c64d61d083d7d2f05c38d90b97ec65cf" - integrity sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA== - dependencies: - "@babel/helper-compilation-targets" "^7.16.7" - "@babel/helper-function-name" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-literals@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.17.12.tgz#97131fbc6bbb261487105b4b3edbf9ebf9c830ae" - integrity sha512-8iRkvaTjJciWycPIZ9k9duu663FT7VrBdNqNgxnVXEFwOIp55JWcZd23VBRySYbnS3PwQ3rGiabJBBBGj5APmQ== - dependencies: - "@babel/helper-plugin-utils" "^7.17.12" - -"@babel/plugin-transform-member-expression-literals@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz#6e5dcf906ef8a098e630149d14c867dd28f92384" - integrity sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-modules-amd@^7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.0.tgz#7ef1002e67e36da3155edc8bf1ac9398064c02ed" - integrity sha512-h8FjOlYmdZwl7Xm2Ug4iX2j7Qy63NANI+NQVWQzv6r25fqgg7k2dZl03p95kvqNclglHs4FZ+isv4p1uXMA+QA== - dependencies: - "@babel/helper-module-transforms" "^7.18.0" - "@babel/helper-plugin-utils" "^7.17.12" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-commonjs@^7.18.2": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.2.tgz#1aa8efa2e2a6e818b6a7f2235fceaf09bdb31e9e" - integrity sha512-f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ== - dependencies: - "@babel/helper-module-transforms" "^7.18.0" - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/helper-simple-access" "^7.18.2" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-systemjs@^7.18.0": - version "7.18.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.5.tgz#87f11c44fbfd3657be000d4897e192d9cb535996" - integrity sha512-SEewrhPpcqMF1V7DhnEbhVJLrC+nnYfe1E0piZMZXBpxi9WvZqWGwpsk7JYP7wPWeqaBh4gyKlBhHJu3uz5g4Q== - dependencies: - "@babel/helper-hoist-variables" "^7.16.7" - "@babel/helper-module-transforms" "^7.18.0" - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/helper-validator-identifier" "^7.16.7" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-umd@^7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.0.tgz#56aac64a2c2a1922341129a4597d1fd5c3ff020f" - integrity sha512-d/zZ8I3BWli1tmROLxXLc9A6YXvGK8egMxHp+E/rRwMh1Kip0AP77VwZae3snEJ33iiWwvNv2+UIIhfalqhzZA== - dependencies: - "@babel/helper-module-transforms" "^7.18.0" - "@babel/helper-plugin-utils" "^7.17.12" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.12.tgz#9c4a5a5966e0434d515f2675c227fd8cc8606931" - integrity sha512-vWoWFM5CKaTeHrdUJ/3SIOTRV+MBVGybOC9mhJkaprGNt5demMymDW24yC74avb915/mIRe3TgNb/d8idvnCRA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.17.12" - "@babel/helper-plugin-utils" "^7.17.12" - -"@babel/plugin-transform-new-target@^7.17.12": - version "7.18.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.5.tgz#8c228c4a07501dd12c95c5f23d1622131cc23931" - integrity sha512-TuRL5uGW4KXU6OsRj+mLp9BM7pO8e7SGNTEokQRRxHFkXYMFiy2jlKSZPFtI/mKORDzciH+hneskcSOp0gU8hg== - dependencies: - "@babel/helper-plugin-utils" "^7.17.12" - -"@babel/plugin-transform-object-super@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz#ac359cf8d32cf4354d27a46867999490b6c32a94" - integrity sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-replace-supers" "^7.16.7" - -"@babel/plugin-transform-parameters@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.17.12.tgz#eb467cd9586ff5ff115a9880d6fdbd4a846b7766" - integrity sha512-6qW4rWo1cyCdq1FkYri7AHpauchbGLXpdwnYsfxFb+KtddHENfsY5JZb35xUwkK5opOLcJ3BNd2l7PhRYGlwIA== - dependencies: - "@babel/helper-plugin-utils" "^7.17.12" - -"@babel/plugin-transform-property-literals@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz#2dadac85155436f22c696c4827730e0fe1057a55" - integrity sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-regenerator@^7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.0.tgz#44274d655eb3f1af3f3a574ba819d3f48caf99d5" - integrity sha512-C8YdRw9uzx25HSIzwA7EM7YP0FhCe5wNvJbZzjVNHHPGVcDJ3Aie+qGYYdS1oVQgn+B3eAIJbWFLrJ4Jipv7nw== - dependencies: - "@babel/helper-plugin-utils" "^7.17.12" - regenerator-transform "^0.15.0" - -"@babel/plugin-transform-reserved-words@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.17.12.tgz#7dbd349f3cdffba751e817cf40ca1386732f652f" - integrity sha512-1KYqwbJV3Co03NIi14uEHW8P50Md6KqFgt0FfpHdK6oyAHQVTosgPuPSiWud1HX0oYJ1hGRRlk0fP87jFpqXZA== - dependencies: - "@babel/helper-plugin-utils" "^7.17.12" - -"@babel/plugin-transform-runtime@^7.18.2": - version "7.18.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.5.tgz#f4d3188ba6a8815793993c71c2c225d0ee1d7743" - integrity sha512-Q17hHxXr2fplrE+5BSC1j1Fo5cOA8YeP8XW3/1paI8MzF/faZGh0MaH1KC4jLAvqLPamQWHB5/B7KqSLY1kuHA== - dependencies: - "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-plugin-utils" "^7.17.12" - babel-plugin-polyfill-corejs2 "^0.3.0" - babel-plugin-polyfill-corejs3 "^0.5.0" - babel-plugin-polyfill-regenerator "^0.3.0" - semver "^6.3.0" - -"@babel/plugin-transform-shorthand-properties@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz#e8549ae4afcf8382f711794c0c7b6b934c5fbd2a" - integrity sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-spread@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.17.12.tgz#c112cad3064299f03ea32afed1d659223935d1f5" - integrity sha512-9pgmuQAtFi3lpNUstvG9nGfk9DkrdmWNp9KeKPFmuZCpEnxRzYlS8JgwPjYj+1AWDOSvoGN0H30p1cBOmT/Svg== - dependencies: - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" - -"@babel/plugin-transform-sticky-regex@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz#c84741d4f4a38072b9a1e2e3fd56d359552e8660" - integrity sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-template-literals@^7.18.2": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.2.tgz#31ed6915721864847c48b656281d0098ea1add28" - integrity sha512-/cmuBVw9sZBGZVOMkpAEaVLwm4JmK2GZ1dFKOGGpMzEHWFmyZZ59lUU0PdRr8YNYeQdNzTDwuxP2X2gzydTc9g== - dependencies: - "@babel/helper-plugin-utils" "^7.17.12" - -"@babel/plugin-transform-typeof-symbol@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.17.12.tgz#0f12f57ac35e98b35b4ed34829948d42bd0e6889" - integrity sha512-Q8y+Jp7ZdtSPXCThB6zjQ74N3lj0f6TDh1Hnf5B+sYlzQ8i5Pjp8gW0My79iekSpT4WnI06blqP6DT0OmaXXmw== - dependencies: - "@babel/helper-plugin-utils" "^7.17.12" - -"@babel/plugin-transform-typescript@^7.17.12": - version "7.18.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.4.tgz#587eaf6a39edb8c06215e550dc939faeadd750bf" - integrity sha512-l4vHuSLUajptpHNEOUDEGsnpl9pfRLsN1XUoDQDD/YBuXTM+v37SHGS+c6n4jdcZy96QtuUuSvZYMLSSsjH8Mw== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.0" - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/plugin-syntax-typescript" "^7.17.12" - -"@babel/plugin-transform-unicode-escapes@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz#da8717de7b3287a2c6d659750c964f302b31ece3" - integrity sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-unicode-regex@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz#0f7aa4a501198976e25e82702574c34cfebe9ef2" - integrity sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/preset-env@^7.18.2": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.18.2.tgz#f47d3000a098617926e674c945d95a28cb90977a" - integrity sha512-PfpdxotV6afmXMU47S08F9ZKIm2bJIQ0YbAAtDfIENX7G1NUAXigLREh69CWDjtgUy7dYn7bsMzkgdtAlmS68Q== - dependencies: - "@babel/compat-data" "^7.17.10" - "@babel/helper-compilation-targets" "^7.18.2" - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/helper-validator-option" "^7.16.7" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.17.12" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.17.12" - "@babel/plugin-proposal-async-generator-functions" "^7.17.12" - "@babel/plugin-proposal-class-properties" "^7.17.12" - "@babel/plugin-proposal-class-static-block" "^7.18.0" - "@babel/plugin-proposal-dynamic-import" "^7.16.7" - "@babel/plugin-proposal-export-namespace-from" "^7.17.12" - "@babel/plugin-proposal-json-strings" "^7.17.12" - "@babel/plugin-proposal-logical-assignment-operators" "^7.17.12" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.17.12" - "@babel/plugin-proposal-numeric-separator" "^7.16.7" - "@babel/plugin-proposal-object-rest-spread" "^7.18.0" - "@babel/plugin-proposal-optional-catch-binding" "^7.16.7" - "@babel/plugin-proposal-optional-chaining" "^7.17.12" - "@babel/plugin-proposal-private-methods" "^7.17.12" - "@babel/plugin-proposal-private-property-in-object" "^7.17.12" - "@babel/plugin-proposal-unicode-property-regex" "^7.17.12" - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-class-properties" "^7.12.13" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-import-assertions" "^7.17.12" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - "@babel/plugin-syntax-top-level-await" "^7.14.5" - "@babel/plugin-transform-arrow-functions" "^7.17.12" - "@babel/plugin-transform-async-to-generator" "^7.17.12" - "@babel/plugin-transform-block-scoped-functions" "^7.16.7" - "@babel/plugin-transform-block-scoping" "^7.17.12" - "@babel/plugin-transform-classes" "^7.17.12" - "@babel/plugin-transform-computed-properties" "^7.17.12" - "@babel/plugin-transform-destructuring" "^7.18.0" - "@babel/plugin-transform-dotall-regex" "^7.16.7" - "@babel/plugin-transform-duplicate-keys" "^7.17.12" - "@babel/plugin-transform-exponentiation-operator" "^7.16.7" - "@babel/plugin-transform-for-of" "^7.18.1" - "@babel/plugin-transform-function-name" "^7.16.7" - "@babel/plugin-transform-literals" "^7.17.12" - "@babel/plugin-transform-member-expression-literals" "^7.16.7" - "@babel/plugin-transform-modules-amd" "^7.18.0" - "@babel/plugin-transform-modules-commonjs" "^7.18.2" - "@babel/plugin-transform-modules-systemjs" "^7.18.0" - "@babel/plugin-transform-modules-umd" "^7.18.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.17.12" - "@babel/plugin-transform-new-target" "^7.17.12" - "@babel/plugin-transform-object-super" "^7.16.7" - "@babel/plugin-transform-parameters" "^7.17.12" - "@babel/plugin-transform-property-literals" "^7.16.7" - "@babel/plugin-transform-regenerator" "^7.18.0" - "@babel/plugin-transform-reserved-words" "^7.17.12" - "@babel/plugin-transform-shorthand-properties" "^7.16.7" - "@babel/plugin-transform-spread" "^7.17.12" - "@babel/plugin-transform-sticky-regex" "^7.16.7" - "@babel/plugin-transform-template-literals" "^7.18.2" - "@babel/plugin-transform-typeof-symbol" "^7.17.12" - "@babel/plugin-transform-unicode-escapes" "^7.16.7" - "@babel/plugin-transform-unicode-regex" "^7.16.7" - "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.18.2" - babel-plugin-polyfill-corejs2 "^0.3.0" - babel-plugin-polyfill-corejs3 "^0.5.0" - babel-plugin-polyfill-regenerator "^0.3.0" - core-js-compat "^3.22.1" - semver "^6.3.0" - -"@babel/preset-modules@^0.1.5": - version "0.1.5" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" - integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" - "@babel/plugin-transform-dotall-regex" "^7.4.4" - "@babel/types" "^7.4.4" - esutils "^2.0.2" - -"@babel/preset-typescript@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.17.12.tgz#40269e0a0084d56fc5731b6c40febe1c9a4a3e8c" - integrity sha512-S1ViF8W2QwAKUGJXxP9NAfNaqGDdEBJKpYkxHf5Yy2C4NPPzXGeR3Lhk7G8xJaaLcFTRfNjVbtbVtm8Gb0mqvg== - dependencies: - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/helper-validator-option" "^7.16.7" - "@babel/plugin-transform-typescript" "^7.17.12" - -"@babel/runtime-corejs3@^7.10.2": - version "7.18.3" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.18.3.tgz#52f0241a31e0ec61a6187530af6227c2846bd60c" - integrity sha512-l4ddFwrc9rnR+EJsHsh+TJ4A35YqQz/UqcjtlX2ov53hlJYG5CxtQmNZxyajwDVmCxwy++rtvGU5HazCK4W41Q== - dependencies: - core-js-pure "^3.20.2" - regenerator-runtime "^0.13.4" - -"@babel/runtime@^7.10.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.18.2", "@babel/runtime@^7.8.4": - version "7.18.3" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.3.tgz#c7b654b57f6f63cf7f8b418ac9ca04408c4579f4" - integrity sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/template@^7.16.7", "@babel/template@^7.3.3": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155" - integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w== - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/parser" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/template@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.6.tgz#1283f4993e00b929d6e2d3c72fdc9168a2977a31" - integrity sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/parser" "^7.18.6" - "@babel/types" "^7.18.6" - -"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.8", "@babel/traverse@^7.18.0", "@babel/traverse@^7.18.2", "@babel/traverse@^7.18.5", "@babel/traverse@^7.7.2": - version "7.18.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.5.tgz#94a8195ad9642801837988ab77f36e992d9a20cd" - integrity sha512-aKXj1KT66sBj0vVzk6rEeAO6Z9aiiQ68wfDgge3nHhA/my6xMM/7HGQUNumKZaoa2qUPQ5whJG9aAifsxUKfLA== - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.18.2" - "@babel/helper-environment-visitor" "^7.18.2" - "@babel/helper-function-name" "^7.17.9" - "@babel/helper-hoist-variables" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/parser" "^7.18.5" - "@babel/types" "^7.18.4" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/traverse@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.9.tgz#deeff3e8f1bad9786874cb2feda7a2d77a904f98" - integrity sha512-LcPAnujXGwBgv3/WHv01pHtb2tihcyW1XuL9wd7jqh1Z8AQkTd+QVjMrMijrln0T7ED3UXLIy36P9Ao7W75rYg== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.18.9" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.18.9" - "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.18.9" - "@babel/types" "^7.18.9" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/types@^7.0.0", "@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.18.0", "@babel/types@^7.18.2", "@babel/types@^7.18.4", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.18.4" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.4.tgz#27eae9b9fd18e9dccc3f9d6ad051336f307be354" - integrity sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw== - dependencies: - "@babel/helper-validator-identifier" "^7.16.7" - to-fast-properties "^2.0.0" - -"@babel/types@^7.18.6", "@babel/types@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.9.tgz#7148d64ba133d8d73a41b3172ac4b83a1452205f" - integrity sha512-WwMLAg2MvJmt/rKEVQBBhIVffMmnilX4oe0sRe7iPOHIGsqpruFHHdrfj4O1CMMtgMtCU4oPafZjDPCRgO57Wg== - dependencies: - "@babel/helper-validator-identifier" "^7.18.6" - to-fast-properties "^2.0.0" - -"@bcoe/v8-coverage@^0.2.3": - version "0.2.3" - resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" - integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== - -"@colors/colors@1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" - integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== - -"@eslint/eslintrc@^0.4.3": - version "0.4.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" - integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== - dependencies: - ajv "^6.12.4" - debug "^4.1.1" - espree "^7.3.0" - globals "^13.9.0" - ignore "^4.0.6" - import-fresh "^3.2.1" - js-yaml "^3.13.1" - minimatch "^3.0.4" - strip-json-comments "^3.1.1" - -"@gar/promisify@^1.0.1": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" - integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== - -"@humanwhocodes/config-array@^0.5.0": - version "0.5.0" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" - integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== - dependencies: - "@humanwhocodes/object-schema" "^1.2.0" - debug "^4.1.1" - minimatch "^3.0.4" - -"@humanwhocodes/object-schema@^1.2.0": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" - integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== - -"@istanbuljs/load-nyc-config@^1.0.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" - integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== - dependencies: - camelcase "^5.3.1" - find-up "^4.1.0" - get-package-type "^0.1.0" - js-yaml "^3.13.1" - resolve-from "^5.0.0" - -"@istanbuljs/schema@^0.1.2": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" - integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== - -"@jest/console@^28.1.1": - version "28.1.1" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-28.1.1.tgz#305f8ca50b6e70413839f54c0e002b60a0f2fd7d" - integrity sha512-0RiUocPVFEm3WRMOStIHbRWllG6iW6E3/gUPnf4lkrVFyXIIDeCe+vlKeYyFOMhB2EPE6FLFCNADSOOQMaqvyA== - dependencies: - "@jest/types" "^28.1.1" - "@types/node" "*" - chalk "^4.0.0" - jest-message-util "^28.1.1" - jest-util "^28.1.1" - slash "^3.0.0" - -"@jest/core@^28.1.1": - version "28.1.1" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-28.1.1.tgz#086830bec6267accf9af5ca76f794858e9f9f092" - integrity sha512-3pYsBoZZ42tXMdlcFeCc/0j9kOlK7MYuXs2B1QbvDgMoW1K9NJ4G/VYvIbMb26iqlkTfPHo7SC2JgjDOk/mxXw== - dependencies: - "@jest/console" "^28.1.1" - "@jest/reporters" "^28.1.1" - "@jest/test-result" "^28.1.1" - "@jest/transform" "^28.1.1" - "@jest/types" "^28.1.1" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - ci-info "^3.2.0" - exit "^0.1.2" - graceful-fs "^4.2.9" - jest-changed-files "^28.0.2" - jest-config "^28.1.1" - jest-haste-map "^28.1.1" - jest-message-util "^28.1.1" - jest-regex-util "^28.0.2" - jest-resolve "^28.1.1" - jest-resolve-dependencies "^28.1.1" - jest-runner "^28.1.1" - jest-runtime "^28.1.1" - jest-snapshot "^28.1.1" - jest-util "^28.1.1" - jest-validate "^28.1.1" - jest-watcher "^28.1.1" - micromatch "^4.0.4" - pretty-format "^28.1.1" - rimraf "^3.0.0" - slash "^3.0.0" - strip-ansi "^6.0.0" - -"@jest/environment@^28.1.1": - version "28.1.1" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-28.1.1.tgz#c4cbf85283278d768f816ebd1a258ea6f9e39d4f" - integrity sha512-9auVQ2GzQ7nrU+lAr8KyY838YahElTX9HVjbQPPS2XjlxQ+na18G113OoBhyBGBtD6ZnO/SrUy5WR8EzOj1/Uw== - dependencies: - "@jest/fake-timers" "^28.1.1" - "@jest/types" "^28.1.1" - "@types/node" "*" - jest-mock "^28.1.1" - -"@jest/expect-utils@^28.1.1": - version "28.1.1" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-28.1.1.tgz#d84c346025b9f6f3886d02c48a6177e2b0360587" - integrity sha512-n/ghlvdhCdMI/hTcnn4qV57kQuV9OTsZzH1TTCVARANKhl6hXJqLKUkwX69ftMGpsbpt96SsDD8n8LD2d9+FRw== - dependencies: - jest-get-type "^28.0.2" - -"@jest/expect@^28.1.1": - version "28.1.1" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-28.1.1.tgz#ea4fcc8504b45835029221c0dc357c622a761326" - integrity sha512-/+tQprrFoT6lfkMj4mW/mUIfAmmk/+iQPmg7mLDIFOf2lyf7EBHaS+x3RbeR0VZVMe55IvX7QRoT/2aK3AuUXg== - dependencies: - expect "^28.1.1" - jest-snapshot "^28.1.1" - -"@jest/fake-timers@^28.1.1": - version "28.1.1" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-28.1.1.tgz#47ce33296ab9d680c76076d51ddbe65ceb3337f1" - integrity sha512-BY/3+TyLs5+q87rGWrGUY5f8e8uC3LsVHS9Diz8+FV3ARXL4sNnkLlIB8dvDvRrp+LUCGM+DLqlsYubizGUjIA== - dependencies: - "@jest/types" "^28.1.1" - "@sinonjs/fake-timers" "^9.1.1" - "@types/node" "*" - jest-message-util "^28.1.1" - jest-mock "^28.1.1" - jest-util "^28.1.1" - -"@jest/globals@^28.1.1": - version "28.1.1" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-28.1.1.tgz#c0a7977f85e26279cc090d9adcdf82b8a34c4061" - integrity sha512-dEgl/6v7ToB4vXItdvcltJBgny0xBE6xy6IYQrPJAJggdEinGxCDMivNv7sFzPcTITGquXD6UJwYxfJ/5ZwDSg== - dependencies: - "@jest/environment" "^28.1.1" - "@jest/expect" "^28.1.1" - "@jest/types" "^28.1.1" - -"@jest/reporters@^28.1.1": - version "28.1.1" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-28.1.1.tgz#9389f4bb3cce4d9b586f6195f83c79cd2a1c8662" - integrity sha512-597Zj4D4d88sZrzM4atEGLuO7SdA/YrOv9SRXHXRNC+/FwPCWxZhBAEzhXoiJzfRwn8zes/EjS8Lo6DouGN5Gg== - dependencies: - "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^28.1.1" - "@jest/test-result" "^28.1.1" - "@jest/transform" "^28.1.1" - "@jest/types" "^28.1.1" - "@jridgewell/trace-mapping" "^0.3.7" - "@types/node" "*" - chalk "^4.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.3" - graceful-fs "^4.2.9" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^5.1.0" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.1.3" - jest-message-util "^28.1.1" - jest-util "^28.1.1" - jest-worker "^28.1.1" - slash "^3.0.0" - string-length "^4.0.1" - strip-ansi "^6.0.0" - terminal-link "^2.0.0" - v8-to-istanbul "^9.0.0" - -"@jest/schemas@^28.0.2": - version "28.0.2" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-28.0.2.tgz#08c30df6a8d07eafea0aef9fb222c5e26d72e613" - integrity sha512-YVDJZjd4izeTDkij00vHHAymNXQ6WWsdChFRK86qck6Jpr3DCL5W3Is3vslviRlP+bLuMYRLbdp98amMvqudhA== - dependencies: - "@sinclair/typebox" "^0.23.3" - -"@jest/source-map@^28.0.2": - version "28.0.2" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-28.0.2.tgz#914546f4410b67b1d42c262a1da7e0406b52dc90" - integrity sha512-Y9dxC8ZpN3kImkk0LkK5XCEneYMAXlZ8m5bflmSL5vrwyeUpJfentacCUg6fOb8NOpOO7hz2+l37MV77T6BFPw== - dependencies: - "@jridgewell/trace-mapping" "^0.3.7" - callsites "^3.0.0" - graceful-fs "^4.2.9" - -"@jest/test-result@^28.1.1": - version "28.1.1" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-28.1.1.tgz#c6f18d1bbb01aa88925dd687872a75f8414b317a" - integrity sha512-hPmkugBktqL6rRzwWAtp1JtYT4VHwv8OQ+9lE5Gymj6dHzubI/oJHMUpPOt8NrdVWSrz9S7bHjJUmv2ggFoUNQ== - dependencies: - "@jest/console" "^28.1.1" - "@jest/types" "^28.1.1" - "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" - -"@jest/test-sequencer@^28.1.1": - version "28.1.1" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-28.1.1.tgz#f594ee2331df75000afe0d1ae3237630ecec732e" - integrity sha512-nuL+dNSVMcWB7OOtgb0EGH5AjO4UBCt68SLP08rwmC+iRhyuJWS9MtZ/MpipxFwKAlHFftbMsydXqWre8B0+XA== - dependencies: - "@jest/test-result" "^28.1.1" - graceful-fs "^4.2.9" - jest-haste-map "^28.1.1" - slash "^3.0.0" - -"@jest/transform@^28.1.1": - version "28.1.1" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-28.1.1.tgz#83541f2a3f612077c8501f49cc4e205d4e4a6b27" - integrity sha512-PkfaTUuvjUarl1EDr5ZQcCA++oXkFCP9QFUkG0yVKVmNObjhrqDy0kbMpMebfHWm3CCDHjYNem9eUSH8suVNHQ== - dependencies: - "@babel/core" "^7.11.6" - "@jest/types" "^28.1.1" - "@jridgewell/trace-mapping" "^0.3.7" - babel-plugin-istanbul "^6.1.1" - chalk "^4.0.0" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.2.9" - jest-haste-map "^28.1.1" - jest-regex-util "^28.0.2" - jest-util "^28.1.1" - micromatch "^4.0.4" - pirates "^4.0.4" - slash "^3.0.0" - write-file-atomic "^4.0.1" - -"@jest/types@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" - integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^15.0.0" - chalk "^4.0.0" - -"@jest/types@^28.1.1": - version "28.1.1" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-28.1.1.tgz#d059bbc80e6da6eda9f081f293299348bd78ee0b" - integrity sha512-vRXVqSg1VhDnB8bWcmvLzmg0Bt9CRKVgHPXqYwvWMX3TvAjeO+nRuK6+VdTKCtWOvYlmkF/HqNAL/z+N3B53Kw== - dependencies: - "@jest/schemas" "^28.0.2" - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^17.0.8" - chalk "^4.0.0" - -"@jridgewell/gen-mapping@^0.1.0": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" - integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== - dependencies: - "@jridgewell/set-array" "^1.0.0" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@jridgewell/gen-mapping@^0.3.0": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz#cf92a983c83466b8c0ce9124fadeaf09f7c66ea9" - integrity sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg== - dependencies: - "@jridgewell/set-array" "^1.0.0" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" - -"@jridgewell/gen-mapping@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" - integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== - dependencies: - "@jridgewell/set-array" "^1.0.1" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" - -"@jridgewell/resolve-uri@^3.0.3": - version "3.0.7" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz#30cd49820a962aff48c8fffc5cd760151fca61fe" - integrity sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA== - -"@jridgewell/set-array@^1.0.0": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.1.tgz#36a6acc93987adcf0ba50c66908bd0b70de8afea" - integrity sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ== - -"@jridgewell/set-array@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" - integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== - -"@jridgewell/source-map@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.2.tgz#f45351aaed4527a298512ec72f81040c998580fb" - integrity sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw== - dependencies: - "@jridgewell/gen-mapping" "^0.3.0" - "@jridgewell/trace-mapping" "^0.3.9" - -"@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.13" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz#b6461fb0c2964356c469e115f504c95ad97ab88c" - integrity sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w== - -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.7", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.13" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz#dcfe3e95f224c8fe97a87a5235defec999aa92ea" - integrity sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@mapbox/node-pre-gyp@^1.0.0": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.9.tgz#09a8781a3a036151cdebbe8719d6f8b25d4058bc" - integrity sha512-aDF3S3rK9Q2gey/WAttUlISduDItz5BU3306M9Eyv6/oS40aMprnopshtlKTykxRNIBEZuRMaZAnbrQ4QtKGyw== - dependencies: - detect-libc "^2.0.0" - https-proxy-agent "^5.0.0" - make-dir "^3.1.0" - node-fetch "^2.6.7" - nopt "^5.0.0" - npmlog "^5.0.1" - rimraf "^3.0.2" - semver "^7.3.5" - tar "^6.1.11" - -"@mdn/browser-compat-data@^4.1.16": - version "4.2.1" - resolved "https://registry.yarnpkg.com/@mdn/browser-compat-data/-/browser-compat-data-4.2.1.tgz#1fead437f3957ceebe2e8c3f46beccdb9bc575b8" - integrity sha512-EWUguj2kd7ldmrF9F+vI5hUOralPd+sdsUnYbRy33vZTuZkduC1shE9TtEMEjAQwyfyMb4ole5KtjF8MsnQOlA== - -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.3": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - -"@npmcli/fs@^1.0.0": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.1.1.tgz#72f719fe935e687c56a4faecf3c03d06ba593257" - integrity sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ== - dependencies: - "@gar/promisify" "^1.0.1" - semver "^7.3.5" - -"@npmcli/move-file@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" - integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== - dependencies: - mkdirp "^1.0.4" - rimraf "^3.0.2" - -"@playwright/test@^1.22.2": - version "1.22.2" - resolved "https://registry.yarnpkg.com/@playwright/test/-/test-1.22.2.tgz#b848f25f8918140c2d0bae8e9227a40198f2dd4a" - integrity sha512-cCl96BEBGPtptFz7C2FOSN3PrTnJ3rPpENe+gYCMx4GNNDlN4tmo2D89y13feGKTMMAIVrXfSQ/UmaQKLy1XLA== - dependencies: - "@types/node" "*" - playwright-core "1.22.2" - -"@rollup/plugin-alias@^3.1.9": - version "3.1.9" - resolved "https://registry.yarnpkg.com/@rollup/plugin-alias/-/plugin-alias-3.1.9.tgz#a5d267548fe48441f34be8323fb64d1d4a1b3fdf" - integrity sha512-QI5fsEvm9bDzt32k39wpOwZhVzRcL5ydcffUHMyLVaVaLeC70I8TJZ17F1z1eMoLu4E/UOcH9BWVkKpIKdrfiw== - dependencies: - slash "^3.0.0" - -"@rollup/plugin-babel@^5.3.1": - version "5.3.1" - resolved "https://registry.yarnpkg.com/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz#04bc0608f4aa4b2e4b1aebf284344d0f68fda283" - integrity sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q== - dependencies: - "@babel/helper-module-imports" "^7.10.4" - "@rollup/pluginutils" "^3.1.0" - -"@rollup/plugin-commonjs@^22.0.0": - version "22.0.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-22.0.0.tgz#f4d87016e2fbf187a593ab9f46626fe05b59e8bd" - integrity sha512-Ktvf2j+bAO+30awhbYoCaXpBcyPmJbaEUYClQns/+6SNCYFURbvBiNbWgHITEsIgDDWCDUclWRKEuf8cwZCFoQ== - dependencies: - "@rollup/pluginutils" "^3.1.0" - commondir "^1.0.1" - estree-walker "^2.0.1" - glob "^7.1.6" - is-reference "^1.2.1" - magic-string "^0.25.7" - resolve "^1.17.0" - -"@rollup/plugin-html@^0.2.0": - version "0.2.4" - resolved "https://registry.yarnpkg.com/@rollup/plugin-html/-/plugin-html-0.2.4.tgz#11e0c1255b2986a71a858c8cbc6a6313d0b46c1e" - integrity sha512-x0qpNXxbmGa9Jnl4OX89AORPe2T/a4DqNK69BGRnEdaPKq6MdiUXSTam/eCkF5DxkQGcRcPq0L4vzr/E3q4mVA== - -"@rollup/plugin-node-resolve@^13.3.0": - version "13.3.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz#da1c5c5ce8316cef96a2f823d111c1e4e498801c" - integrity sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw== - dependencies: - "@rollup/pluginutils" "^3.1.0" - "@types/resolve" "1.17.1" - deepmerge "^4.2.2" - is-builtin-module "^3.1.0" - is-module "^1.0.0" - resolve "^1.19.0" - -"@rollup/pluginutils@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" - integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== - dependencies: - "@types/estree" "0.0.39" - estree-walker "^1.0.1" - picomatch "^2.2.2" - -"@rollup/pluginutils@^4.1.0", "@rollup/pluginutils@^4.1.1", "@rollup/pluginutils@^4.2.1": - version "4.2.1" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz#e6c6c3aba0744edce3fb2074922d3776c0af2a6d" - integrity sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ== - dependencies: - estree-walker "^2.0.1" - picomatch "^2.2.2" - -"@sinclair/typebox@^0.23.3": - version "0.23.5" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.23.5.tgz#93f7b9f4e3285a7a9ade7557d9a8d36809cbc47d" - integrity sha512-AFBVi/iT4g20DHoujvMH1aEDn8fGJh4xsRGCP6d8RpLPMqsNPvW01Jcn0QysXTsg++/xj25NmJsGyH9xug/wKg== - -"@sinonjs/commons@^1.7.0": - version "1.8.3" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" - integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== - dependencies: - type-detect "4.0.8" - -"@sinonjs/fake-timers@^9.1.1": - version "9.1.2" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz#4eaab737fab77332ab132d396a3c0d364bd0ea8c" - integrity sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw== - dependencies: - "@sinonjs/commons" "^1.7.0" - -"@testing-library/dom@^7.26.3": - version "7.31.2" - resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-7.31.2.tgz#df361db38f5212b88555068ab8119f5d841a8c4a" - integrity sha512-3UqjCpey6HiTZT92vODYLPxTBWlM8ZOOjr3LX5F37/VRipW2M1kX6I/Cm4VXzteZqfGfagg8yXywpcOgQBlNsQ== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/runtime" "^7.12.5" - "@types/aria-query" "^4.2.0" - aria-query "^4.2.2" - chalk "^4.1.0" - dom-accessibility-api "^0.5.6" - lz-string "^1.4.4" - pretty-format "^26.6.2" - -"@tootallnate/once@1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" - integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== - -"@tootallnate/once@2": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" - integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== - -"@types/aria-query@^4.2.0": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-4.2.2.tgz#ed4e0ad92306a704f9fb132a0cfcf77486dbe2bc" - integrity sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig== - -"@types/babel__core@^7.1.14": - version "7.1.19" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.19.tgz#7b497495b7d1b4812bdb9d02804d0576f43ee460" - integrity sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" - -"@types/babel__generator@*": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7" - integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== - dependencies: - "@babel/types" "^7.0.0" - -"@types/babel__template@*": - version "7.4.1" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" - integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - -"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.17.1" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.17.1.tgz#1a0e73e8c28c7e832656db372b779bfd2ef37314" - integrity sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA== - dependencies: - "@babel/types" "^7.3.0" - -"@types/cssnano@^4.0.0": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@types/cssnano/-/cssnano-4.0.1.tgz#67fa912753d80973a016e7684a47fedf338aacff" - integrity sha512-hGOroxRTBkYl5gSBRJOffhV4+io+Y2bFX1VP7LgKEVHJt/LPPJaWUIuDAz74Vlp7l7hCDZfaDi7iPxwNwuVA4Q== - dependencies: - postcss "5 - 7" - -"@types/eslint-visitor-keys@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#1ee30d79544ca84d68d4b3cdb0af4f205663dd2d" - integrity sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag== - -"@types/estree@*": - version "0.0.51" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" - integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== - -"@types/estree@0.0.39": - version "0.0.39" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" - integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== - -"@types/glob@^7.1.1": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" - integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== - dependencies: - "@types/minimatch" "*" - "@types/node" "*" - -"@types/graceful-fs@^4.1.3": - version "4.1.5" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" - integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== - dependencies: - "@types/node" "*" - -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" - integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== - -"@types/istanbul-lib-report@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" - integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== - dependencies: - "@types/istanbul-lib-coverage" "*" - -"@types/istanbul-reports@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" - integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== - dependencies: - "@types/istanbul-lib-report" "*" - -"@types/jest@^26.0.24": - version "26.0.24" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.24.tgz#943d11976b16739185913a1936e0de0c4a7d595a" - integrity sha512-E/X5Vib8BWqZNRlDxj9vYXhsDwPYbPINqKF9BsnSoon4RQ0D9moEuLD8txgyypFLH7J4+Lho9Nr/c8H0Fi+17w== - dependencies: - jest-diff "^26.0.0" - pretty-format "^26.0.0" - -"@types/jsdom@^16.2.4": - version "16.2.14" - resolved "https://registry.yarnpkg.com/@types/jsdom/-/jsdom-16.2.14.tgz#26fe9da6a8870715b154bb84cd3b2e53433d8720" - integrity sha512-6BAy1xXEmMuHeAJ4Fv4yXKwBDTGTOseExKE3OaHiNycdHdZw59KfYzrt0DkDluvwmik1HRt6QS7bImxUmpSy+w== - dependencies: - "@types/node" "*" - "@types/parse5" "*" - "@types/tough-cookie" "*" - -"@types/json-schema@^7.0.3", "@types/json-schema@^7.0.7": - version "7.0.11" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" - integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== - -"@types/json5@^0.0.29": - version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== - -"@types/minimatch@*": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" - integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== - -"@types/minimist@^1.2.0": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" - integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== - -"@types/node@*": - version "18.0.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.0.0.tgz#67c7b724e1bcdd7a8821ce0d5ee184d3b4dd525a" - integrity sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA== - -"@types/node@^17.0.36": - version "17.0.45" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.45.tgz#2c0fafd78705e7a18b7906b5201a522719dc5190" - integrity sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw== - -"@types/normalize-package-data@^2.4.0": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" - integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== - -"@types/object-path@^0.11.1": - version "0.11.1" - resolved "https://registry.yarnpkg.com/@types/object-path/-/object-path-0.11.1.tgz#eea5b357518597fc9c0a067ea3147f599fc1514f" - integrity sha512-219LSCO9HPcoXcRTC6DbCs0FRhZgBnEMzf16RRqkT40WbkKx3mOeQuz3e2XqbfhOz/AHfbru0kzB1n1RCAsIIg== - -"@types/parse-json@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" - integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== - -"@types/parse5@*": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@types/parse5/-/parse5-6.0.3.tgz#705bb349e789efa06f43f128cef51240753424cb" - integrity sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g== - -"@types/prettier@^2.1.5": - version "2.6.3" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.6.3.tgz#68ada76827b0010d0db071f739314fa429943d0a" - integrity sha512-ymZk3LEC/fsut+/Q5qejp6R9O1rMxz3XaRHDV6kX8MrGAhOSPqVARbDi+EZvInBpw+BnCX3TD240byVkOfQsHg== - -"@types/q@^1.5.1": - version "1.5.5" - resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.5.tgz#75a2a8e7d8ab4b230414505d92335d1dcb53a6df" - integrity sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ== - -"@types/resolve@1.17.1": - version "1.17.1" - resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" - integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw== - dependencies: - "@types/node" "*" - -"@types/semver@^7.3.9": - version "7.3.10" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.10.tgz#5f19ee40cbeff87d916eedc8c2bfe2305d957f73" - integrity sha512-zsv3fsC7S84NN6nPK06u79oWgrPVd0NvOyqgghV1haPaFcVxIrP4DLomRwGAXk0ui4HZA7mOcSFL98sMVW9viw== - -"@types/stack-utils@^2.0.0": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" - integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== - -"@types/tough-cookie@*": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.2.tgz#6286b4c7228d58ab7866d19716f3696e03a09397" - integrity sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw== - -"@types/ua-parser-js@^0.7.36": - version "0.7.36" - resolved "https://registry.yarnpkg.com/@types/ua-parser-js/-/ua-parser-js-0.7.36.tgz#9bd0b47f26b5a3151be21ba4ce9f5fa457c5f190" - integrity sha512-N1rW+njavs70y2cApeIw1vLMYXRwfBy+7trgavGuuTfOd7j1Yh7QTRc/yqsPl6ncokt72ZXuxEU0PiCp9bSwNQ== - -"@types/yargs-parser@*": - version "21.0.0" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" - integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== - -"@types/yargs@^15.0.0": - version "15.0.14" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.14.tgz#26d821ddb89e70492160b66d10a0eb6df8f6fb06" - integrity sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ== - dependencies: - "@types/yargs-parser" "*" - -"@types/yargs@^17.0.8": - version "17.0.10" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.10.tgz#591522fce85d8739bca7b8bb90d048e4478d186a" - integrity sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA== - dependencies: - "@types/yargs-parser" "*" - -"@typescript-eslint/eslint-plugin@^3.7.0": - version "3.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.10.1.tgz#7e061338a1383f59edc204c605899f93dc2e2c8f" - integrity sha512-PQg0emRtzZFWq6PxBcdxRH3QIQiyFO3WCVpRL3fgj5oQS3CDs3AeAKfv4DxNhzn8ITdNJGJ4D3Qw8eAJf3lXeQ== - dependencies: - "@typescript-eslint/experimental-utils" "3.10.1" - debug "^4.1.1" - functional-red-black-tree "^1.0.1" - regexpp "^3.0.0" - semver "^7.3.2" - tsutils "^3.17.1" - -"@typescript-eslint/experimental-utils@3.10.1": - version "3.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-3.10.1.tgz#e179ffc81a80ebcae2ea04e0332f8b251345a686" - integrity sha512-DewqIgscDzmAfd5nOGe4zm6Bl7PKtMG2Ad0KG8CUZAHlXfAKTF9Ol5PXhiMh39yRL2ChRH1cuuUGOcVyyrhQIw== - dependencies: - "@types/json-schema" "^7.0.3" - "@typescript-eslint/types" "3.10.1" - "@typescript-eslint/typescript-estree" "3.10.1" - eslint-scope "^5.0.0" - eslint-utils "^2.0.0" - -"@typescript-eslint/experimental-utils@^4.0.1": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz#6f2a786a4209fa2222989e9380b5331b2810f7fd" - integrity sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q== - dependencies: - "@types/json-schema" "^7.0.7" - "@typescript-eslint/scope-manager" "4.33.0" - "@typescript-eslint/types" "4.33.0" - "@typescript-eslint/typescript-estree" "4.33.0" - eslint-scope "^5.1.1" - eslint-utils "^3.0.0" - -"@typescript-eslint/parser@^3.7.0": - version "3.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-3.10.1.tgz#1883858e83e8b442627e1ac6f408925211155467" - integrity sha512-Ug1RcWcrJP02hmtaXVS3axPPTTPnZjupqhgj+NnZ6BCkwSImWk/283347+x9wN+lqOdK9Eo3vsyiyDHgsmiEJw== - dependencies: - "@types/eslint-visitor-keys" "^1.0.0" - "@typescript-eslint/experimental-utils" "3.10.1" - "@typescript-eslint/types" "3.10.1" - "@typescript-eslint/typescript-estree" "3.10.1" - eslint-visitor-keys "^1.1.0" - -"@typescript-eslint/scope-manager@4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz#d38e49280d983e8772e29121cf8c6e9221f280a3" - integrity sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ== - dependencies: - "@typescript-eslint/types" "4.33.0" - "@typescript-eslint/visitor-keys" "4.33.0" - -"@typescript-eslint/types@3.10.1": - version "3.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-3.10.1.tgz#1d7463fa7c32d8a23ab508a803ca2fe26e758727" - integrity sha512-+3+FCUJIahE9q0lDi1WleYzjCwJs5hIsbugIgnbB+dSCYUxl8L6PwmsyOPFZde2hc1DlTo/xnkOgiTLSyAbHiQ== - -"@typescript-eslint/types@4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.33.0.tgz#a1e59036a3b53ae8430ceebf2a919dc7f9af6d72" - integrity sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ== - -"@typescript-eslint/typescript-estree@3.10.1": - version "3.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-3.10.1.tgz#fd0061cc38add4fad45136d654408569f365b853" - integrity sha512-QbcXOuq6WYvnB3XPsZpIwztBoquEYLXh2MtwVU+kO8jgYCiv4G5xrSP/1wg4tkvrEE+esZVquIPX/dxPlePk1w== - dependencies: - "@typescript-eslint/types" "3.10.1" - "@typescript-eslint/visitor-keys" "3.10.1" - debug "^4.1.1" - glob "^7.1.6" - is-glob "^4.0.1" - lodash "^4.17.15" - semver "^7.3.2" - tsutils "^3.17.1" - -"@typescript-eslint/typescript-estree@4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz#0dfb51c2908f68c5c08d82aefeaf166a17c24609" - integrity sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA== - dependencies: - "@typescript-eslint/types" "4.33.0" - "@typescript-eslint/visitor-keys" "4.33.0" - debug "^4.3.1" - globby "^11.0.3" - is-glob "^4.0.1" - semver "^7.3.5" - tsutils "^3.21.0" - -"@typescript-eslint/visitor-keys@3.10.1": - version "3.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-3.10.1.tgz#cd4274773e3eb63b2e870ac602274487ecd1e931" - integrity sha512-9JgC82AaQeglebjZMgYR5wgmfUdUc+EitGUUMW8u2nDckaeimzW+VsoLV6FoimPv2id3VQzfjwBxEMVz08ameQ== - dependencies: - eslint-visitor-keys "^1.1.0" - -"@typescript-eslint/visitor-keys@4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz#2a22f77a41604289b7a186586e9ec48ca92ef1dd" - integrity sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg== - dependencies: - "@typescript-eslint/types" "4.33.0" - eslint-visitor-keys "^2.0.0" - -"@wessberg/stringutil@^1.0.19": - version "1.0.19" - resolved "https://registry.yarnpkg.com/@wessberg/stringutil/-/stringutil-1.0.19.tgz#baadcb6f4471fe2d46462a7d7a8294e4b45b29ad" - integrity sha512-9AZHVXWlpN8Cn9k5BC/O0Dzb9E9xfEMXzYrNunwvkUTvuK7xgQPVRZpLo+jWCOZ5r8oBa8NIrHuPEu1hzbb6bg== - -abab@^2.0.5, abab@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" - integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== - -abbrev@1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== - -acorn-globals@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" - integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== - dependencies: - acorn "^7.1.1" - acorn-walk "^7.1.1" - -acorn-jsx@^5.3.1: - version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - -acorn-walk@^7.1.1: - version "7.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" - integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== - -acorn@^7.1.1, acorn@^7.4.0: - version "7.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" - integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== - -acorn@^8.5.0: - version "8.7.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30" - integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A== - -agent-base@6, agent-base@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== - dependencies: - debug "4" - -agentkeepalive@^4.1.3: - version "4.2.1" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.2.1.tgz#a7975cbb9f83b367f06c90cc51ff28fe7d499717" - integrity sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA== - dependencies: - debug "^4.1.0" - depd "^1.1.2" - humanize-ms "^1.2.1" - -aggregate-error@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" - integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== - dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" - -ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ajv@^8.0.1: - version "8.11.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" - integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== - dependencies: - fast-deep-equal "^3.1.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.2.2" - -alphanum-sort@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" - integrity sha512-0FcBfdcmaumGPQ0qPn7Q5qTgz/ooXgIyp1rf8ik5bGX8mpE2YHjC0P/eyQvxu1GURYQgq9ozf2mteQ5ZD9YiyQ== - -ansi-colors@^4.1.1, ansi-colors@^4.1.3: - version "4.1.3" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" - integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== - -ansi-escapes@^4.2.1: - version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" - -ansi-regex@^5.0.0, ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" - integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== - -anymatch@^3.0.3, anymatch@~3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -append-transform@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-2.0.0.tgz#99d9d29c7b38391e6f428d28ce136551f0b77e12" - integrity sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg== - dependencies: - default-require-extensions "^3.0.0" - -"aproba@^1.0.3 || ^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" - integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== - -archy@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" - integrity sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw== - -are-we-there-yet@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz#372e0e7bd279d8e94c653aaa1f67200884bf3e1c" - integrity sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw== - dependencies: - delegates "^1.0.0" - readable-stream "^3.6.0" - -are-we-there-yet@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-3.0.0.tgz#ba20bd6b553e31d62fc8c31bd23d22b95734390d" - integrity sha512-0GWpv50YSOcLXaN6/FAKY3vfRbllXWV2xvfA/oKJF8pzFhWXPV+yjhJXDBbjscDYowv7Yw1A3uigpzn5iEGTyw== - dependencies: - delegates "^1.0.0" - readable-stream "^3.6.0" - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -aria-query@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-4.2.2.tgz#0d2ca6c9aceb56b8977e9fed6aed7e15bbd2f83b" - integrity sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA== - dependencies: - "@babel/runtime" "^7.10.2" - "@babel/runtime-corejs3" "^7.10.2" - -array-includes@^3.1.4, array-includes@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.5.tgz#2c320010db8d31031fd2a5f6b3bbd4b1aad31bdb" - integrity sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.19.5" - get-intrinsic "^1.1.1" - is-string "^1.0.7" - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -array.prototype.flat@^1.2.5: - version "1.3.0" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz#0b0c1567bf57b38b56b4c97b8aa72ab45e4adc7b" - integrity sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.2" - es-shim-unscopables "^1.0.0" - -array.prototype.flatmap@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz#a7e8ed4225f4788a70cd910abcf0791e76a5534f" - integrity sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.2" - es-shim-unscopables "^1.0.0" - -array.prototype.reduce@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.4.tgz#8167e80089f78bff70a99e20bd4201d4663b0a6f" - integrity sha512-WnM+AjG/DvLRLo4DDl+r+SvCzYtD2Jd9oeBYMcEaI7t3fFrHY9M53/wdLcTvmZNQ70IU6Htj0emFkZ5TS+lrdw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.2" - es-array-method-boxes-properly "^1.0.0" - is-string "^1.0.7" - -arrify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== - -asn1@~0.2.3: - version "0.2.6" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" - integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== - -ast-types-flow@^0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" - integrity sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag== - -astral-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" - integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== - -async-foreach@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" - integrity sha512-VUeSMD8nEGBWaZK4lizI1sf3yEC7pnAQ/mrI7pC2fBz2s/tq5jWWEngTwaf0Gruu/OoXRGLGg1XFqpYBiGTYJA== - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== - -at-least-node@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" - integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== - -autoprefixer@^10.4.7: - version "10.4.7" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.7.tgz#1db8d195f41a52ca5069b7593be167618edbbedf" - integrity sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA== - dependencies: - browserslist "^4.20.3" - caniuse-lite "^1.0.30001335" - fraction.js "^4.2.0" - normalize-range "^0.1.2" - picocolors "^1.0.0" - postcss-value-parser "^4.2.0" - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== - -aws4@^1.8.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" - integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== - -axe-core@^4.3.5: - version "4.4.2" - resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.4.2.tgz#dcf7fb6dea866166c3eab33d68208afe4d5f670c" - integrity sha512-LVAaGp/wkkgYJcjmHsoKx4juT1aQvJyPcW09MLCjVTh3V2cc6PnyempiLMNH5iMdfIX/zdbjUx2KDjMLCTdPeA== - -axobject-query@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be" - integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA== - -babel-jest@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-28.1.1.tgz#2a3a4ae50964695b2d694ccffe4bec537c5a3586" - integrity sha512-MEt0263viUdAkTq5D7upHPNxvt4n9uLUGa6pPz3WviNBMtOmStb1lIXS3QobnoqM+qnH+vr4EKlvhe8QcmxIYw== - dependencies: - "@jest/transform" "^28.1.1" - "@types/babel__core" "^7.1.14" - babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^28.1.1" - chalk "^4.0.0" - graceful-fs "^4.2.9" - slash "^3.0.0" - -babel-plugin-dynamic-import-node@^2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" - integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== - dependencies: - object.assign "^4.1.0" - -babel-plugin-istanbul@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" - integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@istanbuljs/load-nyc-config" "^1.0.0" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^5.0.4" - test-exclude "^6.0.0" - -babel-plugin-jest-hoist@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.1.tgz#5e055cdcc47894f28341f87f5e35aad2df680b11" - integrity sha512-NovGCy5Hn25uMJSAU8FaHqzs13cFoOI4lhIujiepssjCKRsAo3TA734RDWSGxuFTsUJXerYOqQQodlxgmtqbzw== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.1.14" - "@types/babel__traverse" "^7.0.6" - -babel-plugin-polyfill-corejs2@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz#440f1b70ccfaabc6b676d196239b138f8a2cfba5" - integrity sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w== - dependencies: - "@babel/compat-data" "^7.13.11" - "@babel/helper-define-polyfill-provider" "^0.3.1" - semver "^6.1.1" - -babel-plugin-polyfill-corejs3@^0.5.0: - version "0.5.2" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz#aabe4b2fa04a6e038b688c5e55d44e78cd3a5f72" - integrity sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.1" - core-js-compat "^3.21.0" - -babel-plugin-polyfill-regenerator@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz#2c0678ea47c75c8cc2fbb1852278d8fb68233990" - integrity sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.1" - -babel-preset-current-node-syntax@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" - integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== - dependencies: - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-bigint" "^7.8.3" - "@babel/plugin-syntax-class-properties" "^7.8.3" - "@babel/plugin-syntax-import-meta" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-top-level-await" "^7.8.3" - -babel-preset-jest@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-28.1.1.tgz#5b6e5e69f963eb2d70f739c607b8f723c0ee75e4" - integrity sha512-FCq9Oud0ReTeWtcneYf/48981aTfXYuB9gbU4rBNNJVBSQ6ssv7E6v/qvbBxtOWwZFXjLZwpg+W3q7J6vhH25g== - dependencies: - babel-plugin-jest-hoist "^28.1.1" - babel-preset-current-node-syntax "^1.0.0" - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== - dependencies: - tweetnacl "^0.14.3" - -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - -boolbase@^1.0.0, boolbase@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^3.0.2, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -brotli-size@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/brotli-size/-/brotli-size-4.0.0.tgz#a05ee3faad3c0e700a2f2da826ba6b4d76e69e5e" - integrity sha512-uA9fOtlTRC0iqKfzff1W34DXUA3GyVqbUaeo3Rw3d4gd1eavKVCETXrn3NzO74W+UVkG3UHu8WxUi+XvKI/huA== - dependencies: - duplexer "0.1.1" - -browser-process-hrtime@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" - integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== - -browserslist-generator@^1.0.66: - version "1.0.66" - resolved "https://registry.yarnpkg.com/browserslist-generator/-/browserslist-generator-1.0.66.tgz#14f3f2cbf09e9a82e7c53a62f8cc18ce6c35eca3" - integrity sha512-aFDax4Qzh29DdyhHQBD2Yu2L5OvaDnvYFMbmpLrLwwaNK4H6dHEhC/Nxv93/+mfAA+a/t94ln0P2JZvHO6LZDA== - dependencies: - "@mdn/browser-compat-data" "^4.1.16" - "@types/object-path" "^0.11.1" - "@types/semver" "^7.3.9" - "@types/ua-parser-js" "^0.7.36" - browserslist "4.20.2" - caniuse-lite "^1.0.30001328" - isbot "3.4.5" - object-path "^0.11.8" - semver "^7.3.7" - ua-parser-js "^1.0.2" - -browserslist@4.20.2: - version "4.20.2" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.2.tgz#567b41508757ecd904dab4d1c646c612cd3d4f88" - integrity sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA== - dependencies: - caniuse-lite "^1.0.30001317" - electron-to-chromium "^1.4.84" - escalade "^3.1.1" - node-releases "^2.0.2" - picocolors "^1.0.0" - -browserslist@^4.0.0, browserslist@^4.20.2, browserslist@^4.20.4: - version "4.21.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.0.tgz#7ab19572361a140ecd1e023e2c1ed95edda0cefe" - integrity sha512-UQxE0DIhRB5z/zDz9iA03BOfxaN2+GQdBYH/2WrSIWEUrnpzTPJbhqt+umq6r3acaPRTW1FNTkrcp0PXgtFkvA== - dependencies: - caniuse-lite "^1.0.30001358" - electron-to-chromium "^1.4.164" - node-releases "^2.0.5" - update-browserslist-db "^1.0.0" - -browserslist@^4.20.3: - version "4.21.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.1.tgz#c9b9b0a54c7607e8dc3e01a0d311727188011a00" - integrity sha512-Nq8MFCSrnJXSc88yliwlzQe3qNe3VntIjhsArW9IJOEPSHNx23FalwApUVbzAWABLhYJJ7y8AynWI/XM8OdfjQ== - dependencies: - caniuse-lite "^1.0.30001359" - electron-to-chromium "^1.4.172" - node-releases "^2.0.5" - update-browserslist-db "^1.0.4" - -bser@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" - integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== - dependencies: - node-int64 "^0.4.0" - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -bufferutil@^4.0.1: - version "4.0.6" - resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.6.tgz#ebd6c67c7922a0e902f053e5d8be5ec850e48433" - integrity sha512-jduaYOYtnio4aIAyc6UbvPCVcgq7nYpVnucyxr6eCYg/Woad9Hf/oxxBRDnGGjPfjUm6j5O/uBWhIu4iLebFaw== - dependencies: - node-gyp-build "^4.3.0" - -builtin-modules@^3.0.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" - integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== - -cacache@^15.2.0: - version "15.3.0" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.3.0.tgz#dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb" - integrity sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ== - dependencies: - "@npmcli/fs" "^1.0.0" - "@npmcli/move-file" "^1.0.1" - chownr "^2.0.0" - fs-minipass "^2.0.0" - glob "^7.1.4" - infer-owner "^1.0.4" - lru-cache "^6.0.0" - minipass "^3.1.1" - minipass-collect "^1.0.2" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.2" - mkdirp "^1.0.3" - p-map "^4.0.0" - promise-inflight "^1.0.1" - rimraf "^3.0.2" - ssri "^8.0.1" - tar "^6.0.2" - unique-filename "^1.1.1" - -caching-transform@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/caching-transform/-/caching-transform-4.0.0.tgz#00d297a4206d71e2163c39eaffa8157ac0651f0f" - integrity sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA== - dependencies: - hasha "^5.0.0" - make-dir "^3.0.0" - package-hash "^4.0.0" - write-file-atomic "^3.0.0" - -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -caller-callsite@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" - integrity sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ== - dependencies: - callsites "^2.0.0" - -caller-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" - integrity sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A== - dependencies: - caller-callsite "^2.0.0" - -callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" - integrity sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ== - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camelcase-keys@^6.2.2: - version "6.2.2" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" - integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== - dependencies: - camelcase "^5.3.1" - map-obj "^4.0.0" - quick-lru "^4.0.1" - -camelcase@^5.0.0, camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -camelcase@^6.2.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - -caniuse-api@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" - integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== - dependencies: - browserslist "^4.0.0" - caniuse-lite "^1.0.0" - lodash.memoize "^4.1.2" - lodash.uniq "^4.5.0" - -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001317, caniuse-lite@^1.0.30001328, caniuse-lite@^1.0.30001358: - version "1.0.30001358" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001358.tgz#473d35dabf5e448b463095cab7924e96ccfb8c00" - integrity sha512-hvp8PSRymk85R20bsDra7ZTCpSVGN/PAz9pSAjPSjKC+rNmnUk5vCRgJwiTT/O4feQ/yu/drvZYpKxxhbFuChw== - -caniuse-lite@^1.0.30001335, caniuse-lite@^1.0.30001359: - version "1.0.30001363" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001363.tgz#26bec2d606924ba318235944e1193304ea7c4f15" - integrity sha512-HpQhpzTGGPVMnCjIomjt+jvyUu8vNFo3TaDiZ/RcoTrlOq/5+tC8zHdsbgFB6MxmaY+jCpsH09aD80Bb4Ow3Sg== - -canvas@^2.6.1: - version "2.9.1" - resolved "https://registry.yarnpkg.com/canvas/-/canvas-2.9.1.tgz#58ec841cba36cef0675bc7a74ebd1561f0b476b0" - integrity sha512-vSQti1uG/2gjv3x6QLOZw7TctfufaerTWbVe+NSduHxxLGB+qf3kFgQ6n66DSnuoINtVUjrLLIK2R+lxrBG07A== - dependencies: - "@mapbox/node-pre-gyp" "^1.0.0" - nan "^2.15.0" - simple-get "^3.0.3" - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== - -chalk@^2.0.0, chalk@^2.4.1: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -char-regex@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" - integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== - -chokidar@^3.5.0: - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - -chownr@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" - integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== - -ci-info@^3.2.0: - version "3.3.2" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.2.tgz#6d2967ffa407466481c6c90b6e16b3098f080128" - integrity sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg== - -cjs-module-lexer@^1.0.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" - integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== - -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== - -cli-table3@^0.6.1: - version "0.6.2" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.2.tgz#aaf5df9d8b5bf12634dc8b3040806a0c07120d2a" - integrity sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw== - dependencies: - string-width "^4.2.0" - optionalDependencies: - "@colors/colors" "1.5.0" - -cliui@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" - integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^6.2.0" - -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== - -coa@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" - integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== - dependencies: - "@types/q" "^1.5.1" - chalk "^2.4.1" - q "^1.1.2" - -collect-v8-coverage@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" - integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== - -color-convert@^1.9.0, color-convert@^1.9.3: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -color-name@^1.0.0, color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -color-string@^1.6.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" - integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - -color-support@^1.1.2, color-support@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" - integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== - -color@^3.0.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" - integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== - dependencies: - color-convert "^1.9.3" - color-string "^1.6.0" - -combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -commander@^2.20.0: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== - -compatfactory@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/compatfactory/-/compatfactory-1.0.1.tgz#a5940f1d734b86c02bb818a67a412d4c306ccaf4" - integrity sha512-hR9u0HSZTKDNNchPtMHg6myeNx0XO+av7UZIJPsi4rPALJBHi/W5Mbwi19hC/xm6y3JkYpxVYjTqnSGsU5X/iw== - dependencies: - helpertypes "^0.0.18" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -confusing-browser-globals@^1.0.10: - version "1.0.11" - resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz#ae40e9b57cdd3915408a2805ebd3a5585608dc81" - integrity sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA== - -console-control-strings@^1.0.0, console-control-strings@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== - -convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" - integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== - dependencies: - safe-buffer "~5.1.1" - -core-js-compat@^3.21.0, core-js-compat@^3.22.1: - version "3.23.2" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.23.2.tgz#5cbf8a9c8812d665392845b85ae91b5bcc7b615c" - integrity sha512-lrgZvxFwbQp9v7E8mX0rJ+JX7Bvh4eGULZXA1IAyjlsnWvCdw6TF8Tg6xtaSUSJMrSrMaLdpmk+V54LM1dvfOA== - dependencies: - browserslist "^4.20.4" - semver "7.0.0" - -core-js-pure@^3.20.2: - version "3.23.2" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.23.2.tgz#efe5e486469c5ed2d088d76e973eb12e74a930e7" - integrity sha512-t6u7H4Ff/yZNk+zqTr74UjCcZ3k8ApBryeLLV4rYQd9aF3gqmjjGjjR44ENfeBMH8VVvSynIjAJ0mUuFhzQtrA== - -core-js@^3.6.5: - version "3.23.2" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.23.2.tgz#e07a60ca8b14dd129cabdc3d2551baf5a01c76f0" - integrity sha512-ELJOWxNrJfOH/WK4VJ3Qd+fOqZuOuDNDJz0xG6Bt4mGg2eO/UT9CljCrbqDGovjLKUrGajEEBcoTOc0w+yBYeQ== - -core-util-is@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== - -core-util-is@~1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== - -cosmiconfig@^5.0.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" - integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== - dependencies: - import-fresh "^2.0.0" - is-directory "^0.3.1" - js-yaml "^3.13.1" - parse-json "^4.0.0" - -cosmiconfig@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" - integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== - dependencies: - "@types/parse-json" "^4.0.0" - import-fresh "^3.2.1" - parse-json "^5.0.0" - path-type "^4.0.0" - yaml "^1.10.0" - -cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -crosspath@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/crosspath/-/crosspath-2.0.0.tgz#5714f30c6541cc776103754954602ce0d25f126c" - integrity sha512-ju88BYCQ2uvjO2bR+SsgLSTwTSctU+6Vp2ePbKPgSCZyy4MWZxYsT738DlKVRE5utUjobjPRm1MkTYKJxCmpTA== - dependencies: - "@types/node" "^17.0.36" - -css-color-names@0.0.4, css-color-names@^0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" - integrity sha512-zj5D7X1U2h2zsXOAM8EyUREBnnts6H+Jm+d1M2DbiQQcUtnqgQsMrdo8JW9R80YFUmIdBZeMu5wvYM7hcgWP/Q== - -css-declaration-sorter@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" - integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== - dependencies: - postcss "^7.0.1" - timsort "^0.3.0" - -css-select-base-adapter@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" - integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== - -css-select@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" - integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== - dependencies: - boolbase "^1.0.0" - css-what "^3.2.1" - domutils "^1.7.0" - nth-check "^1.0.2" - -css-tree@1.0.0-alpha.37: - version "1.0.0-alpha.37" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" - integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== - dependencies: - mdn-data "2.0.4" - source-map "^0.6.1" - -css-tree@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" - integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== - dependencies: - mdn-data "2.0.14" - source-map "^0.6.1" - -css-what@^3.2.1: - version "3.4.2" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" - integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -cssnano-preset-default@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz#920622b1fc1e95a34e8838203f1397a504f2d3ff" - integrity sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ== - dependencies: - css-declaration-sorter "^4.0.1" - cssnano-util-raw-cache "^4.0.1" - postcss "^7.0.0" - postcss-calc "^7.0.1" - postcss-colormin "^4.0.3" - postcss-convert-values "^4.0.1" - postcss-discard-comments "^4.0.2" - postcss-discard-duplicates "^4.0.2" - postcss-discard-empty "^4.0.1" - postcss-discard-overridden "^4.0.1" - postcss-merge-longhand "^4.0.11" - postcss-merge-rules "^4.0.3" - postcss-minify-font-values "^4.0.2" - postcss-minify-gradients "^4.0.2" - postcss-minify-params "^4.0.2" - postcss-minify-selectors "^4.0.2" - postcss-normalize-charset "^4.0.1" - postcss-normalize-display-values "^4.0.2" - postcss-normalize-positions "^4.0.2" - postcss-normalize-repeat-style "^4.0.2" - postcss-normalize-string "^4.0.2" - postcss-normalize-timing-functions "^4.0.2" - postcss-normalize-unicode "^4.0.1" - postcss-normalize-url "^4.0.1" - postcss-normalize-whitespace "^4.0.2" - postcss-ordered-values "^4.1.2" - postcss-reduce-initial "^4.0.3" - postcss-reduce-transforms "^4.0.2" - postcss-svgo "^4.0.3" - postcss-unique-selectors "^4.0.1" - -cssnano-util-get-arguments@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" - integrity sha512-6RIcwmV3/cBMG8Aj5gucQRsJb4vv4I4rn6YjPbVWd5+Pn/fuG+YseGvXGk00XLkoZkaj31QOD7vMUpNPC4FIuw== - -cssnano-util-get-match@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" - integrity sha512-JPMZ1TSMRUPVIqEalIBNoBtAYbi8okvcFns4O0YIhcdGebeYZK7dMyHJiQ6GqNBA9kE0Hym4Aqym5rPdsV/4Cw== - -cssnano-util-raw-cache@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" - integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== - dependencies: - postcss "^7.0.0" - -cssnano-util-same-parent@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" - integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== - -cssnano@^4.1.10: - version "4.1.11" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.11.tgz#c7b5f5b81da269cb1fd982cb960c1200910c9a99" - integrity sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g== - dependencies: - cosmiconfig "^5.0.0" - cssnano-preset-default "^4.0.8" - is-resolvable "^1.0.0" - postcss "^7.0.0" - -csso@^4.0.2: - version "4.2.0" - resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" - integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== - dependencies: - css-tree "^1.1.2" - -cssom@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.5.0.tgz#d254fa92cd8b6fbd83811b9fbaed34663cc17c36" - integrity sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw== - -cssom@~0.3.6: - version "0.3.8" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" - integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== - -cssstyle@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" - integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== - dependencies: - cssom "~0.3.6" - -damerau-levenshtein@^1.0.7: - version "1.0.8" - resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" - integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== - dependencies: - assert-plus "^1.0.0" - -data-urls@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-3.0.2.tgz#9cf24a477ae22bcef5cd5f6f0bfbc1d2d3be9143" - integrity sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ== - dependencies: - abab "^2.0.6" - whatwg-mimetype "^3.0.0" - whatwg-url "^11.0.0" - -debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.3: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -debug@^2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@^3.2.7: - version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - -decamelize-keys@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" - integrity sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg== - dependencies: - decamelize "^1.1.0" - map-obj "^1.0.0" - -decamelize@^1.1.0, decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== - -decimal.js@^10.3.1: - version "10.3.1" - resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.3.1.tgz#d8c3a444a9c6774ba60ca6ad7261c3a94fd5e783" - integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ== - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og== - -decompress-response@^4.2.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986" - integrity sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw== - dependencies: - mimic-response "^2.0.0" - -dedent@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" - integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== - -deep-is@^0.1.3, deep-is@~0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - -deepmerge@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" - integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== - -default-require-extensions@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-3.0.0.tgz#e03f93aac9b2b6443fc52e5e4a37b3ad9ad8df96" - integrity sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg== - dependencies: - strip-bom "^4.0.0" - -define-properties@^1.1.3, define-properties@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" - integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== - dependencies: - has-property-descriptors "^1.0.0" - object-keys "^1.1.1" - -del@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/del/-/del-5.1.0.tgz#d9487c94e367410e6eff2925ee58c0c84a75b3a7" - integrity sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA== - dependencies: - globby "^10.0.1" - graceful-fs "^4.2.2" - is-glob "^4.0.1" - is-path-cwd "^2.2.0" - is-path-inside "^3.0.1" - p-map "^3.0.0" - rimraf "^3.0.0" - slash "^3.0.0" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== - -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== - -depd@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== - -detect-libc@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.1.tgz#e1897aa88fa6ad197862937fbc0441ef352ee0cd" - integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w== - -detect-newline@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" - integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== - -diff-sequences@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" - integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== - -diff-sequences@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-28.1.1.tgz#9989dc731266dc2903457a70e996f3a041913ac6" - integrity sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw== - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" - integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== - dependencies: - esutils "^2.0.2" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - -dom-accessibility-api@^0.5.6: - version "0.5.14" - resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.14.tgz#56082f71b1dc7aac69d83c4285eef39c15d93f56" - integrity sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg== - -dom-serializer@0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" - integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== - dependencies: - domelementtype "^2.0.1" - entities "^2.0.0" - -domelementtype@1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" - integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== - -domelementtype@^2.0.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" - integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== - -domexception@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/domexception/-/domexception-4.0.0.tgz#4ad1be56ccadc86fc76d033353999a8037d03673" - integrity sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw== - dependencies: - webidl-conversions "^7.0.0" - -domutils@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" - integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== - dependencies: - dom-serializer "0" - domelementtype "1" - -dot-prop@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" - integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== - dependencies: - is-obj "^2.0.0" - -duplexer@0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" - integrity sha512-sxNZ+ljy+RA1maXoUReeqBBpBC6RLKmg5ewzV+x+mSETmWNoKdZN6vcQjpFROemza23hGFskJtFNoUWUaQ+R4Q== - -duplexer@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" - integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -electron-to-chromium@^1.4.164, electron-to-chromium@^1.4.84: - version "1.4.167" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.167.tgz#72424aebc85df12c5331d37b1bcfd1ae01322c55" - integrity sha512-lPHuHXBwpkr4RcfaZBKm6TKOWG/1N9mVggUpP4fY3l1JIUU2x4fkM8928smYdZ5lF+6KCTAxo1aK9JmqT+X71Q== - -electron-to-chromium@^1.4.172: - version "1.4.185" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.185.tgz#3432d7944f1c5fe20664bb45d9cced2151405ce2" - integrity sha512-9kV/isoOGpKkBt04yYNaSWIBn3187Q5VZRtoReq8oz5NY/A4XmU6cAoqgQlDp7kKJCZMRjWZ8nsQyxfpFHvfyw== - -emittery@^0.10.2: - version "0.10.2" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.10.2.tgz#902eec8aedb8c41938c46e9385e9db7e03182933" - integrity sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emoji-regex@^9.2.2: - version "9.2.2" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" - integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== - -encoding@^0.1.12: - version "0.1.13" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" - integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== - dependencies: - iconv-lite "^0.6.2" - -enquirer@^2.3.5: - version "2.3.6" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" - integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== - dependencies: - ansi-colors "^4.1.1" - -entities@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" - integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== - -env-paths@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" - integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== - -err-code@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" - integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.2, es-abstract@^1.19.5, es-abstract@^1.20.1: - version "1.20.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.1.tgz#027292cd6ef44bd12b1913b828116f54787d1814" - integrity sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA== - dependencies: - call-bind "^1.0.2" - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - function.prototype.name "^1.1.5" - get-intrinsic "^1.1.1" - get-symbol-description "^1.0.0" - has "^1.0.3" - has-property-descriptors "^1.0.0" - has-symbols "^1.0.3" - internal-slot "^1.0.3" - is-callable "^1.2.4" - is-negative-zero "^2.0.2" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - is-string "^1.0.7" - is-weakref "^1.0.2" - object-inspect "^1.12.0" - object-keys "^1.1.1" - object.assign "^4.1.2" - regexp.prototype.flags "^1.4.3" - string.prototype.trimend "^1.0.5" - string.prototype.trimstart "^1.0.5" - unbox-primitive "^1.0.2" - -es-array-method-boxes-properly@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" - integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== - -es-module-lexer@^0.9.3: - version "0.9.3" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" - integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== - -es-shim-unscopables@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" - integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== - dependencies: - has "^1.0.3" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -es6-error@^4.0.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" - integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== - -esbuild-android-64@0.14.47: - version "0.14.47" - resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.47.tgz#ef95b42c67bcf4268c869153fa3ad1466c4cea6b" - integrity sha512-R13Bd9+tqLVFndncMHssZrPWe6/0Kpv2/dt4aA69soX4PRxlzsVpCvoJeFE8sOEoeVEiBkI0myjlkDodXlHa0g== - -esbuild-android-arm64@0.14.47: - version "0.14.47" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.47.tgz#4ebd7ce9fb250b4695faa3ee46fd3b0754ecd9e6" - integrity sha512-OkwOjj7ts4lBp/TL6hdd8HftIzOy/pdtbrNA4+0oVWgGG64HrdVzAF5gxtJufAPOsEjkyh1oIYvKAUinKKQRSQ== - -esbuild-darwin-64@0.14.47: - version "0.14.47" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.47.tgz#e0da6c244f497192f951807f003f6a423ed23188" - integrity sha512-R6oaW0y5/u6Eccti/TS6c/2c1xYTb1izwK3gajJwi4vIfNs1s8B1dQzI1UiC9T61YovOQVuePDcfqHLT3mUZJA== - -esbuild-darwin-arm64@0.14.47: - version "0.14.47" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.47.tgz#cd40fd49a672fca581ed202834239dfe540a9028" - integrity sha512-seCmearlQyvdvM/noz1L9+qblC5vcBrhUaOoLEDDoLInF/VQ9IkobGiLlyTPYP5dW1YD4LXhtBgOyevoIHGGnw== - -esbuild-freebsd-64@0.14.47: - version "0.14.47" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.47.tgz#8da6a14c095b29c01fc8087a16cb7906debc2d67" - integrity sha512-ZH8K2Q8/Ux5kXXvQMDsJcxvkIwut69KVrYQhza/ptkW50DC089bCVrJZZ3sKzIoOx+YPTrmsZvqeZERjyYrlvQ== - -esbuild-freebsd-arm64@0.14.47: - version "0.14.47" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.47.tgz#ad31f9c92817ff8f33fd253af7ab5122dc1b83f6" - integrity sha512-ZJMQAJQsIOhn3XTm7MPQfCzEu5b9STNC+s90zMWe2afy9EwnHV7Ov7ohEMv2lyWlc2pjqLW8QJnz2r0KZmeAEQ== - -esbuild-linux-32@0.14.47: - version "0.14.47" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.47.tgz#de085e4db2e692ea30c71208ccc23fdcf5196c58" - integrity sha512-FxZOCKoEDPRYvq300lsWCTv1kcHgiiZfNrPtEhFAiqD7QZaXrad8LxyJ8fXGcWzIFzRiYZVtB3ttvITBvAFhKw== - -esbuild-linux-64@0.14.47: - version "0.14.47" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.47.tgz#2a9321bbccb01f01b04cebfcfccbabeba3658ba1" - integrity sha512-nFNOk9vWVfvWYF9YNYksZptgQAdstnDCMtR6m42l5Wfugbzu11VpMCY9XrD4yFxvPo9zmzcoUL/88y0lfJZJJw== - -esbuild-linux-arm64@0.14.47: - version "0.14.47" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.47.tgz#b9da7b6fc4b0ca7a13363a0c5b7bb927e4bc535a" - integrity sha512-ywfme6HVrhWcevzmsufjd4iT3PxTfCX9HOdxA7Hd+/ZM23Y9nXeb+vG6AyA6jgq/JovkcqRHcL9XwRNpWG6XRw== - -esbuild-linux-arm@0.14.47: - version "0.14.47" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.47.tgz#56fec2a09b9561c337059d4af53625142aded853" - integrity sha512-ZGE1Bqg/gPRXrBpgpvH81tQHpiaGxa8c9Rx/XOylkIl2ypLuOcawXEAo8ls+5DFCcRGt/o3sV+PzpAFZobOsmA== - -esbuild-linux-mips64le@0.14.47: - version "0.14.47" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.47.tgz#9db21561f8f22ed79ef2aedb7bbef082b46cf823" - integrity sha512-mg3D8YndZ1LvUiEdDYR3OsmeyAew4MA/dvaEJxvyygahWmpv1SlEEnhEZlhPokjsUMfRagzsEF/d/2XF+kTQGg== - -esbuild-linux-ppc64le@0.14.47: - version "0.14.47" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.47.tgz#dc3a3da321222b11e96e50efafec9d2de408198b" - integrity sha512-WER+f3+szmnZiWoK6AsrTKGoJoErG2LlauSmk73LEZFQ/iWC+KhhDsOkn1xBUpzXWsxN9THmQFltLoaFEH8F8w== - -esbuild-linux-riscv64@0.14.47: - version "0.14.47" - resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.47.tgz#9bd6dcd3dca6c0357084ecd06e1d2d4bf105335f" - integrity sha512-1fI6bP3A3rvI9BsaaXbMoaOjLE3lVkJtLxsgLHqlBhLlBVY7UqffWBvkrX/9zfPhhVMd9ZRFiaqXnB1T7BsL2g== - -esbuild-linux-s390x@0.14.47: - version "0.14.47" - resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.47.tgz#a458af939b52f2cd32fc561410d441a51f69d41f" - integrity sha512-eZrWzy0xFAhki1CWRGnhsHVz7IlSKX6yT2tj2Eg8lhAwlRE5E96Hsb0M1mPSE1dHGpt1QVwwVivXIAacF/G6mw== - -esbuild-netbsd-64@0.14.47: - version "0.14.47" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.47.tgz#6388e785d7e7e4420cb01348d7483ab511b16aa8" - integrity sha512-Qjdjr+KQQVH5Q2Q1r6HBYswFTToPpss3gqCiSw2Fpq/ua8+eXSQyAMG+UvULPqXceOwpnPo4smyZyHdlkcPppQ== - -esbuild-openbsd-64@0.14.47: - version "0.14.47" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.47.tgz#309af806db561aa886c445344d1aacab850dbdc5" - integrity sha512-QpgN8ofL7B9z8g5zZqJE+eFvD1LehRlxr25PBkjyyasakm4599iroUpaj96rdqRlO2ShuyqwJdr+oNqWwTUmQw== - -esbuild-sunos-64@0.14.47: - version "0.14.47" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.47.tgz#3f19612dcdb89ba6c65283a7ff6e16f8afbf8aaa" - integrity sha512-uOeSgLUwukLioAJOiGYm3kNl+1wJjgJA8R671GYgcPgCx7QR73zfvYqXFFcIO93/nBdIbt5hd8RItqbbf3HtAQ== - -esbuild-windows-32@0.14.47: - version "0.14.47" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.47.tgz#a92d279c8458d5dc319abcfeb30aa49e8f2e6f7f" - integrity sha512-H0fWsLTp2WBfKLBgwYT4OTfFly4Im/8B5f3ojDv1Kx//kiubVY0IQunP2Koc/fr/0wI7hj3IiBDbSrmKlrNgLQ== - -esbuild-windows-64@0.14.47: - version "0.14.47" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.47.tgz#2564c3fcf0c23d701edb71af8c52d3be4cec5f8a" - integrity sha512-/Pk5jIEH34T68r8PweKRi77W49KwanZ8X6lr3vDAtOlH5EumPE4pBHqkCUdELanvsT14yMXLQ/C/8XPi1pAtkQ== - -esbuild-windows-arm64@0.14.47: - version "0.14.47" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.47.tgz#86d9db1a22d83360f726ac5fba41c2f625db6878" - integrity sha512-HFSW2lnp62fl86/qPQlqw6asIwCnEsEoNIL1h2uVMgakddf+vUuMcCbtUY1i8sst7KkgHrVKCJQB33YhhOweCQ== - -esbuild@^0.14.27, esbuild@^0.14.42: - version "0.14.47" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.47.tgz#0d6415f6bd8eb9e73a58f7f9ae04c5276cda0e4d" - integrity sha512-wI4ZiIfFxpkuxB8ju4MHrGwGLyp1+awEHAHVpx6w7a+1pmYIq8T9FGEVVwFo0iFierDoMj++Xq69GXWYn2EiwA== - optionalDependencies: - esbuild-android-64 "0.14.47" - esbuild-android-arm64 "0.14.47" - esbuild-darwin-64 "0.14.47" - esbuild-darwin-arm64 "0.14.47" - esbuild-freebsd-64 "0.14.47" - esbuild-freebsd-arm64 "0.14.47" - esbuild-linux-32 "0.14.47" - esbuild-linux-64 "0.14.47" - esbuild-linux-arm "0.14.47" - esbuild-linux-arm64 "0.14.47" - esbuild-linux-mips64le "0.14.47" - esbuild-linux-ppc64le "0.14.47" - esbuild-linux-riscv64 "0.14.47" - esbuild-linux-s390x "0.14.47" - esbuild-netbsd-64 "0.14.47" - esbuild-openbsd-64 "0.14.47" - esbuild-sunos-64 "0.14.47" - esbuild-windows-32 "0.14.47" - esbuild-windows-64 "0.14.47" - esbuild-windows-arm64 "0.14.47" - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -escodegen@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" - integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== - dependencies: - esprima "^4.0.1" - estraverse "^5.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - -eslint-config-airbnb-base@^14.2.1: - version "14.2.1" - resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.1.tgz#8a2eb38455dc5a312550193b319cdaeef042cd1e" - integrity sha512-GOrQyDtVEc1Xy20U7vsB2yAoB4nBlfH5HZJeatRXHleO+OS5Ot+MWij4Dpltw4/DyIkqUfqz1epfhVR5XWWQPA== - dependencies: - confusing-browser-globals "^1.0.10" - object.assign "^4.1.2" - object.entries "^1.1.2" - -eslint-config-airbnb@^18.2.0: - version "18.2.1" - resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-18.2.1.tgz#b7fe2b42f9f8173e825b73c8014b592e449c98d9" - integrity sha512-glZNDEZ36VdlZWoxn/bUR1r/sdFKPd1mHPbqUtkctgNG4yT2DLLtJ3D+yCV+jzZCc2V1nBVkmdknOJBZ5Hc0fg== - dependencies: - eslint-config-airbnb-base "^14.2.1" - object.assign "^4.1.2" - object.entries "^1.1.2" - -eslint-config-prettier@^8.5.0: - version "8.5.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz#5a81680ec934beca02c7b1a61cf8ca34b66feab1" - integrity sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q== - -eslint-import-resolver-node@^0.3.6: - version "0.3.6" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd" - integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw== - dependencies: - debug "^3.2.7" - resolve "^1.20.0" - -eslint-module-utils@^2.7.3: - version "2.7.3" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz#ad7e3a10552fdd0642e1e55292781bd6e34876ee" - integrity sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ== - dependencies: - debug "^3.2.7" - find-up "^2.1.0" - -eslint-plugin-import@^2.22.0: - version "2.26.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz#f812dc47be4f2b72b478a021605a59fc6fe8b88b" - integrity sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA== - dependencies: - array-includes "^3.1.4" - array.prototype.flat "^1.2.5" - debug "^2.6.9" - doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.6" - eslint-module-utils "^2.7.3" - has "^1.0.3" - is-core-module "^2.8.1" - is-glob "^4.0.3" - minimatch "^3.1.2" - object.values "^1.1.5" - resolve "^1.22.0" - tsconfig-paths "^3.14.1" - -eslint-plugin-jest@^24.3.6: - version "24.7.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-24.7.0.tgz#206ac0833841e59e375170b15f8d0955219c4889" - integrity sha512-wUxdF2bAZiYSKBclsUMrYHH6WxiBreNjyDxbRv345TIvPeoCEgPNEn3Sa+ZrSqsf1Dl9SqqSREXMHExlMMu1DA== - dependencies: - "@typescript-eslint/experimental-utils" "^4.0.1" - -eslint-plugin-json@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-json/-/eslint-plugin-json-2.1.2.tgz#5bc1c221984583c0c5ff21c488386e8263a6bbb7" - integrity sha512-isM/fsUxS4wN1+nLsWoV5T4gLgBQnsql3nMTr8u+cEls1bL8rRQO5CP5GtxJxaOfbcKqnz401styw+H/P+e78Q== - dependencies: - lodash "^4.17.19" - vscode-json-languageservice "^3.7.0" - -eslint-plugin-jsx-a11y@^6.3.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz#cdbf2df901040ca140b6ec14715c988889c2a6d8" - integrity sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g== - dependencies: - "@babel/runtime" "^7.16.3" - aria-query "^4.2.2" - array-includes "^3.1.4" - ast-types-flow "^0.0.7" - axe-core "^4.3.5" - axobject-query "^2.2.0" - damerau-levenshtein "^1.0.7" - emoji-regex "^9.2.2" - has "^1.0.3" - jsx-ast-utils "^3.2.1" - language-tags "^1.0.5" - minimatch "^3.0.4" - -eslint-plugin-prettier@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz#8b99d1e4b8b24a762472b4567992023619cb98e0" - integrity sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ== - dependencies: - prettier-linter-helpers "^1.0.0" - -eslint-plugin-react-hooks@^4.0.8: - version "4.6.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3" - integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== - -eslint-plugin-react@^7.20.3: - version "7.30.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.30.0.tgz#8e7b1b2934b8426ac067a0febade1b13bd7064e3" - integrity sha512-RgwH7hjW48BleKsYyHK5vUAvxtE9SMPDKmcPRQgtRCYaZA0XQPt5FSkrU3nhz5ifzMZcA8opwmRJ2cmOO8tr5A== - dependencies: - array-includes "^3.1.5" - array.prototype.flatmap "^1.3.0" - doctrine "^2.1.0" - estraverse "^5.3.0" - jsx-ast-utils "^2.4.1 || ^3.0.0" - minimatch "^3.1.2" - object.entries "^1.1.5" - object.fromentries "^2.0.5" - object.hasown "^1.1.1" - object.values "^1.1.5" - prop-types "^15.8.1" - resolve "^2.0.0-next.3" - semver "^6.3.0" - string.prototype.matchall "^4.0.7" - -eslint-scope@^5.0.0, eslint-scope@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - -eslint-utils@^2.0.0, eslint-utils@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" - integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== - dependencies: - eslint-visitor-keys "^1.1.0" - -eslint-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" - integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== - dependencies: - eslint-visitor-keys "^2.0.0" - -eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" - integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== - -eslint-visitor-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" - integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== - -eslint@^7.5.0: - version "7.32.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" - integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== - dependencies: - "@babel/code-frame" "7.12.11" - "@eslint/eslintrc" "^0.4.3" - "@humanwhocodes/config-array" "^0.5.0" - ajv "^6.10.0" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.0.1" - doctrine "^3.0.0" - enquirer "^2.3.5" - escape-string-regexp "^4.0.0" - eslint-scope "^5.1.1" - eslint-utils "^2.1.0" - eslint-visitor-keys "^2.0.0" - espree "^7.3.1" - esquery "^1.4.0" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" - functional-red-black-tree "^1.0.1" - glob-parent "^5.1.2" - globals "^13.6.0" - ignore "^4.0.6" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - js-yaml "^3.13.1" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash.merge "^4.6.2" - minimatch "^3.0.4" - natural-compare "^1.4.0" - optionator "^0.9.1" - progress "^2.0.0" - regexpp "^3.1.0" - semver "^7.2.1" - strip-ansi "^6.0.0" - strip-json-comments "^3.1.0" - table "^6.0.9" - text-table "^0.2.0" - v8-compile-cache "^2.0.3" - -espree@^7.3.0, espree@^7.3.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" - integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== - dependencies: - acorn "^7.4.0" - acorn-jsx "^5.3.1" - eslint-visitor-keys "^1.3.0" - -esprima@^4.0.0, esprima@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -esquery@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" - integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - -estree-walker@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" - integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== - -estree-walker@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" - integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== - -estree-walker@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" - integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -eventemitter3@^4.0.4: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -execa@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== - -expect@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/expect/-/expect-28.1.1.tgz#ca6fff65f6517cf7220c2e805a49c19aea30b420" - integrity sha512-/AANEwGL0tWBwzLNOvO0yUdy2D52jVdNXppOqswC49sxMN2cPWsGCQdzuIf9tj6hHoBQzNvx75JUYuQAckPo3w== - dependencies: - "@jest/expect-utils" "^28.1.1" - jest-get-type "^28.0.2" - jest-matcher-utils "^28.1.1" - jest-message-util "^28.1.1" - jest-util "^28.1.1" - -extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== - -extsprintf@^1.2.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" - integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== - -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-diff@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" - integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== - -fast-glob@^3.0.3, fast-glob@^3.2.9: - version "3.2.11" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" - integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== - -fastq@^1.6.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" - integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== - dependencies: - reusify "^1.0.4" - -fb-watchman@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" - integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== - dependencies: - bser "2.1.1" - -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== - dependencies: - flat-cache "^3.0.4" - -filesize@^8.0.7: - version "8.0.7" - resolved "https://registry.yarnpkg.com/filesize/-/filesize-8.0.7.tgz#695e70d80f4e47012c132d57a059e80c6b580bd8" - integrity sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ== - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -filter-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b" - integrity sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ== - -find-cache-dir@^3.2.0: - version "3.3.2" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" - integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== - dependencies: - commondir "^1.0.1" - make-dir "^3.0.2" - pkg-dir "^4.1.0" - -find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ== - dependencies: - locate-path "^2.0.0" - -find-up@^4.0.0, find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== - dependencies: - flatted "^3.1.0" - rimraf "^3.0.2" - -flatted@^3.1.0: - version "3.2.5" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3" - integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== - -foreground-child@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-2.0.0.tgz#71b32800c9f15aa8f2f83f4a6bd9bff35d861a53" - integrity sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA== - dependencies: - cross-spawn "^7.0.0" - signal-exit "^3.0.2" - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== - -form-data@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" - integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -fraction.js@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950" - integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA== - -fromentries@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/fromentries/-/fromentries-1.3.2.tgz#e4bca6808816bf8f93b52750f1127f5a6fd86e3a" - integrity sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg== - -fs-extra@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" - integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== - dependencies: - at-least-node "^1.0.0" - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fs-minipass@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" - integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== - dependencies: - minipass "^3.0.0" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -fsevents@^2.3.2, fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -function.prototype.name@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" - integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.0" - functions-have-names "^1.2.2" - -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== - -functions-have-names@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" - integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== - -gauge@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-3.0.2.tgz#03bf4441c044383908bcfa0656ad91803259b395" - integrity sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q== - dependencies: - aproba "^1.0.3 || ^2.0.0" - color-support "^1.1.2" - console-control-strings "^1.0.0" - has-unicode "^2.0.1" - object-assign "^4.1.1" - signal-exit "^3.0.0" - string-width "^4.2.3" - strip-ansi "^6.0.1" - wide-align "^1.1.2" - -gauge@^4.0.3: - version "4.0.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-4.0.4.tgz#52ff0652f2bbf607a989793d53b751bef2328dce" - integrity sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg== - dependencies: - aproba "^1.0.3 || ^2.0.0" - color-support "^1.1.3" - console-control-strings "^1.1.0" - has-unicode "^2.0.1" - signal-exit "^3.0.7" - string-width "^4.2.3" - strip-ansi "^6.0.1" - wide-align "^1.1.5" - -gaze@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.3.tgz#c441733e13b927ac8c0ff0b4c3b033f28812924a" - integrity sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g== - dependencies: - globule "^1.0.0" - -gensync@^1.0.0-beta.2: - version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" - integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== - -get-caller-file@^2.0.1, get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.2.tgz#336975123e05ad0b7ba41f152ee4aadbea6cf598" - integrity sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.3" - -get-package-type@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" - integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== - -get-stdin@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" - integrity sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw== - -get-stream@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - -get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== - dependencies: - assert-plus "^1.0.0" - -glob-parent@^5.1.2, glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob@^7.0.0, glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@~7.1.1: - version "7.1.7" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" - integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -globals@^13.6.0, globals@^13.9.0: - version "13.15.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.15.0.tgz#38113218c907d2f7e98658af246cef8b77e90bac" - integrity sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog== - dependencies: - type-fest "^0.20.2" - -globby@^10.0.1: - version "10.0.2" - resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.2.tgz#277593e745acaa4646c3ab411289ec47a0392543" - integrity sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg== - dependencies: - "@types/glob" "^7.1.1" - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.0.3" - glob "^7.1.3" - ignore "^5.1.1" - merge2 "^1.2.3" - slash "^3.0.0" - -globby@^11.0.3: - version "11.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" - integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.2.9" - ignore "^5.2.0" - merge2 "^1.4.1" - slash "^3.0.0" - -globule@^1.0.0: - version "1.3.4" - resolved "https://registry.yarnpkg.com/globule/-/globule-1.3.4.tgz#7c11c43056055a75a6e68294453c17f2796170fb" - integrity sha512-OPTIfhMBh7JbBYDpa5b+Q5ptmMWKwcNcFSR/0c6t8V4f3ZAVBEsKNY37QdVqmLRYSMhOUGYrY0QhSoEpzGr/Eg== - dependencies: - glob "~7.1.1" - lodash "^4.17.21" - minimatch "~3.0.2" - -graceful-fs@^4.1.15, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.6, graceful-fs@^4.2.9: - version "4.2.10" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== - -gzip-size@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-7.0.0.tgz#9f9644251f15bc78460fccef4055ae5a5562ac60" - integrity sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA== - dependencies: - duplexer "^0.1.2" - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== - -har-validator@~5.1.3: - version "5.1.5" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" - integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== - dependencies: - ajv "^6.12.3" - har-schema "^2.0.0" - -hard-rejection@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" - integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== - -has-bigints@^1.0.1, has-bigints@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" - integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-property-descriptors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" - integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== - dependencies: - get-intrinsic "^1.1.1" - -has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== - dependencies: - has-symbols "^1.0.2" - -has-unicode@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== - -has@^1.0.0, has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hasha@^5.0.0: - version "5.2.2" - resolved "https://registry.yarnpkg.com/hasha/-/hasha-5.2.2.tgz#a48477989b3b327aea3c04f53096d816d97522a1" - integrity sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ== - dependencies: - is-stream "^2.0.0" - type-fest "^0.8.0" - -helpertypes@^0.0.18: - version "0.0.18" - resolved "https://registry.yarnpkg.com/helpertypes/-/helpertypes-0.0.18.tgz#fd2bf5d3351cc7d80f7876732361d3adba63e5b4" - integrity sha512-XRhfbSEmR+poXUC5/8AbmYNJb2riOT6qPzjGJZr0S9YedHiaY+/tzPYzWMUclYMEdCYo/1l8PDYrQFCj02v97w== - -hex-color-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" - integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== - -hosted-git-info@^2.1.4: - version "2.8.9" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" - integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== - -hosted-git-info@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" - integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== - dependencies: - lru-cache "^6.0.0" - -hsl-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" - integrity sha512-M5ezZw4LzXbBKMruP+BNANf0k+19hDQMgpzBIYnya//Al+fjNct9Wf3b1WedLqdEs2hKBvxq/jh+DsHJLj0F9A== - -hsla-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" - integrity sha512-7Wn5GMLuHBjZCb2bTmnDOycho0p/7UVaAeqXZGbHrBCl6Yd/xDhQJAXe6Ga9AXJH2I5zY1dEdYw2u1UptnSBJA== - -html-encoding-sniffer@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz#2cb1a8cf0db52414776e5b2a7a04d5dd98158de9" - integrity sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA== - dependencies: - whatwg-encoding "^2.0.0" - -html-escaper@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" - integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== - -http-cache-semantics@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" - integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== - -http-proxy-agent@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" - integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== - dependencies: - "@tootallnate/once" "1" - agent-base "6" - debug "4" - -http-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" - integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== - dependencies: - "@tootallnate/once" "2" - agent-base "6" - debug "4" - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -https-proxy-agent@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" - integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== - dependencies: - agent-base "6" - debug "4" - -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== - -humanize-ms@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" - integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== - dependencies: - ms "^2.0.0" - -iconv-lite@0.6.3, iconv-lite@^0.6.2: - version "0.6.3" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" - integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== - dependencies: - safer-buffer ">= 2.1.2 < 3.0.0" - -icss-utils@^5.0.0, icss-utils@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" - integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== - -ignore@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" - integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== - -ignore@^5.1.1, ignore@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" - integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== - -import-fresh@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" - integrity sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg== - dependencies: - caller-path "^2.0.0" - resolve-from "^3.0.0" - -import-fresh@^3.0.0, import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -import-local@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" - integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== - dependencies: - pkg-dir "^4.2.0" - resolve-cwd "^3.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== - -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - integrity sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA== - -infer-owner@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" - integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@^2.0.3, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -internal-slot@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" - integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== - dependencies: - get-intrinsic "^1.1.0" - has "^1.0.3" - side-channel "^1.0.4" - -ip@^1.1.5: - version "1.1.8" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.8.tgz#ae05948f6b075435ed3307acce04629da8cdbf48" - integrity sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg== - -is-absolute-url@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" - integrity sha512-vOx7VprsKyllwjSkLV79NIhpyLfr3jAp7VaTCMXOJHu4m0Ew1CZ2fcjASwmV1jI3BWuWHB013M48eyeldk9gYg== - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== - -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - -is-bigint@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" - integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== - dependencies: - has-bigints "^1.0.1" - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-boolean-object@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" - integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-builtin-module@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-3.1.0.tgz#6fdb24313b1c03b75f8b9711c0feb8c30b903b00" - integrity sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg== - dependencies: - builtin-modules "^3.0.0" - -is-callable@^1.1.4, is-callable@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" - integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== - -is-color-stop@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" - integrity sha512-H1U8Vz0cfXNujrJzEcvvwMDW9Ra+biSYA3ThdQvAnMLJkEHQXn6bWzLkxHtVYJ+Sdbx0b6finn3jZiaVe7MAHA== - dependencies: - css-color-names "^0.0.4" - hex-color-regex "^1.1.0" - hsl-regex "^1.0.0" - hsla-regex "^1.0.0" - rgb-regex "^1.0.1" - rgba-regex "^1.0.0" - -is-core-module@^2.5.0, is-core-module@^2.8.1, is-core-module@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" - integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== - dependencies: - has "^1.0.3" - -is-date-object@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== - dependencies: - has-tostringtag "^1.0.0" - -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - integrity sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw== - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-generator-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" - integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-lambda@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" - integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== - -is-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" - integrity sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g== - -is-negative-zero@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" - integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== - -is-number-object@^1.0.4: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" - integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== - dependencies: - has-tostringtag "^1.0.0" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" - integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== - -is-path-cwd@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" - integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== - -is-path-inside@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - -is-plain-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== - -is-potential-custom-element-name@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" - integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== - -is-reference@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7" - integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== - dependencies: - "@types/estree" "*" - -is-regex@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-resolvable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" - integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== - -is-shared-array-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" - integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== - dependencies: - call-bind "^1.0.2" - -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - -is-string@^1.0.5, is-string@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" - integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== - dependencies: - has-tostringtag "^1.0.0" - -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== - dependencies: - has-symbols "^1.0.2" - -is-typedarray@^1.0.0, is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== - -is-weakref@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" - integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== - dependencies: - call-bind "^1.0.2" - -is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== - -isbot@3.4.5: - version "3.4.5" - resolved "https://registry.yarnpkg.com/isbot/-/isbot-3.4.5.tgz#69554585b725238692d9cc41d9a842c5b37fa33d" - integrity sha512-+KD6q1BBtw0iK9aGBGSfxJ31/ZgizKRjhm8ebgJUBMx0aeeQuIJ1I72beCoIrltIZGrSm4vmrxRxrG5n1aUTtw== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== - -istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" - integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== - -istanbul-lib-hook@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz#8f84c9434888cc6b1d0a9d7092a76d239ebf0cc6" - integrity sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ== - dependencies: - append-transform "^2.0.0" - -istanbul-lib-instrument@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" - integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== - dependencies: - "@babel/core" "^7.7.5" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.0.0" - semver "^6.3.0" - -istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz#31d18bdd127f825dd02ea7bfdfd906f8ab840e9f" - integrity sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A== - dependencies: - "@babel/core" "^7.12.3" - "@babel/parser" "^7.14.7" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.2.0" - semver "^6.3.0" - -istanbul-lib-processinfo@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz#366d454cd0dcb7eb6e0e419378e60072c8626169" - integrity sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg== - dependencies: - archy "^1.0.0" - cross-spawn "^7.0.3" - istanbul-lib-coverage "^3.2.0" - p-map "^3.0.0" - rimraf "^3.0.0" - uuid "^8.3.2" - -istanbul-lib-report@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" - integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== - dependencies: - istanbul-lib-coverage "^3.0.0" - make-dir "^3.0.0" - supports-color "^7.1.0" - -istanbul-lib-source-maps@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" - integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== - dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^3.0.0" - source-map "^0.6.1" - -istanbul-reports@^3.0.2: - version "3.1.5" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.5.tgz#cc9a6ab25cb25659810e4785ed9d9fb742578bae" - integrity sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w== - dependencies: - html-escaper "^2.0.0" - istanbul-lib-report "^3.0.0" - -istanbul-reports@^3.1.3: - version "3.1.4" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.4.tgz#1b6f068ecbc6c331040aab5741991273e609e40c" - integrity sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw== - dependencies: - html-escaper "^2.0.0" - istanbul-lib-report "^3.0.0" - -jest-changed-files@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-28.0.2.tgz#7d7810660a5bd043af9e9cfbe4d58adb05e91531" - integrity sha512-QX9u+5I2s54ZnGoMEjiM2WeBvJR2J7w/8ZUmH2um/WLAuGAYFQcsVXY9+1YL6k0H/AGUdH8pXUAv6erDqEsvIA== - dependencies: - execa "^5.0.0" - throat "^6.0.1" - -jest-circus@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-28.1.1.tgz#3d27da6a974d85a466dc0cdc6ddeb58daaa57bb4" - integrity sha512-75+BBVTsL4+p2w198DQpCeyh1RdaS2lhEG87HkaFX/UG0gJExVq2skG2pT7XZEGBubNj2CytcWSPan4QEPNosw== - dependencies: - "@jest/environment" "^28.1.1" - "@jest/expect" "^28.1.1" - "@jest/test-result" "^28.1.1" - "@jest/types" "^28.1.1" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - dedent "^0.7.0" - is-generator-fn "^2.0.0" - jest-each "^28.1.1" - jest-matcher-utils "^28.1.1" - jest-message-util "^28.1.1" - jest-runtime "^28.1.1" - jest-snapshot "^28.1.1" - jest-util "^28.1.1" - pretty-format "^28.1.1" - slash "^3.0.0" - stack-utils "^2.0.3" - throat "^6.0.1" - -jest-cli@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-28.1.1.tgz#23ddfde8940e1818585ae4a568877b33b0e51cfe" - integrity sha512-+sUfVbJqb1OjBZ0OdBbI6OWfYM1i7bSfzYy6gze1F1w3OKWq8ZTEKkZ8a7ZQPq6G/G1qMh/uKqpdWhgl11NFQQ== - dependencies: - "@jest/core" "^28.1.1" - "@jest/test-result" "^28.1.1" - "@jest/types" "^28.1.1" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.9" - import-local "^3.0.2" - jest-config "^28.1.1" - jest-util "^28.1.1" - jest-validate "^28.1.1" - prompts "^2.0.1" - yargs "^17.3.1" - -jest-config@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-28.1.1.tgz#e90b97b984f14a6c24a221859e81b258990fce2f" - integrity sha512-tASynMhS+jVV85zKvjfbJ8nUyJS/jUSYZ5KQxLUN2ZCvcQc/OmhQl2j6VEL3ezQkNofxn5pQ3SPYWPHb0unTZA== - dependencies: - "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^28.1.1" - "@jest/types" "^28.1.1" - babel-jest "^28.1.1" - chalk "^4.0.0" - ci-info "^3.2.0" - deepmerge "^4.2.2" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-circus "^28.1.1" - jest-environment-node "^28.1.1" - jest-get-type "^28.0.2" - jest-regex-util "^28.0.2" - jest-resolve "^28.1.1" - jest-runner "^28.1.1" - jest-util "^28.1.1" - jest-validate "^28.1.1" - micromatch "^4.0.4" - parse-json "^5.2.0" - pretty-format "^28.1.1" - slash "^3.0.0" - strip-json-comments "^3.1.1" - -jest-diff@^26.0.0: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" - integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== - dependencies: - chalk "^4.0.0" - diff-sequences "^26.6.2" - jest-get-type "^26.3.0" - pretty-format "^26.6.2" - -jest-diff@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-28.1.1.tgz#1a3eedfd81ae79810931c63a1d0f201b9120106c" - integrity sha512-/MUUxeR2fHbqHoMMiffe/Afm+U8U4olFRJ0hiVG2lZatPJcnGxx292ustVu7bULhjV65IYMxRdploAKLbcrsyg== - dependencies: - chalk "^4.0.0" - diff-sequences "^28.1.1" - jest-get-type "^28.0.2" - pretty-format "^28.1.1" - -jest-docblock@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-28.1.1.tgz#6f515c3bf841516d82ecd57a62eed9204c2f42a8" - integrity sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA== - dependencies: - detect-newline "^3.0.0" - -jest-each@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-28.1.1.tgz#ba5238dacf4f31d9fe23ddc2c44c01e7c23885c4" - integrity sha512-A042rqh17ZvEhRceDMi784ppoXR7MWGDEKTXEZXb4svt0eShMZvijGxzKsx+yIjeE8QYmHPrnHiTSQVhN4nqaw== - dependencies: - "@jest/types" "^28.1.1" - chalk "^4.0.0" - jest-get-type "^28.0.2" - jest-util "^28.1.1" - pretty-format "^28.1.1" - -jest-environment-jsdom@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-28.1.1.tgz#8bd721915b32f9b196723292c4461a0ad548b55b" - integrity sha512-41ZvgSoPNcKG5q3LuuOcAczdBxRq9DbZkPe24okN6ZCmiZdAfFtPg3z+lOtsT1fM6OAERApKT+3m0MRDQH2zIA== - dependencies: - "@jest/environment" "^28.1.1" - "@jest/fake-timers" "^28.1.1" - "@jest/types" "^28.1.1" - "@types/jsdom" "^16.2.4" - "@types/node" "*" - jest-mock "^28.1.1" - jest-util "^28.1.1" - jsdom "^19.0.0" - -jest-environment-node@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-28.1.1.tgz#1c86c59003a7d319fa06ea3b1bbda6c193715c67" - integrity sha512-2aV/eeY/WNgUUJrrkDJ3cFEigjC5fqT1+fCclrY6paqJ5zVPoM//sHmfgUUp7WLYxIdbPwMiVIzejpN56MxnNA== - dependencies: - "@jest/environment" "^28.1.1" - "@jest/fake-timers" "^28.1.1" - "@jest/types" "^28.1.1" - "@types/node" "*" - jest-mock "^28.1.1" - jest-util "^28.1.1" - -jest-get-type@^26.3.0: - version "26.3.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" - integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== - -jest-get-type@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-28.0.2.tgz#34622e628e4fdcd793d46db8a242227901fcf203" - integrity sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA== - -jest-haste-map@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-28.1.1.tgz#471685f1acd365a9394745bb97c8fc16289adca3" - integrity sha512-ZrRSE2o3Ezh7sb1KmeLEZRZ4mgufbrMwolcFHNRSjKZhpLa8TdooXOOFlSwoUzlbVs1t0l7upVRW2K7RWGHzbQ== - dependencies: - "@jest/types" "^28.1.1" - "@types/graceful-fs" "^4.1.3" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.9" - jest-regex-util "^28.0.2" - jest-util "^28.1.1" - jest-worker "^28.1.1" - micromatch "^4.0.4" - walker "^1.0.8" - optionalDependencies: - fsevents "^2.3.2" - -jest-leak-detector@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-28.1.1.tgz#537f37afd610a4b3f4cab15e06baf60484548efb" - integrity sha512-4jvs8V8kLbAaotE+wFR7vfUGf603cwYtFf1/PYEsyX2BAjSzj8hQSVTP6OWzseTl0xL6dyHuKs2JAks7Pfubmw== - dependencies: - jest-get-type "^28.0.2" - pretty-format "^28.1.1" - -jest-matcher-utils@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-28.1.1.tgz#a7c4653c2b782ec96796eb3088060720f1e29304" - integrity sha512-NPJPRWrbmR2nAJ+1nmnfcKKzSwgfaciCCrYZzVnNoxVoyusYWIjkBMNvu0RHJe7dNj4hH3uZOPZsQA+xAYWqsw== - dependencies: - chalk "^4.0.0" - jest-diff "^28.1.1" - jest-get-type "^28.0.2" - pretty-format "^28.1.1" - -jest-message-util@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-28.1.1.tgz#60aa0b475cfc08c8a9363ed2fb9108514dd9ab89" - integrity sha512-xoDOOT66fLfmTRiqkoLIU7v42mal/SqwDKvfmfiWAdJMSJiU+ozgluO7KbvoAgiwIrrGZsV7viETjc8GNrA/IQ== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^28.1.1" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^28.1.1" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-mock@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-28.1.1.tgz#37903d269427fa1ef5b2447be874e1c62a39a371" - integrity sha512-bDCb0FjfsmKweAvE09dZT59IMkzgN0fYBH6t5S45NoJfd2DHkS3ySG2K+hucortryhO3fVuXdlxWcbtIuV/Skw== - dependencies: - "@jest/types" "^28.1.1" - "@types/node" "*" - -jest-pnp-resolver@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" - integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== - -jest-regex-util@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-28.0.2.tgz#afdc377a3b25fb6e80825adcf76c854e5bf47ead" - integrity sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw== - -jest-resolve-dependencies@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.1.tgz#3dffaaa56f4b41bc6b61053899d1756401763a27" - integrity sha512-p8Y150xYJth4EXhOuB8FzmS9r8IGLEioiaetgdNGb9VHka4fl0zqWlVe4v7mSkYOuEUg2uB61iE+zySDgrOmgQ== - dependencies: - jest-regex-util "^28.0.2" - jest-snapshot "^28.1.1" - -jest-resolve@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-28.1.1.tgz#bc2eaf384abdcc1aaf3ba7c50d1adf01e59095e5" - integrity sha512-/d1UbyUkf9nvsgdBildLe6LAD4DalgkgZcKd0nZ8XUGPyA/7fsnaQIlKVnDiuUXv/IeZhPEDrRJubVSulxrShA== - dependencies: - chalk "^4.0.0" - graceful-fs "^4.2.9" - jest-haste-map "^28.1.1" - jest-pnp-resolver "^1.2.2" - jest-util "^28.1.1" - jest-validate "^28.1.1" - resolve "^1.20.0" - resolve.exports "^1.1.0" - slash "^3.0.0" - -jest-runner@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-28.1.1.tgz#9ecdb3f27a00059986797aa6b012ba8306aa436c" - integrity sha512-W5oFUiDBgTsCloTAj6q95wEvYDB0pxIhY6bc5F26OucnwBN+K58xGTGbliSMI4ChQal5eANDF+xvELaYkJxTmA== - dependencies: - "@jest/console" "^28.1.1" - "@jest/environment" "^28.1.1" - "@jest/test-result" "^28.1.1" - "@jest/transform" "^28.1.1" - "@jest/types" "^28.1.1" - "@types/node" "*" - chalk "^4.0.0" - emittery "^0.10.2" - graceful-fs "^4.2.9" - jest-docblock "^28.1.1" - jest-environment-node "^28.1.1" - jest-haste-map "^28.1.1" - jest-leak-detector "^28.1.1" - jest-message-util "^28.1.1" - jest-resolve "^28.1.1" - jest-runtime "^28.1.1" - jest-util "^28.1.1" - jest-watcher "^28.1.1" - jest-worker "^28.1.1" - source-map-support "0.5.13" - throat "^6.0.1" - -jest-runtime@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-28.1.1.tgz#569e1dc3c36c6c4c0b29516c1c49b6ad580abdaf" - integrity sha512-J89qEJWW0leOsqyi0D9zHpFEYHwwafFdS9xgvhFHtIdRghbadodI0eA+DrthK/1PebBv3Px8mFSMGKrtaVnleg== - dependencies: - "@jest/environment" "^28.1.1" - "@jest/fake-timers" "^28.1.1" - "@jest/globals" "^28.1.1" - "@jest/source-map" "^28.0.2" - "@jest/test-result" "^28.1.1" - "@jest/transform" "^28.1.1" - "@jest/types" "^28.1.1" - chalk "^4.0.0" - cjs-module-lexer "^1.0.0" - collect-v8-coverage "^1.0.0" - execa "^5.0.0" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-haste-map "^28.1.1" - jest-message-util "^28.1.1" - jest-mock "^28.1.1" - jest-regex-util "^28.0.2" - jest-resolve "^28.1.1" - jest-snapshot "^28.1.1" - jest-util "^28.1.1" - slash "^3.0.0" - strip-bom "^4.0.0" - -jest-snapshot@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-28.1.1.tgz#ab825c16c8d8b5e883bd57eee6ca8748c42ab848" - integrity sha512-1KjqHJ98adRcbIdMizjF5DipwZFbvxym/kFO4g4fVZCZRxH/dqV8TiBFCa6rqic3p0karsy8RWS1y4E07b7P0A== - dependencies: - "@babel/core" "^7.11.6" - "@babel/generator" "^7.7.2" - "@babel/plugin-syntax-typescript" "^7.7.2" - "@babel/traverse" "^7.7.2" - "@babel/types" "^7.3.3" - "@jest/expect-utils" "^28.1.1" - "@jest/transform" "^28.1.1" - "@jest/types" "^28.1.1" - "@types/babel__traverse" "^7.0.6" - "@types/prettier" "^2.1.5" - babel-preset-current-node-syntax "^1.0.0" - chalk "^4.0.0" - expect "^28.1.1" - graceful-fs "^4.2.9" - jest-diff "^28.1.1" - jest-get-type "^28.0.2" - jest-haste-map "^28.1.1" - jest-matcher-utils "^28.1.1" - jest-message-util "^28.1.1" - jest-util "^28.1.1" - natural-compare "^1.4.0" - pretty-format "^28.1.1" - semver "^7.3.5" - -jest-util@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-28.1.1.tgz#ff39e436a1aca397c0ab998db5a51ae2b7080d05" - integrity sha512-FktOu7ca1DZSyhPAxgxB6hfh2+9zMoJ7aEQA759Z6p45NuO8mWcqujH+UdHlCm/V6JTWwDztM2ITCzU1ijJAfw== - dependencies: - "@jest/types" "^28.1.1" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - -jest-validate@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-28.1.1.tgz#59b7b339b3c85b5144bd0c06ad3600f503a4acc8" - integrity sha512-Kpf6gcClqFCIZ4ti5++XemYJWUPCFUW+N2gknn+KgnDf549iLul3cBuKVe1YcWRlaF8tZV8eJCap0eECOEE3Ug== - dependencies: - "@jest/types" "^28.1.1" - camelcase "^6.2.0" - chalk "^4.0.0" - jest-get-type "^28.0.2" - leven "^3.1.0" - pretty-format "^28.1.1" - -jest-watcher@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-28.1.1.tgz#533597fb3bfefd52b5cd115cd916cffd237fb60c" - integrity sha512-RQIpeZ8EIJMxbQrXpJQYIIlubBnB9imEHsxxE41f54ZwcqWLysL/A0ZcdMirf+XsMn3xfphVQVV4EW0/p7i7Ug== - dependencies: - "@jest/test-result" "^28.1.1" - "@jest/types" "^28.1.1" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - emittery "^0.10.2" - jest-util "^28.1.1" - string-length "^4.0.1" - -jest-worker@^26.2.1: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" - integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^7.0.0" - -jest-worker@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-28.1.1.tgz#3480c73247171dfd01eda77200f0063ab6a3bf28" - integrity sha512-Au7slXB08C6h+xbJPp7VIb6U0XX5Kc9uel/WFc6/rcTzGiaVCBRngBExSYuXSLFPULPSYU3cJ3ybS988lNFQhQ== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -jest@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest/-/jest-28.1.1.tgz#3c39a3a09791e16e9ef283597d24ab19a0df701e" - integrity sha512-qw9YHBnjt6TCbIDMPMpJZqf9E12rh6869iZaN08/vpOGgHJSAaLLUn6H8W3IAEuy34Ls3rct064mZLETkxJ2XA== - dependencies: - "@jest/core" "^28.1.1" - "@jest/types" "^28.1.1" - import-local "^3.0.2" - jest-cli "^28.1.1" - -joycon@^3.0.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/joycon/-/joycon-3.1.1.tgz#bce8596d6ae808f8b68168f5fc69280996894f03" - integrity sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw== - -js-base64@^2.4.3: - version "2.6.4" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4" - integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ== - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== - -jsdom@^19.0.0: - version "19.0.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-19.0.0.tgz#93e67c149fe26816d38a849ea30ac93677e16b6a" - integrity sha512-RYAyjCbxy/vri/CfnjUWJQQtZ3LKlLnDqj+9XLNnJPgEGeirZs3hllKR20re8LUZ6o1b1X4Jat+Qd26zmP41+A== - dependencies: - abab "^2.0.5" - acorn "^8.5.0" - acorn-globals "^6.0.0" - cssom "^0.5.0" - cssstyle "^2.3.0" - data-urls "^3.0.1" - decimal.js "^10.3.1" - domexception "^4.0.0" - escodegen "^2.0.0" - form-data "^4.0.0" - html-encoding-sniffer "^3.0.0" - http-proxy-agent "^5.0.0" - https-proxy-agent "^5.0.0" - is-potential-custom-element-name "^1.0.1" - nwsapi "^2.2.0" - parse5 "6.0.1" - saxes "^5.0.1" - symbol-tree "^3.2.4" - tough-cookie "^4.0.0" - w3c-hr-time "^1.0.2" - w3c-xmlserializer "^3.0.0" - webidl-conversions "^7.0.0" - whatwg-encoding "^2.0.0" - whatwg-mimetype "^3.0.0" - whatwg-url "^10.0.0" - ws "^8.2.3" - xml-name-validator "^4.0.0" - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== - -json-parse-better-errors@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - -json-parse-even-better-errors@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema-traverse@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" - integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== - -json-schema@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" - integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== - -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== - dependencies: - minimist "^1.2.0" - -json5@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" - integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== - -jsonc-parser@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.0.0.tgz#abdd785701c7e7eaca8a9ec8cf070ca51a745a22" - integrity sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA== - -jsonfile@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" - integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== - dependencies: - universalify "^2.0.0" - optionalDependencies: - graceful-fs "^4.1.6" - -jsprim@^1.2.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" - integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.4.0" - verror "1.10.0" - -"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.2.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.1.tgz#a3e0f1cb7e230954eab4dcbce9f6288a78f8ba44" - integrity sha512-pxrjmNpeRw5wwVeWyEAk7QJu2GnBO3uzPFmHCKJJFPKK2Cy0cWL23krGtLdnMmbIi6/FjlrQpPyfQI19ByPOhQ== - dependencies: - array-includes "^3.1.5" - object.assign "^4.1.2" - -kind-of@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -kleur@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" - integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== - -language-subtag-registry@~0.3.2: - version "0.3.21" - resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz#04ac218bea46f04cb039084602c6da9e788dd45a" - integrity sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg== - -language-tags@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a" - integrity sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ== - dependencies: - language-subtag-registry "~0.3.2" - -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - -levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -lines-and-columns@^1.1.6: - version "1.2.4" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== - -livereload-js@^3.3.1: - version "3.4.0" - resolved "https://registry.yarnpkg.com/livereload-js/-/livereload-js-3.4.0.tgz#2083158125f16fb5207141bbadb9bdc26cfdb1ef" - integrity sha512-F/pz9ZZP+R+arY94cECTZco7PXgBXyL+KVWUPZq8AQE9TOu14GV6fYeKOviv02JCvFa4Oi3Rs1hYEpfeajc+ow== - -livereload@^0.9.1: - version "0.9.3" - resolved "https://registry.yarnpkg.com/livereload/-/livereload-0.9.3.tgz#a714816375ed52471408bede8b49b2ee6a0c55b1" - integrity sha512-q7Z71n3i4X0R9xthAryBdNGVGAO2R5X+/xXpmKeuPMrteg+W2U8VusTKV3YiJbXZwKsOlFlHe+go6uSNjfxrZw== - dependencies: - chokidar "^3.5.0" - livereload-js "^3.3.1" - opts ">= 1.2.0" - ws "^7.4.3" - -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA== - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -lodash.debounce@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" - integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== - -lodash.flattendeep@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" - integrity sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ== - -lodash.memoize@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== - -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -lodash.truncate@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" - integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== - -lodash.uniq@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== - -lodash@^4.17.11, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -loose-envify@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -lz-string@^1.4.4: - version "1.4.4" - resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.4.4.tgz#c0d8eaf36059f705796e1e344811cf4c498d3a26" - integrity sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ== - -magic-string@^0.25.7: - version "0.25.9" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" - integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== - dependencies: - sourcemap-codec "^1.4.8" - -magic-string@^0.26.2: - version "0.26.2" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.26.2.tgz#5331700e4158cd6befda738bb6b0c7b93c0d4432" - integrity sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A== - dependencies: - sourcemap-codec "^1.4.8" - -make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - -make-fetch-happen@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz#53085a09e7971433e6765f7971bf63f4e05cb968" - integrity sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg== - dependencies: - agentkeepalive "^4.1.3" - cacache "^15.2.0" - http-cache-semantics "^4.1.0" - http-proxy-agent "^4.0.1" - https-proxy-agent "^5.0.0" - is-lambda "^1.0.1" - lru-cache "^6.0.0" - minipass "^3.1.3" - minipass-collect "^1.0.2" - minipass-fetch "^1.3.2" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.4" - negotiator "^0.6.2" - promise-retry "^2.0.1" - socks-proxy-agent "^6.0.0" - ssri "^8.0.0" - -makeerror@1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" - integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== - dependencies: - tmpl "1.0.5" - -map-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - integrity sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg== - -map-obj@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" - integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== - -mdn-data@2.0.14: - version "2.0.14" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" - integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== - -mdn-data@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" - integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== - -meow@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-9.0.0.tgz#cd9510bc5cac9dee7d03c73ee1f9ad959f4ea364" - integrity sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ== - dependencies: - "@types/minimist" "^1.2.0" - camelcase-keys "^6.2.2" - decamelize "^1.2.0" - decamelize-keys "^1.1.0" - hard-rejection "^2.1.0" - minimist-options "4.1.0" - normalize-package-data "^3.0.0" - read-pkg-up "^7.0.1" - redent "^3.0.0" - trim-newlines "^3.0.0" - type-fest "^0.18.0" - yargs-parser "^20.2.3" - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -merge2@^1.2.3, merge2@^1.3.0, merge2@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -micromatch@^4.0.4: - version "4.0.5" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== - dependencies: - braces "^3.0.2" - picomatch "^2.3.1" - -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@^2.1.12, mime-types@^2.1.28, mime-types@~2.1.19: - version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -mime@>=2.4.6: - version "3.0.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-3.0.0.tgz#b374550dca3a0c18443b0c950a6a58f1931cf7a7" - integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -mimic-response@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" - integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== - -min-indent@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" - integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== - -minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimatch@~3.0.2: - version "3.0.8" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.8.tgz#5e6a59bd11e2ab0de1cfb843eb2d82e546c321c1" - integrity sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q== - dependencies: - brace-expansion "^1.1.7" - -minimist-options@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" - integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== - dependencies: - arrify "^1.0.1" - is-plain-obj "^1.1.0" - kind-of "^6.0.3" - -minimist@^1.2.0, minimist@^1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" - integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== - -minipass-collect@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" - integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== - dependencies: - minipass "^3.0.0" - -minipass-fetch@^1.3.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.4.1.tgz#d75e0091daac1b0ffd7e9d41629faff7d0c1f1b6" - integrity sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw== - dependencies: - minipass "^3.1.0" - minipass-sized "^1.0.3" - minizlib "^2.0.0" - optionalDependencies: - encoding "^0.1.12" - -minipass-flush@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" - integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== - dependencies: - minipass "^3.0.0" - -minipass-pipeline@^1.2.2, minipass-pipeline@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" - integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== - dependencies: - minipass "^3.0.0" - -minipass-sized@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70" - integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g== - dependencies: - minipass "^3.0.0" - -minipass@^3.0.0, minipass@^3.1.0, minipass@^3.1.1, minipass@^3.1.3: - version "3.3.3" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.3.tgz#fd1f0e6c06449c10dadda72618b59c00f3d6378d" - integrity sha512-N0BOsdFAlNRfmwMhjAsLVWOk7Ljmeb39iqFlsV1At+jqRhSUP9yeof8FyJu4imaJiSUp8vQebWD/guZwGQC8iA== - dependencies: - yallist "^4.0.0" - -minizlib@^2.0.0, minizlib@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" - integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== - dependencies: - minipass "^3.0.0" - yallist "^4.0.0" - -mkdirp@^1.0.3, mkdirp@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - -mkdirp@~0.5.1: - version "0.5.6" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" - integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== - dependencies: - minimist "^1.2.6" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@^2.0.0, ms@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -nan@^2.13.2, nan@^2.15.0: - version "2.16.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.16.0.tgz#664f43e45460fb98faf00edca0bb0d7b8dce7916" - integrity sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA== - -nanoid@^3.3.4: - version "3.3.4" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" - integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== - -negotiator@^0.6.2: - version "0.6.3" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" - integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== - -node-fetch@^2.6.7: - version "2.6.7" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" - integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== - dependencies: - whatwg-url "^5.0.0" - -node-gyp-build@^4.3.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.4.0.tgz#42e99687ce87ddeaf3a10b99dc06abc11021f3f4" - integrity sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ== - -node-gyp@^8.4.1: - version "8.4.1" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-8.4.1.tgz#3d49308fc31f768180957d6b5746845fbd429937" - integrity sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w== - dependencies: - env-paths "^2.2.0" - glob "^7.1.4" - graceful-fs "^4.2.6" - make-fetch-happen "^9.1.0" - nopt "^5.0.0" - npmlog "^6.0.0" - rimraf "^3.0.2" - semver "^7.3.5" - tar "^6.1.2" - which "^2.0.2" - -node-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== - -node-preload@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/node-preload/-/node-preload-0.2.1.tgz#c03043bb327f417a18fee7ab7ee57b408a144301" - integrity sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ== - dependencies: - process-on-spawn "^1.0.0" - -node-releases@^2.0.2, node-releases@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.5.tgz#280ed5bc3eba0d96ce44897d8aee478bfb3d9666" - integrity sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q== - -node-sass@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-7.0.1.tgz#ad4f6bc663de8acc0a9360db39165a1e2620aa72" - integrity sha512-uMy+Xt29NlqKCFdFRZyXKOTqGt+QaKHexv9STj2WeLottnlqZEEWx6Bj0MXNthmFRRdM/YwyNo/8Tr46TOM0jQ== - dependencies: - async-foreach "^0.1.3" - chalk "^4.1.2" - cross-spawn "^7.0.3" - gaze "^1.0.0" - get-stdin "^4.0.1" - glob "^7.0.3" - lodash "^4.17.15" - meow "^9.0.0" - nan "^2.13.2" - node-gyp "^8.4.1" - npmlog "^5.0.0" - request "^2.88.0" - sass-graph "4.0.0" - stdout-stream "^1.4.0" - "true-case-path" "^1.0.2" - -nopt@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" - integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== - dependencies: - abbrev "1" - -normalize-package-data@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-package-data@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" - integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== - dependencies: - hosted-git-info "^4.0.1" - is-core-module "^2.5.0" - semver "^7.3.4" - validate-npm-package-license "^3.0.1" - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -normalize-range@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== - -normalize-url@^3.0.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" - integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== - -npm-run-path@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - -npmlog@^5.0.0, npmlog@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-5.0.1.tgz#f06678e80e29419ad67ab964e0fa69959c1eb8b0" - integrity sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw== - dependencies: - are-we-there-yet "^2.0.0" - console-control-strings "^1.1.0" - gauge "^3.0.0" - set-blocking "^2.0.0" - -npmlog@^6.0.0: - version "6.0.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-6.0.2.tgz#c8166017a42f2dea92d6453168dd865186a70830" - integrity sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg== - dependencies: - are-we-there-yet "^3.0.0" - console-control-strings "^1.1.0" - gauge "^4.0.3" - set-blocking "^2.0.0" - -nth-check@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" - integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== - dependencies: - boolbase "~1.0.0" - -nwsapi@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" - integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== - -nyc@^15.1.0: - version "15.1.0" - resolved "https://registry.yarnpkg.com/nyc/-/nyc-15.1.0.tgz#1335dae12ddc87b6e249d5a1994ca4bdaea75f02" - integrity sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A== - dependencies: - "@istanbuljs/load-nyc-config" "^1.0.0" - "@istanbuljs/schema" "^0.1.2" - caching-transform "^4.0.0" - convert-source-map "^1.7.0" - decamelize "^1.2.0" - find-cache-dir "^3.2.0" - find-up "^4.1.0" - foreground-child "^2.0.0" - get-package-type "^0.1.0" - glob "^7.1.6" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-hook "^3.0.0" - istanbul-lib-instrument "^4.0.0" - istanbul-lib-processinfo "^2.0.2" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.0.2" - make-dir "^3.0.0" - node-preload "^0.2.1" - p-map "^3.0.0" - process-on-spawn "^1.0.0" - resolve-from "^5.0.0" - rimraf "^3.0.0" - signal-exit "^3.0.2" - spawn-wrap "^2.0.0" - test-exclude "^6.0.0" - yargs "^15.0.2" - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - -object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== - -object-inspect@^1.12.0, object-inspect@^1.9.0: - version "1.12.2" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" - integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== - -object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object-path@^0.11.8: - version "0.11.8" - resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.11.8.tgz#ed002c02bbdd0070b78a27455e8ae01fc14d4742" - integrity sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA== - -object.assign@^4.1.0, object.assign@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" - integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" - object-keys "^1.1.1" - -object.entries@^1.1.2, object.entries@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.5.tgz#e1acdd17c4de2cd96d5a08487cfb9db84d881861" - integrity sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - -object.fromentries@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.5.tgz#7b37b205109c21e741e605727fe8b0ad5fa08251" - integrity sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - -object.getownpropertydescriptors@^2.1.0: - version "2.1.4" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.4.tgz#7965e6437a57278b587383831a9b829455a4bc37" - integrity sha512-sccv3L/pMModT6dJAYF3fzGMVcb38ysQ0tEE6ixv2yXJDtEIPph268OlAdJj5/qZMZDq2g/jqvwppt36uS/uQQ== - dependencies: - array.prototype.reduce "^1.0.4" - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.1" - -object.hasown@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.1.tgz#ad1eecc60d03f49460600430d97f23882cf592a3" - integrity sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A== - dependencies: - define-properties "^1.1.4" - es-abstract "^1.19.5" - -object.values@^1.1.0, object.values@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac" - integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - -once@^1.3.0, once@^1.3.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - -onetime@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -opener@1: - version "1.5.2" - resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" - integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== - -optionator@^0.8.1: - version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" - -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== - dependencies: - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - word-wrap "^1.2.3" - -"opts@>= 1.2.0": - version "2.0.2" - resolved "https://registry.yarnpkg.com/opts/-/opts-2.0.2.tgz#a17e189fbbfee171da559edd8a42423bc5993ce1" - integrity sha512-k41FwbcLnlgnFh69f4qdUfvDQ+5vaSDnVPFI/y5XuhKRq97EnVVneO9F1ESVCdiVu4fCS2L8usX3mU331hB7pg== - -"overlayscrollbars@file:./packages/overlayscrollbars": - version "0.0.1" - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== - -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - -p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg== - dependencies: - p-limit "^1.1.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-map@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d" - integrity sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ== - dependencies: - aggregate-error "^3.0.0" - -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== - dependencies: - aggregate-error "^3.0.0" - -p-queue@^6.6.2: - version "6.6.2" - resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-6.6.2.tgz#2068a9dcf8e67dd0ec3e7a2bcb76810faa85e426" - integrity sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ== - dependencies: - eventemitter3 "^4.0.4" - p-timeout "^3.2.0" - -p-timeout@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" - integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== - dependencies: - p-finally "^1.0.0" - -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww== - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -package-hash@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/package-hash/-/package-hash-4.0.0.tgz#3537f654665ec3cc38827387fc904c163c54f506" - integrity sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ== - dependencies: - graceful-fs "^4.1.15" - hasha "^5.0.0" - lodash.flattendeep "^4.4.0" - release-zalgo "^1.0.0" - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - -parse-json@^5.0.0, parse-json@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - -parse5@6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" - integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -path-key@^3.0.0, path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== - -picocolors@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" - integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== - -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3, picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -pirates@^4.0.4: - version "4.0.5" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" - integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== - -pkg-dir@^4.1.0, pkg-dir@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -playwright-chromium@^1.22.2: - version "1.22.2" - resolved "https://registry.yarnpkg.com/playwright-chromium/-/playwright-chromium-1.22.2.tgz#9057602b75009848a37d9f75187ce3c928a44354" - integrity sha512-msRcdCIJkdM2R6S+NMJZ02uyZHzJ7TIzkjzs3usDJ1Pwacp9HMhv9T/S4AxtpFXFmvMZq7UJYb0x+tCdHx9+0w== - dependencies: - playwright-core "1.22.2" - -playwright-core@1.22.2, playwright-core@^1.22.2: - version "1.22.2" - resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.22.2.tgz#ed2963d79d71c2a18d5a6fd25b60b9f0a344661a" - integrity sha512-w/hc/Ld0RM4pmsNeE6aL/fPNWw8BWit2tg+TfqJ3+p59c6s3B6C8mXvXrIPmfQEobkcFDc+4KirNzOQ+uBSP1Q== - -playwright-firefox@^1.22.2: - version "1.22.2" - resolved "https://registry.yarnpkg.com/playwright-firefox/-/playwright-firefox-1.22.2.tgz#5afff09ba92b20a0e5c549b5a269394dbf3bdc11" - integrity sha512-y586dCkRST345/m+baM28oPSquJV6eizkqyB97blFaNysnVY+1+RE9BzHq10asqecajoPlt+OvSnwFPH88EyPQ== - dependencies: - playwright-core "1.22.2" - -playwright-webkit@^1.22.2: - version "1.22.2" - resolved "https://registry.yarnpkg.com/playwright-webkit/-/playwright-webkit-1.22.2.tgz#827ce870322e9e5f97c1f195032aaeab0a78ede0" - integrity sha512-WjgKJa6uHzj0g/B0cHjPuM9fdyGLjmGKYkYnepbyl9wtpkLzy7man01nyZ2ujigxhR0ux+u4Ix+jaCMKSdZReQ== - dependencies: - playwright-core "1.22.2" - -playwright@^1.22.2: - version "1.22.2" - resolved "https://registry.yarnpkg.com/playwright/-/playwright-1.22.2.tgz#353a7c29f89ca9600edc7a9a30aed790823c797d" - integrity sha512-hUTpg7LytIl3/O4t0AQJS1V6hWsaSY5uZ7w1oCC8r3a1AQN5d6otIdCkiB3cbzgQkcMaRxisinjMFMVqZkybdQ== - dependencies: - playwright-core "1.22.2" - -postcss-calc@^7.0.1: - version "7.0.5" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.5.tgz#f8a6e99f12e619c2ebc23cf6c486fdc15860933e" - integrity sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg== - dependencies: - postcss "^7.0.27" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.0.2" - -postcss-colormin@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" - integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== - dependencies: - browserslist "^4.0.0" - color "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-convert-values@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" - integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-discard-comments@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" - integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== - dependencies: - postcss "^7.0.0" - -postcss-discard-duplicates@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" - integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== - dependencies: - postcss "^7.0.0" - -postcss-discard-empty@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" - integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== - dependencies: - postcss "^7.0.0" - -postcss-discard-overridden@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" - integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== - dependencies: - postcss "^7.0.0" - -postcss-merge-longhand@^4.0.11: - version "4.0.11" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" - integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== - dependencies: - css-color-names "0.0.4" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - stylehacks "^4.0.0" - -postcss-merge-rules@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" - integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - cssnano-util-same-parent "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - vendors "^1.0.0" - -postcss-minify-font-values@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" - integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-gradients@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" - integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - is-color-stop "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-params@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" - integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== - dependencies: - alphanum-sort "^1.0.0" - browserslist "^4.0.0" - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - uniqs "^2.0.0" - -postcss-minify-selectors@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" - integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== - dependencies: - alphanum-sort "^1.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -postcss-modules-extract-imports@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" - integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== - -postcss-modules-local-by-default@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c" - integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ== - dependencies: - icss-utils "^5.0.0" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.1.0" - -postcss-modules-scope@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06" - integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== - dependencies: - postcss-selector-parser "^6.0.4" - -postcss-modules-values@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" - integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== - dependencies: - icss-utils "^5.0.0" - -postcss-normalize-charset@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" - integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== - dependencies: - postcss "^7.0.0" - -postcss-normalize-display-values@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" - integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-positions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" - integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== - dependencies: - cssnano-util-get-arguments "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-repeat-style@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" - integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-string@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" - integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== - dependencies: - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-timing-functions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" - integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-unicode@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" - integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-url@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" - integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== - dependencies: - is-absolute-url "^2.0.0" - normalize-url "^3.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-whitespace@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" - integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-ordered-values@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" - integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== - dependencies: - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-reduce-initial@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" - integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - -postcss-reduce-transforms@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" - integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== - dependencies: - cssnano-util-get-match "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-selector-parser@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" - integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== - dependencies: - dot-prop "^5.2.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: - version "6.0.10" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d" - integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - -postcss-svgo@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.3.tgz#343a2cdbac9505d416243d496f724f38894c941e" - integrity sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - svgo "^1.0.0" - -postcss-unique-selectors@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" - integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== - dependencies: - alphanum-sort "^1.0.0" - postcss "^7.0.0" - uniqs "^2.0.0" - -postcss-value-parser@^3.0.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" - integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== - -postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" - integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== - -"postcss@5 - 7", postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.27: - version "7.0.39" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309" - integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA== - dependencies: - picocolors "^0.2.1" - source-map "^0.6.1" - -postcss@^8.2.4, postcss@^8.4.13, postcss@^8.4.14: - version "8.4.14" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf" - integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig== - dependencies: - nanoid "^3.3.4" - picocolors "^1.0.0" - source-map-js "^1.0.2" - -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== - -prettier-linter-helpers@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" - integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== - dependencies: - fast-diff "^1.1.2" - -prettier@^2.6.2: - version "2.7.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" - integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== - -pretty-format@^26.0.0, pretty-format@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" - integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== - dependencies: - "@jest/types" "^26.6.2" - ansi-regex "^5.0.0" - ansi-styles "^4.0.0" - react-is "^17.0.1" - -pretty-format@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-28.1.1.tgz#f731530394e0f7fcd95aba6b43c50e02d86b95cb" - integrity sha512-wwJbVTGFHeucr5Jw2bQ9P+VYHyLdAqedFLEkdQUVaBF/eiidDwH5OpilINq4mEfhbCjLnirt6HTTDhv1HaTIQw== - dependencies: - "@jest/schemas" "^28.0.2" - ansi-regex "^5.0.1" - ansi-styles "^5.0.0" - react-is "^18.0.0" - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -process-on-spawn@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/process-on-spawn/-/process-on-spawn-1.0.0.tgz#95b05a23073d30a17acfdc92a440efd2baefdc93" - integrity sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg== - dependencies: - fromentries "^1.2.0" - -progress@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== - -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== - -promise-retry@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" - integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== - dependencies: - err-code "^2.0.2" - retry "^0.12.0" - -prompts@^2.0.1: - version "2.4.2" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" - integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== - dependencies: - kleur "^3.0.3" - sisteransi "^1.0.5" - -prop-types@^15.8.1: - version "15.8.1" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" - integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== - dependencies: - loose-envify "^1.4.0" - object-assign "^4.1.1" - react-is "^16.13.1" - -psl@^1.1.28, psl@^1.1.33: - version "1.8.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== - -punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -q@^1.1.2: - version "1.5.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== - -qs@~6.5.2: - version "6.5.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" - integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== - -query-string@^6.13.8: - version "6.14.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.14.1.tgz#7ac2dca46da7f309449ba0f86b1fd28255b0c86a" - integrity sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw== - dependencies: - decode-uri-component "^0.2.0" - filter-obj "^1.1.0" - split-on-first "^1.0.0" - strict-uri-encode "^2.0.0" - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -quick-lru@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" - integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== - -randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -react-is@^16.13.1: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" - integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== - -react-is@^17.0.1: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" - integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== - -react-is@^18.0.0: - version "18.2.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" - integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== - -read-pkg-up@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" - integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== - dependencies: - find-up "^4.1.0" - read-pkg "^5.2.0" - type-fest "^0.8.1" - -read-pkg@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" - integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== - dependencies: - "@types/normalize-package-data" "^2.4.0" - normalize-package-data "^2.5.0" - parse-json "^5.0.0" - type-fest "^0.6.0" - -readable-stream@^2.0.1: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -redent@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" - integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== - dependencies: - indent-string "^4.0.0" - strip-indent "^3.0.0" - -regenerate-unicode-properties@^10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz#7f442732aa7934a3740c779bb9b3340dccc1fb56" - integrity sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw== - dependencies: - regenerate "^1.4.2" - -regenerate@^1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" - integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== - -regenerator-runtime@^0.13.4: - version "0.13.9" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" - integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== - -regenerator-transform@^0.15.0: - version "0.15.0" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.0.tgz#cbd9ead5d77fae1a48d957cf889ad0586adb6537" - integrity sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg== - dependencies: - "@babel/runtime" "^7.8.4" - -regexp.prototype.flags@^1.4.1, regexp.prototype.flags@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" - integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - functions-have-names "^1.2.2" - -regexpp@^3.0.0, regexpp@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== - -regexpu-core@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.0.1.tgz#c531122a7840de743dcf9c83e923b5560323ced3" - integrity sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw== - dependencies: - regenerate "^1.4.2" - regenerate-unicode-properties "^10.0.1" - regjsgen "^0.6.0" - regjsparser "^0.8.2" - unicode-match-property-ecmascript "^2.0.0" - unicode-match-property-value-ecmascript "^2.0.0" - -regjsgen@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.6.0.tgz#83414c5354afd7d6627b16af5f10f41c4e71808d" - integrity sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA== - -regjsparser@^0.8.2: - version "0.8.4" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.8.4.tgz#8a14285ffcc5de78c5b95d62bbf413b6bc132d5f" - integrity sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA== - dependencies: - jsesc "~0.5.0" - -release-zalgo@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/release-zalgo/-/release-zalgo-1.0.0.tgz#09700b7e5074329739330e535c5a90fb67851730" - integrity sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA== - dependencies: - es6-error "^4.0.1" - -request@^2.88.0: - version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== - -require-from-string@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" - integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - -resolve-cwd@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" - integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== - dependencies: - resolve-from "^5.0.0" - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw== - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - -resolve.exports@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.0.tgz#5ce842b94b05146c0e03076985d1d0e7e48c90c9" - integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== - -resolve@^1.10.0, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.0: - version "1.22.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" - integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== - dependencies: - is-core-module "^2.9.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -resolve@^2.0.0-next.3: - version "2.0.0-next.4" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" - integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ== - dependencies: - is-core-module "^2.9.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -rgb-regex@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" - integrity sha512-gDK5mkALDFER2YLqH6imYvK6g02gpNGM4ILDZ472EwWfXZnC2ZEpoB2ECXTyOVUKuk/bPJZMzwQPBYICzP+D3w== - -rgba-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" - integrity sha512-zgn5OjNQXLUTdq8m17KdaicF6w89TZs8ZU8y0AYENIU6wG8GG6LLm0yLSiPY8DmaYmHdgRW8rnApjoT0fQRfMg== - -rimraf@^3.0.0, rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -rollup-plugin-esbuild@^4.9.1: - version "4.9.1" - resolved "https://registry.yarnpkg.com/rollup-plugin-esbuild/-/rollup-plugin-esbuild-4.9.1.tgz#369d137e2b1542c8ee459495fd4f10de812666aa" - integrity sha512-qn/x7Wz9p3Xnva99qcb+nopH0d2VJwVnsxJTGEg+Sh2Z3tqQl33MhOwzekVo1YTKgv+yAmosjcBRJygMfGrtLw== - dependencies: - "@rollup/pluginutils" "^4.1.1" - debug "^4.3.3" - es-module-lexer "^0.9.3" - joycon "^3.0.1" - jsonc-parser "^3.0.0" - -rollup-plugin-ignore-import@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/rollup-plugin-ignore-import/-/rollup-plugin-ignore-import-1.3.2.tgz#5379eac73d2c7e389ebeb5b3a90ae4c15c15e6c8" - integrity sha512-q7yH2c+PKVfb61+MTXqqyBHIgflikumC7OEB+OfQWNsSmDqE5FLZLeewcBGl1VDmjDjSXuALXsaBjyIsl3oNmQ== - -rollup-plugin-livereload@^2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/rollup-plugin-livereload/-/rollup-plugin-livereload-2.0.5.tgz#4747fa292a2cceb0c972c573d71b3d66b4252b37" - integrity sha512-vqQZ/UQowTW7VoiKEM5ouNW90wE5/GZLfdWuR0ELxyKOJUIaj+uismPZZaICU4DnWPVjnpCDDxEqwU7pcKY/PA== - dependencies: - livereload "^0.9.1" - -rollup-plugin-scss@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-scss/-/rollup-plugin-scss-3.0.0.tgz#35ad0adc614217e0278e702d8a674820faa0929e" - integrity sha512-UldNaNHEon2a5IusHvj/Nnwc7q13YDvbFxz5pfNbHBNStxGoUNyM+0XwAA/UafJ1u8XRPGdBMrhWFthrrGZdWQ== - dependencies: - rollup-pluginutils "^2.3.3" - -rollup-plugin-serve@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-serve/-/rollup-plugin-serve-1.1.0.tgz#0654a57021a21b903340c69940f7463706e8288d" - integrity sha512-pYkSsuA0/psKqhhictkJw1c2klya5b+LlCvipWqI9OE1aG2M97mRumZCbBlry5CMEOzYBBgSDgd1694sNbmyIw== - dependencies: - mime ">=2.4.6" - opener "1" - -rollup-plugin-styles@^3.10.0: - version "3.14.1" - resolved "https://registry.yarnpkg.com/rollup-plugin-styles/-/rollup-plugin-styles-3.14.1.tgz#8a9d13885ac5c82f513099f567b94cff9379728c" - integrity sha512-0JodP26O3WZ8320X3sBn5S2SOPv9Al2tLyOmLco+H2UqLjbmycM9KWGypLjcDuIEWwa0oLYiXpViMmO2yyeqIA== - dependencies: - "@rollup/pluginutils" "^4.1.0" - "@types/cssnano" "^4.0.0" - cosmiconfig "^7.0.0" - cssnano "^4.1.10" - fs-extra "^9.1.0" - icss-utils "^5.1.0" - mime-types "^2.1.28" - p-queue "^6.6.2" - postcss "^8.2.4" - postcss-modules-extract-imports "^3.0.0" - postcss-modules-local-by-default "^4.0.0" - postcss-modules-scope "^3.0.0" - postcss-modules-values "^4.0.0" - postcss-value-parser "^4.1.0" - query-string "^6.13.8" - resolve "^1.19.0" - source-map "^0.7.3" - tslib "^2.1.0" - -rollup-plugin-summary@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/rollup-plugin-summary/-/rollup-plugin-summary-1.4.3.tgz#e36cd86284edc1079733da8213aef460c06322c6" - integrity sha512-m1xViwOlgocoIaaUX8AdWQVFHzti69MXqrdBsxFsXnQOIqtoU9KSNMZjlToAJvV8pjB85+boAw/P3Yu6F/VIaA== - dependencies: - brotli-size "^4.0.0" - cli-table3 "^0.6.1" - filesize "^8.0.7" - gzip-size "^7.0.0" - terser "^5.12.1" - -rollup-plugin-terser@^7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz#e8fbba4869981b2dc35ae7e8a502d5c6c04d324d" - integrity sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ== - dependencies: - "@babel/code-frame" "^7.10.4" - jest-worker "^26.2.1" - serialize-javascript "^4.0.0" - terser "^5.0.0" - -rollup-plugin-ts@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rollup-plugin-ts/-/rollup-plugin-ts-3.0.2.tgz#ee1a3f9ffe202ceff0b4d2f725fa268fa0c921bf" - integrity sha512-67qi2QTHewhLyKDG6fX3jpohWpmUPPIT/xJ7rsYK46X6MqmoWy64Ti0y8ygPfLv8mXDCdRZUofM3mTxDfCswRA== - dependencies: - "@rollup/pluginutils" "^4.2.1" - "@wessberg/stringutil" "^1.0.19" - ansi-colors "^4.1.3" - browserslist "^4.20.4" - browserslist-generator "^1.0.66" - compatfactory "^1.0.1" - crosspath "^2.0.0" - magic-string "^0.26.2" - ts-clone-node "^1.0.0" - tslib "^2.4.0" - -rollup-pluginutils@^2.3.3: - version "2.8.2" - resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" - integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== - dependencies: - estree-walker "^0.6.1" - -rollup@^2.59.0, rollup@^2.75.5: - version "2.75.7" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.75.7.tgz#221ff11887ae271e37dcc649ba32ce1590aaa0b9" - integrity sha512-VSE1iy0eaAYNCxEXaleThdFXqZJ42qDBatAwrfnPlENEZ8erQ+0LYX4JXOLPceWfZpV1VtZwZ3dFCuOZiSyFtQ== - optionalDependencies: - fsevents "~2.3.2" - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -"safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sass-graph@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-4.0.0.tgz#fff8359efc77b31213056dfd251d05dadc74c613" - integrity sha512-WSO/MfXqKH7/TS8RdkCX3lVkPFQzCgbqdGsmSKq6tlPU+GpGEsa/5aW18JqItnqh+lPtcjifqdZ/VmiILkKckQ== - dependencies: - glob "^7.0.0" - lodash "^4.17.11" - scss-tokenizer "^0.3.0" - yargs "^17.2.1" - -sax@~1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - -saxes@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" - integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== - dependencies: - xmlchars "^2.2.0" - -scss-tokenizer@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.3.0.tgz#ef7edc3bc438b25cd6ffacf1aa5b9ad5813bf260" - integrity sha512-14Zl9GcbBvOT9057ZKjpz5yPOyUWG2ojd9D5io28wHRYsOrs7U95Q+KNL87+32p8rc+LvDpbu/i9ZYjM9Q+FsQ== - dependencies: - js-base64 "^2.4.3" - source-map "^0.7.1" - -"semver@2 || 3 || 4 || 5": - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" - integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== - -semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7: - version "7.3.7" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" - integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== - dependencies: - lru-cache "^6.0.0" - -serialize-javascript@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" - integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== - dependencies: - randombytes "^2.1.0" - -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -should-equal@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/should-equal/-/should-equal-2.0.0.tgz#6072cf83047360867e68e98b09d71143d04ee0c3" - integrity sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA== - dependencies: - should-type "^1.4.0" - -should-format@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/should-format/-/should-format-3.0.3.tgz#9bfc8f74fa39205c53d38c34d717303e277124f1" - integrity sha512-hZ58adtulAk0gKtua7QxevgUaXTTXxIi8t41L3zo9AHvjXO1/7sdLECuHeIN2SRtYXpNkmhoUP2pdeWgricQ+Q== - dependencies: - should-type "^1.3.0" - should-type-adaptors "^1.0.1" - -should-type-adaptors@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz#401e7f33b5533033944d5cd8bf2b65027792e27a" - integrity sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA== - dependencies: - should-type "^1.3.0" - should-util "^1.0.0" - -should-type@^1.3.0, should-type@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/should-type/-/should-type-1.4.0.tgz#0756d8ce846dfd09843a6947719dfa0d4cff5cf3" - integrity sha512-MdAsTu3n25yDbIe1NeN69G4n6mUnJGtSJHygX3+oN0ZbO3DTiATnf7XnYJdGT42JCXurTb1JI0qOBR65shvhPQ== - -should-util@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/should-util/-/should-util-1.0.1.tgz#fb0d71338f532a3a149213639e2d32cbea8bcb28" - integrity sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g== - -should@^13.2.3: - version "13.2.3" - resolved "https://registry.yarnpkg.com/should/-/should-13.2.3.tgz#96d8e5acf3e97b49d89b51feaa5ae8d07ef58f10" - integrity sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ== - dependencies: - should-equal "^2.0.0" - should-format "^3.0.3" - should-type "^1.4.0" - should-type-adaptors "^1.0.1" - should-util "^1.0.0" - -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: - version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - -simple-concat@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" - integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== - -simple-get@^3.0.3: - version "3.1.1" - resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.1.tgz#cc7ba77cfbe761036fbfce3d021af25fc5584d55" - integrity sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA== - dependencies: - decompress-response "^4.2.0" - once "^1.3.1" - simple-concat "^1.0.0" - -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== - dependencies: - is-arrayish "^0.3.1" - -sisteransi@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -slice-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" - integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - -smart-buffer@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" - integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== - -socks-proxy-agent@^6.0.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz#2687a31f9d7185e38d530bef1944fe1f1496d6ce" - integrity sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ== - dependencies: - agent-base "^6.0.2" - debug "^4.3.3" - socks "^2.6.2" - -socks@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.6.2.tgz#ec042d7960073d40d94268ff3bb727dc685f111a" - integrity sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA== - dependencies: - ip "^1.1.5" - smart-buffer "^4.2.0" - -source-map-js@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" - integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== - -source-map-support@0.5.13: - version "0.5.13" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" - integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-support@~0.5.20: - version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -source-map@^0.7.1, source-map@^0.7.3: - version "0.7.4" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" - integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== - -sourcemap-codec@^1.4.8: - version "1.4.8" - resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" - integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== - -spawn-wrap@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-2.0.0.tgz#103685b8b8f9b79771318827aa78650a610d457e" - integrity sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg== - dependencies: - foreground-child "^2.0.0" - is-windows "^1.0.2" - make-dir "^3.0.0" - rimraf "^3.0.0" - signal-exit "^3.0.2" - which "^2.0.1" - -spdx-correct@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" - integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" - integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== - -spdx-expression-parse@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.11" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz#50c0d8c40a14ec1bf449bae69a0ea4685a9d9f95" - integrity sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g== - -split-on-first@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" - integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== - -sshpk@^1.7.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" - integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -ssri@^8.0.0, ssri@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" - integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== - dependencies: - minipass "^3.1.1" - -stable@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" - integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== - -stack-utils@^2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.5.tgz#d25265fca995154659dbbfba3b49254778d2fdd5" - integrity sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA== - dependencies: - escape-string-regexp "^2.0.0" - -stdout-stream@^1.4.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.1.tgz#5ac174cdd5cd726104aa0c0b2bd83815d8d535de" - integrity sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA== - dependencies: - readable-stream "^2.0.1" - -strict-uri-encode@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" - integrity sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ== - -string-length@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" - integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== - dependencies: - char-regex "^1.0.2" - strip-ansi "^6.0.0" - -"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string.prototype.matchall@^4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz#8e6ecb0d8a1fb1fda470d81acecb2dba057a481d" - integrity sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - get-intrinsic "^1.1.1" - has-symbols "^1.0.3" - internal-slot "^1.0.3" - regexp.prototype.flags "^1.4.1" - side-channel "^1.0.4" - -string.prototype.trimend@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz#914a65baaab25fbdd4ee291ca7dde57e869cb8d0" - integrity sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.19.5" - -string.prototype.trimstart@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz#5466d93ba58cfa2134839f81d7f42437e8c01fef" - integrity sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.19.5" - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== - -strip-bom@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" - integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - -strip-indent@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" - integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== - dependencies: - min-indent "^1.0.0" - -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -stylehacks@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" - integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.0.0, supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-color@^8.0.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -supports-hyperlinks@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" - integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== - dependencies: - has-flag "^4.0.0" - supports-color "^7.0.0" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -svgo@^1.0.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" - integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== - dependencies: - chalk "^2.4.1" - coa "^2.0.2" - css-select "^2.0.0" - css-select-base-adapter "^0.1.1" - css-tree "1.0.0-alpha.37" - csso "^4.0.2" - js-yaml "^3.13.1" - mkdirp "~0.5.1" - object.values "^1.1.0" - sax "~1.2.4" - stable "^0.1.8" - unquote "~1.1.1" - util.promisify "~1.0.0" - -symbol-tree@^3.2.4: - version "3.2.4" - resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" - integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== - -table@^6.0.9: - version "6.8.0" - resolved "https://registry.yarnpkg.com/table/-/table-6.8.0.tgz#87e28f14fa4321c3377ba286f07b79b281a3b3ca" - integrity sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA== - dependencies: - ajv "^8.0.1" - lodash.truncate "^4.4.2" - slice-ansi "^4.0.0" - string-width "^4.2.3" - strip-ansi "^6.0.1" - -tar@^6.0.2, tar@^6.1.11, tar@^6.1.2: - version "6.1.11" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" - integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== - dependencies: - chownr "^2.0.0" - fs-minipass "^2.0.0" - minipass "^3.0.0" - minizlib "^2.1.1" - mkdirp "^1.0.3" - yallist "^4.0.0" - -terminal-link@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" - integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== - dependencies: - ansi-escapes "^4.2.1" - supports-hyperlinks "^2.0.0" - -terser@^5.0.0: - version "5.14.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.14.1.tgz#7c95eec36436cb11cf1902cc79ac564741d19eca" - integrity sha512-+ahUAE+iheqBTDxXhTisdA8hgvbEG1hHOQ9xmNjeUJSoi6DU/gMrKNcfZjHkyY6Alnuyc+ikYJaxxfHkT3+WuQ== - dependencies: - "@jridgewell/source-map" "^0.3.2" - acorn "^8.5.0" - commander "^2.20.0" - source-map-support "~0.5.20" - -terser@^5.12.1: - version "5.14.2" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.14.2.tgz#9ac9f22b06994d736174f4091aa368db896f1c10" - integrity sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA== - dependencies: - "@jridgewell/source-map" "^0.3.2" - acorn "^8.5.0" - commander "^2.20.0" - source-map-support "~0.5.20" - -test-exclude@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" - integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== - dependencies: - "@istanbuljs/schema" "^0.1.2" - glob "^7.1.4" - minimatch "^3.0.4" - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== - -throat@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375" - integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w== - -timsort@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" - integrity sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A== - -tmpl@1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" - integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -tough-cookie@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" - integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg== - dependencies: - psl "^1.1.33" - punycode "^2.1.1" - universalify "^0.1.2" - -tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - -tr46@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9" - integrity sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA== - dependencies: - punycode "^2.1.1" - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - -trim-newlines@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" - integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== - -"true-case-path@^1.0.2": - version "1.0.3" - resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.3.tgz#f813b5a8c86b40da59606722b144e3225799f47d" - integrity sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew== - dependencies: - glob "^7.1.2" - -ts-clone-node@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/ts-clone-node/-/ts-clone-node-1.0.0.tgz#aaffa5478cf303471cec9c3c8169e117a0f87614" - integrity sha512-/cDYbr2HAXxFNeTT41c/xs/2bhLJjqnYheHsmA3AoHSt+n4JA4t0FL9Lk5O8kWnJ6jeB3kPcUoXIFtwERNzv6Q== - dependencies: - compatfactory "^1.0.1" - -tsconfig-paths@^3.14.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz#ba0734599e8ea36c862798e920bcf163277b137a" - integrity sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ== - dependencies: - "@types/json5" "^0.0.29" - json5 "^1.0.1" - minimist "^1.2.6" - strip-bom "^3.0.0" - -tslib@^1.8.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tslib@^2.1.0, tslib@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" - integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== - -tsutils@^3.17.1, tsutils@^3.21.0: - version "3.21.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" - integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== - dependencies: - tslib "^1.8.1" - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== - -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== - dependencies: - prelude-ls "~1.1.2" - -type-detect@4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" - integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== - -type-fest@^0.18.0: - version "0.18.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" - integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw== - -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - -type-fest@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" - integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== - -type-fest@^0.8.0, type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - -typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" - integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - dependencies: - is-typedarray "^1.0.0" - -typescript@^4.5.4, typescript@^4.7.4: - version "4.7.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.4.tgz#1a88596d1cf47d59507a1bcdfb5b9dfe4d488235" - integrity sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ== - -ua-parser-js@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.2.tgz#e2976c34dbfb30b15d2c300b2a53eac87c57a775" - integrity sha512-00y/AXhx0/SsnI51fTc0rLRmafiGOM4/O+ny10Ps7f+j/b8p/ZY11ytMgznXkOVo4GQ+KwQG5UQLkLGirsACRg== - -unbox-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" - integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== - dependencies: - call-bind "^1.0.2" - has-bigints "^1.0.2" - has-symbols "^1.0.3" - which-boxed-primitive "^1.0.2" - -unicode-canonical-property-names-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" - integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== - -unicode-match-property-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" - integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== - dependencies: - unicode-canonical-property-names-ecmascript "^2.0.0" - unicode-property-aliases-ecmascript "^2.0.0" - -unicode-match-property-value-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz#1a01aa57247c14c568b89775a54938788189a714" - integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw== - -unicode-property-aliases-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz#0a36cb9a585c4f6abd51ad1deddb285c165297c8" - integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ== - -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - integrity sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA== - -uniqs@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" - integrity sha512-mZdDpf3vBV5Efh29kMw5tXoup/buMgxLzOt/XKFKcVmi+15ManNQWr6HfZ2aiZTYlYixbdNJ0KFmIZIv52tHSQ== - -unique-filename@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" - integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== - dependencies: - unique-slug "^2.0.0" - -unique-slug@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" - integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== - dependencies: - imurmurhash "^0.1.4" - -universalify@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -universalify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== - -unquote@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" - integrity sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg== - -update-browserslist-db@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.3.tgz#6c47cb996f34afb363e924748e2f6e4d983c6fc1" - integrity sha512-ufSazemeh9Gty0qiWtoRpJ9F5Q5W3xdIPm1UZQqYQv/q0Nyb9EMHUB2lu+O9x1re9WsorpMAUu4Y6Lxcs5n+XQ== - dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" - -update-browserslist-db@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz#dbfc5a789caa26b1db8990796c2c8ebbce304824" - integrity sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA== - dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -utf-8-validate@^5.0.2: - version "5.0.9" - resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.9.tgz#ba16a822fbeedff1a58918f2a6a6b36387493ea3" - integrity sha512-Yek7dAy0v3Kl0orwMlvi7TPtiCNrdfHNd7Gcc/pLq4BLXqfAmd0J7OWMizUQnTTJsyjKn02mU7anqwfmUP4J8Q== - dependencies: - node-gyp-build "^4.3.0" - -util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -util.promisify@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" - integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.2" - has-symbols "^1.0.1" - object.getownpropertydescriptors "^2.1.0" - -uuid@^3.3.2: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -v8-compile-cache@^2.0.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" - integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== - -v8-to-istanbul@^9.0.0, v8-to-istanbul@^9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz#b6f994b0b5d4ef255e17a0d17dc444a9f5132fa4" - integrity sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w== - dependencies: - "@jridgewell/trace-mapping" "^0.3.12" - "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^1.6.0" - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -vendors@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" - integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -vite@^2.9.9: - version "2.9.12" - resolved "https://registry.yarnpkg.com/vite/-/vite-2.9.12.tgz#b1d636b0a8ac636afe9d83e3792d4895509a941b" - integrity sha512-suxC36dQo9Rq1qMB2qiRorNJtJAdxguu5TMvBHOc/F370KvqAe9t48vYp+/TbPKRNrMh/J55tOUmkuIqstZaew== - dependencies: - esbuild "^0.14.27" - postcss "^8.4.13" - resolve "^1.22.0" - rollup "^2.59.0" - optionalDependencies: - fsevents "~2.3.2" - -vscode-json-languageservice@^3.7.0: - version "3.11.0" - resolved "https://registry.yarnpkg.com/vscode-json-languageservice/-/vscode-json-languageservice-3.11.0.tgz#ad574b36c4346bd7830f1d34b5a5213d3af8d232" - integrity sha512-QxI+qV97uD7HHOCjh3MrM1TfbdwmTXrMckri5Tus1/FQiG3baDZb2C9Y0y8QThs7PwHYBIQXcAc59ZveCRZKPA== - dependencies: - jsonc-parser "^3.0.0" - vscode-languageserver-textdocument "^1.0.1" - vscode-languageserver-types "3.16.0-next.2" - vscode-nls "^5.0.0" - vscode-uri "^2.1.2" - -vscode-languageserver-textdocument@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.5.tgz#838769940ece626176ec5d5a2aa2d0aa69f5095c" - integrity sha512-1ah7zyQjKBudnMiHbZmxz5bYNM9KKZYz+5VQLj+yr8l+9w3g+WAhCkUkWbhMEdC5u0ub4Ndiye/fDyS8ghIKQg== - -vscode-languageserver-types@3.16.0-next.2: - version "3.16.0-next.2" - resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0-next.2.tgz#940bd15c992295a65eae8ab6b8568a1e8daa3083" - integrity sha512-QjXB7CKIfFzKbiCJC4OWC8xUncLsxo19FzGVp/ADFvvi87PlmBSCAtZI5xwGjF5qE0xkLf0jjKUn3DzmpDP52Q== - -vscode-nls@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-5.0.1.tgz#ba23fc4d4420d25e7f886c8e83cbdcec47aa48b2" - integrity sha512-hHQV6iig+M21lTdItKPkJAaWrxALQb/nqpVffakO4knJOh3DrU2SXOMzUzNgo1eADPzu3qSsJY1weCzvR52q9A== - -vscode-uri@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-2.1.2.tgz#c8d40de93eb57af31f3c715dd650e2ca2c096f1c" - integrity sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A== - -w3c-hr-time@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" - integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== - dependencies: - browser-process-hrtime "^1.0.0" - -w3c-xmlserializer@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-3.0.0.tgz#06cdc3eefb7e4d0b20a560a5a3aeb0d2d9a65923" - integrity sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg== - dependencies: - xml-name-validator "^4.0.0" - -walker@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" - integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== - dependencies: - makeerror "1.0.12" - -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== - -webidl-conversions@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" - integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== - -whatwg-encoding@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz#e7635f597fd87020858626805a2729fa7698ac53" - integrity sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg== - dependencies: - iconv-lite "0.6.3" - -whatwg-mimetype@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz#5fa1a7623867ff1af6ca3dc72ad6b8a4208beba7" - integrity sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q== - -whatwg-url@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-10.0.0.tgz#37264f720b575b4a311bd4094ed8c760caaa05da" - integrity sha512-CLxxCmdUby142H5FZzn4D8ikO1cmypvXVQktsgosNy4a4BHrDHeciBBGZhb0bNoR5/MltoCatso+vFjjGx8t0w== - dependencies: - tr46 "^3.0.0" - webidl-conversions "^7.0.0" - -whatwg-url@^11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-11.0.0.tgz#0a849eebb5faf2119b901bb76fd795c2848d4018" - integrity sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ== - dependencies: - tr46 "^3.0.0" - webidl-conversions "^7.0.0" - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q== - -which@^2.0.1, which@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -wide-align@^1.1.2, wide-align@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" - integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== - dependencies: - string-width "^1.0.2 || 2 || 3 || 4" - -word-wrap@^1.2.3, word-wrap@~1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -write-file-atomic@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" - integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== - dependencies: - imurmurhash "^0.1.4" - is-typedarray "^1.0.0" - signal-exit "^3.0.2" - typedarray-to-buffer "^3.1.5" - -write-file-atomic@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.1.tgz#9faa33a964c1c85ff6f849b80b42a88c2c537c8f" - integrity sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ== - dependencies: - imurmurhash "^0.1.4" - signal-exit "^3.0.7" - -ws@^7.4.3: - version "7.5.8" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.8.tgz#ac2729881ab9e7cbaf8787fe3469a48c5c7f636a" - integrity sha512-ri1Id1WinAX5Jqn9HejiGb8crfRio0Qgu8+MtL36rlTA6RLsMdWt1Az/19A2Qij6uSHUMphEFaTKa4WG+UNHNw== - -ws@^8.2.3: - version "8.8.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.8.0.tgz#8e71c75e2f6348dbf8d78005107297056cb77769" - integrity sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ== - -xml-name-validator@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835" - integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== - -xmlchars@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" - integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== - -y18n@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" - integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yaml@^1.10.0: - version "1.10.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" - integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== - -yargs-parser@^18.1.2: - version "18.1.3" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" - integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^20.2.3: - version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== - -yargs-parser@^21.0.0: - version "21.0.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.1.tgz#0267f286c877a4f0f728fceb6f8a3e4cb95c6e35" - integrity sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg== - -yargs@^15.0.2: - version "15.4.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" - integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== - dependencies: - cliui "^6.0.0" - decamelize "^1.2.0" - find-up "^4.1.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^4.2.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^18.1.2" - -yargs@^17.2.1, yargs@^17.3.1: - version "17.5.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.5.1.tgz#e109900cab6fcb7fd44b1d8249166feb0b36e58e" - integrity sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.0.0"