openstack-uicore-foundation 5.0.45-beta.0 → 5.0.46-beta.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 (108) hide show
  1. package/.claude/settings.local.json +1 -22
  2. package/lib/components/index.js +1 -1
  3. package/lib/components/index.js.map +1 -1
  4. package/lib/components/inputs/access-levels-input.js.map +1 -1
  5. package/lib/components/inputs/attendee-input.js.map +1 -1
  6. package/lib/components/inputs/company-input-v2.js +1 -1
  7. package/lib/components/inputs/company-input-v2.js.map +1 -1
  8. package/lib/components/inputs/company-input.js.map +1 -1
  9. package/lib/components/inputs/country-dropdown.js.map +1 -1
  10. package/lib/components/inputs/country-input.js.map +1 -1
  11. package/lib/components/inputs/event-input.js.map +1 -1
  12. package/lib/components/inputs/group-input.js.map +1 -1
  13. package/lib/components/inputs/language-input.js.map +1 -1
  14. package/lib/components/inputs/member-input.js.map +1 -1
  15. package/lib/components/inputs/organization-input.js.map +1 -1
  16. package/lib/components/inputs/promocode-input.js.map +1 -1
  17. package/lib/components/inputs/registration-company-input.js.map +1 -1
  18. package/lib/components/inputs/speaker-input.js.map +1 -1
  19. package/lib/components/inputs/sponsor-input.js.map +1 -1
  20. package/lib/components/inputs/summit-input.js.map +1 -1
  21. package/lib/components/inputs/tag-input.js.map +1 -1
  22. package/lib/components/inputs/ticket-types-input.js.map +1 -1
  23. package/lib/components/mui/auth-button.js +1 -1
  24. package/lib/components/mui/auth-button.js.map +1 -1
  25. package/lib/components/mui/dropdown.js +1 -1
  26. package/lib/components/mui/dropdown.js.map +1 -1
  27. package/lib/components/mui/editable-table.js +1 -1
  28. package/lib/components/mui/editable-table.js.map +1 -1
  29. package/lib/components/mui/form-item-table.js +1 -1
  30. package/lib/components/mui/form-item-table.js.map +1 -1
  31. package/lib/components/mui/formik-inputs/additional-input-list.js +1 -1
  32. package/lib/components/mui/formik-inputs/additional-input-list.js.map +1 -1
  33. package/lib/components/mui/formik-inputs/additional-input.js +1 -1
  34. package/lib/components/mui/formik-inputs/additional-input.js.map +1 -1
  35. package/lib/components/mui/formik-inputs/async-select.js.map +1 -1
  36. package/lib/components/mui/formik-inputs/checkbox-group.js.map +1 -1
  37. package/lib/components/mui/formik-inputs/checkbox.js +1 -1
  38. package/lib/components/mui/formik-inputs/checkbox.js.map +1 -1
  39. package/lib/components/mui/formik-inputs/company-input.js.map +1 -1
  40. package/lib/components/mui/formik-inputs/datepicker.js +1 -1
  41. package/lib/components/mui/formik-inputs/datepicker.js.map +1 -1
  42. package/lib/components/mui/formik-inputs/discount-field.js.map +1 -1
  43. package/lib/components/mui/formik-inputs/dropdown-checkbox.js +1 -1
  44. package/lib/components/mui/formik-inputs/dropdown-checkbox.js.map +1 -1
  45. package/lib/components/mui/formik-inputs/dropdown-radio.js +1 -1
  46. package/lib/components/mui/formik-inputs/dropdown-radio.js.map +1 -1
  47. package/lib/components/mui/formik-inputs/file-size-field.js +1 -1
  48. package/lib/components/mui/formik-inputs/file-size-field.js.map +1 -1
  49. package/lib/components/mui/formik-inputs/item-price-tiers.js.map +1 -1
  50. package/lib/components/mui/formik-inputs/price-field.js.map +1 -1
  51. package/lib/components/mui/formik-inputs/select-v2.js +1 -1
  52. package/lib/components/mui/formik-inputs/select-v2.js.map +1 -1
  53. package/lib/components/mui/formik-inputs/sponsor-input.js.map +1 -1
  54. package/lib/components/mui/formik-inputs/sponsorship-input.js.map +1 -1
  55. package/lib/components/mui/formik-inputs/sponsorship-summit-select.js.map +1 -1
  56. package/lib/components/mui/formik-inputs/summit-addon-select.js.map +1 -1
  57. package/lib/components/mui/formik-inputs/timepicker.js +1 -1
  58. package/lib/components/mui/formik-inputs/timepicker.js.map +1 -1
  59. package/lib/components/mui/formik-inputs/upload.js.map +1 -1
  60. package/lib/components/mui/grid-filter.js +1 -1
  61. package/lib/components/mui/grid-filter.js.map +1 -1
  62. package/lib/components/mui/infinite-table.js.map +1 -1
  63. package/lib/components/mui/info-note.js +1 -1
  64. package/lib/components/mui/info-note.js.map +1 -1
  65. package/lib/components/mui/item-settings-modal.js +1 -1
  66. package/lib/components/mui/item-settings-modal.js.map +1 -1
  67. package/lib/components/mui/nav-bar.js +1 -1
  68. package/lib/components/mui/nav-bar.js.map +1 -1
  69. package/lib/components/mui/order-summary.js.map +1 -1
  70. package/lib/components/mui/search-input.js.map +1 -1
  71. package/lib/components/mui/snackbar-notification.js.map +1 -1
  72. package/lib/components/mui/sortable-table.js +1 -1
  73. package/lib/components/mui/sortable-table.js.map +1 -1
  74. package/lib/components/mui/sponsor-addon-select.js.map +1 -1
  75. package/lib/components/mui/sponsor-order-grid.js +1 -1
  76. package/lib/components/mui/sponsor-order-grid.js.map +1 -1
  77. package/lib/components/mui/status-chip.js.map +1 -1
  78. package/lib/components/mui/stripe-payment.js.map +1 -1
  79. package/lib/components/mui/summit-addon-select.js.map +1 -1
  80. package/lib/components/mui/summits-dropdown.js +1 -1
  81. package/lib/components/mui/summits-dropdown.js.map +1 -1
  82. package/lib/components/mui/table/extra-rows.js.map +1 -1
  83. package/lib/components/mui/table.js +1 -1
  84. package/lib/components/mui/table.js.map +1 -1
  85. package/lib/components/mui/upload-dialog.js.map +1 -1
  86. package/lib/components/order-invoice-pdf.js +2 -0
  87. package/lib/components/order-invoice-pdf.js.map +1 -0
  88. package/lib/components/sponsored-project-input.js.map +1 -1
  89. package/lib/css/components/index.css +1 -1
  90. package/lib/css/components/index.css.map +1 -1
  91. package/lib/i18n.js +1 -1
  92. package/lib/i18n.js.map +1 -1
  93. package/lib/utils/actions.js.map +1 -1
  94. package/lib/utils/money.js.map +1 -1
  95. package/lib/utils/query-actions.js +1 -1
  96. package/lib/utils/query-actions.js.map +1 -1
  97. package/lib/utils/theme.js +1 -1
  98. package/lib/utils/theme.js.map +1 -1
  99. package/package.json +3 -3
  100. package/lib/components/mui/bulk-edit-table.js +0 -2
  101. package/lib/components/mui/bulk-edit-table.js.map +0 -1
  102. package/lib/components/mui/table/custom-table-pagination.js +0 -2
  103. package/lib/components/mui/table/custom-table-pagination.js.map +0 -1
  104. package/lib/css/components/mui/bulk-edit-table.css +0 -2
  105. package/lib/css/components/mui/bulk-edit-table.css.map +0 -1
  106. package/lib/utils/lazy-with-reload.js +0 -2
  107. package/lib/utils/lazy-with-reload.js.map +0 -1
  108. package/package-lock.json +0 -22291
