{"version":3,"sources":["globals/mixins/form.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,MAAM,MAAM,oBAAoB,CAAC;AAExC;;;GAGG;AACH,QAAA,MAAM,SAAS;;QAKX;;;WAGG;oBACS,MAAM,GAAG,IAAI;QAEzB;;;WAGG;+BAC6B,KAAK,GAAG,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAoB/C,CAAC;AAEF,eAAe,SAAS,CAAC","file":"form.d.ts","sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport on from 'carbon-components/es/globals/js/misc/on';\nimport Handle from '../internal/handle';\n\n/**\n * @param Base The base class.\n * @returns A mix-in to handle `formdata` event on the containing form.\n */\nconst FormMixin = <T extends Constructor<HTMLElement>>(Base: T) => {\n  /**\n   * A mix-in class to handle `formdata` event on the containing form.\n   */\n  abstract class FormMixinImpl extends Base {\n    /**\n     * The handle for `formdata` event listener on the containing form.\n     * @private\n     */\n    _hFormdata: Handle | null = null; // Not using TypeScript `private` due to: microsoft/TypeScript#17744\n\n    /**\n     * Handles `formdata` event.\n     * @param event The event.\n     */\n    abstract _handleFormdata(event: Event): void;\n\n    connectedCallback() {\n      // @ts-ignore\n      super.connectedCallback();\n      const form = this.closest('form');\n      if (form) {\n        this._hFormdata = on(form, 'formdata', this._handleFormdata.bind(this));\n      }\n    }\n\n    disconnectedCallback() {\n      if (this._hFormdata) {\n        this._hFormdata = this._hFormdata.release();\n      }\n      // @ts-ignore\n      super.disconnectedCallback();\n    }\n  }\n  return FormMixinImpl;\n};\n\nexport default FormMixin;\n"]}