pocketbase-react 0.1.9 → 0.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -51,22 +51,25 @@ import { Pocketbase } from 'pocketbase-react';
51
51
 
52
52
  const serverURL = "YOUR_SERVER_URL"
53
53
  const collections = ['COLLECTION_NAME_01', 'COLLECTION_NAME_02']
54
- const credentials = {
55
- username: 'YOUR_EMAIL',
56
- password: 'YOUR_PASSWORD'
57
- }
54
+ const webRedirectURL = "http://..."
55
+ const mobileRedirectURL = "expo://..." // for example
58
56
 
59
57
  <Pocketbase
60
- serverURL={serverURL}
61
- initialCollections={collections}
62
- credentials={credentials}>
58
+ serverURL={serverURL}
59
+ initialCollections={collections}
60
+ webRedirectURL={webRedirectURL}
61
+ mobileRedirectURL={mobileRedirectURL}
62
+ openURL={async (url) => {
63
+ // for example expo WebBrowser
64
+ await WebBrowser.openBrowserAsync(url);
65
+ }}>
63
66
  <APP />
64
67
  </Pocketbase>
65
68
  ```
66
69
 
67
70
  ## Caveats
68
71
  ```tsx
69
- import { useAppContent } = "pocketbase-react";
72
+ import { useAppContent, useAuth } from "pocketbase-react";
70
73
  ```
71
74
  ### Records
72
75
  Reading the records value directly accesses the Redux Store.
@@ -126,14 +129,48 @@ const id = "SOME_ID";
126
129
  actions.delete(id);
127
130
  ```
128
131
 
