{"version":3,"file":"2487-bundle.js","mappings":"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","sources":["webpack://flippingbooksite/./node_modules/@flippingbook/web.utils/src/service.ts","webpack://flippingbooksite/./node_modules/@flippingbook/web.utils/src/types.ts","webpack://flippingbooksite/./node_modules/deep-freeze/index.js","webpack://flippingbooksite/./sources/src/components/button/index.ts","webpack://flippingbooksite/./sources/src/components/form/control.ts","webpack://flippingbooksite/./sources/src/components/form/index.ts","webpack://flippingbooksite/./sources/src/components/form/input.ts","webpack://flippingbooksite/./sources/src/components/form/validators.ts","webpack://flippingbooksite/./sources/src/pages/bem.ts","webpack://flippingbooksite/./node_modules/tslib/tslib.es6.mjs"],"sourcesContent":["import { readonly } from './types';\n\nexport interface IService {\n    listen(cb: () => void): void;\n    unlisten(cb: () => void): void;\n}\n\nexport abstract class Listenable {\n    private readonly listeners = new Set<() => void>();\n\n    listen(cb: () => void) {\n        this.listeners.add(cb);\n    }\n\n    unlisten(cb: () => void) {\n        this.listeners.delete(cb);\n    }\n\n    protected notify() {\n        this.listeners.forEach((l) => l());\n    }\n}\n\nexport abstract class Parametrized<P> {\n    protected params: P;\n\n    constructor(params: P) {\n        this.params = params;\n    }\n}\n\nexport abstract class ListenableParametrized<P> extends Listenable {\n    protected params: P;\n\n    constructor(params: P) {\n        super();\n        this.params = params;\n    }\n}\n\nexport interface IServiceDataStorage<T> extends IService {\n    getData(): Readonly<T> | null;\n    updateData(update: T): Readonly<T>;\n    overwriteData(newData: T | null): Readonly<T> | null;\n}\n\nexport class ServiceDataStorage<T> extends Listenable implements IServiceDataStorage<T> {\n    private data: Readonly<T> | null = null;\n\n    getData(): Readonly<T> | null {\n        return this.data === null ? null : readonly(this.data);\n    }\n\n    updateData(update: T): Readonly<T> {\n        this.data = {\n            ...(this.data || {}),\n            ...update,\n        };\n        this.notify();\n        return readonly(this.data);\n    }\n\n    overwriteData(newData: T | null): Readonly<T> | null {\n        this.data = newData;\n        this.notify();\n        return this.data === null ? null : readonly(this.data);\n    }\n}\n\nexport abstract class AbstractService<T extends object, P = Record<string, unknown>>\n    extends ListenableParametrized<P & { serviceStorage?: IServiceDataStorage<T> }>\n    implements IService\n{\n    protected storage: IServiceDataStorage<T>;\n\n    constructor(params: P & { serviceStorage?: IServiceDataStorage<T> }) {\n        super(params);\n\n        this.storage = params.serviceStorage ?? new ServiceDataStorage<T>();\n        this.storage.listen(() => this.notify());\n    }\n\n    protected get data(): Readonly<T> | null {\n        return this.storage.getData();\n    }\n\n    protected updateData(update: T): Readonly<T> {\n        return this.storage.updateData(update);\n    }\n\n    protected overwriteData(newData: T | null): Readonly<T> | null {\n        return this.storage.overwriteData(newData);\n    }\n}\n","import deepFreeze from 'deep-freeze';\n\nexport type Subset<Parent, Sub extends Parent> = Extract<Parent, Sub>;\nexport type Overwrite<T, U> = Omit<T, keyof U> & U;\n\nexport function readonly<T extends Record<string, unknown>>(source: T): Readonly<T> {\n    return deepFreeze(source) as unknown as Readonly<T>;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AllKeys<U> = U extends any ? keyof U : never;\n\nexport type ExclusifyUnion<U> = [U] extends [infer V]\n    ? // eslint-disable-next-line @typescript-eslint/no-explicit-any\n      V extends any\n        ? V & { [P in Exclude<AllKeys<U>, keyof V>]?: never }\n        : never\n    : never;\n\nexport type NullablePartial<T> = {\n    [P in keyof T]?: T[P] | null;\n};\n","module.exports = function deepFreeze (o) {\n  Object.freeze(o);\n\n  Object.getOwnPropertyNames(o).forEach(function (prop) {\n    if (o.hasOwnProperty(prop)\n    && o[prop] !== null\n    && (typeof o[prop] === \"object\" || typeof o[prop] === \"function\")\n    && !Object.isFrozen(o[prop])) {\n      deepFreeze(o[prop]);\n    }\n  });\n  \n  return o;\n};\n","import { BemElement } from '../../pages/bem';\r\n\r\nexport abstract class Clickable<P extends Clickable.Params, E extends HTMLElement = HTMLElement> extends BemElement<\r\n    P,\r\n    E\r\n> {\r\n    onDescribe() {\r\n        super.onDescribe();\r\n        if (this.params.onClick) {\r\n            this.el.addEventListener('click', this.params.onClick);\r\n        }\r\n    }\r\n}\r\n\r\nexport namespace Clickable {\r\n    export interface Params {\r\n        onClick: ((ev: MouseEvent) => void) | (() => void);\r\n    }\r\n}\r\n\r\nexport class Button extends Clickable<Button.Params, HTMLButtonElement> {}\r\n\r\nexport namespace Button {\r\n    export interface Params extends Clickable.Params {}\r\n}\r\n\r\nexport class LinkButton extends Clickable<LinkButton.Params, HTMLAnchorElement> {}\r\n\r\nexport namespace LinkButton {\r\n    export interface Params extends Clickable.Params {}\r\n}\r\n","import { BemBlock } from '../../pages/bem';\r\n\r\nexport abstract class Control<P extends Control.Params, E extends HTMLElement = HTMLElement> extends BemBlock<P, E> {\r\n    protected validationEnabled = false;\r\n\r\n    validate(): boolean {\r\n        this.validationEnabled = true;\r\n        const value = this.getValue();\r\n        const errorMessage = this.params.validation ? this.params.validation(value) : null;\r\n        this.setError(errorMessage);\r\n        return !errorMessage;\r\n    }\r\n\r\n    setError(errorMessage: string | null) {\r\n        const isValid = !(typeof errorMessage === 'string');\r\n        this.applyModifiers({ invalid: !isValid });\r\n        this.params.onValidate?.(isValid);\r\n        if (errorMessage) {\r\n            this.displayError(errorMessage);\r\n        }\r\n    }\r\n\r\n    protected markValid() {\r\n        this.applyModifiers({ invalid: false });\r\n    }\r\n\r\n    abstract getValue(): string;\r\n    abstract getName(): string;\r\n\r\n    protected abstract displayError(message: string): void;\r\n}\r\n\r\nexport namespace Control {\r\n    export interface Params {\r\n        validation?: Validator;\r\n        onValidate?: (isValid: boolean) => void;\r\n    }\r\n\r\n    export interface Validator {\r\n        (value: string): string | null;\r\n    }\r\n}\r\n","import { BemBlock } from '../../pages/bem';\r\n\r\nimport type { Control } from './control';\r\nimport * as validators from './validators';\r\n\r\nexport { Input, TextArea, Select } from './input';\r\n\r\nexport { validators };\r\n\r\nexport abstract class Form<P = Record<string, never>> extends BemBlock<P, HTMLElement> {\r\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n    private controls: Control<any, any>[] = [];\r\n\r\n    onDescribe() {\r\n        this.el.setAttribute('novalidate', 'novalidate');\r\n        this.el.addEventListener('submit', this.submitHandler.bind(this));\r\n    }\r\n\r\n    protected describeControl<T extends Control.Params, E extends HTMLElement, I extends Control<T, E>>(\r\n        element: string,\r\n        controlConstructor: BemBlock.Constructor<T, E, I>,\r\n        params: T,\r\n    ): I {\r\n        const createdElement = this.describeBlock(element, controlConstructor, params);\r\n        this.controls.push(createdElement);\r\n        return createdElement;\r\n    }\r\n\r\n    protected validate(): boolean {\r\n        // We use reduce() instead of every() because it is important to fire\r\n        // every control's validate() method so they show actual validation status.\r\n        return this.controls.reduce((result, c) => c.validate() && result, true as boolean);\r\n    }\r\n\r\n    private collectFieldValues(): Form.Fields {\r\n        return this.controls.reduce(\r\n            (result, c) => ({\r\n                ...result,\r\n                [c.getName()]: c.getValue(),\r\n            }),\r\n            {},\r\n        );\r\n    }\r\n\r\n    private submitHandler(e: Event) {\r\n        e.preventDefault();\r\n        if (this.validate()) {\r\n            this.onSubmit(this.collectFieldValues());\r\n        }\r\n    }\r\n\r\n    abstract onSubmit(fields: Form.Fields): void;\r\n}\r\n\r\nexport namespace Form {\r\n    export interface Fields {\r\n        [name: string]: string;\r\n    }\r\n}\r\n","import { BemElement } from '../../pages/bem';\r\n\r\nimport { Control } from './control';\r\n\r\nabstract class TextInputElement<\r\n    P extends TextInputElement.Params,\r\n    E extends TextInputElement.Element,\r\n> extends BemElement<P, E> {\r\n    getValue() {\r\n        return this.el.value;\r\n    }\r\n\r\n    getName() {\r\n        return this.el.name;\r\n    }\r\n\r\n    setValue(value: string) {\r\n        this.el.value = value;\r\n    }\r\n\r\n    onDescribe() {\r\n        this.el.addEventListener('input', () => this.params.onChange(this.el.value));\r\n\r\n        if (this.params.onBlur) {\r\n            this.el.addEventListener('blur', this.params.onBlur);\r\n        }\r\n    }\r\n}\r\n\r\nnamespace TextInputElement {\r\n    export type Element = HTMLInputElement | HTMLTextAreaElement;\r\n\r\n    export interface Params {\r\n        onChange: (value: string) => void;\r\n        onBlur?: () => void;\r\n    }\r\n}\r\n\r\nabstract class SelectInputElement<P extends SelectInputElement.Params, E extends HTMLSelectElement> extends BemElement<\r\n    P,\r\n    E\r\n> {\r\n    getValue() {\r\n        return this.el.value;\r\n    }\r\n\r\n    getName() {\r\n        return this.el.name;\r\n    }\r\n\r\n    getSelectedOption() {\r\n        return this.el.options[this.el.selectedIndex];\r\n    }\r\n\r\n    setValue(value: string) {\r\n        this.el.value = value;\r\n    }\r\n\r\n    onDescribe() {\r\n        this.el.addEventListener('change', () => this.params.onChange(this.el.value));\r\n        if (this.params.onBlur) {\r\n            this.el.addEventListener('blur', this.params.onBlur);\r\n        }\r\n    }\r\n}\r\n\r\nnamespace SelectInputElement {\r\n    export interface Params {\r\n        onChange: (value: string) => void;\r\n        onBlur?: () => void;\r\n    }\r\n}\r\n\r\nclass TextAreaElement extends TextInputElement<TextInputElement.Params, HTMLTextAreaElement> {}\r\n\r\nclass InputElement extends TextInputElement<TextInputElement.Params, HTMLInputElement> {}\r\n\r\nexport class SelectElement extends SelectInputElement<SelectInputElement.Params, HTMLSelectElement> {}\r\n\r\nclass ErrorMessage extends BemElement<Record<string, never>, HTMLParagraphElement> {\r\n    setMessage(message: string) {\r\n        this.el.innerText = message;\r\n    }\r\n}\r\n\r\nexport abstract class TextInputControl<\r\n    P extends TextInputControl.Params,\r\n    E extends HTMLElement = HTMLElement,\r\n> extends Control<P, E> {\r\n    private isPlaceholderUp: boolean | undefined = undefined;\r\n    private errorMessage = this.describeElement('error-message', ErrorMessage, {});\r\n\r\n    private floatingPlaceholder = this.element('floating-placeholder');\r\n\r\n    protected updateFloatingPlaceholderStateByValue(value: string) {\r\n        if (this.floatingPlaceholder) {\r\n            const isPlaceholderUp = value !== '';\r\n\r\n            if (isPlaceholderUp !== this.isPlaceholderUp) {\r\n                this.applyModifiers({ 'placeholder-up': isPlaceholderUp });\r\n                this.isPlaceholderUp = isPlaceholderUp;\r\n            }\r\n        }\r\n    }\r\n\r\n    protected onChange(value: string) {\r\n        // clear invalid flag if persent\r\n        this.markValid();\r\n        this.params.onChange?.(value);\r\n        this.updateFloatingPlaceholderStateByValue(value);\r\n    }\r\n\r\n    protected onBlur() {\r\n        if (this.validationEnabled) {\r\n            this.validate();\r\n        }\r\n        this.params.onBlur?.();\r\n    }\r\n\r\n    protected displayError(errorMessage: string) {\r\n        this.errorMessage.setMessage(errorMessage);\r\n    }\r\n\r\n    setFloatingPlaceholder(value: string) {\r\n        if (this.floatingPlaceholder) {\r\n            this.floatingPlaceholder.innerText = value;\r\n        }\r\n    }\r\n}\r\n\r\nexport namespace TextInputControl {\r\n    export interface Params extends Control.Params {\r\n        onChange?: (value: string) => void;\r\n        onBlur?: () => void;\r\n    }\r\n}\r\n\r\nexport class Checkbox<\r\n    P extends Control.Params = Control.Params,\r\n    E extends HTMLInputElement = HTMLInputElement,\r\n> extends Control<P, E> {\r\n    protected blockName(): string {\r\n        return 'S-Checkbox';\r\n    }\r\n\r\n    getValue(): string {\r\n        return this.el.checked.toString();\r\n    }\r\n\r\n    getName(): string {\r\n        return this.el.name;\r\n    }\r\n\r\n    displayError() {}\r\n}\r\n\r\nexport class Input<P extends TextInputControl.Params = TextInputControl.Params> extends TextInputControl<P> {\r\n    protected blockName(): string {\r\n        return 'S-Input';\r\n    }\r\n\r\n    private inputParams: TextInputElement.Params = {\r\n        onChange: (value: string) => this.onChange(value),\r\n        onBlur: () => this.onBlur(),\r\n    };\r\n\r\n    private input = this.describeElement('input', InputElement, this.inputParams);\r\n\r\n    getValue(): string {\r\n        return this.input.getValue();\r\n    }\r\n\r\n    getName(): string {\r\n        return this.input.getName();\r\n    }\r\n\r\n    setValue(value: string) {\r\n        this.input.setValue(value);\r\n        this.updateFloatingPlaceholderStateByValue(value);\r\n    }\r\n}\r\n\r\nexport class TextArea<P extends TextInputControl.Params = TextInputControl.Params> extends TextInputControl<P> {\r\n    protected blockName(): string {\r\n        return 'S-TextArea';\r\n    }\r\n\r\n    private textAreaParams: TextInputElement.Params = {\r\n        onChange: (value: string) => this.onChange(value),\r\n        onBlur: () => this.onBlur(),\r\n    };\r\n\r\n    private textArea = this.describeElement('input', TextAreaElement, this.textAreaParams);\r\n\r\n    getValue(): string {\r\n        return this.textArea.getValue();\r\n    }\r\n\r\n    getName(): string {\r\n        return this.textArea.getName();\r\n    }\r\n\r\n    setValue(value: string) {\r\n        this.textArea.setValue(value);\r\n        this.updateFloatingPlaceholderStateByValue(value);\r\n    }\r\n}\r\n\r\nexport class Select<P extends TextInputControl.Params = TextInputControl.Params> extends TextInputControl<P> {\r\n    protected blockName(): string {\r\n        return 'S-Select';\r\n    }\r\n\r\n    private selectParams: TextInputElement.Params = {\r\n        onChange: (value: string) => this.onChange(value),\r\n        onBlur: () => this.onBlur(),\r\n    };\r\n\r\n    private select = this.describeElement('input', SelectElement, this.selectParams);\r\n\r\n    getValue(): string {\r\n        return this.select.getValue();\r\n    }\r\n\r\n    getName(): string {\r\n        return this.select.getName();\r\n    }\r\n\r\n    getSelectedOption() {\r\n        return this.select.getSelectedOption();\r\n    }\r\n}\r\n","// TODO: Move whole validation microframework to web.utils ?\r\n\r\nexport interface ValidatorFactory {\r\n    (message: string): Validator;\r\n}\r\n\r\nexport interface Validator {\r\n    (value?: string): string | null;\r\n}\r\n\r\nexport const required: ValidatorFactory = (message: string) => (value?: string) =>\r\n    value == null || value === '' ? message : null;\r\n\r\nexport const notRequired =\r\n    (validator: (value: string) => string | null): Validator =>\r\n    (value?: string) => {\r\n        if (value == null || value === '') {\r\n            return null;\r\n        }\r\n        return validator(value);\r\n    };\r\n\r\nconst EMAIL_REGEX = /.+@.+\\..+/;\r\nexport const email: ValidatorFactory = (message: string) =>\r\n    notRequired((value) => (EMAIL_REGEX.test(value) ? null : message));\r\n\r\nexport const isNumber: ValidatorFactory = (message: string) =>\r\n    notRequired((value) => (isNaN(Number(value)) ? message : null));\r\n\r\nexport const isInteger: ValidatorFactory = (message: string) =>\r\n    notRequired((value) => (Number.isInteger(Number(value)) ? null : message));\r\n\r\nexport const hasDigitsOnly: ValidatorFactory = (message: string) =>\r\n    notRequired((value) => (/^\\d+$/.test(value) ? null : message));\r\n\r\nexport const max =\r\n    (maxValue: number): ValidatorFactory =>\r\n    (message: string) =>\r\n        notRequired((value) => (Number(value) <= maxValue ? null : message));\r\n\r\nexport const min =\r\n    (minValue: number): ValidatorFactory =>\r\n    (message: string) =>\r\n        notRequired((value) => (Number(value) >= minValue ? null : message));\r\n\r\nexport const minLength =\r\n    (minLength: number): ValidatorFactory =>\r\n    (message: string) =>\r\n        notRequired((value) => (value.length >= minLength ? null : message));\r\n\r\nexport const maxLength =\r\n    (maxLength: number): ValidatorFactory =>\r\n    (message: string) =>\r\n        notRequired((value) => (value.length <= maxLength ? null : message));\r\n\r\nconst PHONE_REGEX = /\\+?\\d{1,4}?[-.\\s]?\\(?\\d{1,3}?\\)?[-.\\s]?\\d{1,4}[-.\\s]?\\d{1,4}[-.\\s]?\\d{1,9}/;\r\nexport const phone: ValidatorFactory = (message: string) =>\r\n    notRequired((value) => (PHONE_REGEX.test(value) ? null : message));\r\n\r\nexport const combine =\r\n    (...validators: ValidatorFactory[]): ValidatorFactory =>\r\n    (message: string) =>\r\n    (value?: string) =>\r\n        validators.map((vf) => vf(message)).some((v) => Boolean(v(value))) ? message : null;\r\n\r\nexport const chain =\r\n    (...validators: Validator[]): Validator =>\r\n    (value?: string) =>\r\n        validators.map((v) => v(value)).find((m) => m !== null) || null;\r\n","import { Parametrized } from '@flippingbook/web.utils/dist/service';\r\n\r\nexport interface DescribeOptions {\r\n    index?: number;\r\n}\r\n\r\nabstract class Modifiable<P, E extends HTMLElement> extends Parametrized<P> {\r\n    protected readonly el: E;\r\n\r\n    constructor(el: E, params: P) {\r\n        super(params);\r\n        this.el = el;\r\n    }\r\n\r\n    protected applyModifiers(modifiers: BemBlock.ModifiersMap) {\r\n        const modifierClassName = (mod: string) => `${this.baseClassName()}--${mod}`;\r\n        const { toAdd, toRemove } = Object.keys(modifiers).reduce(\r\n            (acc, mod) => {\r\n                (modifiers[mod] ? acc.toAdd : acc.toRemove).push(modifierClassName(mod));\r\n                return acc;\r\n            },\r\n            {\r\n                toAdd: [] as string[],\r\n                toRemove: [] as string[],\r\n            },\r\n        );\r\n\r\n        toRemove.forEach((item) => this.el.classList.remove(item));\r\n        toAdd.forEach((item) => this.el.classList.add(item));\r\n    }\r\n\r\n    protected abstract baseClassName(): string;\r\n}\r\n\r\nexport abstract class BemBlock<P = Record<string, never>, E extends HTMLElement = HTMLElement> extends Modifiable<\r\n    P,\r\n    E\r\n> {\r\n    constructor(el: E, params: P) {\r\n        super(el, params);\r\n        this.checkClassName();\r\n    }\r\n\r\n    find(selector: string): HTMLElement | null {\r\n        return this.el.querySelector(selector);\r\n    }\r\n\r\n    ensure(selector: string): HTMLElement {\r\n        const found = this.find(selector);\r\n        if (!found) {\r\n            throw new Error(`Could not find ${selector}`);\r\n        }\r\n        return found;\r\n    }\r\n\r\n    findAll(selector: string): NodeListOf<HTMLElement> {\r\n        return this.el.querySelectorAll(selector);\r\n    }\r\n\r\n    elementClass(name: string, modifiers: BemBlock.ModifiersMap = {}): string {\r\n        const elementClass = `${this.blockName()}__${name}`;\r\n        return BemBlock.attachModifiers(elementClass, modifiers);\r\n    }\r\n\r\n    element(name: string): HTMLElement | null {\r\n        return this.find(`.${this.elementClass(name)}`);\r\n    }\r\n\r\n    allElements(name: string): HTMLElement[] {\r\n        return Array.from(this.findAll(`.${this.elementClass(name)}`));\r\n    }\r\n\r\n    ensureElement(name: string): HTMLElement {\r\n        return this.ensure(`.${this.elementClass(name)}`);\r\n    }\r\n\r\n    private static attachModifiers(className: string, modifiers: BemBlock.ModifiersMap) {\r\n        const selectedModifiers = Object.keys(modifiers).reduce((acc, mod) => {\r\n            return modifiers[mod] ? [...acc, `${className}--${mod}`] : acc;\r\n        }, [] as string[]);\r\n        const modifierClasses = selectedModifiers.join(' ');\r\n        return modifierClasses ? `${className} ${modifierClasses}` : className;\r\n    }\r\n\r\n    private checkClassName() {\r\n        if (!this.el.className.includes(this.blockName())) {\r\n            console.warn(`${this.el.className} does not include block name ${this.blockName()}`);\r\n        }\r\n    }\r\n\r\n    protected className(modifiers: BemBlock.ModifiersMap = {}): string {\r\n        return BemBlock.attachModifiers(this.blockName(), modifiers);\r\n    }\r\n\r\n    protected describeBlock<T, E extends HTMLElement, I extends BemBlock<T, E>>(\r\n        element: string,\r\n        BlockConstructor: BemBlock.Constructor<T, E, I>,\r\n        params: T,\r\n    ): I {\r\n        const foundElement = this.ensureElement(element);\r\n        const mountPoint = foundElement.firstElementChild as E;\r\n        if (!mountPoint) {\r\n            throw new Error(`Cannot describe empty element contents of ${foundElement.className}`);\r\n        }\r\n        const createdBlock = new BlockConstructor(mountPoint, params);\r\n        createdBlock.onDescribe();\r\n        return createdBlock;\r\n    }\r\n\r\n    protected describeAllBlocks<T, E extends HTMLElement, I extends BemBlock<T, E>>(\r\n        element: string,\r\n        BlockConstructor: BemBlock.Constructor<T, E, I>,\r\n        params: T,\r\n    ): I[] {\r\n        const elements = this.allElements(element);\r\n        return elements.map((element, index) => {\r\n            const mountPoint = element.firstElementChild as E;\r\n            if (!mountPoint) {\r\n                throw new Error(`Cannot describe empty element contents of ${element.className}`);\r\n            }\r\n            const createdBlock = new BlockConstructor(mountPoint, params);\r\n            createdBlock.onDescribe({ index });\r\n            return createdBlock;\r\n        });\r\n    }\r\n\r\n    protected describeElement<T, E extends HTMLElement, I extends BemElement<T, E>>(\r\n        element: string,\r\n        ElementConstructor: BemElement.Constructor<T, E, I>,\r\n        params: T,\r\n    ): I {\r\n        const targetEl = this.ensureElement(element) as E;\r\n        const createdElement = new ElementConstructor(targetEl, element, this.elementClass(element), params);\r\n        createdElement.onDescribe();\r\n        return createdElement;\r\n    }\r\n\r\n    protected describeAllElements<T, E extends HTMLElement, I extends BemElement<T, E>>(\r\n        elementName: string,\r\n        ElementConstructor: BemElement.Constructor<T, E, I>,\r\n        params: T,\r\n    ): I[] {\r\n        const elements = this.allElements(elementName);\r\n        return elements.map((element, index) => {\r\n            const createdElement = new ElementConstructor(\r\n                element as E,\r\n                elementName,\r\n                this.elementClass(elementName),\r\n                params,\r\n            );\r\n            createdElement.onDescribe({ index });\r\n            return createdElement;\r\n        });\r\n    }\r\n\r\n    protected abstract blockName(): string;\r\n\r\n    protected baseClassName(): string {\r\n        return this.blockName();\r\n    }\r\n\r\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n    onDescribe(options?: DescribeOptions) {}\r\n}\r\n\r\nexport namespace BemBlock {\r\n    export interface ModifiersMap {\r\n        [modifier: string]: boolean;\r\n    }\r\n\r\n    export interface Constructor<P, E extends HTMLElement, I extends BemBlock<P, E>> {\r\n        new (el: E, params: P): I;\r\n    }\r\n}\r\n\r\nexport abstract class BemElement<P = Record<string, never>, E extends HTMLElement = HTMLElement> extends Modifiable<\r\n    P,\r\n    E\r\n> {\r\n    protected readonly elementClassName: string;\r\n    protected readonly elementName: string;\r\n\r\n    constructor(el: E, elementName: string, elementClassName: string, params: P) {\r\n        super(el, params);\r\n        this.elementName = elementName;\r\n        this.elementClassName = elementClassName;\r\n        this.checkClassName();\r\n    }\r\n\r\n    private checkClassName() {\r\n        if (!this.el.className.includes(this.elementName)) {\r\n            console.warn(`${this.el.className} does not include element name ${this.elementName}`);\r\n        }\r\n    }\r\n\r\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n    onDescribe(options?: DescribeOptions) {}\r\n\r\n    protected baseClassName(): string {\r\n        return this.elementClassName;\r\n    }\r\n}\r\n\r\nexport namespace BemElement {\r\n    export interface Constructor<P, E extends HTMLElement, I extends BemElement<P, E>> {\r\n        new (el: E, elementName: string, elementClassName: string, params: P): I;\r\n    }\r\n}\r\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n  extendStatics = Object.setPrototypeOf ||\n      ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n      function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n  return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n  if (typeof b !== \"function\" && b !== null)\n      throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n  extendStatics(d, b);\n  function __() { this.constructor = d; }\n  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n  __assign = Object.assign || function __assign(t) {\n      for (var s, i = 1, n = arguments.length; i < n; i++) {\n          s = arguments[i];\n          for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n      }\n      return t;\n  }\n  return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n      t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n      for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n          if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n              t[p[i]] = s[p[i]];\n      }\n  return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n  return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n  return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n  function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n  var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n  var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n  var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n  var _, done = false;\n  for (var i = decorators.length - 1; i >= 0; i--) {\n      var context = {};\n      for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n      for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n      context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n      var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n      if (kind === \"accessor\") {\n          if (result === void 0) continue;\n          if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n          if (_ = accept(result.get)) descriptor.get = _;\n          if (_ = accept(result.set)) descriptor.set = _;\n          if (_ = accept(result.init)) initializers.unshift(_);\n      }\n      else if (_ = accept(result)) {\n          if (kind === \"field\") initializers.unshift(_);\n          else descriptor[key] = _;\n      }\n  }\n  if (target) Object.defineProperty(target, contextIn.name, descriptor);\n  done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n  var useValue = arguments.length > 2;\n  for (var i = 0; i < initializers.length; i++) {\n      value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n  }\n  return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n  return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n  if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n  return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n  if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n  return new (P || (P = Promise))(function (resolve, reject) {\n      function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n      function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n      function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n      step((generator = generator.apply(thisArg, _arguments || [])).next());\n  });\n}\n\nexport function __generator(thisArg, body) {\n  var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n  return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n  function verb(n) { return function (v) { return step([n, v]); }; }\n  function step(op) {\n      if (f) throw new TypeError(\"Generator is already executing.\");\n      while (g && (g = 0, op[0] && (_ = 0)), _) try {\n          if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n          if (y = 0, t) op = [op[0] & 2, t.value];\n          switch (op[0]) {\n              case 0: case 1: t = op; break;\n              case 4: _.label++; return { value: op[1], done: false };\n              case 5: _.label++; y = op[1]; op = [0]; continue;\n              case 7: op = _.ops.pop(); _.trys.pop(); continue;\n              default:\n                  if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n                  if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n                  if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n                  if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n                  if (t[2]) _.ops.pop();\n                  _.trys.pop(); continue;\n          }\n          op = body.call(thisArg, _);\n      } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n      if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n  }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  var desc = Object.getOwnPropertyDescriptor(m, k);\n  if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n  }\n  Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n  for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n  var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n  if (m) return m.call(o);\n  if (o && typeof o.length === \"number\") return {\n      next: function () {\n          if (o && i >= o.length) o = void 0;\n          return { value: o && o[i++], done: !o };\n      }\n  };\n  throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n  var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n  if (!m) return o;\n  var i = m.call(o), r, ar = [], e;\n  try {\n      while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n  }\n  catch (error) { e = { error: error }; }\n  finally {\n      try {\n          if (r && !r.done && (m = i[\"return\"])) m.call(i);\n      }\n      finally { if (e) throw e.error; }\n  }\n  return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n  for (var ar = [], i = 0; i < arguments.length; i++)\n      ar = ar.concat(__read(arguments[i]));\n  return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n  for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n  for (var r = Array(s), k = 0, i = 0; i < il; i++)\n      for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n          r[k] = a[j];\n  return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n      if (ar || !(i in from)) {\n          if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n          ar[i] = from[i];\n      }\n  }\n  return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n  return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var g = generator.apply(thisArg, _arguments || []), i, q = [];\n  return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n  function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n  function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n  function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n  function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n  function fulfill(value) { resume(\"next\", value); }\n  function reject(value) { resume(\"throw\", value); }\n  function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n  var i, p;\n  return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n  function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var m = o[Symbol.asyncIterator], i;\n  return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n  function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n  function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n  if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n  return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n  Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n  o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n  if (mod && mod.__esModule) return mod;\n  var result = {};\n  if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n  __setModuleDefault(result, mod);\n  return result;\n}\n\nexport function __importDefault(mod) {\n  return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n  return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n  if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n  return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n  if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n  return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n  if (value !== null && value !== void 0) {\n    if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n    var dispose, inner;\n    if (async) {\n      if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n      dispose = value[Symbol.asyncDispose];\n    }\n    if (dispose === void 0) {\n      if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n      dispose = value[Symbol.dispose];\n      if (async) inner = dispose;\n    }\n    if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n    if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n    env.stack.push({ value: value, dispose: dispose, async: async });\n  }\n  else if (async) {\n    env.stack.push({ async: true });\n  }\n  return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n  var e = new Error(message);\n  return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n  function fail(e) {\n    env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n    env.hasError = true;\n  }\n  var r, s = 0;\n  function next() {\n    while (r = env.stack.pop()) {\n      try {\n        if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n        if (r.dispose) {\n          var result = r.dispose.call(r.value);\n          if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n        }\n        else s |= 1;\n      }\n      catch (e) {\n        fail(e);\n      }\n    }\n    if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n    if (env.hasError) throw env.error;\n  }\n  return next();\n}\n\nexport default {\n  __extends,\n  __assign,\n  __rest,\n  __decorate,\n  __param,\n  __metadata,\n  __awaiter,\n  __generator,\n  __createBinding,\n  __exportStar,\n  __values,\n  __read,\n  __spread,\n  __spreadArrays,\n  __spreadArray,\n  __await,\n  __asyncGenerator,\n  __asyncDelegator,\n  __asyncValues,\n  __makeTemplateObject,\n  __importStar,\n  __importDefault,\n  __classPrivateFieldGet,\n  __classPrivateFieldSet,\n  __classPrivateFieldIn,\n  __addDisposableResource,\n  __disposeResources,\n};\n"],"names":["Listenable","listeners","Set","listen","cb","this","add","unlisten","delete","notify","forEach","l","constructor","params","ListenableParametrized","super","ServiceDataStorage","data","getData","readonly","updateData","update","overwriteData","newData","source","module","exports","deepFreeze","o","Object","freeze","getOwnPropertyNames","prop","hasOwnProperty","isFrozen","Clickable","B","onDescribe","onClick","el","addEventListener","Button","Control","validationEnabled","validate","value","getValue","errorMessage","validation","setError","isValid","applyModifiers","invalid","onValidate","displayError","markValid","Form","controls","setAttribute","submitHandler","bind","describeControl","element","controlConstructor","createdElement","describeBlock","push","reduce","result","c","collectFieldValues","getName","e","preventDefault","onSubmit","TextInputElement","name","setValue","onChange","onBlur","InputElement","ErrorMessage","setMessage","message","innerText","TextInputControl","isPlaceholderUp","undefined","describeElement","floatingPlaceholder","updateFloatingPlaceholderStateByValue","setFloatingPlaceholder","Checkbox","blockName","checked","toString","Input","inputParams","input","required","notRequired","validator","EMAIL_REGEX","email","test","isNumber","isNaN","Number","isInteger","hasDigitsOnly","max","maxValue","min","minValue","minLength","length","maxLength","PHONE_REGEX","phone","combine","validators","map","vf","some","v","Boolean","chain","find","m","Modifiable","Parametrized","modifiers","modifierClassName","mod","baseClassName","toAdd","toRemove","keys","acc","item","classList","remove","BemBlock","checkClassName","selector","querySelector","ensure","found","Error","findAll","querySelectorAll","elementClass","attachModifiers","allElements","Array","from","ensureElement","className","modifierClasses","join","includes","console","warn","BlockConstructor","foundElement","mountPoint","firstElementChild","createdBlock","describeAllBlocks","index","ElementConstructor","describeAllElements","elementName","options","BemElement","elementClassName","extendStatics","d","b","setPrototypeOf","__proto__","p","prototype","call","__extends","TypeError","String","__","create","__assign","assign","t","s","i","n","arguments","apply","__rest","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__decorate","decorators","target","key","desc","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__param","paramIndex","decorator","__esDecorate","ctor","descriptorIn","contextIn","initializers","extraInitializers","accept","f","_","kind","descriptor","done","context","access","addInitializer","get","set","init","unshift","__runInitializers","thisArg","useValue","__propKey","x","concat","__setFunctionName","prefix","description","configurable","__metadata","metadataKey","metadataValue","metadata","__awaiter","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","then","__generator","body","y","label","sent","trys","ops","g","Iterator","verb","Symbol","iterator","op","pop","__createBinding","k","k2","__esModule","writable","enumerable","__exportStar","__values","__read","ar","error","__spread","__spreadArrays","il","a","j","jl","__spreadArray","to","pack","slice","__await","__asyncGenerator","asyncIterator","q","AsyncIterator","resume","fulfill","settle","shift","__asyncDelegator","__asyncValues","__makeTemplateObject","cooked","raw","__setModuleDefault","__importStar","__importDefault","default","__classPrivateFieldGet","receiver","state","has","__classPrivateFieldSet","__classPrivateFieldIn","__addDisposableResource","env","async","dispose","inner","asyncDispose","stack","_SuppressedError","SuppressedError","suppressed","__disposeResources","fail","hasError"],"sourceRoot":""}