{"version":3,"sources":["components/toggle/toggle.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,UAAU,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAGrC,OAAO,EAAE,WAAW,EAAE,CAAC;AAIvB;;;;;;;GAOG;AACH,cACM,QAAS,SAAQ,UAAU;IAC/B,SAAS,CAAC,gBAAgB;IAW1B;;OAEG;IAEH,WAAW,SAAM;IAEjB;;OAEG;IAEH,IAAI,cAAuB;IAE3B;;OAEG;IAEH,aAAa,SAAM;IAEnB,MAAM;IAgCN;;OAEG;IACH,MAAM,KAAK,WAAW,WAErB;IAED,MAAM,CAAC,MAAM,MAAU;CACxB;AAED,eAAe,QAAQ,CAAC","file":"toggle.d.ts","sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2021\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 { classMap } from 'lit-html/directives/class-map';\nimport { html, property, customElement } from 'lit-element';\nimport settings from 'carbon-components/es/globals/js/settings';\nimport ifNonNull from '../../globals/directives/if-non-null';\nimport BXCheckbox from '../checkbox/checkbox';\nimport { TOGGLE_SIZE } from './defs';\nimport styles from './toggle.scss';\n\nexport { TOGGLE_SIZE };\n\nconst { prefix } = settings;\n\n/**\n * Basic toggle.\n * @element bx-toggle\n * @slot label-text - The label text.\n * @slot checked-text - The text for the checked state.\n * @slot unchecked-text - The text for the unchecked state.\n * @fires bx-toggle-changed - The custom event fired after this changebox changes its checked state.\n */\n@customElement(`${prefix}-toggle`)\nclass BXToggle extends BXCheckbox {\n  protected _renderCheckmark() {\n    if (this.size !== TOGGLE_SIZE.SMALL) {\n      return undefined;\n    }\n    return html`\n      <svg class=\"${prefix}--toggle__check\" width=\"6px\" height=\"5px\" viewBox=\"0 0 6 5\">\n        <path d=\"M2.2 2.7L5 0 6 1 2.2 5 0 2.7 1 1.5z\" />\n      </svg>\n    `;\n  }\n\n  /**\n   * The text for the checked state.\n   */\n  @property({ attribute: 'checked-text' })\n  checkedText = '';\n\n  /**\n   * Toggle size.\n   */\n  @property({ reflect: true })\n  size = TOGGLE_SIZE.REGULAR;\n\n  /**\n   * The text for the unchecked state.\n   */\n  @property({ attribute: 'unchecked-text' })\n  uncheckedText = '';\n\n  render() {\n    const { checked, checkedText, disabled, labelText, name, size, uncheckedText, value, _handleChange: handleChange } = this;\n    const inputClasses = classMap({\n      [`${prefix}--toggle-input`]: true,\n      [`${prefix}--toggle-input--${size}`]: size,\n    });\n    return html`\n      <input\n        id=\"checkbox\"\n        type=\"checkbox\"\n        class=\"${inputClasses}\"\n        aria-checked=\"${String(Boolean(checked))}\"\n        .checked=\"${checked}\"\n        ?disabled=\"${disabled}\"\n        name=\"${ifNonNull(name)}\"\n        value=\"${ifNonNull(value)}\"\n        @change=\"${handleChange}\" />\n      <label for=\"checkbox\" class=\"${prefix}--toggle-input__label\">\n        <slot name=\"label-text\">${labelText}</slot>\n        <span class=\"${prefix}--toggle__switch\">\n          ${this._renderCheckmark()}\n          <span class=\"${prefix}--toggle__text--off\" aria-hidden=\"true\">\n            <slot name=\"unchecked-text\">${uncheckedText}</slot>\n          </span>\n          <span class=\"${prefix}--toggle__text--on\" aria-hidden=\"true\">\n            <slot name=\"checked-text\">${checkedText}</slot>\n          </span>\n        </span>\n      </label>\n    `;\n  }\n\n  /**\n   * The name of the custom event fired after this changebox changes its checked state.\n   */\n  static get eventChange() {\n    return `${prefix}-toggle-changed`;\n  }\n\n  static styles = styles;\n}\n\nexport default BXToggle;\n"]}