openstack-uicore-foundation 4.2.25 → 5.0.0

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 (189) hide show
  1. package/.codegraph/config.json +140 -0
  2. package/lib/components/attendance-tracker.js +1 -1
  3. package/lib/components/attendance-tracker.js.map +1 -1
  4. package/lib/components/clock.js.map +1 -1
  5. package/lib/components/extra-questions.js.map +1 -1
  6. package/lib/components/forms/simple-form.js.map +1 -1
  7. package/lib/components/free-text-search.js.map +1 -1
  8. package/lib/components/google-map.js.map +1 -1
  9. package/lib/components/index.js +1 -1
  10. package/lib/components/index.js.map +1 -1
  11. package/lib/components/inputs/access-levels-input.js +1 -1
  12. package/lib/components/inputs/access-levels-input.js.map +1 -1
  13. package/lib/components/inputs/attendee-input.js +1 -1
  14. package/lib/components/inputs/attendee-input.js.map +1 -1
  15. package/lib/components/inputs/company-input-v2.js +1 -1
  16. package/lib/components/inputs/company-input-v2.js.map +1 -1
  17. package/lib/components/inputs/company-input.js +1 -1
  18. package/lib/components/inputs/company-input.js.map +1 -1
  19. package/lib/components/inputs/country-dropdown.js +1 -1
  20. package/lib/components/inputs/country-dropdown.js.map +1 -1
  21. package/lib/components/inputs/country-input.js +1 -1
  22. package/lib/components/inputs/country-input.js.map +1 -1
  23. package/lib/components/inputs/event-input.js +1 -1
  24. package/lib/components/inputs/event-input.js.map +1 -1
  25. package/lib/components/inputs/group-input.js +1 -1
  26. package/lib/components/inputs/group-input.js.map +1 -1
  27. package/lib/components/inputs/language-input.js +1 -1
  28. package/lib/components/inputs/language-input.js.map +1 -1
  29. package/lib/components/inputs/member-input.js +1 -1
  30. package/lib/components/inputs/member-input.js.map +1 -1
  31. package/lib/components/inputs/organization-input.js +1 -1
  32. package/lib/components/inputs/organization-input.js.map +1 -1
  33. package/lib/components/inputs/promocode-input.js +1 -1
  34. package/lib/components/inputs/promocode-input.js.map +1 -1
  35. package/lib/components/inputs/registration-company-input.js +1 -1
  36. package/lib/components/inputs/registration-company-input.js.map +1 -1
  37. package/lib/components/inputs/speaker-input.js +1 -1
  38. package/lib/components/inputs/speaker-input.js.map +1 -1
  39. package/lib/components/inputs/sponsor-input.js +1 -1
  40. package/lib/components/inputs/sponsor-input.js.map +1 -1
  41. package/lib/components/inputs/summit-input.js +1 -1
  42. package/lib/components/inputs/summit-input.js.map +1 -1
  43. package/lib/components/inputs/tag-input.js +1 -1
  44. package/lib/components/inputs/tag-input.js.map +1 -1
  45. package/lib/components/inputs/ticket-types-input.js +1 -1
  46. package/lib/components/inputs/ticket-types-input.js.map +1 -1
  47. package/lib/components/inputs/upload-input-v2.js +1 -1
  48. package/lib/components/inputs/upload-input-v2.js.map +1 -1
  49. package/lib/components/inputs/upload-input-v3.js +1 -1
  50. package/lib/components/inputs/upload-input-v3.js.map +1 -1
  51. package/lib/components/mui/checkbox-list.js +2 -0
  52. package/lib/components/mui/checkbox-list.js.map +1 -0
  53. package/lib/components/mui/chip-list.js +2 -0
  54. package/lib/components/mui/chip-list.js.map +1 -0
  55. package/lib/components/mui/chip-notify.js +2 -0
  56. package/lib/components/mui/chip-notify.js.map +1 -0
  57. package/lib/components/mui/chip-select-input.js +2 -0
  58. package/lib/components/mui/chip-select-input.js.map +1 -0
  59. package/lib/components/mui/confirm-dialog.js +2 -0
  60. package/lib/components/mui/confirm-dialog.js.map +1 -0
  61. package/lib/components/mui/custom-alert.js +2 -0
  62. package/lib/components/mui/custom-alert.js.map +1 -0
  63. package/lib/components/mui/dnd-list.js +2 -0
  64. package/lib/components/mui/dnd-list.js.map +1 -0
  65. package/lib/components/mui/dropdown-checkbox.js +2 -0
  66. package/lib/components/mui/dropdown-checkbox.js.map +1 -0
  67. package/lib/components/mui/editable-table.js +2 -0
  68. package/lib/components/mui/editable-table.js.map +1 -0
  69. package/lib/components/mui/form-item-table.js +2 -0
  70. package/lib/components/mui/form-item-table.js.map +1 -0
  71. package/lib/components/mui/formik-inputs/additional-input-list.js +2 -0
  72. package/lib/components/mui/formik-inputs/additional-input-list.js.map +1 -0
  73. package/lib/components/mui/formik-inputs/additional-input.js +2 -0
  74. package/lib/components/mui/formik-inputs/additional-input.js.map +1 -0
  75. package/lib/components/mui/formik-inputs/async-select.js +2 -0
  76. package/lib/components/mui/formik-inputs/async-select.js.map +1 -0
  77. package/lib/components/mui/formik-inputs/checkbox-group.js +2 -0
  78. package/lib/components/mui/formik-inputs/checkbox-group.js.map +1 -0
  79. package/lib/components/mui/formik-inputs/checkbox.js +2 -0
  80. package/lib/components/mui/formik-inputs/checkbox.js.map +1 -0
  81. package/lib/components/mui/formik-inputs/company-input.js +2 -0
  82. package/lib/components/mui/formik-inputs/company-input.js.map +1 -0
  83. package/lib/components/mui/formik-inputs/datepicker.js +2 -0
  84. package/lib/components/mui/formik-inputs/datepicker.js.map +1 -0
  85. package/lib/components/mui/formik-inputs/discount-field.js +2 -0
  86. package/lib/components/mui/formik-inputs/discount-field.js.map +1 -0
  87. package/lib/components/mui/formik-inputs/dropdown-checkbox.js +2 -0
  88. package/lib/components/mui/formik-inputs/dropdown-checkbox.js.map +1 -0
  89. package/lib/components/mui/formik-inputs/dropdown-radio.js +2 -0
  90. package/lib/components/mui/formik-inputs/dropdown-radio.js.map +1 -0
  91. package/lib/components/mui/formik-inputs/file-size-field.js +2 -0
  92. package/lib/components/mui/formik-inputs/file-size-field.js.map +1 -0
  93. package/lib/components/mui/formik-inputs/item-price-tiers.js +2 -0
  94. package/lib/components/mui/formik-inputs/item-price-tiers.js.map +1 -0
  95. package/lib/components/mui/formik-inputs/price-field.js +2 -0
  96. package/lib/components/mui/formik-inputs/price-field.js.map +1 -0
  97. package/lib/components/mui/formik-inputs/quantity-field.js +2 -0
  98. package/lib/components/mui/formik-inputs/quantity-field.js.map +1 -0
  99. package/lib/components/mui/formik-inputs/radio-group.js +2 -0
  100. package/lib/components/mui/formik-inputs/radio-group.js.map +1 -0
  101. package/lib/components/mui/formik-inputs/select-group.js +2 -0
  102. package/lib/components/mui/formik-inputs/select-group.js.map +1 -0
  103. package/lib/components/mui/formik-inputs/select.js +2 -0
  104. package/lib/components/mui/formik-inputs/select.js.map +1 -0
  105. package/lib/components/mui/formik-inputs/sponsor-input.js +2 -0
  106. package/lib/components/mui/formik-inputs/sponsor-input.js.map +1 -0
  107. package/lib/components/mui/formik-inputs/sponsorship-input.js +2 -0
  108. package/lib/components/mui/formik-inputs/sponsorship-input.js.map +1 -0
  109. package/lib/components/mui/formik-inputs/sponsorship-summit-select.js +2 -0
  110. package/lib/components/mui/formik-inputs/sponsorship-summit-select.js.map +1 -0
  111. package/lib/components/mui/formik-inputs/summit-addon-select.js +2 -0
  112. package/lib/components/mui/formik-inputs/summit-addon-select.js.map +1 -0
  113. package/lib/components/mui/formik-inputs/switch.js +2 -0
  114. package/lib/components/mui/formik-inputs/switch.js.map +1 -0
  115. package/lib/components/mui/formik-inputs/textfield.js +2 -0
  116. package/lib/components/mui/formik-inputs/textfield.js.map +1 -0
  117. package/lib/components/mui/formik-inputs/timepicker.js +2 -0
  118. package/lib/components/mui/formik-inputs/timepicker.js.map +1 -0
  119. package/lib/components/mui/formik-inputs/upload.js +2 -0
  120. package/lib/components/mui/formik-inputs/upload.js.map +1 -0
  121. package/lib/components/mui/infinite-table.js +2 -0
  122. package/lib/components/mui/infinite-table.js.map +1 -0
  123. package/lib/components/mui/item-settings-modal.js +2 -0
  124. package/lib/components/mui/item-settings-modal.js.map +1 -0
  125. package/lib/components/mui/menu-button.js +2 -0
  126. package/lib/components/mui/menu-button.js.map +1 -0
  127. package/lib/components/mui/notes-modal.js +2 -0
  128. package/lib/components/mui/notes-modal.js.map +1 -0
  129. package/lib/components/mui/search-input.js +2 -0
  130. package/lib/components/mui/search-input.js.map +1 -0
  131. package/lib/components/mui/show-confirm-dialog.js +2 -0
  132. package/lib/components/mui/show-confirm-dialog.js.map +1 -0
  133. package/lib/components/mui/snackbar-notification.js +2 -0
  134. package/lib/components/mui/snackbar-notification.js.map +1 -0
  135. package/lib/components/mui/sortable-table.js +2 -0
  136. package/lib/components/mui/sortable-table.js.map +1 -0
  137. package/lib/components/mui/sponsor-addon-select.js +2 -0
  138. package/lib/components/mui/sponsor-addon-select.js.map +1 -0
  139. package/lib/components/mui/summit-addon-select.js +2 -0
  140. package/lib/components/mui/summit-addon-select.js.map +1 -0
  141. package/lib/components/mui/summits-dropdown.js +2 -0
  142. package/lib/components/mui/summits-dropdown.js.map +1 -0
  143. package/lib/components/mui/table.js +2 -0
  144. package/lib/components/mui/table.js.map +1 -0
  145. package/lib/components/schedule-builder-view.js +1 -1
  146. package/lib/components/schedule-builder-view.js.map +1 -1
  147. package/lib/components/sponsored-project-input.js +1 -1
  148. package/lib/components/sponsored-project-input.js.map +1 -1
  149. package/lib/components/table-editable.js.map +1 -1
  150. package/lib/css/components/extra-questions.css +1 -1
  151. package/lib/css/components/extra-questions.css.map +1 -1
  152. package/lib/css/components/free-text-search.css +1 -1
  153. package/lib/css/components/free-text-search.css.map +1 -1
  154. package/lib/css/components/index.css +2 -2
  155. package/lib/css/components/index.css.map +1 -1
  156. package/lib/css/components/mui/formik-inputs/upload.css +2 -0
  157. package/lib/css/components/mui/formik-inputs/upload.css.map +1 -0
  158. package/lib/css/components/mui/infinite-table.css +2 -0
  159. package/lib/css/components/mui/infinite-table.css.map +1 -0
  160. package/lib/css/components/mui/sortable-table.css +2 -0
  161. package/lib/css/components/mui/sortable-table.css.map +1 -0
  162. package/lib/css/components/mui/table.css +2 -0
  163. package/lib/css/components/mui/table.css.map +1 -0
  164. package/lib/i18n.js +1 -1
  165. package/lib/i18n.js.map +1 -1
  166. package/lib/security/abstract-auth-callback-route-v2.js +1 -1
  167. package/lib/security/abstract-auth-callback-route-v2.js.map +1 -1
  168. package/lib/security/abstract-auth-callback-route.js +1 -1
  169. package/lib/security/abstract-auth-callback-route.js.map +1 -1
  170. package/lib/security/actions.js +1 -1
  171. package/lib/security/actions.js.map +1 -1
  172. package/lib/security/methods.js +1 -1
  173. package/lib/security/methods.js.map +1 -1
  174. package/lib/security/reducers.js +1 -1
  175. package/lib/security/reducers.js.map +1 -1
  176. package/lib/security/session-checker.js +1 -1
  177. package/lib/security/session-checker.js.map +1 -1
  178. package/lib/utils/actions.js +1 -1
  179. package/lib/utils/actions.js.map +1 -1
  180. package/lib/utils/methods.js +1 -1
  181. package/lib/utils/methods.js.map +1 -1
  182. package/lib/utils/money.js +1 -1
  183. package/lib/utils/money.js.map +1 -1
  184. package/lib/utils/query-actions.js +1 -1
  185. package/lib/utils/query-actions.js.map +1 -1
  186. package/lib/utils/questions-set.js.map +1 -1
  187. package/lib/utils/reducers.js +1 -1
  188. package/lib/utils/reducers.js.map +1 -1
  189. package/package.json +21 -12
