UNPKG

carbon-custom-elements

Version:

A Carbon Design System variant that's as easy to use as native HTML elements, with no framework tax, no framework silo.

1 lines 1.98 kB
{"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;;QAGH;;;WAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAqBN,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"]}