129
- ## Development
130
-
131
- By using
132
- ```sh
133
- npm run build
134
- # or
135
- yarn build
132
+ ### Auth
133
+ ```tsx
134
+ const { actions } = useAuth()
136
135
  ```
137
- You will get a folder called dist, which you can use to replace node_modules/pocketbase-react/dist in your React project.
138
136
 
139
- ***Maybe someone finds a better way to integrate the package in development with a project***
137
+ Register with Email <a name="subscribe"></a>
138
+ ```tsx
139
+ await actions.registerWithEmail(email: string, password: string);
140
+ ```
141
+ Sign-In with Email
142
+ ```tsx
143
+ await actions.signInWithEmail(email: string, password: string);
144
+ ```
145
+ Sign-In with Provider
146
+ ```tsx
147
+ await actions.signInWithProvider(provider: string);
148
+ ```
149
+ Submit Provider Result
150
+ ```tsx
151
+ await actions.submitProviderResult(url: string);
152
+ ```
153
+ Sign-Out
154
+ ```tsx
155
+ actions.signOut();
156
+ ```
157
+ Send password reset email
158
+ ```tsx
159
+ await actions.sendPasswordResetEmail(email: string);
160
+ ```
161
+ Send email verification
162
+ ```tsx
163
+ await actions.sendEmailVerification(email: string);
164
+ ```
165
+ Update profile
166
+ ```tsx
167
+ await actions.updateProfile(id: string, record: {});
168
+ ```
169
+ Update profile
170
+ ```tsx
171
+ await actions.updateEmail(email: string);
172
+ ```
173
+ Delete user
174
+ ```tsx
175
+ await actions.deleteUser(id: string);
176
+ ```
@@ -5976,11 +5976,12 @@
5976
5976
  return context;
5977
5977
  };
5978
5978
 
5979
- const ContentContext = react.createContext(null);
5979
+ const ContentContext = react.createContext({});
5980
5980
  const ContentProvider = props => {
5981
5981
  const client = useClientContext();
5982
5982
  const dispatch = useAppDispatch;
5983
5983
  const [collections, _] = react.useState(props.collections || []);
5984
+ const [subscribed, setSubscribed] = react.useState([]);
5984
5985
  const actions = {
5985
5986
  subscribe: async collectionName => {
5986
5987
  await (client == null ? void 0 : client.realtime.subscribe(collectionName, event => {
@@ -5995,13 +5996,19 @@
5995
5996
  dispatch(deleteRecord$1(collectionName, event.record));
5996
5997
  break;
5997
5998
  }
5999
+ }).then(() => {
6000
+ setSubscribed([...subscribed, collectionName]);
5998
6001
  }).catch(_error => {}));
5999
6002
  },
6000
6003
  unsubscribe: collectionName => {
6001
6004
  if (collectionName) {
6002
- client == null ? void 0 : client.realtime.unsubscribe(collectionName).catch(_error => {});
6005
+ client == null ? void 0 : client.realtime.unsubscribe(collectionName).then(() => {
6006
+ setSubscribed(subscribed.filter(name => name !== collectionName));
6007
+ }).catch(_error => {});
6003
6008
  } else {
6004
- client == null ? void 0 : client.realtime.unsubscribe().catch(_error => {});
6009
+ client == null ? void 0 : client.realtime.unsubscribe().then(() => {
6010
+ setSubscribed([]);
6011
+ }).catch(_error => {});
6005
6012
  }
6006
6013
  },
6007
6014
  fetch: async collectionName => {
@@ -6028,7 +6035,10 @@
6028
6035
  return () => actions.unsubscribe();
6029
6036
  }, [collections]);
6030
6037
  return /*#__PURE__*/react.createElement(ContentContext.Provider, {
6031
- value: actions
6038
+ value: {
6039
+ actions,
6040
+ subscribed
6041
+ }
6032
6042
  }, props.children);
6033
6043
  };
6034
6044
 
@@ -6039,7 +6049,7 @@
6039
6049
  }, props.children);
6040
6050
  };
6041
6051
 
6042
- const AuthContext = react.createContext(null);
6052
+ const AuthContext = react.createContext({});
6043
6053
  const AuthProvider = props => {
6044
6054
  const client = useClientContext();
6045
6055
  const [authProviders, setAuthProviders] = react.useState();
@@ -6056,7 +6066,7 @@
6056
6066
  },
6057
6067
  signInWithProvider: async provider => {
6058
6068
  const authProvider = authProviders == null ? void 0 : authProviders.find(p => p.name === provider);
6059
- const url = (authProvider == null ? void 0 : authProvider.authUrl) + props.redirectUrl;
6069
+ const url = (authProvider == null ? void 0 : authProvider.authUrl) + typeof document !== 'undefined' ? props.webRedirectUrl : props.mobileRedirectUrl;
6060
6070
  await props.openURL(url);
6061
6071
  await StorageService.set('provider', JSON.stringify(authProviders));
6062
6072
  },
@@ -6069,7 +6079,7 @@
6069
6079
  const providers = JSON.parse(providersString);
6070
6080
  const authProvider = providers == null ? void 0 : providers.find(p => p.state === state);
6071
6081
  if (authProvider && code) {
6072
- await (client == null ? void 0 : client.users.authViaOAuth2(authProvider.name, code, authProvider.codeVerifier, props.redirectUrl));
6082
+ await (client == null ? void 0 : client.users.authViaOAuth2(authProvider.name, code, authProvider.codeVerifier, typeof document !== 'undefined' ? props.webRedirectUrl : props.mobileRedirectUrl));
6073
6083
  }
6074
6084
  }
6075
6085
  },
@@ -6097,7 +6107,7 @@
6097
6107
  const methods = await (client == null ? void 0 : client.users.listAuthMethods());
6098
6108
  setAuthProviders(methods == null ? void 0 : methods.authProviders);
6099
6109
  })();
6100
- }, [props.redirectUrl]);
6110
+ }, [props.webRedirectUrl, props.mobileRedirectUrl]);
6101
6111
  return /*#__PURE__*/react.createElement(AuthContext.Provider, {
6102
6112
  value: actions
6103
6113
  }, props.children);
@@ -6217,7 +6227,8 @@
6217
6227
  }, /*#__PURE__*/react.createElement(PersistGate, {
6218
6228
  persistor: persistor
6219
6229
  }, /*#__PURE__*/react.createElement(AuthProvider, {
6220
- redirectUrl: props.redirectURL,
6230
+ webRedirectUrl: props.webRedirectUrl,
6231
+ mobileRedirectUrl: props.mobileRedirectUrl,
6221
6232
  openURL: props.openURL
6222
6233
  }, /*#__PURE__*/react.createElement(ContentProvider, {
6223
6234
  collections: props.initialCollections
@@ -6230,20 +6241,25 @@
6230
6241
  const context = react.useContext(ContentContext);
6231
6242
  react.useEffect(() => {
6232
6243
  if (initialFetch) {
6233
- context == null ? void 0 : context.fetch(collectionName);
6244
+ context.actions.fetch(collectionName);
6234
6245
  }
6235
6246
  }, [collectionName, initialFetch]);
6247
+ const [isSubscribed, setIsSubscribed] = react.useState(false);
6248
+ react.useEffect(() => {
6249
+ setIsSubscribed(context.subscribed.includes(collectionName));
6250
+ }, [collectionName, context.subscribed]);
6236
6251
  const actions = {
6237
- subscribe: async () => await (context == null ? void 0 : context.subscribe(collectionName)),
6238
- unsubscribe: () => context == null ? void 0 : context.unsubscribe(collectionName),
6239
- fetch: async () => await (context == null ? void 0 : context.fetch(collectionName)),
6240
- create: async record => await (context == null ? void 0 : context.create(collectionName, record)),
6241
- update: async (id, record) => await (context == null ? void 0 : context.update(collectionName, id, record)),
6242
- delete: async id => await (context == null ? void 0 : context.delete(collectionName, id))
6252
+ subscribe: async () => await context.actions.subscribe(collectionName),
6253
+ unsubscribe: () => context.actions.unsubscribe(collectionName),
6254
+ fetch: async () => await context.actions.fetch(collectionName),
6255
+ create: async record => await context.actions.create(collectionName, record),
6256
+ update: async (id, record) => await context.actions.update(collectionName, id, record),
6257
+ delete: async id => await context.actions.delete(collectionName, id)
6243
6258
  };
6244
6259
  return {
6245
6260
  records,
6246
- actions
6261
+ actions,
6262
+ isSubscribed
6247
6263
  };
6248
6264
  }
6249
6265
 
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * This source code is licensed under the MIT license found in the
9
9
  * LICENSE file in the root directory of this source tree.
10
- */()}},r.exports),r.exports}var c=Symbol.for("react.element"),a=Symbol.for("react.portal"),f=Symbol.for("react.fragment"),s=Symbol.for("react.strict_mode"),l=Symbol.for("react.profiler"),p=Symbol.for("react.provider"),y=Symbol.for("react.context"),d=Symbol.for("react.forward_ref"),b=Symbol.for("react.suspense"),v=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),m=Symbol.iterator;var g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},O=Object.assign,w={};function S(e,t,r){this.props=e,this.context=t,this.refs=w,this.updater=r||g}function P(){}function E(e,t,r){this.props=e,this.context=t,this.refs=w,this.updater=r||g}S.prototype.isReactComponent={},S.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},S.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},P.prototype=S.prototype;var j=E.prototype=new P;j.constructor=E,O(j,S.prototype),j.isPureReactComponent=!0;var _=Array.isArray,x=Object.prototype.hasOwnProperty,R={current:null},k={key:!0,ref:!0,__self:!0,__source:!0};function A(e,t,r){var n,o={},i=null,u=null;if(null!=t)for(n in void 0!==t.ref&&(u=t.ref),void 0!==t.key&&(i=""+t.key),t)x.call(t,n)&&!k.hasOwnProperty(n)&&(o[n]=t[n]);var a=arguments.length-2;if(1===a)o.children=r;else if(a>1){for(var f=Array(a),s=0;a>s;s++)f[s]=arguments[s+2];o.children=f}if(e&&e.defaultProps)for(n in a=e.defaultProps)void 0===o[n]&&(o[n]=a[n]);return{$$typeof:c,type:e,key:i,ref:u,props:o,_owner:R.current}}function C(e){return"object"==typeof e&&null!==e&&e.$$typeof===c}var D=/\/+/g;function $(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function I(e,t,r,n,o){var i=typeof e;"undefined"!==i&&"boolean"!==i||(e=null);var u=!1;if(null===e)u=!0;else switch(i){case"string":case"number":u=!0;break;case"object":switch(e.$$typeof){case c:case a:u=!0}}if(u)return o=o(u=e),e=""===n?"."+$(u,0):n,_(o)?(r="",null!=e&&(r=e.replace(D,"$&/")+"/"),I(o,t,r,"",(function(e){return e}))):null!=o&&(C(o)&&(o=function(e,t){return{$$typeof:c,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(o,r+(!o.key||u&&u.key===o.key?"":(""+o.key).replace(D,"$&/")+"/")+e)),t.push(o)),1;if(u=0,n=""===n?".":n+":",_(e))for(var f=0;e.length>f;f++){var s=n+$(i=e[f],f);u+=I(i,t,r,s,o)}else if(s=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=m&&e[m]||e["@@iterator"])?e:null}(e),"function"==typeof s)for(e=s.call(e),f=0;!(i=e.next()).done;)u+=I(i=i.value,t,r,s=n+$(i,f++),o);else if("object"===i)throw Error("Objects are not valid as a React child (found: "+("[object Object]"===(t=e+"")?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return u}function T(e,t,r){if(null==e)return e;var n=[],o=0;return I(e,n,"","",(function(e){return t.call(r,e,o++)})),n}function N(e){if(-1===e._status){var t=e._result;(t=t()).then((function(t){0!==e._status&&-1!==e._status||(e._status=1,e._result=t)}),(function(t){0!==e._status&&-1!==e._status||(e._status=2,e._result=t)})),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var M={current:null},U={transition:null},L={map:T,forEach:function(e,t,r){T(e,(function(){t.apply(this,arguments)}),r)},count:function(e){var t=0;return T(e,(function(){t++})),t},toArray:function(e){return T(e,(function(e){return e}))||[]},only:function(e){if(!C(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},F={Children:L,Component:S,Fragment:f,Profiler:l,PureComponent:E,StrictMode:s,Suspense:b,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{ReactCurrentDispatcher:M,ReactCurrentBatchConfig:U,ReactCurrentOwner:R},cloneElement:function(e,t,r){if(null==e)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var n=O({},e.props),o=e.key,i=e.ref,u=e._owner;if(null!=t){if(void 0!==t.ref&&(i=t.ref,u=R.current),void 0!==t.key&&(o=""+t.key),e.type&&e.type.defaultProps)var a=e.type.defaultProps;for(f in t)x.call(t,f)&&!k.hasOwnProperty(f)&&(n[f]=void 0===t[f]&&void 0!==a?a[f]:t[f])}var f=arguments.length-2;if(1===f)n.children=r;else if(f>1){a=Array(f);for(var s=0;f>s;s++)a[s]=arguments[s+2];n.children=a}return{$$typeof:c,type:e.type,key:o,ref:i,props:n,_owner:u}},createContext:function(e){return(e={$$typeof:y,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null}).Provider={$$typeof:p,_context:e},e.Consumer=e},createElement:A,createFactory:function(e){var t=A.bind(null,e);return t.type=e,t},createRef:function(){return{current:null}},forwardRef:function(e){return{$$typeof:d,render:e}},isValidElement:C,lazy:function(e){return{$$typeof:h,_payload:{_status:-1,_result:e},_init:N}},memo:function(e,t){return{$$typeof:v,type:e,compare:void 0===t?null:t}},startTransition:function(e){var t=U.transition;U.transition={};try{e()}finally{U.transition=t}},unstable_act:function(){throw Error("act(...) is not supported in production builds of React.")},useCallback:function(e,t){return M.current.useCallback(e,t)},useContext:function(e){return M.current.useContext(e)},useDebugValue:function(){},useDeferredValue:function(e){return M.current.useDeferredValue(e)},useEffect:function(e,t){return M.current.useEffect(e,t)},useId:function(){return M.current.useId()},useImperativeHandle:function(e,t,r){return M.current.useImperativeHandle(e,t,r)},useInsertionEffect:function(e,t){return M.current.useInsertionEffect(e,t)},useLayoutEffect:function(e,t){return M.current.useLayoutEffect(e,t)},useMemo:function(e,t){return M.current.useMemo(e,t)},useReducer:function(e,t,r){return M.current.useReducer(e,t,r)},useRef:function(e){return M.current.useRef(e)},useState:function(e){return M.current.useState(e)},useSyncExternalStore:function(e,t,r){return M.current.useSyncExternalStore(e,t,r)},useTransition:function(){return M.current.useTransition()},version:"18.0.0-fc46dba67-20220329"},z=u((function(e){e.exports=F}));const V="SET_RECORDS",W="ADD_RECORD",q="ADD_RECORDS",K="UPDATE_RECORD",J="DELETE_RECORD",B="DELETE_RECORDS",H=(e,t)=>({type:V,key:e,payload:t}),X=(e,t)=>({type:W,key:e,payload:t}),G=(e,t)=>({type:J,key:e,payload:t}),Y=(e,t)=>({type:K,key:e,payload:t});var Q=Object.freeze({__proto__:null,setRecords:H,addRecord:X,addRecords:(e,t)=>({type:q,key:e,payload:t}),deleteRecord:G,deleteRecords:(e,t)=>({type:B,key:e,payload:t}),updateRecord:Y});function Z(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function ee(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function te(e){for(var t=1;arguments.length>t;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ee(Object(r),!0).forEach((function(t){Z(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ee(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function re(e){return"Minified Redux error #"+e+"; visit https://redux.js.org/Errors?code="+e+" for the full message or use the non-minified dev environment for full errors. "}var ne="function"==typeof Symbol&&Symbol.observable||"@@observable",oe=function(){return Math.random().toString(36).substring(7).split("").join(".")},ie={INIT:"@@redux/INIT"+oe(),REPLACE:"@@redux/REPLACE"+oe(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+oe()}};function ue(e){if("object"!=typeof e||null===e)return!1;for(var t=e;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function ce(e,t,r){var n;if("function"==typeof t&&"function"==typeof r||"function"==typeof r&&"function"==typeof arguments[3])throw Error(re(0));if("function"==typeof t&&void 0===r&&(r=t,t=void 0),void 0!==r){if("function"!=typeof r)throw Error(re(1));return r(ce)(e,t)}if("function"!=typeof e)throw Error(re(2));var o=e,i=t,u=[],c=u,a=!1;function f(){c===u&&(c=u.slice())}function s(){if(a)throw Error(re(3));return i}function l(e){if("function"!=typeof e)throw Error(re(4));if(a)throw Error(re(5));var t=!0;return f(),c.push(e),function(){if(t){if(a)throw Error(re(6));t=!1,f();var r=c.indexOf(e);c.splice(r,1),u=null}}}function p(e){if(!ue(e))throw Error(re(7));if(void 0===e.type)throw Error(re(8));if(a)throw Error(re(9));try{a=!0,i=o(i,e)}finally{a=!1}for(var t=u=c,r=0;t.length>r;r++){(0,t[r])()}return e}function y(e){if("function"!=typeof e)throw Error(re(10));o=e,p({type:ie.REPLACE})}function d(){var e,t=l;return(e={subscribe:function(e){if("object"!=typeof e||null===e)throw Error(re(11));function r(){e.next&&e.next(s())}return r(),{unsubscribe:t(r)}}})[ne]=function(){return this},e}return p({type:ie.INIT}),(n={dispatch:p,subscribe:l,getState:s,replaceReducer:y})[ne]=d,n}function ae(e){for(var t=Object.keys(e),r={},n=0;t.length>n;n++){var o=t[n];"function"==typeof e[o]&&(r[o]=e[o])}var i,u=Object.keys(r);try{!function(e){Object.keys(e).forEach((function(t){var r=e[t];if(void 0===r(void 0,{type:ie.INIT}))throw Error(re(12));if(void 0===r(void 0,{type:ie.PROBE_UNKNOWN_ACTION()}))throw Error(re(13))}))}(r)}catch(e){i=e}return function(e,t){if(void 0===e&&(e={}),i)throw i;for(var n=!1,o={},c=0;u.length>c;c++){var a=u[c],f=e[a],s=(0,r[a])(f,t);if(void 0===s)throw Error(re(14));o[a]=s,n=n||s!==f}return(n=n||u.length!==Object.keys(e).length)?o:e}}function fe(){for(var e=arguments.length,t=Array(e),r=0;e>r;r++)t[r]=arguments[r];return 0===t.length?function(e){return e}:1===t.length?t[0]:t.reduce((function(e,t){return function(){return e(t.apply(void 0,arguments))}}))}function se(){for(var e=arguments.length,t=Array(e),r=0;e>r;r++)t[r]=arguments[r];return function(e){return function(){var r=e.apply(void 0,arguments),n=function(){throw Error(re(15))},o={getState:r.getState,dispatch:function(){return n.apply(void 0,arguments)}},i=t.map((function(e){return e(o)}));return n=fe.apply(void 0,i)(r.dispatch),te(te({},r),{},{dispatch:n})}}}function le(){return le=Object.assign?Object.assign.bind():function(e){for(var t=1;arguments.length>t;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},le.apply(this,arguments)}function pe(e,t){return[...t,e]}function ye(e,t){return[...t,...e]}function de(e,t){return t.map((t=>t.id===e.id?e:t))}function be(e,t){return t.filter((t=>t.id!==e.id))}function ve(e,t){return t.filter((t=>!e.includes(t)))}const he=ae({records:(e={},t)=>{var r;const n=null!=(r=e[t.key])?r:[];switch(t.type){case V:if(Array.isArray(t.payload))return le({},e,{[t.key]:t.payload});case W:return le({},e,{[t.key]:pe(t.payload,n)});case q:return le({},e,{[t.key]:ye(t.payload,n)});case J:return le({},e,{[t.key]:be(t.payload,n)});case B:return le({},e,{[t.key]:ve(t.payload,n)});case K:return le({},e,{[t.key]:de(t.payload,n)});default:return e}}});function me(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;t>n;n++)r[n-1]=arguments[n];throw Error("[Immer] minified error nr: "+e+(r.length?" "+r.map((function(e){return"'"+e+"'"})).join(","):"")+". Find the full error at: https://bit.ly/3cXEKWf")}function ge(e){return!!e&&!!e[it]}function Oe(e){return!!e&&(function(e){if(!e||"object"!=typeof e)return!1;var t=Object.getPrototypeOf(e);if(null===t)return!0;var r=Object.hasOwnProperty.call(t,"constructor")&&t.constructor;return r===Object||"function"==typeof r&&Function.toString.call(r)===ut}(e)||Array.isArray(e)||!!e[ot]||!!e.constructor[ot]||_e(e)||xe(e))}function we(e,t,r){void 0===r&&(r=!1),0===Se(e)?(r?Object.keys:ct)(e).forEach((function(n){r&&"symbol"==typeof n||t(n,e[n],e)})):e.forEach((function(r,n){return t(n,r,e)}))}function Se(e){var t=e[it];return t?t.i>3?t.i-4:t.i:Array.isArray(e)?1:_e(e)?2:xe(e)?3:0}function Pe(e,t){return 2===Se(e)?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function Ee(e,t,r){var n=Se(e);2===n?e.set(t,r):3===n?(e.delete(t),e.add(r)):e[t]=r}function je(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}function _e(e){return et&&e instanceof Map}function xe(e){return tt&&e instanceof Set}function Re(e){return e.o||e.t}function ke(e){if(Array.isArray(e))return Array.prototype.slice.call(e);var t=at(e);delete t[it];for(var r=ct(t),n=0;r.length>n;n++){var o=r[n],i=t[o];!1===i.writable&&(i.writable=!0,i.configurable=!0),(i.get||i.set)&&(t[o]={configurable:!0,writable:!0,enumerable:i.enumerable,value:e[o]})}return Object.create(Object.getPrototypeOf(e),t)}function Ae(e,t){return void 0===t&&(t=!1),De(e)||ge(e)||!Oe(e)||(Se(e)>1&&(e.set=e.add=e.clear=e.delete=Ce),Object.freeze(e),t&&we(e,(function(e,t){return Ae(t,!0)}),!0)),e}function Ce(){me(2)}function De(e){return null==e||"object"!=typeof e||Object.isFrozen(e)}function $e(e){var t=ft[e];return t||me(18,e),t}function Ie(){return Qe}function Te(e,t){t&&($e("Patches"),e.u=[],e.s=[],e.v=t)}function Ne(e){Me(e),e.p.forEach(Le),e.p=null}function Me(e){e===Qe&&(Qe=e.l)}function Ue(e){return Qe={p:[],l:Qe,h:e,m:!0,_:0}}function Le(e){var t=e[it];0===t.i||1===t.i?t.j():t.O=!0}function Fe(e,t){t._=t.p.length;var r=t.p[0],n=void 0!==e&&e!==r;return t.h.g||$e("ES5").S(t,e,n),n?(r[it].P&&(Ne(t),me(4)),Oe(e)&&(e=ze(t,e),t.l||We(t,e)),t.u&&$e("Patches").M(r[it].t,e,t.u,t.s)):e=ze(t,r,[]),Ne(t),t.u&&t.v(t.u,t.s),e!==nt?e:void 0}function ze(e,t,r){if(De(t))return t;var n=t[it];if(!n)return we(t,(function(o,i){return Ve(e,n,t,o,i,r)}),!0),t;if(n.A!==e)return t;if(!n.P)return We(e,n.t,!0),n.t;if(!n.I){n.I=!0,n.A._--;var o=4===n.i||5===n.i?n.o=ke(n.k):n.o;we(3===n.i?new Set(o):o,(function(t,i){return Ve(e,n,o,t,i,r)})),We(e,o,!1),r&&e.u&&$e("Patches").R(n,r,e.u,e.s)}return n.o}function Ve(e,t,r,n,o,i){if(ge(o)){var u=ze(e,o,i&&t&&3!==t.i&&!Pe(t.D,n)?i.concat(n):void 0);if(Ee(r,n,u),!ge(u))return;e.m=!1}if(Oe(o)&&!De(o)){if(!e.h.F&&1>e._)return;ze(e,o),t&&t.A.l||We(e,o)}}function We(e,t,r){void 0===r&&(r=!1),e.h.F&&e.m&&Ae(t,r)}function qe(e,t){var r=e[it];return(r?Re(r):e)[t]}function Ke(e,t){if(t in e)for(var r=Object.getPrototypeOf(e);r;){var n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=Object.getPrototypeOf(r)}}function Je(e){e.P||(e.P=!0,e.l&&Je(e.l))}function Be(e){e.o||(e.o=ke(e.t))}function He(e,t,r){var n=_e(t)?$e("MapSet").N(t,r):xe(t)?$e("MapSet").T(t,r):e.g?function(e,t){var r=Array.isArray(e),n={i:r?1:0,A:t?t.A:Ie(),P:!1,I:!1,D:{},l:t,t:e,k:null,o:null,j:null,C:!1},o=n,i=st;r&&(o=[n],i=lt);var u=Proxy.revocable(o,i),c=u.revoke,a=u.proxy;return n.k=a,n.j=c,a}(t,r):$e("ES5").J(t,r);return(r?r.A:Ie()).p.push(n),n}function Xe(e){return ge(e)||me(22,e),function e(t){if(!Oe(t))return t;var r,n=t[it],o=Se(t);if(n){if(!n.P&&(4>n.i||!$e("ES5").K(n)))return n.t;n.I=!0,r=Ge(t,o),n.I=!1}else r=Ge(t,o);return we(r,(function(t,o){n&&function(e,t){return 2===Se(e)?e.get(t):e[t]}(n.t,t)===o||Ee(r,t,e(o))})),3===o?new Set(r):r}(e)}function Ge(e,t){switch(t){case 2:return new Map(e);case 3:return Array.from(e)}return ke(e)}var Ye,Qe,Ze="undefined"!=typeof Symbol&&"symbol"==typeof Symbol("x"),et="undefined"!=typeof Map,tt="undefined"!=typeof Set,rt="undefined"!=typeof Proxy&&void 0!==Proxy.revocable&&"undefined"!=typeof Reflect,nt=Ze?Symbol.for("immer-nothing"):((Ye={})["immer-nothing"]=!0,Ye),ot=Ze?Symbol.for("immer-draftable"):"__$immer_draftable",it=Ze?Symbol.for("immer-state"):"__$immer_state",ut=""+Object.prototype.constructor,ct="undefined"!=typeof Reflect&&Reflect.ownKeys?Reflect.ownKeys:void 0!==Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Object.getOwnPropertyNames,at=Object.getOwnPropertyDescriptors||function(e){var t={};return ct(e).forEach((function(r){t[r]=Object.getOwnPropertyDescriptor(e,r)})),t},ft={},st={get:function(e,t){if(t===it)return e;var r=Re(e);if(!Pe(r,t))return function(e,t,r){var n,o=Ke(t,r);return o?"value"in o?o.value:null===(n=o.get)||void 0===n?void 0:n.call(e.k):void 0}(e,r,t);var n=r[t];return e.I||!Oe(n)?n:n===qe(e.t,t)?(Be(e),e.o[t]=He(e.A.h,n,e)):n},has:function(e,t){return t in Re(e)},ownKeys:function(e){return Reflect.ownKeys(Re(e))},set:function(e,t,r){var n=Ke(Re(e),t);if(null==n?void 0:n.set)return n.set.call(e.k,r),!0;if(!e.P){var o=qe(Re(e),t),i=null==o?void 0:o[it];if(i&&i.t===r)return e.o[t]=r,e.D[t]=!1,!0;if(je(r,o)&&(void 0!==r||Pe(e.t,t)))return!0;Be(e),Je(e)}return e.o[t]===r&&"number"!=typeof r&&(void 0!==r||t in e.o)||(e.o[t]=r,e.D[t]=!0,!0)},deleteProperty:function(e,t){return void 0!==qe(e.t,t)||t in e.t?(e.D[t]=!1,Be(e),Je(e)):delete e.D[t],e.o&&delete e.o[t],!0},getOwnPropertyDescriptor:function(e,t){var r=Re(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n?{writable:!0,configurable:1!==e.i||"length"!==t,enumerable:n.enumerable,value:r[t]}:n},defineProperty:function(){me(11)},getPrototypeOf:function(e){return Object.getPrototypeOf(e.t)},setPrototypeOf:function(){me(12)}},lt={};we(st,(function(e,t){lt[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}})),lt.deleteProperty=function(e,t){return lt.set.call(this,e,t,void 0)},lt.set=function(e,t,r){return st.set.call(this,e[0],t,r,e[0])};var pt=function(){function e(e){var t=this;this.g=rt,this.F=!0,this.produce=function(e,r,n){if("function"==typeof e&&"function"!=typeof r){var o=r;r=e;var i=t;return function(e){var t=this;void 0===e&&(e=o);for(var n=arguments.length,u=Array(n>1?n-1:0),c=1;n>c;c++)u[c-1]=arguments[c];return i.produce(e,(function(e){var n;return(n=r).call.apply(n,[t,e].concat(u))}))}}var u;if("function"!=typeof r&&me(6),void 0!==n&&"function"!=typeof n&&me(7),Oe(e)){var c=Ue(t),a=He(t,e,void 0),f=!0;try{u=r(a),f=!1}finally{f?Ne(c):Me(c)}return"undefined"!=typeof Promise&&u instanceof Promise?u.then((function(e){return Te(c,n),Fe(e,c)}),(function(e){throw Ne(c),e})):(Te(c,n),Fe(u,c))}if(!e||"object"!=typeof e){if(void 0===(u=r(e))&&(u=e),u===nt&&(u=void 0),t.F&&Ae(u,!0),n){var s=[],l=[];$e("Patches").M(e,u,s,l),n(s,l)}return u}me(21,e)},this.produceWithPatches=function(e,r){if("function"==typeof e)return function(r){for(var n=arguments.length,o=Array(n>1?n-1:0),i=1;n>i;i++)o[i-1]=arguments[i];return t.produceWithPatches(r,(function(t){return e.apply(void 0,[t].concat(o))}))};var n,o,i=t.produce(e,r,(function(e,t){n=e,o=t}));return"undefined"!=typeof Promise&&i instanceof Promise?i.then((function(e){return[e,n,o]})):[i,n,o]},"boolean"==typeof(null==e?void 0:e.useProxies)&&this.setUseProxies(e.useProxies),"boolean"==typeof(null==e?void 0:e.autoFreeze)&&this.setAutoFreeze(e.autoFreeze)}var t=e.prototype;return t.createDraft=function(e){Oe(e)||me(8),ge(e)&&(e=Xe(e));var t=Ue(this),r=He(this,e,void 0);return r[it].C=!0,Me(t),r},t.finishDraft=function(e,t){var r=(e&&e[it]).A;return Te(r,t),Fe(void 0,r)},t.setAutoFreeze=function(e){this.F=e},t.setUseProxies=function(e){e&&!rt&&me(20),this.g=e},t.applyPatches=function(e,t){var r;for(r=t.length-1;r>=0;r--){var n=t[r];if(0===n.path.length&&"replace"===n.op){e=n.value;break}}r>-1&&(t=t.slice(r+1));var o=$e("Patches").$;return ge(e)?o(e,t):this.produce(e,(function(e){return o(e,t)}))},e}(),yt=new pt;function dt(e){return function(t){var r=t.dispatch,n=t.getState;return function(t){return function(o){return"function"==typeof o?o(r,n,e):t(o)}}}}yt.produceWithPatches.bind(yt),yt.setAutoFreeze.bind(yt),yt.setUseProxies.bind(yt),yt.applyPatches.bind(yt),yt.createDraft.bind(yt),yt.finishDraft.bind(yt);var bt=dt();bt.withExtraArgument=dt;var vt,ht=bt,mt=(vt=function(e,t){return vt=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},vt(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+t+" is not a constructor or null");function r(){this.constructor=e}vt(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),gt=function(e,t){for(var r=0,n=t.length,o=e.length;n>r;r++,o++)e[o]=t[r];return e},Ot=Object.defineProperty,wt=Object.getOwnPropertySymbols,St=Object.prototype.hasOwnProperty,Pt=Object.prototype.propertyIsEnumerable,Et=function(e,t,r){return t in e?Ot(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r},jt="undefined"!=typeof window&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(0!==arguments.length)return"object"==typeof arguments[0]?fe:fe.apply(null,arguments)};var _t=function(e){function t(){for(var r=[],n=0;arguments.length>n;n++)r[n]=arguments[n];var o=e.apply(this,r)||this;return Object.setPrototypeOf(o,t.prototype),o}return mt(t,e),Object.defineProperty(t,Symbol.species,{get:function(){return t},enumerable:!1,configurable:!0}),t.prototype.concat=function(){for(var t=[],r=0;arguments.length>r;r++)t[r]=arguments[r];return e.prototype.concat.apply(this,t)},t.prototype.prepend=function(){for(var e=[],r=0;arguments.length>r;r++)e[r]=arguments[r];return 1===e.length&&Array.isArray(e[0])?new(t.bind.apply(t,gt([void 0],e[0].concat(this)))):new(t.bind.apply(t,gt([void 0],e.concat(this))))},t}(Array);function xt(){return function(e){return function(e){void 0===e&&(e={});var t=e.thunk,r=void 0===t||t;var n=new _t;r&&(!function(e){return"boolean"==typeof e}(r)?n.push(ht.withExtraArgument(r.extraArgument)):n.push(ht));return n}(e)}}!function(){function e(e,t){var r=o[e];return r?r.enumerable=t:o[e]=r={configurable:!0,enumerable:t,get:function(){return st.get(this[it],e)},set:function(t){st.set(this[it],e,t)}},r}function t(e){for(var t=e.length-1;t>=0;t--){var o=e[t][it];if(!o.P)switch(o.i){case 5:n(o)&&Je(o);break;case 4:r(o)&&Je(o)}}}function r(e){for(var t=e.t,r=e.k,n=ct(r),o=n.length-1;o>=0;o--){var i=n[o];if(i!==it){var u=t[i];if(void 0===u&&!Pe(t,i))return!0;var c=r[i],a=c&&c[it];if(a?a.t!==u:!je(c,u))return!0}}var f=!!t[it];return n.length!==ct(t).length+(f?0:1)}function n(e){var t=e.k;if(t.length!==e.t.length)return!0;var r=Object.getOwnPropertyDescriptor(t,t.length-1);if(r&&!r.get)return!0;for(var n=0;t.length>n;n++)if(!t.hasOwnProperty(n))return!0;return!1}var o={};!function(e,t){ft[e]||(ft[e]=t)}("ES5",{J:function(t,r){var n=Array.isArray(t),o=function(t,r){if(t){for(var n=Array(r.length),o=0;r.length>o;o++)Object.defineProperty(n,""+o,e(o,!0));return n}var i=at(r);delete i[it];for(var u=ct(i),c=0;u.length>c;c++){var a=u[c];i[a]=e(a,t||!!i[a].enumerable)}return Object.create(Object.getPrototypeOf(r),i)}(n,t),i={i:n?5:4,A:r?r.A:Ie(),P:!1,I:!1,D:{},l:r,t:t,k:o,o:null,O:!1,C:!1};return Object.defineProperty(o,it,{value:i,writable:!0}),o},S:function(e,r,o){o?ge(r)&&r[it].A===e&&t(e.p):(e.u&&function e(t){if(t&&"object"==typeof t){var r=t[it];if(r){var o=r.t,i=r.k,u=r.D,c=r.i;if(4===c)we(i,(function(t){t!==it&&(void 0!==o[t]||Pe(o,t)?u[t]||e(i[t]):(u[t]=!0,Je(r)))})),we(o,(function(e){void 0!==i[e]||Pe(i,e)||(u[e]=!1,Je(r))}));else if(5===c){if(n(r)&&(Je(r),u.length=!0),o.length>i.length)for(var a=i.length;o.length>a;a++)u[a]=!1;else for(var f=o.length;i.length>f;f++)u[f]=!0;for(var s=Math.min(i.length,o.length),l=0;s>l;l++)i.hasOwnProperty(l)||(u[l]=!0),void 0===u[l]&&e(i[l])}}}}(e.p[0]),t(e.p))},K:function(e){return 4===e.i?r(e):n(e)}})}();var Rt="persist:",kt="persist/FLUSH",At="persist/REHYDRATE",Ct="persist/PAUSE",Dt="persist/PERSIST",$t="persist/PURGE",It="persist/REGISTER";function Tt(e){return Tt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Tt(e)}function Nt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Mt(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Ut(e,t,r,n){var o=function(e){for(var t=1;arguments.length>t;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Nt(r,!0).forEach((function(t){Mt(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Nt(r).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({},r);return e&&"object"===Tt(e)&&Object.keys(e).forEach((function(n){"_persist"!==n&&t[n]===r[n]&&(o[n]=e[n])})),o}function Lt(e){var t,r=e.blacklist||null,n=e.whitelist||null,o=e.transforms||[],i=e.throttle||0,u="".concat(void 0!==e.keyPrefix?e.keyPrefix:Rt).concat(e.key),c=e.storage;t=!1===e.serialize?function(e){return e}:"function"==typeof e.serialize?e.serialize:Ft;var a=e.writeFailHandler||null,f={},s={},l=[],p=null,y=null;function d(){if(0===l.length)return p&&clearInterval(p),void(p=null);var e=l.shift(),r=o.reduce((function(t,r){return r.in(t,e,f)}),f[e]);if(void 0!==r)try{s[e]=t(r)}catch(e){console.error("redux-persist/createPersistoid: error serializing state",e)}else delete s[e];0===l.length&&(Object.keys(s).forEach((function(e){void 0===f[e]&&delete s[e]})),y=c.setItem(u,t(s)).catch(v))}function b(e){return(!n||-1!==n.indexOf(e)||"_persist"===e)&&(!r||-1===r.indexOf(e))}function v(e){a&&a(e)}return{update:function(e){Object.keys(e).forEach((function(t){b(t)&&f[t]!==e[t]&&-1===l.indexOf(t)&&l.push(t)})),Object.keys(f).forEach((function(t){void 0===e[t]&&b(t)&&-1===l.indexOf(t)&&void 0!==f[t]&&l.push(t)})),null===p&&(p=setInterval(d,i)),f=e},flush:function(){for(;0!==l.length;)d();return y||Promise.resolve()}}}function Ft(e){return JSON.stringify(e)}function zt(e){var t,r=e.transforms||[],n="".concat(void 0!==e.keyPrefix?e.keyPrefix:Rt).concat(e.key);return t=!1===e.deserialize?function(e){return e}:"function"==typeof e.deserialize?e.deserialize:Vt,e.storage.getItem(n).then((function(e){if(e)try{var n={},o=t(e);return Object.keys(o).forEach((function(e){n[e]=r.reduceRight((function(t,r){return r.out(t,e,o)}),t(o[e]))})),n}catch(e){throw e}}))}function Vt(e){return JSON.parse(e)}function Wt(e){0}function qt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Kt(e){for(var t=1;arguments.length>t;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?qt(r,!0).forEach((function(t){Jt(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):qt(r).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Jt(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Bt(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;i.length>n;n++)0>t.indexOf(r=i[n])&&(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;i.length>n;n++)0>t.indexOf(r=i[n])&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function Ht(e){return function(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);e.length>t;t++)r[t]=e[t];return r}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function Xt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Gt(e){for(var t=1;arguments.length>t;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Xt(r,!0).forEach((function(t){Yt(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Xt(r).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Yt(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Qt={registry:[],bootstrapped:!1},Zt=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Qt,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case It:return Gt({},e,{registry:[].concat(Ht(e.registry),[t.key])});case At:var r=e.registry.indexOf(t.key),n=Ht(e.registry);return n.splice(r,1),Gt({},e,{registry:n,bootstrapped:0===n.length});default:return e}};var er="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},tr=z.useState,rr=z.useEffect,nr=z.useLayoutEffect,or=z.useDebugValue;function ir(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!er(e,r)}catch(e){return!0}}var ur="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var r=t(),n=tr({inst:{value:r,getSnapshot:t}}),o=n[0].inst,i=n[1];return nr((function(){o.value=r,o.getSnapshot=t,ir(o)&&i({inst:o})}),[e,r,t]),rr((function(){return ir(o)&&i({inst:o}),e((function(){ir(o)&&i({inst:o})}))}),[e]),or(r),r},cr={useSyncExternalStore:void 0!==z.useSyncExternalStore?z.useSyncExternalStore:ur},ar=u((function(e){e.exports=cr}));var fr="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},sr=ar.useSyncExternalStore,lr=z.useRef,pr=z.useEffect,yr=z.useMemo,dr=z.useDebugValue,br={useSyncExternalStoreWithSelector:function(e,t,r,n,o){var i=lr(null);if(null===i.current){var u={hasValue:!1,value:null};i.current=u}else u=i.current;i=yr((function(){function e(e){if(!a){if(a=!0,i=e,e=n(e),void 0!==o&&u.hasValue){var t=u.value;if(o(t,e))return c=t}return c=e}if(t=c,fr(i,e))return t;var r=n(e);return void 0!==o&&o(t,r)?t:(i=e,c=r)}var i,c,a=!1,f=void 0===r?null:r;return[function(){return e(t())},null===f?void 0:function(){return e(f())}]}),[t,r,n,o]);var c=sr(e,i[0],i[1]);return pr((function(){u.hasValue=!0,u.value=c}),[c]),dr(c),c}},vr=u((function(e){e.exports=br}));let hr=function(e){e()};const mr=()=>hr,gr=z.createContext(null);function Or(){return z.useContext(gr)}let wr=()=>{throw Error("uSES not initialized!")};const Sr=(e,t)=>e===t;function Pr(e=gr){const t=e===gr?Or:()=>z.useContext(e);return function(e,r=Sr){const{store:n,subscription:o,getServerState:i}=t(),u=wr(o.addNestedSub,n.getState,i||n.getState,e,r);return z.useDebugValue(u),u}}const Er=Pr();
10
+ */()}},r.exports),r.exports}var c=Symbol.for("react.element"),a=Symbol.for("react.portal"),f=Symbol.for("react.fragment"),s=Symbol.for("react.strict_mode"),l=Symbol.for("react.profiler"),p=Symbol.for("react.provider"),y=Symbol.for("react.context"),d=Symbol.for("react.forward_ref"),b=Symbol.for("react.suspense"),v=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),m=Symbol.iterator;var g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},O=Object.assign,w={};function S(e,t,r){this.props=e,this.context=t,this.refs=w,this.updater=r||g}function P(){}function E(e,t,r){this.props=e,this.context=t,this.refs=w,this.updater=r||g}S.prototype.isReactComponent={},S.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},S.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},P.prototype=S.prototype;var j=E.prototype=new P;j.constructor=E,O(j,S.prototype),j.isPureReactComponent=!0;var _=Array.isArray,R=Object.prototype.hasOwnProperty,x={current:null},k={key:!0,ref:!0,__self:!0,__source:!0};function A(e,t,r){var n,o={},i=null,u=null;if(null!=t)for(n in void 0!==t.ref&&(u=t.ref),void 0!==t.key&&(i=""+t.key),t)R.call(t,n)&&!k.hasOwnProperty(n)&&(o[n]=t[n]);var a=arguments.length-2;if(1===a)o.children=r;else if(a>1){for(var f=Array(a),s=0;a>s;s++)f[s]=arguments[s+2];o.children=f}if(e&&e.defaultProps)for(n in a=e.defaultProps)void 0===o[n]&&(o[n]=a[n]);return{$$typeof:c,type:e,key:i,ref:u,props:o,_owner:x.current}}function C(e){return"object"==typeof e&&null!==e&&e.$$typeof===c}var D=/\/+/g;function $(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function I(e,t,r,n,o){var i=typeof e;"undefined"!==i&&"boolean"!==i||(e=null);var u=!1;if(null===e)u=!0;else switch(i){case"string":case"number":u=!0;break;case"object":switch(e.$$typeof){case c:case a:u=!0}}if(u)return o=o(u=e),e=""===n?"."+$(u,0):n,_(o)?(r="",null!=e&&(r=e.replace(D,"$&/")+"/"),I(o,t,r,"",(function(e){return e}))):null!=o&&(C(o)&&(o=function(e,t){return{$$typeof:c,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(o,r+(!o.key||u&&u.key===o.key?"":(""+o.key).replace(D,"$&/")+"/")+e)),t.push(o)),1;if(u=0,n=""===n?".":n+":",_(e))for(var f=0;e.length>f;f++){var s=n+$(i=e[f],f);u+=I(i,t,r,s,o)}else if(s=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=m&&e[m]||e["@@iterator"])?e:null}(e),"function"==typeof s)for(e=s.call(e),f=0;!(i=e.next()).done;)u+=I(i=i.value,t,r,s=n+$(i,f++),o);else if("object"===i)throw Error("Objects are not valid as a React child (found: "+("[object Object]"===(t=e+"")?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return u}function T(e,t,r){if(null==e)return e;var n=[],o=0;return I(e,n,"","",(function(e){return t.call(r,e,o++)})),n}function U(e){if(-1===e._status){var t=e._result;(t=t()).then((function(t){0!==e._status&&-1!==e._status||(e._status=1,e._result=t)}),(function(t){0!==e._status&&-1!==e._status||(e._status=2,e._result=t)})),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var N={current:null},M={transition:null},L={map:T,forEach:function(e,t,r){T(e,(function(){t.apply(this,arguments)}),r)},count:function(e){var t=0;return T(e,(function(){t++})),t},toArray:function(e){return T(e,(function(e){return e}))||[]},only:function(e){if(!C(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},F={Children:L,Component:S,Fragment:f,Profiler:l,PureComponent:E,StrictMode:s,Suspense:b,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{ReactCurrentDispatcher:N,ReactCurrentBatchConfig:M,ReactCurrentOwner:x},cloneElement:function(e,t,r){if(null==e)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var n=O({},e.props),o=e.key,i=e.ref,u=e._owner;if(null!=t){if(void 0!==t.ref&&(i=t.ref,u=x.current),void 0!==t.key&&(o=""+t.key),e.type&&e.type.defaultProps)var a=e.type.defaultProps;for(f in t)R.call(t,f)&&!k.hasOwnProperty(f)&&(n[f]=void 0===t[f]&&void 0!==a?a[f]:t[f])}var f=arguments.length-2;if(1===f)n.children=r;else if(f>1){a=Array(f);for(var s=0;f>s;s++)a[s]=arguments[s+2];n.children=a}return{$$typeof:c,type:e.type,key:o,ref:i,props:n,_owner:u}},createContext:function(e){return(e={$$typeof:y,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null}).Provider={$$typeof:p,_context:e},e.Consumer=e},createElement:A,createFactory:function(e){var t=A.bind(null,e);return t.type=e,t},createRef:function(){return{current:null}},forwardRef:function(e){return{$$typeof:d,render:e}},isValidElement:C,lazy:function(e){return{$$typeof:h,_payload:{_status:-1,_result:e},_init:U}},memo:function(e,t){return{$$typeof:v,type:e,compare:void 0===t?null:t}},startTransition:function(e){var t=M.transition;M.transition={};try{e()}finally{M.transition=t}},unstable_act:function(){throw Error("act(...) is not supported in production builds of React.")},useCallback:function(e,t){return N.current.useCallback(e,t)},useContext:function(e){return N.current.useContext(e)},useDebugValue:function(){},useDeferredValue:function(e){return N.current.useDeferredValue(e)},useEffect:function(e,t){return N.current.useEffect(e,t)},useId:function(){return N.current.useId()},useImperativeHandle:function(e,t,r){return N.current.useImperativeHandle(e,t,r)},useInsertionEffect:function(e,t){return N.current.useInsertionEffect(e,t)},useLayoutEffect:function(e,t){return N.current.useLayoutEffect(e,t)},useMemo:function(e,t){return N.current.useMemo(e,t)},useReducer:function(e,t,r){return N.current.useReducer(e,t,r)},useRef:function(e){return N.current.useRef(e)},useState:function(e){return N.current.useState(e)},useSyncExternalStore:function(e,t,r){return N.current.useSyncExternalStore(e,t,r)},useTransition:function(){return N.current.useTransition()},version:"18.0.0-fc46dba67-20220329"},z=u((function(e){e.exports=F}));const V="SET_RECORDS",W="ADD_RECORD",q="ADD_RECORDS",K="UPDATE_RECORD",J="DELETE_RECORD",B="DELETE_RECORDS",H=(e,t)=>({type:V,key:e,payload:t}),X=(e,t)=>({type:W,key:e,payload:t}),G=(e,t)=>({type:J,key:e,payload:t}),Y=(e,t)=>({type:K,key:e,payload:t});var Q=Object.freeze({__proto__:null,setRecords:H,addRecord:X,addRecords:(e,t)=>({type:q,key:e,payload:t}),deleteRecord:G,deleteRecords:(e,t)=>({type:B,key:e,payload:t}),updateRecord:Y});function Z(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function ee(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function te(e){for(var t=1;arguments.length>t;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ee(Object(r),!0).forEach((function(t){Z(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ee(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function re(e){return"Minified Redux error #"+e+"; visit https://redux.js.org/Errors?code="+e+" for the full message or use the non-minified dev environment for full errors. "}var ne="function"==typeof Symbol&&Symbol.observable||"@@observable",oe=function(){return Math.random().toString(36).substring(7).split("").join(".")},ie={INIT:"@@redux/INIT"+oe(),REPLACE:"@@redux/REPLACE"+oe(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+oe()}};function ue(e){if("object"!=typeof e||null===e)return!1;for(var t=e;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function ce(e,t,r){var n;if("function"==typeof t&&"function"==typeof r||"function"==typeof r&&"function"==typeof arguments[3])throw Error(re(0));if("function"==typeof t&&void 0===r&&(r=t,t=void 0),void 0!==r){if("function"!=typeof r)throw Error(re(1));return r(ce)(e,t)}if("function"!=typeof e)throw Error(re(2));var o=e,i=t,u=[],c=u,a=!1;function f(){c===u&&(c=u.slice())}function s(){if(a)throw Error(re(3));return i}function l(e){if("function"!=typeof e)throw Error(re(4));if(a)throw Error(re(5));var t=!0;return f(),c.push(e),function(){if(t){if(a)throw Error(re(6));t=!1,f();var r=c.indexOf(e);c.splice(r,1),u=null}}}function p(e){if(!ue(e))throw Error(re(7));if(void 0===e.type)throw Error(re(8));if(a)throw Error(re(9));try{a=!0,i=o(i,e)}finally{a=!1}for(var t=u=c,r=0;t.length>r;r++){(0,t[r])()}return e}function y(e){if("function"!=typeof e)throw Error(re(10));o=e,p({type:ie.REPLACE})}function d(){var e,t=l;return(e={subscribe:function(e){if("object"!=typeof e||null===e)throw Error(re(11));function r(){e.next&&e.next(s())}return r(),{unsubscribe:t(r)}}})[ne]=function(){return this},e}return p({type:ie.INIT}),(n={dispatch:p,subscribe:l,getState:s,replaceReducer:y})[ne]=d,n}function ae(e){for(var t=Object.keys(e),r={},n=0;t.length>n;n++){var o=t[n];"function"==typeof e[o]&&(r[o]=e[o])}var i,u=Object.keys(r);try{!function(e){Object.keys(e).forEach((function(t){var r=e[t];if(void 0===r(void 0,{type:ie.INIT}))throw Error(re(12));if(void 0===r(void 0,{type:ie.PROBE_UNKNOWN_ACTION()}))throw Error(re(13))}))}(r)}catch(e){i=e}return function(e,t){if(void 0===e&&(e={}),i)throw i;for(var n=!1,o={},c=0;u.length>c;c++){var a=u[c],f=e[a],s=(0,r[a])(f,t);if(void 0===s)throw Error(re(14));o[a]=s,n=n||s!==f}return(n=n||u.length!==Object.keys(e).length)?o:e}}function fe(){for(var e=arguments.length,t=Array(e),r=0;e>r;r++)t[r]=arguments[r];return 0===t.length?function(e){return e}:1===t.length?t[0]:t.reduce((function(e,t){return function(){return e(t.apply(void 0,arguments))}}))}function se(){for(var e=arguments.length,t=Array(e),r=0;e>r;r++)t[r]=arguments[r];return function(e){return function(){var r=e.apply(void 0,arguments),n=function(){throw Error(re(15))},o={getState:r.getState,dispatch:function(){return n.apply(void 0,arguments)}},i=t.map((function(e){return e(o)}));return n=fe.apply(void 0,i)(r.dispatch),te(te({},r),{},{dispatch:n})}}}function le(){return le=Object.assign?Object.assign.bind():function(e){for(var t=1;arguments.length>t;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},le.apply(this,arguments)}function pe(e,t){return[...t,e]}function ye(e,t){return[...t,...e]}function de(e,t){return t.map((t=>t.id===e.id?e:t))}function be(e,t){return t.filter((t=>t.id!==e.id))}function ve(e,t){return t.filter((t=>!e.includes(t)))}const he=ae({records:(e={},t)=>{var r;const n=null!=(r=e[t.key])?r:[];switch(t.type){case V:if(Array.isArray(t.payload))return le({},e,{[t.key]:t.payload});case W:return le({},e,{[t.key]:pe(t.payload,n)});case q:return le({},e,{[t.key]:ye(t.payload,n)});case J:return le({},e,{[t.key]:be(t.payload,n)});case B:return le({},e,{[t.key]:ve(t.payload,n)});case K:return le({},e,{[t.key]:de(t.payload,n)});default:return e}}});function me(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;t>n;n++)r[n-1]=arguments[n];throw Error("[Immer] minified error nr: "+e+(r.length?" "+r.map((function(e){return"'"+e+"'"})).join(","):"")+". Find the full error at: https://bit.ly/3cXEKWf")}function ge(e){return!!e&&!!e[it]}function Oe(e){return!!e&&(function(e){if(!e||"object"!=typeof e)return!1;var t=Object.getPrototypeOf(e);if(null===t)return!0;var r=Object.hasOwnProperty.call(t,"constructor")&&t.constructor;return r===Object||"function"==typeof r&&Function.toString.call(r)===ut}(e)||Array.isArray(e)||!!e[ot]||!!e.constructor[ot]||_e(e)||Re(e))}function we(e,t,r){void 0===r&&(r=!1),0===Se(e)?(r?Object.keys:ct)(e).forEach((function(n){r&&"symbol"==typeof n||t(n,e[n],e)})):e.forEach((function(r,n){return t(n,r,e)}))}function Se(e){var t=e[it];return t?t.i>3?t.i-4:t.i:Array.isArray(e)?1:_e(e)?2:Re(e)?3:0}function Pe(e,t){return 2===Se(e)?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function Ee(e,t,r){var n=Se(e);2===n?e.set(t,r):3===n?(e.delete(t),e.add(r)):e[t]=r}function je(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}function _e(e){return et&&e instanceof Map}function Re(e){return tt&&e instanceof Set}function xe(e){return e.o||e.t}function ke(e){if(Array.isArray(e))return Array.prototype.slice.call(e);var t=at(e);delete t[it];for(var r=ct(t),n=0;r.length>n;n++){var o=r[n],i=t[o];!1===i.writable&&(i.writable=!0,i.configurable=!0),(i.get||i.set)&&(t[o]={configurable:!0,writable:!0,enumerable:i.enumerable,value:e[o]})}return Object.create(Object.getPrototypeOf(e),t)}function Ae(e,t){return void 0===t&&(t=!1),De(e)||ge(e)||!Oe(e)||(Se(e)>1&&(e.set=e.add=e.clear=e.delete=Ce),Object.freeze(e),t&&we(e,(function(e,t){return Ae(t,!0)}),!0)),e}function Ce(){me(2)}function De(e){return null==e||"object"!=typeof e||Object.isFrozen(e)}function $e(e){var t=ft[e];return t||me(18,e),t}function Ie(){return Qe}function Te(e,t){t&&($e("Patches"),e.u=[],e.s=[],e.v=t)}function Ue(e){Ne(e),e.p.forEach(Le),e.p=null}function Ne(e){e===Qe&&(Qe=e.l)}function Me(e){return Qe={p:[],l:Qe,h:e,m:!0,_:0}}function Le(e){var t=e[it];0===t.i||1===t.i?t.j():t.O=!0}function Fe(e,t){t._=t.p.length;var r=t.p[0],n=void 0!==e&&e!==r;return t.h.g||$e("ES5").S(t,e,n),n?(r[it].P&&(Ue(t),me(4)),Oe(e)&&(e=ze(t,e),t.l||We(t,e)),t.u&&$e("Patches").M(r[it].t,e,t.u,t.s)):e=ze(t,r,[]),Ue(t),t.u&&t.v(t.u,t.s),e!==nt?e:void 0}function ze(e,t,r){if(De(t))return t;var n=t[it];if(!n)return we(t,(function(o,i){return Ve(e,n,t,o,i,r)}),!0),t;if(n.A!==e)return t;if(!n.P)return We(e,n.t,!0),n.t;if(!n.I){n.I=!0,n.A._--;var o=4===n.i||5===n.i?n.o=ke(n.k):n.o;we(3===n.i?new Set(o):o,(function(t,i){return Ve(e,n,o,t,i,r)})),We(e,o,!1),r&&e.u&&$e("Patches").R(n,r,e.u,e.s)}return n.o}function Ve(e,t,r,n,o,i){if(ge(o)){var u=ze(e,o,i&&t&&3!==t.i&&!Pe(t.D,n)?i.concat(n):void 0);if(Ee(r,n,u),!ge(u))return;e.m=!1}if(Oe(o)&&!De(o)){if(!e.h.F&&1>e._)return;ze(e,o),t&&t.A.l||We(e,o)}}function We(e,t,r){void 0===r&&(r=!1),e.h.F&&e.m&&Ae(t,r)}function qe(e,t){var r=e[it];return(r?xe(r):e)[t]}function Ke(e,t){if(t in e)for(var r=Object.getPrototypeOf(e);r;){var n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=Object.getPrototypeOf(r)}}function Je(e){e.P||(e.P=!0,e.l&&Je(e.l))}function Be(e){e.o||(e.o=ke(e.t))}function He(e,t,r){var n=_e(t)?$e("MapSet").N(t,r):Re(t)?$e("MapSet").T(t,r):e.g?function(e,t){var r=Array.isArray(e),n={i:r?1:0,A:t?t.A:Ie(),P:!1,I:!1,D:{},l:t,t:e,k:null,o:null,j:null,C:!1},o=n,i=st;r&&(o=[n],i=lt);var u=Proxy.revocable(o,i),c=u.revoke,a=u.proxy;return n.k=a,n.j=c,a}(t,r):$e("ES5").J(t,r);return(r?r.A:Ie()).p.push(n),n}function Xe(e){return ge(e)||me(22,e),function e(t){if(!Oe(t))return t;var r,n=t[it],o=Se(t);if(n){if(!n.P&&(4>n.i||!$e("ES5").K(n)))return n.t;n.I=!0,r=Ge(t,o),n.I=!1}else r=Ge(t,o);return we(r,(function(t,o){n&&function(e,t){return 2===Se(e)?e.get(t):e[t]}(n.t,t)===o||Ee(r,t,e(o))})),3===o?new Set(r):r}(e)}function Ge(e,t){switch(t){case 2:return new Map(e);case 3:return Array.from(e)}return ke(e)}var Ye,Qe,Ze="undefined"!=typeof Symbol&&"symbol"==typeof Symbol("x"),et="undefined"!=typeof Map,tt="undefined"!=typeof Set,rt="undefined"!=typeof Proxy&&void 0!==Proxy.revocable&&"undefined"!=typeof Reflect,nt=Ze?Symbol.for("immer-nothing"):((Ye={})["immer-nothing"]=!0,Ye),ot=Ze?Symbol.for("immer-draftable"):"__$immer_draftable",it=Ze?Symbol.for("immer-state"):"__$immer_state",ut=""+Object.prototype.constructor,ct="undefined"!=typeof Reflect&&Reflect.ownKeys?Reflect.ownKeys:void 0!==Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Object.getOwnPropertyNames,at=Object.getOwnPropertyDescriptors||function(e){var t={};return ct(e).forEach((function(r){t[r]=Object.getOwnPropertyDescriptor(e,r)})),t},ft={},st={get:function(e,t){if(t===it)return e;var r=xe(e);if(!Pe(r,t))return function(e,t,r){var n,o=Ke(t,r);return o?"value"in o?o.value:null===(n=o.get)||void 0===n?void 0:n.call(e.k):void 0}(e,r,t);var n=r[t];return e.I||!Oe(n)?n:n===qe(e.t,t)?(Be(e),e.o[t]=He(e.A.h,n,e)):n},has:function(e,t){return t in xe(e)},ownKeys:function(e){return Reflect.ownKeys(xe(e))},set:function(e,t,r){var n=Ke(xe(e),t);if(null==n?void 0:n.set)return n.set.call(e.k,r),!0;if(!e.P){var o=qe(xe(e),t),i=null==o?void 0:o[it];if(i&&i.t===r)return e.o[t]=r,e.D[t]=!1,!0;if(je(r,o)&&(void 0!==r||Pe(e.t,t)))return!0;Be(e),Je(e)}return e.o[t]===r&&"number"!=typeof r&&(void 0!==r||t in e.o)||(e.o[t]=r,e.D[t]=!0,!0)},deleteProperty:function(e,t){return void 0!==qe(e.t,t)||t in e.t?(e.D[t]=!1,Be(e),Je(e)):delete e.D[t],e.o&&delete e.o[t],!0},getOwnPropertyDescriptor:function(e,t){var r=xe(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n?{writable:!0,configurable:1!==e.i||"length"!==t,enumerable:n.enumerable,value:r[t]}:n},defineProperty:function(){me(11)},getPrototypeOf:function(e){return Object.getPrototypeOf(e.t)},setPrototypeOf:function(){me(12)}},lt={};we(st,(function(e,t){lt[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}})),lt.deleteProperty=function(e,t){return lt.set.call(this,e,t,void 0)},lt.set=function(e,t,r){return st.set.call(this,e[0],t,r,e[0])};var pt=function(){function e(e){var t=this;this.g=rt,this.F=!0,this.produce=function(e,r,n){if("function"==typeof e&&"function"!=typeof r){var o=r;r=e;var i=t;return function(e){var t=this;void 0===e&&(e=o);for(var n=arguments.length,u=Array(n>1?n-1:0),c=1;n>c;c++)u[c-1]=arguments[c];return i.produce(e,(function(e){var n;return(n=r).call.apply(n,[t,e].concat(u))}))}}var u;if("function"!=typeof r&&me(6),void 0!==n&&"function"!=typeof n&&me(7),Oe(e)){var c=Me(t),a=He(t,e,void 0),f=!0;try{u=r(a),f=!1}finally{f?Ue(c):Ne(c)}return"undefined"!=typeof Promise&&u instanceof Promise?u.then((function(e){return Te(c,n),Fe(e,c)}),(function(e){throw Ue(c),e})):(Te(c,n),Fe(u,c))}if(!e||"object"!=typeof e){if(void 0===(u=r(e))&&(u=e),u===nt&&(u=void 0),t.F&&Ae(u,!0),n){var s=[],l=[];$e("Patches").M(e,u,s,l),n(s,l)}return u}me(21,e)},this.produceWithPatches=function(e,r){if("function"==typeof e)return function(r){for(var n=arguments.length,o=Array(n>1?n-1:0),i=1;n>i;i++)o[i-1]=arguments[i];return t.produceWithPatches(r,(function(t){return e.apply(void 0,[t].concat(o))}))};var n,o,i=t.produce(e,r,(function(e,t){n=e,o=t}));return"undefined"!=typeof Promise&&i instanceof Promise?i.then((function(e){return[e,n,o]})):[i,n,o]},"boolean"==typeof(null==e?void 0:e.useProxies)&&this.setUseProxies(e.useProxies),"boolean"==typeof(null==e?void 0:e.autoFreeze)&&this.setAutoFreeze(e.autoFreeze)}var t=e.prototype;return t.createDraft=function(e){Oe(e)||me(8),ge(e)&&(e=Xe(e));var t=Me(this),r=He(this,e,void 0);return r[it].C=!0,Ne(t),r},t.finishDraft=function(e,t){var r=(e&&e[it]).A;return Te(r,t),Fe(void 0,r)},t.setAutoFreeze=function(e){this.F=e},t.setUseProxies=function(e){e&&!rt&&me(20),this.g=e},t.applyPatches=function(e,t){var r;for(r=t.length-1;r>=0;r--){var n=t[r];if(0===n.path.length&&"replace"===n.op){e=n.value;break}}r>-1&&(t=t.slice(r+1));var o=$e("Patches").$;return ge(e)?o(e,t):this.produce(e,(function(e){return o(e,t)}))},e}(),yt=new pt;function dt(e){return function(t){var r=t.dispatch,n=t.getState;return function(t){return function(o){return"function"==typeof o?o(r,n,e):t(o)}}}}yt.produceWithPatches.bind(yt),yt.setAutoFreeze.bind(yt),yt.setUseProxies.bind(yt),yt.applyPatches.bind(yt),yt.createDraft.bind(yt),yt.finishDraft.bind(yt);var bt=dt();bt.withExtraArgument=dt;var vt,ht=bt,mt=(vt=function(e,t){return vt=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},vt(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+t+" is not a constructor or null");function r(){this.constructor=e}vt(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),gt=function(e,t){for(var r=0,n=t.length,o=e.length;n>r;r++,o++)e[o]=t[r];return e},Ot=Object.defineProperty,wt=Object.getOwnPropertySymbols,St=Object.prototype.hasOwnProperty,Pt=Object.prototype.propertyIsEnumerable,Et=function(e,t,r){return t in e?Ot(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r},jt="undefined"!=typeof window&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(0!==arguments.length)return"object"==typeof arguments[0]?fe:fe.apply(null,arguments)};var _t=function(e){function t(){for(var r=[],n=0;arguments.length>n;n++)r[n]=arguments[n];var o=e.apply(this,r)||this;return Object.setPrototypeOf(o,t.prototype),o}return mt(t,e),Object.defineProperty(t,Symbol.species,{get:function(){return t},enumerable:!1,configurable:!0}),t.prototype.concat=function(){for(var t=[],r=0;arguments.length>r;r++)t[r]=arguments[r];return e.prototype.concat.apply(this,t)},t.prototype.prepend=function(){for(var e=[],r=0;arguments.length>r;r++)e[r]=arguments[r];return 1===e.length&&Array.isArray(e[0])?new(t.bind.apply(t,gt([void 0],e[0].concat(this)))):new(t.bind.apply(t,gt([void 0],e.concat(this))))},t}(Array);function Rt(){return function(e){return function(e){void 0===e&&(e={});var t=e.thunk,r=void 0===t||t;var n=new _t;r&&(!function(e){return"boolean"==typeof e}(r)?n.push(ht.withExtraArgument(r.extraArgument)):n.push(ht));return n}(e)}}!function(){function e(e,t){var r=o[e];return r?r.enumerable=t:o[e]=r={configurable:!0,enumerable:t,get:function(){return st.get(this[it],e)},set:function(t){st.set(this[it],e,t)}},r}function t(e){for(var t=e.length-1;t>=0;t--){var o=e[t][it];if(!o.P)switch(o.i){case 5:n(o)&&Je(o);break;case 4:r(o)&&Je(o)}}}function r(e){for(var t=e.t,r=e.k,n=ct(r),o=n.length-1;o>=0;o--){var i=n[o];if(i!==it){var u=t[i];if(void 0===u&&!Pe(t,i))return!0;var c=r[i],a=c&&c[it];if(a?a.t!==u:!je(c,u))return!0}}var f=!!t[it];return n.length!==ct(t).length+(f?0:1)}function n(e){var t=e.k;if(t.length!==e.t.length)return!0;var r=Object.getOwnPropertyDescriptor(t,t.length-1);if(r&&!r.get)return!0;for(var n=0;t.length>n;n++)if(!t.hasOwnProperty(n))return!0;return!1}var o={};!function(e,t){ft[e]||(ft[e]=t)}("ES5",{J:function(t,r){var n=Array.isArray(t),o=function(t,r){if(t){for(var n=Array(r.length),o=0;r.length>o;o++)Object.defineProperty(n,""+o,e(o,!0));return n}var i=at(r);delete i[it];for(var u=ct(i),c=0;u.length>c;c++){var a=u[c];i[a]=e(a,t||!!i[a].enumerable)}return Object.create(Object.getPrototypeOf(r),i)}(n,t),i={i:n?5:4,A:r?r.A:Ie(),P:!1,I:!1,D:{},l:r,t:t,k:o,o:null,O:!1,C:!1};return Object.defineProperty(o,it,{value:i,writable:!0}),o},S:function(e,r,o){o?ge(r)&&r[it].A===e&&t(e.p):(e.u&&function e(t){if(t&&"object"==typeof t){var r=t[it];if(r){var o=r.t,i=r.k,u=r.D,c=r.i;if(4===c)we(i,(function(t){t!==it&&(void 0!==o[t]||Pe(o,t)?u[t]||e(i[t]):(u[t]=!0,Je(r)))})),we(o,(function(e){void 0!==i[e]||Pe(i,e)||(u[e]=!1,Je(r))}));else if(5===c){if(n(r)&&(Je(r),u.length=!0),o.length>i.length)for(var a=i.length;o.length>a;a++)u[a]=!1;else for(var f=o.length;i.length>f;f++)u[f]=!0;for(var s=Math.min(i.length,o.length),l=0;s>l;l++)i.hasOwnProperty(l)||(u[l]=!0),void 0===u[l]&&e(i[l])}}}}(e.p[0]),t(e.p))},K:function(e){return 4===e.i?r(e):n(e)}})}();var xt="persist:",kt="persist/FLUSH",At="persist/REHYDRATE",Ct="persist/PAUSE",Dt="persist/PERSIST",$t="persist/PURGE",It="persist/REGISTER";function Tt(e){return Tt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Tt(e)}function Ut(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Nt(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Mt(e,t,r,n){var o=function(e){for(var t=1;arguments.length>t;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Ut(r,!0).forEach((function(t){Nt(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ut(r).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({},r);return e&&"object"===Tt(e)&&Object.keys(e).forEach((function(n){"_persist"!==n&&t[n]===r[n]&&(o[n]=e[n])})),o}function Lt(e){var t,r=e.blacklist||null,n=e.whitelist||null,o=e.transforms||[],i=e.throttle||0,u="".concat(void 0!==e.keyPrefix?e.keyPrefix:xt).concat(e.key),c=e.storage;t=!1===e.serialize?function(e){return e}:"function"==typeof e.serialize?e.serialize:Ft;var a=e.writeFailHandler||null,f={},s={},l=[],p=null,y=null;function d(){if(0===l.length)return p&&clearInterval(p),void(p=null);var e=l.shift(),r=o.reduce((function(t,r){return r.in(t,e,f)}),f[e]);if(void 0!==r)try{s[e]=t(r)}catch(e){console.error("redux-persist/createPersistoid: error serializing state",e)}else delete s[e];0===l.length&&(Object.keys(s).forEach((function(e){void 0===f[e]&&delete s[e]})),y=c.setItem(u,t(s)).catch(v))}function b(e){return(!n||-1!==n.indexOf(e)||"_persist"===e)&&(!r||-1===r.indexOf(e))}function v(e){a&&a(e)}return{update:function(e){Object.keys(e).forEach((function(t){b(t)&&f[t]!==e[t]&&-1===l.indexOf(t)&&l.push(t)})),Object.keys(f).forEach((function(t){void 0===e[t]&&b(t)&&-1===l.indexOf(t)&&void 0!==f[t]&&l.push(t)})),null===p&&(p=setInterval(d,i)),f=e},flush:function(){for(;0!==l.length;)d();return y||Promise.resolve()}}}function Ft(e){return JSON.stringify(e)}function zt(e){var t,r=e.transforms||[],n="".concat(void 0!==e.keyPrefix?e.keyPrefix:xt).concat(e.key);return t=!1===e.deserialize?function(e){return e}:"function"==typeof e.deserialize?e.deserialize:Vt,e.storage.getItem(n).then((function(e){if(e)try{var n={},o=t(e);return Object.keys(o).forEach((function(e){n[e]=r.reduceRight((function(t,r){return r.out(t,e,o)}),t(o[e]))})),n}catch(e){throw e}}))}function Vt(e){return JSON.parse(e)}function Wt(e){0}function qt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Kt(e){for(var t=1;arguments.length>t;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?qt(r,!0).forEach((function(t){Jt(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):qt(r).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Jt(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Bt(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;i.length>n;n++)0>t.indexOf(r=i[n])&&(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;i.length>n;n++)0>t.indexOf(r=i[n])&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function Ht(e){return function(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);e.length>t;t++)r[t]=e[t];return r}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function Xt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Gt(e){for(var t=1;arguments.length>t;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Xt(r,!0).forEach((function(t){Yt(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Xt(r).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Yt(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Qt={registry:[],bootstrapped:!1},Zt=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Qt,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case It:return Gt({},e,{registry:[].concat(Ht(e.registry),[t.key])});case At:var r=e.registry.indexOf(t.key),n=Ht(e.registry);return n.splice(r,1),Gt({},e,{registry:n,bootstrapped:0===n.length});default:return e}};var er="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},tr=z.useState,rr=z.useEffect,nr=z.useLayoutEffect,or=z.useDebugValue;function ir(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!er(e,r)}catch(e){return!0}}var ur="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var r=t(),n=tr({inst:{value:r,getSnapshot:t}}),o=n[0].inst,i=n[1];return nr((function(){o.value=r,o.getSnapshot=t,ir(o)&&i({inst:o})}),[e,r,t]),rr((function(){return ir(o)&&i({inst:o}),e((function(){ir(o)&&i({inst:o})}))}),[e]),or(r),r},cr={useSyncExternalStore:void 0!==z.useSyncExternalStore?z.useSyncExternalStore:ur},ar=u((function(e){e.exports=cr}));var fr="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},sr=ar.useSyncExternalStore,lr=z.useRef,pr=z.useEffect,yr=z.useMemo,dr=z.useDebugValue,br={useSyncExternalStoreWithSelector:function(e,t,r,n,o){var i=lr(null);if(null===i.current){var u={hasValue:!1,value:null};i.current=u}else u=i.current;i=yr((function(){function e(e){if(!a){if(a=!0,i=e,e=n(e),void 0!==o&&u.hasValue){var t=u.value;if(o(t,e))return c=t}return c=e}if(t=c,fr(i,e))return t;var r=n(e);return void 0!==o&&o(t,r)?t:(i=e,c=r)}var i,c,a=!1,f=void 0===r?null:r;return[function(){return e(t())},null===f?void 0:function(){return e(f())}]}),[t,r,n,o]);var c=sr(e,i[0],i[1]);return pr((function(){u.hasValue=!0,u.value=c}),[c]),dr(c),c}},vr=u((function(e){e.exports=br}));let hr=function(e){e()};const mr=()=>hr,gr=z.createContext(null);function Or(){return z.useContext(gr)}let wr=()=>{throw Error("uSES not initialized!")};const Sr=(e,t)=>e===t;function Pr(e=gr){const t=e===gr?Or:()=>z.useContext(e);return function(e,r=Sr){const{store:n,subscription:o,getServerState:i}=t(),u=wr(o.addNestedSub,n.getState,i||n.getState,e,r);return z.useDebugValue(u),u}}const Er=Pr();
11
11
  /** @license React v16.13.1
12
12
  * react-is.production.min.js
13
13
  *
@@ -15,7 +15,7 @@
15
15
  *
16
16
  * This source code is licensed under the MIT license found in the
17
17
  * LICENSE file in the root directory of this source tree.
18
- */var jr="function"==typeof Symbol&&Symbol.for,_r=jr?Symbol.for("react.element"):60103,xr=jr?Symbol.for("react.portal"):60106,Rr=jr?Symbol.for("react.fragment"):60107,kr=jr?Symbol.for("react.strict_mode"):60108,Ar=jr?Symbol.for("react.profiler"):60114,Cr=jr?Symbol.for("react.provider"):60109,Dr=jr?Symbol.for("react.context"):60110,$r=jr?Symbol.for("react.async_mode"):60111,Ir=jr?Symbol.for("react.concurrent_mode"):60111,Tr=jr?Symbol.for("react.forward_ref"):60112,Nr=jr?Symbol.for("react.suspense"):60113,Mr=jr?Symbol.for("react.suspense_list"):60120,Ur=jr?Symbol.for("react.memo"):60115,Lr=jr?Symbol.for("react.lazy"):60116,Fr=jr?Symbol.for("react.block"):60121,zr=jr?Symbol.for("react.fundamental"):60117,Vr=jr?Symbol.for("react.responder"):60118,Wr=jr?Symbol.for("react.scope"):60119;function qr(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case _r:switch(e=e.type){case $r:case Ir:case Rr:case Ar:case kr:case Nr:return e;default:switch(e=e&&e.$$typeof){case Dr:case Tr:case Lr:case Ur:case Cr:return e;default:return t}}case xr:return t}}}function Kr(e){return qr(e)===Ir}var Jr={AsyncMode:$r,ConcurrentMode:Ir,ContextConsumer:Dr,ContextProvider:Cr,Element:_r,ForwardRef:Tr,Fragment:Rr,Lazy:Lr,Memo:Ur,Portal:xr,Profiler:Ar,StrictMode:kr,Suspense:Nr,isAsyncMode:function(e){return Kr(e)||qr(e)===$r},isConcurrentMode:Kr,isContextConsumer:function(e){return qr(e)===Dr},isContextProvider:function(e){return qr(e)===Cr},isElement:function(e){return"object"==typeof e&&null!==e&&e.$$typeof===_r},isForwardRef:function(e){return qr(e)===Tr},isFragment:function(e){return qr(e)===Rr},isLazy:function(e){return qr(e)===Lr},isMemo:function(e){return qr(e)===Ur},isPortal:function(e){return qr(e)===xr},isProfiler:function(e){return qr(e)===Ar},isStrictMode:function(e){return qr(e)===kr},isSuspense:function(e){return qr(e)===Nr},isValidElementType:function(e){return"string"==typeof e||"function"==typeof e||e===Rr||e===Ir||e===Ar||e===kr||e===Nr||e===Mr||"object"==typeof e&&null!==e&&(e.$$typeof===Lr||e.$$typeof===Ur||e.$$typeof===Cr||e.$$typeof===Dr||e.$$typeof===Tr||e.$$typeof===zr||e.$$typeof===Vr||e.$$typeof===Wr||e.$$typeof===Fr)},typeOf:qr},Br=u((function(e){e.exports=Jr})),Hr={};Hr[Br.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},Hr[Br.Memo]={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0};
18
+ */var jr="function"==typeof Symbol&&Symbol.for,_r=jr?Symbol.for("react.element"):60103,Rr=jr?Symbol.for("react.portal"):60106,xr=jr?Symbol.for("react.fragment"):60107,kr=jr?Symbol.for("react.strict_mode"):60108,Ar=jr?Symbol.for("react.profiler"):60114,Cr=jr?Symbol.for("react.provider"):60109,Dr=jr?Symbol.for("react.context"):60110,$r=jr?Symbol.for("react.async_mode"):60111,Ir=jr?Symbol.for("react.concurrent_mode"):60111,Tr=jr?Symbol.for("react.forward_ref"):60112,Ur=jr?Symbol.for("react.suspense"):60113,Nr=jr?Symbol.for("react.suspense_list"):60120,Mr=jr?Symbol.for("react.memo"):60115,Lr=jr?Symbol.for("react.lazy"):60116,Fr=jr?Symbol.for("react.block"):60121,zr=jr?Symbol.for("react.fundamental"):60117,Vr=jr?Symbol.for("react.responder"):60118,Wr=jr?Symbol.for("react.scope"):60119;function qr(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case _r:switch(e=e.type){case $r:case Ir:case xr:case Ar:case kr:case Ur:return e;default:switch(e=e&&e.$$typeof){case Dr:case Tr:case Lr:case Mr:case Cr:return e;default:return t}}case Rr:return t}}}function Kr(e){return qr(e)===Ir}var Jr={AsyncMode:$r,ConcurrentMode:Ir,ContextConsumer:Dr,ContextProvider:Cr,Element:_r,ForwardRef:Tr,Fragment:xr,Lazy:Lr,Memo:Mr,Portal:Rr,Profiler:Ar,StrictMode:kr,Suspense:Ur,isAsyncMode:function(e){return Kr(e)||qr(e)===$r},isConcurrentMode:Kr,isContextConsumer:function(e){return qr(e)===Dr},isContextProvider:function(e){return qr(e)===Cr},isElement:function(e){return"object"==typeof e&&null!==e&&e.$$typeof===_r},isForwardRef:function(e){return qr(e)===Tr},isFragment:function(e){return qr(e)===xr},isLazy:function(e){return qr(e)===Lr},isMemo:function(e){return qr(e)===Mr},isPortal:function(e){return qr(e)===Rr},isProfiler:function(e){return qr(e)===Ar},isStrictMode:function(e){return qr(e)===kr},isSuspense:function(e){return qr(e)===Ur},isValidElementType:function(e){return"string"==typeof e||"function"==typeof e||e===xr||e===Ir||e===Ar||e===kr||e===Ur||e===Nr||"object"==typeof e&&null!==e&&(e.$$typeof===Lr||e.$$typeof===Mr||e.$$typeof===Cr||e.$$typeof===Dr||e.$$typeof===Tr||e.$$typeof===zr||e.$$typeof===Vr||e.$$typeof===Wr||e.$$typeof===Fr)},typeOf:qr},Br=u((function(e){e.exports=Jr})),Hr={};Hr[Br.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},Hr[Br.Memo]={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0};
19
19
  /**
20
20
  * @license React
21
21
  * react-is.production.min.js
@@ -25,4 +25,4 @@
25
25
  * This source code is licensed under the MIT license found in the
26
26
  * LICENSE file in the root directory of this source tree.
27
27
  */
28
- var Xr,Gr=Symbol.for("react.element"),Yr=Symbol.for("react.portal"),Qr=Symbol.for("react.fragment"),Zr=Symbol.for("react.strict_mode"),en=Symbol.for("react.profiler"),tn=Symbol.for("react.provider"),rn=Symbol.for("react.context"),nn=Symbol.for("react.server_context"),on=Symbol.for("react.forward_ref"),un=Symbol.for("react.suspense"),cn=Symbol.for("react.suspense_list"),an=Symbol.for("react.memo"),fn=Symbol.for("react.lazy"),sn=Symbol.for("react.offscreen");function ln(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case Gr:switch(e=e.type){case Qr:case en:case Zr:case un:case cn:return e;default:switch(e=e&&e.$$typeof){case nn:case rn:case on:case fn:case an:case tn:return e;default:return t}}case Yr:return t}}}Xr=Symbol.for("react.module.reference");var pn={ContextConsumer:rn,ContextProvider:tn,Element:Gr,ForwardRef:on,Fragment:Qr,Lazy:fn,Memo:an,Portal:Yr,Profiler:en,StrictMode:Zr,Suspense:un,SuspenseList:cn,isAsyncMode:function(){return!1},isConcurrentMode:function(){return!1},isContextConsumer:function(e){return ln(e)===rn},isContextProvider:function(e){return ln(e)===tn},isElement:function(e){return"object"==typeof e&&null!==e&&e.$$typeof===Gr},isForwardRef:function(e){return ln(e)===on},isFragment:function(e){return ln(e)===Qr},isLazy:function(e){return ln(e)===fn},isMemo:function(e){return ln(e)===an},isPortal:function(e){return ln(e)===Yr},isProfiler:function(e){return ln(e)===en},isStrictMode:function(e){return ln(e)===Zr},isSuspense:function(e){return ln(e)===un},isSuspenseList:function(e){return ln(e)===cn},isValidElementType:function(e){return"string"==typeof e||"function"==typeof e||e===Qr||e===en||e===Zr||e===un||e===cn||e===sn||"object"==typeof e&&null!==e&&(e.$$typeof===fn||e.$$typeof===an||e.$$typeof===tn||e.$$typeof===rn||e.$$typeof===on||e.$$typeof===Xr||void 0!==e.getModuleId)},typeOf:ln};u((function(e){e.exports=pn}));const yn={notify(){},get:()=>[]};function dn(e,t){let r,n=yn;function o(){u.onStateChange&&u.onStateChange()}function i(){r||(r=t?t.addNestedSub(o):e.subscribe(o),n=function(){const e=mr();let t=null,r=null;return{clear(){t=null,r=null},notify(){e((()=>{let e=t;for(;e;)e.callback(),e=e.next}))},get(){let e=[],r=t;for(;r;)e.push(r),r=r.next;return e},subscribe(e){let n=!0,o=r={callback:e,next:null,prev:r};return o.prev?o.prev.next=o:t=o,function(){n&&null!==t&&(n=!1,o.next?o.next.prev=o.prev:r=o.prev,o.prev?o.prev.next=o.next:t=o.next)}}}}())}const u={addNestedSub:function(e){return i(),n.subscribe(e)},notifyNestedSubs:function(){n.notify()},handleChangeWrapper:o,isSubscribed:function(){return!!r},trySubscribe:i,tryUnsubscribe:function(){r&&(r(),r=void 0,n.clear(),n=yn)},getListeners:()=>n};return u}const bn=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement)?z.useLayoutEffect:z.useEffect;function vn({store:e,context:t,children:r,serverState:n}){const o=z.useMemo((()=>{const t=dn(e);return{store:e,subscription:t,getServerState:n?()=>n:void 0}}),[e,n]),i=z.useMemo((()=>e.getState()),[e]);bn((()=>{const{subscription:t}=o;return t.onStateChange=t.notifyNestedSubs,t.trySubscribe(),i!==e.getState()&&t.notifyNestedSubs(),()=>{t.tryUnsubscribe(),t.onStateChange=void 0}}),[o,i]);return z.createElement((t||gr).Provider,{value:o},r)}wr=vr.useSyncExternalStoreWithSelector,hr=t.unstable_batchedUpdates;var hn=e=>{if("[object Object]"!==Object.prototype.toString.call(e))return!1;const t=Object.getPrototypeOf(e);return null===t||t===Object.prototype};const{hasOwnProperty:mn}=Object.prototype,{propertyIsEnumerable:gn}=Object,On=(e,t,r)=>Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0}),wn=i,Sn={concatArrays:!1,ignoreUndefined:!1},Pn=e=>{const t=[];for(const r in e)mn.call(e,r)&&t.push(r);if(Object.getOwnPropertySymbols){const r=Object.getOwnPropertySymbols(e);for(const n of r)gn.call(e,n)&&t.push(n)}return t};function En(e){return Array.isArray(e)?function(e){const t=e.slice(0,0);return Pn(e).forEach((r=>{On(t,r,En(e[r]))})),t}(e):hn(e)?function(e){const t=null===Object.getPrototypeOf(e)?Object.create(null):{};return Pn(e).forEach((r=>{On(t,r,En(e[r]))})),t}(e):e}const jn=(e,t,r,n)=>(r.forEach((r=>{void 0===t[r]&&n.ignoreUndefined||On(e,r,r in e&&e[r]!==Object.getPrototypeOf(e)?_n(e[r],t[r],n):En(t[r]))})),e);function _n(e,t,r){return r.concatArrays&&Array.isArray(e)&&Array.isArray(t)?((e,t,r)=>{let n=e.slice(0,0),o=0;return[e,t].forEach((t=>{const i=[];for(let r=0;t.length>r;r++)mn.call(t,r)&&(i.push(r+""),On(n,o++,t===e?t[r]:En(t[r])));n=jn(n,t,Pn(t).filter((e=>!i.includes(e))),r)})),n})(e,t,r):hn(t)&&hn(e)?jn(e,t,Pn(t),r):En(t)}const xn=function(...e){const t=_n(En(Sn),this!==wn&&this||{},Sn);let r={_:{}};for(const n of e)if(void 0!==n){if(!hn(n))throw new TypeError("`"+n+"` is not an Option Object");r=_n(r,{_:n},t)}return r._}.bind({concatArrays:!0,ignoreUndefined:!0});function Rn(e,t){return new Promise(((r,n)=>{try{const n=e();null==t||t(null,n),r(n)}catch(e){null==t||t(e),n(e)}}))}function kn(e,t,r){return Promise.all(e).then((e=>{var n;const o=null!==(n=null==r?void 0:r(e))&&void 0!==n?n:null;return null==t||t(null,o),Promise.resolve(o)}),(e=>(null==t||t(e),Promise.reject(e))))}const An={getItem:(e,t)=>Rn((()=>window.localStorage.getItem(e)),t),setItem:(e,t,r)=>Rn((()=>window.localStorage.setItem(e,t)),r),removeItem:(e,t)=>Rn((()=>window.localStorage.removeItem(e)),t),mergeItem:(e,t,r)=>Rn((()=>function(e,t){const r=window.localStorage.getItem(e);if(r){const n=JSON.parse(r),o=JSON.parse(t),i=JSON.stringify(xn(n,o));window.localStorage.setItem(e,i)}else window.localStorage.setItem(e,t)}(e,t)),r),clear:e=>Rn((()=>window.localStorage.clear()),e),getAllKeys:e=>Rn((()=>{const e=window.localStorage.length,t=[];for(let r=0;e>r;r+=1){const e=window.localStorage.key(r)||"";t.push(e)}return t}),e),flushGetRequests:()=>{},multiGet:(e,t)=>kn(e.map((e=>An.getItem(e))),t,(t=>t.map(((t,r)=>[e[r],t])))),multiSet:(e,t)=>kn(e.map((e=>An.setItem(e[0],e[1]))),t),multiRemove:(e,t)=>kn(e.map((e=>An.removeItem(e))),t),multiMerge:(e,t)=>kn(e.map((e=>An.mergeItem(e[0],e[1]))),t)};class Cn{static async get(e){return"undefined"!=typeof document?localStorage.getItem(e):await An.getItem(e)}static async set(e,t){return"undefined"!=typeof document?localStorage.setItem(e,t):await An.setItem(e,t)}static async remove(e){return"undefined"!=typeof document?localStorage.removeItem(e):await An.removeItem(e)}}const Dn={key:"root",storage:{getItem:async(e,...t)=>await Cn.get(e),setItem:async(e,t,...r)=>Cn.set(e,t),removeItem:async(e,...t)=>Cn.remove(e)}},$n=ae({reducer:function(e,t){var r=void 0!==e.version?e.version:-1,n=void 0===e.stateReconciler?Ut:e.stateReconciler,o=e.getStoredState||zt,i=void 0!==e.timeout?e.timeout:5e3,u=null,c=!1,a=!0,f=function(e){return e._persist.rehydrated&&u&&!a&&u.update(e),e};return function(s,l){var p=s||{},y=p._persist,d=Bt(p,["_persist"]);if(l.type===Dt){var b=!1,v=function(t,r){b||(l.rehydrate(e.key,t,r),b=!0)};if(i&&setTimeout((function(){!b&&v(void 0,Error('redux-persist: persist timed out for persist key "'.concat(e.key,'"')))}),i),a=!1,u||(u=Lt(e)),y)return Kt({},t(d,l),{_persist:y});if("function"!=typeof l.rehydrate||"function"!=typeof l.register)throw Error("redux-persist: either rehydrate or register is not a function on the PERSIST action. This can happen if the action is being replayed. This is an unexplored use case, please open an issue and we will figure out a resolution.");return l.register(e.key),o(e).then((function(t){var n=e.migrate||function(e,t){return Promise.resolve(e)};n(t,r).then((function(e){v(e)}),(function(e){v(void 0,e)}))}),(function(e){v(void 0,e)})),Kt({},t(d,l),{_persist:{version:r,rehydrated:!1}})}if(l.type===$t)return c=!0,l.result(function(e){var t=e.storage,r="".concat(void 0!==e.keyPrefix?e.keyPrefix:Rt).concat(e.key);return t.removeItem(r,Wt)}(e)),Kt({},t(d,l),{_persist:y});if(l.type===kt)return l.result(u&&u.flush()),Kt({},t(d,l),{_persist:y});if(l.type===Ct)a=!0;else if(l.type===At){if(c)return Kt({},d,{_persist:Kt({},y,{rehydrated:!0})});if(l.key===e.key){var h=t(d,l),m=l.payload,g=Kt({},!1!==n&&void 0!==m?n(m,s,h,e):h,{_persist:Kt({},y,{rehydrated:!0})});return f(g)}}if(!y)return t(s,l);var O=t(d,l);return O===d?s:f(Kt({},O,{_persist:y}))}}(Dn,he)}),In=function(e){var t,r=xt(),n=e||{},o=n.reducer,i=void 0===o?void 0:o,u=n.middleware,c=void 0===u?r():u,a=n.devTools,f=void 0===a||a,s=n.preloadedState,l=void 0===s?void 0:s,p=n.enhancers,y=void 0===p?void 0:p;if("function"==typeof i)t=i;else{if(!function(e){if("object"!=typeof e||null===e)return!1;var t=Object.getPrototypeOf(e);if(null===t)return!0;for(var r=t;null!==Object.getPrototypeOf(r);)r=Object.getPrototypeOf(r);return t===r}(i))throw Error('"reducer" is a required argument, and must be a function or an object of functions that can be passed to combineReducers');t=ae(i)}var d=c;"function"==typeof d&&(d=d(r));var b=se.apply(void 0,d),v=fe;f&&(v=jt(function(e,t){for(var r in t||(t={}))St.call(t,r)&&Et(e,r,t[r]);if(wt)for(var n=0,o=wt(t);o.length>n;n++)Pt.call(t,r=o[n])&&Et(e,r,t[r]);return e}({trace:!1},"object"==typeof f&&f)));var h=[b];return Array.isArray(y)?h=gt([b],y):"function"==typeof y&&(h=y(h)),ce(t,l,v.apply(void 0,h))}({reducer:$n,middleware:[ht]}),Tn=In.dispatch,Nn=Er,Mn=function(e,t,r){var n=r||!1,o=ce(Zt,Qt,t&&t.enhancer?t.enhancer:void 0),i=function(e){o.dispatch({type:It,key:e})},u=function(t,r,i){var u={type:At,payload:r,err:i,key:t};e.dispatch(u),o.dispatch(u),n&&c.getState().bootstrapped&&(n(),n=!1)},c=Gt({},o,{purge:function(){var t=[];return e.dispatch({type:$t,result:function(e){t.push(e)}}),Promise.all(t)},flush:function(){var t=[];return e.dispatch({type:kt,result:function(e){t.push(e)}}),Promise.all(t)},pause:function(){e.dispatch({type:Ct})},persist:function(){e.dispatch({type:Dt,register:i,rehydrate:u})}});return t&&t.manualPersist||c.persist(),c}(In),Un=()=>z.useContext(zn),Ln=z.createContext(null),Fn=e=>{const t=Un(),r=Tn,[n,o]=z.useState(e.collections||[]),i={subscribe:async e=>{await(null==t?void 0:t.realtime.subscribe(e,(t=>{switch(t.action){case"create":r(X(e,t.record));break;case"update":r(Y(e,t.record));break;case"delete":r(G(e,t.record))}})).catch((e=>{})))},unsubscribe:e=>{e?null==t||t.realtime.unsubscribe(e).catch((e=>{})):null==t||t.realtime.unsubscribe().catch((e=>{}))},fetch:async e=>{const n=await(null==t?void 0:t.records.getFullList(e,200).catch((e=>{})));r(H(e,n))},create:async(e,r)=>{await(null==t?void 0:t.records.create(e,r).catch((e=>{})))},update:async(e,r,n)=>{await(null==t?void 0:t.records.update(e,r,n).catch((e=>{})))},delete:async(e,r)=>{await(null==t?void 0:t.records.delete(e,r).catch((e=>{})))}};return z.useEffect((()=>(n&&n.forEach((e=>{i.fetch(e),i.subscribe(e)})),()=>i.unsubscribe())),[n]),z.createElement(Ln.Provider,{value:i},e.children)},zn=z.createContext(null),Vn=e=>z.createElement(zn.Provider,{value:e.client},e.children),Wn=z.createContext(null),qn=e=>{const t=Un(),[r,n]=z.useState(),o={registerWithEmail:async(e,r)=>{await(null==t?void 0:t.users.create({email:e,password:r,passwordConfirm:r}))},signInWithEmail:async(e,r)=>{await(null==t?void 0:t.users.authViaEmail(e,r))},signInWithProvider:async t=>{const n=null==r?void 0:r.find((e=>e.name===t)),o=(null==n?void 0:n.authUrl)+e.redirectUrl;await e.openURL(o),await Cn.set("provider",JSON.stringify(r))},submitProviderResult:async r=>{const n=new URLSearchParams(r.split("?")[1]),o=n.get("code"),i=n.get("state"),u=await Cn.get("provider");if(u){const r=JSON.parse(u),n=null==r?void 0:r.find((e=>e.state===i));n&&o&&await(null==t?void 0:t.users.authViaOAuth2(n.name,o,n.codeVerifier,e.redirectUrl))}},signOut:()=>{null==t||t.authStore.clear()},sendPasswordResetEmail:async e=>{await(null==t?void 0:t.users.requestPasswordReset(e))},sendEmailVerification:async e=>{await(null==t?void 0:t.users.requestVerification(e))},updateProfile:async(e,r)=>{await(null==t?void 0:t.records.update("profiles",e,r))},updateEmail:async e=>{await(null==t?void 0:t.users.requestEmailChange(e))},deleteUser:async e=>{await(null==t?void 0:t.users.delete(e))}};return z.useEffect((()=>{(async()=>{const e=await(null==t?void 0:t.users.listAuthMethods());n(null==e?void 0:e.authProviders)})()}),[e.redirectUrl]),z.createElement(Wn.Provider,{value:o},e.children)};function Kn(e){return Kn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Kn(e)}function Jn(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Bn(e,t){for(var r=0;t.length>r;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function Hn(e,t){return!t||"object"!==Kn(t)&&"function"!=typeof t?Gn(e):t}function Xn(e){return Xn=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},Xn(e)}function Gn(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Yn(e,t){return Yn=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},Yn(e,t)}function Qn(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Zn=function(e){function t(){var e,r;Jn(this,t);for(var n=arguments.length,o=Array(n),i=0;n>i;i++)o[i]=arguments[i];return Qn(Gn(r=Hn(this,(e=Xn(t)).call.apply(e,[this].concat(o)))),"state",{bootstrapped:!1}),Qn(Gn(r),"_unsubscribe",void 0),Qn(Gn(r),"handlePersistorState",(function(){r.props.persistor.getState().bootstrapped&&(r.props.onBeforeLift?Promise.resolve(r.props.onBeforeLift()).finally((function(){return r.setState({bootstrapped:!0})})):r.setState({bootstrapped:!0}),r._unsubscribe&&r._unsubscribe())})),r}var r,n,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Yn(e,t)}(t,e),r=t,(n=[{key:"componentDidMount",value:function(){this._unsubscribe=this.props.persistor.subscribe(this.handlePersistorState),this.handlePersistorState()}},{key:"componentWillUnmount",value:function(){this._unsubscribe&&this._unsubscribe()}},{key:"render",value:function(){return"function"==typeof this.props.children?this.props.children(this.state.bootstrapped):this.state.bootstrapped?this.props.children:this.props.loading}}])&&Bn(r.prototype,n),o&&Bn(r,o),t}(z.PureComponent);Qn(Zn,"defaultProps",{children:null,loading:null});const eo=z.createContext(null);e.ADD_RECORD=W,e.ADD_RECORDS=q,e.AuthContext=Wn,e.AuthProvider=qn,e.ClientContext=zn,e.ClientProvider=Vn,e.ContentContext=Ln,e.ContentProvider=Fn,e.DELETE_RECORD=J,e.DELETE_RECORDS=B,e.Pocketbase=e=>{const t=new o.default(e.serverURL);return t?z.createElement(Vn,{client:t},z.createElement(vn,{store:In},z.createElement(Zn,{persistor:Mn},z.createElement(qn,{redirectUrl:e.redirectURL,openURL:e.openURL},z.createElement(Fn,{collections:e.initialCollections},e.children))))):null},e.PocketbaseContext=eo,e.SET_RECORDS=V,e.UPDATE_RECORD=K,e.appReducer=he,e.persistConfig=Dn,e.persistor=Mn,e.recordsAction=Q,e.store=In,e.useAppContent=function(e,t=!1){var r;const n=null!=(r=Nn((t=>t.reducer.records[e])))?r:[],o=z.useContext(Ln);return z.useEffect((()=>{t&&(null==o||o.fetch(e))}),[e,t]),{records:n,actions:{subscribe:async()=>await(null==o?void 0:o.subscribe(e)),unsubscribe:()=>null==o?void 0:o.unsubscribe(e),fetch:async()=>await(null==o?void 0:o.fetch(e)),create:async t=>await(null==o?void 0:o.create(e,t)),update:async(t,r)=>await(null==o?void 0:o.update(e,t,r)),delete:async t=>await(null==o?void 0:o.delete(e,t))}}},e.useAppDispatch=Tn,e.useAppSelector=Nn,e.useAuth=function(){return{actions:z.useContext(Wn)}},e.useClientContext=Un,Object.defineProperty(e,"__esModule",{value:!0})}));
28
+ var Xr,Gr=Symbol.for("react.element"),Yr=Symbol.for("react.portal"),Qr=Symbol.for("react.fragment"),Zr=Symbol.for("react.strict_mode"),en=Symbol.for("react.profiler"),tn=Symbol.for("react.provider"),rn=Symbol.for("react.context"),nn=Symbol.for("react.server_context"),on=Symbol.for("react.forward_ref"),un=Symbol.for("react.suspense"),cn=Symbol.for("react.suspense_list"),an=Symbol.for("react.memo"),fn=Symbol.for("react.lazy"),sn=Symbol.for("react.offscreen");function ln(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case Gr:switch(e=e.type){case Qr:case en:case Zr:case un:case cn:return e;default:switch(e=e&&e.$$typeof){case nn:case rn:case on:case fn:case an:case tn:return e;default:return t}}case Yr:return t}}}Xr=Symbol.for("react.module.reference");var pn={ContextConsumer:rn,ContextProvider:tn,Element:Gr,ForwardRef:on,Fragment:Qr,Lazy:fn,Memo:an,Portal:Yr,Profiler:en,StrictMode:Zr,Suspense:un,SuspenseList:cn,isAsyncMode:function(){return!1},isConcurrentMode:function(){return!1},isContextConsumer:function(e){return ln(e)===rn},isContextProvider:function(e){return ln(e)===tn},isElement:function(e){return"object"==typeof e&&null!==e&&e.$$typeof===Gr},isForwardRef:function(e){return ln(e)===on},isFragment:function(e){return ln(e)===Qr},isLazy:function(e){return ln(e)===fn},isMemo:function(e){return ln(e)===an},isPortal:function(e){return ln(e)===Yr},isProfiler:function(e){return ln(e)===en},isStrictMode:function(e){return ln(e)===Zr},isSuspense:function(e){return ln(e)===un},isSuspenseList:function(e){return ln(e)===cn},isValidElementType:function(e){return"string"==typeof e||"function"==typeof e||e===Qr||e===en||e===Zr||e===un||e===cn||e===sn||"object"==typeof e&&null!==e&&(e.$$typeof===fn||e.$$typeof===an||e.$$typeof===tn||e.$$typeof===rn||e.$$typeof===on||e.$$typeof===Xr||void 0!==e.getModuleId)},typeOf:ln};u((function(e){e.exports=pn}));const yn={notify(){},get:()=>[]};function dn(e,t){let r,n=yn;function o(){u.onStateChange&&u.onStateChange()}function i(){r||(r=t?t.addNestedSub(o):e.subscribe(o),n=function(){const e=mr();let t=null,r=null;return{clear(){t=null,r=null},notify(){e((()=>{let e=t;for(;e;)e.callback(),e=e.next}))},get(){let e=[],r=t;for(;r;)e.push(r),r=r.next;return e},subscribe(e){let n=!0,o=r={callback:e,next:null,prev:r};return o.prev?o.prev.next=o:t=o,function(){n&&null!==t&&(n=!1,o.next?o.next.prev=o.prev:r=o.prev,o.prev?o.prev.next=o.next:t=o.next)}}}}())}const u={addNestedSub:function(e){return i(),n.subscribe(e)},notifyNestedSubs:function(){n.notify()},handleChangeWrapper:o,isSubscribed:function(){return!!r},trySubscribe:i,tryUnsubscribe:function(){r&&(r(),r=void 0,n.clear(),n=yn)},getListeners:()=>n};return u}const bn=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement)?z.useLayoutEffect:z.useEffect;function vn({store:e,context:t,children:r,serverState:n}){const o=z.useMemo((()=>{const t=dn(e);return{store:e,subscription:t,getServerState:n?()=>n:void 0}}),[e,n]),i=z.useMemo((()=>e.getState()),[e]);bn((()=>{const{subscription:t}=o;return t.onStateChange=t.notifyNestedSubs,t.trySubscribe(),i!==e.getState()&&t.notifyNestedSubs(),()=>{t.tryUnsubscribe(),t.onStateChange=void 0}}),[o,i]);return z.createElement((t||gr).Provider,{value:o},r)}wr=vr.useSyncExternalStoreWithSelector,hr=t.unstable_batchedUpdates;var hn=e=>{if("[object Object]"!==Object.prototype.toString.call(e))return!1;const t=Object.getPrototypeOf(e);return null===t||t===Object.prototype};const{hasOwnProperty:mn}=Object.prototype,{propertyIsEnumerable:gn}=Object,On=(e,t,r)=>Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0}),wn=i,Sn={concatArrays:!1,ignoreUndefined:!1},Pn=e=>{const t=[];for(const r in e)mn.call(e,r)&&t.push(r);if(Object.getOwnPropertySymbols){const r=Object.getOwnPropertySymbols(e);for(const n of r)gn.call(e,n)&&t.push(n)}return t};function En(e){return Array.isArray(e)?function(e){const t=e.slice(0,0);return Pn(e).forEach((r=>{On(t,r,En(e[r]))})),t}(e):hn(e)?function(e){const t=null===Object.getPrototypeOf(e)?Object.create(null):{};return Pn(e).forEach((r=>{On(t,r,En(e[r]))})),t}(e):e}const jn=(e,t,r,n)=>(r.forEach((r=>{void 0===t[r]&&n.ignoreUndefined||On(e,r,r in e&&e[r]!==Object.getPrototypeOf(e)?_n(e[r],t[r],n):En(t[r]))})),e);function _n(e,t,r){return r.concatArrays&&Array.isArray(e)&&Array.isArray(t)?((e,t,r)=>{let n=e.slice(0,0),o=0;return[e,t].forEach((t=>{const i=[];for(let r=0;t.length>r;r++)mn.call(t,r)&&(i.push(r+""),On(n,o++,t===e?t[r]:En(t[r])));n=jn(n,t,Pn(t).filter((e=>!i.includes(e))),r)})),n})(e,t,r):hn(t)&&hn(e)?jn(e,t,Pn(t),r):En(t)}const Rn=function(...e){const t=_n(En(Sn),this!==wn&&this||{},Sn);let r={_:{}};for(const n of e)if(void 0!==n){if(!hn(n))throw new TypeError("`"+n+"` is not an Option Object");r=_n(r,{_:n},t)}return r._}.bind({concatArrays:!0,ignoreUndefined:!0});function xn(e,t){return new Promise(((r,n)=>{try{const n=e();null==t||t(null,n),r(n)}catch(e){null==t||t(e),n(e)}}))}function kn(e,t,r){return Promise.all(e).then((e=>{var n;const o=null!==(n=null==r?void 0:r(e))&&void 0!==n?n:null;return null==t||t(null,o),Promise.resolve(o)}),(e=>(null==t||t(e),Promise.reject(e))))}const An={getItem:(e,t)=>xn((()=>window.localStorage.getItem(e)),t),setItem:(e,t,r)=>xn((()=>window.localStorage.setItem(e,t)),r),removeItem:(e,t)=>xn((()=>window.localStorage.removeItem(e)),t),mergeItem:(e,t,r)=>xn((()=>function(e,t){const r=window.localStorage.getItem(e);if(r){const n=JSON.parse(r),o=JSON.parse(t),i=JSON.stringify(Rn(n,o));window.localStorage.setItem(e,i)}else window.localStorage.setItem(e,t)}(e,t)),r),clear:e=>xn((()=>window.localStorage.clear()),e),getAllKeys:e=>xn((()=>{const e=window.localStorage.length,t=[];for(let r=0;e>r;r+=1){const e=window.localStorage.key(r)||"";t.push(e)}return t}),e),flushGetRequests:()=>{},multiGet:(e,t)=>kn(e.map((e=>An.getItem(e))),t,(t=>t.map(((t,r)=>[e[r],t])))),multiSet:(e,t)=>kn(e.map((e=>An.setItem(e[0],e[1]))),t),multiRemove:(e,t)=>kn(e.map((e=>An.removeItem(e))),t),multiMerge:(e,t)=>kn(e.map((e=>An.mergeItem(e[0],e[1]))),t)};class Cn{static async get(e){return"undefined"!=typeof document?localStorage.getItem(e):await An.getItem(e)}static async set(e,t){return"undefined"!=typeof document?localStorage.setItem(e,t):await An.setItem(e,t)}static async remove(e){return"undefined"!=typeof document?localStorage.removeItem(e):await An.removeItem(e)}}const Dn={key:"root",storage:{getItem:async(e,...t)=>await Cn.get(e),setItem:async(e,t,...r)=>Cn.set(e,t),removeItem:async(e,...t)=>Cn.remove(e)}},$n=ae({reducer:function(e,t){var r=void 0!==e.version?e.version:-1,n=void 0===e.stateReconciler?Mt:e.stateReconciler,o=e.getStoredState||zt,i=void 0!==e.timeout?e.timeout:5e3,u=null,c=!1,a=!0,f=function(e){return e._persist.rehydrated&&u&&!a&&u.update(e),e};return function(s,l){var p=s||{},y=p._persist,d=Bt(p,["_persist"]);if(l.type===Dt){var b=!1,v=function(t,r){b||(l.rehydrate(e.key,t,r),b=!0)};if(i&&setTimeout((function(){!b&&v(void 0,Error('redux-persist: persist timed out for persist key "'.concat(e.key,'"')))}),i),a=!1,u||(u=Lt(e)),y)return Kt({},t(d,l),{_persist:y});if("function"!=typeof l.rehydrate||"function"!=typeof l.register)throw Error("redux-persist: either rehydrate or register is not a function on the PERSIST action. This can happen if the action is being replayed. This is an unexplored use case, please open an issue and we will figure out a resolution.");return l.register(e.key),o(e).then((function(t){var n=e.migrate||function(e,t){return Promise.resolve(e)};n(t,r).then((function(e){v(e)}),(function(e){v(void 0,e)}))}),(function(e){v(void 0,e)})),Kt({},t(d,l),{_persist:{version:r,rehydrated:!1}})}if(l.type===$t)return c=!0,l.result(function(e){var t=e.storage,r="".concat(void 0!==e.keyPrefix?e.keyPrefix:xt).concat(e.key);return t.removeItem(r,Wt)}(e)),Kt({},t(d,l),{_persist:y});if(l.type===kt)return l.result(u&&u.flush()),Kt({},t(d,l),{_persist:y});if(l.type===Ct)a=!0;else if(l.type===At){if(c)return Kt({},d,{_persist:Kt({},y,{rehydrated:!0})});if(l.key===e.key){var h=t(d,l),m=l.payload,g=Kt({},!1!==n&&void 0!==m?n(m,s,h,e):h,{_persist:Kt({},y,{rehydrated:!0})});return f(g)}}if(!y)return t(s,l);var O=t(d,l);return O===d?s:f(Kt({},O,{_persist:y}))}}(Dn,he)}),In=function(e){var t,r=Rt(),n=e||{},o=n.reducer,i=void 0===o?void 0:o,u=n.middleware,c=void 0===u?r():u,a=n.devTools,f=void 0===a||a,s=n.preloadedState,l=void 0===s?void 0:s,p=n.enhancers,y=void 0===p?void 0:p;if("function"==typeof i)t=i;else{if(!function(e){if("object"!=typeof e||null===e)return!1;var t=Object.getPrototypeOf(e);if(null===t)return!0;for(var r=t;null!==Object.getPrototypeOf(r);)r=Object.getPrototypeOf(r);return t===r}(i))throw Error('"reducer" is a required argument, and must be a function or an object of functions that can be passed to combineReducers');t=ae(i)}var d=c;"function"==typeof d&&(d=d(r));var b=se.apply(void 0,d),v=fe;f&&(v=jt(function(e,t){for(var r in t||(t={}))St.call(t,r)&&Et(e,r,t[r]);if(wt)for(var n=0,o=wt(t);o.length>n;n++)Pt.call(t,r=o[n])&&Et(e,r,t[r]);return e}({trace:!1},"object"==typeof f&&f)));var h=[b];return Array.isArray(y)?h=gt([b],y):"function"==typeof y&&(h=y(h)),ce(t,l,v.apply(void 0,h))}({reducer:$n,middleware:[ht]}),Tn=In.dispatch,Un=Er,Nn=function(e,t,r){var n=r||!1,o=ce(Zt,Qt,t&&t.enhancer?t.enhancer:void 0),i=function(e){o.dispatch({type:It,key:e})},u=function(t,r,i){var u={type:At,payload:r,err:i,key:t};e.dispatch(u),o.dispatch(u),n&&c.getState().bootstrapped&&(n(),n=!1)},c=Gt({},o,{purge:function(){var t=[];return e.dispatch({type:$t,result:function(e){t.push(e)}}),Promise.all(t)},flush:function(){var t=[];return e.dispatch({type:kt,result:function(e){t.push(e)}}),Promise.all(t)},pause:function(){e.dispatch({type:Ct})},persist:function(){e.dispatch({type:Dt,register:i,rehydrate:u})}});return t&&t.manualPersist||c.persist(),c}(In),Mn=()=>z.useContext(zn),Ln=z.createContext({}),Fn=e=>{const t=Mn(),r=Tn,[n,o]=z.useState(e.collections||[]),[i,u]=z.useState([]),c={subscribe:async e=>{await(null==t?void 0:t.realtime.subscribe(e,(t=>{switch(t.action){case"create":r(X(e,t.record));break;case"update":r(Y(e,t.record));break;case"delete":r(G(e,t.record))}})).then((()=>{u([...i,e])})).catch((e=>{})))},unsubscribe:e=>{e?null==t||t.realtime.unsubscribe(e).then((()=>{u(i.filter((t=>t!==e)))})).catch((e=>{})):null==t||t.realtime.unsubscribe().then((()=>{u([])})).catch((e=>{}))},fetch:async e=>{const n=await(null==t?void 0:t.records.getFullList(e,200).catch((e=>{})));r(H(e,n))},create:async(e,r)=>{await(null==t?void 0:t.records.create(e,r).catch((e=>{})))},update:async(e,r,n)=>{await(null==t?void 0:t.records.update(e,r,n).catch((e=>{})))},delete:async(e,r)=>{await(null==t?void 0:t.records.delete(e,r).catch((e=>{})))}};return z.useEffect((()=>(n&&n.forEach((e=>{c.fetch(e),c.subscribe(e)})),()=>c.unsubscribe())),[n]),z.createElement(Ln.Provider,{value:{actions:c,subscribed:i}},e.children)},zn=z.createContext(null),Vn=e=>z.createElement(zn.Provider,{value:e.client},e.children),Wn=z.createContext({}),qn=e=>{const t=Mn(),[r,n]=z.useState(),o={registerWithEmail:async(e,r)=>{await(null==t?void 0:t.users.create({email:e,password:r,passwordConfirm:r}))},signInWithEmail:async(e,r)=>{await(null==t?void 0:t.users.authViaEmail(e,r))},signInWithProvider:async t=>{const n=null==r?void 0:r.find((e=>e.name===t)),o=(null==n?void 0:n.authUrl)+typeof document!="undefined"?e.webRedirectUrl:e.mobileRedirectUrl;await e.openURL(o),await Cn.set("provider",JSON.stringify(r))},submitProviderResult:async r=>{const n=new URLSearchParams(r.split("?")[1]),o=n.get("code"),i=n.get("state"),u=await Cn.get("provider");if(u){const r=JSON.parse(u),n=null==r?void 0:r.find((e=>e.state===i));n&&o&&await(null==t?void 0:t.users.authViaOAuth2(n.name,o,n.codeVerifier,"undefined"!=typeof document?e.webRedirectUrl:e.mobileRedirectUrl))}},signOut:()=>{null==t||t.authStore.clear()},sendPasswordResetEmail:async e=>{await(null==t?void 0:t.users.requestPasswordReset(e))},sendEmailVerification:async e=>{await(null==t?void 0:t.users.requestVerification(e))},updateProfile:async(e,r)=>{await(null==t?void 0:t.records.update("profiles",e,r))},updateEmail:async e=>{await(null==t?void 0:t.users.requestEmailChange(e))},deleteUser:async e=>{await(null==t?void 0:t.users.delete(e))}};return z.useEffect((()=>{(async()=>{const e=await(null==t?void 0:t.users.listAuthMethods());n(null==e?void 0:e.authProviders)})()}),[e.webRedirectUrl,e.mobileRedirectUrl]),z.createElement(Wn.Provider,{value:o},e.children)};function Kn(e){return Kn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Kn(e)}function Jn(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Bn(e,t){for(var r=0;t.length>r;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function Hn(e,t){return!t||"object"!==Kn(t)&&"function"!=typeof t?Gn(e):t}function Xn(e){return Xn=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},Xn(e)}function Gn(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Yn(e,t){return Yn=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},Yn(e,t)}function Qn(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Zn=function(e){function t(){var e,r;Jn(this,t);for(var n=arguments.length,o=Array(n),i=0;n>i;i++)o[i]=arguments[i];return Qn(Gn(r=Hn(this,(e=Xn(t)).call.apply(e,[this].concat(o)))),"state",{bootstrapped:!1}),Qn(Gn(r),"_unsubscribe",void 0),Qn(Gn(r),"handlePersistorState",(function(){r.props.persistor.getState().bootstrapped&&(r.props.onBeforeLift?Promise.resolve(r.props.onBeforeLift()).finally((function(){return r.setState({bootstrapped:!0})})):r.setState({bootstrapped:!0}),r._unsubscribe&&r._unsubscribe())})),r}var r,n,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Yn(e,t)}(t,e),r=t,(n=[{key:"componentDidMount",value:function(){this._unsubscribe=this.props.persistor.subscribe(this.handlePersistorState),this.handlePersistorState()}},{key:"componentWillUnmount",value:function(){this._unsubscribe&&this._unsubscribe()}},{key:"render",value:function(){return"function"==typeof this.props.children?this.props.children(this.state.bootstrapped):this.state.bootstrapped?this.props.children:this.props.loading}}])&&Bn(r.prototype,n),o&&Bn(r,o),t}(z.PureComponent);Qn(Zn,"defaultProps",{children:null,loading:null});const eo=z.createContext(null);e.ADD_RECORD=W,e.ADD_RECORDS=q,e.AuthContext=Wn,e.AuthProvider=qn,e.ClientContext=zn,e.ClientProvider=Vn,e.ContentContext=Ln,e.ContentProvider=Fn,e.DELETE_RECORD=J,e.DELETE_RECORDS=B,e.Pocketbase=e=>{const t=new o.default(e.serverURL);return t?z.createElement(Vn,{client:t},z.createElement(vn,{store:In},z.createElement(Zn,{persistor:Nn},z.createElement(qn,{webRedirectUrl:e.webRedirectUrl,mobileRedirectUrl:e.mobileRedirectUrl,openURL:e.openURL},z.createElement(Fn,{collections:e.initialCollections},e.children))))):null},e.PocketbaseContext=eo,e.SET_RECORDS=V,e.UPDATE_RECORD=K,e.appReducer=he,e.persistConfig=Dn,e.persistor=Nn,e.recordsAction=Q,e.store=In,e.useAppContent=function(e,t=!1){var r;const n=null!=(r=Un((t=>t.reducer.records[e])))?r:[],o=z.useContext(Ln);z.useEffect((()=>{t&&o.actions.fetch(e)}),[e,t]);const[i,u]=z.useState(!1);return z.useEffect((()=>{u(o.subscribed.includes(e))}),[e,o.subscribed]),{records:n,actions:{subscribe:async()=>await o.actions.subscribe(e),unsubscribe:()=>o.actions.unsubscribe(e),fetch:async()=>await o.actions.fetch(e),create:async t=>await o.actions.create(e,t),update:async(t,r)=>await o.actions.update(e,t,r),delete:async t=>await o.actions.delete(e,t)},isSubscribed:i}},e.useAppDispatch=Tn,e.useAppSelector=Un,e.useAuth=function(){return{actions:z.useContext(Wn)}},e.useClientContext=Mn,Object.defineProperty(e,"__esModule",{value:!0})}));
@@ -4,7 +4,8 @@ export declare const PocketbaseContext: React.Context<PocketBase | null>;
4
4
  export declare type PocketbaseProviderProps = {
5
5
  children: React.ReactNode;
6
6
  serverURL: string;
7
- redirectURL: string;
7
+ webRedirectUrl: string;
8
+ mobileRedirectUrl: string;
8
9
  openURL: (url: string) => Promise<void>;
9
10
  initialCollections?: string[];
10
11
  };
@@ -17,7 +17,8 @@ export const Pocketbase = props => {
17
17
  }, /*#__PURE__*/React.createElement(PersistGate, {
18
18
  persistor: store.persistor
19
19
  }, /*#__PURE__*/React.createElement(AuthProvider, {
20
- redirectUrl: props.redirectURL,
20
+ webRedirectUrl: props.webRedirectUrl,
21
+ mobileRedirectUrl: props.mobileRedirectUrl,
21
22
  openURL: props.openURL
22
23
  }, /*#__PURE__*/React.createElement(ContentProvider, {
23
24
  collections: props.initialCollections
@@ -29,10 +29,11 @@ export interface AuthActions {
29
29
  updateEmail: UpdateEmailType;
30
30
  deleteUser: DeleteUserType;
31
31
  }
32
- export declare const AuthContext: React.Context<AuthActions | null>;
32
+ export declare const AuthContext: React.Context<AuthActions>;
33
33
  export declare type AuthProviderProps = {
34
34
  children: React.ReactNode;
35
- redirectUrl: string;
35
+ webRedirectUrl: string;
36
+ mobileRedirectUrl: string;
36
37
  openURL: (url: string) => Promise<void>;
37
38
  };
38
39
  export declare const AuthProvider: (props: AuthProviderProps) => JSX.Element;
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
  import { createContext } from 'react';
3
3
  import { useClientContext } from '../hooks/useClientContext';
4
4
  import { StorageService } from '../service/Storage';
5
- export const AuthContext = createContext(null);
5
+ export const AuthContext = createContext({});
6
6
  export const AuthProvider = props => {
7
7
  const client = useClientContext();
8
8
  const [authProviders, setAuthProviders] = React.useState();
@@ -19,7 +19,7 @@ export const AuthProvider = props => {
19
19
  },
20
20
  signInWithProvider: async provider => {
21
21
  const authProvider = authProviders == null ? void 0 : authProviders.find(p => p.name === provider);
22
- const url = (authProvider == null ? void 0 : authProvider.authUrl) + props.redirectUrl;
22
+ const url = (authProvider == null ? void 0 : authProvider.authUrl) + typeof document !== 'undefined' ? props.webRedirectUrl : props.mobileRedirectUrl;
23
23
  await props.openURL(url);
24
24
  await StorageService.set('provider', JSON.stringify(authProviders));
25
25
  },
@@ -32,7 +32,7 @@ export const AuthProvider = props => {
32
32
  const providers = JSON.parse(providersString);
33
33
  const authProvider = providers == null ? void 0 : providers.find(p => p.state === state);
34
34
  if (authProvider && code) {
35
- await (client == null ? void 0 : client.users.authViaOAuth2(authProvider.name, code, authProvider.codeVerifier, props.redirectUrl));
35
+ await (client == null ? void 0 : client.users.authViaOAuth2(authProvider.name, code, authProvider.codeVerifier, typeof document !== 'undefined' ? props.webRedirectUrl : props.mobileRedirectUrl));
36
36
  }
37
37
  }
38
38
  },
@@ -60,7 +60,7 @@ export const AuthProvider = props => {
60
60
  const methods = await (client == null ? void 0 : client.users.listAuthMethods());
61
61
  setAuthProviders(methods == null ? void 0 : methods.authProviders);
62
62
  })();
63
- }, [props.redirectUrl]);
63
+ }, [props.webRedirectUrl, props.mobileRedirectUrl]);
64
64
  return /*#__PURE__*/React.createElement(AuthContext.Provider, {
65
65
  value: actions
66
66
  }, props.children);
@@ -13,7 +13,11 @@ interface ContentActions {
13
13
  update: UpdateType;
14
14
  delete: DeleteType;
15
15
  }
16
- export declare const ContentContext: React.Context<ContentActions | null>;
16
+ interface ContentContext {
17
+ actions: ContentActions;
18
+ subscribed: string[];
19
+ }
20
+ export declare const ContentContext: React.Context<ContentContext>;
17
21
  export declare type ContentProviderProps = {
18
22
  children: React.ReactNode;
19
23
  collections?: string[];
@@ -3,11 +3,12 @@ import * as React from 'react';
3
3
  import { createContext, useEffect } from 'react';
4
4
  import { useClientContext } from '../hooks/useClientContext';
5
5
  import { recordsAction } from '../store/actions';
6
- export const ContentContext = createContext(null);
6
+ export const ContentContext = createContext({});
7
7
  export const ContentProvider = props => {
8
8
  const client = useClientContext();
9
9
  const dispatch = store.useAppDispatch;
10
10
  const [collections, _] = React.useState(props.collections || []);
11
+ const [subscribed, setSubscribed] = React.useState([]);
11
12
  const actions = {
12
13
  subscribe: async collectionName => {
13
14
  await (client == null ? void 0 : client.realtime.subscribe(collectionName, event => {
@@ -24,15 +25,19 @@ export const ContentProvider = props => {
24
25
  default:
25
26
  break;
26
27
  }
28
+ }).then(() => {
29
+ setSubscribed([...subscribed, collectionName]);
27
30
  }).catch(_error => {}));
28
31
  },
29
32
  unsubscribe: collectionName => {
30
33
  if (collectionName) {
31
- client == null ? void 0 : client.realtime.unsubscribe(collectionName).catch(_error => {});
32
- ;
34
+ client == null ? void 0 : client.realtime.unsubscribe(collectionName).then(() => {
35
+ setSubscribed(subscribed.filter(name => name !== collectionName));
36
+ }).catch(_error => {});
33
37
  } else {
34
- client == null ? void 0 : client.realtime.unsubscribe().catch(_error => {});
35
- ;
38
+ client == null ? void 0 : client.realtime.unsubscribe().then(() => {
39
+ setSubscribed([]);
40
+ }).catch(_error => {});
36
41
  }
37
42
  },
38
43
  fetch: async collectionName => {
@@ -59,6 +64,9 @@ export const ContentProvider = props => {
59
64
  return () => actions.unsubscribe();
60
65
  }, [collections]);
61
66
  return /*#__PURE__*/React.createElement(ContentContext.Provider, {
62
- value: actions
67
+ value: {
68
+ actions,
69
+ subscribed
70
+ }
63
71
  }, props.children);
64
72
  };
@@ -16,4 +16,5 @@ export interface Actions {
16
16
  export declare function useAppContent<T extends Record>(collectionName: string, initialFetch?: boolean): {
17
17
  records: T[];
18
18
  actions: Actions;
19
+ isSubscribed: boolean;
19
20
  };
@@ -1,4 +1,4 @@
1
- import { useContext, useEffect } from 'react';
1
+ import { useContext, useEffect, useState } from 'react';
2
2
  import * as store from '../store';
3
3
  import { ContentContext } from '../context';
4
4
  export function useAppContent(collectionName, initialFetch = false) {
@@ -7,19 +7,24 @@ export function useAppContent(collectionName, initialFetch = false) {
7
7
  const context = useContext(ContentContext);
8
8
  useEffect(() => {
9
9
  if (initialFetch) {
10
- context == null ? void 0 : context.fetch(collectionName);
10
+ context.actions.fetch(collectionName);
11
11
  }
12
12
  }, [collectionName, initialFetch]);
13
+ const [isSubscribed, setIsSubscribed] = useState(false);
14
+ useEffect(() => {
15
+ setIsSubscribed(context.subscribed.includes(collectionName));
16
+ }, [collectionName, context.subscribed]);
13
17
  const actions = {
14
- subscribe: async () => await (context == null ? void 0 : context.subscribe(collectionName)),
15
- unsubscribe: () => context == null ? void 0 : context.unsubscribe(collectionName),
16
- fetch: async () => await (context == null ? void 0 : context.fetch(collectionName)),
17
- create: async record => await (context == null ? void 0 : context.create(collectionName, record)),
18
- update: async (id, record) => await (context == null ? void 0 : context.update(collectionName, id, record)),
19
- delete: async id => await (context == null ? void 0 : context.delete(collectionName, id))
18
+ subscribe: async () => await context.actions.subscribe(collectionName),
19
+ unsubscribe: () => context.actions.unsubscribe(collectionName),
20
+ fetch: async () => await context.actions.fetch(collectionName),
21
+ create: async record => await context.actions.create(collectionName, record),
22
+ update: async (id, record) => await context.actions.update(collectionName, id, record),
23
+ delete: async id => await context.actions.delete(collectionName, id)
20
24
  };
21
25
  return {
22
26
  records,
23
- actions
27
+ actions,
28
+ isSubscribed
24
29
  };
25
30
  }
@@ -1,4 +1,4 @@
1
1
  import { AuthActions } from '../context/auth';
2
2
  export declare function useAuth(): {
3
- actions: AuthActions | null;
3
+ actions: AuthActions;
4
4
  };
@@ -24,7 +24,8 @@ const Pocketbase = props => {
24
24
  }, /*#__PURE__*/React.createElement(_react2.PersistGate, {
25
25
  persistor: store.persistor
26
26
  }, /*#__PURE__*/React.createElement(_auth.AuthProvider, {
27
- redirectUrl: props.redirectURL,
27
+ webRedirectUrl: props.webRedirectUrl,
28
+ mobileRedirectUrl: props.mobileRedirectUrl,
28
29
  openURL: props.openURL
29
30
  }, /*#__PURE__*/React.createElement(_content.ContentProvider, {
30
31
  collections: props.initialCollections
@@ -7,7 +7,7 @@ var _useClientContext = require("../hooks/useClientContext");
7
7
  var _Storage = require("../service/Storage");
8
8
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
9
9
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
10
- const AuthContext = (0, React.createContext)(null);
10
+ const AuthContext = (0, React.createContext)({});
11
11
  exports.AuthContext = AuthContext;
12
12
  const AuthProvider = props => {
13
13
  const client = (0, _useClientContext.useClientContext)();
@@ -25,7 +25,7 @@ const AuthProvider = props => {
25
25
  },
26
26
  signInWithProvider: async provider => {
27
27
  const authProvider = authProviders == null ? void 0 : authProviders.find(p => p.name === provider);
28
- const url = (authProvider == null ? void 0 : authProvider.authUrl) + props.redirectUrl;
28
+ const url = (authProvider == null ? void 0 : authProvider.authUrl) + typeof document !== 'undefined' ? props.webRedirectUrl : props.mobileRedirectUrl;
29
29
  await props.openURL(url);
30
30
  await _Storage.StorageService.set('provider', JSON.stringify(authProviders));
31
31
  },
@@ -38,7 +38,7 @@ const AuthProvider = props => {
38
38
  const providers = JSON.parse(providersString);
39
39
  const authProvider = providers == null ? void 0 : providers.find(p => p.state === state);
40
40
  if (authProvider && code) {
41
- await (client == null ? void 0 : client.users.authViaOAuth2(authProvider.name, code, authProvider.codeVerifier, props.redirectUrl));
41
+ await (client == null ? void 0 : client.users.authViaOAuth2(authProvider.name, code, authProvider.codeVerifier, typeof document !== 'undefined' ? props.webRedirectUrl : props.mobileRedirectUrl));
42
42
  }
43
43
  }
44
44
  },
@@ -66,7 +66,7 @@ const AuthProvider = props => {
66
66
  const methods = await (client == null ? void 0 : client.users.listAuthMethods());
67
67
  setAuthProviders(methods == null ? void 0 : methods.authProviders);
68
68
  })();
69
- }, [props.redirectUrl]);
69
+ }, [props.webRedirectUrl, props.mobileRedirectUrl]);
70
70
  return /*#__PURE__*/React.createElement(AuthContext.Provider, {
71
71
  value: actions
72
72
  }, props.children);
@@ -8,12 +8,13 @@ var _useClientContext = require("../hooks/useClientContext");
8
8
  var _actions = require("../store/actions");
9
9
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
10
10
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
11
- const ContentContext = (0, React.createContext)(null);
11
+ const ContentContext = (0, React.createContext)({});
12
12
  exports.ContentContext = ContentContext;
13
13
  const ContentProvider = props => {
14
14
  const client = (0, _useClientContext.useClientContext)();
15
15
  const dispatch = store.useAppDispatch;
16
16
  const [collections, _] = React.useState(props.collections || []);
17
+ const [subscribed, setSubscribed] = React.useState([]);
17
18
  const actions = {
18
19
  subscribe: async collectionName => {
19
20
  await (client == null ? void 0 : client.realtime.subscribe(collectionName, event => {
@@ -30,15 +31,19 @@ const ContentProvider = props => {
30
31
  default:
31
32
  break;
32
33
  }
34
+ }).then(() => {
35
+ setSubscribed([...subscribed, collectionName]);
33
36
  }).catch(_error => {}));
34
37
  },
35
38
  unsubscribe: collectionName => {
36
39
  if (collectionName) {
37
- client == null ? void 0 : client.realtime.unsubscribe(collectionName).catch(_error => {});
38
- ;
40
+ client == null ? void 0 : client.realtime.unsubscribe(collectionName).then(() => {
41
+ setSubscribed(subscribed.filter(name => name !== collectionName));
42
+ }).catch(_error => {});
39
43
  } else {
40
- client == null ? void 0 : client.realtime.unsubscribe().catch(_error => {});
41
- ;
44
+ client == null ? void 0 : client.realtime.unsubscribe().then(() => {
45
+ setSubscribed([]);
46
+ }).catch(_error => {});
42
47
  }
43
48
  },
44
49
  fetch: async collectionName => {
@@ -65,7 +70,10 @@ const ContentProvider = props => {
65
70
  return () => actions.unsubscribe();
66
71
  }, [collections]);
67
72
  return /*#__PURE__*/React.createElement(ContentContext.Provider, {
68
- value: actions
73
+ value: {
74
+ actions,
75
+ subscribed
76
+ }
69
77
  }, props.children);
70
78
  };
71
79
  exports.ContentProvider = ContentProvider;
@@ -13,19 +13,24 @@ function useAppContent(collectionName, initialFetch = false) {
13
13
  const context = (0, _react.useContext)(_context.ContentContext);
14
14
  (0, _react.useEffect)(() => {
15
15
  if (initialFetch) {
16
- context == null ? void 0 : context.fetch(collectionName);
16
+ context.actions.fetch(collectionName);
17
17
  }
18
18
  }, [collectionName, initialFetch]);
19
+ const [isSubscribed, setIsSubscribed] = (0, _react.useState)(false);
20
+ (0, _react.useEffect)(() => {
21
+ setIsSubscribed(context.subscribed.includes(collectionName));
22
+ }, [collectionName, context.subscribed]);
19
23
  const actions = {
20
- subscribe: async () => await (context == null ? void 0 : context.subscribe(collectionName)),
21
- unsubscribe: () => context == null ? void 0 : context.unsubscribe(collectionName),
22
- fetch: async () => await (context == null ? void 0 : context.fetch(collectionName)),
23
- create: async record => await (context == null ? void 0 : context.create(collectionName, record)),
24
- update: async (id, record) => await (context == null ? void 0 : context.update(collectionName, id, record)),
25
- delete: async id => await (context == null ? void 0 : context.delete(collectionName, id))
24
+ subscribe: async () => await context.actions.subscribe(collectionName),
25
+ unsubscribe: () => context.actions.unsubscribe(collectionName),
26
+ fetch: async () => await context.actions.fetch(collectionName),
27
+ create: async record => await context.actions.create(collectionName, record),
28
+ update: async (id, record) => await context.actions.update(collectionName, id, record),
29
+ delete: async id => await context.actions.delete(collectionName, id)
26
30
  };
27
31
  return {
28
32
  records,
29
- actions
33
+ actions,
34
+ isSubscribed
30
35
  };
31
36
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pocketbase-react",
3
- "version": "0.1.9",
3
+ "version": "0.1.11",
4
4
  "description": "Unofficial React SDK (React, React Native, Expo) for interacting with the PocketBase JS SDK",
5
5
  "keywords": [
6
6
  "pocketbase",
@@ -13,7 +13,8 @@ export const PocketbaseContext = createContext<PocketBase | null>(null);
13
13
  export type PocketbaseProviderProps = {
14
14
  children: React.ReactNode;
15
15
  serverURL: string;
16
- redirectURL: string;
16
+ webRedirectUrl: string;
17
+ mobileRedirectUrl: string;
17
18
  openURL: (url: string) => Promise<void>;
18
19
  initialCollections?: string[];
19
20
  };
@@ -25,7 +26,7 @@ export const Pocketbase = (props: PocketbaseProviderProps) => {
25
26
  <ClientProvider client={client}>
26
27
  <Provider store={store.store}>
27
28
  <PersistGate persistor={store.persistor}>
28
- <AuthProvider redirectUrl={props.redirectURL} openURL={props.openURL} >
29
+ <AuthProvider webRedirectUrl={props.webRedirectUrl} mobileRedirectUrl={props.mobileRedirectUrl} openURL={props.openURL} >
29
30
  <ContentProvider collections={props.initialCollections}>
30
31
  {props.children}
31
32
  </ContentProvider>
@@ -37,11 +37,12 @@ export interface AuthActions {
37
37
  deleteUser: DeleteUserType;
38
38
  }
39
39
 
40
- export const AuthContext = createContext<AuthActions | null>(null);
40
+ export const AuthContext = createContext<AuthActions>({} as AuthActions);
41
41
 
42
42
  export type AuthProviderProps = {
43
43
  children: React.ReactNode;
44
- redirectUrl: string;
44
+ webRedirectUrl: string;
45
+ mobileRedirectUrl: string;
45
46
  openURL: (url: string) => Promise<void>;
46
47
  };
47
48
 
@@ -63,7 +64,7 @@ export const AuthProvider = (props: AuthProviderProps) => {
63
64
  },
64
65
  signInWithProvider: async (provider: string) => {
65
66
  const authProvider = authProviders?.find((p) => p.name === provider);
66
- const url = authProvider?.authUrl + props.redirectUrl;
67
+ const url = authProvider?.authUrl + typeof document !== 'undefined' ? props.webRedirectUrl: props.mobileRedirectUrl;
67
68
  await props.openURL(url);
68
69
  await StorageService.set('provider', JSON.stringify(authProviders));
69
70
  },
@@ -76,7 +77,7 @@ export const AuthProvider = (props: AuthProviderProps) => {
76
77
  const providers = JSON.parse(providersString) as AuthProviderInfo[];
77
78
  const authProvider = providers?.find((p) => p.state === state);
78
79
  if (authProvider && code) {
79
- await client?.users.authViaOAuth2(authProvider.name, code, authProvider.codeVerifier, props.redirectUrl);
80
+ await client?.users.authViaOAuth2(authProvider.name, code, authProvider.codeVerifier, typeof document !== 'undefined' ? props.webRedirectUrl: props.mobileRedirectUrl);
80
81
  }
81
82
  }
82
83
  },
@@ -105,7 +106,7 @@ export const AuthProvider = (props: AuthProviderProps) => {
105
106
  const methods = await client?.users.listAuthMethods();
106
107
  setAuthProviders(methods?.authProviders);
107
108
  })();
108
- }, [props.redirectUrl]);
109
+ }, [props.webRedirectUrl, props.mobileRedirectUrl]);
109
110
 
110
111
  return (
111
112
  <AuthContext.Provider value={actions}>{props.children}</AuthContext.Provider>
@@ -21,7 +21,12 @@ interface ContentActions {
21
21
  delete: DeleteType;
22
22
  }
23
23
 
24
- export const ContentContext = createContext<ContentActions | null>(null);
24
+ interface ContentContext {
25
+ actions: ContentActions;
26
+ subscribed: string[];
27
+ }
28
+
29
+ export const ContentContext = createContext<ContentContext>({} as ContentContext);
25
30
 
26
31
  export type ContentProviderProps = {
27
32
  children: React.ReactNode;
@@ -37,6 +42,7 @@ export const ContentProvider = (props: ContentProviderProps) => {
37
42
  const client = useClientContext();
38
43
  const dispatch = store.useAppDispatch;
39
44
  const [collections, _] = React.useState<string[]>(props.collections || []);
45
+ const [subscribed, setSubscribed] = React.useState<string[]>([]);
40
46
 
41
47
  const actions: ContentActions = {
42
48
  subscribe: async (collectionName: string) => {
@@ -54,13 +60,25 @@ export const ContentProvider = (props: ContentProviderProps) => {
54
60
  default:
55
61
  break;
56
62
  }
57
- }).catch((_error) => {});
63
+ })
64
+ .then(() => {
65
+ setSubscribed([...subscribed, collectionName]);
66
+ })
67
+ .catch((_error) => {});
58
68
  },
59
69
  unsubscribe: (collectionName?: string) => {
60
70
  if (collectionName) {
61
- client?.realtime.unsubscribe(collectionName).catch((_error) => {});;
71
+ client?.realtime.unsubscribe(collectionName)
72
+ .then(() => {
73
+ setSubscribed(subscribed.filter((name) => name !== collectionName));
74
+ })
75
+ .catch((_error) => {});
62
76
  } else {
63
- client?.realtime.unsubscribe().catch((_error) => {});;
77
+ client?.realtime.unsubscribe()
78
+ .then(() => {
79
+ setSubscribed([]);
80
+ })
81
+ .catch((_error) => {});
64
82
  }
65
83
  },
66
84
  fetch: async (collectionName: string) => {
@@ -89,6 +107,9 @@ export const ContentProvider = (props: ContentProviderProps) => {
89
107
  }, [collections]);
90
108
 
91
109
  return (
92
- <ContentContext.Provider value={actions}>{props.children}</ContentContext.Provider>
110
+ <ContentContext.Provider value={{
111
+ actions,
112
+ subscribed,
113
+ }}>{props.children}</ContentContext.Provider>
93
114
  );
94
115
  };
@@ -1,4 +1,4 @@
1
- import { useContext, useEffect } from 'react';
1
+ import { useContext, useEffect, useState } from 'react';
2
2
  import * as store from '../store';
3
3
  import { ContentContext } from '../context';
4
4
  import { Record } from '../interfaces/Record';
@@ -22,23 +22,30 @@ export interface Actions {
22
22
  export function useAppContent<T extends Record>(
23
23
  collectionName: string,
24
24
  initialFetch: boolean = false
25
- ): {records: T[], actions: Actions} {
25
+ ): {records: T[], actions: Actions, isSubscribed: boolean} {
26
26
  const records = (store.useAppSelector((state) => state.reducer.records[collectionName]) ?? []) as T[];
27
27
  const context = useContext(ContentContext);
28
28
 
29
29
  useEffect(() => {
30
30
  if (initialFetch) {
31
- context?.fetch(collectionName);
31
+ context.actions.fetch(collectionName);
32
32
  }
33
33
  }, [collectionName, initialFetch]);
34
34
 
35
+ const [isSubscribed, setIsSubscribed] = useState(false);
36
+
37
+ useEffect(() => {
38
+ setIsSubscribed(context.subscribed.includes(collectionName));
39
+ }, [collectionName, context.subscribed])
40
+
41
+
35
42
  const actions: Actions = {
36
- subscribe: async () => await context?.subscribe(collectionName),
37
- unsubscribe: () => context?.unsubscribe(collectionName),
38
- fetch: async () => await context?.fetch(collectionName),
39
- create: async (record: {}) => await context?.create(collectionName, record),
40
- update: async (id: string, record: {}) => await context?.update(collectionName, id, record),
41
- delete: async (id: string) => await context?.delete(collectionName, id),
43
+ subscribe: async () => await context.actions.subscribe(collectionName),
44
+ unsubscribe: () => context.actions.unsubscribe(collectionName),
45
+ fetch: async () => await context.actions.fetch(collectionName),
46
+ create: async (record: {}) => await context.actions.create(collectionName, record),
47
+ update: async (id: string, record: {}) => await context.actions.update(collectionName, id, record),
48
+ delete: async (id: string) => await context.actions.delete(collectionName, id),
42
49
  };
43
- return { records, actions };
50
+ return { records, actions, isSubscribed };
44
51
  }
@@ -1,7 +1,7 @@
1
1
  import { useContext } from 'react';
2
2
  import { AuthActions, AuthContext } from '../context/auth';
3
3
 
4
- export function useAuth(): { actions: AuthActions | null } {
4
+ export function useAuth(): { actions: AuthActions } {
5
5
  const actions = useContext(AuthContext);
6
6
  return { actions };
7
7
  }