@memberstack/dom 1.0.0-alpha.3.4.2 → 1.0.0-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/README.md +1 -0
  2. package/lib/auth/persistence/index.d.ts +1 -0
  3. package/lib/auth/persistence/index.js +13 -0
  4. package/lib/auth/persistence/local.d.ts +5 -0
  5. package/lib/auth/persistence/local.js +20 -0
  6. package/lib/auth/persistence/methods.d.ts +11 -0
  7. package/lib/auth/persistence/methods.js +57 -0
  8. package/lib/auth/persistence/session.d.ts +5 -0
  9. package/lib/auth/persistence/session.js +20 -0
  10. package/lib/constants/cookies.d.ts +3 -0
  11. package/lib/constants/cookies.js +7 -0
  12. package/lib/constants/endpoint.d.ts +4 -0
  13. package/lib/constants/endpoint.js +7 -0
  14. package/lib/constants/storage.d.ts +1 -0
  15. package/lib/constants/storage.js +4 -0
  16. package/lib/constants/window.d.ts +4 -0
  17. package/lib/constants/window.js +7 -0
  18. package/lib/index.d.ts +3 -0
  19. package/lib/index.js +7 -0
  20. package/lib/methods/client.d.ts +644 -0
  21. package/lib/methods/client.js +12 -0
  22. package/lib/methods/dom/index.d.ts +2 -0
  23. package/lib/methods/dom/index.js +9 -0
  24. package/lib/methods/dom/methods.d.ts +17 -0
  25. package/lib/methods/dom/methods.js +64 -0
  26. package/lib/methods/dom/script.d.ts +3 -0
  27. package/lib/methods/dom/script.js +80 -0
  28. package/lib/methods/index.d.ts +23 -0
  29. package/lib/methods/index.js +77 -0
  30. package/lib/utils/cookies.d.ts +1 -0
  31. package/lib/utils/cookies.js +11 -0
  32. package/lib/utils/interceptor.d.ts +1 -0
  33. package/lib/utils/interceptor.js +21 -0
  34. package/lib/utils/localStorage.d.ts +6 -0
  35. package/lib/utils/localStorage.js +21 -0
  36. package/lib/utils/proxy.d.ts +2 -0
  37. package/lib/utils/proxy.js +96 -0
  38. package/package.json +9 -18
  39. package/dist/constants/elements.d.ts +0 -61
  40. package/dist/constants/utils.d.ts +0 -26
  41. package/dist/dist/modal.css +0 -1
  42. package/dist/index.d.ts +0 -8
  43. package/dist/index.js +0 -8
  44. package/dist/methods/index.d.ts +0 -3
  45. package/dist/methods/modal/fetchModal.d.ts +0 -4
  46. package/dist/methods/modal/loadModal.d.ts +0 -8
  47. package/dist/ms-dom.cjs.development.js +0 -729
  48. package/dist/ms-dom.cjs.development.js.map +0 -1
  49. package/dist/ms-dom.cjs.production.min.js +0 -2
  50. package/dist/ms-dom.cjs.production.min.js.map +0 -1
  51. package/dist/ms-dom.esm.js +0 -722
  52. package/dist/ms-dom.esm.js.map +0 -1
  53. package/dist/scripts/listeners.d.ts +0 -6
  54. package/dist/scripts/personalize.d.ts +0 -2