@@ -1 +1 @@
1
- {"version":3,"file":"utils/money.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/define property getters","webpack://openstack-uicore-foundation/webpack/runtime/hasOwnProperty shorthand","webpack://openstack-uicore-foundation/webpack/runtime/make namespace object","webpack://openstack-uicore-foundation/./src/utils/constants.js","webpack://openstack-uicore-foundation/./src/utils/money.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","// 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};","export const CENTS_FACTOR = 100n;\nexport const TWO_DECIMAL_PLACES = 2;\nexport const THREE_DECIMAL_PLACES = 3;\nexport const ONE_CENT = 1n;\nexport const ZERO_INT = 0;\n","/**\n * Copyright 2025 OpenStack Foundation\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n * http://www.apache.org/licenses/LICENSE-2.0\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * */\n\nimport {\n CENTS_FACTOR,\n THREE_DECIMAL_PLACES,\n TWO_DECIMAL_PLACES,\n ZERO_INT,\n ONE_CENT\n} from \"./constants\";\n\nconst CURRENCY_SYMBOL = {\n USD: \"$\",\n EUR: \"€\",\n GBP: \"£\",\n CAD: \"C$\",\n AUD: \"A$\",\n NZD: \"NZ$\",\n CHF: \"CHF\",\n ARS: \"AR$\",\n BRL: \"R$\",\n MXN: \"MX$\",\n};\n\n/**\n * Convert a decimal money amount to integer cents safely (no floating point math).\n *\n * Why this exists:\n * - `Math.round(parseFloat(x) * 100)` can be wrong due to IEEE-754 floating point errors\n * (e.g. 1.005 * 100 may become 100.499999..., rounding down unexpectedly).\n *\n * Input:\n * - number or string (recommended: string from API/UI)\n * - Examples: \"12.34\", \"1,234.56\", \"1234,56\", 12.34\n *\n * Output:\n * - Number cents (exact), e.g. \"12.34\" -> 1234\n *\n * Rounding:\n * - Half-up to 2 decimals (>= 0.005 USD rounds up by 1 cent).\n *\n * Notes:\n * - Amounts are assumed to be NON-negative (per your requirement).\n * - Throws on invalid formats (does not silently return 0).\n */\nexport function amountToCents(amount) {\n if (amount == null) throw new Error(\"amount is required\");\n\n let s = String(amount).trim();\n\n // Normalize common separators:\n // - \"1,234.56\" => \"1234.56\" (remove thousands separators)\n // - \"1234,56\" => \"1234.56\" (convert decimal comma to dot)\n if (s.includes(\",\") && s.includes(\".\")) {\n s = s.replace(/,/g, \"\");\n } else if (s.includes(\",\") && !s.includes(\".\")) {\n s = s.replace(\",\", \".\");\n }\n\n // Validate: digits optionally followed by '.' and more digits\n if (!/^\\d+(\\.\\d+)?$/.test(s)) {\n throw new Error(`Invalid money format: \"${amount}\"`);\n }\n\n const [intPart, fracRaw = \"\"] = s.split(\".\");\n\n // Pad at least 3 fractional digits so we can:\n // - take 2 digits for cents\n // - take the 3rd digit to decide rounding\n const fracPadded = (`${fracRaw }000`);\n\n const tenths = fracPadded[0] ?? \"0\"; // 1st decimal digit\n const hundredths = fracPadded[1] ?? \"0\"; // 2nd decimal digit (cents)\n const thousandths = fracPadded[2] ?? \"0\"; // 3rd decimal digit (rounding decision)\n\n // If there are more than 3 decimals, we track if any non-zero exists after the 3rd.\n // This can matter for policies like bankers rounding; here it's mainly informational.\n const trailing =\n fracRaw.length > THREE_DECIMAL_PLACES\n ? fracRaw.slice(THREE_DECIMAL_PLACES)\n : \"\";\n const hasTrailingNonZero = /[1-9]/.test(trailing);\n\n // Build cents as integer: (dollars * 100) + (first two decimal digits)\n let cents = BigInt(intPart) * CENTS_FACTOR + BigInt(tenths + hundredths);\n\n // Half-up rounding:\n // - If the 3rd digit is >= 5, round up by 1 cent.\n // - If there are more digits beyond the 3rd, \"5xxx\" should also round up.\n const roundUp = thousandths > \"5\" || thousandths === \"5\" || (thousandths === \"5\" && hasTrailingNonZero);\n\n if (roundUp) cents += ONE_CENT;\n\n return Number(cents);\n}\n\n/**\n * Convert an amount in cents to a decimal string (e.g. 1234 -> \"12.34\") safely.\n *\n * Why:\n * - Avoids floating point math (cents / 100) which can lose precision for large integers\n * or if cents is already imprecise as a JS Number.\n *\n * Input:\n * - Accepts: bigint | number | string (digits)\n * - Assumes NON-negative cents (per your requirement).\n *\n * Output:\n * - Always returns a string with exactly 2 decimal places.\n */\nexport function amountFromCents(cents) {\n let c;\n\n // Normalize input to BigInt safely\n if (typeof cents === \"bigint\") {\n c = cents;\n } else if (typeof cents === \"number\") {\n // Ensure it's a safe integer before converting to BigInt\n if (!Number.isSafeInteger(cents)) {\n throw new Error(\"cents must be a safe integer Number (or pass BigInt/string).\");\n }\n c = BigInt(cents);\n } else if (typeof cents === \"string\") {\n const s = cents.trim();\n if (!/^\\d+$/.test(s)) {\n throw new Error(\"cents string must contain digits only (e.g., '1234').\");\n }\n c = BigInt(s);\n } else {\n throw new Error(\"cents must be a bigint, number, or numeric string.\");\n }\n\n if (c < ZERO_INT) {\n throw new Error(\"cents must be non-negative.\");\n }\n\n const amount = c / CENTS_FACTOR;\n const remainder = c % CENTS_FACTOR;\n\n // Always pad remainder to 2 digits\n return `${amount.toString()}.${remainder.toString().padStart(TWO_DECIMAL_PLACES, \"0\")}`;\n}\n\n/**\n * @param cents\n * @param currency\n * @returns {string}\n */\nexport function currencyAmountFromCents(cents, currency = \"USD\"){\n if (typeof cents !== \"number\" || !Number.isInteger(cents)) {\n throw new Error(\"cents must be an integer number\");\n }\n\n const amount = amountFromCents(cents); // \"12.34\"\n const symbol = CURRENCY_SYMBOL[currency] ?? \"$\";\n return `${symbol}${amount}`;\n}\n\n/**\n * Converts a price string into cents.\n * @param {string} priceString - The price (e.g., $0.30).\n * @returns {number} - The amount converted to cents (e.g., 30).\n */\nexport const parsePrice = (priceString) => {\n if (priceString == null) throw new Error(\"priceString is required\");\n\n let s = String(priceString).trim();\n\n // Reject negatives explicitly (per your requirement).\n if (s.includes(\"-\")) throw new Error(\"Negative amounts are not allowed\");\n\n // Keep only digits and separators. Remove currency symbols/letters/spaces.\n s = s.replace(/[^\\d.,]/g, \"\");\n if (!s) throw new Error(`Invalid price: \"${priceString}\"`);\n\n // Delegate exact cents conversion (no floats)\n return amountToCents(s); // <- your safe BigInt cents converter\n};\n"],"names":["root","factory","exports","module","define","amd","this","__webpack_require__","d","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","CENTS_FACTOR","TWO_DECIMAL_PLACES","THREE_DECIMAL_PLACES","ONE_CENT","ZERO_INT","CURRENCY_SYMBOL","USD","EUR","GBP","CAD","AUD","NZD","CHF","ARS","BRL","MXN","amountToCents","amount","Error","s","String","trim","includes","replace","test","intPart","fracRaw","split","fracPadded","tenths","hundredths","thousandths","trailing","length","slice","hasTrailingNonZero","cents","BigInt","Number","amountFromCents","c","isSafeInteger","remainder","toString","padStart","currencyAmountFromCents","currency","isInteger","parsePrice","priceString"],"sourceRoot":""}
1
+ {"version":3,"file":"utils/money.js","mappings":"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","sources":["webpack://openstack-uicore-foundation/webpack/universalModuleDefinition","webpack://openstack-uicore-foundation/./src/utils/constants.js","webpack://openstack-uicore-foundation/webpack/bootstrap","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/./src/utils/money.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 ","export const CENTS_FACTOR = 100n;\nexport const TWO_DECIMAL_PLACES = 2;\nexport const THREE_DECIMAL_PLACES = 3;\nexport const ONE_CENT = 1n;\nexport const ZERO_INT = 0;\n\nexport const CODE_200 = 200;\n\nexport const DEBOUNCE_WAIT_250 = 250;\nexport const DEBOUNCE_WAIT = 500;\n\nexport const NOTIFICATION_TIMEOUT = 2000;\nexport const DEFAULT_PER_PAGE = 10;\nexport const TWENTY_PER_PAGE = 20;\nexport const FIFTY_PER_PAGE = 50;\nexport const MAX_PER_PAGE = 100;\n\nexport const INT_BASE = 10;\n\nexport const ONE_HUNDRED = 100;\nexport const MILLISECONDS_IN_SECOND = 1000;\n\nexport const MILLISECONDS_TO_SECONDS = 1000;\n\nexport const BYTES_PER_MB = 1_048_576; // 1024 * 1024\n\nexport const MAX_INVENTORY_IMAGE_UPLOAD_SIZE = 512000;\nexport const MAX_INVENTORY_IMAGES_UPLOAD_QTY = 5;\nexport const ALLOWED_INVENTORY_IMAGE_FORMATS = [\"jpg\", \"jpeg\", \"png\"];\n\nexport const METAFIELD_TYPES_WITH_OPTIONS = [\n \"CheckBoxList\",\n \"ComboBox\",\n \"RadioButtonList\"\n];\n\nexport const METAFIELD_TYPES = [\n \"CheckBox\",\n ...METAFIELD_TYPES_WITH_OPTIONS,\n \"Text\",\n \"TextArea\",\n \"Quantity\",\n \"DateTime\",\n \"Time\"\n];\n\nexport const DISCOUNT_TYPES = {\n AMOUNT: \"Amount\",\n RATE: \"Rate\"\n};\n\nexport const RATE_FIELDS = {\n EARLY_BIRD: \"early_bird_rate\",\n STANDARD: \"standard_rate\",\n ONSITE: \"onsite_rate\"\n};\n\nexport const DECIMAL_DIGITS = 2;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\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};","/**\n * Copyright 2025 OpenStack Foundation\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n * http://www.apache.org/licenses/LICENSE-2.0\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * */\n\nimport {\n CENTS_FACTOR,\n THREE_DECIMAL_PLACES,\n TWO_DECIMAL_PLACES,\n ZERO_INT,\n ONE_CENT\n} from \"./constants\";\n\nconst CURRENCY_SYMBOL = {\n USD: \"$\",\n EUR: \"€\",\n GBP: \"£\",\n CAD: \"C$\",\n AUD: \"A$\",\n NZD: \"NZ$\",\n CHF: \"CHF\",\n ARS: \"AR$\",\n BRL: \"R$\",\n MXN: \"MX$\",\n};\n\n/**\n * Convert a decimal money amount to integer cents safely (no floating point math).\n *\n * Why this exists:\n * - `Math.round(parseFloat(x) * 100)` can be wrong due to IEEE-754 floating point errors\n * (e.g. 1.005 * 100 may become 100.499999..., rounding down unexpectedly).\n *\n * Input:\n * - number or string (recommended: string from API/UI)\n * - Examples: \"12.34\", \"1,234.56\", \"1234,56\", 12.34\n *\n * Output:\n * - Number cents (exact), e.g. \"12.34\" -> 1234\n *\n * Rounding:\n * - Half-up to 2 decimals (>= 0.005 USD rounds up by 1 cent).\n *\n * Notes:\n * - Amounts are assumed to be NON-negative (per your requirement).\n * - Throws on invalid formats (does not silently return 0).\n */\nexport function amountToCents(amount) {\n if (amount == null) throw new Error(\"amount is required\");\n\n let s = String(amount).trim();\n\n // Normalize common separators:\n // - \"1,234.56\" => \"1234.56\" (remove thousands separators)\n // - \"1234,56\" => \"1234.56\" (convert decimal comma to dot)\n if (s.includes(\",\") && s.includes(\".\")) {\n s = s.replace(/,/g, \"\");\n } else if (s.includes(\",\") && !s.includes(\".\")) {\n s = s.replace(\",\", \".\");\n }\n\n // Validate: digits optionally followed by '.' and more digits\n if (!/^\\d+(\\.\\d+)?$/.test(s)) {\n throw new Error(`Invalid money format: \"${amount}\"`);\n }\n\n const [intPart, fracRaw = \"\"] = s.split(\".\");\n\n // Pad at least 3 fractional digits so we can:\n // - take 2 digits for cents\n // - take the 3rd digit to decide rounding\n const fracPadded = (`${fracRaw }000`);\n\n const tenths = fracPadded[0] ?? \"0\"; // 1st decimal digit\n const hundredths = fracPadded[1] ?? \"0\"; // 2nd decimal digit (cents)\n const thousandths = fracPadded[2] ?? \"0\"; // 3rd decimal digit (rounding decision)\n\n // If there are more than 3 decimals, we track if any non-zero exists after the 3rd.\n // This can matter for policies like bankers rounding; here it's mainly informational.\n const trailing =\n fracRaw.length > THREE_DECIMAL_PLACES\n ? fracRaw.slice(THREE_DECIMAL_PLACES)\n : \"\";\n const hasTrailingNonZero = /[1-9]/.test(trailing);\n\n // Build cents as integer: (dollars * 100) + (first two decimal digits)\n let cents = BigInt(intPart) * CENTS_FACTOR + BigInt(tenths + hundredths);\n\n // Half-up rounding:\n // - If the 3rd digit is >= 5, round up by 1 cent.\n // - If there are more digits beyond the 3rd, \"5xxx\" should also round up.\n const roundUp = thousandths > \"5\" || thousandths === \"5\" || (thousandths === \"5\" && hasTrailingNonZero);\n\n if (roundUp) cents += ONE_CENT;\n\n return Number(cents);\n}\n\n/**\n * Convert an amount in cents to a decimal string (e.g. 1234 -> \"12.34\") safely.\n *\n * Why:\n * - Avoids floating point math (cents / 100) which can lose precision for large integers\n * or if cents is already imprecise as a JS Number.\n *\n * Input:\n * - Accepts: bigint | number | string (digits)\n * - Assumes NON-negative cents (per your requirement).\n *\n * Output:\n * - Always returns a string with exactly 2 decimal places.\n */\nexport function amountFromCents(cents) {\n let c;\n\n // Normalize input to BigInt safely\n if (typeof cents === \"bigint\") {\n c = cents;\n } else if (typeof cents === \"number\") {\n // Ensure it's a safe integer before converting to BigInt\n if (!Number.isSafeInteger(cents)) {\n throw new Error(\"cents must be a safe integer Number (or pass BigInt/string).\");\n }\n c = BigInt(cents);\n } else if (typeof cents === \"string\") {\n const s = cents.trim();\n if (!/^\\d+$/.test(s)) {\n throw new Error(\"cents string must contain digits only (e.g., '1234').\");\n }\n c = BigInt(s);\n } else {\n throw new Error(\"cents must be a bigint, number, or numeric string.\");\n }\n\n if (c < ZERO_INT) {\n throw new Error(\"cents must be non-negative.\");\n }\n\n const amount = c / CENTS_FACTOR;\n const remainder = c % CENTS_FACTOR;\n\n // Always pad remainder to 2 digits\n return `${amount.toString()}.${remainder.toString().padStart(TWO_DECIMAL_PLACES, \"0\")}`;\n}\n\n/**\n * @param cents\n * @param currency\n * @returns {string}\n */\nexport function currencyAmountFromCents(cents, currency = \"USD\"){\n if (typeof cents !== \"number\" || !Number.isInteger(cents)) {\n throw new Error(\"cents must be an integer number\");\n }\n\n const amount = amountFromCents(cents); // \"12.34\"\n const symbol = CURRENCY_SYMBOL[currency] ?? \"$\";\n return `${symbol}${amount}`;\n}\n\n/**\n * Converts a price string into cents.\n * @param {string} priceString - The price (e.g., $0.30).\n * @returns {number} - The amount converted to cents (e.g., 30).\n */\nexport const parsePrice = (priceString) => {\n if (priceString == null) throw new Error(\"priceString is required\");\n\n let s = String(priceString).trim();\n\n // Reject negatives explicitly (per your requirement).\n if (s.includes(\"-\")) throw new Error(\"Negative amounts are not allowed\");\n\n // Keep only digits and separators. Remove currency symbols/letters/spaces.\n s = s.replace(/[^\\d.,]/g, \"\");\n if (!s) throw new Error(`Invalid price: \"${priceString}\"`);\n\n // Delegate exact cents conversion (no floats)\n return amountToCents(s); // <- your safe BigInt cents converter\n};\n"],"names":["root","factory","exports","module","define","amd","this","CENTS_FACTOR","TWO_DECIMAL_PLACES","THREE_DECIMAL_PLACES","ONE_CENT","ZERO_INT","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","d","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","CURRENCY_SYMBOL","USD","EUR","GBP","CAD","AUD","NZD","CHF","ARS","BRL","MXN","amountToCents","amount","Error","s","String","trim","includes","replace","test","intPart","fracRaw","split","fracPadded","tenths","hundredths","thousandths","trailing","length","slice","hasTrailingNonZero","cents","BigInt","Number","amountFromCents","c","isSafeInteger","remainder","toString","padStart","currencyAmountFromCents","currency","isInteger","parsePrice","priceString"],"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:()=>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:()=>R});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",p="code",l="authInfo",y="idToken",_=async(e,r)=>{if(e===p&&T()){if(!r)throw Q(),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 Q(),Error(c.AUTH_ERROR_ACCESS_TOKEN_EXPIRED)},m=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=h();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},R=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 m())));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 m()}finally{await Lock.releaseLock(GET_TOKEN_SILENTLY_LOCK_KEY)}},f=async e=>{let r=S(),a=w();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:p,expires_in:l,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:p,expires_in:l,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)(l,JSON.stringify(s))},E=()=>{try{let e=(0,t.getFromLocalStorage)(l,!1);return e?JSON.parse(e):null}catch(e){return null}},Q=()=>{"undefined"!=typeof window&&((0,t.removeFromLocalStorage)(l),u().remove(y))},w=()=>"undefined"!=typeof window?window.OAUTH2_CLIENT_ID:null,h=()=>"undefined"!=typeof window&&window.OAUTH2_FLOW||"token id_token",T=()=>"undefined"==typeof window||new Boolean(window.OAUTH2_USE_REFRESH_TOKEN||!0),S=()=>"undefined"!=typeof window?window.IDP_BASE_URL:null},9087:(e,r,a)=>{a.d(r,{escapeFilterValue:()=>l,fetchErrorHandler:()=>c,fetchResponseHandler:()=>p});a(2462),a(1116),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),a(3209);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")}}),p=e=>{if(e.ok)return e.json();throw e},l=e=>e=(e=(e=(e=(e=String(e)).replace(/\\/g,"\\\\")).replace(/,/g,"\\,")).replace(/;/g,"\\;")).replace(/\+/g,"%2B")},3209:(e,r,a)=>{a.d(r,{Vg:()=>n,WU:()=>o,wU:()=>t});const t=500,o=10,n=100},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,{RECEIVE_COUNTRIES:()=>_,fetchAllSummits:()=>w,geoCodeAddress:()=>W,geoCodeLatLng:()=>C,getCountryList:()=>q,getLanguageList:()=>x,queryAccessLevels:()=>I,queryAttendees:()=>E,queryCompanies:()=>A,queryEventTypes:()=>k,queryEvents:()=>U,queryGroups:()=>$,queryMembers:()=>g,queryOrganizations:()=>N,queryPromocodes:()=>L,queryRegistrationCompanies:()=>v,querySpeakers:()=>h,querySponsorAddons:()=>j,querySponsoredProjects:()=>K,querySponsors:()=>b,querySponsorsV2:()=>H,querySponsorsWithBadgeScans:()=>F,querySponsorships:()=>M,querySponsorshipsBySummit:()=>B,querySummitAddons:()=>G,querySummits:()=>Q,queryTags:()=>T,queryTicketTypes:()=>P,queryTrackGroups:()=>O,queryTracks:()=>S});var o=a(9087),n=a(2183),s=a(9558),d=a(7825),i=a.n(d),u=a(5812),c=a.n(u),p=a(8041),l=a.n(p),y=a(3209);const _="RECEIVE_COUNTRIES";l().escapeQuerySpace=!1;const m=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={})=>{let a;try{a=await(0,n.getAccessToken)()}catch(e){return Promise.reject(e)}return e.addQuery("access_token",a),fetch((0,s.buildAPIBaseUrl)(e.toString()),r).then(o.fetchResponseHandler).catch(o.fetchErrorHandler)},f=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),m(e,r,a)},g=i().debounce((async(e,r,a=y.WU)=>{let t=l()("/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}`)),f(t,r)}),y.wU),E=i().debounce((async(e,r,a,t=y.WU)=>{let n=l()(`/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}`)),f(n,a)}),y.wU),Q=i().debounce((async(e,r,a=y.WU)=>{let t=l()("/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}`)),f(t,r)}),y.wU),w=async e=>{let r=l()("/api/v2/summits/all");if(r.addQuery("fields","id,name,start_date,end_date"),r.addQuery("expand","none"),r.addQuery("relations","none"),r.addQuery("order","-start_date"),r.addQuery("page",1),r.addQuery("per_page",y.Vg),e){const e=c()().tz("UTC").unix();r.addQuery("filter[]",`end_date>=${e}`)}return R(r).then((e=>e.data))},h=i().debounce((async(e,r,a,t=y.WU)=>{let n=l()("/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}`)),f(n,a)}),y.wU),T=i().debounce((async(e,r,a,t=50)=>{let n=l()("/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}`)),f(n,a)}),y.wU),S=i().debounce((async(e,r,a,t=[],n=y.WU)=>{let s=l()(`/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}`)),f(s,a)}),y.wU),O=i().debounce((async(e,r,a,t=y.WU)=>{let n=l()(`/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}`)),f(n,a)}),y.wU),U=i().debounce((async(e,r,a=!1,t,n=y.WU)=>{let s=l()(`/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}`)),f(s,t)}),y.wU),k=i().debounce((async(e,r,a,t=null,n=y.WU)=>{let s=l()(`/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}`)),f(s,a)}),y.wU),$=i().debounce((async(e,r,a=y.WU)=>{let t=l()("/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}`)),f(t,r)}),y.wU),A=i().debounce((async(e,r,a=y.WU)=>{let t=l()("/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}`)),f(t,r)}),y.wU),v=i().debounce((async(e,r,a,t=y.WU)=>{let n=l()(`/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}`)),f(n,a)}),y.wU),b=i().debounce((async(e,r,a,t=y.WU)=>{let n=l()(`/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}`)),f(n,a)}),y.wU),H=i().debounce((async(e,r,a)=>{const t=l()(`/api/v2/summits/${r}/sponsors`),n=(0,o.escapeFilterValue)(e);t.addQuery("fields","id,company.name,company.id"),t.addQuery("relations","company"),t.addQuery("expand","company"),n&&t.addQuery("filter",`company_name=@${n}`),R(t).then((e=>{const r=[...e.data].map((e=>({id:e.id,name:e.company.name})));a(r)})).catch(o.fetchErrorHandler)}),y.wU),F=i().debounce((async(e,r,a,t=y.WU)=>{let n=l()(`/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}`)),f(n,a)}),y.wU),I=i().debounce((async(e,r,a,t=y.WU)=>{let n=l()(`/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}`)),f(n,a)}),y.wU),N=i().debounce((async(e,r,a=y.WU)=>{let t=l()("/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}`)),f(t,r)}),y.wU),x=(e,r)=>m(new(l())("/api/public/v1/languages"),e,{signal:r}),q=(e,r)=>m(new(l())("/api/public/v1/countries"),e,{signal:r});let V;const W=e=>(V||(V=new google.maps.Geocoder),new Promise((function(r,a){V.geocode({address:e},(function(e,t){t==google.maps.GeocoderStatus.OK?r(e):a(t)}))}))),C=(e,r)=>{V||(V=new google.maps.Geocoder);let a={lat:parseFloat(e),lng:parseFloat(r)};return new Promise((function(e,r){V.geocode({location:a},(function(a,t){t==google.maps.GeocoderStatus.OK?e(a):r(t)}))}))},P=i().debounce((async(e,r={},a,t="v1",n=y.WU)=>{let s=l()(`/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}`)}f(s,a)}),y.wU),K=i().debounce((async(e,r,a=y.WU)=>{const t=l()("/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}`)),f(t,r)}),y.wU),L=i().debounce((async(e,r,a,t=y.WU,n=[])=>{let s=l()(`/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);f(s,a)}),y.wU),j=async(e,r,a,t)=>{try{const n=a.map((a=>{const t=l()(`/api/v1/summits/${e}/sponsors/${r}/sponsorships/${a}/add-ons`);return t.addQuery("fields","id,name,sponsorship.type,sponsorship.type.id,sponsorship.type.type.name"),t.addQuery("expand","sponsorship,sponsorship.type,sponsorship.type.type"),t.addQuery("relations","sponsorship.none"),R(t).then(o.fetchResponseHandler).then((e=>e.data)).catch((e=>((0,o.fetchErrorHandler)(e),[])))})),s=await Promise.all(n);t(s.flat())}catch(e){(0,o.fetchErrorHandler)(e)}},G=async(e,r)=>{const a=l()(`/api/v1/summits/${e}/add-ons/metadata`);a.addQuery("page",1),a.addQuery("per_page",y.Vg),f(a,r)},M=i().debounce((async(e,r)=>{const a=l()("/api/v1/sponsorship-types");(e=(0,o.escapeFilterValue)(e))&&a.addQuery("filter",`name=@${e}`),f(a,r)}),y.wU),B=i().debounce((async(e,r,a)=>{const t=l()(`/api/v1/summits/${r}/sponsorships-types`);e=(0,o.escapeFilterValue)(e),t.addQuery("page",1),t.addQuery("per_page",y.Vg),t.addQuery("expand","type"),t.addQuery("order","+name"),e&&t.addQuery("filter",`name=@${e}`),f(t,a)}),y.wU);return t})()));
2
2
  //# sourceMappingURL=query-actions.js.map