openstack-uicore-foundation 4.2.34 → 4.2.35
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.
- package/.claude/rules/openstack-uicore-foundation-project.md +4 -4
- package/docs/plans/2026-07-30-node-22-migration.md +139 -0
- package/docs/plans/clickup-barrel-mui-dragalong.md +43 -0
- package/docs/plans/clickup-dropzone-cancel-chunk-slot-leak.md +58 -0
- package/docs/plans/clickup-form-item-table-disabled-row-quantity.md +117 -0
- package/docs/plans/clickup-order-ledger-extraction.md +44 -0
- package/docs/plans/clickup-uploadv3-progress-bar-large-files.md +42 -0
- package/lib/components/index.js +1 -1
- package/lib/components/index.js.map +1 -1
- package/lib/components/inputs/access-levels-input.js +1 -1
- package/lib/components/inputs/access-levels-input.js.map +1 -1
- package/lib/components/inputs/attendee-input.js +1 -1
- package/lib/components/inputs/attendee-input.js.map +1 -1
- package/lib/components/inputs/company-input-v2.js +1 -1
- package/lib/components/inputs/company-input-v2.js.map +1 -1
- package/lib/components/inputs/company-input.js +1 -1
- package/lib/components/inputs/company-input.js.map +1 -1
- package/lib/components/inputs/country-dropdown.js +1 -1
- package/lib/components/inputs/country-dropdown.js.map +1 -1
- package/lib/components/inputs/country-input.js +1 -1
- package/lib/components/inputs/country-input.js.map +1 -1
- package/lib/components/inputs/event-input.js +1 -1
- package/lib/components/inputs/event-input.js.map +1 -1
- package/lib/components/inputs/group-input.js +1 -1
- package/lib/components/inputs/group-input.js.map +1 -1
- package/lib/components/inputs/language-input.js +1 -1
- package/lib/components/inputs/language-input.js.map +1 -1
- package/lib/components/inputs/member-input.js +1 -1
- package/lib/components/inputs/member-input.js.map +1 -1
- package/lib/components/inputs/organization-input.js +1 -1
- package/lib/components/inputs/organization-input.js.map +1 -1
- package/lib/components/inputs/promocode-input.js +1 -1
- package/lib/components/inputs/promocode-input.js.map +1 -1
- package/lib/components/inputs/registration-company-input.js +1 -1
- package/lib/components/inputs/registration-company-input.js.map +1 -1
- package/lib/components/inputs/speaker-input.js +1 -1
- package/lib/components/inputs/speaker-input.js.map +1 -1
- package/lib/components/inputs/sponsor-input.js +1 -1
- package/lib/components/inputs/sponsor-input.js.map +1 -1
- package/lib/components/inputs/summit-input.js +1 -1
- package/lib/components/inputs/summit-input.js.map +1 -1
- package/lib/components/inputs/tag-input.js +1 -1
- package/lib/components/inputs/tag-input.js.map +1 -1
- package/lib/components/inputs/ticket-types-input.js +1 -1
- package/lib/components/inputs/ticket-types-input.js.map +1 -1
- package/lib/components/sponsored-project-input.js +1 -1
- package/lib/components/sponsored-project-input.js.map +1 -1
- package/lib/utils/pdf.js +2 -0
- package/lib/utils/pdf.js.map +1 -0
- package/lib/utils/query-actions.js +1 -1
- package/lib/utils/query-actions.js.map +1 -1
- package/package.json +7 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils/pdf.js","mappings":"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","sources":["webpack://openstack-uicore-foundation/webpack/universalModuleDefinition","webpack://openstack-uicore-foundation/webpack/bootstrap","webpack://openstack-uicore-foundation/webpack/runtime/compat get default export","webpack://openstack-uicore-foundation/webpack/runtime/define property getters","webpack://openstack-uicore-foundation/webpack/runtime/hasOwnProperty shorthand","webpack://openstack-uicore-foundation/webpack/runtime/make namespace object","webpack://openstack-uicore-foundation/external commonjs \"@babel/runtime/helpers/defineProperty\"","webpack://openstack-uicore-foundation/./src/utils/pdf/resolve-font.js","webpack://openstack-uicore-foundation/./src/utils/pdf/download-blob.js","webpack://openstack-uicore-foundation/./src/utils/pdf/create-document.js","webpack://openstack-uicore-foundation/./src/utils/pdf/image-data-url.js","webpack://openstack-uicore-foundation/external commonjs \"@babel/runtime/helpers/objectWithoutProperties\"","webpack://openstack-uicore-foundation/./src/utils/pdf/nodes.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"openstack-uicore-foundation\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"openstack-uicore-foundation\"] = factory();\n\telse\n\t\troot[\"openstack-uicore-foundation\"] = factory();\n})(this, () => {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/defineProperty\");","/**\n * Resolve a FontSpec into a registered pdfmake font family.\n *\n * pdfmake's browser build won't fetch font URLs itself (getBlob hangs), so a\n * URL font must be fetched + base64'd and registered via addFontContainer. This\n * toolkit bundles no font: the consumer provides one, and anything unusable\n * falls back to `'Helvetica'` (a standard-14 font the consumer must have\n * registered on its pdfMake, e.g. via pdfmake/build/standard-fonts/Helvetica).\n *\n * FontSpec — one of:\n * 'Helvetica' standard; nothing registered here\n * { family, vfs, fonts } imported/pre-baked base64 container (no fetch)\n * { family, urls: { normal, bold } } runtime-dynamic; we fetch + base64 + cache\n *\n * @param {object} pdfMake - the consumer's pdfmake instance\n * @param {string|object} font - FontSpec\n * @returns {Promise<string>} the font family to use as defaultStyle.font\n */\nconst HELVETICA = 'Helvetica';\n\n// Cache resolved URL containers so repeated prints don't refetch. Keyed by the\n// url set; stores the in-flight/resolved container promise.\nconst containerCache = new Map();\n\nconst arrayBufferToBase64 = (buffer) => {\n let binary = '';\n const bytes = new Uint8Array(buffer);\n const CHUNK = 0x8000;\n for (let i = 0; i < bytes.length; i += CHUNK) {\n binary += String.fromCharCode.apply(null, bytes.subarray(i, i + CHUNK));\n }\n return btoa(binary);\n};\n\nconst fetchFontBase64 = (url) =>\n fetch(url).then((res) => {\n if (!res.ok) throw new Error(`font fetch failed: ${res.status}`);\n return res.arrayBuffer();\n }).then(arrayBufferToBase64);\n\n// Build a pdfmake font container { vfs, fonts } from a set of weight -> URL.\nconst containerFromUrls = async (family, urls) => {\n const vfs = {};\n const fonts = { [family]: {} };\n await Promise.all(\n Object.keys(urls).map(async (weight) => {\n const file = `${family}-${weight}.ttf`;\n vfs[file] = await fetchFontBase64(urls[weight]);\n fonts[family][weight] = file;\n }),\n );\n return { vfs, fonts };\n};\n\nexport const resolveFont = async (pdfMake, font) => {\n if (!font || font === HELVETICA || font.family === HELVETICA) return HELVETICA;\n\n // Imported / pre-baked container — no fetch.\n if (font.family && font.vfs && font.fonts) {\n pdfMake.addFontContainer({ vfs: font.vfs, fonts: font.fonts });\n return font.family;\n }\n\n // Runtime-dynamic URLs — fetch + base64 (cached), fall back on failure.\n if (font.family && font.urls) {\n const key = font.family + '|' + JSON.stringify(font.urls);\n if (!containerCache.has(key)) {\n containerCache.set(\n key,\n containerFromUrls(font.family, font.urls).catch((err) => {\n containerCache.delete(key);\n throw err;\n }),\n );\n }\n try {\n const container = await containerCache.get(key);\n pdfMake.addFontContainer(container);\n return font.family;\n } catch (err) {\n // eslint-disable-next-line no-console\n console.warn('[pdf] custom font failed, using Helvetica:', err && err.message);\n return HELVETICA;\n }\n }\n\n return HELVETICA;\n};\n\nexport default resolveFont;\n","/**\n * Trigger a browser download of a Blob under a chosen filename.\n *\n * The anchor is created in the light DOM (document.body). Widgets that render\n * inside a shadow root can't use an <a download> there — Chrome ignores the\n * `download` filename for a shadow-tree anchor and saves the blob UUID with no\n * extension. Attaching to the top-level document.body makes Chrome honor the\n * filename. Call synchronously from a user gesture so the download keeps it.\n *\n * @param {Blob} blob\n * @param {string} filename\n */\nexport const downloadBlob = (blob, filename) => {\n try {\n const url = URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = filename;\n a.rel = 'noopener';\n a.style.display = 'none';\n document.body.appendChild(a);\n a.click();\n // Defer cleanup so the browser reads the blob + download attribute before\n // the anchor is removed. Removing it synchronously can make Chrome fall\n // back to the blob-UUID filename.\n setTimeout(() => {\n if (a.parentNode) a.parentNode.removeChild(a);\n URL.revokeObjectURL(url);\n }, 1000);\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('[pdf] download failed', err);\n }\n};\n\nexport default downloadBlob;\n","import { resolveFont } from './resolve-font';\nimport { downloadBlob } from './download-blob';\n\n/**\n * Build a PDF from a pure template and return the output verbs.\n *\n * The consumer passes its own (externalized, shared) `pdfMake` instance so there\n * is one VFS. The `template` is a pure `(data, { font }) -> docDefinition`; the\n * resolved family is applied to `defaultStyle.font`. Images referenced by the\n * template must already be base64 `data:` URLs (see imageDataUrl) — pdfmake's\n * browser build won't fetch remote images.\n *\n * @param {object} params.pdfMake consumer's pdfmake instance\n * @param {*} params.font FontSpec (see resolveFont); omit for Helvetica\n * @param {Function} params.template (data, { font }) => docDefinition\n * @param {*} params.data payload for the template\n * @param {Function} [params.onError] called on any build/fetch/layout failure\n * @returns {Promise<{download, open, print, getBlob, getBase64}>}\n */\nexport const createDocument = async ({ pdfMake, font, template, data, onError }) => {\n let handle;\n try {\n const family = await resolveFont(pdfMake, font);\n const doc = template(data, { font: family });\n doc.defaultStyle = { font: family, ...(doc.defaultStyle || {}) };\n handle = pdfMake.createPdf(doc);\n } catch (err) {\n if (onError) onError(err);\n throw err;\n }\n\n // pdfmake 0.3.x getBlob/getBase64/open/print/download are all async (promise-\n // based) — no callbacks. Wrap each so onError sees any failure.\n const run = (fn) => async (...args) => {\n try {\n return await fn(...args);\n } catch (err) {\n if (onError) onError(err);\n throw err;\n }\n };\n\n return {\n download: run(async (filename) => {\n const blob = await handle.getBlob();\n downloadBlob(blob, filename);\n }),\n open: run(() => handle.open()),\n print: run(() => handle.print()),\n getBlob: run(() => handle.getBlob()),\n getBase64: run(() => handle.getBase64()),\n };\n};\n\nexport default createDocument;\n","/**\n * Resolve an image source to a base64 `data:` URL for pdfmake.\n *\n * pdfmake's browser build won't fetch image URLs itself (getBlob hangs on a\n * remote image), so any http(s) logo must be fetched and base64'd first. A value\n * that is already a `data:` URL (e.g. a bundled/imported asset) is returned\n * unchanged. Results are cached (and in-flight deduped) by source.\n *\n * @param {string} src - http(s) URL or an existing data: URL\n * @returns {Promise<string|null>} data: URL, or null for a falsy src\n */\nconst cache = new Map();\n\nconst blobToDataUrl = (blob) =>\n new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => resolve(reader.result);\n reader.onerror = () => reject(reader.error || new Error('FileReader failed'));\n reader.readAsDataURL(blob);\n });\n\nexport const imageDataUrl = (src) => {\n if (!src) return Promise.resolve(null);\n if (src.indexOf('data:') === 0) return Promise.resolve(src);\n if (cache.has(src)) return cache.get(src);\n\n const p = fetch(src)\n .then((res) => {\n if (!res.ok) throw new Error(`image fetch failed: ${res.status}`);\n return res.blob();\n })\n .then(blobToDataUrl);\n\n cache.set(src, p);\n p.catch(() => cache.delete(src)); // don't cache failures\n return p;\n};\n\nexport default imageDataUrl;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/objectWithoutProperties\");","/**\n * Shared pdfmake node builders for the PDF toolkit. Pure functions that return\n * plain pdfmake docDefinition nodes (no pdfMake instance needed) — so callers\n * can spread-override, compose, or post-process the result. Each carries an\n * opinionated default and a trailing `opts` with a `...rest` passthrough onto\n * the returned node for one-off overrides.\n */\n\n/**\n * A label-over-value pair. Returns `[labelNode, valueNode]` so a caller can\n * spread it into a stack (several fields in a column) or wrap it in one\n * (`{ stack: field(...) }`).\n *\n * @param {string} label\n * @param {string|number} value\n * @param {object} [opts] - { bold=true, gap=8, labelColor } + rest spread onto the value node\n */\nexport const field = (label, value, opts = {}) => {\n const { bold = true, gap = 8, labelColor = '#777777', ...rest } = opts;\n return [\n {\n text: label == null ? '' : String(label),\n fontSize: 8,\n color: labelColor,\n characterSpacing: 0.4,\n margin: [0, 0, 0, 2],\n },\n { text: value == null ? '' : String(value), fontSize: 10, bold, margin: [0, 0, 0, gap], ...rest },\n ];\n};\n\n/**\n * A colored badge with a centered label, drawn as an inline SVG (rounded rect +\n * `text-anchor=\"middle\"`). SVG is used because pdfmake `canvas` can't hold text\n * and a `background:` can't be rounded; the SVG centers the label natively.\n * Always returns a standalone `{ svg, width }` node. Height and horizontal\n * padding derive from `fontSize`; the label is Helvetica-bold (always\n * registered) regardless of the body font.\n *\n * @param {string} text\n * @param {object} [opts] - { color, textColor='#fff', fontSize=9, radius, padX } + rest spread onto the node.\n * `radius` behaves like CSS `border-radius`: it is clamped to half the height,\n * so a large value (or the default) gives a full pill, `0` gives a square chip,\n * and anything between gives rounded corners.\n */\n// Escape the five XML-significant characters so live data (tag names like\n// \"AI & ML\") can't break the SVG markup — an unescaped \"&\" yields invalid SVG\n// that pdfmake's parser drops. Safe for both text content and attribute values.\nconst escapeXml = (s) =>\n String(s)\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n\nexport const badge = (text, opts = {}) => {\n const { color = '#0a7a2f', textColor = '#ffffff', fontSize = 9, radius = 999, padX, ...rest } = opts;\n const label = text == null ? '' : String(text);\n const h = Math.round(fontSize * 1.9);\n const rx = Math.max(0, Math.min(radius, h / 2)); // CSS-like border-radius, clamped to a full pill\n const px = padX != null ? padX : Math.round(fontSize * 1.2);\n const w = Math.ceil(label.length * fontSize * 0.62) + px * 2; // size from the raw length, not the escaped one\n const y = h / 2 + fontSize * 0.34; // baseline that vertically centers the label\n const svg =\n `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${w}\" height=\"${h}\">` +\n `<rect x=\"0\" y=\"0\" width=\"${w}\" height=\"${h}\" rx=\"${rx}\" fill=\"${escapeXml(color)}\"/>` +\n `<text x=\"${w / 2}\" y=\"${y}\" fill=\"${escapeXml(textColor)}\" font-family=\"Helvetica\" font-size=\"${fontSize}\" ` +\n `font-weight=\"bold\" text-anchor=\"middle\">${escapeXml(label)}</text>` +\n `</svg>`;\n return { svg, width: w, ...rest };\n};\n"],"names":["root","factory","exports","module","define","amd","this","__webpack_require__","n","getter","__esModule","d","a","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","require","HELVETICA","containerCache","Map","arrayBufferToBase64","buffer","binary","bytes","Uint8Array","i","length","String","fromCharCode","apply","subarray","btoa","containerFromUrls","async","family","urls","vfs","fonts","Promise","all","keys","map","file","weight","url","fetch","then","res","ok","Error","status","arrayBuffer","fetchFontBase64","resolveFont","pdfMake","font","addFontContainer","JSON","stringify","has","set","catch","err","delete","container","console","warn","message","downloadBlob","blob","filename","URL","createObjectURL","document","createElement","href","download","rel","style","display","body","appendChild","click","setTimeout","parentNode","removeChild","revokeObjectURL","error","createDocument","template","data","onError","handle","doc","defaultStyle","_objectSpread","createPdf","run","fn","args","getBlob","open","print","getBase64","cache","blobToDataUrl","resolve","reject","reader","FileReader","onload","result","onerror","readAsDataURL","imageDataUrl","src","indexOf","p","field","label","opts","bold","gap","labelColor","rest","_objectWithoutProperties","_excluded","text","fontSize","color","characterSpacing","margin","escapeXml","s","replace","badge","textColor","radius","padX","_excluded2","h","Math","round","rx","max","min","px","w","ceil","y","svg","width"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define("openstack-uicore-foundation",[],r):"object"==typeof exports?exports["openstack-uicore-foundation"]=r():e["openstack-uicore-foundation"]=r()}(this,(()=>(()=>{"use strict";var e={5097:(e,r,a)=>{a(1116),a(6842),a(9087),a(9558),a(2183)},3195:(e,r,a)=>{a.d(r,{AUTH_ERROR_ACCESS_TOKEN_EXPIRED:()=>n,AUTH_ERROR_LOCK_ACQUIRE_ERROR:()=>s,AUTH_ERROR_MISSING_AUTH_INFO:()=>t,AUTH_ERROR_MISSING_REFRESH_TOKEN:()=>o,AUTH_ERROR_REFRESH_TOKEN_NETWORK_ERROR:()=>i,AUTH_ERROR_REFRESH_TOKEN_REQUEST_ERROR:()=>d});const t="AUTH_ERROR_MISSING_AUTH_INFO",o="AUTH_ERROR_MISSING_REFRESH_TOKEN",n="AUTH_ERROR_ACCESS_TOKEN_EXPIRED",s="AUTH_ERROR_LOCK_ACQUIRE_ERROR",d="AUTH_ERROR_REFRESH_TOKEN_REQUEST_ERROR",i="AUTH_ERROR_REFRESH_TOKEN_NETWORK_ERROR"},2183:(e,r,a)=>{a.d(r,{getAccessToken:()=>m});var t=a(9558),o=a(5812),n=a.n(o);a(806);const s=require("browser-tabs-lock");var d=a.n(s);const i=require("js-cookie");var u=a.n(i),c=(a(8041),a(9891),a(5097),a(8853),a(3195));const Lock=new(d()),GET_TOKEN_SILENTLY_LOCK_KEY="openstackuicore.lock.getTokenSilently",l="code",p="authInfo",y="idToken",_=async(e,r)=>{if(e===l&&S()){if(!r)throw T(),Error(c.AUTH_ERROR_MISSING_REFRESH_TOKEN);let e=await(async(e,r=5,a=1e3)=>{for(let t=0;t<r;t++)try{return await e()}catch(e){if(!e.message||!e.message.startsWith(c.AUTH_ERROR_REFRESH_TOKEN_NETWORK_ERROR)||t===r-1)throw e;const o=a*Math.pow(2,t);console.log(`retryWithBackoff retry ${t+1}/${r} in ${o}ms`),await new Promise((e=>setTimeout(e,o)))}})((()=>f(r))),{access_token:a,expires_in:t,refresh_token:o,id_token:n}=e;return void 0===o&&(o=null),g(a,t,o,n),a}throw T(),Error(c.AUTH_ERROR_ACCESS_TOKEN_EXPIRED)},R=async()=>{console.log("openstack-uicore-foundation::Security::methods::_getAccessToken");let e=E();if(!e)throw console.log("openstack-uicore-foundation::Security::methods::_getAccessToken AUTH_ERROR_MISSING_AUTH_INFO"),Error(c.AUTH_ERROR_MISSING_AUTH_INFO);let{accessToken:r,expiresIn:a,accessTokenUpdatedAt:t,refreshToken:o}=e,s=O();const d=n()().unix();let i=d-t;return a-=60,console.log(`openstack-uicore-foundation::Security::methods::_getAccessToken now ${d} accessTokenUpdatedAt ${t} expiresIn ${a} timeElapsedSecs ${i}`),(i>=a||null==r)&&(console.log("openstack-uicore-foundation::Security::methods::_getAccessToken access token expired, refreshing it ..."),r=await _(s,o)),r},m=async()=>{if("undefined"!=typeof navigator&&navigator.locks)return await navigator.locks.request(GET_TOKEN_SILENTLY_LOCK_KEY,(async e=>(console.log("openstack-uicore-foundation::Security::methods::getAccessToken web lock api",e),await R())));if(!await(0,t.retryPromise)((()=>Lock.acquireLock(GET_TOKEN_SILENTLY_LOCK_KEY,6e3)),10))throw Error(c.AUTH_ERROR_LOCK_ACQUIRE_ERROR);try{return await R()}finally{await Lock.releaseLock(GET_TOKEN_SILENTLY_LOCK_KEY)}},f=async e=>{let r=w(),a=Q();const o={grant_type:"refresh_token",client_id:encodeURI(a),refresh_token:e},n=new AbortController,s=setTimeout((()=>n.abort()),1e4);let d,i;try{d=await fetch(`${r}/oauth2/token`,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify(o),signal:n.signal})}catch(e){throw console.log("refreshAccessToken network error:",e.message),Error(`${c.AUTH_ERROR_REFRESH_TOKEN_NETWORK_ERROR}: ${e.message}`)}finally{clearTimeout(s)}if(!d.ok){if(console.log(`refreshAccessToken server error: ${d.status} - ${d.statusText}`),d.status>=500||408===d.status||429===d.status)throw Error(`${c.AUTH_ERROR_REFRESH_TOKEN_NETWORK_ERROR}: ${d.status} - ${d.statusText}`);throw(0,t.setSessionClearingState)(!0),Error(`${c.AUTH_ERROR_REFRESH_TOKEN_REQUEST_ERROR}: ${d.status} - ${d.statusText}`)}try{i=await d.json()}catch(e){throw Error(`${c.AUTH_ERROR_REFRESH_TOKEN_NETWORK_ERROR}: invalid JSON response from IDP`)}let{access_token:u,refresh_token:l,expires_in:p,id_token:y}=i;if(!u)throw(0,t.setSessionClearingState)(!0),Error(`${c.AUTH_ERROR_REFRESH_TOKEN_REQUEST_ERROR}: missing access_token in refresh response`);return{access_token:u,refresh_token:l,expires_in:p,id_token:y}},g=(e,r,a=null,o=null)=>{let n=E(),s={accessToken:e,expiresIn:r,accessTokenUpdatedAt:Math.floor(Date.now()/1e3)};null==a&&n&&(a=n.refreshToken),null==o&&n&&(o=n.idToken),a&&(s.refreshToken=a),o?(s[y]=o,u().set(y,o,{secure:!0,sameSite:"Lax"})):u().remove(y),(0,t.putOnLocalStorage)(p,JSON.stringify(s))},E=()=>{try{let e=(0,t.getFromLocalStorage)(p,!1);return e?JSON.parse(e):null}catch(e){return null}},T=()=>{"undefined"!=typeof window&&((0,t.removeFromLocalStorage)(p),u().remove(y))},Q=()=>"undefined"!=typeof window?window.OAUTH2_CLIENT_ID:null,O=()=>"undefined"!=typeof window&&window.OAUTH2_FLOW||"token id_token",S=()=>"undefined"==typeof window||new Boolean(window.OAUTH2_USE_REFRESH_TOKEN||!0),w=()=>"undefined"!=typeof window?window.IDP_BASE_URL:null},9087:(e,r,a)=>{a.d(r,{escapeFilterValue:()=>p,fetchErrorHandler:()=>c,fetchResponseHandler:()=>l});a(2462),a(806);var t=a(8041),o=a.n(t),n=a(9236),s=a.n(n),d=a(6842),i=a.n(d);a(9558),a(5097),a(2183);o().escapeQuerySpace=!1;const u=e=>r=>({type:e,payload:r}),c=(u("RESET_LOADING"),u("START_LOADING"),u("STOP_LOADING"),e=>{let r=e.status,a=e.statusText;switch(r){case 403:s().fire("ERROR",i().translate("errors.user_not_authz"),"warning");break;case 401:s().fire("ERROR",i().translate("errors.session_expired"),"error");break;case 412:s().fire("ERROR",a,"warning");case 500:s().fire("ERROR",i().translate("errors.server_error"),"error")}}),l=e=>{if(e.ok)return e.json();throw e},p=e=>e=(e=(e=(e=(e=String(e)).replace(/\\/g,"\\\\")).replace(/,/g,"\\,")).replace(/;/g,"\\;")).replace(/\+/g,"%2B")},8853:()=>{require("spark-md5"),require("crypto-js/sha256"),require("crypto-js/enc-base64url"),require("crypto-js/enc-hex"),"undefined"!=typeof window&&(window.crypto||window.msCrypto)},9558:(e,r,a)=>{a.d(r,{buildAPIBaseUrl:()=>t,getFromLocalStorage:()=>n,putOnLocalStorage:()=>o,removeFromLocalStorage:()=>s,retryPromise:()=>i,setSessionClearingState:()=>d});a(5812),a(8041);const t=e=>"undefined"!=typeof window?`${window.API_BASE_URL}${e}`:null``,o=(e,r)=>{"undefined"!=typeof window&&window.localStorage.setItem(e,r)},n=(e,r)=>{if("undefined"!=typeof window){let a=window.localStorage.getItem(e);return r&&(console.log(`getFromLocalStorage removing key ${e}`),s(e)),a}return null},s=e=>{"undefined"!=typeof window&&window.localStorage.removeItem(e)},d=e=>{"undefined"!=typeof window&&(window.clearing_session_state=e)},i=async(e,r=3)=>{for(let a=0;a<r;a++)if(await e())return!0;return!1}},1116:e=>{e.exports=require("@babel/runtime/helpers/defineProperty")},2462:e=>{e.exports=require("@babel/runtime/helpers/objectWithoutProperties")},6842:e=>{e.exports=require("i18n-react/dist/i18n-react")},9891:e=>{e.exports=require("idtoken-verifier")},7825:e=>{e.exports=require("lodash")},5812:e=>{e.exports=require("moment-timezone")},806:e=>{e.exports=require("superagent/lib/client")},9236:e=>{e.exports=require("sweetalert2")},8041:e=>{e.exports=require("urijs")}},r={};function a(t){var o=r[t];if(void 0!==o)return o.exports;var n=r[t]={exports:{}};return e[t](n,n.exports,a),n.exports}(()=>{a.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return a.d(r,{a:r}),r}})(),(()=>{a.d=(e,r)=>{for(var t in r)a.o(r,t)&&!a.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})}})(),(()=>{a.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r)})(),(()=>{a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}})();var t={};a.r(t),a.d(t,{DEFAULT_PAGE_SIZE:()=>y,RECEIVE_COUNTRIES:()=>l,geoCodeAddress:()=>N,geoCodeLatLng:()=>x,getCountryList:()=>H,getLanguageList:()=>U,queryAccessLevels:()=>b,queryAttendees:()=>f,queryCompanies:()=>h,queryEventTypes:()=>w,queryEvents:()=>S,queryGroups:()=>k,queryMembers:()=>m,queryOrganizations:()=>F,queryPromocodes:()=>K,queryRegistrationCompanies:()=>$,querySpeakers:()=>E,querySponsoredProjects:()=>C,querySponsors:()=>A,querySponsorsWithBadgeScans:()=>v,querySummits:()=>g,queryTags:()=>T,queryTicketTypes:()=>q,queryTrackGroups:()=>O,queryTracks:()=>Q});var o=a(9087),n=a(2183),s=a(9558),d=a(7825),i=a.n(d),u=a(8041),c=a.n(u);const l="RECEIVE_COUNTRIES",p=500;c().escapeQuerySpace=!1;const y=10,_=async(e,r,a={})=>fetch((0,s.buildAPIBaseUrl)(e.toString()),a).then(o.fetchResponseHandler).then((e=>{"function"==typeof r&&r(e.data)})).catch((e=>(404===e.status&&r([]),e))).catch(o.fetchErrorHandler),R=async(e,r,a={})=>{let t;try{t=await(0,n.getAccessToken)()}catch(e){return"function"==typeof r&&r(e),Promise.reject()}return e.addQuery("access_token",t),_(e,r,a)},m=i().debounce((async(e,r,a=y)=>{let t=c()("/api/v1/members");t.addQuery("expand","tickets,rsvp,schedule_summit_events,all_affiliations"),t.addQuery("order","first_name,last_name"),t.addQuery("page",1),t.addQuery("per_page",a),e&&(e=(0,o.escapeFilterValue)(e),t.addQuery("filter[]",`full_name@@${e},first_name@@${e},last_name@@${e},email@@${e}`)),R(t,r)}),p),f=i().debounce((async(e,r,a,t=y)=>{let n=c()(`/api/v1/summits/${e}/attendees`);n.addQuery("order","first_name,last_name"),n.addQuery("page",1),n.addQuery("per_page",t),r&&(r=(0,o.escapeFilterValue)(r),n.addQuery("filter[]",`full_name=@${r},email=@${r}`)),R(n,a)}),p),g=i().debounce((async(e,r,a=y)=>{let t=c()("/api/v1/summits/all");t.addQuery("expand","tickets,rsvp,schedule_summit_events,all_affiliations"),t.addQuery("order","name"),t.addQuery("page",1),t.addQuery("per_page",a),e&&(e=(0,o.escapeFilterValue)(e),t.addQuery("filter[]",`name@@${e}`)),R(t,r)}),p),E=i().debounce((async(e,r,a,t=y)=>{let n=c()("/api/v1/"+(e?`summits/${e}/speakers`:"speakers"));n.addQuery("expand","member,registration_request"),n.addQuery("order","first_name,last_name"),n.addQuery("page",1),n.addQuery("per_page",t),r&&(r=(0,o.escapeFilterValue)(r),n.addQuery("filter[]",`full_name@@${r},first_name@@${r},last_name@@${r},email@@${r}`)),R(n,a)}),p),T=i().debounce((async(e,r,a,t=50)=>{let n=c()("/api/v1/"+(e?`summits/${e}/track-tag-groups/all/allowed-tags`:"tags"));e&&n.addQuery("expand","tag,track_tag_group"),n.addQuery("order","tag"),n.addQuery("page",1),n.addQuery("per_page",t),r&&(r=(0,o.escapeFilterValue)(r),n.addQuery("filter[]",`tag@@${r}`)),R(n,a)}),p),Q=i().debounce((async(e,r,a,t=[],n=y)=>{let s=c()(`/api/v1/summits/${e}/tracks`);s.addQuery("order","name"),s.addQuery("page",1),s.addQuery("per_page",n),(null==t?void 0:t.length)>0&&s.addQuery("filter[]",`not_id==${t.join("||")}`),r&&(r=(0,o.escapeFilterValue)(r),s.addQuery("filter[]",`name@@${r}`)),R(s,a)}),p),O=i().debounce((async(e,r,a,t=y)=>{let n=c()(`/api/v1/summits/${e}/track-groups`);n.addQuery("order","name"),n.addQuery("page",1),n.addQuery("per_page",t),r&&(r=(0,o.escapeFilterValue)(r),n.addQuery("filter[]",`name@@${r}`)),R(n,a)}),p),S=i().debounce((async(e,r,a=!1,t,n=y)=>{let s=c()(`/api/v1/summits/${e}/events`+(a?"/published":""));s.addQuery("order","title"),s.addQuery("page",1),s.addQuery("per_page",n),r&&(r=(0,o.escapeFilterValue)(r),s.addQuery("filter[]",`title@@${r}`)),R(s,t)}),p),w=i().debounce((async(e,r,a,t=null,n=y)=>{let s=c()(`/api/v1/summits/${e}/event-types`);s.addQuery("order","name"),s.addQuery("page",1),s.addQuery("per_page",n),r&&(r=(0,o.escapeFilterValue)(r),s.addQuery("filter[]",`name@@${r}`)),t&&(t=(0,o.escapeFilterValue)(t),s.addQuery("filter[]",`class_name==${t}`)),R(s,a)}),p),k=i().debounce((async(e,r,a=y)=>{let t=c()("/api/v1/groups");t.addQuery("order","title,code"),t.addQuery("page",1),t.addQuery("per_page",a),e&&(e=(0,o.escapeFilterValue)(e),t.addQuery("filter[]",`title@@${e},code@@${e}`)),R(t,r)}),p),h=i().debounce((async(e,r,a=y)=>{let t=c()("/api/v1/companies");t.addQuery("order","name"),t.addQuery("page",1),t.addQuery("per_page",a),e&&(e=(0,o.escapeFilterValue)(e),t.addQuery("filter[]",`name@@${e}`)),R(t,r)}),p),$=i().debounce((async(e,r,a,t=y)=>{let n=c()(`/api/v1/summits/${e}/registration-companies`);n.addQuery("order","name"),n.addQuery("page",1),n.addQuery("per_page",t),r&&(r=(0,o.escapeFilterValue)(r),n.addQuery("filter[]",`name@@${r}`)),R(n,a)}),p),A=i().debounce((async(e,r,a,t=y)=>{let n=c()(`/api/v1/summits/${e}/sponsors`);n.addQuery("expand","company,sponsorship,sponsorship.type"),n.addQuery("order","id"),n.addQuery("page",1),n.addQuery("per_page",t),r&&(r=(0,o.escapeFilterValue)(r),n.addQuery("filter[]",`company_name@@${r}`)),R(n,a)}),p),v=i().debounce((async(e,r,a,t=y)=>{let n=c()(`/api/v1/summits/${e}/sponsors`);n.addQuery("expand","company,sponsorship,sponsorship.type"),n.addQuery("fields","id,company.name,sponsorship.type.name"),n.addQuery("relations","none,company.none,sponsorship.type.none"),n.addQuery("filter[]","badge_scans_count>0"),n.addQuery("order","+company_name"),n.addQuery("page",1),n.addQuery("per_page",t),r&&(r=(0,o.escapeFilterValue)(r),n.addQuery("filter[]",`company_name@@${r}`)),R(n,a)}),p),b=i().debounce((async(e,r,a,t=y)=>{let n=c()(`/api/v1/summits/${e}/access-level-types`);n.addQuery("order","name"),n.addQuery("page",1),n.addQuery("per_page",t),r&&(r=(0,o.escapeFilterValue)(r),n.addQuery("filter[]",`name@@${r}`)),R(n,a)}),p),F=i().debounce((async(e,r,a=y)=>{let t=c()("/api/v1/organizations");t.addQuery("order","name"),t.addQuery("page",1),t.addQuery("per_page",a),e&&(e=(0,o.escapeFilterValue)(e),t.addQuery("filter[]",`name@@${e}`)),R(t,r)}),p),U=(e,r)=>_(new(c())("/api/public/v1/languages"),e,{signal:r}),H=(e,r)=>_(new(c())("/api/public/v1/countries"),e,{signal:r});let I;const N=e=>(I||(I=new google.maps.Geocoder),new Promise((function(r,a){I.geocode({address:e},(function(e,t){t==google.maps.GeocoderStatus.OK?r(e):a(t)}))}))),x=(e,r)=>{I||(I=new google.maps.Geocoder);let a={lat:parseFloat(e),lng:parseFloat(r)};return new Promise((function(e,r){I.geocode({location:a},(function(a,t){t==google.maps.GeocoderStatus.OK?e(a):r(t)}))}))},q=i().debounce((async(e,r={},a,t="v1",n=y)=>{let s=c()(`/api/${t}/summits/${e}/ticket-types`);if(s.addQuery("order","name"),s.addQuery("page",1),s.addQuery("per_page",n),r.hasOwnProperty("name")){const e=(0,o.escapeFilterValue)(r.name);e&&""!=e&&s.addQuery("filter[]",`name@@${e}`)}if(r.hasOwnProperty("audience")){const e=(0,o.escapeFilterValue)(r.audience);e&&""!=e&&s.addQuery("filter[]",`audience==${e}`)}R(s,a)}),p),C=i().debounce((async(e,r,a=y)=>{const t=c()("/api/v1/sponsored-projects");t.addQuery("order","name"),t.addQuery("page",1),t.addQuery("per_page",a),e&&(e=(0,o.escapeFilterValue)(e),t.addQuery("filter[]",`name@@${e}`)),R(t,r)}),p),K=i().debounce((async(e,r,a,t=y,n=[])=>{let s=c()(`/api/v1/summits/${e}/promo-codes`);s.addQuery("order","code"),s.addQuery("page",1),s.addQuery("per_page",t),r&&(r=(0,o.escapeFilterValue)(r),s.addQuery("filter[]",`code@@${r}`));for(const e of n)s.addQuery("filter[]",e);R(s,a)}),p);return t})()));
|
|
1
|
+
!function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define("openstack-uicore-foundation",[],r):"object"==typeof exports?exports["openstack-uicore-foundation"]=r():e["openstack-uicore-foundation"]=r()}(this,(()=>(()=>{"use strict";var e={5097:(e,r,a)=>{a(1116),a(6842),a(9087),a(9558),a(2183)},3195:(e,r,a)=>{a.d(r,{AUTH_ERROR_ACCESS_TOKEN_EXPIRED:()=>s,AUTH_ERROR_LOCK_ACQUIRE_ERROR:()=>n,AUTH_ERROR_MISSING_AUTH_INFO:()=>t,AUTH_ERROR_MISSING_REFRESH_TOKEN:()=>o,AUTH_ERROR_REFRESH_TOKEN_NETWORK_ERROR:()=>d,AUTH_ERROR_REFRESH_TOKEN_REQUEST_ERROR:()=>i});const t="AUTH_ERROR_MISSING_AUTH_INFO",o="AUTH_ERROR_MISSING_REFRESH_TOKEN",s="AUTH_ERROR_ACCESS_TOKEN_EXPIRED",n="AUTH_ERROR_LOCK_ACQUIRE_ERROR",i="AUTH_ERROR_REFRESH_TOKEN_REQUEST_ERROR",d="AUTH_ERROR_REFRESH_TOKEN_NETWORK_ERROR"},2183:(e,r,a)=>{a.d(r,{getAccessToken:()=>m});var t=a(9558),o=a(5812),s=a.n(o);a(806);const n=require("browser-tabs-lock");var i=a.n(n);const d=require("js-cookie");var u=a.n(d),c=(a(8041),a(9891),a(5097),a(8853),a(3195));const Lock=new(i()),GET_TOKEN_SILENTLY_LOCK_KEY="openstackuicore.lock.getTokenSilently",l="code",p="authInfo",y="idToken",_=async(e,r)=>{if(e===l&&S()){if(!r)throw T(),Error(c.AUTH_ERROR_MISSING_REFRESH_TOKEN);let e=await(async(e,r=5,a=1e3)=>{for(let t=0;t<r;t++)try{return await e()}catch(e){if(!e.message||!e.message.startsWith(c.AUTH_ERROR_REFRESH_TOKEN_NETWORK_ERROR)||t===r-1)throw e;const o=a*Math.pow(2,t);console.log(`retryWithBackoff retry ${t+1}/${r} in ${o}ms`),await new Promise((e=>setTimeout(e,o)))}})((()=>f(r))),{access_token:a,expires_in:t,refresh_token:o,id_token:s}=e;return void 0===o&&(o=null),g(a,t,o,s),a}throw T(),Error(c.AUTH_ERROR_ACCESS_TOKEN_EXPIRED)},R=async()=>{console.log("openstack-uicore-foundation::Security::methods::_getAccessToken");let e=E();if(!e)throw console.log("openstack-uicore-foundation::Security::methods::_getAccessToken AUTH_ERROR_MISSING_AUTH_INFO"),Error(c.AUTH_ERROR_MISSING_AUTH_INFO);let{accessToken:r,expiresIn:a,accessTokenUpdatedAt:t,refreshToken:o}=e,n=O();const i=s()().unix();let d=i-t;return a-=60,console.log(`openstack-uicore-foundation::Security::methods::_getAccessToken now ${i} accessTokenUpdatedAt ${t} expiresIn ${a} timeElapsedSecs ${d}`),(d>=a||null==r)&&(console.log("openstack-uicore-foundation::Security::methods::_getAccessToken access token expired, refreshing it ..."),r=await _(n,o)),r},m=async()=>{if("undefined"!=typeof navigator&&navigator.locks)return await navigator.locks.request(GET_TOKEN_SILENTLY_LOCK_KEY,(async e=>(console.log("openstack-uicore-foundation::Security::methods::getAccessToken web lock api",e),await R())));if(!await(0,t.retryPromise)((()=>Lock.acquireLock(GET_TOKEN_SILENTLY_LOCK_KEY,6e3)),10))throw Error(c.AUTH_ERROR_LOCK_ACQUIRE_ERROR);try{return await R()}finally{await Lock.releaseLock(GET_TOKEN_SILENTLY_LOCK_KEY)}},f=async e=>{let r=w(),a=Q();const o={grant_type:"refresh_token",client_id:encodeURI(a),refresh_token:e},s=new AbortController,n=setTimeout((()=>s.abort()),1e4);let i,d;try{i=await fetch(`${r}/oauth2/token`,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify(o),signal:s.signal})}catch(e){throw console.log("refreshAccessToken network error:",e.message),Error(`${c.AUTH_ERROR_REFRESH_TOKEN_NETWORK_ERROR}: ${e.message}`)}finally{clearTimeout(n)}if(!i.ok){if(console.log(`refreshAccessToken server error: ${i.status} - ${i.statusText}`),i.status>=500||408===i.status||429===i.status)throw Error(`${c.AUTH_ERROR_REFRESH_TOKEN_NETWORK_ERROR}: ${i.status} - ${i.statusText}`);throw(0,t.setSessionClearingState)(!0),Error(`${c.AUTH_ERROR_REFRESH_TOKEN_REQUEST_ERROR}: ${i.status} - ${i.statusText}`)}try{d=await i.json()}catch(e){throw Error(`${c.AUTH_ERROR_REFRESH_TOKEN_NETWORK_ERROR}: invalid JSON response from IDP`)}let{access_token:u,refresh_token:l,expires_in:p,id_token:y}=d;if(!u)throw(0,t.setSessionClearingState)(!0),Error(`${c.AUTH_ERROR_REFRESH_TOKEN_REQUEST_ERROR}: missing access_token in refresh response`);return{access_token:u,refresh_token:l,expires_in:p,id_token:y}},g=(e,r,a=null,o=null)=>{let s=E(),n={accessToken:e,expiresIn:r,accessTokenUpdatedAt:Math.floor(Date.now()/1e3)};null==a&&s&&(a=s.refreshToken),null==o&&s&&(o=s.idToken),a&&(n.refreshToken=a),o?(n[y]=o,u().set(y,o,{secure:!0,sameSite:"Lax"})):u().remove(y),(0,t.putOnLocalStorage)(p,JSON.stringify(n))},E=()=>{try{let e=(0,t.getFromLocalStorage)(p,!1);return e?JSON.parse(e):null}catch(e){return null}},T=()=>{"undefined"!=typeof window&&((0,t.removeFromLocalStorage)(p),u().remove(y))},Q=()=>"undefined"!=typeof window?window.OAUTH2_CLIENT_ID:null,O=()=>"undefined"!=typeof window&&window.OAUTH2_FLOW||"token id_token",S=()=>"undefined"==typeof window||new Boolean(window.OAUTH2_USE_REFRESH_TOKEN||!0),w=()=>"undefined"!=typeof window?window.IDP_BASE_URL:null},9087:(e,r,a)=>{a.d(r,{escapeFilterValue:()=>p,fetchErrorHandler:()=>c,fetchResponseHandler:()=>l});a(2462),a(806);var t=a(8041),o=a.n(t),s=a(9236),n=a.n(s),i=a(6842),d=a.n(i);a(9558),a(5097),a(2183);o().escapeQuerySpace=!1;const u=e=>r=>({type:e,payload:r}),c=(u("RESET_LOADING"),u("START_LOADING"),u("STOP_LOADING"),e=>{let r=e.status,a=e.statusText;switch(r){case 403:n().fire("ERROR",d().translate("errors.user_not_authz"),"warning");break;case 401:n().fire("ERROR",d().translate("errors.session_expired"),"error");break;case 412:n().fire("ERROR",a,"warning");case 500:n().fire("ERROR",d().translate("errors.server_error"),"error")}}),l=e=>{if(e.ok)return e.json();throw e},p=e=>e=(e=(e=(e=(e=String(e)).replace(/\\/g,"\\\\")).replace(/,/g,"\\,")).replace(/;/g,"\\;")).replace(/\+/g,"%2B")},8853:()=>{require("spark-md5"),require("crypto-js/sha256"),require("crypto-js/enc-base64url"),require("crypto-js/enc-hex"),"undefined"!=typeof window&&(window.crypto||window.msCrypto)},9558:(e,r,a)=>{a.d(r,{buildAPIBaseUrl:()=>t,getFromLocalStorage:()=>s,putOnLocalStorage:()=>o,removeFromLocalStorage:()=>n,retryPromise:()=>d,setSessionClearingState:()=>i});a(5812),a(8041);const t=e=>"undefined"!=typeof window?`${window.API_BASE_URL}${e}`:null``,o=(e,r)=>{"undefined"!=typeof window&&window.localStorage.setItem(e,r)},s=(e,r)=>{if("undefined"!=typeof window){let a=window.localStorage.getItem(e);return r&&(console.log(`getFromLocalStorage removing key ${e}`),n(e)),a}return null},n=e=>{"undefined"!=typeof window&&window.localStorage.removeItem(e)},i=e=>{"undefined"!=typeof window&&(window.clearing_session_state=e)},d=async(e,r=3)=>{for(let a=0;a<r;a++)if(await e())return!0;return!1}},1116:e=>{e.exports=require("@babel/runtime/helpers/defineProperty")},2462:e=>{e.exports=require("@babel/runtime/helpers/objectWithoutProperties")},6842:e=>{e.exports=require("i18n-react/dist/i18n-react")},9891:e=>{e.exports=require("idtoken-verifier")},5812:e=>{e.exports=require("moment-timezone")},806:e=>{e.exports=require("superagent/lib/client")},9236:e=>{e.exports=require("sweetalert2")},8041:e=>{e.exports=require("urijs")}},r={};function a(t){var o=r[t];if(void 0!==o)return o.exports;var s=r[t]={exports:{}};return e[t](s,s.exports,a),s.exports}(()=>{a.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return a.d(r,{a:r}),r}})(),(()=>{a.d=(e,r)=>{for(var t in r)a.o(r,t)&&!a.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})}})(),(()=>{a.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r)})(),(()=>{a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}})();var t={};a.r(t),a.d(t,{DEFAULT_PAGE_SIZE:()=>y,RECEIVE_COUNTRIES:()=>l,geoCodeAddress:()=>q,geoCodeLatLng:()=>x,getCountryList:()=>I,getLanguageList:()=>H,queryAccessLevels:()=>F,queryAttendees:()=>f,queryCompanies:()=>h,queryEventTypes:()=>w,queryEvents:()=>S,queryGroups:()=>k,queryMembers:()=>m,queryOrganizations:()=>U,queryPromocodes:()=>K,queryRegistrationCompanies:()=>$,querySpeakers:()=>E,querySponsoredProjects:()=>C,querySponsors:()=>A,querySponsorsWithBadgeScans:()=>v,querySummits:()=>g,queryTags:()=>T,queryTicketTypes:()=>b,queryTrackGroups:()=>O,queryTracks:()=>Q});var o=a(9087),s=a(2183),n=a(9558);const i=require("lodash/debounce");var d=a.n(i),u=a(8041),c=a.n(u);const l="RECEIVE_COUNTRIES",p=500;c().escapeQuerySpace=!1;const y=10,_=async(e,r,a={})=>fetch((0,n.buildAPIBaseUrl)(e.toString()),a).then(o.fetchResponseHandler).then((e=>{"function"==typeof r&&r(e.data)})).catch((e=>(404===e.status&&r([]),e))).catch(o.fetchErrorHandler),R=async(e,r,a={})=>{let t;try{t=await(0,s.getAccessToken)()}catch(e){return"function"==typeof r&&r(e),Promise.reject()}return e.addQuery("access_token",t),_(e,r,a)},m=d()((async(e,r,a=y)=>{let t=c()("/api/v1/members");t.addQuery("expand","tickets,rsvp,schedule_summit_events,all_affiliations"),t.addQuery("order","first_name,last_name"),t.addQuery("page",1),t.addQuery("per_page",a),e&&(e=(0,o.escapeFilterValue)(e),t.addQuery("filter[]",`full_name@@${e},first_name@@${e},last_name@@${e},email@@${e}`)),R(t,r)}),p),f=d()((async(e,r,a,t=y)=>{let s=c()(`/api/v1/summits/${e}/attendees`);s.addQuery("order","first_name,last_name"),s.addQuery("page",1),s.addQuery("per_page",t),r&&(r=(0,o.escapeFilterValue)(r),s.addQuery("filter[]",`full_name=@${r},email=@${r}`)),R(s,a)}),p),g=d()((async(e,r,a=y)=>{let t=c()("/api/v1/summits/all");t.addQuery("expand","tickets,rsvp,schedule_summit_events,all_affiliations"),t.addQuery("order","name"),t.addQuery("page",1),t.addQuery("per_page",a),e&&(e=(0,o.escapeFilterValue)(e),t.addQuery("filter[]",`name@@${e}`)),R(t,r)}),p),E=d()((async(e,r,a,t=y)=>{let s=c()("/api/v1/"+(e?`summits/${e}/speakers`:"speakers"));s.addQuery("expand","member,registration_request"),s.addQuery("order","first_name,last_name"),s.addQuery("page",1),s.addQuery("per_page",t),r&&(r=(0,o.escapeFilterValue)(r),s.addQuery("filter[]",`full_name@@${r},first_name@@${r},last_name@@${r},email@@${r}`)),R(s,a)}),p),T=d()((async(e,r,a,t=50)=>{let s=c()("/api/v1/"+(e?`summits/${e}/track-tag-groups/all/allowed-tags`:"tags"));e&&s.addQuery("expand","tag,track_tag_group"),s.addQuery("order","tag"),s.addQuery("page",1),s.addQuery("per_page",t),r&&(r=(0,o.escapeFilterValue)(r),s.addQuery("filter[]",`tag@@${r}`)),R(s,a)}),p),Q=d()((async(e,r,a,t=[],s=y)=>{let n=c()(`/api/v1/summits/${e}/tracks`);n.addQuery("order","name"),n.addQuery("page",1),n.addQuery("per_page",s),(null==t?void 0:t.length)>0&&n.addQuery("filter[]",`not_id==${t.join("||")}`),r&&(r=(0,o.escapeFilterValue)(r),n.addQuery("filter[]",`name@@${r}`)),R(n,a)}),p),O=d()((async(e,r,a,t=y)=>{let s=c()(`/api/v1/summits/${e}/track-groups`);s.addQuery("order","name"),s.addQuery("page",1),s.addQuery("per_page",t),r&&(r=(0,o.escapeFilterValue)(r),s.addQuery("filter[]",`name@@${r}`)),R(s,a)}),p),S=d()((async(e,r,a=!1,t,s=y)=>{let n=c()(`/api/v1/summits/${e}/events`+(a?"/published":""));n.addQuery("order","title"),n.addQuery("page",1),n.addQuery("per_page",s),r&&(r=(0,o.escapeFilterValue)(r),n.addQuery("filter[]",`title@@${r}`)),R(n,t)}),p),w=d()((async(e,r,a,t=null,s=y)=>{let n=c()(`/api/v1/summits/${e}/event-types`);n.addQuery("order","name"),n.addQuery("page",1),n.addQuery("per_page",s),r&&(r=(0,o.escapeFilterValue)(r),n.addQuery("filter[]",`name@@${r}`)),t&&(t=(0,o.escapeFilterValue)(t),n.addQuery("filter[]",`class_name==${t}`)),R(n,a)}),p),k=d()((async(e,r,a=y)=>{let t=c()("/api/v1/groups");t.addQuery("order","title,code"),t.addQuery("page",1),t.addQuery("per_page",a),e&&(e=(0,o.escapeFilterValue)(e),t.addQuery("filter[]",`title@@${e},code@@${e}`)),R(t,r)}),p),h=d()((async(e,r,a=y)=>{let t=c()("/api/v1/companies");t.addQuery("order","name"),t.addQuery("page",1),t.addQuery("per_page",a),e&&(e=(0,o.escapeFilterValue)(e),t.addQuery("filter[]",`name@@${e}`)),R(t,r)}),p),$=d()((async(e,r,a,t=y)=>{let s=c()(`/api/v1/summits/${e}/registration-companies`);s.addQuery("order","name"),s.addQuery("page",1),s.addQuery("per_page",t),r&&(r=(0,o.escapeFilterValue)(r),s.addQuery("filter[]",`name@@${r}`)),R(s,a)}),p),A=d()((async(e,r,a,t=y)=>{let s=c()(`/api/v1/summits/${e}/sponsors`);s.addQuery("expand","company,sponsorship,sponsorship.type"),s.addQuery("order","id"),s.addQuery("page",1),s.addQuery("per_page",t),r&&(r=(0,o.escapeFilterValue)(r),s.addQuery("filter[]",`company_name@@${r}`)),R(s,a)}),p),v=d()((async(e,r,a,t=y)=>{let s=c()(`/api/v1/summits/${e}/sponsors`);s.addQuery("expand","company,sponsorship,sponsorship.type"),s.addQuery("fields","id,company.name,sponsorship.type.name"),s.addQuery("relations","none,company.none,sponsorship.type.none"),s.addQuery("filter[]","badge_scans_count>0"),s.addQuery("order","+company_name"),s.addQuery("page",1),s.addQuery("per_page",t),r&&(r=(0,o.escapeFilterValue)(r),s.addQuery("filter[]",`company_name@@${r}`)),R(s,a)}),p),F=d()((async(e,r,a,t=y)=>{let s=c()(`/api/v1/summits/${e}/access-level-types`);s.addQuery("order","name"),s.addQuery("page",1),s.addQuery("per_page",t),r&&(r=(0,o.escapeFilterValue)(r),s.addQuery("filter[]",`name@@${r}`)),R(s,a)}),p),U=d()((async(e,r,a=y)=>{let t=c()("/api/v1/organizations");t.addQuery("order","name"),t.addQuery("page",1),t.addQuery("per_page",a),e&&(e=(0,o.escapeFilterValue)(e),t.addQuery("filter[]",`name@@${e}`)),R(t,r)}),p),H=(e,r)=>_(new(c())("/api/public/v1/languages"),e,{signal:r}),I=(e,r)=>_(new(c())("/api/public/v1/countries"),e,{signal:r});let N;const q=e=>(N||(N=new google.maps.Geocoder),new Promise((function(r,a){N.geocode({address:e},(function(e,t){t==google.maps.GeocoderStatus.OK?r(e):a(t)}))}))),x=(e,r)=>{N||(N=new google.maps.Geocoder);let a={lat:parseFloat(e),lng:parseFloat(r)};return new Promise((function(e,r){N.geocode({location:a},(function(a,t){t==google.maps.GeocoderStatus.OK?e(a):r(t)}))}))},b=d()((async(e,r={},a,t="v1",s=y)=>{let n=c()(`/api/${t}/summits/${e}/ticket-types`);if(n.addQuery("order","name"),n.addQuery("page",1),n.addQuery("per_page",s),r.hasOwnProperty("name")){const e=(0,o.escapeFilterValue)(r.name);e&&""!=e&&n.addQuery("filter[]",`name@@${e}`)}if(r.hasOwnProperty("audience")){const e=(0,o.escapeFilterValue)(r.audience);e&&""!=e&&n.addQuery("filter[]",`audience==${e}`)}R(n,a)}),p),C=d()((async(e,r,a=y)=>{const t=c()("/api/v1/sponsored-projects");t.addQuery("order","name"),t.addQuery("page",1),t.addQuery("per_page",a),e&&(e=(0,o.escapeFilterValue)(e),t.addQuery("filter[]",`name@@${e}`)),R(t,r)}),p),K=d()((async(e,r,a,t=y,s=[])=>{let n=c()(`/api/v1/summits/${e}/promo-codes`);n.addQuery("order","code"),n.addQuery("page",1),n.addQuery("per_page",t),r&&(r=(0,o.escapeFilterValue)(r),n.addQuery("filter[]",`code@@${r}`));for(const e of s)n.addQuery("filter[]",e);R(n,a)}),p);return t})()));
|
|
2
2
|
//# sourceMappingURL=query-actions.js.map
|