{"version":3,"sources":["jsdelivr-header.js","/npm/@lrnwebcomponents/simple-toast@8.0.2/simple-toast.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;OCFS,KAAM,QAAW,aACjB,iBAAoB,yDACtB,2BAEP,WAAW,YAAc,WAAW,aAAe,CAAC,EAIpD,WAAW,YAAY,oBAAsB,MAEtC,WAAW,YAAY,UAAY,WAAW,WACjD,WAAW,YAAY,SACrB,WAAW,SAAS,cAAc,gBACpC,WAAW,SAAS,KAAK,YAAY,WAAW,YAAY,WAEvD,WAAW,YAAY,iBAEzB,MAAM,iBAAmB,WAAW,YAAY,sBAQvD,MAAM,oBAAoB,aAExB,iBAAW,GACT,MAAO,CACL,MAAM,OACN,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAoCP,CAGA,MAAA,GACE,OAAO,IAAI;;sBAEO,KAAK;eACZ,KAAK;cACN,KAAK;kBACD,KAAK;iBACN,KAAK;yBACG,KAAK;gBACd,KAAK;;;0BAGK,KAAK,wBAAwB,KAAK;UAClD,KAAK;;uBAGb,CAGA,qBAAW,GACT,MAAO,IACF,MAAM,WAKT,OAAQ,CACN,KAAM,QACN,SAAS,GAKX,KAAM,CACJ,KAAM,QAKR,WAAY,CACV,KAAM,OACN,UAAW,eAKb,UAAW,CACT,KAAM,OACN,UAAW,cAKb,SAAU,CACR,KAAM,QAKR,cAAe,CACb,KAAM,OACN,UAAW,kBAKb,YAAa,CACX,KAAM,QACN,SAAS,EACT,UAAW,gBAGjB,CAMA,cAAW,GACT,MAAO,cACT,CAIA,WAAA,GACE,QACA,KAAK,kBAAoB,IAAI,gBAC7B,KAAK,iBACP,CACA,iBAAA,GACE,MAAM,oBACN,WAAW,iBACT,oBACA,KAAK,gBAAgB,KAAK,MAC1B,CAAE,OAAQ,KAAK,kBAAkB,SAGnC,WAAW,iBACT,oBACA,KAAK,gBAAgB,KAAK,MAC1B,CAAE,OAAQ,KAAK,kBAAkB,QAErC,CAIA,oBAAA,GACE,KAAK,kBAAkB,QAEvB,MAAM,sBACR,CAIA,eAAA,CAAgB,GACd,KAAK,MACP,CACA,aAAA,CAAc,GACZ,KAAK,OAAS,EAAE,OAAO,KACzB,CACA,eAAA,GAUE,IATA,KAAK,QAAS,EACd,KAAK,KAAO,QACZ,KAAK,WAAa,GAClB,KAAK,UAAY,QACjB,KAAK,SAAW,IAChB,KAAK,YAAc,OACnB,KAAK,MAAO,EACZ,KAAK,cAAgB,KACrB,KAAK,aAAc,EACQ,OAApB,KAAK,YACV,KAAK,YAAY,KAAK,WAE1B,CAIA,eAAA,CAAgB,GAEd,KAAK,kBAED,EAAE,OAAO,WACX,KAAK,SAAW,EAAE,OAAO,UAEvB,EAAE,OAAO,OACX,KAAK,KAAO,EAAE,OAAO,MAEnB,EAAE,OAAO,aACX,KAAK,WAAa,EAAE,OAAO,YAEzB,EAAE,OAAO,YACX,KAAK,UAAY,EAAE,OAAO,WAExB,EAAE,OAAO,cACX,KAAK,YAAc,EAAE,OAAO,aAE1B,EAAE,OAAO,gBACX,KAAK,cAAgB,EAAE,OAAO,eAE5B,EAAE,OAAO,MACX,KAAK,YAAY,EAAE,OAAO,MAExB,EAAE,OAAO,cACX,KAAK,YAAc,EAAE,OAAO,aAE1B,EAAE,OAAO,OACX,KAAK,KAAO,EAAE,OAAO,MAEvB,KAAK,MACP,CAEA,IAAA,CAAK,GACH,KAAK,QAAS,CAChB,CACA,IAAA,CAAK,GACH,GAAI,KAAK,cAAe,CACtB,MAAM,EAAM,IAAI,YAAY,KAAK,cAAe,CAC9C,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,UAAU,IAEZ,KAAK,cAAc,EACrB,CACA,KAAK,QAAS,CAChB,EAEF,eAAe,OAAO,YAAY,IAAK,oBAC9B","file":"/npm/@lrnwebcomponents/simple-toast@8.0.2/simple-toast.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@lrnwebcomponents/simple-toast@8.0.2/simple-toast.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","/**\n * Copyright 2018 The Pennsylvania State University\n * @license Apache-2.0, see License.md for full text.\n */\nimport { html, css } from \"lit\";\nimport { SimpleColors } from \"@lrnwebcomponents/simple-colors/simple-colors.js\";\nimport \"./lib/simple-toast-el.js\";\n// register globally so we can make sure there is only one\nglobalThis.SimpleToast = globalThis.SimpleToast || {};\n// request if this exists. This helps invoke the element existing in the dom\n// as well as that there is only one of them. That way we can ensure everything\n// is rendered through the same simple-toast element, making it a singleton.\nglobalThis.SimpleToast.requestAvailability = () => {\n  // if there is no single instance, generate one and append it to end of the document\n  if (!globalThis.SimpleToast.instance && globalThis.document) {\n    globalThis.SimpleToast.instance =\n      globalThis.document.createElement(\"simple-toast\");\n    globalThis.document.body.appendChild(globalThis.SimpleToast.instance);\n  }\n  return globalThis.SimpleToast.instance;\n};\nexport const SimpleToastStore = globalThis.SimpleToast.requestAvailability();\n\n/**\n * `simple-toast`\n * `A singular toast / message for conistency`\n * @demo demo/index.html\n * @element simple-toast\n */\nclass SimpleToast extends SimpleColors {\n  //styles function\n  static get styles() {\n    return [\n      super.styles,\n      css`\n        :host {\n          display: block;\n        }\n\n        :host([hidden]) {\n          display: none;\n        }\n\n        simple-toast-el {\n          box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26);\n          width: var(--simple-toast-width, auto);\n          color: var(\n            --simple-toast-color,\n            var(--simple-colors-default-theme-accent-1, white)\n          );\n          background-color: var(\n            --simple-toast-bg,\n            var(--simple-colors-default-theme-accent-12, black)\n          );\n          top: var(--simple-toast-top);\n          margin: var(--simple-toast-margin, 8px);\n          padding: var(--simple-toast-padding, 16px);\n          left: var(--simple-toast-left, 36px);\n          bottom: var(--simple-toast-bottom, 36px);\n          right: var(--simple-toast-right);\n          border: var(--simple-toast-border);\n          z-index: var(--simple-toast-z-index, 1000);\n          font-size: var(--simple-toast-font-size);\n        }\n\n        button {\n          margin-left: 8px;\n        }\n      `,\n    ];\n  }\n\n  // render function\n  render() {\n    return html` <simple-toast-el\n      id=\"toast\"\n      accent-color=\"${this.accentColor}\"\n      ?dark=\"${this.dark}\"\n      text=\"${this.text}\"\n      duration=\"${this.duration}\"\n      ?opened=\"${this.opened}\"\n      @opened-changed=\"${this.openedChanged}\"\n      .class=\"${this.classStyle}\"\n    >\n      <slot></slot>\n      <button .hidden=\"${!this.closeButton}\" @click=\"${this.hide}\">\n        ${this.closeText}\n      </button>\n    </simple-toast-el>`;\n  }\n\n  // properties available to the custom element for data binding\n  static get properties() {\n    return {\n      ...super.properties,\n\n      /**\n       * Opened state of the toast, use event to change\n       */\n      opened: {\n        type: Boolean,\n        reflect: true,\n      },\n      /**\n       * Plain text based message to display\n       */\n      text: {\n        type: String,\n      },\n      /**\n       * Class name, fit-bottom being a useful one\n       */\n      classStyle: {\n        type: String,\n        attribute: \"class-style\",\n      },\n      /**\n       * Text for the close button\n       */\n      closeText: {\n        type: String,\n        attribute: \"close-text\",\n      },\n      /**\n       * How long the toast message should be displayed\n       */\n      duration: {\n        type: Number,\n      },\n      /**\n       * Event callback when hide is called\n       */\n      eventCallback: {\n        type: String,\n        attribute: \"event-callback\",\n      },\n      /**\n       * If there should be a close button shown\n       */\n      closeButton: {\n        type: Boolean,\n        reflect: true,\n        attribute: \"close-button\",\n      },\n    };\n  }\n\n  /**\n   * Store the tag name to make it easier to obtain directly.\n   * @notice function name must be here for tooling to operate correctly\n   */\n  static get tag() {\n    return \"simple-toast\";\n  }\n  /**\n   * life cycle, element is afixed to the DOM\n   */\n  constructor() {\n    super();\n    this.windowControllers = new AbortController();\n    this.setDefaultToast();\n  }\n  connectedCallback() {\n    super.connectedCallback();\n    globalThis.addEventListener(\n      \"simple-toast-hide\",\n      this.hideSimpleToast.bind(this),\n      { signal: this.windowControllers.signal },\n    );\n\n    globalThis.addEventListener(\n      \"simple-toast-show\",\n      this.showSimpleToast.bind(this),\n      { signal: this.windowControllers.signal },\n    );\n  }\n  /**\n   * life cycle, element is removed from the DOM\n   */\n  disconnectedCallback() {\n    this.windowControllers.abort();\n\n    super.disconnectedCallback();\n  }\n  /**\n   * Hide callback\n   */\n  hideSimpleToast(e) {\n    this.hide();\n  }\n  openedChanged(e) {\n    this.opened = e.detail.value;\n  }\n  setDefaultToast() {\n    this.opened = false;\n    this.text = \"Saved\";\n    this.classStyle = \"\";\n    this.closeText = \"Close\";\n    this.duration = 3000;\n    this.accentColor = \"grey\";\n    this.dark = false;\n    this.eventCallback = null;\n    this.closeButton = true;\n    while (this.firstChild !== null) {\n      this.removeChild(this.firstChild);\n    }\n  }\n  /**\n   * Show / available callback\n   */\n  showSimpleToast(e) {\n    // establish defaults and then let event change settings\n    this.setDefaultToast();\n    // add your code to run when the singleton is called for\n    if (e.detail.duration) {\n      this.duration = e.detail.duration;\n    }\n    if (e.detail.text) {\n      this.text = e.detail.text;\n    }\n    if (e.detail.classStyle) {\n      this.classStyle = e.detail.classStyle;\n    }\n    if (e.detail.closeText) {\n      this.closeText = e.detail.closeText;\n    }\n    if (e.detail.closeButton) {\n      this.closeButton = e.detail.closeButton;\n    }\n    if (e.detail.eventCallback) {\n      this.eventCallback = e.detail.eventCallback;\n    }\n    if (e.detail.slot) {\n      this.appendChild(e.detail.slot);\n    }\n    if (e.detail.accentColor) {\n      this.accentColor = e.detail.accentColor;\n    }\n    if (e.detail.dark) {\n      this.dark = e.detail.dark;\n    }\n    this.show();\n  }\n\n  show(e) {\n    this.opened = true;\n  }\n  hide(e) {\n    if (this.eventCallback) {\n      const evt = new CustomEvent(this.eventCallback, {\n        bubbles: true,\n        cancelable: true,\n        detail: true,\n        composed: true,\n      });\n      this.dispatchEvent(evt);\n    }\n    this.opened = false;\n  }\n}\ncustomElements.define(SimpleToast.tag, SimpleToast);\nexport { SimpleToast };\n"]}