diff --git a/lib/components/ajaxloader.js b/lib/components/ajaxloader.js new file mode 100644 index 00000000..148e96a1 --- /dev/null +++ b/lib/components/ajaxloader.js @@ -0,0 +1,2 @@ +!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={2015:e=>{e.exports=require("react")}},t={};function o(r){var n=t[r];if(void 0!==n)return n.exports;var a=t[r]={exports:{}};return e[r](a,a.exports,o),a.exports}(()=>{o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t}})(),(()=>{o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}})(),(()=>{o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)})(),(()=>{o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}})();var r={};o.r(r),o.d(r,{default:()=>i});var n=o(2015),a=o.n(n);const i=({show:e,relative:t,color:o,size:r,children:n})=>{let i={display:e?"block":"none",width:"100%",height:"100%",position:t?"absolute":"fixed",zIndex:1e7,margin:"auto",cursor:"wait",backgroundColor:"rgba(0,0,0,0.2)",top:0,left:0},l={fontSize:r+"px",color:"black"},c={width:"250px",height:"75px",textAlign:"center",position:t?"relative":"fixed",top:t?"50%":"0",left:t?"":"0",right:"0",bottom:"0",margin:"auto",zIndex:10,color:"#ffffff"},d={background:o,opacity:"0.8",width:"100%",height:"100%",position:"absolute",top:0};return a().createElement("div",{className:"ajax-loader-container",style:i},a().createElement("div",{style:c},a().createElement("i",{className:"fa fa-spinner fa-spin",style:l}),a().createElement("div",null,n)),a().createElement("div",{style:d,className:"loader-background"}))};return r})())); +//# sourceMappingURL=ajaxloader.js.map \ No newline at end of file diff --git a/lib/components/ajaxloader.js.map b/lib/components/ajaxloader.js.map new file mode 100644 index 00000000..6165f5a2 --- /dev/null +++ b/lib/components/ajaxloader.js.map @@ -0,0 +1 @@ +{"version":3,"file":"components/ajaxloader.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,mCCTTH,EAAOD,QAAUK,QAAQ,Q,GCCrBC,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBE,IAAjBD,EACH,OAAOA,EAAaT,QAGrB,IAAIC,EAASK,EAAyBE,GAAY,CAGjDR,QAAS,CAAC,GAOX,OAHAW,EAAoBH,GAAUP,EAAQA,EAAOD,QAASO,GAG/CN,EAAOD,OACf,C,MCrBAO,EAAoBK,EAAKX,IACxB,IAAIY,EAASZ,GAAUA,EAAOa,WAC7B,IAAOb,EAAiB,QACxB,IAAM,EAEP,OADAM,EAAoBQ,EAAEF,EAAQ,CAAEG,EAAGH,IAC5BA,CAAM,C,WCLdN,EAAoBQ,EAAI,CAACf,EAASiB,KACjC,IAAI,IAAIC,KAAOD,EACXV,EAAoBY,EAAEF,EAAYC,KAASX,EAAoBY,EAAEnB,EAASkB,IAC5EE,OAAOC,eAAerB,EAASkB,EAAK,CAAEI,YAAY,EAAMC,IAAKN,EAAWC,IAE1E,C,WCNDX,EAAoBY,EAAI,CAACK,EAAKC,IAAUL,OAAOM,UAAUC,eAAeC,KAAKJ,EAAKC,E,WCClFlB,EAAoBsB,EAAK7B,IACH,oBAAX8B,QAA0BA,OAAOC,aAC1CX,OAAOC,eAAerB,EAAS8B,OAAOC,YAAa,CAAEC,MAAO,WAE7DZ,OAAOC,eAAerB,EAAS,aAAc,CAAEgC,OAAO,GAAO,C,mECU9D,MA8DA,EA9DmBC,EACKC,OACAC,WACAC,QACAC,OACAC,eAGpB,IAAIC,EAAS,CACTC,QAASN,EAAO,QAAU,OAC1BO,MAAO,OACPC,OAAQ,OACRC,SAAUR,EAAW,WAAa,QAClCS,OAAQ,IACRC,OAAQ,OACRC,OAAQ,OACRC,gBAAiB,kBACjBC,IAAK,EACLC,KAAM,GAGNC,EAAe,CACfC,SAAUd,EAAO,KACjBD,MAAO,SAGPgB,EAAwB,CACxBX,MAAO,QACPC,OAAQ,OACRW,UAAW,SACXV,SAAUR,EAAW,WAAa,QAClCa,IAAKb,EAAW,MAAQ,IACxBc,KAAMd,EAAW,GAAK,IACtBmB,MAAO,IACPC,OAAQ,IACRV,OAAQ,OACRD,OAAQ,GACRR,MAAO,WAGPoB,EAAkB,CAClBC,WAAYrB,EACZsB,QAAS,MACTjB,MAAO,OACPC,OAAQ,OACRC,SAAU,WACVK,IAAK,GAGT,OACIW,IAAAA,cAAA,OAAKC,UAAU,wBAAwBC,MAAOtB,GAC1CoB,IAAAA,cAAA,OAAKE,MAAOT,GACRO,IAAAA,cAAA,KAAGC,UAAU,wBAAwBC,MAAOX,IAC5CS,IAAAA,cAAA,WACKrB,IAGTqB,IAAAA,cAAA,OAAKE,MAAOL,EAAiBI,UAAU,sBACrC,E","sources":["webpack://openstack-uicore-foundation/webpack/universalModuleDefinition","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/./src/components/ajaxloader/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 ","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};","/**\n * Copyright 2017 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';\n\nconst AjaxLoader = ({\n show,\n relative,\n color,\n size,\n children,\n }) => {\n\n let styles = {\n display: show ? 'block' : 'none',\n width: '100%',\n height: '100%',\n position: relative ? 'absolute' : 'fixed',\n zIndex: 10000000,\n margin: 'auto',\n cursor: 'wait',\n backgroundColor: 'rgba(0,0,0,0.2)',\n top: 0,\n left: 0\n };\n\n let styleSpinner = {\n fontSize: size + 'px',\n color: 'black',\n };\n\n let styleSpinnerContainer = {\n width: '250px',\n height: '75px',\n textAlign: 'center',\n position: relative ? 'relative' : 'fixed',\n top: relative ? '50%' : '0',\n left: relative ? '' : '0',\n right: '0',\n bottom: '0',\n margin: 'auto',\n zIndex: 10,\n color: '#ffffff'\n };\n\n let styleBackground = {\n background: color,\n opacity: '0.8',\n width: '100%',\n height: '100%',\n position: 'absolute',\n top: 0\n };\n\n return (\n
\n
\n \n
\n {children}\n
\n
\n
\n
\n );\n};\n\nexport default AjaxLoader;\n"],"names":["root","factory","exports","module","define","amd","this","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","AjaxLoader","show","relative","color","size","children","styles","display","width","height","position","zIndex","margin","cursor","backgroundColor","top","left","styleSpinner","fontSize","styleSpinnerContainer","textAlign","right","bottom","styleBackground","background","opacity","React","className","style"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/components/attendance-tracker.js b/lib/components/attendance-tracker.js new file mode 100644 index 00000000..44a8463b --- /dev/null +++ b/lib/components/attendance-tracker.js @@ -0,0 +1,2 @@ +!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={5097:(e,o,t)=>{t(1116),t(6842),t(9087),t(9558),t(2183)},3195:(e,o,t)=>{t.d(o,{AUTH_ERROR_ACCESS_TOKEN_EXPIRED:()=>s,AUTH_ERROR_LOCK_ACQUIRE_ERROR:()=>i,AUTH_ERROR_MISSING_AUTH_INFO:()=>r,AUTH_ERROR_MISSING_REFRESH_TOKEN:()=>n,AUTH_ERROR_REFRESH_TOKEN_NETWORK_ERROR:()=>c,AUTH_ERROR_REFRESH_TOKEN_REQUEST_ERROR:()=>a});const r="AUTH_ERROR_MISSING_AUTH_INFO",n="AUTH_ERROR_MISSING_REFRESH_TOKEN",s="AUTH_ERROR_ACCESS_TOKEN_EXPIRED",i="AUTH_ERROR_LOCK_ACQUIRE_ERROR",a="AUTH_ERROR_REFRESH_TOKEN_REQUEST_ERROR",c="AUTH_ERROR_REFRESH_TOKEN_NETWORK_ERROR"},2183:(e,o,t)=>{t.d(o,{getAccessToken:()=>T});var r=t(9558),n=t(5812),s=t.n(n);t(806);const i=require("browser-tabs-lock");var a=t.n(i);const c=require("js-cookie");var R=t.n(c),u=(t(8041),t(9891),t(5097),t(8853),t(3195));const Lock=new(a()),GET_TOKEN_SILENTLY_LOCK_KEY="openstackuicore.lock.getTokenSilently",l="code",d="authInfo",_="idToken",E=async(e,o)=>{if(e===l&&k()){if(!o)throw S(),Error(u.AUTH_ERROR_MISSING_REFRESH_TOKEN);let e=await(async(e,o=5,t=1e3)=>{for(let r=0;rsetTimeout(e,n)))}})((()=>w(o))),{access_token:t,expires_in:r,refresh_token:n,id_token:s}=e;return void 0===n&&(n=null),O(t,r,n,s),t}throw S(),Error(u.AUTH_ERROR_ACCESS_TOKEN_EXPIRED)},p=async()=>{console.log("openstack-uicore-foundation::Security::methods::_getAccessToken");let e=m();if(!e)throw console.log("openstack-uicore-foundation::Security::methods::_getAccessToken AUTH_ERROR_MISSING_AUTH_INFO"),Error(u.AUTH_ERROR_MISSING_AUTH_INFO);let{accessToken:o,expiresIn:t,accessTokenUpdatedAt:r,refreshToken:n}=e,i=g();const a=s()().unix();let c=a-r;return t-=60,console.log(`openstack-uicore-foundation::Security::methods::_getAccessToken now ${a} accessTokenUpdatedAt ${r} expiresIn ${t} timeElapsedSecs ${c}`),(c>=t||null==o)&&(console.log("openstack-uicore-foundation::Security::methods::_getAccessToken access token expired, refreshing it ..."),o=await E(i,n)),o},f=Symbol.for("openstack-uicore-foundation.accessTokenResolver"),T=async()=>{const e=globalThis[f];if(e)return e();if("undefined"!=typeof navigator&&navigator.locks)return await navigator.locks.request(GET_TOKEN_SILENTLY_LOCK_KEY,(async e=>(console.log("openstack-uicore-foundation::Security::methods::getAccessToken web lock api",e),await p())));if(!await(0,r.retryPromise)((()=>Lock.acquireLock(GET_TOKEN_SILENTLY_LOCK_KEY,6e3)),10))throw Error(u.AUTH_ERROR_LOCK_ACQUIRE_ERROR);try{return await p()}finally{await Lock.releaseLock(GET_TOKEN_SILENTLY_LOCK_KEY)}},w=async e=>{let o=h(),t=y();const n={grant_type:"refresh_token",client_id:encodeURI(t),refresh_token:e},s=new AbortController,i=setTimeout((()=>s.abort()),1e4);let a,c;try{a=await fetch(`${o}/oauth2/token`,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify(n),signal:s.signal})}catch(e){throw console.log("refreshAccessToken network error:",e.message),Error(`${u.AUTH_ERROR_REFRESH_TOKEN_NETWORK_ERROR}: ${e.message}`)}finally{clearTimeout(i)}if(!a.ok){if(console.log(`refreshAccessToken server error: ${a.status} - ${a.statusText}`),a.status>=500||408===a.status||429===a.status)throw Error(`${u.AUTH_ERROR_REFRESH_TOKEN_NETWORK_ERROR}: ${a.status} - ${a.statusText}`);throw(0,r.setSessionClearingState)(!0),Error(`${u.AUTH_ERROR_REFRESH_TOKEN_REQUEST_ERROR}: ${a.status} - ${a.statusText}`)}try{c=await a.json()}catch(e){throw Error(`${u.AUTH_ERROR_REFRESH_TOKEN_NETWORK_ERROR}: invalid JSON response from IDP`)}let{access_token:R,refresh_token:l,expires_in:d,id_token:_}=c;if(!R)throw(0,r.setSessionClearingState)(!0),Error(`${u.AUTH_ERROR_REFRESH_TOKEN_REQUEST_ERROR}: missing access_token in refresh response`);return{access_token:R,refresh_token:l,expires_in:d,id_token:_}},O=(e,o,t=null,n=null)=>{let s=m(),i={accessToken:e,expiresIn:o,accessTokenUpdatedAt:Math.floor(Date.now()/1e3)};null==t&&s&&(t=s.refreshToken),null==n&&s&&(n=s.idToken),t&&(i.refreshToken=t),n?(i[_]=n,R().set(_,n,{secure:!0,sameSite:"Lax"})):R().remove(_),(0,r.putOnLocalStorage)(d,JSON.stringify(i))},m=()=>{try{let e=(0,r.getFromLocalStorage)(d,!1);return e?JSON.parse(e):null}catch(e){return null}},S=()=>{"undefined"!=typeof window&&((0,r.removeFromLocalStorage)(d),R().remove(_))},y=()=>"undefined"!=typeof window?window.OAUTH2_CLIENT_ID:null,g=()=>"undefined"!=typeof window&&window.OAUTH2_FLOW||"token id_token",k=()=>"undefined"==typeof window||new Boolean(window.OAUTH2_USE_REFRESH_TOKEN||!0),h=()=>"undefined"!=typeof window?window.IDP_BASE_URL:null},9087:(e,o,t)=>{t(2462),t(806);var r=t(8041),n=t.n(r);t(9236),t(6842),t(9558),t(5097),t(2183);n().escapeQuerySpace=!1;const s=e=>o=>({type:e,payload:o});s("RESET_LOADING"),s("START_LOADING"),s("STOP_LOADING")},8853:()=>{require("spark-md5"),require("crypto-js/sha256"),require("crypto-js/enc-base64url"),require("crypto-js/enc-hex"),"undefined"!=typeof window&&(window.crypto||window.msCrypto)},9558:(e,o,t)=>{t.d(o,{getFromLocalStorage:()=>n,putOnLocalStorage:()=>r,removeFromLocalStorage:()=>s,retryPromise:()=>a,setSessionClearingState:()=>i});t(5812),t(8041);const r=(e,o)=>{"undefined"!=typeof window&&window.localStorage.setItem(e,o)},n=(e,o)=>{if("undefined"!=typeof window){let t=window.localStorage.getItem(e);return o&&(console.log(`getFromLocalStorage removing key ${e}`),s(e)),t}return null},s=e=>{"undefined"!=typeof window&&window.localStorage.removeItem(e)},i=e=>{"undefined"!=typeof window&&(window.clearing_session_state=e)},a=async(e,o=3)=>{for(let t=0;t{e.exports=require("@babel/runtime/helpers/defineProperty")},2462:e=>{e.exports=require("@babel/runtime/helpers/objectWithoutProperties")},6842:e=>{e.exports=require("i18n-react/dist/i18n-react")},9891:e=>{e.exports=require("idtoken-verifier")},5812:e=>{e.exports=require("moment-timezone")},9825:e=>{e.exports=require("prop-types")},2015:e=>{e.exports=require("react")},806:e=>{e.exports=require("superagent/lib/client")},9236:e=>{e.exports=require("sweetalert2")},8041:e=>{e.exports=require("urijs")}},o={};function t(r){var n=o[r];if(void 0!==n)return n.exports;var s=o[r]={exports:{}};return e[r](s,s.exports,t),s.exports}(()=>{t.n=e=>{var o=e&&e.__esModule?()=>e.default:()=>e;return t.d(o,{a:o}),o}})(),(()=>{t.d=(e,o)=>{for(var r in o)t.o(o,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:o[r]})}})(),(()=>{t.o=(e,o)=>Object.prototype.hasOwnProperty.call(e,o)})(),(()=>{t.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}})();var r={};t.r(r),t.d(r,{default:()=>E});var n=t(1116),s=t.n(n),i=t(2015),a=t.n(i),c=t(9825),R=t.n(c),u=t(806),l=t.n(u),d=t(2183);class _ extends a().Component{constructor(...e){super(...e),s()(this,"trackEnter",(async()=>{const{apiBaseUrl:e,summitId:o,sourceId:t,sourceName:r}=this.props,n=this.getLocation();try{const s=await(0,d.getAccessToken)();l().put(`${e}/api/v1/summits/${o}/metrics/enter`).send({access_token:s,type:r,source_id:t,location:n}).end((()=>console.log("ENTER PAGE")))}catch(e){console.log(e)}})),s()(this,"trackLeave",(async()=>{const{apiBaseUrl:e,summitId:o,sourceId:t,sourceName:r}=this.props,n=this.getLocation();try{const s=await(0,d.getAccessToken)();l().post(`${e}/api/v1/summits/${o}/metrics/leave`).send({access_token:s,type:r,source_id:t,location:n}).end((()=>console.log("LEFT PAGE")))}catch(e){console.log(e)}})),s()(this,"onBeforeUnload",(async()=>{const{apiBaseUrl:e,summitId:o,sourceId:t,sourceName:r}=this.props,n=this.getLocation();try{const s=await(0,d.getAccessToken)();return void navigator.sendBeacon(`${e}/api/v1/summits/${o}/metrics/leave?access_token=${s}&type=${r}&source_id=${t}&location=${n}`,{})}catch(e){console.log(e)}})),s()(this,"getLocation",(()=>"undefined"!=typeof window?encodeURIComponent(window.location.href):""))}componentDidMount(){const{trackEnter:e,onBeforeUnload:o}=this;e(),"undefined"!=typeof window&&window.addEventListener("beforeunload",o)}componentWillUnmount(){const{trackLeave:e,onBeforeUnload:o}=this;e(),"undefined"!=typeof window&&window.removeEventListener("beforeunload",o)}render(){return null}}_.propTypes={sourceName:R().string,sourceId:R().number,summitId:R().number.isRequired,apiBaseUrl:R().string.isRequired},_.defaultProps={sourceId:0,sourceName:"GENERAL"};const E=_;return r})())); +//# sourceMappingURL=attendance-tracker.js.map \ No newline at end of file diff --git a/lib/components/attendance-tracker.js.map b/lib/components/attendance-tracker.js.map new file mode 100644 index 00000000..bcb6cdd5 --- /dev/null +++ b/lib/components/attendance-tracker.js.map @@ -0,0 +1 @@ +{"version":3,"file":"components/attendance-tracker.js","mappings":"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","sources":["webpack://openstack-uicore-foundation/webpack/universalModuleDefinition","webpack://openstack-uicore-foundation/./src/components/security/constants.js","webpack://openstack-uicore-foundation/external commonjs \"browser-tabs-lock\"","webpack://openstack-uicore-foundation/external commonjs \"js-cookie\"","webpack://openstack-uicore-foundation/./src/components/security/methods.js","webpack://openstack-uicore-foundation/./src/utils/actions.js","webpack://openstack-uicore-foundation/external commonjs \"spark-md5\"","webpack://openstack-uicore-foundation/external commonjs \"crypto-js/sha256\"","webpack://openstack-uicore-foundation/external commonjs \"crypto-js/enc-base64url\"","webpack://openstack-uicore-foundation/external commonjs \"crypto-js/enc-hex\"","webpack://openstack-uicore-foundation/./src/utils/crypto.js","webpack://openstack-uicore-foundation/./src/utils/methods.js","webpack://openstack-uicore-foundation/external commonjs \"@babel/runtime/helpers/defineProperty\"","webpack://openstack-uicore-foundation/external commonjs \"@babel/runtime/helpers/objectWithoutProperties\"","webpack://openstack-uicore-foundation/external commonjs \"i18n-react/dist/i18n-react\"","webpack://openstack-uicore-foundation/external commonjs \"idtoken-verifier\"","webpack://openstack-uicore-foundation/external commonjs \"moment-timezone\"","webpack://openstack-uicore-foundation/external commonjs \"prop-types\"","webpack://openstack-uicore-foundation/external commonjs \"react\"","webpack://openstack-uicore-foundation/external commonjs \"superagent/lib/client\"","webpack://openstack-uicore-foundation/external commonjs \"sweetalert2\"","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/./src/components/attendance-tracker.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 AUTH_ERROR_MISSING_AUTH_INFO = 'AUTH_ERROR_MISSING_AUTH_INFO';\nexport const AUTH_ERROR_MISSING_REFRESH_TOKEN = 'AUTH_ERROR_MISSING_REFRESH_TOKEN';\nexport const AUTH_ERROR_ACCESS_TOKEN_EXPIRED = 'AUTH_ERROR_ACCESS_TOKEN_EXPIRED';\nexport const AUTH_ERROR_LOCK_ACQUIRE_ERROR = 'AUTH_ERROR_LOCK_ACQUIRE_ERROR'\nexport const AUTH_ERROR_REFRESH_TOKEN_REQUEST_ERROR = 'AUTH_ERROR_REFRESH_TOKEN_REQUEST_ERROR';\nexport const AUTH_ERROR_REFRESH_TOKEN_NETWORK_ERROR = 'AUTH_ERROR_REFRESH_TOKEN_NETWORK_ERROR';\nexport const AUTH_ERROR_ID_TOKEN_INVALID = 'AUTH_ERROR_ID_TOKEN_INVALID';\nexport const AUTH_ERROR_MISSING_OTP_PARAM = 'AUTH_ERROR_MISSING_OTP_PARAM';\nexport const AUTH_ERROR_MISSING_PKCE_PARAM = 'AUTH_ERROR_MISSING_PKCE_PARAM';\nexport const AUTH_ERROR_MISSING_NONCE_PARAM = 'AUTH_ERROR_MISSING_NONCE_PARAM';\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"browser-tabs-lock\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"js-cookie\");","import {\n base64URLEncode,\n getAuthCallback,\n getCurrentLocation,\n getFromLocalStorage,\n removeFromLocalStorage,\n getOrigin,\n putOnLocalStorage,\n retryPromise,\n setSessionClearingState,\n} from \"../../utils/methods\";\nimport moment from \"moment-timezone\";\nimport request from 'superagent/lib/client';\nimport SuperTokensLock from 'browser-tabs-lock';\nimport Cookies from 'js-cookie'\nlet http = request;\nimport URI from \"urijs\";\nimport IdTokenVerifier from \"idtoken-verifier\";\nimport {SET_LOGGED_USER} from \"./actions\";\nimport {getRandomBytes, getSHA256} from \"../../utils/crypto\";\n\nimport {\n AUTH_ERROR_ACCESS_TOKEN_EXPIRED,\n AUTH_ERROR_MISSING_AUTH_INFO,\n AUTH_ERROR_MISSING_REFRESH_TOKEN,\n AUTH_ERROR_LOCK_ACQUIRE_ERROR,\n AUTH_ERROR_REFRESH_TOKEN_REQUEST_ERROR,\n AUTH_ERROR_REFRESH_TOKEN_NETWORK_ERROR,\n AUTH_ERROR_ID_TOKEN_INVALID,\n AUTH_ERROR_MISSING_OTP_PARAM,\n AUTH_ERROR_MISSING_PKCE_PARAM,\n AUTH_ERROR_MISSING_NONCE_PARAM,\n} from \"./constants\";\n\n/**\n * @ignore\n */\nconst Lock = new SuperTokensLock();\n/**\n * @ignore\n */\nconst GET_TOKEN_SILENTLY_LOCK_KEY = 'openstackuicore.lock.getTokenSilently';\nconst GET_TOKEN_SILENTLY_LOCK_KEY_TIMEOUT = 6000;\nconst NONCE_LEN = 16;\nexport const ACCESS_TOKEN_SKEW_TIME = 60;\nexport const RESPONSE_TYPE_IMPLICIT = \"token id_token\";\nexport const RESPONSE_TYPE_CODE = 'code';\nconst AUTH_INFO = 'authInfo';\nconst NONCE = 'nonce';\nconst PKCE = 'pkce';\nconst ID_TOKEN = 'idToken';\nconst BACK_ULR_PARAM_NAME = 'BackUrl';\n\n\n/**\n *\n * @param backUrl\n * @param prompt\n * @param tokenIdHint\n * @param provider\n * @param loginHint\n * @param otpLoginHint\n * @param tenant\n * @param backUrlParamName\n * @returns {*}\n */\nexport const getAuthUrl = (\n backUrl = null,\n prompt = null,\n tokenIdHint = null,\n provider = null,\n loginHint = null,\n otpLoginHint = null,\n tenant = null,\n backUrlParamName = BACK_ULR_PARAM_NAME\n ) => {\n\n let oauth2ClientId = getOAuth2ClientId();\n let redirectUri = getAuthCallback();\n let baseUrl = getOAuth2IDPBaseUrl();\n let scopes = getOAuth2Scopes();\n let flow = getOAuth2Flow();\n\n if (backUrl != null)\n redirectUri += `?${backUrlParamName}=${encodeURIComponent(backUrl)}`;\n\n let nonce = createNonce(NONCE_LEN);\n\n // store nonce to check it later\n putOnLocalStorage(NONCE, nonce);\n let url = URI(`${baseUrl}/oauth2/auth`);\n\n let query = {\n \"response_type\": encodeURI(flow),\n \"scope\": encodeURI(scopes),\n \"nonce\": nonce,\n \"response_mode\": 'fragment',\n \"client_id\": encodeURI(oauth2ClientId),\n \"redirect_uri\": encodeURI(redirectUri)\n };\n\n if (flow === RESPONSE_TYPE_CODE) {\n const pkce = createPKCECodes()\n putOnLocalStorage(PKCE, JSON.stringify(pkce));\n query['code_challenge'] = pkce.codeChallenge;\n query['code_challenge_method'] = 'S256';\n query['approval_prompt'] = 'force';\n }\n\n if (prompt) {\n query['prompt'] = prompt;\n }\n\n if (scopes && scopes.includes('offline_access')) {\n // then we need to force prompt=consent bc we are requesting an offline access\n // and we need to let the user know\n query['prompt'] = 'consent';\n }\n\n if (tokenIdHint) {\n query['id_token_hint'] = tokenIdHint;\n }\n\n if (provider) {\n query['provider'] = provider;\n }\n\n if (otpLoginHint) {\n query['otp_login_hint'] = otpLoginHint;\n }\n\n if (loginHint) {\n query['login_hint'] = encodeURI(loginHint);\n }\n\n if (tenant) {\n query['tenant'] = tenant;\n }\n\n url = url.query(query);\n //console.log(`getAuthUrl ${url.toString()}`);\n return url;\n}\n\n/**\n * @param idToken\n * @returns {*}\n */\nexport const getLogoutUrl = (idToken = null) => {\n let baseUrl = getOAuth2IDPBaseUrl();\n let oauth2ClientId = getOAuth2ClientId();\n let url = URI(`${baseUrl}/oauth2/end-session`);\n let state = createNonce(NONCE_LEN);\n let postLogOutUri = `${getOrigin()}/auth/logout`;\n // store nonce to check it later\n putOnLocalStorage('post_logout_state', state);\n /**\n * post_logout_redirect_uri should be listed on oauth2 client settings\n * on IDP\n * \"Security Settings\" Tab -> Logout Options -> Post Logout Uris\n */\n const queryParams = {\n \"post_logout_redirect_uri\": encodeURI(postLogOutUri),\n \"client_id\": encodeURI(oauth2ClientId),\n \"state\": state,\n }\n\n if (idToken)\n queryParams.id_token_hint = idToken;\n\n return url.query(queryParams);\n}\n\nconst createNonce = (len) => {\n let possible = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n let nonce = '';\n for (let i = 0; i < len; i++) {\n nonce += possible.charAt(Math.floor(Math.random() * possible.length));\n }\n return nonce;\n}\n\n/**\n *\n * @param backUrl\n * @param provider\n * @param prompt\n * @param loginHint\n * @param otpLoginHint\n * @param tenant\n */\nexport const doLogin = (\n backUrl = null,\n provider = null,\n prompt = null,\n loginHint = null,\n otpLoginHint = null,\n tenant = null\n) => {\n let url = getAuthUrl(backUrl, prompt, null, provider, loginHint, otpLoginHint, tenant);\n let location = getCurrentLocation()\n location.replace(url.toString());\n}\n\n/**\n *\n * @param backUrl\n * @param loginHint\n * @param otpLoginHint\n */\nexport const doLoginBasicLogin = (backUrl = null, loginHint = null, otpLoginHint = null) => {\n doLogin(backUrl, null, null, loginHint, otpLoginHint);\n}\n\nconst createPKCECodes = () => {\n const codeVerifier = base64URLEncode(getRandomBytes(64))\n const codeChallenge = getSHA256(codeVerifier, 'Base64url')\n const createdAt = new Date()\n const codePair = {\n codeVerifier,\n codeChallenge,\n createdAt\n }\n return codePair\n}\n\n/**\n\n * @param code\n * @param backUrl\n * @param backUrlParamName\n * @returns {Promise<{access_token: *, refresh_token: *, id_token: *, expires_in: *, error: *, error_description: *}>}\n */\nexport const emitAccessToken = async (code, backUrl = null, backUrlParamName = BACK_ULR_PARAM_NAME) => {\n\n let baseUrl = getOAuth2IDPBaseUrl();\n let oauth2ClientId = getOAuth2ClientId();\n let redirectUri = getAuthCallback();\n let pkce = JSON.parse(getFromLocalStorage(PKCE, true));\n\n if (!pkce)\n throw Error(AUTH_ERROR_MISSING_PKCE_PARAM);\n\n if (backUrl != null)\n redirectUri += `?${backUrlParamName}=${encodeURIComponent(backUrl)}`;\n\n const payload = {\n 'code': code,\n 'grant_type': 'authorization_code',\n 'code_verifier': pkce.codeVerifier,\n \"client_id\": encodeURI(oauth2ClientId),\n \"redirect_uri\": encodeURI(redirectUri)\n };\n\n try {\n //const response = await http.post(`${baseUrl}/oauth2/token`, payload);\n //const {body: {access_token, refresh_token, id_token, expires_in}} = response;\n const response = await fetch(`${baseUrl}/oauth2/token`, {\n method: 'POST',\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(payload)\n }).catch(function (error) {\n console.log('Request failed:', error.message);\n });\n const json = await response.json();\n let {access_token, refresh_token, id_token, expires_in, error, error_description} = json;\n return {access_token, refresh_token, id_token, expires_in, error, error_description}\n } catch (err) {\n console.log(err);\n }\n};\n\nexport const MAX_RETRIES = 5;\nexport const BACKOFF_BASE_MS = 1000;\nexport const REFRESH_TOKEN_FETCH_TIMEOUT_MS = 10000;\n\nexport const retryWithBackoff = async (fn, maxRetries = MAX_RETRIES, baseDelayMs = BACKOFF_BASE_MS) => {\n for (let attempt = 0; attempt < maxRetries; attempt++) {\n try {\n return await fn();\n } catch (err) {\n // only retry transient network/server errors — everything else fails fast\n const isRetryable = err.message && err.message.startsWith(AUTH_ERROR_REFRESH_TOKEN_NETWORK_ERROR);\n if (!isRetryable || attempt === maxRetries - 1) {\n throw err;\n }\n const delay = baseDelayMs * Math.pow(2, attempt);\n console.log(`retryWithBackoff retry ${attempt + 1}/${maxRetries} in ${delay}ms`);\n await new Promise(resolve => setTimeout(resolve, delay));\n }\n }\n};\n\nconst processRefreshToken = async (flow, refreshToken) => {\n\n if (flow === RESPONSE_TYPE_CODE && useOAuth2RefreshToken()) {\n if (!refreshToken) {\n clearAuthInfo();\n throw Error(AUTH_ERROR_MISSING_REFRESH_TOKEN);\n }\n\n let response = await retryWithBackoff(() => refreshAccessToken(refreshToken));\n let {access_token, expires_in, refresh_token, id_token} = response;\n if (typeof refresh_token === 'undefined') {\n refresh_token = null; // not using rotate policy\n }\n storeAuthInfo(access_token, expires_in, refresh_token, id_token);\n return access_token;\n }\n clearAuthInfo();\n throw Error(AUTH_ERROR_ACCESS_TOKEN_EXPIRED);\n}\n\n/**\n * @returns {Promise<*>}\n * @private\n */\nconst _getAccessToken = async () => {\n console.log(`openstack-uicore-foundation::Security::methods::_getAccessToken`);\n let authInfo = getAuthInfo();\n\n if (!authInfo) {\n console.log(`openstack-uicore-foundation::Security::methods::_getAccessToken AUTH_ERROR_MISSING_AUTH_INFO`);\n throw Error(AUTH_ERROR_MISSING_AUTH_INFO);\n }\n\n let {accessToken, expiresIn, accessTokenUpdatedAt, refreshToken} = authInfo;\n let flow = getOAuth2Flow();\n // check lifetime\n const now = moment().unix();\n let timeElapsedSecs = (now - accessTokenUpdatedAt);\n\n expiresIn = (expiresIn - ACCESS_TOKEN_SKEW_TIME);\n console.log(`openstack-uicore-foundation::Security::methods::_getAccessToken now ${now} accessTokenUpdatedAt ${accessTokenUpdatedAt} expiresIn ${expiresIn} timeElapsedSecs ${timeElapsedSecs}`)\n if (timeElapsedSecs >= expiresIn || accessToken == null) {\n console.log(`openstack-uicore-foundation::Security::methods::_getAccessToken access token expired, refreshing it ...`);\n accessToken = await processRefreshToken(flow, refreshToken);\n }\n return accessToken;\n}\n\n/**\n * Optional resolver for getAccessToken, set via setAccessTokenResolver. When\n * present, getAccessToken delegates to it; otherwise the built-in flow runs.\n * Pass a non-function (or nothing) to reset to the built-in.\n *\n * The slot lives on globalThis under a Symbol.for key so every copy of this\n * module shares it: bundles that inlined methods.js, nested installs of the\n * package, and symlinked dev installs all read the same registry entry.\n */\nconst ACCESS_TOKEN_RESOLVER_KEY = Symbol.for('openstack-uicore-foundation.accessTokenResolver');\n\nexport const setAccessTokenResolver = (resolver) => {\n globalThis[ACCESS_TOKEN_RESOLVER_KEY] = typeof resolver === 'function' ? resolver : null;\n};\n\n/**\n * @returns {Promise<*|undefined>}\n */\nexport const getAccessToken = async () => {\n const resolveAccessToken = globalThis[ACCESS_TOKEN_RESOLVER_KEY];\n if (resolveAccessToken) return resolveAccessToken();\n\n if (typeof navigator !== 'undefined' && navigator.locks) {\n return await navigator.locks.request(GET_TOKEN_SILENTLY_LOCK_KEY, async lock => {\n console.log(`openstack-uicore-foundation::Security::methods::getAccessToken web lock api`, lock);\n return await _getAccessToken();\n });\n } else {\n if (\n await retryPromise(\n () => Lock.acquireLock(GET_TOKEN_SILENTLY_LOCK_KEY, GET_TOKEN_SILENTLY_LOCK_KEY_TIMEOUT),\n 10\n )\n ) {\n try {\n return await _getAccessToken();\n } finally {\n await Lock.releaseLock(GET_TOKEN_SILENTLY_LOCK_KEY);\n }\n } else {\n // error on locking\n throw Error(AUTH_ERROR_LOCK_ACQUIRE_ERROR);\n }\n }\n}\n\n/**\n * @private\n */\nconst _clearAccessToken = () => {\n console.log(`openstack-uicore-foundation::Security::methods::_clearAccessToken`);\n\n let authInfo = getAuthInfo();\n\n if (!authInfo) {\n console.log(`openstack-uicore-foundation::Security::methods::_clearAccessToken AUTH_ERROR_MISSING_AUTH_INFO`);\n throw Error(AUTH_ERROR_MISSING_AUTH_INFO);\n }\n\n let {accessToken, expiresIn, accessTokenUpdatedAt, refreshToken} = authInfo;\n\n storeAuthInfo(null, 0, refreshToken)\n}\n\nexport const clearAccessToken = async () => {\n // see https://developer.mozilla.org/en-US/docs/Web/API/Web_Locks_API\n if (typeof navigator !== 'undefined' && navigator.locks) {\n await navigator.locks.request(GET_TOKEN_SILENTLY_LOCK_KEY, async lock => {\n console.log(`openstack-uicore-foundation::Security::methods::clearAccessToken web lock api`, lock);\n _clearAccessToken();\n });\n } else {\n if (\n await retryPromise(\n () => Lock.acquireLock(GET_TOKEN_SILENTLY_LOCK_KEY, GET_TOKEN_SILENTLY_LOCK_KEY_TIMEOUT),\n 10\n )\n ) {\n try {\n _clearAccessToken();\n } finally {\n await Lock.releaseLock(GET_TOKEN_SILENTLY_LOCK_KEY);\n }\n } else {\n // error on locking\n throw Error(AUTH_ERROR_LOCK_ACQUIRE_ERROR);\n }\n }\n}\n\n\nexport const refreshAccessToken = async (refresh_token) => {\n\n let baseUrl = getOAuth2IDPBaseUrl();\n let oauth2ClientId = getOAuth2ClientId();\n\n const payload = {\n 'grant_type': 'refresh_token',\n \"client_id\": encodeURI(oauth2ClientId),\n \"refresh_token\": refresh_token\n };\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), REFRESH_TOKEN_FETCH_TIMEOUT_MS);\n\n let response;\n try {\n response = await fetch(`${baseUrl}/oauth2/token`, {\n method: 'POST',\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(payload),\n signal: controller.signal\n });\n } catch (networkError) {\n // fetch rejects on network failures (DNS, timeout, no connectivity, abort)\n console.log('refreshAccessToken network error:', networkError.message);\n throw Error(`${AUTH_ERROR_REFRESH_TOKEN_NETWORK_ERROR}: ${networkError.message}`);\n } finally {\n clearTimeout(timeoutId);\n }\n\n if (!response.ok) {\n console.log(`refreshAccessToken server error: ${response.status} - ${response.statusText}`);\n if (response.status >= 500 || response.status === 408 || response.status === 429) {\n // transient error (server error, request timeout, rate limit) — should be retried\n throw Error(`${AUTH_ERROR_REFRESH_TOKEN_NETWORK_ERROR}: ${response.status} - ${response.statusText}`);\n }\n // token is genuinely revoked — this is a real auth error\n setSessionClearingState(true);\n throw Error(`${AUTH_ERROR_REFRESH_TOKEN_REQUEST_ERROR}: ${response.status} - ${response.statusText}`);\n }\n\n let json;\n try {\n json = await response.json();\n } catch (parseError) {\n // IDP returned non-JSON (HTML error page, empty body, etc.) — treat as transient\n throw Error(`${AUTH_ERROR_REFRESH_TOKEN_NETWORK_ERROR}: invalid JSON response from IDP`);\n }\n let {access_token, refresh_token: new_refresh_token, expires_in, id_token} = json;\n // Defensively ensure we never propagate an undefined access token.\n if (!access_token) {\n setSessionClearingState(true);\n throw Error(`${AUTH_ERROR_REFRESH_TOKEN_REQUEST_ERROR}: missing access_token in refresh response`);\n }\n return {access_token, refresh_token: new_refresh_token, expires_in, id_token}\n}\n\nexport const storeAuthInfo = (accessToken, expiresIn, refreshToken = null, idToken = null) => {\n\n let formerAuthInfo = getAuthInfo();\n\n let authInfo = {\n accessToken: accessToken,\n expiresIn: expiresIn,\n accessTokenUpdatedAt: Math.floor(Date.now() / 1000),\n };\n\n if (refreshToken == null && formerAuthInfo) {\n refreshToken = formerAuthInfo.refreshToken;\n }\n\n if (idToken == null && formerAuthInfo) {\n idToken = formerAuthInfo.idToken;\n }\n\n if (refreshToken) {\n authInfo['refreshToken'] = refreshToken;\n }\n\n if (idToken) {\n authInfo[ID_TOKEN] = idToken;\n Cookies.set(ID_TOKEN, idToken, {secure: true, sameSite: 'Lax'});\n } else {\n Cookies.remove(ID_TOKEN);\n }\n\n putOnLocalStorage(AUTH_INFO, JSON.stringify(authInfo));\n}\n\nexport const getAuthInfo = () => {\n try {\n let res = getFromLocalStorage(AUTH_INFO, false)\n if (!res) return null;\n return JSON.parse(res);\n } catch (err) {\n return null;\n }\n}\n\nexport const clearAuthInfo = () => {\n if (typeof window !== 'undefined') {\n removeFromLocalStorage(AUTH_INFO);\n Cookies.remove(ID_TOKEN);\n }\n};\n\nexport const getIdToken = () => {\n if (typeof window !== 'undefined') {\n const authInfo = getAuthInfo();\n if (authInfo) {\n return authInfo.idToken;\n }\n return null;\n }\n return null;\n};\n\nexport const getOAuth2ClientId = () => {\n if (typeof window !== 'undefined') {\n return window.OAUTH2_CLIENT_ID;\n }\n return null;\n};\n\nexport const getOAuth2Flow = () => {\n if (typeof window !== 'undefined') {\n return window.OAUTH2_FLOW || \"token id_token\";\n }\n return \"token id_token\";\n}\n\nexport const useOAuth2RefreshToken = () => {\n if (typeof window !== 'undefined') {\n return new Boolean(window.OAUTH2_USE_REFRESH_TOKEN || true);\n }\n return true;\n}\n\nexport const getOAuth2IDPBaseUrl = () => {\n if (typeof window !== 'undefined') {\n return window.IDP_BASE_URL;\n }\n return null;\n};\n\nexport const getOAuth2Scopes = () => {\n if (typeof window !== 'undefined') {\n return window.SCOPES;\n }\n return null;\n};\n\nexport const initLogOut = () => {\n let location = getCurrentLocation();\n location.replace(getLogoutUrl(getIdToken()).toString());\n}\n\nexport const validateIdToken = (idToken, issuer, audience) => {\n\n let verifier = new IdTokenVerifier({\n issuer: issuer,\n audience: audience\n });\n\n let storedNonce = getFromLocalStorage(NONCE, true);\n if (!storedNonce)\n throw Error(AUTH_ERROR_MISSING_NONCE_PARAM);\n\n let jwt = verifier.decode(idToken);\n let alg = jwt.header.alg;\n let kid = jwt.header.kid;\n let aud = jwt.payload.aud;\n let iss = jwt.payload.iss;\n let exp = jwt.payload.exp;\n let nbf = jwt.payload.nbf;\n let tnonce = jwt.payload.nonce || null;\n\n return tnonce == storedNonce && aud == audience && iss == issuer;\n}\n\nexport const passwordlessStart = (params) => {\n\n let oauth2ClientId = getOAuth2ClientId();\n let scopes = getOAuth2Scopes();\n let nonce = createNonce(NONCE_LEN);\n // store nonce to check it later\n putOnLocalStorage(NONCE, nonce);\n let baseUrl = getOAuth2IDPBaseUrl();\n let url = URI(`${baseUrl}/oauth2/auth`);\n\n let payload = {\n \"response_type\": \"otp\",\n \"scope\": encodeURI(scopes),\n \"nonce\": nonce,\n \"client_id\": encodeURI(oauth2ClientId),\n \"connection\": params.connection || \"email\",\n \"send\": params.send || \"code\",\n };\n\n if (params.hasOwnProperty('email')) {\n payload[\"email\"] = encodeURIComponent(params.email);\n }\n\n if (params.hasOwnProperty('phone_number')) {\n payload[\"phone_number\"] = encodeURIComponent(params.phone_number);\n }\n\n if (params.hasOwnProperty('redirect_uri')) {\n payload[\"redirect_uri\"] = encodeURIComponent(params.redirect_uri);\n }\n\n let req = http.post(url.toString());\n\n return req.send(payload).then((res) => {\n let json = res.body;\n return Promise.resolve({response: json});\n }).catch((err) => {\n return Promise.reject(err);\n });\n\n}\n\nexport const passwordlessLogin = (params) => (dispatch) => {\n\n let oauth2ClientId = getOAuth2ClientId();\n let scopes = getOAuth2Scopes();\n let baseUrl = getOAuth2IDPBaseUrl();\n let url = URI(`${baseUrl}/oauth2/token`);\n\n if (!params.hasOwnProperty(\"otp\")) {\n throw Error(AUTH_ERROR_MISSING_OTP_PARAM);\n }\n\n let payload = {\n \"grant_type\": \"passwordless\",\n \"connection\": params.connection || \"email\",\n \"scope\": encodeURI(scopes),\n \"client_id\": encodeURI(oauth2ClientId),\n \"otp\": params.otp\n };\n\n if (params.hasOwnProperty('email')) {\n payload[\"email\"] = encodeURIComponent(params.email);\n }\n\n if (params.hasOwnProperty('phone_number')) {\n payload[\"phone_number\"] = encodeURIComponent(params.phone_number);\n }\n\n let req = http.post(url.toString());\n\n return req.send(payload).then((res) => {\n try {\n // now we got token\n let json = res.body;\n let {access_token, expires_in, refresh_token, id_token} = json;\n\n if (typeof refresh_token === 'undefined') {\n refresh_token = null; // not using rotate policy\n }\n\n if (typeof id_token === 'undefined') {\n id_token = null; // not using rotate policy\n }\n\n // verify id token\n\n if (id_token) {\n if (!validateIdToken(id_token, baseUrl, oauth2ClientId)) {\n throw Error(AUTH_ERROR_ID_TOKEN_INVALID);\n }\n }\n\n storeAuthInfo(access_token, expires_in, refresh_token, id_token);\n\n if (dispatch) {\n dispatch({\n type: SET_LOGGED_USER,\n payload: {sessionState: null}\n });\n }\n\n return Promise.resolve({response: json});\n } catch (e) {\n console.log(e);\n return Promise.reject(e);\n }\n }).catch((err) => {\n return Promise.reject(err);\n });\n}\n\nexport const isIdTokenAlive = (nowEpoch = null) => () => {\n\n if (!nowEpoch) {\n nowEpoch = Math.floor(Date.now() / 1000);\n }\n\n const idToken = getIdToken();\n if (!idToken)\n throw Error('Id Token not set.');\n\n const issuer = getOAuth2IDPBaseUrl();\n const audience = getOAuth2ClientId();\n\n let verifier = new IdTokenVerifier({\n issuer: issuer,\n audience: audience\n });\n\n const jwt = verifier.decode(idToken);\n const exp = jwt.payload.exp;\n\n // check life time\n return exp - (nowEpoch + ACCESS_TOKEN_SKEW_TIME) > 0;\n}\n","/**\n * Copyright 2017 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 flanguage governing permissions and\n * limitations under the License.\n **/\n\nimport request from 'superagent/lib/client';\nimport URI from \"urijs\";\nURI.escapeQuerySpace = false;\n\nlet http = request;\nimport Swal from 'sweetalert2';\nimport T from \"i18n-react/dist/i18n-react\";\nimport { isClearingSessionState, setSessionClearingState, getCurrentPathName } from './methods';\nimport { CLEAR_SESSION_STATE } from '../components/security/actions';\nimport { doLogin, initLogOut } from '../components/security/methods';\n\nexport const GENERIC_ERROR = \"Yikes. Something seems to be broken. Our web team has been notified, and we apologize for the inconvenience.\";\nexport const RESET_LOADING = 'RESET_LOADING';\nexport const START_LOADING = 'START_LOADING';\nexport const STOP_LOADING = 'STOP_LOADING';\nexport const VALIDATE = 'VALIDATE';\nexport const CLEAR_MESSAGE = 'CLEAR_MESSAGE';\nexport const SHOW_MESSAGE = 'SHOW_MESSAGE';\n\nexport const createAction = type => payload => ({\n type,\n payload\n});\n\nexport const resetLoading = createAction(RESET_LOADING);\nexport const startLoading = createAction(START_LOADING);\nexport const stopLoading = createAction(STOP_LOADING);\n\nconst xhrs = {};\nconst etagCache = {};\n\nconst cancel = (key) => {\n if(xhrs[key]) {\n xhrs[key].abort();\n console.log(`aborted request ${key}`);\n delete xhrs[key];\n }\n}\n\nconst schedule = (key, req) => {\n // console.log(`scheduling ${key}`);\n xhrs[key] = req;\n};\n\nconst isObjectEmpty = (obj) => {\n return Object.keys(obj).length === 0 && obj.constructor === Object ;\n}\n\nconst buildNotifyHandlerPayload = (httpCode, title, content, type) => ({ httpCode, title, html: content, type });\nconst buildNotifyHandlerErrorPayload = (httpCode, title, content) => buildNotifyHandlerPayload(httpCode, title, content, \"error\");\nconst buildNotifyHandlerWarningPayload = (httpCode, title, content) => buildNotifyHandlerPayload(httpCode, title, content, \"warning\");\n\nconst initLogin = () => (dispatch) => {\n const currentLocation = getCurrentPathName();\n const clearingSessionState = isClearingSessionState();\n dispatch({\n type: CLEAR_SESSION_STATE,\n payload: {}\n });\n if (!clearingSessionState) {\n setSessionClearingState(true);\n console.log(\"authErrorHandler 401 - re login\");\n doLogin(currentLocation);\n }\n};\n\nconst normalizeFormDataPayload = (req, formData) => {\n if(!isObjectEmpty(formData)) {\n Object.keys(formData).forEach(function (key) {\n let value = formData[key];\n if (Array.isArray(value)) {\n value.forEach(item => {\n req.field(`${key}[]`, item);\n });\n } else {\n req.field(key, value);\n }\n });\n }\n};\n\nexport const authErrorHandler = (\n err,\n res,\n notifyErrorHandler = showMessage\n) => (dispatch) => {\n\n const code = err.status;\n let msg = \"\";\n let payload, callback;\n\n dispatch(stopLoading());\n\n switch (code) {\n case 401:\n if (notifyErrorHandler !== showMessage) {\n payload = buildNotifyHandlerErrorPayload(code, \"ERROR\", T.translate(\"errors.user_not_auth\"));\n callback = () => dispatch(initLogin());\n } else {\n dispatch(initLogin());\n }\n break;\n case 403:\n payload = buildNotifyHandlerErrorPayload(code, \"ERROR\", T.translate(\"errors.user_not_authz\"));\n callback = initLogOut;\n break;\n case 404:\n msg = err.response.body?.message || err.response.error?.message || err.message;\n if (err.response.body?.errors?.length) {\n msg += `
${err.response.body.errors.join(\"
\")}`;\n }\n payload = buildNotifyHandlerWarningPayload(code, \"Not Found\", msg);\n break;\n case 412:\n for (const [key, value] of Object.entries(err.response.body.errors)) {\n msg += isNaN(key) ? `${key}: ` : \"\";\n msg += `${value}
`;\n }\n dispatch({\n type: VALIDATE,\n payload: { errors: err.response.body.errors }\n });\n payload = buildNotifyHandlerWarningPayload(code, \"Validation error\", msg);\n break;\n default:\n payload = buildNotifyHandlerErrorPayload(code, \"ERROR\", T.translate(\"errors.server_error\"));\n }\n\n if (payload)\n dispatch(notifyErrorHandler(payload, callback));\n}\n\nexport const getRequest =(\n requestActionCreator,\n receiveActionCreator,\n endpoint,\n errorHandler = defaultErrorHandler,\n requestActionPayload = {},\n useEtag = false\n) => (params = {}) => (dispatch, state) => {\n\n let url = URI(endpoint);\n let key = url.toString();\n\n if(!isObjectEmpty(params)) {\n // remove the access token\n const { access_token: _, ...newParams} = params;\n // and generate new key\n key = url.query(newParams).toString();\n url = url.query(params);\n }\n\n if(requestActionCreator && typeof requestActionCreator === 'function')\n dispatch(requestActionCreator(requestActionPayload));\n\n cancel(key);\n\n return new Promise((resolve, reject) => {\n let req = http.get(url.toString());\n if(useEtag && etagCache.hasOwnProperty(key)){\n const { etag } = etagCache[key];\n if(etag){\n req.set('If-None-Match', etag)\n }\n }\n\n req.timeout({\n response: 60000,\n deadline: 60000,\n })\n .end(responseHandler(dispatch, state, receiveActionCreator, errorHandler, resolve, reject, key, useEtag))\n\n schedule(key, req);\n });\n};\n\nexport const putRequest = (\n requestActionCreator,\n receiveActionCreator,\n endpoint,\n payload,\n errorHandler = defaultErrorHandler,\n requestActionPayload = {}\n) => (params = {}) => ( dispatch, state) => {\n\n let url = URI(endpoint);\n\n if(!isObjectEmpty(params))\n url = url.query(params);\n\n if(requestActionCreator && typeof requestActionCreator === 'function')\n dispatch(requestActionCreator(requestActionPayload));\n\n return new Promise((resolve, reject) => {\n if(payload == null)\n payload = {};\n http.put(url.toString())\n .send(payload)\n .end(responseHandler(dispatch, state, receiveActionCreator, errorHandler, resolve, reject))\n });\n};\n\nexport const deleteRequest = (\n requestActionCreator,\n receiveActionCreator,\n endpoint,\n payload,\n errorHandler = defaultErrorHandler,\n requestActionPayload = {}\n) => (params) => (dispatch, state) => {\n let url = URI(endpoint);\n\n if(!isObjectEmpty(params))\n url = url.query(params);\n\n if(requestActionCreator && typeof requestActionCreator === 'function')\n dispatch(requestActionCreator(requestActionPayload));\n\n return new Promise((resolve, reject) => {\n if(payload == null)\n payload = {};\n\n http.delete(url)\n .send(payload)\n .end(responseHandler(dispatch, state, receiveActionCreator, errorHandler, resolve, reject));\n });\n};\n\nexport const postRequest = (\n requestActionCreator,\n receiveActionCreator,\n endpoint,\n payload,\n errorHandler = defaultErrorHandler,\n requestActionPayload = {}\n) => (params = {}) => (dispatch, state) => {\n\n let url = URI(endpoint);\n\n if(!isObjectEmpty(params))\n url = url.query(params);\n\n if(requestActionCreator && typeof requestActionCreator === 'function')\n dispatch(requestActionCreator(requestActionPayload));\n\n return new Promise((resolve, reject) => {\n\n let request = http.post(url);\n\n if(payload != null)\n request.send(payload);\n else // to be a simple CORS request\n request.set('Content-Type', 'text/plain');\n\n request.end(responseHandler(dispatch, state, receiveActionCreator, errorHandler, resolve, reject));\n });\n};\n\nexport const postFile = (\n requestActionCreator,\n receiveActionCreator,\n endpoint,\n file,\n fileMetadata = {},\n errorHandler = defaultErrorHandler,\n requestActionPayload = {}\n) => (params = {}) => (dispatch, state) => {\n\n let url = URI(endpoint);\n\n if(!isObjectEmpty(params))\n url = url.query(params);\n\n if(requestActionCreator && typeof requestActionCreator === 'function')\n dispatch(requestActionCreator(requestActionPayload));\n\n return new Promise((resolve, reject) => {\n\n const req = http.post(url)\n .attach('file', file);\n\n normalizeFormDataPayload(req, fileMetadata);\n\n req.end(responseHandler(dispatch, state, receiveActionCreator, errorHandler, resolve, reject));\n });\n};\n\nexport const putFile = (\n requestActionCreator,\n receiveActionCreator,\n endpoint,\n file = null,\n fileMetadata = {},\n errorHandler = defaultErrorHandler,\n requestActionPayload = {}\n) => (params = {}) => (dispatch, state) => {\n\n let url = URI(endpoint);\n\n if(!isObjectEmpty(params))\n url = url.query(params);\n\n if(requestActionCreator && typeof requestActionCreator === 'function')\n dispatch(requestActionCreator(requestActionPayload));\n\n return new Promise((resolve, reject) => {\n\n const req = http.put(url);\n\n if(file != null){\n req.attach('file', file);\n }\n\n normalizeFormDataPayload(req, fileMetadata)\n\n req.end(responseHandler(dispatch, state, receiveActionCreator, errorHandler, resolve, reject));\n });\n};\n\nexport const defaultErrorHandler = (err, res) => (dispatch) => {\n let body = res.body;\n let text = '';\n if(body instanceof Object){\n if(body.hasOwnProperty('message'))\n text = body.message;\n }\n Swal.fire(res.statusText, text, \"error\");\n}\n\nconst byLowerCase = toFind => value => toLowerCase(value) === toFind;\nconst toLowerCase = value => value.toLowerCase();\nconst getKeys = headers => Object.keys(headers);\n\nexport const getHeaderCaseInsensitive = (headerName, headers = {}) => {\n const key = getKeys(headers).find(byLowerCase(headerName));\n return key ? headers[key] : undefined;\n};\n\nexport const responseHandler = ( dispatch, state, receiveActionCreator, errorHandler, resolve, reject, key = null, useEtag= false ) =>\n\n (err, res) => {\n\n if (err || !res.ok) {\n let code = err.status;\n\n if(code === 304 && etagCache.hasOwnProperty(key) && useEtag){\n const { body } = etagCache[key];\n\n if(typeof receiveActionCreator === 'function') {\n dispatch(receiveActionCreator({response: body}));\n return resolve({response: body});\n }\n\n dispatch(receiveActionCreator);\n return resolve({response: body});\n }\n if(errorHandler) {\n errorHandler(err, res)(dispatch, state);\n }\n return reject({ err, res, dispatch, state })\n }\n\n let json = res.body;\n\n if(useEtag) {\n const responseETAG = getHeaderCaseInsensitive('etag', res.headers);\n if (responseETAG) {\n etagCache[key] = { etag: responseETAG, body: json};\n }\n }\n\n if(typeof receiveActionCreator === 'function') {\n dispatch(receiveActionCreator({response: json}));\n return resolve({response: json});\n }\n dispatch(receiveActionCreator);\n return resolve({response: json});\n}\n\n\nexport const fetchErrorHandler = (response) => {\n let code = response.status;\n let msg = response.statusText;\n\n switch (code) {\n case 403:\n Swal.fire(\"ERROR\", T.translate(\"errors.user_not_authz\"), \"warning\");\n break;\n case 401:\n Swal.fire(\"ERROR\", T.translate(\"errors.session_expired\"), \"error\");\n break;\n case 412:\n Swal.fire(\"ERROR\", msg, \"warning\");\n case 500:\n Swal.fire(\"ERROR\", T.translate(\"errors.server_error\"), \"error\");\n }\n}\n\nexport const fetchResponseHandler = (response) => {\n if (!response.ok) {\n throw response;\n } else {\n return response.json();\n }\n}\n\nexport const showMessage = (settings, callback = null) => (dispatch) => {\n dispatch(stopLoading());\n Swal.fire(settings).then((result) => {\n if (result.value && typeof callback === 'function') {\n callback();\n }\n });\n}\n\nexport const showSuccessMessage = (html) => (dispatch) => {\n dispatch(stopLoading());\n Swal.fire({\n title: T.translate(\"general.done\"),\n html: html,\n type: 'success'\n });\n}\n\nexport const downloadFileByContent = (filename, content, mime) => {\n let link = document.createElement('a');\n link.textContent = 'download';\n link.download = filename;\n link.href = `data:${mime},${encodeURIComponent(content)}`\n document.body.appendChild(link); // Required for FF\n link.click();\n document.body.removeChild(link);\n}\n\nexport const getCSV = (endpoint, params, filename, header = null) => (dispatch) => {\n\n let url = URI(endpoint);\n\n if(!isObjectEmpty(params))\n url = url.query(params);\n\n dispatch(startLoading());\n\n return fetch(url.toString())\n .then((response) => {\n if (!response.ok) {\n throw response;\n } else {\n return response.text();\n }\n })\n .then((csv) => {\n dispatch(stopLoading());\n\n if (header) {\n csv = header + '\\r\\r' + csv;\n }\n downloadFileByContent(filename, csv, 'text/csv;charset=utf-8');\n })\n .catch(fetchErrorHandler);\n};\n\nexport const getRawCSV = (endpoint, params, header = null) => {\n\n let url = URI(endpoint);\n\n if(!isObjectEmpty(params))\n url = url.query(params);\n\n return fetch(url.toString())\n .then((response) => {\n if (!response.ok) {\n throw response;\n } else {\n return response.text();\n }\n })\n .then((csv) => {\n if (header) {\n csv = header + '\\r\\r' + csv;\n }\n\n return csv;\n })\n .catch(fetchErrorHandler);\n};\n\nexport const escapeFilterValue = (value) => {\n value = String(value);\n // escape backslash first so you don't accidentally break your own escapes\n value = value.replace(/\\\\/g, \"\\\\\\\\\");\n value = value.replace(/,/g, \"\\\\,\");\n value = value.replace(/;/g, \"\\\\;\");\n // especial case for literal +\n value = value.replace(/\\+/g, \"%2B\");\n return value;\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"spark-md5\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"crypto-js/sha256\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"crypto-js/enc-base64url\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"crypto-js/enc-hex\");","import SparkMD5 from \"spark-md5\";\n\n// limit of Crypto.getRandomValues()\n// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues\nconst MAX_BYTES = 65536\n// Node supports requesting up to this number of bytes\n// https://github.com/nodejs/node/blob/master/lib/internal/crypto/random.js#L48\nconst MAX_UINT32 = 4294967295\nconst crypto = typeof window !== 'undefined' ? (window.crypto || window.msCrypto) : null;\nimport sha256 from 'crypto-js/sha256';\nimport Base64url from 'crypto-js/enc-base64url'\nimport Hex from 'crypto-js/enc-hex'\nexport const getRandomBytes = (size) => {\n // phantomjs needs to throw\n if (size > MAX_UINT32) throw new RangeError('requested too many random bytes')\n const bytes = Buffer.allocUnsafe(size)\n if(!crypto) return a;\n if (size > 0) { // getRandomValues fails on IE if size == 0\n if (size > MAX_BYTES) { // this is the max bytes crypto.getRandomValues\n // can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues\n for (let generated = 0; generated < size; generated += MAX_BYTES) {\n // buffer.slice automatically checks if the end is past the end of\n // the buffer so we don't have to here\n crypto.getRandomValues(bytes.slice(generated, generated + MAX_BYTES))\n }\n } else {\n crypto.getRandomValues(bytes)\n }\n }\n return bytes\n}\n\nexport const getSHA256 = (message, format = 'hex') => {\n\n let f = Hex;\n if(format === 'Base64url')\n f = Base64url;\n\n return sha256(message).toString(f);\n}\n\nexport const getMD5 = (file) => {\n return new Promise((resolve, reject) => {\n const chunkSize = 2 * 1024 * 1024; // 2 MB by chunk\n const spark = new SparkMD5.ArrayBuffer();\n const fileReader = new FileReader();\n let cursor = 0;\n\n fileReader.onload = e => {\n spark.append(e.target.result); \n cursor += chunkSize;\n\n if (cursor < file.size) {\n readNextChunk();\n } else {\n resolve(spark.end()); // final MD5\n }\n };\n\n fileReader.onerror = () => reject(\"Error reading the file\");\n\n function readNextChunk() {\n const slice = file.slice(cursor, cursor + chunkSize);\n fileReader.readAsArrayBuffer(slice);\n }\n\n readNextChunk();\n });\n}","/**\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","module.exports = require(\"@babel/runtime/helpers/defineProperty\");","module.exports = require(\"@babel/runtime/helpers/objectWithoutProperties\");","module.exports = require(\"i18n-react/dist/i18n-react\");","module.exports = require(\"idtoken-verifier\");","module.exports = require(\"moment-timezone\");","module.exports = require(\"prop-types\");","module.exports = require(\"react\");","module.exports = require(\"superagent/lib/client\");","module.exports = require(\"sweetalert2\");","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};","/**\n * Copyright 2020 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 http from 'superagent/lib/client';\nimport {getAccessToken} from './security/methods';\n\n// SCOPES NEEDED\n// %s/me/summits/events/leave\n// %s/me/summits/events/enter\n\nclass AttendanceTracker extends React.Component {\n\n componentDidMount() {\n const {trackEnter, onBeforeUnload} = this;\n\n // track enter\n trackEnter();\n\n if (typeof window !== 'undefined') {\n window.addEventListener(\"beforeunload\", onBeforeUnload);\n }\n }\n\n componentWillUnmount() {\n const {trackLeave, onBeforeUnload} = this;\n\n // track leave\n trackLeave();\n\n if (typeof window !== 'undefined') {\n window.removeEventListener(\"beforeunload\", onBeforeUnload);\n }\n }\n\n trackEnter = async () => {\n const {apiBaseUrl, summitId, sourceId, sourceName} = this.props;\n const location = this.getLocation();\n try{\n const accessToken = await getAccessToken();\n http.put(`${apiBaseUrl}/api/v1/summits/${summitId}/metrics/enter`)\n .send({access_token: accessToken, type: sourceName, source_id: sourceId, location: location})\n .end(() => console.log('ENTER PAGE'));\n }\n catch (e){\n console.log(e);\n }\n };\n\n trackLeave = async () => {\n const {apiBaseUrl, summitId, sourceId, sourceName} = this.props;\n const location = this.getLocation();\n try {\n const accessToken = await getAccessToken();\n\n http.post(`${apiBaseUrl}/api/v1/summits/${summitId}/metrics/leave`)\n .send({access_token: accessToken, type: sourceName, source_id: sourceId, location: location})\n .end(() => console.log('LEFT PAGE'));\n }\n catch (e){\n console.log(e);\n }\n };\n\n onBeforeUnload = async () => {\n const {apiBaseUrl, summitId, sourceId, sourceName} = this.props;\n const location = this.getLocation();\n try {\n const accessToken = await getAccessToken();\n navigator.sendBeacon(\n `${apiBaseUrl}/api/v1/summits/${summitId}/metrics/leave?access_token=${accessToken}&type=${sourceName}&source_id=${sourceId}&location=${location}`, {});\n return undefined;\n }\n catch (e){\n console.log(e);\n }\n };\n\n getLocation = () => {\n if (typeof window !== 'undefined') {\n return encodeURIComponent(window.location.href);\n }\n return '';\n };\n\n render() {\n return null;\n }\n}\n\nAttendanceTracker.propTypes = {\n sourceName: PropTypes.string,\n sourceId: PropTypes.number,\n summitId: PropTypes.number.isRequired,\n apiBaseUrl: PropTypes.string.isRequired\n};\n\nAttendanceTracker.defaultProps = {\n sourceId: 0,\n sourceName: 'GENERAL'\n};\n\nexport default AttendanceTracker;\n\n"],"names":["root","factory","exports","module","define","amd","this","AUTH_ERROR_MISSING_AUTH_INFO","AUTH_ERROR_MISSING_REFRESH_TOKEN","AUTH_ERROR_ACCESS_TOKEN_EXPIRED","AUTH_ERROR_LOCK_ACQUIRE_ERROR","AUTH_ERROR_REFRESH_TOKEN_REQUEST_ERROR","AUTH_ERROR_REFRESH_TOKEN_NETWORK_ERROR","require","Lock","SuperTokensLock","GET_TOKEN_SILENTLY_LOCK_KEY","RESPONSE_TYPE_CODE","AUTH_INFO","ID_TOKEN","processRefreshToken","async","flow","refreshToken","useOAuth2RefreshToken","clearAuthInfo","Error","response","fn","maxRetries","baseDelayMs","attempt","err","message","startsWith","delay","Math","pow","console","log","Promise","resolve","setTimeout","retryWithBackoff","refreshAccessToken","access_token","expires_in","refresh_token","id_token","storeAuthInfo","_getAccessToken","authInfo","getAuthInfo","accessToken","expiresIn","accessTokenUpdatedAt","getOAuth2Flow","now","moment","unix","timeElapsedSecs","ACCESS_TOKEN_RESOLVER_KEY","Symbol","for","getAccessToken","resolveAccessToken","globalThis","navigator","locks","request","lock","retryPromise","acquireLock","releaseLock","baseUrl","getOAuth2IDPBaseUrl","oauth2ClientId","getOAuth2ClientId","payload","encodeURI","controller","AbortController","timeoutId","abort","json","fetch","method","headers","body","JSON","stringify","signal","networkError","clearTimeout","ok","status","statusText","setSessionClearingState","parseError","new_refresh_token","idToken","formerAuthInfo","floor","Date","Cookies","secure","sameSite","putOnLocalStorage","res","getFromLocalStorage","parse","window","removeFromLocalStorage","OAUTH2_CLIENT_ID","OAUTH2_FLOW","Boolean","OAUTH2_USE_REFRESH_TOKEN","IDP_BASE_URL","URI","createAction","type","crypto","msCrypto","key","value","localStorage","setItem","removeIt","val","getItem","removeItem","clearing_session_state","cb","maxNumberOfRetries","i","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","n","getter","__esModule","d","a","definition","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","toStringTag","AttendanceTracker","React","constructor","args","_defineProperty","apiBaseUrl","summitId","sourceId","sourceName","props","location","getLocation","http","send","source_id","end","e","sendBeacon","encodeURIComponent","href","componentDidMount","trackEnter","onBeforeUnload","addEventListener","componentWillUnmount","trackLeave","removeEventListener","render","propTypes","PropTypes","isRequired","defaultProps"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/components/bulk-actions-selector.js b/lib/components/bulk-actions-selector.js new file mode 100644 index 00000000..50d8c321 --- /dev/null +++ b/lib/components/bulk-actions-selector.js @@ -0,0 +1,2 @@ +!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={6842:e=>{e.exports=require("i18n-react/dist/i18n-react")},2015:e=>{e.exports=require("react")}},t={};function o(n){var r=t[n];if(void 0!==r)return r.exports;var a=t[n]={exports:{}};return e[n](a,a.exports,o),a.exports}(()=>{o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t}})(),(()=>{o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}})(),(()=>{o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)})(),(()=>{o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}})();var n={};o.r(n),o.d(n,{default:()=>i});var r=o(2015),a=o.n(r),l=o(6842),s=o.n(l);class c extends a().Component{onPerformBulkAction(){let e=this.actionTypeSelect.value;""!==e&&this.props.onSelectedBulkAction(e)}render(){let{onSelectAll:e,bulkOptions:t,show:o}=this.props;return a().createElement("div",{className:"bulk-actions-selector-container"},o&&a().createElement("div",{className:"row"},a().createElement("div",{className:"col-md-8"},a().createElement("input",{type:"checkbox",onClick:e}),a().createElement("select",{ref:e=>{this.actionTypeSelect=e}},a().createElement("option",{value:""},s().translate("published_bulk_actions_selector.options.default")),t.map(((e,t)=>a().createElement("option",{key:t,value:e.value},e.label))))),a().createElement("div",{className:"col-md-4"},a().createElement("button",{onClick:this.onPerformBulkAction.bind(this),title:s().translate("published_bulk_actions_selector.titles.go"),className:"btn btn-default btn-sm"},a().createElement("i",{className:"fa fa-play"}," ",s().translate("published_bulk_actions_selector.buttons.go"))))))}}const i=c;return n})())); +//# sourceMappingURL=bulk-actions-selector.js.map \ No newline at end of file diff --git a/lib/components/bulk-actions-selector.js.map b/lib/components/bulk-actions-selector.js.map new file mode 100644 index 00000000..b8f9cfc3 --- /dev/null +++ b/lib/components/bulk-actions-selector.js.map @@ -0,0 +1 @@ +{"version":3,"file":"components/bulk-actions-selector.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,mCCTTH,EAAOD,QAAUK,QAAQ,6B,WCAzBJ,EAAOD,QAAUK,QAAQ,Q,GCCrBC,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBE,IAAjBD,EACH,OAAOA,EAAaT,QAGrB,IAAIC,EAASK,EAAyBE,GAAY,CAGjDR,QAAS,CAAC,GAOX,OAHAW,EAAoBH,GAAUP,EAAQA,EAAOD,QAASO,GAG/CN,EAAOD,OACf,C,MCrBAO,EAAoBK,EAAKX,IACxB,IAAIY,EAASZ,GAAUA,EAAOa,WAC7B,IAAOb,EAAiB,QACxB,IAAM,EAEP,OADAM,EAAoBQ,EAAEF,EAAQ,CAAEG,EAAGH,IAC5BA,CAAM,C,WCLdN,EAAoBQ,EAAI,CAACf,EAASiB,KACjC,IAAI,IAAIC,KAAOD,EACXV,EAAoBY,EAAEF,EAAYC,KAASX,EAAoBY,EAAEnB,EAASkB,IAC5EE,OAAOC,eAAerB,EAASkB,EAAK,CAAEI,YAAY,EAAMC,IAAKN,EAAWC,IAE1E,C,WCNDX,EAAoBY,EAAI,CAACK,EAAKC,IAAUL,OAAOM,UAAUC,eAAeC,KAAKJ,EAAKC,E,WCClFlB,EAAoBsB,EAAK7B,IACH,oBAAX8B,QAA0BA,OAAOC,aAC1CX,OAAOC,eAAerB,EAAS8B,OAAOC,YAAa,CAAEC,MAAO,WAE7DZ,OAAOC,eAAerB,EAAS,aAAc,CAAEgC,OAAO,GAAO,C,sFCW9D,MAAMC,UAA0CC,IAAAA,UAE5CC,mBAAAA,GACI,IAAIC,EAAqBhC,KAAKiC,iBAAiBL,MACrB,KAAvBI,GACHhC,KAAKkC,MAAMC,qBAAqBH,EACpC,CAEAI,MAAAA,GACI,IAAI,YAAEC,EAAW,YAAEC,EAAW,KAAEC,GAASvC,KAAKkC,MAC9C,OACIJ,IAAAA,cAAA,OAAKU,UAAU,mCACVD,GACDT,IAAAA,cAAA,OAAKU,UAAU,OACXV,IAAAA,cAAA,OAAKU,UAAU,YACXV,IAAAA,cAAA,SAAOW,KAAK,WAAWC,QAASL,IAChCP,IAAAA,cAAA,UAAQa,IAAMC,IAAa5C,KAAKiC,iBAAmBW,CAAM,GACrDd,IAAAA,cAAA,UAAQF,MAAM,IAAIiB,IAAAA,UAAY,oDAE1BP,EAAYQ,KAAI,CAACC,EAAQC,IACrBlB,IAAAA,cAAA,UAAQhB,IAAKkC,EAAKpB,MAAOmB,EAAOnB,OAAQmB,EAAOE,WAK/DnB,IAAAA,cAAA,OAAKU,UAAU,YACXV,IAAAA,cAAA,UAAQY,QAAS1C,KAAK+B,oBAAoBmB,KAAKlD,MAAOmD,MAAQN,IAAAA,UAAY,6CAA8CL,UAAU,0BAC9HV,IAAAA,cAAA,KAAGU,UAAU,cAAa,IAAOK,IAAAA,UAAY,kDAOrE,EAGJ,U","sources":["webpack://openstack-uicore-foundation/webpack/universalModuleDefinition","webpack://openstack-uicore-foundation/external commonjs \"i18n-react/dist/i18n-react\"","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/./src/components/bulk-actions-selector/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 ","module.exports = require(\"i18n-react/dist/i18n-react\");","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};","/**\n * Copyright 2017 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 T from \"i18n-react/dist/i18n-react\";\nimport './styles.less';\nclass ScheduleAdminsBulkActionsSelector extends React.Component {\n\n onPerformBulkAction(){\n let selectedBulkAction = this.actionTypeSelect.value;\n if(selectedBulkAction === '') return;\n this.props.onSelectedBulkAction(selectedBulkAction);\n }\n\n render(){\n let { onSelectAll, bulkOptions, show } = this.props;\n return (\n
\n {show &&\n
\n
\n \n \n
\n
\n \n
\n
\n }\n
\n )\n }\n}\n\nexport default ScheduleAdminsBulkActionsSelector;\n"],"names":["root","factory","exports","module","define","amd","this","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","ScheduleAdminsBulkActionsSelector","React","onPerformBulkAction","selectedBulkAction","actionTypeSelect","props","onSelectedBulkAction","render","onSelectAll","bulkOptions","show","className","type","onClick","ref","select","T","map","option","idx","label","bind","title"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/components/circle-button.js b/lib/components/circle-button.js new file mode 100644 index 00000000..52ad5000 --- /dev/null +++ b/lib/components/circle-button.js @@ -0,0 +1,2 @@ +!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={9825:e=>{e.exports=require("prop-types")},2015:e=>{e.exports=require("react")}},t={};function o(r){var n=t[r];if(void 0!==n)return n.exports;var a=t[r]={exports:{}};return e[r](a,a.exports,o),a.exports}(()=>{o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t}})(),(()=>{o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}})(),(()=>{o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)})(),(()=>{o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}})();var r={};o.r(r),o.d(r,{default:()=>f});var n=o(2015),a=o.n(n),u=o(9825),d=o.n(u);const l="pTjbvR2PI3JIAfGGYR5C",c="BnU6_vcWc8sasL8roBPA",s="yREg1belHCLDAYYfAg77",i="mFp_9X3SzjgPNXRSXiFR",p=({event:e,isScheduled:t,nowUtc:o,addToSchedule:r,removeFromSchedule:n,enterClick:u,alwaysShowEnter:d})=>{const p=((e,t)=>{const o=t>e.end_date;return e.start_date-t<1&&!o})(e,o);let f=null,m=null,y=null;const b=(t,o)=>{t.preventDefault(),t.stopPropagation(),o(e)};return p||d?(f=`${i} enter`,m="fa-sign-in",y=e=>b(e,u)):n&&r&&t?(f=`${s} added`,m="fa-check",y=e=>b(e,n)):n&&r&&(f=`${c} add`,m="fa-plus",y=e=>b(e,r)),y?a().createElement("button",{className:`${l} ${f}`,onClick:y},a().createElement("i",{className:`fa ${m}`,"aria-hidden":"true"})):null};p.propTypes={event:d().object.isRequired,nowUtc:d().number.isRequired,isScheduled:d().bool.isRequired,enterClick:d().func.isRequired,addToSchedule:d().func,removeFromSchedule:d().func,alwaysShowEnter:d().bool},p.defaultProps={addToSchedule:null,removeFromSchedule:null,alwaysShowEnter:!1};const f=p;return r})())); +//# sourceMappingURL=circle-button.js.map \ No newline at end of file diff --git a/lib/components/circle-button.js.map b/lib/components/circle-button.js.map new file mode 100644 index 00000000..822d257f --- /dev/null +++ b/lib/components/circle-button.js.map @@ -0,0 +1 @@ +{"version":3,"file":"components/circle-button.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,mCCTTH,EAAOD,QAAUK,QAAQ,a,WCAzBJ,EAAOD,QAAUK,QAAQ,Q,GCCrBC,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBE,IAAjBD,EACH,OAAOA,EAAaT,QAGrB,IAAIC,EAASK,EAAyBE,GAAY,CAGjDR,QAAS,CAAC,GAOX,OAHAW,EAAoBH,GAAUP,EAAQA,EAAOD,QAASO,GAG/CN,EAAOD,OACf,C,MCrBAO,EAAoBK,EAAKX,IACxB,IAAIY,EAASZ,GAAUA,EAAOa,WAC7B,IAAOb,EAAiB,QACxB,IAAM,EAEP,OADAM,EAAoBQ,EAAEF,EAAQ,CAAEG,EAAGH,IAC5BA,CAAM,C,WCLdN,EAAoBQ,EAAI,CAACf,EAASiB,KACjC,IAAI,IAAIC,KAAOD,EACXV,EAAoBY,EAAEF,EAAYC,KAASX,EAAoBY,EAAEnB,EAASkB,IAC5EE,OAAOC,eAAerB,EAASkB,EAAK,CAAEI,YAAY,EAAMC,IAAKN,EAAWC,IAE1E,C,WCNDX,EAAoBY,EAAI,CAACK,EAAKC,IAAUL,OAAOM,UAAUC,eAAeC,KAAKJ,EAAKC,E,WCClFlB,EAAoBsB,EAAK7B,IACH,oBAAX8B,QAA0BA,OAAOC,aAC1CX,OAAOC,eAAerB,EAAS8B,OAAOC,YAAa,CAAEC,MAAO,WAE7DZ,OAAOC,eAAerB,EAAS,aAAc,CAAEgC,OAAO,GAAO,C,sFCJ9D,QAA+B,uBAA/B,EAA4D,uBAA5D,EAA2F,uBAA3F,EAA0H,uBCuBpHC,EAAeA,EAAEC,QAAOC,cAAaC,SAAQC,gBAAeC,qBAAoBC,aAAYC,sBAE9F,MAAMC,EARKC,EAACR,EAAOE,KACnB,MAAMO,EAAWP,EAASF,EAAMU,SAEhC,OADoBV,EAAMW,WAAaT,EAAU,IAC3BO,CAAQ,EAKZD,CAAOR,EAAOE,GAChC,IAAIU,EAAc,KACdC,EAAY,KACZC,EAAU,KACd,MAAMC,EAAcA,CAACC,EAAIC,KACrBD,EAAGE,iBACHF,EAAGG,kBACHF,EAAOjB,EAAM,EAkBjB,OAdIO,GAAaD,GACbM,EAAc,GAAGQ,UACjBP,EAAY,aACZC,EAAUE,GAAMD,EAAYC,EAAIX,IACzBD,GAAsBD,GAAiBF,GAC9CW,EAAc,GAAGQ,UACjBP,EAAY,WACZC,EAAUE,GAAMD,EAAYC,EAAIZ,IACzBA,GAAsBD,IAC7BS,EAAc,GAAGQ,QACjBP,EAAY,UACZC,EAAUE,GAAMD,EAAYC,EAAIb,IAG/BW,EAIDO,IAAAA,cAAA,UAAQC,UAAW,GAAGF,KAAuBR,IAAeE,QAASA,GACjEO,IAAAA,cAAA,KAAGC,UAAW,MAAMT,IAAa,cAAY,UALhC,IAMR,EAIjBd,EAAawB,UAAY,CACrBvB,MAAOwB,IAAAA,OAAiBC,WACxBvB,OAAQsB,IAAAA,OAAiBC,WACzBxB,YAAauB,IAAAA,KAAeC,WAC5BpB,WAAYmB,IAAAA,KAAeC,WAC3BtB,cAAeqB,IAAAA,KACfpB,mBAAoBoB,IAAAA,KACpBlB,gBAAiBkB,IAAAA,MAGrBzB,EAAa2B,aAAe,CACxBvB,cAAe,KACfC,mBAAoB,KACpBE,iBAAiB,GAGrB,U","sources":["webpack://openstack-uicore-foundation/webpack/universalModuleDefinition","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/./src/components/circle-button/index.module.scss","webpack://openstack-uicore-foundation/./src/components/circle-button/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 ","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};","// extracted by mini-css-extract-plugin\nexport default {\"circleButton\":\"pTjbvR2PI3JIAfGGYR5C\",\"add\":\"BnU6_vcWc8sasL8roBPA\",\"added\":\"yREg1belHCLDAYYfAg77\",\"enter\":\"mFp_9X3SzjgPNXRSXiFR\"};","/**\n * Copyright 2020 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';\n\nimport styles from './index.module.scss';\n\nconst isLive = (event, nowUtc) => {\n const hasEnded = nowUtc > event.end_date;\n const hasStarted = (event.start_date - nowUtc) < 1;\n return hasStarted && !hasEnded;\n};\n\nconst CircleButton = ({event, isScheduled, nowUtc, addToSchedule, removeFromSchedule, enterClick, alwaysShowEnter}) => {\n\n const isLiveNow = isLive(event, nowUtc);\n let buttonClass = null;\n let iconClass = null;\n let onClick = null;\n const handleClick = (ev, action) => {\n ev.preventDefault();\n ev.stopPropagation();\n action(event);\n };\n\n\n if (isLiveNow || alwaysShowEnter) {\n buttonClass = `${styles.enter} enter`;\n iconClass = 'fa-sign-in';\n onClick = ev => handleClick(ev, enterClick);\n } else if (removeFromSchedule && addToSchedule && isScheduled) {\n buttonClass = `${styles.added} added`;\n iconClass = 'fa-check';\n onClick = ev => handleClick(ev, removeFromSchedule);\n } else if (removeFromSchedule && addToSchedule) {\n buttonClass = `${styles.add} add`;\n iconClass = 'fa-plus';\n onClick = ev => handleClick(ev, addToSchedule);\n }\n\n if (!onClick) return null;\n\n\n return (\n \n );\n};\n\nCircleButton.propTypes = {\n event: PropTypes.object.isRequired,\n nowUtc: PropTypes.number.isRequired,\n isScheduled: PropTypes.bool.isRequired,\n enterClick: PropTypes.func.isRequired,\n addToSchedule: PropTypes.func,\n removeFromSchedule: PropTypes.func,\n alwaysShowEnter: PropTypes.bool,\n};\n\nCircleButton.defaultProps = {\n addToSchedule: null,\n removeFromSchedule: null,\n alwaysShowEnter: false\n};\n\nexport default CircleButton;\n"],"names":["root","factory","exports","module","define","amd","this","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","CircleButton","event","isScheduled","nowUtc","addToSchedule","removeFromSchedule","enterClick","alwaysShowEnter","isLiveNow","isLive","hasEnded","end_date","start_date","buttonClass","iconClass","onClick","handleClick","ev","action","preventDefault","stopPropagation","styles","React","className","propTypes","PropTypes","isRequired","defaultProps"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/components/clock-context.js b/lib/components/clock-context.js new file mode 100644 index 00000000..b97ff520 --- /dev/null +++ b/lib/components/clock-context.js @@ -0,0 +1,2 @@ +!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={2593:(e,t,s)=>{s.d(t,{default:()=>p});var i=s(1116),r=s.n(i),n=s(2015),o=s.n(n),a=s(5812),l=s.n(a),h=s(8311),c=s(9558);class u extends o().Component{constructor(e){super(e),r()(this,"processServerTimeResponse",((e,t)=>{const s=l()().unix();let i=s;e&&(i=e.timestamp+(s-t)),this._isMounted&&(console.log(`Clock::processServerTimeResponse setting timestamp ${i}`),this.setState({timestamp:i})),this.props.onTick&&this.props.onTick(i)})),r()(this,"processServerTimeResponseError",(()=>{let e=l()().unix();this._isMounted&&(console.log(`Clock::processServerTimeResponseError setting timestamp ${e}`),this.setState({timestamp:e})),this.props.onTick&&this.props.onTick(e)})),r()(this,"getServerTime",(()=>{const e=(0,c.getTimeServiceUrl)();return fetch(`${e}`).then((async e=>200===e.status?e.json():Promise.reject(null))).catch((e=>(console.log(e),Promise.reject(e))))})),r()(this,"tick",(()=>{const{timestamp:e}=this.state;null!==e&&(this.props.onTick&&this.props.onTick(e+1),this._isMounted&&this.setState({timestamp:e+1}))})),r()(this,"now",(()=>this.state.timestamp)),this.fragmentParser=new h.default,this.interval=null,this.state={timestamp:null,manualSet:!1},this._isMounted=!1,this.onVisibilityChange=this.onVisibilityChange.bind(this)}componentDidMount(){this._isMounted=!0;const{timezone:e="UTC",now:t}=this.props,s=this.fragmentParser.getParam("now"),i=l().tz(s,"YYYY-MM-DD,hh:mm:ss",e);let r=null,n=!1;if(i.isValid())r=i.valueOf()/1e3,console.log(`Clock::componentDidMount nowQS ${s} is valid setting timestamp ${r}`),n=!0;else if(t)r=t;else{const e=l()().unix();this.getServerTime().then((t=>this.processServerTimeResponse(t,e))).catch((()=>this.processServerTimeResponseError()))}r&&(this.setState({timestamp:r,manualSet:n}),this.props.onTick&&this.props.onTick(r)),this.interval=setInterval(this.tick,1e3),document.addEventListener("visibilitychange",this.onVisibilityChange,!1)}onVisibilityChange(){const e=document.visibilityState,{manualSet:t}=this.state;if("visible"===e){if(console.log(`Clock::onVisibilityChange manualSet ${t}`),t)return;const e=l()().unix();this.getServerTime().then((t=>this.processServerTimeResponse(t,e))).catch((()=>this.processServerTimeResponseError()))}}componentWillUnmount(){this._isMounted=!1,clearInterval(this.interval),document.removeEventListener("visibilitychange",this.onVisibilityChange),this.interval=null}render(){const{display:e,timezone:t="UTC"}=this.props,{timestamp:s}=this.state;return e&&s?o().createElement("div",{style:{marginTop:"50px",textAlign:"center",fontSize:"20px"}},l().tz(1e3*s,t).format("YYYY-MM-DD hh:mm:ss")):null}}const p=u},8311:(e,t,s)=>{s.d(t,{default:()=>o});var i=s(1116),r=s.n(i);function n(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,i)}return s}class o{constructor(){this.originalHash="",this.hash={}}convertToHash(e){let t=(e=e.substr(1).toLowerCase()).split("&"),s={};for(let e of t){if(e=e.split("="),2!==e.length)continue;let t=e[1].trim();""!==t&&("true"!==t&&"false"!==t||(e[1]="true"==t),s[e[0]]=e[1])}return s}clearParams(){this.originalHash="",this.hash={}}getParam(e){return"undefined"!=typeof window&&this.originalHash!==window.location.hash&&(this.originalHash=window.location.hash,this.hash=this.convertToHash(this.originalHash)),this.hash.hasOwnProperty(e)?this.hash[e]:null}getParams(){return"undefined"!=typeof window&&this.originalHash!==window.location.hash&&(this.originalHash=window.location.hash,this.hash=this.convertToHash(this.originalHash)),function(e){for(var t=1;t{s.d(t,{createExternalStore:()=>l});var i=s(2015),r=s.n(i);const n=require("use-sync-external-store/shim"),o=require("use-sync-external-store/shim/with-selector"),a=(e,t)=>e===t;function l(e="ExternalStore"){const t=(0,i.createContext)(null),s=()=>{const s=(0,i.useContext)(t);if(null===s)throw new Error(`${e} hooks must be used within their Provider`);return s};return{Provider:({initialValue:e=null,children:s})=>{const n=(0,i.useRef)(e),o=(0,i.useRef)(new Set),a=(0,i.useCallback)((e=>(o.current.add(e),()=>o.current.delete(e))),[]),l=(0,i.useCallback)((()=>n.current),[]),h=(0,i.useCallback)((e=>{n.current=e,o.current.forEach((e=>e()))}),[]),c=(0,i.useMemo)((()=>({subscribe:a,getSnapshot:l})),[a,l]);return r().createElement(t.Provider,{value:c},"function"==typeof s?s(h):s)},useValue:()=>{const{subscribe:e,getSnapshot:t}=s();return(0,n.useSyncExternalStore)(e,t)},useSelector:(e,t=a)=>{const{subscribe:i,getSnapshot:r}=s();return(0,o.useSyncExternalStoreWithSelector)(i,r,r,e,t)}}}},9558:(e,t,s)=>{s.d(t,{getTimeServiceUrl:()=>i});s(5812),s(8041);const i=()=>"undefined"!=typeof window?window.TIMEINTERVALSINCE1970_API_URL||process.env.TIMEINTERVALSINCE1970_API_URL:null},1116:e=>{e.exports=require("@babel/runtime/helpers/defineProperty")},5812:e=>{e.exports=require("moment-timezone")},2015:e=>{e.exports=require("react")},8041:e=>{e.exports=require("urijs")}},t={};function s(i){var r=t[i];if(void 0!==r)return r.exports;var n=t[i]={exports:{}};return e[i](n,n.exports,s),n.exports}(()=>{s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t}})(),(()=>{s.d=(e,t)=>{for(var i in t)s.o(t,i)&&!s.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})}})(),(()=>{s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)})(),(()=>{s.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}})();var i={};s.r(i),s.d(i,{ClockProvider:()=>u,useClock:()=>h,useClockSelector:()=>c});var r=s(2015),n=s.n(r),o=s(5890),a=s(2593);const{Provider:l,useValue:h,useSelector:c}=(0,o.createExternalStore)("Clock"),u=({timezone:e,now:t,children:s})=>n().createElement(l,{initialValue:t},(i=>n().createElement(n().Fragment,null,n().createElement(a.default,{onTick:i,timezone:e,now:t}),s)));return i})())); +//# sourceMappingURL=clock-context.js.map \ No newline at end of file diff --git a/lib/components/clock-context.js.map b/lib/components/clock-context.js.map new file mode 100644 index 00000000..96b9dfbb --- /dev/null +++ b/lib/components/clock-context.js.map @@ -0,0 +1 @@ +{"version":3,"file":"components/clock-context.js","mappings":"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","sources":["webpack://openstack-uicore-foundation/webpack/universalModuleDefinition","webpack://openstack-uicore-foundation/./src/components/clock.js","webpack://openstack-uicore-foundation/./src/components/fragment-parser.js","webpack://openstack-uicore-foundation/external commonjs \"use-sync-external-store/shim\"","webpack://openstack-uicore-foundation/external commonjs \"use-sync-external-store/shim/with-selector\"","webpack://openstack-uicore-foundation/./src/utils/external-store.js","webpack://openstack-uicore-foundation/./src/utils/methods.js","webpack://openstack-uicore-foundation/external commonjs \"@babel/runtime/helpers/defineProperty\"","webpack://openstack-uicore-foundation/external commonjs \"moment-timezone\"","webpack://openstack-uicore-foundation/external commonjs \"react\"","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/./src/components/clock-context.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 2020 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 **/\nimport React from 'react';\nimport moment from \"moment-timezone\";\nimport FragmentParser from \"./fragment-parser\";\nimport {getTimeServiceUrl} from '../utils/methods';\n\n/**\n * class Clock\n */\nclass Clock extends React.Component {\n\n constructor(props) {\n super(props);\n this.fragmentParser = new FragmentParser();\n this.interval = null;\n this.state = {\n timestamp: null,\n manualSet : false,\n }\n this._isMounted = false;\n this.onVisibilityChange = this.onVisibilityChange.bind(this);\n }\n\n /**\n * @param response\n * @param localBefore\n */\n processServerTimeResponse = (response, localBefore) => {\n const localAfter = moment().unix();\n let timestamp = localAfter;\n if (response) {\n timestamp = response.timestamp + (localAfter - localBefore);\n }\n if(this._isMounted) {\n console.log(`Clock::processServerTimeResponse setting timestamp ${timestamp}`)\n this.setState({timestamp});\n }\n if(this.props.onTick)\n this.props.onTick(timestamp);\n }\n\n processServerTimeResponseError = () => {\n const localAfter = moment().unix();\n let timestamp = localAfter;\n if(this._isMounted) {\n console.log(`Clock::processServerTimeResponseError setting timestamp ${timestamp}`)\n this.setState({timestamp});\n }\n if(this.props.onTick)\n this.props.onTick(timestamp);\n }\n\n componentDidMount() {\n this._isMounted = true;\n const {timezone = 'UTC', now} = this.props;\n const nowQS = this.fragmentParser.getParam('now');\n const momentQS = moment.tz(nowQS, 'YYYY-MM-DD,hh:mm:ss', timezone);\n let timestamp = null;\n let manualSet = false;\n if (momentQS.isValid()) {\n timestamp = momentQS.valueOf() / 1000;\n console.log(`Clock::componentDidMount nowQS ${nowQS} is valid setting timestamp ${timestamp}`);\n manualSet = true;\n } else if (now) {\n timestamp = now\n } else {\n const localBefore = moment().unix();\n this.getServerTime()\n .then((response) => this.processServerTimeResponse(response, localBefore))\n .catch(() => this.processServerTimeResponseError())\n }\n\n if(timestamp) {\n this.setState({timestamp, manualSet});\n if(this.props.onTick)\n this.props.onTick(timestamp);\n }\n\n this.interval = setInterval(this.tick, 1000);\n document.addEventListener(\"visibilitychange\", this.onVisibilityChange, false)\n }\n\n onVisibilityChange() {\n const visibilityState = document.visibilityState;\n const {manualSet} = this.state;\n if (visibilityState === \"visible\") {\n console.log(`Clock::onVisibilityChange manualSet ${manualSet}`)\n if(manualSet) return;\n const localBefore = moment().unix();\n this.getServerTime()\n .then((response) => this.processServerTimeResponse(response, localBefore))\n .catch(() => this.processServerTimeResponseError());\n }\n }\n\n componentWillUnmount() {\n this._isMounted = false;\n clearInterval(this.interval);\n document.removeEventListener(\"visibilitychange\", this.onVisibilityChange)\n this.interval = null;\n }\n\n getServerTime = () => {\n const timeServiceUrl = getTimeServiceUrl();\n return fetch(`${timeServiceUrl}`).then(async (response) => {\n if (response.status === 200) {\n return response.json();\n }\n return Promise.reject(null);\n })\n .catch(err => {\n console.log(err);\n return Promise.reject(err);\n });\n };\n\n tick = () => {\n const {timestamp} = this.state;\n if (timestamp !== null) {\n if(this.props.onTick)\n this.props.onTick(timestamp + 1);\n if(this._isMounted)\n this.setState({timestamp: timestamp + 1})\n }\n };\n\n // epoch utc time in seconds\n now = () => {\n return this.state.timestamp;\n };\n\n render() {\n const {display, timezone = 'UTC'} = this.props;\n const {timestamp} = this.state;\n\n if (!display || !timestamp) return null;\n\n return (\n
\n {moment.tz(timestamp * 1000, timezone).format('YYYY-MM-DD hh:mm:ss')}\n
\n );\n }\n\n}\n\nexport default Clock;\n","\nexport default class FragmentParser {\n\n constructor(){\n this.originalHash = '';\n this.hash = {};\n }\n\n convertToHash(strHash)\n {\n strHash = strHash.substr(1).toLowerCase();\n let params = strHash.split('&');\n let res = {};\n for(let param of params)\n {\n param = param.split('=');\n if(param.length !== 2) continue;\n let val = param[1].trim();\n if(val === '') continue;\n\n if (val === 'true' || val === 'false')\n param[1] = val == 'true';\n\n res[param[0]] = param[1];\n }\n return res;\n }\n\n clearParams(){\n this.originalHash = '';\n this.hash = {};\n }\n\n getParam(key){\n if(typeof window !== 'undefined' && this.originalHash !== window.location.hash){\n this.originalHash = window.location.hash;\n this.hash = this.convertToHash(this.originalHash);\n }\n\n if(!this.hash.hasOwnProperty(key) ) return null;\n return this.hash[key];\n }\n\n getParams(){\n if(typeof window !== 'undefined' && this.originalHash !== window.location.hash){\n this.originalHash = window.location.hash;\n this.hash = this.convertToHash(this.originalHash);\n }\n\n return { ... this.hash };\n }\n\n deleteParam(param){\n var hash = this.getParams();\n this.clearParams();\n for(let key in hash) {\n if(key == param) continue;\n this.hash[key] = hash[key];\n }\n }\n\n deleteParams(params){\n var hash = this.getParams();\n this.clearParams();\n for(let key in hash) {\n if(params.includes(key)) continue;\n this.hash[key] = hash[key];\n }\n }\n\n setParam(key, value){\n if(typeof window !== 'undefined' && this.originalHash !== window.location.hash){\n this.originalHash = window.location.hash;\n this.hash = this.convertToHash(this.originalHash);\n }\n if(value !== null && value !== '')\n this.hash[key] = value;\n else\n delete this.hash[key];\n return this;\n }\n\n serialize(){\n let res = '';\n for(let key in this.hash)\n {\n let val = this.hash[key];\n if(res !== '') res += '&';\n res += key+'='+val;\n }\n return res;\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"use-sync-external-store/shim\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"use-sync-external-store/shim/with-selector\");","/**\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 * createExternalStore - Factory for creating React-optimized external stores.\n *\n * Problem:\n * When a frequently-updating data source (clock, WebSocket, polling, etc.)\n * pushes its value into shared state (global store, lifted useState, or a\n * context value), every consuming component re-renders on every update,\n * even when they only care about a derived condition that rarely changes.\n *\n * Solution:\n * createExternalStore() returns a Provider and hooks that store the value\n * in a ref (no re-renders) and use useSyncExternalStore so components\n * can opt in to updates selectively:\n *\n * - useValue() → re-renders on every update\n * - useSelector(compute, isEqual) → re-renders only when the computed result changes\n *\n * Components that don't call either hook are never affected by updates.\n *\n * How it works:\n * 1. The Provider stores the value in a ref (writing to a ref never triggers\n * a React re-render) and keeps a Set of listener callbacks.\n * 2. When emit(value) is called, the ref is updated and all listeners are\n * notified. These listeners come from useSyncExternalStore.\n * 3. useSyncExternalStore (React 18, shimmed for 16/17) calls getSnapshot()\n * to read the ref, compares with the previous value, and only re-renders\n * the component if the value changed.\n * 4. useMemo adds a layer on top: it runs a compute function on the raw value\n * and only re-renders if the computed result changed (checked via isEqual).\n *\n * API:\n * createExternalStore(name) returns:\n *\n * - Provider Wraps your component tree. Pass children as a render function\n * to receive the emit callback: (emit) => JSX. Call emit(value)\n * each time your data source has a new value.\n *\n * - useValue() Returns the latest emitted value. The component re-renders\n * on every emit.\n *\n * - useSelector(compute, isEqual?)\n * Returns a derived value. compute(rawValue) runs on every emit,\n * but the component only re-renders when isEqual returns false\n * (default: ===). Useful when you need to derive something that\n * changes less frequently than the raw value.\n *\n * The name parameter is used in error messages. For example,\n * createExternalStore('Clock') throws \"Clock hooks must be used within\n * their Provider\" when a hook is called outside the Provider.\n *\n * For clock-specific usage:\n * A pre-built clock store is available at:\n * import { ClockProvider, useClock, useClockSelector } from 'openstack-uicore-foundation/lib/components/clock-context';\n * This wires createExternalStore to the Clock component so projects don't\n * have to repeat that boilerplate.\n *\n * Custom store example:\n * import { createExternalStore } from 'openstack-uicore-foundation/lib/utils/external-store';\n *\n * const { Provider, useValue, useSelector } = createExternalStore('WebSocket');\n *\n * const WebSocketProvider = ({ url, children }) => (\n * \n * {(emit) => (\n * <>\n * \n * {children}\n * \n * )}\n * \n * );\n *\n * // Re-renders on every message:\n * const message = useValue();\n *\n * // Re-renders only when the derived value changes:\n * const isActive = useSelector((msg) => msg?.status === 'active');\n **/\n\nimport React, { createContext, useContext, useRef, useCallback, useMemo as reactUseMemo } from 'react';\n// Shim for React 16/17 compatibility, falls back to native in React 18+\nimport { useSyncExternalStore } from 'use-sync-external-store/shim';\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/shim/with-selector';\n\nconst strictEqual = (a, b) => a === b;\n\n/**\n * Creates an external store with a Provider and subscription hooks.\n *\n * @param {string} name - Store name, used in error messages (e.g., \"Clock\", \"WebSocket\")\n * @returns {{ Provider, useValue, useSelector }}\n */\nexport function createExternalStore(name = 'ExternalStore') {\n const Context = createContext(null);\n\n const useStoreContext = () => {\n const context = useContext(Context);\n if (context === null) {\n throw new Error(`${name} hooks must be used within their Provider`);\n }\n return context;\n };\n\n /**\n * Provider - Wraps your component tree and provides the store.\n *\n * Pass children as a render function to receive the `emit` callback:\n * {(emit) => }\n *\n * Or pass children normally if you wire emit externally.\n *\n * Pass `initialValue` to seed the store synchronously so that hooks\n * called before the first emit see a real value instead of null.\n */\n const Provider = ({ initialValue = null, children }) => {\n const valueRef = useRef(initialValue);\n const listenersRef = useRef(new Set());\n\n const subscribe = useCallback((callback) => {\n listenersRef.current.add(callback);\n return () => listenersRef.current.delete(callback);\n }, []);\n\n const getSnapshot = useCallback(() => valueRef.current, []);\n\n const emit = useCallback((value) => {\n valueRef.current = value;\n listenersRef.current.forEach(listener => listener());\n }, []);\n\n const contextValue = reactUseMemo(() => ({ subscribe, getSnapshot }), [subscribe, getSnapshot]);\n\n return (\n \n {typeof children === 'function' ? children(emit) : children}\n \n );\n };\n\n /**\n * useValue - Subscribe to every update.\n * Component re-renders each time emit() is called.\n *\n * @returns {*} The current value, or null before first emit\n */\n const useValue = () => {\n const { subscribe, getSnapshot } = useStoreContext();\n return useSyncExternalStore(subscribe, getSnapshot);\n };\n\n /**\n * useSelector - Subscribe with a selector function.\n * Only re-renders when the selected/derived value changes.\n *\n * @param {Function} compute - (value) => derivedValue\n * @param {Function} isEqual - Optional equality function (default: ===)\n * @returns {*} The computed value\n */\n const useSelector = (compute, isEqual = strictEqual) => {\n const { subscribe, getSnapshot } = useStoreContext();\n return useSyncExternalStoreWithSelector(\n subscribe,\n getSnapshot,\n getSnapshot,\n compute,\n isEqual\n );\n };\n\n return { Provider, useValue, useSelector };\n}\n","/**\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","module.exports = require(\"@babel/runtime/helpers/defineProperty\");","module.exports = require(\"moment-timezone\");","module.exports = require(\"react\");","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};","/**\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 * Pre-built clock store using createExternalStore.\n *\n * Wires the Clock component (server-synced, ticks every second) into a\n * createExternalStore instance. Components choose their update strategy:\n *\n * - useClock() re-renders every second (for countdowns, live displays)\n * - useClockSelector(compute) only re-renders when the computed result changes\n * - Components that use neither are never affected by clock ticks\n *\n * Usage:\n * import { ClockProvider, useClock, useClockSelector } from 'openstack-uicore-foundation/lib/components/clock-context';\n *\n * \n * \n * \n *\n * const nowUtc = useClock();\n *\n * const phase = useClockSelector((nowUtc) => {\n * if (nowUtc < event.start) return 'before';\n * if (nowUtc <= event.end) return 'during';\n * return 'after';\n * });\n *\n * For custom (non-clock) stores, see createExternalStore in utils/external-store.js.\n **/\n\nimport React from 'react';\nimport { createExternalStore } from '../utils/external-store';\nimport Clock from './clock';\n\nconst { Provider, useValue: useClock, useSelector: useClockSelector } = createExternalStore('Clock');\n\n/**\n * ClockProvider - Wraps your app with server-synced clock context.\n *\n * @param {string} timezone - Timezone for the clock (e.g., \"America/New_York\")\n * @param {number} now - Optional initial timestamp (for testing or manual override)\n * @param {React.ReactNode} children - Child components\n */\nexport const ClockProvider = ({ timezone, now, children }) => (\n \n {(emit) => (\n <>\n \n {children}\n \n )}\n \n);\n\nexport { useClock, useClockSelector };\n"],"names":["root","factory","exports","module","define","amd","this","Clock","React","constructor","props","super","_defineProperty","response","localBefore","localAfter","moment","unix","timestamp","_isMounted","console","log","setState","onTick","timeServiceUrl","getTimeServiceUrl","fetch","then","async","status","json","Promise","reject","catch","err","state","fragmentParser","FragmentParser","interval","manualSet","onVisibilityChange","bind","componentDidMount","timezone","now","nowQS","getParam","momentQS","isValid","valueOf","getServerTime","processServerTimeResponse","processServerTimeResponseError","setInterval","tick","document","addEventListener","visibilityState","componentWillUnmount","clearInterval","removeEventListener","render","display","style","marginTop","textAlign","fontSize","format","originalHash","hash","convertToHash","strHash","params","substr","toLowerCase","split","res","param","length","val","trim","clearParams","key","window","location","hasOwnProperty","getParams","_objectSpread","deleteParam","deleteParams","includes","setParam","value","serialize","require","strictEqual","a","b","createExternalStore","name","Context","createContext","useStoreContext","context","useContext","Error","Provider","initialValue","children","valueRef","useRef","listenersRef","Set","subscribe","useCallback","callback","current","add","delete","getSnapshot","emit","forEach","listener","contextValue","reactUseMemo","useValue","useSyncExternalStore","useSelector","compute","isEqual","useSyncExternalStoreWithSelector","TIMEINTERVALSINCE1970_API_URL","process","env","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","n","getter","__esModule","d","definition","o","Object","defineProperty","enumerable","get","obj","prop","prototype","call","r","Symbol","toStringTag","useClock","useClockSelector","ClockProvider"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/components/clock.js b/lib/components/clock.js new file mode 100644 index 00000000..88b65dee --- /dev/null +++ b/lib/components/clock.js @@ -0,0 +1,2 @@ +!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={8311:(e,t,i)=>{i.d(t,{default:()=>n});var s=i(1116),o=i.n(s);function r(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,s)}return i}class n{constructor(){this.originalHash="",this.hash={}}convertToHash(e){let t=(e=e.substr(1).toLowerCase()).split("&"),i={};for(let e of t){if(e=e.split("="),2!==e.length)continue;let t=e[1].trim();""!==t&&("true"!==t&&"false"!==t||(e[1]="true"==t),i[e[0]]=e[1])}return i}clearParams(){this.originalHash="",this.hash={}}getParam(e){return"undefined"!=typeof window&&this.originalHash!==window.location.hash&&(this.originalHash=window.location.hash,this.hash=this.convertToHash(this.originalHash)),this.hash.hasOwnProperty(e)?this.hash[e]:null}getParams(){return"undefined"!=typeof window&&this.originalHash!==window.location.hash&&(this.originalHash=window.location.hash,this.hash=this.convertToHash(this.originalHash)),function(e){for(var t=1;t{i.d(t,{getTimeServiceUrl:()=>s});i(5812),i(8041);const s=()=>"undefined"!=typeof window?window.TIMEINTERVALSINCE1970_API_URL||process.env.TIMEINTERVALSINCE1970_API_URL:null},1116:e=>{e.exports=require("@babel/runtime/helpers/defineProperty")},5812:e=>{e.exports=require("moment-timezone")},2015:e=>{e.exports=require("react")},8041:e=>{e.exports=require("urijs")}},t={};function i(s){var o=t[s];if(void 0!==o)return o.exports;var r=t[s]={exports:{}};return e[s](r,r.exports,i),r.exports}(()=>{i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t}})(),(()=>{i.d=(e,t)=>{for(var s in t)i.o(t,s)&&!i.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})}})(),(()=>{i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)})(),(()=>{i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}})();var s={};i.r(s),i.d(s,{default:()=>m});var o=i(1116),r=i.n(o),n=i(2015),a=i.n(n),h=i(5812),l=i.n(h),c=i(8311),p=i(9558);class u extends a().Component{constructor(e){super(e),r()(this,"processServerTimeResponse",((e,t)=>{const i=l()().unix();let s=i;e&&(s=e.timestamp+(i-t)),this._isMounted&&(console.log(`Clock::processServerTimeResponse setting timestamp ${s}`),this.setState({timestamp:s})),this.props.onTick&&this.props.onTick(s)})),r()(this,"processServerTimeResponseError",(()=>{let e=l()().unix();this._isMounted&&(console.log(`Clock::processServerTimeResponseError setting timestamp ${e}`),this.setState({timestamp:e})),this.props.onTick&&this.props.onTick(e)})),r()(this,"getServerTime",(()=>{const e=(0,p.getTimeServiceUrl)();return fetch(`${e}`).then((async e=>200===e.status?e.json():Promise.reject(null))).catch((e=>(console.log(e),Promise.reject(e))))})),r()(this,"tick",(()=>{const{timestamp:e}=this.state;null!==e&&(this.props.onTick&&this.props.onTick(e+1),this._isMounted&&this.setState({timestamp:e+1}))})),r()(this,"now",(()=>this.state.timestamp)),this.fragmentParser=new c.default,this.interval=null,this.state={timestamp:null,manualSet:!1},this._isMounted=!1,this.onVisibilityChange=this.onVisibilityChange.bind(this)}componentDidMount(){this._isMounted=!0;const{timezone:e="UTC",now:t}=this.props,i=this.fragmentParser.getParam("now"),s=l().tz(i,"YYYY-MM-DD,hh:mm:ss",e);let o=null,r=!1;if(s.isValid())o=s.valueOf()/1e3,console.log(`Clock::componentDidMount nowQS ${i} is valid setting timestamp ${o}`),r=!0;else if(t)o=t;else{const e=l()().unix();this.getServerTime().then((t=>this.processServerTimeResponse(t,e))).catch((()=>this.processServerTimeResponseError()))}o&&(this.setState({timestamp:o,manualSet:r}),this.props.onTick&&this.props.onTick(o)),this.interval=setInterval(this.tick,1e3),document.addEventListener("visibilitychange",this.onVisibilityChange,!1)}onVisibilityChange(){const e=document.visibilityState,{manualSet:t}=this.state;if("visible"===e){if(console.log(`Clock::onVisibilityChange manualSet ${t}`),t)return;const e=l()().unix();this.getServerTime().then((t=>this.processServerTimeResponse(t,e))).catch((()=>this.processServerTimeResponseError()))}}componentWillUnmount(){this._isMounted=!1,clearInterval(this.interval),document.removeEventListener("visibilitychange",this.onVisibilityChange),this.interval=null}render(){const{display:e,timezone:t="UTC"}=this.props,{timestamp:i}=this.state;return e&&i?a().createElement("div",{style:{marginTop:"50px",textAlign:"center",fontSize:"20px"}},l().tz(1e3*i,t).format("YYYY-MM-DD hh:mm:ss")):null}}const m=u;return s})())); +//# sourceMappingURL=clock.js.map \ No newline at end of file diff --git a/lib/components/clock.js.map b/lib/components/clock.js.map new file mode 100644 index 00000000..c7e9d2d0 --- /dev/null +++ b/lib/components/clock.js.map @@ -0,0 +1 @@ +{"version":3,"file":"components/clock.js","mappings":"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","sources":["webpack://openstack-uicore-foundation/webpack/universalModuleDefinition","webpack://openstack-uicore-foundation/./src/components/fragment-parser.js","webpack://openstack-uicore-foundation/./src/utils/methods.js","webpack://openstack-uicore-foundation/external commonjs \"@babel/runtime/helpers/defineProperty\"","webpack://openstack-uicore-foundation/external commonjs \"moment-timezone\"","webpack://openstack-uicore-foundation/external commonjs \"react\"","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/./src/components/clock.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 ","\nexport default class FragmentParser {\n\n constructor(){\n this.originalHash = '';\n this.hash = {};\n }\n\n convertToHash(strHash)\n {\n strHash = strHash.substr(1).toLowerCase();\n let params = strHash.split('&');\n let res = {};\n for(let param of params)\n {\n param = param.split('=');\n if(param.length !== 2) continue;\n let val = param[1].trim();\n if(val === '') continue;\n\n if (val === 'true' || val === 'false')\n param[1] = val == 'true';\n\n res[param[0]] = param[1];\n }\n return res;\n }\n\n clearParams(){\n this.originalHash = '';\n this.hash = {};\n }\n\n getParam(key){\n if(typeof window !== 'undefined' && this.originalHash !== window.location.hash){\n this.originalHash = window.location.hash;\n this.hash = this.convertToHash(this.originalHash);\n }\n\n if(!this.hash.hasOwnProperty(key) ) return null;\n return this.hash[key];\n }\n\n getParams(){\n if(typeof window !== 'undefined' && this.originalHash !== window.location.hash){\n this.originalHash = window.location.hash;\n this.hash = this.convertToHash(this.originalHash);\n }\n\n return { ... this.hash };\n }\n\n deleteParam(param){\n var hash = this.getParams();\n this.clearParams();\n for(let key in hash) {\n if(key == param) continue;\n this.hash[key] = hash[key];\n }\n }\n\n deleteParams(params){\n var hash = this.getParams();\n this.clearParams();\n for(let key in hash) {\n if(params.includes(key)) continue;\n this.hash[key] = hash[key];\n }\n }\n\n setParam(key, value){\n if(typeof window !== 'undefined' && this.originalHash !== window.location.hash){\n this.originalHash = window.location.hash;\n this.hash = this.convertToHash(this.originalHash);\n }\n if(value !== null && value !== '')\n this.hash[key] = value;\n else\n delete this.hash[key];\n return this;\n }\n\n serialize(){\n let res = '';\n for(let key in this.hash)\n {\n let val = this.hash[key];\n if(res !== '') res += '&';\n res += key+'='+val;\n }\n return res;\n }\n}\n","/**\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","module.exports = require(\"@babel/runtime/helpers/defineProperty\");","module.exports = require(\"moment-timezone\");","module.exports = require(\"react\");","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};","/**\n * Copyright 2020 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 **/\nimport React from 'react';\nimport moment from \"moment-timezone\";\nimport FragmentParser from \"./fragment-parser\";\nimport {getTimeServiceUrl} from '../utils/methods';\n\n/**\n * class Clock\n */\nclass Clock extends React.Component {\n\n constructor(props) {\n super(props);\n this.fragmentParser = new FragmentParser();\n this.interval = null;\n this.state = {\n timestamp: null,\n manualSet : false,\n }\n this._isMounted = false;\n this.onVisibilityChange = this.onVisibilityChange.bind(this);\n }\n\n /**\n * @param response\n * @param localBefore\n */\n processServerTimeResponse = (response, localBefore) => {\n const localAfter = moment().unix();\n let timestamp = localAfter;\n if (response) {\n timestamp = response.timestamp + (localAfter - localBefore);\n }\n if(this._isMounted) {\n console.log(`Clock::processServerTimeResponse setting timestamp ${timestamp}`)\n this.setState({timestamp});\n }\n if(this.props.onTick)\n this.props.onTick(timestamp);\n }\n\n processServerTimeResponseError = () => {\n const localAfter = moment().unix();\n let timestamp = localAfter;\n if(this._isMounted) {\n console.log(`Clock::processServerTimeResponseError setting timestamp ${timestamp}`)\n this.setState({timestamp});\n }\n if(this.props.onTick)\n this.props.onTick(timestamp);\n }\n\n componentDidMount() {\n this._isMounted = true;\n const {timezone = 'UTC', now} = this.props;\n const nowQS = this.fragmentParser.getParam('now');\n const momentQS = moment.tz(nowQS, 'YYYY-MM-DD,hh:mm:ss', timezone);\n let timestamp = null;\n let manualSet = false;\n if (momentQS.isValid()) {\n timestamp = momentQS.valueOf() / 1000;\n console.log(`Clock::componentDidMount nowQS ${nowQS} is valid setting timestamp ${timestamp}`);\n manualSet = true;\n } else if (now) {\n timestamp = now\n } else {\n const localBefore = moment().unix();\n this.getServerTime()\n .then((response) => this.processServerTimeResponse(response, localBefore))\n .catch(() => this.processServerTimeResponseError())\n }\n\n if(timestamp) {\n this.setState({timestamp, manualSet});\n if(this.props.onTick)\n this.props.onTick(timestamp);\n }\n\n this.interval = setInterval(this.tick, 1000);\n document.addEventListener(\"visibilitychange\", this.onVisibilityChange, false)\n }\n\n onVisibilityChange() {\n const visibilityState = document.visibilityState;\n const {manualSet} = this.state;\n if (visibilityState === \"visible\") {\n console.log(`Clock::onVisibilityChange manualSet ${manualSet}`)\n if(manualSet) return;\n const localBefore = moment().unix();\n this.getServerTime()\n .then((response) => this.processServerTimeResponse(response, localBefore))\n .catch(() => this.processServerTimeResponseError());\n }\n }\n\n componentWillUnmount() {\n this._isMounted = false;\n clearInterval(this.interval);\n document.removeEventListener(\"visibilitychange\", this.onVisibilityChange)\n this.interval = null;\n }\n\n getServerTime = () => {\n const timeServiceUrl = getTimeServiceUrl();\n return fetch(`${timeServiceUrl}`).then(async (response) => {\n if (response.status === 200) {\n return response.json();\n }\n return Promise.reject(null);\n })\n .catch(err => {\n console.log(err);\n return Promise.reject(err);\n });\n };\n\n tick = () => {\n const {timestamp} = this.state;\n if (timestamp !== null) {\n if(this.props.onTick)\n this.props.onTick(timestamp + 1);\n if(this._isMounted)\n this.setState({timestamp: timestamp + 1})\n }\n };\n\n // epoch utc time in seconds\n now = () => {\n return this.state.timestamp;\n };\n\n render() {\n const {display, timezone = 'UTC'} = this.props;\n const {timestamp} = this.state;\n\n if (!display || !timestamp) return null;\n\n return (\n
\n {moment.tz(timestamp * 1000, timezone).format('YYYY-MM-DD hh:mm:ss')}\n
\n );\n }\n\n}\n\nexport default Clock;\n"],"names":["root","factory","exports","module","define","amd","this","FragmentParser","constructor","originalHash","hash","convertToHash","strHash","params","substr","toLowerCase","split","res","param","length","val","trim","clearParams","getParam","key","window","location","hasOwnProperty","getParams","_objectSpread","deleteParam","deleteParams","includes","setParam","value","serialize","getTimeServiceUrl","TIMEINTERVALSINCE1970_API_URL","process","env","require","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","n","getter","__esModule","d","a","definition","o","Object","defineProperty","enumerable","get","obj","prop","prototype","call","r","Symbol","toStringTag","Clock","React","props","super","_defineProperty","response","localBefore","localAfter","moment","unix","timestamp","_isMounted","console","log","setState","onTick","timeServiceUrl","fetch","then","async","status","json","Promise","reject","catch","err","state","fragmentParser","interval","manualSet","onVisibilityChange","bind","componentDidMount","timezone","now","nowQS","momentQS","isValid","valueOf","getServerTime","processServerTimeResponse","processServerTimeResponseError","setInterval","tick","document","addEventListener","visibilityState","componentWillUnmount","clearInterval","removeEventListener","render","display","style","marginTop","textAlign","fontSize","format"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/components/exclusive-wrapper.js b/lib/components/exclusive-wrapper.js new file mode 100644 index 00000000..a6a07090 --- /dev/null +++ b/lib/components/exclusive-wrapper.js @@ -0,0 +1,2 @@ +!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={2015:e=>{e.exports=require("react")}},t={};function o(r){var n=t[r];if(void 0!==n)return n.exports;var i=t[r]={exports:{}};return e[r](i,i.exports,o),i.exports}(()=>{o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t}})(),(()=>{o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}})(),(()=>{o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)})(),(()=>{o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}})();var r={};o.r(r),o.d(r,{default:()=>s});var n=o(2015),i=o.n(n);class s extends i().Component{constructor(e){super(e),this.showField=this.showField.bind(this)}showField(){let{name:e}=this.props,t=window.EXCLUSIVE_SECTIONS;return!!t&&t.includes(e)}render(){let{children:e}=this.props;return this.showField()?e:null}}return r})())); +//# sourceMappingURL=exclusive-wrapper.js.map \ No newline at end of file diff --git a/lib/components/exclusive-wrapper.js.map b/lib/components/exclusive-wrapper.js.map new file mode 100644 index 00000000..de16524b --- /dev/null +++ b/lib/components/exclusive-wrapper.js.map @@ -0,0 +1 @@ +{"version":3,"file":"components/exclusive-wrapper.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,mCCTTH,EAAOD,QAAUK,QAAQ,Q,GCCrBC,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBE,IAAjBD,EACH,OAAOA,EAAaT,QAGrB,IAAIC,EAASK,EAAyBE,GAAY,CAGjDR,QAAS,CAAC,GAOX,OAHAW,EAAoBH,GAAUP,EAAQA,EAAOD,QAASO,GAG/CN,EAAOD,OACf,C,MCrBAO,EAAoBK,EAAKX,IACxB,IAAIY,EAASZ,GAAUA,EAAOa,WAC7B,IAAOb,EAAiB,QACxB,IAAM,EAEP,OADAM,EAAoBQ,EAAEF,EAAQ,CAAEG,EAAGH,IAC5BA,CAAM,C,WCLdN,EAAoBQ,EAAI,CAACf,EAASiB,KACjC,IAAI,IAAIC,KAAOD,EACXV,EAAoBY,EAAEF,EAAYC,KAASX,EAAoBY,EAAEnB,EAASkB,IAC5EE,OAAOC,eAAerB,EAASkB,EAAK,CAAEI,YAAY,EAAMC,IAAKN,EAAWC,IAE1E,C,WCNDX,EAAoBY,EAAI,CAACK,EAAKC,IAAUL,OAAOM,UAAUC,eAAeC,KAAKJ,EAAKC,E,WCClFlB,EAAoBsB,EAAK7B,IACH,oBAAX8B,QAA0BA,OAAOC,aAC1CX,OAAOC,eAAerB,EAAS8B,OAAOC,YAAa,CAAEC,MAAO,WAE7DZ,OAAOC,eAAerB,EAAS,aAAc,CAAEgC,OAAO,GAAO,C,mECW/C,MAAMC,UAAkBC,IAAAA,UAEnCC,WAAAA,CAAYC,GACRC,MAAMD,GAENhC,KAAKkC,UAAYlC,KAAKkC,UAAUC,KAAKnC,KACzC,CAEAkC,SAAAA,GACI,IAAI,KAACE,GAAQpC,KAAKgC,MACdK,EAAoBC,OAAOC,mBAE/B,QAAOF,GAAoBA,EAAkBG,SAASJ,EAC1D,CAEAK,MAAAA,GACI,IAAI,SAACC,GAAY1C,KAAKgC,MAEtB,OAAIhC,KAAKkC,YACEQ,EAGJ,IAEX,E","sources":["webpack://openstack-uicore-foundation/webpack/universalModuleDefinition","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/./src/components/exclusive-wrapper.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 ","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};","/**\n * Copyright 2019 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'\n\n\nexport default class Exclusive extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.showField = this.showField.bind(this);\n }\n\n showField() {\n let {name} = this.props;\n let exclusiveSections = window.EXCLUSIVE_SECTIONS;\n\n return exclusiveSections ? exclusiveSections.includes(name) : false;\n }\n\n render() {\n let {children} = this.props;\n\n if (this.showField()) {\n return children;\n }\n\n return null;\n\n }\n}\n"],"names":["root","factory","exports","module","define","amd","this","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","Exclusive","React","constructor","props","super","showField","bind","name","exclusiveSections","window","EXCLUSIVE_SECTIONS","includes","render","children"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/components/extra-questions-mui.js b/lib/components/extra-questions-mui.js new file mode 100644 index 00000000..f0be095a --- /dev/null +++ b/lib/components/extra-questions-mui.js @@ -0,0 +1,2 @@ +!function(e,l){"object"==typeof exports&&"object"==typeof module?module.exports=l():"function"==typeof define&&define.amd?define("openstack-uicore-foundation",[],l):"object"==typeof exports?exports["openstack-uicore-foundation"]=l():e["openstack-uicore-foundation"]=l()}(this,(()=>(()=>{"use strict";var e={5028:(e,l,r)=>{r.d(l,{default:()=>d});var t=r(6031),a=r.n(t),n=r(2462),o=r.n(n),i=r(2015),s=r.n(i);const u=["children","replaceNewLine","className"],d=e=>{let{children:l,replaceNewLine:r=!1,className:t=""}=e,n=o()(e,u);return s().createElement("span",a()({className:t,dangerouslySetInnerHTML:{__html:r?null==l?void 0:l.replace(/\n/g,"
"):l}},n))}},6031:e=>{e.exports=require("@babel/runtime/helpers/extends")},2462:e=>{e.exports=require("@babel/runtime/helpers/objectWithoutProperties")},2015:e=>{e.exports=require("react")}},l={};function r(t){var a=l[t];if(void 0!==a)return a.exports;var n=l[t]={exports:{}};return e[t](n,n.exports,r),n.exports}(()=>{r.n=e=>{var l=e&&e.__esModule?()=>e.default:()=>e;return r.d(l,{a:l}),l}})(),(()=>{r.d=(e,l)=>{for(var t in l)r.o(l,t)&&!r.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:l[t]})}})(),(()=>{r.o=(e,l)=>Object.prototype.hasOwnProperty.call(e,l)})(),(()=>{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:()=>L});var a=r(6031),n=r.n(a),o=r(2015),i=r.n(o);const s=require("prop-types");var u=r.n(s),d=r(2462),c=r.n(d);const m=(e,l)=>`${e.toLowerCase().replace(/[^a-zA-Z0-9]+/g,"_")}_${l}`,b=e=>{var l;return null==e||null===(l=e.label)||void 0===l?void 0:l.replace(/\n/g," ").replace(/

(.*)<\/p>/gi,"$1")},p=require("@mui/material"),v=["question","questionClassName","isDisabled","children","setFieldValue"],h=e=>{let{question:l,questionClassName:r="",isDisabled:t=!1,children:a,setFieldValue:o}=e,s=c()(e,v);const u=m(l.name,l.id),d=b(l),h=l.mandatory;return i().createElement("div",{key:u,id:`${u}_container`,className:r},i().createElement(p.FormGroup,null,i().createElement(p.TextField,n()({name:u,label:d,disabled:t,required:h,fullWidth:!0,margin:"normal"},s)),a))};h.propTypes={question:u().object.isRequired,questionClassName:u().string,isDisabled:u().bool,children:u().node,setFieldValue:u().func};const q=h;var y=r(5028);const f=["question","questionClassName","isDisabled","children","value","error","helperText","setFieldValue"],x=e=>{let{question:l,questionClassName:r="",isDisabled:t=!1,children:a,value:o,error:s,helperText:u,setFieldValue:d}=e,v=c()(e,f);const h=m(l.name,l.id),q=b(l),x=l.mandatory;return i().createElement("div",{key:h,id:`${h}_container`,className:r},i().createElement(p.FormControl,{fullWidth:!0,margin:"normal",error:s},i().createElement(p.FormControlLabel,{sx:{alignItems:"flex-start"},control:i().createElement(p.Checkbox,n()({name:h,checked:!!o,label:i().createElement(y.default,null,q),sx:{marginTop:-1}},v)),label:i().createElement(y.default,null,q),disabled:t,required:x}),a,s&&i().createElement(p.FormHelperText,null,u??" ")))};x.propTypes={question:u().object.isRequired,value:u().bool,questionClassName:u().string,isDisabled:u().bool,children:u().node,setFieldValue:u().func,error:u().bool,helperText:u().string};const g=x,C=["question","questionClassName","isDisabled","children","error","helperText","setFieldValue"],E=e=>{var l;let{question:r,questionClassName:t="",isDisabled:a=!1,children:o,error:s,helperText:u,setFieldValue:d}=e,v=c()(e,C);const h=m(r.name,r.id),q=b(r),y=r.mandatory,f=(null===(l=r.values)||void 0===l?void 0:l.map((e=>({label:e.label,value:e.id.toString()}))))||[];return i().createElement("div",{key:h,id:`${h}_container`,className:t},i().createElement(p.FormControl,{disabled:a,required:y,fullWidth:!0,margin:"normal",error:s},i().createElement(p.FormLabel,{id:`${h}_label`},q),s&&i().createElement(p.FormHelperText,null,u??" "),i().createElement(p.RadioGroup,n()({"aria-labelledby":`${h}_label`,name:h},v),f.map((e=>i().createElement(p.FormControlLabel,{key:e.label,value:e.value,control:i().createElement(p.Radio,null),label:e.label})))),o))};E.propTypes={question:u().object.isRequired,questionClassName:u().string,isDisabled:u().bool,children:u().node,error:u().bool,helperText:u().string,setFieldValue:u().func};const F=E,N=["question","questionClassName","isDisabled","children","value","onChange","setFieldValue","error","helperText"],T=e=>{var l;let{question:r,questionClassName:t="",isDisabled:a=!1,children:o,value:s,onChange:u,setFieldValue:d,error:v,helperText:h}=e,q=c()(e,N);const y=m(r.name,r.id),f=b(r),x=r.mandatory,g=r.max_selected_values,C=(null===(l=r.values)||void 0===l?void 0:l.map((e=>({label:e.label,value:e.id.toString()}))))||[];return i().createElement("div",{key:y,id:`${y}_container`,className:t},i().createElement(p.FormControl,{disabled:a,required:x,fullWidth:!0,margin:"normal",error:v},i().createElement(p.FormLabel,null,f),v&&i().createElement(p.FormHelperText,null,h??" "),i().createElement(p.FormGroup,null,C.map((e=>i().createElement(p.FormControlLabel,{key:e.label,name:y,control:i().createElement(p.Checkbox,n()({checked:null==s?void 0:s.includes(e.value),onChange:l=>((e,l)=>{const r=s||[],t=0!==g&&r.length===g;let a;a=e?t?r:[...r,l]:r.filter((e=>e!==l)),d(y,a)})(l.target.checked,e.value)},q)),label:e.label})))),o))};T.propTypes={question:u().object.isRequired,value:u().array,questionClassName:u().string,isDisabled:u().bool,onChange:u().func.isRequired,children:u().node,setFieldValue:u().func,error:u().bool,helperText:u().string};const _=T,k=["question","questionClassName","isDisabled","setFieldValue","children","error","helperText"],V=e=>{var l;let{question:r,questionClassName:t="",isDisabled:a=!1,setFieldValue:o,children:s,error:u,helperText:d}=e,v=c()(e,k);const h=m(r.name,r.id),q=b(r),y=r.mandatory,f=(null===(l=r.values)||void 0===l?void 0:l.map((e=>({label:e.label,value:e.id}))))||[];return i().createElement("div",{key:h,id:`${h}_container`,className:t},i().createElement(p.FormControl,{disabled:a,required:y,fullWidth:!0,margin:"normal",error:u},i().createElement(p.InputLabel,{id:`${h}_label`},q),i().createElement(p.Select,n()({labelId:`${h}_label`,name:h,id:h,label:q},v,{style:{marginBottom:20}}),f.map((e=>i().createElement(p.MenuItem,{key:e.label,value:e.value},e.label)))),s))};V.propTypes={question:u().object.isRequired,questionClassName:u().string,isDisabled:u().bool,children:u().node,error:u().bool,helperText:u().string,setFieldValue:u().func};const D=V,j=({extraQuestions:e,className:l="extraQuestions",questionClassName:r="extraQuestion",readOnly:t=!1,allowEdit:a=!0,formik:o})=>{const s=(e,l)=>{const r=((e,l)=>{const r=l.answer_values;if(!e)return!1;if(Array.isArray(e)){if(!e.length)return!1;let t="And"===l.answer_values_operator;return r.forEach((r=>{t="And"===l.answer_values_operator?t&&e.includes(r):t||e.includes(r)})),t}return r.includes(null==e?void 0:e.toString())})(o.values[l],e),t=((e,l)=>"Visible"===e.visibility?"Equal"===e.visibility_condition?!!l:!l:"Equal"===e.visibility_condition?!l:!!l)(e,r);return t?u(e.sub_question):null},u=e=>{var l;const u=m(e.name,e.id),d=!a&&(e=>!!e&&(Array.isArray(e)||"string"==typeof e?e.length>0:"number"==typeof e?e>0:"boolean"==typeof e&&e))(o.values[u])||t,c=(e=>{switch(e){case"TextArea":case"Text":return q;case"CheckBox":return g;case"RadioButtonList":return F;case"CheckBoxList":return _;case"CountryComboBox":case"ComboBox":return D;default:return i().Fragment}})(e.type),b={value:o.values[u],onChange:o.handleChange,onBlur:o.handleBlur,error:o.touched[u]&&Boolean(o.errors[u]),helperText:o.touched[u]&&o.errors[u],setFieldValue:o.setFieldValue};return i().createElement(c,n()({key:u,question:e,questionClassName:r,isDisabled:d},b),null===(l=e.sub_question_rules)||void 0===l?void 0:l.map((e=>s(e,u))))};return i().createElement("div",{className:l},e.map(u))};j.propTypes={extraQuestions:u().array.isRequired,className:u().string,questionClassName:u().string,allowEdit:u().bool,readOnly:u().bool};const L=j;return t})())); +//# sourceMappingURL=extra-questions-mui.js.map \ No newline at end of file diff --git a/lib/components/extra-questions-mui.js.map b/lib/components/extra-questions-mui.js.map new file mode 100644 index 00000000..131390ab --- /dev/null +++ b/lib/components/extra-questions-mui.js.map @@ -0,0 +1 @@ +{"version":3,"file":"components/extra-questions-mui.js","mappings":"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","sources":["webpack://openstack-uicore-foundation/webpack/universalModuleDefinition","webpack://openstack-uicore-foundation/./src/components/raw-html/index.js","webpack://openstack-uicore-foundation/external commonjs \"@babel/runtime/helpers/extends\"","webpack://openstack-uicore-foundation/external commonjs \"@babel/runtime/helpers/objectWithoutProperties\"","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 \"prop-types\"","webpack://openstack-uicore-foundation/./src/components/extra-questions-mui/components/utils.js","webpack://openstack-uicore-foundation/external commonjs \"@mui/material\"","webpack://openstack-uicore-foundation/./src/components/extra-questions-mui/components/TextQuestionField.js","webpack://openstack-uicore-foundation/./src/components/extra-questions-mui/components/CheckboxQuestionField.js","webpack://openstack-uicore-foundation/./src/components/extra-questions-mui/components/RadioListQuestionField.js","webpack://openstack-uicore-foundation/./src/components/extra-questions-mui/components/CheckboxListQuestionField.js","webpack://openstack-uicore-foundation/./src/components/extra-questions-mui/components/DropdownQuestionField.js","webpack://openstack-uicore-foundation/./src/components/extra-questions-mui/index.js","webpack://openstack-uicore-foundation/./src/components/extra-questions-mui/constants.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 ","import React from 'react';\n\nconst RawHTML = ({children, replaceNewLine = false, className = \"\", ...rest}) =>\n ') : children}} {...rest}/>\n\nexport default RawHTML;","module.exports = require(\"@babel/runtime/helpers/extends\");","module.exports = require(\"@babel/runtime/helpers/objectWithoutProperties\");","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(\"prop-types\");","import {\n QuestionType_Checkbox,\n QuestionType_CheckBoxList,\n QuestionType_ComboBox,\n QuestionType_CountryComboBox,\n QuestionType_RadioButtonList\n} from \"../constants\";\n\nexport const checkRule = (value, rule) => {\n const values = rule.answer_values;\n\n if (!value) return false;\n\n if (Array.isArray(value)) {\n if (!value.length) return false;\n let res = rule.answer_values_operator === \"And\";\n values.forEach((v) => {\n if (rule.answer_values_operator === \"And\") {\n res = res && value.includes(v);\n } else {\n // Or\n res = res || value.includes(v);\n }\n });\n return res;\n }\n return values.includes(value?.toString());\n};\n\nexport const checkVisibility = (rule, ruleResult) => {\n if (rule.visibility === \"Visible\") {\n if (rule.visibility_condition === \"Equal\") {\n return !!ruleResult;\n }\n // Non Equal\n return !ruleResult;\n }\n // not visible\n if (rule.visibility_condition === \"Equal\") {\n return !ruleResult;\n }\n return !!ruleResult;\n};\n\nexport const toSlug = (text, questionId) => {\n const textLC = text.toLowerCase();\n return `${textLC.replace(/[^a-zA-Z0-9]+/g, \"_\")}_${questionId}`;\n};\n\nexport const getLabel = (q) =>\n // replace line breaks and remove outer

\n q?.label?.replace(/\\n/g, \" \").replace(/

(.*)<\\/p>/gi, \"$1\");\n\nexport const isAnswered = (answer) => {\n if (!answer) return false;\n // check type\n if (Array.isArray(answer)) return answer.length > 0;\n if (typeof answer === \"string\") return answer.length > 0;\n if (typeof answer === \"number\") return answer > 0;\n if (typeof answer === \"boolean\") return answer;\n return false;\n};\n\nexport const checkIfValueMatch = (answer, compareVal) => {\n const answerArray = Array.isArray(answer) ? answer : [answer];\n\n return answerArray.some((v) => {\n if (Array.isArray(compareVal)) {\n return compareVal.includes(`${v}`);\n }\n return `${v}` === `${compareVal}`;\n });\n};\n\nexport const getTypeInitialValue = (q) => {\n switch (q.type) {\n case QuestionType_Checkbox:\n return false;\n case QuestionType_RadioButtonList:\n return null;\n case QuestionType_CheckBoxList:\n return [];\n case QuestionType_CountryComboBox:\n case QuestionType_ComboBox:\n return \"\";\n default:\n return \"\";\n }\n};\n\nexport const getTypeValue = (ans, type) => {\n switch (type) {\n case QuestionType_Checkbox:\n return ans === \"true\";\n case QuestionType_CheckBoxList:\n return ans?.split(\",\") || [];\n case QuestionType_CountryComboBox:\n case QuestionType_ComboBox:\n return ans || \"\";\n case QuestionType_RadioButtonList:\n return ans || null;\n default:\n return ans;\n }\n};\n\nexport const transformAnwersFormat = (answers) => {\n const {\n attendee_email,\n attendee_first_name,\n attendee_last_name,\n attendee_company,\n disclaimer_accepted,\n ...extra_questions\n } = answers;\n\n const formattedEQ = Object.entries(extra_questions).map(([key, value]) => ({\n question_id: parseInt(key.split(\"_\").pop(), 10),\n answer: value?.toString() || null\n }));\n\n return {\n attendee_email,\n attendee_first_name,\n attendee_last_name,\n attendee_company,\n disclaimer_accepted,\n extra_questions: formattedEQ\n };\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@mui/material\");","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { FormGroup, TextField } from \"@mui/material\";\nimport { getLabel, toSlug } from \"./utils\";\n\nconst TextQuestionField = ({\n question,\n questionClassName = \"\",\n isDisabled = false,\n children,\n setFieldValue,\n ...rest\n}) => {\n const questionSlug = toSlug(question.name, question.id);\n const questionLabel = getLabel(question);\n const isRequired = question.mandatory;\n\n return (\n \n \n \n {children}\n \n \n );\n};\n\nTextQuestionField.propTypes = {\n question: PropTypes.object.isRequired,\n questionClassName: PropTypes.string,\n isDisabled: PropTypes.bool,\n children: PropTypes.node,\n setFieldValue: PropTypes.func\n};\n\nexport default TextQuestionField;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {\n Checkbox,\n FormControl,\n FormControlLabel,\n FormHelperText\n} from \"@mui/material\";\nimport RawHTML from \"../../raw-html\";\nimport { getLabel, toSlug } from \"./utils\";\n\nconst CheckboxQuestionField = ({\n question,\n questionClassName = \"\",\n isDisabled = false,\n children,\n value,\n error,\n helperText,\n setFieldValue,\n ...rest\n}) => {\n const questionSlug = toSlug(question.name, question.id);\n const questionLabel = getLabel(question);\n const isRequired = question.mandatory;\n\n return (\n \n \n {questionLabel}}\n sx={{ marginTop: -1 }}\n /* eslint-disable-next-line react/jsx-props-no-spreading */\n {...rest}\n />\n }\n label={{questionLabel}}\n disabled={isDisabled}\n required={isRequired}\n />\n {children}\n {error && {helperText ?? \" \"}}\n \n \n );\n};\n\nCheckboxQuestionField.propTypes = {\n question: PropTypes.object.isRequired,\n value: PropTypes.bool,\n questionClassName: PropTypes.string,\n isDisabled: PropTypes.bool,\n children: PropTypes.node,\n setFieldValue: PropTypes.func,\n error: PropTypes.bool,\n helperText: PropTypes.string\n};\n\nexport default CheckboxQuestionField;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {\n FormControl,\n FormControlLabel,\n FormHelperText,\n FormLabel,\n Radio,\n RadioGroup\n} from \"@mui/material\";\nimport { getLabel, toSlug } from \"./utils\";\n\nconst RadioListQuestionField = ({\n question,\n questionClassName = \"\",\n isDisabled = false,\n children,\n error,\n helperText,\n setFieldValue,\n ...rest\n}) => {\n const questionSlug = toSlug(question.name, question.id);\n const questionLabel = getLabel(question);\n const isRequired = question.mandatory;\n\n const questionOptions =\n question.values?.map((val) => ({\n label: val.label,\n value: val.id.toString()\n })) || [];\n\n return (\n \n \n {questionLabel}\n {error && {helperText ?? \" \"}}\n \n {questionOptions.map((op) => (\n }\n label={op.label}\n />\n ))}\n \n {children}\n \n \n );\n};\n\nRadioListQuestionField.propTypes = {\n question: PropTypes.object.isRequired,\n questionClassName: PropTypes.string,\n isDisabled: PropTypes.bool,\n children: PropTypes.node,\n error: PropTypes.bool,\n helperText: PropTypes.string,\n setFieldValue: PropTypes.func\n};\n\nexport default RadioListQuestionField;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {\n Checkbox,\n FormControl,\n FormControlLabel,\n FormGroup,\n FormHelperText,\n FormLabel\n} from \"@mui/material\";\nimport { getLabel, toSlug } from \"./utils\";\n\nconst CheckboxListQuestionField = ({\n question,\n questionClassName = \"\",\n isDisabled = false,\n children,\n value,\n onChange,\n setFieldValue,\n error,\n helperText,\n ...rest\n}) => {\n const questionSlug = toSlug(question.name, question.id);\n const questionLabel = getLabel(question);\n const isRequired = question.mandatory;\n const questionMaxValues = question.max_selected_values;\n\n const questionOptions =\n question.values?.map((val) => ({\n label: val.label,\n value: val.id.toString()\n })) || [];\n\n const handleCheckboxListChange = (checked, val) => {\n const currentAns = value || [];\n const maxSelectionReached =\n questionMaxValues !== 0 && currentAns.length === questionMaxValues;\n let newValue;\n\n if (checked) {\n newValue = maxSelectionReached ? currentAns : [...currentAns, val];\n } else {\n newValue = currentAns.filter((v) => v !== val);\n }\n\n setFieldValue(questionSlug, newValue);\n };\n\n return (\n \n \n {questionLabel}\n {error && {helperText ?? \" \"}}\n \n {questionOptions.map((op) => (\n \n handleCheckboxListChange(ev.target.checked, op.value)\n }\n /* eslint-disable-next-line react/jsx-props-no-spreading */\n {...rest}\n />\n }\n label={op.label}\n />\n ))}\n \n {children}\n \n \n );\n};\n\nCheckboxListQuestionField.propTypes = {\n question: PropTypes.object.isRequired,\n value: PropTypes.array,\n questionClassName: PropTypes.string,\n isDisabled: PropTypes.bool,\n onChange: PropTypes.func.isRequired,\n children: PropTypes.node,\n setFieldValue: PropTypes.func,\n error: PropTypes.bool,\n helperText: PropTypes.string\n};\n\nexport default CheckboxListQuestionField;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { FormControl, InputLabel, MenuItem, Select } from \"@mui/material\";\nimport { getLabel, toSlug } from \"./utils\";\n\nconst DropdownQuestionField = ({\n question,\n questionClassName = \"\",\n isDisabled = false,\n setFieldValue,\n children,\n error,\n helperText,\n ...rest\n}) => {\n const questionSlug = toSlug(question.name, question.id);\n const questionLabel = getLabel(question);\n const isRequired = question.mandatory;\n\n const questionOptions =\n question.values?.map((val) => ({\n label: val.label,\n value: val.id\n })) || [];\n\n return (\n \n \n {questionLabel}\n \n {questionOptions.map((op) => (\n \n {op.label}\n \n ))}\n \n {children}\n \n \n );\n};\n\nDropdownQuestionField.propTypes = {\n question: PropTypes.object.isRequired,\n questionClassName: PropTypes.string,\n isDisabled: PropTypes.bool,\n children: PropTypes.node,\n error: PropTypes.bool,\n helperText: PropTypes.string,\n setFieldValue: PropTypes.func\n};\n\nexport default DropdownQuestionField;\n","/**\n * Copyright 2025 OpenStack Foundation\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n * http://www.apache.org/licenses/LICENSE-2.0\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * */\n\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport {\n toSlug,\n isAnswered,\n checkVisibility,\n checkRule\n} from \"./components/utils\";\nimport {\n QuestionType_Checkbox,\n QuestionType_CheckBoxList,\n QuestionType_ComboBox,\n QuestionType_CountryComboBox,\n QuestionType_RadioButtonList,\n QuestionType_Text,\n QuestionType_TextArea\n} from \"./constants\";\nimport TextQuestionField from \"./components/TextQuestionField\";\nimport CheckboxQuestionField from \"./components/CheckboxQuestionField\";\nimport RadioListQuestionField from \"./components/RadioListQuestionField\";\nimport CheckboxListQuestionField from \"./components/CheckboxListQuestionField\";\nimport DropdownQuestionField from \"./components/DropdownQuestionField\";\n\nconst getQuestionFieldComponent = (questionType) => {\n switch (questionType) {\n case QuestionType_TextArea:\n case QuestionType_Text: {\n return TextQuestionField;\n }\n case QuestionType_Checkbox: {\n return CheckboxQuestionField;\n }\n case QuestionType_RadioButtonList: {\n return RadioListQuestionField;\n }\n case QuestionType_CheckBoxList: {\n return CheckboxListQuestionField;\n }\n case QuestionType_CountryComboBox:\n case QuestionType_ComboBox: {\n return DropdownQuestionField;\n }\n default: {\n return React.Fragment;\n }\n }\n};\n\nconst ExtraQuestionsMUI = ({\n extraQuestions,\n className = \"extraQuestions\",\n questionClassName = \"extraQuestion\",\n readOnly = false,\n allowEdit = true,\n formik\n}) => {\n const renderRule = (rule, questionSlug) => {\n const ruleResult = checkRule(formik.values[questionSlug], rule);\n const isVisible = checkVisibility(rule, ruleResult);\n\n if (isVisible) {\n // eslint-disable-next-line no-use-before-define\n return renderQuestion(rule.sub_question);\n }\n\n return null;\n };\n\n const renderQuestion = (q) => {\n const questionSlug = toSlug(q.name, q.id);\n // disable field if edit isn't allowed and the questions is answered\n const isDisabled =\n (!allowEdit && isAnswered(formik.values[questionSlug])) || readOnly;\n const QuestionFieldComponent = getQuestionFieldComponent(q.type);\n\n const formikProps = {\n value: formik.values[questionSlug],\n onChange: formik.handleChange,\n onBlur: formik.handleBlur,\n error:\n formik.touched[questionSlug] && Boolean(formik.errors[questionSlug]),\n helperText: formik.touched[questionSlug] && formik.errors[questionSlug],\n setFieldValue: formik.setFieldValue\n };\n\n return (\n \n {q.sub_question_rules?.map((rule) => renderRule(rule, questionSlug))}\n \n );\n };\n\n return

{extraQuestions.map(renderQuestion)}
;\n};\n\nExtraQuestionsMUI.propTypes = {\n extraQuestions: PropTypes.array.isRequired,\n className: PropTypes.string,\n questionClassName: PropTypes.string,\n allowEdit: PropTypes.bool,\n readOnly: PropTypes.bool\n};\n\nexport default ExtraQuestionsMUI;\n","export const QuestionType_Text = \"Text\";\nexport const QuestionType_TextArea = \"TextArea\";\nexport const QuestionType_Checkbox = \"CheckBox\";\nexport const QuestionType_RadioButtonList = \"RadioButtonList\";\nexport const QuestionType_ComboBox = \"ComboBox\";\nexport const QuestionType_CheckBoxList = \"CheckBoxList\";\nexport const QuestionType_CountryComboBox = \"CountryComboBox\";\nexport const QuestionType_RadioButton = \"RadioButton\";\n"],"names":["root","factory","exports","module","define","amd","this","_ref","children","replaceNewLine","className","rest","_objectWithoutProperties","_excluded","React","_extends","dangerouslySetInnerHTML","__html","replace","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","toSlug","text","questionId","toLowerCase","getLabel","q","_q$label","label","TextQuestionField","question","questionClassName","isDisabled","setFieldValue","questionSlug","name","id","questionLabel","isRequired","mandatory","FormGroup","TextField","disabled","required","fullWidth","margin","propTypes","PropTypes","CheckboxQuestionField","error","helperText","FormControl","FormControlLabel","sx","alignItems","control","Checkbox","checked","RawHTML","marginTop","FormHelperText","RadioListQuestionField","_question$values","questionOptions","values","map","val","toString","FormLabel","RadioGroup","op","Radio","CheckboxListQuestionField","onChange","questionMaxValues","max_selected_values","includes","ev","handleCheckboxListChange","currentAns","maxSelectionReached","length","newValue","filter","v","target","DropdownQuestionField","InputLabel","Select","labelId","style","marginBottom","MenuItem","ExtraQuestionsMUI","extraQuestions","readOnly","allowEdit","formik","renderRule","rule","ruleResult","checkRule","answer_values","Array","isArray","res","answer_values_operator","forEach","isVisible","checkVisibility","visibility","visibility_condition","renderQuestion","sub_question","_q$sub_question_rules","answer","isAnswered","QuestionFieldComponent","questionType","getQuestionFieldComponent","type","formikProps","handleChange","onBlur","handleBlur","touched","Boolean","errors","sub_question_rules"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/components/extra-questions.js b/lib/components/extra-questions.js new file mode 100644 index 00000000..2fca7d99 --- /dev/null +++ b/lib/components/extra-questions.js @@ -0,0 +1,2 @@ +!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={7017:(e,t,a)=>{a.d(t,{default:()=>p});var r=a(2462),n=a.n(r),l=a(9825),s=a.n(l),i=a(2015),o=a.n(i),u=a(6842),c=a.n(u),d=a(5028);a(1536);const m=["onChange","value","className","options","id","children","error","disabled","name","ariaLabelledBy"];class p extends o().Component{constructor(e){super(e);let t=!!e.value&&e.value.find((t=>!e.options.map((e=>e.value)).includes(t)));this.state={otherChecked:!!t},this.handleChange=this.handleChange.bind(this),this.handleOtherCBChange=this.handleOtherCBChange.bind(this)}handleChange(e){let t=this.props.options.map((e=>e.value)),a=this.props.value?[...this.props.value]:[];if("checkbox"===e.target.type)if(e.target.checked){const t=isNaN(e.target.value)?e.target.value:parseInt(e.target.value);a.push(t)}else a=a.filter((t=>t!=e.target.value));else a=a.filter((e=>t.includes(e))),a.push(e.target.value);let r={target:{id:this.props.id,value:a,type:"checkboxlist"}};this.props.onChange(r)}handleOtherCBChange(e){this.setState({otherChecked:e.target.checked})}render(){let e,t=this.props,{onChange:a,value:r,className:l,options:s,id:i,children:u,error:p,disabled:h,name:b,ariaLabelledBy:g}=t,{otherChecked:f}=(n()(t,m),this.state),v=this.props.hasOwnProperty("inline"),y=this.props.hasOwnProperty("allowOther"),_=!!r&&r.find((e=>!s.map((e=>e.value)).includes(e))),E=this.props.hasOwnProperty("error")&&""!==p,q=this.props.hasOwnProperty("disabled")&&1==h;return e=v?{paddingLeft:"22px",marginLeft:"20px",float:"left"}:{paddingLeft:"22px",marginTop:"7px"},o().createElement("div",{id:`chl_wrapper_${i}`,"aria-labelledby":g},o().createElement("div",{className:"checkboxes-div"+(E?" error":"")},s.map((t=>{let a=!!r&&r.includes(t.value);return o().createElement("div",{className:"form-check abc-checkbox",key:"radio_key_"+t.value,style:e},o().createElement("input",{type:"checkbox",id:`cb_${i}_${t.value}`,name:b||i,checked:a,disabled:q,onChange:this.handleChange,className:"form-check-input",value:t.value}),o().createElement("label",{className:"form-check-label",htmlFor:`cb_${i}_${t.value}`},o().createElement(d.default,null,t.label)))})),y&&o().createElement("div",{className:"form-check abc-checkbox",style:e},o().createElement("input",{type:"checkbox",id:"cb_other"+i,checked:f,disabled:q,onChange:this.handleOtherCBChange,className:"form-check-input",value:"other"}),o().createElement("label",{className:"form-check-label",htmlFor:"cb_other"+i},c().translate("general.other"))),y&&f&&o().createElement("div",{style:{paddingLeft:"22px",width:"50%"}},o().createElement("input",{className:"form-control",disabled:q,onChange:this.handleChange,value:_}))),E&&o().createElement("p",{className:"error-label"},p))}}p.defaultProps={ariaLabelledBy:null},p.propTypes={id:s().string.isRequired}},6604:(e,t,a)=>{a.d(t,{default:()=>g});var r=a(6031),n=a.n(r),l=a(1116),s=a.n(l),i=a(2462),o=a.n(i),u=a(2015),c=a.n(u),d=a(8466),m=a.n(d);const p=["onChange","value","className","error","clearable","disabled","overrideCSS","ariaLabelledBy"];function h(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function b(e){for(var t=1;te.value)):null:e?e.value:null;let a={target:{id:this.props.id,value:t,type:"dropdown"}};this.props.onChange(a)}render(){let e=this.props,{onChange:t,value:a,className:r,error:l,clearable:s,disabled:i,overrideCSS:u,ariaLabelledBy:d}=e,h=o()(e,p),g=this.props.hasOwnProperty("error")&&""!=l,f=this.props.hasOwnProperty("clearable"),v=this.props.hasOwnProperty("disabled")&&1==i,y=null,_=r;this.props.hasOwnProperty("overrideCSS")&&0!=u||(_="dropdown "+r+" "+(g?"error":"")),y=this.props.isMulti?this.props.options.filter((e=>a.includes(e.value))):a instanceof Object||null==a?a:this.props.options.find((e=>e.value==a));const E={menu:e=>b(b({},e),{},{zIndex:999})};return c().createElement("div",null,c().createElement(m(),n()({className:_,value:y,onChange:this.handleChange,isClearable:f,isDisabled:v,styles:E,"aria-labelledby":d,formatOptionLabel:e=>c().createElement("span",{dangerouslySetInnerHTML:{__html:e.label}})},h)),g&&c().createElement("p",{className:"error-label"},l))}}g.defaultProps={ariaLabelledBy:null}},5639:(e,t,a)=>{a.d(t,{default:()=>d});var r=a(2462),n=a.n(r),l=a(2015),s=a.n(l),i=a(5028),o=a(9825),u=a.n(o);a(1536);const c=["onChange","value","className","error","ariaLabelledBy","disabled","options","id","name"];class d extends s().Component{constructor(e){super(e),this.state={value:e.value},this.handleChange=this.handleChange.bind(this)}handleChange(e){let t={target:{id:this.props.id,value:e.target.value,type:"radio"}};this.props.onChange(t)}getLabel(e,t,a,r){return a?s().createElement("label",{className:"form-check-label",htmlFor:`radio_${t}_${e.value}`,style:{display:"inline-block"}},s().createElement(i.default,null,e.label)):r?s().createElement("label",{className:"form-check-label",htmlFor:`radio_${t}_${e.value}`},e.label):s().createElement("label",{className:"form-check-label",htmlFor:`radio_${t}_${e.value}`,style:{display:"inline-block"}},s().createElement("h4",{style:{marginTop:"0px"}},e.label),s().createElement(i.default,null,e.description))}render(){let e,t=this.props,{onChange:a,value:r,className:l,error:i,ariaLabelledBy:o,disabled:u,options:d,id:m,name:p}=t,h=(n()(t,c),this.props.hasOwnProperty("error")&&""!=i),b=this.props.hasOwnProperty("inline"),g=this.props.hasOwnProperty("simple"),f=this.props.hasOwnProperty("disabled")&&1==u;return e=b?{paddingLeft:"22px",marginLeft:"20px",float:"left"}:{paddingLeft:"22px"},s().createElement("div",{id:`rl_wrapper_${m}`,"aria-labelledby":o},d.map((t=>{let a=t.value==r;return s().createElement("div",{className:"form-check abc-radio",key:`radio_key_${m}_${t.value}`,style:e},s().createElement("input",{className:"form-check-input",type:"radio",id:`radio_${m}_${t.value}`,value:t.value,checked:a,onChange:this.handleChange,disabled:f,name:p||`radio_${m}`}),this.getLabel(t,m,b,g))})),h&&s().createElement("p",{className:"error-label"},i))}}d.defaultProps={ariaLabelledBy:null},d.propTypes={id:u().string.isRequired}},7651:(e,t,a)=>{a.d(t,{default:()=>c});var r=a(6031),n=a.n(r),l=a(2462),s=a.n(l),i=a(2015),o=a.n(i);const u=["onChange","value","className","error","ariaLabelledBy","containerClassName"];class c extends o().Component{constructor(e){super(e),this.handleChange=this.handleChange.bind(this)}componentDidUpdate(e,t,a){this.props.value!==e.value&&(this.input.value=this.props.value)}handleChange(e){this.props.onChange(e)}render(){let e=this.props,{onChange:t,value:a,className:r,error:l,ariaLabelledBy:i,containerClassName:c}=e,d=s()(e,u),m=this.props.hasOwnProperty("error")&&""!==l,p=this.props.hasOwnProperty("className")?r:"form-control",h=this.props.hasOwnProperty("containerClassName")?c:"container-form-control";return o().createElement("div",{className:h},o().createElement("input",n()({className:`${p} ${m?"error":""}`,ref:e=>{this.input=e},defaultValue:a,"aria-labelledby":i,onChange:this.handleChange},d)),m&&o().createElement("p",{className:"error-label"},l))}}c.defaultProps={ariaLabelledBy:null}},5028:(e,t,a)=>{a.d(t,{default:()=>c});var r=a(6031),n=a.n(r),l=a(2462),s=a.n(l),i=a(2015),o=a.n(i);const u=["children","replaceNewLine","className"],c=e=>{let{children:t,replaceNewLine:a=!1,className:r=""}=e,l=s()(e,u);return o().createElement("span",n()({className:r,dangerouslySetInnerHTML:{__html:a?null==t?void 0:t.replace(/\n/g,"
"):t}},l))}},9558:(e,t,a)=>{a.d(t,{toSlug:()=>r});a(5812),a(8041);const r=e=>(e=e.toLowerCase()).replace(/[^a-zA-Z0-9]+/g,"_")},356:(e,t,a)=>{a.d(t,{default:()=>h});var r=a(1116),n=a.n(r),l=a(9558);function s(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t{if(this.questionByName[(0,l.toSlug)(e.name)]=e,this.questionById[parseInt(e.id)]=e,e.hasOwnProperty("sub_question_rules"))for(let t of e.sub_question_rules)this.rules[parseInt(t.id)]=t,this._parseQuestion(t.sub_question)})),n()(this,"_parseQuestions",(()=>{for(let e of this.questions)this._parseQuestion(e)})),n()(this,"_allowsValues",(e=>d.includes(e.type))),n()(this,"_allowsValue",((e,t)=>{let a=t.value.split(",").map((e=>parseInt(e)));for(let t of a)if(!e.values.map((e=>e.id)).includes(t))return!1;return!0})),n()(this,"_getAnswerFor",(e=>{let t=Number.isInteger(e)?e:e.id,a=this.answers[t]||null;return a||null})),n()(this,"_hasValue",(e=>""!==e.value)),n()(this,"_answerContains",((e,t)=>e.value.split(",").includes(t))),n()(this,"_isSubQuestionVisible",(e=>{let t=e.answer_values_operator===m;const a=this._getAnswerFor(e.parent_question_id);if(a)switch(e.visibility_condition){case p:for(let r of e.answer_values)t=e.answer_values_operator===m?t&&this._answerContains(a,r):t||this._answerContains(a,r);break;case"NotEqual":for(let r of e.answer_values)t=e.answer_values_operator===m?t&&!this._answerContains(a,r):t||!this._answerContains(a,r)}else t=e.visibility_condition!==p;return"Visible"===e.visibility?t:!t})),n()(this,"_isAnswered",(e=>{const t=this._getAnswerFor(e);if("MainQuestion"===e.class)return!e.mandatory||!!t&&(!!this._hasValue(t)&&!(this._allowsValues(e)&&!this._allowsValue(e,t)));for(let a of e.parent_rules)if(this._isSubQuestionVisible(this.rules[a]))return!e.mandatory||!!t&&(!!this._hasValue(t)&&!(this._allowsValues(e)&&!this._allowsValue(e,t)));return!0})),n()(this,"_checkQuestion",(e=>{let t=this._isAnswered(e);if(e.hasOwnProperty("sub_question_rules"))for(let a of e.sub_question_rules)t=t&&this._checkQuestion(a.sub_question);return t})),n()(this,"_formatQuestionAnswer",(e=>{var t,a;let r={};const n=(0,l.toSlug)(e.name);let s=null===(t=this.originalAnswers.find((t=>t.question_id===e.id)))||void 0===t?void 0:t.value;if(!s&&(null==e||null===(a=e.values)||void 0===a?void 0:a.length)>0){const t=e.values.find((e=>e.is_default));t&&(s=t.id.toString())}if(s&&("CheckBox"===e.type&&(s="false"!==s&&!!s),e.type!==c&&e.type!==o||(s=parseInt(s)),e.type===u&&(s=s.split(",").map((e=>parseInt(e)))||[])),r[n]=s||"",e.type===u&&""===r[n]&&(r[n]=[]),e.hasOwnProperty("sub_question_rules"))for(let t of e.sub_question_rules){let e=this._formatQuestionAnswer(t.sub_question);r=i(i({},r),e)}return r})),n()(this,"formatAnswers",(()=>{let e={};return this.questions.forEach((t=>{let a=this._formatQuestionAnswer(t);e=i(i({},e),a)})),e})),n()(this,"completed",(()=>{let e=!0;for(let t of this.questions)e=e&&this._checkQuestion(t);return e})),n()(this,"getQuestionByName",(e=>{const t=(0,l.toSlug)(e);return this.questionByName[e]||this.questionByName[t]||null})),n()(this,"getQuestionById",(e=>this.questionById[parseInt(e)]||null)),this.questions=e,this.originalAnswers=t,this.answers=[];for(let e of this.originalAnswers)this.answers[e.question_id]=e;this.questionByName={},this.questionById={},this.rules={},this._parseQuestions()}}},1116:e=>{e.exports=require("@babel/runtime/helpers/defineProperty")},6031:e=>{e.exports=require("@babel/runtime/helpers/extends")},2462:e=>{e.exports=require("@babel/runtime/helpers/objectWithoutProperties")},1536:e=>{e.exports=require("awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css")},6842:e=>{e.exports=require("i18n-react/dist/i18n-react")},5812:e=>{e.exports=require("moment-timezone")},9825:e=>{e.exports=require("prop-types")},2015:e=>{e.exports=require("react")},8466:e=>{e.exports=require("react-select")},8041:e=>{e.exports=require("urijs")}},t={};function a(r){var n=t[r];if(void 0!==n)return n.exports;var l=t[r]={exports:{}};return e[r](l,l.exports,a),l.exports}(()=>{a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t}})(),(()=>{a.d=(e,t)=>{for(var r in t)a.o(t,r)&&!a.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}})(),(()=>{a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)})(),(()=>{a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}})();var r={};a.r(r),a.d(r,{default:()=>B});var n=a(6031),l=a.n(n),s=a(2462),i=a.n(s),o=a(2015),u=a.n(o),c=a(9825),d=a.n(c),m=a(7651),p=a(6604),h=a(5639),b=a(7017),g=a(356);const f=require("react-final-form");var v=a(9558);const y="CheckBox",_="RadioButton";a(1536);const E=["input","meta","question","className","isDisabled","isRequired"],q=["input","meta","question","isDisabled","isRequired"],w=["input","meta","question","isDisabled","isRequired"],C=["input","meta","question","isDisabled","isRequired","maxValues"],S=e=>{let{input:t,meta:a,question:r,className:n,isDisabled:s,isRequired:o}=e,c=i()(e,E);return u().createElement(m.default,l()({},t,c,{containerClassName:n,name:(0,v.toSlug)(r.name),ariaLabelledBy:`${(0,v.toSlug)(r.name)} label`,id:(0,v.toSlug)(r.name),value:t.value,disabled:s,required:o,onChange:t.onChange,placeholder:r.placeholder}))},N=e=>{let{input:t,meta:a,question:r,isDisabled:n,isRequired:s}=e,o=i()(e,q);return u().createElement(h.default,l()({},t,o,{name:(0,v.toSlug)(r.name),ariaLabelledBy:`${(0,v.toSlug)(r.name)} label`,id:(0,v.toSlug)(r.name),overrideCSS:!0,value:t.value,disabled:n,required:s,onChange:t.onChange}))},k=e=>{let{input:t,meta:a,question:r,isDisabled:n,isRequired:s}=e,o=i()(e,w);return u().createElement(p.default,l()({},t,o,{name:(0,v.toSlug)(r.name),ariaLabelledBy:`${(0,v.toSlug)(r.name)} label`,id:(0,v.toSlug)(r.name),overrideCSS:!0,className:"ddl-extra-questions-container",classNamePrefix:"ddl-extra-questions",value:t.value,disabled:n,required:s,onChange:t.onChange}))},x=e=>{let{input:t,meta:a,question:r,isDisabled:n,isRequired:s,maxValues:o}=e,c=i()(e,C);return u().createElement(b.default,l()({},t,c,{id:(0,v.toSlug)(r.name),name:(0,v.toSlug)(r.name),ariaLabelledBy:`${(0,v.toSlug)(r.name)} label`,value:t.value,disabled:n,required:s,onChange:e=>{const a=e.target.value;return o>0&&a.length>o?null:t.onChange(e)}}))},O=e=>e?e=>e?void 0:"Required":()=>{},P=u().forwardRef((({extraQuestions:e,userAnswers:t,onAnswerChanges:a,className:r="questions-form",questionContainerClassName:n="question-container",questionLabelContainerClassName:l="question-label-container",questionControlContainerClassName:s="question-control-container",readOnly:i=!1,debug:c=!1,buttonText:d="Submit",RequiredErrorMessage:m="Required",ValidationErrorClassName:p="extra-question-error",allowExtraQuestionsEdit:h=!0,onError:b=e=>console.log("form errors: ",e),shouldScroll2FirstError:E=!0},q)=>{let w=null;const C=(0,o.useRef)({}),P=(0,o.useRef)(null),[B,L]=(0,o.useState)({});(0,o.useEffect)((()=>{F()}),[e]),(0,o.useImperativeHandle)(q,(()=>({doSubmit(){var e;null===(e=P.current)||void 0===e||e.dispatchEvent(new Event("submit",{cancelable:!0,bubbles:!0}))},scroll2QuestionById(e){H(e)}})));const j=e=>(C.current[e]||(C.current[e]=u().createRef()),C.current[e]),F=()=>{const a=new g.default(e,t);L(a.formatAnswers())},$=({when:e,rule:t,children:a})=>u().createElement(f.Field,{name:e,subscription:{value:!0}},(({input:{value:e}})=>D(t,A(e,t),a))),R=({name:e})=>u().createElement(f.Field,{name:e,subscription:{error:!0,touched:!0,submitFailed:!0}},(({meta:{error:e,touched:t,submitFailed:a}})=>e&&(t||a)?u().createElement("div",{className:p},e):null)),A=(e,t)=>{let a=t.answer_values;if(Array.isArray(e)){if(!e.length)return!1;let r="And"===t.answer_values_operator;return a.forEach((a=>{r="And"===t.answer_values_operator?r&&e.includes(parseInt(a)):r||e.includes(parseInt(a))})),r}return a.includes(e.toString())},D=(e,t,a)=>"Visible"===e.visibility?"Equal"===e.visibility_condition?t?a:(delete C.current[e.sub_question.id],null):t?(delete C.current[e.sub_question.id],null):a:"Equal"===e.visibility_condition?t?(delete C.current[e.sub_question.id],null):a:t?a:(delete C.current[e.sub_question.id],null),I=e=>{var t;const a=String.fromCharCode(160),r=null==e||null===(t=e.label)||void 0===t?void 0:t.replace(/\n/g,"
").replace(/

(.*)<\/p>/gi,"$1"),n=[y,_],l=e.mandatory&&!n.includes(e.type)?`${r}${a}*`:r;return u().createElement("label",{dangerouslySetInnerHTML:{__html:l},htmlFor:(0,v.toSlug)(e.name),id:`${(0,v.toSlug)(e.name)} label`})},Q=e=>{let t=e.values;const a=!h&&((e,t)=>{const a=(0,v.toSlug)(e.name);if(!t.hasOwnProperty(a))return!1;const r=t[a];return Array.isArray(r)||"string"==typeof r?r.length>0:"number"==typeof r?r>0:"boolean"==typeof r&&r})(e,B);var r,i,c,d;if("Text"===e.type)return u().createElement(o.Fragment,{key:(0,v.toSlug)(e.name)},u().createElement("div",{ref:j(e.id),className:n},u().createElement("span",{className:l},I(e)),u().createElement("div",{className:s},u().createElement(f.Field,{name:(0,v.toSlug)(e.name),question:e,isDisabled:a,isRequired:e.mandatory,validate:O(e.mandatory),component:S}),u().createElement(R,{name:(0,v.toSlug)(e.name)}))),(null===(r=e.sub_question_rules)||void 0===r?void 0:r.length)>0&&e.sub_question_rules.map((t=>u().createElement($,{key:t.id,when:(0,v.toSlug)(e.name),rule:t},Q(t.sub_question)))));if("TextArea"===e.type)return u().createElement(o.Fragment,{key:(0,v.toSlug)(e.name)},u().createElement("div",{ref:j(e.id),className:n},u().createElement("span",{className:l},I(e)),u().createElement("div",{className:s},u().createElement(f.Field,{validate:O(e.mandatory),name:(0,v.toSlug)(e.name),id:(0,v.toSlug)(e.name),disabled:a,required:e.mandatory,component:"textarea"}),u().createElement(R,{name:(0,v.toSlug)(e.name)}))),(null===(i=e.sub_question_rules)||void 0===i?void 0:i.length)>0&&e.sub_question_rules.map((t=>u().createElement($,{key:t.id,when:(0,v.toSlug)(e.name),rule:t},Q(t.sub_question)))));if(e.type===y)return u().createElement(o.Fragment,{key:(0,v.toSlug)(e.name)},u().createElement("div",{ref:j(e.id),className:`${n} checkbox-wrapper`},u().createElement("div",{className:`${s} input-wrapper`},u().createElement("div",{className:"form-check abc-checkbox"},u().createElement(f.Field,{name:(0,v.toSlug)(e.name),id:(0,v.toSlug)(e.name),validate:O(e.mandatory),disabled:a,required:e.mandatory,type:"checkbox",className:"form-check-input",component:"input"}),u().createElement("label",{className:"form-check-label",htmlFor:(0,v.toSlug)(e.name)}),e.mandatory&&u().createElement("span",{className:"checkbox-mandatory"},u().createElement("b",null,"*")))),u().createElement("span",{className:`eq-checkbox-label ${l}`},I(e))),u().createElement(R,{name:(0,v.toSlug)(e.name)}),(null===(c=e.sub_question_rules)||void 0===c?void 0:c.length)>0&&e.sub_question_rules.map((t=>u().createElement($,{key:t.id,when:(0,v.toSlug)(e.name),rule:t},Q(t.sub_question)))));if(e.type===_)return u().createElement(o.Fragment,{key:(0,v.toSlug)(e.name)},u().createElement("div",{ref:j(e.id),className:`${n} checkbox-wrapper`},u().createElement("div",{className:`${s} input-wrapper`},u().createElement("div",{className:"form-check abc-radio"},u().createElement(f.Field,{name:(0,v.toSlug)(e.name),id:(0,v.toSlug)(e.name),validate:O(e.mandatory),disabled:a,required:e.mandatory,type:"radio",className:"form-check-input",value:"true",component:"input"}),u().createElement("label",{className:"form-check-label",htmlFor:(0,v.toSlug)(e.name)}),e.mandatory&&u().createElement("span",{className:"checkbox-mandatory"},u().createElement("b",null,"*")))),u().createElement("span",{className:`eq-checkbox-label ${l}`},I(e))),u().createElement(R,{name:(0,v.toSlug)(e.name)}),(null===(d=e.sub_question_rules)||void 0===d?void 0:d.length)>0&&e.sub_question_rules.map((t=>u().createElement($,{key:t.id,when:(0,v.toSlug)(e.name),rule:t},Q(t.sub_question)))));if("RadioButtonList"===e.type){var m;const r=t.map((e=>({label:e.label,value:e.id})));return u().createElement(o.Fragment,{key:(0,v.toSlug)(e.name)},u().createElement("div",{ref:j(e.id),className:n},u().createElement("span",{className:l},I(e)),u().createElement("div",{className:s},u().createElement(f.Field,{name:(0,v.toSlug)(e.name),options:r,question:e,validate:O(e.mandatory),isDisabled:a,isRequired:e.mandatory,component:N}),u().createElement(R,{name:(0,v.toSlug)(e.name)}))),(null===(m=e.sub_question_rules)||void 0===m?void 0:m.length)>0&&e.sub_question_rules.map((t=>u().createElement($,{key:t.id,when:(0,v.toSlug)(e.name),rule:t},Q(t.sub_question)))))}if("ComboBox"===e.type||"CountryComboBox"===e.type){var p;const r=t.map((e=>({label:e.label,value:e.id})));return u().createElement(o.Fragment,{key:(0,v.toSlug)(e.name)},u().createElement("div",{ref:j(e.id),className:n},u().createElement("span",{className:l},I(e)),u().createElement("div",{className:`${s} reactSelectDropdown`},u().createElement(f.Field,{name:(0,v.toSlug)(e.name),options:r,question:e,validate:O(e.mandatory),isDisabled:a,isRequired:e.mandatory,component:k}),u().createElement(R,{name:(0,v.toSlug)(e.name)}))),(null===(p=e.sub_question_rules)||void 0===p?void 0:p.length)>0&&e.sub_question_rules.map((t=>u().createElement($,{key:t.id,when:(0,v.toSlug)(e.name),rule:t},Q(t.sub_question)))))}if("CheckBoxList"===e.type){var b;const r=t.map((e=>({label:e.label,value:e.id})));return u().createElement(o.Fragment,{key:(0,v.toSlug)(e.name)},u().createElement("div",{ref:j(e.id),className:n},u().createElement("span",{className:l},I(e)),u().createElement("div",{className:s},u().createElement(f.Field,{name:(0,v.toSlug)(e.name),className:s,validate:O(e.mandatory),options:r,question:e,maxValues:e.max_selected_values,isDisabled:a,isRequired:e.mandatory,component:x}),u().createElement(R,{name:(0,v.toSlug)(e.name)}))),(null===(b=e.sub_question_rules)||void 0===b?void 0:b.length)>0&&e.sub_question_rules.map((t=>u().createElement($,{key:t.id,when:(0,v.toSlug)(e.name),rule:t},Q(t.sub_question)))))}return null},V=(e,t,a)=>{var r;if(e.mandatory&&(e=>!!C.current[e.id])(e)){const r=(0,v.toSlug)(e.name);t.hasOwnProperty((0,v.toSlug)(r))&&""!==t[(0,v.toSlug)(r)]&&0!==t[r].length||(a[r]=m)}null===(r=e.sub_question_rules)||void 0===r||r.forEach((e=>{V(e.sub_question,t,a)}))};if(!Object.keys(B).length)return null;const T=(e,t,a)=>{var r;t.includes((0,v.toSlug)(e.name))&&a.push(e),null===(r=e.sub_question_rules)||void 0===r||r.forEach((e=>{T(e.sub_question,t,a)}))},M=t=>{const a=[];return e.forEach((e=>{T(e,t,a)})),a.sort(((e,t)=>e.order>t.order))[0]},H=e=>{const t=C.current[e];t&&t.current&&(t.current.focus(),t.current.scrollIntoView({behavior:"smooth",block:"center"}))};return Object.keys(B).length?u().createElement("div",{className:r},u().createElement(f.Form,{validate:t=>{const a={};return e.forEach((e=>{V(e,t,a)})),a},onSubmit:e=>{a(e)},initialValues:B},(({handleSubmit:t,form:a,submitting:r,pristine:n,values:l})=>(w=t,u().createElement("form",{onSubmit:e=>{const r=a.getRegisteredFields().filter((e=>a.getFieldState(e).invalid));if(r.length>0){const e=M(r);b(r,C.current[e.id],e.id),E&&(e=>{const t=M(e);t&&H(t.id)})(r)}t(e)},ref:P},i?u().createElement("fieldset",{disabled:"disabled"},e.map((e=>Q(e)))):e.map((e=>Q(e))),c&&u().createElement("pre",null,JSON.stringify(l,0,2)))))),!q&&u().createElement("button",{type:"submit",onClick:e=>{w(e)},style:{marginTop:10}},d)):null}));P.propTypes={extraQuestions:d().array.isRequired,userAnswers:d().array.isRequired,onAnswerChanges:d().func.isRequired,className:d().string,debug:d().bool,buttonText:d().string,questionContainerClassName:d().string,questionLabelContainerClassName:d().string,questionControlContainerClassName:d().string,RequiredErrorMessage:d().string,ValidationErrorClassName:d().string,allowExtraQuestionsEdit:d().bool,shouldScroll2FirstError:d().bool,readOnly:d().bool};const B=P;return r})())); +//# sourceMappingURL=extra-questions.js.map \ No newline at end of file diff --git a/lib/components/extra-questions.js.map b/lib/components/extra-questions.js.map new file mode 100644 index 00000000..82655034 --- /dev/null +++ b/lib/components/extra-questions.js.map @@ -0,0 +1 @@ +{"version":3,"file":"components/extra-questions.js","mappings":"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","sources":["webpack://openstack-uicore-foundation/webpack/universalModuleDefinition","webpack://openstack-uicore-foundation/./src/components/inputs/checkbox-list.js","webpack://openstack-uicore-foundation/./src/components/inputs/dropdown.js","webpack://openstack-uicore-foundation/./src/components/inputs/radio-list.js","webpack://openstack-uicore-foundation/./src/components/inputs/text-input.js","webpack://openstack-uicore-foundation/./src/components/raw-html/index.js","webpack://openstack-uicore-foundation/./src/utils/methods.js","webpack://openstack-uicore-foundation/./src/utils/questions-set.js","webpack://openstack-uicore-foundation/external commonjs \"@babel/runtime/helpers/defineProperty\"","webpack://openstack-uicore-foundation/external commonjs \"@babel/runtime/helpers/extends\"","webpack://openstack-uicore-foundation/external commonjs \"@babel/runtime/helpers/objectWithoutProperties\"","webpack://openstack-uicore-foundation/external commonjs \"awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css\"","webpack://openstack-uicore-foundation/external commonjs \"i18n-react/dist/i18n-react\"","webpack://openstack-uicore-foundation/external commonjs \"moment-timezone\"","webpack://openstack-uicore-foundation/external commonjs \"prop-types\"","webpack://openstack-uicore-foundation/external commonjs \"react\"","webpack://openstack-uicore-foundation/external commonjs \"react-select\"","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-final-form\"","webpack://openstack-uicore-foundation/./src/components/extra-questions/constants.js","webpack://openstack-uicore-foundation/./src/components/extra-questions/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 ","/**\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 **/\nimport PropTypes from 'prop-types'\nimport React from 'react';\nimport T from 'i18n-react/dist/i18n-react';\nimport RawHTML from '../raw-html';\n\nimport \"awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css\";\n\nexport default class CheckboxList extends React.Component {\n\n constructor(props) {\n super(props);\n\n let otherValue = props.value ? props.value.find( v => !props.options.map(op => op.value).includes(v) ) : false;\n\n this.state = {\n otherChecked: !!otherValue\n };\n\n this.handleChange = this.handleChange.bind(this);\n this.handleOtherCBChange = this.handleOtherCBChange.bind(this);\n }\n\n handleChange(event) {\n let optionValues = this.props.options.map(op => op.value);\n let value = this.props.value ? [...this.props.value] : [];\n\n if (event.target.type === 'checkbox') {\n if (event.target.checked) {\n const theVal = isNaN(event.target.value) ? event.target.value : parseInt(event.target.value);\n value.push(theVal);\n } else {\n value = value.filter( v => v != event.target.value )\n }\n } else {\n value = value.filter(v => optionValues.includes(v));\n value.push(event.target.value);\n }\n\n let ev = {target: {\n id: this.props.id,\n value: value,\n type: 'checkboxlist'\n }};\n\n this.props.onChange(ev);\n }\n\n handleOtherCBChange(event) {\n this.setState({otherChecked: event.target.checked});\n }\n\n render() {\n\n let {onChange, value, className, options, id, children, error, disabled,name, ariaLabelledBy, ...rest} = this.props;\n let { otherChecked } = this.state;\n\n let inline = ( this.props.hasOwnProperty('inline') );\n let allowOther = ( this.props.hasOwnProperty('allowOther') );\n let otherValue = value ? value.find( v => !options.map(op => op.value).includes(v) ) : false ;\n let has_error = ( this.props.hasOwnProperty('error') && error !== '' );\n let isDisabled = (this.props.hasOwnProperty('disabled') && disabled == true);\n\n\n let style, label;\n\n if (inline) {\n style = {\n paddingLeft: '22px',\n marginLeft: '20px',\n float: 'left'\n };\n } else {\n style = {\n paddingLeft: '22px',\n marginTop: '7px'\n }\n }\n\n return (\n

\n
\n { options.map(op => {\n let checked = value ? value.includes(op.value) : false;\n return (\n
\n \n \n
\n )\n })}\n\n {allowOther &&\n
\n \n \n
\n }\n\n {allowOther && otherChecked &&\n
\n \n
\n }\n\n
\n {has_error &&\n

{error}

\n }\n
\n );\n\n }\n}\n\nCheckboxList.defaultProps = {\n ariaLabelledBy : null,\n}\n\n\nCheckboxList.propTypes = {\n id: PropTypes.string.isRequired\n};\n","/**\n * Copyright 2017 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 Select from 'react-select';\n\nexport default class Dropdown extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.handleChange = this.handleChange.bind(this);\n }\n\n handleChange(selection) {\n\n let value = null;\n if (this.props.isMulti) {\n value = selection ? selection.map(val => val.value) : null;\n } else {\n value = selection ? selection.value : null;\n }\n\n let ev = {target: {\n id: this.props.id,\n value: value,\n type: 'dropdown'\n }};\n\n this.props.onChange(ev);\n }\n\n render() {\n\n let {onChange, value, className, error, clearable, disabled, overrideCSS, ariaLabelledBy, ...rest} = this.props;\n let has_error = ( this.props.hasOwnProperty('error') && error != '' );\n let isClearable = (this.props.hasOwnProperty('clearable'));\n let isDisabled = (this.props.hasOwnProperty('disabled') && disabled == true);\n let theValue = null;\n\n let selectClassName = className;\n\n if (!this.props.hasOwnProperty('overrideCSS') || overrideCSS == false) {\n selectClassName = 'dropdown ' + className + ' ' + (has_error ? 'error' : '');\n }\n\n if (this.props.isMulti) {\n theValue = this.props.options.filter(op => value.includes(op.value));\n } else {\n theValue = (value instanceof Object || value == null) ? value : this.props.options.find(opt => opt.value == value);\n }\n\n const selectStyles = { menu: styles => ({ ...styles, zIndex: 999 }) };\n\n return (\n
\n }\n {...rest}\n />\n {has_error &&\n

{error}

\n }\n
\n );\n\n }\n}\n\nDropdown.defaultProps = {\n ariaLabelledBy : null,\n}\n","/**\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 React from 'react';\nimport RawHTML from '../raw-html';\nimport PropTypes from 'prop-types'\n\nimport \"awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css\";\n\nexport default class RadioList extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n value: props.value,\n };\n\n this.handleChange = this.handleChange.bind(this);\n }\n\n handleChange(selection) {\n\n let ev = {target: {\n id: this.props.id,\n value: selection.target.value,\n type: 'radio'\n }};\n\n this.props.onChange(ev);\n }\n\n getLabel(option, id, inline, simple) {\n if (inline) {\n return (\n \n );\n } else if (simple) {\n return (\n \n );\n } else {\n return (\n \n );\n }\n }\n\n render() {\n\n let {onChange, value, className, error, ariaLabelledBy, disabled, options,id, name,...rest} = this.props;\n let has_error = ( this.props.hasOwnProperty('error') && error != '' );\n let inline = ( this.props.hasOwnProperty('inline') );\n let simple = ( this.props.hasOwnProperty('simple') );\n let isDisabled = (this.props.hasOwnProperty('disabled') && disabled == true);\n\n let style, label;\n\n if (inline) {\n style = {\n paddingLeft: '22px',\n marginLeft: '20px',\n float: 'left'\n };\n\n\n } else {\n style = {\n paddingLeft: '22px'\n }\n }\n\n return (\n
\n { options.map(op => {\n let checked = (op.value == value);\n return (\n
\n \n {this.getLabel(op, id, inline, simple)}\n
\n )\n })}\n\n {has_error &&\n

{error}

\n }\n
\n );\n\n }\n}\n\nRadioList.defaultProps = {\n ariaLabelledBy : null,\n}\n\nRadioList.propTypes = {\n id: PropTypes.string.isRequired\n};\n","/**\n * Copyright 2017 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';\n\nexport default class Input extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.handleChange = this.handleChange.bind(this);\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n if (this.props.value !== prevProps.value) {\n this.input.value = this.props.value;\n }\n }\n\n handleChange(ev) {\n this.props.onChange(ev);\n }\n\n render() {\n\n let {onChange, value, className, error, ariaLabelledBy, containerClassName,...rest} = this.props;\n let has_error = ( this.props.hasOwnProperty('error') && error !== '' );\n let class_name = this.props.hasOwnProperty('className') ? className : 'form-control';\n let container_class_name = this.props.hasOwnProperty('containerClassName') ? containerClassName : 'container-form-control';\n return (\n
\n {this.input = node}}\n defaultValue={value}\n aria-labelledby={ariaLabelledBy}\n onChange={this.handleChange}\n {...rest}\n />\n {has_error &&\n

{error}

\n }\n
\n );\n\n }\n}\n\nInput.defaultProps = {\n ariaLabelledBy : null,\n}","import React from 'react';\n\nconst RawHTML = ({children, replaceNewLine = false, className = \"\", ...rest}) =>\n ') : children}} {...rest}/>\n\nexport default RawHTML;","/**\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","export const CheckBoxQuestionType = 'CheckBox';\nexport const ComboBoxQuestionType = 'ComboBox'\nexport const CheckBoxListQuestionType = 'CheckBoxList';\nexport const RadioButtonListQuestionType = 'RadioButtonList';\nexport const AllowedMultipleValueQuestionType = [ComboBoxQuestionType, CheckBoxListQuestionType, RadioButtonListQuestionType];\nexport const AnswerValuesOperator_And = 'And';\nexport const AnswerValuesOperator_Or = 'Or';\nexport const VisibilityCondition_Equal = 'Equal';\nexport const VisibilityCondition_NotEqual = 'NotEqual';\nexport const Visibility_Visible = 'Visible';\nexport const MainQuestionClassType = 'MainQuestion';\nimport {toSlug} from \"./methods\";\n\nexport default class QuestionsSet {\n\n constructor(questions, answers = []) {\n this.questions = questions;\n this.originalAnswers = answers\n this.answers = [];\n // map answers to associate array\n for (let a of this.originalAnswers)\n this.answers[a.question_id] = a;\n this.questionByName = {}\n this.questionById = {}\n // associative array ( rule id , rule);\n this.rules = {};\n this._parseQuestions();\n }\n\n _parseQuestion = (q) => {\n this.questionByName[toSlug(q.name)] = q;\n this.questionById[parseInt(q.id)] = q;\n if(q.hasOwnProperty('sub_question_rules'))\n for (let r of q.sub_question_rules) {\n this.rules[parseInt(r.id)] = r;\n this._parseQuestion(r.sub_question);\n }\n }\n\n _parseQuestions = () => {\n for (let q of this.questions) {\n this._parseQuestion(q);\n }\n }\n\n _allowsValues = (q) => {\n return AllowedMultipleValueQuestionType.includes(q.type);\n }\n\n _allowsValue = (q, answer) => {\n let value = answer.value.split(',').map(v => parseInt(v));\n for (let av of value) {\n if (!q.values.map(e => e.id).includes(av))\n return false;\n }\n return true;\n }\n\n _getAnswerFor = (q) => {\n let id = Number.isInteger(q) ? q : q.id;\n let a = this.answers[id] || null;\n return a ? a : null;\n }\n\n _hasValue = (answer) => {\n return answer.value !== '';\n }\n\n _answerContains = (answer, val) => {\n return answer.value.split(',').includes(val);\n }\n\n _isSubQuestionVisible = (rule) => {\n let initialCondition = rule.answer_values_operator === AnswerValuesOperator_And ? true : false;\n const parentQuestionAnswer = this._getAnswerFor(rule.parent_question_id);\n if (!parentQuestionAnswer) {\n initialCondition = rule.visibility_condition === VisibilityCondition_Equal ? false : true;\n } else {\n switch (rule.visibility_condition) {\n case VisibilityCondition_Equal: {\n for (let answerValue of rule.answer_values) {\n if (rule.answer_values_operator === AnswerValuesOperator_And)\n initialCondition = initialCondition && this._answerContains(parentQuestionAnswer, answerValue);\n else\n initialCondition = initialCondition || this._answerContains(parentQuestionAnswer, answerValue);\n }\n }\n break;\n case VisibilityCondition_NotEqual: {\n for (let answerValue of rule.answer_values) {\n if (rule.answer_values_operator === AnswerValuesOperator_And)\n initialCondition = initialCondition && !this._answerContains(parentQuestionAnswer, answerValue);\n else\n initialCondition = initialCondition || !this._answerContains(parentQuestionAnswer, answerValue);\n }\n }\n break;\n }\n }\n // final visibility check\n if (rule.visibility === Visibility_Visible) {\n return initialCondition;\n }\n // not visible\n return !initialCondition;\n }\n\n _isAnswered = (q) => {\n const answer = this._getAnswerFor(q);\n\n if (q.class === MainQuestionClassType) {\n if (!q.mandatory) return true;\n if (!answer) return false;\n if (!this._hasValue(answer)) return false;\n if (this._allowsValues(q) && !this._allowsValue(q, answer))\n return false;\n return true;\n }\n\n // check parent rules ...\n for (let ruleId of q.parent_rules) {\n if (!this._isSubQuestionVisible(this.rules[ruleId])) // if question is not visible skip it\n continue;\n if (!q.mandatory) return true;\n if (!answer) return false;\n if (!this._hasValue(answer)) return false;\n if (this._allowsValues(q) && !this._allowsValue(q, answer))\n return false;\n return true;\n }\n\n return true;\n }\n\n _checkQuestion = (q) => {\n let res = this._isAnswered(q);\n if(q.hasOwnProperty('sub_question_rules'))\n for (let rule of q.sub_question_rules) {\n // check recursive all the tree till leaves ...\n res = res && this._checkQuestion(rule.sub_question);\n }\n return res;\n }\n\n _formatQuestionAnswer = (question) => {\n let res = {};\n const slug = toSlug(question.name);\n let userAnswer = this.originalAnswers.find(a => a.question_id === question.id)?.value;\n if(!userAnswer && question?.values?.length > 0){\n // check default value\n const defaultVal = question.values.find(v => v.is_default);\n if(defaultVal) userAnswer = defaultVal.id.toString();\n }\n if(userAnswer) {\n if (question.type === CheckBoxQuestionType) userAnswer = userAnswer === 'false' ? false : !!userAnswer;\n if (question.type === RadioButtonListQuestionType || question.type === ComboBoxQuestionType) userAnswer = parseInt(userAnswer);\n if (question.type === CheckBoxListQuestionType) userAnswer = userAnswer.split(',').map(ansVal => parseInt(ansVal)) || [];\n }\n\n res[slug] = userAnswer || '';\n if(question.type === CheckBoxListQuestionType && res[slug] === '') res[slug] = []\n if(question.hasOwnProperty('sub_question_rules'))\n for (let rule of question.sub_question_rules) {\n // check recursive all the tree till leaves ...\n let res1 = this._formatQuestionAnswer(rule.sub_question);\n res = {...res, ...res1};\n }\n return res;\n }\n\n formatAnswers = () => {\n let res = {}\n this.questions.forEach(q => {\n let res1 = this._formatQuestionAnswer(q);\n res = {...res,...res1};\n });\n return res;\n }\n\n completed = () => {\n let res = true;\n for (let q of this.questions) {\n res = res && this._checkQuestion(q);\n }\n return res;\n }\n\n getQuestionByName = (name) => {\n const slug = toSlug(name)\n return this.questionByName[name] || this.questionByName[slug] || null;\n }\n\n getQuestionById = (id) => {\n return this.questionById[parseInt(id)] || null;\n }\n}\n","module.exports = require(\"@babel/runtime/helpers/defineProperty\");","module.exports = require(\"@babel/runtime/helpers/extends\");","module.exports = require(\"@babel/runtime/helpers/objectWithoutProperties\");","module.exports = require(\"awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css\");","module.exports = require(\"i18n-react/dist/i18n-react\");","module.exports = require(\"moment-timezone\");","module.exports = require(\"prop-types\");","module.exports = require(\"react\");","module.exports = require(\"react-select\");","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-final-form\");","export const QuestionType_Text = \"Text\";\nexport const QuestionType_TextArea = \"TextArea\";\nexport const QuestionType_Checkbox = \"CheckBox\";\nexport const QuestionType_RadioButtonList = \"RadioButtonList\";\nexport const QuestionType_ComboBox = \"ComboBox\";\nexport const QuestionType_CheckBoxList = \"CheckBoxList\";\nexport const QuestionType_CountryComboBox = \"CountryComboBox\";\nexport const QuestionType_RadioButton = \"RadioButton\";\n\n","/**\n * Copyright 2017 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, {Fragment, useEffect, useRef, useState, useImperativeHandle} from 'react';\nimport PropTypes from 'prop-types';\nimport Input from '../inputs/text-input'\nimport Dropdown from '../inputs/dropdown'\nimport RadioList from '../inputs/radio-list'\nimport CheckboxList from '../inputs/checkbox-list'\nimport QuestionsSet from '../../utils/questions-set';\nimport {Field, Form} from \"react-final-form\";\nimport {toSlug} from \"../../utils/methods\";\nimport {\n QuestionType_Checkbox,\n QuestionType_CheckBoxList,\n QuestionType_ComboBox,\n QuestionType_CountryComboBox,\n QuestionType_RadioButton,\n QuestionType_RadioButtonList,\n QuestionType_Text,\n QuestionType_TextArea\n} from \"./constants\";\n\nimport \"awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css\";\nimport './index.scss';\n\nconst InputAdapter = ({ input, meta, question, className, isDisabled, isRequired, ...rest }) => {\n\n return (\n \n )\n}\n\nconst RadioButtonListAdapter = ({ input, meta, question, isDisabled, isRequired, ...rest }) => {\n\n return (\n \n )};\n\nconst DropdownAdapter = ({ input, meta, question, isDisabled, isRequired, ...rest }) => {\n\n return ()\n}\n\nconst CheckBoxListAdapter = ({ input, meta, question, isDisabled, isRequired, maxValues, ...rest }) => {\n\n const shouldChange = (ev) => {\n const question_answers = ev.target.value;\n // if there's a max value of options checked and the value from the input is higher than the max, don't change the value\n if (maxValues > 0 && question_answers.length > maxValues) {\n return null\n }\n return input.onChange(ev)\n }\n return (\n \n )\n}\n\nconst getValidator = isRequired =>\n isRequired ? value => (value ? undefined : \"Required\") : () => {};\n\nconst ExtraQuestionsForm = React.forwardRef(({\n extraQuestions,\n userAnswers,\n onAnswerChanges,\n className = 'questions-form',\n questionContainerClassName = 'question-container',\n questionLabelContainerClassName = 'question-label-container',\n questionControlContainerClassName= 'question-control-container',\n readOnly = false,\n debug = false,\n buttonText = 'Submit',\n RequiredErrorMessage = 'Required',\n ValidationErrorClassName = 'extra-question-error',\n allowExtraQuestionsEdit = true,\n onError = (e) => console.log('form errors: ', e),\n shouldScroll2FirstError = true\n }, ref) => {\n\n let submit = null;\n\n const questionRefs = useRef({});\n const formRef = useRef(null);\n const [answers, setAnswers] = useState({});\n\n useEffect(() => {\n formatUserAnswers();\n }, [extraQuestions])\n\n // @see https://beta.reactjs.org/reference/react/useImperativeHandle\n useImperativeHandle(ref, () => ({\n doSubmit() {\n formRef.current?.dispatchEvent(new Event(\"submit\", { cancelable: true, bubbles: true }));\n },\n scroll2QuestionById(questionId) {\n scrollToQuestion(questionId);\n }\n }));\n\n const getQuestionRef = (id) => {\n if (!questionRefs.current[id]) {\n questionRefs.current[id] = React.createRef();\n }\n return questionRefs.current[id];\n };\n\n const formatUserAnswers = () => {\n const qs = new QuestionsSet(extraQuestions, userAnswers);\n setAnswers(qs.formatAnswers());\n }\n\n const Condition = ({when, rule, children}) => (\n \n {({input: {value}}) =>\n checkVisibility(rule, checkRule(value, rule), children)\n }\n \n );\n\n const Error = ({ name }) => (\n \n {({ meta: { error, touched, submitFailed } }) =>\n error && (touched || submitFailed) ?
{error}
: null\n }\n
\n );\n\n const checkRule = (value, rule) => {\n let values = rule.answer_values;\n\n if (Array.isArray(value)) {\n if (!value.length) return false;\n let res = rule.answer_values_operator === \"And\";\n values.forEach((v) => {\n if (rule.answer_values_operator === \"And\") {\n res = res && value.includes(parseInt(v));\n } else {\n // Or\n res = res || value.includes(parseInt(v));\n }\n });\n return res;\n }\n return values.includes(value.toString());\n };\n\n const checkVisibility = (rule, ruleResult, children) => {\n if (rule.visibility === \"Visible\") {\n if (rule.visibility_condition === \"Equal\") {\n if (ruleResult) return children;\n delete questionRefs.current[rule.sub_question.id]\n return null;\n }\n // Non Equal\n if(!ruleResult){\n return children;\n }\n delete questionRefs.current[rule.sub_question.id]\n return null;\n }\n // not visible\n if (rule.visibility_condition === \"Equal\") {\n if (!ruleResult) return children;\n delete questionRefs.current[rule.sub_question.id]\n return null;\n }\n if (ruleResult) return children;\n delete questionRefs.current[rule.sub_question.id]\n return null;\n };\n\n const getLabel = (q) => {\n // Keep the last word and the required asterisk on the same line\n const nonBreakingSpace = String.fromCharCode(160); // equals to  \n // replace line breaks and remove outer

\n const label = q?.label?.replace(/\\n/g, '
').replace(/

(.*)<\\/p>/gi, '$1');\n const questions2Exclude = [QuestionType_Checkbox, QuestionType_RadioButton]\n // Asterisk for mandatory questions only shown on label except for those questions\n // included on questions2Exclude\n const labelText = q.mandatory && !questions2Exclude.includes(q.type) ? `${label}${nonBreakingSpace}*` : label;\n return (

\n {getLabel(q)}\n
\n \n \n
\n
\n {q.sub_question_rules?.length > 0 &&\n q.sub_question_rules.map((r) =>\n (\n \n {renderQuestion(r.sub_question)}\n \n )\n )}\n \n );\n }\n if (q.type === QuestionType_TextArea) {\n return (\n \n
\n {getLabel(q)}\n
\n \n \n
\n
\n {q.sub_question_rules?.length > 0 &&\n q.sub_question_rules.map((r) =>\n (\n \n {renderQuestion(r.sub_question)}\n \n )\n )}\n
\n );\n }\n if (q.type === QuestionType_Checkbox) {\n return (\n \n
\n
\n
\n \n
\n
\n \n {getLabel(q)}\n \n
\n \n {q.sub_question_rules?.length > 0 &&\n q.sub_question_rules.map((r) =>\n (\n \n {renderQuestion(r.sub_question)}\n \n )\n )}\n
\n );\n }\n if (q.type === QuestionType_RadioButton){\n return (\n \n
\n
\n
\n \n
\n
\n \n {getLabel(q)}\n \n
\n \n {q.sub_question_rules?.length > 0 &&\n q.sub_question_rules.map((r) =>\n (\n \n {renderQuestion(r.sub_question)}\n \n )\n )}\n
\n );\n }\n if (q.type === QuestionType_RadioButtonList) {\n const options = questionValues.map(val => ({label : val.label, value : val.id}));\n return (\n \n
\n \n {getLabel(q)}\n \n
\n \n \n
\n
\n {q.sub_question_rules?.length > 0 &&\n q.sub_question_rules.map((r) =>\n (\n \n {renderQuestion(r.sub_question)}\n \n )\n )}\n
\n );\n }\n if (q.type === QuestionType_ComboBox || q.type === QuestionType_CountryComboBox) {\n const options = questionValues.map(val => ({label : val.label, value : val.id}));\n return (\n \n
\n \n {getLabel(q)}\n \n
\n \n \n
\n
\n {q.sub_question_rules?.length > 0 &&\n q.sub_question_rules.map((r) =>\n (\n \n {renderQuestion(r.sub_question)}\n \n )\n )}\n
\n );\n }\n if (q.type === QuestionType_CheckBoxList) {\n const options = questionValues.map(val => ({label : val.label, value : val.id}));\n return (\n \n
\n \n {getLabel(q)}\n \n
\n \n \n
\n
\n {q.sub_question_rules?.length > 0 &&\n q.sub_question_rules.map((r) =>\n (\n \n {renderQuestion(r.sub_question)}\n \n )\n )}\n
\n );\n }\n return null;\n };\n\n const isVisible = (q) => {\n return !!questionRefs.current[q.id];\n };\n\n const validateQuestion = (q, values, errors) => {\n if (q.mandatory && isVisible(q)) {\n const slug = toSlug(q.name);\n if (!values.hasOwnProperty(toSlug(slug)) || values[toSlug(slug)] === \"\" || values[slug].length === 0) {\n errors[slug] = RequiredErrorMessage;\n }\n }\n // validate sub rules\n q.sub_question_rules?.forEach((r) => {\n validateQuestion(r.sub_question, values, errors);\n });\n };\n\n const onSubmit = (values) => {\n onAnswerChanges(values)\n };\n\n const validate = (values) => {\n const errors = {};\n extraQuestions.forEach( q => {\n validateQuestion(q, values, errors);\n });\n return errors;\n }\n\n if(!Object.keys(answers).length) return null;\n\n const getErrorFields = (q, invalidFormFields, errorFields) => {\n if (invalidFormFields.includes(toSlug(q.name))) {\n errorFields.push(q);\n }\n // find errors on sub rules\n q.sub_question_rules?.forEach((r) => {\n getErrorFields(r.sub_question, invalidFormFields, errorFields);\n });\n }\n\n const getFirstError = (invalidFormFields) => {\n const errorFields = [];\n extraQuestions.forEach(q => {\n getErrorFields(q, invalidFormFields, errorFields);\n });\n return errorFields.sort((a, b) => a.order > b.order)[0];\n }\n\n const scrollToFirstError = (invalidFormFields) => {\n const firstError = getFirstError(invalidFormFields);\n if (firstError) {\n scrollToQuestion(firstError.id);\n }\n }\n\n const scrollToQuestion = (questionId) => {\n const ref = questionRefs.current[questionId];\n if (ref && ref.current) {\n ref.current.focus();\n ref.current.scrollIntoView({\n behavior: 'smooth',\n block: 'center'\n });\n }\n };\n\n if (!Object.keys(answers).length) return null;\n\n return (\n
\n \n\n {({handleSubmit, form, submitting, pristine, values}) => {\n submit = handleSubmit;\n return (\n {\n const invalidFormFields = form.getRegisteredFields().filter(field => form.getFieldState(field).invalid);\n if (invalidFormFields.length > 0) {\n const firstError = getFirstError(invalidFormFields);\n // Note: The second argument is an stable reference to the errer extra question\n // This ensures that even after re-renders, we have a consistent reference for actions such as scrolling or focusing.\n // Passing a direct DOM element might not reliably reflect the current element if the component updates.\n onError(invalidFormFields, questionRefs.current[firstError.id], firstError.id);\n if (shouldScroll2FirstError)\n scrollToFirstError(invalidFormFields)\n }\n handleSubmit(event)\n }}\n ref={formRef}>\n {readOnly ?\n
\n {extraQuestions.map((q) => renderQuestion(q))}\n
\n :\n extraQuestions.map((q) => renderQuestion(q))\n }\n {debug &&
{JSON.stringify(values, 0, 2)}
}\n \n );\n }}\n \n {!ref &&\n {\n submit(event);\n }}\n style={{marginTop: 10}}\n >\n {buttonText}\n \n }\n
\n )\n});\n\nExtraQuestionsForm.propTypes = {\n extraQuestions: PropTypes.array.isRequired,\n userAnswers: PropTypes.array.isRequired,\n onAnswerChanges: PropTypes.func.isRequired,\n className: PropTypes.string,\n debug: PropTypes.bool,\n buttonText: PropTypes.string,\n questionContainerClassName: PropTypes.string,\n questionLabelContainerClassName: PropTypes.string,\n questionControlContainerClassName: PropTypes.string,\n RequiredErrorMessage: PropTypes.string,\n ValidationErrorClassName: PropTypes.string,\n allowExtraQuestionsEdit: PropTypes.bool,\n shouldScroll2FirstError: PropTypes.bool,\n readOnly: PropTypes.bool\n};\n\nexport default ExtraQuestionsForm;\n"],"names":["root","factory","exports","module","define","amd","this","CheckboxList","React","constructor","props","super","otherValue","value","find","v","options","map","op","includes","state","otherChecked","handleChange","bind","handleOtherCBChange","event","optionValues","target","type","checked","theVal","isNaN","parseInt","push","filter","ev","id","onChange","setState","render","style","_this$props","className","children","error","disabled","name","ariaLabelledBy","_objectWithoutProperties","_excluded","inline","hasOwnProperty","allowOther","has_error","isDisabled","paddingLeft","marginLeft","float","marginTop","key","htmlFor","RawHTML","label","T","width","defaultProps","propTypes","PropTypes","isRequired","Dropdown","selection","isMulti","val","clearable","overrideCSS","rest","isClearable","theValue","selectClassName","Object","opt","selectStyles","menu","styles","_objectSpread","zIndex","Select","_extends","formatOptionLabel","data","dangerouslySetInnerHTML","__html","RadioList","getLabel","option","simple","display","description","Input","componentDidUpdate","prevProps","prevState","snapshot","input","containerClassName","class_name","container_class_name","ref","node","defaultValue","_ref","replaceNewLine","replace","toSlug","text","toLowerCase","ComboBoxQuestionType","CheckBoxListQuestionType","RadioButtonListQuestionType","AllowedMultipleValueQuestionType","AnswerValuesOperator_And","VisibilityCondition_Equal","QuestionsSet","questions","answers","_defineProperty","q","questionByName","questionById","r","sub_question_rules","rules","_parseQuestion","sub_question","answer","split","av","values","e","Number","isInteger","a","rule","initialCondition","answer_values_operator","parentQuestionAnswer","_getAnswerFor","parent_question_id","visibility_condition","answerValue","answer_values","_answerContains","visibility","class","mandatory","_hasValue","_allowsValues","_allowsValue","ruleId","parent_rules","_isSubQuestionVisible","res","_isAnswered","_checkQuestion","question","_this$originalAnswers","_question$values","slug","userAnswer","originalAnswers","question_id","length","defaultVal","is_default","toString","ansVal","res1","_formatQuestionAnswer","forEach","_parseQuestions","require","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","n","getter","__esModule","d","definition","o","defineProperty","enumerable","get","obj","prop","prototype","call","Symbol","toStringTag","QuestionType_Checkbox","QuestionType_RadioButton","InputAdapter","meta","required","placeholder","RadioButtonListAdapter","_ref2","_excluded2","DropdownAdapter","_ref3","_excluded3","classNamePrefix","CheckBoxListAdapter","_ref4","maxValues","_excluded4","question_answers","getValidator","ExtraQuestionsForm","extraQuestions","userAnswers","onAnswerChanges","questionContainerClassName","questionLabelContainerClassName","questionControlContainerClassName","readOnly","debug","buttonText","RequiredErrorMessage","ValidationErrorClassName","allowExtraQuestionsEdit","onError","console","log","shouldScroll2FirstError","submit","questionRefs","useRef","formRef","setAnswers","useState","useEffect","formatUserAnswers","useImperativeHandle","doSubmit","_formRef$current","current","dispatchEvent","Event","cancelable","bubbles","scroll2QuestionById","questionId","scrollToQuestion","getQuestionRef","qs","formatAnswers","Condition","when","Field","subscription","checkVisibility","checkRule","Error","touched","submitFailed","Array","isArray","ruleResult","_q$label","nonBreakingSpace","String","fromCharCode","questions2Exclude","labelText","renderQuestion","questionValues","isAnswered","_q$sub_question_rules","_q$sub_question_rules2","_q$sub_question_rules3","_q$sub_question_rules4","Fragment","validate","component","_q$sub_question_rules5","_q$sub_question_rules6","_q$sub_question_rules7","max_selected_values","validateQuestion","errors","_q$sub_question_rules8","isVisible","keys","getErrorFields","invalidFormFields","errorFields","_q$sub_question_rules9","getFirstError","sort","b","order","focus","scrollIntoView","behavior","block","Form","onSubmit","initialValues","handleSubmit","form","submitting","pristine","getRegisteredFields","field","getFieldState","invalid","firstError","scrollToFirstError","JSON","stringify","onClick"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/components/form-validation.js b/lib/components/form-validation.js new file mode 100644 index 00000000..e781f1b5 --- /dev/null +++ b/lib/components/form-validation.js @@ -0,0 +1,2 @@ +!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={};(()=>{e.n=r=>{var t=r&&r.__esModule?()=>r.default:()=>r;return e.d(t,{a:t}),t}})(),(()=>{e.d=(r,t)=>{for(var o in t)e.o(t,o)&&!e.o(r,o)&&Object.defineProperty(r,o,{enumerable:!0,get:t[o]})}})(),(()=>{e.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r)})(),(()=>{e.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}})();var r={};e.r(r),e.d(r,{email:()=>l,lt:()=>s,password:()=>u,required:()=>i});const t=require("react");var o=e.n(t);const n=require("validator");var a=e.n(n);const i=e=>{if(!e.toString().trim().length)return o().createElement("p",{className:"error-label"},"Required")},l=e=>{if(!a().isEmail(e))return`${e} is not a valid email.`},s=(e,r)=>{if(!e.toString().trim().length>r.maxLength)return o().createElement("span",{className:"error"},"The value exceeded ",r.maxLength," symbols.")},u=(e,r,t)=>{if(e!==t.confirm[0].value)return o().createElement("span",{className:"error"},"Passwords are not equal.")};return r})())); +//# sourceMappingURL=form-validation.js.map \ No newline at end of file diff --git a/lib/components/form-validation.js.map b/lib/components/form-validation.js.map new file mode 100644 index 00000000..57745f5b --- /dev/null +++ b/lib/components/form-validation.js.map @@ -0,0 +1 @@ +{"version":3,"file":"components/form-validation.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,mBCRT,IAAIC,EAAsB,CAAC,E,MCA3BA,EAAoBC,EAAKL,IACxB,IAAIM,EAASN,GAAUA,EAAOO,WAC7B,IAAOP,EAAiB,QACxB,IAAM,EAEP,OADAI,EAAoBI,EAAEF,EAAQ,CAAEG,EAAGH,IAC5BA,CAAM,C,WCLdF,EAAoBI,EAAI,CAACT,EAASW,KACjC,IAAI,IAAIC,KAAOD,EACXN,EAAoBQ,EAAEF,EAAYC,KAASP,EAAoBQ,EAAEb,EAASY,IAC5EE,OAAOC,eAAef,EAASY,EAAK,CAAEI,YAAY,EAAMC,IAAKN,EAAWC,IAE1E,C,WCNDP,EAAoBQ,EAAI,CAACK,EAAKC,IAAUL,OAAOM,UAAUC,eAAeC,KAAKJ,EAAKC,E,WCClFd,EAAoBkB,EAAKvB,IACH,oBAAXwB,QAA0BA,OAAOC,aAC1CX,OAAOC,eAAef,EAASwB,OAAOC,YAAa,CAAEC,MAAO,WAE7DZ,OAAOC,eAAef,EAAS,aAAc,CAAE0B,OAAO,GAAO,C,iFCL9D,MAAM,EAA+BC,QAAQ,S,aCA7C,MAAM,EAA+BA,QAAQ,a,aCiBtC,MAAMC,EAAYF,IACrB,IAAKA,EAAMG,WAAWC,OAAOC,OAEzB,OAAQC,IAAAA,cAAA,KAAGC,UAAU,eAAc,WACvC,EAGSC,EAASR,IAClB,IAAKS,IAAAA,QAAkBT,GACnB,MAAO,GAAGA,yBACd,EAGSU,EAAKA,CAACV,EAAOW,KAEtB,IAAKX,EAAMG,WAAWC,OAAOC,OAASM,EAAMC,UAExC,OAAON,IAAAA,cAAA,QAAMC,UAAU,SAAQ,sBAAoBI,EAAMC,UAAU,YACvE,EAGSC,EAAWA,CAACb,EAAOW,EAAOG,KAKnC,GAAId,IAAUc,EAAoB,QAAE,GAAGd,MAGnC,OAAOM,IAAAA,cAAA,QAAMC,UAAU,SAAQ,2BACnC,E","sources":["webpack://openstack-uicore-foundation/webpack/universalModuleDefinition","webpack://openstack-uicore-foundation/webpack/bootstrap","webpack://openstack-uicore-foundation/webpack/runtime/compat get default export","webpack://openstack-uicore-foundation/webpack/runtime/define property getters","webpack://openstack-uicore-foundation/webpack/runtime/hasOwnProperty shorthand","webpack://openstack-uicore-foundation/webpack/runtime/make namespace object","webpack://openstack-uicore-foundation/external commonjs \"react\"","webpack://openstack-uicore-foundation/external commonjs \"validator\"","webpack://openstack-uicore-foundation/./src/components/form-validation/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 ","// The require scope\nvar __webpack_require__ = {};\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"validator\");","/**\n * Copyright 2017 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 validator from 'validator';\nimport './validate.less';\n\nexport const required = (value) => {\n if (!value.toString().trim().length) {\n // We can return string or jsx as the 'error' prop for the validated Component\n return (

Required

);\n }\n};\n\nexport const email = (value) => {\n if (!validator.isEmail(value)) {\n return `${value} is not a valid email.`\n }\n};\n\nexport const lt = (value, props) => {\n // get the maxLength from component's props\n if (!value.toString().trim().length > props.maxLength) {\n // Return jsx\n return The value exceeded {props.maxLength} symbols.\n }\n};\n\nexport const password = (value, props, components) => {\n // NOTE: Tricky place. The 'value' argument is always current component's value.\n // So in case we're 'changing' let's say 'password' component - we'll compare it's value with 'confirm' value.\n // But if we're changing 'confirm' component - the condition will always be true\n // If we need to always compare own values - replace 'value' with components.password[0].value and make some magic with error rendering.\n if (value !== components['confirm'][0].value) { // components['password'][0].value !== components['confirm'][0].value\n // 'confirm' - name of input\n // components['confirm'] - array of same-name components because of checkboxes and radios\n return Passwords are not equal.\n }\n};"],"names":["root","factory","exports","module","define","amd","this","__webpack_require__","n","getter","__esModule","d","a","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","require","required","toString","trim","length","React","className","email","validator","lt","props","maxLength","password","components"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/components/forms/rsvp-form.js b/lib/components/forms/rsvp-form.js new file mode 100644 index 00000000..74ba19c8 --- /dev/null +++ b/lib/components/forms/rsvp-form.js @@ -0,0 +1,2 @@ +!function(e,a){"object"==typeof exports&&"object"==typeof module?module.exports=a():"function"==typeof define&&define.amd?define("openstack-uicore-foundation",[],a):"object"==typeof exports?exports["openstack-uicore-foundation"]=a():e["openstack-uicore-foundation"]=a()}(this,(()=>(()=>{"use strict";var e={7017:(e,a,t)=>{t.d(a,{default:()=>u});var r=t(2462),l=t.n(r),s=t(9825),n=t.n(s),i=t(2015),o=t.n(i),d=t(6842),c=t.n(d),h=t(5028);t(1536);const p=["onChange","value","className","options","id","children","error","disabled","name","ariaLabelledBy"];class u extends o().Component{constructor(e){super(e);let a=!!e.value&&e.value.find((a=>!e.options.map((e=>e.value)).includes(a)));this.state={otherChecked:!!a},this.handleChange=this.handleChange.bind(this),this.handleOtherCBChange=this.handleOtherCBChange.bind(this)}handleChange(e){let a=this.props.options.map((e=>e.value)),t=this.props.value?[...this.props.value]:[];if("checkbox"===e.target.type)if(e.target.checked){const a=isNaN(e.target.value)?e.target.value:parseInt(e.target.value);t.push(a)}else t=t.filter((a=>a!=e.target.value));else t=t.filter((e=>a.includes(e))),t.push(e.target.value);let r={target:{id:this.props.id,value:t,type:"checkboxlist"}};this.props.onChange(r)}handleOtherCBChange(e){this.setState({otherChecked:e.target.checked})}render(){let e,a=this.props,{onChange:t,value:r,className:s,options:n,id:i,children:d,error:u,disabled:m,name:b,ariaLabelledBy:v}=a,{otherChecked:f}=(l()(a,p),this.state),g=this.props.hasOwnProperty("inline"),y=this.props.hasOwnProperty("allowOther"),C=!!r&&r.find((e=>!n.map((e=>e.value)).includes(e))),E=this.props.hasOwnProperty("error")&&""!==u,N=this.props.hasOwnProperty("disabled")&&1==m;return e=g?{paddingLeft:"22px",marginLeft:"20px",float:"left"}:{paddingLeft:"22px",marginTop:"7px"},o().createElement("div",{id:`chl_wrapper_${i}`,"aria-labelledby":v},o().createElement("div",{className:"checkboxes-div"+(E?" error":"")},n.map((a=>{let t=!!r&&r.includes(a.value);return o().createElement("div",{className:"form-check abc-checkbox",key:"radio_key_"+a.value,style:e},o().createElement("input",{type:"checkbox",id:`cb_${i}_${a.value}`,name:b||i,checked:t,disabled:N,onChange:this.handleChange,className:"form-check-input",value:a.value}),o().createElement("label",{className:"form-check-label",htmlFor:`cb_${i}_${a.value}`},o().createElement(h.default,null,a.label)))})),y&&o().createElement("div",{className:"form-check abc-checkbox",style:e},o().createElement("input",{type:"checkbox",id:"cb_other"+i,checked:f,disabled:N,onChange:this.handleOtherCBChange,className:"form-check-input",value:"other"}),o().createElement("label",{className:"form-check-label",htmlFor:"cb_other"+i},c().translate("general.other"))),y&&f&&o().createElement("div",{style:{paddingLeft:"22px",width:"50%"}},o().createElement("input",{className:"form-control",disabled:N,onChange:this.handleChange,value:C}))),E&&o().createElement("p",{className:"error-label"},u))}}u.defaultProps={ariaLabelledBy:null},u.propTypes={id:n().string.isRequired}},6604:(e,a,t)=>{t.d(a,{default:()=>v});var r=t(6031),l=t.n(r),s=t(1116),n=t.n(s),i=t(2462),o=t.n(i),d=t(2015),c=t.n(d),h=t(8466),p=t.n(h);const u=["onChange","value","className","error","clearable","disabled","overrideCSS","ariaLabelledBy"];function m(e,a){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);a&&(r=r.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),t.push.apply(t,r)}return t}function b(e){for(var a=1;ae.value)):null:e?e.value:null;let t={target:{id:this.props.id,value:a,type:"dropdown"}};this.props.onChange(t)}render(){let e=this.props,{onChange:a,value:t,className:r,error:s,clearable:n,disabled:i,overrideCSS:d,ariaLabelledBy:h}=e,m=o()(e,u),v=this.props.hasOwnProperty("error")&&""!=s,f=this.props.hasOwnProperty("clearable"),g=this.props.hasOwnProperty("disabled")&&1==i,y=null,C=r;this.props.hasOwnProperty("overrideCSS")&&0!=d||(C="dropdown "+r+" "+(v?"error":"")),y=this.props.isMulti?this.props.options.filter((e=>t.includes(e.value))):t instanceof Object||null==t?t:this.props.options.find((e=>e.value==t));const E={menu:e=>b(b({},e),{},{zIndex:999})};return c().createElement("div",null,c().createElement(p(),l()({className:C,value:y,onChange:this.handleChange,isClearable:f,isDisabled:g,styles:E,"aria-labelledby":h,formatOptionLabel:e=>c().createElement("span",{dangerouslySetInnerHTML:{__html:e.label}})},m)),v&&c().createElement("p",{className:"error-label"},s))}}v.defaultProps={ariaLabelledBy:null}},5639:(e,a,t)=>{t.d(a,{default:()=>h});var r=t(2462),l=t.n(r),s=t(2015),n=t.n(s),i=t(5028),o=t(9825),d=t.n(o);t(1536);const c=["onChange","value","className","error","ariaLabelledBy","disabled","options","id","name"];class h extends n().Component{constructor(e){super(e),this.state={value:e.value},this.handleChange=this.handleChange.bind(this)}handleChange(e){let a={target:{id:this.props.id,value:e.target.value,type:"radio"}};this.props.onChange(a)}getLabel(e,a,t,r){return t?n().createElement("label",{className:"form-check-label",htmlFor:`radio_${a}_${e.value}`,style:{display:"inline-block"}},n().createElement(i.default,null,e.label)):r?n().createElement("label",{className:"form-check-label",htmlFor:`radio_${a}_${e.value}`},e.label):n().createElement("label",{className:"form-check-label",htmlFor:`radio_${a}_${e.value}`,style:{display:"inline-block"}},n().createElement("h4",{style:{marginTop:"0px"}},e.label),n().createElement(i.default,null,e.description))}render(){let e,a=this.props,{onChange:t,value:r,className:s,error:i,ariaLabelledBy:o,disabled:d,options:h,id:p,name:u}=a,m=(l()(a,c),this.props.hasOwnProperty("error")&&""!=i),b=this.props.hasOwnProperty("inline"),v=this.props.hasOwnProperty("simple"),f=this.props.hasOwnProperty("disabled")&&1==d;return e=b?{paddingLeft:"22px",marginLeft:"20px",float:"left"}:{paddingLeft:"22px"},n().createElement("div",{id:`rl_wrapper_${p}`,"aria-labelledby":o},h.map((a=>{let t=a.value==r;return n().createElement("div",{className:"form-check abc-radio",key:`radio_key_${p}_${a.value}`,style:e},n().createElement("input",{className:"form-check-input",type:"radio",id:`radio_${p}_${a.value}`,value:a.value,checked:t,onChange:this.handleChange,disabled:f,name:u||`radio_${p}`}),this.getLabel(a,p,b,v))})),m&&n().createElement("p",{className:"error-label"},i))}}h.defaultProps={ariaLabelledBy:null},h.propTypes={id:d().string.isRequired}},7651:(e,a,t)=>{t.d(a,{default:()=>c});var r=t(6031),l=t.n(r),s=t(2462),n=t.n(s),i=t(2015),o=t.n(i);const d=["onChange","value","className","error","ariaLabelledBy","containerClassName"];class c extends o().Component{constructor(e){super(e),this.handleChange=this.handleChange.bind(this)}componentDidUpdate(e,a,t){this.props.value!==e.value&&(this.input.value=this.props.value)}handleChange(e){this.props.onChange(e)}render(){let e=this.props,{onChange:a,value:t,className:r,error:s,ariaLabelledBy:i,containerClassName:c}=e,h=n()(e,d),p=this.props.hasOwnProperty("error")&&""!==s,u=this.props.hasOwnProperty("className")?r:"form-control",m=this.props.hasOwnProperty("containerClassName")?c:"container-form-control";return o().createElement("div",{className:m},o().createElement("input",l()({className:`${u} ${p?"error":""}`,ref:e=>{this.input=e},defaultValue:t,"aria-labelledby":i,onChange:this.handleChange},h)),p&&o().createElement("p",{className:"error-label"},s))}}c.defaultProps={ariaLabelledBy:null}},5028:(e,a,t)=>{t.d(a,{default:()=>c});var r=t(6031),l=t.n(r),s=t(2462),n=t.n(s),i=t(2015),o=t.n(i);const d=["children","replaceNewLine","className"],c=e=>{let{children:a,replaceNewLine:t=!1,className:r=""}=e,s=n()(e,d);return o().createElement("span",l()({className:r,dangerouslySetInnerHTML:{__html:t?null==a?void 0:a.replace(/\n/g,"
"):a}},s))}},1116:e=>{e.exports=require("@babel/runtime/helpers/defineProperty")},6031:e=>{e.exports=require("@babel/runtime/helpers/extends")},2462:e=>{e.exports=require("@babel/runtime/helpers/objectWithoutProperties")},1536:e=>{e.exports=require("awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css")},6842:e=>{e.exports=require("i18n-react/dist/i18n-react")},9825:e=>{e.exports=require("prop-types")},2015:e=>{e.exports=require("react")},8466:e=>{e.exports=require("react-select")}},a={};function t(r){var l=a[r];if(void 0!==l)return l.exports;var s=a[r]={exports:{}};return e[r](s,s.exports,t),s.exports}(()=>{t.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return t.d(a,{a}),a}})(),(()=>{t.d=(e,a)=>{for(var r in a)t.o(a,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:a[r]})}})(),(()=>{t.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a)})(),(()=>{t.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}})();var r={};t.r(r),t.d(r,{default:()=>p});var l=t(2015),s=t.n(l),n=(t(1536),t(7651)),i=t(6604),o=t(5028),d=t(7017),c=t(5639);class h extends s().Component{constructor(e){super(e),this.state={answers:e.questions.map((e=>({question_id:e.id,value:null}))),errors:e.errors},this.handleChange=this.handleChange.bind(this),this.hasErrors=this.hasErrors.bind(this),this.handleSubmit=this.handleSubmit.bind(this)}renderQuestion(e){const{answers:a}=this.state,t=a.find((a=>a.question_id===e.id)).value;switch(e.class_name){case"RSVPMemberEmailQuestionTemplate":case"RSVPMemberFirstNameQuestionTemplate":case"RSVPMemberLastNameQuestionTemplate":case"RSVPTextBoxQuestionTemplate":return s().createElement(n.default,{id:e.id,value:t||"",onChange:this.handleChange,className:"form-control",error:this.hasErrors(e.id)});case"RSVPTextAreaQuestionTemplate":return s().createElement("textarea",{id:e.id,value:t||"",className:"form-control",onChange:this.handleChange});case"RSVPLiteralContentQuestionTemplate":return s().createElement("div",null,s().createElement(o.default,null,e.value));case"RSVPCheckBoxListQuestionTemplate":return s().createElement(d.default,{id:e.id,value:t,options:e.values.map((e=>({value:`${e.id}`,label:e.label}))),onChange:this.handleChange,error:this.hasErrors(e.id)});case"RSVPRadioButtonListQuestionTemplate":return s().createElement(c.default,{id:e.id,value:t,onChange:this.handleChange,options:e.values.map((e=>({value:`${e.id}`,label:e.label}))),error:this.hasErrors(e.id),simple:!0});case"RSVPDropDownQuestionTemplate":let a=e.is_country_selector?e.values.map((e=>({value:e.id,label:e.value}))):e.values;return s().createElement(i.default,{id:e.id,isMulti:e.is_multiselect,value:t,onChange:this.handleChange,placeholder:e.empty_string,options:a})}}handleChange(e){let a=[...this.state.answers],{value:t,id:r}=e.target;"datetime"===e.target.type&&(t=t.valueOf()/1e3),a.find((e=>e.question_id===parseInt(r))).value=t,this.setState({answers:a})}hasErrors(e){let{errors:a}=this.state;return e in a?a[e]:""}handleSubmit(e){e.preventDefault();let{onSubmit:a}=this.props,{answers:t}=this.state;a(t)}render(){let{questions:e,onSubmit:a}=this.props;return s().createElement("form",{className:"rsvp-form"},e.map((e=>s().createElement("div",{key:"question_"+e.id,className:"row form-group"},s().createElement("div",{className:"col-md-12"},s().createElement("label",null,s().createElement(o.default,null,e.label)," ",e.is_mandatory&&"*"),this.renderQuestion(e))))),a&&s().createElement("div",{className:"row"},s().createElement("div",{className:"col-md-12"},s().createElement("button",{className:"btn btn-primary",onClick:this.handleSubmit},"Submit"))))}}const p=h;return r})())); +//# sourceMappingURL=rsvp-form.js.map \ No newline at end of file diff --git a/lib/components/forms/rsvp-form.js.map b/lib/components/forms/rsvp-form.js.map new file mode 100644 index 00000000..7b34a062 --- /dev/null +++ b/lib/components/forms/rsvp-form.js.map @@ -0,0 +1 @@ +{"version":3,"file":"components/forms/rsvp-form.js","mappings":"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","sources":["webpack://openstack-uicore-foundation/webpack/universalModuleDefinition","webpack://openstack-uicore-foundation/./src/components/inputs/checkbox-list.js","webpack://openstack-uicore-foundation/./src/components/inputs/dropdown.js","webpack://openstack-uicore-foundation/./src/components/inputs/radio-list.js","webpack://openstack-uicore-foundation/./src/components/inputs/text-input.js","webpack://openstack-uicore-foundation/./src/components/raw-html/index.js","webpack://openstack-uicore-foundation/external commonjs \"@babel/runtime/helpers/defineProperty\"","webpack://openstack-uicore-foundation/external commonjs \"@babel/runtime/helpers/extends\"","webpack://openstack-uicore-foundation/external commonjs \"@babel/runtime/helpers/objectWithoutProperties\"","webpack://openstack-uicore-foundation/external commonjs \"awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css\"","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/external commonjs \"react-select\"","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/./src/components/forms/rsvp-form.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 **/\nimport PropTypes from 'prop-types'\nimport React from 'react';\nimport T from 'i18n-react/dist/i18n-react';\nimport RawHTML from '../raw-html';\n\nimport \"awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css\";\n\nexport default class CheckboxList extends React.Component {\n\n constructor(props) {\n super(props);\n\n let otherValue = props.value ? props.value.find( v => !props.options.map(op => op.value).includes(v) ) : false;\n\n this.state = {\n otherChecked: !!otherValue\n };\n\n this.handleChange = this.handleChange.bind(this);\n this.handleOtherCBChange = this.handleOtherCBChange.bind(this);\n }\n\n handleChange(event) {\n let optionValues = this.props.options.map(op => op.value);\n let value = this.props.value ? [...this.props.value] : [];\n\n if (event.target.type === 'checkbox') {\n if (event.target.checked) {\n const theVal = isNaN(event.target.value) ? event.target.value : parseInt(event.target.value);\n value.push(theVal);\n } else {\n value = value.filter( v => v != event.target.value )\n }\n } else {\n value = value.filter(v => optionValues.includes(v));\n value.push(event.target.value);\n }\n\n let ev = {target: {\n id: this.props.id,\n value: value,\n type: 'checkboxlist'\n }};\n\n this.props.onChange(ev);\n }\n\n handleOtherCBChange(event) {\n this.setState({otherChecked: event.target.checked});\n }\n\n render() {\n\n let {onChange, value, className, options, id, children, error, disabled,name, ariaLabelledBy, ...rest} = this.props;\n let { otherChecked } = this.state;\n\n let inline = ( this.props.hasOwnProperty('inline') );\n let allowOther = ( this.props.hasOwnProperty('allowOther') );\n let otherValue = value ? value.find( v => !options.map(op => op.value).includes(v) ) : false ;\n let has_error = ( this.props.hasOwnProperty('error') && error !== '' );\n let isDisabled = (this.props.hasOwnProperty('disabled') && disabled == true);\n\n\n let style, label;\n\n if (inline) {\n style = {\n paddingLeft: '22px',\n marginLeft: '20px',\n float: 'left'\n };\n } else {\n style = {\n paddingLeft: '22px',\n marginTop: '7px'\n }\n }\n\n return (\n
\n
\n { options.map(op => {\n let checked = value ? value.includes(op.value) : false;\n return (\n
\n \n \n
\n )\n })}\n\n {allowOther &&\n
\n \n \n
\n }\n\n {allowOther && otherChecked &&\n
\n \n
\n }\n\n
\n {has_error &&\n

{error}

\n }\n
\n );\n\n }\n}\n\nCheckboxList.defaultProps = {\n ariaLabelledBy : null,\n}\n\n\nCheckboxList.propTypes = {\n id: PropTypes.string.isRequired\n};\n","/**\n * Copyright 2017 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 Select from 'react-select';\n\nexport default class Dropdown extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.handleChange = this.handleChange.bind(this);\n }\n\n handleChange(selection) {\n\n let value = null;\n if (this.props.isMulti) {\n value = selection ? selection.map(val => val.value) : null;\n } else {\n value = selection ? selection.value : null;\n }\n\n let ev = {target: {\n id: this.props.id,\n value: value,\n type: 'dropdown'\n }};\n\n this.props.onChange(ev);\n }\n\n render() {\n\n let {onChange, value, className, error, clearable, disabled, overrideCSS, ariaLabelledBy, ...rest} = this.props;\n let has_error = ( this.props.hasOwnProperty('error') && error != '' );\n let isClearable = (this.props.hasOwnProperty('clearable'));\n let isDisabled = (this.props.hasOwnProperty('disabled') && disabled == true);\n let theValue = null;\n\n let selectClassName = className;\n\n if (!this.props.hasOwnProperty('overrideCSS') || overrideCSS == false) {\n selectClassName = 'dropdown ' + className + ' ' + (has_error ? 'error' : '');\n }\n\n if (this.props.isMulti) {\n theValue = this.props.options.filter(op => value.includes(op.value));\n } else {\n theValue = (value instanceof Object || value == null) ? value : this.props.options.find(opt => opt.value == value);\n }\n\n const selectStyles = { menu: styles => ({ ...styles, zIndex: 999 }) };\n\n return (\n
\n }\n {...rest}\n />\n {has_error &&\n

{error}

\n }\n
\n );\n\n }\n}\n\nDropdown.defaultProps = {\n ariaLabelledBy : null,\n}\n","/**\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 React from 'react';\nimport RawHTML from '../raw-html';\nimport PropTypes from 'prop-types'\n\nimport \"awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css\";\n\nexport default class RadioList extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n value: props.value,\n };\n\n this.handleChange = this.handleChange.bind(this);\n }\n\n handleChange(selection) {\n\n let ev = {target: {\n id: this.props.id,\n value: selection.target.value,\n type: 'radio'\n }};\n\n this.props.onChange(ev);\n }\n\n getLabel(option, id, inline, simple) {\n if (inline) {\n return (\n \n );\n } else if (simple) {\n return (\n \n );\n } else {\n return (\n \n );\n }\n }\n\n render() {\n\n let {onChange, value, className, error, ariaLabelledBy, disabled, options,id, name,...rest} = this.props;\n let has_error = ( this.props.hasOwnProperty('error') && error != '' );\n let inline = ( this.props.hasOwnProperty('inline') );\n let simple = ( this.props.hasOwnProperty('simple') );\n let isDisabled = (this.props.hasOwnProperty('disabled') && disabled == true);\n\n let style, label;\n\n if (inline) {\n style = {\n paddingLeft: '22px',\n marginLeft: '20px',\n float: 'left'\n };\n\n\n } else {\n style = {\n paddingLeft: '22px'\n }\n }\n\n return (\n
\n { options.map(op => {\n let checked = (op.value == value);\n return (\n
\n \n {this.getLabel(op, id, inline, simple)}\n
\n )\n })}\n\n {has_error &&\n

{error}

\n }\n
\n );\n\n }\n}\n\nRadioList.defaultProps = {\n ariaLabelledBy : null,\n}\n\nRadioList.propTypes = {\n id: PropTypes.string.isRequired\n};\n","/**\n * Copyright 2017 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';\n\nexport default class Input extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.handleChange = this.handleChange.bind(this);\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n if (this.props.value !== prevProps.value) {\n this.input.value = this.props.value;\n }\n }\n\n handleChange(ev) {\n this.props.onChange(ev);\n }\n\n render() {\n\n let {onChange, value, className, error, ariaLabelledBy, containerClassName,...rest} = this.props;\n let has_error = ( this.props.hasOwnProperty('error') && error !== '' );\n let class_name = this.props.hasOwnProperty('className') ? className : 'form-control';\n let container_class_name = this.props.hasOwnProperty('containerClassName') ? containerClassName : 'container-form-control';\n return (\n
\n {this.input = node}}\n defaultValue={value}\n aria-labelledby={ariaLabelledBy}\n onChange={this.handleChange}\n {...rest}\n />\n {has_error &&\n

{error}

\n }\n
\n );\n\n }\n}\n\nInput.defaultProps = {\n ariaLabelledBy : null,\n}","import React from 'react';\n\nconst RawHTML = ({children, replaceNewLine = false, className = \"\", ...rest}) =>\n ') : children}} {...rest}/>\n\nexport default RawHTML;","module.exports = require(\"@babel/runtime/helpers/defineProperty\");","module.exports = require(\"@babel/runtime/helpers/extends\");","module.exports = require(\"@babel/runtime/helpers/objectWithoutProperties\");","module.exports = require(\"awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css\");","module.exports = require(\"i18n-react/dist/i18n-react\");","module.exports = require(\"prop-types\");","module.exports = require(\"react\");","module.exports = require(\"react-select\");","// 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};","/**\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 React from 'react'\nimport 'awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css'\nimport Input from '../inputs/text-input'\nimport Dropdown from '../inputs/dropdown'\nimport RawHTML from '../raw-html'\nimport CheckboxList from '../inputs/checkbox-list'\nimport RadioList from '../inputs/radio-list'\n\n\nclass RsvpForm extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n answers: props.questions.map(q => ({question_id: q.id, value: null})),\n errors: props.errors\n };\n\n this.handleChange = this.handleChange.bind(this);\n this.hasErrors = this.hasErrors.bind(this);\n this.handleSubmit = this.handleSubmit.bind(this);\n }\n\n renderQuestion(q) {\n const {answers} = this.state;\n const value = answers.find(a => a.question_id === q.id).value;\n\n switch(q.class_name) {\n case 'RSVPMemberEmailQuestionTemplate':\n case 'RSVPMemberFirstNameQuestionTemplate':\n case 'RSVPMemberLastNameQuestionTemplate':\n case 'RSVPTextBoxQuestionTemplate':\n return (\n \n );\n break;\n case 'RSVPTextAreaQuestionTemplate':\n return (\n );\n break;\n case 'RSVPLiteralContentQuestionTemplate':\n return (
{q.value}
);\n break;\n case 'RSVPCheckBoxListQuestionTemplate':\n return (\n ({value: `${v.id}`, label: v.label}))}\n onChange={this.handleChange}\n error={this.hasErrors(q.id)}\n />\n );\n break;\n case 'RSVPRadioButtonListQuestionTemplate':\n return (\n ({value: `${v.id}`, label: v.label}))}\n error={this.hasErrors(q.id)}\n simple\n />\n );\n break;\n case 'RSVPDropDownQuestionTemplate':\n let values = (q.is_country_selector) ? q.values.map(v => ({value:v.id, label: v.value})) : q.values;\n\n return (\n \n );\n break;\n }\n }\n\n handleChange(ev) {\n let answers = [...this.state.answers];\n let {value, id} = ev.target;\n\n if (ev.target.type === 'datetime') {\n value = value.valueOf() / 1000;\n }\n\n let answer = answers.find(a => a.question_id === parseInt(id));\n answer.value = value;\n\n this.setState({answers});\n }\n\n hasErrors(field) {\n let {errors} = this.state;\n if(field in errors) {\n return errors[field];\n }\n\n return '';\n }\n\n handleSubmit(ev) {\n ev.preventDefault();\n\n let { onSubmit } = this.props;\n let {answers} = this.state;\n\n onSubmit(answers);\n }\n\n render() {\n let { questions, onSubmit } = this.props;\n\n return (\n
\n {questions.map(q =>\n
\n
\n \n {this.renderQuestion(q)}\n
\n
\n )}\n {onSubmit &&\n
\n
\n \n
\n
\n }\n
\n );\n }\n}\n\nexport default RsvpForm;\n"],"names":["root","factory","exports","module","define","amd","this","CheckboxList","React","constructor","props","super","otherValue","value","find","v","options","map","op","includes","state","otherChecked","handleChange","bind","handleOtherCBChange","event","optionValues","target","type","checked","theVal","isNaN","parseInt","push","filter","ev","id","onChange","setState","render","style","_this$props","className","children","error","disabled","name","ariaLabelledBy","_objectWithoutProperties","_excluded","inline","hasOwnProperty","allowOther","has_error","isDisabled","paddingLeft","marginLeft","float","marginTop","key","htmlFor","RawHTML","label","T","width","defaultProps","propTypes","PropTypes","isRequired","Dropdown","selection","isMulti","val","clearable","overrideCSS","rest","isClearable","theValue","selectClassName","Object","opt","selectStyles","menu","styles","_objectSpread","zIndex","Select","_extends","formatOptionLabel","data","dangerouslySetInnerHTML","__html","RadioList","getLabel","option","simple","display","description","Input","componentDidUpdate","prevProps","prevState","snapshot","input","containerClassName","class_name","container_class_name","ref","node","defaultValue","_ref","replaceNewLine","replace","require","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","obj","prop","prototype","call","r","Symbol","toStringTag","RsvpForm","answers","questions","q","question_id","errors","hasErrors","handleSubmit","renderQuestion","values","is_country_selector","is_multiselect","placeholder","empty_string","valueOf","field","preventDefault","onSubmit","is_mandatory","onClick"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/components/forms/simple-form.js b/lib/components/forms/simple-form.js new file mode 100644 index 00000000..e42c5164 --- /dev/null +++ b/lib/components/forms/simple-form.js @@ -0,0 +1,2 @@ +!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={7651:(e,t,r)=>{r.d(t,{default:()=>p});var a=r(6031),n=r.n(a),s=r(2462),o=r.n(s),l=r(2015),i=r.n(l);const c=["onChange","value","className","error","ariaLabelledBy","containerClassName"];class p extends i().Component{constructor(e){super(e),this.handleChange=this.handleChange.bind(this)}componentDidUpdate(e,t,r){this.props.value!==e.value&&(this.input.value=this.props.value)}handleChange(e){this.props.onChange(e)}render(){let e=this.props,{onChange:t,value:r,className:a,error:s,ariaLabelledBy:l,containerClassName:p}=e,h=o()(e,c),m=this.props.hasOwnProperty("error")&&""!==s,u=this.props.hasOwnProperty("className")?a:"form-control",d=this.props.hasOwnProperty("containerClassName")?p:"container-form-control";return i().createElement("div",{className:d},i().createElement("input",n()({className:`${u} ${m?"error":""}`,ref:e=>{this.input=e},defaultValue:r,"aria-labelledby":l,onChange:this.handleChange},h)),m&&i().createElement("p",{className:"error-label"},s))}}p.defaultProps={ariaLabelledBy:null}},9558:(e,t,r)=>{r.d(t,{hasErrors:()=>n,isEmpty:()=>o,scrollToError:()=>a,shallowEqual:()=>s});r(5812),r(8041);const a=e=>{if(Object.keys(e).length>0){const t=Object.keys(e)[0],r=document.getElementById(t);r&&window.scrollTo(0,(e=>{var t=-70;if(e.offsetParent){do{t+=e.offsetTop}while(e=e.offsetParent);return[t]}})(r))}},n=(e,t)=>e in t?t[e]:"",s=(e,t)=>{const r=Object.keys(e),a=Object.keys(t);if(r.length!==a.length)return!1;for(let a of r)if(e[a]!==t[a])return!1;return!0},o=e=>0===Object.keys(e).length},1116:e=>{e.exports=require("@babel/runtime/helpers/defineProperty")},6031:e=>{e.exports=require("@babel/runtime/helpers/extends")},2462:e=>{e.exports=require("@babel/runtime/helpers/objectWithoutProperties")},1536:e=>{e.exports=require("awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css")},6842:e=>{e.exports=require("i18n-react/dist/i18n-react")},5812:e=>{e.exports=require("moment-timezone")},2015:e=>{e.exports=require("react")},8041:e=>{e.exports=require("urijs")}},t={};function r(a){var n=t[a];if(void 0!==n)return n.exports;var s=t[a]={exports:{}};return e[a](s,s.exports,r),s.exports}(()=>{r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t}})(),(()=>{r.d=(e,t)=>{for(var a in t)r.o(t,a)&&!r.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})}})(),(()=>{r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)})(),(()=>{r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}})();var a={};r.r(a),r.d(a,{default:()=>b});var n=r(1116),s=r.n(n),o=r(2015),l=r.n(o),i=r(6842),c=r.n(i),p=(r(1536),r(7651)),h=r(9558);function m(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function u(e){for(var t=1;tthis.createField(e))),l().createElement("div",{className:"row"},l().createElement("div",{className:"col-md-12 submit-buttons"},l().createElement("input",{type:"button",onClick:this.handleSubmit,className:"btn btn-primary pull-right",value:c().translate("general.save")}))))}}const b=d;return a})())); +//# sourceMappingURL=simple-form.js.map \ No newline at end of file diff --git a/lib/components/forms/simple-form.js.map b/lib/components/forms/simple-form.js.map new file mode 100644 index 00000000..7b8a0d9c --- /dev/null +++ b/lib/components/forms/simple-form.js.map @@ -0,0 +1 @@ +{"version":3,"file":"components/forms/simple-form.js","mappings":"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","sources":["webpack://openstack-uicore-foundation/webpack/universalModuleDefinition","webpack://openstack-uicore-foundation/./src/components/inputs/text-input.js","webpack://openstack-uicore-foundation/./src/utils/methods.js","webpack://openstack-uicore-foundation/external commonjs \"@babel/runtime/helpers/defineProperty\"","webpack://openstack-uicore-foundation/external commonjs \"@babel/runtime/helpers/extends\"","webpack://openstack-uicore-foundation/external commonjs \"@babel/runtime/helpers/objectWithoutProperties\"","webpack://openstack-uicore-foundation/external commonjs \"awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css\"","webpack://openstack-uicore-foundation/external commonjs \"i18n-react/dist/i18n-react\"","webpack://openstack-uicore-foundation/external commonjs \"moment-timezone\"","webpack://openstack-uicore-foundation/external commonjs \"react\"","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/./src/components/forms/simple-form.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 2017 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';\n\nexport default class Input extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.handleChange = this.handleChange.bind(this);\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n if (this.props.value !== prevProps.value) {\n this.input.value = this.props.value;\n }\n }\n\n handleChange(ev) {\n this.props.onChange(ev);\n }\n\n render() {\n\n let {onChange, value, className, error, ariaLabelledBy, containerClassName,...rest} = this.props;\n let has_error = ( this.props.hasOwnProperty('error') && error !== '' );\n let class_name = this.props.hasOwnProperty('className') ? className : 'form-control';\n let container_class_name = this.props.hasOwnProperty('containerClassName') ? containerClassName : 'container-form-control';\n return (\n
\n {this.input = node}}\n defaultValue={value}\n aria-labelledby={ariaLabelledBy}\n onChange={this.handleChange}\n {...rest}\n />\n {has_error &&\n

{error}

\n }\n
\n );\n\n }\n}\n\nInput.defaultProps = {\n ariaLabelledBy : null,\n}","/**\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","module.exports = require(\"@babel/runtime/helpers/defineProperty\");","module.exports = require(\"@babel/runtime/helpers/extends\");","module.exports = require(\"@babel/runtime/helpers/objectWithoutProperties\");","module.exports = require(\"awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css\");","module.exports = require(\"i18n-react/dist/i18n-react\");","module.exports = require(\"moment-timezone\");","module.exports = require(\"react\");","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};","/**\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 React from 'react'\nimport T from 'i18n-react/dist/i18n-react'\nimport 'awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css'\nimport Input from '../inputs/text-input'\nimport { scrollToError, isEmpty, shallowEqual, hasErrors } from '../../utils/methods'\n\n\nclass SimpleForm extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n entity: {...props.entity},\n errors: props.errors\n };\n\n this.handleChange = this.handleChange.bind(this);\n this.handleSubmit = this.handleSubmit.bind(this);\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n const state = {};\n scrollToError(this.props.errors);\n\n if(prevProps.entity.id !== this.props.entity.id) {\n state.entity = {...this.props.entity};\n state.errors = {};\n }\n\n if (!shallowEqual(prevProps.errors, this.props.errors)) {\n state.errors = {...this.props.errors};\n }\n\n if (!isEmpty(state)) {\n this.setState({...this.state, ...state})\n }\n }\n\n handleChange(ev) {\n let entity = {...this.state.entity};\n let errors = {...this.state.errors};\n let {value, id} = ev.target;\n\n if (ev.target.type === 'checkbox') {\n value = ev.target.checked;\n }\n\n errors[id] = '';\n entity[id] = value;\n this.setState({entity: entity, errors: errors});\n }\n\n handleSubmit(ev) {\n let entity = {...this.state.entity};\n ev.preventDefault();\n\n this.props.onSubmit(this.state.entity);\n }\n\n createField(field) {\n let {entity, errors} = this.state;\n\n switch (field.type) {\n case 'text':\n return (\n
\n
\n \n \n
\n
\n );\n break;\n case 'textarea':\n return (\n
\n
\n \n \n
\n
\n );\n break;\n case 'checkbox':\n return (\n
\n
\n
\n \n \n
\n
\n
\n );\n break;\n\n }\n }\n\n render() {\n let {entity} = this.state;\n let {fields} = this.props;\n\n return (\n
\n \n\n {fields.map(f => {\n return this.createField(f);\n })}\n\n
\n
\n \n
\n
\n
\n );\n }\n}\n\nexport default SimpleForm;\n"],"names":["root","factory","exports","module","define","amd","this","Input","React","constructor","props","super","handleChange","bind","componentDidUpdate","prevProps","prevState","snapshot","value","input","ev","onChange","render","_this$props","className","error","ariaLabelledBy","containerClassName","rest","_objectWithoutProperties","_excluded","has_error","hasOwnProperty","class_name","container_class_name","_extends","ref","node","defaultValue","defaultProps","scrollToError","errors","Object","keys","length","firstError","firstNode","document","getElementById","window","scrollTo","obj","curtop","offsetParent","offsetTop","findElementPos","hasErrors","field","shallowEqual","object1","object2","keys1","keys2","key","isEmpty","require","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","prop","prototype","call","r","Symbol","toStringTag","SimpleForm","state","entity","_objectSpread","handleSubmit","id","setState","target","type","checked","preventDefault","onSubmit","createField","name","label","htmlFor","fields","map","f","onClick","T"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/components/free-text-search.js b/lib/components/free-text-search.js new file mode 100644 index 00000000..6f843e17 --- /dev/null +++ b/lib/components/free-text-search.js @@ -0,0 +1,2 @@ +!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={6108:(e,t,a)=>{var r=a(6031),n=a.n(r),s=a(2462),l=a.n(s),i=a(2015),o=a.n(i),u=a(9825),c=a.n(u),d=a(7651),m=a(6604),p=a(5639),h=a(7017),b=a(356);const g=require("react-final-form");var v=a(9558);const f="CheckBox",y="RadioButton";a(1536);const _=["input","meta","question","className","isDisabled","isRequired"],E=["input","meta","question","isDisabled","isRequired"],C=["input","meta","question","isDisabled","isRequired"],q=["input","meta","question","isDisabled","isRequired","maxValues"],w=e=>{let{input:t,meta:a,question:r,className:s,isDisabled:i,isRequired:u}=e,c=l()(e,_);return o().createElement(d.default,n()({},t,c,{containerClassName:s,name:(0,v.toSlug)(r.name),ariaLabelledBy:`${(0,v.toSlug)(r.name)} label`,id:(0,v.toSlug)(r.name),value:t.value,disabled:i,required:u,onChange:t.onChange,placeholder:r.placeholder}))},N=e=>{let{input:t,meta:a,question:r,isDisabled:s,isRequired:i}=e,u=l()(e,E);return o().createElement(p.default,n()({},t,u,{name:(0,v.toSlug)(r.name),ariaLabelledBy:`${(0,v.toSlug)(r.name)} label`,id:(0,v.toSlug)(r.name),overrideCSS:!0,value:t.value,disabled:s,required:i,onChange:t.onChange}))},S=e=>{let{input:t,meta:a,question:r,isDisabled:s,isRequired:i}=e,u=l()(e,C);return o().createElement(m.default,n()({},t,u,{name:(0,v.toSlug)(r.name),ariaLabelledBy:`${(0,v.toSlug)(r.name)} label`,id:(0,v.toSlug)(r.name),overrideCSS:!0,className:"ddl-extra-questions-container",classNamePrefix:"ddl-extra-questions",value:t.value,disabled:s,required:i,onChange:t.onChange}))},k=e=>{let{input:t,meta:a,question:r,isDisabled:s,isRequired:i,maxValues:u}=e,c=l()(e,q);return o().createElement(h.default,n()({},t,c,{id:(0,v.toSlug)(r.name),name:(0,v.toSlug)(r.name),ariaLabelledBy:`${(0,v.toSlug)(r.name)} label`,value:t.value,disabled:s,required:i,onChange:e=>{const a=e.target.value;return u>0&&a.length>u?null:t.onChange(e)}}))},x=e=>e?e=>e?void 0:"Required":()=>{},O=o().forwardRef((({extraQuestions:e,userAnswers:t,onAnswerChanges:a,className:r="questions-form",questionContainerClassName:n="question-container",questionLabelContainerClassName:s="question-label-container",questionControlContainerClassName:l="question-control-container",readOnly:u=!1,debug:c=!1,buttonText:d="Submit",RequiredErrorMessage:m="Required",ValidationErrorClassName:p="extra-question-error",allowExtraQuestionsEdit:h=!0,onError:_=e=>console.log("form errors: ",e),shouldScroll2FirstError:E=!0},C)=>{let q=null;const O=(0,i.useRef)({}),P=(0,i.useRef)(null),[B,F]=(0,i.useState)({});(0,i.useEffect)((()=>{j()}),[e]),(0,i.useImperativeHandle)(C,(()=>({doSubmit(){var e;null===(e=P.current)||void 0===e||e.dispatchEvent(new Event("submit",{cancelable:!0,bubbles:!0}))},scroll2QuestionById(e){K(e)}})));const L=e=>(O.current[e]||(O.current[e]=o().createRef()),O.current[e]),j=()=>{const a=new b.default(e,t);F(a.formatAnswers())},$=({when:e,rule:t,children:a})=>o().createElement(g.Field,{name:e,subscription:{value:!0}},(({input:{value:e}})=>D(t,A(e,t),a))),R=({name:e})=>o().createElement(g.Field,{name:e,subscription:{error:!0,touched:!0,submitFailed:!0}},(({meta:{error:e,touched:t,submitFailed:a}})=>e&&(t||a)?o().createElement("div",{className:p},e):null)),A=(e,t)=>{let a=t.answer_values;if(Array.isArray(e)){if(!e.length)return!1;let r="And"===t.answer_values_operator;return a.forEach((a=>{r="And"===t.answer_values_operator?r&&e.includes(parseInt(a)):r||e.includes(parseInt(a))})),r}return a.includes(e.toString())},D=(e,t,a)=>"Visible"===e.visibility?"Equal"===e.visibility_condition?t?a:(delete O.current[e.sub_question.id],null):t?(delete O.current[e.sub_question.id],null):a:"Equal"===e.visibility_condition?t?(delete O.current[e.sub_question.id],null):a:t?a:(delete O.current[e.sub_question.id],null),I=e=>{var t;const a=String.fromCharCode(160),r=null==e||null===(t=e.label)||void 0===t?void 0:t.replace(/\n/g,"
").replace(/

(.*)<\/p>/gi,"$1"),n=[f,y],s=e.mandatory&&!n.includes(e.type)?`${r}${a}*`:r;return o().createElement("label",{dangerouslySetInnerHTML:{__html:s},htmlFor:(0,v.toSlug)(e.name),id:`${(0,v.toSlug)(e.name)} label`})},Q=e=>{let t=e.values;const a=!h&&((e,t)=>{const a=(0,v.toSlug)(e.name);if(!t.hasOwnProperty(a))return!1;const r=t[a];return Array.isArray(r)||"string"==typeof r?r.length>0:"number"==typeof r?r>0:"boolean"==typeof r&&r})(e,B);var r,u,c,d;if("Text"===e.type)return o().createElement(i.Fragment,{key:(0,v.toSlug)(e.name)},o().createElement("div",{ref:L(e.id),className:n},o().createElement("span",{className:s},I(e)),o().createElement("div",{className:l},o().createElement(g.Field,{name:(0,v.toSlug)(e.name),question:e,isDisabled:a,isRequired:e.mandatory,validate:x(e.mandatory),component:w}),o().createElement(R,{name:(0,v.toSlug)(e.name)}))),(null===(r=e.sub_question_rules)||void 0===r?void 0:r.length)>0&&e.sub_question_rules.map((t=>o().createElement($,{key:t.id,when:(0,v.toSlug)(e.name),rule:t},Q(t.sub_question)))));if("TextArea"===e.type)return o().createElement(i.Fragment,{key:(0,v.toSlug)(e.name)},o().createElement("div",{ref:L(e.id),className:n},o().createElement("span",{className:s},I(e)),o().createElement("div",{className:l},o().createElement(g.Field,{validate:x(e.mandatory),name:(0,v.toSlug)(e.name),id:(0,v.toSlug)(e.name),disabled:a,required:e.mandatory,component:"textarea"}),o().createElement(R,{name:(0,v.toSlug)(e.name)}))),(null===(u=e.sub_question_rules)||void 0===u?void 0:u.length)>0&&e.sub_question_rules.map((t=>o().createElement($,{key:t.id,when:(0,v.toSlug)(e.name),rule:t},Q(t.sub_question)))));if(e.type===f)return o().createElement(i.Fragment,{key:(0,v.toSlug)(e.name)},o().createElement("div",{ref:L(e.id),className:`${n} checkbox-wrapper`},o().createElement("div",{className:`${l} input-wrapper`},o().createElement("div",{className:"form-check abc-checkbox"},o().createElement(g.Field,{name:(0,v.toSlug)(e.name),id:(0,v.toSlug)(e.name),validate:x(e.mandatory),disabled:a,required:e.mandatory,type:"checkbox",className:"form-check-input",component:"input"}),o().createElement("label",{className:"form-check-label",htmlFor:(0,v.toSlug)(e.name)}),e.mandatory&&o().createElement("span",{className:"checkbox-mandatory"},o().createElement("b",null,"*")))),o().createElement("span",{className:`eq-checkbox-label ${s}`},I(e))),o().createElement(R,{name:(0,v.toSlug)(e.name)}),(null===(c=e.sub_question_rules)||void 0===c?void 0:c.length)>0&&e.sub_question_rules.map((t=>o().createElement($,{key:t.id,when:(0,v.toSlug)(e.name),rule:t},Q(t.sub_question)))));if(e.type===y)return o().createElement(i.Fragment,{key:(0,v.toSlug)(e.name)},o().createElement("div",{ref:L(e.id),className:`${n} checkbox-wrapper`},o().createElement("div",{className:`${l} input-wrapper`},o().createElement("div",{className:"form-check abc-radio"},o().createElement(g.Field,{name:(0,v.toSlug)(e.name),id:(0,v.toSlug)(e.name),validate:x(e.mandatory),disabled:a,required:e.mandatory,type:"radio",className:"form-check-input",value:"true",component:"input"}),o().createElement("label",{className:"form-check-label",htmlFor:(0,v.toSlug)(e.name)}),e.mandatory&&o().createElement("span",{className:"checkbox-mandatory"},o().createElement("b",null,"*")))),o().createElement("span",{className:`eq-checkbox-label ${s}`},I(e))),o().createElement(R,{name:(0,v.toSlug)(e.name)}),(null===(d=e.sub_question_rules)||void 0===d?void 0:d.length)>0&&e.sub_question_rules.map((t=>o().createElement($,{key:t.id,when:(0,v.toSlug)(e.name),rule:t},Q(t.sub_question)))));if("RadioButtonList"===e.type){var m;const r=t.map((e=>({label:e.label,value:e.id})));return o().createElement(i.Fragment,{key:(0,v.toSlug)(e.name)},o().createElement("div",{ref:L(e.id),className:n},o().createElement("span",{className:s},I(e)),o().createElement("div",{className:l},o().createElement(g.Field,{name:(0,v.toSlug)(e.name),options:r,question:e,validate:x(e.mandatory),isDisabled:a,isRequired:e.mandatory,component:N}),o().createElement(R,{name:(0,v.toSlug)(e.name)}))),(null===(m=e.sub_question_rules)||void 0===m?void 0:m.length)>0&&e.sub_question_rules.map((t=>o().createElement($,{key:t.id,when:(0,v.toSlug)(e.name),rule:t},Q(t.sub_question)))))}if("ComboBox"===e.type||"CountryComboBox"===e.type){var p;const r=t.map((e=>({label:e.label,value:e.id})));return o().createElement(i.Fragment,{key:(0,v.toSlug)(e.name)},o().createElement("div",{ref:L(e.id),className:n},o().createElement("span",{className:s},I(e)),o().createElement("div",{className:`${l} reactSelectDropdown`},o().createElement(g.Field,{name:(0,v.toSlug)(e.name),options:r,question:e,validate:x(e.mandatory),isDisabled:a,isRequired:e.mandatory,component:S}),o().createElement(R,{name:(0,v.toSlug)(e.name)}))),(null===(p=e.sub_question_rules)||void 0===p?void 0:p.length)>0&&e.sub_question_rules.map((t=>o().createElement($,{key:t.id,when:(0,v.toSlug)(e.name),rule:t},Q(t.sub_question)))))}if("CheckBoxList"===e.type){var b;const r=t.map((e=>({label:e.label,value:e.id})));return o().createElement(i.Fragment,{key:(0,v.toSlug)(e.name)},o().createElement("div",{ref:L(e.id),className:n},o().createElement("span",{className:s},I(e)),o().createElement("div",{className:l},o().createElement(g.Field,{name:(0,v.toSlug)(e.name),className:l,validate:x(e.mandatory),options:r,question:e,maxValues:e.max_selected_values,isDisabled:a,isRequired:e.mandatory,component:k}),o().createElement(R,{name:(0,v.toSlug)(e.name)}))),(null===(b=e.sub_question_rules)||void 0===b?void 0:b.length)>0&&e.sub_question_rules.map((t=>o().createElement($,{key:t.id,when:(0,v.toSlug)(e.name),rule:t},Q(t.sub_question)))))}return null},V=(e,t,a)=>{var r;if(e.mandatory&&(e=>!!O.current[e.id])(e)){const r=(0,v.toSlug)(e.name);t.hasOwnProperty((0,v.toSlug)(r))&&""!==t[(0,v.toSlug)(r)]&&0!==t[r].length||(a[r]=m)}null===(r=e.sub_question_rules)||void 0===r||r.forEach((e=>{V(e.sub_question,t,a)}))};if(!Object.keys(B).length)return null;const T=(e,t,a)=>{var r;t.includes((0,v.toSlug)(e.name))&&a.push(e),null===(r=e.sub_question_rules)||void 0===r||r.forEach((e=>{T(e.sub_question,t,a)}))},M=t=>{const a=[];return e.forEach((e=>{T(e,t,a)})),a.sort(((e,t)=>e.order>t.order))[0]},K=e=>{const t=O.current[e];t&&t.current&&(t.current.focus(),t.current.scrollIntoView({behavior:"smooth",block:"center"}))};return Object.keys(B).length?o().createElement("div",{className:r},o().createElement(g.Form,{validate:t=>{const a={};return e.forEach((e=>{V(e,t,a)})),a},onSubmit:e=>{a(e)},initialValues:B},(({handleSubmit:t,form:a,submitting:r,pristine:n,values:s})=>(q=t,o().createElement("form",{onSubmit:e=>{const r=a.getRegisteredFields().filter((e=>a.getFieldState(e).invalid));if(r.length>0){const e=M(r);_(r,O.current[e.id],e.id),E&&(e=>{const t=M(e);t&&K(t.id)})(r)}t(e)},ref:P},u?o().createElement("fieldset",{disabled:"disabled"},e.map((e=>Q(e)))):e.map((e=>Q(e))),c&&o().createElement("pre",null,JSON.stringify(s,0,2)))))),!C&&o().createElement("button",{type:"submit",onClick:e=>{q(e)},style:{marginTop:10}},d)):null}));O.propTypes={extraQuestions:c().array.isRequired,userAnswers:c().array.isRequired,onAnswerChanges:c().func.isRequired,className:c().string,debug:c().bool,buttonText:c().string,questionContainerClassName:c().string,questionLabelContainerClassName:c().string,questionControlContainerClassName:c().string,RequiredErrorMessage:c().string,ValidationErrorClassName:c().string,allowExtraQuestionsEdit:c().bool,shouldScroll2FirstError:c().bool,readOnly:c().bool}},7017:(e,t,a)=>{a.d(t,{default:()=>p});var r=a(2462),n=a.n(r),s=a(9825),l=a.n(s),i=a(2015),o=a.n(i),u=a(6842),c=a.n(u),d=a(5028);a(1536);const m=["onChange","value","className","options","id","children","error","disabled","name","ariaLabelledBy"];class p extends o().Component{constructor(e){super(e);let t=!!e.value&&e.value.find((t=>!e.options.map((e=>e.value)).includes(t)));this.state={otherChecked:!!t},this.handleChange=this.handleChange.bind(this),this.handleOtherCBChange=this.handleOtherCBChange.bind(this)}handleChange(e){let t=this.props.options.map((e=>e.value)),a=this.props.value?[...this.props.value]:[];if("checkbox"===e.target.type)if(e.target.checked){const t=isNaN(e.target.value)?e.target.value:parseInt(e.target.value);a.push(t)}else a=a.filter((t=>t!=e.target.value));else a=a.filter((e=>t.includes(e))),a.push(e.target.value);let r={target:{id:this.props.id,value:a,type:"checkboxlist"}};this.props.onChange(r)}handleOtherCBChange(e){this.setState({otherChecked:e.target.checked})}render(){let e,t=this.props,{onChange:a,value:r,className:s,options:l,id:i,children:u,error:p,disabled:h,name:b,ariaLabelledBy:g}=t,{otherChecked:v}=(n()(t,m),this.state),f=this.props.hasOwnProperty("inline"),y=this.props.hasOwnProperty("allowOther"),_=!!r&&r.find((e=>!l.map((e=>e.value)).includes(e))),E=this.props.hasOwnProperty("error")&&""!==p,C=this.props.hasOwnProperty("disabled")&&1==h;return e=f?{paddingLeft:"22px",marginLeft:"20px",float:"left"}:{paddingLeft:"22px",marginTop:"7px"},o().createElement("div",{id:`chl_wrapper_${i}`,"aria-labelledby":g},o().createElement("div",{className:"checkboxes-div"+(E?" error":"")},l.map((t=>{let a=!!r&&r.includes(t.value);return o().createElement("div",{className:"form-check abc-checkbox",key:"radio_key_"+t.value,style:e},o().createElement("input",{type:"checkbox",id:`cb_${i}_${t.value}`,name:b||i,checked:a,disabled:C,onChange:this.handleChange,className:"form-check-input",value:t.value}),o().createElement("label",{className:"form-check-label",htmlFor:`cb_${i}_${t.value}`},o().createElement(d.default,null,t.label)))})),y&&o().createElement("div",{className:"form-check abc-checkbox",style:e},o().createElement("input",{type:"checkbox",id:"cb_other"+i,checked:v,disabled:C,onChange:this.handleOtherCBChange,className:"form-check-input",value:"other"}),o().createElement("label",{className:"form-check-label",htmlFor:"cb_other"+i},c().translate("general.other"))),y&&v&&o().createElement("div",{style:{paddingLeft:"22px",width:"50%"}},o().createElement("input",{className:"form-control",disabled:C,onChange:this.handleChange,value:_}))),E&&o().createElement("p",{className:"error-label"},p))}}p.defaultProps={ariaLabelledBy:null},p.propTypes={id:l().string.isRequired}},6604:(e,t,a)=>{a.d(t,{default:()=>g});var r=a(6031),n=a.n(r),s=a(1116),l=a.n(s),i=a(2462),o=a.n(i),u=a(2015),c=a.n(u),d=a(8466),m=a.n(d);const p=["onChange","value","className","error","clearable","disabled","overrideCSS","ariaLabelledBy"];function h(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function b(e){for(var t=1;te.value)):null:e?e.value:null;let a={target:{id:this.props.id,value:t,type:"dropdown"}};this.props.onChange(a)}render(){let e=this.props,{onChange:t,value:a,className:r,error:s,clearable:l,disabled:i,overrideCSS:u,ariaLabelledBy:d}=e,h=o()(e,p),g=this.props.hasOwnProperty("error")&&""!=s,v=this.props.hasOwnProperty("clearable"),f=this.props.hasOwnProperty("disabled")&&1==i,y=null,_=r;this.props.hasOwnProperty("overrideCSS")&&0!=u||(_="dropdown "+r+" "+(g?"error":"")),y=this.props.isMulti?this.props.options.filter((e=>a.includes(e.value))):a instanceof Object||null==a?a:this.props.options.find((e=>e.value==a));const E={menu:e=>b(b({},e),{},{zIndex:999})};return c().createElement("div",null,c().createElement(m(),n()({className:_,value:y,onChange:this.handleChange,isClearable:v,isDisabled:f,styles:E,"aria-labelledby":d,formatOptionLabel:e=>c().createElement("span",{dangerouslySetInnerHTML:{__html:e.label}})},h)),g&&c().createElement("p",{className:"error-label"},s))}}g.defaultProps={ariaLabelledBy:null}},5639:(e,t,a)=>{a.d(t,{default:()=>d});var r=a(2462),n=a.n(r),s=a(2015),l=a.n(s),i=a(5028),o=a(9825),u=a.n(o);a(1536);const c=["onChange","value","className","error","ariaLabelledBy","disabled","options","id","name"];class d extends l().Component{constructor(e){super(e),this.state={value:e.value},this.handleChange=this.handleChange.bind(this)}handleChange(e){let t={target:{id:this.props.id,value:e.target.value,type:"radio"}};this.props.onChange(t)}getLabel(e,t,a,r){return a?l().createElement("label",{className:"form-check-label",htmlFor:`radio_${t}_${e.value}`,style:{display:"inline-block"}},l().createElement(i.default,null,e.label)):r?l().createElement("label",{className:"form-check-label",htmlFor:`radio_${t}_${e.value}`},e.label):l().createElement("label",{className:"form-check-label",htmlFor:`radio_${t}_${e.value}`,style:{display:"inline-block"}},l().createElement("h4",{style:{marginTop:"0px"}},e.label),l().createElement(i.default,null,e.description))}render(){let e,t=this.props,{onChange:a,value:r,className:s,error:i,ariaLabelledBy:o,disabled:u,options:d,id:m,name:p}=t,h=(n()(t,c),this.props.hasOwnProperty("error")&&""!=i),b=this.props.hasOwnProperty("inline"),g=this.props.hasOwnProperty("simple"),v=this.props.hasOwnProperty("disabled")&&1==u;return e=b?{paddingLeft:"22px",marginLeft:"20px",float:"left"}:{paddingLeft:"22px"},l().createElement("div",{id:`rl_wrapper_${m}`,"aria-labelledby":o},d.map((t=>{let a=t.value==r;return l().createElement("div",{className:"form-check abc-radio",key:`radio_key_${m}_${t.value}`,style:e},l().createElement("input",{className:"form-check-input",type:"radio",id:`radio_${m}_${t.value}`,value:t.value,checked:a,onChange:this.handleChange,disabled:v,name:p||`radio_${m}`}),this.getLabel(t,m,b,g))})),h&&l().createElement("p",{className:"error-label"},i))}}d.defaultProps={ariaLabelledBy:null},d.propTypes={id:u().string.isRequired}},7651:(e,t,a)=>{a.d(t,{default:()=>c});var r=a(6031),n=a.n(r),s=a(2462),l=a.n(s),i=a(2015),o=a.n(i);const u=["onChange","value","className","error","ariaLabelledBy","containerClassName"];class c extends o().Component{constructor(e){super(e),this.handleChange=this.handleChange.bind(this)}componentDidUpdate(e,t,a){this.props.value!==e.value&&(this.input.value=this.props.value)}handleChange(e){this.props.onChange(e)}render(){let e=this.props,{onChange:t,value:a,className:r,error:s,ariaLabelledBy:i,containerClassName:c}=e,d=l()(e,u),m=this.props.hasOwnProperty("error")&&""!==s,p=this.props.hasOwnProperty("className")?r:"form-control",h=this.props.hasOwnProperty("containerClassName")?c:"container-form-control";return o().createElement("div",{className:h},o().createElement("input",n()({className:`${p} ${m?"error":""}`,ref:e=>{this.input=e},defaultValue:a,"aria-labelledby":i,onChange:this.handleChange},d)),m&&o().createElement("p",{className:"error-label"},s))}}c.defaultProps={ariaLabelledBy:null}},5028:(e,t,a)=>{a.d(t,{default:()=>c});var r=a(6031),n=a.n(r),s=a(2462),l=a.n(s),i=a(2015),o=a.n(i);const u=["children","replaceNewLine","className"],c=e=>{let{children:t,replaceNewLine:a=!1,className:r=""}=e,s=l()(e,u);return o().createElement("span",n()({className:r,dangerouslySetInnerHTML:{__html:a?null==t?void 0:t.replace(/\n/g,"
"):t}},s))}},9558:(e,t,a)=>{a.d(t,{toSlug:()=>r});a(5812),a(8041);const r=e=>(e=e.toLowerCase()).replace(/[^a-zA-Z0-9]+/g,"_")},356:(e,t,a)=>{a.d(t,{default:()=>h});var r=a(1116),n=a.n(r),s=a(9558);function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t{if(this.questionByName[(0,s.toSlug)(e.name)]=e,this.questionById[parseInt(e.id)]=e,e.hasOwnProperty("sub_question_rules"))for(let t of e.sub_question_rules)this.rules[parseInt(t.id)]=t,this._parseQuestion(t.sub_question)})),n()(this,"_parseQuestions",(()=>{for(let e of this.questions)this._parseQuestion(e)})),n()(this,"_allowsValues",(e=>d.includes(e.type))),n()(this,"_allowsValue",((e,t)=>{let a=t.value.split(",").map((e=>parseInt(e)));for(let t of a)if(!e.values.map((e=>e.id)).includes(t))return!1;return!0})),n()(this,"_getAnswerFor",(e=>{let t=Number.isInteger(e)?e:e.id,a=this.answers[t]||null;return a||null})),n()(this,"_hasValue",(e=>""!==e.value)),n()(this,"_answerContains",((e,t)=>e.value.split(",").includes(t))),n()(this,"_isSubQuestionVisible",(e=>{let t=e.answer_values_operator===m;const a=this._getAnswerFor(e.parent_question_id);if(a)switch(e.visibility_condition){case p:for(let r of e.answer_values)t=e.answer_values_operator===m?t&&this._answerContains(a,r):t||this._answerContains(a,r);break;case"NotEqual":for(let r of e.answer_values)t=e.answer_values_operator===m?t&&!this._answerContains(a,r):t||!this._answerContains(a,r)}else t=e.visibility_condition!==p;return"Visible"===e.visibility?t:!t})),n()(this,"_isAnswered",(e=>{const t=this._getAnswerFor(e);if("MainQuestion"===e.class)return!e.mandatory||!!t&&(!!this._hasValue(t)&&!(this._allowsValues(e)&&!this._allowsValue(e,t)));for(let a of e.parent_rules)if(this._isSubQuestionVisible(this.rules[a]))return!e.mandatory||!!t&&(!!this._hasValue(t)&&!(this._allowsValues(e)&&!this._allowsValue(e,t)));return!0})),n()(this,"_checkQuestion",(e=>{let t=this._isAnswered(e);if(e.hasOwnProperty("sub_question_rules"))for(let a of e.sub_question_rules)t=t&&this._checkQuestion(a.sub_question);return t})),n()(this,"_formatQuestionAnswer",(e=>{var t,a;let r={};const n=(0,s.toSlug)(e.name);let l=null===(t=this.originalAnswers.find((t=>t.question_id===e.id)))||void 0===t?void 0:t.value;if(!l&&(null==e||null===(a=e.values)||void 0===a?void 0:a.length)>0){const t=e.values.find((e=>e.is_default));t&&(l=t.id.toString())}if(l&&("CheckBox"===e.type&&(l="false"!==l&&!!l),e.type!==c&&e.type!==o||(l=parseInt(l)),e.type===u&&(l=l.split(",").map((e=>parseInt(e)))||[])),r[n]=l||"",e.type===u&&""===r[n]&&(r[n]=[]),e.hasOwnProperty("sub_question_rules"))for(let t of e.sub_question_rules){let e=this._formatQuestionAnswer(t.sub_question);r=i(i({},r),e)}return r})),n()(this,"formatAnswers",(()=>{let e={};return this.questions.forEach((t=>{let a=this._formatQuestionAnswer(t);e=i(i({},e),a)})),e})),n()(this,"completed",(()=>{let e=!0;for(let t of this.questions)e=e&&this._checkQuestion(t);return e})),n()(this,"getQuestionByName",(e=>{const t=(0,s.toSlug)(e);return this.questionByName[e]||this.questionByName[t]||null})),n()(this,"getQuestionById",(e=>this.questionById[parseInt(e)]||null)),this.questions=e,this.originalAnswers=t,this.answers=[];for(let e of this.originalAnswers)this.answers[e.question_id]=e;this.questionByName={},this.questionById={},this.rules={},this._parseQuestions()}}},1116:e=>{e.exports=require("@babel/runtime/helpers/defineProperty")},6031:e=>{e.exports=require("@babel/runtime/helpers/extends")},2462:e=>{e.exports=require("@babel/runtime/helpers/objectWithoutProperties")},1536:e=>{e.exports=require("awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css")},6842:e=>{e.exports=require("i18n-react/dist/i18n-react")},5812:e=>{e.exports=require("moment-timezone")},9825:e=>{e.exports=require("prop-types")},2015:e=>{e.exports=require("react")},8466:e=>{e.exports=require("react-select")},8041:e=>{e.exports=require("urijs")}},t={};function a(r){var n=t[r];if(void 0!==n)return n.exports;var s=t[r]={exports:{}};return e[r](s,s.exports,a),s.exports}(()=>{a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t}})(),(()=>{a.d=(e,t)=>{for(var r in t)a.o(t,r)&&!a.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}})(),(()=>{a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)})(),(()=>{a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}})();var r={};a.r(r),a.d(r,{default:()=>d});var n=a(2015),s=a.n(n),l=a(6842),i=a.n(l),o=(a(6108),a(9825)),u=a.n(o);class c extends s().Component{constructor(e){super(e),this.onSearchClick=this.onSearchClick.bind(this),this.onClearClick=this.onClearClick.bind(this),this.onKeyPressed=this.onKeyPressed.bind(this),this.onChange=this.onChange.bind(this),this.state={value:e.value||""}}onSearchClick(e){let{preventEvents:t}=this.props;t&&e.preventDefault(),this.doFiltering(this.state.value)}onClearClick(e){let{preventEvents:t}=this.props;t&&e.preventDefault(),this.doFiltering(""),this.setState({value:""})}doFiltering(e=""){this.props.onSearch(e.trim())}onKeyPressed(e){13===(e.keyCode||e.which)&&this.doFiltering(this.state.value)}onChange(e){this.setState({value:e.target.value}),this.props.onChange&&this.props.onChange(e.target.value)}render(){let{value:e}=this.state;return s().createElement("div",{className:"row search-container"},s().createElement("div",{className:"col-md-12"},s().createElement("div",{className:"input-group"},s().createElement("input",{type:"text",value:e,className:"form-control",placeholder:this.props.placeholder,onKeyPress:this.onKeyPressed,onChange:this.onChange}),s().createElement("span",{className:"input-group-btn",style:{width:"5%"}},s().createElement("button",{onClick:this.onSearchClick,className:"btn btn-default",title:i().translate("general.search")},s().createElement("i",{className:"fa fa-search"})),s().createElement("button",{onClick:this.onClearClick,className:"btn btn-default",title:i().translate("general.clear")},s().createElement("i",{className:"fa fa-times"}))))))}}c.defaultProps={preventEvents:!1,onChange:null,value:""},c.propTypes={preventEvents:u().bool,onChange:u().func};const d=c;return r})())); +//# sourceMappingURL=free-text-search.js.map \ No newline at end of file diff --git a/lib/components/free-text-search.js.map b/lib/components/free-text-search.js.map new file mode 100644 index 00000000..5be68cbd --- /dev/null +++ b/lib/components/free-text-search.js.map @@ -0,0 +1 @@ +{"version":3,"file":"components/free-text-search.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,0KCTT,MAAM,EAA+BC,QAAQ,oB,cCAtC,MAEMC,EAAwB,WAKxBC,EAA2B,c,sQC6BlCC,EAAeC,IAA2E,IAA1E,MAAEC,EAAK,KAAEC,EAAI,SAAEC,EAAQ,UAAEC,EAAS,WAAEC,EAAU,WAAEC,GAAqBN,EAANO,EAAIC,IAAAR,EAAAS,GAErF,OACIC,IAAAA,cAACC,EAAAA,QAAKC,IAAA,GACEX,EACAM,EAAI,CACRM,mBAAoBT,EACpBU,MAAMC,EAAAA,EAAAA,QAAOZ,EAASW,MACtBE,eAAgB,IAAGD,EAAAA,EAAAA,QAAOZ,EAASW,cACnCG,IAAIF,EAAAA,EAAAA,QAAOZ,EAASW,MACpBI,MAAOjB,EAAMiB,MACbC,SAAUd,EACVe,SAAUd,EACVe,SAAUpB,EAAMoB,SAChBC,YAAanB,EAASmB,cACxB,EAIJC,EAAyBC,IAAgE,IAA/D,MAAEvB,EAAK,KAAEC,EAAI,SAAEC,EAAQ,WAAEE,EAAU,WAAEC,GAAqBkB,EAANjB,EAAIC,IAAAgB,EAAAC,GAEpF,OACIf,IAAAA,cAACgB,EAAAA,QAASd,IAAA,GACFX,EACAM,EAAI,CACRO,MAAMC,EAAAA,EAAAA,QAAOZ,EAASW,MACtBE,eAAgB,IAAGD,EAAAA,EAAAA,QAAOZ,EAASW,cACnCG,IAAIF,EAAAA,EAAAA,QAAOZ,EAASW,MACpBa,aAAa,EACbT,MAAOjB,EAAMiB,MACbC,SAAUd,EACVe,SAAUd,EACVe,SAAUpB,EAAMoB,WAClB,EAGJO,EAAkBC,IAAgE,IAA/D,MAAE5B,EAAK,KAAEC,EAAI,SAAEC,EAAQ,WAAEE,EAAU,WAAEC,GAAqBuB,EAANtB,EAAIC,IAAAqB,EAAAC,GAE7E,OAAQpB,IAAAA,cAACqB,EAAAA,QAAQnB,IAAA,GACTX,EACAM,EAAI,CACRO,MAAMC,EAAAA,EAAAA,QAAOZ,EAASW,MACtBE,eAAgB,IAAGD,EAAAA,EAAAA,QAAOZ,EAASW,cACnCG,IAAIF,EAAAA,EAAAA,QAAOZ,EAASW,MACpBa,aAAa,EACbvB,UAAU,gCACV4B,gBAAgB,sBAChBd,MAAOjB,EAAMiB,MACbC,SAAUd,EACVe,SAAUd,EACVe,SAAUpB,EAAMoB,WAClB,EAGAY,EAAsBC,IAA2E,IAA1E,MAAEjC,EAAK,KAAEC,EAAI,SAAEC,EAAQ,WAAEE,EAAU,WAAEC,EAAU,UAAE6B,GAAoBD,EAAN3B,EAAIC,IAAA0B,EAAAE,GAU5F,OACI1B,IAAAA,cAAC2B,EAAAA,QAAYzB,IAAA,GACLX,EACAM,EAAI,CACRU,IAAIF,EAAAA,EAAAA,QAAOZ,EAASW,MACpBA,MAAMC,EAAAA,EAAAA,QAAOZ,EAASW,MACtBE,eAAgB,IAAGD,EAAAA,EAAAA,QAAOZ,EAASW,cACnCI,MAAOjB,EAAMiB,MACbC,SAAUd,EACVe,SAAUd,EACVe,SAlBciB,IAClB,MAAMC,EAAmBD,EAAGE,OAAOtB,MAEnC,OAAIiB,EAAY,GAAKI,EAAiBE,OAASN,EACpC,KAEJlC,EAAMoB,SAASiB,EAAG,IAavB,EAIJI,EAAepC,GACjBA,EAAaY,GAAUA,OAAQyB,EAAY,WAAc,OAEvDC,EAAqBlC,IAAAA,YAAiB,EACKmC,iBACAC,cACAC,kBACA3C,YAAY,iBACZ4C,6BAA6B,qBAC7BC,kCAAkC,2BAClCC,oCAAmC,6BACnCC,YAAW,EACXC,SAAQ,EACRC,aAAa,SACbC,uBAAuB,WACvBC,2BAA2B,uBAC3BC,2BAA0B,EAC1BC,UAAWC,GAAMC,QAAQC,IAAI,gBAAiBF,GAC9CG,2BAA0B,GAC3BC,KAE5C,IAAIC,EAAS,KAEb,MAAMC,GAAeC,EAAAA,EAAAA,QAAO,CAAC,GACvBC,GAAUD,EAAAA,EAAAA,QAAO,OAChBE,EAASC,IAAcC,EAAAA,EAAAA,UAAS,CAAC,IAExCC,EAAAA,EAAAA,YAAU,KACNC,GAAmB,GACpB,CAAC1B,KAGJ2B,EAAAA,EAAAA,qBAAoBV,GAAK,KAAM,CAC3BW,QAAAA,GAAW,IAAAC,EACQ,QAAfA,EAAAR,EAAQS,eAAO,IAAAD,GAAfA,EAAiBE,cAAc,IAAIC,MAAM,SAAU,CAAEC,YAAY,EAAMC,SAAS,IACpF,EACAC,mBAAAA,CAAoBC,GAChBC,EAAiBD,EACrB,MAGJ,MAAME,EAAkBlE,IACf+C,EAAaW,QAAQ1D,KACtB+C,EAAaW,QAAQ1D,GAAMP,IAAAA,aAExBsD,EAAaW,QAAQ1D,IAG1BsD,EAAoBA,KACtB,MAAMa,EAAK,IAAIC,EAAAA,QAAaxC,EAAgBC,GAC5CsB,EAAWgB,EAAGE,gBAAgB,EAG5BC,EAAYA,EAAEC,OAAMC,OAAMC,cAC5BhF,IAAAA,cAACiF,EAAAA,MAAK,CAAC7E,KAAM0E,EAAMI,aAAc,CAAC1E,OAAO,KACpC,EAAEjB,OAAQiB,YACP2E,EAAgBJ,EAAMK,EAAU5E,EAAOuE,GAAOC,KAKpDK,EAAQA,EAAGjF,UACbJ,IAAAA,cAACiF,EAAAA,MAAK,CAAC7E,KAAMA,EAAM8E,aAAc,CAAEI,OAAO,EAAMC,SAAS,EAAMC,cAAc,KACxE,EAAGhG,MAAQ8F,QAAOC,UAASC,mBACxBF,IAAUC,GAAWC,GAAgBxF,IAAAA,cAAA,OAAKN,UAAWmD,GAA2ByC,GAAe,OAKrGF,EAAYA,CAAC5E,EAAOuE,KACtB,IAAIU,EAASV,EAAKW,cAElB,GAAIC,MAAMC,QAAQpF,GAAQ,CACtB,IAAKA,EAAMuB,OAAQ,OAAO,EAC1B,IAAI8D,EAAsC,QAAhCd,EAAKe,uBASf,OARAL,EAAOM,SAASC,IAERH,EADgC,QAAhCd,EAAKe,uBACCD,GAAOrF,EAAMyF,SAASC,SAASF,IAG/BH,GAAOrF,EAAMyF,SAASC,SAASF,GACzC,IAEGH,CACX,CACA,OAAOJ,EAAOQ,SAASzF,EAAM2F,WAAW,EAGtChB,EAAkBA,CAACJ,EAAMqB,EAAYpB,IACf,YAApBD,EAAKsB,WAC6B,UAA9BtB,EAAKuB,qBACDF,EAAmBpB,UAChB1B,EAAaW,QAAQc,EAAKwB,aAAahG,IACvC,MAGP6F,UAGG9C,EAAaW,QAAQc,EAAKwB,aAAahG,IACvC,MAHIyE,EAMmB,UAA9BD,EAAKuB,qBACAF,UACE9C,EAAaW,QAAQc,EAAKwB,aAAahG,IACvC,MAFiByE,EAIxBoB,EAAmBpB,UAChB1B,EAAaW,QAAQc,EAAKwB,aAAahG,IACvC,MAGLiG,EAAYC,IAAM,IAAAC,EAEpB,MAAMC,EAAmBC,OAAOC,aAAa,KAEvCC,EAASL,SAAQ,QAAPC,EAADD,EAAGK,aAAK,IAAAJ,OAAP,EAADA,EAAUK,QAAQ,MAAO,UAAUA,QAAQ,iBAAkB,MACtEC,EAAoB,CAAC7H,EAAuBC,GAG5C6H,EAAYR,EAAES,YAAcF,EAAkBf,SAASQ,EAAEU,MAAQ,GAAGL,IAAQH,YAA6BG,EAC/G,OAAQ9G,IAAAA,cAAA,SAAOoH,wBAAyB,CAACC,OAAQJ,GAAYK,SAASjH,EAAAA,EAAAA,QAAOoG,EAAErG,MAAOG,GAAI,IAAGF,EAAAA,EAAAA,QAAOoG,EAAErG,eAAiB,EAerHmH,EAAkBd,IACpB,IAAIe,EAAiBf,EAAEhB,OAEvB,MAAM9F,GAAcmD,GAfL2E,EAAChB,EAAGhD,KACnB,MAAMiE,GAAOrH,EAAAA,EAAAA,QAAOoG,EAAErG,MACtB,IAAIqD,EAAQkE,eAAeD,GAAO,OAAO,EACzC,MAAME,EAASnE,EAAQiE,GAEvB,OAAI/B,MAAMC,QAAQgC,IACI,iBAAXA,EADuBA,EAAO7F,OAAS,EAE5B,iBAAX6F,EAA4BA,EAAS,EAC1B,kBAAXA,GAA6BA,CAC5B,EAMmCH,CAAWhB,EAAGhD,GAE3B,IAAAoE,EA2BIC,EA2BAC,EAmCEC,EAzFxC,GDjQyB,SCiQrBvB,EAAEU,KACF,OACInH,IAAAA,cAACiI,EAAAA,SAAQ,CAACC,KAAK7H,EAAAA,EAAAA,QAAOoG,EAAErG,OACpBJ,IAAAA,cAAA,OAAKoD,IAAKqB,EAAegC,EAAElG,IAAKb,UAAW4C,GACvCtC,IAAAA,cAAA,QAAMN,UAAW6C,GAAkCiE,EAASC,IAC5DzG,IAAAA,cAAA,OAAKN,UAAW8C,GACZxC,IAAAA,cAACiF,EAAAA,MAAK,CAAC7E,MAAMC,EAAAA,EAAAA,QAAOoG,EAAErG,MACfX,SAAUgH,EACV9G,WAAYA,EACZC,WAAY6G,EAAES,UACdiB,SAAUnG,EAAayE,EAAES,WACzBkB,UAAW/I,IAElBW,IAAAA,cAACqF,EAAK,CAACjF,MAAMC,EAAAA,EAAAA,QAAOoG,EAAErG,WAGT,QAApByH,EAAApB,EAAE4B,0BAAkB,IAAAR,OAAA,EAApBA,EAAsB9F,QAAS,GAChC0E,EAAE4B,mBAAmBC,KAAKC,GAElBvI,IAAAA,cAAC6E,EAAS,CAACqD,IAAKK,EAAEhI,GAAIuE,MAAMzE,EAAAA,EAAAA,QAAOoG,EAAErG,MAAO2E,KAAMwD,GAC7ChB,EAAegB,EAAEhC,kBAO1C,GD3R6B,aC2RzBE,EAAEU,KACF,OACInH,IAAAA,cAACiI,EAAAA,SAAQ,CAACC,KAAK7H,EAAAA,EAAAA,QAAOoG,EAAErG,OACpBJ,IAAAA,cAAA,OAAKoD,IAAKqB,EAAegC,EAAElG,IAAKb,UAAW4C,GACvCtC,IAAAA,cAAA,QAAMN,UAAW6C,GAAkCiE,EAASC,IAC5DzG,IAAAA,cAAA,OAAKN,UAAW8C,GACZxC,IAAAA,cAACiF,EAAAA,MAAK,CACCkD,SAAUnG,EAAayE,EAAES,WACzB9G,MAAMC,EAAAA,EAAAA,QAAOoG,EAAErG,MACfG,IAAIF,EAAAA,EAAAA,QAAOoG,EAAErG,MACbK,SAAUd,EACVe,SAAU+F,EAAES,UACZkB,UAAU,aACjBpI,IAAAA,cAACqF,EAAK,CAACjF,MAAMC,EAAAA,EAAAA,QAAOoG,EAAErG,WAGT,QAApB0H,EAAArB,EAAE4B,0BAAkB,IAAAP,OAAA,EAApBA,EAAsB/F,QAAS,GAChC0E,EAAE4B,mBAAmBC,KAAKC,GAElBvI,IAAAA,cAAC6E,EAAS,CAACqD,IAAKK,EAAEhI,GAAIuE,MAAMzE,EAAAA,EAAAA,QAAOoG,EAAErG,MAAO2E,KAAMwD,GAC7ChB,EAAegB,EAAEhC,kBAO1C,GAAIE,EAAEU,OAAShI,EACX,OACIa,IAAAA,cAACiI,EAAAA,SAAQ,CAACC,KAAK7H,EAAAA,EAAAA,QAAOoG,EAAErG,OACpBJ,IAAAA,cAAA,OAAKoD,IAAKqB,EAAegC,EAAElG,IAAKb,UAAW,GAAG4C,sBAC1CtC,IAAAA,cAAA,OAAKN,UAAW,GAAG8C,mBACfxC,IAAAA,cAAA,OAAKN,UAAU,2BACXM,IAAAA,cAACiF,EAAAA,MAAK,CACC7E,MAAMC,EAAAA,EAAAA,QAAOoG,EAAErG,MACfG,IAAIF,EAAAA,EAAAA,QAAOoG,EAAErG,MACb+H,SAAUnG,EAAayE,EAAES,WACzBzG,SAAUd,EACVe,SAAU+F,EAAES,UACZC,KAAK,WACLzH,UAAU,mBACV0I,UAAU,UACjBpI,IAAAA,cAAA,SAAON,UAAU,mBAAmB4H,SAASjH,EAAAA,EAAAA,QAAOoG,EAAErG,QACrDqG,EAAES,WAAalH,IAAAA,cAAA,QAAMN,UAAU,sBAAqBM,IAAAA,cAAA,SAAG,QAGhEA,IAAAA,cAAA,QAAMN,UAAW,qBAAqB6C,KACjCiE,EAASC,KAGlBzG,IAAAA,cAACqF,EAAK,CAACjF,MAAMC,EAAAA,EAAAA,QAAOoG,EAAErG,SACD,QAApB2H,EAAAtB,EAAE4B,0BAAkB,IAAAN,OAAA,EAApBA,EAAsBhG,QAAS,GAChC0E,EAAE4B,mBAAmBC,KAAKC,GAElBvI,IAAAA,cAAC6E,EAAS,CAACqD,IAAKK,EAAEhI,GAAIuE,MAAMzE,EAAAA,EAAAA,QAAOoG,EAAErG,MAAO2E,KAAMwD,GAC7ChB,EAAegB,EAAEhC,kBAO1C,GAAIE,EAAEU,OAAS/H,EACX,OACIY,IAAAA,cAACiI,EAAAA,SAAQ,CAACC,KAAK7H,EAAAA,EAAAA,QAAOoG,EAAErG,OACpBJ,IAAAA,cAAA,OAAKoD,IAAKqB,EAAegC,EAAElG,IAAKb,UAAW,GAAG4C,sBAC1CtC,IAAAA,cAAA,OAAKN,UAAW,GAAG8C,mBACfxC,IAAAA,cAAA,OAAKN,UAAU,wBACXM,IAAAA,cAACiF,EAAAA,MAAK,CACF7E,MAAMC,EAAAA,EAAAA,QAAOoG,EAAErG,MACfG,IAAIF,EAAAA,EAAAA,QAAOoG,EAAErG,MACb+H,SAAUnG,EAAayE,EAAES,WACzBzG,SAAUd,EACVe,SAAU+F,EAAES,UACZC,KAAK,QACLzH,UAAU,mBACVc,MAAM,OACN4H,UAAU,UACdpI,IAAAA,cAAA,SAAON,UAAU,mBAAmB4H,SAASjH,EAAAA,EAAAA,QAAOoG,EAAErG,QACrDqG,EAAES,WAAalH,IAAAA,cAAA,QAAMN,UAAU,sBAAqBM,IAAAA,cAAA,SAAG,QAGhEA,IAAAA,cAAA,QAAMN,UAAW,qBAAqB6C,KACjCiE,EAASC,KAGlBzG,IAAAA,cAACqF,EAAK,CAACjF,MAAMC,EAAAA,EAAAA,QAAOoG,EAAErG,SACD,QAApB4H,EAAAvB,EAAE4B,0BAAkB,IAAAL,OAAA,EAApBA,EAAsBjG,QAAS,GAC5B0E,EAAE4B,mBAAmBC,KAAKC,GAElBvI,IAAAA,cAAC6E,EAAS,CAACqD,IAAKK,EAAEhI,GAAIuE,MAAMzE,EAAAA,EAAAA,QAAOoG,EAAErG,MAAO2E,KAAMwD,GAC7ChB,EAAegB,EAAEhC,kBAO9C,GD3XoC,oBC2XhCE,EAAEU,KAAuC,KAAAqB,EACzC,MAAMC,EAAUjB,EAAec,KAAII,IAAO,CAAE5B,MAAQ4B,EAAI5B,MAAOtG,MAAQkI,EAAInI,OAC3E,OACIP,IAAAA,cAACiI,EAAAA,SAAQ,CAACC,KAAK7H,EAAAA,EAAAA,QAAOoG,EAAErG,OACpBJ,IAAAA,cAAA,OAAKoD,IAAKqB,EAAegC,EAAElG,IAAKb,UAAW4C,GACvCtC,IAAAA,cAAA,QAAMN,UAAW6C,GACZiE,EAASC,IAEdzG,IAAAA,cAAA,OAAKN,UAAW8C,GACZxC,IAAAA,cAACiF,EAAAA,MAAK,CAAC7E,MAAMC,EAAAA,EAAAA,QAAOoG,EAAErG,MACfqI,QAASA,EACThJ,SAAUgH,EACV0B,SAAUnG,EAAayE,EAAES,WACzBvH,WAAYA,EACZC,WAAY6G,EAAES,UACdkB,UAAWvH,IAClBb,IAAAA,cAACqF,EAAK,CAACjF,MAAMC,EAAAA,EAAAA,QAAOoG,EAAErG,WAGT,QAApBoI,EAAA/B,EAAE4B,0BAAkB,IAAAG,OAAA,EAApBA,EAAsBzG,QAAS,GAChC0E,EAAE4B,mBAAmBC,KAAKC,GAElBvI,IAAAA,cAAC6E,EAAS,CAACqD,IAAKK,EAAEhI,GAAIuE,MAAMzE,EAAAA,EAAAA,QAAOoG,EAAErG,MAAO2E,KAAMwD,GAC7ChB,EAAegB,EAAEhC,iBAM1C,CACA,GDxZ6B,aCwZzBE,EAAEU,MDtZ8B,oBCsZIV,EAAEU,KAAuC,KAAAwB,EAC7E,MAAMF,EAAUjB,EAAec,KAAII,IAAO,CAAE5B,MAAQ4B,EAAI5B,MAAOtG,MAAQkI,EAAInI,OAC3E,OACIP,IAAAA,cAACiI,EAAAA,SAAQ,CAACC,KAAK7H,EAAAA,EAAAA,QAAOoG,EAAErG,OACpBJ,IAAAA,cAAA,OAAKoD,IAAKqB,EAAegC,EAAElG,IAAKb,UAAW4C,GACvCtC,IAAAA,cAAA,QAAMN,UAAW6C,GACZiE,EAASC,IAEdzG,IAAAA,cAAA,OAAKN,UAAW,GAAG8C,yBACfxC,IAAAA,cAACiF,EAAAA,MAAK,CAAC7E,MAAMC,EAAAA,EAAAA,QAAOoG,EAAErG,MACfqI,QAASA,EACThJ,SAAUgH,EACV0B,SAAUnG,EAAayE,EAAES,WACzBvH,WAAYA,EACZC,WAAY6G,EAAES,UACdkB,UAAWlH,IAElBlB,IAAAA,cAACqF,EAAK,CAACjF,MAAMC,EAAAA,EAAAA,QAAOoG,EAAErG,WAGT,QAApBuI,EAAAlC,EAAE4B,0BAAkB,IAAAM,OAAA,EAApBA,EAAsB5G,QAAS,GAChC0E,EAAE4B,mBAAmBC,KAAKC,GAElBvI,IAAAA,cAAC6E,EAAS,CAACqD,IAAKK,EAAEhI,GAAIuE,MAAMzE,EAAAA,EAAAA,QAAOoG,EAAErG,MAAO2E,KAAMwD,GAC7ChB,EAAegB,EAAEhC,iBAM1C,CACA,GDtbiC,iBCsb7BE,EAAEU,KAAoC,KAAAyB,EACtC,MAAMH,EAAUjB,EAAec,KAAII,IAAO,CAAE5B,MAAQ4B,EAAI5B,MAAOtG,MAAQkI,EAAInI,OAC3E,OACIP,IAAAA,cAACiI,EAAAA,SAAQ,CAACC,KAAK7H,EAAAA,EAAAA,QAAOoG,EAAErG,OACpBJ,IAAAA,cAAA,OAAKoD,IAAKqB,EAAegC,EAAElG,IAAKb,UAAW4C,GACvCtC,IAAAA,cAAA,QAAMN,UAAW6C,GACZiE,EAASC,IAEdzG,IAAAA,cAAA,OAAKN,UAAW8C,GACZxC,IAAAA,cAACiF,EAAAA,MAAK,CAAC7E,MAAMC,EAAAA,EAAAA,QAAOoG,EAAErG,MACfV,UAAW8C,EACX2F,SAAUnG,EAAayE,EAAES,WACzBuB,QAASA,EACThJ,SAAUgH,EACVhF,UAAWgF,EAAEoC,oBACblJ,WAAYA,EACZC,WAAY6G,EAAES,UACdkB,UAAW7G,IAElBvB,IAAAA,cAACqF,EAAK,CAACjF,MAAMC,EAAAA,EAAAA,QAAOoG,EAAErG,WAGT,QAApBwI,EAAAnC,EAAE4B,0BAAkB,IAAAO,OAAA,EAApBA,EAAsB7G,QAAS,GAChC0E,EAAE4B,mBAAmBC,KAAKC,GAElBvI,IAAAA,cAAC6E,EAAS,CAACqD,IAAKK,EAAEhI,GAAIuE,MAAMzE,EAAAA,EAAAA,QAAOoG,EAAErG,MAAO2E,KAAMwD,GAC7ChB,EAAegB,EAAEhC,iBAM1C,CACA,OAAO,IAAI,EAOTuC,EAAmBA,CAACrC,EAAGhB,EAAQsD,KAAW,IAAAC,EAC5C,GAAIvC,EAAES,WALST,MACNnD,EAAaW,QAAQwC,EAAElG,IAIb0I,CAAUxC,GAAI,CAC7B,MAAMiB,GAAOrH,EAAAA,EAAAA,QAAOoG,EAAErG,MACjBqF,EAAOkC,gBAAetH,EAAAA,EAAAA,QAAOqH,KAAmC,KAAzBjC,GAAOpF,EAAAA,EAAAA,QAAOqH,KAAyC,IAAxBjC,EAAOiC,GAAM3F,SACpFgH,EAAOrB,GAAQ9E,EAEvB,CAEoB,QAApBoG,EAAAvC,EAAE4B,0BAAkB,IAAAW,GAApBA,EAAsBjD,SAASwC,IAC3BO,EAAiBP,EAAEhC,aAAcd,EAAQsD,EAAO,GAClD,EAeN,IAAIG,OAAOC,KAAK1F,GAAS1B,OAAQ,OAAO,KAExC,MAAMqH,EAAiBA,CAAC3C,EAAG4C,EAAmBC,KAAgB,IAAAC,EACtDF,EAAkBpD,UAAS5F,EAAAA,EAAAA,QAAOoG,EAAErG,QACpCkJ,EAAYE,KAAK/C,GAGD,QAApB8C,EAAA9C,EAAE4B,0BAAkB,IAAAkB,GAApBA,EAAsBxD,SAASwC,IAC3Ba,EAAeb,EAAEhC,aAAc8C,EAAmBC,EAAY,GAChE,EAGAG,EAAiBJ,IACnB,MAAMC,EAAc,GAIpB,OAHAnH,EAAe4D,SAAQU,IACnB2C,EAAe3C,EAAG4C,EAAmBC,EAAY,IAE9CA,EAAYI,MAAK,CAACC,EAAGC,IAAMD,EAAEE,MAAQD,EAAEC,QAAO,EAAE,EAUrDrF,EAAoBD,IACtB,MAAMnB,EAAME,EAAaW,QAAQM,GAC7BnB,GAAOA,EAAIa,UACXb,EAAIa,QAAQ6F,QACZ1G,EAAIa,QAAQ8F,eAAe,CACvBC,SAAU,SACVC,MAAO,WAEf,EAGJ,OAAKf,OAAOC,KAAK1F,GAAS1B,OAGtB/B,IAAAA,cAAA,OAAKN,UAAWA,GACZM,IAAAA,cAACkK,EAAAA,KAAI,CACD/B,SAnDM1C,IACd,MAAMsD,EAAS,CAAC,EAIhB,OAHA5G,EAAe4D,SAASU,IACpBqC,EAAiBrC,EAAGhB,EAAQsD,EAAO,IAEhCA,CAAM,EA+CLoB,SAxDM1E,IACdpD,EAAgBoD,EAAO,EAwDf2E,cAAe3G,IAEd,EAAE4G,eAAcC,OAAMC,aAAYC,WAAU/E,aACzCpC,EAASgH,EAELrK,IAAAA,cAAA,QACImK,SAAWM,IACP,MAAMpB,EAAoBiB,EAAKI,sBAAsBC,QAAOC,GAASN,EAAKO,cAAcD,GAAOE,UAC/F,GAAIzB,EAAkBtH,OAAS,EAAG,CAC9B,MAAMgJ,EAAatB,EAAcJ,GAIjCtG,EAAQsG,EAAmB/F,EAAaW,QAAQ8G,EAAWxK,IAAKwK,EAAWxK,IACvE4C,GAvCRkG,KACxB,MAAM0B,EAAatB,EAAcJ,GAC7B0B,GACAvG,EAAiBuG,EAAWxK,GAChC,EAoCgCyK,CAAmB3B,EAC3B,CACAgB,EAAaI,EAAM,EAEvBrH,IAAKI,GACJf,EACGzC,IAAAA,cAAA,YAAUS,SAAS,YACd0B,EAAemG,KAAK7B,GAAMc,EAAed,MAG9CtE,EAAemG,KAAK7B,GAAMc,EAAed,KAE5C/D,GAAS1C,IAAAA,cAAA,WAAMiL,KAAKC,UAAUzF,EAAQ,EAAG,SAKxDrC,GACFpD,IAAAA,cAAA,UACImH,KAAK,SACLgE,QAAUV,IACNpH,EAAOoH,EAAM,EAEjBW,MAAO,CAACC,UAAW,KAElB1I,IA/C4B,IAkD/B,IAIdT,EAAmBoJ,UAAY,CAC3BnJ,eAAgBoJ,IAAAA,MAAgB3L,WAChCwC,YAAamJ,IAAAA,MAAgB3L,WAC7ByC,gBAAiBkJ,IAAAA,KAAe3L,WAChCF,UAAW6L,IAAAA,OACX7I,MAAO6I,IAAAA,KACP5I,WAAY4I,IAAAA,OACZjJ,2BAA4BiJ,IAAAA,OAC5BhJ,gCAAiCgJ,IAAAA,OACjC/I,kCAAmC+I,IAAAA,OACnC3I,qBAAsB2I,IAAAA,OACtB1I,yBAA0B0I,IAAAA,OAC1BzI,wBAAyByI,IAAAA,KACzBpI,wBAAyBoI,IAAAA,KACzB9I,SAAU8I,IAAAA,K,wPCnlBC,MAAM5J,UAAqB3B,IAAAA,UAEtCwL,WAAAA,CAAYC,GACRC,MAAMD,GAEN,IAAIE,IAAaF,EAAMjL,OAAQiL,EAAMjL,MAAMoL,MAAM5F,IAAMyF,EAAMhD,QAAQH,KAAIuD,GAAMA,EAAGrL,QAAOyF,SAASD,KAElG/G,KAAK6M,MAAQ,CACTC,eAAgBJ,GAGpB1M,KAAK+M,aAAe/M,KAAK+M,aAAaC,KAAKhN,MAC3CA,KAAKiN,oBAAsBjN,KAAKiN,oBAAoBD,KAAKhN,KAC7D,CAEA+M,YAAAA,CAAavB,GACT,IAAI0B,EAAelN,KAAKwM,MAAMhD,QAAQH,KAAIuD,GAAMA,EAAGrL,QAC/CA,EAAQvB,KAAKwM,MAAMjL,MAAQ,IAAIvB,KAAKwM,MAAMjL,OAAS,GAEvD,GAA0B,aAAtBiK,EAAM3I,OAAOqF,KACb,GAAIsD,EAAM3I,OAAOsK,QAAS,CACtB,MAAMC,EAASC,MAAM7B,EAAM3I,OAAOtB,OAASiK,EAAM3I,OAAOtB,MAAQ0F,SAASuE,EAAM3I,OAAOtB,OACtFA,EAAMgJ,KAAK6C,EACf,MACI7L,EAAQA,EAAMmK,QAAQ3E,GAAKA,GAAKyE,EAAM3I,OAAOtB,aAGjDA,EAAQA,EAAMmK,QAAO3E,GAAKmG,EAAalG,SAASD,KAChDxF,EAAMgJ,KAAKiB,EAAM3I,OAAOtB,OAG5B,IAAIoB,EAAK,CAACE,OAAQ,CACVvB,GAAItB,KAAKwM,MAAMlL,GACfC,MAAOA,EACP2G,KAAM,iBAGdlI,KAAKwM,MAAM9K,SAASiB,EACxB,CAEAsK,mBAAAA,CAAoBzB,GAChBxL,KAAKsN,SAAS,CAACR,aAActB,EAAM3I,OAAOsK,SAC9C,CAEAI,MAAAA,GAEI,IAUIpB,EAVJqB,EAAyGxN,KAAKwM,OAA1G,SAAC9K,EAAQ,MAAEH,EAAK,UAAEd,EAAS,QAAE+I,EAAO,GAAElI,EAAE,SAAEyE,EAAQ,MAAEM,EAAK,SAAE7E,EAAQ,KAACL,EAAI,eAAEE,GAAwBmM,GAClG,aAAEV,IAD+FjM,IAAA2M,EAAA1M,GAC9Ed,KAAK6M,OAExBY,EAAWzN,KAAKwM,MAAM9D,eAAe,UACrCgF,EAAe1N,KAAKwM,MAAM9D,eAAe,cACzCgE,IAAanL,GAAQA,EAAMoL,MAAM5F,IAAMyC,EAAQH,KAAIuD,GAAMA,EAAGrL,QAAOyF,SAASD,KAC5E4G,EAAc3N,KAAKwM,MAAM9D,eAAe,UAAsB,KAAVrC,EACpD3F,EAAcV,KAAKwM,MAAM9D,eAAe,aAA2B,GAAZlH,EAkB3D,OAZI2K,EADAsB,EACQ,CACJG,YAAa,OACbC,WAAY,OACZC,MAAO,QAGH,CACJF,YAAa,OACbxB,UAAW,OAKfrL,IAAAA,cAAA,OAAKO,GAAI,eAAeA,IAAM,kBAAiBD,GAC3CN,IAAAA,cAAA,OAAKN,UAAW,kBAAoBkN,EAAY,SAAW,KACrDnE,EAAQH,KAAIuD,IACV,IAAIO,IAAU5L,GAAQA,EAAMyF,SAAS4F,EAAGrL,OACxC,OACIR,IAAAA,cAAA,OAAKN,UAAU,0BAA0BwI,IAAK,aAAe2D,EAAGrL,MAAO4K,MAAOA,GAC1EpL,IAAAA,cAAA,SAAOmH,KAAK,WACL5G,GAAI,MAAMA,KAAMsL,EAAGrL,QACnBJ,KAAMA,GAAaG,EACnB6L,QAASA,EACT3L,SAAUd,EACVgB,SAAU1B,KAAK+M,aAActM,UAAU,mBAAmBc,MAAOqL,EAAGrL,QAC3ER,IAAAA,cAAA,SAAON,UAAU,mBAAmB4H,QAAS,MAAM/G,KAAMsL,EAAGrL,SACxDR,IAAAA,cAACgN,EAAAA,QAAO,KAAEnB,EAAG/E,QAEf,IAIb6F,GACD3M,IAAAA,cAAA,OAAKN,UAAU,0BAA0B0L,MAAOA,GAC5CpL,IAAAA,cAAA,SAAOmH,KAAK,WAAW5G,GAAI,WAAaA,EAAI6L,QAASL,EAActL,SAAUd,EACtEgB,SAAU1B,KAAKiN,oBAAqBxM,UAAU,mBAAmBc,MAAM,UAC9ER,IAAAA,cAAA,SAAON,UAAU,mBAAmB4H,QAAS,WAAa/G,GACrD0M,IAAAA,UAAY,mBAKpBN,GAAcZ,GACf/L,IAAAA,cAAA,OAAKoL,MAAO,CAACyB,YAAa,OAAQK,MAAO,QACrClN,IAAAA,cAAA,SAAON,UAAU,eAAee,SAAUd,EAAYgB,SAAU1B,KAAK+M,aAAcxL,MAAOmL,MAKjGiB,GACD5M,IAAAA,cAAA,KAAGN,UAAU,eAAe4F,GAKxC,EAGJ3D,EAAawL,aAAe,CACxB7M,eAAiB,MAIrBqB,EAAa2J,UAAY,CACrB/K,GAAIgL,IAAAA,OAAiB3L,W,mzBC9HV,MAAMyB,UAAiBrB,IAAAA,UAElCwL,WAAAA,CAAYC,GACRC,MAAMD,GAENxM,KAAK+M,aAAe/M,KAAK+M,aAAaC,KAAKhN,KAC/C,CAEA+M,YAAAA,CAAaoB,GAET,IAAI5M,EAAQ,KAERA,EADAvB,KAAKwM,MAAM4B,QACHD,EAAYA,EAAU9E,KAAII,GAAOA,EAAIlI,QAAS,KAE9C4M,EAAYA,EAAU5M,MAAQ,KAG1C,IAAIoB,EAAK,CAACE,OAAQ,CACVvB,GAAItB,KAAKwM,MAAMlL,GACfC,MAAOA,EACP2G,KAAM,aAGdlI,KAAKwM,MAAM9K,SAASiB,EACxB,CAEA4K,MAAAA,GAEI,IAAAC,EAAqGxN,KAAKwM,OAAtG,SAAC9K,EAAQ,MAAEH,EAAK,UAAEd,EAAS,MAAE4F,EAAK,UAAEgI,EAAS,SAAE7M,EAAQ,YAAEQ,EAAW,eAAEX,GAAwBmM,EAAL5M,EAAIC,IAAA2M,EAAA1M,GAC7F6M,EAAc3N,KAAKwM,MAAM9D,eAAe,UAAqB,IAATrC,EACpDiI,EAAetO,KAAKwM,MAAM9D,eAAe,aACzChI,EAAcV,KAAKwM,MAAM9D,eAAe,aAA2B,GAAZlH,EACvD+M,EAAW,KAEXC,EAAkB/N,EAEjBT,KAAKwM,MAAM9D,eAAe,gBAAiC,GAAf1G,IAC7CwM,EAAkB,YAAc/N,EAAY,KAAOkN,EAAY,QAAU,KAIzEY,EADAvO,KAAKwM,MAAM4B,QACApO,KAAKwM,MAAMhD,QAAQkC,QAAOkB,GAAMrL,EAAMyF,SAAS4F,EAAGrL,SAEjDA,aAAiB0I,QAAmB,MAAT1I,EAAiBA,EAAQvB,KAAKwM,MAAMhD,QAAQmD,MAAK8B,GAAOA,EAAIlN,OAASA,IAGhH,MAAMmN,EAAe,CAAEC,KAAMC,GAAMC,EAAAA,EAAA,GAAUD,GAAM,IAAEE,OAAQ,OAE7D,OACI/N,IAAAA,cAAA,WACIA,IAAAA,cAACgO,IAAM9N,IAAA,CACHR,UAAW+N,EACXjN,MAAOgN,EACP7M,SAAU1B,KAAK+M,aACfuB,YAAaA,EACb5N,WAAYA,EACZkO,OAAQF,EACR,kBAAiBrN,EACjB2N,kBAAoBC,GAASlO,IAAAA,cAAA,QAAMoH,wBAAyB,CAAEC,OAAQ6G,EAAKpH,UACvEjH,IAEP+M,GACD5M,IAAAA,cAAA,KAAGN,UAAU,eAAe4F,GAKxC,EAGJjE,EAAS8L,aAAe,CACpB7M,eAAiB,K,0NCpEN,MAAMU,UAAkBhB,IAAAA,UAEnCwL,WAAAA,CAAYC,GACRC,MAAMD,GAENxM,KAAK6M,MAAQ,CACTtL,MAAOiL,EAAMjL,OAGjBvB,KAAK+M,aAAe/M,KAAK+M,aAAaC,KAAKhN,KAC/C,CAEA+M,YAAAA,CAAaoB,GAET,IAAIxL,EAAK,CAACE,OAAQ,CACVvB,GAAItB,KAAKwM,MAAMlL,GACfC,MAAO4M,EAAUtL,OAAOtB,MACxB2G,KAAM,UAGdlI,KAAKwM,MAAM9K,SAASiB,EACxB,CAEA4E,QAAAA,CAAS2H,EAAQ5N,EAAImM,EAAQ0B,GACzB,OAAI1B,EAEI1M,IAAAA,cAAA,SAAON,UAAU,mBAAmB4H,QAAS,SAAS/G,KAAM4N,EAAO3N,QAAS4K,MAAO,CAACiD,QAAS,iBACzFrO,IAAAA,cAACgN,EAAAA,QAAO,KACHmB,EAAOrH,QAIbsH,EAEHpO,IAAAA,cAAA,SAAON,UAAU,mBAAmB4H,QAAS,SAAS/G,KAAM4N,EAAO3N,SAC9D2N,EAAOrH,OAKZ9G,IAAAA,cAAA,SAAON,UAAU,mBAAmB4H,QAAS,SAAS/G,KAAM4N,EAAO3N,QAAS4K,MAAO,CAACiD,QAAS,iBACzFrO,IAAAA,cAAA,MAAIoL,MAAO,CAACC,UAAW,QAAS8C,EAAOrH,OACvC9G,IAAAA,cAACgN,EAAAA,QAAO,KAAEmB,EAAOG,aAIjC,CAEA9B,MAAAA,GAEI,IAMIpB,EANJqB,EAA8FxN,KAAKwM,OAA/F,SAAC9K,EAAQ,MAAEH,EAAK,UAAEd,EAAS,MAAE4F,EAAK,eAAEhF,EAAc,SAAEG,EAAQ,QAAEgI,EAAO,GAAClI,EAAE,KAAEH,GAAaqM,EACvFG,GADsF9M,IAAA2M,EAAA1M,GACxEd,KAAKwM,MAAM9D,eAAe,UAAqB,IAATrC,GACpDoH,EAAWzN,KAAKwM,MAAM9D,eAAe,UACrCyG,EAAWnP,KAAKwM,MAAM9D,eAAe,UACrChI,EAAcV,KAAKwM,MAAM9D,eAAe,aAA2B,GAAZlH,EAkB3D,OAbI2K,EADAsB,EACQ,CACJG,YAAa,OACbC,WAAY,OACZC,MAAO,QAKH,CACJF,YAAa,QAKjB7M,IAAAA,cAAA,OAAKO,GAAI,cAAcA,IAAM,kBAAiBD,GACxCmI,EAAQH,KAAIuD,IACV,IAAIO,EAAWP,EAAGrL,OAASA,EAC3B,OACIR,IAAAA,cAAA,OAAKN,UAAU,uBAAuBwI,IAAK,aAAa3H,KAAMsL,EAAGrL,QAAS4K,MAAOA,GAC7EpL,IAAAA,cAAA,SACIN,UAAU,mBACVyH,KAAK,QACL5G,GAAI,SAASA,KAAMsL,EAAGrL,QACtBA,MAAOqL,EAAGrL,MACV4L,QAASA,EACTzL,SAAU1B,KAAK+M,aACfvL,SAAUd,EACVS,KAAMA,GAAc,SAASG,MAEhCtB,KAAKuH,SAASqF,EAAItL,EAAImM,EAAQ0B,GAC7B,IAIbxB,GACD5M,IAAAA,cAAA,KAAGN,UAAU,eAAe4F,GAKxC,EAGJtE,EAAUmM,aAAe,CACrB7M,eAAiB,MAGrBU,EAAUsK,UAAY,CAClB/K,GAAIgL,IAAAA,OAAiB3L,W,4LC/GV,MAAMK,UAAcD,IAAAA,UAE/BwL,WAAAA,CAAYC,GACRC,MAAMD,GAENxM,KAAK+M,aAAe/M,KAAK+M,aAAaC,KAAKhN,KAC/C,CAEAsP,kBAAAA,CAAmBC,EAAWC,EAAWC,GACjCzP,KAAKwM,MAAMjL,QAAUgO,EAAUhO,QAC/BvB,KAAKM,MAAMiB,MAAQvB,KAAKwM,MAAMjL,MAEtC,CAEAwL,YAAAA,CAAapK,GACT3C,KAAKwM,MAAM9K,SAASiB,EACxB,CAEA4K,MAAAA,GAEI,IAAAC,EAAsFxN,KAAKwM,OAAvF,SAAC9K,EAAQ,MAAEH,EAAK,UAAEd,EAAS,MAAE4F,EAAK,eAAEhF,EAAc,mBAAEH,GAA2BsM,EAAL5M,EAAIC,IAAA2M,EAAA1M,GAC9E6M,EAAc3N,KAAKwM,MAAM9D,eAAe,UAAsB,KAAVrC,EACpDqJ,EAAa1P,KAAKwM,MAAM9D,eAAe,aAAejI,EAAY,eAClEkP,EAAuB3P,KAAKwM,MAAM9D,eAAe,sBAAwBxH,EAAqB,yBAClG,OACIH,IAAAA,cAAA,OAAKN,UAAWkP,GACZ5O,IAAAA,cAAA,QAAAE,IAAA,CACIR,UAAW,GAAGiP,KAAc/B,EAAY,QAAU,KAClDxJ,IAAKyL,IAAS5P,KAAKM,MAAQsP,CAAI,EAC/BC,aAActO,EACd,kBAAiBF,EACjBK,SAAU1B,KAAK+M,cACXnM,IAEP+M,GACD5M,IAAAA,cAAA,KAAGN,UAAU,eAAe4F,GAKxC,EAGJrF,EAAMkN,aAAe,CACjB7M,eAAiB,K,uJCrDrB,EAJgBhB,IAAA,IAAC,SAAC0F,EAAQ,eAAE+J,GAAiB,EAAK,UAAErP,EAAY,IAAYJ,EAALO,EAAIC,IAAAR,EAAAS,GAAA,OACvEC,IAAAA,cAAA,OAAAE,IAAA,CAAMR,UAAWA,EACX0H,wBAAyB,CAAEC,OAAQ0H,EAAiB/J,aAAQ,EAARA,EAAU+B,QAAQ,MAAO,UAAY/B,IAAenF,GAAO,C,uDCYlH,MA0DMQ,EAAU2O,IACnBA,EAAOA,EAAKC,eACAlI,QAAQ,iBAAiB,I,yoBC5ElC,MACMmI,EAAuB,WACvBC,EAA2B,eAC3BC,EAA8B,kBAC9BC,EAAmC,CAACH,EAAsBC,EAA0BC,GACpFE,EAA2B,MAE3BC,EAA4B,QAM1B,MAAM5K,EAEjB6G,WAAAA,CAAYgE,EAAW/L,EAAU,IAAIgM,IAAA,uBAcnBhJ,IAGd,GAFAxH,KAAKyQ,gBAAerP,EAAAA,EAAAA,QAAOoG,EAAErG,OAASqG,EACtCxH,KAAK0Q,aAAazJ,SAASO,EAAElG,KAAOkG,EACjCA,EAAEkB,eAAe,sBAChB,IAAK,IAAIY,KAAK9B,EAAE4B,mBACZpJ,KAAK2Q,MAAM1J,SAASqC,EAAEhI,KAAOgI,EAC7BtJ,KAAK4Q,eAAetH,EAAEhC,aAC1B,IACPkJ,IAAA,wBAEiB,KACd,IAAK,IAAIhJ,KAAKxH,KAAKuQ,UACfvQ,KAAK4Q,eAAepJ,EACxB,IACHgJ,IAAA,sBAEgBhJ,GACN4I,EAAiCpJ,SAASQ,EAAEU,QACtDsI,IAAA,qBAEc,CAAChJ,EAAGmB,KACf,IAAIpH,EAAQoH,EAAOpH,MAAMsP,MAAM,KAAKxH,KAAItC,GAAKE,SAASF,KACtD,IAAK,IAAI+J,KAAMvP,EACX,IAAKiG,EAAEhB,OAAO6C,KAAItF,GAAKA,EAAEzC,KAAI0F,SAAS8J,GAClC,OAAO,EAEf,OAAO,CAAI,IACdN,IAAA,sBAEgBhJ,IACb,IAAIlG,EAAKyP,OAAOC,UAAUxJ,GAAKA,EAAIA,EAAElG,GACjCoJ,EAAI1K,KAAKwE,QAAQlD,IAAO,KAC5B,OAAOoJ,GAAQ,IAAI,IACtB8F,IAAA,kBAEY7H,GACe,KAAjBA,EAAOpH,QACjBiP,IAAA,wBAEiB,CAAC7H,EAAQc,IAChBd,EAAOpH,MAAMsP,MAAM,KAAK7J,SAASyC,KAC3C+G,IAAA,8BAEwB1K,IACrB,IAAImL,EAAmBnL,EAAKe,yBAA2BwJ,EACvD,MAAMa,EAAuBlR,KAAKmR,cAAcrL,EAAKsL,oBACrD,GAAKF,EAGD,OAAQpL,EAAKuB,sBACT,KAAKiJ,EACD,IAAK,IAAIe,KAAevL,EAAKW,cAErBwK,EADAnL,EAAKe,yBAA2BwJ,EACbY,GAAoBjR,KAAKsR,gBAAgBJ,EAAsBG,GAE/DJ,GAAoBjR,KAAKsR,gBAAgBJ,EAAsBG,GAG1F,MACJ,IAhF4B,WAiFxB,IAAK,IAAIA,KAAevL,EAAKW,cAErBwK,EADAnL,EAAKe,yBAA2BwJ,EACbY,IAAqBjR,KAAKsR,gBAAgBJ,EAAsBG,GAEhEJ,IAAqBjR,KAAKsR,gBAAgBJ,EAAsBG,QAjBnGJ,EAAmBnL,EAAKuB,uBAAyBiJ,EAwBrD,MA3F0B,YA2FtBxK,EAAKsB,WACE6J,GAGHA,CAAgB,IAC3BT,IAAA,oBAEchJ,IACX,MAAMmB,EAAS3I,KAAKmR,cAAc3J,GAElC,GApG6B,iBAoGzBA,EAAE+J,MACF,OAAK/J,EAAES,aACFU,MACA3I,KAAKwR,UAAU7I,MAChB3I,KAAKyR,cAAcjK,KAAOxH,KAAK0R,aAAalK,EAAGmB,KAMvD,IAAK,IAAIgJ,KAAUnK,EAAEoK,aACjB,GAAK5R,KAAK6R,sBAAsB7R,KAAK2Q,MAAMgB,IAE3C,OAAKnK,EAAES,aACFU,MACA3I,KAAKwR,UAAU7I,MAChB3I,KAAKyR,cAAcjK,KAAOxH,KAAK0R,aAAalK,EAAGmB,KAKvD,OAAO,CAAI,IACd6H,IAAA,uBAEiBhJ,IACd,IAAIZ,EAAM5G,KAAK8R,YAAYtK,GAC3B,GAAGA,EAAEkB,eAAe,sBAChB,IAAK,IAAI5C,KAAQ0B,EAAE4B,mBAEfxC,EAAMA,GAAO5G,KAAK+R,eAAejM,EAAKwB,cAE9C,OAAOV,CAAG,IACb4J,IAAA,8BAEwBhQ,IAAa,IAAAwR,EAAAC,EAClC,IAAIrL,EAAM,CAAC,EACX,MAAM6B,GAAOrH,EAAAA,EAAAA,QAAOZ,EAASW,MAC7B,IAAI+Q,EAA0E,QAAhEF,EAAGhS,KAAKmS,gBAAgBxF,MAAKjC,GAAKA,EAAE0H,cAAgB5R,EAASc,YAAG,IAAA0Q,OAAA,EAA7DA,EAA+DzQ,MAChF,IAAI2Q,IAAc1R,SAAgB,QAARyR,EAARzR,EAAUgG,cAAM,IAAAyL,OAAR,EAARA,EAAkBnP,QAAS,EAAE,CAE3C,MAAMuP,EAAa7R,EAASgG,OAAOmG,MAAK5F,GAAKA,EAAEuL,aAC5CD,IAAYH,EAAaG,EAAW/Q,GAAG4F,WAC9C,CASA,GARGgL,IAzJyB,aA0JpB1R,EAAS0H,OAA+BgK,EAA4B,UAAfA,KAAmCA,GACxF1R,EAAS0H,OAASiI,GAA+B3P,EAAS0H,OAAS+H,IAAsBiC,EAAajL,SAASiL,IAC/G1R,EAAS0H,OAASgI,IAA0BgC,EAAaA,EAAWrB,MAAM,KAAKxH,KAAIkJ,GAAUtL,SAASsL,MAAY,KAG1H3L,EAAI6B,GAASyJ,GAAc,GACxB1R,EAAS0H,OAASgI,GAA0C,KAAdtJ,EAAI6B,KAAc7B,EAAI6B,GAAQ,IAC5EjI,EAASkI,eAAe,sBACvB,IAAK,IAAI5C,KAAQtF,EAAS4I,mBAAoB,CAE1C,IAAIoJ,EAAOxS,KAAKyS,sBAAsB3M,EAAKwB,cAC3CV,EAAGiI,EAAAA,EAAA,GAAOjI,GAAQ4L,EACtB,CACJ,OAAO5L,CAAG,IACb4J,IAAA,sBAEe,KACZ,IAAI5J,EAAM,CAAC,EAKX,OAJA5G,KAAKuQ,UAAUzJ,SAAQU,IACnB,IAAIgL,EAAOxS,KAAKyS,sBAAsBjL,GACtCZ,EAAGiI,EAAAA,EAAA,GAAOjI,GAAO4L,EAAK,IAEnB5L,CAAG,IACb4J,IAAA,kBAEW,KACR,IAAI5J,GAAM,EACV,IAAK,IAAIY,KAAKxH,KAAKuQ,UACf3J,EAAMA,GAAO5G,KAAK+R,eAAevK,GAErC,OAAOZ,CAAG,IACb4J,IAAA,0BAEoBrP,IACjB,MAAMsH,GAAOrH,EAAAA,EAAAA,QAAOD,GACpB,OAAOnB,KAAKyQ,eAAetP,IAASnB,KAAKyQ,eAAehI,IAAU,IAAI,IACzE+H,IAAA,wBAEkBlP,GACRtB,KAAK0Q,aAAazJ,SAAS3F,KAAQ,OAjL1CtB,KAAKuQ,UAAYA,EACjBvQ,KAAKmS,gBAAkB3N,EACvBxE,KAAKwE,QAAU,GAEf,IAAK,IAAIkG,KAAK1K,KAAKmS,gBACfnS,KAAKwE,QAAQkG,EAAE0H,aAAe1H,EAClC1K,KAAKyQ,eAAiB,CAAC,EACvBzQ,KAAK0Q,aAAe,CAAC,EAErB1Q,KAAK2Q,MAAQ,CAAC,EACd3Q,KAAK0S,iBACT,E,WC3BJ7S,EAAOD,QAAUK,QAAQ,wC,WCAzBJ,EAAOD,QAAUK,QAAQ,iC,WCAzBJ,EAAOD,QAAUK,QAAQ,iD,WCAzBJ,EAAOD,QAAUK,QAAQ,4D,WCAzBJ,EAAOD,QAAUK,QAAQ,6B,WCAzBJ,EAAOD,QAAUK,QAAQ,kB,WCAzBJ,EAAOD,QAAUK,QAAQ,a,WCAzBJ,EAAOD,QAAUK,QAAQ,Q,WCAzBJ,EAAOD,QAAUK,QAAQ,e,WCAzBJ,EAAOD,QAAUK,QAAQ,Q,GCCrB0S,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqB7P,IAAjB8P,EACH,OAAOA,EAAalT,QAGrB,IAAIC,EAAS8S,EAAyBE,GAAY,CAGjDjT,QAAS,CAAC,GAOX,OAHAmT,EAAoBF,GAAUhT,EAAQA,EAAOD,QAASgT,GAG/C/S,EAAOD,OACf,C,MCrBAgT,EAAoBI,EAAKnT,IACxB,IAAIoT,EAASpT,GAAUA,EAAOqT,WAC7B,IAAOrT,EAAiB,QACxB,IAAM,EAEP,OADA+S,EAAoBO,EAAEF,EAAQ,CAAEvI,EAAGuI,IAC5BA,CAAM,C,WCLdL,EAAoBO,EAAI,CAACvT,EAASwT,KACjC,IAAI,IAAInK,KAAOmK,EACXR,EAAoBS,EAAED,EAAYnK,KAAS2J,EAAoBS,EAAEzT,EAASqJ,IAC5EgB,OAAOqJ,eAAe1T,EAASqJ,EAAK,CAAEsK,YAAY,EAAMC,IAAKJ,EAAWnK,IAE1E,C,WCND2J,EAAoBS,EAAI,CAACI,EAAKC,IAAUzJ,OAAO0J,UAAUjL,eAAekL,KAAKH,EAAKC,E,WCClFd,EAAoBtJ,EAAK1J,IACH,oBAAXiU,QAA0BA,OAAOC,aAC1C7J,OAAOqJ,eAAe1T,EAASiU,OAAOC,YAAa,CAAEvS,MAAO,WAE7D0I,OAAOqJ,eAAe1T,EAAS,aAAc,CAAE2B,OAAO,GAAO,C,mHCY9D,MAAMwS,UAAuBhT,IAAAA,UAEzBwL,WAAAA,CAAYC,GACRC,MAAMD,GACNxM,KAAKgU,cAAiBhU,KAAKgU,cAAchH,KAAKhN,MAC9CA,KAAKiU,aAAiBjU,KAAKiU,aAAajH,KAAKhN,MAC7CA,KAAKkU,aAAiBlU,KAAKkU,aAAalH,KAAKhN,MAC7CA,KAAK0B,SAAiB1B,KAAK0B,SAASsL,KAAKhN,MAEzCA,KAAK6M,MAAQ,CACTtL,MAAOiL,EAAMjL,OAAS,GAE9B,CAEAyS,aAAAA,CAAcrR,GACV,IAAI,cAAEwR,GAAkBnU,KAAKwM,MAC1B2H,GACCxR,EAAGyR,iBAEPpU,KAAKqU,YAAYrU,KAAK6M,MAAMtL,MAChC,CAEA0S,YAAAA,CAAatR,GACT,IAAI,cAAEwR,GAAkBnU,KAAKwM,MAC1B2H,GACCxR,EAAGyR,iBAEPpU,KAAKqU,YAAY,IACjBrU,KAAKsN,SAAS,CAAC/L,MAAO,IAC1B,CAEA8S,WAAAA,CAAYC,EAAO,IACftU,KAAKwM,MAAM+H,SAASD,EAAKE,OAC7B,CAEAN,YAAAA,CAAa1I,GAEG,MADDA,EAAMiJ,SAAWjJ,EAAMkJ,QAE9B1U,KAAKqU,YAAYrU,KAAK6M,MAAMtL,MAEpC,CAEAG,QAAAA,CAAS8J,GACLxL,KAAKsN,SAAS,CACV/L,MAAOiK,EAAM3I,OAAOtB,QAEpBvB,KAAKwM,MAAM9K,UAAU1B,KAAKwM,MAAM9K,SAAS8J,EAAM3I,OAAOtB,MAC9D,CAEAgM,MAAAA,GACI,IAAI,MAAChM,GAASvB,KAAK6M,MAEnB,OACI9L,IAAAA,cAAA,OAAKN,UAAU,wBACXM,IAAAA,cAAA,OAAKN,UAAU,aACXM,IAAAA,cAAA,OAAKN,UAAU,eACXM,IAAAA,cAAA,SAAOmH,KAAK,OACL3G,MAAOA,EACPd,UAAU,eACVkB,YAAa3B,KAAKwM,MAAM7K,YACxBgT,WAAY3U,KAAKkU,aACjBxS,SAAU1B,KAAK0B,WAEtBX,IAAAA,cAAA,QAAMN,UAAU,kBAAkB0L,MAAO,CAAC8B,MAAO,OAC7ClN,IAAAA,cAAA,UAAQmL,QAASlM,KAAKgU,cAAevT,UAAU,kBAAkBmU,MAAO5G,IAAAA,UAAY,mBAChFjN,IAAAA,cAAA,KAAGN,UAAU,kBAEjBM,IAAAA,cAAA,UAAQmL,QAASlM,KAAKiU,aAAcxT,UAAU,kBAAkBmU,MAAO5G,IAAAA,UAAY,kBAC/EjN,IAAAA,cAAA,KAAGN,UAAU,oBAOzC,EAEJsT,EAAe7F,aAAe,CAC1BiG,eAAe,EACfzS,SAAU,KACVH,MAAO,IAGXwS,EAAe1H,UAAY,CACvB8H,cAAe7H,IAAAA,KACf5K,SAAU4K,IAAAA,MAId,U","sources":["webpack://openstack-uicore-foundation/webpack/universalModuleDefinition","webpack://openstack-uicore-foundation/external commonjs \"react-final-form\"","webpack://openstack-uicore-foundation/./src/components/extra-questions/constants.js","webpack://openstack-uicore-foundation/./src/components/extra-questions/index.js","webpack://openstack-uicore-foundation/./src/components/inputs/checkbox-list.js","webpack://openstack-uicore-foundation/./src/components/inputs/dropdown.js","webpack://openstack-uicore-foundation/./src/components/inputs/radio-list.js","webpack://openstack-uicore-foundation/./src/components/inputs/text-input.js","webpack://openstack-uicore-foundation/./src/components/raw-html/index.js","webpack://openstack-uicore-foundation/./src/utils/methods.js","webpack://openstack-uicore-foundation/./src/utils/questions-set.js","webpack://openstack-uicore-foundation/external commonjs \"@babel/runtime/helpers/defineProperty\"","webpack://openstack-uicore-foundation/external commonjs \"@babel/runtime/helpers/extends\"","webpack://openstack-uicore-foundation/external commonjs \"@babel/runtime/helpers/objectWithoutProperties\"","webpack://openstack-uicore-foundation/external commonjs \"awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css\"","webpack://openstack-uicore-foundation/external commonjs \"i18n-react/dist/i18n-react\"","webpack://openstack-uicore-foundation/external commonjs \"moment-timezone\"","webpack://openstack-uicore-foundation/external commonjs \"prop-types\"","webpack://openstack-uicore-foundation/external commonjs \"react\"","webpack://openstack-uicore-foundation/external commonjs \"react-select\"","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/./src/components/free-text-search/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(\"react-final-form\");","export const QuestionType_Text = \"Text\";\nexport const QuestionType_TextArea = \"TextArea\";\nexport const QuestionType_Checkbox = \"CheckBox\";\nexport const QuestionType_RadioButtonList = \"RadioButtonList\";\nexport const QuestionType_ComboBox = \"ComboBox\";\nexport const QuestionType_CheckBoxList = \"CheckBoxList\";\nexport const QuestionType_CountryComboBox = \"CountryComboBox\";\nexport const QuestionType_RadioButton = \"RadioButton\";\n\n","/**\n * Copyright 2017 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, {Fragment, useEffect, useRef, useState, useImperativeHandle} from 'react';\nimport PropTypes from 'prop-types';\nimport Input from '../inputs/text-input'\nimport Dropdown from '../inputs/dropdown'\nimport RadioList from '../inputs/radio-list'\nimport CheckboxList from '../inputs/checkbox-list'\nimport QuestionsSet from '../../utils/questions-set';\nimport {Field, Form} from \"react-final-form\";\nimport {toSlug} from \"../../utils/methods\";\nimport {\n QuestionType_Checkbox,\n QuestionType_CheckBoxList,\n QuestionType_ComboBox,\n QuestionType_CountryComboBox,\n QuestionType_RadioButton,\n QuestionType_RadioButtonList,\n QuestionType_Text,\n QuestionType_TextArea\n} from \"./constants\";\n\nimport \"awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css\";\nimport './index.scss';\n\nconst InputAdapter = ({ input, meta, question, className, isDisabled, isRequired, ...rest }) => {\n\n return (\n \n )\n}\n\nconst RadioButtonListAdapter = ({ input, meta, question, isDisabled, isRequired, ...rest }) => {\n\n return (\n \n )};\n\nconst DropdownAdapter = ({ input, meta, question, isDisabled, isRequired, ...rest }) => {\n\n return ()\n}\n\nconst CheckBoxListAdapter = ({ input, meta, question, isDisabled, isRequired, maxValues, ...rest }) => {\n\n const shouldChange = (ev) => {\n const question_answers = ev.target.value;\n // if there's a max value of options checked and the value from the input is higher than the max, don't change the value\n if (maxValues > 0 && question_answers.length > maxValues) {\n return null\n }\n return input.onChange(ev)\n }\n return (\n \n )\n}\n\nconst getValidator = isRequired =>\n isRequired ? value => (value ? undefined : \"Required\") : () => {};\n\nconst ExtraQuestionsForm = React.forwardRef(({\n extraQuestions,\n userAnswers,\n onAnswerChanges,\n className = 'questions-form',\n questionContainerClassName = 'question-container',\n questionLabelContainerClassName = 'question-label-container',\n questionControlContainerClassName= 'question-control-container',\n readOnly = false,\n debug = false,\n buttonText = 'Submit',\n RequiredErrorMessage = 'Required',\n ValidationErrorClassName = 'extra-question-error',\n allowExtraQuestionsEdit = true,\n onError = (e) => console.log('form errors: ', e),\n shouldScroll2FirstError = true\n }, ref) => {\n\n let submit = null;\n\n const questionRefs = useRef({});\n const formRef = useRef(null);\n const [answers, setAnswers] = useState({});\n\n useEffect(() => {\n formatUserAnswers();\n }, [extraQuestions])\n\n // @see https://beta.reactjs.org/reference/react/useImperativeHandle\n useImperativeHandle(ref, () => ({\n doSubmit() {\n formRef.current?.dispatchEvent(new Event(\"submit\", { cancelable: true, bubbles: true }));\n },\n scroll2QuestionById(questionId) {\n scrollToQuestion(questionId);\n }\n }));\n\n const getQuestionRef = (id) => {\n if (!questionRefs.current[id]) {\n questionRefs.current[id] = React.createRef();\n }\n return questionRefs.current[id];\n };\n\n const formatUserAnswers = () => {\n const qs = new QuestionsSet(extraQuestions, userAnswers);\n setAnswers(qs.formatAnswers());\n }\n\n const Condition = ({when, rule, children}) => (\n \n {({input: {value}}) =>\n checkVisibility(rule, checkRule(value, rule), children)\n }\n \n );\n\n const Error = ({ name }) => (\n \n {({ meta: { error, touched, submitFailed } }) =>\n error && (touched || submitFailed) ?

{error}
: null\n }\n \n );\n\n const checkRule = (value, rule) => {\n let values = rule.answer_values;\n\n if (Array.isArray(value)) {\n if (!value.length) return false;\n let res = rule.answer_values_operator === \"And\";\n values.forEach((v) => {\n if (rule.answer_values_operator === \"And\") {\n res = res && value.includes(parseInt(v));\n } else {\n // Or\n res = res || value.includes(parseInt(v));\n }\n });\n return res;\n }\n return values.includes(value.toString());\n };\n\n const checkVisibility = (rule, ruleResult, children) => {\n if (rule.visibility === \"Visible\") {\n if (rule.visibility_condition === \"Equal\") {\n if (ruleResult) return children;\n delete questionRefs.current[rule.sub_question.id]\n return null;\n }\n // Non Equal\n if(!ruleResult){\n return children;\n }\n delete questionRefs.current[rule.sub_question.id]\n return null;\n }\n // not visible\n if (rule.visibility_condition === \"Equal\") {\n if (!ruleResult) return children;\n delete questionRefs.current[rule.sub_question.id]\n return null;\n }\n if (ruleResult) return children;\n delete questionRefs.current[rule.sub_question.id]\n return null;\n };\n\n const getLabel = (q) => {\n // Keep the last word and the required asterisk on the same line\n const nonBreakingSpace = String.fromCharCode(160); // equals to  \n // replace line breaks and remove outer

\n const label = q?.label?.replace(/\\n/g, '
').replace(/

(.*)<\\/p>/gi, '$1');\n const questions2Exclude = [QuestionType_Checkbox, QuestionType_RadioButton]\n // Asterisk for mandatory questions only shown on label except for those questions\n // included on questions2Exclude\n const labelText = q.mandatory && !questions2Exclude.includes(q.type) ? `${label}${nonBreakingSpace}*` : label;\n return (

\n {getLabel(q)}\n
\n \n \n
\n
\n {q.sub_question_rules?.length > 0 &&\n q.sub_question_rules.map((r) =>\n (\n \n {renderQuestion(r.sub_question)}\n \n )\n )}\n \n );\n }\n if (q.type === QuestionType_TextArea) {\n return (\n \n
\n {getLabel(q)}\n
\n \n \n
\n
\n {q.sub_question_rules?.length > 0 &&\n q.sub_question_rules.map((r) =>\n (\n \n {renderQuestion(r.sub_question)}\n \n )\n )}\n
\n );\n }\n if (q.type === QuestionType_Checkbox) {\n return (\n \n
\n
\n
\n \n
\n
\n \n {getLabel(q)}\n \n
\n \n {q.sub_question_rules?.length > 0 &&\n q.sub_question_rules.map((r) =>\n (\n \n {renderQuestion(r.sub_question)}\n \n )\n )}\n
\n );\n }\n if (q.type === QuestionType_RadioButton){\n return (\n \n
\n
\n
\n \n
\n
\n \n {getLabel(q)}\n \n
\n \n {q.sub_question_rules?.length > 0 &&\n q.sub_question_rules.map((r) =>\n (\n \n {renderQuestion(r.sub_question)}\n \n )\n )}\n
\n );\n }\n if (q.type === QuestionType_RadioButtonList) {\n const options = questionValues.map(val => ({label : val.label, value : val.id}));\n return (\n \n
\n \n {getLabel(q)}\n \n
\n \n \n
\n
\n {q.sub_question_rules?.length > 0 &&\n q.sub_question_rules.map((r) =>\n (\n \n {renderQuestion(r.sub_question)}\n \n )\n )}\n
\n );\n }\n if (q.type === QuestionType_ComboBox || q.type === QuestionType_CountryComboBox) {\n const options = questionValues.map(val => ({label : val.label, value : val.id}));\n return (\n \n
\n \n {getLabel(q)}\n \n
\n \n \n
\n
\n {q.sub_question_rules?.length > 0 &&\n q.sub_question_rules.map((r) =>\n (\n \n {renderQuestion(r.sub_question)}\n \n )\n )}\n
\n );\n }\n if (q.type === QuestionType_CheckBoxList) {\n const options = questionValues.map(val => ({label : val.label, value : val.id}));\n return (\n \n
\n \n {getLabel(q)}\n \n
\n \n \n
\n
\n {q.sub_question_rules?.length > 0 &&\n q.sub_question_rules.map((r) =>\n (\n \n {renderQuestion(r.sub_question)}\n \n )\n )}\n
\n );\n }\n return null;\n };\n\n const isVisible = (q) => {\n return !!questionRefs.current[q.id];\n };\n\n const validateQuestion = (q, values, errors) => {\n if (q.mandatory && isVisible(q)) {\n const slug = toSlug(q.name);\n if (!values.hasOwnProperty(toSlug(slug)) || values[toSlug(slug)] === \"\" || values[slug].length === 0) {\n errors[slug] = RequiredErrorMessage;\n }\n }\n // validate sub rules\n q.sub_question_rules?.forEach((r) => {\n validateQuestion(r.sub_question, values, errors);\n });\n };\n\n const onSubmit = (values) => {\n onAnswerChanges(values)\n };\n\n const validate = (values) => {\n const errors = {};\n extraQuestions.forEach( q => {\n validateQuestion(q, values, errors);\n });\n return errors;\n }\n\n if(!Object.keys(answers).length) return null;\n\n const getErrorFields = (q, invalidFormFields, errorFields) => {\n if (invalidFormFields.includes(toSlug(q.name))) {\n errorFields.push(q);\n }\n // find errors on sub rules\n q.sub_question_rules?.forEach((r) => {\n getErrorFields(r.sub_question, invalidFormFields, errorFields);\n });\n }\n\n const getFirstError = (invalidFormFields) => {\n const errorFields = [];\n extraQuestions.forEach(q => {\n getErrorFields(q, invalidFormFields, errorFields);\n });\n return errorFields.sort((a, b) => a.order > b.order)[0];\n }\n\n const scrollToFirstError = (invalidFormFields) => {\n const firstError = getFirstError(invalidFormFields);\n if (firstError) {\n scrollToQuestion(firstError.id);\n }\n }\n\n const scrollToQuestion = (questionId) => {\n const ref = questionRefs.current[questionId];\n if (ref && ref.current) {\n ref.current.focus();\n ref.current.scrollIntoView({\n behavior: 'smooth',\n block: 'center'\n });\n }\n };\n\n if (!Object.keys(answers).length) return null;\n\n return (\n
\n \n\n {({handleSubmit, form, submitting, pristine, values}) => {\n submit = handleSubmit;\n return (\n {\n const invalidFormFields = form.getRegisteredFields().filter(field => form.getFieldState(field).invalid);\n if (invalidFormFields.length > 0) {\n const firstError = getFirstError(invalidFormFields);\n // Note: The second argument is an stable reference to the errer extra question\n // This ensures that even after re-renders, we have a consistent reference for actions such as scrolling or focusing.\n // Passing a direct DOM element might not reliably reflect the current element if the component updates.\n onError(invalidFormFields, questionRefs.current[firstError.id], firstError.id);\n if (shouldScroll2FirstError)\n scrollToFirstError(invalidFormFields)\n }\n handleSubmit(event)\n }}\n ref={formRef}>\n {readOnly ?\n
\n {extraQuestions.map((q) => renderQuestion(q))}\n
\n :\n extraQuestions.map((q) => renderQuestion(q))\n }\n {debug &&
{JSON.stringify(values, 0, 2)}
}\n \n );\n }}\n \n {!ref &&\n {\n submit(event);\n }}\n style={{marginTop: 10}}\n >\n {buttonText}\n \n }\n
\n )\n});\n\nExtraQuestionsForm.propTypes = {\n extraQuestions: PropTypes.array.isRequired,\n userAnswers: PropTypes.array.isRequired,\n onAnswerChanges: PropTypes.func.isRequired,\n className: PropTypes.string,\n debug: PropTypes.bool,\n buttonText: PropTypes.string,\n questionContainerClassName: PropTypes.string,\n questionLabelContainerClassName: PropTypes.string,\n questionControlContainerClassName: PropTypes.string,\n RequiredErrorMessage: PropTypes.string,\n ValidationErrorClassName: PropTypes.string,\n allowExtraQuestionsEdit: PropTypes.bool,\n shouldScroll2FirstError: PropTypes.bool,\n readOnly: PropTypes.bool\n};\n\nexport default ExtraQuestionsForm;\n","/**\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 **/\nimport PropTypes from 'prop-types'\nimport React from 'react';\nimport T from 'i18n-react/dist/i18n-react';\nimport RawHTML from '../raw-html';\n\nimport \"awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css\";\n\nexport default class CheckboxList extends React.Component {\n\n constructor(props) {\n super(props);\n\n let otherValue = props.value ? props.value.find( v => !props.options.map(op => op.value).includes(v) ) : false;\n\n this.state = {\n otherChecked: !!otherValue\n };\n\n this.handleChange = this.handleChange.bind(this);\n this.handleOtherCBChange = this.handleOtherCBChange.bind(this);\n }\n\n handleChange(event) {\n let optionValues = this.props.options.map(op => op.value);\n let value = this.props.value ? [...this.props.value] : [];\n\n if (event.target.type === 'checkbox') {\n if (event.target.checked) {\n const theVal = isNaN(event.target.value) ? event.target.value : parseInt(event.target.value);\n value.push(theVal);\n } else {\n value = value.filter( v => v != event.target.value )\n }\n } else {\n value = value.filter(v => optionValues.includes(v));\n value.push(event.target.value);\n }\n\n let ev = {target: {\n id: this.props.id,\n value: value,\n type: 'checkboxlist'\n }};\n\n this.props.onChange(ev);\n }\n\n handleOtherCBChange(event) {\n this.setState({otherChecked: event.target.checked});\n }\n\n render() {\n\n let {onChange, value, className, options, id, children, error, disabled,name, ariaLabelledBy, ...rest} = this.props;\n let { otherChecked } = this.state;\n\n let inline = ( this.props.hasOwnProperty('inline') );\n let allowOther = ( this.props.hasOwnProperty('allowOther') );\n let otherValue = value ? value.find( v => !options.map(op => op.value).includes(v) ) : false ;\n let has_error = ( this.props.hasOwnProperty('error') && error !== '' );\n let isDisabled = (this.props.hasOwnProperty('disabled') && disabled == true);\n\n\n let style, label;\n\n if (inline) {\n style = {\n paddingLeft: '22px',\n marginLeft: '20px',\n float: 'left'\n };\n } else {\n style = {\n paddingLeft: '22px',\n marginTop: '7px'\n }\n }\n\n return (\n
\n
\n { options.map(op => {\n let checked = value ? value.includes(op.value) : false;\n return (\n
\n \n \n
\n )\n })}\n\n {allowOther &&\n
\n \n \n
\n }\n\n {allowOther && otherChecked &&\n
\n \n
\n }\n\n
\n {has_error &&\n

{error}

\n }\n
\n );\n\n }\n}\n\nCheckboxList.defaultProps = {\n ariaLabelledBy : null,\n}\n\n\nCheckboxList.propTypes = {\n id: PropTypes.string.isRequired\n};\n","/**\n * Copyright 2017 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 Select from 'react-select';\n\nexport default class Dropdown extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.handleChange = this.handleChange.bind(this);\n }\n\n handleChange(selection) {\n\n let value = null;\n if (this.props.isMulti) {\n value = selection ? selection.map(val => val.value) : null;\n } else {\n value = selection ? selection.value : null;\n }\n\n let ev = {target: {\n id: this.props.id,\n value: value,\n type: 'dropdown'\n }};\n\n this.props.onChange(ev);\n }\n\n render() {\n\n let {onChange, value, className, error, clearable, disabled, overrideCSS, ariaLabelledBy, ...rest} = this.props;\n let has_error = ( this.props.hasOwnProperty('error') && error != '' );\n let isClearable = (this.props.hasOwnProperty('clearable'));\n let isDisabled = (this.props.hasOwnProperty('disabled') && disabled == true);\n let theValue = null;\n\n let selectClassName = className;\n\n if (!this.props.hasOwnProperty('overrideCSS') || overrideCSS == false) {\n selectClassName = 'dropdown ' + className + ' ' + (has_error ? 'error' : '');\n }\n\n if (this.props.isMulti) {\n theValue = this.props.options.filter(op => value.includes(op.value));\n } else {\n theValue = (value instanceof Object || value == null) ? value : this.props.options.find(opt => opt.value == value);\n }\n\n const selectStyles = { menu: styles => ({ ...styles, zIndex: 999 }) };\n\n return (\n
\n }\n {...rest}\n />\n {has_error &&\n

{error}

\n }\n
\n );\n\n }\n}\n\nDropdown.defaultProps = {\n ariaLabelledBy : null,\n}\n","/**\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 React from 'react';\nimport RawHTML from '../raw-html';\nimport PropTypes from 'prop-types'\n\nimport \"awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css\";\n\nexport default class RadioList extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n value: props.value,\n };\n\n this.handleChange = this.handleChange.bind(this);\n }\n\n handleChange(selection) {\n\n let ev = {target: {\n id: this.props.id,\n value: selection.target.value,\n type: 'radio'\n }};\n\n this.props.onChange(ev);\n }\n\n getLabel(option, id, inline, simple) {\n if (inline) {\n return (\n \n );\n } else if (simple) {\n return (\n \n );\n } else {\n return (\n \n );\n }\n }\n\n render() {\n\n let {onChange, value, className, error, ariaLabelledBy, disabled, options,id, name,...rest} = this.props;\n let has_error = ( this.props.hasOwnProperty('error') && error != '' );\n let inline = ( this.props.hasOwnProperty('inline') );\n let simple = ( this.props.hasOwnProperty('simple') );\n let isDisabled = (this.props.hasOwnProperty('disabled') && disabled == true);\n\n let style, label;\n\n if (inline) {\n style = {\n paddingLeft: '22px',\n marginLeft: '20px',\n float: 'left'\n };\n\n\n } else {\n style = {\n paddingLeft: '22px'\n }\n }\n\n return (\n
\n { options.map(op => {\n let checked = (op.value == value);\n return (\n
\n \n {this.getLabel(op, id, inline, simple)}\n
\n )\n })}\n\n {has_error &&\n

{error}

\n }\n
\n );\n\n }\n}\n\nRadioList.defaultProps = {\n ariaLabelledBy : null,\n}\n\nRadioList.propTypes = {\n id: PropTypes.string.isRequired\n};\n","/**\n * Copyright 2017 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';\n\nexport default class Input extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.handleChange = this.handleChange.bind(this);\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n if (this.props.value !== prevProps.value) {\n this.input.value = this.props.value;\n }\n }\n\n handleChange(ev) {\n this.props.onChange(ev);\n }\n\n render() {\n\n let {onChange, value, className, error, ariaLabelledBy, containerClassName,...rest} = this.props;\n let has_error = ( this.props.hasOwnProperty('error') && error !== '' );\n let class_name = this.props.hasOwnProperty('className') ? className : 'form-control';\n let container_class_name = this.props.hasOwnProperty('containerClassName') ? containerClassName : 'container-form-control';\n return (\n
\n {this.input = node}}\n defaultValue={value}\n aria-labelledby={ariaLabelledBy}\n onChange={this.handleChange}\n {...rest}\n />\n {has_error &&\n

{error}

\n }\n
\n );\n\n }\n}\n\nInput.defaultProps = {\n ariaLabelledBy : null,\n}","import React from 'react';\n\nconst RawHTML = ({children, replaceNewLine = false, className = \"\", ...rest}) =>\n ') : children}} {...rest}/>\n\nexport default RawHTML;","/**\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","export const CheckBoxQuestionType = 'CheckBox';\nexport const ComboBoxQuestionType = 'ComboBox'\nexport const CheckBoxListQuestionType = 'CheckBoxList';\nexport const RadioButtonListQuestionType = 'RadioButtonList';\nexport const AllowedMultipleValueQuestionType = [ComboBoxQuestionType, CheckBoxListQuestionType, RadioButtonListQuestionType];\nexport const AnswerValuesOperator_And = 'And';\nexport const AnswerValuesOperator_Or = 'Or';\nexport const VisibilityCondition_Equal = 'Equal';\nexport const VisibilityCondition_NotEqual = 'NotEqual';\nexport const Visibility_Visible = 'Visible';\nexport const MainQuestionClassType = 'MainQuestion';\nimport {toSlug} from \"./methods\";\n\nexport default class QuestionsSet {\n\n constructor(questions, answers = []) {\n this.questions = questions;\n this.originalAnswers = answers\n this.answers = [];\n // map answers to associate array\n for (let a of this.originalAnswers)\n this.answers[a.question_id] = a;\n this.questionByName = {}\n this.questionById = {}\n // associative array ( rule id , rule);\n this.rules = {};\n this._parseQuestions();\n }\n\n _parseQuestion = (q) => {\n this.questionByName[toSlug(q.name)] = q;\n this.questionById[parseInt(q.id)] = q;\n if(q.hasOwnProperty('sub_question_rules'))\n for (let r of q.sub_question_rules) {\n this.rules[parseInt(r.id)] = r;\n this._parseQuestion(r.sub_question);\n }\n }\n\n _parseQuestions = () => {\n for (let q of this.questions) {\n this._parseQuestion(q);\n }\n }\n\n _allowsValues = (q) => {\n return AllowedMultipleValueQuestionType.includes(q.type);\n }\n\n _allowsValue = (q, answer) => {\n let value = answer.value.split(',').map(v => parseInt(v));\n for (let av of value) {\n if (!q.values.map(e => e.id).includes(av))\n return false;\n }\n return true;\n }\n\n _getAnswerFor = (q) => {\n let id = Number.isInteger(q) ? q : q.id;\n let a = this.answers[id] || null;\n return a ? a : null;\n }\n\n _hasValue = (answer) => {\n return answer.value !== '';\n }\n\n _answerContains = (answer, val) => {\n return answer.value.split(',').includes(val);\n }\n\n _isSubQuestionVisible = (rule) => {\n let initialCondition = rule.answer_values_operator === AnswerValuesOperator_And ? true : false;\n const parentQuestionAnswer = this._getAnswerFor(rule.parent_question_id);\n if (!parentQuestionAnswer) {\n initialCondition = rule.visibility_condition === VisibilityCondition_Equal ? false : true;\n } else {\n switch (rule.visibility_condition) {\n case VisibilityCondition_Equal: {\n for (let answerValue of rule.answer_values) {\n if (rule.answer_values_operator === AnswerValuesOperator_And)\n initialCondition = initialCondition && this._answerContains(parentQuestionAnswer, answerValue);\n else\n initialCondition = initialCondition || this._answerContains(parentQuestionAnswer, answerValue);\n }\n }\n break;\n case VisibilityCondition_NotEqual: {\n for (let answerValue of rule.answer_values) {\n if (rule.answer_values_operator === AnswerValuesOperator_And)\n initialCondition = initialCondition && !this._answerContains(parentQuestionAnswer, answerValue);\n else\n initialCondition = initialCondition || !this._answerContains(parentQuestionAnswer, answerValue);\n }\n }\n break;\n }\n }\n // final visibility check\n if (rule.visibility === Visibility_Visible) {\n return initialCondition;\n }\n // not visible\n return !initialCondition;\n }\n\n _isAnswered = (q) => {\n const answer = this._getAnswerFor(q);\n\n if (q.class === MainQuestionClassType) {\n if (!q.mandatory) return true;\n if (!answer) return false;\n if (!this._hasValue(answer)) return false;\n if (this._allowsValues(q) && !this._allowsValue(q, answer))\n return false;\n return true;\n }\n\n // check parent rules ...\n for (let ruleId of q.parent_rules) {\n if (!this._isSubQuestionVisible(this.rules[ruleId])) // if question is not visible skip it\n continue;\n if (!q.mandatory) return true;\n if (!answer) return false;\n if (!this._hasValue(answer)) return false;\n if (this._allowsValues(q) && !this._allowsValue(q, answer))\n return false;\n return true;\n }\n\n return true;\n }\n\n _checkQuestion = (q) => {\n let res = this._isAnswered(q);\n if(q.hasOwnProperty('sub_question_rules'))\n for (let rule of q.sub_question_rules) {\n // check recursive all the tree till leaves ...\n res = res && this._checkQuestion(rule.sub_question);\n }\n return res;\n }\n\n _formatQuestionAnswer = (question) => {\n let res = {};\n const slug = toSlug(question.name);\n let userAnswer = this.originalAnswers.find(a => a.question_id === question.id)?.value;\n if(!userAnswer && question?.values?.length > 0){\n // check default value\n const defaultVal = question.values.find(v => v.is_default);\n if(defaultVal) userAnswer = defaultVal.id.toString();\n }\n if(userAnswer) {\n if (question.type === CheckBoxQuestionType) userAnswer = userAnswer === 'false' ? false : !!userAnswer;\n if (question.type === RadioButtonListQuestionType || question.type === ComboBoxQuestionType) userAnswer = parseInt(userAnswer);\n if (question.type === CheckBoxListQuestionType) userAnswer = userAnswer.split(',').map(ansVal => parseInt(ansVal)) || [];\n }\n\n res[slug] = userAnswer || '';\n if(question.type === CheckBoxListQuestionType && res[slug] === '') res[slug] = []\n if(question.hasOwnProperty('sub_question_rules'))\n for (let rule of question.sub_question_rules) {\n // check recursive all the tree till leaves ...\n let res1 = this._formatQuestionAnswer(rule.sub_question);\n res = {...res, ...res1};\n }\n return res;\n }\n\n formatAnswers = () => {\n let res = {}\n this.questions.forEach(q => {\n let res1 = this._formatQuestionAnswer(q);\n res = {...res,...res1};\n });\n return res;\n }\n\n completed = () => {\n let res = true;\n for (let q of this.questions) {\n res = res && this._checkQuestion(q);\n }\n return res;\n }\n\n getQuestionByName = (name) => {\n const slug = toSlug(name)\n return this.questionByName[name] || this.questionByName[slug] || null;\n }\n\n getQuestionById = (id) => {\n return this.questionById[parseInt(id)] || null;\n }\n}\n","module.exports = require(\"@babel/runtime/helpers/defineProperty\");","module.exports = require(\"@babel/runtime/helpers/extends\");","module.exports = require(\"@babel/runtime/helpers/objectWithoutProperties\");","module.exports = require(\"awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css\");","module.exports = require(\"i18n-react/dist/i18n-react\");","module.exports = require(\"moment-timezone\");","module.exports = require(\"prop-types\");","module.exports = require(\"react\");","module.exports = require(\"react-select\");","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};","/**\n * Copyright 2017 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 **/\nimport React from 'react';\nimport T from \"i18n-react/dist/i18n-react\";\nimport ExtraQuestionsForm from \"../extra-questions\";\nimport PropTypes from 'prop-types';\n\nclass FreeTextSearch extends React.Component {\n\n constructor(props){\n super(props);\n this.onSearchClick = this.onSearchClick.bind(this);\n this.onClearClick = this.onClearClick.bind(this);\n this.onKeyPressed = this.onKeyPressed.bind(this);\n this.onChange = this.onChange.bind(this);\n\n this.state = {\n value: props.value || \"\",\n };\n }\n\n onSearchClick(ev){\n let { preventEvents } = this.props;\n if(preventEvents){\n ev.preventDefault();\n }\n this.doFiltering(this.state.value);\n }\n\n onClearClick(ev){\n let { preventEvents } = this.props;\n if(preventEvents){\n ev.preventDefault();\n }\n this.doFiltering('');\n this.setState({value: ''});\n }\n\n doFiltering(term = \"\"){\n this.props.onSearch(term.trim());\n }\n\n onKeyPressed(event){\n var code = event.keyCode || event.which;\n if(code === 13) {\n this.doFiltering(this.state.value);\n }\n }\n\n onChange(event){\n this.setState({\n value: event.target.value\n });\n if (this.props.onChange) this.props.onChange(event.target.value)\n }\n\n render(){\n let {value} = this.state;\n\n return(\n
\n
\n
\n \n \n \n \n \n
\n
\n
\n )\n }\n}\nFreeTextSearch.defaultProps = {\n preventEvents: false,\n onChange: null,\n value: \"\",\n}\n\nFreeTextSearch.propTypes = {\n preventEvents: PropTypes.bool,\n onChange: PropTypes.func,\n};\n\n\nexport default FreeTextSearch;\n"],"names":["root","factory","exports","module","define","amd","this","require","QuestionType_Checkbox","QuestionType_RadioButton","InputAdapter","_ref","input","meta","question","className","isDisabled","isRequired","rest","_objectWithoutProperties","_excluded","React","Input","_extends","containerClassName","name","toSlug","ariaLabelledBy","id","value","disabled","required","onChange","placeholder","RadioButtonListAdapter","_ref2","_excluded2","RadioList","overrideCSS","DropdownAdapter","_ref3","_excluded3","Dropdown","classNamePrefix","CheckBoxListAdapter","_ref4","maxValues","_excluded4","CheckboxList","ev","question_answers","target","length","getValidator","undefined","ExtraQuestionsForm","extraQuestions","userAnswers","onAnswerChanges","questionContainerClassName","questionLabelContainerClassName","questionControlContainerClassName","readOnly","debug","buttonText","RequiredErrorMessage","ValidationErrorClassName","allowExtraQuestionsEdit","onError","e","console","log","shouldScroll2FirstError","ref","submit","questionRefs","useRef","formRef","answers","setAnswers","useState","useEffect","formatUserAnswers","useImperativeHandle","doSubmit","_formRef$current","current","dispatchEvent","Event","cancelable","bubbles","scroll2QuestionById","questionId","scrollToQuestion","getQuestionRef","qs","QuestionsSet","formatAnswers","Condition","when","rule","children","Field","subscription","checkVisibility","checkRule","Error","error","touched","submitFailed","values","answer_values","Array","isArray","res","answer_values_operator","forEach","v","includes","parseInt","toString","ruleResult","visibility","visibility_condition","sub_question","getLabel","q","_q$label","nonBreakingSpace","String","fromCharCode","label","replace","questions2Exclude","labelText","mandatory","type","dangerouslySetInnerHTML","__html","htmlFor","renderQuestion","questionValues","isAnswered","slug","hasOwnProperty","answer","_q$sub_question_rules","_q$sub_question_rules2","_q$sub_question_rules3","_q$sub_question_rules4","Fragment","key","validate","component","sub_question_rules","map","r","_q$sub_question_rules5","options","val","_q$sub_question_rules6","_q$sub_question_rules7","max_selected_values","validateQuestion","errors","_q$sub_question_rules8","isVisible","Object","keys","getErrorFields","invalidFormFields","errorFields","_q$sub_question_rules9","push","getFirstError","sort","a","b","order","focus","scrollIntoView","behavior","block","Form","onSubmit","initialValues","handleSubmit","form","submitting","pristine","event","getRegisteredFields","filter","field","getFieldState","invalid","firstError","scrollToFirstError","JSON","stringify","onClick","style","marginTop","propTypes","PropTypes","constructor","props","super","otherValue","find","op","state","otherChecked","handleChange","bind","handleOtherCBChange","optionValues","checked","theVal","isNaN","setState","render","_this$props","inline","allowOther","has_error","paddingLeft","marginLeft","float","RawHTML","T","width","defaultProps","selection","isMulti","clearable","isClearable","theValue","selectClassName","opt","selectStyles","menu","styles","_objectSpread","zIndex","Select","formatOptionLabel","data","option","simple","display","description","componentDidUpdate","prevProps","prevState","snapshot","class_name","container_class_name","node","defaultValue","replaceNewLine","text","toLowerCase","ComboBoxQuestionType","CheckBoxListQuestionType","RadioButtonListQuestionType","AllowedMultipleValueQuestionType","AnswerValuesOperator_And","VisibilityCondition_Equal","questions","_defineProperty","questionByName","questionById","rules","_parseQuestion","split","av","Number","isInteger","initialCondition","parentQuestionAnswer","_getAnswerFor","parent_question_id","answerValue","_answerContains","class","_hasValue","_allowsValues","_allowsValue","ruleId","parent_rules","_isSubQuestionVisible","_isAnswered","_checkQuestion","_this$originalAnswers","_question$values","userAnswer","originalAnswers","question_id","defaultVal","is_default","ansVal","res1","_formatQuestionAnswer","_parseQuestions","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","n","getter","__esModule","d","definition","o","defineProperty","enumerable","get","obj","prop","prototype","call","Symbol","toStringTag","FreeTextSearch","onSearchClick","onClearClick","onKeyPressed","preventEvents","preventDefault","doFiltering","term","onSearch","trim","keyCode","which","onKeyPress","title"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/components/google-map.js b/lib/components/google-map.js new file mode 100644 index 00000000..500a2ec7 --- /dev/null +++ b/lib/components/google-map.js @@ -0,0 +1,2 @@ +!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={9558:(e,t,n)=>{n.d(t,{arraysEqual:()=>a});n(5812),n(8041);const a=(e,t)=>e.length===t.length&&e.every(((e,n)=>((e,t)=>{const n=Object.keys(e),a=Object.keys(t);if(n.length!==a.length)return!1;for(let a of n)if(e[a]!==t[a])return!1;return!0})(e,t[n])))},5812:e=>{e.exports=require("moment-timezone")},8041:e=>{e.exports=require("urijs")}},t={};function n(a){var o=t[a];if(void 0!==o)return o.exports;var r=t[a]={exports:{}};return e[a](r,r.exports,n),r.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 a in t)n.o(t,a)&&!n.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})}})(),(()=>{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 a={};n.r(a),n.d(a,{GMap:()=>g,default:()=>c});const o=require("react");var r=n.n(o);const l=require("react-google-maps"),s=require("react-google-maps/lib/components/addons/MarkerClusterer");var i=n.n(s),d=n(9558);const p={defaultZoom:2,defaultCenter:{lat:30.270166,lng:-97.731271},options:{minZoom:1,maxZoom:19}},h=(0,l.withGoogleMap)((e=>r().createElement(l.GoogleMap,{ref:e.onMapLoad,zoom:e.zoom,center:e.center,onBoundsChanged:e.onMapChange,onClick:e.onMapClick},e.showMarkers&&r().createElement(i(),{averageCenter:!0,enableRetinaIcons:!0,gridSize:60},e.markers.map((t=>r().createElement(l.Marker,{key:t.id,position:{lat:t.lat,lng:t.lng},onClick:()=>e.onToggleInfoWindow(t.id),onDragEnd:e.onMarkerDrag,draggable:e.draggable},t.isInfoWindowOpen&&r().createElement(l.InfoWindow,{onCloseClick:()=>e.onToggleInfoWindow(t.id)},r().createElement("div",null,t.name)))))))));class g extends r().Component{constructor(e){super(e),this.state={markers:e.markers},this.handleMapLoad=this.handleMapLoad.bind(this),this.handleMapChange=this.handleMapChange.bind(this),this.handleMarkerDrag=this.handleMarkerDrag.bind(this),this.handleMapClick=this.handleMapClick.bind(this)}componentDidUpdate(e,t,n){const a=this.props.markers;(0,d.arraysEqual)(a,e.markers)||this.setState({markers:a});let o=e.markers.map((e=>e.id)).sort().join(),r=a.map((e=>e.id)).sort().join();if(a.length>1&&o!==r){const e=new google.maps.LatLngBounds;for(let t of a){let n=new google.maps.LatLng(t.lat,t.lng);e.extend(n)}this._mapComponent.fitBounds(e)}}handleMapLoad(e){this._mapComponent=e}handleMapChange(){let e=this.props.markers.filter((e=>{let t=new google.maps.LatLng(e.lat,e.lng);return this._mapComponent.getBounds().contains(t)}));this.props.hasOwnProperty("onChangeCallback")&&this.props.onChangeCallback(e)}handleMarkerClick(e){let t=this.state.markers,n=t.find((t=>t.id==e)).isInfoWindowOpen;t.find((t=>t.id==e)).isInfoWindowOpen=!n,this.setState({markers:t})}handleMarkerDrag(e){this.props.onMarkerDragged(e.latLng.lat(),e.latLng.lng())}handleMapClick(e){this.props.onMapClick(e.latLng.lat(),e.latLng.lng())}render(){let{markers:e}=this.state,{zoom:t,center:n}=this.props,a=this.props.hasOwnProperty("draggable");return r().createElement(h,{showMarkers:e.length>0,markers:e,zoom:t||p.defaultZoom,center:n.lat?n:p.defaultCenter,loadingElement:r().createElement("div",{style:{height:"100%"}}),containerElement:r().createElement("div",{style:{height:"400px"}}),mapElement:r().createElement("div",{style:{height:"100%"}}),onMapLoad:this.handleMapLoad,onMapChange:this.handleMapChange,onToggleInfoWindow:this.handleMarkerClick,onMarkerDrag:this.handleMarkerDrag,draggable:a,onMapClick:this.handleMapClick})}}const c=g;return a})())); +//# sourceMappingURL=google-map.js.map \ No newline at end of file diff --git a/lib/components/google-map.js.map b/lib/components/google-map.js.map new file mode 100644 index 00000000..b8a8343e --- /dev/null +++ b/lib/components/google-map.js.map @@ -0,0 +1 @@ +{"version":3,"file":"components/google-map.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 \"react-google-maps\"","webpack://openstack-uicore-foundation/external commonjs \"react-google-maps/lib/components/addons/MarkerClusterer\"","webpack://openstack-uicore-foundation/./src/components/google-map/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 ","/**\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","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(\"react-google-maps\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-google-maps/lib/components/addons/MarkerClusterer\");","/**\n * Copyright 2017 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 { withGoogleMap, GoogleMap, Marker, InfoWindow } from \"react-google-maps\";\nimport MarkerClusterer from \"react-google-maps/lib/components/addons/MarkerClusterer\";\nimport {arraysEqual} from \"../../utils/methods\";\n\nconst MAP = {\n defaultZoom: 2,\n defaultCenter: { lat: 30.270166, lng: -97.731271 },\n options: {\n minZoom: 1,\n maxZoom: 19\n }\n};\n\nconst GoogleMapWrapper = withGoogleMap((props) => {\n return \n {props.showMarkers &&\n \n {props.markers.map(marker => (\n props.onToggleInfoWindow(marker.id)}\n onDragEnd={props.onMarkerDrag}\n draggable={props.draggable}\n >\n {marker.isInfoWindowOpen &&\n props.onToggleInfoWindow(marker.id)}>\n
{marker.name}
\n
\n }\n \n ))}\n \n }\n \n }\n);\n\nexport class GMap extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n markers: props.markers\n };\n\n this.handleMapLoad = this.handleMapLoad.bind(this);\n this.handleMapChange = this.handleMapChange.bind(this);\n this.handleMarkerDrag = this.handleMarkerDrag.bind(this);\n this.handleMapClick = this.handleMapClick.bind(this);\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n const new_markers = this.props.markers;\n\n if (!arraysEqual(new_markers, prevProps.markers)) {\n this.setState({ markers: new_markers });\n }\n\n let old_markers_str = prevProps.markers.map( m => m.id ).sort().join();\n let new_markers_str = new_markers.map( m => m.id ).sort().join();\n\n if (new_markers.length > 1 && old_markers_str !== new_markers_str) {\n const markerBounds = new google.maps.LatLngBounds();\n for (let marker of new_markers) {\n let marker_loc = new google.maps.LatLng(marker.lat, marker.lng);\n markerBounds.extend(marker_loc);\n }\n this._mapComponent.fitBounds(markerBounds);\n }\n\n\n }\n\n handleMapLoad(map) {\n this._mapComponent = map;\n }\n\n handleMapChange() {\n let visible_markers = this.props.markers.filter(m => {\n let marker_loc = new google.maps.LatLng(m.lat, m.lng);\n return (this._mapComponent.getBounds().contains(marker_loc)) ;\n });\n\n if (this.props.hasOwnProperty('onChangeCallback'))\n this.props.onChangeCallback(visible_markers);\n };\n\n handleMarkerClick(marker_id) {\n let markers = this.state.markers;\n let is_open = markers.find(m => m.id == marker_id).isInfoWindowOpen;\n markers.find(m => m.id == marker_id).isInfoWindowOpen = !is_open;\n\n this.setState({ markers: markers });\n };\n\n handleMarkerDrag(ev) {\n this.props.onMarkerDragged(ev.latLng.lat(), ev.latLng.lng());\n };\n\n handleMapClick(ev) {\n this.props.onMapClick(ev.latLng.lat(), ev.latLng.lng());\n };\n\n render() {\n let {markers} = this.state;\n let {zoom, center} = this.props;\n let draggable = this.props.hasOwnProperty('draggable');\n\n return (\n 0}\n markers={markers}\n zoom={ zoom ? zoom : MAP.defaultZoom }\n center={ center.lat ? center : MAP.defaultCenter }\n loadingElement={
}\n containerElement={
}\n mapElement={
}\n onMapLoad={this.handleMapLoad}\n onMapChange={this.handleMapChange}\n onToggleInfoWindow={this.handleMarkerClick}\n onMarkerDrag={this.handleMarkerDrag}\n draggable={draggable}\n onMapClick={this.handleMapClick}\n />\n );\n }\n}\n\nexport default GMap;\n"],"names":["root","factory","exports","module","define","amd","this","arraysEqual","a1","a2","length","every","o","idx","shallowEqual","object1","object2","keys1","Object","keys","keys2","key","require","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","n","getter","__esModule","d","a","definition","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","MAP","defaultZoom","defaultCenter","lat","lng","options","minZoom","maxZoom","GoogleMapWrapper","withGoogleMap","props","React","GoogleMap","ref","onMapLoad","zoom","center","onBoundsChanged","onMapChange","onClick","onMapClick","showMarkers","MarkerClusterer","averageCenter","enableRetinaIcons","gridSize","markers","map","marker","Marker","id","position","onToggleInfoWindow","onDragEnd","onMarkerDrag","draggable","isInfoWindowOpen","InfoWindow","onCloseClick","name","GMap","constructor","super","state","handleMapLoad","bind","handleMapChange","handleMarkerDrag","handleMapClick","componentDidUpdate","prevProps","prevState","snapshot","new_markers","setState","old_markers_str","m","sort","join","new_markers_str","markerBounds","google","maps","LatLngBounds","marker_loc","LatLng","extend","_mapComponent","fitBounds","visible_markers","filter","getBounds","contains","onChangeCallback","handleMarkerClick","marker_id","is_open","find","ev","onMarkerDragged","latLng","render","loadingElement","style","height","containerElement","mapElement"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/components/index.js b/lib/components/index.js new file mode 100644 index 00000000..cde38a3a --- /dev/null +++ b/lib/components/index.js @@ -0,0 +1,2 @@ +!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,(()=>(()=>{var e={9445:(e,t,n)=>{"use strict";n.d(t,{default:()=>s});var r=n(2015),A=n.n(r);const s=({show:e,relative:t,color:n,size:r,children:s})=>{let a={display:e?"block":"none",width:"100%",height:"100%",position:t?"absolute":"fixed",zIndex:1e7,margin:"auto",cursor:"wait",backgroundColor:"rgba(0,0,0,0.2)",top:0,left:0},o={fontSize:r+"px",color:"black"},i={width:"250px",height:"75px",textAlign:"center",position:t?"relative":"fixed",top:t?"50%":"0",left:t?"":"0",right:"0",bottom:"0",margin:"auto",zIndex:10,color:"#ffffff"},l={background:n,opacity:"0.8",width:"100%",height:"100%",position:"absolute",top:0};return A().createElement("div",{className:"ajax-loader-container",style:a},A().createElement("div",{style:i},A().createElement("i",{className:"fa fa-spinner fa-spin",style:o}),A().createElement("div",null,s)),A().createElement("div",{style:l,className:"loader-background"}))}},5429:(e,t,n)=>{"use strict";n.d(t,{default:()=>p});var r=n(1116),A=n.n(r),s=n(2015),a=n.n(s),o=n(9825),i=n.n(o),l=n(806),c=n.n(l),u=n(2183);class d extends a().Component{constructor(...e){super(...e),A()(this,"trackEnter",(async()=>{const{apiBaseUrl:e,summitId:t,sourceId:n,sourceName:r}=this.props,A=this.getLocation();try{const s=await(0,u.getAccessToken)();c().put(`${e}/api/v1/summits/${t}/metrics/enter`).send({access_token:s,type:r,source_id:n,location:A}).end((()=>console.log("ENTER PAGE")))}catch(e){console.log(e)}})),A()(this,"trackLeave",(async()=>{const{apiBaseUrl:e,summitId:t,sourceId:n,sourceName:r}=this.props,A=this.getLocation();try{const s=await(0,u.getAccessToken)();c().post(`${e}/api/v1/summits/${t}/metrics/leave`).send({access_token:s,type:r,source_id:n,location:A}).end((()=>console.log("LEFT PAGE")))}catch(e){console.log(e)}})),A()(this,"onBeforeUnload",(async()=>{const{apiBaseUrl:e,summitId:t,sourceId:n,sourceName:r}=this.props,A=this.getLocation();try{const s=await(0,u.getAccessToken)();return void navigator.sendBeacon(`${e}/api/v1/summits/${t}/metrics/leave?access_token=${s}&type=${r}&source_id=${n}&location=${A}`,{})}catch(e){console.log(e)}})),A()(this,"getLocation",(()=>"undefined"!=typeof window?encodeURIComponent(window.location.href):""))}componentDidMount(){const{trackEnter:e,onBeforeUnload:t}=this;e(),"undefined"!=typeof window&&window.addEventListener("beforeunload",t)}componentWillUnmount(){const{trackLeave:e,onBeforeUnload:t}=this;e(),"undefined"!=typeof window&&window.removeEventListener("beforeunload",t)}render(){return null}}d.propTypes={sourceName:i().string,sourceId:i().number,summitId:i().number.isRequired,apiBaseUrl:i().string.isRequired},d.defaultProps={sourceId:0,sourceName:"GENERAL"};const p=d},6440:(e,t,n)=>{"use strict";n.d(t,{default:()=>i});var r=n(2015),A=n.n(r),s=n(6842),a=n.n(s);class o extends A().Component{onPerformBulkAction(){let e=this.actionTypeSelect.value;""!==e&&this.props.onSelectedBulkAction(e)}render(){let{onSelectAll:e,bulkOptions:t,show:n}=this.props;return A().createElement("div",{className:"bulk-actions-selector-container"},n&&A().createElement("div",{className:"row"},A().createElement("div",{className:"col-md-8"},A().createElement("input",{type:"checkbox",onClick:e}),A().createElement("select",{ref:e=>{this.actionTypeSelect=e}},A().createElement("option",{value:""},a().translate("published_bulk_actions_selector.options.default")),t.map(((e,t)=>A().createElement("option",{key:t,value:e.value},e.label))))),A().createElement("div",{className:"col-md-4"},A().createElement("button",{onClick:this.onPerformBulkAction.bind(this),title:a().translate("published_bulk_actions_selector.titles.go"),className:"btn btn-default btn-sm"},A().createElement("i",{className:"fa fa-play"}," ",a().translate("published_bulk_actions_selector.buttons.go"))))))}}const i=o},8430:(e,t,n)=>{"use strict";n.d(t,{default:()=>d});var r=n(2015),A=n.n(r),s=n(9825),a=n.n(s);const o="pTjbvR2PI3JIAfGGYR5C",i="BnU6_vcWc8sasL8roBPA",l="yREg1belHCLDAYYfAg77",c="mFp_9X3SzjgPNXRSXiFR",u=({event:e,isScheduled:t,nowUtc:n,addToSchedule:r,removeFromSchedule:s,enterClick:a,alwaysShowEnter:u})=>{const d=((e,t)=>{const n=t>e.end_date;return e.start_date-t<1&&!n})(e,n);let p=null,h=null,m=null;const g=(t,n)=>{t.preventDefault(),t.stopPropagation(),n(e)};return d||u?(p=`${c} enter`,h="fa-sign-in",m=e=>g(e,a)):s&&r&&t?(p=`${l} added`,h="fa-check",m=e=>g(e,s)):s&&r&&(p=`${i} add`,h="fa-plus",m=e=>g(e,r)),m?A().createElement("button",{className:`${o} ${p}`,onClick:m},A().createElement("i",{className:`fa ${h}`,"aria-hidden":"true"})):null};u.propTypes={event:a().object.isRequired,nowUtc:a().number.isRequired,isScheduled:a().bool.isRequired,enterClick:a().func.isRequired,addToSchedule:a().func,removeFromSchedule:a().func,alwaysShowEnter:a().bool},u.defaultProps={addToSchedule:null,removeFromSchedule:null,alwaysShowEnter:!1};const d=u},519:(e,t,n)=>{"use strict";n.d(t,{ClockProvider:()=>c,useClock:()=>i,useClockSelector:()=>l});var r=n(2015),A=n.n(r),s=n(5890),a=n(2593);const{Provider:o,useValue:i,useSelector:l}=(0,s.createExternalStore)("Clock"),c=({timezone:e,now:t,children:n})=>A().createElement(o,{initialValue:t},(r=>A().createElement(A().Fragment,null,A().createElement(a.default,{onTick:r,timezone:e,now:t}),n)))},2593:(e,t,n)=>{"use strict";n.d(t,{default:()=>d});var r=n(1116),A=n.n(r),s=n(2015),a=n.n(s),o=n(5812),i=n.n(o),l=n(8311),c=n(9558);class u extends a().Component{constructor(e){super(e),A()(this,"processServerTimeResponse",((e,t)=>{const n=i()().unix();let r=n;e&&(r=e.timestamp+(n-t)),this._isMounted&&(console.log(`Clock::processServerTimeResponse setting timestamp ${r}`),this.setState({timestamp:r})),this.props.onTick&&this.props.onTick(r)})),A()(this,"processServerTimeResponseError",(()=>{let e=i()().unix();this._isMounted&&(console.log(`Clock::processServerTimeResponseError setting timestamp ${e}`),this.setState({timestamp:e})),this.props.onTick&&this.props.onTick(e)})),A()(this,"getServerTime",(()=>{const e=(0,c.getTimeServiceUrl)();return fetch(`${e}`).then((async e=>200===e.status?e.json():Promise.reject(null))).catch((e=>(console.log(e),Promise.reject(e))))})),A()(this,"tick",(()=>{const{timestamp:e}=this.state;null!==e&&(this.props.onTick&&this.props.onTick(e+1),this._isMounted&&this.setState({timestamp:e+1}))})),A()(this,"now",(()=>this.state.timestamp)),this.fragmentParser=new l.default,this.interval=null,this.state={timestamp:null,manualSet:!1},this._isMounted=!1,this.onVisibilityChange=this.onVisibilityChange.bind(this)}componentDidMount(){this._isMounted=!0;const{timezone:e="UTC",now:t}=this.props,n=this.fragmentParser.getParam("now"),r=i().tz(n,"YYYY-MM-DD,hh:mm:ss",e);let A=null,s=!1;if(r.isValid())A=r.valueOf()/1e3,console.log(`Clock::componentDidMount nowQS ${n} is valid setting timestamp ${A}`),s=!0;else if(t)A=t;else{const e=i()().unix();this.getServerTime().then((t=>this.processServerTimeResponse(t,e))).catch((()=>this.processServerTimeResponseError()))}A&&(this.setState({timestamp:A,manualSet:s}),this.props.onTick&&this.props.onTick(A)),this.interval=setInterval(this.tick,1e3),document.addEventListener("visibilitychange",this.onVisibilityChange,!1)}onVisibilityChange(){const e=document.visibilityState,{manualSet:t}=this.state;if("visible"===e){if(console.log(`Clock::onVisibilityChange manualSet ${t}`),t)return;const e=i()().unix();this.getServerTime().then((t=>this.processServerTimeResponse(t,e))).catch((()=>this.processServerTimeResponseError()))}}componentWillUnmount(){this._isMounted=!1,clearInterval(this.interval),document.removeEventListener("visibilitychange",this.onVisibilityChange),this.interval=null}render(){const{display:e,timezone:t="UTC"}=this.props,{timestamp:n}=this.state;return e&&n?a().createElement("div",{style:{marginTop:"50px",textAlign:"center",fontSize:"20px"}},i().tz(1e3*n,t).format("YYYY-MM-DD hh:mm:ss")):null}}const d=u},2865:(e,t,n)=>{"use strict";n.d(t,{default:()=>s});var r=n(2015),A=n.n(r);class s extends A().Component{constructor(e){super(e),this.showField=this.showField.bind(this)}showField(){let{name:e}=this.props,t=window.EXCLUSIVE_SECTIONS;return!!t&&t.includes(e)}render(){let{children:e}=this.props;return this.showField()?e:null}}},6108:(e,t,n)=>{"use strict";var r=n(6031),A=n.n(r),s=n(2462),a=n.n(s),o=n(2015),i=n.n(o),l=n(9825),c=n.n(l),u=n(7651),d=n(6604),p=n(5639),h=n(7017),m=n(356);const g=require("react-final-form");var C=n(9558);const v="CheckBox",f="RadioButton";n(1536);const E=["input","meta","question","className","isDisabled","isRequired"],y=["input","meta","question","isDisabled","isRequired"],b=["input","meta","question","isDisabled","isRequired"],w=["input","meta","question","isDisabled","isRequired","maxValues"],O=e=>{let{input:t,meta:n,question:r,className:s,isDisabled:o,isRequired:l}=e,c=a()(e,E);return i().createElement(u.default,A()({},t,c,{containerClassName:s,name:(0,C.toSlug)(r.name),ariaLabelledBy:`${(0,C.toSlug)(r.name)} label`,id:(0,C.toSlug)(r.name),value:t.value,disabled:o,required:l,onChange:t.onChange,placeholder:r.placeholder}))},S=e=>{let{input:t,meta:n,question:r,isDisabled:s,isRequired:o}=e,l=a()(e,y);return i().createElement(p.default,A()({},t,l,{name:(0,C.toSlug)(r.name),ariaLabelledBy:`${(0,C.toSlug)(r.name)} label`,id:(0,C.toSlug)(r.name),overrideCSS:!0,value:t.value,disabled:s,required:o,onChange:t.onChange}))},k=e=>{let{input:t,meta:n,question:r,isDisabled:s,isRequired:o}=e,l=a()(e,b);return i().createElement(d.default,A()({},t,l,{name:(0,C.toSlug)(r.name),ariaLabelledBy:`${(0,C.toSlug)(r.name)} label`,id:(0,C.toSlug)(r.name),overrideCSS:!0,className:"ddl-extra-questions-container",classNamePrefix:"ddl-extra-questions",value:t.value,disabled:s,required:o,onChange:t.onChange}))},Q=e=>{let{input:t,meta:n,question:r,isDisabled:s,isRequired:o,maxValues:l}=e,c=a()(e,w);return i().createElement(h.default,A()({},t,c,{id:(0,C.toSlug)(r.name),name:(0,C.toSlug)(r.name),ariaLabelledBy:`${(0,C.toSlug)(r.name)} label`,value:t.value,disabled:s,required:o,onChange:e=>{const n=e.target.value;return l>0&&n.length>l?null:t.onChange(e)}}))},I=e=>e?e=>e?void 0:"Required":()=>{},B=i().forwardRef((({extraQuestions:e,userAnswers:t,onAnswerChanges:n,className:r="questions-form",questionContainerClassName:A="question-container",questionLabelContainerClassName:s="question-label-container",questionControlContainerClassName:a="question-control-container",readOnly:l=!1,debug:c=!1,buttonText:u="Submit",RequiredErrorMessage:d="Required",ValidationErrorClassName:p="extra-question-error",allowExtraQuestionsEdit:h=!0,onError:E=e=>console.log("form errors: ",e),shouldScroll2FirstError:y=!0},b)=>{let w=null;const B=(0,o.useRef)({}),D=(0,o.useRef)(null),[P,H]=(0,o.useState)({});(0,o.useEffect)((()=>{x()}),[e]),(0,o.useImperativeHandle)(b,(()=>({doSubmit(){var e;null===(e=D.current)||void 0===e||e.dispatchEvent(new Event("submit",{cancelable:!0,bubbles:!0}))},scroll2QuestionById(e){K(e)}})));const N=e=>(B.current[e]||(B.current[e]=i().createRef()),B.current[e]),x=()=>{const n=new m.default(e,t);H(n.formatAnswers())},T=({when:e,rule:t,children:n})=>i().createElement(g.Field,{name:e,subscription:{value:!0}},(({input:{value:e}})=>U(t,L(e,t),n))),R=({name:e})=>i().createElement(g.Field,{name:e,subscription:{error:!0,touched:!0,submitFailed:!0}},(({meta:{error:e,touched:t,submitFailed:n}})=>e&&(t||n)?i().createElement("div",{className:p},e):null)),L=(e,t)=>{let n=t.answer_values;if(Array.isArray(e)){if(!e.length)return!1;let r="And"===t.answer_values_operator;return n.forEach((n=>{r="And"===t.answer_values_operator?r&&e.includes(parseInt(n)):r||e.includes(parseInt(n))})),r}return n.includes(e.toString())},U=(e,t,n)=>"Visible"===e.visibility?"Equal"===e.visibility_condition?t?n:(delete B.current[e.sub_question.id],null):t?(delete B.current[e.sub_question.id],null):n:"Equal"===e.visibility_condition?t?(delete B.current[e.sub_question.id],null):n:t?n:(delete B.current[e.sub_question.id],null),j=e=>{var t;const n=String.fromCharCode(160),r=null==e||null===(t=e.label)||void 0===t?void 0:t.replace(/\n/g,"
").replace(/

(.*)<\/p>/gi,"$1"),A=[v,f],s=e.mandatory&&!A.includes(e.type)?`${r}${n}*`:r;return i().createElement("label",{dangerouslySetInnerHTML:{__html:s},htmlFor:(0,C.toSlug)(e.name),id:`${(0,C.toSlug)(e.name)} label`})},z=e=>{let t=e.values;const n=!h&&((e,t)=>{const n=(0,C.toSlug)(e.name);if(!t.hasOwnProperty(n))return!1;const r=t[n];return Array.isArray(r)||"string"==typeof r?r.length>0:"number"==typeof r?r>0:"boolean"==typeof r&&r})(e,P);var r,l,c,u;if("Text"===e.type)return i().createElement(o.Fragment,{key:(0,C.toSlug)(e.name)},i().createElement("div",{ref:N(e.id),className:A},i().createElement("span",{className:s},j(e)),i().createElement("div",{className:a},i().createElement(g.Field,{name:(0,C.toSlug)(e.name),question:e,isDisabled:n,isRequired:e.mandatory,validate:I(e.mandatory),component:O}),i().createElement(R,{name:(0,C.toSlug)(e.name)}))),(null===(r=e.sub_question_rules)||void 0===r?void 0:r.length)>0&&e.sub_question_rules.map((t=>i().createElement(T,{key:t.id,when:(0,C.toSlug)(e.name),rule:t},z(t.sub_question)))));if("TextArea"===e.type)return i().createElement(o.Fragment,{key:(0,C.toSlug)(e.name)},i().createElement("div",{ref:N(e.id),className:A},i().createElement("span",{className:s},j(e)),i().createElement("div",{className:a},i().createElement(g.Field,{validate:I(e.mandatory),name:(0,C.toSlug)(e.name),id:(0,C.toSlug)(e.name),disabled:n,required:e.mandatory,component:"textarea"}),i().createElement(R,{name:(0,C.toSlug)(e.name)}))),(null===(l=e.sub_question_rules)||void 0===l?void 0:l.length)>0&&e.sub_question_rules.map((t=>i().createElement(T,{key:t.id,when:(0,C.toSlug)(e.name),rule:t},z(t.sub_question)))));if(e.type===v)return i().createElement(o.Fragment,{key:(0,C.toSlug)(e.name)},i().createElement("div",{ref:N(e.id),className:`${A} checkbox-wrapper`},i().createElement("div",{className:`${a} input-wrapper`},i().createElement("div",{className:"form-check abc-checkbox"},i().createElement(g.Field,{name:(0,C.toSlug)(e.name),id:(0,C.toSlug)(e.name),validate:I(e.mandatory),disabled:n,required:e.mandatory,type:"checkbox",className:"form-check-input",component:"input"}),i().createElement("label",{className:"form-check-label",htmlFor:(0,C.toSlug)(e.name)}),e.mandatory&&i().createElement("span",{className:"checkbox-mandatory"},i().createElement("b",null,"*")))),i().createElement("span",{className:`eq-checkbox-label ${s}`},j(e))),i().createElement(R,{name:(0,C.toSlug)(e.name)}),(null===(c=e.sub_question_rules)||void 0===c?void 0:c.length)>0&&e.sub_question_rules.map((t=>i().createElement(T,{key:t.id,when:(0,C.toSlug)(e.name),rule:t},z(t.sub_question)))));if(e.type===f)return i().createElement(o.Fragment,{key:(0,C.toSlug)(e.name)},i().createElement("div",{ref:N(e.id),className:`${A} checkbox-wrapper`},i().createElement("div",{className:`${a} input-wrapper`},i().createElement("div",{className:"form-check abc-radio"},i().createElement(g.Field,{name:(0,C.toSlug)(e.name),id:(0,C.toSlug)(e.name),validate:I(e.mandatory),disabled:n,required:e.mandatory,type:"radio",className:"form-check-input",value:"true",component:"input"}),i().createElement("label",{className:"form-check-label",htmlFor:(0,C.toSlug)(e.name)}),e.mandatory&&i().createElement("span",{className:"checkbox-mandatory"},i().createElement("b",null,"*")))),i().createElement("span",{className:`eq-checkbox-label ${s}`},j(e))),i().createElement(R,{name:(0,C.toSlug)(e.name)}),(null===(u=e.sub_question_rules)||void 0===u?void 0:u.length)>0&&e.sub_question_rules.map((t=>i().createElement(T,{key:t.id,when:(0,C.toSlug)(e.name),rule:t},z(t.sub_question)))));if("RadioButtonList"===e.type){var d;const r=t.map((e=>({label:e.label,value:e.id})));return i().createElement(o.Fragment,{key:(0,C.toSlug)(e.name)},i().createElement("div",{ref:N(e.id),className:A},i().createElement("span",{className:s},j(e)),i().createElement("div",{className:a},i().createElement(g.Field,{name:(0,C.toSlug)(e.name),options:r,question:e,validate:I(e.mandatory),isDisabled:n,isRequired:e.mandatory,component:S}),i().createElement(R,{name:(0,C.toSlug)(e.name)}))),(null===(d=e.sub_question_rules)||void 0===d?void 0:d.length)>0&&e.sub_question_rules.map((t=>i().createElement(T,{key:t.id,when:(0,C.toSlug)(e.name),rule:t},z(t.sub_question)))))}if("ComboBox"===e.type||"CountryComboBox"===e.type){var p;const r=t.map((e=>({label:e.label,value:e.id})));return i().createElement(o.Fragment,{key:(0,C.toSlug)(e.name)},i().createElement("div",{ref:N(e.id),className:A},i().createElement("span",{className:s},j(e)),i().createElement("div",{className:`${a} reactSelectDropdown`},i().createElement(g.Field,{name:(0,C.toSlug)(e.name),options:r,question:e,validate:I(e.mandatory),isDisabled:n,isRequired:e.mandatory,component:k}),i().createElement(R,{name:(0,C.toSlug)(e.name)}))),(null===(p=e.sub_question_rules)||void 0===p?void 0:p.length)>0&&e.sub_question_rules.map((t=>i().createElement(T,{key:t.id,when:(0,C.toSlug)(e.name),rule:t},z(t.sub_question)))))}if("CheckBoxList"===e.type){var m;const r=t.map((e=>({label:e.label,value:e.id})));return i().createElement(o.Fragment,{key:(0,C.toSlug)(e.name)},i().createElement("div",{ref:N(e.id),className:A},i().createElement("span",{className:s},j(e)),i().createElement("div",{className:a},i().createElement(g.Field,{name:(0,C.toSlug)(e.name),className:a,validate:I(e.mandatory),options:r,question:e,maxValues:e.max_selected_values,isDisabled:n,isRequired:e.mandatory,component:Q}),i().createElement(R,{name:(0,C.toSlug)(e.name)}))),(null===(m=e.sub_question_rules)||void 0===m?void 0:m.length)>0&&e.sub_question_rules.map((t=>i().createElement(T,{key:t.id,when:(0,C.toSlug)(e.name),rule:t},z(t.sub_question)))))}return null},M=(e,t,n)=>{var r;if(e.mandatory&&(e=>!!B.current[e.id])(e)){const r=(0,C.toSlug)(e.name);t.hasOwnProperty((0,C.toSlug)(r))&&""!==t[(0,C.toSlug)(r)]&&0!==t[r].length||(n[r]=d)}null===(r=e.sub_question_rules)||void 0===r||r.forEach((e=>{M(e.sub_question,t,n)}))};if(!Object.keys(P).length)return null;const F=(e,t,n)=>{var r;t.includes((0,C.toSlug)(e.name))&&n.push(e),null===(r=e.sub_question_rules)||void 0===r||r.forEach((e=>{F(e.sub_question,t,n)}))},q=t=>{const n=[];return e.forEach((e=>{F(e,t,n)})),n.sort(((e,t)=>e.order>t.order))[0]},K=e=>{const t=B.current[e];t&&t.current&&(t.current.focus(),t.current.scrollIntoView({behavior:"smooth",block:"center"}))};return Object.keys(P).length?i().createElement("div",{className:r},i().createElement(g.Form,{validate:t=>{const n={};return e.forEach((e=>{M(e,t,n)})),n},onSubmit:e=>{n(e)},initialValues:P},(({handleSubmit:t,form:n,submitting:r,pristine:A,values:s})=>(w=t,i().createElement("form",{onSubmit:e=>{const r=n.getRegisteredFields().filter((e=>n.getFieldState(e).invalid));if(r.length>0){const e=q(r);E(r,B.current[e.id],e.id),y&&(e=>{const t=q(e);t&&K(t.id)})(r)}t(e)},ref:D},l?i().createElement("fieldset",{disabled:"disabled"},e.map((e=>z(e)))):e.map((e=>z(e))),c&&i().createElement("pre",null,JSON.stringify(s,0,2)))))),!b&&i().createElement("button",{type:"submit",onClick:e=>{w(e)},style:{marginTop:10}},u)):null}));B.propTypes={extraQuestions:c().array.isRequired,userAnswers:c().array.isRequired,onAnswerChanges:c().func.isRequired,className:c().string,debug:c().bool,buttonText:c().string,questionContainerClassName:c().string,questionLabelContainerClassName:c().string,questionControlContainerClassName:c().string,RequiredErrorMessage:c().string,ValidationErrorClassName:c().string,allowExtraQuestionsEdit:c().bool,shouldScroll2FirstError:c().bool,readOnly:c().bool}},941:(e,t,n)=>{"use strict";n.d(t,{default:()=>u});var r=n(2015),A=n.n(r),s=(n(1536),n(7651)),a=n(6604),o=n(5028),i=n(7017),l=n(5639);class c extends A().Component{constructor(e){super(e),this.state={answers:e.questions.map((e=>({question_id:e.id,value:null}))),errors:e.errors},this.handleChange=this.handleChange.bind(this),this.hasErrors=this.hasErrors.bind(this),this.handleSubmit=this.handleSubmit.bind(this)}renderQuestion(e){const{answers:t}=this.state,n=t.find((t=>t.question_id===e.id)).value;switch(e.class_name){case"RSVPMemberEmailQuestionTemplate":case"RSVPMemberFirstNameQuestionTemplate":case"RSVPMemberLastNameQuestionTemplate":case"RSVPTextBoxQuestionTemplate":return A().createElement(s.default,{id:e.id,value:n||"",onChange:this.handleChange,className:"form-control",error:this.hasErrors(e.id)});case"RSVPTextAreaQuestionTemplate":return A().createElement("textarea",{id:e.id,value:n||"",className:"form-control",onChange:this.handleChange});case"RSVPLiteralContentQuestionTemplate":return A().createElement("div",null,A().createElement(o.default,null,e.value));case"RSVPCheckBoxListQuestionTemplate":return A().createElement(i.default,{id:e.id,value:n,options:e.values.map((e=>({value:`${e.id}`,label:e.label}))),onChange:this.handleChange,error:this.hasErrors(e.id)});case"RSVPRadioButtonListQuestionTemplate":return A().createElement(l.default,{id:e.id,value:n,onChange:this.handleChange,options:e.values.map((e=>({value:`${e.id}`,label:e.label}))),error:this.hasErrors(e.id),simple:!0});case"RSVPDropDownQuestionTemplate":let t=e.is_country_selector?e.values.map((e=>({value:e.id,label:e.value}))):e.values;return A().createElement(a.default,{id:e.id,isMulti:e.is_multiselect,value:n,onChange:this.handleChange,placeholder:e.empty_string,options:t})}}handleChange(e){let t=[...this.state.answers],{value:n,id:r}=e.target;"datetime"===e.target.type&&(n=n.valueOf()/1e3),t.find((e=>e.question_id===parseInt(r))).value=n,this.setState({answers:t})}hasErrors(e){let{errors:t}=this.state;return e in t?t[e]:""}handleSubmit(e){e.preventDefault();let{onSubmit:t}=this.props,{answers:n}=this.state;t(n)}render(){let{questions:e,onSubmit:t}=this.props;return A().createElement("form",{className:"rsvp-form"},e.map((e=>A().createElement("div",{key:"question_"+e.id,className:"row form-group"},A().createElement("div",{className:"col-md-12"},A().createElement("label",null,A().createElement(o.default,null,e.label)," ",e.is_mandatory&&"*"),this.renderQuestion(e))))),t&&A().createElement("div",{className:"row"},A().createElement("div",{className:"col-md-12"},A().createElement("button",{className:"btn btn-primary",onClick:this.handleSubmit},"Submit"))))}}const u=c},4348:(e,t,n)=>{"use strict";n.d(t,{default:()=>h});var r=n(1116),A=n.n(r),s=n(2015),a=n.n(s),o=n(6842),i=n.n(o),l=(n(1536),n(7651)),c=n(9558);function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function d(e){for(var t=1;tthis.createField(e))),a().createElement("div",{className:"row"},a().createElement("div",{className:"col-md-12 submit-buttons"},a().createElement("input",{type:"button",onClick:this.handleSubmit,className:"btn btn-primary pull-right",value:i().translate("general.save")}))))}}const h=p},8311:(e,t,n)=>{"use strict";n.d(t,{default:()=>a});var r=n(1116),A=n.n(r);function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}class a{constructor(){this.originalHash="",this.hash={}}convertToHash(e){let t=(e=e.substr(1).toLowerCase()).split("&"),n={};for(let e of t){if(e=e.split("="),2!==e.length)continue;let t=e[1].trim();""!==t&&("true"!==t&&"false"!==t||(e[1]="true"==t),n[e[0]]=e[1])}return n}clearParams(){this.originalHash="",this.hash={}}getParam(e){return"undefined"!=typeof window&&this.originalHash!==window.location.hash&&(this.originalHash=window.location.hash,this.hash=this.convertToHash(this.originalHash)),this.hash.hasOwnProperty(e)?this.hash[e]:null}getParams(){return"undefined"!=typeof window&&this.originalHash!==window.location.hash&&(this.originalHash=window.location.hash,this.hash=this.convertToHash(this.originalHash)),function(e){for(var t=1;t{"use strict";n.d(t,{default:()=>c});var r=n(2015),A=n.n(r),s=n(6842),a=n.n(s),o=(n(6108),n(9825)),i=n.n(o);class l extends A().Component{constructor(e){super(e),this.onSearchClick=this.onSearchClick.bind(this),this.onClearClick=this.onClearClick.bind(this),this.onKeyPressed=this.onKeyPressed.bind(this),this.onChange=this.onChange.bind(this),this.state={value:e.value||""}}onSearchClick(e){let{preventEvents:t}=this.props;t&&e.preventDefault(),this.doFiltering(this.state.value)}onClearClick(e){let{preventEvents:t}=this.props;t&&e.preventDefault(),this.doFiltering(""),this.setState({value:""})}doFiltering(e=""){this.props.onSearch(e.trim())}onKeyPressed(e){13===(e.keyCode||e.which)&&this.doFiltering(this.state.value)}onChange(e){this.setState({value:e.target.value}),this.props.onChange&&this.props.onChange(e.target.value)}render(){let{value:e}=this.state;return A().createElement("div",{className:"row search-container"},A().createElement("div",{className:"col-md-12"},A().createElement("div",{className:"input-group"},A().createElement("input",{type:"text",value:e,className:"form-control",placeholder:this.props.placeholder,onKeyPress:this.onKeyPressed,onChange:this.onChange}),A().createElement("span",{className:"input-group-btn",style:{width:"5%"}},A().createElement("button",{onClick:this.onSearchClick,className:"btn btn-default",title:a().translate("general.search")},A().createElement("i",{className:"fa fa-search"})),A().createElement("button",{onClick:this.onClearClick,className:"btn btn-default",title:a().translate("general.clear")},A().createElement("i",{className:"fa fa-times"}))))))}}l.defaultProps={preventEvents:!1,onChange:null,value:""},l.propTypes={preventEvents:i().bool,onChange:i().func};const c=l},4226:(e,t,n)=>{"use strict";n.d(t,{default:()=>p});var r=n(6031),A=n.n(r),s=n(2462),a=n.n(s),o=n(2015),i=n.n(o),l=n(2113),c=n.n(l),u=n(5301);const d=["value","error","onChange","id","multi"];class p extends i().Component{constructor(e){super(e),this.state={value:e.value},this.handleChange=this.handleChange.bind(this),this.getAccessLevels=this.getAccessLevels.bind(this),this.getOptionValue=this.getOptionValue.bind(this),this.getOptionLabel=this.getOptionLabel.bind(this)}getOptionValue(e){return this.props.hasOwnProperty("getOptionValue")?this.props.getOptionValue(e):e.id}getOptionLabel(e){return this.props.hasOwnProperty("getOptionLabel")?this.props.getOptionLabel(e):`${e.name}`}handleChange(e){let t={target:{id:this.props.id,value:e,type:"accesslevelinput"}};this.props.onChange(t)}getAccessLevels(e,t){let{summitId:n,defaultOptions:r}=this.props;if(!e&&!r)return Promise.resolve({options:[]});(0,u.queryAccessLevels)(n,e,t)}render(){let e=this.props,{value:t,error:n,onChange:r,id:s,multi:o}=e,l=a()(e,d),u=this.props.hasOwnProperty("multi"),p=this.props.hasOwnProperty("error")&&""!=n;return i().createElement("div",null,i().createElement(c(),A()({value:t,onChange:this.handleChange,loadOptions:this.getAccessLevels,getOptionValue:e=>this.getOptionValue(e),getOptionLabel:e=>this.getOptionLabel(e),isMulti:u},l)),p&&i().createElement("p",{className:"error-label"},n))}}},5566:(e,t,n)=>{"use strict";n.d(t,{default:()=>c});var r=n(2462),A=n.n(r),s=n(2015),a=n.n(s),o=n(8466),i=n.n(o);const l=["options","actionLabel","placeholder"];class c extends a().Component{constructor(e){super(e),this.state={value:e.value||null},this.handleChange=this.handleChange.bind(this),this.handleClick=this.handleClick.bind(this)}handleChange(e){this.setState({value:e})}handleClick(e){e.preventDefault(),this.props.onClick(this.state.value.value)}render(){let e=this.props,{options:t,actionLabel:n,placeholder:r}=e,{value:s}=(A()(e,l),this.state),o=this.props.hasOwnProperty("small")?"small":"",c=this.props.hasOwnProperty("small")?"btn-group-sm":"normal",u=s instanceof Object||null==s?s:t.find((e=>e.value==s));return a().createElement("div",{className:"action-dropdown btn-group "+c},a().createElement(i(),{value:u,onChange:this.handleChange,options:t,placeholder:r,className:"btn-group action-select text-left"+o,isClearable:!1}),a().createElement("button",{type:"button",className:"btn btn-default action-button",onClick:this.handleClick},n))}}},1278:(e,t,n)=>{"use strict";n.d(t,{default:()=>p});var r=n(6031),A=n.n(r),s=n(2462),a=n.n(s),o=n(2015),i=n.n(o),l=n(2113),c=n.n(l),u=n(5301);const d=["id","value","summitId","error","multi","onChange","getOptionValue","getOptionLabel","queryFunction"],p=e=>{let{id:t,value:n,summitId:r,error:s,multi:l,onChange:p,getOptionValue:h,getOptionLabel:m,queryFunction:g}=e,C=a()(e,d);const v=g||u.queryAttendees,[f,E]=(0,o.useState)(n),y=""!==s;return i().createElement("div",null,i().createElement(c(),A()({value:n,onChange:e=>{p({target:{id:t,value:e,type:"attendeeinput"}})},loadOptions:(e,t)=>{if(!e)return Promise.resolve({options:[]});v(r,e,t)},getOptionValue:e=>(e=>h?h(e):e.id)(e),getOptionLabel:e=>(e=>m?m(e):`${e.first_name} ${e.last_name} (${e.id})`)(e)},C)),y&&i().createElement("p",{className:"error-label"},s))}},7017:(e,t,n)=>{"use strict";n.d(t,{default:()=>p});var r=n(2462),A=n.n(r),s=n(9825),a=n.n(s),o=n(2015),i=n.n(o),l=n(6842),c=n.n(l),u=n(5028);n(1536);const d=["onChange","value","className","options","id","children","error","disabled","name","ariaLabelledBy"];class p extends i().Component{constructor(e){super(e);let t=!!e.value&&e.value.find((t=>!e.options.map((e=>e.value)).includes(t)));this.state={otherChecked:!!t},this.handleChange=this.handleChange.bind(this),this.handleOtherCBChange=this.handleOtherCBChange.bind(this)}handleChange(e){let t=this.props.options.map((e=>e.value)),n=this.props.value?[...this.props.value]:[];if("checkbox"===e.target.type)if(e.target.checked){const t=isNaN(e.target.value)?e.target.value:parseInt(e.target.value);n.push(t)}else n=n.filter((t=>t!=e.target.value));else n=n.filter((e=>t.includes(e))),n.push(e.target.value);let r={target:{id:this.props.id,value:n,type:"checkboxlist"}};this.props.onChange(r)}handleOtherCBChange(e){this.setState({otherChecked:e.target.checked})}render(){let e,t=this.props,{onChange:n,value:r,className:s,options:a,id:o,children:l,error:p,disabled:h,name:m,ariaLabelledBy:g}=t,{otherChecked:C}=(A()(t,d),this.state),v=this.props.hasOwnProperty("inline"),f=this.props.hasOwnProperty("allowOther"),E=!!r&&r.find((e=>!a.map((e=>e.value)).includes(e))),y=this.props.hasOwnProperty("error")&&""!==p,b=this.props.hasOwnProperty("disabled")&&1==h;return e=v?{paddingLeft:"22px",marginLeft:"20px",float:"left"}:{paddingLeft:"22px",marginTop:"7px"},i().createElement("div",{id:`chl_wrapper_${o}`,"aria-labelledby":g},i().createElement("div",{className:"checkboxes-div"+(y?" error":"")},a.map((t=>{let n=!!r&&r.includes(t.value);return i().createElement("div",{className:"form-check abc-checkbox",key:"radio_key_"+t.value,style:e},i().createElement("input",{type:"checkbox",id:`cb_${o}_${t.value}`,name:m||o,checked:n,disabled:b,onChange:this.handleChange,className:"form-check-input",value:t.value}),i().createElement("label",{className:"form-check-label",htmlFor:`cb_${o}_${t.value}`},i().createElement(u.default,null,t.label)))})),f&&i().createElement("div",{className:"form-check abc-checkbox",style:e},i().createElement("input",{type:"checkbox",id:"cb_other"+o,checked:C,disabled:b,onChange:this.handleOtherCBChange,className:"form-check-input",value:"other"}),i().createElement("label",{className:"form-check-label",htmlFor:"cb_other"+o},c().translate("general.other"))),f&&C&&i().createElement("div",{style:{paddingLeft:"22px",width:"50%"}},i().createElement("input",{className:"form-control",disabled:b,onChange:this.handleChange,value:E}))),y&&i().createElement("p",{className:"error-label"},p))}}p.defaultProps={ariaLabelledBy:null},p.propTypes={id:a().string.isRequired}},2739:(e,t,n)=>{"use strict";n.d(t,{default:()=>m});var r=n(6031),A=n.n(r),s=n(2462),a=n.n(s),o=n(2015),i=n.n(o),l=n(2113),c=n.n(l),u=n(5301),d=n(2934),p=n.n(d);const h=["error","value","onChange","id","multi"];class m extends i().Component{constructor(e){super(e),this.handleChange=this.handleChange.bind(this),this.handleNew=this.handleNew.bind(this),this.getCompanies=this.getCompanies.bind(this)}handleChange(e){const t=this.props.hasOwnProperty("multi")||this.props.hasOwnProperty("isMulti")?e.map((e=>({id:e.value,name:e.label}))):{id:e.value,name:e.label};let n={target:{id:this.props.id,value:t,type:"companyinput"}};this.props.onChange(n)}handleNew(e){this.props.onCreate(e,(e=>{this.handleChange({value:e.id,label:e.name})}))}getCompanies(e,t){const{extraOptions:n}=this.props;if(!e)return Promise.resolve({options:[]});(this.props.queryFunction||u.queryCompanies)(e,(e=>{let r=e.map((e=>({value:e.id.toString(),label:e.name})));(null==n?void 0:n.length)>0&&(r=[...n,...r]),t(r)}))}render(){let e=this.props,{error:t,value:n,onChange:r,id:s,multi:o}=e,l=a()(e,h),u=this.props.hasOwnProperty("error")&&""!=t,d=this.props.hasOwnProperty("multi")||this.props.hasOwnProperty("isMulti"),m=this.props.hasOwnProperty("allowCreate"),g=null;d&&n.length>0?g=n.map((e=>({value:e.id.toString(),label:e.name}))):!d&&n&&(g={value:n.id.toString(),label:n.name});const C=m?p():c();return i().createElement("div",null,i().createElement(C,A()({value:g,onChange:this.handleChange,loadOptions:this.getCompanies,onCreateOption:this.handleNew,isMulti:d},l)),u&&i().createElement("p",{className:"error-label"},t))}}},4813:(e,t,n)=>{"use strict";n.d(t,{default:()=>l});var r=n(6031),A=n.n(r),s=n(2015),a=n.n(s),o=n(6604),i=n(5301);class l extends a().Component{constructor(e){super(e),this.state={options:[]},this.handleChange=this.handleChange.bind(this),this.setOptions=this.setOptions.bind(this),this.abortController=new AbortController}componentDidMount(){let{options:e}=this.state;0==e.length&&(0,i.getCountryList)(this.setOptions,this.abortController.signal)}componentWillUnmount(){this.abortController.abort()}handleChange(e){let t={target:{id:this.props.id,value:e,type:"countryddl"}};this.props.onChange(t)}setOptions(e){let t=e.map((e=>({label:e.name,value:e.iso_code})));this.setState({options:t})}render(){let{options:e}=this.state;return a().createElement(o.default,A()({options:e},this.props))}}},2690:(e,t,n)=>{"use strict";n.d(t,{default:()=>p});var r=n(6031),A=n.n(r),s=n(2462),a=n.n(s),o=n(2015),i=n.n(o),l=n(8466),c=n.n(l),u=n(5301);const d=["value","onChange","id","multi","error"];class p extends i().Component{constructor(e){super(e),this.state={options:[]},this.handleChange=this.handleChange.bind(this),this.setOptions=this.setOptions.bind(this)}setOptions(e){let t=e.map((e=>({label:e.name,value:e.iso_code})));this.setState({options:t})}componentDidMount(){(0,u.getCountryList)(this.setOptions).catch((e=>{console.log("Error getting countries: ",e),this.setState({options:[]})}))}handleChange(e){let t=null;t=this.props.hasOwnProperty("multi")?e.map((e=>e.value)):e.value;let n={target:{id:this.props.id,value:t,type:"countryinput"}};this.props.onChange(n)}render(){let e=this.props,{value:t,onChange:n,id:r,multi:s,error:o}=e,l=a()(e,d),{options:u}=this.state,p=this.props.hasOwnProperty("multi"),h=null,m=this.props.hasOwnProperty("error")&&""!=o;return h=p?u.filter((e=>t.includes(e.value))):t instanceof Object||null==t?t:u.find((e=>e.value==t)),i().createElement("div",null,i().createElement(c(),A()({className:"dropdown"+(m?" error":""),onChange:this.handleChange,options:u,value:h,isMulti:p},l)),m&&i().createElement("p",{className:"error-label"},o))}}},1443:(e,t,n)=>{"use strict";n.d(t,{default:()=>v});var r=n(6031),A=n.n(r),s=n(1116),a=n.n(s),o=n(2462),i=n.n(o),l=n(2015),c=n.n(l);const u=require("react-datetime");var d=n.n(u),p=n(5812),h=n.n(p);const m=["onChange","id","value","format","error","inputProps","disabled"];function g(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function C(e){for(var t=1;t"==A)return e.isAfter(h().tz(1e3*s,n));if(">="==A)return e.isSameOrAfter(h().tz(1e3*s,n));{let t=h().tz(1e3*A,n).subtract(1,"day"),r=h().tz(1e3*s,n);return e.isAfter(t)&&e.isBefore(r)}}render(){let e=void 0!==this.props.validation,t=this.props,{onChange:n,id:r,value:s,format:a,error:o,inputProps:l,disabled:u}=t,p=i()(t,m),h=this.props.hasOwnProperty("error")&&""!=o,g="form-control "+(h?"error":""),v=!!this.props.hasOwnProperty("disabled")&&u;return c().createElement("div",null,e?c().createElement(d(),A()({isValidDate:this.isValidDate,onChange:this.handleChange,dateFormat:a.date,timeFormat:a.time,value:this.state.value,inputProps:C(C({},l),{},{id:r,className:g,disabled:v,autoComplete:"off"})},p)):c().createElement(d(),A()({onChange:this.handleChange,dateFormat:a.date,timeFormat:a.time,value:this.state.value,inputProps:C(C({},l),{},{id:r,className:g,disabled:v,autoComplete:"off"})},p)),h&&c().createElement("p",{className:"error-label"},o))}}},6604:(e,t,n)=>{"use strict";n.d(t,{default:()=>g});var r=n(6031),A=n.n(r),s=n(1116),a=n.n(s),o=n(2462),i=n.n(o),l=n(2015),c=n.n(l),u=n(8466),d=n.n(u);const p=["onChange","value","className","error","clearable","disabled","overrideCSS","ariaLabelledBy"];function h(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function m(e){for(var t=1;te.value)):null:e?e.value:null;let n={target:{id:this.props.id,value:t,type:"dropdown"}};this.props.onChange(n)}render(){let e=this.props,{onChange:t,value:n,className:r,error:s,clearable:a,disabled:o,overrideCSS:l,ariaLabelledBy:u}=e,h=i()(e,p),g=this.props.hasOwnProperty("error")&&""!=s,C=this.props.hasOwnProperty("clearable"),v=this.props.hasOwnProperty("disabled")&&1==o,f=null,E=r;this.props.hasOwnProperty("overrideCSS")&&0!=l||(E="dropdown "+r+" "+(g?"error":"")),f=this.props.isMulti?this.props.options.filter((e=>n.includes(e.value))):n instanceof Object||null==n?n:this.props.options.find((e=>e.value==n));const y={menu:e=>m(m({},e),{},{zIndex:999})};return c().createElement("div",null,c().createElement(d(),A()({className:E,value:f,onChange:this.handleChange,isClearable:C,isDisabled:v,styles:y,"aria-labelledby":u,formatOptionLabel:e=>c().createElement("span",{dangerouslySetInnerHTML:{__html:e.label}})},h)),g&&c().createElement("p",{className:"error-label"},s))}}g.defaultProps={ariaLabelledBy:null}},8418:(e,t,n)=>{"use strict";n.d(t,{j:()=>h,A:()=>m});var r=n(2015),A=n.n(r);const s=require("extend");var a=n.n(s);require("dropzone/dist/dropzone.css");const o=e=>A().createElement("div",{"data-filetype":e.filetype,className:"filepicker-file-icon"});var i=n(9825),l=n.n(i),c=n(2183),u=n(3195),d=n(8853);let p=null;class h extends A().Component{constructor(e){super(e),this.dropzoneRef=A().createRef(),this.state={files:[]},this.onUploadComplete=this.onUploadComplete.bind(this),this.onError=this.onError.bind(this),this.activeXHRs=new Map,this.chunkQueue=[],this.chunksInFlight=0}onError(e,t){this.props.onError&&this.props.onError(e,t,this.props.id)}onUploadComplete(e){this.props.onUploadComplete&&this.props.onUploadComplete(e,this.props.id,this.props.data)}processChunkQueue(){const e=this.props.maxConcurrentChunks||6;for(;this.chunkQueue.length>0&&this.chunksInFlight{1===t.length&&void 0!==t[0].chunkIndex?(this.chunkQueue.push({files:e,dataBlocks:t}),this.processChunkQueue()):this._originalUploadData(e,t)})}onChunkComplete(){this.chunksInFlight=Math.max(0,this.chunksInFlight-1),this.processChunkQueue()}pollUploadStatus(e,t,n){if(n._pollingActive)return;n._pollingActive=!0;const r=`${t}/status/${e}`;let A=0;this._pollInterval=setInterval((async()=>{if(A++,A>300)return clearInterval(this._pollInterval),this._pollInterval=null,n._pollingActive=!1,void this.onError({message:"Upload timed out"});try{const e=await(0,c.getAccessToken)(),t=await fetch(r,{headers:{Authorization:`Bearer ${e}`}}),A=await t.json();"complete"===A.status?(clearInterval(this._pollInterval),this._pollInterval=null,n._pollingActive=!1,null!=n&&n._chunksUploadedDone&&n._chunksUploadedDone(),this.onUploadComplete(A)):"error"===A.status&&(clearInterval(this._pollInterval),this._pollInterval=null,n._pollingActive=!1,this.onError(A))}catch(e){clearInterval(this._pollInterval),this._pollInterval=null,n._pollingActive=!1,this.onError(e)}}),2e3)}getDjsConfig(){let e=null;const t={url:this.props.config.postUrl?this.props.config.postUrl:null};if(null===t.url)throw new Error("missing postUrl");return e=this.props.djsConfig?a()(!0,{},t,this.props.djsConfig):t,e.accept=async(t,n)=>{try{t.accessToken=await(0,c.getAccessToken)(),t.md5=await(0,d.Zq)(t),t.fileSize=t.size}catch(e){return console.log(e),this.onError(e),e.message&&e.message.startsWith(u.AUTH_ERROR_REFRESH_TOKEN_NETWORK_ERROR)||(0,c.initLogOut)(),void n(e.message||"Auth error")}e.maxFiles&&e.maxFiles{e._asyncProcessing?e._chunksUploadedDone=t:t()},e}componentDidMount(){if(!this.dropzoneRef.current)return;const e=this.getDjsConfig();p=p||n(4999),p.autoDiscover=!1,this.props.config.postUrl||this.props.eventHandlers.drop||console.info('Neither postUrl nor a "drop" eventHandler specified, the React-Dropzone component might misbehave.');const t=this.dropzoneRef.current;if(!t)throw new Error("Dropzone node not found");this.dropzone=new p(t,e),this.setupChunkThrottle(),this.setupEvents()}componentWillUnmount(){if(this._pollInterval&&(clearInterval(this._pollInterval),this._pollInterval=null),this.chunkQueue=[],this.chunksInFlight=0,this.activeXHRs.forEach(((e,t)=>{e.forEach((e=>{e.readyState!==XMLHttpRequest.DONE&&e.abort()}))})),this.activeXHRs.clear(),this.dropzone){const e=this.dropzone.getActiveFiles();e.length>0?(e.forEach((e=>{this.dropzone.cancelUpload(e)})),this.dropzone=this.destroy(this.dropzone)):this.dropzone=this.destroy(this.dropzone)}}componentDidUpdate(){const{config:e,djsConfig:t}=this.props,n=t||{},r=e&&e.postUrl?{url:e.postUrl}:{};if(this.queueDestroy=!1,!this.dropzone){const e=this.dropzoneRef.current;if(!e)throw new Error("Dropzone node not found");this.dropzone=new p(e,this.getDjsConfig()),this.setupChunkThrottle(),this.setupEvents()}this.dropzone.options=a()(!0,{},this.dropzone.options,n,r)}render(){const e=[],{files:t}=this.state,{config:n}=this.props,r=this.props.className?"filepicker dropzone "+this.props.className:"filepicker dropzone";if(n.showFiletypeIcon&&n.iconFiletypes&&(!t||t.length<1))for(var s=0;s{if(!e)return;const t=this.state.files||[];t.push(e),this.setState({files:t})})),this.dropzone.on("removedfile",(e=>{if(!e)return;const t=this.activeXHRs.get(e);t&&(t.forEach((e=>{e.readyState!==XMLHttpRequest.DONE&&e.abort()})),this.activeXHRs.delete(e));const n=this.state.files||[];n.forEach(((t,r)=>{t.name===e.name&&t.size===e.size&&n.splice(r,1)})),this.setState({files:n})})),this.dropzone.on("uploadprogress",((e,t,n)=>{const r=Math.max(n,e._completedBytes||0);if(t=Math.min(r/e.size*100,100),e.previewElement){let n=e.previewElement.querySelectorAll("[data-dz-uploadprogress]");n.length>0&&(n=n[0]),n&&(n.style.width=t+"%")}})),this.dropzone.on("sending",((e,t,n)=>{null!=e&&e.accessToken&&t.setRequestHeader("Authorization",`Bearer ${e.accessToken}`),null!=e&&e.md5&&n.append("md5",e.md5),n.append("size",String((null==e?void 0:e.size)||0)),console.log(`DropzoneJS::sending md5 ${null==e?void 0:e.md5} size ${null==e?void 0:e.size}`),this.activeXHRs.has(e)||this.activeXHRs.set(e,[]),this.activeXHRs.get(e).push(t);let r=this,A=t.onload;t.onload=function(n){var s,a;const o=r.activeXHRs.get(e);if(o){const e=o.indexOf(t);e>-1&&o.splice(e,1)}r.onChunkComplete();const i=(null===(s=r.dropzone)||void 0===s||null===(a=s.options)||void 0===a?void 0:a.chunkSize)||2e6;let l;e._completedBytes=Math.min((e._completedBytes||0)+i,e.size);try{l=JSON.parse(t.responseText)}catch(e){l={}}if(202==(null==t?void 0:t.status)&&l.file_id&&(e._asyncProcessing=!0),A(n),200==(null==t?void 0:t.status))"string"==typeof l.name&&r.onUploadComplete(l);else if(202==(null==t?void 0:t.status)&&l.file_id){const t=r.props.config.postUrl;r.pollUploadStatus(l.file_id,t,e)}else 200!=(null==t?void 0:t.status)&&202!=(null==t?void 0:t.status)&&r.onError(l,null==t?void 0:t.status)};let s=t.onerror;t.onerror=function(e){r.onChunkComplete(),s&&s(e)}})),this.dropzone.on("error",((e,t)=>{console.log("DropzoneJS::error",t),this.onError(t)}))}}destroy(e){return e.off(),e.destroy()}}h.defaultProps={djsConfig:{},config:{},eventHandlers:{},data:{}},h.propTypes={id:l().string.isRequired};const m=h},3798:(e,t,n)=>{"use strict";n.d(t,{default:()=>h});var r=n(6031),A=n.n(r),s=n(2462),a=n.n(s),o=n(1116),i=n.n(o),l=n(2015),c=n.n(l);const u=["onChange","value","error","className","id","maxLength"];function d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function p(e){for(var t=1;t

"===t?"":t,this.setState({currentValue:t}),t!==this.props.value){let e={target:{id:this.props.id,value:t,type:"texteditor"}};this.props.onChange(e)}}}render(){const e=this.props,{onChange:t,value:n,error:r,className:s,id:o,maxLength:i}=e,l=a()(e,u),{currentValue:d,editorValue:p}=this.state,h=this.props.hasOwnProperty("error")&&""!==r,m=i-d.length;return c().createElement("div",{className:"editor-input"},this.RichTextEditor&&c().createElement(this.RichTextEditor,A()({id:o,className:s+" "+(h?"error":""),value:p,onChange:this.handleChange,blockStyleFn:this.getTextAlignClassName},l)),!!i&&c().createElement("p",null,c().createElement("i",null,"characters left: ",m)),h&&c().createElement("p",{className:"error-label"},r))}}},4256:(e,t,n)=>{"use strict";n.d(t,{default:()=>p});var r=n(6031),A=n.n(r),s=n(2462),a=n.n(s),o=n(2015),i=n.n(o),l=n(2113),c=n.n(l),u=n(5301);const d=["value","onChange","id","multi"];class p extends i().Component{constructor(e){super(e),this.handleChange=this.handleChange.bind(this),this.getEvents=this.getEvents.bind(this)}handleChange(e){let t={target:{id:this.props.id,value:e,type:"eventinput"}};this.props.onChange(t)}getEvents(e,t){let{summit:n,onlyPublished:r}=this.props;if(!e)return Promise.resolve({options:[]});(0,u.queryEvents)(n.id,e,r,t)}render(){let e=this.props,{value:t,onChange:n,id:r,multi:s}=e,o=a()(e,d),l=this.props.hasOwnProperty("multi");return i().createElement(c(),A()({value:t,onChange:this.handleChange,loadOptions:this.getEvents,getOptionValue:e=>e.id,getOptionLabel:e=>e.title,isMulti:l},o))}}},3747:(e,t,n)=>{"use strict";n.d(t,{default:()=>h});var r=n(6031),A=n.n(r),s=n(2462),a=n.n(s),o=n(2015),i=n.n(o);const l=require("react-select/lib/Creatable");var c=n.n(l),u=n(6842),d=n.n(u);const p=["id","value","onChange"];class h extends i().Component{constructor(e){super(e),this.state={inputValue:""},this.handleChange=this.handleChange.bind(this),this.handleInputChange=this.handleInputChange.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this)}handleChange(e){let t=!!this.props.hasOwnProperty("limit")&&this.props.limit;if(!t||t>=e.length){let t={target:{id:this.props.id,value:e,type:"freetextlist"}};this.props.onChange(t)}}handleInputChange(e){this.setState({inputValue:e})}handleKeyDown(e){const{inputValue:t}=this.state;let{value:n}=this.props;if(t)switch(e.key){case"Enter":case"Tab":this.setState({inputValue:""}),this.handleChange([...n,{label:t,value:t}]),e.preventDefault()}}render(){const{inputValue:e}=this.state;let t=this.props,{id:n,value:r,onChange:s}=t,o=a()(t,p);return i().createElement(c(),A()({components:{DropdownIndicator:null},inputValue:e,clearable:!0,isMulti:!0,menuContainerStyle:{display:"none"},onChange:this.handleChange,onInputChange:this.handleInputChange,onInputKeyDown:this.handleKeyDown,placeholder:d().translate("general.type_something"),value:r},o))}}},2887:(e,t,n)=>{"use strict";n.d(t,{default:()=>p});var r=n(6031),A=n.n(r),s=n(2462),a=n.n(s),o=n(2015),i=n.n(o),l=n(2113),c=n.n(l),u=n(5301);const d=["value","onChange","id","multi"];class p extends i().Component{constructor(e){super(e),this.handleChange=this.handleChange.bind(this),this.getGroups=this.getGroups.bind(this)}handleChange(e){let t={target:{id:this.props.id,value:e,type:"groupinput"}};this.props.onChange(t)}getGroups(e,t){if(!e)return Promise.resolve({options:[]});(0,u.queryGroups)(e,t)}render(){let e=this.props,{value:t,onChange:n,id:r,multi:s}=e,o=a()(e,d),l=this.props.hasOwnProperty("multi");return i().createElement(c(),A()({value:t,onChange:this.handleChange,loadOptions:this.getGroups,getOptionValue:e=>e.id,getOptionLabel:e=>e.title,isMulti:l},o))}}},7137:(e,t,n)=>{"use strict";n.d(t,{default:()=>a});var r=n(2015),A=n.n(r);const s=({value:e,label:t,options:n})=>[A().createElement("option",{key:"group"+e,className:"option-group",value:e},t),n.map(((e,t)=>A().createElement("option",{className:"option-child",key:e.value,value:e.value}," - ",e.label)))];class a extends A().Component{constructor(e){super(e),this.state={value:e.value},this.handleChange=this.handleChange.bind(this)}componentDidUpdate(e,t,n){this.props.value!==e.value&&this.setState({value:this.props.value})}handleChange(e){this.props.onChange(e)}render(){let{id:e,options:t,placeholder:n,className:r,error:a}=this.props,o=this.props.hasOwnProperty("error")&&""!=a,{value:i}=this.state;return A().createElement("div",null,A().createElement("select",{id:e,className:r+" form-control "+(o?"error":""),value:i,onChange:this.handleChange},A().createElement("option",{value:"",disabled:!0},n),t.map(((e,t)=>void 0!==e.options?A().createElement(s,{key:"group_opt_"+t,label:e.label,value:e.value,options:e.options}):A().createElement("option",{key:e.value,value:e.value},e.label)))),o&&A().createElement("p",{className:"error-label"},a))}}},1450:(e,t,n)=>{"use strict";n.d(t,{default:()=>p});var r=n(6031),A=n.n(r),s=n(2462),a=n.n(s),o=n(2015),i=n.n(o),l=n(8466),c=n.n(l),u=n(5301);const d=["value","onChange","id","multi"];class p extends i().Component{constructor(e){super(e),this.state={options:[],shouldUseId:!!e.hasOwnProperty("shouldUseId")&&e.shouldUseId},this.handleChange=this.handleChange.bind(this),this.setOptions=this.setOptions.bind(this),this.abortController=new AbortController}componentDidMount(){(0,u.getLanguageList)(this.setOptions,this.abortController.signal).catch((e=>{console.log("Error get languages: ",e),this.setOptions({options:[]})}))}componentWillUnmount(){this.abortController.abort()}setOptions(e){let t=this.state.shouldUseId?e.map((e=>({label:e.name,value:e.id}))):e.map((e=>({label:e.name,value:e.iso_code})));this.setState({options:t})}handleChange(e){let t=null;t=this.props.hasOwnProperty("multi")?e.map((e=>e.value)):e.value;let n={target:{id:this.props.id,value:t,type:"laguageinput"}};this.props.onChange(n)}render(){let e=this.props,{value:t,onChange:n,id:r,multi:s}=e,o=a()(e,d),{options:l}=this.state,u=this.props.hasOwnProperty("multi"),p=null;return p=u?l.filter((e=>t.includes(e.value))):t instanceof Object||null==t?t:l.find((e=>e.value==t)),i().createElement(c(),A()({className:"dropdown",onChange:this.handleChange,options:l,value:p,isMulti:u},o))}}},1134:(e,t,n)=>{"use strict";n.d(t,{default:()=>p});var r=n(6031),A=n.n(r),s=n(2462),a=n.n(s),o=n(2015),i=n.n(o),l=n(2113),c=n.n(l),u=n(5301);const d=["value","error","onChange","id","multi"];class p extends i().Component{constructor(e){super(e),this.state={value:e.value},this.handleChange=this.handleChange.bind(this),this.getMembers=this.getMembers.bind(this),this.getOptionValue=this.getOptionValue.bind(this),this.getOptionLabel=this.getOptionLabel.bind(this)}getOptionValue(e){return this.props.hasOwnProperty("getOptionValue")?this.props.getOptionValue(e):e.id}getOptionLabel(e){return this.props.hasOwnProperty("getOptionLabel")?this.props.getOptionLabel(e):`${e.first_name} ${e.last_name} (${e.id})`}handleChange(e){let t={target:{id:this.props.id,value:e,type:"memberinput"}};this.props.onChange(t)}getMembers(e,t){if(!e)return Promise.resolve({options:[]});(0,u.queryMembers)(e,t)}render(){let e=this.props,{value:t,error:n,onChange:r,id:s,multi:o}=e,l=a()(e,d),u=this.props.hasOwnProperty("multi"),p=this.props.hasOwnProperty("error")&&""!=n;return i().createElement("div",null,i().createElement(c(),A()({value:t,onChange:this.handleChange,loadOptions:this.getMembers,getOptionValue:e=>this.getOptionValue(e),getOptionLabel:e=>this.getOptionLabel(e),isMulti:u},l)),p&&i().createElement("p",{className:"error-label"},n))}}},1916:(e,t,n)=>{"use strict";n.d(t,{default:()=>C});var r=n(6031),A=n.n(r),s=n(1116),a=n.n(s),o=n(2462),i=n.n(o),l=n(2015),c=n.n(l),u=n(8466),d=n.n(u);const p=["error","label","value","onChange","id","multi","isMulti","className","isDisabled","isClearable","options","selectStyles","customStyle"];function h(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function m(e){for(var t=1;t{let{error:t,label:n,value:r,onChange:s,id:a,multi:o,isMulti:u,className:h,isDisabled:g,isClearable:C,options:v,selectStyles:f,customStyle:E}=e,y=i()(e,p);const[b,w]=(0,l.useState)(r?Array.isArray(r)?{value:"between",label:"Between"}:v.find((e=>e.value===r.replace(/\d/g,""))):{value:null,label:""}),[O,S]=(0,l.useState)(r?Array.isArray(r)?r[0]:r.replace(/\D/g,""):""),[k,Q]=(0,l.useState)(Array.isArray(r)?r[1]:""),[I,B]=(0,l.useState)(m({control:(e,t)=>m(m({},e),{},{width:175})},f)),[D,P]=(0,l.useState)(t);(0,l.useEffect)((()=>{P(t)}),[t]);const H=e=>{const t=e.target.value.replace(/\D/g,"");if("between"===b.value){"operator-input"===e.target.id?S(t):Q(t);let n={target:{id:a,value:"operator-input"===e.target.id?[t,k]:[O,t],type:"operatorinput",operator:b.value}};s(n)}else{S(t);let e={target:{id:a,value:t,type:"operatorinput",operator:b.value}};s(e)}};let N=h;return c().createElement("div",{className:h,style:E||{display:"flex",justifyContent:"space-between",alignItems:"baseline"}},c().createElement("label",null,n),c().createElement(d(),A()({className:N,value:b,options:v,onChange:e=>{Q(""),w({value:e.value,label:e.label});let t={target:{id:a,value:"between"===e.value?[O,k]:O,type:"operatorinput",operator:e.value}};s(t)},isClearable:C,isDisabled:g,styles:I},y)),c().createElement("input",A()({id:"operator-input",value:O,onChange:H,className:"form-control",disabled:g,style:{width:"auto"}},y)),"between"===b.value&&c().createElement(c().Fragment,null,c().createElement("span",null,"And"),c().createElement("input",A()({id:"operator-input-between",value:k,onChange:H,className:"form-control",disabled:g,style:{width:"auto"}},y))),D&&c().createElement("p",{className:"error-label"},t))},C=g;g.defaultProps={options:[{value:">",label:"Greater than"},{value:"<",label:"Less than"},{value:">=",label:"Greater or Equal"},{value:"<=",label:"Less or Equal"},{value:"==",label:"Equal"},{value:"between",label:"Between"}]}},1287:(e,t,n)=>{"use strict";n.d(t,{default:()=>m});var r=n(6031),A=n.n(r),s=n(2462),a=n.n(s),o=n(2015),i=n.n(o),l=n(2113),c=n.n(l),u=n(2934),d=n.n(u),p=n(5301);const h=["error","value","id","onChange"];class m extends i().Component{constructor(e){super(e),this.handleChange=this.handleChange.bind(this),this.handleNew=this.handleNew.bind(this),this.getOrganizations=this.getOrganizations.bind(this)}handleChange(e){let t={target:{id:this.props.id,value:{id:e.value,name:e.label},type:"organizationinput"}};this.props.onChange(t)}handleNew(e){this.props.onCreate(e,(e=>{this.handleChange({value:e.id,label:e.name})}))}getOrganizations(e,t){if(!e)return Promise.resolve({options:[]});(0,p.queryOrganizations)(e,(e=>{let n=e.map((e=>({value:e.id.toString(),label:e.name})));t(n)}))}render(){let e=this.props,{error:t,value:n,id:r,onChange:s}=e,o=a()(e,h),l=this.props.hasOwnProperty("error")&&""!=t,u=this.props.hasOwnProperty("allowCreate"),p=n?{value:n.id.toString(),label:n.name}:null;const m=u?d():c();return i().createElement("div",null,i().createElement(m,A()({value:p,onChange:this.handleChange,loadOptions:this.getOrganizations,onCreateOption:this.handleNew},o)),l&&i().createElement("p",{className:"error-label"},t))}}},6442:(e,t,n)=>{"use strict";n.d(t,{default:()=>g});var r=n(6031),A=n.n(r),s=n(2462),a=n.n(s),o=n(2015),i=n.n(o),l=n(9825),c=n.n(l),u=n(2113),d=n.n(u),p=n(5301);const h=["summitId","error","value","onChange","id","multi","perPage","extraFilters"],m=e=>{let{summitId:t,error:n,value:r,onChange:s,id:o,multi:l,perPage:c,extraFilters:u}=e,m=a()(e,h);const g=!(!n||""===n),C=l||m.isMulti;let v=null;return C&&r.length>0?v=r.map((e=>({value:e.id.toString(),label:e.code}))):!C&&r&&(v={value:r.id.toString(),label:r.code}),i().createElement("div",null,i().createElement(d(),A()({value:v,onChange:e=>{let t=null;const n=l||m.isMulti;e&&(t=n?e.map((e=>({id:e.value,code:e.label}))):{id:e.value,code:e.label}),s({target:{id:o,value:t,type:"promocodeinput"}})},loadOptions:(e,n)=>{if(!e)return Promise.resolve({options:[]});(0,p.queryPromocodes)(t,e,(e=>{let t=e.map((e=>({value:e.id.toString(),label:e.code})));n(t)}),c,u)},isMulti:C},m)),g&&i().createElement("p",{className:"error-label"},n))};m.propTypes={perPage:c().number,extraFilters:c().array},m.defaultProps={perPage:p.DEFAULT_PAGE_SIZE,extraFilters:[]};const g=m},5639:(e,t,n)=>{"use strict";n.d(t,{default:()=>u});var r=n(2462),A=n.n(r),s=n(2015),a=n.n(s),o=n(5028),i=n(9825),l=n.n(i);n(1536);const c=["onChange","value","className","error","ariaLabelledBy","disabled","options","id","name"];class u extends a().Component{constructor(e){super(e),this.state={value:e.value},this.handleChange=this.handleChange.bind(this)}handleChange(e){let t={target:{id:this.props.id,value:e.target.value,type:"radio"}};this.props.onChange(t)}getLabel(e,t,n,r){return n?a().createElement("label",{className:"form-check-label",htmlFor:`radio_${t}_${e.value}`,style:{display:"inline-block"}},a().createElement(o.default,null,e.label)):r?a().createElement("label",{className:"form-check-label",htmlFor:`radio_${t}_${e.value}`},e.label):a().createElement("label",{className:"form-check-label",htmlFor:`radio_${t}_${e.value}`,style:{display:"inline-block"}},a().createElement("h4",{style:{marginTop:"0px"}},e.label),a().createElement(o.default,null,e.description))}render(){let e,t=this.props,{onChange:n,value:r,className:s,error:o,ariaLabelledBy:i,disabled:l,options:u,id:d,name:p}=t,h=(A()(t,c),this.props.hasOwnProperty("error")&&""!=o),m=this.props.hasOwnProperty("inline"),g=this.props.hasOwnProperty("simple"),C=this.props.hasOwnProperty("disabled")&&1==l;return e=m?{paddingLeft:"22px",marginLeft:"20px",float:"left"}:{paddingLeft:"22px"},a().createElement("div",{id:`rl_wrapper_${d}`,"aria-labelledby":i},u.map((t=>{let n=t.value==r;return a().createElement("div",{className:"form-check abc-radio",key:`radio_key_${d}_${t.value}`,style:e},a().createElement("input",{className:"form-check-input",type:"radio",id:`radio_${d}_${t.value}`,value:t.value,checked:n,onChange:this.handleChange,disabled:C,name:p||`radio_${d}`}),this.getLabel(t,d,m,g))})),h&&a().createElement("p",{className:"error-label"},o))}}u.defaultProps={ariaLabelledBy:null},u.propTypes={id:l().string.isRequired}},6403:(e,t,n)=>{"use strict";n.d(t,{default:()=>f});var r=n(6031),A=n.n(r),s=n(2462),a=n.n(s),o=n(2015),i=n.n(o),l=n(9825),c=n.n(l),u=n(2934),d=n.n(u),p=n(5301),h=n(7825),m=n.n(h);const g=["error","onChange","id","disabled","className","summitId","onError","value","placeholder","tabSelectsValue","selectStyles","createLabel","options2Show"],C={value:null,label:""},v=e=>{let{error:t,onChange:n,id:r,disabled:s,className:o,summitId:l,onError:c,value:u,placeholder:h,tabSelectsValue:v,selectStyles:f,createLabel:E,options2Show:y}=e,b=a()(e,g);const w=e=>{e||(e=C);const t={id:e.value,name:e.label};n({target:{id:r,value:t,type:"registration_company_input"}})},O=`${o}_prefix`;let S=null;return u&&!(e=>m().isEqual(e,{id:null,name:""}))(u)&&(S={value:u.id,label:u.name}),i().createElement("div",{style:{position:"relative"}},i().createElement(d(),A()({value:S,inputId:r,tabSelectsValue:v,placeholder:h,onChange:w,loadOptions:(e,t)=>{(0,p.queryRegistrationCompanies)(l,e,(e=>{e instanceof Error&&c(e),0===e.length&&t([]);let n=[...e.map((e=>({value:e.id.toString(),label:e.name})))];t(n)}),y)},className:o,classNamePrefix:O,styles:f,onCreateOption:e=>{w({value:0,label:e})},formatCreateLabel:e=>`${E} "${e}"`,isDisabled:s},b)),t&&i().createElement("p",{className:"error-label"},t))},f=v;v.defaultProps={placeholder:"Select a company",disabled:!1,tabSelectsValue:!1,createLabel:"Select ",className:"registration_company_dll",options2Show:20},v.propTypes={onError:c().func.isRequired,placeholder:c().string,options2Show:c().number}},3007:(e,t,n)=>{"use strict";n.d(t,{default:()=>h});var r=n(6031),A=n.n(r),s=n(2462),a=n.n(s),o=n(2015),i=n.n(o),l=n(2113),c=n.n(l);const u=require("react-select/lib/components");var d=n(5301);const p=["value","onChange","history","summitId","error","id","multi"];class h extends i().Component{constructor(e){super(e),this.handleChange=this.handleChange.bind(this),this.getSpeakers=this.getSpeakers.bind(this),this.handleClick=this.handleClick.bind(this),this.getOptionValue=this.getOptionValue.bind(this),this.getOptionLabel=this.getOptionLabel.bind(this)}handleChange(e){let t={target:{id:this.props.id,value:e,type:"speakerinput"}};this.props.onChange(t)}handleClick(e){let{history:t}=this.props;t.push(`/app/speakers/${e}`)}getSpeakers(e,t){if(!e)return Promise.resolve({options:[]});let n=this.props.hasOwnProperty("summitId")?this.props.summitId:null;(0,d.querySpeakers)(n,e,t)}getOptionValue(e){return this.props.hasOwnProperty("getOptionValue")?this.props.getOptionValue(e):e.id}getOptionLabel(e){return this.props.hasOwnProperty("getOptionLabel")?this.props.getOptionLabel(e):`${e.first_name} ${e.last_name} (${e.id})`}render(){let e=this.props,{value:t,onChange:n,history:r,summitId:s,error:o,id:l,multi:d}=e,h=a()(e,p),m=this.props.hasOwnProperty("error")&&""!=o,g=this.props.hasOwnProperty("multi");return i().createElement("div",null,i().createElement(c(),A()({value:t,onChange:this.handleChange,loadOptions:this.getSpeakers,components:{MultiValueLabel:e=>i().createElement("a",{onClick:()=>this.handleClick(e.data.id),style:{cursor:"pointer"}},i().createElement(u.components.MultiValueLabel,e))},getOptionValue:e=>this.getOptionValue(e),getOptionLabel:e=>this.getOptionLabel(e),isMulti:g},h)),m&&i().createElement("p",{className:"error-label"},o))}}},9094:(e,t,n)=>{"use strict";n.d(t,{default:()=>p});var r=n(6031),A=n.n(r),s=n(2462),a=n.n(s),o=n(2015),i=n.n(o),l=n(2113),c=n.n(l),u=n(5301);const d=["id","summitId","value","error","multi","onChange","queryFunction"],p=e=>{let{id:t,summitId:n,value:r,error:s,multi:o,onChange:l,queryFunction:p}=e,h=a()(e,d);const m=p||u.querySponsors,g=""!==s;return i().createElement("div",null,i().createElement(c(),A()({value:r,getOptionValue:e=>e.id,getOptionLabel:e=>{var t,n;return`${e.company.name} (${null===(t=e.sponsorship)||void 0===t||null===(n=t.type)||void 0===n?void 0:n.name})`},onChange:e=>{l({target:{id:t,value:e,type:"sponsorinput"}})},loadOptions:(e,t)=>{m(n,e,(e=>{let n=e.filter((e=>e.company));t(n)}))},isMulti:o},h)),g&&i().createElement("p",{className:"error-label"},s))}},8943:(e,t,n)=>{"use strict";n.d(t,{default:()=>p});var r=n(6031),A=n.n(r),s=n(2462),a=n.n(s),o=n(2015),i=n.n(o),l=n(2113),c=n.n(l),u=n(5301);const d=["value","error","onChange","id","multi"];class p extends i().Component{constructor(e){super(e),this.handleChange=this.handleChange.bind(this),this.getSponsoredProjects=this.getSponsoredProjects.bind(this)}handleChange(e){let t={target:{id:this.props.id,value:e,type:"sponsoredprojectinput"}};this.props.onChange(t)}getSponsoredProjects(e,t){if(!e)return Promise.resolve({options:[]});(0,u.querySponsoredProjects)(e,t)}render(){let e=this.props,{value:t,error:n,onChange:r,id:s,multi:o}=e,l=a()(e,d),u=this.props.hasOwnProperty("multi"),p=this.props.hasOwnProperty("clearable"),h=this.props.hasOwnProperty("error")&&""!=n;return i().createElement("div",null,i().createElement(c(),A()({value:t,onChange:this.handleChange,loadOptions:this.getSponsoredProjects,getOptionValue:e=>e.id,getOptionLabel:e=>`${e.name} (${e.id})`,isMulti:u,isClearable:p},l)),h&&i().createElement("p",{className:"error-label"},n))}}},4573:(e,t,n)=>{"use strict";n.d(t,{default:()=>d});var r=n(6031),A=n.n(r),s=n(2462),a=n.n(s),o=n(2015),i=n.n(o);const l="tDZTa8dy9OMVyGAtxNOS",c="VoBl8JcsRZelj8EKGKtC",u=["value","options","onChange"],d=e=>{let{value:t,options:n,onChange:r}=e,s=a()(e,u);const o=n.findIndex((e=>e.value===t)),d=n.find((e=>e.value===t)).label;return i().createElement("div",A()({className:l},s),i().createElement("button",{className:"btn btn-default",onClick:()=>(()=>{o>0&&r(n[o-1].value)})(),disabled:0===o,title:"Decrement"},i().createElement("i",{className:"fa fa-minus"})),i().createElement("span",{className:c},d),i().createElement("button",{className:"btn btn-default",onClick:()=>(()=>{o{"use strict";n.d(t,{default:()=>o});var r=n(2015),A=n.n(r),s=n(8466),a=n.n(s);const o=({days:e,currentValue:t,placeholder:n,onDayChanged:r})=>{const s=e.find((e=>e.value===t))||null;return A().createElement(a(),{placeholder:n,className:"day-selector",name:"form-field-name",value:s,onChange:e=>{r((null==e?void 0:e.value)||null)},options:e})}},3535:(e,t,n)=>{"use strict";n.d(t,{default:()=>p});var r=n(6031),A=n.n(r),s=n(2462),a=n.n(s),o=n(2015),i=n.n(o),l=n(2113),c=n.n(l),u=n(5301);const d=["value","error","onChange","id","multi"];class p extends i().Component{constructor(e){super(e),this.state={value:e.value},this.handleChange=this.handleChange.bind(this),this.getSummits=this.getSummits.bind(this)}handleChange(e){let t={target:{id:this.props.id,value:e,type:"summitinput"}};this.props.onChange(t)}getSummits(e,t){if(!e)return Promise.resolve({options:[]});(0,u.querySummits)(e,t)}render(){let e=this.props,{value:t,error:n,onChange:r,id:s,multi:o}=e,l=a()(e,d),u=this.props.hasOwnProperty("multi"),p=this.props.hasOwnProperty("error")&&""!=n;return i().createElement("div",null,i().createElement(c(),A()({value:t,onChange:this.handleChange,loadOptions:this.getSummits,getOptionValue:e=>e.id,getOptionLabel:e=>`${e.name} (${e.id})`,isMulti:u},l)),p&&i().createElement("p",{className:"error-label"},n))}}},864:(e,t,n)=>{"use strict";n.d(t,{default:()=>d});var r=n(6031),A=n.n(r),s=n(2462),a=n.n(s),o=n(2015),i=n.n(o),l=n(8466),c=n.n(l);const u=["venues","currentValue","placeholder","onVenueChanged"],d=e=>{let{venues:t,currentValue:n,placeholder:r,onVenueChanged:s}=e,o=a()(e,u);const l=t.find((e=>e.value.id===(null==n?void 0:n.id)))||null;return i().createElement(c(),A()({placeholder:r,className:"venues-selector",name:"form-field-name",value:l,onChange:e=>{s((null==e?void 0:e.value)||null)},options:t,optionRenderer:e=>{let t=e.value;return"SummitVenue"===t.class_name?i().createElement("span",{className:"location-option-venue"},t.name):i().createElement("span",{className:"location-option-room"},"- ",t.name)}},o))}},7668:(e,t,n)=>{"use strict";n.d(t,{default:()=>v});var r=n(6031),A=n.n(r),s=n(2462),a=n.n(s),o=n(2015),i=n.n(o),l=n(9825),c=n.n(l),u=n(2113),d=n.n(u),p=n(2934),h=n.n(p),m=n(5301),g=n(9558);const C=["className","error","allowCreate"];class v extends i().Component{constructor(e){super(e),this.state={tagValue:e.value.map((e=>({tag:e.tag,id:e.id})))},this.handleChange=this.handleChange.bind(this),this.handleNew=this.handleNew.bind(this),this.getTags=this.getTags.bind(this)}componentDidUpdate(e,t,n){if(!(0,g.shallowEqual)(this.props.value,e.value)){let e=this.props.value.map((e=>({tag:e.tag,id:e.id})));this.setState({tagValue:e})}}handleNew(e){const t={tag:e};this.props.onCreate(e,this.setState({value:[...this.state.tagValue,t]}))}handleChange(e){let t={target:{id:this.props.id,value:e,type:"taginput"}};this.props.onChange(t)}getTags(e,t){if(!e)return Promise.resolve({options:[]});let n=this.props.hasOwnProperty("summitId")?this.props.summitId:null;(0,m.queryTags)(n,e,(e=>{n&&(e=e.map((e=>e.tag))),t(e)}))}render(){let e=this.props,{className:t,error:n,allowCreate:r}=e,s=a()(e,C),{tagValue:o}=this.state,l=this.props.hasOwnProperty("error")&&""!=n,c=o.sort(((e,t)=>e.tag.toLowerCase()>t.tag.toLowerCase()?1:e.tag.toLowerCase()e.__isNew__?e.label:e.tag,getOptionValue:e=>e.__isNew__?e.value:e.tag})),l&&i().createElement("p",{className:"error-label"},n))}}v.propTypes={allowCreate:c().bool,className:c().string,summitId:c().number,id:c().string.isRequired,value:c().array,onCreate:c().func,onChange:c().func.isRequired},v.defaultProps={allowCreate:!1}},7651:(e,t,n)=>{"use strict";n.d(t,{default:()=>c});var r=n(6031),A=n.n(r),s=n(2462),a=n.n(s),o=n(2015),i=n.n(o);const l=["onChange","value","className","error","ariaLabelledBy","containerClassName"];class c extends i().Component{constructor(e){super(e),this.handleChange=this.handleChange.bind(this)}componentDidUpdate(e,t,n){this.props.value!==e.value&&(this.input.value=this.props.value)}handleChange(e){this.props.onChange(e)}render(){let e=this.props,{onChange:t,value:n,className:r,error:s,ariaLabelledBy:o,containerClassName:c}=e,u=a()(e,l),d=this.props.hasOwnProperty("error")&&""!==s,p=this.props.hasOwnProperty("className")?r:"form-control",h=this.props.hasOwnProperty("containerClassName")?c:"container-form-control";return i().createElement("div",{className:h},i().createElement("input",A()({className:`${p} ${d?"error":""}`,ref:e=>{this.input=e},defaultValue:n,"aria-labelledby":o,onChange:this.handleChange},u)),d&&i().createElement("p",{className:"error-label"},s))}}c.defaultProps={ariaLabelledBy:null}},9994:(e,t,n)=>{"use strict";n.d(t,{default:()=>u});var r=n(6031),A=n.n(r),s=n(2462),a=n.n(s),o=n(2015),i=n.n(o);const l=["onChange","value","className","error","maxLength"],c=e=>{let{onChange:t,value:n,className:r,error:s,maxLength:o}=e,c=a()(e,l);const u=s&&""!==s,d=r||"form-control",p=Math.max(o-n.length,0);return i().createElement("div",null,i().createElement("textarea",A()({className:d+" "+(u?"error":""),value:n,onChange:e=>{var r,A;const s=!!((null==n?void 0:n.length)-(null===(r=e.target)||void 0===r||null===(A=r.value)||void 0===A?void 0:A.length));o&&!s||t(e),p&&t(e)},maxLength:o},c)),!!o&&i().createElement("p",null,i().createElement("i",null,"characters left: ",p)),u&&i().createElement("p",{className:"error-label"},s))};c.defaultProps={value:""};const u=c},4784:(e,t,n)=>{"use strict";n.d(t,{default:()=>g});var r=n(6031),A=n.n(r),s=n(2462),a=n.n(s),o=n(2015),i=n.n(o),l=n(2113),c=n.n(l),u=n(5301),d=n(9825),p=n.n(d);const h=["value","error","onChange","id","multi","optionsLimit"];class m extends i().Component{constructor(e){super(e),this.state={value:e.value},this.handleChange=this.handleChange.bind(this),this.getTicketTypes=this.getTicketTypes.bind(this),this.getOptionValue=this.getOptionValue.bind(this),this.getOptionLabel=this.getOptionLabel.bind(this)}getOptionValue(e){return this.props.hasOwnProperty("getOptionValue")?this.props.getOptionValue(e):e.id}getOptionLabel(e){return this.props.hasOwnProperty("getOptionLabel")?this.props.getOptionLabel(e):`${e.name}`}handleChange(e){let t={target:{id:this.props.id,value:e,type:"tickettypeinput"}};this.props.onChange(t)}getTicketTypes(e,t){let{summitId:n,version:r,optionsLimit:A}=this.props,s={name:e};this.props.hasOwnProperty("audience")&&(s.audience=this.props.audience),(0,u.queryTicketTypes)(n,s,t,r,A)}render(){let e=this.props,{value:t,error:n,onChange:r,id:s,multi:o,optionsLimit:l}=e,u=a()(e,h),d=this.props.hasOwnProperty("multi"),p=this.props.hasOwnProperty("error")&&""!=n;return i().createElement("div",null,i().createElement(c(),A()({value:t,onChange:this.handleChange,loadOptions:this.getTicketTypes,getOptionValue:e=>this.getOptionValue(e),getOptionLabel:e=>this.getOptionLabel(e),isMulti:d},u)),p&&i().createElement("p",{className:"error-label"},n))}}m.defaultProps={version:"v1"},m.propTypes={audience:p().string,version:p().string};const g=m},709:(e,t,n)=>{"use strict";n.d(t,{default:()=>u});var r=n(1116),A=n.n(r),s=n(2015),a=n.n(s),o=n(8418),i=n(1788),l=n(6220);function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}class u extends a().Component{constructor(e){super(e),A()(this,"getDefaultAllowedExtensions",(()=>{var e;const{mediaType:t}=this.props;return t&&t.type?null==t||null===(e=t.type)||void 0===e?void 0:e.allowed_extensions.map((e=>`.${e.toLowerCase()}`)).join(","):""})),A()(this,"getDefaultMaxSize",(()=>{const{mediaType:e}=this.props;return e?(null==e?void 0:e.max_size)/1024:100})),A()(this,"getDropzone",(()=>{const{value:e,onRemove:t,canAdd:n=!0,mediaType:r,postUrl:s,maxFiles:i=1,timeOut:l,onUploadComplete:u,djsConfig:d,id:p,parallelChunkUploads:h=!1,maxConcurrentChunks:m=6,onError:g=()=>{},getAllowedExtensions:C=null,getMaxSize:v=null}=this.props,f=C?C():this.getDefaultAllowedExtensions(),E=v?v():this.getDefaultMaxSize(),y=!i||e.length0&&a().createElement("ul",{className:"upload-input-v2-preview-container"},e.map(((e,r)=>{let A=(null==e?void 0:e.private_url)||(null==e?void 0:e.public_url);"#"===A&&(A=null==e?void 0:e.public_url);let s=e.filename,o=A?A.replace("?dl=0","?raw=1"):s,c=s.split(".").pop(),u=s.replace(`.${c}`,"");return u.length>20&&(u=u.substring(0,20)),a().createElement("li",{key:`uploaded-${r}`},a().createElement("span",{className:"file-preview"},a().createElement("a",{href:A,target:"_blank",title:"See Preview"},a().createElement(l.default,{alt:e.filename,src:o,placeholderSrc:i}))),a().createElement("span",{className:"file-name"},a().createElement("a",{href:A,target:"_blank",title:"See Preview"},`${u}.${c}`)),n&&t&&a().createElement("span",{className:"file-delete"},a().createElement("a",{href:"#","data-tip":"delete",title:"Delete File",onClick:t=>n(e)},a().createElement("i",{className:"fa fa-trash-o delete-icon"}))))})))))}}},5716:(e,t,n)=>{"use strict";n.d(t,{default:()=>E});var r=n(1116),A=n.n(r),s=n(2015),a=n.n(s);const o=require("@mui/material"),i=require("@mui/icons-material");var l=n(6031),c=n.n(l),u=n(2462),d=n.n(u),p=n(8418);const h=["onAddedFile","onUploadProgress","onFileRemoved","onFileCompleted","onFileError","onDropzoneReady","eventHandlers","children"];function m(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function g(e){for(var t=1;t{let{onAddedFile:t,onUploadProgress:n,onFileRemoved:r,onFileCompleted:A,onFileError:s,onDropzoneReady:o,eventHandlers:i={},children:l}=e,u=d()(e,h);const m=g(g({},i),{},{init:e=>{o&&o(e),i.init&&i.init(e)},addedfile:e=>{t&&t(e),i.addedfile&&i.addedfile(e)},removedfile:e=>{r&&r(e),i.removedfile&&i.removedfile(e)},uploadprogress:(e,t,r)=>{n&&n(e,e.size>0?r/e.size*100:0),i.uploadprogress&&i.uploadprogress(e,t,r)},success:e=>{A&&A(e),i.success&&i.success(e)},error:(e,t)=>{s&&s(e,t),i.error&&i.error(e,t)}});return a().createElement(p.j,c()({},u,{eventHandlers:m}),l)};function v(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function f(e){for(var t=1;t{},getAllowedExtensions:E=null,getMaxSize:y=null,error:b,label:w,helpText:O})=>{const S=(0,s.useRef)(null),[k,Q]=(0,s.useState)([]),[I,B]=(0,s.useState)([]),D=(0,s.useCallback)((()=>{var e;return A&&A.type?null==A||null===(e=A.type)||void 0===e?void 0:e.allowed_extensions.map((e=>`.${e.toLowerCase()}`)).join(","):""}),[A]),P=(0,s.useCallback)((()=>A?(null==A?void 0:A.max_size)/1048576:100),[A]),H=(0,s.useMemo)((()=>E?E():D()),[E,D]),N=(0,s.useMemo)((()=>y?y():P()),[y,P]),x=(0,s.useMemo)((()=>!c||e.lengthx&&0===k.length&&0===I.length),[x,k.length,I.length]),R=(0,s.useMemo)((()=>t?{removedfile:t}:{}),[t]),L=(0,s.useMemo)((()=>f({paramName:"file",maxFilesize:N,timeout:u||6e5,chunking:!0,retryChunks:!0,parallelChunkUploads:m,addRemoveLinks:!0,maxFiles:c,acceptedFiles:H,dictDefaultMessage:""},p)),[N,u,m,c,H,p]),U=(0,s.useMemo)((()=>({showFiletypeIcon:!1,postUrl:l})),[l]),j=(0,s.useMemo)((()=>({media_type:A,media_upload:e})),[A,e]),z=(0,s.useCallback)((e=>e?e>=1048576?`${Math.round(e/1048576)} MB`:`${Math.round(e/1024)} KB`:"0 KB"),[]),M=(0,s.useCallback)((()=>{if(!H)return"";const e=H.split(",").map((e=>e.trim().replace(".","").toUpperCase())).filter(Boolean);return 0===e.length?"":1===e.length?e[0]:`${e.slice(0,-1).join(", ")} or ${e[e.length-1]}`}),[H]),F=(0,s.useCallback)((e=>n=>{n.preventDefault(),t(e)}),[t]),q=(0,s.useCallback)((e=>{S.current=e}),[]),K=(0,s.useCallback)((e=>{Q((t=>[...t,{name:e.name,size:e.size,progress:0,complete:!1}]))}),[]),V=(0,s.useCallback)(((e,t)=>{Q((n=>n.map((n=>n.name===e.name&&n.size===e.size?f(f({},n),{},{progress:t}):n))))}),[]),G=(0,s.useCallback)((e=>{Q((t=>t.filter((t=>!(t.name===e.name&&t.size===e.size)))))}),[]),X=(0,s.useCallback)((e=>{Q((t=>t.map((t=>t.name===e.name&&t.size===e.size?f(f({},t),{},{progress:100,complete:!0}):t))))}),[]);(0,s.useEffect)((()=>{0!==k.length&&0!==e.length&&Q((t=>t.filter((t=>!t.complete||!e.some((e=>e.filename===t.name))))))}),[e]);const J=(0,s.useCallback)(((e,t)=>{Q((t=>t.filter((t=>!(t.name===e.name&&t.size===e.size))))),B((n=>[...n,{name:e.name,size:e.size,message:t}]))}),[]),_=(0,s.useCallback)((e=>{if(S.current){var t;const n=null===(t=S.current.files)||void 0===t?void 0:t.find((t=>t.name===e.name&&t.size===e.size));n&&S.current.removeFile(n)}B((t=>t.filter((t=>!(t.name===e.name&&t.size===e.size)))))}),[]),Y=(0,s.useCallback)((e=>{if(S.current){var t;const n=null===(t=S.current.files)||void 0===t?void 0:t.find((t=>t.name===e.name&&t.size===e.size));n&&S.current.removeFile(n)}Q((t=>t.filter((t=>!(t.name===e.name&&t.size===e.size)))))}),[]),W=(0,s.useCallback)(((e,t,n)=>{d&&d(e,t,n)}),[d]),Z=M(),$={display:"flex",alignItems:"center",py:1.5,mb:1};return a().createElement(o.Box,{className:"upload-input-v3"},w&&a().createElement(o.Typography,{variant:"subtitle1",fontWeight:600,gutterBottom:!0},w),O&&a().createElement(o.Typography,{variant:"body2",color:"text.secondary",gutterBottom:!0,sx:{mb:2}},O),x&&a().createElement(o.Box,{sx:{mb:2,display:T?"block":"none"}},(()=>l?n?a().createElement(C,{id:h,djsConfig:L,config:U,eventHandlers:R,data:j,uploadCount:e.length,onUploadComplete:W,onError:v,onDropzoneReady:q,onAddedFile:K,onUploadProgress:V,onFileRemoved:G,onFileCompleted:X,onFileError:J,maxConcurrentChunks:g},a().createElement(o.Box,{className:"dz-custom-content"},a().createElement(i.UploadFile,{className:"dz-custom-icon"}),a().createElement(o.Typography,{variant:"body2",className:"dz-custom-message"},a().createElement("span",{className:"dz-click-text"},"Click to upload")," or drag and drop"),(Z||N)&&a().createElement(o.Typography,{variant:"caption",className:"dz-custom-hint"},Z?`${Z} files`:"",N?` (max. ${N}MB)`:""))):a().createElement(o.Alert,{severity:"warning",sx:{borderRadius:2}},"Upload has been disabled by administrators."):a().createElement(o.Alert,{severity:"error",sx:{borderRadius:2}},"No Post URL"))()),b&&a().createElement(o.Alert,{severity:"error",sx:{mb:2,borderRadius:2}},b),k.length>0&&a().createElement(o.Box,{sx:{mt:2}},k.map(((e,t)=>a().createElement(o.Box,{key:`uploading-${t}`,sx:$},a().createElement(o.Box,{sx:{color:"primary.main",display:"flex",alignItems:"center",mr:2,minWidth:32}},a().createElement(i.UploadFile,{fontSize:"medium"})),a().createElement(o.Box,{sx:{flex:1,minWidth:0}},a().createElement(o.Typography,{variant:"body2",fontWeight:500,sx:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},e.name),a().createElement(o.Typography,{variant:"caption",color:"text.secondary"},z(e.size)," · ",e.complete?"Complete":"Loading"),!e.complete&&a().createElement(o.LinearProgress,{variant:"determinate",value:e.progress,sx:{mt:.5,borderRadius:1}})),a().createElement(o.Box,{sx:{display:"flex",alignItems:"center",gap:1}},a().createElement(o.IconButton,{size:"small",onClick:()=>Y(e),sx:{color:"text.secondary","&:hover":{color:"error.main"}}},a().createElement(i.Delete,null)),e.complete&&a().createElement(i.CheckCircle,{sx:{color:"success.main",fontSize:28}})))))),I.length>0&&a().createElement(o.Box,{sx:{mt:2}},I.map(((e,t)=>a().createElement(o.Box,{key:`error-${t}`,sx:$},a().createElement(o.Box,{sx:{color:"error.main",display:"flex",alignItems:"center",mr:2,minWidth:32}},a().createElement(i.ErrorOutline,{fontSize:"medium"})),a().createElement(o.Box,{sx:{flex:1,minWidth:0}},a().createElement(o.Typography,{variant:"body2",fontWeight:500,sx:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},e.name),a().createElement(o.Typography,{variant:"caption",color:"error"},e.message)),a().createElement(o.IconButton,{size:"small",onClick:()=>_(e),sx:{color:"error.main"}},a().createElement(i.Close,{fontSize:"small"})))))),e.length>0&&a().createElement(o.Box,{sx:{mt:2}},e.map(((e,n)=>{const A=e.filename,s=z(e.size);return a().createElement(o.Box,{key:`uploaded-${n}`,sx:$},a().createElement(o.Box,{sx:{color:"primary.main",display:"flex",alignItems:"center",mr:2,minWidth:32}},a().createElement(i.UploadFile,{fontSize:"medium"})),a().createElement(o.Box,{sx:{flex:1,minWidth:0}},a().createElement(o.Typography,{variant:"body2",fontWeight:500,sx:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},A),a().createElement(o.Typography,{variant:"caption",color:"text.secondary"},s," · Complete")),a().createElement(o.Box,{sx:{display:"flex",alignItems:"center",gap:1}},t&&r&&a().createElement(o.IconButton,{size:"small",onClick:F(e),sx:{color:"text.secondary","&:hover":{color:"error.main"}}},a().createElement(i.Delete,null)),a().createElement(i.CheckCircle,{sx:{color:"success.main",fontSize:28}})))}))))}},349:(e,t,n)=>{"use strict";n.d(t,{default:()=>w});var r=n(6031),A=n.n(r),s=n(1116),a=n.n(s),o=n(2462),i=n.n(o),l=n(2015),c=n.n(l);const u=require("react-dropzone");var d=n.n(u),p=n(6842),h=n.n(p),m=n(1788),g=n(8810),C=n(2138),v=n(1033),f=n(2644);const E=["value","error","handleRemove","handleUpload","handleError"];function y(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function b(e){for(var t=1;t{let{value:t,error:n,handleRemove:r,handleUpload:s,handleError:a}=e,o=i()(e,E);const[u,p]=(0,l.useState)(!1),[y,w]=(0,l.useState)({preview:null,name:""});(0,l.useEffect)((()=>{const e={preview:null,name:""};if(t){const n=t.split("/").pop();e.preview=((e,t)=>{if(e&&(e=>!!e&&/(.*)\.(gif|bmp|svg|jpe?g|png)/g.test(e))(t))return e;switch(t.split(".").pop()){case"pdf":return g;case"mov":return C;case"mp4":return v;case"csv":return f;default:return m}})(t,n),e.name=n,w(e)}}),[t]);const O=""!==n;return c().createElement("div",{className:"file-upload"},c().createElement(d(),A()({onDrop:(e,t)=>{if(e.length>0){const t=e[0];s(t,b({},o))}t.length>0&&a&&a(t,b({},o))}},o),c().createElement("div",null,h().translate("general.drop_files"))),c().createElement("div",{className:"selected-files-box col-md-6"},c().createElement("p",null,"Selected Files"),c().createElement("div",{className:"selected-files"},t&&c().createElement("div",{className:"file-box",onMouseEnter:()=>{p(!0)},onMouseLeave:()=>{p(!1)}},c().createElement("img",{src:y.preview}),c().createElement("a",{href:t,target:"_blank"},null==y?void 0:y.name),u&&c().createElement("div",{className:"remove",onClick:e=>{e.preventDefault(),r(e,b({},o))}},c().createElement("i",{className:"fa fa-times"}))),O&&c().createElement("p",{className:"error-label"},n))))}},6220:(e,t,n)=>{"use strict";n.d(t,{default:()=>y});var r=n(6031),A=n.n(r),s=n(1116),a=n.n(s),o=n(2462),i=n.n(o),l=n(2015),c=n.n(l);const u="T1PEDYso224efj98hUw9",d="HydBuzzegFMoqMkrptg7",p="Pq0tg32DAJ33TmIQMvMs";var h=n(8810),m=n(2138),g=n(1033),C=n(2644),v=n(1788);const f=["placeholderSrc","src"];function E(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}const y=e=>{let{placeholderSrc:t,src:n}=e,r=i()(e,f);const s=(0,l.useRef)(!1),[o,y]=(0,l.useState)(t||n),[b,w]=(0,l.useState)(u);return(0,l.useEffect)((()=>{const e=new Image,t=n?n.split(".").pop():null;return e.src=n,e.onload=()=>{s.current||(y(n),w(d))},e.onerror=()=>{s.current||(e.onerror=null,t&&t.toString().toLowerCase().includes("pdf")?y(h):t&&t.toString().toLowerCase().includes("mov")?y(m):t&&t.toString().toLowerCase().includes("mp4")?y(g):t&&t.toString().toLowerCase().includes("csv")?y(C):y(v),w(d))},()=>{s.current=!0}}),[n]),c().createElement("img",A()({},function(e){for(var t=1;t{"use strict";n.d(t,{default:()=>c});var r=n(6031),A=n.n(r),s=n(2462),a=n.n(s),o=n(2015),i=n.n(o);const l=["children","replaceNewLine","className"],c=e=>{let{children:t,replaceNewLine:n=!1,className:r=""}=e,s=a()(e,l);return i().createElement("span",A()({className:r,dangerouslySetInnerHTML:{__html:n?null==t?void 0:t.replace(/\n/g,"
"):t}},s))}},6422:(e,t,n)=>{"use strict";n.d(t,{DraggableItemTypes:()=>r,PixelsPerMinute:()=>a,SlotSizeOptions:()=>s,TBALocation:()=>A,bulkOptions:()=>o});const r={UNSCHEDULEEVENT:"UnScheduleEvent",SCHEDULEEVENT:"ScheduleEvent"},A={id:0,name:"TBD",class_name:"SummitVenue"},s=[1,5,10,15,30,60],a=3,o=[{value:"BULK_ACTION_EDIT",label:"Edit"},{value:"BULK_ACTION_UNPUBLISH",label:"Unpublish"}]},827:(e,t,n)=>{"use strict";n.d(t,{default:()=>M});var r=n(2462),A=n.n(r),s=n(2015),a=n.n(s),o=n(1),i=n(864),l=n(4573),c=n(5812),u=n.n(c),d=n(6924),p=n(6422),h=n(1116),m=n.n(h);const g=require("react-bootstrap");var C=n(5028);function v(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function f(e){for(var t=1;t{const[b,w]=(0,d.useDrag)((()=>({type:p.DraggableItemTypes.SCHEDULEEVENT,item:{id:e.id,title:e.title,is_published:e.is_published,start_date:e.start_date,end_date:e.end_date,duration:e.duration},collect:e=>({isDragging:e.isDragging()}),canDrag:c&&!e.static})),[e.id,e.duration,e.start_date,e.end_date]),[O,S]=(0,s.useState)({resizing:!1,type:null,lastYPos:null}),[k,Q]=(0,s.useState)({top:n,height:r}),I=(null==E?void 0:E.includes(e.id))||!1,B=!e.static,D=l&&B&&k.height>15,P=()=>a().createElement(g.Popover,{id:"popover-trigger-focus",title:e.title},a().createElement(C.default,null,e.description)),H=n=>{if(!O.resizing)return;let r=O.lastYPos,s=n.pageY,a=s-r;if(t&&t>0){let e=parseInt(Math.round(Math.abs(a)/t));if(a=Math.sign(a)*e*t,!a)return n.preventDefault(),!1}let l=k.height,c=k.top;"S"===O.type&&(l=k.height+a),"N"===O.type&&(a<0?(c=k.top-Math.abs(a),l=k.height+Math.abs(a)):(c=k.top+Math.abs(a),l=k.height-Math.abs(a))),lu&&(l=u,s=r,c=k.top),c<0&&(c=0,l=k.height,s=r),i(e.id,c,l)&&(S(f(f({},O),{},{resizing:!0,lastYPos:s})),Q({top:c,height:l})),n.preventDefault()},N=e=>{e.preventDefault(),S({type:null,lastYPos:null,resizing:!1})};return(0,s.useEffect)((()=>(O.resizing?(document.addEventListener("mousemove",H,!1),document.addEventListener("mouseup",N,!1)):(document.removeEventListener("mousemove",H,!1),document.removeEventListener("mouseup",N,!1),k.top===n&&k.height===r||u(e.id,k.top,k.height)),()=>{document.removeEventListener("mousemove",H,!1),document.removeEventListener("mouseup",N,!1)})),[O.resizing]),a().createElement("div",{className:`row schedule-event ${D?"is-resizable":""} ${B?"":"is-static"}`,"data-resizable":!0,id:`event_${e.id}`,onMouseDown:e=>{if(!e.target.getAttribute("data-resizable"))return;const t=e.target.getBoundingClientRect();let n;if(e.clientY-t.top<10)n="N";else{if(!(t.bottom-e.clientY<10))return;n="S"}S({resizing:!0,type:n,lastYPos:e.pageY}),e.preventDefault()},ref:w,style:{top:k.top,height:k.height,display:b.isDragging?"none":"block",cursor:"move"}},v&&a().createElement("div",{className:"event-select-wrapper"},a().createElement("input",{className:"select-event-btn",id:`selected_event_${e.id}`,type:"checkbox",checked:I,onChange:()=>v(e)})),a().createElement("div",{className:"col-md-12 event-container"},(()=>{let t=null;return t=e.description?a().createElement(g.OverlayTrigger,{trigger:["hover"],placement:"bottom",overlay:P()},a().createElement("div",{className:"event-content"},a().createElement("span",{className:"event-title withTooltip"},`${e.id} - ${e.title}${e.duration?` - ${e.duration/60} minutes`:""}`))):a().createElement("div",{className:"event-content"},a().createElement("span",{className:"event-title"},`${e.id} - ${e.title}${e.duration?` - ${e.duration/60} minutes`:""}`)),t})()),a().createElement("div",{className:"event-actions"},!e.static&&h&&a().createElement("i",{className:"fa fa-minus-circle event-action-btn","aria-hidden":"true",title:"unpublish event",onClick:()=>h(e)}),m&&a().createElement("i",{className:"fa fa-pencil-square-o event-action-btn",title:"edit event","aria-hidden":"true",onClick:()=>m(e)}),!e.static&&y&&a().createElement("i",{className:"fa fa-arrow-circle-right event-action-btn",title:"move event","aria-hidden":"true",onClick:()=>y(e)})))},y=require("react-dom");var b=n.n(y),w=n(103);const O=({timeLabel:e,id:t})=>a().createElement("div",{id:t,className:"row time-slot"},a().createElement("div",{className:"col-md-12"},a().createElement("span",null,e))),S=e=>{const{currentDay:t,currentSummit:n,events:r,timeSlot:A,pixelsPerMinute:s,interval:o,canDropEvent:i,onDroppedEvent:l}=e,c=`time_slot_container_${A.format("HH_mm")}`,[u,h]=(0,d.useDrop)((()=>({accept:[p.DraggableItemTypes.UNSCHEDULEEVENT,p.DraggableItemTypes.SCHEDULEEVENT],collect:e=>({isOver:e.isOver(),canDrop:e.canDrop()}),canDrop:(e,s)=>{if(i)return i(e,s);return new w.default(e,n).canMove(r,t,A,o)},drop:(e,t,n)=>{l(e,A)}})),[o,A,t]),{isOver:m,canDrop:g}=u;return a().createElement("div",{id:c,ref:h,className:"row time-slot-container",style:(()=>{const e={};return m?(e.backgroundColor=g?"green":"red",e.opacity=.5):g&&(e.backgroundColor="yellow",e.opacity=.5),e})()},a().createElement("div",{className:"col-md-12"},((e,t)=>{let n=[],r=5*t;for(var A=0;A<2;A++)n[A]=a().createElement("div",{key:A,className:"minute-container",style:{position:"relative",width:"100%",height:`${r}px`}});return n})(0,s)))},k=e=>{const t=(0,s.useRef)(),n=(0,s.useRef)(),[r,A]=(0,s.useState)([]),[o,i]=(0,s.useState)(null),l=(0,s.useRef)(null);(0,s.useEffect)((()=>{o&&(t.current.scrollTop=o,i(null))}),[o]),(0,s.useEffect)((()=>{const r=n.current/e.interval;i(t.current.scrollTop*r),v(),n.current=e.interval}),[e.interval,e.startTime,e.endTime]);const c=(t,n)=>{e.onScheduleEvent(t,e.currentDay,n)},d=(t,n,r)=>{const{events:A,currentDay:s,startTime:a,pixelsPerMinute:o,currentSummit:i}=e,{height:l}=m();if(le.id!==t)),d=Math.floor(n/(o*(10/k))),p=Math.floor(r/(o*(10/k)));let h=u().tz(s+" "+a,"YYYY-MM-DD HH:mm",i.time_zone.name);h=h.add(d,"minutes");let g=u().tz(s+" "+a,"YYYY-MM-DD HH:mm",i.time_zone.name);g=g.add(d+p,"minutes");for(const e of c){const t=u()(1e3*e.start_date).tz(i.time_zone.name),n=u()(1e3*e.end_date).tz(i.time_zone.name);if(t.isBefore(g)&&n.isAfter(h))return!1}return!0},p=(t,n,r)=>{const{events:A,currentDay:s,startTime:a,pixelsPerMinute:o,currentSummit:i}=e,l=A.filter((e=>e.id===t)).shift(),c=Math.floor(n/(o*(10/k))),d=Math.floor(r/(o*(10/k)));let p=u().tz(s+" "+a,"YYYY-MM-DD HH:mm",i.time_zone.name);p=p.add(c,"minutes"),e.onScheduleEvent(l,s,u()(p.format("HH:mm"),"HH:mm"),d)},h=()=>m().height,m=()=>b().findDOMNode(l.current).getBoundingClientRect(),g=t=>{const{currentDay:n,startTime:r,pixelsPerMinute:A,currentSummit:s}=e,a=u()(1e3*t.start_date).utc().tz(s.time_zone.name),o=u().tz(n+" "+r,"YYYY-MM-DD HH:mm",s.time_zone.name);return a.diff(o,"minutes")*A*(10/k)},C=t=>{const{pixelsPerMinute:n,currentSummit:r,interval:A}=e,s=u()(1e3*t.start_date).tz(r.time_zone.name);return u()(1e3*t.end_date).tz(r.time_zone.name).diff(s,"minutes")*n*(10/A)},v=()=>{const e=[];let t=!1;const n=u().tz(y,"HH:mm",B.time_zone.name),r=u().tz(w,"HH:mm",B.time_zone.name);let s=n;do{e.push(s),s=s.clone(),s.add(k,"m"),t=s.isAfter(r)}while(!t);A(e)},{events:f,startTime:y,endTime:w,interval:k,pixelsPerMinute:Q,currentDay:I,currentSummit:B,canDropEvent:D,onEditEvent:P,onUnPublishEvent:H,onClickSelected:N,selectedPublishedEvents:x}=e;return a().createElement("div",{className:"row outer-schedule-events-container",ref:t},a().createElement("div",{className:"col-md-2 no-margin no-padding"},r.map(((e,t)=>a().createElement(O,{timeLabel:e.format("HH:mm"),key:t,id:e.format("HH_mm")})))),a().createElement("div",{className:"schedule-events-container col-md-10 no-margin no-padding",ref:l},r.map(((e,t)=>a().createElement(S,{timeSlot:e,canDropEvent:D,onDroppedEvent:c,key:`timeslot-${t}`,events:f,currentSummit:B,interval:k,pixelsPerMinute:Q,currentDay:I}))),f.map(((t,n)=>a().createElement(E,{event:t,selectedPublishedEvents:x,key:`event-${t.id}-${t.last_edited}-${k}`,type:"MAIN",step:5*Q,minHeight:10*Q,initialTop:g(t),initialHeight:C(t),canResize:d,allowResize:e.allowResize,allowDrag:e.allowDrag,onResized:p,maxHeight:h,onUnPublishEvent:H,onEditEvent:P,onClickSelected:N,currentDay:I,onMoveEvent:e.onMoveEvent})))))};var Q=n(9558),I=n(6440);const B=require("@react-pdf/renderer");var D=n(9825),P=n.n(D);function H(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function N(e){for(var t=1;t{const[r,A]=(0,s.useState)(null),o=e.sort(((e,t)=>e.start_date-t.start_date)),i=t.locations.find((e=>"SummitVenue"===e.class_name)),l=(0,Q.epochToMomentTimeZone)(t.start_date,t.time_zone_id).format("MMMM Do YYYY"),c=(0,Q.epochToMomentTimeZone)(t.end_date,t.time_zone_id).format("MMMM Do YYYY");return(0,s.useEffect)((()=>{if(t.logo){(async()=>{const e=await(0,Q.convertSVGtoImg)(t.logo);A(e)})()}}),[t.logo]),r?a().createElement(B.Document,null,a().createElement(B.Page,{size:"A4",style:x.eventList},a().createElement(B.View,{style:x.header},a().createElement(B.View,{style:x.headlineWrapper},a().createElement(B.Image,{src:r.url,style:N(N({},x.logo),{},{width:r.width,height:r.height})}),a().createElement(B.Text,{style:x.headline},"Schedule for ",t.name)),a().createElement(B.View,{style:x.subtitle},a().createElement(B.View,null,a().createElement(B.Text,{style:x.label},"Venue:"),a().createElement(B.Text,null,null==i?void 0:i.name)),a().createElement(B.View,null,a().createElement(B.Text,{style:x.label},"Start:"),a().createElement(B.Text,null,l)),a().createElement(B.View,null,a().createElement(B.Text,{style:x.label},"End:"),a().createElement(B.Text,null,c)))),o.map((e=>{var r,A,s;const o=(0,Q.epochToMomentTimeZone)(e.start_date,t.time_zone_id).format("ddd, MMMM D"),i=(0,Q.epochToMomentTimeZone)(e.start_date,t.time_zone_id).format("h:mma"),l=(0,Q.epochToMomentTimeZone)(e.end_date,t.time_zone_id).format("h:mma"),c=t.locations.filter((e=>"SummitVenue"===e.class_name)),u=(0,Q.getEventLocation)(e,c,t.start_showing_venues_date,n),d=e.eventColor?{borderLeft:`4px solid ${e.eventColor}`}:{};return a().createElement(B.View,{style:N(N({},x.eventWrapper),d),key:`event-${e.id}`,wrap:!1},a().createElement(B.View,{style:x.locationWrapper},a().createElement(B.Text,null,`${o}, ${i} - ${l} | ${u}`)),a().createElement(B.View,{style:x.title},a().createElement(B.Text,null,e.title)),a().createElement(B.View,{style:x.footer},a().createElement(B.View,{style:x.leftCol},e.track&&a().createElement(B.View,{style:x.trackWrapper},a().createElement(B.Text,null,null===(r=e.track)||void 0===r?void 0:r.name)),((null===(A=e.speakers)||void 0===A?void 0:A.length)>0||e.moderator)&&a().createElement(B.View,null,(e=>{const t=(0,Q.getEventHosts)(e).map((e=>`${e.first_name} ${e.last_name}`));return t.length>0?a().createElement(B.View,{style:x.speakers},a().createElement(B.Text,null,"By ",t.join(", "))):null})(e))),a().createElement(B.View,{style:x.rightCol},a().createElement(B.View,{style:x.tagsWrapper},null===(s=e.tags)||void 0===s?void 0:s.map((t=>a().createElement(B.View,{key:`tag-${t.id}-${e.id}`,style:x.tag},a().createElement(B.Text,null,t.tag))))))))})))):null};T.propTypes={events:P().array.isRequired,summit:P().object.isRequired};const R=T,L="XZyB3zy09oNiJPYXzMaR",U="V8lrMEK6XXJUFDwsrtSs",j=({events:e,summit:t,nowUtc:n=null})=>{const[r,A]=(0,s.useState)(!1);return a().createElement(a().Fragment,null,!r&&a().createElement("button",{className:`${L} ${U}`,onClick:()=>A(!0)},a().createElement("i",{className:"fa fa-print","aria-hidden":"true"}),"Print"),r&&a().createElement(B.PDFDownloadLink,{className:`${L} ${U}`,document:a().createElement(R,{events:e,summit:t,nowUtc:n}),fileName:"schedule.pdf"},(({blob:e,url:t,loading:n,error:r})=>!e||n?"Creating document...":"Download PDF")))},z=["summit","trackSpaceTime","scheduleEvents","selectedEvents","currentDay","currentVenue","slotSize","hideBulkSelect"],M=e=>{let{summit:t,trackSpaceTime:n,scheduleEvents:r,selectedEvents:c,currentDay:u,currentVenue:d,slotSize:h,hideBulkSelect:m}=e,g=A()(e,z);const C=(0,s.useMemo)((()=>((e,t,n)=>{var r,A;const s=[],a=(0,Q.epochToMomentTimeZone)(e.start_date,e.time_zone_id),o=(0,Q.epochToMomentTimeZone)(e.end_date,e.time_zone_id);let i=a.clone();const l=(null==t||null===(r=t.find((e=>e.location_id===(null==n?void 0:n.id))))||void 0===r||null===(A=r.allowed_timeframes)||void 0===A?void 0:A.map((t=>(0,Q.epochToMomentTimeZone)(t.day,e.time_zone_id).format("YYYY-MM-DD"))))||null;do{const e={value:i.format("YYYY-MM-DD"),label:i.format("dddd Do , MMMM YYYY")};l&&0!==l.length&&!l.includes(e.value)||s.push(e),i=i.clone(),i.add(1,"day")}while(!i.isAfter(o));return s})(t,n,d)),[t.start_date,t.end_date,n,d]),v=(0,s.useMemo)((()=>((e,t)=>{const n=[{value:p.TBALocation,label:p.TBALocation.name}],r=(null==t?void 0:t.map((e=>e.location_id)))||null;return e.locations.filter((e=>{const t="SummitVenue"!==e.class_name,n=!r||r.includes(e.id);return t&&n})).forEach((e=>{const t={value:e,label:e.name};n.push(t),e.hasOwnProperty("rooms")&&e.rooms.forEach((e=>{const t={value:e,label:e.name};n.push(t)}))})),n})(t,n)),[t.locations,n]),f=p.SlotSizeOptions.map((e=>({value:e,label:`${e} min.`}))),{allowResize:E=!0,allowDrag:y=!0}=g,{open:b,close:w}=(0,s.useMemo)((()=>((e,t,n,r)=>{if(e&&t&&n){var A;const s=null===(A=n.find((e=>e.location_id===t.id)))||void 0===A?void 0:A.allowed_timeframes;if((null==s?void 0:s.length)>0){const t=null==s?void 0:s.find((t=>(0,Q.epochToMomentTimeZone)(t.day,r).format("YYYY-MM-DD")===e));if(t)return{open:(0,Q.parseLocationHour)(t.opening_hour),close:(0,Q.parseLocationHour)(t.closing_hour)}}}return null!=t&&t.opening_hour&&null!=t&&t.closing_hour?{open:(0,Q.parseLocationHour)(t.opening_hour),close:(0,Q.parseLocationHour)(t.closing_hour)}:{open:"00:00",close:"23:50"}})(u,d,n,t.time_zone_id)),[u,d,n]);return(0,s.useEffect)((()=>{u&&!C.find((e=>e.value===u))&&g.onDayChanged(null)}),[d]),a().createElement("div",{className:"schedule-view-wrapper"},(g.onSlotSizeChange||g.showPrint)&&a().createElement("div",{className:"row",style:{marginBottom:12,marginTop:2}},g.onSlotSizeChange&&a().createElement("div",{className:"col-md-6"},a().createElement("span",null,"Slot size: "),a().createElement(l.default,{value:h,onChange:g.onSlotSizeChange,options:f,style:{display:"inline-block",marginLeft:10}})),g.showPrint&&a().createElement("div",{className:"col-md-6 pull-right"},a().createElement(j,{summit:t,events:r}))),a().createElement("div",{className:"row"},a().createElement("div",{className:"col-md-6"},a().createElement(i.default,{onVenueChanged:g.onVenueChanged,venues:v,currentValue:d,placeholder:"Select Room"})),a().createElement("div",{className:"col-md-6"},a().createElement(o.default,{onDayChanged:g.onDayChanged,days:C,currentValue:u,placeholder:"Select Day"}))),a().createElement(I.default,{bulkOptions:g.customBulkOptions||p.bulkOptions,onSelectAll:g.onSelectAll,onSelectedBulkAction:g.onSelectedBulkAction,show:!m&&r.length>0}),u&&d&&a().createElement(k,{startTime:b,endTime:w,currentSummit:t,interval:h,currentDay:u,pixelsPerMinute:p.PixelsPerMinute,canDropEvent:g.canDropEvent,allowResize:E,allowDrag:y,onScheduleEvent:g.onScheduleEvent,events:r,onUnPublishEvent:g.onUnPublishEvent,onEditEvent:g.onEditEvent,onClickSelected:g.onClickSelected,selectedPublishedEvents:c,onMoveEvent:g.onMoveSingleEvent}))}},3034:(e,t,n)=>{"use strict";n.d(t,{default:()=>s});var r=n(2015),A=n.n(r);class s extends A().Component{render(){let{children:e,show:t,title:n,handleClick:r,className:s,id:a}=this.props,o=this.props.hasOwnProperty("id")?a:`id_${n}`,i=this.props.hasOwnProperty("className")?s:"";return A().createElement("div",{className:"panel-group "+i,id:o},A().createElement("div",{className:"panel panel-default"},A().createElement("a",{className:t?"collapsed":"",onClick:r},A().createElement("div",{className:"panel-heading"},A().createElement("h4",{className:"panel-title"},n))),A().createElement("div",{className:"panel-collapse collapse in"},t&&A().createElement("div",{className:"panel-body"},e))))}}},5097:(e,t,n)=>{"use strict";n(1116),n(6842),n(9087),n(9558),n(2183)},3195:(e,t,n)=>{"use strict";n.d(t,{AUTH_ERROR_ACCESS_TOKEN_EXPIRED:()=>s,AUTH_ERROR_LOCK_ACQUIRE_ERROR:()=>a,AUTH_ERROR_MISSING_AUTH_INFO:()=>r,AUTH_ERROR_MISSING_REFRESH_TOKEN:()=>A,AUTH_ERROR_REFRESH_TOKEN_NETWORK_ERROR:()=>i,AUTH_ERROR_REFRESH_TOKEN_REQUEST_ERROR:()=>o});const r="AUTH_ERROR_MISSING_AUTH_INFO",A="AUTH_ERROR_MISSING_REFRESH_TOKEN",s="AUTH_ERROR_ACCESS_TOKEN_EXPIRED",a="AUTH_ERROR_LOCK_ACQUIRE_ERROR",o="AUTH_ERROR_REFRESH_TOKEN_REQUEST_ERROR",i="AUTH_ERROR_REFRESH_TOKEN_NETWORK_ERROR"},2183:(e,t,n)=>{"use strict";n.d(t,{getAccessToken:()=>E,initLogOut:()=>D});var r=n(9558),A=n(5812),s=n.n(A);n(806);const a=require("browser-tabs-lock");var o=n.n(a);const i=require("js-cookie");var l=n.n(i),c=n(8041),u=n.n(c),d=(n(9891),n(5097),n(8853),n(3195));const Lock=new(o()),GET_TOKEN_SILENTLY_LOCK_KEY="openstackuicore.lock.getTokenSilently",p="code",h="authInfo",m="idToken",g=e=>{let t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",n="";for(let r=0;r{if(e===p&&I()){if(!t)throw O(),Error(d.AUTH_ERROR_MISSING_REFRESH_TOKEN);let e=await(async(e,t=5,n=1e3)=>{for(let r=0;rsetTimeout(e,A)))}})((()=>y(t))),{access_token:n,expires_in:r,refresh_token:A,id_token:s}=e;return void 0===A&&(A=null),b(n,r,A,s),n}throw O(),Error(d.AUTH_ERROR_ACCESS_TOKEN_EXPIRED)},v=async()=>{console.log("openstack-uicore-foundation::Security::methods::_getAccessToken");let e=w();if(!e)throw console.log("openstack-uicore-foundation::Security::methods::_getAccessToken AUTH_ERROR_MISSING_AUTH_INFO"),Error(d.AUTH_ERROR_MISSING_AUTH_INFO);let{accessToken:t,expiresIn:n,accessTokenUpdatedAt:r,refreshToken:A}=e,a=Q();const o=s()().unix();let i=o-r;return n-=60,console.log(`openstack-uicore-foundation::Security::methods::_getAccessToken now ${o} accessTokenUpdatedAt ${r} expiresIn ${n} timeElapsedSecs ${i}`),(i>=n||null==t)&&(console.log("openstack-uicore-foundation::Security::methods::_getAccessToken access token expired, refreshing it ..."),t=await C(a,A)),t},f=Symbol.for("openstack-uicore-foundation.accessTokenResolver"),E=async()=>{const e=globalThis[f];if(e)return e();if("undefined"!=typeof navigator&&navigator.locks)return await navigator.locks.request(GET_TOKEN_SILENTLY_LOCK_KEY,(async e=>(console.log("openstack-uicore-foundation::Security::methods::getAccessToken web lock api",e),await v())));if(!await(0,r.retryPromise)((()=>Lock.acquireLock(GET_TOKEN_SILENTLY_LOCK_KEY,6e3)),10))throw Error(d.AUTH_ERROR_LOCK_ACQUIRE_ERROR);try{return await v()}finally{await Lock.releaseLock(GET_TOKEN_SILENTLY_LOCK_KEY)}},y=async e=>{let t=B(),n=k();const A={grant_type:"refresh_token",client_id:encodeURI(n),refresh_token:e},s=new AbortController,a=setTimeout((()=>s.abort()),1e4);let o,i;try{o=await fetch(`${t}/oauth2/token`,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify(A),signal:s.signal})}catch(e){throw console.log("refreshAccessToken network error:",e.message),Error(`${d.AUTH_ERROR_REFRESH_TOKEN_NETWORK_ERROR}: ${e.message}`)}finally{clearTimeout(a)}if(!o.ok){if(console.log(`refreshAccessToken server error: ${o.status} - ${o.statusText}`),o.status>=500||408===o.status||429===o.status)throw Error(`${d.AUTH_ERROR_REFRESH_TOKEN_NETWORK_ERROR}: ${o.status} - ${o.statusText}`);throw(0,r.setSessionClearingState)(!0),Error(`${d.AUTH_ERROR_REFRESH_TOKEN_REQUEST_ERROR}: ${o.status} - ${o.statusText}`)}try{i=await o.json()}catch(e){throw Error(`${d.AUTH_ERROR_REFRESH_TOKEN_NETWORK_ERROR}: invalid JSON response from IDP`)}let{access_token:l,refresh_token:c,expires_in:u,id_token:p}=i;if(!l)throw(0,r.setSessionClearingState)(!0),Error(`${d.AUTH_ERROR_REFRESH_TOKEN_REQUEST_ERROR}: missing access_token in refresh response`);return{access_token:l,refresh_token:c,expires_in:u,id_token:p}},b=(e,t,n=null,A=null)=>{let s=w(),a={accessToken:e,expiresIn:t,accessTokenUpdatedAt:Math.floor(Date.now()/1e3)};null==n&&s&&(n=s.refreshToken),null==A&&s&&(A=s.idToken),n&&(a.refreshToken=n),A?(a[m]=A,l().set(m,A,{secure:!0,sameSite:"Lax"})):l().remove(m),(0,r.putOnLocalStorage)(h,JSON.stringify(a))},w=()=>{try{let e=(0,r.getFromLocalStorage)(h,!1);return e?JSON.parse(e):null}catch(e){return null}},O=()=>{"undefined"!=typeof window&&((0,r.removeFromLocalStorage)(h),l().remove(m))},S=()=>{if("undefined"!=typeof window){const e=w();return e?e.idToken:null}return null},k=()=>"undefined"!=typeof window?window.OAUTH2_CLIENT_ID:null,Q=()=>"undefined"!=typeof window&&window.OAUTH2_FLOW||"token id_token",I=()=>"undefined"==typeof window||new Boolean(window.OAUTH2_USE_REFRESH_TOKEN||!0),B=()=>"undefined"!=typeof window?window.IDP_BASE_URL:null,D=()=>{(0,r.getCurrentLocation)().replace(((e=null)=>{let t=B(),n=k(),A=u()(`${t}/oauth2/end-session`),s=g(16),a=`${(0,r.getOrigin)()}/auth/logout`;(0,r.putOnLocalStorage)("post_logout_state",s);const o={post_logout_redirect_uri:encodeURI(a),client_id:encodeURI(n),state:s};return e&&(o.id_token_hint=e),A.query(o)})(S()).toString())}},8964:(e,t,n)=>{"use strict";n.d(t,{default:()=>m});var r=n(2015),A=n.n(r),s=n(9825),a=n.n(s),o=n(2113),i=n.n(o),l=n(4216),c=n(6842),u=n.n(c),d=n(2934),p=n.n(d);class h extends A().Component{constructor(e){super(e),this.state={value:""},this.handleChange=this.handleChange.bind(this),this.getOptions=this.getOptions.bind(this),this.handleLink=this.handleLink.bind(this),this.filterOption=this.filterOption.bind(this),this.handleNew=this.handleNew.bind(this),this.getNewOptionData=this.getNewOptionData.bind(this),this.isValidNewOption=this.isValidNewOption.bind(this)}getOptions(e,t){let{options:n}=this.props,r=n.hasOwnProperty("defaultOptions")?n.defaultOptions:void 0;if(!e&&!r)return Promise.resolve({options:[]});this.props.options.actions.search(e,t)}handleChange(e){this.setState({value:e})}handleLink(e){e.preventDefault(),this.props.options.actions.add.onClick(this.state.value),this.setState({value:""})}getNewOptionData(e,t){return{tag:t,id:e}}isValidNewOption(e,t,n){let{options:r}=this.props,A=r.hasOwnProperty("labelKey")?r.labelKey:"label",s=n.find((t=>t[A]==e));return!(!e||s)}handleNew(e){this.props.options.onCreateTag(e,this.handleChange)}filterOption(e,t){let{options:n,values:r}=this.props,A=this.props.hasOwnProperty("allowDuplicates"),s=n.hasOwnProperty("labelKey")?n.labelKey:"label";return!!A||!r.find((t=>t[s]===e.label))}render(){let{options:e,values:t,columns:n}=this.props,r=!this.state.value,s=e.hasOwnProperty("title")?e.title:"Table",a=e.hasOwnProperty("valueKey")?e.valueKey:"value",o=e.hasOwnProperty("labelKey")?e.labelKey:"label",c=e.hasOwnProperty("onCreateTag"),d=e.hasOwnProperty("defaultOptions")?e.defaultOptions:void 0,h={className:"dataTable",actions:{delete:e.actions.delete}};e.hasOwnProperty("className")&&(h.className=e.className),e.actions.hasOwnProperty("edit")&&(h.actions.edit=e.actions.edit),e.actions.hasOwnProperty("custom")&&(h.actions.custom=e.actions.custom),e.hasOwnProperty("sortCol")&&(t=t.sort(((t,n)=>{const r=isNaN(t[e.sortCol])?t[e.sortCol].toLowerCase():t[e.sortCol],A=isNaN(n[e.sortCol])?n[e.sortCol].toLowerCase():n[e.sortCol];return r>A?1:re[a],getOptionLabel:e=>e[o],onChange:this.handleChange,loadOptions:this.getOptions,filterOption:this.filterOption,onCreateOption:this.handleNew,getNewOptionData:this.getNewOptionData,isValidNewOption:this.isValidNewOption}):A().createElement(i(),{className:"link-select btn-group text-left",value:this.state.value,key:JSON.stringify(t),getOptionValue:e=>e[a],getOptionLabel:e=>e[o],onChange:this.handleChange,loadOptions:this.getOptions,filterOption:this.filterOption,defaultOptions:d}),A().createElement("div",{className:"row simple-link-list"},A().createElement("div",{className:"col-md-4 simple-link-list-title"},A().createElement("h4",null,s)),A().createElement("div",{className:"col-md simple-link-list-buttons"},m,A().createElement("button",{type:"button",className:"btn btn-default add-button",onClick:this.handleLink,disabled:r},u().translate("general.add"))),A().createElement("div",{className:"col-md-12"},A().createElement(l.default,{className:"dataTable",options:h,data:t,columns:n})))}}h.propTypes={values:a().array.isRequired,options:a().shape({title:a().string,sortCol:a().string,valueKey:a().string.isRequired,labelKey:a().string.isRequired,className:a().string,actions:a().shape({search:a().func.isRequired,delete:a().shape({onClick:a().func.isRequired}),add:a().shape({onClick:a().func.isRequired}),edit:a().shape({onClick:a().func.isRequired}),custom:a().array}).isRequired}).isRequired,columns:a().array.isRequired};const m=h},531:(e,t,n)=>{"use strict";n.d(t,{default:()=>l});var r=n(2015),A=n.n(r),s=n(8466),a=n.n(s),o=n(6842),i=n.n(o);class l extends A().Component{constructor(e){super(e),this.state={summitValue:null},this.handleChange=this.handleChange.bind(this),this.handleClick=this.handleClick.bind(this)}handleChange(e){this.setState({summitValue:e})}handleClick(e){e.preventDefault(),this.props.onClick(this.state.summitValue.value)}render(){let{summits:e,actionLabel:t,actionClass:n}=this.props,r=e.sort(((e,t)=>e.start_datet.start_date?-1:0)).map((e=>({label:e.name,value:e.id}))),s=this.props.hasOwnProperty("big")?"big":"";const o=!this.state.summitValue;return A().createElement("div",{className:"summit-dropdown btn-group "+s},A().createElement(a(),{id:"summit-select",value:this.state.summitValue,onChange:this.handleChange,options:r,placeholder:i().translate("general.select_summit"),className:"btn-group summit-select text-left",isClearable:!1}),A().createElement("button",{type:"button",className:`btn btn-default ${n}`,disabled:o,onClick:this.handleClick},t))}}},2479:(e,t,n)=>{"use strict";n.d(t,{default:()=>E});var r=n(1116),A=n.n(r),s=n(2015),a=n.n(s);class o extends a().Component{constructor(e){super(e)}render(){return a().createElement("th",{width:this.props.width},this.props.children)}}const i=o,l=e=>e.is_edit?a().createElement("td",null,!e.shouldUseTextArea&&a().createElement("input",{type:"text",className:"form-control",defaultValue:e.children,name:e.name,id:e.id,onChange:e.handleChange}),e.shouldUseTextArea&&a().createElement("textarea",{className:"form-control",defaultValue:e.children,name:e.name,id:e.id,onChange:e.handleChange})):a().createElement("td",null,e.children);class c extends a().Component{constructor(e){super(e),this.state={is_editing:!1}}onDelete(e,t){t.preventDefault(),t.stopPropagation(),this.props.actions.delete(e)}onSave(e,t){t.preventDefault(),t.stopPropagation(),this.setState({is_editing:!1}),this.props.actions.save(e)}onEdit(e,t){t.preventDefault(),t.stopPropagation(),this.setState({is_editing:!0}),this.props.actions.edit(e)}onCancel(e,t){t.preventDefault(),t.stopPropagation(),this.setState({is_editing:!1}),this.props.actions.cancel(e)}render(){let{actions:e,id:t}=this.props;return this.state.is_editing?a().createElement("td",{className:"actions"},a().createElement("a",{href:"",onClick:this.onSave.bind(this,t),"data-tip":"save"},a().createElement("i",{className:"fa fa-floppy-o"})),a().createElement("a",{href:"",onClick:this.onCancel.bind(this,t),"data-tip":"cancel"},a().createElement("i",{className:"fa fa-times"}))):a().createElement("td",{className:"actions"},"edit"in e&&a().createElement("a",{href:"",onClick:this.onEdit.bind(this,t),"data-tip":"edit"},a().createElement("i",{className:"fa fa-pencil-square-o"})),"delete"in e&&a().createElement("a",{href:"",onClick:this.onDelete.bind(this,t),"data-tip":"delete"},a().createElement("i",{className:"fa fa-trash-o delete-icon"})))}}class u extends a().Component{render(){const{children:e,even:t,id:n}=this.props;return a().createElement("tr",{id:n,role:"row",className:t?"even":"odd"},e)}}var d=n(9236),p=n.n(d),h=n(6842),m=n.n(h),g=n(5433),C=n(9558);function v(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}const f="";class E extends a().Component{constructor(e){var t,n;super(e),this.state={rows:e.data,new_row:{}},this.onSave=null===(t=e.options.actions)||void 0===t||null===(n=t.save)||void 0===n?void 0:n.onClick,this.actions=e.options.actions||{},this.actions.edit=this.editRow.bind(this),this.actions.save=this.saveRow.bind(this),this.actions.delete=this.deleteClick.bind(this),this.actions.handleChange=this.onChangeCell.bind(this),this.actions.cancel=this.editRowCancel.bind(this),this.saveNewRow=this.saveNewRow.bind(this),this.handleNewChange=this.onChangeNewCell.bind(this)}componentDidUpdate(e,t,n){(0,C.shallowEqual)(this.props.data,e.data)||this.setState({rows:this.props.data})}saveRow(e,t){const{rows:n}=this.state;let r=n.find((t=>t.id==e));r.is_edit=!1,this.editing_row=null,this.setState({rows:n}),this.onSave(r)}deleteClick(e){var t,n;let r=null===(t=this.props.options.actions)||void 0===t||null===(n=t.delete)||void 0===n?void 0:n.onClick;this.props.options.hasOwnProperty("noAlert")?r(e):p().fire({title:m().translate("general.are_you_sure"),text:m().translate("general.remove_warning"),type:"warning",showCancelButton:!0,confirmButtonColor:"#DD6B55",confirmButtonText:m().translate("general.yes_delete")}).then((function(t){t.value&&r(e)}))}editRow(e,t){const{rows:n}=this.state;let r=n.find((t=>t.id==e));this.editing_row=function(e){for(var t=1;t{e.is_edit=!1}));let r=n.findIndex((t=>t.id==e));n[r]=this.editing_row,this.setState({rows:n})}onChangeCell(e){const{rows:t}=this.state;let n=e.target;t.find((e=>e.id==n.id))[n.name]=n.value,this.setState({rows:t})}onChangeNewCell(e){const{new_row:t}=this.state;let n=e.target;t[n.name]=n.value,this.setState({new_row:t})}saveNewRow(e){const{new_row:t}=this.state;e.preventDefault(),this.onSave(t),this.setState({new_row:{}})}render(){let{options:e,columns:t}=this.props,n=e.hasOwnProperty("className")?e.className:"",r=this.props.hasOwnProperty("textArea");return a().createElement("div",null,a().createElement("table",{className:"table table-striped table-bordered editableTable "+n},a().createElement("thead",null,a().createElement("tr",null,t.map(((e,t)=>{let n=e.width?e.width:f;return a().createElement(i,{width:n,key:"heading_"+t},e.value)})),this.actions&&a().createElement(i,{key:"actions_heading"},"Actions"))),a().createElement("tbody",null,t.length>0&&this.state.rows.map(((e,n)=>Array.isArray(e)&&e.length!==t.length?(console.warn(`Data at row ${n} is ${e.length}. It should be ${t.length}.`),a().createElement("tr",null)):a().createElement(u,{even:n%2==0,key:"row_"+e.id,id:e.id},((e,t,n,r)=>{var A=t.map(((t,A)=>a().createElement(l,{shouldUseTextArea:r,key:e.id+"_field"+A,name:t.columnKey,id:e.id,is_edit:e.is_edit,handleChange:n.handleChange},e[t.columnKey])));return n&&A.push(a().createElement(c,{key:"actions_"+e.id,id:e.id,actions:n})),A})(e,t,this.actions,r)))),a().createElement(u,{even:0,id:"new_row",key:"new_row"},((e,t,n,r,A)=>{var s=e.map(((e,n)=>{let s=void 0!==t[e.columnKey]?t[e.columnKey]:"";return a().createElement("td",{key:"new_row_"+n},A&&a().createElement("textarea",{className:"form-control",id:"new_"+e.columnKey,name:e.columnKey,onChange:r,value:s}),!A&&a().createElement("input",{className:"form-control",id:"new_"+e.columnKey,name:e.columnKey,onChange:r,value:s}))}));return s.push(a().createElement("td",{key:"add_new"},a().createElement("button",{className:"btn btn-default",onClick:n}," Add "))),s})(t,this.state.new_row,this.saveNewRow,this.handleNewChange,r)))),a().createElement(g.Tooltip,{delayShow:10}))}}},3298:(e,t,n)=>{"use strict";n.d(t,{default:()=>C});var r=n(2015),A=n.n(r),s=n(9825),a=n.n(s);class o extends A().Component{constructor(e){super(e),this.handleSort=this.handleSort.bind(this)}getSortClass(){if(!this.props.sortable)return null;switch(this.props.sortDir){case 1:return"sorting_asc";case-1:return"sorting_desc";default:return this.props.sortable?"sorting":null}}handleSort(e){e.preventDefault(),this.props.hasOwnProperty("onSort")&&this.props.sortable&&this.props.onSort(this.props.columnIndex,this.props.columnKey,this.props.sortDir?-1*this.props.sortDir:1,this.props.sortFunc)}render(){return A().createElement("th",{onClick:this.handleSort,className:this.getSortClass(),width:this.props.width},this.props.children)}}o.propTypes={onSort:a().func,sortDir:a().number,columnIndex:a().number,columnKey:a().any,sortable:a().bool,sortFunc:a().func};const i=o;var l=n(5028);const c=e=>{let{children:t}=e,n="";return t&&(n=A().isValidElement(t)?t:A().createElement(l.default,null,t.toString())),A().createElement("td",e,n)};class u extends A().Component{constructor(e){super(e),this.handleEdit=this.handleEdit.bind(this),this.handleSelect=this.handleSelect.bind(this)}shouldDisplayAction(e){let{id:t}=this.props;return!e.hasOwnProperty("display")||e.display(t)}handleEdit(e,t){"checkbox"!==t.target.type&&(t.stopPropagation(),t.preventDefault(),this.props.actions.edit.onClick(e))}handleSelect(e,t){this.props.actions.edit.onSelected(e,t.target.checked)}render(){let{even:e,actions:t,id:n,children:r,checked:s}=this.props,a=e?"even":"odd";return(null==t?void 0:t.edit)&&this.shouldDisplayAction(t.edit)?A().createElement("tr",{role:"row",className:a+" can-edit",onClick:this.handleEdit.bind(this,n)},A().createElement("td",{key:n+"_select"},A().createElement("input",{type:"checkbox",id:n+"_select",name:n+"_select",checked:s,onChange:this.handleSelect.bind(this,n)})),r):A().createElement("tr",{role:"row",className:a},A().createElement("td",{key:n+"_select"},A().createElement("input",{type:"checkbox",id:n+"_select",name:n+"_select",checked:s,onChange:this.handleSelect.bind(this,n)})),r)}}class d extends A().Component{constructor(e){super(e),this.handleAction=this.handleAction.bind(this),this.shouldDisplayAction=this.shouldDisplayAction.bind(this)}shouldDisplayAction(e){let{id:t}=this.props;return!e.hasOwnProperty("display")||e.display(t)}handleAction(e,t,n){n.stopPropagation(),n.preventDefault(),e(t)}render(){let{actions:e,id:t}=this.props;return A().createElement("td",{className:"actions",key:"actions"},e.hasOwnProperty("delete")&&this.shouldDisplayAction(e.delete)&&A().createElement("a",{href:"","data-tip":"delete",onClick:this.handleAction.bind(this,e.delete.onClick,t)},A().createElement("i",{className:"fa fa-trash-o delete-icon"})),e.hasOwnProperty("custom")&&e.custom.map((e=>this.shouldDisplayAction(e)&&A().createElement("a",{href:"","data-tip":e.tooltip,key:"custom_"+e.name,onClick:this.handleAction.bind(this,e.onClick,t)},e.icon))))}}var p=n(5433);const h={sortFunc:(e,t)=>et?1:0,sortable:!1,sortCol:0,sortDir:1,colWidth:""},m=(e,t,n,r)=>e&&e===n||n===t?r:null;class g extends A().Component{constructor(e){super(e)}render(){var e,t,n;let{options:r,columns:s}=this.props,a=r.hasOwnProperty("className")?r.className:"";return a+=null!==(e=r.actions)&&void 0!==e&&e.edit?" table-hover":"",A().createElement("div",null,A().createElement("table",{className:"table table-striped selectableTable "+a},A().createElement("thead",null,A().createElement("tr",null,A().createElement("th",null,!r.disableSelectAll&&A().createElement("input",{type:"checkbox",id:"select_all",name:"select_all",onChange:null===(t=r.actions)||void 0===t||null===(n=t.edit)||void 0===n?void 0:n.onSelectedAll,checked:r.selectedAll})),s.map(((e,t)=>{let n=void 0!==r.sortCol?r.sortCol:h.sortCol,s=void 0!==r.sortDir?r.sortDir:h.sortDir,a=void 0!==r.sortFunc?r.sortFunc:h.sortFunc,o=void 0!==e.sortable?e.sortable:h.sortable,l=void 0!==e.width?e.width:h.colWidth;return A().createElement(i,{onSort:this.props.onSort,sortDir:m(e.columnKey,t,n,s),sortable:o,sortFunc:a,columnIndex:t,columnKey:e.columnKey,width:l,key:"heading_"+t},e.value)})),r.actions&&A().createElement(i,{key:"actions_heading"},r.actionsHeader||" "))),A().createElement("tbody",null,s.length>0&&this.props.data.map(((e,t)=>Array.isArray(e)&&e.length!==s.length?(console.warn(`Data at row ${t} is ${e.length}. It should be ${s.length}.`),A().createElement("tr",{key:"row_"+t})):A().createElement(u,{checked:e.checked,even:t%2==0,key:"row_"+e.id,id:e.id,actions:r.actions},((e,t,n)=>{var r=t.map(((t,n)=>t.hasOwnProperty("render")?A().createElement(c,{key:e.id+"_field"+n,name:t.columnKey,id:e.id},t.render(e,e[t.columnKey])):A().createElement(c,{key:e.id+"_field"+n,name:t.columnKey,id:e.id},e[t.columnKey])));return n&&r.push(A().createElement(d,{key:"actions_cell",id:e.id,actions:n})),r})(e,s,r.actions)))))),A().createElement(p.Tooltip,{delayShow:10}))}}const C=g},2567:(e,t,n)=>{"use strict";n.d(t,{default:()=>k});var r=n(1116),A=n.n(r),s=n(2015),a=n.n(s),o=n(9825),i=n.n(o);const l=require("immutability-helper");var c=n.n(l),u=n(6924);const d=require("react-dnd-html5-backend");class p extends a().Component{constructor(e){super(e)}render(){return a().createElement("th",{width:this.props.width},this.props.children)}}const h=p;class m extends a().Component{constructor(e){super(e),this.handleAction=this.handleAction.bind(this)}shouldDisplayAction(e){let{id:t}=this.props;return!e.hasOwnProperty("display")||e.display(t)}handleAction(e,t,n){n.stopPropagation(),n.preventDefault(),e(t)}render(){let{actions:e,id:t}=this.props;return a().createElement("td",{className:"actions",key:"actions"},e.hasOwnProperty("edit")&&this.shouldDisplayAction(e.edit)&&a().createElement("a",{href:"","data-tip":"edit",onClick:this.handleAction.bind(this,e.edit.onClick,t)},a().createElement("i",{className:"fa fa-pencil-square-o"})),e.hasOwnProperty("delete")&&this.shouldDisplayAction(e.delete)&&a().createElement("a",{href:"","data-tip":"delete",onClick:this.handleAction.bind(this,e.delete.onClick,t)},a().createElement("i",{className:"fa fa-trash-o delete-icon"})),"custom"in e&&e.custom.map((e=>this.shouldDisplayAction(e,t)&&a().createElement("a",{href:"","data-tip":e.tooltip,key:"custom_"+e.name,onClick:this.handleAction.bind(this,e.onClick,t)},e.icon))))}}function g(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function C(e){for(var t=1;t{const c=l(n).index,d=(0,s.useRef)(null),[{handlerId:p},h]=(0,u.useDrop)({accept:"row",collect:e=>({handlerId:e.getHandlerId()}),hover(e,t){var n;if(!d.current)return;const s=e.index,a=r;if(s===a)return;const o=null===(n=d.current)||void 0===n?void 0:n.getBoundingClientRect(),i=(o.bottom-o.top)/2,l=t.getClientOffset().y-o.top;sa&&l>i||(A(s,a),e.index=a)}}),[{isDragging:m},g]=(0,u.useDrag)({type:"row",item:()=>({id:n,index:r}),end:(e,t)=>{const{id:n,index:r}=e;return t.didDrop()?o(n,r+1):A(r,c)},collect:e=>({isDragging:e.isDragging()})}),v=m?0:1;return g(h(d)),a().createElement("tr",{id:n,ref:d,role:"row",className:t?"even":"odd",style:C(C({},{border:"1px dashed gray",padding:"0.5rem 1rem",marginBottom:".5rem",backgroundColor:"white",cursor:"move"}),{},{opacity:v})},i)};v.propTypes={index:i().number.isRequired,id:i().any.isRequired,moveCard:i().func.isRequired};const f=v;var E=n(6842),y=n.n(E),b=n(4564);n(7825);function w(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}const O="",S=({data:e,options:t,columns:n,dropCallback:r,orderField:o,idField:i})=>{var l,p,g,C;const[v,E]=(0,s.useState)(e),[S,k]=(0,s.useState)({});(0,s.useEffect)((()=>{E(e)}),[e]);const Q=(e,t,n,r)=>a().createElement(f,{even:r%2==0,key:e.id,index:r,id:e.id,moveCard:D,findRow:B,dropItem:P},((e,t,n)=>{let r=t.map(((t,n)=>t.hasOwnProperty("render")?a().createElement(b.A,{key:"cell_"+n,title:t.hasOwnProperty("title")?e[t.columnKey]:null},t.render(e,e[t.columnKey])):a().createElement(b.A,{key:"cell_"+n,title:t.hasOwnProperty("title")?e[t.columnKey]:null},e[t.columnKey])));return n&&r.push(a().createElement(m,{key:"actions",id:e.id,actions:n})),r})(e,t,n.actions)),I=e=>(e.sort((function(e,t){const n=e[o],r=t[o];return nr?1:0})),e),B=(0,s.useCallback)((e=>{const t=v.filter((t=>t[i]===e))[0];return{row:t,index:v.indexOf(t)}}),[v]),D=(0,s.useCallback)(((e,t)=>{E((n=>{n=c()(n,{$splice:[[e,1],[t,0,n[e]]]});for(let e in n)n[e][o]=parseInt(e)+1;return I(n)}))}),[v,E]),P=(e,t)=>{const n=I(v);E(n),r(n,e,t)};let H=t.hasOwnProperty("className")?t.className:"",N=(null==t||null===(l=t.actions)||void 0===l||null===(p=l.save)||void 0===p?void 0:p.onClick)&&null!==(null==t||null===(g=t.actions)||void 0===g||null===(C=g.save)||void 0===C?void 0:C.onClick);return a().createElement("div",{className:"sortable-table-box"},a().createElement("i",null,y().translate("general.drag_and_drop")),a().createElement("table",{className:"table table-striped table-hover sortableTable "+H},a().createElement("thead",null,a().createElement("tr",null,n.map(((e,t)=>{let n=e.width?e.width:O;return a().createElement(h,{width:n,key:t},e.value)})),t.actions&&a().createElement(h,{key:"actions"},"Actions"))),a().createElement("tbody",null,n.length>0&&v.map(((e,r)=>Array.isArray(e)&&e.length!==n.length?(console.warn(`Data at row ${r} is ${e.length}. It should be ${n.length}.`),a().createElement("tr",null)):a().createElement(u.DndProvider,{backend:d.HTML5Backend,key:r},Q(e,n,t,r))))),N&&a().createElement("tfoot",null,a().createElement("tr",null,((e,t,n,r)=>{let A=e.map(((e,n)=>{let A=void 0!==t[e.columnKey]?t[e.columnKey]:"";return"checkbox"===(null==e?void 0:e.input)?a().createElement("td",{key:"new_row_"+n,className:"checkbox-cell"},a().createElement("input",{type:"checkbox",id:"new_"+e.columnKey,name:e.columnKey,onChange:r,checked:A,title:null==e?void 0:e.value})):a().createElement("td",{key:"new_row_"+n},a().createElement("input",{className:"form-control",id:"new_"+e.columnKey,name:e.columnKey,placeholder:null==e?void 0:e.value,onChange:r,value:A}))}));return A.push(a().createElement("td",{key:"add_new"},a().createElement("button",{className:"btn btn-default",onClick:n}," Add"))),A})(n,S,(e=>{var n,r;e.preventDefault(),null==t||null===(n=t.actions)||void 0===n||null===(r=n.save)||void 0===r||r.onClick(S),k({})}),(e=>{let t=e.target,n=function(e){for(var t=1;t{"use strict";n.d(t,{default:()=>m});var r=n(2015),A=n.n(r),s=n(9825),a=n.n(s);class o extends A().Component{constructor(e){super(e),this.handleSort=this.handleSort.bind(this)}getSortClass(){if(!this.props.sortable)return null;switch(this.props.sortDir){case 1:return"sorting_asc";case-1:return"sorting_desc";default:return this.props.sortable?"sorting":null}}handleSort(e){e.preventDefault(),this.props.hasOwnProperty("onSort")&&this.props.sortable&&this.props.onSort(this.props.columnIndex,this.props.columnKey,this.props.sortDir?-1*this.props.sortDir:1,this.props.sortFunc)}render(){return A().createElement("th",{onClick:this.handleSort,className:this.getSortClass(),width:this.props.width},this.props.children)}}o.propTypes={onSort:a().func,sortDir:a().number,columnIndex:a().number,columnKey:a().any,sortable:a().bool,sortFunc:a().func};const i=o;var l=n(4564);class c extends A().Component{constructor(e){super(e),this.handleEdit=this.handleEdit.bind(this)}shouldDisplayAction(e){let{id:t}=this.props;return!e.hasOwnProperty("display")||e.display(t)}handleEdit(e,t){t.stopPropagation(),t.preventDefault(),this.props.actions.edit.onClick(e)}render(){let{even:e,actions:t,id:n,children:r}=this.props,s=e?"even":"odd";return(null==t?void 0:t.edit)&&this.shouldDisplayAction(t.edit)?A().createElement("tr",{role:"row",className:s+" can-edit",onClick:this.handleEdit.bind(this,n)},r):A().createElement("tr",{role:"row",className:s},r)}}class u extends A().Component{constructor(e){super(e),this.handleAction=this.handleAction.bind(this),this.shouldDisplayAction=this.shouldDisplayAction.bind(this)}shouldDisplayAction(e){let{id:t}=this.props;return!e.hasOwnProperty("display")||e.display(t)}handleAction(e,t,n){n.stopPropagation(),n.preventDefault(),e(t)}render(){let{actions:e,id:t}=this.props;return A().createElement("td",{className:"actions",key:"actions"},e.hasOwnProperty("delete")&&this.shouldDisplayAction(e.delete)&&A().createElement("a",{href:"","data-tip":"delete",onClick:this.handleAction.bind(this,e.delete.onClick,t)},A().createElement("i",{className:"fa fa-trash-o delete-icon"})),e.hasOwnProperty("custom")&&e.custom.map((e=>this.shouldDisplayAction(e)&&A().createElement("a",{href:"","data-tip":e.tooltip,key:"custom_"+e.name,onClick:this.handleAction.bind(this,e.onClick,t)},e.icon))))}}var d=n(5433);const p={sortFunc:(e,t)=>et?1:0,sortable:!1,sortCol:0,sortDir:1,colWidth:""},h=(e,t,n,r)=>e&&e===n||n===t?r:null,m=e=>{var t;let{options:n,columns:r}=e,s=n.hasOwnProperty("className")?n.className:"";return s+=null!==(t=n.actions)&&void 0!==t&&t.edit?" table-hover":"",A().createElement("div",null,A().createElement("table",{className:"table table-striped dataTable "+s},A().createElement("thead",null,A().createElement("tr",null,r.map(((t,r)=>{let s=void 0!==n.sortCol?n.sortCol:p.sortCol,a=void 0!==n.sortDir?n.sortDir:p.sortDir,o=void 0!==n.sortFunc?n.sortFunc:p.sortFunc,l=void 0!==t.sortable?t.sortable:p.sortable,c=void 0!==t.width?t.width:p.colWidth;return A().createElement(i,{onSort:e.onSort,sortDir:h(t.columnKey,r,s,a),sortable:l,sortFunc:o,columnIndex:r,columnKey:t.columnKey,width:c,key:"heading_"+r},t.value)})),n.actions&&A().createElement(i,{key:"actions_heading"},n.actionsHeader||" "))),A().createElement("tbody",null,r.length>0&&e.data.map(((e,t)=>Array.isArray(e)&&e.length!==r.length?(console.warn(`Data at row ${t} is ${e.length}. It should be ${r.length}.`),A().createElement("tr",{key:"row_"+t})):A().createElement(c,{even:t%2==0,key:"row_"+t,id:e.id,actions:n.actions},((e,t,n)=>{const r=t.map(((t,n)=>{const r=(null==t?void 0:t.styles)||{};return t.hasOwnProperty("render")?A().createElement(l.A,{key:"cell_"+n,style:r},t.render(e,e[t.columnKey])):A().createElement(l.A,{key:"cell_"+n,title:t.hasOwnProperty("title")?e[t.columnKey]:null,style:r},e[t.columnKey])}));return n&&r.push(A().createElement(u,{key:"actions_cell",id:e.id,actions:n})),r})(e,r,n.actions)))))),A().createElement(d.Tooltip,{delayShow:10}))}},4564:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(2015),A=n.n(r),s=n(5028);const a=e=>{let{children:t}=e,n="";return t&&(n=A().isValidElement(t)?t:A().createElement(s.default,null,t.toString())),A().createElement("td",e,n)}},2281:(e,t,n)=>{"use strict";n.d(t,{default:()=>l});var r=n(2015),A=n.n(r);const s=require("video.js");var a=n.n(s);require("video.js/dist/video-js.css");const o=({videoSrcURL:e,videoTitle:t})=>A().createElement("div",{className:"video"},A().createElement("iframe",{width:"100%",height:"720",title:t,src:e,frameBorder:"0",allow:"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0}));class i extends A().Component{componentDidMount(){this.player=a()(this.videoNode,this.props)}componentWillUnmount(){this.player&&this.player.dispose()}render(){return A().createElement("div",{"data-vjs-player":""},A().createElement("video",{ref:e=>this.videoNode=e,className:"video-js vjs-big-play-centered"}))}}const l=({url:e})=>{let t=null;if(e)if((()=>{let t=null;return t=!!e.match(/.m3u8/),t})()){const n={autoplay:!0,controls:!0,fluid:!0,sources:[{src:e,type:"application/x-mpegURL"}]};t=A().createElement(i,n)}else t=A().createElement(o,{videoSrcURL:e});else t=A().createElement("span",{className:"no-video"},"No video URL Provided");return t}},103:(e,t,n)=>{"use strict";n.d(t,{default:()=>s});var r=n(5812),A=n.n(r);const s=class{constructor(e,t=null){this._event=e,this._summit=t}set summit(e){this._summit=e}get summit(){return this._summit}getId(){return this._event.id}isPublished(){return this._event.hasOwnProperty("is_published")&&this._event.is_published}getMinutesDuration(e){if(this._event.hasOwnProperty("start_date")&&this._event.hasOwnProperty("end_date")&&null!=this._event.start_date&&null!=this._event.end_date){let e=A()(1e3*this._event.start_date).tz(this._summit.time_zone.name);return A()(1e3*this._event.end_date).tz(this._summit.time_zone.name).diff(e,"minutes")}return this._event.hasOwnProperty("duration")&&this._event.duration>0?parseInt(this._event.duration/60):e}canMove(e,t,n,r){let s=this._event.hasOwnProperty("duration")&&this._event.duration>0?parseInt(this._event.duration/60):r;this.isPublished()&&(s=this.getMinutesDuration());let a=A().tz(t+" "+n.format("HH:mm"),"YYYY-MM-DD HH:mm",this._summit.time_zone.name),o=A().tz(t+" "+n.format("HH:mm"),"YYYY-MM-DD HH:mm",this._summit.time_zone.name);o=o.add(s,"minutes");for(let t of e.filter((e=>e.id!==this.getId()))){let e=A()(1e3*t.start_date).tz(this._summit.time_zone.name),n=A()(1e3*t.end_date).tz(this._summit.time_zone.name);if(e.isBefore(o)&&n.isAfter(a))return!1}return!0}calculateNewDates(e,t,n){return n=this._event.hasOwnProperty("duration")&&this._event.duration>0?parseInt(this._event.duration/60):n,[A().tz(e+" "+t.format("HH:mm"),"YYYY-MM-DD HH:mm",this._summit.time_zone.name),A().tz(e+" "+t.format("HH:mm"),"YYYY-MM-DD HH:mm",this._summit.time_zone.name).add(n,"minutes")]}isValidEndDate(e){if(!e)return!0;const t=A().tz(1e3*e,this._summit.time_zone.name),n=A().tz(1e3*this._summit.end_date,this._summit.time_zone.name),r=A().tz(1e3*this._event.start_date,this._summit.time_zone.name);return t.isSameOrBefore(n)&&t.isAfter(r)}isValidStartDate(e){if(!e)return!0;const t=A().tz(1e3*e,this._summit.time_zone.name),n=this._event.hasOwnProperty("duration")&&this._event.duration>0?parseInt(this._event.duration/60):0,r=A().tz(1e3*this._summit.start_date,this._summit.time_zone.name),s=this._event.end_date?A().tz(1e3*this._event.end_date,this._summit.time_zone.name):n>0?A().tz(1e3*e,this._summit.time_zone.name).add(n,"minutes"):null;return t.isSameOrAfter(r)&&A().isMoment(s)&&t.isBefore(s)}isValidTitle(e){return""!==e.trim()}isValid(){return this.isValidTitle(this._event.title)&&this.isValidStartDate(this._event.start_date)&&this.isValidEndDate(this._event.end_date)}}},9087:(e,t,n)=>{"use strict";n.d(t,{escapeFilterValue:()=>d,fetchErrorHandler:()=>c,fetchResponseHandler:()=>u});n(2462),n(806);var r=n(8041),A=n.n(r),s=n(9236),a=n.n(s),o=n(6842),i=n.n(o);n(9558),n(5097),n(2183);A().escapeQuerySpace=!1;const l=e=>t=>({type:e,payload:t}),c=(l("RESET_LOADING"),l("START_LOADING"),l("STOP_LOADING"),e=>{let t=e.status,n=e.statusText;switch(t){case 403:a().fire("ERROR",i().translate("errors.user_not_authz"),"warning");break;case 401:a().fire("ERROR",i().translate("errors.session_expired"),"error");break;case 412:a().fire("ERROR",n,"warning");case 500:a().fire("ERROR",i().translate("errors.server_error"),"error")}}),u=e=>{if(e.ok)return e.json();throw e},d=e=>e=(e=(e=(e=(e=String(e)).replace(/\\/g,"\\\\")).replace(/,/g,"\\,")).replace(/;/g,"\\;")).replace(/\+/g,"%2B")},8853:(e,t,n)=>{"use strict";n.d(t,{Zq:()=>s});const r=require("spark-md5");var A=n.n(r);require("crypto-js/sha256"),require("crypto-js/enc-base64url"),require("crypto-js/enc-hex"),"undefined"!=typeof window&&(window.crypto||window.msCrypto);const s=e=>new Promise(((t,n)=>{const r=2097152,s=new(A().ArrayBuffer),a=new FileReader;let o=0;function i(){const t=e.slice(o,o+r);a.readAsArrayBuffer(t)}a.onload=n=>{s.append(n.target.result),o+=r,on("Error reading the file"),i()}))},5890:(e,t,n)=>{"use strict";n.d(t,{createExternalStore:()=>i});var r=n(2015),A=n.n(r);const s=require("use-sync-external-store/shim"),a=require("use-sync-external-store/shim/with-selector"),o=(e,t)=>e===t;function i(e="ExternalStore"){const t=(0,r.createContext)(null),n=()=>{const n=(0,r.useContext)(t);if(null===n)throw new Error(`${e} hooks must be used within their Provider`);return n};return{Provider:({initialValue:e=null,children:n})=>{const s=(0,r.useRef)(e),a=(0,r.useRef)(new Set),o=(0,r.useCallback)((e=>(a.current.add(e),()=>a.current.delete(e))),[]),i=(0,r.useCallback)((()=>s.current),[]),l=(0,r.useCallback)((e=>{s.current=e,a.current.forEach((e=>e()))}),[]),c=(0,r.useMemo)((()=>({subscribe:o,getSnapshot:i})),[o,i]);return A().createElement(t.Provider,{value:c},"function"==typeof n?n(l):n)},useValue:()=>{const{subscribe:e,getSnapshot:t}=n();return(0,s.useSyncExternalStore)(e,t)},useSelector:(e,t=o)=>{const{subscribe:r,getSnapshot:A}=n();return(0,a.useSyncExternalStoreWithSelector)(r,A,A,e,t)}}}},9558:(e,t,n)=>{"use strict";n.d(t,{buildAPIBaseUrl:()=>c,convertSVGtoImg:()=>O,epochToMomentTimeZone:()=>s,getCurrentLocation:()=>i,getCurrentUserLanguage:()=>m,getEventHosts:()=>w,getEventLocation:()=>b,getFromLocalStorage:()=>d,getOrigin:()=>l,getTimeServiceUrl:()=>y,hasErrors:()=>C,isEmpty:()=>f,parseLocationHour:()=>a,putOnLocalStorage:()=>u,removeFromLocalStorage:()=>p,retryPromise:()=>E,scrollToError:()=>g,setSessionClearingState:()=>h,shallowEqual:()=>v,toSlug:()=>o});var r=n(5812),A=n.n(r);n(8041);const s=(e,t)=>e?(e*=1e3,A()(e).tz(t)):e,a=e=>{let t=e.toString();return t.length<4&&(t=`0${t}`),t=t.match(/.{2}/g),t=t.join(":"),t},o=e=>(e=e.toLowerCase()).replace(/[^a-zA-Z0-9]+/g,"_"),i=()=>{let e="";return"undefined"!=typeof window&&(e=window.location,window.top&&(e=window.top.location)),e},l=()=>"undefined"!=typeof window?window.location.origin:null,c=e=>"undefined"!=typeof window?`${window.API_BASE_URL}${e}`:null``,u=(e,t)=>{"undefined"!=typeof window&&window.localStorage.setItem(e,t)},d=(e,t)=>{if("undefined"!=typeof window){let n=window.localStorage.getItem(e);return t&&(console.log(`getFromLocalStorage removing key ${e}`),p(e)),n}return null},p=e=>{"undefined"!=typeof window&&window.localStorage.removeItem(e)},h=e=>{"undefined"!=typeof window&&(window.clearing_session_state=e)},m=()=>{let e="en";return"undefined"!=typeof navigator&&(e=navigator.languages&&navigator.languages[0]||navigator.language||navigator.userLanguage),e},g=e=>{if(Object.keys(e).length>0){const t=Object.keys(e)[0],n=document.getElementById(t);n&&window.scrollTo(0,(e=>{var t=-70;if(e.offsetParent){do{t+=e.offsetTop}while(e=e.offsetParent);return[t]}})(n))}},C=(e,t)=>e in t?t[e]:"",v=(e,t)=>{const n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let r of n)if(e[r]!==t[r])return!1;return!0},f=e=>0===Object.keys(e).length,E=async(e,t=3)=>{for(let n=0;n"undefined"!=typeof window?window.TIMEINTERVALSINCE1970_API_URL||process.env.TIMEINTERVALSINCE1970_API_URL:null,b=(e,t,n=null,r=null)=>{var A,s;const a=!n||!r||1e3*n1&&null!==(A=i.venue)&&void 0!==A&&A.name&&o.push(i.venue.name),null!==(s=i.floor)&&void 0!==s&&s.name&&o.push(i.floor.name),i.name&&o.push(i.name),o.length>0?o.join(" - "):"TBA"):"TBA"},w=e=>{var t;let n=[];return(null===(t=e.speakers)||void 0===t?void 0:t.length)>0&&(n=[...e.speakers]),e.moderator&&n.push(e.moderator),n},O=async e=>{const t=await(async e=>{const t=document.createElement("img");return t.src=e,t.crossOrigin="anonymous",new Promise(((e,n)=>{t.onload=()=>e(t),t.onerror=n}))})(e),n=100,r=Math.floor(100*t.naturalHeight/t.naturalWidth),A=document.createElement("canvas");A.width=n,A.height=r,A.getContext("2d").drawImage(t,0,0,n,r);const s=await A.toDataURL("image/png",1);return console.log(s,n,r),{url:s,width:n,height:r}}},5301:(e,t,n)=>{"use strict";n.d(t,{DEFAULT_PAGE_SIZE:()=>u,getCountryList:()=>Q,getLanguageList:()=>k,queryAccessLevels:()=>O,queryAttendees:()=>m,queryCompanies:()=>y,queryEvents:()=>f,queryGroups:()=>E,queryMembers:()=>h,queryOrganizations:()=>S,queryPromocodes:()=>D,queryRegistrationCompanies:()=>b,querySpeakers:()=>C,querySponsoredProjects:()=>B,querySponsors:()=>w,querySummits:()=>g,queryTags:()=>v,queryTicketTypes:()=>I});var r=n(9087),A=n(2183),s=n(9558);const a=require("lodash/debounce");var o=n.n(a),i=n(8041),l=n.n(i);const c=500;l().escapeQuerySpace=!1;const u=10,d=async(e,t,n={})=>fetch((0,s.buildAPIBaseUrl)(e.toString()),n).then(r.fetchResponseHandler).then((e=>{"function"==typeof t&&t(e.data)})).catch((e=>(404===(e&&e.status)&&"function"==typeof t&&t([]),e))).catch(r.fetchErrorHandler),p=async(e,t,n={})=>{let r;try{r=await(0,A.getAccessToken)()}catch(e){return void("function"==typeof t&&t(e))}return e.addQuery("access_token",r),d(e,t,n)},h=o()((async(e,t,n=u)=>{let A=l()("/api/v1/members");A.addQuery("expand","tickets,rsvp,schedule_summit_events,all_affiliations"),A.addQuery("order","first_name,last_name"),A.addQuery("page",1),A.addQuery("per_page",n),e&&(e=(0,r.escapeFilterValue)(e),A.addQuery("filter[]",`full_name@@${e},first_name@@${e},last_name@@${e},email@@${e}`)),p(A,t)}),c),m=o()((async(e,t,n,A=u)=>{let s=l()(`/api/v1/summits/${e}/attendees`);s.addQuery("order","first_name,last_name"),s.addQuery("page",1),s.addQuery("per_page",A),t&&(t=(0,r.escapeFilterValue)(t),s.addQuery("filter[]",`full_name=@${t},email=@${t}`)),p(s,n)}),c),g=o()((async(e,t,n=u)=>{let A=l()("/api/v1/summits/all");A.addQuery("expand","tickets,rsvp,schedule_summit_events,all_affiliations"),A.addQuery("order","name"),A.addQuery("page",1),A.addQuery("per_page",n),e&&(e=(0,r.escapeFilterValue)(e),A.addQuery("filter[]",`name@@${e}`)),p(A,t)}),c),C=o()((async(e,t,n,A=u)=>{let s=l()("/api/v1/"+(e?`summits/${e}/speakers`:"speakers"));s.addQuery("expand","member,registration_request"),s.addQuery("order","first_name,last_name"),s.addQuery("page",1),s.addQuery("per_page",A),t&&(t=(0,r.escapeFilterValue)(t),s.addQuery("filter[]",`full_name@@${t},first_name@@${t},last_name@@${t},email@@${t}`)),p(s,n)}),c),v=o()((async(e,t,n,A=50)=>{let s=l()("/api/v1/"+(e?`summits/${e}/track-tag-groups/all/allowed-tags`:"tags"));e&&s.addQuery("expand","tag,track_tag_group"),s.addQuery("order","tag"),s.addQuery("page",1),s.addQuery("per_page",A),t&&(t=(0,r.escapeFilterValue)(t),s.addQuery("filter[]",`tag@@${t}`)),p(s,n)}),c),f=(o()((async(e,t,n,A=[],s=u)=>{let a=l()(`/api/v1/summits/${e}/tracks`);a.addQuery("order","name"),a.addQuery("page",1),a.addQuery("per_page",s),(null==A?void 0:A.length)>0&&a.addQuery("filter[]",`not_id==${A.join("||")}`),t&&(t=(0,r.escapeFilterValue)(t),a.addQuery("filter[]",`name@@${t}`)),p(a,n)}),c),o()((async(e,t,n,A=u)=>{let s=l()(`/api/v1/summits/${e}/track-groups`);s.addQuery("order","name"),s.addQuery("page",1),s.addQuery("per_page",A),t&&(t=(0,r.escapeFilterValue)(t),s.addQuery("filter[]",`name@@${t}`)),p(s,n)}),c),o()((async(e,t,n=!1,A,s=u)=>{let a=l()(`/api/v1/summits/${e}/events`+(n?"/published":""));a.addQuery("order","title"),a.addQuery("page",1),a.addQuery("per_page",s),t&&(t=(0,r.escapeFilterValue)(t),a.addQuery("filter[]",`title@@${t}`)),p(a,A)}),c)),E=(o()((async(e,t,n,A=null,s=u)=>{let a=l()(`/api/v1/summits/${e}/event-types`);a.addQuery("order","name"),a.addQuery("page",1),a.addQuery("per_page",s),t&&(t=(0,r.escapeFilterValue)(t),a.addQuery("filter[]",`name@@${t}`)),A&&(A=(0,r.escapeFilterValue)(A),a.addQuery("filter[]",`class_name==${A}`)),p(a,n)}),c),o()((async(e,t,n=u)=>{let A=l()("/api/v1/groups");A.addQuery("order","title,code"),A.addQuery("page",1),A.addQuery("per_page",n),e&&(e=(0,r.escapeFilterValue)(e),A.addQuery("filter[]",`title@@${e},code@@${e}`)),p(A,t)}),c)),y=o()((async(e,t,n=u)=>{let A=l()("/api/v1/companies");A.addQuery("order","name"),A.addQuery("page",1),A.addQuery("per_page",n),e&&(e=(0,r.escapeFilterValue)(e),A.addQuery("filter[]",`name@@${e}`)),p(A,t)}),c),b=o()((async(e,t,n,A=u)=>{let s=l()(`/api/v1/summits/${e}/registration-companies`);s.addQuery("order","name"),s.addQuery("page",1),s.addQuery("per_page",A),t&&(t=(0,r.escapeFilterValue)(t),s.addQuery("filter[]",`name@@${t}`)),p(s,n)}),c),w=o()((async(e,t,n,A=u)=>{let s=l()(`/api/v1/summits/${e}/sponsors`);s.addQuery("expand","company,sponsorship,sponsorship.type"),s.addQuery("order","id"),s.addQuery("page",1),s.addQuery("per_page",A),t&&(t=(0,r.escapeFilterValue)(t),s.addQuery("filter[]",`company_name@@${t}`)),p(s,n)}),c),O=(o()((async(e,t,n,A=u)=>{let s=l()(`/api/v1/summits/${e}/sponsors`);s.addQuery("expand","company,sponsorship,sponsorship.type"),s.addQuery("fields","id,company.name,sponsorship.type.name"),s.addQuery("relations","none,company.none,sponsorship.type.none"),s.addQuery("filter[]","badge_scans_count>0"),s.addQuery("order","+company_name"),s.addQuery("page",1),s.addQuery("per_page",A),t&&(t=(0,r.escapeFilterValue)(t),s.addQuery("filter[]",`company_name@@${t}`)),p(s,n)}),c),o()((async(e,t,n,A=u)=>{let s=l()(`/api/v1/summits/${e}/access-level-types`);s.addQuery("order","name"),s.addQuery("page",1),s.addQuery("per_page",A),t&&(t=(0,r.escapeFilterValue)(t),s.addQuery("filter[]",`name@@${t}`)),p(s,n)}),c)),S=o()((async(e,t,n=u)=>{let A=l()("/api/v1/organizations");A.addQuery("order","name"),A.addQuery("page",1),A.addQuery("per_page",n),e&&(e=(0,r.escapeFilterValue)(e),A.addQuery("filter[]",`name@@${e}`)),p(A,t)}),c),k=(e,t)=>d(new(l())("/api/public/v1/languages"),e,{signal:t}),Q=(e,t)=>d(new(l())("/api/public/v1/countries"),e,{signal:t});const I=o()((async(e,t={},n,A="v1",s=u)=>{let a=l()(`/api/${A}/summits/${e}/ticket-types`);if(a.addQuery("order","name"),a.addQuery("page",1),a.addQuery("per_page",s),t.hasOwnProperty("name")){const e=(0,r.escapeFilterValue)(t.name);e&&""!=e&&a.addQuery("filter[]",`name@@${e}`)}if(t.hasOwnProperty("audience")){const e=(0,r.escapeFilterValue)(t.audience);e&&""!=e&&a.addQuery("filter[]",`audience==${e}`)}p(a,n)}),c),B=o()((async(e,t,n=u)=>{const A=l()("/api/v1/sponsored-projects");A.addQuery("order","name"),A.addQuery("page",1),A.addQuery("per_page",n),e&&(e=(0,r.escapeFilterValue)(e),A.addQuery("filter[]",`name@@${e}`)),p(A,t)}),c),D=o()((async(e,t,n,A=u,s=[])=>{let a=l()(`/api/v1/summits/${e}/promo-codes`);a.addQuery("order","code"),a.addQuery("page",1),a.addQuery("per_page",A),t&&(t=(0,r.escapeFilterValue)(t),a.addQuery("filter[]",`code@@${t}`));for(const e of s)a.addQuery("filter[]",e);p(a,n)}),c)},356:(e,t,n)=>{"use strict";n.d(t,{default:()=>h});var r=n(1116),A=n.n(r),s=n(9558);function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t{if(this.questionByName[(0,s.toSlug)(e.name)]=e,this.questionById[parseInt(e.id)]=e,e.hasOwnProperty("sub_question_rules"))for(let t of e.sub_question_rules)this.rules[parseInt(t.id)]=t,this._parseQuestion(t.sub_question)})),A()(this,"_parseQuestions",(()=>{for(let e of this.questions)this._parseQuestion(e)})),A()(this,"_allowsValues",(e=>u.includes(e.type))),A()(this,"_allowsValue",((e,t)=>{let n=t.value.split(",").map((e=>parseInt(e)));for(let t of n)if(!e.values.map((e=>e.id)).includes(t))return!1;return!0})),A()(this,"_getAnswerFor",(e=>{let t=Number.isInteger(e)?e:e.id,n=this.answers[t]||null;return n||null})),A()(this,"_hasValue",(e=>""!==e.value)),A()(this,"_answerContains",((e,t)=>e.value.split(",").includes(t))),A()(this,"_isSubQuestionVisible",(e=>{let t=e.answer_values_operator===d;const n=this._getAnswerFor(e.parent_question_id);if(n)switch(e.visibility_condition){case p:for(let r of e.answer_values)t=e.answer_values_operator===d?t&&this._answerContains(n,r):t||this._answerContains(n,r);break;case"NotEqual":for(let r of e.answer_values)t=e.answer_values_operator===d?t&&!this._answerContains(n,r):t||!this._answerContains(n,r)}else t=e.visibility_condition!==p;return"Visible"===e.visibility?t:!t})),A()(this,"_isAnswered",(e=>{const t=this._getAnswerFor(e);if("MainQuestion"===e.class)return!e.mandatory||!!t&&(!!this._hasValue(t)&&!(this._allowsValues(e)&&!this._allowsValue(e,t)));for(let n of e.parent_rules)if(this._isSubQuestionVisible(this.rules[n]))return!e.mandatory||!!t&&(!!this._hasValue(t)&&!(this._allowsValues(e)&&!this._allowsValue(e,t)));return!0})),A()(this,"_checkQuestion",(e=>{let t=this._isAnswered(e);if(e.hasOwnProperty("sub_question_rules"))for(let n of e.sub_question_rules)t=t&&this._checkQuestion(n.sub_question);return t})),A()(this,"_formatQuestionAnswer",(e=>{var t,n;let r={};const A=(0,s.toSlug)(e.name);let a=null===(t=this.originalAnswers.find((t=>t.question_id===e.id)))||void 0===t?void 0:t.value;if(!a&&(null==e||null===(n=e.values)||void 0===n?void 0:n.length)>0){const t=e.values.find((e=>e.is_default));t&&(a=t.id.toString())}if(a&&("CheckBox"===e.type&&(a="false"!==a&&!!a),e.type!==c&&e.type!==i||(a=parseInt(a)),e.type===l&&(a=a.split(",").map((e=>parseInt(e)))||[])),r[A]=a||"",e.type===l&&""===r[A]&&(r[A]=[]),e.hasOwnProperty("sub_question_rules"))for(let t of e.sub_question_rules){let e=this._formatQuestionAnswer(t.sub_question);r=o(o({},r),e)}return r})),A()(this,"formatAnswers",(()=>{let e={};return this.questions.forEach((t=>{let n=this._formatQuestionAnswer(t);e=o(o({},e),n)})),e})),A()(this,"completed",(()=>{let e=!0;for(let t of this.questions)e=e&&this._checkQuestion(t);return e})),A()(this,"getQuestionByName",(e=>{const t=(0,s.toSlug)(e);return this.questionByName[e]||this.questionByName[t]||null})),A()(this,"getQuestionById",(e=>this.questionById[parseInt(e)]||null)),this.questions=e,this.originalAnswers=t,this.answers=[];for(let e of this.originalAnswers)this.answers[e.question_id]=e;this.questionByName={},this.questionById={},this.rules={},this._parseQuestions()}}},9401:(e,t,n)=>{var r={"./en.json":5553,"./es.json":2706,"./zh.json":4028};function A(e){var t=s(e);return n(t)}function s(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}A.keys=function(){return Object.keys(r)},A.resolve=s,e.exports=A,A.id=9401},2644:e=>{"use strict";e.exports="data:image/png;base64,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"},1788:e=>{"use strict";e.exports="data:image/png;base64,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KCQAAKCQAACAQgIAAAoJAAAoJAAAoJAAAIBCAgAACgkAACgkAACgkAAAgEICAAAKCQAAKCQAAKCQAACAQgIAAAoJAAAoJAAAoJAAAIBCAgAACgkAACgkAACgkAAAgEICAAAKCQAAKCQAAKCQAACAQgIAAAoJAAAoJAAAoJAAAIBCAgAACgkAACgkAACgkAAAgEICAAAKCQAAKCQAAKCQAACAQgIAAAoJAAAoJAAAoJAAAIBCAgAACgkAACgkAACgkAAAgEICAAAKCQAAKCQAAKCQAACAQgIAAAoJAAAoJAAAoJAAAIBCAgAACgkAACgkAACgkAAAgEICAAAKCQAAKCQAAKCQAACAQgIAAAoJAAAoJAAAoJAAAIBCAgAACgkAACgkAACgkAAAgEICAAAKCQAAKCQAAKCQAACAQgIAAAoJAAAoJAAAoJAAAIBCAgAACgkAACgkAACgkAAAgEICAAAKCQAAKCQAAKCQAACAQgIAAAoJAAAoJAAAoJAAAIBCAgAACgkAACgkAACgkAAAgEICAAAKCQAAKCQAAKCQAACAQgIAAAoJAAAoJAAAoJAAAIBCAgAACgkAACgkAACgkAAAgEICAAAKCQAAKCQAAKCQAACAQgIAAAoJAAAoJAAAoJAAAIBCAgAACgkAACgkAACgkAAAgEICAAAKCQAAKCQAAKCQAACAQgIAAAoJAAAoJAAAoJAAAIBCAgAACgkAACgkAACgkAAAgEICAAAKCQAAKCQAAKCQAACAQgIAAAoJAAAoJAAAoJAAAIBCAgAACgkAACgkAACgkAAAgEICAAAKCQAAKCQAAKCQAACAQgIAAAoJAAAoJAAAoJAAAIBCAgAACgkAACgkAACgkAAAgEICAAAKCQAAKCQAAKCQAACAQgIAAAoJAAAoJAAAoJAAAIBCAgAACgkAACgkAACgkAAAgEICAAAKCQAAKCQAAKCQAACAQgIAAAoJAAAoJAAAoJAAAIBCAgAACgkAACgkAACgkAAAgEICAAAKCQAAKCQAAKCQAACAQgIAAAoJAAAoJAAAoJAAAIBCAgAACgkAACgkAACgkAAAgEICAAAKCQAAKCQAAKCQAACAQgIAAAoJAAAoJAAAoJAAAIBCAgAACgkAACgkAACgkAAAgEICAAAKCQAAKCQAAKCQAACAQgIAAAoJAAAoJAAAoJAAAIBCAgCAdgdGDxhBAIxzz5LHHTXpCoDddMwKx9492YoZEwDjfHLJ406ZdAXAbjp1hWPvmGzFjAmAcW5b8rinTLoCYDetct/5L5OtmDEBMM4/LHnceUmOn3IIwA561pLH3Zfk5imHzJUAGOevljzumCTfNOUQgB1zcpLnLHnsh5N8esItsyUAxnnfCsd+/2QrAHbP/iz/IsD3TjkE/i/HJbkzi7efLPP1gjEzAbbKI5N8LMvft14yZibtbszyP6S3JfnCMTMBtsZvZfn71c8kOWHMTNp9c5b/QT2Q5I+SHDtkKcD8vTSr3af++piZkOxN8o9Z7Qf2XUn2jRgLMGM/lNXuSw8kOX/IUrjflVn9h/Zv4voAAMniIfw3ZvX70XcP2Aqf48gkf5vVf3j/K8nPZbWrXQHsiqOTfFeSf87q95/3Jnn65ifD53tWVv8BfnAI/F6S70lyTrygBdhNRyd5fJLnJbkuyb/l0O83f2HD22dpz+gBfNarkrxkTee6L4sfcoBdsXdN5/lQkqdl+c9j2VkCYD6OSfLHSb509BCAHfXpJF+R5K9HD5kDVwKcj7uyuOTvLaOHAOyge5NcFr/8P0sAzMttSb4myT+NHgKwQ+7L4gWDN44eMicCYH4+nOQZST44egjADrgzi8v9vnHwjtkRAPP0kSRfnuSmwTsAttmtSZ6Z5K2jh8zRul5VyfrdmeTNSW5PckEWb4EBYDnXJ3lukptHD5krjwDM33VJzkrya1k8jwXAQ/vLJM9OcnmSjw/eMmveBrhdzkzyg0lemOT4wVsA5uJAkj9M8sosnjp1HZQlCIDttC/JxUm+MclXJ3nU0DUAm/epJH+a5A+yeI7fW6hXJAB2w6OyeJrg9CSPSPKweH0HsDsOZHGtlE9kce3/DyX5+yze2w8AAAAAAAAAAAAAAAAAAAAAALB9/ht8xmXxSgNe+QAAAABJRU5ErkJggg=="},2138:e=>{"use strict";e.exports="data:image/png;base64,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"},1033:e=>{"use strict";e.exports="data:image/png;base64,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"},8810:e=>{"use strict";e.exports="data:image/png;base64,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"},1116:e=>{"use strict";e.exports=require("@babel/runtime/helpers/defineProperty")},6031:e=>{"use strict";e.exports=require("@babel/runtime/helpers/extends")},2462:e=>{"use strict";e.exports=require("@babel/runtime/helpers/objectWithoutProperties")},1536:e=>{"use strict";e.exports=require("awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css")},4999:e=>{"use strict";e.exports=require("dropzone")},6842:e=>{"use strict";e.exports=require("i18n-react/dist/i18n-react")},9891:e=>{"use strict";e.exports=require("idtoken-verifier")},7825:e=>{"use strict";e.exports=require("lodash")},5812:e=>{"use strict";e.exports=require("moment-timezone")},9825:e=>{"use strict";e.exports=require("prop-types")},2015:e=>{"use strict";e.exports=require("react")},6924:e=>{"use strict";e.exports=require("react-dnd")},9755:e=>{"use strict";e.exports=require("react-rte")},8466:e=>{"use strict";e.exports=require("react-select")},2113:e=>{"use strict";e.exports=require("react-select/lib/Async")},2934:e=>{"use strict";e.exports=require("react-select/lib/AsyncCreatable")},5433:e=>{"use strict";e.exports=require("react-tooltip")},806:e=>{"use strict";e.exports=require("superagent/lib/client")},9236:e=>{"use strict";e.exports=require("sweetalert2")},8041:e=>{"use strict";e.exports=require("urijs")},5553:e=>{"use strict";e.exports=JSON.parse('{"errors":{"user_not_auth":"Hold on. Your user is not authenticated!.","user_not_authz":"Hold on. Your user is not authorized!.","session_expired":"Hold on. Your session expired!.","server_error":"There was a problem with our server, please contact admin."},"general":{"select_summit":"Select a Summit...","add":"Add","clear":"Clear","remove":"Remove","drop_files":"Drop images or click to select files to upload.","search":"Search","save":"Save","done":"Done!","drag_and_drop":"Drag and Drop to sort items.","other":"Other","type_something":"Type something and press tab or enter.","are_you_sure":"Are you sure?","yes_delete":"Yes, delete.","remove_warning":"Are you sure you want to delete this?"}}')},2706:e=>{"use strict";e.exports=JSON.parse('{"errors":{"user_not_auth":"Hold on. Your user is not authenticated!.","user_not_authz":"Hold on. Your user is not authorized!.","session_expired":"Hold on. Your session expired!.","server_error":"There was a problem with our server, please contact admin."},"general":{"select_summit":"Select a Summit...","add":"Add","clear":"Clear","remove":"Remove","drop_files":"Drop images or click to select files to upload.","search":"Search","save":"Save","done":"Done!","drag_and_drop":"Drag and Drop to sort items.","other":"Other","type_something":"Type something and press tab or enter.","are_you_sure":"Are you sure?","yes_delete":"Yes, delete.","remove_warning":"Are you sure you want to delete this?"}}')},4028:e=>{"use strict";e.exports=JSON.parse('{"errors":{"user_not_auth":"坚持,稍等。您的用户没有经过身份验证!","user_not_authz":"坚持,稍等。您的用户未经授权!","session_expired":"坚持,稍等。你的会话已经过期了!","server_error":"我们的服务器出现问题,请联系管理员。"},"general":{"select_summit":"选择峰会...","add":"加","clear":"明确","remove":"去掉","drop_files":"删除图像或单击以选择要上载的文件。","search":"搜索","save":"保存","done":"完成!","drag_and_drop":"拖放以对项目进行排序。","other":"其他","type_something":"输入内容并按Tab键或输入。","are_you_sure":"你确定吗?","yes_delete":"是的,删除。","remove_warning":"你确定要删除这个吗?"}}')}},t={};function n(r){var A=t[r];if(void 0!==A)return A.exports;var s=t[r]={exports:{}};return e[r](s,s.exports,n),s.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 r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}})(),(()=>{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 r={};return(()=>{"use strict";n.r(r),n.d(r,{AccessLevelsInput:()=>Z.default,ActionDropdown:()=>M.default,AjaxLoader:()=>s.default,AttendanceTracker:()=>W.default,AttendeeInput:()=>O.default,BulkActionsSelector:()=>se.default,CheckboxList:()=>z.default,CircleButton:()=>_.default,Clock:()=>G.default,ClockProvider:()=>X.ClockProvider,CompanyInput:()=>p.default,CountryDropdown:()=>C.default,CountryInput:()=>F.default,DateTimePicker:()=>i.default,Dropdown:()=>v.default,EditableTable:()=>T.default,EventInput:()=>y.default,Exclusive:()=>V.default,FreeMultiTextInput:()=>K.default,FreeTextSearch:()=>o.default,GroupInput:()=>b.default,GroupedDropdown:()=>l.default,Input:()=>B.default,LanguageInput:()=>q.default,MemberInput:()=>w.default,OperatorInput:()=>Q.default,OrganizationInput:()=>g.default,Panel:()=>D.default,PromocodeInput:()=>h.default,RadioList:()=>j.default,RawHTML:()=>a.default,RegistrationCompanyInput:()=>$.default,RsvpForm:()=>U.default,ScheduleBuilderView:()=>ae.default,SelectableTable:()=>R.default,SimpleForm:()=>L.default,SimpleLinkList:()=>P.default,SortableTable:()=>x.default,SpeakerInput:()=>k.default,SponsorInput:()=>m.default,SponsoredProjectInput:()=>te.default,SteppedSelect:()=>ne.default,SummitDaysSelect:()=>re.default,SummitDropdown:()=>H.default,SummitInput:()=>S.default,SummitVenuesSelect:()=>Ae.default,Table:()=>N.default,TagInput:()=>I.default,TextArea:()=>E.default,TextEditor:()=>f.default,TicketTypesInput:()=>ee.default,UploadInput:()=>c.default,UploadInputV2:()=>u.default,UploadInputV3:()=>d.default,VideoStream:()=>Y.default,createExternalStore:()=>J.createExternalStore,useClock:()=>X.useClock,useClockSelector:()=>X.useClockSelector});n(2015);const e=require("i18n-react");var t=n.n(e),A=n(9558),s=n(9445),a=n(5028),o=n(257),i=n(1443),l=n(7137),c=n(349),u=n(709),d=n(5716),p=n(2739),h=n(6442),m=n(9094),g=n(1287),C=n(4813),v=n(6604),f=n(3798),E=n(9994),y=n(4256),b=n(2887),w=n(1134),O=n(1278),S=n(3535),k=n(3007),Q=n(1916),I=n(7668),B=n(7651),D=n(3034),P=n(8964),H=n(531),N=n(4216),x=n(2567),T=n(2479),R=n(3298),L=n(4348),U=n(941),j=n(5639),z=n(7017),M=n(5566),F=n(2690),q=n(1450),K=n(3747),V=n(2865),G=n(2593),X=n(519),J=n(5890),_=n(8430),Y=n(2281),W=n(5429),Z=n(4226),$=n(6403),ee=n(4784),te=n(8943),ne=n(4573),re=n(1),Ae=n(864),se=n(6440),ae=n(827);let oe=(0,A.getCurrentUserLanguage)();oe.length>2&&(oe=oe.split("-")[0],oe=oe.split("_")[0]);try{t().setTexts(n(9401)(`./${oe}.json`))}catch(e){t().setTexts(n(5553))}})(),r})())); +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/lib/components/index.js.map b/lib/components/index.js.map new file mode 100644 index 00000000..bda40735 --- /dev/null +++ b/lib/components/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"components/index.js","mappings":"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","sources":["webpack://openstack-uicore-foundation/webpack/universalModuleDefinition","webpack://openstack-uicore-foundation/./src/components/ajaxloader/index.js","webpack://openstack-uicore-foundation/./src/components/attendance-tracker.js","webpack://openstack-uicore-foundation/./src/components/bulk-actions-selector/index.js","webpack://openstack-uicore-foundation/./src/components/circle-button/index.module.scss","webpack://openstack-uicore-foundation/./src/components/circle-button/index.js","webpack://openstack-uicore-foundation/./src/components/clock-context.js","webpack://openstack-uicore-foundation/./src/components/clock.js","webpack://openstack-uicore-foundation/./src/components/exclusive-wrapper.js","webpack://openstack-uicore-foundation/external commonjs \"react-final-form\"","webpack://openstack-uicore-foundation/./src/components/extra-questions/constants.js","webpack://openstack-uicore-foundation/./src/components/extra-questions/index.js","webpack://openstack-uicore-foundation/./src/components/forms/rsvp-form.js","webpack://openstack-uicore-foundation/./src/components/forms/simple-form.js","webpack://openstack-uicore-foundation/./src/components/fragment-parser.js","webpack://openstack-uicore-foundation/./src/components/free-text-search/index.js","webpack://openstack-uicore-foundation/./src/components/inputs/access-levels-input.js","webpack://openstack-uicore-foundation/./src/components/inputs/action-dropdown/index.js","webpack://openstack-uicore-foundation/./src/components/inputs/attendee-input.js","webpack://openstack-uicore-foundation/./src/components/inputs/checkbox-list.js","webpack://openstack-uicore-foundation/./src/components/inputs/company-input.js","webpack://openstack-uicore-foundation/./src/components/inputs/country-dropdown.js","webpack://openstack-uicore-foundation/./src/components/inputs/country-input.js","webpack://openstack-uicore-foundation/external commonjs \"react-datetime\"","webpack://openstack-uicore-foundation/./src/components/inputs/datetimepicker/index.js","webpack://openstack-uicore-foundation/./src/components/inputs/dropdown.js","webpack://openstack-uicore-foundation/external commonjs \"extend\"","webpack://openstack-uicore-foundation/external commonjs \"dropzone/dist/dropzone.css\"","webpack://openstack-uicore-foundation/./src/components/inputs/dropzone/icon.js","webpack://openstack-uicore-foundation/./src/components/inputs/dropzone/index.js","webpack://openstack-uicore-foundation/./src/components/inputs/editor-input/index.js","webpack://openstack-uicore-foundation/./src/components/inputs/event-input.js","webpack://openstack-uicore-foundation/external commonjs \"react-select/lib/Creatable\"","webpack://openstack-uicore-foundation/./src/components/inputs/free-multi-text-input.js","webpack://openstack-uicore-foundation/./src/components/inputs/group-input.js","webpack://openstack-uicore-foundation/./src/components/inputs/grouped-dropdown/OptionGroup.js","webpack://openstack-uicore-foundation/./src/components/inputs/grouped-dropdown/index.js","webpack://openstack-uicore-foundation/./src/components/inputs/language-input.js","webpack://openstack-uicore-foundation/./src/components/inputs/member-input.js","webpack://openstack-uicore-foundation/./src/components/inputs/operator-input.js","webpack://openstack-uicore-foundation/./src/components/inputs/organization-input.js","webpack://openstack-uicore-foundation/./src/components/inputs/promocode-input.js","webpack://openstack-uicore-foundation/./src/components/inputs/radio-list.js","webpack://openstack-uicore-foundation/./src/components/inputs/registration-company-input.js","webpack://openstack-uicore-foundation/external commonjs \"react-select/lib/components\"","webpack://openstack-uicore-foundation/./src/components/inputs/speaker-input.js","webpack://openstack-uicore-foundation/./src/components/inputs/sponsor-input.js","webpack://openstack-uicore-foundation/./src/components/inputs/sponsored-project-input.js","webpack://openstack-uicore-foundation/./src/components/inputs/stepped-select/index.module.less?b434","webpack://openstack-uicore-foundation/./src/components/inputs/stepped-select/index.jsx","webpack://openstack-uicore-foundation/./src/components/inputs/summit-days-select.js","webpack://openstack-uicore-foundation/./src/components/inputs/summit-input.js","webpack://openstack-uicore-foundation/./src/components/inputs/summit-venues-select.js","webpack://openstack-uicore-foundation/./src/components/inputs/tag-input.js","webpack://openstack-uicore-foundation/./src/components/inputs/text-input.js","webpack://openstack-uicore-foundation/./src/components/inputs/textarea-input.js","webpack://openstack-uicore-foundation/./src/components/inputs/ticket-types-input.js","webpack://openstack-uicore-foundation/./src/components/inputs/upload-input-v2/index.js","webpack://openstack-uicore-foundation/external commonjs \"@mui/material\"","webpack://openstack-uicore-foundation/external commonjs \"@mui/icons-material\"","webpack://openstack-uicore-foundation/./src/components/inputs/upload-input-v3/dropzone-v3.js","webpack://openstack-uicore-foundation/./src/components/inputs/upload-input-v3/index.js","webpack://openstack-uicore-foundation/external commonjs \"react-dropzone\"","webpack://openstack-uicore-foundation/./src/components/inputs/upload-input/index.js","webpack://openstack-uicore-foundation/./src/components/progressive-img/index.module.scss","webpack://openstack-uicore-foundation/./src/components/progressive-img/index.js","webpack://openstack-uicore-foundation/./src/components/raw-html/index.js","webpack://openstack-uicore-foundation/./src/components/schedule-builder-view/constants.js","webpack://openstack-uicore-foundation/external commonjs \"react-bootstrap\"","webpack://openstack-uicore-foundation/./src/components/schedule-builder-view/schedule-event.js","webpack://openstack-uicore-foundation/external commonjs \"react-dom\"","webpack://openstack-uicore-foundation/./src/components/schedule-builder-view/schedule-event-list.js","webpack://openstack-uicore-foundation/external commonjs \"@react-pdf/renderer\"","webpack://openstack-uicore-foundation/./src/components/schedule-print/schedule-print-view.js","webpack://openstack-uicore-foundation/./src/components/schedule-print/styles.module.scss","webpack://openstack-uicore-foundation/./src/components/schedule-print/schedule-print-button.js","webpack://openstack-uicore-foundation/./src/components/schedule-builder-view/index.js","webpack://openstack-uicore-foundation/./src/components/sections/panel.js","webpack://openstack-uicore-foundation/./src/components/security/constants.js","webpack://openstack-uicore-foundation/external commonjs \"browser-tabs-lock\"","webpack://openstack-uicore-foundation/external commonjs \"js-cookie\"","webpack://openstack-uicore-foundation/./src/components/security/methods.js","webpack://openstack-uicore-foundation/./src/components/simple-link-list/index.js","webpack://openstack-uicore-foundation/./src/components/summit-dropdown/index.js","webpack://openstack-uicore-foundation/./src/components/table-editable/EditableTableHeading.js","webpack://openstack-uicore-foundation/./src/components/table-editable/EditableTableCell.js","webpack://openstack-uicore-foundation/./src/components/table-editable/EditableActionsTableCell.js","webpack://openstack-uicore-foundation/./src/components/table-editable/EditableTableRow.js","webpack://openstack-uicore-foundation/./src/components/table-editable/EditableTable.js","webpack://openstack-uicore-foundation/./src/components/table-selectable/SelectableTableHeading.js","webpack://openstack-uicore-foundation/./src/components/table-selectable/SelectableTableCell.js","webpack://openstack-uicore-foundation/./src/components/table-selectable/SelectableTableRow.js","webpack://openstack-uicore-foundation/./src/components/table-selectable/SelectableActionsTableCell.js","webpack://openstack-uicore-foundation/./src/components/table-selectable/SelectableTable.js","webpack://openstack-uicore-foundation/external commonjs \"immutability-helper\"","webpack://openstack-uicore-foundation/external commonjs \"react-dnd-html5-backend\"","webpack://openstack-uicore-foundation/./src/components/table-sortable/SortableTableHeading.js","webpack://openstack-uicore-foundation/./src/components/table-sortable/SortableActionsTableCell.js","webpack://openstack-uicore-foundation/./src/components/table-sortable/SortableTableRow.js","webpack://openstack-uicore-foundation/./src/components/table-sortable/SortableTable.js","webpack://openstack-uicore-foundation/./src/components/table/TableHeading.js","webpack://openstack-uicore-foundation/./src/components/table/TableRow.js","webpack://openstack-uicore-foundation/./src/components/table/ActionsTableCell.js","webpack://openstack-uicore-foundation/./src/components/table/Table.js","webpack://openstack-uicore-foundation/./src/components/table/TableCell.js","webpack://openstack-uicore-foundation/external commonjs \"video.js\"","webpack://openstack-uicore-foundation/external commonjs \"video.js/dist/video-js.css\"","webpack://openstack-uicore-foundation/./src/components/video-stream.js","webpack://openstack-uicore-foundation/./src/models/summit-event.js","webpack://openstack-uicore-foundation/./src/utils/actions.js","webpack://openstack-uicore-foundation/external commonjs \"spark-md5\"","webpack://openstack-uicore-foundation/external commonjs \"crypto-js/sha256\"","webpack://openstack-uicore-foundation/external commonjs \"crypto-js/enc-base64url\"","webpack://openstack-uicore-foundation/external commonjs \"crypto-js/enc-hex\"","webpack://openstack-uicore-foundation/./src/utils/crypto.js","webpack://openstack-uicore-foundation/external commonjs \"use-sync-external-store/shim\"","webpack://openstack-uicore-foundation/external commonjs \"use-sync-external-store/shim/with-selector\"","webpack://openstack-uicore-foundation/./src/utils/external-store.js","webpack://openstack-uicore-foundation/./src/utils/methods.js","webpack://openstack-uicore-foundation/external commonjs \"lodash/debounce\"","webpack://openstack-uicore-foundation/./src/utils/query-actions.js","webpack://openstack-uicore-foundation/./src/utils/questions-set.js","webpack://openstack-uicore-foundation/./src/i18n/ sync ^\\.\\/.*\\.json$","webpack://openstack-uicore-foundation/external commonjs \"@babel/runtime/helpers/defineProperty\"","webpack://openstack-uicore-foundation/external commonjs \"@babel/runtime/helpers/extends\"","webpack://openstack-uicore-foundation/external commonjs \"@babel/runtime/helpers/objectWithoutProperties\"","webpack://openstack-uicore-foundation/external commonjs \"awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css\"","webpack://openstack-uicore-foundation/external commonjs \"dropzone\"","webpack://openstack-uicore-foundation/external commonjs \"i18n-react/dist/i18n-react\"","webpack://openstack-uicore-foundation/external commonjs \"idtoken-verifier\"","webpack://openstack-uicore-foundation/external commonjs \"lodash\"","webpack://openstack-uicore-foundation/external commonjs \"moment-timezone\"","webpack://openstack-uicore-foundation/external commonjs \"prop-types\"","webpack://openstack-uicore-foundation/external commonjs \"react\"","webpack://openstack-uicore-foundation/external commonjs \"react-dnd\"","webpack://openstack-uicore-foundation/external commonjs \"react-rte\"","webpack://openstack-uicore-foundation/external commonjs \"react-select\"","webpack://openstack-uicore-foundation/external commonjs \"react-select/lib/Async\"","webpack://openstack-uicore-foundation/external commonjs \"react-select/lib/AsyncCreatable\"","webpack://openstack-uicore-foundation/external commonjs \"react-tooltip\"","webpack://openstack-uicore-foundation/external commonjs \"superagent/lib/client\"","webpack://openstack-uicore-foundation/external commonjs \"sweetalert2\"","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 \"i18n-react\"","webpack://openstack-uicore-foundation/./src/components/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 ","/**\n * Copyright 2017 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';\n\nconst AjaxLoader = ({\n show,\n relative,\n color,\n size,\n children,\n }) => {\n\n let styles = {\n display: show ? 'block' : 'none',\n width: '100%',\n height: '100%',\n position: relative ? 'absolute' : 'fixed',\n zIndex: 10000000,\n margin: 'auto',\n cursor: 'wait',\n backgroundColor: 'rgba(0,0,0,0.2)',\n top: 0,\n left: 0\n };\n\n let styleSpinner = {\n fontSize: size + 'px',\n color: 'black',\n };\n\n let styleSpinnerContainer = {\n width: '250px',\n height: '75px',\n textAlign: 'center',\n position: relative ? 'relative' : 'fixed',\n top: relative ? '50%' : '0',\n left: relative ? '' : '0',\n right: '0',\n bottom: '0',\n margin: 'auto',\n zIndex: 10,\n color: '#ffffff'\n };\n\n let styleBackground = {\n background: color,\n opacity: '0.8',\n width: '100%',\n height: '100%',\n position: 'absolute',\n top: 0\n };\n\n return (\n
\n
\n \n
\n {children}\n
\n
\n
\n
\n );\n};\n\nexport default AjaxLoader;\n","/**\n * Copyright 2020 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 http from 'superagent/lib/client';\nimport {getAccessToken} from './security/methods';\n\n// SCOPES NEEDED\n// %s/me/summits/events/leave\n// %s/me/summits/events/enter\n\nclass AttendanceTracker extends React.Component {\n\n componentDidMount() {\n const {trackEnter, onBeforeUnload} = this;\n\n // track enter\n trackEnter();\n\n if (typeof window !== 'undefined') {\n window.addEventListener(\"beforeunload\", onBeforeUnload);\n }\n }\n\n componentWillUnmount() {\n const {trackLeave, onBeforeUnload} = this;\n\n // track leave\n trackLeave();\n\n if (typeof window !== 'undefined') {\n window.removeEventListener(\"beforeunload\", onBeforeUnload);\n }\n }\n\n trackEnter = async () => {\n const {apiBaseUrl, summitId, sourceId, sourceName} = this.props;\n const location = this.getLocation();\n try{\n const accessToken = await getAccessToken();\n http.put(`${apiBaseUrl}/api/v1/summits/${summitId}/metrics/enter`)\n .send({access_token: accessToken, type: sourceName, source_id: sourceId, location: location})\n .end(() => console.log('ENTER PAGE'));\n }\n catch (e){\n console.log(e);\n }\n };\n\n trackLeave = async () => {\n const {apiBaseUrl, summitId, sourceId, sourceName} = this.props;\n const location = this.getLocation();\n try {\n const accessToken = await getAccessToken();\n\n http.post(`${apiBaseUrl}/api/v1/summits/${summitId}/metrics/leave`)\n .send({access_token: accessToken, type: sourceName, source_id: sourceId, location: location})\n .end(() => console.log('LEFT PAGE'));\n }\n catch (e){\n console.log(e);\n }\n };\n\n onBeforeUnload = async () => {\n const {apiBaseUrl, summitId, sourceId, sourceName} = this.props;\n const location = this.getLocation();\n try {\n const accessToken = await getAccessToken();\n navigator.sendBeacon(\n `${apiBaseUrl}/api/v1/summits/${summitId}/metrics/leave?access_token=${accessToken}&type=${sourceName}&source_id=${sourceId}&location=${location}`, {});\n return undefined;\n }\n catch (e){\n console.log(e);\n }\n };\n\n getLocation = () => {\n if (typeof window !== 'undefined') {\n return encodeURIComponent(window.location.href);\n }\n return '';\n };\n\n render() {\n return null;\n }\n}\n\nAttendanceTracker.propTypes = {\n sourceName: PropTypes.string,\n sourceId: PropTypes.number,\n summitId: PropTypes.number.isRequired,\n apiBaseUrl: PropTypes.string.isRequired\n};\n\nAttendanceTracker.defaultProps = {\n sourceId: 0,\n sourceName: 'GENERAL'\n};\n\nexport default AttendanceTracker;\n\n","/**\n * Copyright 2017 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 T from \"i18n-react/dist/i18n-react\";\nimport './styles.less';\nclass ScheduleAdminsBulkActionsSelector extends React.Component {\n\n onPerformBulkAction(){\n let selectedBulkAction = this.actionTypeSelect.value;\n if(selectedBulkAction === '') return;\n this.props.onSelectedBulkAction(selectedBulkAction);\n }\n\n render(){\n let { onSelectAll, bulkOptions, show } = this.props;\n return (\n
\n {show &&\n
\n
\n \n \n
\n
\n \n
\n
\n }\n
\n )\n }\n}\n\nexport default ScheduleAdminsBulkActionsSelector;\n","// extracted by mini-css-extract-plugin\nexport default {\"circleButton\":\"pTjbvR2PI3JIAfGGYR5C\",\"add\":\"BnU6_vcWc8sasL8roBPA\",\"added\":\"yREg1belHCLDAYYfAg77\",\"enter\":\"mFp_9X3SzjgPNXRSXiFR\"};","/**\n * Copyright 2020 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';\n\nimport styles from './index.module.scss';\n\nconst isLive = (event, nowUtc) => {\n const hasEnded = nowUtc > event.end_date;\n const hasStarted = (event.start_date - nowUtc) < 1;\n return hasStarted && !hasEnded;\n};\n\nconst CircleButton = ({event, isScheduled, nowUtc, addToSchedule, removeFromSchedule, enterClick, alwaysShowEnter}) => {\n\n const isLiveNow = isLive(event, nowUtc);\n let buttonClass = null;\n let iconClass = null;\n let onClick = null;\n const handleClick = (ev, action) => {\n ev.preventDefault();\n ev.stopPropagation();\n action(event);\n };\n\n\n if (isLiveNow || alwaysShowEnter) {\n buttonClass = `${styles.enter} enter`;\n iconClass = 'fa-sign-in';\n onClick = ev => handleClick(ev, enterClick);\n } else if (removeFromSchedule && addToSchedule && isScheduled) {\n buttonClass = `${styles.added} added`;\n iconClass = 'fa-check';\n onClick = ev => handleClick(ev, removeFromSchedule);\n } else if (removeFromSchedule && addToSchedule) {\n buttonClass = `${styles.add} add`;\n iconClass = 'fa-plus';\n onClick = ev => handleClick(ev, addToSchedule);\n }\n\n if (!onClick) return null;\n\n\n return (\n \n );\n};\n\nCircleButton.propTypes = {\n event: PropTypes.object.isRequired,\n nowUtc: PropTypes.number.isRequired,\n isScheduled: PropTypes.bool.isRequired,\n enterClick: PropTypes.func.isRequired,\n addToSchedule: PropTypes.func,\n removeFromSchedule: PropTypes.func,\n alwaysShowEnter: PropTypes.bool,\n};\n\nCircleButton.defaultProps = {\n addToSchedule: null,\n removeFromSchedule: null,\n alwaysShowEnter: false\n};\n\nexport default CircleButton;\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 * Pre-built clock store using createExternalStore.\n *\n * Wires the Clock component (server-synced, ticks every second) into a\n * createExternalStore instance. Components choose their update strategy:\n *\n * - useClock() re-renders every second (for countdowns, live displays)\n * - useClockSelector(compute) only re-renders when the computed result changes\n * - Components that use neither are never affected by clock ticks\n *\n * Usage:\n * import { ClockProvider, useClock, useClockSelector } from 'openstack-uicore-foundation/lib/components/clock-context';\n *\n * \n * \n * \n *\n * const nowUtc = useClock();\n *\n * const phase = useClockSelector((nowUtc) => {\n * if (nowUtc < event.start) return 'before';\n * if (nowUtc <= event.end) return 'during';\n * return 'after';\n * });\n *\n * For custom (non-clock) stores, see createExternalStore in utils/external-store.js.\n **/\n\nimport React from 'react';\nimport { createExternalStore } from '../utils/external-store';\nimport Clock from './clock';\n\nconst { Provider, useValue: useClock, useSelector: useClockSelector } = createExternalStore('Clock');\n\n/**\n * ClockProvider - Wraps your app with server-synced clock context.\n *\n * @param {string} timezone - Timezone for the clock (e.g., \"America/New_York\")\n * @param {number} now - Optional initial timestamp (for testing or manual override)\n * @param {React.ReactNode} children - Child components\n */\nexport const ClockProvider = ({ timezone, now, children }) => (\n \n {(emit) => (\n <>\n \n {children}\n \n )}\n \n);\n\nexport { useClock, useClockSelector };\n","/**\n * Copyright 2020 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 **/\nimport React from 'react';\nimport moment from \"moment-timezone\";\nimport FragmentParser from \"./fragment-parser\";\nimport {getTimeServiceUrl} from '../utils/methods';\n\n/**\n * class Clock\n */\nclass Clock extends React.Component {\n\n constructor(props) {\n super(props);\n this.fragmentParser = new FragmentParser();\n this.interval = null;\n this.state = {\n timestamp: null,\n manualSet : false,\n }\n this._isMounted = false;\n this.onVisibilityChange = this.onVisibilityChange.bind(this);\n }\n\n /**\n * @param response\n * @param localBefore\n */\n processServerTimeResponse = (response, localBefore) => {\n const localAfter = moment().unix();\n let timestamp = localAfter;\n if (response) {\n timestamp = response.timestamp + (localAfter - localBefore);\n }\n if(this._isMounted) {\n console.log(`Clock::processServerTimeResponse setting timestamp ${timestamp}`)\n this.setState({timestamp});\n }\n if(this.props.onTick)\n this.props.onTick(timestamp);\n }\n\n processServerTimeResponseError = () => {\n const localAfter = moment().unix();\n let timestamp = localAfter;\n if(this._isMounted) {\n console.log(`Clock::processServerTimeResponseError setting timestamp ${timestamp}`)\n this.setState({timestamp});\n }\n if(this.props.onTick)\n this.props.onTick(timestamp);\n }\n\n componentDidMount() {\n this._isMounted = true;\n const {timezone = 'UTC', now} = this.props;\n const nowQS = this.fragmentParser.getParam('now');\n const momentQS = moment.tz(nowQS, 'YYYY-MM-DD,hh:mm:ss', timezone);\n let timestamp = null;\n let manualSet = false;\n if (momentQS.isValid()) {\n timestamp = momentQS.valueOf() / 1000;\n console.log(`Clock::componentDidMount nowQS ${nowQS} is valid setting timestamp ${timestamp}`);\n manualSet = true;\n } else if (now) {\n timestamp = now\n } else {\n const localBefore = moment().unix();\n this.getServerTime()\n .then((response) => this.processServerTimeResponse(response, localBefore))\n .catch(() => this.processServerTimeResponseError())\n }\n\n if(timestamp) {\n this.setState({timestamp, manualSet});\n if(this.props.onTick)\n this.props.onTick(timestamp);\n }\n\n this.interval = setInterval(this.tick, 1000);\n document.addEventListener(\"visibilitychange\", this.onVisibilityChange, false)\n }\n\n onVisibilityChange() {\n const visibilityState = document.visibilityState;\n const {manualSet} = this.state;\n if (visibilityState === \"visible\") {\n console.log(`Clock::onVisibilityChange manualSet ${manualSet}`)\n if(manualSet) return;\n const localBefore = moment().unix();\n this.getServerTime()\n .then((response) => this.processServerTimeResponse(response, localBefore))\n .catch(() => this.processServerTimeResponseError());\n }\n }\n\n componentWillUnmount() {\n this._isMounted = false;\n clearInterval(this.interval);\n document.removeEventListener(\"visibilitychange\", this.onVisibilityChange)\n this.interval = null;\n }\n\n getServerTime = () => {\n const timeServiceUrl = getTimeServiceUrl();\n return fetch(`${timeServiceUrl}`).then(async (response) => {\n if (response.status === 200) {\n return response.json();\n }\n return Promise.reject(null);\n })\n .catch(err => {\n console.log(err);\n return Promise.reject(err);\n });\n };\n\n tick = () => {\n const {timestamp} = this.state;\n if (timestamp !== null) {\n if(this.props.onTick)\n this.props.onTick(timestamp + 1);\n if(this._isMounted)\n this.setState({timestamp: timestamp + 1})\n }\n };\n\n // epoch utc time in seconds\n now = () => {\n return this.state.timestamp;\n };\n\n render() {\n const {display, timezone = 'UTC'} = this.props;\n const {timestamp} = this.state;\n\n if (!display || !timestamp) return null;\n\n return (\n
\n {moment.tz(timestamp * 1000, timezone).format('YYYY-MM-DD hh:mm:ss')}\n
\n );\n }\n\n}\n\nexport default Clock;\n","/**\n * Copyright 2019 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'\n\n\nexport default class Exclusive extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.showField = this.showField.bind(this);\n }\n\n showField() {\n let {name} = this.props;\n let exclusiveSections = window.EXCLUSIVE_SECTIONS;\n\n return exclusiveSections ? exclusiveSections.includes(name) : false;\n }\n\n render() {\n let {children} = this.props;\n\n if (this.showField()) {\n return children;\n }\n\n return null;\n\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-final-form\");","export const QuestionType_Text = \"Text\";\nexport const QuestionType_TextArea = \"TextArea\";\nexport const QuestionType_Checkbox = \"CheckBox\";\nexport const QuestionType_RadioButtonList = \"RadioButtonList\";\nexport const QuestionType_ComboBox = \"ComboBox\";\nexport const QuestionType_CheckBoxList = \"CheckBoxList\";\nexport const QuestionType_CountryComboBox = \"CountryComboBox\";\nexport const QuestionType_RadioButton = \"RadioButton\";\n\n","/**\n * Copyright 2017 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, {Fragment, useEffect, useRef, useState, useImperativeHandle} from 'react';\nimport PropTypes from 'prop-types';\nimport Input from '../inputs/text-input'\nimport Dropdown from '../inputs/dropdown'\nimport RadioList from '../inputs/radio-list'\nimport CheckboxList from '../inputs/checkbox-list'\nimport QuestionsSet from '../../utils/questions-set';\nimport {Field, Form} from \"react-final-form\";\nimport {toSlug} from \"../../utils/methods\";\nimport {\n QuestionType_Checkbox,\n QuestionType_CheckBoxList,\n QuestionType_ComboBox,\n QuestionType_CountryComboBox,\n QuestionType_RadioButton,\n QuestionType_RadioButtonList,\n QuestionType_Text,\n QuestionType_TextArea\n} from \"./constants\";\n\nimport \"awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css\";\nimport './index.scss';\n\nconst InputAdapter = ({ input, meta, question, className, isDisabled, isRequired, ...rest }) => {\n\n return (\n \n )\n}\n\nconst RadioButtonListAdapter = ({ input, meta, question, isDisabled, isRequired, ...rest }) => {\n\n return (\n \n )};\n\nconst DropdownAdapter = ({ input, meta, question, isDisabled, isRequired, ...rest }) => {\n\n return ()\n}\n\nconst CheckBoxListAdapter = ({ input, meta, question, isDisabled, isRequired, maxValues, ...rest }) => {\n\n const shouldChange = (ev) => {\n const question_answers = ev.target.value;\n // if there's a max value of options checked and the value from the input is higher than the max, don't change the value\n if (maxValues > 0 && question_answers.length > maxValues) {\n return null\n }\n return input.onChange(ev)\n }\n return (\n \n )\n}\n\nconst getValidator = isRequired =>\n isRequired ? value => (value ? undefined : \"Required\") : () => {};\n\nconst ExtraQuestionsForm = React.forwardRef(({\n extraQuestions,\n userAnswers,\n onAnswerChanges,\n className = 'questions-form',\n questionContainerClassName = 'question-container',\n questionLabelContainerClassName = 'question-label-container',\n questionControlContainerClassName= 'question-control-container',\n readOnly = false,\n debug = false,\n buttonText = 'Submit',\n RequiredErrorMessage = 'Required',\n ValidationErrorClassName = 'extra-question-error',\n allowExtraQuestionsEdit = true,\n onError = (e) => console.log('form errors: ', e),\n shouldScroll2FirstError = true\n }, ref) => {\n\n let submit = null;\n\n const questionRefs = useRef({});\n const formRef = useRef(null);\n const [answers, setAnswers] = useState({});\n\n useEffect(() => {\n formatUserAnswers();\n }, [extraQuestions])\n\n // @see https://beta.reactjs.org/reference/react/useImperativeHandle\n useImperativeHandle(ref, () => ({\n doSubmit() {\n formRef.current?.dispatchEvent(new Event(\"submit\", { cancelable: true, bubbles: true }));\n },\n scroll2QuestionById(questionId) {\n scrollToQuestion(questionId);\n }\n }));\n\n const getQuestionRef = (id) => {\n if (!questionRefs.current[id]) {\n questionRefs.current[id] = React.createRef();\n }\n return questionRefs.current[id];\n };\n\n const formatUserAnswers = () => {\n const qs = new QuestionsSet(extraQuestions, userAnswers);\n setAnswers(qs.formatAnswers());\n }\n\n const Condition = ({when, rule, children}) => (\n \n {({input: {value}}) =>\n checkVisibility(rule, checkRule(value, rule), children)\n }\n \n );\n\n const Error = ({ name }) => (\n \n {({ meta: { error, touched, submitFailed } }) =>\n error && (touched || submitFailed) ?
{error}
: null\n }\n
\n );\n\n const checkRule = (value, rule) => {\n let values = rule.answer_values;\n\n if (Array.isArray(value)) {\n if (!value.length) return false;\n let res = rule.answer_values_operator === \"And\";\n values.forEach((v) => {\n if (rule.answer_values_operator === \"And\") {\n res = res && value.includes(parseInt(v));\n } else {\n // Or\n res = res || value.includes(parseInt(v));\n }\n });\n return res;\n }\n return values.includes(value.toString());\n };\n\n const checkVisibility = (rule, ruleResult, children) => {\n if (rule.visibility === \"Visible\") {\n if (rule.visibility_condition === \"Equal\") {\n if (ruleResult) return children;\n delete questionRefs.current[rule.sub_question.id]\n return null;\n }\n // Non Equal\n if(!ruleResult){\n return children;\n }\n delete questionRefs.current[rule.sub_question.id]\n return null;\n }\n // not visible\n if (rule.visibility_condition === \"Equal\") {\n if (!ruleResult) return children;\n delete questionRefs.current[rule.sub_question.id]\n return null;\n }\n if (ruleResult) return children;\n delete questionRefs.current[rule.sub_question.id]\n return null;\n };\n\n const getLabel = (q) => {\n // Keep the last word and the required asterisk on the same line\n const nonBreakingSpace = String.fromCharCode(160); // equals to  \n // replace line breaks and remove outer

\n const label = q?.label?.replace(/\\n/g, '
').replace(/

(.*)<\\/p>/gi, '$1');\n const questions2Exclude = [QuestionType_Checkbox, QuestionType_RadioButton]\n // Asterisk for mandatory questions only shown on label except for those questions\n // included on questions2Exclude\n const labelText = q.mandatory && !questions2Exclude.includes(q.type) ? `${label}${nonBreakingSpace}*` : label;\n return (

\n {getLabel(q)}\n
\n \n \n
\n
\n {q.sub_question_rules?.length > 0 &&\n q.sub_question_rules.map((r) =>\n (\n \n {renderQuestion(r.sub_question)}\n \n )\n )}\n \n );\n }\n if (q.type === QuestionType_TextArea) {\n return (\n \n
\n {getLabel(q)}\n
\n \n \n
\n
\n {q.sub_question_rules?.length > 0 &&\n q.sub_question_rules.map((r) =>\n (\n \n {renderQuestion(r.sub_question)}\n \n )\n )}\n
\n );\n }\n if (q.type === QuestionType_Checkbox) {\n return (\n \n
\n
\n
\n \n
\n
\n \n {getLabel(q)}\n \n
\n \n {q.sub_question_rules?.length > 0 &&\n q.sub_question_rules.map((r) =>\n (\n \n {renderQuestion(r.sub_question)}\n \n )\n )}\n
\n );\n }\n if (q.type === QuestionType_RadioButton){\n return (\n \n
\n
\n
\n \n
\n
\n \n {getLabel(q)}\n \n
\n \n {q.sub_question_rules?.length > 0 &&\n q.sub_question_rules.map((r) =>\n (\n \n {renderQuestion(r.sub_question)}\n \n )\n )}\n
\n );\n }\n if (q.type === QuestionType_RadioButtonList) {\n const options = questionValues.map(val => ({label : val.label, value : val.id}));\n return (\n \n
\n \n {getLabel(q)}\n \n
\n \n \n
\n
\n {q.sub_question_rules?.length > 0 &&\n q.sub_question_rules.map((r) =>\n (\n \n {renderQuestion(r.sub_question)}\n \n )\n )}\n
\n );\n }\n if (q.type === QuestionType_ComboBox || q.type === QuestionType_CountryComboBox) {\n const options = questionValues.map(val => ({label : val.label, value : val.id}));\n return (\n \n
\n \n {getLabel(q)}\n \n
\n \n \n
\n
\n {q.sub_question_rules?.length > 0 &&\n q.sub_question_rules.map((r) =>\n (\n \n {renderQuestion(r.sub_question)}\n \n )\n )}\n
\n );\n }\n if (q.type === QuestionType_CheckBoxList) {\n const options = questionValues.map(val => ({label : val.label, value : val.id}));\n return (\n \n
\n \n {getLabel(q)}\n \n
\n \n \n
\n
\n {q.sub_question_rules?.length > 0 &&\n q.sub_question_rules.map((r) =>\n (\n \n {renderQuestion(r.sub_question)}\n \n )\n )}\n
\n );\n }\n return null;\n };\n\n const isVisible = (q) => {\n return !!questionRefs.current[q.id];\n };\n\n const validateQuestion = (q, values, errors) => {\n if (q.mandatory && isVisible(q)) {\n const slug = toSlug(q.name);\n if (!values.hasOwnProperty(toSlug(slug)) || values[toSlug(slug)] === \"\" || values[slug].length === 0) {\n errors[slug] = RequiredErrorMessage;\n }\n }\n // validate sub rules\n q.sub_question_rules?.forEach((r) => {\n validateQuestion(r.sub_question, values, errors);\n });\n };\n\n const onSubmit = (values) => {\n onAnswerChanges(values)\n };\n\n const validate = (values) => {\n const errors = {};\n extraQuestions.forEach( q => {\n validateQuestion(q, values, errors);\n });\n return errors;\n }\n\n if(!Object.keys(answers).length) return null;\n\n const getErrorFields = (q, invalidFormFields, errorFields) => {\n if (invalidFormFields.includes(toSlug(q.name))) {\n errorFields.push(q);\n }\n // find errors on sub rules\n q.sub_question_rules?.forEach((r) => {\n getErrorFields(r.sub_question, invalidFormFields, errorFields);\n });\n }\n\n const getFirstError = (invalidFormFields) => {\n const errorFields = [];\n extraQuestions.forEach(q => {\n getErrorFields(q, invalidFormFields, errorFields);\n });\n return errorFields.sort((a, b) => a.order > b.order)[0];\n }\n\n const scrollToFirstError = (invalidFormFields) => {\n const firstError = getFirstError(invalidFormFields);\n if (firstError) {\n scrollToQuestion(firstError.id);\n }\n }\n\n const scrollToQuestion = (questionId) => {\n const ref = questionRefs.current[questionId];\n if (ref && ref.current) {\n ref.current.focus();\n ref.current.scrollIntoView({\n behavior: 'smooth',\n block: 'center'\n });\n }\n };\n\n if (!Object.keys(answers).length) return null;\n\n return (\n
\n \n\n {({handleSubmit, form, submitting, pristine, values}) => {\n submit = handleSubmit;\n return (\n {\n const invalidFormFields = form.getRegisteredFields().filter(field => form.getFieldState(field).invalid);\n if (invalidFormFields.length > 0) {\n const firstError = getFirstError(invalidFormFields);\n // Note: The second argument is an stable reference to the errer extra question\n // This ensures that even after re-renders, we have a consistent reference for actions such as scrolling or focusing.\n // Passing a direct DOM element might not reliably reflect the current element if the component updates.\n onError(invalidFormFields, questionRefs.current[firstError.id], firstError.id);\n if (shouldScroll2FirstError)\n scrollToFirstError(invalidFormFields)\n }\n handleSubmit(event)\n }}\n ref={formRef}>\n {readOnly ?\n
\n {extraQuestions.map((q) => renderQuestion(q))}\n
\n :\n extraQuestions.map((q) => renderQuestion(q))\n }\n {debug &&
{JSON.stringify(values, 0, 2)}
}\n \n );\n }}\n \n {!ref &&\n {\n submit(event);\n }}\n style={{marginTop: 10}}\n >\n {buttonText}\n \n }\n
\n )\n});\n\nExtraQuestionsForm.propTypes = {\n extraQuestions: PropTypes.array.isRequired,\n userAnswers: PropTypes.array.isRequired,\n onAnswerChanges: PropTypes.func.isRequired,\n className: PropTypes.string,\n debug: PropTypes.bool,\n buttonText: PropTypes.string,\n questionContainerClassName: PropTypes.string,\n questionLabelContainerClassName: PropTypes.string,\n questionControlContainerClassName: PropTypes.string,\n RequiredErrorMessage: PropTypes.string,\n ValidationErrorClassName: PropTypes.string,\n allowExtraQuestionsEdit: PropTypes.bool,\n shouldScroll2FirstError: PropTypes.bool,\n readOnly: PropTypes.bool\n};\n\nexport default ExtraQuestionsForm;\n","/**\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 React from 'react'\nimport 'awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css'\nimport Input from '../inputs/text-input'\nimport Dropdown from '../inputs/dropdown'\nimport RawHTML from '../raw-html'\nimport CheckboxList from '../inputs/checkbox-list'\nimport RadioList from '../inputs/radio-list'\n\n\nclass RsvpForm extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n answers: props.questions.map(q => ({question_id: q.id, value: null})),\n errors: props.errors\n };\n\n this.handleChange = this.handleChange.bind(this);\n this.hasErrors = this.hasErrors.bind(this);\n this.handleSubmit = this.handleSubmit.bind(this);\n }\n\n renderQuestion(q) {\n const {answers} = this.state;\n const value = answers.find(a => a.question_id === q.id).value;\n\n switch(q.class_name) {\n case 'RSVPMemberEmailQuestionTemplate':\n case 'RSVPMemberFirstNameQuestionTemplate':\n case 'RSVPMemberLastNameQuestionTemplate':\n case 'RSVPTextBoxQuestionTemplate':\n return (\n \n );\n break;\n case 'RSVPTextAreaQuestionTemplate':\n return (\n );\n break;\n case 'RSVPLiteralContentQuestionTemplate':\n return (
{q.value}
);\n break;\n case 'RSVPCheckBoxListQuestionTemplate':\n return (\n ({value: `${v.id}`, label: v.label}))}\n onChange={this.handleChange}\n error={this.hasErrors(q.id)}\n />\n );\n break;\n case 'RSVPRadioButtonListQuestionTemplate':\n return (\n ({value: `${v.id}`, label: v.label}))}\n error={this.hasErrors(q.id)}\n simple\n />\n );\n break;\n case 'RSVPDropDownQuestionTemplate':\n let values = (q.is_country_selector) ? q.values.map(v => ({value:v.id, label: v.value})) : q.values;\n\n return (\n \n );\n break;\n }\n }\n\n handleChange(ev) {\n let answers = [...this.state.answers];\n let {value, id} = ev.target;\n\n if (ev.target.type === 'datetime') {\n value = value.valueOf() / 1000;\n }\n\n let answer = answers.find(a => a.question_id === parseInt(id));\n answer.value = value;\n\n this.setState({answers});\n }\n\n hasErrors(field) {\n let {errors} = this.state;\n if(field in errors) {\n return errors[field];\n }\n\n return '';\n }\n\n handleSubmit(ev) {\n ev.preventDefault();\n\n let { onSubmit } = this.props;\n let {answers} = this.state;\n\n onSubmit(answers);\n }\n\n render() {\n let { questions, onSubmit } = this.props;\n\n return (\n
\n {questions.map(q =>\n
\n
\n \n {this.renderQuestion(q)}\n
\n
\n )}\n {onSubmit &&\n
\n
\n \n
\n
\n }\n
\n );\n }\n}\n\nexport default RsvpForm;\n","/**\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 React from 'react'\nimport T from 'i18n-react/dist/i18n-react'\nimport 'awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css'\nimport Input from '../inputs/text-input'\nimport { scrollToError, isEmpty, shallowEqual, hasErrors } from '../../utils/methods'\n\n\nclass SimpleForm extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n entity: {...props.entity},\n errors: props.errors\n };\n\n this.handleChange = this.handleChange.bind(this);\n this.handleSubmit = this.handleSubmit.bind(this);\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n const state = {};\n scrollToError(this.props.errors);\n\n if(prevProps.entity.id !== this.props.entity.id) {\n state.entity = {...this.props.entity};\n state.errors = {};\n }\n\n if (!shallowEqual(prevProps.errors, this.props.errors)) {\n state.errors = {...this.props.errors};\n }\n\n if (!isEmpty(state)) {\n this.setState({...this.state, ...state})\n }\n }\n\n handleChange(ev) {\n let entity = {...this.state.entity};\n let errors = {...this.state.errors};\n let {value, id} = ev.target;\n\n if (ev.target.type === 'checkbox') {\n value = ev.target.checked;\n }\n\n errors[id] = '';\n entity[id] = value;\n this.setState({entity: entity, errors: errors});\n }\n\n handleSubmit(ev) {\n let entity = {...this.state.entity};\n ev.preventDefault();\n\n this.props.onSubmit(this.state.entity);\n }\n\n createField(field) {\n let {entity, errors} = this.state;\n\n switch (field.type) {\n case 'text':\n return (\n
\n
\n \n \n
\n
\n );\n break;\n case 'textarea':\n return (\n
\n
\n \n \n
\n
\n );\n break;\n case 'checkbox':\n return (\n
\n
\n
\n \n \n
\n
\n
\n );\n break;\n\n }\n }\n\n render() {\n let {entity} = this.state;\n let {fields} = this.props;\n\n return (\n
\n \n\n {fields.map(f => {\n return this.createField(f);\n })}\n\n
\n
\n \n
\n
\n
\n );\n }\n}\n\nexport default SimpleForm;\n","\nexport default class FragmentParser {\n\n constructor(){\n this.originalHash = '';\n this.hash = {};\n }\n\n convertToHash(strHash)\n {\n strHash = strHash.substr(1).toLowerCase();\n let params = strHash.split('&');\n let res = {};\n for(let param of params)\n {\n param = param.split('=');\n if(param.length !== 2) continue;\n let val = param[1].trim();\n if(val === '') continue;\n\n if (val === 'true' || val === 'false')\n param[1] = val == 'true';\n\n res[param[0]] = param[1];\n }\n return res;\n }\n\n clearParams(){\n this.originalHash = '';\n this.hash = {};\n }\n\n getParam(key){\n if(typeof window !== 'undefined' && this.originalHash !== window.location.hash){\n this.originalHash = window.location.hash;\n this.hash = this.convertToHash(this.originalHash);\n }\n\n if(!this.hash.hasOwnProperty(key) ) return null;\n return this.hash[key];\n }\n\n getParams(){\n if(typeof window !== 'undefined' && this.originalHash !== window.location.hash){\n this.originalHash = window.location.hash;\n this.hash = this.convertToHash(this.originalHash);\n }\n\n return { ... this.hash };\n }\n\n deleteParam(param){\n var hash = this.getParams();\n this.clearParams();\n for(let key in hash) {\n if(key == param) continue;\n this.hash[key] = hash[key];\n }\n }\n\n deleteParams(params){\n var hash = this.getParams();\n this.clearParams();\n for(let key in hash) {\n if(params.includes(key)) continue;\n this.hash[key] = hash[key];\n }\n }\n\n setParam(key, value){\n if(typeof window !== 'undefined' && this.originalHash !== window.location.hash){\n this.originalHash = window.location.hash;\n this.hash = this.convertToHash(this.originalHash);\n }\n if(value !== null && value !== '')\n this.hash[key] = value;\n else\n delete this.hash[key];\n return this;\n }\n\n serialize(){\n let res = '';\n for(let key in this.hash)\n {\n let val = this.hash[key];\n if(res !== '') res += '&';\n res += key+'='+val;\n }\n return res;\n }\n}\n","/**\n * Copyright 2017 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 **/\nimport React from 'react';\nimport T from \"i18n-react/dist/i18n-react\";\nimport ExtraQuestionsForm from \"../extra-questions\";\nimport PropTypes from 'prop-types';\n\nclass FreeTextSearch extends React.Component {\n\n constructor(props){\n super(props);\n this.onSearchClick = this.onSearchClick.bind(this);\n this.onClearClick = this.onClearClick.bind(this);\n this.onKeyPressed = this.onKeyPressed.bind(this);\n this.onChange = this.onChange.bind(this);\n\n this.state = {\n value: props.value || \"\",\n };\n }\n\n onSearchClick(ev){\n let { preventEvents } = this.props;\n if(preventEvents){\n ev.preventDefault();\n }\n this.doFiltering(this.state.value);\n }\n\n onClearClick(ev){\n let { preventEvents } = this.props;\n if(preventEvents){\n ev.preventDefault();\n }\n this.doFiltering('');\n this.setState({value: ''});\n }\n\n doFiltering(term = \"\"){\n this.props.onSearch(term.trim());\n }\n\n onKeyPressed(event){\n var code = event.keyCode || event.which;\n if(code === 13) {\n this.doFiltering(this.state.value);\n }\n }\n\n onChange(event){\n this.setState({\n value: event.target.value\n });\n if (this.props.onChange) this.props.onChange(event.target.value)\n }\n\n render(){\n let {value} = this.state;\n\n return(\n
\n
\n
\n \n \n \n \n \n
\n
\n
\n )\n }\n}\nFreeTextSearch.defaultProps = {\n preventEvents: false,\n onChange: null,\n value: \"\",\n}\n\nFreeTextSearch.propTypes = {\n preventEvents: PropTypes.bool,\n onChange: PropTypes.func,\n};\n\n\nexport default FreeTextSearch;\n","/**\n * Copyright 2017 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 AsyncSelect from 'react-select/lib/Async';\nimport {queryAccessLevels} from '../../utils/query-actions';\n\nexport default class AccessLevelsInput extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n value: props.value\n };\n\n this.handleChange = this.handleChange.bind(this);\n this.getAccessLevels = this.getAccessLevels.bind(this);\n this.getOptionValue = this.getOptionValue.bind(this);\n this.getOptionLabel = this.getOptionLabel.bind(this);\n }\n\n getOptionValue(accessLevel){\n if(this.props.hasOwnProperty(\"getOptionValue\")){\n return this.props.getOptionValue(accessLevel);\n }\n //default\n return accessLevel.id;\n }\n\n getOptionLabel(accessLevel){\n if(this.props.hasOwnProperty(\"getOptionLabel\")){\n return this.props.getOptionLabel(accessLevel);\n }\n //default\n return `${accessLevel.name}`;\n }\n\n handleChange(value) {\n let ev = {target: {\n id: this.props.id,\n value: value,\n type: 'accesslevelinput'\n }};\n\n this.props.onChange(ev);\n }\n\n getAccessLevels (input, callback) {\n let {summitId, defaultOptions} = this.props;\n\n if (!input && !defaultOptions) {\n return Promise.resolve({ options: [] });\n }\n\n queryAccessLevels(summitId,input, callback);\n }\n\n render() {\n let {value, error, onChange, id, multi, ...rest} = this.props;\n let isMulti = (this.props.hasOwnProperty('multi'));\n let has_error = ( this.props.hasOwnProperty('error') && error != '' );\n\n return (\n
\n this.getOptionValue(m)}\n getOptionLabel={m => this.getOptionLabel(m)}\n isMulti={isMulti}\n {...rest}\n />\n {has_error &&\n

{error}

\n }\n\n
\n );\n\n }\n}\n\n","/**\n * Copyright 2017 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 './action-dropdown.less';\nimport Select from 'react-select';\n\nexport default class ActionDropdown extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n value: props.value || null,\n };\n\n this.handleChange = this.handleChange.bind(this);\n this.handleClick = this.handleClick.bind(this);\n }\n\n handleChange(value) {\n this.setState({value: value});\n }\n\n handleClick(ev) {\n ev.preventDefault();\n this.props.onClick(this.state.value.value);\n }\n\n render() {\n\n let {options, actionLabel, placeholder, ...rest} = this.props;\n let {value} = this.state;\n\n let smallDdl = this.props.hasOwnProperty('small') ? 'small' : '';\n let smallBtn = this.props.hasOwnProperty('small') ? 'btn-group-sm' : 'normal';\n\n let theValue = (value instanceof Object || value == null) ? value : options.find(opt => opt.value == value);\n\n\n return (\n
\n \n \n
\n );\n\n }\n}\n","/**\n * Copyright 2017 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} from 'react';\nimport AsyncSelect from 'react-select/lib/Async';\nimport {queryAttendees} from '../../utils/query-actions';\n\nconst AttendeeInput = ({id, value, summitId, error, multi, onChange, getOptionValue, getOptionLabel, queryFunction, ...rest}) => {\n const queryFn = queryFunction || queryAttendees;\n const [_value, _setValue] = useState(value);\n const has_error = ( error !== '' );\n\n const _getOptionValue = (attendee) => {\n if (getOptionValue){\n return getOptionValue(attendee);\n }\n //default\n return attendee.id;\n }\n\n const _getOptionLabel = (attendee) => {\n if (getOptionLabel){\n return getOptionLabel(attendee);\n }\n //default\n return `${attendee.first_name} ${attendee.last_name} (${attendee.id})`;\n }\n\n const handleChange = (value) => {\n let ev = {target: {\n id: id,\n value: value,\n type: 'attendeeinput'\n }};\n\n onChange(ev);\n }\n\n const getAttendees = (input, callback) => {\n if (!input) {\n return Promise.resolve({ options: [] });\n }\n queryFn(summitId, input, callback);\n }\n \n return (\n
\n _getOptionValue(m)}\n getOptionLabel={m => _getOptionLabel(m)}\n {...rest}\n />\n {has_error &&\n

{error}

\n }\n \n
\n );\n}\n\nexport default AttendeeInput;\n\n","/**\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 **/\nimport PropTypes from 'prop-types'\nimport React from 'react';\nimport T from 'i18n-react/dist/i18n-react';\nimport RawHTML from '../raw-html';\n\nimport \"awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css\";\n\nexport default class CheckboxList extends React.Component {\n\n constructor(props) {\n super(props);\n\n let otherValue = props.value ? props.value.find( v => !props.options.map(op => op.value).includes(v) ) : false;\n\n this.state = {\n otherChecked: !!otherValue\n };\n\n this.handleChange = this.handleChange.bind(this);\n this.handleOtherCBChange = this.handleOtherCBChange.bind(this);\n }\n\n handleChange(event) {\n let optionValues = this.props.options.map(op => op.value);\n let value = this.props.value ? [...this.props.value] : [];\n\n if (event.target.type === 'checkbox') {\n if (event.target.checked) {\n const theVal = isNaN(event.target.value) ? event.target.value : parseInt(event.target.value);\n value.push(theVal);\n } else {\n value = value.filter( v => v != event.target.value )\n }\n } else {\n value = value.filter(v => optionValues.includes(v));\n value.push(event.target.value);\n }\n\n let ev = {target: {\n id: this.props.id,\n value: value,\n type: 'checkboxlist'\n }};\n\n this.props.onChange(ev);\n }\n\n handleOtherCBChange(event) {\n this.setState({otherChecked: event.target.checked});\n }\n\n render() {\n\n let {onChange, value, className, options, id, children, error, disabled,name, ariaLabelledBy, ...rest} = this.props;\n let { otherChecked } = this.state;\n\n let inline = ( this.props.hasOwnProperty('inline') );\n let allowOther = ( this.props.hasOwnProperty('allowOther') );\n let otherValue = value ? value.find( v => !options.map(op => op.value).includes(v) ) : false ;\n let has_error = ( this.props.hasOwnProperty('error') && error !== '' );\n let isDisabled = (this.props.hasOwnProperty('disabled') && disabled == true);\n\n\n let style, label;\n\n if (inline) {\n style = {\n paddingLeft: '22px',\n marginLeft: '20px',\n float: 'left'\n };\n } else {\n style = {\n paddingLeft: '22px',\n marginTop: '7px'\n }\n }\n\n return (\n
\n
\n { options.map(op => {\n let checked = value ? value.includes(op.value) : false;\n return (\n
\n \n \n
\n )\n })}\n\n {allowOther &&\n
\n \n \n
\n }\n\n {allowOther && otherChecked &&\n
\n \n
\n }\n\n
\n {has_error &&\n

{error}

\n }\n
\n );\n\n }\n}\n\nCheckboxList.defaultProps = {\n ariaLabelledBy : null,\n}\n\n\nCheckboxList.propTypes = {\n id: PropTypes.string.isRequired\n};\n","/**\n * Copyright 2017 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 AsyncSelect from 'react-select/lib/Async';\nimport {queryCompanies} from '../../utils/query-actions';\nimport AsyncCreatableSelect from \"react-select/lib/AsyncCreatable\";\n\nexport default class CompanyInput extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.handleChange = this.handleChange.bind(this);\n this.handleNew = this.handleNew.bind(this);\n this.getCompanies = this.getCompanies.bind(this);\n }\n\n handleChange(value) {\n const isMulti = (this.props.hasOwnProperty('multi') || this.props.hasOwnProperty('isMulti'));\n const theValue = isMulti ? value.map(v => ({id: v.value, name: v.label})) : {id: value.value, name: value.label};\n\n let ev = {target: {\n id: this.props.id,\n value: theValue,\n type: 'companyinput'\n }};\n\n this.props.onChange(ev);\n }\n\n handleNew(value) {\n // we need to map into value/label because of a bug in react-select 2\n // https://github.com/JedWatson/react-select/issues/2998\n\n const translateValue = (newValue) => {\n this.handleChange({value: newValue.id, label: newValue.name});\n }\n\n this.props.onCreate(value, translateValue);\n }\n\n getCompanies (input, callback) {\n const {extraOptions} = this.props;\n\n if (!input) {\n return Promise.resolve({ options: [] });\n }\n\n // we need to map into value/label because of a bug in react-select 2\n // https://github.com/JedWatson/react-select/issues/2998\n\n const translateOptions = (options) => {\n let newOptions = options.map(c => ({value: c.id.toString(), label: c.name}));\n\n if (extraOptions?.length > 0) {\n newOptions = [...extraOptions, ...newOptions];\n }\n\n callback(newOptions);\n };\n\n const queryFn = this.props.queryFunction || queryCompanies;\n\n queryFn(input, translateOptions);\n } \n\n render() {\n let {error, value, onChange, id, multi, ...rest} = this.props;\n let has_error = ( this.props.hasOwnProperty('error') && error != '' );\n let isMulti = (this.props.hasOwnProperty('multi') || this.props.hasOwnProperty('isMulti'));\n let allowCreate = this.props.hasOwnProperty('allowCreate');\n\n // we need to map into value/label because of a bug in react-select 2\n // https://github.com/JedWatson/react-select/issues/2998\n\n let theValue = null;\n\n if (isMulti && value.length > 0) {\n theValue = value.map(v => ({value: v.id.toString(), label: v.name} ));\n } else if (!isMulti && value) {\n theValue = {value: value.id.toString(), label: value.name};\n }\n\n\n const AsyncComponent = allowCreate\n ? AsyncCreatableSelect\n : AsyncSelect;\n\n return (\n
\n \n {has_error &&\n

{error}

\n }\n
\n );\n\n }\n}\n","/**\n * Copyright 2017 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 Dropdown from './dropdown';\nimport {getCountryList} from '../../utils/query-actions';\n\nexport default class CountryDropdown extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n options: []\n };\n\n this.handleChange = this.handleChange.bind(this);\n this.setOptions = this.setOptions.bind(this);\n this.abortController = new AbortController();\n }\n\n componentDidMount () {\n let {options} = this.state;\n\n if(options.length == 0){\n getCountryList(this.setOptions, this.abortController.signal);\n }\n }\n\n componentWillUnmount(){\n this.abortController.abort();\n }\n\n handleChange(value) {\n\n let ev = {target: {\n id: this.props.id,\n value: value,\n type: 'countryddl'\n }};\n\n this.props.onChange(ev);\n }\n\n setOptions(response) {\n let countryList = response.map(c => ({label: c.name, value: c.iso_code}));\n this.setState({options: countryList});\n }\n\n render() {\n\n let {options} = this.state;\n\n return (\n \n );\n\n }\n}\n","/**\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 React from 'react';\nimport Select from 'react-select';\nimport {getCountryList} from '../../utils/query-actions';\n\nexport default class CountryInput extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n options: []\n };\n\n this.handleChange = this.handleChange.bind(this);\n this.setOptions = this.setOptions.bind(this);\n\n }\n\n setOptions(response) {\n let countryList = response.map(c => ({label: c.name, value: c.iso_code}));\n this.setState({options: countryList});\n }\n\n componentDidMount() {\n getCountryList(this.setOptions).catch(e => {\n console.log(\"Error getting countries: \", e);\n this.setState({options: []});\n });\n }\n\n handleChange(value) {\n let isMulti = (this.props.hasOwnProperty('multi'));\n let theValue = null;\n\n if (isMulti) {\n theValue = value.map(v => v.value);\n } else {\n theValue = value.value;\n }\n\n let ev = {target: {\n id: this.props.id,\n value: theValue,\n type: 'countryinput'\n }};\n\n this.props.onChange(ev);\n }\n\n render() {\n let {value, onChange, id, multi, error, ...rest} = this.props;\n let {options} = this.state;\n let isMulti = (this.props.hasOwnProperty('multi'));\n let theValue = null;\n let has_error = ( this.props.hasOwnProperty('error') && error != '' );\n\n if (isMulti) {\n theValue = options.filter(op => value.includes(op.value));\n } else {\n theValue = (value instanceof Object || value == null) ? value : options.find(opt => opt.value == value);\n }\n\n return (\n
\n \n {has_error &&\n

{error}

\n }\n
\n );\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-datetime\");","/**\n * Copyright 2017 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 './datetimepicker.less';\nimport Datetime from 'react-datetime';\nimport moment from 'moment-timezone';\n\nexport default class DateTimePicker extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n value: props.value\n };\n\n this.handleChange = this.handleChange.bind(this);\n this.isValidDate = this.isValidDate.bind(this);\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n if (this.props.value !== prevProps.value) {\n this.setState({value: this.props.value})\n }\n }\n\n handleChange(date) {\n\n let { timezone } = this.props;\n\n if (date && moment.isMoment(date)) {\n date = moment.tz(date.format('YYYY-MM-DD HH:mm:ss'), timezone)\n } else if (date === '') {\n date = moment(0);\n }\n\n let ev = {target: {\n id: this.props.id,\n value: date,\n type: 'datetime'\n }};\n\n if (date && moment.isMoment(date)) {\n this.props.onChange(ev);\n }\n\n }\n\n isValidDate(currentDate, selectedDate) {\n let { timezone, validation } = this.props;\n let {after, before} = validation;\n\n if (after == '<')\n return (currentDate.isBefore(moment.tz(before * 1000, timezone)));\n else if(after == '<=')\n return (currentDate.isSameOrBefore(moment.tz(before * 1000, timezone)));\n else if(after == '>')\n return (currentDate.isAfter(moment.tz(before * 1000, timezone)));\n else if(after == '>=')\n return (currentDate.isSameOrAfter(moment.tz(before * 1000, timezone)));\n else {\n let afterDate = moment.tz(after * 1000, timezone).subtract(1, 'day');\n let beforeDate = moment.tz(before * 1000, timezone);\n return currentDate.isAfter(afterDate) && currentDate.isBefore(beforeDate);\n }\n }\n\n render() {\n let validate = (typeof this.props.validation != 'undefined');\n let {onChange, id, value, format, error, inputProps, disabled, ...rest} = this.props;\n let has_error = ( this.props.hasOwnProperty('error') && error != '' );\n let className = 'form-control ' + (has_error ? 'error' : '');\n let inputDisabled = (this.props.hasOwnProperty('disabled')) ? disabled : false;\n\n return (\n
\n {validate ? (\n \n ) : (\n \n )}\n\n {has_error &&\n

{error}

\n }\n
\n );\n }\n}\n","/**\n * Copyright 2017 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 Select from 'react-select';\n\nexport default class Dropdown extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.handleChange = this.handleChange.bind(this);\n }\n\n handleChange(selection) {\n\n let value = null;\n if (this.props.isMulti) {\n value = selection ? selection.map(val => val.value) : null;\n } else {\n value = selection ? selection.value : null;\n }\n\n let ev = {target: {\n id: this.props.id,\n value: value,\n type: 'dropdown'\n }};\n\n this.props.onChange(ev);\n }\n\n render() {\n\n let {onChange, value, className, error, clearable, disabled, overrideCSS, ariaLabelledBy, ...rest} = this.props;\n let has_error = ( this.props.hasOwnProperty('error') && error != '' );\n let isClearable = (this.props.hasOwnProperty('clearable'));\n let isDisabled = (this.props.hasOwnProperty('disabled') && disabled == true);\n let theValue = null;\n\n let selectClassName = className;\n\n if (!this.props.hasOwnProperty('overrideCSS') || overrideCSS == false) {\n selectClassName = 'dropdown ' + className + ' ' + (has_error ? 'error' : '');\n }\n\n if (this.props.isMulti) {\n theValue = this.props.options.filter(op => value.includes(op.value));\n } else {\n theValue = (value instanceof Object || value == null) ? value : this.props.options.find(opt => opt.value == value);\n }\n\n const selectStyles = { menu: styles => ({ ...styles, zIndex: 999 }) };\n\n return (\n
\n }\n {...rest}\n />\n {has_error &&\n

{error}

\n }\n
\n );\n\n }\n}\n\nDropdown.defaultProps = {\n ariaLabelledBy : null,\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"extend\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"dropzone/dist/dropzone.css\");","import React from 'react'\n\nexport const Icon = (props) => {\n return (
)\n}","import React from 'react'\nimport extend from 'extend'\nimport 'dropzone/dist/dropzone.css';\nimport {Icon} from './icon'\nimport PropTypes from 'prop-types';\nimport {getAccessToken, initLogOut} from '../../security/methods';\nimport {AUTH_ERROR_REFRESH_TOKEN_NETWORK_ERROR} from '../../security/constants';\nimport {getMD5} from \"../../../utils/crypto\";\n\nlet Dropzone = null;\n/**\n * class DropzoneJS\n */\nexport class DropzoneJS extends React.Component {\n\n constructor(props) {\n super(props);\n this.dropzoneRef = React.createRef();\n this.state = {files: []};\n this.onUploadComplete = this.onUploadComplete.bind(this);\n this.onError = this.onError.bind(this);\n this.activeXHRs = new Map(); // Track active XHR requests per file\n this.chunkQueue = [];\n this.chunksInFlight = 0;\n }\n\n onError(e, status){\n if(this.props.onError)\n this.props.onError(e, status, this.props.id);\n }\n\n onUploadComplete(response){\n if(this.props.onUploadComplete)\n this.props.onUploadComplete(response, this.props.id, this.props.data);\n }\n\n processChunkQueue() {\n const maxConcurrent = this.props.maxConcurrentChunks || 6;\n while (this.chunkQueue.length > 0 && this.chunksInFlight < maxConcurrent) {\n const { files, dataBlocks } = this.chunkQueue.shift();\n this.chunksInFlight++;\n this._originalUploadData(files, dataBlocks);\n }\n }\n\n setupChunkThrottle() {\n if (!this.dropzone || !this.dropzone._uploadData) return;\n // Wrap _uploadData to queue chunked uploads with concurrency limit\n this._originalUploadData = this.dropzone._uploadData.bind(this.dropzone);\n this.dropzone._uploadData = (files, dataBlocks) => {\n // Only throttle chunked uploads (single dataBlock with chunkIndex)\n if (dataBlocks.length === 1 && dataBlocks[0].chunkIndex !== undefined) {\n this.chunkQueue.push({ files, dataBlocks });\n this.processChunkQueue();\n } else {\n // Non-chunked uploads bypass the queue\n this._originalUploadData(files, dataBlocks);\n }\n };\n }\n\n onChunkComplete() {\n this.chunksInFlight = Math.max(0, this.chunksInFlight - 1);\n this.processChunkQueue();\n }\n\n pollUploadStatus(fileId, baseUrl, file) {\n // Guard against multiple polling intervals for the same file\n if (file._pollingActive) {\n return;\n }\n file._pollingActive = true;\n\n const statusUrl = `${baseUrl}/status/${fileId}`;\n const maxAttempts = 300; // 10 minutes at 2s intervals\n let attempts = 0;\n\n this._pollInterval = setInterval(async () => {\n attempts++;\n if (attempts > maxAttempts) {\n clearInterval(this._pollInterval);\n this._pollInterval = null;\n file._pollingActive = false;\n this.onError({ message: 'Upload timed out' });\n return;\n }\n try {\n const accessToken = await getAccessToken();\n const response = await fetch(statusUrl, {\n headers: { 'Authorization': `Bearer ${accessToken}` }\n });\n const data = await response.json();\n if (data.status === 'complete') {\n clearInterval(this._pollInterval);\n this._pollInterval = null;\n file._pollingActive = false;\n // Call the stored done callback to trigger Dropzone's success event\n if (file?._chunksUploadedDone) {\n file._chunksUploadedDone();\n }\n this.onUploadComplete(data);\n } else if (data.status === 'error') {\n clearInterval(this._pollInterval);\n this._pollInterval = null;\n file._pollingActive = false;\n this.onError(data);\n }\n } catch (error) {\n clearInterval(this._pollInterval);\n this._pollInterval = null;\n file._pollingActive = false;\n this.onError(error);\n }\n }, 2000);\n }\n\n /**\n * Configuration of Dropzone.js. Defaults are\n * overriden by the 'djsConfig' property\n * For a full list of possible configurations,\n * please consult\n * http://www.dropzonejs.com/#configuration\n */\n getDjsConfig () {\n let options = null;\n const defaults = {\n url: this.props.config.postUrl ? this.props.config.postUrl : null,\n };\n\n if(defaults.url === null) throw new Error(\"missing postUrl\");\n\n if (this.props.djsConfig) {\n options = extend(true, {}, defaults, this.props.djsConfig)\n } else {\n options = defaults\n }\n\n options.accept = async (file, done) => {\n // see https://github.com/dropzone/dropzone/blob/f50d1828ab5df79a76be00d1306cc320e39a27f4/src/options.js#L405\n try {\n file.accessToken = await getAccessToken();\n // IMPORTANT: compute once BEFORE upload starts\n file.md5 = await getMD5(file);\n file.fileSize = file.size;\n } catch (e) {\n console.log(e);\n this.onError(e);\n // only logout on genuine auth errors, not transient network failures\n if (!e.message || !e.message.startsWith(AUTH_ERROR_REFRESH_TOKEN_NETWORK_ERROR)) {\n initLogOut();\n }\n done(e.message || 'Auth error');\n return;\n }\n if (options.maxFiles && options.maxFiles < (this.state.files.length + this.props.uploadCount)) {\n done('Max files reached.');\n }\n\n done();\n };\n\n // Override chunksUploaded to defer success event for async processing (HTTP 202)\n options.chunksUploaded = (file, done) => {\n if (file._asyncProcessing) {\n // Store the done callback for later execution after polling completes\n file._chunksUploadedDone = done;\n return;\n }\n // For synchronous uploads (HTTP 200), call done immediately\n done();\n };\n\n return options\n }\n\n /**\n * React 'componentDidMount' method\n * Sets up dropzone.js with the component.\n */\n componentDidMount () {\n if(!this.dropzoneRef.current) return;\n const options = this.getDjsConfig();\n\n Dropzone = Dropzone || require('dropzone');\n Dropzone.autoDiscover = false;\n\n if (!this.props.config.postUrl && !this.props.eventHandlers.drop) {\n console.info('Neither postUrl nor a \"drop\" eventHandler specified, the React-Dropzone component might misbehave.')\n }\n\n const dropzoneNode = this.dropzoneRef.current;\n if (!dropzoneNode) throw new Error(\"Dropzone node not found\");\n\n this.dropzone = new Dropzone(dropzoneNode, options);\n this.setupChunkThrottle();\n this.setupEvents()\n }\n\n /**\n * React 'componentWillUnmount'\n * Removes dropzone.js (and all its globals) if the component is being unmounted\n */\n componentWillUnmount () {\n if (this._pollInterval) {\n clearInterval(this._pollInterval);\n this._pollInterval = null;\n }\n\n // Clear chunk queue and cancel all pending XHR requests\n this.chunkQueue = [];\n this.chunksInFlight = 0;\n this.activeXHRs.forEach((xhrs, file) => {\n xhrs.forEach(xhr => {\n if (xhr.readyState !== XMLHttpRequest.DONE) {\n xhr.abort();\n }\n });\n });\n this.activeXHRs.clear();\n\n if (this.dropzone) {\n const files = this.dropzone.getActiveFiles();\n\n if (files.length > 0) {\n // Cancel active uploads before destroying\n files.forEach(file => {\n this.dropzone.cancelUpload(file);\n });\n\n this.dropzone = this.destroy(this.dropzone);\n } else {\n this.dropzone = this.destroy(this.dropzone)\n }\n }\n }\n\n /**\n * React 'componentDidUpdate'\n * If the Dropzone hasn't been created, create it\n */\n componentDidUpdate () {\n const {config, djsConfig} = this.props;\n const djsConfigObj = djsConfig ? djsConfig : {};\n const postUrlConfigObj = config && config.postUrl ? { url: config.postUrl } : {};\n this.queueDestroy = false;\n\n if (!this.dropzone) {\n const dropzoneNode = this.dropzoneRef.current;\n if (!dropzoneNode) throw new Error(\"Dropzone node not found\");\n this.dropzone = new Dropzone(dropzoneNode, this.getDjsConfig());\n this.setupChunkThrottle();\n this.setupEvents();\n }\n\n this.dropzone.options = extend(true, {}, this.dropzone.options, djsConfigObj, postUrlConfigObj);\n }\n\n /**\n * React 'render'\n */\n render () {\n const icons = [];\n const { files } = this.state;\n const { config } = this.props;\n const className = (this.props.className) ? 'filepicker dropzone ' + this.props.className : 'filepicker dropzone';\n\n if (config.showFiletypeIcon && config.iconFiletypes && (!files || files.length < 1)) {\n for (var i = 0; i < this.props.config.iconFiletypes.length; i = i + 1) {\n icons.push()\n }\n }\n\n if (!this.props.config.postUrl && this.props.action) {\n return (\n
\n {icons}\n {this.props.children}\n
\n );\n } else {\n return (\n
{icons} {this.props.children}
\n );\n }\n }\n\n /**\n * Takes event handlers in this.props.eventHandlers\n * and binds them to dropzone.js events\n */\n setupEvents () {\n const eventHandlers = this.props.eventHandlers;\n\n if (!this.dropzone || !eventHandlers) return;\n\n for (var eventHandler in eventHandlers) {\n if (eventHandlers.hasOwnProperty(eventHandler) && eventHandlers[eventHandler]) {\n // Check if there's an array of event handlers\n if (Object.prototype.toString.call(eventHandlers[eventHandler]) === '[object Array]') {\n for (var i = 0; i < eventHandlers[eventHandler].length; i = i + 1) {\n // Check if it's an init handler\n if (eventHandler === 'init') {\n eventHandlers[eventHandler][i](this.dropzone)\n } else {\n this.dropzone.on(eventHandler, eventHandlers[eventHandler][i])\n }\n }\n } else {\n if (eventHandler === 'init') {\n eventHandlers[eventHandler](this.dropzone)\n } else {\n this.dropzone.on(eventHandler, eventHandlers[eventHandler])\n }\n }\n }\n }\n\n /*\n * see https://docs.dropzone.dev/configuration/events\n * see https://github.com/dropzone/dropzone/blob/main/src/options.js#L574\n */\n this.dropzone.on('addedfile', async (file) => {\n if (!file) return;\n\n const files = this.state.files || [];\n\n files.push(file);\n this.setState({ files })\n });\n\n this.dropzone.on('removedfile', (file) => {\n if (!file) return;\n\n // Cancel all active XHR requests for this file\n const xhrs = this.activeXHRs.get(file);\n if (xhrs) {\n xhrs.forEach(xhr => {\n if (xhr.readyState !== XMLHttpRequest.DONE) {\n xhr.abort();\n }\n });\n this.activeXHRs.delete(file);\n }\n\n const files = this.state.files || [];\n files.forEach((fileInFiles, i) => {\n if (fileInFiles.name === file.name && fileInFiles.size === file.size) {\n files.splice(i, 1)\n }\n });\n\n this.setState({ files })\n });\n\n this.dropzone.on('uploadprogress', (file, progress, bytesSent) => {\n // Use completed bytes as floor to prevent progress oscillation\n const effectiveBytes = Math.max(bytesSent, file._completedBytes || 0);\n progress = Math.min(effectiveBytes / file.size * 100, 100);\n if(file.previewElement) {\n let elem = file.previewElement.querySelectorAll(\"[data-dz-uploadprogress]\");\n\n if(elem.length > 0)\n elem = elem[0];\n\n if (elem)\n elem.style.width = progress + \"%\";\n }\n });\n\n this.dropzone.on('sending', (file, xhr, formData) => {\n if(file?.accessToken)\n xhr.setRequestHeader('Authorization', `Bearer ${file.accessToken}`);\n\n // synchronous append (this WILL be included)\n if (file?.md5)\n formData.append('md5', file.md5);\n\n formData.append('size', String(file?.size || 0));\n console.log(`DropzoneJS::sending md5 ${file?.md5} size ${file?.size}`);\n\n // Track active XHR for cancellation support\n if (!this.activeXHRs.has(file)) {\n this.activeXHRs.set(file, []);\n }\n this.activeXHRs.get(file).push(xhr);\n\n let _this = this;\n // This will track all request so we can get the correct request that returns final response:\n // We will change the load callback but we need to ensure that we will call original\n // load callback from dropzone\n let dropzoneOnLoad = xhr.onload;\n xhr.onload = function (e) {\n // Remove this XHR from active tracking\n const xhrs = _this.activeXHRs.get(file);\n if (xhrs) {\n const index = xhrs.indexOf(xhr);\n if (index > -1) xhrs.splice(index, 1);\n }\n\n // Release a slot in the chunk queue for the next chunk\n _this.onChunkComplete();\n\n // Track completed bytes for accurate progress (prevents oscillation)\n const chunkSize = _this.dropzone?.options?.chunkSize || 2000000;\n file._completedBytes = Math.min(\n (file._completedBytes || 0) + chunkSize, file.size\n );\n\n // Parse response once\n let uploadResponse;\n try { uploadResponse = JSON.parse(xhr.responseText); } catch(ex) { uploadResponse = {}; }\n\n // Set async flag BEFORE dropzoneOnLoad so chunksUploaded sees it\n if (xhr?.status == 202 && uploadResponse.file_id) {\n file._asyncProcessing = true;\n }\n\n dropzoneOnLoad(e);\n\n if(xhr?.status == 200) {\n if (typeof uploadResponse.name === 'string') {\n _this.onUploadComplete(uploadResponse);\n }\n }\n else if(xhr?.status == 202 && uploadResponse.file_id) {\n const baseUrl = _this.props.config.postUrl;\n _this.pollUploadStatus(uploadResponse.file_id, baseUrl, file);\n }\n else if(xhr?.status != 200 && xhr?.status != 202){\n _this.onError(uploadResponse, xhr?.status);\n }\n\n }\n\n let dropzoneOnError = xhr.onerror;\n xhr.onerror = function(e) {\n _this.onChunkComplete();\n if (dropzoneOnError) dropzoneOnError(e);\n }\n })\n\n this.dropzone.on('error', (file, message) => {\n console.log(`DropzoneJS::error`, message);\n this.onError(message);\n });\n }\n\n /**\n * Removes ALL listeners and Destroys dropzone. see https://github.com/enyo/dropzone/issues/1175\n */\n destroy (dropzone) {\n dropzone.off();\n return dropzone.destroy()\n }\n}\n\nDropzoneJS.defaultProps = {\n djsConfig: {},\n config: {},\n eventHandlers: {},\n data: {},\n};\n\nDropzoneJS.propTypes = {\n id: PropTypes.string.isRequired\n};\n\nexport default DropzoneJS;\n","/**\n * Copyright 2017 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';\n\nimport './editor-input.less';\n\nexport default class TextEditor extends React.Component {\n\n constructor(props) {\n super(props);\n this.RichTextEditor = null;\n this.getTextAlignClassName = null;\n this.getTextAlignStyles = null;\n\n // this is done bc due SSR issues\n // @see https://github.com/sstur/react-rte/issues/373\n if (typeof window !== 'undefined') {\n const { default: RichTextEditor, getTextAlignClassName, getTextAlignStyles } = require('react-rte');\n this.RichTextEditor = RichTextEditor;\n this.getTextAlignClassName = getTextAlignClassName;\n this.getTextAlignStyles = getTextAlignStyles;\n }\n\n this.state = {\n editorValue: this.RichTextEditor?.createEmptyValue(),\n currentValue: null\n };\n\n this.handleChange = this.handleChange.bind(this);\n }\n\n static getDerivedStateFromProps(props, state) {\n const {value} = props;\n const {editorValue, currentValue} = state;\n\n if (currentValue != null) {\n if (value === currentValue) {\n return state;\n }\n } \n\n let newEditorValue = editorValue.setContentFromString(value, 'html');\n\n // this is done bc due SSR issues\n // @see https://github.com/sstur/react-rte/issues/373\n if (typeof window !== 'undefined') {\n const { getTextAlignBlockMetadata } = require('react-rte');\n newEditorValue = editorValue.setContentFromString(\n value, \n 'html',\n {\n customBlockFn: getTextAlignBlockMetadata,\n }\n );\n }\n\n return {...state, editorValue: newEditorValue, currentValue: value}\n }\n\n handleChange(editorValue) {\n let oldEditorValue = this.state.editorValue;\n\n this.setState({editorValue});\n\n let oldContentState = oldEditorValue ? oldEditorValue.getEditorState().getCurrentContent() : null;\n let newContentState = editorValue.getEditorState().getCurrentContent();\n\n if (oldContentState !== newContentState) {\n let stringValue = editorValue.toString( \n 'html',\n {\n blockStyleFn: this.getTextAlignStyles,\n }\n )\n stringValue = stringValue === '


' ? '' : stringValue;\n\n this.setState({currentValue: stringValue});\n\n if (stringValue !== this.props.value) {\n let ev = {target: {\n id: this.props.id,\n value: stringValue,\n type: 'texteditor'\n }};\n\n this.props.onChange(ev);\n }\n }\n }\n\n render() {\n const {onChange, value, error, className, id, maxLength, ...rest} = this.props;\n const {currentValue, editorValue} = this.state;\n const has_error = ( this.props.hasOwnProperty('error') && error !== '' );\n const charCountLeft = maxLength - currentValue.length;\n\n return (\n
\n {this.RichTextEditor &&\n \n }\n {!!maxLength &&\n

characters left: {charCountLeft}

\n }\n {has_error &&\n

{error}

\n }\n
\n );\n\n }\n}\n","/**\n * Copyright 2017 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 AsyncSelect from 'react-select/lib/Async';\nimport {queryEvents} from '../../utils/query-actions';\n\nexport default class EventInput extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.handleChange = this.handleChange.bind(this);\n this.getEvents = this.getEvents.bind(this);\n }\n\n handleChange(value) {\n\n let ev = {target: {\n id: this.props.id,\n value: value,\n type: 'eventinput'\n }};\n\n this.props.onChange(ev);\n }\n\n getEvents (input, callback) {\n let {summit, onlyPublished} = this.props;\n\n if (!input) {\n return Promise.resolve({ options: [] });\n }\n\n queryEvents(summit.id, input, onlyPublished, callback);\n }\n\n render() {\n let {value, onChange, id, multi, ...rest} = this.props;\n let isMulti = (this.props.hasOwnProperty('multi'));\n\n return (\n option.id}\n getOptionLabel={option => option.title}\n isMulti={isMulti}\n {...rest}\n />\n );\n\n }\n}\n\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-select/lib/Creatable\");","import React from 'react';\nimport CreatableSelect from 'react-select/lib/Creatable';\nimport T from 'i18n-react/dist/i18n-react';\n\n\nexport default class FreeMultiTextInput extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n inputValue: ''\n };\n\n this.handleChange = this.handleChange.bind(this);\n this.handleInputChange = this.handleInputChange.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n }\n\n handleChange(value) {\n let limit = this.props.hasOwnProperty('limit') ? this.props.limit : false;\n\n if (!limit || limit >= value.length ) {\n let ev = {target: {\n id: this.props.id,\n value: value,\n type: 'freetextlist'\n }};\n\n this.props.onChange(ev);\n }\n }\n\n handleInputChange(inputValue) {\n this.setState({ inputValue });\n }\n\n handleKeyDown(event) {\n const { inputValue } = this.state;\n let { value } = this.props;\n\n if (!inputValue) return;\n\n switch (event.key) {\n case 'Enter':\n case 'Tab':\n this.setState({\n inputValue: '',\n });\n\n this.handleChange([...value, {label: inputValue, value: inputValue}])\n\n event.preventDefault();\n }\n }\n\n\n render() {\n const { inputValue } = this.state;\n let {id, value, onChange, ...rest} = this.props;\n\n return (\n \n );\n }\n}\n","/**\n * Copyright 2017 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 AsyncSelect from 'react-select/lib/Async';\nimport {queryGroups} from '../../utils/query-actions';\n\nexport default class GroupInput extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.handleChange = this.handleChange.bind(this);\n this.getGroups = this.getGroups.bind(this);\n }\n\n handleChange(value) {\n\n let ev = {target: {\n id: this.props.id,\n value: value,\n type: 'groupinput'\n }};\n\n this.props.onChange(ev);\n }\n\n getGroups (input, callback) {\n if (!input) {\n return Promise.resolve({ options: [] });\n }\n\n queryGroups(input, callback);\n }\n\n render() {\n let {value, onChange, id, multi, ...rest} = this.props;\n let isMulti = (this.props.hasOwnProperty('multi'));\n\n return (\n option.id}\n getOptionLabel={option => option.title}\n isMulti={isMulti}\n {...rest}\n />\n );\n\n }\n}\n\n","/**\n * Copyright 2017 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';\n\nexport const OptionGroup = ({\n value,\n label,\n options\n}) => {\n return ([\n ,\n options.map((opt,i) => (\n \n ))\n ]);\n};","/**\n * Copyright 2017 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 { OptionGroup } from './OptionGroup';\nimport './optiongroup.less';\n\nexport default class GroupedDropdown extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n value: props.value\n };\n\n this.handleChange = this.handleChange.bind(this);\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n if (this.props.value !== prevProps.value) {\n this.setState({value: this.props.value})\n }\n }\n\n handleChange(ev) {\n this.props.onChange(ev);\n }\n\n render() {\n let {id, options, placeholder, className, error} = this.props;\n let has_error = ( this.props.hasOwnProperty('error') && error != '' );\n let {value} = this.state;\n\n return (\n
\n \n \n {options.map((opt,i) =>\n {\n if (typeof opt.options != 'undefined') {\n return (\n \n );\n } else {\n return (\n \n );\n }\n }\n )}\n \n {has_error &&\n

{error}

\n }\n
\n );\n }\n}","/**\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 React from 'react';\nimport Select from 'react-select';\nimport {getLanguageList} from '../../utils/query-actions';\n\nexport default class LanguageInput extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n options: [],\n shouldUseId: props.hasOwnProperty('shouldUseId') ? props.shouldUseId : false,\n };\n\n this.handleChange = this.handleChange.bind(this);\n this.setOptions = this.setOptions.bind(this);\n this.abortController = new AbortController();\n }\n\n componentDidMount() {\n getLanguageList(this.setOptions, this.abortController.signal).catch(e => {\n console.log(\"Error get languages: \", e);\n this.setOptions({options: []});\n });\n }\n\n componentWillUnmount(){\n this.abortController.abort();\n }\n\n setOptions(response) {\n let languageList = (this.state.shouldUseId) ?\n response.map(l => ({label: l.name, value: l.id})):\n response.map(l => ({label: l.name, value: l.iso_code}));\n this.setState({options: languageList});\n }\n\n handleChange(value) {\n let isMulti = (this.props.hasOwnProperty('multi'));\n let theValue = null;\n\n if (isMulti) {\n theValue = value.map(v => v.value);\n } else {\n theValue = value.value;\n }\n\n let ev = {target: {\n id: this.props.id,\n value: theValue,\n type: 'laguageinput'\n }};\n\n this.props.onChange(ev);\n }\n\n render() {\n let {value, onChange, id, multi, ...rest} = this.props;\n let {options} = this.state;\n let isMulti = (this.props.hasOwnProperty('multi'));\n let theValue = null;\n\n if (isMulti) {\n theValue = options.filter(op => value.includes(op.value));\n } else {\n theValue = (value instanceof Object || value == null) ? value : options.find(opt => opt.value == value);\n }\n\n return (\n \n );\n\n }\n}\n","/**\n * Copyright 2017 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 AsyncSelect from 'react-select/lib/Async';\nimport {queryMembers} from '../../utils/query-actions';\n\nexport default class MemberInput extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n value: props.value\n };\n\n this.handleChange = this.handleChange.bind(this);\n this.getMembers = this.getMembers.bind(this);\n this.getOptionValue = this.getOptionValue.bind(this);\n this.getOptionLabel = this.getOptionLabel.bind(this);\n }\n\n getOptionValue(member){\n if(this.props.hasOwnProperty(\"getOptionValue\")){\n return this.props.getOptionValue(member);\n }\n //default\n return member.id;\n }\n\n getOptionLabel(member){\n if(this.props.hasOwnProperty(\"getOptionLabel\")){\n return this.props.getOptionLabel(member);\n }\n //default\n return `${member.first_name} ${member.last_name} (${member.id})`;\n }\n\n handleChange(value) {\n let ev = {target: {\n id: this.props.id,\n value: value,\n type: 'memberinput'\n }};\n\n this.props.onChange(ev);\n }\n\n getMembers (input, callback) {\n if (!input) {\n return Promise.resolve({ options: [] });\n }\n queryMembers(input, callback);\n }\n\n render() {\n let {value, error, onChange, id, multi, ...rest} = this.props;\n let isMulti = (this.props.hasOwnProperty('multi'));\n let has_error = ( this.props.hasOwnProperty('error') && error != '' );\n\n return (\n
\n this.getOptionValue(m)}\n getOptionLabel={m => this.getOptionLabel(m)}\n isMulti={isMulti}\n {...rest}\n />\n {has_error &&\n

{error}

\n }\n\n
\n );\n\n }\n}\n\n","/**\n * Copyright 2017 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 Select from 'react-select';\n\nconst OperatorInput = ({ error, label, value, onChange, id, multi, isMulti, className, isDisabled, isClearable, options, selectStyles, customStyle, ...rest }) => {\n\n // Set intial valus from value property, if is an array operator as between, and extract the operator and digits is the value is a string\n const [operatorValue, setOperatorValue] = useState(value ? Array.isArray(value) ? { value: 'between', label: 'Between' } : options.find(e => e.value === value.replace(/\\d/g, '')) : ({ value: null, label: '' }));\n const [inputValue, setInputValue] = useState(value ? Array.isArray(value) ? value[0] : value.replace(/\\D/g, '') : '');\n const [inputValueBetween, setInputValueBetween] = useState(Array.isArray(value) ? value[1] : '');\n const [ddlStyles, setDDLStyles] = useState({\n control: (provided, state) => ({\n ...provided,\n width: 175\n }),\n ...selectStyles\n });\n const [hasError, setHasError] = useState(error);\n\n useEffect(() => {\n setHasError(error);\n }, [error]);\n\n\n const handleOperatorChange = (eventValue) => {\n setInputValueBetween('');\n setOperatorValue({ value: eventValue.value, label: eventValue.label }); \n let ev = {\n target: {\n id: id,\n value: eventValue.value === 'between' ? [inputValue, inputValueBetween] : inputValue,\n type: 'operatorinput',\n operator: eventValue.value\n }\n };\n onChange(ev);\n }\n\n const handleInputChange = (evt) => {\n const onlyDigits = evt.target.value.replace(/\\D/g, '');\n if (operatorValue.value === 'between') {\n evt.target.id === 'operator-input' ? setInputValue(onlyDigits) : setInputValueBetween(onlyDigits);\n let ev = {\n target: {\n id: id,\n value: evt.target.id === 'operator-input' ? [onlyDigits, inputValueBetween] : [inputValue, onlyDigits],\n type: 'operatorinput',\n operator: operatorValue.value\n }\n };\n onChange(ev);\n } else {\n setInputValue(onlyDigits);\n let ev = {\n target: {\n id: id,\n value: onlyDigits,\n type: 'operatorinput',\n operator: operatorValue.value\n }\n };\n onChange(ev);\n }\n }\n\n let selectClassName = className;\n\n const defaultStyle = {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'baseline'\n }\n\n return (\n
\n \n \n \n {operatorValue.value === 'between' &&\n <>\n And\n \n \n }\n {hasError &&\n

{error}

\n }\n
\n );\n\n}\n\nexport default OperatorInput;\n\nOperatorInput.defaultProps = {\n options: [\n { value: '>', label: 'Greater than' },\n { value: '<', label: 'Less than' },\n { value: '>=', label: 'Greater or Equal' },\n { value: '<=', label: 'Less or Equal' },\n { value: '==', label: 'Equal' },\n { value: 'between', label: 'Between' },\n ],\n};","/**\n * Copyright 2017 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 AsyncSelect from 'react-select/lib/Async';\nimport AsyncCreatableSelect from 'react-select/lib/AsyncCreatable';\nimport {queryOrganizations} from '../../utils/query-actions';\n\nexport default class OrganizationInput extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.handleChange = this.handleChange.bind(this);\n this.handleNew = this.handleNew.bind(this);\n this.getOrganizations = this.getOrganizations.bind(this);\n }\n\n handleChange(value) {\n // we need to map into value/label because of a bug in react-select 2\n // https://github.com/JedWatson/react-select/issues/2998\n\n let ev = {target: {\n id: this.props.id,\n value: {id: value.value, name: value.label},\n type: 'organizationinput'\n }};\n\n this.props.onChange(ev);\n }\n\n handleNew(value) {\n // we need to map into value/label because of a bug in react-select 2\n // https://github.com/JedWatson/react-select/issues/2998\n\n const translateValue = (newValue) => {\n this.handleChange({value: newValue.id, label: newValue.name});\n }\n\n this.props.onCreate(value, translateValue);\n }\n\n getOrganizations (input, callback) {\n if (!input) {\n return Promise.resolve({ options: [] });\n }\n\n // we need to map into value/label because of a bug in react-select 2\n // https://github.com/JedWatson/react-select/issues/2998\n\n const translateOptions = (options) => {\n let newOptions = options.map(org => ({value: org.id.toString(), label: org.name}));\n callback(newOptions);\n };\n\n queryOrganizations(input, translateOptions);\n }\n\n render() {\n let {error, value, id, onChange, ...rest} = this.props;\n let has_error = ( this.props.hasOwnProperty('error') && error != '' );\n let allowCreate = this.props.hasOwnProperty('allowCreate');\n\n // we need to map into value/label because of a bug in react-select 2\n // https://github.com/JedWatson/react-select/issues/2998\n let theValue = value ? {value: value.id.toString(), label: value.name} : null;\n\n const AsyncComponent = allowCreate\n ? AsyncCreatableSelect\n : AsyncSelect;\n\n return (\n
\n \n {has_error &&\n

{error}

\n }\n
\n );\n\n }\n}\n\n\n\n","/**\n * Copyright 2017 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 AsyncSelect from 'react-select/lib/Async';\nimport {DEFAULT_PAGE_SIZE, queryPromocodes} from '../../utils/query-actions';\n\nconst PromocodeInput = ({summitId, error, value, onChange, id, multi, perPage, extraFilters, ...rest}) => {\n\n const handleChange = (value) => {\n let theValue = null;\n const isMulti = multi || rest.isMulti;\n if (value) {\n theValue = isMulti ? value.map(v => ({id: v.value, code: v.label})) : {id: value.value, code: value.label};\n }\n\n let ev = {target: {\n id: id,\n value: theValue,\n type: 'promocodeinput'\n }};\n\n onChange(ev);\n }\n\n const getPromocodes = (input, callback) => {\n\n if (!input) {\n return Promise.resolve({ options: [] });\n }\n\n // we need to map into value/label because of a bug in react-select 2\n // https://github.com/JedWatson/react-select/issues/2998\n\n const translateOptions = (options) => {\n let newOptions = options.map(c => ({value: c.id.toString(), label: c.code}));\n callback(newOptions);\n };\n\n queryPromocodes(summitId, input, translateOptions, perPage, extraFilters);\n }\n\n const has_error = !!( error && error !== '' );\n const isMulti = multi || rest.isMulti;\n\n // we need to map into value/label because of a bug in react-select 2\n // https://github.com/JedWatson/react-select/issues/2998\n\n let theValue = null;\n\n if (isMulti && value.length > 0) {\n theValue = value.map(v => ({value: v.id.toString(), label: v.code} ));\n } else if (!isMulti && value) {\n theValue = {value: value.id.toString(), label: value.code};\n }\n\n return (\n
\n \n {has_error &&\n

{error}

\n }\n
\n );\n}\n\nPromocodeInput.propTypes = {\n perPage: PropTypes.number,\n extraFilters: PropTypes.array\n};\n\nPromocodeInput.defaultProps = {\n perPage: DEFAULT_PAGE_SIZE,\n extraFilters: []\n};\n\nexport default PromocodeInput;\n","/**\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 React from 'react';\nimport RawHTML from '../raw-html';\nimport PropTypes from 'prop-types'\n\nimport \"awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css\";\n\nexport default class RadioList extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n value: props.value,\n };\n\n this.handleChange = this.handleChange.bind(this);\n }\n\n handleChange(selection) {\n\n let ev = {target: {\n id: this.props.id,\n value: selection.target.value,\n type: 'radio'\n }};\n\n this.props.onChange(ev);\n }\n\n getLabel(option, id, inline, simple) {\n if (inline) {\n return (\n \n );\n } else if (simple) {\n return (\n \n );\n } else {\n return (\n \n );\n }\n }\n\n render() {\n\n let {onChange, value, className, error, ariaLabelledBy, disabled, options,id, name,...rest} = this.props;\n let has_error = ( this.props.hasOwnProperty('error') && error != '' );\n let inline = ( this.props.hasOwnProperty('inline') );\n let simple = ( this.props.hasOwnProperty('simple') );\n let isDisabled = (this.props.hasOwnProperty('disabled') && disabled == true);\n\n let style, label;\n\n if (inline) {\n style = {\n paddingLeft: '22px',\n marginLeft: '20px',\n float: 'left'\n };\n\n\n } else {\n style = {\n paddingLeft: '22px'\n }\n }\n\n return (\n
\n { options.map(op => {\n let checked = (op.value == value);\n return (\n
\n \n {this.getLabel(op, id, inline, simple)}\n
\n )\n })}\n\n {has_error &&\n

{error}

\n }\n
\n );\n\n }\n}\n\nRadioList.defaultProps = {\n ariaLabelledBy : null,\n}\n\nRadioList.propTypes = {\n id: PropTypes.string.isRequired\n};\n","/**\n * Copyright 2017 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 AsyncCreatableSelect from \"react-select/lib/AsyncCreatable\";\nimport { queryRegistrationCompanies } from '../../utils/query-actions';\nimport _ from 'lodash';\nconst NullValue = { value: null, label: '' };\nconst NewId = 0;\n\nconst RegistrationCompanyInput = ({\n error, onChange, id, disabled, className, summitId, onError,\n value, placeholder, tabSelectsValue, selectStyles, createLabel, options2Show, ...rest }) => {\n\n const isNullValue = (val) => _.isEqual(val, {id: null, name: ''})\n\n const handleChange = (eventValue) => {\n if(!eventValue) eventValue = NullValue;\n const newValue = { id: eventValue.value, name: eventValue.label };\n let ev = {\n target: {\n id: id,\n value: newValue,\n type: 'registration_company_input'\n }\n };\n\n onChange(ev);\n }\n\n const getCompanies = (input, callback) => {\n\n const translateOptions = (options) => {\n\n if (options instanceof Error) {\n onError(options);\n }\n if (options.length === 0) {\n callback([]);\n }\n // we need to map into value/label because of a bug in react-select 2\n // https://github.com/JedWatson/react-select/issues/2998\n let newOptions = [...options.map(c => ({ value: c.id.toString(), label: c.name }))];\n callback(newOptions);\n };\n\n queryRegistrationCompanies(summitId, input, translateOptions, options2Show);\n }\n\n const handleNewOption = (newOption) => {\n // we need to map into value/label because of a bug in react-select 2\n // https://github.com/JedWatson/react-select/issues/2998\n handleChange({value: NewId, label: newOption});\n }\n\n const classNamPrefix =`${className}_prefix`;\n\n // default value ( no selection )\n let theValue = null;\n\n if (value && !isNullValue(value)) {\n theValue = {value: value.id, label: value.name};\n }\n\n return (\n
\n `${createLabel} \"${value}\"`}\n isDisabled={disabled}\n {...rest}\n />\n {error &&\n

{error}

\n }\n
\n );\n\n}\n\nexport default RegistrationCompanyInput;\n\nRegistrationCompanyInput.defaultProps = {\n placeholder: 'Select a company',\n disabled: false,\n tabSelectsValue: false,\n createLabel: 'Select ',\n className:'registration_company_dll',\n options2Show: 20,\n}\n\nRegistrationCompanyInput.propTypes = {\n onError: PropTypes.func.isRequired,\n placeholder: PropTypes.string,\n options2Show: PropTypes.number,\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-select/lib/components\");","/**\n * Copyright 2017 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 AsyncSelect from 'react-select/lib/Async';\nimport { components } from 'react-select/lib/components'\nimport { querySpeakers } from '../../utils/query-actions';\n\nexport default class SpeakerInput extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.handleChange = this.handleChange.bind(this);\n this.getSpeakers = this.getSpeakers.bind(this);\n this.handleClick = this.handleClick.bind(this);\n this.getOptionValue = this.getOptionValue.bind(this);\n this.getOptionLabel = this.getOptionLabel.bind(this);\n }\n\n handleChange(value) {\n let ev = {target: {\n id: this.props.id,\n value: value,\n type: 'speakerinput'\n }};\n\n this.props.onChange(ev);\n }\n\n handleClick(speakerId) {\n let {history} = this.props;\n\n history.push(`/app/speakers/${speakerId}`);\n }\n\n getSpeakers (input, callback) {\n if (!input) {\n return Promise.resolve({ options: [] });\n }\n\n let summitId = (this.props.hasOwnProperty('summitId')) ? this.props.summitId : null;\n\n querySpeakers(summitId, input, callback);\n }\n\n getOptionValue(speaker){\n if(this.props.hasOwnProperty(\"getOptionValue\")){\n return this.props.getOptionValue(speaker);\n }\n //default\n return speaker.id;\n }\n\n getOptionLabel(speaker){\n if(this.props.hasOwnProperty(\"getOptionLabel\")){\n return this.props.getOptionLabel(speaker);\n }\n //default\n return `${speaker.first_name} ${speaker.last_name} (${speaker.id})`;\n }\n\n render() {\n let {value, onChange, history, summitId, error, id, multi, ...rest} = this.props;\n let has_error = ( this.props.hasOwnProperty('error') && error != '' );\n let isMulti = (this.props.hasOwnProperty('multi'));\n\n const MultiValueLabel = (props) => {\n return (\n this.handleClick(props.data.id)} style={{cursor: 'pointer'}}>\n \n \n );\n };\n\n return (\n
\n this.getOptionValue(s)}\n getOptionLabel={s => this.getOptionLabel(s)}\n isMulti={isMulti}\n {...rest}\n />\n {has_error &&\n

{error}

\n }\n
\n );\n\n }\n}\n\n","/**\n * Copyright 2017 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 AsyncSelect from 'react-select/lib/Async';\nimport { querySponsors } from '../../utils/query-actions';\n\nconst SponsorInput = ({ id, summitId, value, error, multi, onChange, queryFunction, ...rest }) => {\n const queryFn = queryFunction || querySponsors;\n const has_error = error !== '';\n\n const handleChange = (value) => {\n let ev = {\n target: {\n id: id,\n value: value,\n type: 'sponsorinput'\n }\n };\n\n onChange(ev);\n }\n\n const getSponsors = (input, callback) => {\n const filterSponsors = (options) => {\n let newOptions = options.filter(c => c.company);\n callback(newOptions);\n };\n\n queryFn(summitId, input, filterSponsors);\n }\n\n return (\n
\n option.id}\n getOptionLabel={option => `${option.company.name} (${option.sponsorship?.type?.name})`}\n onChange={handleChange}\n loadOptions={getSponsors}\n isMulti={multi}\n {...rest}\n />\n {has_error &&\n

{error}

\n }\n
\n );\n}\n\nexport default SponsorInput;\n","/**\n * Copyright 2022 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 AsyncSelect from 'react-select/lib/Async';\nimport { querySponsoredProjects } from '../../utils/query-actions';\n\nexport default class SponsoredProjectInput extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.handleChange = this.handleChange.bind(this);\n this.getSponsoredProjects = this.getSponsoredProjects.bind(this);\n }\n\n handleChange(value) {\n let ev = {target: {\n id: this.props.id,\n value: value,\n type: 'sponsoredprojectinput'\n }};\n\n this.props.onChange(ev);\n }\n\n getSponsoredProjects (input, callback) {\n if (!input) {\n return Promise.resolve({ options: [] });\n }\n\n querySponsoredProjects(input, callback);\n }\n\n render() {\n let {value, error, onChange, id, multi, ...rest} = this.props;\n let isMulti = (this.props.hasOwnProperty('multi'));\n let isClearable = (this.props.hasOwnProperty('clearable'));\n let has_error = ( this.props.hasOwnProperty('error') && error != '' );\n\n return (\n
\n op.id}\n getOptionLabel={op => (`${op.name} (${op.id})`)}\n isMulti={isMulti}\n isClearable={isClearable}\n {...rest}\n />\n {has_error &&\n

{error}

\n }\n\n
\n );\n\n }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"tDZTa8dy9OMVyGAtxNOS\",\"valueBox\":\"VoBl8JcsRZelj8EKGKtC\"};","import React from 'react';\nimport styles from './index.module.less';\n\nexport default ({value, options, onChange, ...rest}) => {\n \n const currentOptionKey = options.findIndex(op => op.value === value);\n\n const valueLabel = options.find(op => op.value === value).label;\n\n const onClickMinus = () => {\n if (currentOptionKey > 0) {\n onChange(options[currentOptionKey - 1].value);\n }\n }\n\n const onClickPlus = () => {\n if (currentOptionKey < options.length -1) {\n onChange(options[currentOptionKey + 1].value);\n }\n }\n\n return (\n
\n \n {valueLabel}\n \n
\n );\n};\n","/**\n * Copyright 2017 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 Select from 'react-select';\n\nconst SummitDaysSelect = ({ days, currentValue, placeholder, onDayChanged }) => {\n const theValue = days.find(op => op.value === currentValue) || null;\n\n const onChange = (selectedOption) => {\n onDayChanged(selectedOption?.value || null);\n };\n\n return (\n \n );\n}\n\nexport default SummitDaysSelect;\n","/**\n * Copyright 2017 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 AsyncSelect from 'react-select/lib/Async';\nimport {querySummits} from '../../utils/query-actions';\n\nexport default class SummitInput extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n value: props.value\n };\n\n this.handleChange = this.handleChange.bind(this);\n this.getSummits = this.getSummits.bind(this);\n }\n\n handleChange(value) {\n let ev = {target: {\n id: this.props.id,\n value: value,\n type: 'summitinput'\n }};\n\n this.props.onChange(ev);\n }\n\n getSummits (input, callback) {\n if (!input) {\n return Promise.resolve({ options: [] });\n }\n\n querySummits(input, callback);\n }\n\n\n render() {\n let {value, error, onChange, id, multi, ...rest} = this.props;\n let isMulti = (this.props.hasOwnProperty('multi'));\n let has_error = ( this.props.hasOwnProperty('error') && error != '' );\n\n return (\n
\n op.id}\n getOptionLabel={op => (`${op.name} (${op.id})`)}\n isMulti={isMulti}\n {...rest}\n />\n {has_error &&\n

{error}

\n }\n\n
\n );\n\n }\n}\n\n","/**\n * Copyright 2017 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 Select from 'react-select';\n\nconst SummitVenuesSelect = ({venues, currentValue, placeholder, onVenueChanged, ...rest}) => {\n const parsedValue = venues.find(v => v.value.id === currentValue?.id) || null;\n const renderOption = (option) => {\n let location = option.value;\n if (location.class_name === 'SummitVenue')\n return ({location.name});\n return (- {location.name});\n }\n\n const onChange = (selectedOption) => {\n onVenueChanged(selectedOption?.value || null);\n }\n\n return (\n \n );\n}\n\nexport default SummitVenuesSelect;\n","/**\n * Copyright 2017 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 AsyncSelect from 'react-select/lib/Async';\nimport AsyncCreatableSelect from \"react-select/lib/AsyncCreatable\";\nimport { queryTags } from '../../utils/query-actions';\nimport { shallowEqual } from \"../../utils/methods\";\n\nexport default class TagInput extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n tagValue: props.value.map((t) => ({ tag: t.tag, id: t.id }))\n };\n\n this.handleChange = this.handleChange.bind(this);\n this.handleNew = this.handleNew.bind(this);\n this.getTags = this.getTags.bind(this);\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n if (!shallowEqual(this.props.value, prevProps.value)) {\n let nextValue = this.props.value.map((t) => ({ tag: t.tag, id: t.id }));\n this.setState({ tagValue: nextValue });\n }\n }\n\n handleNew(ev) {\n const newTag = { tag: ev }\n this.props.onCreate(ev, this.setState({ value: [...this.state.tagValue, newTag] }));\n }\n\n handleChange(value) {\n let ev = {\n target: {\n id: this.props.id,\n value: value,\n type: 'taginput'\n }\n };\n\n this.props.onChange(ev);\n }\n\n getTags(input, callback) {\n if (!input) {\n return Promise.resolve({ options: [] });\n }\n\n let summitId = (this.props.hasOwnProperty('summitId')) ? this.props.summitId : null;\n\n const _callback = (options) => {\n if (summitId) {\n options = options.map(t => t.tag);\n }\n callback(options);\n };\n\n queryTags(summitId, input, _callback);\n }\n\n render() {\n let { className, error, allowCreate, ...rest } = this.props;\n let { tagValue } = this.state;\n let has_error = (this.props.hasOwnProperty('error') && error != '');\n let orderedTags = tagValue.sort((a, b) => (a.tag.toLowerCase() > b.tag.toLowerCase() ? 1 : (a.tag.toLowerCase() < b.tag.toLowerCase() ? -1 : 0)));\n\n const AsyncComponent = allowCreate\n ? AsyncCreatableSelect\n : AsyncSelect;\n\n return (\n
\n option.__isNew__ ? option.label : option.tag}\n getOptionValue={option => option.__isNew__ ? option.value : option.tag}\n />\n {has_error &&\n

{error}

\n }\n
\n );\n\n }\n}\n\nTagInput.propTypes = {\n allowCreate: PropTypes.bool,\n className: PropTypes.string,\n summitId: PropTypes.number,\n id: PropTypes.string.isRequired,\n value: PropTypes.array,\n onCreate: PropTypes.func,\n onChange: PropTypes.func.isRequired,\n};\n\nTagInput.defaultProps = {\n allowCreate: false\n}\n","/**\n * Copyright 2017 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';\n\nexport default class Input extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.handleChange = this.handleChange.bind(this);\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n if (this.props.value !== prevProps.value) {\n this.input.value = this.props.value;\n }\n }\n\n handleChange(ev) {\n this.props.onChange(ev);\n }\n\n render() {\n\n let {onChange, value, className, error, ariaLabelledBy, containerClassName,...rest} = this.props;\n let has_error = ( this.props.hasOwnProperty('error') && error !== '' );\n let class_name = this.props.hasOwnProperty('className') ? className : 'form-control';\n let container_class_name = this.props.hasOwnProperty('containerClassName') ? containerClassName : 'container-form-control';\n return (\n
\n {this.input = node}}\n defaultValue={value}\n aria-labelledby={ariaLabelledBy}\n onChange={this.handleChange}\n {...rest}\n />\n {has_error &&\n

{error}

\n }\n
\n );\n\n }\n}\n\nInput.defaultProps = {\n ariaLabelledBy : null,\n}","/**\n * Copyright 2017 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';\n\nconst TextArea = ({ onChange, value, className, error, maxLength, ...rest }) => {\n const has_error = error && error !== '';\n const class_name = className ? className : 'form-control';\n const charCountLeft = Math.max(maxLength - value.length, 0);\n\n const handleChange = (ev) => {\n const isBackSpace = !!(value?.length - ev.target?.value?.length);\n\n if (!maxLength || isBackSpace) onChange(ev);\n\n if (charCountLeft) {\n onChange(ev)\n }\n };\n\n return (\n
\n \n {!!maxLength &&\n

characters left: {charCountLeft}

\n }\n {has_error &&\n

{error}

\n }\n
\n );\n}\n\nTextArea.defaultProps = {\n value: \"\"\n};\n\nexport default TextArea;\n","/**\n * Copyright 2017 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 AsyncSelect from 'react-select/lib/Async';\nimport { queryTicketTypes } from '../../utils/query-actions';\nimport PropTypes from 'prop-types';\n\nclass TicketTypesInput extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n value: props.value\n };\n\n this.handleChange = this.handleChange.bind(this);\n this.getTicketTypes = this.getTicketTypes.bind(this);\n this.getOptionValue = this.getOptionValue.bind(this);\n this.getOptionLabel = this.getOptionLabel.bind(this);\n }\n\n getOptionValue(ticketType){\n if(this.props.hasOwnProperty(\"getOptionValue\")){\n return this.props.getOptionValue(ticketType);\n }\n //default\n return ticketType.id;\n }\n\n getOptionLabel(ticketType){\n if(this.props.hasOwnProperty(\"getOptionLabel\")){\n return this.props.getOptionLabel(ticketType);\n }\n //default\n return `${ticketType.name}`;\n }\n\n handleChange(value) {\n let ev = {target: {\n id: this.props.id,\n value: value,\n type: 'tickettypeinput'\n }};\n\n this.props.onChange(ev);\n }\n\n getTicketTypes (input, callback) {\n let { summitId, version, optionsLimit } = this.props;\n\n let filters = { name : input };\n if(this.props.hasOwnProperty('audience')){\n filters['audience'] = this.props.audience;\n }\n\n queryTicketTypes(summitId, filters , callback, version, optionsLimit);\n }\n\n render() {\n\n let {value, error, onChange, id, multi, optionsLimit, ...rest} = this.props;\n let isMulti = (this.props.hasOwnProperty('multi'));\n let has_error = ( this.props.hasOwnProperty('error') && error != '' );\n\n return (\n
\n this.getOptionValue(m)}\n getOptionLabel={m => this.getOptionLabel(m)}\n isMulti={isMulti}\n {...rest}\n />\n {has_error &&\n

{error}

\n }\n\n
\n );\n\n }\n}\n\nTicketTypesInput.defaultProps = {\n version: 'v1',\n}\n\nTicketTypesInput.propTypes = {\n audience: PropTypes.string,\n version: PropTypes.string,\n};\n\n\nexport default TicketTypesInput;\n","/**\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 React from 'react'\nimport DropzoneJS from '../dropzone'\nimport './index.less';\nimport file_icon from '../upload-input/file.png';\nimport ProgressiveImg from \"../../progressive-img\";\nconst FileNameMaxLen = 20;\n\nexport default class UploadInputV2 extends React.Component {\n\n constructor(props) {\n super(props);\n }\n\n getDefaultAllowedExtensions = () => {\n const { mediaType } = this.props\n return mediaType && mediaType.type ? mediaType?.type?.allowed_extensions.map((ext) => `.${ext.toLowerCase()}`).join(\",\") : '';\n }\n\n getDefaultMaxSize = () => {\n const { mediaType } = this.props\n return mediaType ? mediaType?.max_size / 1024 : 100;\n }\n\n getDropzone = () => {\n const {\n value,\n onRemove,\n canAdd = true,\n mediaType,\n postUrl,\n maxFiles = 1,\n timeOut,\n onUploadComplete,\n djsConfig,\n id,\n parallelChunkUploads = false,\n maxConcurrentChunks = 6,\n onError = () => {},\n getAllowedExtensions = null,\n getMaxSize = null\n } = this.props;\n\n const allowedExt = getAllowedExtensions ? getAllowedExtensions() : this.getDefaultAllowedExtensions();\n const maxSize = getMaxSize ? getMaxSize() : this.getDefaultMaxSize();\n const canUpload = !maxFiles || value.length < maxFiles;\n\n let eventHandlers = {};\n if (onRemove) {\n eventHandlers = {removedfile: onRemove};\n }\n\n const djsConfigSet = {\n paramName: \"file\", // The name that will be used to transfer the file,\n maxFilesize: maxSize, // MB,\n timeout: timeOut || (1000 * 60 * 10),\n chunking: true,\n retryChunks: true,\n parallelChunkUploads: parallelChunkUploads,\n addRemoveLinks: true,\n maxFiles: maxFiles,\n acceptedFiles: allowedExt,\n ...djsConfig\n };\n\n const componentConfig = {\n showFiletypeIcon: false,\n postUrl: postUrl\n };\n\n const data = {\n media_type: mediaType,\n media_upload: value,\n };\n\n if (!postUrl) {\n return (\n
\n No Post URL\n
\n );\n }\n if (!canAdd) {\n return (\n
\n Upload has been disabled by administrators.\n
\n );\n } else if (!canUpload) {\n return (\n
\n Max number of files uploaded for this type - Remove uploaded file to add new file.\n
\n );\n } else {\n return (\n \n );\n }\n }\n\n render() {\n const {value, canDelete = true, onRemove, error} = this.props;\n const has_error = ( this.props.hasOwnProperty('error') && error !== '' );\n\n return (\n
\n
\n {this.getDropzone()}\n
\n
\n {has_error &&\n

{error}

\n }\n {value.length > 0 &&\n
    \n {value.map((v,i) => {\n let src = v?.private_url || v?.public_url;\n if(src === '#') src = v?.public_url;\n // custom replace for dropbox case ( download vs raw)\n let filename = v.filename;\n let previewSrc = src ? src.replace(\"?dl=0\",\"?raw=1\") : filename;\n let ext = filename.split('.').pop();\n let path = filename.replace(`.${ext}`, '');\n if (path.length > FileNameMaxLen) {\n path = path.substring(0, FileNameMaxLen);\n }\n\n return (\n
  • \n \n \n \n \n \n {`${path}.${ext}`}\n {onRemove && canDelete &&\n \n onRemove(v)} >\n \n \n \n }\n
  • \n )\n })}\n
\n }\n
\n
\n );\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@mui/material\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@mui/icons-material\");","/**\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 React from 'react';\nimport { DropzoneJS } from '../dropzone';\n\n/**\n * Thin wrapper around DropzoneJS that exposes file lifecycle callbacks\n * without modifying the shared dropzone component.\n */\nexport const DropzoneV3 = ({\n onAddedFile,\n onUploadProgress,\n onFileRemoved,\n onFileCompleted,\n onFileError,\n onDropzoneReady,\n eventHandlers = {},\n children,\n ...props\n}) => {\n const combinedEventHandlers = {\n ...eventHandlers,\n init: (dz) => {\n if (onDropzoneReady) onDropzoneReady(dz);\n if (eventHandlers.init) eventHandlers.init(dz);\n },\n addedfile: (file) => {\n if (onAddedFile) onAddedFile(file);\n if (eventHandlers.addedfile) eventHandlers.addedfile(file);\n },\n removedfile: (file) => {\n if (onFileRemoved) onFileRemoved(file);\n if (eventHandlers.removedfile) eventHandlers.removedfile(file);\n },\n uploadprogress: (file, progress, bytesSent) => {\n if (onUploadProgress) onUploadProgress(file, file.size > 0 ? bytesSent / file.size * 100 : 0);\n if (eventHandlers.uploadprogress) eventHandlers.uploadprogress(file, progress, bytesSent);\n },\n success: (file) => {\n if (onFileCompleted) onFileCompleted(file);\n if (eventHandlers.success) eventHandlers.success(file);\n },\n error: (file, message) => {\n if (onFileError) onFileError(file, message);\n if (eventHandlers.error) eventHandlers.error(file, message);\n },\n };\n\n return (\n \n {children}\n \n );\n};\n\nexport default DropzoneV3;\n","/**\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 React, { useState, useRef, useMemo, useCallback, useEffect } from 'react';\nimport {\n Box,\n Typography,\n IconButton,\n Alert,\n LinearProgress,\n} from '@mui/material';\nimport {\n UploadFile as UploadFileIcon,\n Delete as DeleteIcon,\n CheckCircle as CheckCircleIcon,\n ErrorOutline as ErrorOutlineIcon,\n Close as CloseIcon,\n} from '@mui/icons-material';\nimport { DropzoneV3 } from './dropzone-v3';\nimport './index.less';\n\nconst UploadInputV3 = ({\n value = [],\n onRemove,\n canAdd = true,\n canDelete = true,\n mediaType,\n postUrl,\n maxFiles = 1,\n timeOut,\n onUploadComplete,\n djsConfig,\n id,\n parallelChunkUploads = false,\n maxConcurrentChunks = 6,\n onError = () => {},\n getAllowedExtensions = null,\n getMaxSize = null,\n error,\n label,\n helpText\n}) => {\n const dropzoneInstanceRef = useRef(null);\n const [uploadingFiles, setUploadingFiles] = useState([]);\n const [errorFiles, setErrorFiles] = useState([]);\n\n const getDefaultAllowedExtensions = useCallback(() => {\n return mediaType && mediaType.type\n ? mediaType?.type?.allowed_extensions.map((ext) => `.${ext.toLowerCase()}`).join(\",\")\n : '';\n }, [mediaType]);\n\n const getDefaultMaxSize = useCallback(() => {\n return mediaType ? mediaType?.max_size / (1024 * 1024) : 100;\n }, [mediaType]);\n\n const allowedExt = useMemo(() =>\n getAllowedExtensions ? getAllowedExtensions() : getDefaultAllowedExtensions(),\n [getAllowedExtensions, getDefaultAllowedExtensions]\n );\n\n const maxSize = useMemo(() =>\n getMaxSize ? getMaxSize() : getDefaultMaxSize(),\n [getMaxSize, getDefaultMaxSize]\n );\n\n const canUpload = useMemo(() =>\n !maxFiles || value.length < maxFiles,\n [maxFiles, value.length]\n );\n\n const showDropzone = useMemo(() =>\n canUpload && uploadingFiles.length === 0 && errorFiles.length === 0,\n [canUpload, uploadingFiles.length, errorFiles.length]\n );\n\n const eventHandlers = useMemo(() => {\n return onRemove ? { removedfile: onRemove } : {};\n }, [onRemove]);\n\n const djsConfigSet = useMemo(() => ({\n paramName: \"file\",\n maxFilesize: maxSize,\n timeout: timeOut || (1000 * 60 * 10),\n chunking: true,\n retryChunks: true,\n parallelChunkUploads: parallelChunkUploads,\n addRemoveLinks: true,\n maxFiles: maxFiles,\n acceptedFiles: allowedExt,\n dictDefaultMessage: '',\n ...djsConfig\n }), [maxSize, timeOut, parallelChunkUploads, maxFiles, allowedExt, djsConfig]);\n\n const componentConfig = useMemo(() => ({\n showFiletypeIcon: false,\n postUrl: postUrl\n }), [postUrl]);\n\n const data = useMemo(() => ({\n media_type: mediaType,\n media_upload: value,\n }), [mediaType, value]);\n\n const formatFileSize = useCallback((bytes) => {\n if (!bytes) return '0 KB';\n if (bytes >= 1024 * 1024) return `${Math.round(bytes / (1024 * 1024))} MB`;\n return `${Math.round(bytes / 1024)} KB`;\n }, []);\n\n const formatExtensionsDisplay = useCallback(() => {\n if (!allowedExt) return '';\n const exts = allowedExt.split(',')\n .map(e => e.trim().replace('.', '').toUpperCase())\n .filter(Boolean);\n if (exts.length === 0) return '';\n if (exts.length === 1) return exts[0];\n return `${exts.slice(0, -1).join(', ')} or ${exts[exts.length - 1]}`;\n }, [allowedExt]);\n\n const handleRemove = useCallback((file) => (ev) => {\n ev.preventDefault();\n onRemove(file);\n }, [onRemove]);\n\n const handleDropzoneReady = useCallback((dz) => {\n dropzoneInstanceRef.current = dz;\n }, []);\n\n const handleAddedFile = useCallback((file) => {\n setUploadingFiles(prev => [...prev, { name: file.name, size: file.size, progress: 0, complete: false }]);\n }, []);\n\n const handleUploadProgress = useCallback((file, progress) => {\n setUploadingFiles(prev => prev.map(f =>\n f.name === file.name && f.size === file.size ? { ...f, progress } : f\n ));\n }, []);\n\n const handleFileRemoved = useCallback((file) => {\n setUploadingFiles(prev => prev.filter(f => !(f.name === file.name && f.size === file.size)));\n }, []);\n\n // Mark as complete instead of removing — keep it visible until value is updated by the parent\n const handleFileCompleted = useCallback((file) => {\n setUploadingFiles(prev => prev.map(f =>\n f.name === file.name && f.size === file.size ? { ...f, progress: 100, complete: true } : f\n ));\n }, []);\n\n // Once the parent updates value, remove the matching completed file from uploadingFiles\n useEffect(() => {\n if (uploadingFiles.length === 0 || value.length === 0) return;\n setUploadingFiles(prev => prev.filter(f => {\n if (!f.complete) return true;\n return !value.some(v => v.filename === f.name);\n }));\n }, [value]);\n\n const handleFileError = useCallback((file, message) => {\n setUploadingFiles(prev => prev.filter(f => !(f.name === file.name && f.size === file.size)));\n setErrorFiles(prev => [...prev, { name: file.name, size: file.size, message }]);\n }, []);\n\n const handleDismissError = useCallback((file) => {\n if (dropzoneInstanceRef.current) {\n const dzFile = dropzoneInstanceRef.current.files?.find(\n f => f.name === file.name && f.size === file.size\n );\n if (dzFile) dropzoneInstanceRef.current.removeFile(dzFile);\n }\n setErrorFiles(prev => prev.filter(f => !(f.name === file.name && f.size === file.size)));\n }, []);\n\n const handleDeleteUploading = useCallback((file) => {\n if (dropzoneInstanceRef.current) {\n const dzFile = dropzoneInstanceRef.current.files?.find(\n f => f.name === file.name && f.size === file.size\n );\n if (dzFile) dropzoneInstanceRef.current.removeFile(dzFile);\n }\n setUploadingFiles(prev => prev.filter(f => !(f.name === file.name && f.size === file.size)));\n }, []);\n\n const wrappedOnUploadComplete = useCallback((response, dzId, dzData) => {\n if (onUploadComplete) onUploadComplete(response, dzId, dzData);\n }, [onUploadComplete]);\n\n const extDisplay = formatExtensionsDisplay();\n\n const renderDropzone = () => {\n if (!postUrl) {\n return (\n \n No Post URL\n \n );\n }\n if (!canAdd) {\n return (\n \n Upload has been disabled by administrators.\n \n );\n }\n\n return (\n \n \n \n \n Click to upload or drag and drop\n \n {(extDisplay || maxSize) && (\n \n {extDisplay ? `${extDisplay} files` : ''}\n {maxSize ? ` (max. ${maxSize}MB)` : ''}\n \n )}\n \n \n );\n };\n\n const fileRowSx = {\n display: 'flex',\n alignItems: 'center',\n py: 1.5,\n mb: 1,\n };\n\n return (\n \n {label && (\n \n {label}\n \n )}\n\n {helpText && (\n \n {helpText}\n \n )}\n\n {canUpload && (\n \n {renderDropzone()}\n \n )}\n\n {error && (\n \n {error}\n \n )}\n\n {uploadingFiles.length > 0 && (\n \n {uploadingFiles.map((file, index) => (\n \n \n \n \n\n \n \n {file.name}\n \n \n {formatFileSize(file.size)} · {file.complete ? 'Complete' : 'Loading'}\n \n {!file.complete && (\n \n )}\n \n\n \n handleDeleteUploading(file)}\n sx={{ color: 'text.secondary', '&:hover': { color: 'error.main' } }}\n >\n \n \n {file.complete && (\n \n )}\n \n \n ))}\n \n )}\n\n {errorFiles.length > 0 && (\n \n {errorFiles.map((file, index) => (\n \n \n \n \n\n \n \n {file.name}\n \n \n {file.message}\n \n \n\n handleDismissError(file)}\n sx={{ color: 'error.main' }}\n >\n \n \n \n ))}\n \n )}\n\n {value.length > 0 && (\n \n {value.map((file, index) => {\n const filename = file.filename;\n const fileSize = formatFileSize(file.size);\n\n return (\n \n \n \n \n\n \n \n {filename}\n \n \n {fileSize} · Complete\n \n \n\n \n {onRemove && canDelete && (\n \n \n \n )}\n \n \n \n );\n })}\n \n )}\n\n \n );\n};\n\nexport default UploadInputV3;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-dropzone\");","/**\n * Copyright 2017 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, useState} from 'react';\nimport Dropzone from 'react-dropzone';\nimport T from 'i18n-react/dist/i18n-react';\nimport './upload.less';\n\nimport file_icon from './file.png';\nimport pdf_icon from './pdf.png';\nimport mov_icon from './mov.png';\nimport mp4_icon from './mp4.png';\nimport csv_icon from './csv.png';\n\nconst fileHasPreview = (fileName) => {\n if (!fileName) return false;\n const pattern = /(.*)\\.(gif|bmp|svg|jpe?g|png)/g\n return pattern.test(fileName);\n}\n\nconst getPreviewIcon = (value, fileName) => {\n if (value && fileHasPreview(fileName)) {\n return value;\n }\n\n const ext = fileName.split('.').pop();\n\n switch (ext) {\n case 'pdf':\n return pdf_icon;\n case 'mov':\n return mov_icon;\n case 'mp4':\n return mp4_icon;\n case 'csv':\n return csv_icon;\n default:\n return file_icon;\n }\n}\n\nconst UploadInput = ({value, error, handleRemove, handleUpload, handleError, ...rest}) => {\n const [showRemove, setShowRemove] = useState(false);\n const [logoPreview, setLogoPreview] = useState({preview: null, name: ''});\n\n useEffect(() => {\n const logoPreviewTmp = {preview: null, name: ''};\n\n if (value) {\n const fileName = value.split(\"/\").pop();\n logoPreviewTmp.preview = getPreviewIcon(value, fileName);\n logoPreviewTmp.name = fileName;\n setLogoPreview(logoPreviewTmp);\n }\n }, [value]);\n\n const onDrop = (acceptedFiles, fileRejections) => {\n if (acceptedFiles.length > 0) {\n const file = acceptedFiles[0];\n handleUpload(file, {...rest});\n }\n\n if (fileRejections.length > 0 && handleError)\n handleError(fileRejections, {...rest});\n }\n\n const onRemove = (ev) => {\n ev.preventDefault();\n handleRemove(ev, {...rest});\n }\n\n const showVeil = () => {\n setShowRemove(true)\n }\n\n const hideVeil = () => {\n setShowRemove(false);\n }\n\n const has_error = error !== '';\n\n return (\n
\n \n
{T.translate(\"general.drop_files\")}
\n \n
\n

Selected Files

\n
\n {value &&\n
\n \n {logoPreview?.name}\n {showRemove &&\n
\n \n
\n }\n
\n }\n {has_error &&\n

{error}

\n }\n
\n
\n
\n )\n}\n\nexport default UploadInput;\n","// extracted by mini-css-extract-plugin\nexport default {\"loading\":\"T1PEDYso224efj98hUw9\",\"loaded\":\"HydBuzzegFMoqMkrptg7\",\"image\":\"Pq0tg32DAJ33TmIQMvMs\"};","/**\n * Copyright 2023 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 **/\nimport React,{ useState, useEffect, useRef } from \"react\";\nimport styles from './index.module.scss';\nimport pdf_icon from \"../inputs/upload-input/pdf.png\";\nimport mov_icon from \"../inputs/upload-input/mov.png\";\nimport mp4_icon from \"../inputs/upload-input/mp4.png\";\nimport csv_icon from \"../inputs/upload-input/csv.png\";\nimport file_icon from \"../inputs/upload-input/file.png\";\n/**\n *\n * @param placeholderSrc\n * @param src\n * @param props\n * @returns {JSX.Element}\n * @constructor\n */\nconst ProgressiveImg = ({ placeholderSrc, src, ...props }) => {\n const isCancelled = useRef(false);\n const [imgSrc, setImgSrc] = useState(placeholderSrc || src);\n const [customClass, setCustomClass] = useState(styles.loading);\n\n useEffect(() => {\n const img = new Image();\n const ext = src ? src.split('.').pop() : null;\n img.src = src;\n\n img.onload = () => {\n if (isCancelled.current) return\n setImgSrc(src)\n setCustomClass(styles.loaded)\n };\n\n img.onerror = () => {\n if (isCancelled.current) return\n img.onerror = null;\n if(ext && ext.toString().toLowerCase().includes('pdf'))\n setImgSrc(pdf_icon)\n else if(ext && ext.toString().toLowerCase().includes('mov'))\n setImgSrc(mov_icon);\n else if(ext && ext.toString().toLowerCase().includes('mp4'))\n setImgSrc(mp4_icon);\n else if(ext && ext.toString().toLowerCase().includes('csv'))\n setImgSrc(csv_icon);\n else\n setImgSrc(file_icon);\n setCustomClass(styles.loaded)\n };\n\n return () => {\n isCancelled.current = true;\n };\n }, [src]);\n\n return (\n \n );\n};\nexport default ProgressiveImg;\n","import React from 'react';\n\nconst RawHTML = ({children, replaceNewLine = false, className = \"\", ...rest}) =>\n ') : children}} {...rest}/>\n\nexport default RawHTML;","export const DraggableItemTypes = {\n UNSCHEDULEEVENT: 'UnScheduleEvent',\n SCHEDULEEVENT: 'ScheduleEvent',\n};\n\nexport const TBALocation = {id : 0, name : 'TBD', class_name: 'SummitVenue'};\nexport const SlotSizeOptions = [1,5,10,15,30,60]; // 12 - 6 - 4 - 2 - 1\nexport const PixelsPerMinute = 3;\n\nexport const BulkActionEdit = 'BULK_ACTION_EDIT';\nexport const BulkActionPublish = 'BULK_ACTION_PUBLISH';\nexport const BulkActionUnPublish = 'BULK_ACTION_UNPUBLISH';\n\nexport const bulkOptions = [\n {value: BulkActionEdit, label: 'Edit'},\n {value: BulkActionUnPublish, label: 'Unpublish'},\n];\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-bootstrap\");","/**\n * Copyright 2017 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 {DraggableItemTypes} from './constants';\nimport {useDrag} from 'react-dnd';\nimport {Popover, OverlayTrigger} from 'react-bootstrap';\nimport RawHTML from '../raw-html';\n\nconst RESIZING_DIR_NORTH = 'N';\nconst RESIZING_DIR_SOUTH = 'S';\n\nconst ScheduleEvent = ({\n event,\n step,\n initialTop,\n initialHeight,\n minHeight,\n maxHeight,\n canResize,\n allowResize,\n allowDrag,\n onResized,\n onUnPublishEvent,\n onEditEvent,\n onClickSelected,\n selectedPublishedEvents,\n onMoveEvent\n }) => {\n const [collected, drag] = useDrag(() => ({\n type: DraggableItemTypes.SCHEDULEEVENT,\n item: {id: event.id, title: event.title, is_published: event.is_published, start_date: event.start_date, end_date: event.end_date, duration: event.duration},\n collect: (monitor) => ({\n isDragging: monitor.isDragging(),\n }),\n canDrag: allowDrag && !event.static\n }), [event.id, event.duration, event.start_date, event.end_date]);\n const [resizeInfo, setResizeInfo] = useState({resizing: false, type: null, lastYPos: null});\n const [size, setSize] = useState({top: initialTop, height: initialHeight});\n const isSelected = selectedPublishedEvents?.includes(event.id) || false;\n const canEdit = !event.static;\n const isResizable = allowResize && canEdit && size.height > 15;\n\n const popoverHoverFocus = () =>\n \n {event.description}\n \n\n // resize behavior\n\n const onMouseDown = (evt) => {\n if (!evt.target.getAttribute('data-resizable')) return;\n\n const box = evt.target.getBoundingClientRect();\n\n let type;\n if (evt.clientY - box.top < 10) {\n type = RESIZING_DIR_NORTH;\n } else if (box.bottom - evt.clientY < 10) {\n type = RESIZING_DIR_SOUTH;\n } else {\n return;\n }\n\n setResizeInfo({resizing: true, type, lastYPos: evt.pageY});\n\n evt.preventDefault();\n }\n\n const onMouseMove = (evt) => {\n if (!resizeInfo.resizing) return;\n\n let lastYPos = resizeInfo.lastYPos;\n let newYPos = evt.pageY;\n let deltaY = newYPos - lastYPos;\n\n if (step && step > 0) {\n let steps = parseInt(Math.round(Math.abs(deltaY) / step));\n deltaY = Math.sign(deltaY) * steps * step;\n if (!deltaY) {\n evt.preventDefault();\n return false;\n }\n }\n\n let newHeight = size.height;\n let newTop = size.top;\n\n if (resizeInfo.type === RESIZING_DIR_SOUTH) {\n newHeight = size.height + deltaY;\n }\n\n if (resizeInfo.type === RESIZING_DIR_NORTH) {\n if (deltaY < 0) {\n newTop = size.top - Math.abs(deltaY);\n newHeight = size.height + Math.abs(deltaY);\n } else {\n newTop = size.top + Math.abs(deltaY);\n newHeight = size.height - Math.abs(deltaY);\n }\n }\n\n // check constraints\n if (newHeight < minHeight) {\n newHeight = minHeight;\n newYPos = lastYPos;\n newTop = size.top;\n }\n\n let maxHeightTmp = (typeof maxHeight === \"function\") ? maxHeight() : maxHeight;\n\n if (newHeight > maxHeightTmp) {\n newHeight = maxHeightTmp;\n newYPos = lastYPos;\n newTop = size.top;\n }\n\n if (newTop < 0) {\n newTop = 0;\n newHeight = size.height;\n newYPos = lastYPos;\n }\n\n if (canResize(event.id, newTop, newHeight)) {\n setResizeInfo({\n ...resizeInfo,\n resizing: true,\n lastYPos: newYPos\n });\n\n setSize({\n top: newTop,\n height: newHeight,\n });\n }\n\n evt.preventDefault();\n };\n\n const onMouseUp = (evt) => {\n evt.preventDefault();\n setResizeInfo({type: null, lastYPos: null, resizing: false});\n };\n \n const eventTitleBlock = () => {\n let block = null;\n \n if (event.description) {\n block = (\n
\n {`${event.id} - ${event.title}${event.duration ? ` - ${event.duration/60} minutes` : ''}`}\n
\n
);\n } else {\n block = (
\n {`${event.id} - ${event.title}${event.duration ? ` - ${event.duration/60} minutes` : ''}`}\n
);\n }\n \n return block;\n }\n\n // end resize behavior\n\n useEffect(() => {\n if (resizeInfo.resizing) {\n document.addEventListener('mousemove', onMouseMove, false);\n document.addEventListener('mouseup', onMouseUp, false);\n } else {\n document.removeEventListener('mousemove', onMouseMove, false);\n document.removeEventListener('mouseup', onMouseUp, false);\n\n if (size.top !== initialTop || size.height !== initialHeight) {\n onResized(event.id, size.top, size.height);\n }\n }\n\n return () => {\n document.removeEventListener('mousemove', onMouseMove, false);\n document.removeEventListener('mouseup', onMouseUp, false);\n }\n }, [resizeInfo.resizing])\n\n return (\n \n {onClickSelected &&\n
\n onClickSelected(event)}\n />\n
\n }\n
\n {eventTitleBlock()}\n
\n
\n {!event.static && onUnPublishEvent &&\n onUnPublishEvent(event)}\n />\n }\n {onEditEvent &&\n onEditEvent(event)}\n />\n }\n {!event.static && onMoveEvent &&\n onMoveEvent(event)}\n />\n }\n
\n
\n );\n}\n\nexport default ScheduleEvent;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-dom\");","/**\n * Copyright 2017 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 * distributschedule-event-list'ed 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, useRef, useState} from 'react';\nimport moment from 'moment-timezone'\nimport {useDrop} from 'react-dnd'\nimport {DraggableItemTypes} from './constants';\nimport ScheduleEvent from './schedule-event';\nimport ReactDOM from 'react-dom';\nimport SummitEvent from '../../models/summit-event';\n\nconst TimeSlot = ({timeLabel, id}) => {\n return (\n
\n
\n {timeLabel}\n
\n
\n )\n}\n\nconst TimeSlotContainer = ( props ) => {\n const {currentDay, currentSummit, events, timeSlot, pixelsPerMinute, interval, canDropEvent, onDroppedEvent} = props;\n const divId = `time_slot_container_${timeSlot.format('HH_mm')}`;\n const [collectedProps, drop] = useDrop(() => ({\n accept: [DraggableItemTypes.UNSCHEDULEEVENT, DraggableItemTypes.SCHEDULEEVENT],\n collect: (monitor) => ({\n isOver: monitor.isOver(),\n canDrop: monitor.canDrop()\n }),\n canDrop: (item, monitor) => {\n if (canDropEvent) return canDropEvent(item, monitor);\n const eventModel = new SummitEvent(item, currentSummit);\n return eventModel.canMove(events, currentDay, timeSlot, interval);\n },\n drop: (item, monitor, component) => {\n onDroppedEvent(item, timeSlot);\n }\n }), [interval, timeSlot, currentDay]);\n const {isOver, canDrop} = collectedProps;\n\n const renderMinutesContainer = (interval, pixelsPerMinute) => {\n let minutesContainers = [];\n let container_count = 2;\n let container_height = pixelsPerMinute * 5;\n\n for (var i = 0; i < container_count; i++) {\n\n minutesContainers[i] =
;\n }\n\n return minutesContainers;\n };\n\n const placeHolderStyle = () => {\n const style = {};\n\n if (isOver) {\n style.backgroundColor = canDrop ? 'green' : 'red';\n style.opacity = 0.5;\n } else if (canDrop) {\n style.backgroundColor = 'yellow';\n style.opacity = 0.5;\n }\n\n return style;\n }\n\n return (\n
\n
\n {renderMinutesContainer(interval, pixelsPerMinute)}\n
\n
\n );\n};\n\nconst ScheduleEventList = (props) => {\n const listRef = useRef();\n const prevIntervalRef = useRef();\n const [timeSlotsList, setTimeSlotsList] = useState([]);\n const [newScrollTop, setNewScrollTop] = useState(null);\n const scheduleEventContainer = useRef(null);\n \n // sets scrollbar position after interval change and render\n useEffect(() => {\n if (newScrollTop) {\n listRef.current.scrollTop = newScrollTop;\n setNewScrollTop(null);\n }\n }, [newScrollTop]);\n\n useEffect(() => {\n const slotChangeRatio = prevIntervalRef.current / props.interval;\n // set scroll pos to set scrollbar after render\n setNewScrollTop(listRef.current.scrollTop * slotChangeRatio);\n createSlots();\n prevIntervalRef.current = props.interval;\n }, [props.interval, props.startTime, props.endTime]);\n\n const onDroppedEvent = (event, startTime) => {\n props.onScheduleEvent(event, props.currentDay, startTime);\n }\n\n const canResize = (eventId, newTop, newHeight) => {\n const {events, currentDay, startTime, pixelsPerMinute, currentSummit} = props;\n const {height} = getBoundingBox();\n\n if (height < (newTop + newHeight)) {\n return false;\n }\n\n const filteredEvents = events.filter(evt => {\n return evt.id !== eventId;\n });\n // calculate new event start date, end date\n const minutes = Math.floor(newTop / (pixelsPerMinute * (10 / interval)));\n const duration = Math.floor(newHeight / (pixelsPerMinute * (10 / interval)));\n\n let startDateTime = moment.tz(currentDay + ' ' + startTime, 'YYYY-MM-DD HH:mm', currentSummit.time_zone.name);\n startDateTime = startDateTime.add(minutes, 'minutes');\n let endDateTime = moment.tz(currentDay + ' ' + startTime, 'YYYY-MM-DD HH:mm', currentSummit.time_zone.name);\n endDateTime = endDateTime.add(minutes + duration, 'minutes');\n\n for (const auxEvent of filteredEvents) {\n const auxEventStartDateTime = moment(auxEvent.start_date * 1000).tz(currentSummit.time_zone.name);\n const auxEventEndDateTime = moment(auxEvent.end_date * 1000).tz(currentSummit.time_zone.name);\n // if time segments overlap\n if (auxEventStartDateTime.isBefore(endDateTime) && auxEventEndDateTime.isAfter(startDateTime))\n return false;\n }\n\n return true;\n }\n\n const onResized = (eventId, newTop, newHeight) => {\n const {events, currentDay, startTime, pixelsPerMinute, currentSummit} = props;\n const event = events.filter(evt => {\n return evt.id === eventId;\n }).shift();\n const minutes = Math.floor(newTop / (pixelsPerMinute * (10 / interval)));\n const duration = Math.floor(newHeight / (pixelsPerMinute * (10 / interval)));\n let startDateTime = moment.tz(currentDay + ' ' + startTime, 'YYYY-MM-DD HH:mm', currentSummit.time_zone.name);\n startDateTime = startDateTime.add(minutes, 'minutes');\n\n props.onScheduleEvent(event, currentDay, moment(startDateTime.format('HH:mm'), 'HH:mm'), duration);\n }\n\n const getMaxHeight = () => {\n return getBoundingBox().height;\n }\n\n const getBoundingBox = () => {\n return ReactDOM.findDOMNode(scheduleEventContainer.current).getBoundingClientRect();\n }\n\n const calculateInitialTop = (event) => {\n const {currentDay, startTime, pixelsPerMinute, currentSummit} = props;\n const eventStartDateTime = moment(event.start_date * 1000).utc().tz(currentSummit.time_zone.name);\n const dayStartDateTime = moment.tz(currentDay + ' ' + startTime, 'YYYY-MM-DD HH:mm', currentSummit.time_zone.name);\n const minutes = eventStartDateTime.diff(dayStartDateTime, 'minutes');\n return minutes * pixelsPerMinute * (10 / interval);\n }\n\n const calculateInitialHeight = (event) => {\n const {pixelsPerMinute, currentSummit, interval} = props;\n const eventStartDateTime = moment(event.start_date * 1000).tz(currentSummit.time_zone.name);\n const eventEndDateTime = moment(event.end_date * 1000).tz(currentSummit.time_zone.name);\n const minutes = eventEndDateTime.diff(eventStartDateTime, 'minutes');\n return minutes * pixelsPerMinute * (10 / interval);\n }\n\n const createSlots = () => {\n const tmpList = [];\n let done = false;\n const startTimeTZ = moment.tz(startTime, 'HH:mm', currentSummit.time_zone.name);\n const endTimeTZ = moment.tz(endTime, 'HH:mm', currentSummit.time_zone.name);\n // create UI\n let slot = startTimeTZ;\n do {\n tmpList.push(slot);\n slot = slot.clone();\n slot.add(interval, 'm');\n done = slot.isAfter(endTimeTZ);\n } while (!done);\n\n setTimeSlotsList(tmpList);\n };\n\n const {\n events,\n startTime,\n endTime,\n interval,\n pixelsPerMinute,\n currentDay,\n currentSummit,\n canDropEvent,\n onEditEvent,\n onUnPublishEvent,\n onClickSelected,\n selectedPublishedEvents\n } = props;\n\n return (\n
\n
\n {\n timeSlotsList.map((slot, idx) => (\n \n ))\n }\n
\n \n {\n timeSlotsList.map((slot, idx) => (\n \n \n ))\n }\n {\n events.map((event, idx) => {\n return (\n \n )\n })\n }\n
\n
\n );\n}\n\nexport default ScheduleEventList;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@react-pdf/renderer\");","/**\n * Copyright 2020 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, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Document, Page, StyleSheet, View, Text, Image } from '@react-pdf/renderer';\nimport { convertSVGtoImg, getEventHosts, getEventLocation, epochToMomentTimeZone } from '../../utils/methods';\n\n// Create styles\nconst styles = StyleSheet.create({\n header: {\n fontSize: '18px',\n textAlign: 'center'\n },\n headlineWrapper: {\n margin: '0 10px 20px',\n display: 'flex',\n flexDirection: 'row',\n },\n headline: {\n margin: 'auto'\n },\n logo: {\n marginRight: '20px',\n backgroundColor: 'lightgray'\n },\n subtitle: {\n padding: '10px',\n fontSize: '12px',\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between'\n },\n label: {\n fontSize: '8px',\n textTransform: 'uppercase'\n },\n eventList: {\n flexDirection: 'column',\n display: 'flex',\n overflow: 'hidden',\n padding: '20px'\n },\n eventWrapper: {\n margin: 5,\n padding: 5,\n border: '1px solid black'\n },\n locationWrapper: {\n marginBottom: 8,\n fontSize: '10px',\n color: '#4A4A4A',\n fontWeight: 600,\n },\n title: {\n marginBottom: 10,\n display: 'inline-flex',\n fontSize: '12px',\n color: '#4A4A4A',\n fontWeight: 600,\n },\n footer: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n width: '100%'\n },\n leftCol: {\n display: 'flex',\n flex: 1,\n flexDirection: 'column',\n maxWidth: '65%',\n },\n speakers: {\n fontSize: '10px',\n color: '#4A4A4A',\n },\n trackWrapper: {\n fontWeight: 'bold',\n fontSize: '10px',\n position: 'relative',\n marginTop: 'auto',\n },\n rightCol: {\n maxWidth: '35%'\n },\n tagsWrapper: {\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'right'\n },\n tag: {\n backgroundColor: '#F6F6F6',\n borderRadius: '8px',\n height: '10px',\n margin: '4px 4px 0 0',\n padding: '1px 2px',\n textTransform: 'uppercase',\n fontSize: '6px',\n color: '#4A4A4A',\n }\n});\n\nconst SchedulePrintView = ({ events, summit, nowUtc }) => {\n const [imgData, setImgData] = useState(null);\n const getSpeakers = (event) => {\n const speakerTags = getEventHosts(event).map(sp => `${sp.first_name} ${sp.last_name}`);\n\n if (speakerTags.length > 0) {\n return (\n \n By {speakerTags.join(', ')}\n \n );\n }\n\n return null;\n };\n\n const sortedEvents = events.sort((a,b) => a.start_date - b.start_date);\n const venue = summit.locations.find(l => l.class_name === 'SummitVenue');\n const summitStart = epochToMomentTimeZone(summit.start_date, summit.time_zone_id).format('MMMM Do YYYY');\n const summitEnd = epochToMomentTimeZone(summit.end_date, summit.time_zone_id).format('MMMM Do YYYY');\n \n useEffect(() => {\n if (summit.logo) {\n const getPngLogo = async () => {\n const _imgData = await convertSVGtoImg(summit.logo);\n setImgData(_imgData);\n }\n\n getPngLogo();\n }\n }, [summit.logo])\n\n if (!imgData) return null;\n\n return (\n \n \n \n \n \n Schedule for {summit.name}\n \n \n \n Venue:{venue?.name}\n \n \n Start:{summitStart}\n \n \n End:{summitEnd}\n \n \n \n {sortedEvents.map(event => {\n const eventDate = epochToMomentTimeZone(event.start_date, summit.time_zone_id).format('ddd, MMMM D');\n const eventStartTime = epochToMomentTimeZone(event.start_date, summit.time_zone_id).format('h:mma');\n const eventEndTime = epochToMomentTimeZone(event.end_date, summit.time_zone_id).format('h:mma');\n const venueCount = summit.locations.filter(loc => loc.class_name === 'SummitVenue');\n const locationStr = getEventLocation(event, venueCount, summit.start_showing_venues_date, nowUtc);\n const eventColorStyle = event.eventColor ? {borderLeft: `4px solid ${event.eventColor}`} : {};\n\n return (\n \n \n \n {`${eventDate}, ${eventStartTime} - ${eventEndTime} | ${locationStr}`}\n \n \n \n {event.title}\n \n \n \n {event.track &&\n \n {event.track?.name}\n \n }\n {(event.speakers?.length > 0 || event.moderator) &&\n \n {getSpeakers(event)}\n \n }\n \n \n \n {event.tags?.map(t =>\n \n {t.tag}\n \n )}\n \n \n \n \n );\n })}\n \n \n );\n};\n\nSchedulePrintView.propTypes = {\n events: PropTypes.array.isRequired,\n summit: PropTypes.object.isRequired\n};\n\nexport default SchedulePrintView;\n\n","// extracted by mini-css-extract-plugin\nexport default {\"button\":\"XZyB3zy09oNiJPYXzMaR\",\"cal\":\"V8lrMEK6XXJUFDwsrtSs\"};","import React, {useState} from 'react'\nimport {PDFDownloadLink} from '@react-pdf/renderer';\nimport SchedulePrintView from \"../schedule-print/schedule-print-view\";\nimport styles from './styles.module.scss'\n\n\nconst SchedulePrintButton = ({events, summit, nowUtc = null}) => {\n const [downloadPdf, setDownloadPdf] = useState(false);\n \n return (\n <>\n {!downloadPdf &&\n