/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/blest-react@1.2.4/dist/index.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
"use strict";var __assign=this&&this.__assign||function(){return __assign=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},__assign.apply(this,arguments)},__awaiter=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function a(e){try{u(n.next(e))}catch(e){i(e)}}function s(e){try{u(n.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,s)}u((n=n.apply(e,t||[])).next())}))},__generator=this&&this.__generator||function(e,t){var r,n,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return a.next=s(0),a.throw=s(1),a.return=s(2),"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(s){return function(u){return function(s){if(r)throw new TypeError("Generator is already executing.");for(;a&&(a=0,s[0]&&(i=0)),i;)try{if(r=1,n&&(o=2&s[0]?n.return:s[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,s[1])).done)return o;switch(n=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return i.label++,{value:s[1],done:!1};case 5:i.label++,n=s[1],s=[0];continue;case 7:s=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==s[0]&&2!==s[0])){i=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){i.label=s[1];break}if(6===s[0]&&i.label<o[1]){i.label=o[1],o=s;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(s);break}o[2]&&i.ops.pop(),i.trys.pop();continue}s=t.call(e,i)}catch(e){s=[6,e],n=0}finally{r=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,u])}}},__spreadArray=this&&this.__spreadArray||function(e,t,r){if(r||2===arguments.length)for(var n,o=0,i=t.length;o<i;o++)!n&&o in t||(n||(n=Array.prototype.slice.call(t,0,o)),n[o]=t[o]);return e.concat(n||Array.prototype.slice.call(t))},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.useLazyRequest=exports.useRequest=exports.useBlest=exports.useBlestLazyRequest=exports.useBlestRequest=exports.BlestProvider=exports.EventEmitter=void 0;var react_1=require("react"),isEqual_1=__importDefault(require("lodash/isEqual")),idGenerator=function(e){void 0===e&&(e=8);var t=Math.pow(16,e)-1;return Math.floor(Math.random()*(t+1)).toString(16).padStart(e,"0")},EventEmitter=function(){function e(){this.runByEvent={}}return e.prototype.add=function(e,t,r){void 0===r&&(r=!1),this.runByEvent[e]||(this.runByEvent[e]=[]);var n={id:idGenerator(),event:e,cb:t,once:r};this.runByEvent[e].push(n)},e.prototype.remove=function(e){this.runByEvent[e.event]=this.runByEvent[e.event].filter((function(t){return t.id!==e.id}))},e.prototype.on=function(e,t,r){var n=this;if(void 0===r&&(r=!1),"function"!=typeof t)throw TypeError("Callback parameter has to be a function.");var o=this.add(e,t,r);return function(){return n.remove(o)}},e.prototype.once=function(e,t){return this.on(e,t,!0)},e.prototype.emit=function(e){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];for(var n=this.runByEvent[e],o=0;o<n.length;o++){var i=n[o];i.cb.apply(i,t),i.once&&this.remove(i)}},e}();exports.EventEmitter=EventEmitter;var BlestContext=(0,react_1.createContext)({client:null}),BlestProvider=function(e){var t=e.children,r=e.url,n=e.options,o=useDeepMemo((void 0===n?{}:n)||{}),i=(0,react_1.useState)(null),a=i[0],s=i[1];return(0,react_1.useEffect)((function(){s(new HttpClient(r,o))}),[]),(0,react_1.useEffect)((function(){null==a||a.setOptions(o)}),[o]),(0,react_1.useEffect)((function(){null==a||a.setUrl(r)}),[r]),a?(0,react_1.createElement)(BlestContext.Provider,{value:{client:a}},t):(0,react_1.createElement)(react_1.Fragment)};exports.BlestProvider=BlestProvider;var HttpClient=function(){function e(e,t){var r=this;this.url="",this.httpHeaders={},this.maxBatchSize=25,this.bufferDelay=10,this.queue=[],this.timeout=null,this.emitter=new EventEmitter,this.idGenerator=idGenerator,this.doHttpRequest=function(e,t){void 0===t&&(t=!1),httpPostRequest(r.url,e,r.httpHeaders).then((function(e){return __awaiter(r,void 0,void 0,(function(){var t=this;return __generator(this,(function(r){return e.forEach((function(e){t.emitter.emit(e[0],e[2],e[3])})),[2]}))}))})).catch((function(n){return __awaiter(r,void 0,void 0,(function(){var r,o=this;return __generator(this,(function(i){switch(i.label){case 0:return r=!1,t||!this.errorHandler?[3,2]:[4,Promise.resolve(this.errorHandler(n,(function(){r=!0,o.retry(e)}))).catch(console.error)];case 1:i.sent(),i.label=2;case 2:return r||e.forEach((function(e){o.emitter.emit(e[0],null,n)})),[2]}}))}))}))},this.url=e,this.setOptions(t)}return e.prototype.setOptions=function(e){if(!e)return!1;if("object"!=typeof e)throw new Error("Options should be an object");if(e.maxBatchSize){if("number"!=typeof e.maxBatchSize||Math.round(e.maxBatchSize)!==e.maxBatchSize)throw new Error('"maxBatchSize" option should be an integer');if(e.maxBatchSize<1)throw new Error('"maxBatchSize" option should be greater than or equal to one');this.maxBatchSize=e.maxBatchSize}if(e.bufferDelay){if("number"!=typeof e.bufferDelay||Math.round(e.bufferDelay)!==e.bufferDelay)throw new Error('"bufferDelay" option should be an integer');if(e.bufferDelay<0)throw new Error('"bufferDelay" option should be greater than or equal to zero');this.bufferDelay=e.bufferDelay}if(e.httpHeaders){if("object"!=typeof e.httpHeaders||Array.isArray(e.httpHeaders))throw new Error('"httpHeaders" option should be an object');this.httpHeaders=e.httpHeaders}if(e.idGenerator){if("function"!=typeof e.idGenerator)throw new Error('"idGenerator" option should be a function');this.idGenerator=e.idGenerator}if(e.errorHandler){if("function"!=typeof e.errorHandler)throw new Error('"errorHandler" option should be a function');this.errorHandler=e.errorHandler}return!1},e.prototype.setUrl=function(e){e&&"string"==typeof e&&(this.url=e)},e.prototype.process=function(){if(this.timeout&&(clearTimeout(this.timeout),this.timeout=null),this.queue.length){var e=this.queue.map((function(e){return __spreadArray([],e,!0)}));this.queue=[];for(var t=Math.ceil(e.length/this.maxBatchSize),r=0;r<t;r++){var n=e.slice(r*this.maxBatchSize,(r+1)*this.maxBatchSize);this.doHttpRequest(n)}}},e.prototype.set=function(e,t){var r;if("string"!=typeof e)throw new Error("Option name must be a string");this.setOptions(((r={})[e]=t,r))},e.prototype.retry=function(e){this.doHttpRequest(e,!0)},e.prototype.request=function(e,t,r){var n=this;return new Promise((function(o,i){if(!e)return i(new Error("Route is required"));if(t&&"object"!=typeof t)return i(new Error("Body should be an object"));if(r&&"object"!=typeof r)return i(new Error("Headers should be an object"));var a=n.idGenerator();n.emitter.once(a,(function(e,t){t?i(t):o(e)})),n.queue.push([a,e,t||null,r||null]),n.timeout||(n.timeout=setTimeout((function(){n.process()}),n.bufferDelay))}))},e}(),httpPostRequest=function(e,t){for(var r=[],n=2;n<arguments.length;n++)r[n-2]=arguments[n];return __awaiter(void 0,__spreadArray([e,t],r,!0),void 0,(function(e,t,r){var n,o,i;return void 0===r&&(r={}),__generator(this,(function(a){switch(a.label){case 0:return n=JSON.stringify(t),o={method:"POST",body:n,mode:"cors",headers:__assign(__assign({},r),{Accept:"application/json","Content-Type":"application/json"})},[4,fetch(e,o)];case 1:if(!(i=a.sent()).ok)throw new Error("HTTP POST request failed with status code ".concat(i.status));return[4,i.json()];case 2:return[2,a.sent()]}}))}))},makeBlestHeaders=function(e){var t={};return e?(e.select&&Array.isArray(e.select)&&(t._s=e.select),t):t},useBlestRequest=function(e,t,r){var n=useDeepMemo(t),o=useDeepMemo(r),i=(0,react_1.useContext)(BlestContext).client,a=(0,react_1.useState)(!(null==r?void 0:r.skip)),s=a[0],u=a[1],c=(0,react_1.useState)(null),l=c[0],f=c[1],h=(0,react_1.useState)(null),p=h[0],d=h[1],v=(0,react_1.useRef)(""),y=(0,react_1.useCallback)((function(){return __awaiter(void 0,void 0,void 0,(function(){var t,r,a;return __generator(this,(function(s){switch(s.label){case 0:if(!i)throw new Error("Missing BLEST client in context");u(!0),s.label=1;case 1:return s.trys.push([1,3,,4]),t=makeBlestHeaders(o),[4,i.request(e,n,t)];case 2:return r=s.sent(),f(null),d(r),u(!1),[2,r];case 3:throw a=s.sent(),d(null),f(a),u(!1),a;case 4:return[2]}}))}))}),[i,e,n,o]);return(0,react_1.useEffect)((function(){if(!(null==o?void 0:o.skip)){var t=e+JSON.stringify(n);v.current&&v.current===t||(v.current=t,y().catch(console.error))}}),[i,e,n,o]),{loading:s,error:l,data:p,refresh:y}};exports.useBlestRequest=useBlestRequest;var useBlestLazyRequest=function(e,t){var r=useDeepMemo(t),n=(0,react_1.useContext)(BlestContext).client,o=(0,react_1.useState)(!1),i=o[0],a=o[1],s=(0,react_1.useState)(null),u=s[0],c=s[1],l=(0,react_1.useState)(null),f=l[0],h=l[1],p=(0,react_1.useCallback)((function(t){return __awaiter(void 0,void 0,void 0,(function(){var o,i,s;return __generator(this,(function(u){switch(u.label){case 0:if(!n)throw new Error("Missing BLEST client in context");a(!0),u.label=1;case 1:return u.trys.push([1,3,,4]),o=makeBlestHeaders(r),[4,n.request(e,t,o)];case 2:return i=u.sent(),c(null),h(i),a(!1),[2,i];case 3:throw s=u.sent(),h(null),c(s),a(!1),s;case 4:return[2]}}))}))}),[n,e,r]);return[p,{loading:i,error:u,data:f}]};exports.useBlestLazyRequest=useBlestLazyRequest;var useBlest=function(){var e=(0,react_1.useContext)(BlestContext).client;return{request:null==e?void 0:e.request}};exports.useBlest=useBlest,exports.useRequest=exports.useBlestRequest,exports.useLazyRequest=exports.useBlestLazyRequest;var useDeepMemo=function(e){var t=(0,react_1.useState)(),r=t[0],n=t[1];return(0,isEqual_1.default)(e,r)||n(e),r};
//# sourceMappingURL=/sm/fcbcf8fdf9baba91d712c6267e11bdb4dad10a10f8a1cadc97af2e501b1fe180.map