@@ -1,2 +0,0 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("openstack-uicore-foundation",[],t):"object"==typeof exports?exports["openstack-uicore-foundation"]=t():e["openstack-uicore-foundation"]=t()}(this,(()=>(()=>{"use strict";var e={9299:(e,t,n)=>{var o=n(2015),r=n.n(o),l=n(9825),a=n.n(l),i=n(8619),c=n(8177),s=n.n(c),u=n(1519),d=n.n(u);const m=require("@mui/icons-material/Info");var p=n.n(m);const g=require("@mui/icons-material/Warning");var f=n.n(g);const b={warning:r().createElement(f(),{color:"warning"}),success:r().createElement(s(),{color:"success"}),error:r().createElement(d(),{color:"error"}),info:r().createElement(p(),{color:"info"})},y=({open:e,title:t,text:n,iconType:o="",onConfirm:l,onCancel:a,confirmButtonText:c="Confirm",confirmButtonColor:s="primary",cancelButtonText:u="Cancel",cancelButtonColor:d="primary"})=>r().createElement(i.Dialog,{open:e,onClose:a},r().createElement(i.DialogTitle,{sx:{p:2},component:"div"},r().createElement(i.Typography,{variant:"h5"},t)),r().createElement(i.Divider,null),r().createElement(i.DialogContent,{sx:{p:2}},r().createElement("div",{style:{display:"flex",alignItems:"center"}},b[o]&&r().createElement("div",{style:{marginRight:10}},b[o]),r().createElement(i.Typography,{variant:"body1"},n))),r().createElement(i.Divider,{sx:{margin:"10px 0px 10px 0px"}}),r().createElement(i.DialogActions,null,r().createElement(i.Button,{fullWidth:!0,onClick:a,color:d,variant:"outlined",sx:{whiteSpace:"nowrap",minWidth:100}},u),r().createElement(i.Button,{fullWidth:!0,onClick:l,color:s,variant:"contained",sx:{whiteSpace:"nowrap",minWidth:100}},c)));y.propTypes={open:a().bool,title:a().string.isRequired,text:a().string.isRequired,iconType:a().string,onConfirm:a().func.isRequired,onCancel:a().func.isRequired,confirmButtonText:a().string,confirmButtonColor:a().string,cancelButtonText:a().string,cancelButtonColor:a().string},y.defaultProps={open:!1,iconType:"warning",confirmButtonText:"Confirm",confirmButtonColor:"primary",cancelButtonText:"Cancel",cancelButtonColor:"default"}},6130:(e,t,n)=>{n.d(t,{default:()=>l});n(1116),n(2015),n(9299);const o="__oif_confirm_dialog_bridge__",r="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:{},l=({title:e,text:t,iconType:n="",confirmButtonText:l="Confirm",cancelButtonText:a="Cancel",confirmButtonColor:i="primary",cancelButtonColor:c="primary"})=>{if(!r[o])throw new Error("[openstack-uicore-foundation] showConfirmDialog: <GlobalConfirmDialog /> is not mounted. Add <GlobalConfirmDialog /> to the root of your app.");return r[o]({title:e,text:t,iconType:n,confirmButtonText:l,cancelButtonText:a,confirmButtonColor:i,cancelButtonColor:c})}},5420:(e,t,n)=>{n.d(t,{default:()=>g});var o=n(2015),r=n(6842),l=n.n(r);const a=require("@mui/material/TablePagination");var i=n.n(a),c=n(9825),s=n.n(c),u=n(3209);const d={".MuiTablePagination-toolbar":{alignItems:"baseline",marginTop:"1.6rem"},".MuiTablePagination-selectLabel":{color:"rgba(0, 0, 0, 0.6)",fontSize:"12px",fontWeight:"normal"},".MuiTablePagination-select":{color:"rgba(0, 0, 0, 0.6)",fontSize:"12px",fontWeight:"normal"},".MuiTablePagination-spacer":{display:"none"},".MuiTablePagination-displayedRows":{marginLeft:"auto"}},m=[u.WU,u.k6,u.Lr],p=({totalRows:e,perPage:t,currentPage:n,onPageChange:r,onPerPageChange:a})=>{const c=o.useMemo((()=>a?m.includes(t)?m:[...m,t].sort(((e,t)=>e-t)):[t]),[t,a]);return o.createElement(i(),{component:"div",count:e??0,rowsPerPageOptions:c,rowsPerPage:t,page:n-1,onPageChange:(e,t)=>{r(t+1)},onRowsPerPageChange:a?e=>{a(parseInt(e.target.value,10))}:void 0,labelRowsPerPage:l().translate("mui_table.rows_per_page"),sx:d})};p.propTypes={totalRows:s().number,perPage:s().number.isRequired,currentPage:s().number.isRequired,onPageChange:s().func.isRequired,onPerPageChange:s().func};const g=p},3209:(e,t,n)=>{n.d(t,{Lr:()=>l,WU:()=>o,k6:()=>r});const o=10,r=20,l=50},1116:e=>{e.exports=require("@babel/runtime/helpers/defineProperty")},8177:e=>{e.exports=require("@mui/icons-material/CheckCircle")},6084:e=>{e.exports=require("@mui/icons-material/Delete")},9247:e=>{e.exports=require("@mui/icons-material/Edit")},1519:e=>{e.exports=require("@mui/icons-material/Error")},8619:e=>{e.exports=require("@mui/material")},6989:e=>{e.exports=require("@mui/material/Box")},6368:e=>{e.exports=require("@mui/material/Button")},909:e=>{e.exports=require("@mui/material/IconButton")},270:e=>{e.exports=require("@mui/material/Paper")},9292:e=>{e.exports=require("@mui/material/Table")},9008:e=>{e.exports=require("@mui/material/TableBody")},5684:e=>{e.exports=require("@mui/material/TableCell")},5783:e=>{e.exports=require("@mui/material/TableContainer")},8202:e=>{e.exports=require("@mui/material/TableHead")},464:e=>{e.exports=require("@mui/material/TableRow")},38:e=>{e.exports=require("@mui/material/TableSortLabel")},7633:e=>{e.exports=require("@mui/material/TextField")},6831:e=>{e.exports=require("@mui/utils")},6842:e=>{e.exports=require("i18n-react/dist/i18n-react")},9825:e=>{e.exports=require("prop-types")},2015:e=>{e.exports=require("react")}},t={};function n(o){var r=t[o];if(void 0!==r)return r.exports;var l=t[o]={exports:{}};return e[o](l,l.exports,n),l.exports}(()=>{n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t}})(),(()=>{n.d=(e,t)=>{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})}})(),(()=>{n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)})(),(()=>{n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}})();var o={};n.r(o),n.d(o,{default:()=>me});var r=n(2015),l=n.n(r),a=n(9825),i=n.n(a),c=n(6842),s=n.n(c),u=n(6989),d=n.n(u),m=n(270),p=n.n(m),g=n(9292),f=n.n(g),b=n(9008),y=n.n(b),E=n(5684),h=n.n(E),x=n(5783),w=n.n(x),C=n(8202),P=n.n(C),v=n(464),T=n.n(v);const q=require("@mui/material/Checkbox");var D=n.n(q),R=n(6368),O=n.n(R);const S=({editEnabled:e,hasSelection:t,onEdit:n,onApply:o,onCancel:r})=>l().createElement(d(),{sx:{display:"flex",gap:1,mb:2}},e?l().createElement(l().Fragment,null,l().createElement(O(),{variant:"contained",onClick:o},s().translate("bulk_edit_table.apply_changes")),l().createElement(O(),{variant:"outlined",onClick:r},s().translate("general.cancel"))):l().createElement(O(),{variant:"contained",onClick:n,disabled:!t},s().translate("bulk_edit_table.edit_selected")));S.propTypes={editEnabled:i().bool,hasSelection:i().bool,onEdit:i().func,onApply:i().func,onCancel:i().func};const j=S;var _=n(38),B=n.n(_),k=n(6831);const K=e=>{const{editEnabled:t,sortable:n,sortDir:o,onSort:r,columnIndex:a,columnKey:i,width:c,children:u}=e,m=c?{width:c,minWidth:c,maxWidth:c}:{};return!n||t?l().createElement(h(),{sx:m},u):l().createElement(h(),{sx:m},l().createElement(B(),{active:!!o,direction:-1===o?"desc":"asc",onClick:()=>{r&&n&&!t&&r(a,i,o?-1*o:1)}},u,o?l().createElement(d(),{component:"span",sx:k.visuallyHidden},-1===o?s().translate("bulk_edit_table.sorted_desc"):s().translate("bulk_edit_table.sorted_asc")):null))};K.propTypes={editEnabled:i().bool,onSort:i().func,sortDir:i().number,columnIndex:i().number,columnKey:i().oneOfType([i().string,i().number]),sortable:i().bool,width:i().oneOfType([i().string,i().number]),children:i().node};const W=K;var F=n(1116),M=n.n(F),A=n(909),$=n.n(A),z=n(9247),N=n.n(z),I=n(6084),H=n.n(I),L=n(7633),U=n.n(L);const G=({col:e,row:t,editRow:n,isEditingRow:o,onChange:r})=>{return o&&!0===e.editableField?l().createElement(U(),{id:e.columnKey,placeholder:e.placeholder||s().translate("placeholders.text"),multiline:!0,minRows:2,fullWidth:!0,size:"small",onChange:r,value:n[e.columnKey]??""}):o&&e.editableField?e.editableField({value:(null===(a=n[e.columnKey])||void 0===a?void 0:a.id)??(null===(i=n[e.columnKey])||void 0===i?void 0:i.value)??n[e.columnKey],onChange:t=>r({target:{value:t.target.value,id:e.columnKey}}),row:n,rowData:n[e.columnKey]})??null:e.render?e.render(t[e.columnKey],t)??null:l().createElement("span",{style:{fontWeight:"normal"}},t[e.columnKey]??null);var a,i};G.propTypes={col:i().object.isRequired,row:i().object.isRequired,editRow:i().object.isRequired,isEditingRow:i().bool,onChange:i().func};const J=G,X="Xhu4_LGKTq3e40qfe5Wt",Y="_0CBHbvjBDEYwSThSUofl",Z="UloruHeHpGPH5R7sq1kU",V="MSifStCaXi3PkMXSJE_n",Q="LmYr4a7JbDJJhz4VmZZk",ee="OpMx28gG4w8RWw4ugfTz";function te(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function ne(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?te(Object(n),!0).forEach((function(t){M()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):te(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}const oe=e=>ne(ne({},e.width?{width:e.width,minWidth:e.width,maxWidth:e.width}:{}),e.customStyle),re=e=>{const{row:t,columns:n,editEnabled:o,isSelected:r,editRow:a,onToggle:i,onFieldChange:c,onEdit:s,onDelete:u,idKey:m}=e,p=r&&o,g=e=>{const{value:t,id:n}=e.target;c(n,t)};return l().createElement(T(),{role:"row",hover:!0},l().createElement(h(),{align:"center",className:Z,sx:{backgroundColor:"#fff"}},l().createElement(D(),{checked:r,onChange:()=>{o||i()},disabled:o,slotProps:{input:{"aria-label":`Select row ${t[m]}`}}})),n.map((e=>l().createElement(h(),{key:`${t[m]}_${e.columnKey}`,className:p&&e.editableField?Q:Y,sx:{fontWeight:"normal"},style:oe(e)},l().createElement(J,{col:e,row:t,editRow:a,isEditingRow:p,onChange:g})))),(s||u)&&l().createElement(h(),{align:"center",className:`${V} ${ee}`,sx:{backgroundColor:"#fff"}},l().createElement(d(),{sx:{display:"flex",justifyContent:"center",gap:1}},s&&l().createElement($(),{size:"medium",onClick:()=>s(t),sx:{padding:0},"aria-label":`Edit row ${t[m]}`},l().createElement(N(),{fontSize:"large"})),u&&l().createElement($(),{size:"medium",onClick:()=>u(t),sx:{padding:0},"aria-label":`Delete row ${t[m]}`},l().createElement(H(),{fontSize:"large"})))))};re.propTypes={row:i().object.isRequired,columns:i().array.isRequired,editEnabled:i().bool,isSelected:i().bool,editRow:i().object.isRequired,onToggle:i().func,onFieldChange:i().func,onEdit:i().func,onDelete:i().func,idKey:i().string},re.defaultProps={idKey:"id",onEdit:null,onDelete:null};const le=re;function ae(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function ie(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ae(Object(n),!0).forEach((function(t){M()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ae(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}const ce=(e="id")=>{const[t,n]=(0,r.useState)([]),[o,l]=(0,r.useState)(!1),a=n=>t.some((t=>t[e]===n)),i=()=>{n([]),l(!1)};return{selectedRows:t,isSelected:a,toggleRow:t=>{n((n=>n.some((n=>n[e]===t[e]))?n.filter((n=>n[e]!==t[e])):[...n,t]))},isAllSelected:t=>t.length>0&&t.every((t=>a(t[e]))),toggleAll:t=>{n((n=>t.length>0&&t.every((t=>n.some((n=>n[e]===t[e]))))?[]:t))},editField:(t,o,r)=>{n((n=>n.map((n=>n[e]===t?ie(ie({},n),{},{[o]:r}):n))))},editEnabled:o,enterEditMode:()=>l(!0),cancel:i,reset:i}};var se=n(5420),ue=n(6130);const de=({options:e,columns:t,data:n,onSort:o,onUpdate:a,totalRows:i,perPage:c,currentPage:u,onPageChange:m,onPerPageChange:g,idKey:b,onEdit:E,onDelete:x,getName:C,deleteDialogTitle:v,deleteDialogBody:q,deleteDialogConfirmText:R,confirmButtonColor:O})=>{const{selectedRows:S,isSelected:_,toggleRow:B,isAllSelected:k,toggleAll:K,editField:F,editEnabled:M,enterEditMode:A,cancel:$,reset:z}=ce(b),N=n.map((e=>e[b])).join(",");(0,r.useEffect)((()=>{z()}),[N]);const I=t=>t===e.sortCol?e.sortDir:null,H=async e=>{await(0,ue.default)({title:v||s().translate("general.are_you_sure"),text:"function"==typeof q?q(C(e)):q||`${s().translate("general.row_remove_warning")} ${C(e)}`,iconType:"warning",confirmButtonColor:O||"error",confirmButtonText:R||s().translate("general.yes_delete")})&&x(e[b])};return l().createElement(d(),{sx:{width:"100%"}},l().createElement(j,{editEnabled:M,hasSelection:S.length>0,onEdit:A,onApply:e=>{e.stopPropagation(),e.preventDefault(),Promise.resolve(a(S)).then((()=>z())).catch((e=>{console.error("Error updating events:",e)}))},onCancel:$}),l().createElement(p(),{elevation:0,sx:{width:"100%",mb:2}},l().createElement(w(),{component:p(),className:X,sx:{borderRadius:0,boxShadow:"none"}},l().createElement(f(),null,l().createElement(P(),{sx:{backgroundColor:"#EAEDF4"}},l().createElement(T(),null,l().createElement(h(),{align:"center",className:Z,sx:{backgroundColor:"#EAEDF4"}},l().createElement(D(),{checked:k(n),onChange:()=>{M||K(n)},disabled:M,slotProps:{input:{"aria-label":"select all"}}})),t.map(((e,t)=>{const n=!!e.sortable,r=e.width??"";return l().createElement(W,{editEnabled:M,onSort:o,sortDir:I(e.columnKey),sortable:n,columnIndex:t,columnKey:e.columnKey,width:r,key:`heading_${e.columnKey}`},e.header??e.label??e.value)})),(E||x)&&l().createElement(h(),{align:"center",className:V,sx:{backgroundColor:"#EAEDF4"}},e.actionsHeader||" "))),l().createElement(y(),null,t.length>0&&n.map((e=>l().createElement(le,{key:`row_${e[b]}`,row:e,idKey:b,editEnabled:M,isSelected:_(e[b]),editRow:S.find((t=>t[b]===e[b]))||e,onToggle:()=>B(e),onFieldChange:(t,n)=>F(e[b],t,n),columns:t,onEdit:E,onDelete:x?H:null})))))),c&&u&&m&&l().createElement(se.default,{totalRows:i,perPage:c,currentPage:u,onPageChange:m,onPerPageChange:g})))};de.propTypes={options:i().object.isRequired,columns:i().array.isRequired,data:i().array.isRequired,onSort:i().func.isRequired,onUpdate:i().func.isRequired,idKey:i().string,totalRows:i().number,perPage:i().number,currentPage:i().number,onPageChange:i().func,onPerPageChange:i().func,onEdit:i().func,onDelete:i().func,getName:i().func,deleteDialogTitle:i().string,deleteDialogBody:i().oneOfType([i().func,i().string]),deleteDialogConfirmText:i().string,confirmButtonColor:i().string},de.defaultProps={idKey:"id",onEdit:null,onDelete:null,getName:e=>e.name,deleteDialogTitle:null,deleteDialogBody:null,deleteDialogConfirmText:null,confirmButtonColor:null};const me=de;return o})()));
2
- //# sourceMappingURL=bulk-edit-table.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"components/mui/bulk-edit-table.js","mappings":"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","sources":["webpack://openstack-uicore-foundation/webpack/universalModuleDefinition","webpack://openstack-uicore-foundation/external commonjs \"@mui/icons-material/Info\"","webpack://openstack-uicore-foundation/external commonjs \"@mui/icons-material/Warning\"","webpack://openstack-uicore-foundation/./src/components/mui/confirm-dialog.js","webpack://openstack-uicore-foundation/./src/components/mui/showConfirmDialog.js","webpack://openstack-uicore-foundation/external commonjs \"@mui/material/TablePagination\"","webpack://openstack-uicore-foundation/./src/components/mui/table/CustomTablePagination.js","webpack://openstack-uicore-foundation/./src/utils/constants.js","webpack://openstack-uicore-foundation/external commonjs \"@babel/runtime/helpers/defineProperty\"","webpack://openstack-uicore-foundation/external commonjs \"@mui/icons-material/CheckCircle\"","webpack://openstack-uicore-foundation/external commonjs \"@mui/icons-material/Delete\"","webpack://openstack-uicore-foundation/external commonjs \"@mui/icons-material/Edit\"","webpack://openstack-uicore-foundation/external commonjs \"@mui/icons-material/Error\"","webpack://openstack-uicore-foundation/external commonjs \"@mui/material\"","webpack://openstack-uicore-foundation/external commonjs \"@mui/material/Box\"","webpack://openstack-uicore-foundation/external commonjs \"@mui/material/Button\"","webpack://openstack-uicore-foundation/external commonjs \"@mui/material/IconButton\"","webpack://openstack-uicore-foundation/external commonjs \"@mui/material/Paper\"","webpack://openstack-uicore-foundation/external commonjs \"@mui/material/Table\"","webpack://openstack-uicore-foundation/external commonjs \"@mui/material/TableBody\"","webpack://openstack-uicore-foundation/external commonjs \"@mui/material/TableCell\"","webpack://openstack-uicore-foundation/external commonjs \"@mui/material/TableContainer\"","webpack://openstack-uicore-foundation/external commonjs \"@mui/material/TableHead\"","webpack://openstack-uicore-foundation/external commonjs \"@mui/material/TableRow\"","webpack://openstack-uicore-foundation/external commonjs \"@mui/material/TableSortLabel\"","webpack://openstack-uicore-foundation/external commonjs \"@mui/material/TextField\"","webpack://openstack-uicore-foundation/external commonjs \"@mui/utils\"","webpack://openstack-uicore-foundation/external commonjs \"i18n-react/dist/i18n-react\"","webpack://openstack-uicore-foundation/external commonjs \"prop-types\"","webpack://openstack-uicore-foundation/external commonjs \"react\"","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 \"@mui/material/Checkbox\"","webpack://openstack-uicore-foundation/./src/components/mui/BulkEditTable/components/Toolbar.js","webpack://openstack-uicore-foundation/./src/components/mui/BulkEditTable/components/Heading.js","webpack://openstack-uicore-foundation/./src/components/mui/BulkEditTable/components/Cell.js","webpack://openstack-uicore-foundation/./src/components/mui/BulkEditTable/BulkEditTable.module.less?3db7","webpack://openstack-uicore-foundation/./src/components/mui/BulkEditTable/components/Row.js","webpack://openstack-uicore-foundation/./src/components/mui/BulkEditTable/hooks/useRowSelection.js","webpack://openstack-uicore-foundation/./src/components/mui/BulkEditTable/BulkEditTable.js","webpack://openstack-uicore-foundation/./src/components/mui/BulkEditTable/index.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 ","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@mui/icons-material/Info\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@mui/icons-material/Warning\");","/**\n * Copyright 2026 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 React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n Divider,\n Typography\n} from \"@mui/material\";\nimport CheckCircle from \"@mui/icons-material/CheckCircle\";\nimport Error from \"@mui/icons-material/Error\";\nimport Info from \"@mui/icons-material/Info\";\nimport Warning from \"@mui/icons-material/Warning\";\n\nconst iconMap = {\n warning: <Warning color=\"warning\" />,\n success: <CheckCircle color=\"success\" />,\n error: <Error color=\"error\" />,\n info: <Info color=\"info\" />\n};\n\nconst ConfirmDialog = ({\n open,\n title,\n text,\n iconType = \"\",\n onConfirm,\n onCancel,\n confirmButtonText = \"Confirm\",\n confirmButtonColor = \"primary\",\n cancelButtonText = \"Cancel\",\n cancelButtonColor = \"primary\"\n}) => (\n <Dialog open={open} onClose={onCancel}>\n <DialogTitle sx={{ p: 2 }} component=\"div\">\n <Typography variant=\"h5\">{title}</Typography>\n </DialogTitle>\n <Divider />\n <DialogContent sx={{ p: 2 }}>\n <div style={{ display: \"flex\", alignItems: \"center\" }}>\n {iconMap[iconType] && (\n <div style={{ marginRight: 10 }}>{iconMap[iconType]}</div>\n )}\n <Typography variant=\"body1\">{text}</Typography>\n </div>\n </DialogContent>\n <Divider sx={{ margin: \"10px 0px 10px 0px\" }} />\n <DialogActions>\n <Button\n fullWidth\n onClick={onCancel}\n color={cancelButtonColor}\n variant=\"outlined\"\n sx={{ whiteSpace: \"nowrap\", minWidth: 100 }}\n >\n {cancelButtonText}\n </Button>\n <Button\n fullWidth\n onClick={onConfirm}\n color={confirmButtonColor}\n variant=\"contained\"\n sx={{ whiteSpace: \"nowrap\", minWidth: 100 }}\n >\n {confirmButtonText}\n </Button>\n </DialogActions>\n </Dialog>\n);\n\nConfirmDialog.propTypes = {\n open: PropTypes.bool,\n title: PropTypes.string.isRequired,\n text: PropTypes.string.isRequired,\n iconType: PropTypes.string,\n onConfirm: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired,\n confirmButtonText: PropTypes.string,\n confirmButtonColor: PropTypes.string,\n cancelButtonText: PropTypes.string,\n cancelButtonColor: PropTypes.string\n};\n\nConfirmDialog.defaultProps = {\n open: false,\n iconType: \"warning\",\n confirmButtonText: \"Confirm\",\n confirmButtonColor: \"primary\",\n cancelButtonText: \"Cancel\",\n cancelButtonColor: \"default\"\n};\n\nexport default ConfirmDialog;\n","/**\n * Copyright 2026 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 React, { useState, useEffect } from \"react\";\nimport ConfirmDialog from \"./confirm-dialog\";\n\n/**\n * Imperative confirm dialog API.\n *\n * SETUP (required):\n * Place <GlobalConfirmDialog /> at the root of your app:\n *\n * import { GlobalConfirmDialog } from\n * 'openstack-uicore-foundation/lib/components/mui/show-confirm-dialog';\n *\n * function App() {\n * return (\n * <>\n * <YourApp />\n * <GlobalConfirmDialog />\n * </>\n * );\n * }\n *\n * USAGE (works from any file — the bridge is shared via globalThis):\n * import showConfirmDialog from\n * 'openstack-uicore-foundation/lib/components/mui/show-confirm-dialog';\n *\n * const confirmed = await showConfirmDialog({\n * title: 'Delete Item?',\n * text: 'This cannot be undone'\n * });\n */\n\n// Shared bridge reference stored on globalThis so that all webpack bundles\n// (table, sortable-table, show-confirm-dialog, index, etc.) read/write the\n// same callback. A module-level variable would be duplicated per bundle.\nconst BRIDGE_KEY = \"__oif_confirm_dialog_bridge__\";\nconst _global = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : {};\n\n/**\n * @param param0\n * @param param0.title\n * @param param0.text\n * @param param0.iconType\n * @param param0.confirmButtonText\n * @param param0.cancelButtonText\n * @param param0.confirmButtonColor\n * @param param0.cancelButtonColor\n * @returns {Promise<boolean>}\n */\nconst showConfirmDialog = ({\n title,\n text,\n iconType = \"\",\n confirmButtonText = \"Confirm\",\n cancelButtonText = \"Cancel\",\n confirmButtonColor = \"primary\",\n cancelButtonColor = \"primary\"\n}) => {\n if (!_global[BRIDGE_KEY]) {\n throw new Error(\n \"[openstack-uicore-foundation] showConfirmDialog: <GlobalConfirmDialog /> is not mounted. \" +\n \"Add <GlobalConfirmDialog /> to the root of your app.\"\n );\n }\n\n return _global[BRIDGE_KEY]({\n title,\n text,\n iconType,\n confirmButtonText,\n cancelButtonText,\n confirmButtonColor,\n cancelButtonColor\n });\n};\n\n/**\n * Global confirm dialog component. Place at the root of your app:\n *\n * <App>\n * ...\n * <GlobalConfirmDialog />\n * </App>\n *\n * Then call showConfirmDialog() anywhere.\n */\nexport const GlobalConfirmDialog = () => {\n const [dialogState, setDialogState] = useState(null);\n\n useEffect(() => {\n _global[BRIDGE_KEY] = (options) => {\n return new Promise((resolve) => {\n setDialogState({ ...options, open: true, onResolve: resolve });\n });\n };\n return () => { _global[BRIDGE_KEY] = null; };\n }, []);\n\n const handleConfirm = () => {\n if (dialogState?.onResolve) dialogState.onResolve(true);\n setDialogState(null);\n };\n\n const handleCancel = () => {\n if (dialogState?.onResolve) dialogState.onResolve(false);\n setDialogState(null);\n };\n\n if (!dialogState) return null;\n\n return (\n <ConfirmDialog\n open={dialogState.open}\n title={dialogState.title}\n text={dialogState.text}\n iconType={dialogState.iconType}\n confirmButtonText={dialogState.confirmButtonText}\n cancelButtonText={dialogState.cancelButtonText}\n confirmButtonColor={dialogState.confirmButtonColor}\n cancelButtonColor={dialogState.cancelButtonColor}\n onConfirm={handleConfirm}\n onCancel={handleCancel}\n />\n );\n};\n\nexport default showConfirmDialog;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@mui/material/TablePagination\");","/**\n * Copyright 2026 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 * as React from \"react\";\nimport T from \"i18n-react/dist/i18n-react\";\nimport TablePagination from \"@mui/material/TablePagination\";\nimport PropTypes from \"prop-types\";\nimport { DEFAULT_PER_PAGE, FIFTY_PER_PAGE, TWENTY_PER_PAGE } from \"../../../utils/constants\";\n\nconst PAGINATION_SX = {\n \".MuiTablePagination-toolbar\": {\n alignItems: \"baseline\",\n marginTop: \"1.6rem\"\n },\n \".MuiTablePagination-selectLabel\": {\n color: \"rgba(0, 0, 0, 0.6)\",\n fontSize: \"12px\",\n fontWeight: \"normal\"\n },\n \".MuiTablePagination-select\": {\n color: \"rgba(0, 0, 0, 0.6)\",\n fontSize: \"12px\",\n fontWeight: \"normal\"\n },\n \".MuiTablePagination-spacer\": {\n display: \"none\"\n },\n \".MuiTablePagination-displayedRows\": {\n marginLeft: \"auto\"\n }\n};\n\nconst BASE_PER_PAGE_OPTIONS = [DEFAULT_PER_PAGE, TWENTY_PER_PAGE, FIFTY_PER_PAGE];\n\nconst CustomTablePagination = ({ totalRows, perPage, currentPage, onPageChange, onPerPageChange }) => {\n const perPageOptions = React.useMemo(() => {\n if (!onPerPageChange) return [perPage];\n return BASE_PER_PAGE_OPTIONS.includes(perPage)\n ? BASE_PER_PAGE_OPTIONS\n : [...BASE_PER_PAGE_OPTIONS, perPage].sort((a, b) => a - b);\n }, [perPage, onPerPageChange]);\n\n const handlePageChange = (_, newPage) => {\n onPageChange(newPage + 1);\n };\n\n const handleRowsPerPageChange = (ev) => {\n onPerPageChange(parseInt(ev.target.value, 10));\n };\n\n return (\n <TablePagination\n component=\"div\"\n count={totalRows ?? 0}\n rowsPerPageOptions={perPageOptions}\n rowsPerPage={perPage}\n page={currentPage - 1}\n onPageChange={handlePageChange}\n onRowsPerPageChange={onPerPageChange ? handleRowsPerPageChange : undefined}\n labelRowsPerPage={T.translate(\"mui_table.rows_per_page\")}\n sx={PAGINATION_SX}\n />\n );\n};\n\nCustomTablePagination.propTypes = {\n totalRows: PropTypes.number,\n perPage: PropTypes.number.isRequired,\n currentPage: PropTypes.number.isRequired,\n onPageChange: PropTypes.func.isRequired,\n onPerPageChange: PropTypes.func\n};\n\nexport default CustomTablePagination;\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;\nexport const BPS = 100;\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 ASYNC_SELECT_SAFETY_TIMEOUT = 15000;\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\nexport const FILE_UPLOAD_STATUS = {\n PENDING: \"PENDING\",\n DEADLINE_ALERT: \"DEADLINE ALERT\",\n DEADLINE_MISSED: \"DEADLINE MISSED\",\n COMPLETE: \"COMPLETE\"\n};\n\nexport const FILE_UPLOAD_STATUS_COLOR = {\n [FILE_UPLOAD_STATUS.COMPLETE]: \"success.light\",\n [FILE_UPLOAD_STATUS.DEADLINE_MISSED]: \"error\",\n [FILE_UPLOAD_STATUS.DEADLINE_ALERT]: \"warning.light\",\n [FILE_UPLOAD_STATUS.PENDING]: \"default\"\n};\n\nexport const FILE_UPLOAD_STATUS_BKGR_COLOR = {\n [FILE_UPLOAD_STATUS.COMPLETE]: \"white\",\n [FILE_UPLOAD_STATUS.DEADLINE_MISSED]: \"#D32F2F0A\",\n [FILE_UPLOAD_STATUS.DEADLINE_ALERT]: \"#EF6C000A\",\n [FILE_UPLOAD_STATUS.PENDING]: \"white\"\n};\n\nexport const DATE_FORMAT = \"MM/DD/YYYY\";\nexport const DATETIME_FORMAT = \"MM/DD/YYYY hh:mm a\";\n\nexport const SPONSOR_FORMS_METAFIELD_CLASS = {\n FORM: \"Form\",\n ITEM: \"Item\"\n};\n\nexport const SPONSOR_ORDER_GRID_ITEM_TYPES = {\n CHARGE: \"Charge\",\n PAYMENT: \"Payment\",\n REFUND: \"Refund\",\n DISCOUNT: \"Discount\",\n CANCELLED: \"Cancelled\"\n};","module.exports = require(\"@babel/runtime/helpers/defineProperty\");","module.exports = require(\"@mui/icons-material/CheckCircle\");","module.exports = require(\"@mui/icons-material/Delete\");","module.exports = require(\"@mui/icons-material/Edit\");","module.exports = require(\"@mui/icons-material/Error\");","module.exports = require(\"@mui/material\");","module.exports = require(\"@mui/material/Box\");","module.exports = require(\"@mui/material/Button\");","module.exports = require(\"@mui/material/IconButton\");","module.exports = require(\"@mui/material/Paper\");","module.exports = require(\"@mui/material/Table\");","module.exports = require(\"@mui/material/TableBody\");","module.exports = require(\"@mui/material/TableCell\");","module.exports = require(\"@mui/material/TableContainer\");","module.exports = require(\"@mui/material/TableHead\");","module.exports = require(\"@mui/material/TableRow\");","module.exports = require(\"@mui/material/TableSortLabel\");","module.exports = require(\"@mui/material/TextField\");","module.exports = require(\"@mui/utils\");","module.exports = require(\"i18n-react/dist/i18n-react\");","module.exports = require(\"prop-types\");","module.exports = require(\"react\");","// 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","// 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(\"@mui/material/Checkbox\");","/**\n * Copyright 2026 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 React from \"react\";\nimport PropTypes from \"prop-types\";\nimport T from \"i18n-react/dist/i18n-react\";\nimport Box from \"@mui/material/Box\";\nimport Button from \"@mui/material/Button\";\n\nconst Toolbar = ({ editEnabled, hasSelection, onEdit, onApply, onCancel }) => (\n <Box sx={{ display: \"flex\", gap: 1, mb: 2 }}>\n {editEnabled ? (\n <>\n <Button variant=\"contained\" onClick={onApply}>\n {T.translate(\"bulk_edit_table.apply_changes\")}\n </Button>\n <Button variant=\"outlined\" onClick={onCancel}>\n {T.translate(\"general.cancel\")}\n </Button>\n </>\n ) : (\n <Button variant=\"contained\" onClick={onEdit} disabled={!hasSelection}>\n {T.translate(\"bulk_edit_table.edit_selected\")}\n </Button>\n )}\n </Box>\n);\n\nToolbar.propTypes = {\n editEnabled: PropTypes.bool,\n hasSelection: PropTypes.bool,\n onEdit: PropTypes.func,\n onApply: PropTypes.func,\n onCancel: PropTypes.func\n};\n\nexport default Toolbar;\n","/**\n * Copyright 2026 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 React from \"react\";\nimport PropTypes from \"prop-types\";\nimport T from \"i18n-react/dist/i18n-react\";\nimport Box from \"@mui/material/Box\";\nimport TableCell from \"@mui/material/TableCell\";\nimport TableSortLabel from \"@mui/material/TableSortLabel\";\nimport { visuallyHidden } from \"@mui/utils\";\n\nconst Heading = (props) => {\n const {\n editEnabled,\n sortable,\n sortDir,\n onSort,\n columnIndex,\n columnKey,\n width,\n children\n } = props;\n\n const handleSort = () => {\n if (!onSort || !sortable || editEnabled) return;\n\n onSort(columnIndex, columnKey, sortDir ? sortDir * -1 : 1);\n };\n\n const headerSx = width ? { width, minWidth: width, maxWidth: width } : {};\n\n if (!sortable || editEnabled) {\n return <TableCell sx={headerSx}>{children}</TableCell>;\n }\n\n return (\n <TableCell sx={headerSx}>\n <TableSortLabel\n active={!!sortDir}\n direction={sortDir === -1 ? \"desc\" : \"asc\"}\n onClick={handleSort}\n >\n {children}\n {sortDir ? (\n <Box component=\"span\" sx={visuallyHidden}>\n {sortDir === -1\n ? T.translate(\"bulk_edit_table.sorted_desc\")\n : T.translate(\"bulk_edit_table.sorted_asc\")}\n </Box>\n ) : null}\n </TableSortLabel>\n </TableCell>\n );\n};\n\nHeading.propTypes = {\n editEnabled: PropTypes.bool,\n onSort: PropTypes.func,\n sortDir: PropTypes.number,\n columnIndex: PropTypes.number,\n columnKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n sortable: PropTypes.bool,\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n children: PropTypes.node\n};\n\nexport default Heading;\n","/**\n * Copyright 2026 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 React from \"react\";\nimport PropTypes from \"prop-types\";\nimport TextField from \"@mui/material/TextField\";\nimport T from \"i18n-react/dist/i18n-react\";\n\nconst Cell = ({ col, row, editRow, isEditingRow, onChange }) => {\n if (isEditingRow && col.editableField === true) {\n return (\n <TextField\n id={col.columnKey}\n placeholder={col.placeholder || T.translate(\"placeholders.text\")}\n multiline\n minRows={2}\n fullWidth\n size=\"small\"\n onChange={onChange}\n value={editRow[col.columnKey] ?? \"\"}\n />\n );\n }\n\n if (isEditingRow && col.editableField) {\n // editableField functions may short-circuit (e.g. `cond && <Input />`) and\n // return `undefined` rather than `false`, which React rejects as a component return value.\n return (\n col.editableField({\n value:\n editRow[col.columnKey]?.id ??\n editRow[col.columnKey]?.value ??\n editRow[col.columnKey],\n onChange: (ev) => onChange({ target: { value: ev.target.value, id: col.columnKey } }),\n row: editRow,\n rowData: editRow[col.columnKey]\n }) ?? null\n );\n }\n\n if (col.render) {\n return col.render(row[col.columnKey], row) ?? null;\n }\n\n return (\n <span style={{ fontWeight: \"normal\" }}>{row[col.columnKey] ?? null}</span>\n );\n};\n\nCell.propTypes = {\n col: PropTypes.object.isRequired,\n row: PropTypes.object.isRequired,\n editRow: PropTypes.object.isRequired,\n isEditingRow: PropTypes.bool,\n onChange: PropTypes.func\n};\n\nexport default Cell;\n","// extracted by mini-css-extract-plugin\nexport default {\"tableWrapper\":\"Xhu4_LGKTq3e40qfe5Wt\",\"dataColumn\":\"_0CBHbvjBDEYwSThSUofl\",\"checkColumn\":\"UloruHeHpGPH5R7sq1kU\",\"actionColumn\":\"MSifStCaXi3PkMXSJE_n\",\"bulkEditCol\":\"LmYr4a7JbDJJhz4VmZZk\",\"dottedBorderLeft\":\"OpMx28gG4w8RWw4ugfTz\"};","/**\n * Copyright 2026 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 React from \"react\";\nimport PropTypes from \"prop-types\";\nimport Box from \"@mui/material/Box\";\nimport TableRow from \"@mui/material/TableRow\";\nimport TableCell from \"@mui/material/TableCell\";\nimport Checkbox from \"@mui/material/Checkbox\";\nimport IconButton from \"@mui/material/IconButton\";\nimport EditIcon from \"@mui/icons-material/Edit\";\nimport DeleteIcon from \"@mui/icons-material/Delete\";\nimport Cell from \"./Cell\";\nimport styles from \"../BulkEditTable.module.less\";\n\n// the 250px min-width while editing comes from the .bulkEditCol class\n// (applied via className below) so it isn't duplicated here\nconst getCellStyle = (col) => ({\n ...(col.width\n ? { width: col.width, minWidth: col.width, maxWidth: col.width }\n : {}),\n ...col.customStyle\n});\n\nconst Row = (props) => {\n const {\n row,\n columns,\n editEnabled,\n isSelected,\n editRow,\n onToggle,\n onFieldChange,\n onEdit,\n onDelete,\n idKey\n } = props;\n\n const isEditingRow = isSelected && editEnabled;\n\n const onRowChange = (ev) => {\n const { value, id } = ev.target;\n onFieldChange(id, value);\n };\n\n return (\n <TableRow role=\"row\" hover>\n <TableCell\n align=\"center\"\n className={styles.checkColumn}\n sx={{ backgroundColor: \"#fff\" }}\n >\n <Checkbox\n checked={isSelected}\n onChange={() => {\n if (!editEnabled) onToggle();\n }}\n disabled={editEnabled}\n slotProps={{ input: { \"aria-label\": `Select row ${row[idKey]}` } }}\n />\n </TableCell>\n {columns.map((col) => (\n <TableCell\n key={`${row[idKey]}_${col.columnKey}`}\n className={\n isEditingRow && col.editableField\n ? styles.bulkEditCol\n : styles.dataColumn\n }\n sx={{ fontWeight: \"normal\" }}\n style={getCellStyle(col)}\n >\n <Cell\n col={col}\n row={row}\n editRow={editRow}\n isEditingRow={isEditingRow}\n onChange={onRowChange}\n />\n </TableCell>\n ))}\n {(onEdit || onDelete) && (\n <TableCell\n align=\"center\"\n className={`${styles.actionColumn} ${styles.dottedBorderLeft}`}\n sx={{ backgroundColor: \"#fff\" }}\n >\n <Box sx={{ display: \"flex\", justifyContent: \"center\", gap: 1 }}>\n {onEdit && (\n <IconButton\n size=\"medium\"\n onClick={() => onEdit(row)}\n sx={{ padding: 0 }}\n aria-label={`Edit row ${row[idKey]}`}\n >\n <EditIcon fontSize=\"large\" />\n </IconButton>\n )}\n {onDelete && (\n <IconButton\n size=\"medium\"\n onClick={() => onDelete(row)}\n sx={{ padding: 0 }}\n aria-label={`Delete row ${row[idKey]}`}\n >\n <DeleteIcon fontSize=\"large\" />\n </IconButton>\n )}\n </Box>\n </TableCell>\n )}\n </TableRow>\n );\n};\n\nRow.propTypes = {\n row: PropTypes.object.isRequired,\n columns: PropTypes.array.isRequired,\n editEnabled: PropTypes.bool,\n isSelected: PropTypes.bool,\n editRow: PropTypes.object.isRequired,\n onToggle: PropTypes.func,\n onFieldChange: PropTypes.func,\n onEdit: PropTypes.func,\n onDelete: PropTypes.func,\n idKey: PropTypes.string\n};\n\nRow.defaultProps = {\n idKey: \"id\",\n onEdit: null,\n onDelete: null\n};\n\nexport default Row;\n","/**\n * Copyright 2026 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 { useState } from \"react\";\n\nconst useRowSelection = (idKey = \"id\") => {\n const [selectedRows, setSelectedRows] = useState([]);\n const [editEnabled, setEditEnabled] = useState(false);\n\n const isSelected = (rowId) => selectedRows.some((row) => row[idKey] === rowId);\n\n const toggleRow = (row) => {\n setSelectedRows((current) =>\n current.some((r) => r[idKey] === row[idKey])\n ? current.filter((r) => r[idKey] !== row[idKey])\n : [...current, row]\n );\n };\n\n const isAllSelected = (rows) =>\n rows.length > 0 && rows.every((row) => isSelected(row[idKey]));\n\n const toggleAll = (rows) => {\n setSelectedRows((current) =>\n rows.length > 0 && rows.every((row) => current.some((r) => r[idKey] === row[idKey]))\n ? []\n : rows\n );\n };\n\n const editField = (rowId, key, value) => {\n setSelectedRows((current) =>\n current.map((row) => (row[idKey] === rowId ? { ...row, [key]: value } : row))\n );\n };\n\n const reset = () => {\n setSelectedRows([]);\n setEditEnabled(false);\n };\n\n return {\n selectedRows,\n isSelected,\n toggleRow,\n isAllSelected,\n toggleAll,\n editField,\n editEnabled,\n enterEditMode: () => setEditEnabled(true),\n cancel: reset,\n reset\n };\n};\n\nexport default useRowSelection;\n","/**\n * Copyright 2026 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 React, { useEffect } from \"react\";\nimport PropTypes from \"prop-types\";\nimport T from \"i18n-react/dist/i18n-react\";\nimport Box from \"@mui/material/Box\";\nimport Paper from \"@mui/material/Paper\";\nimport Table from \"@mui/material/Table\";\nimport TableBody from \"@mui/material/TableBody\";\nimport TableCell from \"@mui/material/TableCell\";\nimport TableContainer from \"@mui/material/TableContainer\";\nimport TableHead from \"@mui/material/TableHead\";\nimport TableRow from \"@mui/material/TableRow\";\nimport Checkbox from \"@mui/material/Checkbox\";\nimport Toolbar from \"./components/Toolbar\";\nimport Heading from \"./components/Heading\";\nimport Row from \"./components/Row\";\nimport useRowSelection from \"./hooks/useRowSelection\";\nimport styles from \"./BulkEditTable.module.less\";\nimport CustomTablePagination from \"../table/CustomTablePagination\";\nimport showConfirmDialog from \"../showConfirmDialog\";\n\nconst BulkEditTable = ({\n options,\n columns,\n data,\n onSort,\n onUpdate,\n totalRows,\n perPage,\n currentPage,\n onPageChange,\n onPerPageChange,\n idKey,\n onEdit,\n onDelete,\n getName,\n deleteDialogTitle,\n deleteDialogBody,\n deleteDialogConfirmText,\n confirmButtonColor\n}) => {\n const {\n selectedRows,\n isSelected,\n toggleRow,\n isAllSelected,\n toggleAll,\n editField,\n editEnabled,\n enterEditMode,\n cancel,\n reset\n } = useRowSelection(idKey);\n\n const dataIds = data.map((row) => row[idKey]).join(\",\");\n\n // reset selection/edit state whenever the set of rows shown changes\n // (pagination, filtering, sorting, search, etc.)\n useEffect(() => {\n reset();\n }, [dataIds]);\n\n const getSortDir = (columnKey) =>\n columnKey === options.sortCol ? options.sortDir : null;\n\n const handleUpdateEvents = (evt) => {\n evt.stopPropagation();\n evt.preventDefault();\n Promise.resolve(onUpdate(selectedRows))\n .then(() => reset())\n .catch((error) => {\n console.error(\"Error updating events:\", error);\n });\n };\n\n // Wraps the onDelete prop with the same confirm-before-delete UX other mui\n // tables already have (see mui-table.js's handleDelete), so consumers don't\n // need to wire up their own dialog. Matches mui-table.js's contract:\n // onDelete is called with the row's id, not the full row.\n const handleDelete = async (item) => {\n const isConfirmed = await showConfirmDialog({\n title: deleteDialogTitle || T.translate(\"general.are_you_sure\"),\n text:\n typeof deleteDialogBody === \"function\"\n ? deleteDialogBody(getName(item))\n : deleteDialogBody ||\n `${T.translate(\"general.row_remove_warning\")} ${getName(item)}`,\n iconType: \"warning\",\n confirmButtonColor: confirmButtonColor || \"error\",\n confirmButtonText:\n deleteDialogConfirmText || T.translate(\"general.yes_delete\")\n });\n\n if (isConfirmed) {\n onDelete(item[idKey]);\n }\n };\n\n return (\n <Box sx={{ width: \"100%\" }}>\n <Toolbar\n editEnabled={editEnabled}\n hasSelection={selectedRows.length > 0}\n onEdit={enterEditMode}\n onApply={handleUpdateEvents}\n onCancel={cancel}\n />\n <Paper elevation={0} sx={{ width: \"100%\", mb: 2 }}>\n <TableContainer\n component={Paper}\n className={styles.tableWrapper}\n sx={{ borderRadius: 0, boxShadow: \"none\" }}\n >\n <Table>\n <TableHead sx={{ backgroundColor: \"#EAEDF4\" }}>\n <TableRow>\n <TableCell\n align=\"center\"\n className={styles.checkColumn}\n sx={{ backgroundColor: \"#EAEDF4\" }}\n >\n <Checkbox\n checked={isAllSelected(data)}\n onChange={() => {\n if (!editEnabled) toggleAll(data);\n }}\n disabled={editEnabled}\n slotProps={{ input: { \"aria-label\": \"select all\" } }}\n />\n </TableCell>\n {columns.map((col, i) => {\n const sortable = !!col.sortable;\n const colWidth = col.width ?? \"\";\n\n return (\n <Heading\n editEnabled={editEnabled}\n onSort={onSort}\n sortDir={getSortDir(col.columnKey)}\n sortable={sortable}\n columnIndex={i}\n columnKey={col.columnKey}\n width={colWidth}\n key={`heading_${col.columnKey}`}\n >\n {col.header ?? col.label ?? col.value}\n </Heading>\n );\n })}\n {(onEdit || onDelete) && (\n <TableCell\n align=\"center\"\n className={styles.actionColumn}\n sx={{ backgroundColor: \"#EAEDF4\" }}\n >\n {options.actionsHeader || \" \"}\n </TableCell>\n )}\n </TableRow>\n </TableHead>\n <TableBody>\n {columns.length > 0 &&\n data.map((row) => (\n <Row\n key={`row_${row[idKey]}`}\n row={row}\n idKey={idKey}\n editEnabled={editEnabled}\n isSelected={isSelected(row[idKey])}\n editRow={selectedRows.find((r) => r[idKey] === row[idKey]) || row}\n onToggle={() => toggleRow(row)}\n onFieldChange={(key, value) =>\n editField(row[idKey], key, value)\n }\n columns={columns}\n onEdit={onEdit}\n onDelete={onDelete ? handleDelete : null}\n />\n ))}\n </TableBody>\n </Table>\n </TableContainer>\n {perPage && currentPage && onPageChange && (\n <CustomTablePagination\n totalRows={totalRows}\n perPage={perPage}\n currentPage={currentPage}\n onPageChange={onPageChange}\n onPerPageChange={onPerPageChange}\n />\n )}\n </Paper>\n </Box>\n );\n};\n\nBulkEditTable.propTypes = {\n options: PropTypes.object.isRequired,\n columns: PropTypes.array.isRequired,\n data: PropTypes.array.isRequired,\n onSort: PropTypes.func.isRequired,\n onUpdate: PropTypes.func.isRequired,\n idKey: PropTypes.string,\n totalRows: PropTypes.number,\n perPage: PropTypes.number,\n currentPage: PropTypes.number,\n onPageChange: PropTypes.func,\n onPerPageChange: PropTypes.func,\n onEdit: PropTypes.func,\n onDelete: PropTypes.func,\n getName: PropTypes.func,\n deleteDialogTitle: PropTypes.string,\n deleteDialogBody: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n deleteDialogConfirmText: PropTypes.string,\n confirmButtonColor: PropTypes.string\n};\n\nBulkEditTable.defaultProps = {\n idKey: \"id\",\n onEdit: null,\n onDelete: null,\n getName: (item) => item.name,\n deleteDialogTitle: null,\n deleteDialogBody: null,\n deleteDialogConfirmText: null,\n confirmButtonColor: null\n};\n\nexport default BulkEditTable;\n","/**\n * Copyright 2026 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 BulkEditTable from \"./BulkEditTable\";\n\nexport default BulkEditTable;\n"],"names":["root","factory","exports","module","define","amd","this","require","iconMap","warning","React","Warning","color","success","CheckCircle","error","Error","info","Info","ConfirmDialog","open","title","text","iconType","onConfirm","onCancel","confirmButtonText","confirmButtonColor","cancelButtonText","cancelButtonColor","Dialog","onClose","DialogTitle","sx","p","component","Typography","variant","Divider","DialogContent","style","display","alignItems","marginRight","margin","DialogActions","Button","fullWidth","onClick","whiteSpace","minWidth","propTypes","PropTypes","isRequired","defaultProps","BRIDGE_KEY","_global","globalThis","window","showConfirmDialog","PAGINATION_SX","marginTop","fontSize","fontWeight","marginLeft","BASE_PER_PAGE_OPTIONS","DEFAULT_PER_PAGE","TWENTY_PER_PAGE","FIFTY_PER_PAGE","CustomTablePagination","totalRows","perPage","currentPage","onPageChange","onPerPageChange","perPageOptions","includes","sort","a","b","TablePagination","count","rowsPerPageOptions","rowsPerPage","page","handlePageChange","_","newPage","onRowsPerPageChange","ev","parseInt","target","value","undefined","labelRowsPerPage","T","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","n","getter","__esModule","d","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","Toolbar","editEnabled","hasSelection","onEdit","onApply","Box","gap","mb","disabled","Heading","props","sortable","sortDir","onSort","columnIndex","columnKey","width","children","headerSx","maxWidth","TableCell","TableSortLabel","active","direction","handleSort","visuallyHidden","Cell","col","row","editRow","isEditingRow","onChange","editableField","TextField","id","placeholder","multiline","minRows","size","_editRow$col$columnKe","_editRow$col$columnKe2","rowData","render","getCellStyle","_objectSpread","customStyle","Row","columns","isSelected","onToggle","onFieldChange","onDelete","idKey","onRowChange","TableRow","role","hover","align","className","styles","backgroundColor","Checkbox","checked","slotProps","input","map","justifyContent","IconButton","padding","EditIcon","DeleteIcon","useRowSelection","selectedRows","setSelectedRows","useState","setEditEnabled","rowId","some","reset","toggleRow","current","filter","isAllSelected","rows","length","every","toggleAll","editField","enterEditMode","cancel","BulkEditTable","options","data","onUpdate","getName","deleteDialogTitle","deleteDialogBody","deleteDialogConfirmText","dataIds","join","useEffect","getSortDir","sortCol","handleDelete","async","item","evt","stopPropagation","preventDefault","Promise","resolve","then","catch","console","Paper","elevation","TableContainer","borderRadius","boxShadow","Table","TableHead","i","colWidth","header","label","actionsHeader","TableBody","find","name"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- !function(e,o){"object"==typeof exports&&"object"==typeof module?module.exports=o():"function"==typeof define&&define.amd?define("openstack-uicore-foundation",[],o):"object"==typeof exports?exports["openstack-uicore-foundation"]=o():e["openstack-uicore-foundation"]=o()}(this,(()=>(()=>{"use strict";var e={3209:(e,o,r)=>{r.d(o,{Lr:()=>a,WU:()=>t,k6:()=>n});const t=10,n=20,a=50},6842:e=>{e.exports=require("i18n-react/dist/i18n-react")},9825:e=>{e.exports=require("prop-types")},2015:e=>{e.exports=require("react")}},o={};function r(t){var n=o[t];if(void 0!==n)return n.exports;var a=o[t]={exports:{}};return e[t](a,a.exports,r),a.exports}(()=>{r.n=e=>{var o=e&&e.__esModule?()=>e.default:()=>e;return r.d(o,{a:o}),o}})(),(()=>{r.d=(e,o)=>{for(var t in o)r.o(o,t)&&!r.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:o[t]})}})(),(()=>{r.o=(e,o)=>Object.prototype.hasOwnProperty.call(e,o)})(),(()=>{r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}})();var t={};r.r(t),r.d(t,{default:()=>P});var n=r(2015),a=r(6842),i=r.n(a);const s=require("@mui/material/TablePagination");var u=r.n(s),p=r(9825),l=r.n(p),g=r(3209);const c={".MuiTablePagination-toolbar":{alignItems:"baseline",marginTop:"1.6rem"},".MuiTablePagination-selectLabel":{color:"rgba(0, 0, 0, 0.6)",fontSize:"12px",fontWeight:"normal"},".MuiTablePagination-select":{color:"rgba(0, 0, 0, 0.6)",fontSize:"12px",fontWeight:"normal"},".MuiTablePagination-spacer":{display:"none"},".MuiTablePagination-displayedRows":{marginLeft:"auto"}},d=[g.WU,g.k6,g.Lr],f=({totalRows:e,perPage:o,currentPage:r,onPageChange:t,onPerPageChange:a})=>{const s=n.useMemo((()=>a?d.includes(o)?d:[...d,o].sort(((e,o)=>e-o)):[o]),[o,a]);return n.createElement(u(),{component:"div",count:e??0,rowsPerPageOptions:s,rowsPerPage:o,page:r-1,onPageChange:(e,o)=>{t(o+1)},onRowsPerPageChange:a?e=>{a(parseInt(e.target.value,10))}:void 0,labelRowsPerPage:i().translate("mui_table.rows_per_page"),sx:c})};f.propTypes={totalRows:l().number,perPage:l().number.isRequired,currentPage:l().number.isRequired,onPageChange:l().func.isRequired,onPerPageChange:l().func};const P=f;return t})()));
2
- //# sourceMappingURL=custom-table-pagination.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"components/mui/table/custom-table-pagination.js","mappings":"CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,IACQ,mBAAXG,QAAyBA,OAAOC,IAC9CD,OAAO,8BAA+B,GAAIH,GAChB,iBAAZC,QACdA,QAAQ,+BAAiCD,IAEzCD,EAAK,+BAAiCC,GACvC,CATD,CASGK,MAAM,I,6ECTF,MAcMC,EAAmB,GACnBC,EAAkB,GAClBC,EAAiB,E,WChB9BN,EAAOD,QAAUQ,QAAQ,6B,WCAzBP,EAAOD,QAAUQ,QAAQ,a,WCAzBP,EAAOD,QAAUQ,QAAQ,Q,GCCrBC,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBE,IAAjBD,EACH,OAAOA,EAAaZ,QAGrB,IAAIC,EAASQ,EAAyBE,GAAY,CAGjDX,QAAS,CAAC,GAOX,OAHAc,EAAoBH,GAAUV,EAAQA,EAAOD,QAASU,GAG/CT,EAAOD,OACf,C,MCrBAU,EAAoBK,EAAKd,IACxB,IAAIe,EAASf,GAAUA,EAAOgB,WAC7B,IAAOhB,EAAiB,QACxB,IAAM,EAEP,OADAS,EAAoBQ,EAAEF,EAAQ,CAAEG,EAAGH,IAC5BA,CAAM,C,WCLdN,EAAoBQ,EAAI,CAAClB,EAASoB,KACjC,IAAI,IAAIC,KAAOD,EACXV,EAAoBY,EAAEF,EAAYC,KAASX,EAAoBY,EAAEtB,EAASqB,IAC5EE,OAAOC,eAAexB,EAASqB,EAAK,CAAEI,YAAY,EAAMC,IAAKN,EAAWC,IAE1E,C,WCNDX,EAAoBY,EAAI,CAACK,EAAKC,IAAUL,OAAOM,UAAUC,eAAeC,KAAKJ,EAAKC,E,WCClFlB,EAAoBsB,EAAKhC,IACH,oBAAXiC,QAA0BA,OAAOC,aAC1CX,OAAOC,eAAexB,EAASiC,OAAOC,YAAa,CAAEC,MAAO,WAE7DZ,OAAOC,eAAexB,EAAS,aAAc,CAAEmC,OAAO,GAAO,C,6ECL9D,MAAM,EAA+B3B,QAAQ,iC,0CCmB7C,MAAM4B,EAAgB,CACpB,8BAA+B,CAC7BC,WAAY,WACZC,UAAW,UAEb,kCAAmC,CACjCC,MAAO,qBACPC,SAAU,OACVC,WAAY,UAEd,6BAA8B,CAC5BF,MAAO,qBACPC,SAAU,OACVC,WAAY,UAEd,6BAA8B,CAC5BC,QAAS,QAEX,oCAAqC,CACnCC,WAAY,SAIVC,EAAwB,CAACvC,EAAAA,GAAkBC,EAAAA,GAAiBC,EAAAA,IAE5DsC,EAAwBA,EAAGC,YAAWC,UAASC,cAAaC,eAAcC,sBAC9E,MAAMC,EAAiBC,EAAAA,SAAc,IAC9BF,EACEN,EAAsBS,SAASN,GAClCH,EACA,IAAIA,EAAuBG,GAASO,MAAK,CAACnC,EAAGoC,IAAMpC,EAAIoC,IAH9B,CAACR,IAI7B,CAACA,EAASG,IAUb,OACEE,EAAAA,cAACI,IAAe,CACdC,UAAU,MACVC,MAAOZ,GAAa,EACpBa,mBAAoBR,EACpBS,YAAab,EACbc,KAAMb,EAAc,EACpBC,aAfqBa,CAACC,EAAGC,KAC3Bf,EAAae,EAAU,EAAE,EAevBC,oBAAqBf,EAZQgB,IAC/BhB,EAAgBiB,SAASD,EAAGE,OAAOjC,MAAO,IAAI,OAWqBtB,EACjEwD,iBAAkBC,IAAAA,UAAY,2BAC9BC,GAAInC,GACJ,EAINS,EAAsB2B,UAAY,CAChC1B,UAAW2B,IAAAA,OACX1B,QAAS0B,IAAAA,OAAiBC,WAC1B1B,YAAayB,IAAAA,OAAiBC,WAC9BzB,aAAcwB,IAAAA,KAAeC,WAC7BxB,gBAAiBuB,IAAAA,MAGnB,U","sources":["webpack://openstack-uicore-foundation/webpack/universalModuleDefinition","webpack://openstack-uicore-foundation/./src/utils/constants.js","webpack://openstack-uicore-foundation/external commonjs \"i18n-react/dist/i18n-react\"","webpack://openstack-uicore-foundation/external commonjs \"prop-types\"","webpack://openstack-uicore-foundation/external commonjs \"react\"","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 \"@mui/material/TablePagination\"","webpack://openstack-uicore-foundation/./src/components/mui/table/CustomTablePagination.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;\nexport const BPS = 100;\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 ASYNC_SELECT_SAFETY_TIMEOUT = 15000;\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\nexport const FILE_UPLOAD_STATUS = {\n PENDING: \"PENDING\",\n DEADLINE_ALERT: \"DEADLINE ALERT\",\n DEADLINE_MISSED: \"DEADLINE MISSED\",\n COMPLETE: \"COMPLETE\"\n};\n\nexport const FILE_UPLOAD_STATUS_COLOR = {\n [FILE_UPLOAD_STATUS.COMPLETE]: \"success.light\",\n [FILE_UPLOAD_STATUS.DEADLINE_MISSED]: \"error\",\n [FILE_UPLOAD_STATUS.DEADLINE_ALERT]: \"warning.light\",\n [FILE_UPLOAD_STATUS.PENDING]: \"default\"\n};\n\nexport const FILE_UPLOAD_STATUS_BKGR_COLOR = {\n [FILE_UPLOAD_STATUS.COMPLETE]: \"white\",\n [FILE_UPLOAD_STATUS.DEADLINE_MISSED]: \"#D32F2F0A\",\n [FILE_UPLOAD_STATUS.DEADLINE_ALERT]: \"#EF6C000A\",\n [FILE_UPLOAD_STATUS.PENDING]: \"white\"\n};\n\nexport const DATE_FORMAT = \"MM/DD/YYYY\";\nexport const DATETIME_FORMAT = \"MM/DD/YYYY hh:mm a\";\n\nexport const SPONSOR_FORMS_METAFIELD_CLASS = {\n FORM: \"Form\",\n ITEM: \"Item\"\n};\n\nexport const SPONSOR_ORDER_GRID_ITEM_TYPES = {\n CHARGE: \"Charge\",\n PAYMENT: \"Payment\",\n REFUND: \"Refund\",\n DISCOUNT: \"Discount\",\n CANCELLED: \"Cancelled\"\n};","module.exports = require(\"i18n-react/dist/i18n-react\");","module.exports = require(\"prop-types\");","module.exports = require(\"react\");","// 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","// 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(\"@mui/material/TablePagination\");","/**\n * Copyright 2026 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 * as React from \"react\";\nimport T from \"i18n-react/dist/i18n-react\";\nimport TablePagination from \"@mui/material/TablePagination\";\nimport PropTypes from \"prop-types\";\nimport { DEFAULT_PER_PAGE, FIFTY_PER_PAGE, TWENTY_PER_PAGE } from \"../../../utils/constants\";\n\nconst PAGINATION_SX = {\n \".MuiTablePagination-toolbar\": {\n alignItems: \"baseline\",\n marginTop: \"1.6rem\"\n },\n \".MuiTablePagination-selectLabel\": {\n color: \"rgba(0, 0, 0, 0.6)\",\n fontSize: \"12px\",\n fontWeight: \"normal\"\n },\n \".MuiTablePagination-select\": {\n color: \"rgba(0, 0, 0, 0.6)\",\n fontSize: \"12px\",\n fontWeight: \"normal\"\n },\n \".MuiTablePagination-spacer\": {\n display: \"none\"\n },\n \".MuiTablePagination-displayedRows\": {\n marginLeft: \"auto\"\n }\n};\n\nconst BASE_PER_PAGE_OPTIONS = [DEFAULT_PER_PAGE, TWENTY_PER_PAGE, FIFTY_PER_PAGE];\n\nconst CustomTablePagination = ({ totalRows, perPage, currentPage, onPageChange, onPerPageChange }) => {\n const perPageOptions = React.useMemo(() => {\n if (!onPerPageChange) return [perPage];\n return BASE_PER_PAGE_OPTIONS.includes(perPage)\n ? BASE_PER_PAGE_OPTIONS\n : [...BASE_PER_PAGE_OPTIONS, perPage].sort((a, b) => a - b);\n }, [perPage, onPerPageChange]);\n\n const handlePageChange = (_, newPage) => {\n onPageChange(newPage + 1);\n };\n\n const handleRowsPerPageChange = (ev) => {\n onPerPageChange(parseInt(ev.target.value, 10));\n };\n\n return (\n <TablePagination\n component=\"div\"\n count={totalRows ?? 0}\n rowsPerPageOptions={perPageOptions}\n rowsPerPage={perPage}\n page={currentPage - 1}\n onPageChange={handlePageChange}\n onRowsPerPageChange={onPerPageChange ? handleRowsPerPageChange : undefined}\n labelRowsPerPage={T.translate(\"mui_table.rows_per_page\")}\n sx={PAGINATION_SX}\n />\n );\n};\n\nCustomTablePagination.propTypes = {\n totalRows: PropTypes.number,\n perPage: PropTypes.number.isRequired,\n currentPage: PropTypes.number.isRequired,\n onPageChange: PropTypes.func.isRequired,\n onPerPageChange: PropTypes.func\n};\n\nexport default CustomTablePagination;\n"],"names":["root","factory","exports","module","define","amd","this","DEFAULT_PER_PAGE","TWENTY_PER_PAGE","FIFTY_PER_PAGE","require","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","n","getter","__esModule","d","a","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","PAGINATION_SX","alignItems","marginTop","color","fontSize","fontWeight","display","marginLeft","BASE_PER_PAGE_OPTIONS","CustomTablePagination","totalRows","perPage","currentPage","onPageChange","onPerPageChange","perPageOptions","React","includes","sort","b","TablePagination","component","count","rowsPerPageOptions","rowsPerPage","page","handlePageChange","_","newPage","onRowsPerPageChange","ev","parseInt","target","labelRowsPerPage","T","sx","propTypes","PropTypes","isRequired"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- .Xhu4_LGKTq3e40qfe5Wt{overflow-x:auto;position:relative;width:100%}.Xhu4_LGKTq3e40qfe5Wt td{max-width:150px;overflow-wrap:break-word;text-overflow:ellipsis;vertical-align:middle}.Xhu4_LGKTq3e40qfe5Wt td._0CBHbvjBDEYwSThSUofl{min-width:150px}.Xhu4_LGKTq3e40qfe5Wt .UloruHeHpGPH5R7sq1kU{left:0;position:sticky;text-align:center;z-index:5}.Xhu4_LGKTq3e40qfe5Wt .MSifStCaXi3PkMXSJE_n{max-width:60px;min-width:60px;position:sticky;right:0;text-align:center;width:60px;z-index:5}.Xhu4_LGKTq3e40qfe5Wt .LmYr4a7JbDJJhz4VmZZk{min-width:250px}.OpMx28gG4w8RWw4ugfTz{border-left:none;position:relative}.OpMx28gG4w8RWw4ugfTz:before{align-self:center;border-left:1px dashed #e0e0e0;bottom:0;content:"";height:60%;left:0;position:absolute;top:0}
2
- /*# sourceMappingURL=bulk-edit-table.css.map*/
@@ -1 +0,0 @@
1
- {"version":3,"file":"css/components/mui/bulk-edit-table.css","mappings":"AAaA,sBAEE,eAAgB,CAChB,iBAAkB,CAFlB,UAEF,CAHA,yBAMI,eAAgB,CAEhB,wBAAyB,CADzB,sBAAuB,CAEvB,qBAAJ,CAEI,+CACE,eAAN,CAZA,4CA0BI,MAAO,CAFP,eAAgB,CADhB,iBAAkB,CAElB,SAPJ,CAlBA,4CAoCI,cAAe,CADf,cAAe,CAJf,eAAgB,CAEhB,OAAQ,CAHR,iBAAkB,CAIlB,UAAW,CAFX,SALJ,CA3BA,4CAwCI,eAVJ,CAcA,sBAEE,gBAAiB,CADjB,iBAXF,CAaE,6BAQE,iBAAkB,CAFlB,8BAA+B,CAF/B,QAAS,CAHT,UAAW,CAMX,UAAW,CAFX,MAAO,CAHP,iBAAkB,CAClB,KANJ","sources":["webpack://openstack-uicore-foundation/./src/components/mui/BulkEditTable/BulkEditTable.module.less"],"sourcesContent":["/**\n * Copyright 2026 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\n.tableWrapper {\n width: 100%;\n overflow-x: auto;\n position: relative;\n\n td {\n max-width: 150px;\n text-overflow: ellipsis;\n overflow-wrap: break-word;\n vertical-align: middle;\n\n &.dataColumn {\n min-width: 150px;\n }\n }\n\n // shared by header (th) and body (td) cells so the checkbox/action columns\n // stay pinned and aligned in both rows while the data columns scroll\n // horizontally. Background color is intentionally NOT set here: header\n // cells need the header's grey, body cells need white, set via sx where\n // each is rendered (an explicit color is required, `inherit` resolves to\n // transparent here and lets the scrolling columns show through).\n .checkColumn {\n text-align: center;\n position: sticky;\n z-index: 5;\n left: 0;\n }\n\n .actionColumn {\n text-align: center;\n position: sticky;\n z-index: 5;\n right: 0;\n width: 60px;\n min-width: 60px;\n max-width: 60px;\n }\n\n .bulkEditCol {\n min-width: 250px;\n }\n}\n\n.dottedBorderLeft {\n position: relative;\n border-left: none;\n &::before {\n content: \"\";\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n border-left: 1px dashed #e0e0e0;\n height: 60%;\n align-self: center;\n }\n}\n"],"names":[],"sourceRoot":""}
@@ -1,2 +0,0 @@
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={9558:(e,r,o)=>{o.d(r,{isSentryInitialized:()=>t});o(5812),o(8041);const t=()=>"undefined"!=typeof window&&!!window.SENTRY_DSN},5812:e=>{e.exports=require("moment-timezone")},8041:e=>{e.exports=require("urijs")}},r={};function o(t){var n=r[t];if(void 0!==n)return n.exports;var i=r[t]={exports:{}};return e[t](i,i.exports,o),i.exports}(()=>{o.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return o.d(r,{a:r}),r}})(),(()=>{o.d=(e,r)=>{for(var t in r)o.o(r,t)&&!o.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})}})(),(()=>{o.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r)})(),(()=>{o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}})();var t={};o.r(t),o.d(t,{chunkErrorSentryBeforeSend:()=>y,initChunkErrorRecovery:()=>v,isChunkLoadError:()=>l,lazyWithReload:()=>m,reloadOnChunkError:()=>p});const n=require("react");var i=o.n(n);const a=require("@sentry/react");var s=o(9558);const d="uicore.chunk-load-error-reload-state",u="uicore.chunk-load-error-pending-confirmation",c=/[._-][0-9a-f]{8,}\.js(\?.*)?$/i,l=(e,r,o)=>(e=>Boolean(e)&&"ChunkLoadError"===e.name)(e)||((e,r,o=c)=>{const t=e&&e.message||("string"==typeof e?e:"");return!(!(e&&"SyntaxError"===e.name||/SyntaxError/i.test(t))||!/Unexpected token '<'/i.test(t))&&(!r||o.test(r))})(e,r,o);let f;const p=(e,r,o)=>{if(!l(e,r,o))return!1;const t=(()=>(void 0===f&&(f="undefined"!=typeof document?Array.from(document.scripts).map((e=>e.src)).filter(Boolean).sort().join(","):""),f))(),n=(()=>{try{const e=window.sessionStorage.getItem(d);return e?JSON.parse(e):null}catch{return null}})();if(n&&n.build===t)return((e,r)=>{const o={level:"error",tags:{chunkErrorRecovery:"failed"},extra:{originalMessage:null==e?void 0:e.message,filename:r}};(0,s.isSentryInitialized)()?a.captureMessage("Chunk load error persisted after auto-reload",o):console.error("Chunk load error persisted after auto-reload",o)})(e,r),!1;(e=>{try{window.sessionStorage.setItem(d,JSON.stringify(e))}catch{}})({build:t});try{window.sessionStorage.setItem(u,"1")}catch{}return window.location.reload(),!0},m=(e,r)=>i().lazy((()=>e().catch((e=>{if(p(e,void 0,r))return new Promise((()=>{}));throw e})))),v=e=>{(()=>{try{"1"===window.sessionStorage.getItem(u)&&(window.sessionStorage.removeItem(u),console.log("[lazy-with-reload] Recovered from a chunk load error via automatic reload"))}catch{}})();const r=r=>{p(r.reason,void 0,e)&&r.preventDefault()},o=r=>{const o=r.error||{message:r.message};p(o,r.filename,e)&&r.preventDefault()};return window.addEventListener("unhandledrejection",r),window.addEventListener("error",o),()=>{window.removeEventListener("unhandledrejection",r),window.removeEventListener("error",o)}},y=e=>{var r;return((null===(r=e.exception)||void 0===r?void 0:r.values)||[]).some((e=>l({name:e.type,message:e.value})))?null:e};return t})()));
2
- //# sourceMappingURL=lazy-with-reload.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils/lazy-with-reload.js","mappings":"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","sources":["webpack://openstack-uicore-foundation/webpack/universalModuleDefinition","webpack://openstack-uicore-foundation/./src/utils/methods.js","webpack://openstack-uicore-foundation/external commonjs \"moment-timezone\"","webpack://openstack-uicore-foundation/external commonjs \"urijs\"","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 \"react\"","webpack://openstack-uicore-foundation/external commonjs \"@sentry/react\"","webpack://openstack-uicore-foundation/./src/utils/lazy-with-reload.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 ","/**\n * Copyright 2018 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 moment from 'moment-timezone';\nimport URI from \"urijs\";\n\nexport const findElementPos = (obj) => {\n var curtop = -70;\n if (obj.offsetParent) {\n do {\n curtop += obj.offsetTop;\n } while (obj = obj.offsetParent);\n return [curtop];\n }\n};\n\nexport const epochToMoment = (atime) => {\n if(!atime) return atime;\n atime = atime * 1000;\n return moment(atime);\n};\n\nexport const epochToMomentTimeZone = (atime, time_zone) => {\n if(!atime) return atime;\n atime = atime * 1000;\n return moment(atime).tz(time_zone);\n};\n\nexport const formatEpoch = (atime, format = 'M/D/YYYY h:mm a') => {\n if(!atime) return atime;\n return epochToMoment(atime).format(format);\n};\n\nexport const parseLocationHour = (hour) => {\n let parsedHour = hour.toString();\n if(parsedHour.length < 4) parsedHour = `0${parsedHour}`;\n parsedHour = parsedHour.match(/.{2}/g);\n parsedHour = parsedHour.join(':');\n return parsedHour;\n}\n\nexport const objectToQueryString = (obj) => {\n var str = \"\";\n for (var key in obj) {\n if (str != \"\") {\n str += \"&\";\n }\n str += key + \"=\" + encodeURIComponent(obj[key]);\n }\n\n return str;\n};\n\nexport const getBackURL = () => {\n let url = URI(window.location.href);\n let query = url.search(true);\n let fragment = url.fragment();\n let backUrl = query.hasOwnProperty('BackUrl') ? query['BackUrl'] : null;\n if(backUrl != null && fragment != null && fragment != ''){\n backUrl += `#${fragment}`;\n }\n return backUrl;\n};\n\nexport const toSlug = (text) =>{\n text = text.toLowerCase();\n return text.replace(/[^a-zA-Z0-9]+/g,'_');\n}\n\nexport const getAuthCallback = () => {\n if(typeof window !== 'undefined') {\n return `${window.location.origin}/auth/callback`;\n }\n return null;\n};\n\nexport const getCurrentLocation = () => {\n let location = '';\n if(typeof window !== 'undefined') {\n location = window.location;\n // check if we are on iframe\n if (window.top)\n location = window.top.location;\n }\n return location;\n};\n\nexport const getOrigin = () => {\n if(typeof window !== 'undefined') {\n return window.location.origin;\n }\n return null;\n};\n\nexport const getCurrentPathName = () => {\n if(typeof window !== 'undefined') {\n return window.location.pathname;\n }\n return null;\n};\n\nexport const getCurrentHref = () => {\n if(typeof window !== 'undefined') {\n return window.location.href;\n }\n return null;\n};\n\nexport const getAllowedUserGroups = () => {\n if(typeof window !== 'undefined') {\n return window.ALLOWED_USER_GROUPS || '';\n }\n return null;\n};\n\nexport const buildAPIBaseUrl = (relativeUrl) => {\n if(typeof window !== 'undefined'){\n return `${window.API_BASE_URL}${relativeUrl}`;\n }\n return null``;\n};\n\nexport const putOnLocalStorage = (key, value) => {\n if(typeof window !== 'undefined') {\n window.localStorage.setItem(key, value);\n }\n};\n\nexport const getFromLocalStorage = (key, removeIt) => {\n if(typeof window !== 'undefined') {\n let val = window.localStorage.getItem(key);\n if(removeIt){\n console.log(`getFromLocalStorage removing key ${key}`);\n removeFromLocalStorage(key);\n }\n return val;\n }\n return null;\n};\n\nexport const removeFromLocalStorage = (key) => {\n if(typeof window !== 'undefined') {\n window.localStorage.removeItem(key);\n }\n}\n\nexport const isClearingSessionState = () => {\n if(typeof window !== 'undefined') {\n return window.clearing_session_state;\n }\n return false;\n};\n\nexport const setSessionClearingState = (val) => {\n if(typeof window !== 'undefined') {\n window.clearing_session_state = val;\n }\n};\n\nexport const getCurrentUserLanguage = () => {\n let language = 'en';\n if(typeof navigator !== 'undefined') {\n language = (navigator.languages && navigator.languages[0]) || navigator.language || navigator.userLanguage;\n }\n return language;\n};\n\nexport const scrollToError = (errors) => {\n if(Object.keys(errors).length > 0) {\n const firstError = Object.keys(errors)[0];\n const firstNode = document.getElementById(firstError);\n if (firstNode) window.scrollTo(0, findElementPos(firstNode));\n }\n};\n\nexport const hasErrors = (field, errors) => {\n if(field in errors) {\n return errors[field];\n }\n return '';\n};\n\nexport const shallowEqual = (object1, object2) => {\n const keys1 = Object.keys(object1);\n const keys2 = Object.keys(object2);\n\n if (keys1.length !== keys2.length) {\n return false;\n }\n\n for (let key of keys1) {\n if (object1[key] !== object2[key]) {\n return false;\n }\n }\n\n return true;\n};\n\nexport const arraysEqual = (a1, a2) =>\n a1.length === a2.length && a1.every((o, idx) => shallowEqual(o, a2[idx]));\n\nexport const isEmpty = (obj) => {\n return Object.keys(obj).length === 0;\n};\n\n\nexport const base64URLEncode = (str) => {\n return str\n .toString('base64')\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_')\n .replace(/=/g, '')\n}\n\nexport const retryPromise = async (\n cb,\n maxNumberOfRetries = 3\n) => {\n for (let i = 0; i < maxNumberOfRetries; i++) {\n if (await cb()) {\n return true;\n }\n }\n\n return false;\n}\n\nexport const getTimeServiceUrl = () => {\n if(typeof window !== 'undefined') {\n return window.TIMEINTERVALSINCE1970_API_URL || process.env.TIMEINTERVALSINCE1970_API_URL;\n }\n return null;\n};\n\nexport const getEventLocation = (event, summitVenueCount, summitShowLocDate = null, nowUtc = null) => {\n const shouldShowVenues = (summitShowLocDate && nowUtc) ? summitShowLocDate * 1000 < nowUtc : true;\n const locationName = [];\n const { location } = event;\n\n if (!shouldShowVenues) return 'TBA';\n\n if (!location) return 'TBA';\n\n if (summitVenueCount > 1 && location.venue?.name) locationName.push(location.venue.name);\n if (location.floor?.name) locationName.push(location.floor.name);\n if (location.name) locationName.push(location.name);\n\n return locationName.length > 0 ? locationName.join(' - ') : 'TBA';\n};\n\nexport const getEventHosts = (event) => {\n let hosts = [];\n if (event.speakers?.length > 0) {\n hosts = [...event.speakers];\n }\n if (event.moderator) hosts.push(event.moderator);\n\n return hosts;\n};\n\nconst loadImage = async url => {\n const img = document.createElement('img')\n img.src = url\n img.crossOrigin = 'anonymous'\n\n return new Promise((resolve, reject) => {\n img.onload = () => resolve(img)\n img.onerror = reject\n })\n}\n\nexport const convertSVGtoImg = async (svgUrl) => {\n const img = await loadImage(svgUrl)\n const newWidth = 100\n const newHeight = Math.floor(img.naturalHeight * 100 / img.naturalWidth)\n\n const canvas = document.createElement('canvas')\n canvas.width = newWidth\n canvas.height = newHeight\n canvas.getContext('2d').drawImage(img, 0, 0, newWidth, newHeight)\n\n const url = await canvas.toDataURL(`image/png`, 1.0)\n console.log(url, newWidth, newHeight);\n return {url, width: newWidth, height: newHeight}\n}\n\nexport const isRateEnabled = (value) =>\n value !== null && value !== undefined && value !== \"\";\n\n/**\n * Returns true if value is null, undefined, empty/whitespace string,\n * empty array, or empty object.\n */\nexport const empty = (value) => {\n if (value === null || value === undefined) return true;\n if (typeof value === \"string\") return value.trim().length === 0;\n if (Array.isArray(value)) return value.length === 0;\n if (typeof value === \"object\") return Object.keys(value).length === 0;\n return false;\n};\n\nexport const isSentryInitialized = () => typeof window !== \"undefined\" && !!window.SENTRY_DSN;\n\nexport const normalizeHtmlString = (textInput) => {\n if (!textInput) return \"\";\n const doc = new DOMParser().parseFromString(textInput, \"text/html\");\n return doc.body.textContent.trim().length === 0 ? \"\" : textInput;\n};","module.exports = require(\"moment-timezone\");","module.exports = require(\"urijs\");","// 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","// 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(\"react\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@sentry/react\");","/**\n * Copyright 2026 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 React from \"react\";\nimport * as Sentry from \"@sentry/react\";\nimport { isSentryInitialized } from \"./methods\";\n\nconst RELOAD_STATE_KEY = \"uicore.chunk-load-error-reload-state\";\nconst PENDING_CONFIRMATION_KEY = \"uicore.chunk-load-error-pending-confirmation\";\n\n// webpack's own JSONP chunk-loading runtime hardcodes error.name = \"ChunkLoadError\"\n// on every chunk-load failure it detects through the import() promise - both a\n// genuine network 404 AND the \"script tag loaded (200 OK) but the expected chunk\n// never registered\" case, e.g. a stale content-hashed chunk URL falling through to\n// an SPA's index.html fallback. This is webpack's own intentional, stable\n// convention (see webpack/lib/web/JsonpChunkLoadingRuntimeModule.js), not a guess.\nconst isWebpackChunkLoadError = (error) =>\n Boolean(error) && error.name === \"ChunkLoadError\";\n\n// Separately from the promise rejection above, the browser is ALSO trying to\n// execute that stale response's HTML content as the script tag's body, which\n// throws a genuine engine-level SyntaxError as an uncaught global script error -\n// a completely different failure surface that no amount of wrapping import() in\n// a .catch() can observe. There's no clean, structured signal for this one, so we\n// match on the characteristic message and, when a source filename is available,\n// cross-check it against a typical content-hashed chunk filename so this can't\n// false-match an unrelated SyntaxError elsewhere in the app.\nconst DEFAULT_CHUNK_FILENAME_PATTERN = /[._-][0-9a-f]{8,}\\.js(\\?.*)?$/i;\n\nconst isHtmlParsedAsScriptError = (\n error,\n filename,\n chunkFilenamePattern = DEFAULT_CHUNK_FILENAME_PATTERN\n) => {\n const message = (error && error.message) || (typeof error === \"string\" ? error : \"\");\n // \"SyntaxError\" can show up on error.name (a real SyntaxError object) or\n // inline in the message text (window.onerror's flat event.message string,\n // e.g. \"Uncaught SyntaxError: Unexpected token '<'\") - check both.\n const looksLikeSyntaxError =\n (error && error.name === \"SyntaxError\") || /SyntaxError/i.test(message);\n if (!looksLikeSyntaxError || !/Unexpected token '<'/i.test(message)) {\n return false;\n }\n return !filename || chunkFilenamePattern.test(filename);\n};\n\nexport const isChunkLoadError = (error, filename, chunkFilenamePattern) =>\n isWebpackChunkLoadError(error) ||\n isHtmlParsedAsScriptError(error, filename, chunkFilenamePattern);\n\n// Fingerprints the statically-loaded <script> tags present the first time\n// this module runs on a given page load - i.e. before any lazy chunk has\n// been requested. This identifies \"which build is currently running\"\n// without requiring the consuming app to expose a dedicated build-version\n// global. Computed once and cached: document.scripts grows over time as\n// webpack's runtime appends a <script> tag for every lazy chunk that loads,\n// so reading it lazily-but-uncached would make the fingerprint drift within\n// a single build, not just across a real deploy.\nlet cachedBuildFingerprint;\nconst getBuildFingerprint = () => {\n if (cachedBuildFingerprint === undefined) {\n cachedBuildFingerprint =\n typeof document !== \"undefined\"\n ? Array.from(document.scripts)\n .map((s) => s.src)\n .filter(Boolean)\n .sort()\n .join(\",\")\n : \"\";\n }\n return cachedBuildFingerprint;\n};\n\nconst readReloadState = () => {\n try {\n const raw = window.sessionStorage.getItem(RELOAD_STATE_KEY);\n return raw ? JSON.parse(raw) : null;\n } catch {\n return null;\n }\n};\n\nconst writeReloadState = (state) => {\n try {\n window.sessionStorage.setItem(RELOAD_STATE_KEY, JSON.stringify(state));\n } catch {\n // ignore - sessionStorage can throw in some privacy modes\n }\n};\n\nconst reportRecoveryFailed = (error, filename) => {\n const context = {\n level: \"error\",\n tags: { chunkErrorRecovery: \"failed\" },\n extra: { originalMessage: error?.message, filename }\n };\n if (isSentryInitialized()) {\n Sentry.captureMessage(\"Chunk load error persisted after auto-reload\", context);\n } else {\n console.error(\"Chunk load error persisted after auto-reload\", context);\n }\n};\n\n// Reloads the page once per *build* when a lazy chunk fails to load\n// (typically a stale content-hashed filename after a deploy). Returns true\n// only when it actually triggers a *new* reload; false if this isn't a chunk\n// error, or if we already tried reloading once for this same build - in the\n// latter case a distinct Sentry report is filed (see reportRecoveryFailed)\n// and the caller should let the error propagate normally instead of\n// looping. Scoping the guard to the build (not just \"once this session\")\n// means that if a second deploy lands later in the same long-lived tab, a\n// fresh failure on that new build still gets its own reload attempt instead\n// of being silently blocked by an unrelated earlier recovery.\nexport const reloadOnChunkError = (error, filename, chunkFilenamePattern) => {\n if (!isChunkLoadError(error, filename, chunkFilenamePattern)) return false;\n\n const currentBuild = getBuildFingerprint();\n const state = readReloadState();\n\n if (state && state.build === currentBuild) {\n reportRecoveryFailed(error, filename);\n return false;\n }\n\n writeReloadState({ build: currentBuild });\n try {\n window.sessionStorage.setItem(PENDING_CONFIRMATION_KEY, \"1\");\n } catch {\n // ignore - see readReloadState/writeReloadState\n }\n window.location.reload();\n return true;\n};\n\n// Logs (once) that a prior chunk-load-error reload actually took effect, so\n// it's easy to confirm in the console that this recovery path fired.\nconst confirmReloadIfPending = () => {\n try {\n if (window.sessionStorage.getItem(PENDING_CONFIRMATION_KEY) === \"1\") {\n window.sessionStorage.removeItem(PENDING_CONFIRMATION_KEY);\n // eslint-disable-next-line no-console\n console.log(\n \"[lazy-with-reload] Recovered from a chunk load error via automatic reload\"\n );\n }\n } catch {\n // ignore\n }\n};\n\n// Drop-in replacement for React.lazy(() => import(...)) that auto-recovers\n// from a stale-chunk failure by reloading the page once. On any other error,\n// or a repeat chunk failure after the reload already happened once for this\n// build, the error is rethrown so it still reaches the app's own error\n// boundary/fallback UI.\nexport const lazyWithReload = (importer, chunkFilenamePattern) =>\n React.lazy(() =>\n importer().catch((error) => {\n if (reloadOnChunkError(error, undefined, chunkFilenamePattern)) {\n // reload is in flight - never resolve so nothing renders (e.g. an\n // error boundary flash) before it takes effect\n return new Promise(() => {});\n }\n throw error;\n })\n );\n\n// Fallback safety net for chunk-load failures that don't flow through\n// lazyWithReload (e.g. a bare React.lazy()/dynamic import() call, or the raw\n// SyntaxError case, which is never a promise rejection at all - see\n// isHtmlParsedAsScriptError above). Call once at app bootstrap. Also\n// confirms (via console.log) whether a prior chunk-load-error reload\n// actually took effect, since this is the app's one designated bootstrap\n// entry point for this recovery mechanism.\nexport const initChunkErrorRecovery = (chunkFilenamePattern) => {\n confirmReloadIfPending();\n\n const onUnhandledRejection = (event) => {\n if (reloadOnChunkError(event.reason, undefined, chunkFilenamePattern)) {\n event.preventDefault();\n }\n };\n\n const onError = (event) => {\n const error = event.error || { message: event.message };\n if (reloadOnChunkError(error, event.filename, chunkFilenamePattern)) {\n event.preventDefault();\n }\n };\n\n window.addEventListener(\"unhandledrejection\", onUnhandledRejection);\n window.addEventListener(\"error\", onError);\n\n return () => {\n window.removeEventListener(\"unhandledrejection\", onUnhandledRejection);\n window.removeEventListener(\"error\", onError);\n };\n};\n\n// Sentry beforeSend hook: drops chunk-load-error events from being reported,\n// since a first-time occurrence is expected to self-heal via the reload\n// above. A repeat failure (reload didn't help) is reported separately and\n// explicitly via reportRecoveryFailed's Sentry.captureMessage call, which is\n// a message-type event (no .exception), so it is unaffected by this filter.\nexport const chunkErrorSentryBeforeSend = (event) => {\n const exceptionValues = event.exception?.values || [];\n const matchesChunkError = exceptionValues.some((exceptionValue) =>\n isChunkLoadError({\n name: exceptionValue.type,\n message: exceptionValue.value\n })\n );\n return matchesChunkError ? null : event;\n};\n"],"names":["root","factory","exports","module","define","amd","this","isSentryInitialized","window","SENTRY_DSN","require","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","n","getter","__esModule","d","a","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","RELOAD_STATE_KEY","PENDING_CONFIRMATION_KEY","DEFAULT_CHUNK_FILENAME_PATTERN","isChunkLoadError","error","filename","chunkFilenamePattern","Boolean","name","isWebpackChunkLoadError","isHtmlParsedAsScriptError","message","test","cachedBuildFingerprint","reloadOnChunkError","currentBuild","getBuildFingerprint","document","Array","from","scripts","map","s","src","filter","sort","join","state","readReloadState","raw","sessionStorage","getItem","JSON","parse","build","reportRecoveryFailed","context","level","tags","chunkErrorRecovery","extra","originalMessage","Sentry","console","setItem","stringify","writeReloadState","location","reload","lazyWithReload","importer","React","catch","Promise","initChunkErrorRecovery","confirmReloadIfPending","removeItem","log","onUnhandledRejection","event","reason","preventDefault","onError","addEventListener","removeEventListener","chunkErrorSentryBeforeSend","_event$exception","exception","values","some","exceptionValue","type"],"sourceRoot":""}