@@ -1 +0,0 @@
1
- {"version":3,"file":"ms-dom.cjs.development.js","sources":["../src/constants/elements.ts","../src/methods/modal/fetchModal.ts","../src/constants/utils.ts","../src/scripts/personalize.ts","../node_modules/babel-plugin-transform-async-to-promises/helpers.js","../src/scripts/listeners.ts","../src/methods/modal/loadModal.ts","../src/methods/index.ts","../src/index.ts"],"sourcesContent":["export const SUBMIT_BUTTON = \"button\";\nexport const MODAL_TYPE_TOGGLE = \"modalTypeToggle\";\nexport const LOGO = \"logo\";\nexport const TITLE = \"title\";\nexport const LINK = \"link\";\nexport const RESET_PASSWORD_ANCHOR = \"resetPasswordAnchor\";\nexport const INPUT_FIELD_LABEL = \"inputFieldLabel\";\nexport const INPUT_FIELD_INPUT = \"inputFieldInput\";\nexport const DEFAULT_EMAIL_INPUT_FIELD = \"emailInputField\";\nexport const DEFAULT_PASSWORD_INPUT_FIELD = \"passwordInputField\";\nexport const CLOSE_MODAL = \"closeModal\";\nexport const MEMBERSHIP_ID = \"membershipId\";\n\nexport const modalAttributes = {\n [SUBMIT_BUTTON]: ['[ms-editable=\"button\"]'],\n [MODAL_TYPE_TOGGLE]: [\".ms-login-or-signup\"],\n [LOGO]: ['[ms-editable=\"logo\"]'],\n [TITLE]: ['[ms-editable=\"title\"]'],\n [RESET_PASSWORD_ANCHOR]: ['[ms-editable=\"resetPassword\"]'],\n [INPUT_FIELD_LABEL]: ['[ms-editable*=\"label\"]'],\n [INPUT_FIELD_INPUT]: ['[ms-editable*=\"field\"]'],\n [DEFAULT_EMAIL_INPUT_FIELD]: ['[ms-editable=\"field email\"]'],\n [DEFAULT_PASSWORD_INPUT_FIELD]: ['[ms-editable=\"field password\"]'],\n [CLOSE_MODAL]: [\"#ms-close-signup\"],\n [MEMBERSHIP_ID]: [\"ms-membership-id\"],\n [LINK]: ['[ms-editable*=\"link\"]']\n};\n\nexport const SITE_IDENTIFIER = \"siteIdentifier\";\nexport const MODAL_ROOT = \"modalRoot\";\nexport const MODAL_ROOT_EMBED = \"modalRootEmbed\";\nexport const MODAL_MODAL = \"modalModal\";\nexport const MODAL_EMBED = \"modalEmbed\";\nexport const MODAL_CONTAINER = \"modalContainer\";\n\nexport const siteAttributes = {\n [MODAL_CONTAINER]: ['[ms-editable=\"container\"]'],\n [SITE_IDENTIFIER]: [\"data-memberstack-id\"],\n [MODAL_ROOT]: [\"#ms-root\"],\n [MODAL_ROOT_EMBED]: [\"ms-embed\"],\n [MODAL_MODAL]: [\"#ms-modal\"],\n [MODAL_EMBED]: [\"#ms-modal-embed\"]\n};\n\nexport const attributes = { ...modalAttributes, ...siteAttributes };\n\nexport const MSDOMElements: (\n el?: HTMLElement | Document\n) => Map<string, NodeListOf<HTMLElement>> = el => {\n return new Map(\n Object.entries(attributes).map(([key, value]) => [\n key,\n (el || document).querySelectorAll<HTMLElement>(value.join(\", \"))\n ])\n );\n};\n","import * as els from \"../../constants/elements\";\n\nexport async function fetchModal({ id, embed }) {\n const identifier = els.attributes[els.SITE_IDENTIFIER][0];\n const site: string = document\n .querySelector(`[${identifier}]`)\n .getAttribute(identifier);\n\n const queryParams = `?msid=${site}${embed ? `&embed=true` : ``}`;\n\n const res = await fetch(\n `https://p37k1liko6.execute-api.us-east-1.amazonaws.com/dev/modal/${id}${queryParams}`\n );\n\n return await res.text();\n}\n","export const addClickEvent = (\n targets: NodeListOf<HTMLElement> | HTMLElement[] = [],\n callback\n) => {\n for (const target of targets) {\n if (!target) continue;\n target.addEventListener(\"click\", callback);\n }\n};\n\nexport function generateStyles(styles) {\n if (!styles) return {};\n\n const str = (x = {}) =>\n Object.keys(x).reduce((prev, curr) => {\n return `${(prev += curr\n .split(/(?=[A-Z])/)\n .join(\"-\")\n .toLowerCase())}:${x[curr]};`;\n }, \"\");\n\n return {\n title: str(styles?.title),\n button: str(styles?.button),\n container: str(styles?.container),\n link: str(styles?.link),\n resetPassword: str(styles?.resetPassword),\n input: {\n label: str(styles?.input?.label),\n field: str(styles?.input?.field)\n }\n };\n}\n\nexport const addInputEvent = (\n targets: NodeListOf<HTMLElement> | HTMLElement[] | [] = [],\n callback\n) => {\n for (const target of targets) {\n if (!target) continue;\n target.addEventListener(\"input\", callback);\n }\n};\n\nexport const setAttr = (\n els: NodeListOf<HTMLElement> | HTMLElement[] | [] = [],\n attr,\n value\n) => {\n for (const el of els) {\n if (value && el[attr] !== value) {\n el[attr] = value;\n }\n }\n};\n\nexport const createLogo = (logos, src) => {\n if (!src || !logos.length) return;\n\n for (const logo of logos) {\n const img = document.createElement(\"img\");\n\n logo\n ?.getAttributeNames()\n .map(attr => [attr, logo.getAttribute(attr)])\n .forEach(attr => img.setAttribute(attr[0], attr[1]));\n\n img.src = src;\n logo.replaceWith(img);\n }\n};\n\nexport const prefetchLogo = href => {\n if (!href) return;\n\n const hasDuplicate = !![\n ...document.querySelectorAll(`[href=\"${href}\"]`)\n ].find(x => x.tagName === \"LINK\");\n\n if (hasDuplicate) return;\n\n const link = document.createElement(\"link\");\n const hint = { rel: \"prefetch\", href, as: \"image\" };\n\n [\"rel\", \"href\", \"as\"].map(attr => {\n link.setAttribute(attr, hint[attr]);\n });\n\n document.head.appendChild(link);\n};\n\nexport const getFieldValues = (fields: NodeListOf<HTMLElement> | [] = []) => {\n return Array.from(fields)\n .map((field: HTMLInputElement) => {\n const [_, type] = field.getAttribute(\"ms-editable\").split(\" \");\n return { [type]: field.value };\n })\n .reduce((acc, cur) => ({ ...acc, ...cur }), {});\n};\n","import * as els from \"../constants/elements\";\nimport { setAttr, generateStyles, createLogo } from \"../constants/utils\";\nconst { MSDOMElements } = els;\n\nexport const personalizeModal = (modal: HTMLElement, settings) => {\n const modalElements = MSDOMElements(modal);\n\n const title: NodeListOf<HTMLElement> = modalElements.get(els.TITLE);\n const logo: NodeListOf<HTMLElement> = modalElements.get(els.LOGO);\n const resetPassword: NodeListOf<HTMLElement> = modalElements.get(\n els.RESET_PASSWORD_ANCHOR\n );\n const button: NodeListOf<HTMLElement> = modalElements.get(els.SUBMIT_BUTTON);\n const inputLabels: NodeListOf<HTMLElement> = modalElements.get(\n els.INPUT_FIELD_LABEL\n );\n const inputFields: NodeListOf<HTMLElement> = modalElements.get(\n els.INPUT_FIELD_INPUT\n );\n\n setAttr(title, \"innerHTML\", settings?.text?.title);\n setAttr(button, \"value\", settings?.text?.button);\n setAttr(resetPassword, \"innerHTML\", settings?.text?.resetPassword);\n createLogo(logo, settings?.logo);\n\n inputLabels.forEach((label: HTMLLabelElement) => {\n const [_, type] = label.getAttribute(\"ms-editable\").split(\" \");\n label.innerHTML = settings?.text?.input?.[type]?.label || label.innerHTML;\n });\n\n inputFields.forEach((field: HTMLInputElement) => {\n const [_, type] = field.getAttribute(\"ms-editable\").split(\" \");\n field.placeholder =\n settings?.text?.input?.[type]?.placeholder || field.placeholder;\n field.type = settings?.text?.input?.[type]?.type || field.type;\n });\n\n applyStyles(modal, settings?.styles);\n};\n\nexport const applyStyles = (modal, styles) => {\n const elements: NodeListOf<HTMLElement> = modal.querySelectorAll(\n \"[ms-editable]\"\n );\n const inlineStyles = generateStyles(styles);\n\n return elements.forEach((element: HTMLElement) => {\n const el: string[] = element.getAttribute(\"ms-editable\").split(\" \");\n const inputEl = el.find(x => [\"field\", \"label\"].includes(x));\n const linkEl = el.find(x => [\"link\"].includes(x));\n\n if (inputEl) {\n setAttr([element], \"style\", inlineStyles?.input?.[inputEl]);\n } else {\n setAttr([element], \"style\", inlineStyles?.[linkEl || el[0]]);\n }\n });\n};\n","// A type of promise-like that resolves synchronously and supports only one observer\nexport const _Pact = /*#__PURE__*/(function() {\n\tfunction _Pact() {}\n\t_Pact.prototype.then = function(onFulfilled, onRejected) {\n\t\tconst result = new _Pact();\n\t\tconst state = this.s;\n\t\tif (state) {\n\t\t\tconst callback = state & 1 ? onFulfilled : onRejected;\n\t\t\tif (callback) {\n\t\t\t\ttry {\n\t\t\t\t\t_settle(result, 1, callback(this.v));\n\t\t\t\t} catch (e) {\n\t\t\t\t\t_settle(result, 2, e);\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t} else {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}\n\t\tthis.o = function(_this) {\n\t\t\ttry {\n\t\t\t\tconst value = _this.v;\n\t\t\t\tif (_this.s & 1) {\n\t\t\t\t\t_settle(result, 1, onFulfilled ? onFulfilled(value) : value);\n\t\t\t\t} else if (onRejected) {\n\t\t\t\t\t_settle(result, 1, onRejected(value));\n\t\t\t\t} else {\n\t\t\t\t\t_settle(result, 2, value);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(result, 2, e);\n\t\t\t}\n\t\t};\n\t\treturn result;\n\t}\n\treturn _Pact;\n})();\n\n// Settles a pact synchronously\nexport function _settle(pact, state, value) {\n\tif (!pact.s) {\n\t\tif (value instanceof _Pact) {\n\t\t\tif (value.s) {\n\t\t\t\tif (state & 1) {\n\t\t\t\t\tstate = value.s;\n\t\t\t\t}\n\t\t\t\tvalue = value.v;\n\t\t\t} else {\n\t\t\t\tvalue.o = _settle.bind(null, pact, state);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tif (value && value.then) {\n\t\t\tvalue.then(_settle.bind(null, pact, state), _settle.bind(null, pact, 2));\n\t\t\treturn;\n\t\t}\n\t\tpact.s = state;\n\t\tpact.v = value;\n\t\tconst observer = pact.o;\n\t\tif (observer) {\n\t\t\tobserver(pact);\n\t\t}\n\t}\n}\n\nexport function _isSettledPact(thenable) {\n\treturn thenable instanceof _Pact && thenable.s & 1;\n}\n\n// Converts argument to a function that always returns a Promise\nexport function _async(f) {\n\treturn function() {\n\t\tfor (var args = [], i = 0; i < arguments.length; i++) {\n\t\t\targs[i] = arguments[i];\n\t\t}\n\t\ttry {\n\t\t\treturn Promise.resolve(f.apply(this, args));\n\t\t} catch(e) {\n\t\t\treturn Promise.reject(e);\n\t\t}\n\t}\n}\n\n// Awaits on a value that may or may not be a Promise (equivalent to the await keyword in ES2015, with continuations passed explicitly)\nexport function _await(value, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(value) : value;\n\t}\n\tif (!value || !value.then) {\n\t\tvalue = Promise.resolve(value);\n\t}\n\treturn then ? value.then(then) : value;\n}\n\n// Awaits on a value that may or may not be a Promise, then ignores it\nexport function _awaitIgnored(value, direct) {\n\tif (!direct) {\n\t\treturn value && value.then ? value.then(_empty) : Promise.resolve();\n\t}\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continue(value, then) {\n\treturn value && value.then ? value.then(then) : then(value);\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continueIgnored(value) {\n\tif (value && value.then) {\n\t\treturn value.then(_empty);\n\t}\n}\n\n// Asynchronously iterate through an object that has a length property, passing the index as the first argument to the callback (even as the length property changes)\nexport function _forTo(array, body, check) {\n\tvar i = -1, pact, reject;\n\tfunction _cycle(result) {\n\t\ttry {\n\t\t\twhile (++i < array.length && (!check || !check())) {\n\t\t\t\tresult = body(i);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (pact) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t} else {\n\t\t\t\tpact = result;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t}\n\t}\n\t_cycle();\n\treturn pact;\n}\n\n// Asynchronously iterate through an object's properties (including properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forIn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tkeys.push(key);\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\n// Asynchronously iterate through an object's own properties (excluding properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forOwn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tif (Object.prototype.hasOwnProperty.call(target, key)) {\n\t\t\tkeys.push(key);\n\t\t}\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\nexport const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.iterator || (Symbol.iterator = Symbol(\"Symbol.iterator\"))) : \"@@iterator\";\n\n// Asynchronously iterate through an object's values\n// Uses for...of if the runtime supports it, otherwise iterates until length on a copy\nexport function _forOf(target, body, check) {\n\tif (typeof target[_iteratorSymbol] === \"function\") {\n\t\tvar iterator = target[_iteratorSymbol](), step, pact, reject;\n\t\tfunction _cycle(result) {\n\t\t\ttry {\n\t\t\t\twhile (!(step = iterator.next()).done && (!check || !check())) {\n\t\t\t\t\tresult = body(step.value);\n\t\t\t\t\tif (result && result.then) {\n\t\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (pact) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t} else {\n\t\t\t\t\tpact = result;\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t\t}\n\t\t}\n\t\t_cycle();\n\t\tif (iterator.return) {\n\t\t\tvar _fixup = function(value) {\n\t\t\t\ttry {\n\t\t\t\t\tif (!step.done) {\n\t\t\t\t\t\titerator.return();\n\t\t\t\t\t}\n\t\t\t\t} catch(e) {\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t}\n\t\t\tif (pact && pact.then) {\n\t\t\t\treturn pact.then(_fixup, function(e) {\n\t\t\t\t\tthrow _fixup(e);\n\t\t\t\t});\n\t\t\t}\n\t\t\t_fixup();\n\t\t}\n\t\treturn pact;\n\t}\n\t// No support for Symbol.iterator\n\tif (!(\"length\" in target)) {\n\t\tthrow new TypeError(\"Object is not iterable\");\n\t}\n\t// Handle live collections properly\n\tvar values = [];\n\tfor (var i = 0; i < target.length; i++) {\n\t\tvalues.push(target[i]);\n\t}\n\treturn _forTo(values, function(i) { return body(values[i]); }, check);\n}\n\nexport const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol(\"Symbol.asyncIterator\"))) : \"@@asyncIterator\";\n\n// Asynchronously iterate on a value using it's async iterator if present, or its synchronous iterator if missing\nexport function _forAwaitOf(target, body, check) {\n\tif (typeof target[_asyncIteratorSymbol] === \"function\") {\n\t\tvar pact = new _Pact();\n\t\tvar iterator = target[_asyncIteratorSymbol]();\n\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\treturn pact;\n\t\tfunction _resumeAfterBody(result) {\n\t\t\tif (check && check()) {\n\t\t\t\treturn _settle(pact, 1, iterator.return ? iterator.return().then(function() { return result; }) : result);\n\t\t\t}\n\t\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\t}\n\t\tfunction _resumeAfterNext(step) {\n\t\t\tif (step.done) {\n\t\t\t\t_settle(pact, 1);\n\t\t\t} else {\n\t\t\t\tPromise.resolve(body(step.value)).then(_resumeAfterBody).then(void 0, _reject);\n\t\t\t}\n\t\t}\n\t\tfunction _reject(error) {\n\t\t\t_settle(pact, 2, iterator.return ? iterator.return().then(function() { return error; }) : error);\n\t\t}\n\t}\n\treturn Promise.resolve(_forOf(target, function(value) { return Promise.resolve(value).then(body); }, check));\n}\n\n// Asynchronously implement a generic for loop\nexport function _for(test, update, body) {\n\tvar stage;\n\tfor (;;) {\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t\tif (shouldContinue.then) {\n\t\t\tstage = 0;\n\t\t\tbreak;\n\t\t}\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.s;\n\t\t\t} else {\n\t\t\t\tstage = 1;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (update) {\n\t\t\tvar updateValue = update();\n\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\tstage = 2;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tvar pact = new _Pact();\n\tvar reject = _settle.bind(null, pact, 2);\n\t(stage === 0 ? shouldContinue.then(_resumeAfterTest) : stage === 1 ? result.then(_resumeAfterBody) : updateValue.then(_resumeAfterUpdate)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tdo {\n\t\t\tif (update) {\n\t\t\t\tupdateValue = update();\n\t\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\t\tupdateValue.then(_resumeAfterUpdate).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tshouldContinue = test();\n\t\t\tif (!shouldContinue || (_isSettledPact(shouldContinue) && !shouldContinue.v)) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t}\n\t\t} while (!result || !result.then);\n\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterBody(result);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n\tfunction _resumeAfterUpdate() {\n\t\tif (shouldContinue = test()) {\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterTest(shouldContinue);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a do ... while loop\nexport function _do(body, test) {\n\tvar awaitBody;\n\tdo {\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t} else {\n\t\t\t\tawaitBody = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t} while (!shouldContinue.then);\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : shouldContinue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tfor (;;) {\n\t\t\tshouldContinue = test();\n\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t}\n\t\t\tif (!shouldContinue) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\tresult = result.v;\n\t\t\t\t} else {\n\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tdo {\n\t\t\t\tresult = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tshouldContinue = test();\n\t\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t\t}\n\t\t\t\tif (!shouldContinue) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} while (!shouldContinue.then);\n\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a switch statement\nexport function _switch(discriminant, cases) {\n\tvar dispatchIndex = -1;\n\tvar awaitBody;\n\touter: {\n\t\tfor (var i = 0; i < cases.length; i++) {\n\t\t\tvar test = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvar testValue = test();\n\t\t\t\tif (testValue && testValue.then) {\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tif (testValue === discriminant) {\n\t\t\t\t\tdispatchIndex = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Found the default case, set it as the pending dispatch case\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tif (dispatchIndex !== -1) {\n\t\t\tdo {\n\t\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\t\twhile (!body) {\n\t\t\t\t\tdispatchIndex++;\n\t\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t\t}\n\t\t\t\tvar result = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tawaitBody = true;\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\t\tdispatchIndex++;\n\t\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t\treturn result;\n\t\t}\n\t}\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : testValue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterTest(value) {\n\t\tfor (;;) {\n\t\t\tif (value === discriminant) {\n\t\t\t\tdispatchIndex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (++i === cases.length) {\n\t\t\t\tif (dispatchIndex !== -1) {\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\ttest = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvalue = test();\n\t\t\t\tif (value && value.then) {\n\t\t\t\t\tvalue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tdo {\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tvar result = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tdispatchIndex++;\n\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterBody(result) {\n\t\tfor (;;) {\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tif (!fallthroughCheck || fallthroughCheck()) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdispatchIndex++;\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _call(body, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(body()) : body();\n\t}\n\ttry {\n\t\tvar result = Promise.resolve(body());\n\t\treturn then ? result.then(then) : result;\n\t} catch (e) {\n\t\treturn Promise.reject(e);\n\t}\n}\n\n// Asynchronously call a function and swallow the result\nexport function _callIgnored(body, direct) {\n\treturn _call(body, _empty, direct);\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _invoke(body, then) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(then);\n\t}\n\treturn then(result);\n}\n\n// Asynchronously call a function and swallow the result\nexport function _invokeIgnored(body) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(_empty);\n\t}\n}\n\n// Asynchronously call a function and send errors to recovery continuation\nexport function _catch(body, recover) {\n\ttry {\n\t\tvar result = body();\n\t} catch(e) {\n\t\treturn recover(e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(void 0, recover);\n\t}\n\treturn result;\n}\n\n// Asynchronously await a promise and pass the result to a finally continuation\nexport function _finallyRethrows(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer(true, e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer.bind(null, false), finalizer.bind(null, true));\n\t}\n\treturn finalizer(false, result);\n}\n\n// Asynchronously await a promise and invoke a finally continuation that always overrides the result\nexport function _finally(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer();\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer, finalizer);\n\t}\n\treturn finalizer();\n}\n\n// Rethrow or return a value from a finally continuation\nexport function _rethrow(thrown, value) {\n\tif (thrown)\n\t\tthrow value;\n\treturn value;\n}\n\n// Empty function to implement break and other control flow that ignores asynchronous results\nexport function _empty() {\n}\n\n// Sentinel value for early returns in generators \nexport const _earlyReturn = /*#__PURE__*/ {};\n\n// Asynchronously call a function and send errors to recovery continuation, skipping early returns\nexport function _catchInGenerator(body, recover) {\n\treturn _catch(body, function(e) {\n\t\tif (e === _earlyReturn) {\n\t\t\tthrow e;\n\t\t}\n\t\treturn recover(e);\n\t});\n}\n\n// Asynchronous generator class; accepts the entrypoint of the generator, to which it passes itself when the generator should start\nexport const _AsyncGenerator = /*#__PURE__*/(function() {\n\tfunction _AsyncGenerator(entry) {\n\t\tthis._entry = entry;\n\t\tthis._pact = null;\n\t\tthis._resolve = null;\n\t\tthis._return = null;\n\t\tthis._promise = null;\n\t}\n\n\tfunction _wrapReturnedValue(value) {\n\t\treturn { value: value, done: true };\n\t}\n\tfunction _wrapYieldedValue(value) {\n\t\treturn { value: value, done: false };\n\t}\n\n\t_AsyncGenerator.prototype._yield = function(value) {\n\t\t// Yield the value to the pending next call\n\t\tthis._resolve(value && value.then ? value.then(_wrapYieldedValue) : _wrapYieldedValue(value));\n\t\t// Return a pact for an upcoming next/return/throw call\n\t\treturn this._pact = new _Pact();\n\t};\n\t_AsyncGenerator.prototype.next = function(value) {\n\t\t// Advance the generator, starting it if it has yet to be started\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tconst _entry = _this._entry;\n\t\t\t\tif (_entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the next call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Start the generator\n\t\t\t\t_this._entry = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\tfunction returnValue(value) {\n\t\t\t\t\t_this._resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t_this._resolve = null;\n\t\t\t\t}\n\t\t\t\tvar result = _entry(_this);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tresult.then(returnValue, function(error) {\n\t\t\t\t\t\tif (error === _earlyReturn) {\n\t\t\t\t\t\t\treturnValue(_this._return);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst pact = new _Pact();\n\t\t\t\t\t\t\t_this._resolve(pact);\n\t\t\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t\t\t_this._resolve = null;\n\t\t\t\t\t\t\t_resolve(pact, 2, error);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\treturnValue(result);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Generator is started and a yield expression is pending, settle it\n\t\t\t\t_this._pact = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\t_settle(_pact, 1, value);\n\t\t\t}\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.return = function(value) {\n\t\t// Early return from the generator if started, otherwise abandons the generator\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the return call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return the specified value\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t}\n\t\t\t// Settle the yield expression with a rejected \"early return\" value\n\t\t\t_this._return = value;\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, _earlyReturn);\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.throw = function(error) {\n\t\t// Inject an exception into the pending yield expression\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve, reject) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the throw call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return a rejected Promise containing the error\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn reject(error);\n\t\t\t}\n\t\t\t// Settle the yield expression with the value as a rejection\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, error);\n\t\t});\n\t};\n\n\t_AsyncGenerator.prototype[_asyncIteratorSymbol] = function() {\n\t\treturn this;\n\t};\n\t\n\treturn _AsyncGenerator;\n})();\n","import memberstack from \"@memberstack/core\";\n\nimport { Listeners } from \"../types\";\nimport { loadModal } from \"../methods/modal/loadModal\";\nimport * as els from \"../constants/elements\";\nimport {\n addClickEvent,\n addInputEvent,\n getFieldValues\n} from \"../constants/utils\";\nconst { MSDOMElements } = els;\n\nexport const defaultListeners = (modal: HTMLElement, listeners: Listeners) => {\n const modalElements = MSDOMElements(modal);\n const portal: NodeListOf<HTMLElement> = modalElements.get(els.CLOSE_MODAL);\n const fields: NodeListOf<HTMLElement> = modalElements.get(\n els.INPUT_FIELD_INPUT\n );\n\n if (!portal) return;\n addClickEvent(portal, () => (modal.style.display = \"none\"));\n\n new MutationObserver(async mutations => {\n const [mutation] = mutations;\n switch (mutation.attributeName) {\n case \"style\":\n const { display } = modal.style;\n const method = display === \"none\" ? \"onClose\" : \"onOpen\";\n await listeners?.[method]?.();\n }\n }).observe(modal, {\n attributes: true,\n attributeFilter: [\"style\"]\n });\n\n addInputEvent(fields, () =>\n listeners?.onInputChange?.(getFieldValues(fields))\n );\n};\n\nexport const addLoginListeners = (\n modal: HTMLElement,\n opts?: object,\n listeners?: Listeners\n) => {\n defaultListeners(modal, listeners);\n\n const modalElements = MSDOMElements(modal);\n const buttons: NodeListOf<HTMLElement> = modalElements.get(els.SUBMIT_BUTTON);\n const modalToggle: NodeListOf<HTMLElement> = modalElements.get(\n els.MODAL_TYPE_TOGGLE\n );\n\n addClickEvent(buttons, e => loginListener(e, modal, listeners));\n addClickEvent(modalToggle, () =>\n loadModal({ id: \"signup_1\", options: opts })\n );\n};\n\nexport const addSignupListeners = (\n modal: HTMLElement,\n opts?: object,\n listeners?: Listeners\n) => {\n defaultListeners(modal, listeners);\n\n const modalElements = MSDOMElements(modal);\n const buttons: NodeListOf<HTMLElement> = modalElements.get(els.SUBMIT_BUTTON);\n const modalToggle: NodeListOf<HTMLElement> = modalElements.get(\n els.MODAL_TYPE_TOGGLE\n );\n addClickEvent(buttons, e => signupListener(e, modal, listeners));\n addClickEvent(modalToggle, () => loadModal({ id: \"login_1\", options: opts }));\n};\n\nexport const loginListener = async (\n e: Event,\n modal: HTMLElement,\n listeners?: Listeners\n) => {\n e.preventDefault();\n\n const modalElements = MSDOMElements(modal);\n const email: HTMLElement = modalElements.get(\n els.DEFAULT_EMAIL_INPUT_FIELD\n )[0];\n const password: HTMLElement = modalElements.get(\n els.DEFAULT_PASSWORD_INPUT_FIELD\n )[0];\n\n try {\n await listeners?.beforeSubmit?.();\n\n const loginRes = await memberstack.login({\n email: (email as HTMLInputElement).value,\n password: (password as HTMLInputElement).value\n });\n\n await listeners?.onSuccess?.(loginRes);\n return loginRes;\n } catch (err) {\n listeners?.onError?.(err);\n }\n};\n\nexport const signupListener = async (\n e: Event,\n modal: HTMLElement,\n listeners?: Listeners\n) => {\n e.preventDefault();\n const modalElements = MSDOMElements(modal);\n const fields: NodeListOf<HTMLElement> = modalElements.get(\n els.INPUT_FIELD_INPUT\n );\n const email: HTMLElement = modalElements.get(\n els.DEFAULT_EMAIL_INPUT_FIELD\n )[0];\n const password: HTMLElement = modalElements.get(\n els.DEFAULT_PASSWORD_INPUT_FIELD\n )[0];\n\n const customFields = Array.from(fields)\n .map((field: HTMLInputElement) => {\n if (![email, password].includes(field)) {\n const [_, type] = field.getAttribute(\"ms-editable\").split(\" \");\n return { [type]: field.value };\n }\n })\n .reduce((acc, cur) => ({ ...acc, ...cur }), {});\n\n const membership = modal.getAttribute(els.attributes[els.MEMBERSHIP_ID][0]);\n\n try {\n await listeners?.beforeSubmit?.();\n\n const signupRes = await memberstack.signup(\n {\n email: (email as HTMLInputElement).value,\n password: (password as HTMLInputElement).value,\n customFields,\n membership\n },\n [\"redirect\"]\n );\n\n await listeners?.onSuccess?.(signupRes);\n return signupRes;\n } catch (err) {\n listeners?.onError?.(err);\n }\n};\n","import { fetchModal } from \"./fetchModal\";\nimport * as els from \"../../constants/elements\";\nimport { prefetchLogo } from \"../../constants/utils\";\nimport { personalizeModal } from \"../../scripts/personalize\";\nimport { addLoginListeners, addSignupListeners } from \"../../scripts/listeners\";\n\nconst { MSDOMElements } = els;\n\ndeclare global {\n interface Window {\n MemberStack: {\n reload: () => void;\n };\n }\n}\n\nfunction appendModal({ el, data, membership }) {\n const { attributes: attr, MODAL_MODAL, MEMBERSHIP_ID, MODAL_ROOT } = els;\n\n const elements = MSDOMElements(document);\n const [msRoot] = elements.get(MODAL_ROOT);\n\n el.innerHTML = data;\n el.setAttribute(\"id\", attr[MODAL_MODAL][0].replace(\"#\", \"\"));\n membership && el.setAttribute(attr[MEMBERSHIP_ID][0], membership);\n\n msRoot.appendChild(el);\n}\n\nfunction appendEmbed({ el, data, rootEls, membership }) {\n const { attributes: attr, MODAL_EMBED, MEMBERSHIP_ID } = els;\n\n for (const root of rootEls) {\n el.innerHTML = data;\n el.setAttribute(\"id\", attr[MODAL_EMBED][0].replace(\"#\", \"\"));\n membership && el.setAttribute(attr[MEMBERSHIP_ID][0], membership);\n\n if (root.hasChildNodes()) {\n const child = root.children[0];\n child.replaceWith(el);\n } else {\n root.appendChild(el);\n }\n }\n}\n\nexport const loadModal = async props => {\n prefetchLogo(props.options?.logo);\n\n const data: string = await fetchModal({ id: props.id, embed: !!props.root });\n const modal: HTMLElement = document.createElement(\"div\");\n const modalStyle: CSSStyleDeclaration = modal.style;\n\n const elements = MSDOMElements(document);\n const currentModal: HTMLElement | null = elements.get(els.MODAL_MODAL)[0];\n\n const rootEls: NodeListOf<HTMLElement> = document.querySelectorAll(\n `[${els.attributes[els.MODAL_ROOT_EMBED][0]}=\"${props.root}\"]`\n );\n\n modalStyle.visibility = props.options ? \"hidden\" : \"visible\";\n\n currentModal && currentModal.remove();\n\n const addToDOM = props.root ? appendEmbed : appendModal;\n addToDOM({ el: modal, data, rootEls, membership: props.membership });\n\n const type = props.id.includes(\"signup\") ? \"signup\" : \"login\";\n const { onOpen, onClose, onSuccess, onError, onInputChange } = props;\n\n const addListeners =\n type === \"login\" ? addLoginListeners : addSignupListeners;\n\n window.MemberStack?.reload();\n\n personalizeModal(modal, props.options);\n addListeners(modal, props.optons, {\n onOpen,\n onClose,\n onSuccess,\n onError,\n onInputChange\n });\n\n modalStyle.visibility = \"visible\";\n};\n","import { loadModal } from \"./modal/loadModal\";\n\nconst launchTemplate = props => {\n return loadModal(props);\n};\n\nconst embedTemplate = props => {\n return loadModal(props);\n};\n\nexport { launchTemplate, embedTemplate };\n","import { launchTemplate, embedTemplate } from \"./methods\";\nimport \"./styles/modal.css\";\n\nexport { launchTemplate, embedTemplate };\nexport default { launchTemplate, embedTemplate };\n"],"names":["SUBMIT_BUTTON","MODAL_TYPE_TOGGLE","LOGO","TITLE","LINK","RESET_PASSWORD_ANCHOR","INPUT_FIELD_LABEL","INPUT_FIELD_INPUT","DEFAULT_EMAIL_INPUT_FIELD","DEFAULT_PASSWORD_INPUT_FIELD","CLOSE_MODAL","MEMBERSHIP_ID","modalAttributes","SITE_IDENTIFIER","MODAL_ROOT","MODAL_ROOT_EMBED","MODAL_MODAL","MODAL_EMBED","MODAL_CONTAINER","siteAttributes","attributes","MSDOMElements","el","Map","Object","entries","map","key","value","document","querySelectorAll","join","fetchModal","id","embed","identifier","els","site","querySelector","getAttribute","queryParams","fetch","res","text","addClickEvent","targets","callback","target","addEventListener","generateStyles","styles","str","x","keys","reduce","prev","curr","split","toLowerCase","title","button","container","link","resetPassword","input","label","field","addInputEvent","setAttr","attr","createLogo","logos","src","length","logo","img","createElement","getAttributeNames","forEach","setAttribute","replaceWith","prefetchLogo","href","hasDuplicate","find","tagName","hint","rel","as","head","appendChild","getFieldValues","fields","Array","from","_","type","acc","cur","personalizeModal","modal","settings","modalElements","get","inputLabels","inputFields","innerHTML","placeholder","applyStyles","elements","inlineStyles","element","inputEl","includes","linkEl","defaultListeners","listeners","portal","style","display","MutationObserver","mutations","mutation","attributeName","method","observe","attributeFilter","onInputChange","addLoginListeners","opts","buttons","modalToggle","e","loginListener","loadModal","options","addSignupListeners","signupListener","preventDefault","email","password","beforeSubmit","memberstack","login","loginRes","onSuccess","err","onError","customFields","membership","signup","signupRes","appendModal","data","msRoot","replace","appendEmbed","rootEls","root","hasChildNodes","child","children","props","modalStyle","currentModal","visibility","remove","addToDOM","onOpen","onClose","addListeners","window","MemberStack","reload","optons","launchTemplate","embedTemplate"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t,n,r=(e=require("@memberstack/core"))&&"object"==typeof e&&"default"in e?e.default:e;function o(){return(o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function l(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return i(e,void 0);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?i(e,void 0):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}var u=o({},((t={}).button=['[ms-editable="button"]'],t.modalTypeToggle=[".ms-login-or-signup"],t.logo=['[ms-editable="logo"]'],t.title=['[ms-editable="title"]'],t.resetPasswordAnchor=['[ms-editable="resetPassword"]'],t.inputFieldLabel=['[ms-editable*="label"]'],t.inputFieldInput=['[ms-editable*="field"]'],t.emailInputField=['[ms-editable="field email"]'],t.passwordInputField=['[ms-editable="field password"]'],t.closeModal=["#ms-close-signup"],t.membershipId=["ms-membership-id"],t.link=['[ms-editable*="link"]'],t),((n={}).modalContainer=['[ms-editable="container"]'],n.siteIdentifier=["data-memberstack-id"],n.modalRoot=["#ms-root"],n.modalRootEmbed=["ms-embed"],n.modalModal=["#ms-modal"],n.modalEmbed=["#ms-modal-embed"],n)),a=function(e){return new Map(Object.entries(u).map((function(t){return[t[0],(e||document).querySelectorAll(t[1].join(", "))]})))},d=function(e,t){void 0===e&&(e=[]);for(var n,r=l(e);!(n=r()).done;){var o=n.value;o&&o.addEventListener("click",t)}},s=function(e,t,n){void 0===e&&(e=[]);for(var r,o=l(e);!(r=o()).done;){var i=r.value;n&&i[t]!==n&&(i[t]=n)}},c=a;const v=function(){function e(){}return e.prototype.then=function(t,n){const r=new e,o=this.s;if(o){const e=1&o?t:n;if(e){try{f(r,1,e(this.v))}catch(e){f(r,2,e)}return r}return this}return this.o=function(e){try{const o=e.v;1&e.s?f(r,1,t?t(o):o):n?f(r,1,n(o)):f(r,2,o)}catch(e){f(r,2,e)}},r},e}();function f(e,t,n){if(!e.s){if(n instanceof v){if(!n.s)return void(n.o=f.bind(null,e,t));1&t&&(t=n.s),n=n.v}if(n&&n.then)return void n.then(f.bind(null,e,t),f.bind(null,e,2));e.s=t,e.v=n;const r=e.o;r&&r(e)}}function m(e,t){try{var n=e()}catch(e){return t(e)}return n&&n.then?n.then(void 0,t):n}"undefined"!=typeof Symbol&&(Symbol.iterator||(Symbol.iterator=Symbol("Symbol.iterator"))),"undefined"!=typeof Symbol&&(Symbol.asyncIterator||(Symbol.asyncIterator=Symbol("Symbol.asyncIterator")));var p=a,b=function(e,t){var n=p(e),r=n.get("closeModal"),i=n.get("inputFieldInput");r&&(d(r,(function(){return e.style.display="none"})),new MutationObserver((function(n){try{var r=function(e,t){var n,r=-1;e:{for(var o=0;o<t.length;o++){var i=t[o][0];if(i){var l=i();if(l&&l.then)break e;if(l===e){r=o;break}}else r=o}if(-1!==r){do{for(var u=t[r][1];!u;)r++,u=t[r][1];var a=u();if(a&&a.then){n=!0;break e}var d=t[r][2];r++}while(d&&!d());return a}}const s=new v,c=f.bind(null,s,2);return(n?a.then(m):l.then((function n(l){for(;;){if(l===e){r=o;break}if(++o===t.length){if(-1!==r)break;return void f(s,1,a)}if(i=t[o][0]){if((l=i())&&l.then)return void l.then(n).then(void 0,c)}else r=o}do{for(var u=t[r][1];!u;)r++,u=t[r][1];var a=u();if(a&&a.then)return void a.then(m).then(void 0,c);var d=t[r][2];r++}while(d&&!d());f(s,1,a)}))).then(void 0,c),s;function m(e){for(;;){var n=t[r][2];if(!n||n())break;r++;for(var o=t[r][1];!o;)r++,o=t[r][1];if((e=o())&&e.then)return void e.then(m).then(void 0,c)}f(s,1,e)}}(n[0].attributeName,[[function(){return"style"},function(){var n;return Promise.resolve(null==t||null===(n=t["none"===e.style.display?"onClose":"onOpen"])||void 0===n?void 0:n.call(t)).then((function(){}))},function(){}]]);return Promise.resolve(r&&r.then?r.then((function(){})):void 0)}catch(e){return Promise.reject(e)}})).observe(e,{attributes:!0,attributeFilter:["style"]}),function(e,t){void 0===e&&(e=[]);for(var n,r=l(e);!(n=r()).done;){var o=n.value;o&&o.addEventListener("input",t)}}(i,(function(){var e;return null==t||null===(e=t.onInputChange)||void 0===e?void 0:e.call(t,function(e){return void 0===e&&(e=[]),Array.from(e).map((function(e){var t;return(t={})[e.getAttribute("ms-editable").split(" ")[1]]=e.value,t})).reduce((function(e,t){return o({},e,t)}),{})}(i))})))},h=function(e,t,n){b(e,n);var r=p(e),o=r.get("button"),i=r.get("modalTypeToggle");d(o,(function(t){return g(t,e,n)})),d(i,(function(){return P({id:"signup_1",options:t})}))},y=function(e,t,n){b(e,n);var r=p(e),o=r.get("button"),i=r.get("modalTypeToggle");d(o,(function(t){return A(t,e,n)})),d(i,(function(){return P({id:"login_1",options:t})}))},g=function(e,t,n){try{e.preventDefault();var o=p(t),i=o.get("emailInputField")[0],l=o.get("passwordInputField")[0];return Promise.resolve(m((function(){var e;return Promise.resolve(null==n||null===(e=n.beforeSubmit)||void 0===e?void 0:e.call(n)).then((function(){return Promise.resolve(r.login({email:i.value,password:l.value})).then((function(e){var t;return Promise.resolve(null==n||null===(t=n.onSuccess)||void 0===t?void 0:t.call(n,e)).then((function(){return e}))}))}))}),(function(e){var t;null==n||null===(t=n.onError)||void 0===t||t.call(n,e)})))}catch(e){return Promise.reject(e)}},A=function(e,t,n){try{e.preventDefault();var i=p(t),l=i.get("inputFieldInput"),a=i.get("emailInputField")[0],d=i.get("passwordInputField")[0],s=Array.from(l).map((function(e){var t;if(![a,d].includes(e))return(t={})[e.getAttribute("ms-editable").split(" ")[1]]=e.value,t})).reduce((function(e,t){return o({},e,t)}),{}),c=t.getAttribute(u.membershipId[0]);return Promise.resolve(m((function(){var e;return Promise.resolve(null==n||null===(e=n.beforeSubmit)||void 0===e?void 0:e.call(n)).then((function(){return Promise.resolve(r.signup({email:a.value,password:d.value,customFields:s,membership:c},["redirect"])).then((function(e){var t;return Promise.resolve(null==n||null===(t=n.onSuccess)||void 0===t?void 0:t.call(n,e)).then((function(){return e}))}))}))}),(function(e){var t;null==n||null===(t=n.onError)||void 0===t||t.call(n,e)})))}catch(e){return Promise.reject(e)}},S=a;function w(e){var t=e.el,n=e.data,r=e.membership,o=u,i=S(document).get("modalRoot")[0];t.innerHTML=n,t.setAttribute("id",o.modalModal[0].replace("#","")),r&&t.setAttribute(o.membershipId[0],r),i.appendChild(t)}function I(e){for(var t,n=e.el,r=e.data,o=e.membership,i=u,a=l(e.rootEls);!(t=a()).done;){var d=t.value;n.innerHTML=r,n.setAttribute("id",i.modalEmbed[0].replace("#","")),o&&n.setAttribute(i.membershipId[0],o),d.hasChildNodes()?d.children[0].replaceWith(n):d.appendChild(n)}}var P=function(e){try{var t;return function(e){if(e&&![].concat(document.querySelectorAll('[href="'+e+'"]')).find((function(e){return"LINK"===e.tagName}))){var t=document.createElement("link"),n={rel:"prefetch",href:e,as:"image"};["rel","href","as"].map((function(e){t.setAttribute(e,n[e])})),document.head.appendChild(t)}}(null===(t=e.options)||void 0===t?void 0:t.logo),Promise.resolve(function(e){var t=e.id,n=e.embed;try{var r=u.siteIdentifier[0],o=document.querySelector("["+r+"]").getAttribute(r);return Promise.resolve(fetch("https://p37k1liko6.execute-api.us-east-1.amazonaws.com/dev/modal/"+t+"?msid="+o+(n?"&embed=true":""))).then((function(e){return Promise.resolve(e.text())}))}catch(e){return Promise.reject(e)}}({id:e.id,embed:!!e.root})).then((function(t){var n,r=document.createElement("div"),o=r.style,i=S(document).get("modalModal")[0],a=document.querySelectorAll("["+u.modalRootEmbed[0]+'="'+e.root+'"]');o.visibility=e.options?"hidden":"visible",i&&i.remove(),(e.root?I:w)({el:r,data:t,rootEls:a,membership:e.membership});var d=e.id.includes("signup")?"signup":"login",v=e.onOpen,f=e.onClose,m=e.onSuccess,p=e.onError,b=e.onInputChange,g="login"===d?h:y;null===(n=window.MemberStack)||void 0===n||n.reload(),function(e,t){var n,r,o,i=c(e),u=i.get("title"),a=i.get("logo"),d=i.get("resetPasswordAnchor"),v=i.get("button"),f=i.get("inputFieldLabel"),m=i.get("inputFieldInput");s(u,"innerHTML",null==t||null===(n=t.text)||void 0===n?void 0:n.title),s(v,"value",null==t||null===(r=t.text)||void 0===r?void 0:r.button),s(d,"innerHTML",null==t||null===(o=t.text)||void 0===o?void 0:o.resetPassword),function(e,t){if(t&&e.length)for(var n,r=function(){var e=n.value,r=document.createElement("img");null==e||e.getAttributeNames().map((function(t){return[t,e.getAttribute(t)]})).forEach((function(e){return r.setAttribute(e[0],e[1])})),r.src=t,e.replaceWith(r)},o=l(e);!(n=o()).done;)r()}(a,null==t?void 0:t.logo),f.forEach((function(e){var n,r,o,i=e.getAttribute("ms-editable").split(" ");e.innerHTML=(null==t||null===(n=t.text)||void 0===n||null===(r=n.input)||void 0===r||null===(o=r[i[1]])||void 0===o?void 0:o.label)||e.innerHTML})),m.forEach((function(e){var n,r,o,i,l,u,a=e.getAttribute("ms-editable").split(" ")[1];e.placeholder=(null==t||null===(n=t.text)||void 0===n||null===(r=n.input)||void 0===r||null===(o=r[a])||void 0===o?void 0:o.placeholder)||e.placeholder,e.type=(null==t||null===(i=t.text)||void 0===i||null===(l=i.input)||void 0===l||null===(u=l[a])||void 0===u?void 0:u.type)||e.type})),function(e,t){var n=e.querySelectorAll("[ms-editable]"),r=function(e){var t,n;if(!e)return{};var r=function(e){return void 0===e&&(e={}),Object.keys(e).reduce((function(t,n){return(t+=n.split(/(?=[A-Z])/).join("-").toLowerCase())+":"+e[n]+";"}),"")};return{title:r(null==e?void 0:e.title),button:r(null==e?void 0:e.button),container:r(null==e?void 0:e.container),link:r(null==e?void 0:e.link),resetPassword:r(null==e?void 0:e.resetPassword),input:{label:r(null==e||null===(t=e.input)||void 0===t?void 0:t.label),field:r(null==e||null===(n=e.input)||void 0===n?void 0:n.field)}}}(t);n.forEach((function(e){var t,n=e.getAttribute("ms-editable").split(" "),o=n.find((function(e){return["field","label"].includes(e)})),i=n.find((function(e){return["link"].includes(e)}));s([e],"style",o?null==r||null===(t=r.input)||void 0===t?void 0:t[o]:null==r?void 0:r[i||n[0]])}))}(e,null==t?void 0:t.styles)}(r,e.options),g(r,e.optons,{onOpen:v,onClose:f,onSuccess:m,onError:p,onInputChange:b}),o.visibility="visible"}))}catch(e){return Promise.reject(e)}},E=function(e){return P(e)},k=function(e){return P(e)};exports.default={launchTemplate:E,embedTemplate:k},exports.embedTemplate=k,exports.launchTemplate=E;
2
- //# sourceMappingURL=ms-dom.cjs.production.min.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ms-dom.cjs.production.min.js","sources":["../src/constants/elements.ts","../src/constants/utils.ts","../src/scripts/personalize.ts","../node_modules/babel-plugin-transform-async-to-promises/helpers.js","../src/scripts/listeners.ts","../src/methods/modal/loadModal.ts","../src/methods/modal/fetchModal.ts","../src/methods/index.ts","../src/index.ts"],"sourcesContent":["export const SUBMIT_BUTTON = \"button\";\nexport const MODAL_TYPE_TOGGLE = \"modalTypeToggle\";\nexport const LOGO = \"logo\";\nexport const TITLE = \"title\";\nexport const LINK = \"link\";\nexport const RESET_PASSWORD_ANCHOR = \"resetPasswordAnchor\";\nexport const INPUT_FIELD_LABEL = \"inputFieldLabel\";\nexport const INPUT_FIELD_INPUT = \"inputFieldInput\";\nexport const DEFAULT_EMAIL_INPUT_FIELD = \"emailInputField\";\nexport const DEFAULT_PASSWORD_INPUT_FIELD = \"passwordInputField\";\nexport const CLOSE_MODAL = \"closeModal\";\nexport const MEMBERSHIP_ID = \"membershipId\";\n\nexport const modalAttributes = {\n [SUBMIT_BUTTON]: ['[ms-editable=\"button\"]'],\n [MODAL_TYPE_TOGGLE]: [\".ms-login-or-signup\"],\n [LOGO]: ['[ms-editable=\"logo\"]'],\n [TITLE]: ['[ms-editable=\"title\"]'],\n [RESET_PASSWORD_ANCHOR]: ['[ms-editable=\"resetPassword\"]'],\n [INPUT_FIELD_LABEL]: ['[ms-editable*=\"label\"]'],\n [INPUT_FIELD_INPUT]: ['[ms-editable*=\"field\"]'],\n [DEFAULT_EMAIL_INPUT_FIELD]: ['[ms-editable=\"field email\"]'],\n [DEFAULT_PASSWORD_INPUT_FIELD]: ['[ms-editable=\"field password\"]'],\n [CLOSE_MODAL]: [\"#ms-close-signup\"],\n [MEMBERSHIP_ID]: [\"ms-membership-id\"],\n [LINK]: ['[ms-editable*=\"link\"]']\n};\n\nexport const SITE_IDENTIFIER = \"siteIdentifier\";\nexport const MODAL_ROOT = \"modalRoot\";\nexport const MODAL_ROOT_EMBED = \"modalRootEmbed\";\nexport const MODAL_MODAL = \"modalModal\";\nexport const MODAL_EMBED = \"modalEmbed\";\nexport const MODAL_CONTAINER = \"modalContainer\";\n\nexport const siteAttributes = {\n [MODAL_CONTAINER]: ['[ms-editable=\"container\"]'],\n [SITE_IDENTIFIER]: [\"data-memberstack-id\"],\n [MODAL_ROOT]: [\"#ms-root\"],\n [MODAL_ROOT_EMBED]: [\"ms-embed\"],\n [MODAL_MODAL]: [\"#ms-modal\"],\n [MODAL_EMBED]: [\"#ms-modal-embed\"]\n};\n\nexport const attributes = { ...modalAttributes, ...siteAttributes };\n\nexport const MSDOMElements: (\n el?: HTMLElement | Document\n) => Map<string, NodeListOf<HTMLElement>> = el => {\n return new Map(\n Object.entries(attributes).map(([key, value]) => [\n key,\n (el || document).querySelectorAll<HTMLElement>(value.join(\", \"))\n ])\n );\n};\n","export const addClickEvent = (\n targets: NodeListOf<HTMLElement> | HTMLElement[] = [],\n callback\n) => {\n for (const target of targets) {\n if (!target) continue;\n target.addEventListener(\"click\", callback);\n }\n};\n\nexport function generateStyles(styles) {\n if (!styles) return {};\n\n const str = (x = {}) =>\n Object.keys(x).reduce((prev, curr) => {\n return `${(prev += curr\n .split(/(?=[A-Z])/)\n .join(\"-\")\n .toLowerCase())}:${x[curr]};`;\n }, \"\");\n\n return {\n title: str(styles?.title),\n button: str(styles?.button),\n container: str(styles?.container),\n link: str(styles?.link),\n resetPassword: str(styles?.resetPassword),\n input: {\n label: str(styles?.input?.label),\n field: str(styles?.input?.field)\n }\n };\n}\n\nexport const addInputEvent = (\n targets: NodeListOf<HTMLElement> | HTMLElement[] | [] = [],\n callback\n) => {\n for (const target of targets) {\n if (!target) continue;\n target.addEventListener(\"input\", callback);\n }\n};\n\nexport const setAttr = (\n els: NodeListOf<HTMLElement> | HTMLElement[] | [] = [],\n attr,\n value\n) => {\n for (const el of els) {\n if (value && el[attr] !== value) {\n el[attr] = value;\n }\n }\n};\n\nexport const createLogo = (logos, src) => {\n if (!src || !logos.length) return;\n\n for (const logo of logos) {\n const img = document.createElement(\"img\");\n\n logo\n ?.getAttributeNames()\n .map(attr => [attr, logo.getAttribute(attr)])\n .forEach(attr => img.setAttribute(attr[0], attr[1]));\n\n img.src = src;\n logo.replaceWith(img);\n }\n};\n\nexport const prefetchLogo = href => {\n if (!href) return;\n\n const hasDuplicate = !![\n ...document.querySelectorAll(`[href=\"${href}\"]`)\n ].find(x => x.tagName === \"LINK\");\n\n if (hasDuplicate) return;\n\n const link = document.createElement(\"link\");\n const hint = { rel: \"prefetch\", href, as: \"image\" };\n\n [\"rel\", \"href\", \"as\"].map(attr => {\n link.setAttribute(attr, hint[attr]);\n });\n\n document.head.appendChild(link);\n};\n\nexport const getFieldValues = (fields: NodeListOf<HTMLElement> | [] = []) => {\n return Array.from(fields)\n .map((field: HTMLInputElement) => {\n const [_, type] = field.getAttribute(\"ms-editable\").split(\" \");\n return { [type]: field.value };\n })\n .reduce((acc, cur) => ({ ...acc, ...cur }), {});\n};\n","import * as els from \"../constants/elements\";\nimport { setAttr, generateStyles, createLogo } from \"../constants/utils\";\nconst { MSDOMElements } = els;\n\nexport const personalizeModal = (modal: HTMLElement, settings) => {\n const modalElements = MSDOMElements(modal);\n\n const title: NodeListOf<HTMLElement> = modalElements.get(els.TITLE);\n const logo: NodeListOf<HTMLElement> = modalElements.get(els.LOGO);\n const resetPassword: NodeListOf<HTMLElement> = modalElements.get(\n els.RESET_PASSWORD_ANCHOR\n );\n const button: NodeListOf<HTMLElement> = modalElements.get(els.SUBMIT_BUTTON);\n const inputLabels: NodeListOf<HTMLElement> = modalElements.get(\n els.INPUT_FIELD_LABEL\n );\n const inputFields: NodeListOf<HTMLElement> = modalElements.get(\n els.INPUT_FIELD_INPUT\n );\n\n setAttr(title, \"innerHTML\", settings?.text?.title);\n setAttr(button, \"value\", settings?.text?.button);\n setAttr(resetPassword, \"innerHTML\", settings?.text?.resetPassword);\n createLogo(logo, settings?.logo);\n\n inputLabels.forEach((label: HTMLLabelElement) => {\n const [_, type] = label.getAttribute(\"ms-editable\").split(\" \");\n label.innerHTML = settings?.text?.input?.[type]?.label || label.innerHTML;\n });\n\n inputFields.forEach((field: HTMLInputElement) => {\n const [_, type] = field.getAttribute(\"ms-editable\").split(\" \");\n field.placeholder =\n settings?.text?.input?.[type]?.placeholder || field.placeholder;\n field.type = settings?.text?.input?.[type]?.type || field.type;\n });\n\n applyStyles(modal, settings?.styles);\n};\n\nexport const applyStyles = (modal, styles) => {\n const elements: NodeListOf<HTMLElement> = modal.querySelectorAll(\n \"[ms-editable]\"\n );\n const inlineStyles = generateStyles(styles);\n\n return elements.forEach((element: HTMLElement) => {\n const el: string[] = element.getAttribute(\"ms-editable\").split(\" \");\n const inputEl = el.find(x => [\"field\", \"label\"].includes(x));\n const linkEl = el.find(x => [\"link\"].includes(x));\n\n if (inputEl) {\n setAttr([element], \"style\", inlineStyles?.input?.[inputEl]);\n } else {\n setAttr([element], \"style\", inlineStyles?.[linkEl || el[0]]);\n }\n });\n};\n","// A type of promise-like that resolves synchronously and supports only one observer\nexport const _Pact = /*#__PURE__*/(function() {\n\tfunction _Pact() {}\n\t_Pact.prototype.then = function(onFulfilled, onRejected) {\n\t\tconst result = new _Pact();\n\t\tconst state = this.s;\n\t\tif (state) {\n\t\t\tconst callback = state & 1 ? onFulfilled : onRejected;\n\t\t\tif (callback) {\n\t\t\t\ttry {\n\t\t\t\t\t_settle(result, 1, callback(this.v));\n\t\t\t\t} catch (e) {\n\t\t\t\t\t_settle(result, 2, e);\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t} else {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}\n\t\tthis.o = function(_this) {\n\t\t\ttry {\n\t\t\t\tconst value = _this.v;\n\t\t\t\tif (_this.s & 1) {\n\t\t\t\t\t_settle(result, 1, onFulfilled ? onFulfilled(value) : value);\n\t\t\t\t} else if (onRejected) {\n\t\t\t\t\t_settle(result, 1, onRejected(value));\n\t\t\t\t} else {\n\t\t\t\t\t_settle(result, 2, value);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(result, 2, e);\n\t\t\t}\n\t\t};\n\t\treturn result;\n\t}\n\treturn _Pact;\n})();\n\n// Settles a pact synchronously\nexport function _settle(pact, state, value) {\n\tif (!pact.s) {\n\t\tif (value instanceof _Pact) {\n\t\t\tif (value.s) {\n\t\t\t\tif (state & 1) {\n\t\t\t\t\tstate = value.s;\n\t\t\t\t}\n\t\t\t\tvalue = value.v;\n\t\t\t} else {\n\t\t\t\tvalue.o = _settle.bind(null, pact, state);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tif (value && value.then) {\n\t\t\tvalue.then(_settle.bind(null, pact, state), _settle.bind(null, pact, 2));\n\t\t\treturn;\n\t\t}\n\t\tpact.s = state;\n\t\tpact.v = value;\n\t\tconst observer = pact.o;\n\t\tif (observer) {\n\t\t\tobserver(pact);\n\t\t}\n\t}\n}\n\nexport function _isSettledPact(thenable) {\n\treturn thenable instanceof _Pact && thenable.s & 1;\n}\n\n// Converts argument to a function that always returns a Promise\nexport function _async(f) {\n\treturn function() {\n\t\tfor (var args = [], i = 0; i < arguments.length; i++) {\n\t\t\targs[i] = arguments[i];\n\t\t}\n\t\ttry {\n\t\t\treturn Promise.resolve(f.apply(this, args));\n\t\t} catch(e) {\n\t\t\treturn Promise.reject(e);\n\t\t}\n\t}\n}\n\n// Awaits on a value that may or may not be a Promise (equivalent to the await keyword in ES2015, with continuations passed explicitly)\nexport function _await(value, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(value) : value;\n\t}\n\tif (!value || !value.then) {\n\t\tvalue = Promise.resolve(value);\n\t}\n\treturn then ? value.then(then) : value;\n}\n\n// Awaits on a value that may or may not be a Promise, then ignores it\nexport function _awaitIgnored(value, direct) {\n\tif (!direct) {\n\t\treturn value && value.then ? value.then(_empty) : Promise.resolve();\n\t}\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continue(value, then) {\n\treturn value && value.then ? value.then(then) : then(value);\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continueIgnored(value) {\n\tif (value && value.then) {\n\t\treturn value.then(_empty);\n\t}\n}\n\n// Asynchronously iterate through an object that has a length property, passing the index as the first argument to the callback (even as the length property changes)\nexport function _forTo(array, body, check) {\n\tvar i = -1, pact, reject;\n\tfunction _cycle(result) {\n\t\ttry {\n\t\t\twhile (++i < array.length && (!check || !check())) {\n\t\t\t\tresult = body(i);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (pact) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t} else {\n\t\t\t\tpact = result;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t}\n\t}\n\t_cycle();\n\treturn pact;\n}\n\n// Asynchronously iterate through an object's properties (including properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forIn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tkeys.push(key);\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\n// Asynchronously iterate through an object's own properties (excluding properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forOwn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tif (Object.prototype.hasOwnProperty.call(target, key)) {\n\t\t\tkeys.push(key);\n\t\t}\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\nexport const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.iterator || (Symbol.iterator = Symbol(\"Symbol.iterator\"))) : \"@@iterator\";\n\n// Asynchronously iterate through an object's values\n// Uses for...of if the runtime supports it, otherwise iterates until length on a copy\nexport function _forOf(target, body, check) {\n\tif (typeof target[_iteratorSymbol] === \"function\") {\n\t\tvar iterator = target[_iteratorSymbol](), step, pact, reject;\n\t\tfunction _cycle(result) {\n\t\t\ttry {\n\t\t\t\twhile (!(step = iterator.next()).done && (!check || !check())) {\n\t\t\t\t\tresult = body(step.value);\n\t\t\t\t\tif (result && result.then) {\n\t\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (pact) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t} else {\n\t\t\t\t\tpact = result;\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t\t}\n\t\t}\n\t\t_cycle();\n\t\tif (iterator.return) {\n\t\t\tvar _fixup = function(value) {\n\t\t\t\ttry {\n\t\t\t\t\tif (!step.done) {\n\t\t\t\t\t\titerator.return();\n\t\t\t\t\t}\n\t\t\t\t} catch(e) {\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t}\n\t\t\tif (pact && pact.then) {\n\t\t\t\treturn pact.then(_fixup, function(e) {\n\t\t\t\t\tthrow _fixup(e);\n\t\t\t\t});\n\t\t\t}\n\t\t\t_fixup();\n\t\t}\n\t\treturn pact;\n\t}\n\t// No support for Symbol.iterator\n\tif (!(\"length\" in target)) {\n\t\tthrow new TypeError(\"Object is not iterable\");\n\t}\n\t// Handle live collections properly\n\tvar values = [];\n\tfor (var i = 0; i < target.length; i++) {\n\t\tvalues.push(target[i]);\n\t}\n\treturn _forTo(values, function(i) { return body(values[i]); }, check);\n}\n\nexport const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol(\"Symbol.asyncIterator\"))) : \"@@asyncIterator\";\n\n// Asynchronously iterate on a value using it's async iterator if present, or its synchronous iterator if missing\nexport function _forAwaitOf(target, body, check) {\n\tif (typeof target[_asyncIteratorSymbol] === \"function\") {\n\t\tvar pact = new _Pact();\n\t\tvar iterator = target[_asyncIteratorSymbol]();\n\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\treturn pact;\n\t\tfunction _resumeAfterBody(result) {\n\t\t\tif (check && check()) {\n\t\t\t\treturn _settle(pact, 1, iterator.return ? iterator.return().then(function() { return result; }) : result);\n\t\t\t}\n\t\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\t}\n\t\tfunction _resumeAfterNext(step) {\n\t\t\tif (step.done) {\n\t\t\t\t_settle(pact, 1);\n\t\t\t} else {\n\t\t\t\tPromise.resolve(body(step.value)).then(_resumeAfterBody).then(void 0, _reject);\n\t\t\t}\n\t\t}\n\t\tfunction _reject(error) {\n\t\t\t_settle(pact, 2, iterator.return ? iterator.return().then(function() { return error; }) : error);\n\t\t}\n\t}\n\treturn Promise.resolve(_forOf(target, function(value) { return Promise.resolve(value).then(body); }, check));\n}\n\n// Asynchronously implement a generic for loop\nexport function _for(test, update, body) {\n\tvar stage;\n\tfor (;;) {\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t\tif (shouldContinue.then) {\n\t\t\tstage = 0;\n\t\t\tbreak;\n\t\t}\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.s;\n\t\t\t} else {\n\t\t\t\tstage = 1;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (update) {\n\t\t\tvar updateValue = update();\n\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\tstage = 2;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tvar pact = new _Pact();\n\tvar reject = _settle.bind(null, pact, 2);\n\t(stage === 0 ? shouldContinue.then(_resumeAfterTest) : stage === 1 ? result.then(_resumeAfterBody) : updateValue.then(_resumeAfterUpdate)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tdo {\n\t\t\tif (update) {\n\t\t\t\tupdateValue = update();\n\t\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\t\tupdateValue.then(_resumeAfterUpdate).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tshouldContinue = test();\n\t\t\tif (!shouldContinue || (_isSettledPact(shouldContinue) && !shouldContinue.v)) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t}\n\t\t} while (!result || !result.then);\n\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterBody(result);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n\tfunction _resumeAfterUpdate() {\n\t\tif (shouldContinue = test()) {\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterTest(shouldContinue);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a do ... while loop\nexport function _do(body, test) {\n\tvar awaitBody;\n\tdo {\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t} else {\n\t\t\t\tawaitBody = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t} while (!shouldContinue.then);\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : shouldContinue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tfor (;;) {\n\t\t\tshouldContinue = test();\n\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t}\n\t\t\tif (!shouldContinue) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\tresult = result.v;\n\t\t\t\t} else {\n\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tdo {\n\t\t\t\tresult = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tshouldContinue = test();\n\t\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t\t}\n\t\t\t\tif (!shouldContinue) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} while (!shouldContinue.then);\n\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a switch statement\nexport function _switch(discriminant, cases) {\n\tvar dispatchIndex = -1;\n\tvar awaitBody;\n\touter: {\n\t\tfor (var i = 0; i < cases.length; i++) {\n\t\t\tvar test = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvar testValue = test();\n\t\t\t\tif (testValue && testValue.then) {\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tif (testValue === discriminant) {\n\t\t\t\t\tdispatchIndex = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Found the default case, set it as the pending dispatch case\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tif (dispatchIndex !== -1) {\n\t\t\tdo {\n\t\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\t\twhile (!body) {\n\t\t\t\t\tdispatchIndex++;\n\t\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t\t}\n\t\t\t\tvar result = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tawaitBody = true;\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\t\tdispatchIndex++;\n\t\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t\treturn result;\n\t\t}\n\t}\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : testValue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterTest(value) {\n\t\tfor (;;) {\n\t\t\tif (value === discriminant) {\n\t\t\t\tdispatchIndex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (++i === cases.length) {\n\t\t\t\tif (dispatchIndex !== -1) {\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\ttest = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvalue = test();\n\t\t\t\tif (value && value.then) {\n\t\t\t\t\tvalue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tdo {\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tvar result = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tdispatchIndex++;\n\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterBody(result) {\n\t\tfor (;;) {\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tif (!fallthroughCheck || fallthroughCheck()) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdispatchIndex++;\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _call(body, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(body()) : body();\n\t}\n\ttry {\n\t\tvar result = Promise.resolve(body());\n\t\treturn then ? result.then(then) : result;\n\t} catch (e) {\n\t\treturn Promise.reject(e);\n\t}\n}\n\n// Asynchronously call a function and swallow the result\nexport function _callIgnored(body, direct) {\n\treturn _call(body, _empty, direct);\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _invoke(body, then) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(then);\n\t}\n\treturn then(result);\n}\n\n// Asynchronously call a function and swallow the result\nexport function _invokeIgnored(body) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(_empty);\n\t}\n}\n\n// Asynchronously call a function and send errors to recovery continuation\nexport function _catch(body, recover) {\n\ttry {\n\t\tvar result = body();\n\t} catch(e) {\n\t\treturn recover(e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(void 0, recover);\n\t}\n\treturn result;\n}\n\n// Asynchronously await a promise and pass the result to a finally continuation\nexport function _finallyRethrows(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer(true, e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer.bind(null, false), finalizer.bind(null, true));\n\t}\n\treturn finalizer(false, result);\n}\n\n// Asynchronously await a promise and invoke a finally continuation that always overrides the result\nexport function _finally(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer();\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer, finalizer);\n\t}\n\treturn finalizer();\n}\n\n// Rethrow or return a value from a finally continuation\nexport function _rethrow(thrown, value) {\n\tif (thrown)\n\t\tthrow value;\n\treturn value;\n}\n\n// Empty function to implement break and other control flow that ignores asynchronous results\nexport function _empty() {\n}\n\n// Sentinel value for early returns in generators \nexport const _earlyReturn = /*#__PURE__*/ {};\n\n// Asynchronously call a function and send errors to recovery continuation, skipping early returns\nexport function _catchInGenerator(body, recover) {\n\treturn _catch(body, function(e) {\n\t\tif (e === _earlyReturn) {\n\t\t\tthrow e;\n\t\t}\n\t\treturn recover(e);\n\t});\n}\n\n// Asynchronous generator class; accepts the entrypoint of the generator, to which it passes itself when the generator should start\nexport const _AsyncGenerator = /*#__PURE__*/(function() {\n\tfunction _AsyncGenerator(entry) {\n\t\tthis._entry = entry;\n\t\tthis._pact = null;\n\t\tthis._resolve = null;\n\t\tthis._return = null;\n\t\tthis._promise = null;\n\t}\n\n\tfunction _wrapReturnedValue(value) {\n\t\treturn { value: value, done: true };\n\t}\n\tfunction _wrapYieldedValue(value) {\n\t\treturn { value: value, done: false };\n\t}\n\n\t_AsyncGenerator.prototype._yield = function(value) {\n\t\t// Yield the value to the pending next call\n\t\tthis._resolve(value && value.then ? value.then(_wrapYieldedValue) : _wrapYieldedValue(value));\n\t\t// Return a pact for an upcoming next/return/throw call\n\t\treturn this._pact = new _Pact();\n\t};\n\t_AsyncGenerator.prototype.next = function(value) {\n\t\t// Advance the generator, starting it if it has yet to be started\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tconst _entry = _this._entry;\n\t\t\t\tif (_entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the next call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Start the generator\n\t\t\t\t_this._entry = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\tfunction returnValue(value) {\n\t\t\t\t\t_this._resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t_this._resolve = null;\n\t\t\t\t}\n\t\t\t\tvar result = _entry(_this);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tresult.then(returnValue, function(error) {\n\t\t\t\t\t\tif (error === _earlyReturn) {\n\t\t\t\t\t\t\treturnValue(_this._return);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst pact = new _Pact();\n\t\t\t\t\t\t\t_this._resolve(pact);\n\t\t\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t\t\t_this._resolve = null;\n\t\t\t\t\t\t\t_resolve(pact, 2, error);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\treturnValue(result);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Generator is started and a yield expression is pending, settle it\n\t\t\t\t_this._pact = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\t_settle(_pact, 1, value);\n\t\t\t}\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.return = function(value) {\n\t\t// Early return from the generator if started, otherwise abandons the generator\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the return call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return the specified value\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t}\n\t\t\t// Settle the yield expression with a rejected \"early return\" value\n\t\t\t_this._return = value;\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, _earlyReturn);\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.throw = function(error) {\n\t\t// Inject an exception into the pending yield expression\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve, reject) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the throw call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return a rejected Promise containing the error\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn reject(error);\n\t\t\t}\n\t\t\t// Settle the yield expression with the value as a rejection\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, error);\n\t\t});\n\t};\n\n\t_AsyncGenerator.prototype[_asyncIteratorSymbol] = function() {\n\t\treturn this;\n\t};\n\t\n\treturn _AsyncGenerator;\n})();\n","import memberstack from \"@memberstack/core\";\n\nimport { Listeners } from \"../types\";\nimport { loadModal } from \"../methods/modal/loadModal\";\nimport * as els from \"../constants/elements\";\nimport {\n addClickEvent,\n addInputEvent,\n getFieldValues\n} from \"../constants/utils\";\nconst { MSDOMElements } = els;\n\nexport const defaultListeners = (modal: HTMLElement, listeners: Listeners) => {\n const modalElements = MSDOMElements(modal);\n const portal: NodeListOf<HTMLElement> = modalElements.get(els.CLOSE_MODAL);\n const fields: NodeListOf<HTMLElement> = modalElements.get(\n els.INPUT_FIELD_INPUT\n );\n\n if (!portal) return;\n addClickEvent(portal, () => (modal.style.display = \"none\"));\n\n new MutationObserver(async mutations => {\n const [mutation] = mutations;\n switch (mutation.attributeName) {\n case \"style\":\n const { display } = modal.style;\n const method = display === \"none\" ? \"onClose\" : \"onOpen\";\n await listeners?.[method]?.();\n }\n }).observe(modal, {\n attributes: true,\n attributeFilter: [\"style\"]\n });\n\n addInputEvent(fields, () =>\n listeners?.onInputChange?.(getFieldValues(fields))\n );\n};\n\nexport const addLoginListeners = (\n modal: HTMLElement,\n opts?: object,\n listeners?: Listeners\n) => {\n defaultListeners(modal, listeners);\n\n const modalElements = MSDOMElements(modal);\n const buttons: NodeListOf<HTMLElement> = modalElements.get(els.SUBMIT_BUTTON);\n const modalToggle: NodeListOf<HTMLElement> = modalElements.get(\n els.MODAL_TYPE_TOGGLE\n );\n\n addClickEvent(buttons, e => loginListener(e, modal, listeners));\n addClickEvent(modalToggle, () =>\n loadModal({ id: \"signup_1\", options: opts })\n );\n};\n\nexport const addSignupListeners = (\n modal: HTMLElement,\n opts?: object,\n listeners?: Listeners\n) => {\n defaultListeners(modal, listeners);\n\n const modalElements = MSDOMElements(modal);\n const buttons: NodeListOf<HTMLElement> = modalElements.get(els.SUBMIT_BUTTON);\n const modalToggle: NodeListOf<HTMLElement> = modalElements.get(\n els.MODAL_TYPE_TOGGLE\n );\n addClickEvent(buttons, e => signupListener(e, modal, listeners));\n addClickEvent(modalToggle, () => loadModal({ id: \"login_1\", options: opts }));\n};\n\nexport const loginListener = async (\n e: Event,\n modal: HTMLElement,\n listeners?: Listeners\n) => {\n e.preventDefault();\n\n const modalElements = MSDOMElements(modal);\n const email: HTMLElement = modalElements.get(\n els.DEFAULT_EMAIL_INPUT_FIELD\n )[0];\n const password: HTMLElement = modalElements.get(\n els.DEFAULT_PASSWORD_INPUT_FIELD\n )[0];\n\n try {\n await listeners?.beforeSubmit?.();\n\n const loginRes = await memberstack.login({\n email: (email as HTMLInputElement).value,\n password: (password as HTMLInputElement).value\n });\n\n await listeners?.onSuccess?.(loginRes);\n return loginRes;\n } catch (err) {\n listeners?.onError?.(err);\n }\n};\n\nexport const signupListener = async (\n e: Event,\n modal: HTMLElement,\n listeners?: Listeners\n) => {\n e.preventDefault();\n const modalElements = MSDOMElements(modal);\n const fields: NodeListOf<HTMLElement> = modalElements.get(\n els.INPUT_FIELD_INPUT\n );\n const email: HTMLElement = modalElements.get(\n els.DEFAULT_EMAIL_INPUT_FIELD\n )[0];\n const password: HTMLElement = modalElements.get(\n els.DEFAULT_PASSWORD_INPUT_FIELD\n )[0];\n\n const customFields = Array.from(fields)\n .map((field: HTMLInputElement) => {\n if (![email, password].includes(field)) {\n const [_, type] = field.getAttribute(\"ms-editable\").split(\" \");\n return { [type]: field.value };\n }\n })\n .reduce((acc, cur) => ({ ...acc, ...cur }), {});\n\n const membership = modal.getAttribute(els.attributes[els.MEMBERSHIP_ID][0]);\n\n try {\n await listeners?.beforeSubmit?.();\n\n const signupRes = await memberstack.signup(\n {\n email: (email as HTMLInputElement).value,\n password: (password as HTMLInputElement).value,\n customFields,\n membership\n },\n [\"redirect\"]\n );\n\n await listeners?.onSuccess?.(signupRes);\n return signupRes;\n } catch (err) {\n listeners?.onError?.(err);\n }\n};\n","import { fetchModal } from \"./fetchModal\";\nimport * as els from \"../../constants/elements\";\nimport { prefetchLogo } from \"../../constants/utils\";\nimport { personalizeModal } from \"../../scripts/personalize\";\nimport { addLoginListeners, addSignupListeners } from \"../../scripts/listeners\";\n\nconst { MSDOMElements } = els;\n\ndeclare global {\n interface Window {\n MemberStack: {\n reload: () => void;\n };\n }\n}\n\nfunction appendModal({ el, data, membership }) {\n const { attributes: attr, MODAL_MODAL, MEMBERSHIP_ID, MODAL_ROOT } = els;\n\n const elements = MSDOMElements(document);\n const [msRoot] = elements.get(MODAL_ROOT);\n\n el.innerHTML = data;\n el.setAttribute(\"id\", attr[MODAL_MODAL][0].replace(\"#\", \"\"));\n membership && el.setAttribute(attr[MEMBERSHIP_ID][0], membership);\n\n msRoot.appendChild(el);\n}\n\nfunction appendEmbed({ el, data, rootEls, membership }) {\n const { attributes: attr, MODAL_EMBED, MEMBERSHIP_ID } = els;\n\n for (const root of rootEls) {\n el.innerHTML = data;\n el.setAttribute(\"id\", attr[MODAL_EMBED][0].replace(\"#\", \"\"));\n membership && el.setAttribute(attr[MEMBERSHIP_ID][0], membership);\n\n if (root.hasChildNodes()) {\n const child = root.children[0];\n child.replaceWith(el);\n } else {\n root.appendChild(el);\n }\n }\n}\n\nexport const loadModal = async props => {\n prefetchLogo(props.options?.logo);\n\n const data: string = await fetchModal({ id: props.id, embed: !!props.root });\n const modal: HTMLElement = document.createElement(\"div\");\n const modalStyle: CSSStyleDeclaration = modal.style;\n\n const elements = MSDOMElements(document);\n const currentModal: HTMLElement | null = elements.get(els.MODAL_MODAL)[0];\n\n const rootEls: NodeListOf<HTMLElement> = document.querySelectorAll(\n `[${els.attributes[els.MODAL_ROOT_EMBED][0]}=\"${props.root}\"]`\n );\n\n modalStyle.visibility = props.options ? \"hidden\" : \"visible\";\n\n currentModal && currentModal.remove();\n\n const addToDOM = props.root ? appendEmbed : appendModal;\n addToDOM({ el: modal, data, rootEls, membership: props.membership });\n\n const type = props.id.includes(\"signup\") ? \"signup\" : \"login\";\n const { onOpen, onClose, onSuccess, onError, onInputChange } = props;\n\n const addListeners =\n type === \"login\" ? addLoginListeners : addSignupListeners;\n\n window.MemberStack?.reload();\n\n personalizeModal(modal, props.options);\n addListeners(modal, props.optons, {\n onOpen,\n onClose,\n onSuccess,\n onError,\n onInputChange\n });\n\n modalStyle.visibility = \"visible\";\n};\n","import * as els from \"../../constants/elements\";\n\nexport async function fetchModal({ id, embed }) {\n const identifier = els.attributes[els.SITE_IDENTIFIER][0];\n const site: string = document\n .querySelector(`[${identifier}]`)\n .getAttribute(identifier);\n\n const queryParams = `?msid=${site}${embed ? `&embed=true` : ``}`;\n\n const res = await fetch(\n `https://p37k1liko6.execute-api.us-east-1.amazonaws.com/dev/modal/${id}${queryParams}`\n );\n\n return await res.text();\n}\n","import { loadModal } from \"./modal/loadModal\";\n\nconst launchTemplate = props => {\n return loadModal(props);\n};\n\nconst embedTemplate = props => {\n return loadModal(props);\n};\n\nexport { launchTemplate, embedTemplate };\n","import { launchTemplate, embedTemplate } from \"./methods\";\nimport \"./styles/modal.css\";\n\nexport { launchTemplate, embedTemplate };\nexport default { launchTemplate, embedTemplate };\n"],"names":["attributes","MSDOMElements","el","Map","Object","entries","map","document","querySelectorAll","join","addClickEvent","targets","callback","target","addEventListener","setAttr","els","attr","value","_Pact","prototype","then","onFulfilled","onRejected","result","state","this","s","_settle","v","e","o","_this","pact","bind","observer","_catch","body","recover","Symbol","iterator","asyncIterator","defaultListeners","modal","listeners","modalElements","portal","get","fields","style","display","MutationObserver","mutations","discriminant","cases","awaitBody","dispatchIndex","outer","i","length","test","testValue","fallthroughCheck","reject","_resumeAfterBody","_resumeAfterTest","attributeName","_listeners$method","observe","attributeFilter","addInputEvent","onInputChange","_listeners$onInputCha","Array","from","field","getAttribute","split","reduce","acc","cur","getFieldValues","addLoginListeners","opts","buttons","modalToggle","loginListener","loadModal","id","options","addSignupListeners","signupListener","preventDefault","email","password","beforeSubmit","_listeners$beforeSubm","memberstack","login","loginRes","onSuccess","_listeners$onSuccess","err","onError","customFields","includes","membership","_listeners$beforeSubm2","signup","signupRes","_listeners$onSuccess2","appendModal","data","msRoot","innerHTML","setAttribute","replace","appendChild","appendEmbed","rootEls","root","hasChildNodes","children","replaceWith","props","href","find","x","tagName","link","createElement","hint","rel","as","head","prefetchLogo","_props$options","logo","embed","identifier","site","querySelector","fetch","res","text","fetchModal","modalStyle","currentModal","visibility","remove","type","onOpen","onClose","addListeners","window","MemberStack","reload","settings","title","resetPassword","button","inputLabels","inputFields","_settings$text","_settings$text2","_settings$text3","logos","src","img","getAttributeNames","forEach","createLogo","label","input","_","placeholder","styles","elements","inlineStyles","str","keys","prev","curr","toLowerCase","container","_styles$input","_styles$input2","generateStyles","element","inputEl","linkEl","_inlineStyles$input","applyStyles","personalizeModal","optons","launchTemplate","embedTemplate"],"mappings":"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"}