@nylas/web-elements 1.4.1 → 1.4.3
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/dist/nylas-web-elements/{index-95193d9b.js → index-212258bf.js} +2 -2
- package/dist/nylas-web-elements/{index.es-69f2eefb.js → index.es-82b6efae.js} +2 -2
- package/dist/nylas-web-elements/index.esm.js +1 -1
- package/dist/nylas-web-elements/input-component.entry.js +1 -1
- package/dist/nylas-web-elements/input-component.entry.js.map +1 -1
- package/dist/nylas-web-elements/input-image-url.entry.js +1 -1
- package/dist/nylas-web-elements/multi-select-dropdown.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-additional-participants.entry.js +1 -1
- package/dist/nylas-web-elements/{nylas-api-request-d8eb4c91.js → nylas-api-request-51129e10.js} +2 -2
- package/dist/nylas-web-elements/nylas-availability-picker.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-booked-event-card.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-booking-calendar-picker.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-booking-confirmation-redirect.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-booking-confirmation-type.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-booking-form-config.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-booking-form.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-buffer-time.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-calendar-picker.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-cancel-booking-form.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-cancellation-policy.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-cancelled-event-card.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-confirmation-email.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-confirmed-event-card.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-connected-calendars.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-custom-booking-flow.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-custom-event-slug.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-customize-booking-settings.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-date-component.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-date-picker.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-date-picker.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-disable-emails.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-editor-tabs-group.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-editor-tabs.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-event-calendar.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-event-calendar.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-event-capacity.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-event-capacity.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-event-description.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-event-duration.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-event-info.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-event-limits.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-event-location.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-event-timeslot.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-event-timeslot.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-event-title.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-event-title.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-feedback-form.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-form-card.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-if-state.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-limit-future-bookings.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-list-configurations.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-locale-switch.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-login.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-min-booking-notice.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-min-cancellation-notice.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-notification.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-organizer-confirmation-card.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-page-name.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-page-styling.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-participant-booking-calendars.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-participants-custom-availability.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-provider.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-reminder-emails.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-reminder-time.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-scheduler-editor.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-scheduling-method.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-scheduling.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-select-event-type.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-selected-event-card.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-time-window-picker.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-timeslot-interval.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-timeslot-picker.entry.js +1 -1
- package/dist/nylas-web-elements/nylas-timeslot-picker.entry.js.map +1 -1
- package/dist/nylas-web-elements/nylas-web-elements.esm.js +1 -1
- package/dist/nylas-web-elements/nylas-web-elements.esm.js.map +1 -1
- package/dist/nylas-web-elements/{register-component-3d439a88.js → register-component-8b5587d5.js} +2 -2
- package/dist/nylas-web-elements/{scheduler-store-0acc5e0f.js → scheduler-store-36b93b74.js} +2 -2
- package/dist/nylas-web-elements/textarea-component.entry.js +1 -1
- package/dist/nylas-web-elements/time-period-selector.entry.js +1 -1
- package/dist/nylas-web-elements/{utils-3fdf2c83.js → utils-ac8fef1e.js} +2 -2
- package/dist/types/components/scheduler/nylas-date-picker/nylas-date-picker.d.ts +4 -0
- package/dist/types/components/scheduler-editor/nylas-event-capacity/nylas-event-capacity.d.ts +1 -0
- package/package.json +2 -3
- package/CHANGELOG.md +0 -872
- /package/dist/nylas-web-elements/{index-95193d9b.js.map → index-212258bf.js.map} +0 -0
- /package/dist/nylas-web-elements/{index.es-69f2eefb.js.map → index.es-82b6efae.js.map} +0 -0
- /package/dist/nylas-web-elements/{nylas-api-request-d8eb4c91.js.map → nylas-api-request-51129e10.js.map} +0 -0
- /package/dist/nylas-web-elements/{register-component-3d439a88.js.map → register-component-8b5587d5.js.map} +0 -0
- /package/dist/nylas-web-elements/{scheduler-store-0acc5e0f.js.map → scheduler-store-36b93b74.js.map} +0 -0
- /package/dist/nylas-web-elements/{utils-3fdf2c83.js.map → utils-ac8fef1e.js.map} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as t,u as n,f as e,g as r}from"./utils-3fdf2c83.js";class i{constructor(n,e,r=true,i){this.automaticComponentRegistration=true;this.registeredComponents={};this.propStateRegistrations=new Map;this.eventListenerRegistrations=new Map;this.host=n;this.stores=e;this.automaticComponentRegistration=r;this.eventOverrides=i;t(`[${this.hostTagName}] Initializing (abstract) provider.`,{eventOverrides:i});this.registerComponent=this.registerComponent.bind(this);this.getStore=this.getStore.bind(this);Object.keys(this.stores).forEach((t=>{this.propStateRegistrations.set(t,new Map)}))}async componentWillLoad(n){t(`[${this.hostTagName}] Will load`);this.setupStoreListeners();this.nylasConnector=n;const e=Array.from(this.host.querySelectorAll("*")).filter((t=>t.tagName.toLowerCase().startsWith("nylas-")));t(`[${this.hostTagName}] Found ${e.length} child component(s).`,{childComponents:e});const r=e.map((async n=>{const e=n;if(!e){t(`[~${this.hostTagName}] (componentWillLoad) Component ${e.tagName} does not have a name. Skipping.`);return}if(!e.registerNylasComponent){t(`[~${this.hostTagName}] (componentWillLoad) Component ${e.tagName} is not a component that can be registered. Skipping.`,{component:e});return}const r={element:e,name:e.tagName.toLowerCase(),getStoresToProp:e.getStoresToProp,storeToProps:e.storeToProps,stateToProps:e.stateToProps,authToProp:e.authToProp,eventToProps:e.eventToProps,connectorToProp:e.connectorToProp,localPropsToProp:e.localPropsToProp};await this.registerComponent(r)}));await Promise.all(r)}async componentDidLoad(){t(`[~${this.hostTagName}] (componentDidLoad) Did load`)}async componentDisconnected(){Object.values(this.stores).forEach((t=>{t.dispose()}))}async registerComponentHandler(n){n.stopPropagation();if(!this.automaticComponentRegistration){t(`~[${this.hostTagName}] (registerComponentHandler) Automatic component registration disabled. Skipping registration of ${n.detail.name}.`);return}await this.registerComponent(n.detail)}async unregisterComponentHandler(n){n.stopPropagation();if(!this.automaticComponentRegistration){t(`~[${this.hostTagName}] (unregisterComponentHandler) Automatic component registration disabled. Skipping unregistration of ${n.detail.name}.`);return}this.unregisterComponent(n.detail)}async registerComponent(r){t(`~[${this.hostTagName}] (registerComponent) Registering component ${r.name}.`);const i=r.element.dataset.nylasId;const s=i&&this.registeredComponents[i];if(s){t(`[${this.hostTagName}] (registerComponent) Component ${r.name} already registered. Updating registration.`);this.cleanupComponentRegistration(i,false)}else{r.element.dataset.nylasId=i||n()}const o=r.element.dataset.nylasId;if(o){this.registeredComponents[o]=r}t(`[${this.hostTagName}] (registerComponent) Waiting for "${r.element.localName}" component to be defined`,{component:r});try{await customElements.whenDefined(r.element.tagName.toLowerCase());t(`[${this.hostTagName}] (registerComponent) Component "${r.element.localName}" is now defined`)}catch(n){t(`[${this.hostTagName}] (registerComponent) Error waiting for component "${r.element.localName}" to be defined:`,n)}const u=this.eventOverrides;const{stateToProps:a,getStoresToProp:c,eventToProps:l,storeToProps:h,connectorToProp:f,localPropsToProp:d,element:p}=r;l?.forEach(((n,i)=>{const s=this.nylasConnector;const o=async e=>{t(`[${this.hostTagName}] (registerComponent) Handling "${r.name}" prop "${String(i)}" event.`,{event:e});if(i in u){t(`[${this.hostTagName}] (registerComponent) Found event override for "${String(i)}" event. Calling override.`);await u[i](e,s)}if(!e.defaultPrevented){await n(e,s)}return};const a=r.element.dataset.nylasId;if(a&&!this.eventListenerRegistrations.has(a)){this.eventListenerRegistrations.set(a,[])}if(a){this.eventListenerRegistrations.get(a)?.push([p,i,o])}t(`[${this.hostTagName}] (registerComponent) Setting "${r.name}" event "${String(i)}" to automcially call NylasConnector method.`);const c=e(i.toString());t(`[${this.hostTagName}] (registerComponent) Adding event listener for "${c}" on "${p.tagName}"`);p.addEventListener(c,o)}));a?.forEach(((n,e)=>{const[i,s]=e.split(".");const o=this.getStore(i);const u=o.state[s];if(!p.dataset.nylasId){t(`[${this.hostTagName}] (registerComponent) Component "${r.name}" not registered. Skipping.`,{component:r});return}if(!this.propStateRegistrations.has(i)){this.propStateRegistrations.set(i,new Map)}if(!this.propStateRegistrations.get(i)?.has(s)){this.propStateRegistrations.get(i)?.set(s,[{elementId:p.dataset.nylasId,propKey:n}])}else{this.propStateRegistrations.get(i)?.get(s)?.push({elementId:p.dataset.nylasId,propKey:n})}p[n.toString()]=u;t(`[${this.hostTagName}] Setting "${r.name}" prop "${n.toString()}" to "${e}" value.`,{stateValue:u})}));d?.forEach(((n,e)=>{const i=this.host[e];p[n.toString()]=i;t(`[${this.hostTagName}] Setting "${r.name}" prop "${n.toString()}" to the value of "${e}" value.`,{value:e,mappedPropValue:i})}));if(c){p[c?.toString()]=this.getStore;t(`[${this.hostTagName}] Setting "${r.name}" prop "${c.toString()}" to "getStore" method.`)}h?.forEach(((n,e)=>{const i=this.getStore(e);p[n.toString()]=i;t(`[${this.hostTagName}] Setting "${r.name}" prop "${n.toString()}" to "${e}" store.`,{store:i})}));if(f){p[f?.toString()]=this.nylasConnector;t(`[${this.hostTagName}] Setting "${r.name}" prop "${f.toString()}" to "nylasConnector" value.`,{connectorToProp:f})}if(typeof p.registerCallback==="function"){t(`[${this.hostTagName}] (registerComponent) Calling registerCallback method for "${r.name}".`);await p.registerCallback()}t(`[${this.hostTagName}] (registerComponent) Component ${r.name} registered.`)}cleanupComponentRegistration(n,r=true){const i=this.eventListenerRegistrations.get(n);if(i){i.forEach((([n,r,i])=>{const s=e(r.toString());t(`[${this.hostTagName}] (cleanupComponentRegistration) Removing event listener for "${s}" on "${n.tagName}"`);n.removeEventListener(s,i)}));this.eventListenerRegistrations.delete(n)}this.propStateRegistrations.forEach(((t,e)=>{t.forEach(((t,r)=>{const i=t.filter((t=>t.elementId!==n));if(i.length!==t.length){this.propStateRegistrations.get(e)?.set(r,i)}}))}));if(r){delete this.registeredComponents[n]}}unregisterComponent(n){t(`[${this.hostTagName}] Unregistering component ${n.name}.`);const r=n.element.dataset.nylasId;if(!r){t(`[${this.hostTagName}] (unregisterComponent) Unregistering component ${n.name}.`);return}if(this.registeredComponents[r]){t(`[${this.hostTagName}] (unregisterComponent) Component ${n.name} not registered. Skipping.`);return}this.propStateRegistrations.forEach(((t,n)=>{t.forEach(((t,e)=>{const i=this.propStateRegistrations.get(n)?.get(e);const s=i?.filter((t=>t.elementId!==r));if(s){this.propStateRegistrations.get(n)?.set(e,s)}}))}));const i=this.eventListenerRegistrations.get(r);i?.forEach((([n,r,i])=>{const s=e(r.toString());t(`[${this.hostTagName}] (unregisterComponent) Removing event listener for "${s}" on "${n.tagName}"`);n.removeEventListener(s,i)}));delete this.registeredComponents[r]}getStore(t){const n=this.stores[t];if(!n){throw new Error(`[${this.hostTagName}] Store "${t.toString()}" not found.`)}return n}async setupStoreListeners(){const n=this;Object.entries(this.stores).forEach((([e,r])=>{t(`[${n.hostTagName}] (setupStoreListeners) Listening for changes in "${e}" store.`);r.use({set(r,i,s){t(`[${n.hostTagName}] (setupStoreListeners) Store "${e}" state "${r.toString()}" changed`,{newValue:i,oldValue:s});if(i===s){t(`[${n.hostTagName}] (setupStoreListeners) Store "${e}" state "${r.toString()}" unchanged. Skipping.`);return}const o=n.registeredComponents;if(!o){t(`[${n.hostTagName}] (setupStoreListeners) No registered components found. Skipping.`);return}const u=n.propStateRegistrations.get(e)?.get(r.toString())||[];t(`[${n.hostTagName}] (setupStoreListeners) Found ${u.length} prop(s) registered for "${r.toString()}" store.`,{props:u,propStateRegistrations:n.propStateRegistrations});u.forEach((({elementId:i,propKey:s})=>{const u=o[i];if(!u){t(`[${n.hostTagName}] (setupStoreListeners) Component "${i}" not found. Skipping.`,{component:u});return}const a=n.getStore(e);const c=a.state[r];u.element[s.toString()]=c;t(`[${n.hostTagName}] (setupStoreListeners) Setting "${u.name}" prop "${s.toString()}" to "${r.toString()}" value.`,{stateValue:c})}))}})}))}get hostTagName(){return this.host?.tagName?.toLowerCase()??"nylas-provider"}}class s extends i{}var o=Object.defineProperty;var u=(t,n,e)=>n in t?o(t,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[n]=e;var a=(t,n,e)=>(u(t,typeof n!="symbol"?n+"":n,e),e);var c=(t=>(t.Error="error",t.Warning="warning",t.Info="info",t.Success="success",t))(c||{});const l=t=>t!==null&&typeof t=="object"&&"data"in t,h=t=>t!==null&&typeof t=="object"&&"error"in t;class f extends Error{constructor(t){super(t==null?void 0:t.message);a(this,"apiError");this.name="NylasAPIError",this.stack=(new Error).stack,this.apiError=t}}async function d(t){const n=(new TextEncoder).encode(t),e=await crypto.subtle.digest("SHA-256",n),r=Array.from(new Uint8Array(e)).map((t=>t.toString(16).padStart(2,"0"))).join("");return btoa(r).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}const p=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:r,y=Object.keys,v=Array.isArray;function w(t,n){return typeof n!="object"||y(n).forEach((function(e){t[e]=n[e]})),t}typeof Promise>"u"||p.Promise||(p.Promise=Promise);const g=Object.getPrototypeOf,m={}.hasOwnProperty;function b(t,n){return m.call(t,n)}function k(t,n){typeof n=="function"&&(n=n(g(t))),(typeof Reflect>"u"?y:Reflect.ownKeys)(n).forEach((e=>{S(t,e,n[e])}))}const $=Object.defineProperty;function S(t,n,e,r){$(t,n,w(e&&b(e,"get")&&typeof e.get=="function"?{get:e.get,set:e.set,configurable:!0}:{value:e,configurable:!0,writable:!0},r))}function A(t){return{from:function(n){return t.prototype=Object.create(n.prototype),S(t.prototype,"constructor",t),{extend:k.bind(null,t.prototype)}}}}const P=Object.getOwnPropertyDescriptor;function x(t,n){let e;return P(t,n)||(e=g(t))&&x(e,n)}const C=[].slice;function E(t,n,e){return C.call(t,n,e)}function O(t,n){return n(t)}function T(t){if(!t)throw new Error("Assertion Failed")}function D(t){p.setImmediate?setImmediate(t):setTimeout(t,0)}function j(t,n){return t.reduce(((t,e,r)=>{var i=n(e,r);return i&&(t[i[0]]=i[1]),t}),{})}function I(t,n){if(b(t,n))return t[n];if(!n)return t;if(typeof n!="string"){for(var e=[],r=0,i=n.length;r<i;++r){var s=I(t,n[r]);e.push(s)}return e}var o=n.indexOf(".");if(o!==-1){var u=t[n.substr(0,o)];return u===void 0?void 0:I(u,n.substr(o+1))}}function R(t,n,e){if(t&&n!==void 0&&(!("isFrozen"in Object)||!Object.isFrozen(t)))if(typeof n!="string"&&"length"in n){T(typeof e!="string"&&"length"in e);for(var r=0,i=n.length;r<i;++r)R(t,n[r],e[r])}else{var s=n.indexOf(".");if(s!==-1){var o=n.substr(0,s),u=n.substr(s+1);if(u==="")e===void 0?v(t)&&!isNaN(parseInt(o))?t.splice(o,1):delete t[o]:t[o]=e;else{var a=t[o];a&&b(t,o)||(a=t[o]={}),R(a,u,e)}}else e===void 0?v(t)&&!isNaN(parseInt(n))?t.splice(n,1):delete t[n]:t[n]=e}}function K(t){var n={};for(var e in t)b(t,e)&&(n[e]=t[e]);return n}const B=[].concat;function _(t){return B.apply([],t)}const q="Boolean,String,Date,RegExp,Blob,File,FileList,FileSystemFileHandle,ArrayBuffer,DataView,Uint8ClampedArray,ImageBitmap,ImageData,Map,Set,CryptoKey".split(",").concat(_([8,16,32,64].map((t=>["Int","Uint","Float"].map((n=>n+t+"Array")))))).filter((t=>p[t])),N=q.map((t=>p[t]));j(q,(t=>[t,!0]));let M=null;function F(t){M=typeof WeakMap<"u"&&new WeakMap;const n=L(t);return M=null,n}function L(t){if(!t||typeof t!="object")return t;let n=M&&M.get(t);if(n)return n;if(v(t)){n=[],M&&M.set(t,n);for(var e=0,r=t.length;e<r;++e)n.push(L(t[e]))}else if(N.indexOf(t.constructor)>=0)n=t;else{const e=g(t);for(var i in n=e===Object.prototype?{}:Object.create(e),M&&M.set(t,n),t)b(t,i)&&(n[i]=L(t[i]))}return n}const{toString:U}={};function V(t){return U.call(t).slice(8,-1)}const W=typeof Symbol<"u"?Symbol.iterator:"@@iterator",H=typeof W=="symbol"?function(t){var n;return t!=null&&(n=t[W])&&n.apply(t)}:function(){return null},G={};function z(t){var n,e,r,i;if(arguments.length===1){if(v(t))return t.slice();if(this===G&&typeof t=="string")return[t];if(i=H(t)){for(e=[];!(r=i.next()).done;)e.push(r.value);return e}if(t==null)return[t];if(typeof(n=t.length)=="number"){for(e=new Array(n);n--;)e[n]=t[n];return e}return[t]}for(n=arguments.length,e=new Array(n);n--;)e[n]=arguments[n];return e}const J=typeof Symbol<"u"?t=>t[Symbol.toStringTag]==="AsyncFunction":()=>!1;var Y=typeof location<"u"&&/^(http|https):\/\/(localhost|127\.0\.0\.1)/.test(location.href);function Q(t,n){Y=t,X=n}var X=()=>!0;const Z=!new Error("").stack;function tt(){if(Z)try{throw tt.arguments,new Error}catch(t){return t}return new Error}function nt(t,n){var e=t.stack;return e?(n=n||0,e.indexOf(t.name)===0&&(n+=(t.name+t.message).split(`\n`).length),e.split(`\n`).slice(n).filter(X).map((t=>`\n`+t)).join("")):""}var et=["Unknown","Constraint","Data","TransactionInactive","ReadOnly","Version","NotFound","InvalidState","InvalidAccess","Abort","Timeout","QuotaExceeded","Syntax","DataClone"],rt=["Modify","Bulk","OpenFailed","VersionChange","Schema","Upgrade","InvalidTable","MissingAPI","NoSuchDatabase","InvalidArgument","SubTransaction","Unsupported","Internal","DatabaseClosed","PrematureCommit","ForeignAwait"].concat(et),it={VersionChanged:"Database version changed by other database connection",DatabaseClosed:"Database has been closed",Abort:"Transaction aborted",TransactionInactive:"Transaction has already completed or failed",MissingAPI:"IndexedDB API missing. Please visit https://tinyurl.com/y2uuvskb"};function st(t,n){this._e=tt(),this.name=t,this.message=n}function ot(t,n){return t+". Errors: "+Object.keys(n).map((t=>n[t].toString())).filter(((t,n,e)=>e.indexOf(t)===n)).join(`\n`)}function ut(t,n,e,r){this._e=tt(),this.failures=n,this.failedKeys=r,this.successCount=e,this.message=ot(t,n)}function at(t,n){this._e=tt(),this.name="BulkError",this.failures=Object.keys(n).map((t=>n[t])),this.failuresByPos=n,this.message=ot(t,n)}A(st).from(Error).extend({stack:{get:function(){return this._stack||(this._stack=this.name+": "+this.message+nt(this._e,2))}},toString:function(){return this.name+": "+this.message}}),A(ut).from(st),A(at).from(st);var ct=rt.reduce(((t,n)=>(t[n]=n+"Error",t)),{});const lt=st;var ht=rt.reduce(((t,n)=>{var e=n+"Error";function r(t,r){this._e=tt(),this.name=e,t?typeof t=="string"?(this.message=`${t}${r?`\n `+r:""}`,this.inner=r||null):typeof t=="object"&&(this.message=`${t.name} ${t.message}`,this.inner=t):(this.message=it[n]||e,this.inner=null)}return A(r).from(lt),t[n]=r,t}),{});ht.Syntax=SyntaxError,ht.Type=TypeError,ht.Range=RangeError;var ft=et.reduce(((t,n)=>(t[n+"Error"]=ht[n],t)),{}),dt=rt.reduce(((t,n)=>(["Syntax","Type","Range"].indexOf(n)===-1&&(t[n+"Error"]=ht[n]),t)),{});function pt(){}function yt(t){return t}function vt(t,n){return t==null||t===yt?n:function(e){return n(t(e))}}function wt(t,n){return function(){t.apply(this,arguments),n.apply(this,arguments)}}function gt(t,n){return t===pt?n:function(){var e=t.apply(this,arguments);e!==void 0&&(arguments[0]=e);var r=this.onsuccess,i=this.onerror;this.onsuccess=null,this.onerror=null;var s=n.apply(this,arguments);return r&&(this.onsuccess=this.onsuccess?wt(r,this.onsuccess):r),i&&(this.onerror=this.onerror?wt(i,this.onerror):i),s!==void 0?s:e}}function mt(t,n){return t===pt?n:function(){t.apply(this,arguments);var e=this.onsuccess,r=this.onerror;this.onsuccess=this.onerror=null,n.apply(this,arguments),e&&(this.onsuccess=this.onsuccess?wt(e,this.onsuccess):e),r&&(this.onerror=this.onerror?wt(r,this.onerror):r)}}function bt(t,n){return t===pt?n:function(e){var r=t.apply(this,arguments);w(e,r);var i=this.onsuccess,s=this.onerror;this.onsuccess=null,this.onerror=null;var o=n.apply(this,arguments);return i&&(this.onsuccess=this.onsuccess?wt(i,this.onsuccess):i),s&&(this.onerror=this.onerror?wt(s,this.onerror):s),r===void 0?o===void 0?void 0:o:w(r,o)}}function kt(t,n){return t===pt?n:function(){return n.apply(this,arguments)!==!1&&t.apply(this,arguments)}}function $t(t,n){return t===pt?n:function(){var e=t.apply(this,arguments);if(e&&typeof e.then=="function"){for(var r=this,i=arguments.length,s=new Array(i);i--;)s[i]=arguments[i];return e.then((function(){return n.apply(r,s)}))}return n.apply(this,arguments)}}dt.ModifyError=ut,dt.DexieError=st,dt.BulkError=at;var St={};const At=100,[Pt,xt,Ct]=typeof Promise>"u"?[]:(()=>{let t=Promise.resolve();if(typeof crypto>"u"||!crypto.subtle)return[t,g(t),t];const n=crypto.subtle.digest("SHA-512",new Uint8Array([0]));return[n,g(n),t]})(),Et=xt&&xt.then,Ot=Pt&&Pt.constructor,Tt=!!Ct;var Dt=!1,jt=Ct?()=>{Ct.then(nn)}:p.setImmediate?setImmediate.bind(null,nn):p.MutationObserver?()=>{var t=document.createElement("div");new MutationObserver((()=>{nn(),t=null})).observe(t,{attributes:!0}),t.setAttribute("i","1")}:()=>{setTimeout(nn,0)},It=function(t,n){Lt.push([t,n]),Kt&&(jt(),Kt=!1)},Rt=!0,Kt=!0,Bt=[],_t=[],qt=null,Nt=yt,Mt={id:"global",global:!0,ref:0,unhandleds:[],onunhandled:Cn,pgp:!1,env:{},finalize:function(){this.unhandleds.forEach((t=>{try{Cn(t[0],t[1])}catch{}}))}},Ft=Mt,Lt=[],Ut=0,Vt=[];function Wt(t){if(typeof this!="object")throw new TypeError("Promises must be constructed via new");this._listeners=[],this.onuncatched=pt,this._lib=!1;var n=this._PSD=Ft;if(Y&&(this._stackHolder=tt(),this._prev=null,this._numPrev=0),typeof t!="function"){if(t!==St)throw new TypeError("Not a function");return this._state=arguments[1],this._value=arguments[2],void(this._state===!1&&Jt(this,this._value))}this._state=null,this._value=null,++n.ref,zt(this,t)}const Ht={get:function(){var t=Ft,n=fn;function e(e,r){var i=!t.global&&(t!==Ft||n!==fn);const s=i&&!vn();var o=new Wt(((n,o)=>{Qt(this,new Gt(An(e,t,i,s),An(r,t,i,s),n,o,t))}));return Y&&tn(o,this),o}return e.prototype=St,e},set:function(t){S(this,"then",t&&t.prototype===St?Ht:{get:function(){return t},set:Ht.set})}};function Gt(t,n,e,r,i){this.onFulfilled=typeof t=="function"?t:null,this.onRejected=typeof n=="function"?n:null,this.resolve=e,this.reject=r,this.psd=i}function zt(t,n){try{n((n=>{if(t._state===null){if(n===t)throw new TypeError("A promise cannot be resolved with itself.");var e=t._lib&&en();n&&typeof n.then=="function"?zt(t,((t,e)=>{n instanceof Wt?n._then(t,e):n.then(t,e)})):(t._state=!0,t._value=n,Yt(t)),e&&rn()}}),Jt.bind(null,t))}catch(n){Jt(t,n)}}function Jt(t,n){if(_t.push(n),t._state===null){var e=t._lib&&en();n=Nt(n),t._state=!1,t._value=n,Y&&n!==null&&typeof n=="object"&&!n._promise&&function(t,n,e){try{t.apply(null,e)}catch(t){n&&n(t)}}((()=>{var e=x(n,"stack");n._promise=t,S(n,"stack",{get:()=>Dt?e&&(e.get?e.get.apply(n):e.value):t.stack})})),function(t){Bt.some((n=>n._value===t._value))||Bt.push(t)}(t),Yt(t),e&&rn()}}function Yt(t){var n=t._listeners;t._listeners=[];for(var e=0,r=n.length;e<r;++e)Qt(t,n[e]);var i=t._PSD;--i.ref||i.finalize(),Ut===0&&(++Ut,It((()=>{--Ut==0&&sn()}),[]))}function Qt(t,n){if(t._state!==null){var e=t._state?n.onFulfilled:n.onRejected;if(e===null)return(t._state?n.resolve:n.reject)(t._value);++n.psd.ref,++Ut,It(Xt,[e,t,n])}else t._listeners.push(n)}function Xt(t,n,e){try{qt=n;var r,i=n._value;n._state?r=t(i):(_t.length&&(_t=[]),r=t(i),_t.indexOf(i)===-1&&function(t){for(var n=Bt.length;n;)if(Bt[--n]._value===t._value)return void Bt.splice(n,1)}(n)),e.resolve(r)}catch(t){e.reject(t)}finally{qt=null,--Ut==0&&sn(),--e.psd.ref||e.psd.finalize()}}function Zt(t,n,e){if(n.length===e)return n;var r="";if(t._state===!1){var i,s,o=t._value;o!=null?(i=o.name||"Error",s=o.message||o,r=nt(o,0)):(i=o,s=""),n.push(i+(s?": "+s:"")+r)}return Y&&((r=nt(t._stackHolder,2))&&n.indexOf(r)===-1&&n.push(r),t._prev&&Zt(t._prev,n,e)),n}function tn(t,n){var e=n?n._numPrev+1:0;e<100&&(t._prev=n,t._numPrev=e)}function nn(){en()&&rn()}function en(){var t=Rt;return Rt=!1,Kt=!1,t}function rn(){var t,n,e;do{for(;Lt.length>0;)for(t=Lt,Lt=[],e=t.length,n=0;n<e;++n){var r=t[n];r[0].apply(null,r[1])}}while(Lt.length>0);Rt=!0,Kt=!0}function sn(){var t=Bt;Bt=[],t.forEach((t=>{t._PSD.onunhandled.call(null,t._value,t)}));for(var n=Vt.slice(0),e=n.length;e;)n[--e]()}function on(t){return new Wt(St,!1,t)}function un(t,n){var e=Ft;return function(){var r=en(),i=Ft;try{return bn(e,!0),t.apply(this,arguments)}catch(t){n&&n(t)}finally{bn(i,!1),r&&rn()}}}k(Wt.prototype,{then:Ht,_then:function(t,n){Qt(this,new Gt(null,null,t,n,Ft))},catch:function(t){if(arguments.length===1)return this.then(null,t);var n=arguments[0],e=arguments[1];return typeof n=="function"?this.then(null,(t=>t instanceof n?e(t):on(t))):this.then(null,(t=>t&&t.name===n?e(t):on(t)))},finally:function(t){return this.then((n=>(t(),n)),(n=>(t(),on(n))))},stack:{get:function(){if(this._stack)return this._stack;try{Dt=!0;var t=Zt(this,[],20).join(`\nFrom previous: `);return this._state!==null&&(this._stack=t),t}finally{Dt=!1}}},timeout:function(t,n){return t<1/0?new Wt(((e,r)=>{var i=setTimeout((()=>r(new ht.Timeout(n))),t);this.then(e,r).finally(clearTimeout.bind(null,i))})):this}}),typeof Symbol<"u"&&Symbol.toStringTag&&S(Wt.prototype,Symbol.toStringTag,"Dexie.Promise"),Mt.env=kn(),k(Wt,{all:function(){var t=z.apply(null,arguments).map(wn);return new Wt((function(n,e){t.length===0&&n([]);var r=t.length;t.forEach(((i,s)=>Wt.resolve(i).then((e=>{t[s]=e,--r||n(t)}),e)))}))},resolve:t=>{if(t instanceof Wt)return t;if(t&&typeof t.then=="function")return new Wt(((n,e)=>{t.then(n,e)}));var n=new Wt(St,!0,t);return tn(n,qt),n},reject:on,race:function(){var t=z.apply(null,arguments).map(wn);return new Wt(((n,e)=>{t.map((t=>Wt.resolve(t).then(n,e)))}))},PSD:{get:()=>Ft,set:t=>Ft=t},totalEchoes:{get:()=>fn},newPSD:pn,usePSD:$n,scheduler:{get:()=>It,set:t=>{It=t}},rejectionMapper:{get:()=>Nt,set:t=>{Nt=t}},follow:(t,n)=>new Wt(((e,r)=>pn(((n,e)=>{var r=Ft;r.unhandleds=[],r.onunhandled=e,r.finalize=wt((function(){(function(t){function n(){t(),Vt.splice(Vt.indexOf(n),1)}Vt.push(n),++Ut,It((()=>{--Ut==0&&sn()}),[])})((()=>{this.unhandleds.length===0?n():e(this.unhandleds[0])}))}),r.finalize),t()}),n,e,r)))}),Ot&&(Ot.allSettled&&S(Wt,"allSettled",(function(){const t=z.apply(null,arguments).map(wn);return new Wt((n=>{t.length===0&&n([]);let e=t.length;const r=new Array(e);t.forEach(((t,i)=>Wt.resolve(t).then((t=>r[i]={status:"fulfilled",value:t}),(t=>r[i]={status:"rejected",reason:t})).then((()=>--e||n(r)))))}))})),Ot.any&&typeof AggregateError<"u"&&S(Wt,"any",(function(){const t=z.apply(null,arguments).map(wn);return new Wt(((n,e)=>{t.length===0&&e(new AggregateError([]));let r=t.length;const i=new Array(r);t.forEach(((t,s)=>Wt.resolve(t).then((t=>n(t)),(t=>{i[s]=t,--r||e(new AggregateError(i))}))))}))})));const an={awaits:0,echoes:0,id:0};var cn=0,ln=[],hn=0,fn=0,dn=0;function pn(t,n,e,r){var i=Ft,s=Object.create(i);s.parent=i,s.ref=0,s.global=!1,s.id=++dn;var o=Mt.env;s.env=Tt?{Promise:Wt,PromiseProp:{value:Wt,configurable:!0,writable:!0},all:Wt.all,race:Wt.race,allSettled:Wt.allSettled,any:Wt.any,resolve:Wt.resolve,reject:Wt.reject,nthen:Pn(o.nthen,s),gthen:Pn(o.gthen,s)}:{},n&&w(s,n),++i.ref,s.finalize=function(){--this.parent.ref||this.parent.finalize()};var u=$n(s,t,e,r);return s.ref===0&&s.finalize(),u}function yn(){return an.id||(an.id=++cn),++an.awaits,an.echoes+=At,an.id}function vn(){return!!an.awaits&&(--an.awaits==0&&(an.id=0),an.echoes=an.awaits*At,!0)}function wn(t){return an.echoes&&t&&t.constructor===Ot?(yn(),t.then((t=>(vn(),t)),(t=>(vn(),En(t))))):t}function gn(t){++fn,an.echoes&&--an.echoes!=0||(an.echoes=an.id=0),ln.push(Ft),bn(t,!0)}function mn(){var t=ln[ln.length-1];ln.pop(),bn(t,!1)}function bn(t,n){var e=Ft;if((n?!an.echoes||hn++&&t===Ft:!hn||--hn&&t===Ft)||Sn(n?gn.bind(null,t):mn),t!==Ft&&(Ft=t,e===Mt&&(Mt.env=kn()),Tt)){var r=Mt.env.Promise,i=t.env;xt.then=i.nthen,r.prototype.then=i.gthen,(e.global||t.global)&&(Object.defineProperty(p,"Promise",i.PromiseProp),r.all=i.all,r.race=i.race,r.resolve=i.resolve,r.reject=i.reject,i.allSettled&&(r.allSettled=i.allSettled),i.any&&(r.any=i.any))}}function kn(){var t=p.Promise;return Tt?{Promise:t,PromiseProp:Object.getOwnPropertyDescriptor(p,"Promise"),all:t.all,race:t.race,allSettled:t.allSettled,any:t.any,resolve:t.resolve,reject:t.reject,nthen:xt.then,gthen:t.prototype.then}:{}}function $n(t,n,e,r,i){var s=Ft;try{return bn(t,!0),n(e,r,i)}finally{bn(s,!1)}}function Sn(t){Et.call(Pt,t)}function An(t,n,e,r){return typeof t!="function"?t:function(){var i=Ft;e&&yn(),bn(n,!0);try{return t.apply(this,arguments)}finally{bn(i,!1),r&&Sn(vn)}}}function Pn(t,n){return function(e,r){return t.call(this,An(e,n),An(r,n))}}(""+Et).indexOf("[native code]")===-1&&(yn=vn=pt);const xn="unhandledrejection";function Cn(t,n){var e;try{e=n.onuncatched(t)}catch{}if(e!==!1)try{var r,i={promise:n,reason:t};if(p.document&&document.createEvent?((r=document.createEvent("Event")).initEvent(xn,!0,!0),w(r,i)):p.CustomEvent&&w(r=new CustomEvent(xn,{detail:i}),i),r&&p.dispatchEvent&&(dispatchEvent(r),!p.PromiseRejectionEvent&&p.onunhandledrejection))try{p.onunhandledrejection(r)}catch{}Y&&r&&!r.defaultPrevented&&console.warn(`Unhandled rejection: ${t.stack||t}`)}catch{}}var En=Wt.reject;function On(t,n,e,r){if(t.idbdb&&(t._state.openComplete||Ft.letThrough||t._vip)){var i=t._createTransaction(n,e,t._dbSchema);try{i.create(),t._state.PR1398_maxLoop=3}catch(i){return i.name===ct.InvalidState&&t.isOpen()&&--t._state.PR1398_maxLoop>0?(console.warn("Dexie: Need to reopen db"),t._close(),t.open().then((()=>On(t,n,e,r)))):En(i)}return i._promise(n,((t,n)=>pn((()=>(Ft.trans=i,r(t,n,i)))))).then((t=>i._completion.then((()=>t))))}if(t._state.openComplete)return En(new ht.DatabaseClosed(t._state.dbOpenError));if(!t._state.isBeingOpened){if(!t._options.autoOpen)return En(new ht.DatabaseClosed);t.open().catch(pt)}return t._state.dbReadyPromise.then((()=>On(t,n,e,r)))}const Tn="3.2.4",Dn=String.fromCharCode(65535),jn=-1/0,In="Invalid key provided. Keys must be of type string, number, Date or Array<string | number | Date>.",Rn="String expected.",Kn=[],Bn=typeof navigator<"u"&&/(MSIE|Trident|Edge)/.test(navigator.userAgent),_n=Bn,qn=Bn,Nn=t=>!/(dexie\.js|dexie\.min\.js)/.test(t),Mn="__dbnames",Fn="readonly",Ln="readwrite";function Un(t,n){return t?n?function(){return t.apply(this,arguments)&&n.apply(this,arguments)}:t:n}const Vn={type:3,lower:-1/0,lowerOpen:!1,upper:[[]],upperOpen:!1};function Wn(t){return typeof t!="string"||/\./.test(t)?t=>t:n=>(n[t]===void 0&&t in n&&delete(n=F(n))[t],n)}class Hn{_trans(t,n,e){const r=this._tx||Ft.trans,i=this.name;function s(t,e,r){if(!r.schema[i])throw new ht.NotFound("Table "+i+" not part of transaction");return n(r.idbtrans,r)}const o=en();try{return r&&r.db===this.db?r===Ft.trans?r._promise(t,s,e):pn((()=>r._promise(t,s,e)),{trans:r,transless:Ft.transless||Ft}):On(this.db,t,[this.name],s)}finally{o&&rn()}}get(t,n){return t&&t.constructor===Object?this.where(t).first(n):this._trans("readonly",(n=>this.core.get({trans:n,key:t}).then((t=>this.hook.reading.fire(t))))).then(n)}where(t){if(typeof t=="string")return new this.db.WhereClause(this,t);if(v(t))return new this.db.WhereClause(this,`[${t.join("+")}]`);const n=y(t);if(n.length===1)return this.where(n[0]).equals(t[n[0]]);const e=this.schema.indexes.concat(this.schema.primKey).filter((t=>t.compound&&n.every((n=>t.keyPath.indexOf(n)>=0))&&t.keyPath.every((t=>n.indexOf(t)>=0))))[0];if(e&&this.db._maxKey!==Dn)return this.where(e.name).equals(e.keyPath.map((n=>t[n])));!e&&Y&&console.warn(`The query ${JSON.stringify(t)} on ${this.name} would benefit of a compound index [${n.join("+")}]`);const{idxByName:r}=this.schema,i=this.db._deps.indexedDB;function s(t,n){try{return i.cmp(t,n)===0}catch{return!1}}const[o,u]=n.reduce((([n,e],i)=>{const o=r[i],u=t[i];return[n||o,n||!o?Un(e,o&&o.multi?t=>{const n=I(t,i);return v(n)&&n.some((t=>s(u,t)))}:t=>s(u,I(t,i))):e]}),[null,null]);return o?this.where(o.name).equals(t[o.keyPath]).filter(u):e?this.filter(u):this.where(n).equals("")}filter(t){return this.toCollection().and(t)}count(t){return this.toCollection().count(t)}offset(t){return this.toCollection().offset(t)}limit(t){return this.toCollection().limit(t)}each(t){return this.toCollection().each(t)}toArray(t){return this.toCollection().toArray(t)}toCollection(){return new this.db.Collection(new this.db.WhereClause(this))}orderBy(t){return new this.db.Collection(new this.db.WhereClause(this,v(t)?`[${t.join("+")}]`:t))}reverse(){return this.toCollection().reverse()}mapToClass(t){this.schema.mappedClass=t;const n=n=>{if(!n)return n;const e=Object.create(t.prototype);for(var r in n)if(b(n,r))try{e[r]=n[r]}catch{}return e};return this.schema.readHook&&this.hook.reading.unsubscribe(this.schema.readHook),this.schema.readHook=n,this.hook("reading",n),t}defineClass(){return this.mapToClass((function(t){w(this,t)}))}add(t,n){const{auto:e,keyPath:r}=this.schema.primKey;let i=t;return r&&e&&(i=Wn(r)(t)),this._trans("readwrite",(t=>this.core.mutate({trans:t,type:"add",keys:n!=null?[n]:null,values:[i]}))).then((t=>t.numFailures?Wt.reject(t.failures[0]):t.lastResult)).then((n=>{if(r)try{R(t,r,n)}catch{}return n}))}update(t,n){if(typeof t!="object"||v(t))return this.where(":id").equals(t).modify(n);{const e=I(t,this.schema.primKey.keyPath);if(e===void 0)return En(new ht.InvalidArgument("Given object does not contain its primary key"));try{typeof n!="function"?y(n).forEach((e=>{R(t,e,n[e])})):n(t,{value:t,primKey:e})}catch{}return this.where(":id").equals(e).modify(n)}}put(t,n){const{auto:e,keyPath:r}=this.schema.primKey;let i=t;return r&&e&&(i=Wn(r)(t)),this._trans("readwrite",(t=>this.core.mutate({trans:t,type:"put",values:[i],keys:n!=null?[n]:null}))).then((t=>t.numFailures?Wt.reject(t.failures[0]):t.lastResult)).then((n=>{if(r)try{R(t,r,n)}catch{}return n}))}delete(t){return this._trans("readwrite",(n=>this.core.mutate({trans:n,type:"delete",keys:[t]}))).then((t=>t.numFailures?Wt.reject(t.failures[0]):void 0))}clear(){return this._trans("readwrite",(t=>this.core.mutate({trans:t,type:"deleteRange",range:Vn}))).then((t=>t.numFailures?Wt.reject(t.failures[0]):void 0))}bulkGet(t){return this._trans("readonly",(n=>this.core.getMany({keys:t,trans:n}).then((t=>t.map((t=>this.hook.reading.fire(t)))))))}bulkAdd(t,n,e){const r=Array.isArray(n)?n:void 0,i=(e=e||(r?void 0:n))?e.allKeys:void 0;return this._trans("readwrite",(n=>{const{auto:e,keyPath:s}=this.schema.primKey;if(s&&r)throw new ht.InvalidArgument("bulkAdd(): keys argument invalid on tables with inbound keys");if(r&&r.length!==t.length)throw new ht.InvalidArgument("Arguments objects and keys must have the same length");const o=t.length;let u=s&&e?t.map(Wn(s)):t;return this.core.mutate({trans:n,type:"add",keys:r,values:u,wantResults:i}).then((({numFailures:t,results:n,lastResult:e,failures:r})=>{if(t===0)return i?n:e;throw new at(`${this.name}.bulkAdd(): ${t} of ${o} operations failed`,r)}))}))}bulkPut(t,n,e){const r=Array.isArray(n)?n:void 0,i=(e=e||(r?void 0:n))?e.allKeys:void 0;return this._trans("readwrite",(n=>{const{auto:e,keyPath:s}=this.schema.primKey;if(s&&r)throw new ht.InvalidArgument("bulkPut(): keys argument invalid on tables with inbound keys");if(r&&r.length!==t.length)throw new ht.InvalidArgument("Arguments objects and keys must have the same length");const o=t.length;let u=s&&e?t.map(Wn(s)):t;return this.core.mutate({trans:n,type:"put",keys:r,values:u,wantResults:i}).then((({numFailures:t,results:n,lastResult:e,failures:r})=>{if(t===0)return i?n:e;throw new at(`${this.name}.bulkPut(): ${t} of ${o} operations failed`,r)}))}))}bulkDelete(t){const n=t.length;return this._trans("readwrite",(n=>this.core.mutate({trans:n,type:"delete",keys:t}))).then((({numFailures:t,lastResult:e,failures:r})=>{if(t===0)return e;throw new at(`${this.name}.bulkDelete(): ${t} of ${n} operations failed`,r)}))}}function Gn(t){var n={},e=function(e,r){if(r){for(var i=arguments.length,s=new Array(i-1);--i;)s[i-1]=arguments[i];return n[e].subscribe.apply(null,s),t}if(typeof e=="string")return n[e]};e.addEventType=s;for(var r=1,i=arguments.length;r<i;++r)s(arguments[r]);return e;function s(t,r,i){if(typeof t!="object"){var o;r||(r=kt),i||(i=pt);var u={subscribers:[],fire:i,subscribe:function(t){u.subscribers.indexOf(t)===-1&&(u.subscribers.push(t),u.fire=r(u.fire,t))},unsubscribe:function(t){u.subscribers=u.subscribers.filter((function(n){return n!==t})),u.fire=u.subscribers.reduce(r,i)}};return n[t]=e[t]=u,u}y(o=t).forEach((function(t){var n=o[t];if(v(n))s(t,o[t][0],o[t][1]);else{if(n!=="asap")throw new ht.InvalidArgument("Invalid event config");var e=s(t,yt,(function(){for(var t=arguments.length,n=new Array(t);t--;)n[t]=arguments[t];e.subscribers.forEach((function(t){D((function(){t.apply(null,n)}))}))}))}}))}}function zn(t,n){return A(n).from({prototype:t}),n}function Jn(t,n){return!(t.filter||t.algorithm||t.or)&&(n?t.justLimit:!t.replayFilter)}function Yn(t,n){t.filter=Un(t.filter,n)}function Qn(t,n,e){var r=t.replayFilter;t.replayFilter=r?()=>Un(r(),n()):n,t.justLimit=e&&!r}function Xn(t,n){if(t.isPrimKey)return n.primaryKey;const e=n.getIndexByKeyPath(t.index);if(!e)throw new ht.Schema("KeyPath "+t.index+" on object store "+n.name+" is not indexed");return e}function Zn(t,n,e){const r=Xn(t,n.schema);return n.openCursor({trans:e,values:!t.keysOnly,reverse:t.dir==="prev",unique:!!t.unique,query:{index:r,range:t.range}})}function te(t,n,e,r){const i=t.replayFilter?Un(t.filter,t.replayFilter()):t.filter;if(t.or){const s={},o=(t,e,r)=>{if(!i||i(e,r,(t=>e.stop(t)),(t=>e.fail(t)))){var o=e.primaryKey,u=""+o;u==="[object ArrayBuffer]"&&(u=""+new Uint8Array(o)),b(s,u)||(s[u]=!0,n(t,e,r))}};return Promise.all([t.or._iterate(o,e),ne(Zn(t,r,e),t.algorithm,o,!t.keysOnly&&t.valueMapper)])}return ne(Zn(t,r,e),Un(t.algorithm,i),n,!t.keysOnly&&t.valueMapper)}function ne(t,n,e,r){var i=un(r?(t,n,i)=>e(r(t),n,i):e);return t.then((t=>{if(t)return t.start((()=>{var e=()=>t.continue();n&&!n(t,(t=>e=t),(n=>{t.stop(n),e=pt}),(n=>{t.fail(n),e=pt}))||i(t.value,t,(t=>e=t)),e()}))}))}function ee(t,n){try{const e=re(t),r=re(n);if(e!==r)return e==="Array"?1:r==="Array"?-1:e==="binary"?1:r==="binary"?-1:e==="string"?1:r==="string"?-1:e==="Date"?1:r!=="Date"?NaN:-1;switch(e){case"number":case"Date":case"string":return t>n?1:t<n?-1:0;case"binary":return function(t,n){const e=t.length,r=n.length,i=e<r?e:r;for(let e=0;e<i;++e)if(t[e]!==n[e])return t[e]<n[e]?-1:1;return e===r?0:e<r?-1:1}(ie(t),ie(n));case"Array":return function(t,n){const e=t.length,r=n.length,i=e<r?e:r;for(let e=0;e<i;++e){const r=ee(t[e],n[e]);if(r!==0)return r}return e===r?0:e<r?-1:1}(t,n)}}catch{}return NaN}function re(t){const n=typeof t;if(n!=="object")return n;if(ArrayBuffer.isView(t))return"binary";const e=V(t);return e==="ArrayBuffer"?"binary":e}function ie(t){return t instanceof Uint8Array?t:ArrayBuffer.isView(t)?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):new Uint8Array(t)}class se{_read(t,n){var e=this._ctx;return e.error?e.table._trans(null,En.bind(null,e.error)):e.table._trans("readonly",t).then(n)}_write(t){var n=this._ctx;return n.error?n.table._trans(null,En.bind(null,n.error)):n.table._trans("readwrite",t,"locked")}_addAlgorithm(t){var n=this._ctx;n.algorithm=Un(n.algorithm,t)}_iterate(t,n){return te(this._ctx,t,n,this._ctx.table.core)}clone(t){var n=Object.create(this.constructor.prototype),e=Object.create(this._ctx);return t&&w(e,t),n._ctx=e,n}raw(){return this._ctx.valueMapper=null,this}each(t){var n=this._ctx;return this._read((e=>te(n,t,e,n.table.core)))}count(t){return this._read((t=>{const n=this._ctx,e=n.table.core;if(Jn(n,!0))return e.count({trans:t,query:{index:Xn(n,e.schema),range:n.range}}).then((t=>Math.min(t,n.limit)));var r=0;return te(n,(()=>(++r,!1)),t,e).then((()=>r))})).then(t)}sortBy(t,n){const e=t.split(".").reverse(),r=e[0],i=e.length-1;function s(t,n){return n?s(t[e[n]],n-1):t[r]}var o=this._ctx.dir==="next"?1:-1;function u(t,n){var e=s(t,i),r=s(n,i);return e<r?-o:e>r?o:0}return this.toArray((function(t){return t.sort(u)})).then(n)}toArray(t){return this._read((t=>{var n=this._ctx;if(n.dir==="next"&&Jn(n,!0)&&n.limit>0){const{valueMapper:e}=n,r=Xn(n,n.table.core.schema);return n.table.core.query({trans:t,limit:n.limit,values:!0,query:{index:r,range:n.range}}).then((({result:t})=>e?t.map(e):t))}{const e=[];return te(n,(t=>e.push(t)),t,n.table.core).then((()=>e))}}),t)}offset(t){var n=this._ctx;return t<=0||(n.offset+=t,Jn(n)?Qn(n,(()=>{var n=t;return(t,e)=>n===0||(n===1?(--n,!1):(e((()=>{t.advance(n),n=0})),!1))})):Qn(n,(()=>{var n=t;return()=>--n<0}))),this}limit(t){return this._ctx.limit=Math.min(this._ctx.limit,t),Qn(this._ctx,(()=>{var n=t;return function(t,e,r){return--n<=0&&e(r),n>=0}}),!0),this}until(t,n){return Yn(this._ctx,(function(e,r,i){return!t(e.value)||(r(i),n)})),this}first(t){return this.limit(1).toArray((function(t){return t[0]})).then(t)}last(t){return this.reverse().first(t)}filter(t){var n,e;return Yn(this._ctx,(function(n){return t(n.value)})),n=this._ctx,e=t,n.isMatch=Un(n.isMatch,e),this}and(t){return this.filter(t)}or(t){return new this.db.WhereClause(this._ctx.table,t,this)}reverse(){return this._ctx.dir=this._ctx.dir==="prev"?"next":"prev",this._ondirectionchange&&this._ondirectionchange(this._ctx.dir),this}desc(){return this.reverse()}eachKey(t){var n=this._ctx;return n.keysOnly=!n.isMatch,this.each((function(n,e){t(e.key,e)}))}eachUniqueKey(t){return this._ctx.unique="unique",this.eachKey(t)}eachPrimaryKey(t){var n=this._ctx;return n.keysOnly=!n.isMatch,this.each((function(n,e){t(e.primaryKey,e)}))}keys(t){var n=this._ctx;n.keysOnly=!n.isMatch;var e=[];return this.each((function(t,n){e.push(n.key)})).then((function(){return e})).then(t)}primaryKeys(t){var n=this._ctx;if(n.dir==="next"&&Jn(n,!0)&&n.limit>0)return this._read((t=>{var e=Xn(n,n.table.core.schema);return n.table.core.query({trans:t,values:!1,limit:n.limit,query:{index:e,range:n.range}})})).then((({result:t})=>t)).then(t);n.keysOnly=!n.isMatch;var e=[];return this.each((function(t,n){e.push(n.primaryKey)})).then((function(){return e})).then(t)}uniqueKeys(t){return this._ctx.unique="unique",this.keys(t)}firstKey(t){return this.limit(1).keys((function(t){return t[0]})).then(t)}lastKey(t){return this.reverse().firstKey(t)}distinct(){var t=this._ctx,n=t.index&&t.table.schema.idxByName[t.index];if(!n||!n.multi)return this;var e={};return Yn(this._ctx,(function(t){var n=t.primaryKey.toString(),r=b(e,n);return e[n]=!0,!r})),this}modify(t){var n=this._ctx;return this._write((e=>{var r;if(typeof t=="function")r=t;else{var i=y(t),s=i.length;r=function(n){for(var e=!1,r=0;r<s;++r){var o=i[r],u=t[o];I(n,o)!==u&&(R(n,o,u),e=!0)}return e}}const o=n.table.core,{outbound:u,extractKey:a}=o.schema.primaryKey,c=this.db._options.modifyChunkSize||200,l=[];let h=0;const f=[],d=(t,n)=>{const{failures:e,numFailures:r}=n;h+=t-r;for(let t of y(e))l.push(e[t])};return this.clone().primaryKeys().then((i=>{const s=l=>{const h=Math.min(c,i.length-l);return o.getMany({trans:e,keys:i.slice(l,l+h),cache:"immutable"}).then((f=>{const p=[],y=[],v=u?[]:null,w=[];for(let t=0;t<h;++t){const n=f[t],e={value:F(n),primKey:i[l+t]};r.call(e,e.value,e)!==!1&&(e.value==null?w.push(i[l+t]):u||ee(a(n),a(e.value))===0?(y.push(e.value),u&&v.push(i[l+t])):(w.push(i[l+t]),p.push(e.value)))}const g=Jn(n)&&n.limit===1/0&&(typeof t!="function"||t===oe)&&{index:n.index,range:n.range};return Promise.resolve(p.length>0&&o.mutate({trans:e,type:"add",values:p}).then((t=>{for(let n in t.failures)w.splice(parseInt(n),1);d(p.length,t)}))).then((()=>(y.length>0||g&&typeof t=="object")&&o.mutate({trans:e,type:"put",keys:v,values:y,criteria:g,changeSpec:typeof t!="function"&&t}).then((t=>d(y.length,t))))).then((()=>(w.length>0||g&&t===oe)&&o.mutate({trans:e,type:"delete",keys:w,criteria:g}).then((t=>d(w.length,t))))).then((()=>i.length>l+h&&s(l+c)))}))};return s(0).then((()=>{if(l.length>0)throw new ut("Error modifying one or more objects",l,h,f);return i.length}))}))}))}delete(){var t=this._ctx,n=t.range;return Jn(t)&&(t.isPrimKey&&!qn||n.type===3)?this._write((e=>{const{primaryKey:r}=t.table.core.schema,i=n;return t.table.core.count({trans:e,query:{index:r,range:i}}).then((n=>t.table.core.mutate({trans:e,type:"deleteRange",range:i}).then((({failures:t,lastResult:e,results:r,numFailures:i})=>{if(i)throw new ut("Could not delete some values",Object.keys(t).map((n=>t[n])),n-i);return n-i}))))})):this.modify(oe)}}const oe=(t,n)=>n.value=null;function ue(t,n){return t<n?-1:t===n?0:1}function ae(t,n){return t>n?-1:t===n?0:1}function ce(t,n,e){var r=t instanceof ye?new t.Collection(t):t;return r._ctx.error=e?new e(n):new TypeError(n),r}function le(t){return new t.Collection(t,(()=>pe(""))).limit(0)}function he(t,n,e,r,i,s){for(var o=Math.min(t.length,r.length),u=-1,a=0;a<o;++a){var c=n[a];if(c!==r[a])return i(t[a],e[a])<0?t.substr(0,a)+e[a]+e.substr(a+1):i(t[a],r[a])<0?t.substr(0,a)+r[a]+e.substr(a+1):u>=0?t.substr(0,u)+n[u]+e.substr(u+1):null;i(t[a],c)<0&&(u=a)}return o<r.length&&s==="next"?t+e.substr(t.length):o<t.length&&s==="prev"?t.substr(0,e.length):u<0?null:t.substr(0,u)+r[u]+e.substr(u+1)}function fe(t,n,e,r){var i,s,o,u,a,c,l,h=e.length;if(!e.every((t=>typeof t=="string")))return ce(t,Rn);function f(t){i=function(t){return t==="next"?t=>t.toUpperCase():t=>t.toLowerCase()}(t),s=function(t){return t==="next"?t=>t.toLowerCase():t=>t.toUpperCase()}(t),o=t==="next"?ue:ae;var n=e.map((function(t){return{lower:s(t),upper:i(t)}})).sort((function(t,n){return o(t.lower,n.lower)}));u=n.map((function(t){return t.upper})),a=n.map((function(t){return t.lower})),c=t,l=t==="next"?"":r}f("next");var d=new t.Collection(t,(()=>de(u[0],a[h-1]+r)));d._ondirectionchange=function(t){f(t)};var p=0;return d._addAlgorithm((function(t,e,r){var i=t.key;if(typeof i!="string")return!1;var f=s(i);if(n(f,a,p))return!0;for(var d=null,y=p;y<h;++y){var v=he(i,f,u[y],a[y],o,c);v===null&&d===null?p=y+1:(d===null||o(d,v)>0)&&(d=v)}return e(d!==null?function(){t.continue(d+l)}:r),!1})),d}function de(t,n,e,r){return{type:2,lower:t,upper:n,lowerOpen:e,upperOpen:r}}function pe(t){return{type:1,lower:t,upper:t}}class ye{get Collection(){return this._ctx.table.db.Collection}between(t,n,e,r){e=e!==!1,r=r===!0;try{return this._cmp(t,n)>0||this._cmp(t,n)===0&&(e||r)&&(!e||!r)?le(this):new this.Collection(this,(()=>de(t,n,!e,!r)))}catch{return ce(this,In)}}equals(t){return t==null?ce(this,In):new this.Collection(this,(()=>pe(t)))}above(t){return t==null?ce(this,In):new this.Collection(this,(()=>de(t,void 0,!0)))}aboveOrEqual(t){return t==null?ce(this,In):new this.Collection(this,(()=>de(t,void 0,!1)))}below(t){return t==null?ce(this,In):new this.Collection(this,(()=>de(void 0,t,!1,!0)))}belowOrEqual(t){return t==null?ce(this,In):new this.Collection(this,(()=>de(void 0,t)))}startsWith(t){return typeof t!="string"?ce(this,Rn):this.between(t,t+Dn,!0,!0)}startsWithIgnoreCase(t){return t===""?this.startsWith(t):fe(this,((t,n)=>t.indexOf(n[0])===0),[t],Dn)}equalsIgnoreCase(t){return fe(this,((t,n)=>t===n[0]),[t],"")}anyOfIgnoreCase(){var t=z.apply(G,arguments);return t.length===0?le(this):fe(this,((t,n)=>n.indexOf(t)!==-1),t,"")}startsWithAnyOfIgnoreCase(){var t=z.apply(G,arguments);return t.length===0?le(this):fe(this,((t,n)=>n.some((n=>t.indexOf(n)===0))),t,Dn)}anyOf(){const t=z.apply(G,arguments);let n=this._cmp;try{t.sort(n)}catch{return ce(this,In)}if(t.length===0)return le(this);const e=new this.Collection(this,(()=>de(t[0],t[t.length-1])));e._ondirectionchange=e=>{n=e==="next"?this._ascending:this._descending,t.sort(n)};let r=0;return e._addAlgorithm(((e,i,s)=>{const o=e.key;for(;n(o,t[r])>0;)if(++r,r===t.length)return i(s),!1;return n(o,t[r])===0||(i((()=>{e.continue(t[r])})),!1)})),e}notEqual(t){return this.inAnyRange([[jn,t],[t,this.db._maxKey]],{includeLowers:!1,includeUppers:!1})}noneOf(){const t=z.apply(G,arguments);if(t.length===0)return new this.Collection(this);try{t.sort(this._ascending)}catch{return ce(this,In)}const n=t.reduce(((t,n)=>t?t.concat([[t[t.length-1][1],n]]):[[jn,n]]),null);return n.push([t[t.length-1],this.db._maxKey]),this.inAnyRange(n,{includeLowers:!1,includeUppers:!1})}inAnyRange(t,n){const e=this._cmp,r=this._ascending,i=this._descending,s=this._min,o=this._max;if(t.length===0)return le(this);if(!t.every((t=>t[0]!==void 0&&t[1]!==void 0&&r(t[0],t[1])<=0)))return ce(this,"First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower",ht.InvalidArgument);const u=!n||n.includeLowers!==!1,a=n&&n.includeUppers===!0;let c,l=r;function h(t,n){return l(t[0],n[0])}try{c=t.reduce((function(t,n){let r=0,i=t.length;for(;r<i;++r){const i=t[r];if(e(n[0],i[1])<0&&e(n[1],i[0])>0){i[0]=s(i[0],n[0]),i[1]=o(i[1],n[1]);break}}return r===i&&t.push(n),t}),[]),c.sort(h)}catch{return ce(this,In)}let f=0;const d=a?t=>r(t,c[f][1])>0:t=>r(t,c[f][1])>=0,p=u?t=>i(t,c[f][0])>0:t=>i(t,c[f][0])>=0;let y=d;const v=new this.Collection(this,(()=>de(c[0][0],c[c.length-1][1],!u,!a)));return v._ondirectionchange=t=>{t==="next"?(y=d,l=r):(y=p,l=i),c.sort(h)},v._addAlgorithm(((t,n,e)=>{for(var i=t.key;y(i);)if(++f,f===c.length)return n(e),!1;return!!function(t){return!d(t)&&!p(t)}(i)||(this._cmp(i,c[f][1])===0||this._cmp(i,c[f][0])===0||n((()=>{l===r?t.continue(c[f][0]):t.continue(c[f][1])})),!1)})),v}startsWithAnyOf(){const t=z.apply(G,arguments);return t.every((t=>typeof t=="string"))?t.length===0?le(this):this.inAnyRange(t.map((t=>[t,t+Dn]))):ce(this,"startsWithAnyOf() only works with strings")}}function ve(t){return un((function(n){return we(n),t(n.target.error),!1}))}function we(t){t.stopPropagation&&t.stopPropagation(),t.preventDefault&&t.preventDefault()}const ge="storagemutated",me="x-storagemutated-1",be=Gn(null,ge);class ke{_lock(){return T(!Ft.global),++this._reculock,this._reculock!==1||Ft.global||(Ft.lockOwnerFor=this),this}_unlock(){if(T(!Ft.global),--this._reculock==0)for(Ft.global||(Ft.lockOwnerFor=null);this._blockedFuncs.length>0&&!this._locked();){var t=this._blockedFuncs.shift();try{$n(t[1],t[0])}catch{}}return this}_locked(){return this._reculock&&Ft.lockOwnerFor!==this}create(t){if(!this.mode)return this;const n=this.db.idbdb,e=this.db._state.dbOpenError;if(T(!this.idbtrans),!t&&!n)switch(e&&e.name){case"DatabaseClosedError":throw new ht.DatabaseClosed(e);case"MissingAPIError":throw new ht.MissingAPI(e.message,e);default:throw new ht.OpenFailed(e)}if(!this.active)throw new ht.TransactionInactive;return T(this._completion._state===null),(t=this.idbtrans=t||(this.db.core?this.db.core.transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability}):n.transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability}))).onerror=un((n=>{we(n),this._reject(t.error)})),t.onabort=un((n=>{we(n),this.active&&this._reject(new ht.Abort(t.error)),this.active=!1,this.on("abort").fire(n)})),t.oncomplete=un((()=>{this.active=!1,this._resolve(),"mutatedParts"in t&&be.storagemutated.fire(t.mutatedParts)})),this}_promise(t,n,e){if(t==="readwrite"&&this.mode!=="readwrite")return En(new ht.ReadOnly("Transaction is readonly"));if(!this.active)return En(new ht.TransactionInactive);if(this._locked())return new Wt(((r,i)=>{this._blockedFuncs.push([()=>{this._promise(t,n,e).then(r,i)},Ft])}));if(e)return pn((()=>{var t=new Wt(((t,e)=>{this._lock();const r=n(t,e,this);r&&r.then&&r.then(t,e)}));return t.finally((()=>this._unlock())),t._lib=!0,t}));var r=new Wt(((t,e)=>{var r=n(t,e,this);r&&r.then&&r.then(t,e)}));return r._lib=!0,r}_root(){return this.parent?this.parent._root():this}waitFor(t){var n=this._root();const e=Wt.resolve(t);if(n._waitingFor)n._waitingFor=n._waitingFor.then((()=>e));else{n._waitingFor=e,n._waitingQueue=[];var r=n.idbtrans.objectStore(n.storeNames[0]);(function t(){for(++n._spinCount;n._waitingQueue.length;)n._waitingQueue.shift()();n._waitingFor&&(r.get(-1/0).onsuccess=t)})()}var i=n._waitingFor;return new Wt(((t,r)=>{e.then((e=>n._waitingQueue.push(un(t.bind(null,e)))),(t=>n._waitingQueue.push(un(r.bind(null,t))))).finally((()=>{n._waitingFor===i&&(n._waitingFor=null)}))}))}abort(){this.active&&(this.active=!1,this.idbtrans&&this.idbtrans.abort(),this._reject(new ht.Abort))}table(t){const n=this._memoizedTables||(this._memoizedTables={});if(b(n,t))return n[t];const e=this.schema[t];if(!e)throw new ht.NotFound("Table "+t+" not part of transaction");const r=new this.db.Table(t,e,this);return r.core=this.db.core.table(t),n[t]=r,r}}function $e(t,n,e,r,i,s,o){return{name:t,keyPath:n,unique:e,multi:r,auto:i,compound:s,src:(e&&!o?"&":"")+(r?"*":"")+(i?"++":"")+Se(n)}}function Se(t){return typeof t=="string"?t:t?"["+[].join.call(t,"+")+"]":""}function Ae(t,n,e){return{name:t,primKey:n,indexes:e,mappedClass:null,idxByName:j(e,(t=>[t.name,t]))}}let Pe=t=>{try{return t.only([[]]),Pe=()=>[[]],[[]]}catch{return Pe=()=>Dn,Dn}};function xe(t){return t==null?()=>{}:typeof t=="string"?function(t){return t.split(".").length===1?n=>n[t]:n=>I(n,t)}(t):n=>I(n,t)}function Ce(t){return[].slice.call(t)}let Ee=0;function Oe(t){return t==null?":id":typeof t=="string"?t:`[${t.join("+")}]`}function Te(t,n,e){function r(t){if(t.type===3)return null;if(t.type===4)throw new Error("Cannot convert never type to IDBKeyRange");const{lower:e,upper:r,lowerOpen:i,upperOpen:s}=t;return e===void 0?r===void 0?null:n.upperBound(r,!!s):r===void 0?n.lowerBound(e,!!i):n.bound(e,r,!!i,!!s)}const{schema:i,hasGetAll:s}=function(t,n){const e=Ce(t.objectStoreNames);return{schema:{name:t.name,tables:e.map((t=>n.objectStore(t))).map((t=>{const{keyPath:n,autoIncrement:e}=t,r=v(n),i=n==null,s={},o={name:t.name,primaryKey:{name:null,isPrimaryKey:!0,outbound:i,compound:r,keyPath:n,autoIncrement:e,unique:!0,extractKey:xe(n)},indexes:Ce(t.indexNames).map((n=>t.index(n))).map((t=>{const{name:n,unique:e,multiEntry:r,keyPath:i}=t,o={name:n,compound:v(i),keyPath:i,unique:e,multiEntry:r,extractKey:xe(i)};return s[Oe(i)]=o,o})),getIndexByKeyPath:t=>s[Oe(t)]};return s[":id"]=o.primaryKey,n!=null&&(s[Oe(n)]=o.primaryKey),o}))},hasGetAll:e.length>0&&"getAll"in n.objectStore(e[0])&&!(typeof navigator<"u"&&/Safari/.test(navigator.userAgent)&&!/(Chrome\/|Edge\/)/.test(navigator.userAgent)&&[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]<604)}}(t,e),o=i.tables.map((t=>function(t){const n=t.name;return{name:n,schema:t,mutate:function({trans:t,type:e,keys:i,values:s,range:o}){return new Promise(((u,a)=>{u=un(u);const c=t.objectStore(n),l=c.keyPath==null,h=e==="put"||e==="add";if(!h&&e!=="delete"&&e!=="deleteRange")throw new Error("Invalid operation type: "+e);const{length:f}=i||s||{length:1};if(i&&s&&i.length!==s.length)throw new Error("Given keys array must have same length as given values array.");if(f===0)return u({numFailures:0,failures:{},results:[],lastResult:void 0});let d;const p=[],y=[];let v=0;const w=t=>{++v,we(t)};if(e==="deleteRange"){if(o.type===4)return u({numFailures:v,failures:y,results:[],lastResult:void 0});o.type===3?p.push(d=c.clear()):p.push(d=c.delete(r(o)))}else{const[t,n]=h?l?[s,i]:[s,null]:[i,null];if(h)for(let r=0;r<f;++r)p.push(d=n&&n[r]!==void 0?c[e](t[r],n[r]):c[e](t[r])),d.onerror=w;else for(let n=0;n<f;++n)p.push(d=c[e](t[n])),d.onerror=w}const g=t=>{const n=t.target.result;p.forEach(((t,n)=>t.error!=null&&(y[n]=t.error))),u({numFailures:v,failures:y,results:e==="delete"?i:p.map((t=>t.result)),lastResult:n})};d.onerror=t=>{w(t),g(t)},d.onsuccess=g}))},getMany:({trans:t,keys:e})=>new Promise(((r,i)=>{r=un(r);const s=t.objectStore(n),o=e.length,u=new Array(o);let a,c=0,l=0;const h=t=>{const n=t.target;u[n._pos]=n.result,++l===c&&r(u)},f=ve(i);for(let t=0;t<o;++t)e[t]!=null&&(a=s.get(e[t]),a._pos=t,a.onsuccess=h,a.onerror=f,++c);c===0&&r(u)})),get:({trans:t,key:e})=>new Promise(((r,i)=>{r=un(r);const s=t.objectStore(n).get(e);s.onsuccess=t=>r(t.target.result),s.onerror=ve(i)})),query:function(t){return e=>new Promise(((i,s)=>{i=un(i);const{trans:o,values:u,limit:a,query:c}=e,l=a===1/0?void 0:a,{index:h,range:f}=c,d=o.objectStore(n),p=h.isPrimaryKey?d:d.index(h.name),y=r(f);if(a===0)return i({result:[]});if(t){const t=u?p.getAll(y,l):p.getAllKeys(y,l);t.onsuccess=t=>i({result:t.target.result}),t.onerror=ve(s)}else{let t=0;const n=u||!("openKeyCursor"in p)?p.openCursor(y):p.openKeyCursor(y),e=[];n.onsuccess=r=>{const s=n.result;return s?(e.push(u?s.value:s.primaryKey),++t===a?i({result:e}):void s.continue()):i({result:e})},n.onerror=ve(s)}}))}(s),openCursor:function({trans:t,values:e,query:i,reverse:s,unique:o}){return new Promise(((u,a)=>{u=un(u);const{index:c,range:l}=i,h=t.objectStore(n),f=c.isPrimaryKey?h:h.index(c.name),d=s?o?"prevunique":"prev":o?"nextunique":"next",p=e||!("openKeyCursor"in f)?f.openCursor(r(l),d):f.openKeyCursor(r(l),d);p.onerror=ve(a),p.onsuccess=un((n=>{const e=p.result;if(!e)return void u(null);e.___id=++Ee,e.done=!1;const r=e.continue.bind(e);let i=e.continuePrimaryKey;i&&(i=i.bind(e));const s=e.advance.bind(e),o=()=>{throw new Error("Cursor not stopped")};e.trans=t,e.stop=e.continue=e.continuePrimaryKey=e.advance=()=>{throw new Error("Cursor not started")},e.fail=un(a),e.next=function(){let t=1;return this.start((()=>t--?this.continue():this.stop())).then((()=>this))},e.start=t=>{const n=new Promise(((t,n)=>{t=un(t),p.onerror=ve(n),e.fail=n,e.stop=n=>{e.stop=e.continue=e.continuePrimaryKey=e.advance=o,t(n)}})),u=()=>{if(p.result)try{t()}catch(t){e.fail(t)}else e.done=!0,e.start=()=>{throw new Error("Cursor behind last entry")},e.stop()};return p.onsuccess=un((t=>{p.onsuccess=u,u()})),e.continue=r,e.continuePrimaryKey=i,e.advance=s,u(),n},u(e)}),a)}))},count({query:t,trans:e}){const{index:i,range:s}=t;return new Promise(((t,o)=>{const u=e.objectStore(n),a=i.isPrimaryKey?u:u.index(i.name),c=r(s),l=c?a.count(c):a.count();l.onsuccess=un((n=>t(n.target.result))),l.onerror=ve(o)}))}}}(t))),u={};return o.forEach((t=>u[t.name]=t)),{stack:"dbcore",transaction:t.transaction.bind(t),table(t){if(!u[t])throw new Error(`Table '${t}' not found`);return u[t]},MIN_KEY:-1/0,MAX_KEY:Pe(n),schema:i}}function De({_novip:t},n){const e=n.db,r=function(t,n,{IDBKeyRange:e,indexedDB:r},i){return{dbcore:function(t,n){return n.reduce(((t,{create:n})=>({...t,...n(t)})),t)}(Te(n,e,i),t.dbcore)}}(t._middlewares,e,t._deps,n);t.core=r.dbcore,t.tables.forEach((n=>{const e=n.name;t.core.schema.tables.some((t=>t.name===e))&&(n.core=t.core.table(e),t[e]instanceof t.Table&&(t[e].core=n.core))}))}function je({_novip:t},n,e,r){e.forEach((e=>{const i=r[e];n.forEach((n=>{const r=x(n,e);(!r||"value"in r&&r.value===void 0)&&(n===t.Transaction.prototype||n instanceof t.Transaction?S(n,e,{get(){return this.table(e)},set(t){$(this,e,{value:t,writable:!0,configurable:!0,enumerable:!0})}}):n[e]=new t.Table(e,i))}))}))}function Ie({_novip:t},n){n.forEach((n=>{for(let e in n)n[e]instanceof t.Table&&delete n[e]}))}function Re(t,n){return t._cfg.version-n._cfg.version}function Ke(t,n,e,r){const i=t._dbSchema,s=t._createTransaction("readwrite",t._storeNames,i);s.create(e),s._completion.catch(r);const o=s._reject.bind(s),u=Ft.transless||Ft;pn((()=>{Ft.trans=s,Ft.transless=u,n===0?(y(i).forEach((t=>{_e(e,t,i[t].primKey,i[t].indexes)})),De(t,e),Wt.follow((()=>t.on.populate.fire(s))).catch(o)):function({_novip:t},n,e,r){const i=[],s=t._versions;let o=t._dbSchema=Ne(t,t.idbdb,r),u=!1;const a=s.filter((t=>t._cfg.version>=n));function c(){return i.length?Wt.resolve(i.shift()(e.idbtrans)).then(c):Wt.resolve()}return a.forEach((s=>{i.push((()=>{const i=o,a=s._cfg.dbschema;Me(t,i,r),Me(t,a,r),o=t._dbSchema=a;const c=Be(i,a);c.add.forEach((t=>{_e(r,t[0],t[1].primKey,t[1].indexes)})),c.change.forEach((t=>{if(t.recreate)throw new ht.Upgrade("Not yet support for changing primary key");{const n=r.objectStore(t.name);t.add.forEach((t=>qe(n,t))),t.change.forEach((t=>{n.deleteIndex(t.name),qe(n,t)})),t.del.forEach((t=>n.deleteIndex(t)))}}));const l=s._cfg.contentUpgrade;if(l&&s._cfg.version>n){De(t,r),e._memoizedTables={},u=!0;let n=K(a);c.del.forEach((t=>{n[t]=i[t]})),Ie(t,[t.Transaction.prototype]),je(t,[t.Transaction.prototype],y(n),n),e.schema=n;const s=J(l);let o;s&&yn();const h=Wt.follow((()=>{if(o=l(e),o&&s){var t=vn.bind(null,null);o.then(t,t)}}));return o&&typeof o.then=="function"?Wt.resolve(o):h.then((()=>o))}})),i.push((n=>{(!u||!_n)&&function(t,n){[].slice.call(n.db.objectStoreNames).forEach((e=>t[e]==null&&n.db.deleteObjectStore(e)))}(s._cfg.dbschema,n),Ie(t,[t.Transaction.prototype]),je(t,[t.Transaction.prototype],t._storeNames,t._dbSchema),e.schema=t._dbSchema}))})),c().then((()=>{var t,n;n=r,y(t=o).forEach((e=>{n.db.objectStoreNames.contains(e)||_e(n,e,t[e].primKey,t[e].indexes)}))}))}(t,n,s,e).catch(o)}))}function Be(t,n){const e={del:[],add:[],change:[]};let r;for(r in t)n[r]||e.del.push(r);for(r in n){const i=t[r],s=n[r];if(i){const t={name:r,def:s,recreate:!1,del:[],add:[],change:[]};if(""+(i.primKey.keyPath||"")!=""+(s.primKey.keyPath||"")||i.primKey.auto!==s.primKey.auto&&!Bn)t.recreate=!0,e.change.push(t);else{const n=i.idxByName,r=s.idxByName;let o;for(o in n)r[o]||t.del.push(o);for(o in r){const e=n[o],i=r[o];e?e.src!==i.src&&t.change.push(i):t.add.push(i)}(t.del.length>0||t.add.length>0||t.change.length>0)&&e.change.push(t)}}else e.add.push([r,s])}return e}function _e(t,n,e,r){const i=t.db.createObjectStore(n,e.keyPath?{keyPath:e.keyPath,autoIncrement:e.auto}:{autoIncrement:e.auto});return r.forEach((t=>qe(i,t))),i}function qe(t,n){t.createIndex(n.name,n.keyPath,{unique:n.unique,multiEntry:n.multi})}function Ne(t,n,e){const r={};return E(n.objectStoreNames,0).forEach((t=>{const n=e.objectStore(t);let i=n.keyPath;const s=$e(Se(i),i||"",!1,!1,!!n.autoIncrement,i&&typeof i!="string",!0),o=[];for(let t=0;t<n.indexNames.length;++t){const e=n.index(n.indexNames[t]);i=e.keyPath;var u=$e(e.name,i,!!e.unique,!!e.multiEntry,!1,i&&typeof i!="string",!1);o.push(u)}r[t]=Ae(t,s,o)})),r}function Me({_novip:t},n,e){const r=e.db.objectStoreNames;for(let i=0;i<r.length;++i){const s=r[i],o=e.objectStore(s);t._hasGetAll="getAll"in o;for(let t=0;t<o.indexNames.length;++t){const e=o.indexNames[t],r=o.index(e).keyPath,i=typeof r=="string"?r:"["+E(r).join("+")+"]";if(n[s]){const t=n[s].idxByName[i];t&&(t.name=e,delete n[s].idxByName[i],n[s].idxByName[e]=t)}}}typeof navigator<"u"&&/Safari/.test(navigator.userAgent)&&!/(Chrome\/|Edge\/)/.test(navigator.userAgent)&&p.WorkerGlobalScope&&p instanceof p.WorkerGlobalScope&&[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]<604&&(t._hasGetAll=!1)}class Fe{_parseStoresSpec(t,n){y(t).forEach((e=>{if(t[e]!==null){var r=t[e].split(",").map(((t,n)=>{const e=(t=t.trim()).replace(/([&*]|\+\+)/g,""),r=/^\[/.test(e)?e.match(/^\[(.*)\]$/)[1].split("+"):e;return $e(e,r||null,/\&/.test(t),/\*/.test(t),/\+\+/.test(t),v(r),n===0)})),i=r.shift();if(i.multi)throw new ht.Schema("Primary key cannot be multi-valued");r.forEach((t=>{if(t.auto)throw new ht.Schema("Only primary key can be marked as autoIncrement (++)");if(!t.keyPath)throw new ht.Schema("Index must have a name and cannot be an empty string")})),n[e]=Ae(e,i,r)}}))}stores(t){const n=this.db;this._cfg.storesSource=this._cfg.storesSource?w(this._cfg.storesSource,t):t;const e=n._versions,r={};let i={};return e.forEach((t=>{w(r,t._cfg.storesSource),i=t._cfg.dbschema={},t._parseStoresSpec(r,i)})),n._dbSchema=i,Ie(n,[n._allTables,n,n.Transaction.prototype]),je(n,[n._allTables,n,n.Transaction.prototype,this._cfg.tables],y(i),i),n._storeNames=y(i),this}upgrade(t){return this._cfg.contentUpgrade=$t(this._cfg.contentUpgrade||pt,t),this}}function Le(t,n){let e=t._dbNamesDB;return e||(e=t._dbNamesDB=new hr(Mn,{addons:[],indexedDB:t,IDBKeyRange:n}),e.version(1).stores({dbnames:"name"})),e.table("dbnames")}function Ue(t){return t&&typeof t.databases=="function"}function Ve(t){return pn((function(){return Ft.letThrough=!0,t()}))}function We(){var t;return!navigator.userAgentData&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\//.test(navigator.userAgent)&&indexedDB.databases?new Promise((function(n){var e=function(){return indexedDB.databases().finally(n)};t=setInterval(e,100),e()})).finally((function(){return clearInterval(t)})):Promise.resolve()}function He(t){const n=t._state,{indexedDB:e}=t._deps;if(n.isBeingOpened||t.idbdb)return n.dbReadyPromise.then((()=>n.dbOpenError?En(n.dbOpenError):t));Y&&(n.openCanceller._stackHolder=tt()),n.isBeingOpened=!0,n.dbOpenError=null,n.openComplete=!1;const r=n.openCanceller;function i(){if(n.openCanceller!==r)throw new ht.DatabaseClosed("db.open() was cancelled")}let s=n.dbReadyResolve,o=null,u=!1;return Wt.race([r,(typeof navigator>"u"?Wt.resolve():We()).then((()=>new Wt(((r,s)=>{if(i(),!e)throw new ht.MissingAPI;const a=t.name,c=n.autoSchema?e.open(a):e.open(a,Math.round(10*t.verno));if(!c)throw new ht.MissingAPI;c.onerror=ve(s),c.onblocked=un(t._fireOnBlocked),c.onupgradeneeded=un((r=>{if(o=c.transaction,n.autoSchema&&!t._options.allowEmptyDB){c.onerror=we,o.abort(),c.result.close();const t=e.deleteDatabase(a);t.onsuccess=t.onerror=un((()=>{s(new ht.NoSuchDatabase(`Database ${a} doesnt exist`))}))}else{o.onerror=ve(s);var i=r.oldVersion>Math.pow(2,62)?0:r.oldVersion;u=i<1,t._novip.idbdb=c.result,Ke(t,i/10,o,s)}}),s),c.onsuccess=un((()=>{o=null;const e=t._novip.idbdb=c.result,i=E(e.objectStoreNames);if(i.length>0)try{const r=e.transaction((s=i).length===1?s[0]:s,"readonly");n.autoSchema?function({_novip:t},n,e){t.verno=n.version/10;const r=t._dbSchema=Ne(0,n,e);t._storeNames=E(n.objectStoreNames,0),je(t,[t._allTables],y(r),r)}(t,e,r):(Me(t,t._dbSchema,r),function(t,n){const e=Be(Ne(0,t.idbdb,n),t._dbSchema);return!(e.add.length||e.change.some((t=>t.add.length||t.change.length)))}(t,r)||console.warn("Dexie SchemaDiff: Schema was extended without increasing the number passed to db.version(). Some queries may fail.")),De(t,r)}catch{}var s;Kn.push(t),e.onversionchange=un((e=>{n.vcFired=!0,t.on("versionchange").fire(e)})),e.onclose=un((n=>{t.on("close").fire(n)})),u&&function({indexedDB:t,IDBKeyRange:n},e){!Ue(t)&&e!==Mn&&Le(t,n).put({name:e}).catch(pt)}(t._deps,a),r()}),s)}))))]).then((()=>(i(),n.onReadyBeingFired=[],Wt.resolve(Ve((()=>t.on.ready.fire(t.vip)))).then((function e(){if(n.onReadyBeingFired.length>0){let r=n.onReadyBeingFired.reduce($t,pt);return n.onReadyBeingFired=[],Wt.resolve(Ve((()=>r(t.vip)))).then(e)}}))))).finally((()=>{n.onReadyBeingFired=null,n.isBeingOpened=!1})).then((()=>t)).catch((e=>{n.dbOpenError=e;try{o&&o.abort()}catch{}return r===n.openCanceller&&t._close(),En(e)})).finally((()=>{n.openComplete=!0,s()}))}function Ge(t){var n=n=>t.next(n),e=i(n),r=i((n=>t.throw(n)));function i(t){return n=>{var i=t(n),s=i.value;return i.done?s:s&&typeof s.then=="function"?s.then(e,r):v(s)?Promise.all(s).then(e,r):e(s)}}return i(n)()}function ze(t,n,e){var r=arguments.length;if(r<2)throw new ht.InvalidArgument("Too few arguments");for(var i=new Array(r-1);--r;)i[r-1]=arguments[r];return e=i.pop(),[t,_(i),e]}function Je(t,n,e,r,i){return Wt.resolve().then((()=>{const s=Ft.transless||Ft,o=t._createTransaction(n,e,t._dbSchema,r),u={trans:o,transless:s};if(r)o.idbtrans=r.idbtrans;else try{o.create(),t._state.PR1398_maxLoop=3}catch(r){return r.name===ct.InvalidState&&t.isOpen()&&--t._state.PR1398_maxLoop>0?(console.warn("Dexie: Need to reopen db"),t._close(),t.open().then((()=>Je(t,n,e,null,i)))):En(r)}const a=J(i);let c;a&&yn();const l=Wt.follow((()=>{if(c=i.call(o,o),c)if(a){var t=vn.bind(null,null);c.then(t,t)}else typeof c.next=="function"&&typeof c.throw=="function"&&(c=Ge(c))}),u);return(c&&typeof c.then=="function"?Wt.resolve(c).then((t=>o.active?t:En(new ht.PrematureCommit("Transaction committed too early. See http://bit.ly/2kdckMn")))):l.then((()=>c))).then((t=>(r&&o._resolve(),o._completion.then((()=>t))))).catch((t=>(o._reject(t),En(t))))}))}function Ye(t,n,e){const r=v(t)?t.slice():[t];for(let t=0;t<e;++t)r.push(n);return r}const Qe={stack:"dbcore",name:"VirtualIndexMiddleware",level:1,create:function(t){return{...t,table(n){const e=t.table(n),{schema:r}=e,i={},s=[];function o(t,n,e){const r=Oe(t),u=i[r]=i[r]||[],a=t==null?0:typeof t=="string"?1:t.length,c=n>0,l={...e,isVirtual:c,keyTail:n,keyLength:a,extractKey:xe(t),unique:!c&&e.unique};return u.push(l),l.isPrimaryKey||s.push(l),a>1&&o(a===2?t[0]:t.slice(0,a-1),n+1,e),u.sort(((t,n)=>t.keyTail-n.keyTail)),l}const u=o(r.primaryKey.keyPath,0,r.primaryKey);i[":id"]=[u];for(const t of r.indexes)o(t.keyPath,0,t);function a(n){const e=n.query.index;return e.isVirtual?{...n,query:{index:e,range:(r=n.query.range,i=e.keyTail,{type:r.type===1?2:r.type,lower:Ye(r.lower,r.lowerOpen?t.MAX_KEY:t.MIN_KEY,i),lowerOpen:!0,upper:Ye(r.upper,r.upperOpen?t.MIN_KEY:t.MAX_KEY,i),upperOpen:!0})}}:n;var r,i}return{...e,schema:{...r,primaryKey:u,indexes:s,getIndexByKeyPath:function(t){const n=i[Oe(t)];return n&&n[0]}},count:t=>e.count(a(t)),query:t=>e.query(a(t)),openCursor(n){const{keyTail:r,isVirtual:i,keyLength:s}=n.query.index;return i?e.openCursor(a(n)).then((e=>e&&function(e){return Object.create(e,{continue:{value:function(i){i!=null?e.continue(Ye(i,n.reverse?t.MAX_KEY:t.MIN_KEY,r)):n.unique?e.continue(e.key.slice(0,s).concat(n.reverse?t.MIN_KEY:t.MAX_KEY,r)):e.continue()}},continuePrimaryKey:{value(n,i){e.continuePrimaryKey(Ye(n,t.MAX_KEY,r),i)}},primaryKey:{get:()=>e.primaryKey},key:{get(){const t=e.key;return s===1?t[0]:t.slice(0,s)}},value:{get:()=>e.value}})}(e))):e.openCursor(n)}}}}}};function Xe(t,n,e,r){return e=e||{},r=r||"",y(t).forEach((i=>{if(b(n,i)){var s=t[i],o=n[i];if(typeof s=="object"&&typeof o=="object"&&s&&o){const t=V(s);t!==V(o)?e[r+i]=n[i]:t==="Object"?Xe(s,o,e,r+i+"."):s!==o&&(e[r+i]=n[i])}else s!==o&&(e[r+i]=n[i])}else e[r+i]=void 0})),y(n).forEach((i=>{b(t,i)||(e[r+i]=n[i])})),e}const Ze={stack:"dbcore",name:"HooksMiddleware",level:2,create:t=>({...t,table(n){const e=t.table(n),{primaryKey:r}=e.schema;return{...e,mutate(t){const i=Ft.trans,{deleting:s,creating:o,updating:u}=i.table(n).hook;switch(t.type){case"add":if(o.fire===pt)break;return i._promise("readwrite",(()=>a(t)),!0);case"put":if(o.fire===pt&&u.fire===pt)break;return i._promise("readwrite",(()=>a(t)),!0);case"delete":if(s.fire===pt)break;return i._promise("readwrite",(()=>a(t)),!0);case"deleteRange":if(s.fire===pt)break;return i._promise("readwrite",(()=>function(t){return c(t.trans,t.range,1e4)}(t)),!0)}return e.mutate(t);function a(t){const n=Ft.trans,i=t.keys||function(t,n){return n.type==="delete"?n.keys:n.keys||n.values.map(t.extractKey)}(r,t);if(!i)throw new Error("Keys missing");return(t=t.type==="add"||t.type==="put"?{...t,keys:i}:{...t}).type!=="delete"&&(t.values=[...t.values]),t.keys&&(t.keys=[...t.keys]),function(t,n,e){return n.type==="add"?Promise.resolve([]):t.getMany({trans:n.trans,keys:e,cache:"immutable"})}(e,t,i).then((a=>{const c=i.map(((e,i)=>{const c=a[i],l={onerror:null,onsuccess:null};if(t.type==="delete")s.fire.call(l,e,c,n);else if(t.type==="add"||c===void 0){const s=o.fire.call(l,e,t.values[i],n);e==null&&s!=null&&(e=s,t.keys[i]=e,r.outbound||R(t.values[i],r.keyPath,e))}else{const r=Xe(c,t.values[i]),s=u.fire.call(l,r,e,c,n);if(s){const n=t.values[i];Object.keys(s).forEach((t=>{b(n,t)?n[t]=s[t]:R(n,t,s[t])}))}}return l}));return e.mutate(t).then((({failures:n,results:e,numFailures:r,lastResult:s})=>{for(let r=0;r<i.length;++r){const s=e?e[r]:i[r],o=c[r];s==null?o.onerror&&o.onerror(n[r]):o.onsuccess&&o.onsuccess(t.type==="put"&&a[r]?t.values[r]:s)}return{failures:n,results:e,numFailures:r,lastResult:s}})).catch((t=>(c.forEach((n=>n.onerror&&n.onerror(t))),Promise.reject(t))))}))}function c(t,n,i){return e.query({trans:t,values:!1,query:{index:r,range:n},limit:i}).then((({result:e})=>a({type:"delete",keys:e,trans:t}).then((r=>r.numFailures>0?Promise.reject(r.failures[0]):e.length<i?{failures:[],numFailures:0,lastResult:void 0}:c(t,{...n,lower:e[e.length-1],lowerOpen:!0},i)))))}}}}})};function tr(t,n,e){try{if(!n||n.keys.length<t.length)return null;const r=[];for(let i=0,s=0;i<n.keys.length&&s<t.length;++i)ee(n.keys[i],t[s])===0&&(r.push(e?F(n.values[i]):n.values[i]),++s);return r.length===t.length?r:null}catch{return null}}const nr={stack:"dbcore",level:-1,create:t=>({table:n=>{const e=t.table(n);return{...e,getMany:t=>{if(!t.cache)return e.getMany(t);const n=tr(t.keys,t.trans._cache,t.cache==="clone");return n?Wt.resolve(n):e.getMany(t).then((n=>(t.trans._cache={keys:t.keys,values:t.cache==="clone"?F(n):n},n)))},mutate:t=>(t.type!=="add"&&(t.trans._cache=null),e.mutate(t))}}})};function er(t){return!("from"in t)}const rr=function(t,n){if(!this){const n=new rr;return t&&"d"in t&&w(n,t),n}w(this,arguments.length?{d:1,from:t,to:arguments.length>1?n:t}:{d:0})};function ir(t,n,e){const r=ee(n,e);if(isNaN(r))return;if(r>0)throw RangeError();if(er(t))return w(t,{from:n,to:e,d:1});const i=t.l,s=t.r;if(ee(e,t.from)<0)return i?ir(i,n,e):t.l={from:n,to:e,d:1,l:null,r:null},ar(t);if(ee(n,t.to)>0)return s?ir(s,n,e):t.r={from:n,to:e,d:1,l:null,r:null},ar(t);ee(n,t.from)<0&&(t.from=n,t.l=null,t.d=s?s.d+1:1),ee(e,t.to)>0&&(t.to=e,t.r=null,t.d=t.l?t.l.d+1:1);const o=!t.r;i&&!t.l&&sr(t,i),s&&o&&sr(t,s)}function sr(t,n){er(n)||function t(n,{from:e,to:r,l:i,r:s}){ir(n,e,r),i&&t(n,i),s&&t(n,s)}(t,n)}function or(t,n){const e=ur(n);let r=e.next();if(r.done)return!1;let i=r.value;const s=ur(t);let o=s.next(i.from),u=o.value;for(;!r.done&&!o.done;){if(ee(u.from,i.to)<=0&&ee(u.to,i.from)>=0)return!0;ee(i.from,u.from)<0?i=(r=e.next(u.from)).value:u=(o=s.next(i.from)).value}return!1}function ur(t){let n=er(t)?null:{s:0,n:t};return{next(t){const e=arguments.length>0;for(;n;)switch(n.s){case 0:if(n.s=1,e)for(;n.n.l&&ee(t,n.n.from)<0;)n={up:n,n:n.n.l,s:1};else for(;n.n.l;)n={up:n,n:n.n.l,s:1};case 1:if(n.s=2,!e||ee(t,n.n.to)<=0)return{value:n.n,done:!1};case 2:if(n.n.r){n.s=3,n={up:n,n:n.n.r,s:0};continue}case 3:n=n.up}return{done:!0}}}}function ar(t){var n,e;const r=(((n=t.r)===null||n===void 0?void 0:n.d)||0)-(((e=t.l)===null||e===void 0?void 0:e.d)||0),i=r>1?"r":r<-1?"l":"";if(i){const n=i==="r"?"l":"r",e={...t},r=t[i];t.from=r.from,t.to=r.to,t[i]=r[i],e[i]=r[n],t[n]=e,e.d=cr(e)}t.d=cr(t)}function cr({r:t,l:n}){return(t?n?Math.max(t.d,n.d):t.d:n?n.d:0)+1}k(rr.prototype,{add(t){return sr(this,t),this},addKey(t){return ir(this,t,t),this},addKeys(t){return t.forEach((t=>ir(this,t,t))),this},[W](){return ur(this)}});const lr={stack:"dbcore",level:0,create:t=>{const n=t.schema.name,e=new rr(t.MIN_KEY,t.MAX_KEY);return{...t,table:r=>{const i=t.table(r),{schema:s}=i,{primaryKey:o}=s,{extractKey:u,outbound:a}=o,c={...i,mutate:t=>{const o=t.trans,u=o.mutatedParts||(o.mutatedParts={}),a=t=>{const e=`idb://${n}/${r}/${t}`;return u[e]||(u[e]=new rr)},c=a(""),l=a(":dels"),{type:h}=t;let[f,d]=t.type==="deleteRange"?[t.range]:t.type==="delete"?[t.keys]:t.values.length<50?[[],t.values]:[];const p=t.trans._cache;return i.mutate(t).then((t=>{if(v(f)){h!=="delete"&&(f=t.results),c.addKeys(f);const n=tr(f,p);n||h==="add"||l.addKeys(f),(n||d)&&function(t,n,e,r){function i(n){const i=t(n.name||"");function s(t){return t!=null?n.extractKey(t):null}const o=t=>n.multiEntry&&v(t)?t.forEach((t=>i.addKey(t))):i.addKey(t);(e||r).forEach(((t,n)=>{const i=e&&s(e[n]),u=r&&s(r[n]);ee(i,u)!==0&&(i!=null&&o(i),u!=null&&o(u))}))}n.indexes.forEach(i)}(a,s,n,d)}else if(f){const t={from:f.lower,to:f.upper};l.add(t),c.add(t)}else c.add(e),l.add(e),s.indexes.forEach((t=>a(t.name).add(e)));return t}))}},l=({query:{index:n,range:e}})=>{var r,i;return[n,new rr((r=e.lower)!==null&&r!==void 0?r:t.MIN_KEY,(i=e.upper)!==null&&i!==void 0?i:t.MAX_KEY)]},h={get:t=>[o,new rr(t.key)],getMany:t=>[o,(new rr).addKeys(t.keys)],count:l,query:l,openCursor:l};return y(h).forEach((t=>{c[t]=function(s){const{subscr:o}=Ft;if(o){const c=t=>{const e=`idb://${n}/${r}/${t}`;return o[e]||(o[e]=new rr)},l=c(""),f=c(":dels"),[d,p]=h[t](s);if(c(d.name||"").add(p),!d.isPrimaryKey){if(t!=="count"){const n=t==="query"&&a&&s.values&&i.query({...s,values:!1});return i[t].apply(this,arguments).then((e=>{if(t==="query"){if(a&&s.values)return n.then((({result:t})=>(l.addKeys(t),e)));const t=s.values?e.result.map(u):e.result;s.values?l.addKeys(t):f.addKeys(t)}else if(t==="openCursor"){const t=e,n=s.values;return t&&Object.create(t,{key:{get:()=>(f.addKey(t.primaryKey),t.key)},primaryKey:{get(){const n=t.primaryKey;return f.addKey(n),n}},value:{get:()=>(n&&l.addKey(t.primaryKey),t.value)}})}return e}))}f.add(e)}}return i[t].apply(this,arguments)}})),c}}}};class hr{constructor(t,n){this._middlewares={},this.verno=0;const e=hr.dependencies;this._options=n={addons:hr.addons,autoOpen:!0,indexedDB:e.indexedDB,IDBKeyRange:e.IDBKeyRange,...n},this._deps={indexedDB:n.indexedDB,IDBKeyRange:n.IDBKeyRange};const{addons:r}=n;this._dbSchema={},this._versions=[],this._storeNames=[],this._allTables={},this.idbdb=null,this._novip=this;const i={dbOpenError:null,isBeingOpened:!1,onReadyBeingFired:null,openComplete:!1,dbReadyResolve:pt,dbReadyPromise:null,cancelOpen:pt,openCanceller:null,autoSchema:!0,PR1398_maxLoop:3};var s;i.dbReadyPromise=new Wt((t=>{i.dbReadyResolve=t})),i.openCanceller=new Wt(((t,n)=>{i.cancelOpen=n})),this._state=i,this.name=t,this.on=Gn(this,"populate","blocked","versionchange","close",{ready:[$t,pt]}),this.on.ready.subscribe=O(this.on.ready.subscribe,(t=>(n,e)=>{hr.vip((()=>{const r=this._state;if(r.openComplete)r.dbOpenError||Wt.resolve().then(n),e&&t(n);else if(r.onReadyBeingFired)r.onReadyBeingFired.push(n),e&&t(n);else{t(n);const r=this;e||t((function t(){r.on.ready.unsubscribe(n),r.on.ready.unsubscribe(t)}))}}))})),this.Collection=(s=this,zn(se.prototype,(function(t,n){this.db=s;let e=Vn,r=null;if(n)try{e=n()}catch(t){r=t}const i=t._ctx,o=i.table,u=o.hook.reading.fire;this._ctx={table:o,index:i.index,isPrimKey:!i.index||o.schema.primKey.keyPath&&i.index===o.schema.primKey.name,range:e,keysOnly:!1,dir:"next",unique:"",algorithm:null,filter:null,replayFilter:null,justLimit:!0,isMatch:null,offset:0,limit:1/0,error:r,or:i.or,valueMapper:u!==yt?u:null}}))),this.Table=function(t){return zn(Hn.prototype,(function(n,e,r){this.db=t,this._tx=r,this.name=n,this.schema=e,this.hook=t._allTables[n]?t._allTables[n].hook:Gn(null,{creating:[gt,pt],reading:[vt,yt],updating:[bt,pt],deleting:[mt,pt]})}))}(this),this.Transaction=function(t){return zn(ke.prototype,(function(n,e,r,i,s){this.db=t,this.mode=n,this.storeNames=e,this.schema=r,this.chromeTransactionDurability=i,this.idbtrans=null,this.on=Gn(this,"complete","error","abort"),this.parent=s||null,this.active=!0,this._reculock=0,this._blockedFuncs=[],this._resolve=null,this._reject=null,this._waitingFor=null,this._waitingQueue=null,this._spinCount=0,this._completion=new Wt(((t,n)=>{this._resolve=t,this._reject=n})),this._completion.then((()=>{this.active=!1,this.on.complete.fire()}),(t=>{var n=this.active;return this.active=!1,this.on.error.fire(t),this.parent?this.parent._reject(t):n&&this.idbtrans&&this.idbtrans.abort(),En(t)}))}))}(this),this.Version=function(t){return zn(Fe.prototype,(function(n){this.db=t,this._cfg={version:n,storesSource:null,dbschema:{},tables:{},contentUpgrade:null}}))}(this),this.WhereClause=function(t){return zn(ye.prototype,(function(n,e,r){this.db=t,this._ctx={table:n,index:e===":id"?null:e,or:r};const i=t._deps.indexedDB;if(!i)throw new ht.MissingAPI;this._cmp=this._ascending=i.cmp.bind(i),this._descending=(t,n)=>i.cmp(n,t),this._max=(t,n)=>i.cmp(t,n)>0?t:n,this._min=(t,n)=>i.cmp(t,n)<0?t:n,this._IDBKeyRange=t._deps.IDBKeyRange}))}(this),this.on("versionchange",(t=>{t.newVersion>0?console.warn(`Another connection wants to upgrade database '${this.name}'. Closing db now to resume the upgrade.`):console.warn(`Another connection wants to delete database '${this.name}'. Closing db now to resume the delete request.`),this.close()})),this.on("blocked",(t=>{!t.newVersion||t.newVersion<t.oldVersion?console.warn(`Dexie.delete('${this.name}') was blocked`):console.warn(`Upgrade '${this.name}' blocked by other connection holding version ${t.oldVersion/10}`)})),this._maxKey=Pe(n.IDBKeyRange),this._createTransaction=(t,n,e,r)=>new this.Transaction(t,n,e,this._options.chromeTransactionDurability,r),this._fireOnBlocked=t=>{this.on("blocked").fire(t),Kn.filter((t=>t.name===this.name&&t!==this&&!t._state.vcFired)).map((n=>n.on("versionchange").fire(t)))},this.use(Qe),this.use(Ze),this.use(lr),this.use(nr),this.vip=Object.create(this,{_vip:{value:!0}}),r.forEach((t=>t(this)))}version(t){if(isNaN(t)||t<.1)throw new ht.Type("Given version is not a positive number");if(t=Math.round(10*t)/10,this.idbdb||this._state.isBeingOpened)throw new ht.Schema("Cannot add version when database is open");this.verno=Math.max(this.verno,t);const n=this._versions;var e=n.filter((n=>n._cfg.version===t))[0];return e||(e=new this.Version(t),n.push(e),n.sort(Re),e.stores({}),this._state.autoSchema=!1,e)}_whenReady(t){return this.idbdb&&(this._state.openComplete||Ft.letThrough||this._vip)?t():new Wt(((t,n)=>{if(this._state.openComplete)return n(new ht.DatabaseClosed(this._state.dbOpenError));if(!this._state.isBeingOpened){if(!this._options.autoOpen)return void n(new ht.DatabaseClosed);this.open().catch(pt)}this._state.dbReadyPromise.then(t,n)})).then(t)}use({stack:t,create:n,level:e,name:r}){r&&this.unuse({stack:t,name:r});const i=this._middlewares[t]||(this._middlewares[t]=[]);return i.push({stack:t,create:n,level:e??10,name:r}),i.sort(((t,n)=>t.level-n.level)),this}unuse({stack:t,name:n,create:e}){return t&&this._middlewares[t]&&(this._middlewares[t]=this._middlewares[t].filter((t=>e?t.create!==e:!!n&&t.name!==n))),this}open(){return He(this)}_close(){const t=this._state,n=Kn.indexOf(this);if(n>=0&&Kn.splice(n,1),this.idbdb){try{this.idbdb.close()}catch{}this._novip.idbdb=null}t.dbReadyPromise=new Wt((n=>{t.dbReadyResolve=n})),t.openCanceller=new Wt(((n,e)=>{t.cancelOpen=e}))}close(){this._close();const t=this._state;this._options.autoOpen=!1,t.dbOpenError=new ht.DatabaseClosed,t.isBeingOpened&&t.cancelOpen(t.dbOpenError)}delete(){const t=arguments.length>0,n=this._state;return new Wt(((e,r)=>{const i=()=>{this.close();var t=this._deps.indexedDB.deleteDatabase(this.name);t.onsuccess=un((()=>{(function({indexedDB:t,IDBKeyRange:n},e){!Ue(t)&&e!==Mn&&Le(t,n).delete(e).catch(pt)})(this._deps,this.name),e()})),t.onerror=ve(r),t.onblocked=this._fireOnBlocked};if(t)throw new ht.InvalidArgument("Arguments not allowed in db.delete()");n.isBeingOpened?n.dbReadyPromise.then(i):i()}))}backendDB(){return this.idbdb}isOpen(){return this.idbdb!==null}hasBeenClosed(){const t=this._state.dbOpenError;return t&&t.name==="DatabaseClosed"}hasFailed(){return this._state.dbOpenError!==null}dynamicallyOpened(){return this._state.autoSchema}get tables(){return y(this._allTables).map((t=>this._allTables[t]))}transaction(){const t=ze.apply(this,arguments);return this._transaction.apply(this,t)}_transaction(t,n,e){let r=Ft.trans;r&&r.db===this&&t.indexOf("!")===-1||(r=null);const i=t.indexOf("?")!==-1;let s,o;t=t.replace("!","").replace("?","");try{if(o=n.map((t=>{var n=t instanceof this.Table?t.name:t;if(typeof n!="string")throw new TypeError("Invalid table argument to Dexie.transaction(). Only Table or String are allowed");return n})),t=="r"||t===Fn)s=Fn;else{if(t!="rw"&&t!=Ln)throw new ht.InvalidArgument("Invalid transaction mode: "+t);s=Ln}if(r){if(r.mode===Fn&&s===Ln){if(!i)throw new ht.SubTransaction("Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY");r=null}r&&o.forEach((t=>{if(r&&r.storeNames.indexOf(t)===-1){if(!i)throw new ht.SubTransaction("Table "+t+" not included in parent transaction.");r=null}})),i&&r&&!r.active&&(r=null)}}catch(t){return r?r._promise(null,((n,e)=>{e(t)})):En(t)}const u=Je.bind(null,this,s,o,r,e);return r?r._promise(s,u,"lock"):Ft.trans?$n(Ft.transless,(()=>this._whenReady(u))):this._whenReady(u)}table(t){if(!b(this._allTables,t))throw new ht.InvalidTable(`Table ${t} does not exist`);return this._allTables[t]}}const fr=typeof Symbol<"u"&&"observable"in Symbol?Symbol.observable:"@@observable";class dr{constructor(t){this._subscribe=t}subscribe(t,n,e){return this._subscribe(t&&typeof t!="function"?t:{next:t,error:n,complete:e})}[fr](){return this}}function pr(t,n){return y(n).forEach((e=>{sr(t[e]||(t[e]=new rr),n[e])})),t}function yr(t){let n,e=!1;const r=new dr((r=>{const i=J(t);let s=!1,o={},u={};const a={get closed(){return s},unsubscribe:()=>{s=!0,be.storagemutated.unsubscribe(f)}};r.start&&r.start(a);let c=!1,l=!1;function h(){return y(u).some((t=>o[t]&&or(o[t],u[t])))}const f=t=>{pr(o,t),h()&&d()},d=()=>{if(c||s)return;o={};const p={},y=function(n){i&&yn();const e=()=>pn(t,{subscr:n,trans:null}),r=Ft.trans?$n(Ft.transless,e):e();return i&&r.then(vn,vn),r}(p);l||(be(ge,f),l=!0),c=!0,Promise.resolve(y).then((t=>{e=!0,n=t,c=!1,s||(h()?d():(o={},u=p,r.next&&r.next(t)))}),(t=>{c=!1,e=!1,r.error&&r.error(t),a.unsubscribe()}))};return d(),a}));return r.hasValue=()=>e,r.getValue=()=>n,r}let vr;try{vr={indexedDB:p.indexedDB||p.mozIndexedDB||p.webkitIndexedDB||p.msIndexedDB,IDBKeyRange:p.IDBKeyRange||p.webkitIDBKeyRange}}catch{vr={indexedDB:null,IDBKeyRange:null}}const wr=hr;function gr(t){let n=mr;try{mr=!0,be.storagemutated.fire(t)}finally{mr=n}}k(wr,{...dt,delete:t=>new wr(t,{addons:[]}).delete(),exists:t=>new wr(t,{addons:[]}).open().then((t=>(t.close(),!0))).catch("NoSuchDatabaseError",(()=>!1)),getDatabaseNames(t){try{return function({indexedDB:t,IDBKeyRange:n}){return Ue(t)?Promise.resolve(t.databases()).then((t=>t.map((t=>t.name)).filter((t=>t!==Mn)))):Le(t,n).toCollection().primaryKeys()}(wr.dependencies).then(t)}catch{return En(new ht.MissingAPI)}},defineClass:()=>function(t){w(this,t)},ignoreTransaction:t=>Ft.trans?$n(Ft.transless,t):t(),vip:Ve,async:function(t){return function(){try{var n=Ge(t.apply(this,arguments));return n&&typeof n.then=="function"?n:Wt.resolve(n)}catch(t){return En(t)}}},spawn:function(t,n,e){try{var r=Ge(t.apply(e,n||[]));return r&&typeof r.then=="function"?r:Wt.resolve(r)}catch(t){return En(t)}},currentTransaction:{get:()=>Ft.trans||null},waitFor:function(t,n){const e=Wt.resolve(typeof t=="function"?wr.ignoreTransaction(t):t).timeout(n||6e4);return Ft.trans?Ft.trans.waitFor(e):e},Promise:Wt,debug:{get:()=>Y,set:t=>{Q(t,t==="dexie"?()=>!0:Nn)}},derive:A,extend:w,props:k,override:O,Events:Gn,on:be,liveQuery:yr,extendObservabilitySet:pr,getByKeyPath:I,setByKeyPath:R,delByKeyPath:function(t,n){typeof n=="string"?R(t,n,void 0):"length"in n&&[].map.call(n,(function(n){R(t,n,void 0)}))},shallowClone:K,deepClone:F,getObjectDiff:Xe,cmp:ee,asap:D,minKey:jn,addons:[],connections:Kn,errnames:ct,dependencies:vr,semVer:Tn,version:Tn.split(".").map((t=>parseInt(t))).reduce(((t,n,e)=>t+n/Math.pow(10,2*e)))}),wr.maxKey=Pe(wr.dependencies.IDBKeyRange),typeof dispatchEvent<"u"&&typeof addEventListener<"u"&&(be(ge,(t=>{if(!mr){let n;Bn?(n=document.createEvent("CustomEvent"),n.initCustomEvent(me,!0,!0,t)):n=new CustomEvent(me,{detail:t}),mr=!0,dispatchEvent(n),mr=!1}})),addEventListener(me,(({detail:t})=>{mr||gr(t)})));let mr=!1;if(typeof BroadcastChannel<"u"){const t=new BroadcastChannel(me);typeof t.unref=="function"&&t.unref(),be(ge,(n=>{mr||t.postMessage(n)})),t.onmessage=t=>{t.data&&gr(t.data)}}else if(typeof self<"u"&&typeof navigator<"u"){be(ge,(t=>{try{mr||(typeof localStorage<"u"&&localStorage.setItem(me,JSON.stringify({trig:Math.random(),changedParts:t})),typeof self.clients=="object"&&[...self.clients.matchAll({includeUncontrolled:!0})].forEach((n=>n.postMessage({type:me,changedParts:t}))))}catch{}})),typeof addEventListener<"u"&&addEventListener("storage",(t=>{if(t.key===me){const n=JSON.parse(t.newValue);n&&gr(n.changedParts)}}));const t=self.document&&navigator.serviceWorker;t&&t.addEventListener("message",(function({data:t}){t&&t.type===me&&gr(t.changedParts)}))}Wt.rejectionMapper=function(t,n){if(!t||t instanceof st||t instanceof TypeError||t instanceof SyntaxError||!t.name||!ft[t.name])return t;var e=new ft[t.name](n||t.message,t);return"stack"in t&&S(e,"stack",{get:function(){return this.inner.stack}}),e},Q(Y,Nn);class br extends hr{constructor(){super("NylasAuthDatabase");a(this,"grant");a(this,"pkce");this.version(1).stores({grant:"++id,token",pkce:"++id,codeVerifier"}),this.grant=this.table("grant"),this.pkce=this.table("pkce")}}class kr{constructor(){a(this,"theDB");this.theDB=new br}async setCodeVerifier(t){await this.theDB.pkce.put({id:1,codeVerifier:t},1)}async getCodeVerifier(){const[t]=await this.theDB.pkce.toArray();return t?t.codeVerifier:null}async getTokenInfo(){const t=await this.theDB.grant.get(1);return t?t.token:null}async setTokenInfo(t){await this.theDB.grant.put({id:1,token:t},1)}async reset(){await this.theDB.grant.clear()}}function $r(t){const n="NylasAuth";if(!t)throw new Error("NylasAuth requires a config object");let e=null;if(t.storageType==="indexeddb"&&(e=new kr),!e)throw new Error("NylasAuth requires a storage object");const r=[{type:"read-only",value:"https://www.googleapis.com/auth/gmail.readonly"},{type:"modify",value:"https://www.googleapis.com/auth/gmail.modify"},{type:"compose",value:"https://www.googleapis.com/auth/gmail.compose"},{type:"insert",value:"https://www.googleapis.com/auth/gmail.insert"},{type:"labels",value:"https://www.googleapis.com/auth/gmail.labels"},{type:"metadata",value:"https://www.googleapis.com/auth/gmail.metadata"},{type:"settings.basic",value:"https://www.googleapis.com/auth/gmail.settings.basic"},{type:"settings.sharing",value:"https://www.googleapis.com/auth/gmail.settings.sharing"}],i=[{type:"read-only",value:"https://outlook.office.com/mail.read"},{type:"modify",value:"https://outlook.office.com/mail.readwrite"},{type:"send",value:"https://outlook.office.com/mail.send"},{type:"offline",value:"offline_access"}];async function s(r,i,s,o=!0,u,a){const c=await(e==null?void 0:e.getTokenInfo()),l=new URL(r,u??t.apiUri),h=new Headers;h.append("Accept","application/json"),h.append("Content-Type","application/json"),h.append("User-Agent",n),c&&h.append("Authorization",`Bearer ${c.access_token}`);const f=await fetch(l.toString(),{method:i||"GET",headers:h,mode:"cors",referrer:location.origin,body:s?JSON.stringify(s):void 0,...a||{}});return o?await f.json():f.body}return{config:t,async getHostedAuthRedirectURL(n=t.defaultScopes,r,i){const s=await d(Math.random().toString()),o=await d(s);await(e==null?void 0:e.setCodeVerifier(s));const u=new URL(`${t.apiUri}/v3/connect/auth`);return u.searchParams.set("client_id",t.clientId),u.searchParams.set("response_type","code"),u.searchParams.set("scope",n.join(" ")),u.searchParams.set("redirect_uri",t.redirectURI),u.searchParams.set("access_type","offline"),u.searchParams.set("code_challenge",o),u.searchParams.set("code_challenge_method","S256"),u.searchParams.set("options","rotate_refresh_token"),i&&u.searchParams.set("provider",i),r&&u.searchParams.set("login_hint",r),u.toString()},nylasAPIRequest:s,async exchangeAuthCodeForTokenInfo(n){if(!n)return null;const r=await(e==null?void 0:e.getCodeVerifier()),i=await this.nylasAPIRequest("/v3/connect/token","POST",{code:n,client_id:t.clientId,grant_type:"authorization_code",redirect_uri:t.redirectURI,code_verifier:r});return"error"in i||await(e==null?void 0:e.setTokenInfo(i)),i},async nylasDownloadFileRequest(r,i="GET",s){const o=await(e==null?void 0:e.getTokenInfo()),u=new URL(r,t.apiUri),a=new Headers;return a.append("Accept","application/json"),a.append("Content-Type","application/octet-stream"),a.append("User-Agent",n),o&&a.append("Authorization",`Bearer ${o.access_token}`),(await fetch(u.toString(),{method:i,headers:a,mode:"cors",referrer:location.origin,body:s?JSON.stringify(s):void 0})).blob()},async logout(){const t=await(e==null?void 0:e.getTokenInfo());t&&await this.nylasAPIRequest(`/v3/connect/revoke?token=${t.access_token}`,"POST"),await(e==null?void 0:e.reset())},async isAuthenticated(){return!!await(e==null?void 0:e.getTokenInfo())},async getTokenInfo(){const t=await(e==null?void 0:e.getTokenInfo());if(!t)return null;const{access_token:n,...r}=t;return r},async isAccessTokenValid(){const t=await(e==null?void 0:e.getTokenInfo());return t?"data"in await this.nylasAPIRequest(`/v3/connect/tokeninfo?id_token=${t.id_token}`,"GET"):!1},async refreshAccessToken(){const n=await(e==null?void 0:e.getTokenInfo());if(!n)return null;const r=await this.nylasAPIRequest("/v3/connect/token","POST",{client_id:t.clientId,grant_type:"refresh_token",refresh_token:n.refresh_token});return"error"in r||await(e==null?void 0:e.setTokenInfo(r)),r},async hasScopeByType(t="email",n){const s=await(e==null?void 0:e.getTokenInfo());if(!s)return!1;const o=s.scope.toLowerCase().split(" ");let u=[];const a=Array.isArray(n)?n:[n];return t==="email"&&(u=[...i,...r].filter((t=>a.includes(t.type)))),u.every((t=>o.includes(t.value)))},async hasScope(t){const n=await(e==null?void 0:e.getTokenInfo());if(!n)return!1;const r=n.scope.toLowerCase().split(" ");return(Array.isArray(t)?t:[t]).some((t=>r.includes(t.toLowerCase())))}}}export{s as N,h as X,$r as e,c as n};
|
|
2
|
-
//# sourceMappingURL=index.es-
|
|
1
|
+
import{a as t,u as n,f as e,g as r}from"./utils-ac8fef1e.js";class i{constructor(n,e,r=true,i){this.automaticComponentRegistration=true;this.registeredComponents={};this.propStateRegistrations=new Map;this.eventListenerRegistrations=new Map;this.host=n;this.stores=e;this.automaticComponentRegistration=r;this.eventOverrides=i;t(`[${this.hostTagName}] Initializing (abstract) provider.`,{eventOverrides:i});this.registerComponent=this.registerComponent.bind(this);this.getStore=this.getStore.bind(this);Object.keys(this.stores).forEach((t=>{this.propStateRegistrations.set(t,new Map)}))}async componentWillLoad(n){t(`[${this.hostTagName}] Will load`);this.setupStoreListeners();this.nylasConnector=n;const e=Array.from(this.host.querySelectorAll("*")).filter((t=>t.tagName.toLowerCase().startsWith("nylas-")));t(`[${this.hostTagName}] Found ${e.length} child component(s).`,{childComponents:e});const r=e.map((async n=>{const e=n;if(!e){t(`[~${this.hostTagName}] (componentWillLoad) Component ${e.tagName} does not have a name. Skipping.`);return}if(!e.registerNylasComponent){t(`[~${this.hostTagName}] (componentWillLoad) Component ${e.tagName} is not a component that can be registered. Skipping.`,{component:e});return}const r={element:e,name:e.tagName.toLowerCase(),getStoresToProp:e.getStoresToProp,storeToProps:e.storeToProps,stateToProps:e.stateToProps,authToProp:e.authToProp,eventToProps:e.eventToProps,connectorToProp:e.connectorToProp,localPropsToProp:e.localPropsToProp};await this.registerComponent(r)}));await Promise.all(r)}async componentDidLoad(){t(`[~${this.hostTagName}] (componentDidLoad) Did load`)}async componentDisconnected(){Object.values(this.stores).forEach((t=>{t.dispose()}))}async registerComponentHandler(n){n.stopPropagation();if(!this.automaticComponentRegistration){t(`~[${this.hostTagName}] (registerComponentHandler) Automatic component registration disabled. Skipping registration of ${n.detail.name}.`);return}await this.registerComponent(n.detail)}async unregisterComponentHandler(n){n.stopPropagation();if(!this.automaticComponentRegistration){t(`~[${this.hostTagName}] (unregisterComponentHandler) Automatic component registration disabled. Skipping unregistration of ${n.detail.name}.`);return}this.unregisterComponent(n.detail)}async registerComponent(r){t(`~[${this.hostTagName}] (registerComponent) Registering component ${r.name}.`);const i=r.element.dataset.nylasId;const s=i&&this.registeredComponents[i];if(s){t(`[${this.hostTagName}] (registerComponent) Component ${r.name} already registered. Updating registration.`);this.cleanupComponentRegistration(i,false)}else{r.element.dataset.nylasId=i||n()}const o=r.element.dataset.nylasId;if(o){this.registeredComponents[o]=r}t(`[${this.hostTagName}] (registerComponent) Waiting for "${r.element.localName}" component to be defined`,{component:r});try{await customElements.whenDefined(r.element.tagName.toLowerCase());t(`[${this.hostTagName}] (registerComponent) Component "${r.element.localName}" is now defined`)}catch(n){t(`[${this.hostTagName}] (registerComponent) Error waiting for component "${r.element.localName}" to be defined:`,n)}const u=this.eventOverrides;const{stateToProps:a,getStoresToProp:c,eventToProps:l,storeToProps:h,connectorToProp:f,localPropsToProp:d,element:p}=r;l?.forEach(((n,i)=>{const s=this.nylasConnector;const o=async e=>{t(`[${this.hostTagName}] (registerComponent) Handling "${r.name}" prop "${String(i)}" event.`,{event:e});if(i in u){t(`[${this.hostTagName}] (registerComponent) Found event override for "${String(i)}" event. Calling override.`);await u[i](e,s)}if(!e.defaultPrevented){await n(e,s)}return};const a=r.element.dataset.nylasId;if(a&&!this.eventListenerRegistrations.has(a)){this.eventListenerRegistrations.set(a,[])}if(a){this.eventListenerRegistrations.get(a)?.push([p,i,o])}t(`[${this.hostTagName}] (registerComponent) Setting "${r.name}" event "${String(i)}" to automcially call NylasConnector method.`);const c=e(i.toString());t(`[${this.hostTagName}] (registerComponent) Adding event listener for "${c}" on "${p.tagName}"`);p.addEventListener(c,o)}));a?.forEach(((n,e)=>{const[i,s]=e.split(".");const o=this.getStore(i);const u=o.state[s];if(!p.dataset.nylasId){t(`[${this.hostTagName}] (registerComponent) Component "${r.name}" not registered. Skipping.`,{component:r});return}if(!this.propStateRegistrations.has(i)){this.propStateRegistrations.set(i,new Map)}if(!this.propStateRegistrations.get(i)?.has(s)){this.propStateRegistrations.get(i)?.set(s,[{elementId:p.dataset.nylasId,propKey:n}])}else{this.propStateRegistrations.get(i)?.get(s)?.push({elementId:p.dataset.nylasId,propKey:n})}p[n.toString()]=u;t(`[${this.hostTagName}] Setting "${r.name}" prop "${n.toString()}" to "${e}" value.`,{stateValue:u})}));d?.forEach(((n,e)=>{const i=this.host[e];p[n.toString()]=i;t(`[${this.hostTagName}] Setting "${r.name}" prop "${n.toString()}" to the value of "${e}" value.`,{value:e,mappedPropValue:i})}));if(c){p[c?.toString()]=this.getStore;t(`[${this.hostTagName}] Setting "${r.name}" prop "${c.toString()}" to "getStore" method.`)}h?.forEach(((n,e)=>{const i=this.getStore(e);p[n.toString()]=i;t(`[${this.hostTagName}] Setting "${r.name}" prop "${n.toString()}" to "${e}" store.`,{store:i})}));if(f){p[f?.toString()]=this.nylasConnector;t(`[${this.hostTagName}] Setting "${r.name}" prop "${f.toString()}" to "nylasConnector" value.`,{connectorToProp:f})}if(typeof p.registerCallback==="function"){t(`[${this.hostTagName}] (registerComponent) Calling registerCallback method for "${r.name}".`);await p.registerCallback()}t(`[${this.hostTagName}] (registerComponent) Component ${r.name} registered.`)}cleanupComponentRegistration(n,r=true){const i=this.eventListenerRegistrations.get(n);if(i){i.forEach((([n,r,i])=>{const s=e(r.toString());t(`[${this.hostTagName}] (cleanupComponentRegistration) Removing event listener for "${s}" on "${n.tagName}"`);n.removeEventListener(s,i)}));this.eventListenerRegistrations.delete(n)}this.propStateRegistrations.forEach(((t,e)=>{t.forEach(((t,r)=>{const i=t.filter((t=>t.elementId!==n));if(i.length!==t.length){this.propStateRegistrations.get(e)?.set(r,i)}}))}));if(r){delete this.registeredComponents[n]}}unregisterComponent(n){t(`[${this.hostTagName}] Unregistering component ${n.name}.`);const r=n.element.dataset.nylasId;if(!r){t(`[${this.hostTagName}] (unregisterComponent) Unregistering component ${n.name}.`);return}if(this.registeredComponents[r]){t(`[${this.hostTagName}] (unregisterComponent) Component ${n.name} not registered. Skipping.`);return}this.propStateRegistrations.forEach(((t,n)=>{t.forEach(((t,e)=>{const i=this.propStateRegistrations.get(n)?.get(e);const s=i?.filter((t=>t.elementId!==r));if(s){this.propStateRegistrations.get(n)?.set(e,s)}}))}));const i=this.eventListenerRegistrations.get(r);i?.forEach((([n,r,i])=>{const s=e(r.toString());t(`[${this.hostTagName}] (unregisterComponent) Removing event listener for "${s}" on "${n.tagName}"`);n.removeEventListener(s,i)}));delete this.registeredComponents[r]}getStore(t){const n=this.stores[t];if(!n){throw new Error(`[${this.hostTagName}] Store "${t.toString()}" not found.`)}return n}async setupStoreListeners(){const n=this;Object.entries(this.stores).forEach((([e,r])=>{t(`[${n.hostTagName}] (setupStoreListeners) Listening for changes in "${e}" store.`);r.use({set(r,i,s){t(`[${n.hostTagName}] (setupStoreListeners) Store "${e}" state "${r.toString()}" changed`,{newValue:i,oldValue:s});if(i===s){t(`[${n.hostTagName}] (setupStoreListeners) Store "${e}" state "${r.toString()}" unchanged. Skipping.`);return}const o=n.registeredComponents;if(!o){t(`[${n.hostTagName}] (setupStoreListeners) No registered components found. Skipping.`);return}const u=n.propStateRegistrations.get(e)?.get(r.toString())||[];t(`[${n.hostTagName}] (setupStoreListeners) Found ${u.length} prop(s) registered for "${r.toString()}" store.`,{props:u,propStateRegistrations:n.propStateRegistrations});u.forEach((({elementId:i,propKey:s})=>{const u=o[i];if(!u){t(`[${n.hostTagName}] (setupStoreListeners) Component "${i}" not found. Skipping.`,{component:u});return}const a=n.getStore(e);const c=a.state[r];u.element[s.toString()]=c;t(`[${n.hostTagName}] (setupStoreListeners) Setting "${u.name}" prop "${s.toString()}" to "${r.toString()}" value.`,{stateValue:c})}))}})}))}get hostTagName(){return this.host?.tagName?.toLowerCase()??"nylas-provider"}}class s extends i{}var o=Object.defineProperty;var u=(t,n,e)=>n in t?o(t,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[n]=e;var a=(t,n,e)=>(u(t,typeof n!="symbol"?n+"":n,e),e);var c=(t=>(t.Error="error",t.Warning="warning",t.Info="info",t.Success="success",t))(c||{});const l=t=>t!==null&&typeof t=="object"&&"data"in t,h=t=>t!==null&&typeof t=="object"&&"error"in t;class f extends Error{constructor(t){super(t==null?void 0:t.message);a(this,"apiError");this.name="NylasAPIError",this.stack=(new Error).stack,this.apiError=t}}async function d(t){const n=(new TextEncoder).encode(t),e=await crypto.subtle.digest("SHA-256",n),r=Array.from(new Uint8Array(e)).map((t=>t.toString(16).padStart(2,"0"))).join("");return btoa(r).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}const p=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:r,y=Object.keys,v=Array.isArray;function w(t,n){return typeof n!="object"||y(n).forEach((function(e){t[e]=n[e]})),t}typeof Promise>"u"||p.Promise||(p.Promise=Promise);const g=Object.getPrototypeOf,m={}.hasOwnProperty;function b(t,n){return m.call(t,n)}function k(t,n){typeof n=="function"&&(n=n(g(t))),(typeof Reflect>"u"?y:Reflect.ownKeys)(n).forEach((e=>{S(t,e,n[e])}))}const $=Object.defineProperty;function S(t,n,e,r){$(t,n,w(e&&b(e,"get")&&typeof e.get=="function"?{get:e.get,set:e.set,configurable:!0}:{value:e,configurable:!0,writable:!0},r))}function A(t){return{from:function(n){return t.prototype=Object.create(n.prototype),S(t.prototype,"constructor",t),{extend:k.bind(null,t.prototype)}}}}const P=Object.getOwnPropertyDescriptor;function x(t,n){let e;return P(t,n)||(e=g(t))&&x(e,n)}const C=[].slice;function E(t,n,e){return C.call(t,n,e)}function O(t,n){return n(t)}function T(t){if(!t)throw new Error("Assertion Failed")}function D(t){p.setImmediate?setImmediate(t):setTimeout(t,0)}function j(t,n){return t.reduce(((t,e,r)=>{var i=n(e,r);return i&&(t[i[0]]=i[1]),t}),{})}function I(t,n){if(b(t,n))return t[n];if(!n)return t;if(typeof n!="string"){for(var e=[],r=0,i=n.length;r<i;++r){var s=I(t,n[r]);e.push(s)}return e}var o=n.indexOf(".");if(o!==-1){var u=t[n.substr(0,o)];return u===void 0?void 0:I(u,n.substr(o+1))}}function R(t,n,e){if(t&&n!==void 0&&(!("isFrozen"in Object)||!Object.isFrozen(t)))if(typeof n!="string"&&"length"in n){T(typeof e!="string"&&"length"in e);for(var r=0,i=n.length;r<i;++r)R(t,n[r],e[r])}else{var s=n.indexOf(".");if(s!==-1){var o=n.substr(0,s),u=n.substr(s+1);if(u==="")e===void 0?v(t)&&!isNaN(parseInt(o))?t.splice(o,1):delete t[o]:t[o]=e;else{var a=t[o];a&&b(t,o)||(a=t[o]={}),R(a,u,e)}}else e===void 0?v(t)&&!isNaN(parseInt(n))?t.splice(n,1):delete t[n]:t[n]=e}}function K(t){var n={};for(var e in t)b(t,e)&&(n[e]=t[e]);return n}const B=[].concat;function _(t){return B.apply([],t)}const q="Boolean,String,Date,RegExp,Blob,File,FileList,FileSystemFileHandle,ArrayBuffer,DataView,Uint8ClampedArray,ImageBitmap,ImageData,Map,Set,CryptoKey".split(",").concat(_([8,16,32,64].map((t=>["Int","Uint","Float"].map((n=>n+t+"Array")))))).filter((t=>p[t])),N=q.map((t=>p[t]));j(q,(t=>[t,!0]));let M=null;function F(t){M=typeof WeakMap<"u"&&new WeakMap;const n=L(t);return M=null,n}function L(t){if(!t||typeof t!="object")return t;let n=M&&M.get(t);if(n)return n;if(v(t)){n=[],M&&M.set(t,n);for(var e=0,r=t.length;e<r;++e)n.push(L(t[e]))}else if(N.indexOf(t.constructor)>=0)n=t;else{const e=g(t);for(var i in n=e===Object.prototype?{}:Object.create(e),M&&M.set(t,n),t)b(t,i)&&(n[i]=L(t[i]))}return n}const{toString:U}={};function V(t){return U.call(t).slice(8,-1)}const W=typeof Symbol<"u"?Symbol.iterator:"@@iterator",H=typeof W=="symbol"?function(t){var n;return t!=null&&(n=t[W])&&n.apply(t)}:function(){return null},G={};function z(t){var n,e,r,i;if(arguments.length===1){if(v(t))return t.slice();if(this===G&&typeof t=="string")return[t];if(i=H(t)){for(e=[];!(r=i.next()).done;)e.push(r.value);return e}if(t==null)return[t];if(typeof(n=t.length)=="number"){for(e=new Array(n);n--;)e[n]=t[n];return e}return[t]}for(n=arguments.length,e=new Array(n);n--;)e[n]=arguments[n];return e}const J=typeof Symbol<"u"?t=>t[Symbol.toStringTag]==="AsyncFunction":()=>!1;var Y=typeof location<"u"&&/^(http|https):\/\/(localhost|127\.0\.0\.1)/.test(location.href);function Q(t,n){Y=t,X=n}var X=()=>!0;const Z=!new Error("").stack;function tt(){if(Z)try{throw tt.arguments,new Error}catch(t){return t}return new Error}function nt(t,n){var e=t.stack;return e?(n=n||0,e.indexOf(t.name)===0&&(n+=(t.name+t.message).split(`\n`).length),e.split(`\n`).slice(n).filter(X).map((t=>`\n`+t)).join("")):""}var et=["Unknown","Constraint","Data","TransactionInactive","ReadOnly","Version","NotFound","InvalidState","InvalidAccess","Abort","Timeout","QuotaExceeded","Syntax","DataClone"],rt=["Modify","Bulk","OpenFailed","VersionChange","Schema","Upgrade","InvalidTable","MissingAPI","NoSuchDatabase","InvalidArgument","SubTransaction","Unsupported","Internal","DatabaseClosed","PrematureCommit","ForeignAwait"].concat(et),it={VersionChanged:"Database version changed by other database connection",DatabaseClosed:"Database has been closed",Abort:"Transaction aborted",TransactionInactive:"Transaction has already completed or failed",MissingAPI:"IndexedDB API missing. Please visit https://tinyurl.com/y2uuvskb"};function st(t,n){this._e=tt(),this.name=t,this.message=n}function ot(t,n){return t+". Errors: "+Object.keys(n).map((t=>n[t].toString())).filter(((t,n,e)=>e.indexOf(t)===n)).join(`\n`)}function ut(t,n,e,r){this._e=tt(),this.failures=n,this.failedKeys=r,this.successCount=e,this.message=ot(t,n)}function at(t,n){this._e=tt(),this.name="BulkError",this.failures=Object.keys(n).map((t=>n[t])),this.failuresByPos=n,this.message=ot(t,n)}A(st).from(Error).extend({stack:{get:function(){return this._stack||(this._stack=this.name+": "+this.message+nt(this._e,2))}},toString:function(){return this.name+": "+this.message}}),A(ut).from(st),A(at).from(st);var ct=rt.reduce(((t,n)=>(t[n]=n+"Error",t)),{});const lt=st;var ht=rt.reduce(((t,n)=>{var e=n+"Error";function r(t,r){this._e=tt(),this.name=e,t?typeof t=="string"?(this.message=`${t}${r?`\n `+r:""}`,this.inner=r||null):typeof t=="object"&&(this.message=`${t.name} ${t.message}`,this.inner=t):(this.message=it[n]||e,this.inner=null)}return A(r).from(lt),t[n]=r,t}),{});ht.Syntax=SyntaxError,ht.Type=TypeError,ht.Range=RangeError;var ft=et.reduce(((t,n)=>(t[n+"Error"]=ht[n],t)),{}),dt=rt.reduce(((t,n)=>(["Syntax","Type","Range"].indexOf(n)===-1&&(t[n+"Error"]=ht[n]),t)),{});function pt(){}function yt(t){return t}function vt(t,n){return t==null||t===yt?n:function(e){return n(t(e))}}function wt(t,n){return function(){t.apply(this,arguments),n.apply(this,arguments)}}function gt(t,n){return t===pt?n:function(){var e=t.apply(this,arguments);e!==void 0&&(arguments[0]=e);var r=this.onsuccess,i=this.onerror;this.onsuccess=null,this.onerror=null;var s=n.apply(this,arguments);return r&&(this.onsuccess=this.onsuccess?wt(r,this.onsuccess):r),i&&(this.onerror=this.onerror?wt(i,this.onerror):i),s!==void 0?s:e}}function mt(t,n){return t===pt?n:function(){t.apply(this,arguments);var e=this.onsuccess,r=this.onerror;this.onsuccess=this.onerror=null,n.apply(this,arguments),e&&(this.onsuccess=this.onsuccess?wt(e,this.onsuccess):e),r&&(this.onerror=this.onerror?wt(r,this.onerror):r)}}function bt(t,n){return t===pt?n:function(e){var r=t.apply(this,arguments);w(e,r);var i=this.onsuccess,s=this.onerror;this.onsuccess=null,this.onerror=null;var o=n.apply(this,arguments);return i&&(this.onsuccess=this.onsuccess?wt(i,this.onsuccess):i),s&&(this.onerror=this.onerror?wt(s,this.onerror):s),r===void 0?o===void 0?void 0:o:w(r,o)}}function kt(t,n){return t===pt?n:function(){return n.apply(this,arguments)!==!1&&t.apply(this,arguments)}}function $t(t,n){return t===pt?n:function(){var e=t.apply(this,arguments);if(e&&typeof e.then=="function"){for(var r=this,i=arguments.length,s=new Array(i);i--;)s[i]=arguments[i];return e.then((function(){return n.apply(r,s)}))}return n.apply(this,arguments)}}dt.ModifyError=ut,dt.DexieError=st,dt.BulkError=at;var St={};const At=100,[Pt,xt,Ct]=typeof Promise>"u"?[]:(()=>{let t=Promise.resolve();if(typeof crypto>"u"||!crypto.subtle)return[t,g(t),t];const n=crypto.subtle.digest("SHA-512",new Uint8Array([0]));return[n,g(n),t]})(),Et=xt&&xt.then,Ot=Pt&&Pt.constructor,Tt=!!Ct;var Dt=!1,jt=Ct?()=>{Ct.then(nn)}:p.setImmediate?setImmediate.bind(null,nn):p.MutationObserver?()=>{var t=document.createElement("div");new MutationObserver((()=>{nn(),t=null})).observe(t,{attributes:!0}),t.setAttribute("i","1")}:()=>{setTimeout(nn,0)},It=function(t,n){Lt.push([t,n]),Kt&&(jt(),Kt=!1)},Rt=!0,Kt=!0,Bt=[],_t=[],qt=null,Nt=yt,Mt={id:"global",global:!0,ref:0,unhandleds:[],onunhandled:Cn,pgp:!1,env:{},finalize:function(){this.unhandleds.forEach((t=>{try{Cn(t[0],t[1])}catch{}}))}},Ft=Mt,Lt=[],Ut=0,Vt=[];function Wt(t){if(typeof this!="object")throw new TypeError("Promises must be constructed via new");this._listeners=[],this.onuncatched=pt,this._lib=!1;var n=this._PSD=Ft;if(Y&&(this._stackHolder=tt(),this._prev=null,this._numPrev=0),typeof t!="function"){if(t!==St)throw new TypeError("Not a function");return this._state=arguments[1],this._value=arguments[2],void(this._state===!1&&Jt(this,this._value))}this._state=null,this._value=null,++n.ref,zt(this,t)}const Ht={get:function(){var t=Ft,n=fn;function e(e,r){var i=!t.global&&(t!==Ft||n!==fn);const s=i&&!vn();var o=new Wt(((n,o)=>{Qt(this,new Gt(An(e,t,i,s),An(r,t,i,s),n,o,t))}));return Y&&tn(o,this),o}return e.prototype=St,e},set:function(t){S(this,"then",t&&t.prototype===St?Ht:{get:function(){return t},set:Ht.set})}};function Gt(t,n,e,r,i){this.onFulfilled=typeof t=="function"?t:null,this.onRejected=typeof n=="function"?n:null,this.resolve=e,this.reject=r,this.psd=i}function zt(t,n){try{n((n=>{if(t._state===null){if(n===t)throw new TypeError("A promise cannot be resolved with itself.");var e=t._lib&&en();n&&typeof n.then=="function"?zt(t,((t,e)=>{n instanceof Wt?n._then(t,e):n.then(t,e)})):(t._state=!0,t._value=n,Yt(t)),e&&rn()}}),Jt.bind(null,t))}catch(n){Jt(t,n)}}function Jt(t,n){if(_t.push(n),t._state===null){var e=t._lib&&en();n=Nt(n),t._state=!1,t._value=n,Y&&n!==null&&typeof n=="object"&&!n._promise&&function(t,n,e){try{t.apply(null,e)}catch(t){n&&n(t)}}((()=>{var e=x(n,"stack");n._promise=t,S(n,"stack",{get:()=>Dt?e&&(e.get?e.get.apply(n):e.value):t.stack})})),function(t){Bt.some((n=>n._value===t._value))||Bt.push(t)}(t),Yt(t),e&&rn()}}function Yt(t){var n=t._listeners;t._listeners=[];for(var e=0,r=n.length;e<r;++e)Qt(t,n[e]);var i=t._PSD;--i.ref||i.finalize(),Ut===0&&(++Ut,It((()=>{--Ut==0&&sn()}),[]))}function Qt(t,n){if(t._state!==null){var e=t._state?n.onFulfilled:n.onRejected;if(e===null)return(t._state?n.resolve:n.reject)(t._value);++n.psd.ref,++Ut,It(Xt,[e,t,n])}else t._listeners.push(n)}function Xt(t,n,e){try{qt=n;var r,i=n._value;n._state?r=t(i):(_t.length&&(_t=[]),r=t(i),_t.indexOf(i)===-1&&function(t){for(var n=Bt.length;n;)if(Bt[--n]._value===t._value)return void Bt.splice(n,1)}(n)),e.resolve(r)}catch(t){e.reject(t)}finally{qt=null,--Ut==0&&sn(),--e.psd.ref||e.psd.finalize()}}function Zt(t,n,e){if(n.length===e)return n;var r="";if(t._state===!1){var i,s,o=t._value;o!=null?(i=o.name||"Error",s=o.message||o,r=nt(o,0)):(i=o,s=""),n.push(i+(s?": "+s:"")+r)}return Y&&((r=nt(t._stackHolder,2))&&n.indexOf(r)===-1&&n.push(r),t._prev&&Zt(t._prev,n,e)),n}function tn(t,n){var e=n?n._numPrev+1:0;e<100&&(t._prev=n,t._numPrev=e)}function nn(){en()&&rn()}function en(){var t=Rt;return Rt=!1,Kt=!1,t}function rn(){var t,n,e;do{for(;Lt.length>0;)for(t=Lt,Lt=[],e=t.length,n=0;n<e;++n){var r=t[n];r[0].apply(null,r[1])}}while(Lt.length>0);Rt=!0,Kt=!0}function sn(){var t=Bt;Bt=[],t.forEach((t=>{t._PSD.onunhandled.call(null,t._value,t)}));for(var n=Vt.slice(0),e=n.length;e;)n[--e]()}function on(t){return new Wt(St,!1,t)}function un(t,n){var e=Ft;return function(){var r=en(),i=Ft;try{return bn(e,!0),t.apply(this,arguments)}catch(t){n&&n(t)}finally{bn(i,!1),r&&rn()}}}k(Wt.prototype,{then:Ht,_then:function(t,n){Qt(this,new Gt(null,null,t,n,Ft))},catch:function(t){if(arguments.length===1)return this.then(null,t);var n=arguments[0],e=arguments[1];return typeof n=="function"?this.then(null,(t=>t instanceof n?e(t):on(t))):this.then(null,(t=>t&&t.name===n?e(t):on(t)))},finally:function(t){return this.then((n=>(t(),n)),(n=>(t(),on(n))))},stack:{get:function(){if(this._stack)return this._stack;try{Dt=!0;var t=Zt(this,[],20).join(`\nFrom previous: `);return this._state!==null&&(this._stack=t),t}finally{Dt=!1}}},timeout:function(t,n){return t<1/0?new Wt(((e,r)=>{var i=setTimeout((()=>r(new ht.Timeout(n))),t);this.then(e,r).finally(clearTimeout.bind(null,i))})):this}}),typeof Symbol<"u"&&Symbol.toStringTag&&S(Wt.prototype,Symbol.toStringTag,"Dexie.Promise"),Mt.env=kn(),k(Wt,{all:function(){var t=z.apply(null,arguments).map(wn);return new Wt((function(n,e){t.length===0&&n([]);var r=t.length;t.forEach(((i,s)=>Wt.resolve(i).then((e=>{t[s]=e,--r||n(t)}),e)))}))},resolve:t=>{if(t instanceof Wt)return t;if(t&&typeof t.then=="function")return new Wt(((n,e)=>{t.then(n,e)}));var n=new Wt(St,!0,t);return tn(n,qt),n},reject:on,race:function(){var t=z.apply(null,arguments).map(wn);return new Wt(((n,e)=>{t.map((t=>Wt.resolve(t).then(n,e)))}))},PSD:{get:()=>Ft,set:t=>Ft=t},totalEchoes:{get:()=>fn},newPSD:pn,usePSD:$n,scheduler:{get:()=>It,set:t=>{It=t}},rejectionMapper:{get:()=>Nt,set:t=>{Nt=t}},follow:(t,n)=>new Wt(((e,r)=>pn(((n,e)=>{var r=Ft;r.unhandleds=[],r.onunhandled=e,r.finalize=wt((function(){(function(t){function n(){t(),Vt.splice(Vt.indexOf(n),1)}Vt.push(n),++Ut,It((()=>{--Ut==0&&sn()}),[])})((()=>{this.unhandleds.length===0?n():e(this.unhandleds[0])}))}),r.finalize),t()}),n,e,r)))}),Ot&&(Ot.allSettled&&S(Wt,"allSettled",(function(){const t=z.apply(null,arguments).map(wn);return new Wt((n=>{t.length===0&&n([]);let e=t.length;const r=new Array(e);t.forEach(((t,i)=>Wt.resolve(t).then((t=>r[i]={status:"fulfilled",value:t}),(t=>r[i]={status:"rejected",reason:t})).then((()=>--e||n(r)))))}))})),Ot.any&&typeof AggregateError<"u"&&S(Wt,"any",(function(){const t=z.apply(null,arguments).map(wn);return new Wt(((n,e)=>{t.length===0&&e(new AggregateError([]));let r=t.length;const i=new Array(r);t.forEach(((t,s)=>Wt.resolve(t).then((t=>n(t)),(t=>{i[s]=t,--r||e(new AggregateError(i))}))))}))})));const an={awaits:0,echoes:0,id:0};var cn=0,ln=[],hn=0,fn=0,dn=0;function pn(t,n,e,r){var i=Ft,s=Object.create(i);s.parent=i,s.ref=0,s.global=!1,s.id=++dn;var o=Mt.env;s.env=Tt?{Promise:Wt,PromiseProp:{value:Wt,configurable:!0,writable:!0},all:Wt.all,race:Wt.race,allSettled:Wt.allSettled,any:Wt.any,resolve:Wt.resolve,reject:Wt.reject,nthen:Pn(o.nthen,s),gthen:Pn(o.gthen,s)}:{},n&&w(s,n),++i.ref,s.finalize=function(){--this.parent.ref||this.parent.finalize()};var u=$n(s,t,e,r);return s.ref===0&&s.finalize(),u}function yn(){return an.id||(an.id=++cn),++an.awaits,an.echoes+=At,an.id}function vn(){return!!an.awaits&&(--an.awaits==0&&(an.id=0),an.echoes=an.awaits*At,!0)}function wn(t){return an.echoes&&t&&t.constructor===Ot?(yn(),t.then((t=>(vn(),t)),(t=>(vn(),En(t))))):t}function gn(t){++fn,an.echoes&&--an.echoes!=0||(an.echoes=an.id=0),ln.push(Ft),bn(t,!0)}function mn(){var t=ln[ln.length-1];ln.pop(),bn(t,!1)}function bn(t,n){var e=Ft;if((n?!an.echoes||hn++&&t===Ft:!hn||--hn&&t===Ft)||Sn(n?gn.bind(null,t):mn),t!==Ft&&(Ft=t,e===Mt&&(Mt.env=kn()),Tt)){var r=Mt.env.Promise,i=t.env;xt.then=i.nthen,r.prototype.then=i.gthen,(e.global||t.global)&&(Object.defineProperty(p,"Promise",i.PromiseProp),r.all=i.all,r.race=i.race,r.resolve=i.resolve,r.reject=i.reject,i.allSettled&&(r.allSettled=i.allSettled),i.any&&(r.any=i.any))}}function kn(){var t=p.Promise;return Tt?{Promise:t,PromiseProp:Object.getOwnPropertyDescriptor(p,"Promise"),all:t.all,race:t.race,allSettled:t.allSettled,any:t.any,resolve:t.resolve,reject:t.reject,nthen:xt.then,gthen:t.prototype.then}:{}}function $n(t,n,e,r,i){var s=Ft;try{return bn(t,!0),n(e,r,i)}finally{bn(s,!1)}}function Sn(t){Et.call(Pt,t)}function An(t,n,e,r){return typeof t!="function"?t:function(){var i=Ft;e&&yn(),bn(n,!0);try{return t.apply(this,arguments)}finally{bn(i,!1),r&&Sn(vn)}}}function Pn(t,n){return function(e,r){return t.call(this,An(e,n),An(r,n))}}(""+Et).indexOf("[native code]")===-1&&(yn=vn=pt);const xn="unhandledrejection";function Cn(t,n){var e;try{e=n.onuncatched(t)}catch{}if(e!==!1)try{var r,i={promise:n,reason:t};if(p.document&&document.createEvent?((r=document.createEvent("Event")).initEvent(xn,!0,!0),w(r,i)):p.CustomEvent&&w(r=new CustomEvent(xn,{detail:i}),i),r&&p.dispatchEvent&&(dispatchEvent(r),!p.PromiseRejectionEvent&&p.onunhandledrejection))try{p.onunhandledrejection(r)}catch{}Y&&r&&!r.defaultPrevented&&console.warn(`Unhandled rejection: ${t.stack||t}`)}catch{}}var En=Wt.reject;function On(t,n,e,r){if(t.idbdb&&(t._state.openComplete||Ft.letThrough||t._vip)){var i=t._createTransaction(n,e,t._dbSchema);try{i.create(),t._state.PR1398_maxLoop=3}catch(i){return i.name===ct.InvalidState&&t.isOpen()&&--t._state.PR1398_maxLoop>0?(console.warn("Dexie: Need to reopen db"),t._close(),t.open().then((()=>On(t,n,e,r)))):En(i)}return i._promise(n,((t,n)=>pn((()=>(Ft.trans=i,r(t,n,i)))))).then((t=>i._completion.then((()=>t))))}if(t._state.openComplete)return En(new ht.DatabaseClosed(t._state.dbOpenError));if(!t._state.isBeingOpened){if(!t._options.autoOpen)return En(new ht.DatabaseClosed);t.open().catch(pt)}return t._state.dbReadyPromise.then((()=>On(t,n,e,r)))}const Tn="3.2.4",Dn=String.fromCharCode(65535),jn=-1/0,In="Invalid key provided. Keys must be of type string, number, Date or Array<string | number | Date>.",Rn="String expected.",Kn=[],Bn=typeof navigator<"u"&&/(MSIE|Trident|Edge)/.test(navigator.userAgent),_n=Bn,qn=Bn,Nn=t=>!/(dexie\.js|dexie\.min\.js)/.test(t),Mn="__dbnames",Fn="readonly",Ln="readwrite";function Un(t,n){return t?n?function(){return t.apply(this,arguments)&&n.apply(this,arguments)}:t:n}const Vn={type:3,lower:-1/0,lowerOpen:!1,upper:[[]],upperOpen:!1};function Wn(t){return typeof t!="string"||/\./.test(t)?t=>t:n=>(n[t]===void 0&&t in n&&delete(n=F(n))[t],n)}class Hn{_trans(t,n,e){const r=this._tx||Ft.trans,i=this.name;function s(t,e,r){if(!r.schema[i])throw new ht.NotFound("Table "+i+" not part of transaction");return n(r.idbtrans,r)}const o=en();try{return r&&r.db===this.db?r===Ft.trans?r._promise(t,s,e):pn((()=>r._promise(t,s,e)),{trans:r,transless:Ft.transless||Ft}):On(this.db,t,[this.name],s)}finally{o&&rn()}}get(t,n){return t&&t.constructor===Object?this.where(t).first(n):this._trans("readonly",(n=>this.core.get({trans:n,key:t}).then((t=>this.hook.reading.fire(t))))).then(n)}where(t){if(typeof t=="string")return new this.db.WhereClause(this,t);if(v(t))return new this.db.WhereClause(this,`[${t.join("+")}]`);const n=y(t);if(n.length===1)return this.where(n[0]).equals(t[n[0]]);const e=this.schema.indexes.concat(this.schema.primKey).filter((t=>t.compound&&n.every((n=>t.keyPath.indexOf(n)>=0))&&t.keyPath.every((t=>n.indexOf(t)>=0))))[0];if(e&&this.db._maxKey!==Dn)return this.where(e.name).equals(e.keyPath.map((n=>t[n])));!e&&Y&&console.warn(`The query ${JSON.stringify(t)} on ${this.name} would benefit of a compound index [${n.join("+")}]`);const{idxByName:r}=this.schema,i=this.db._deps.indexedDB;function s(t,n){try{return i.cmp(t,n)===0}catch{return!1}}const[o,u]=n.reduce((([n,e],i)=>{const o=r[i],u=t[i];return[n||o,n||!o?Un(e,o&&o.multi?t=>{const n=I(t,i);return v(n)&&n.some((t=>s(u,t)))}:t=>s(u,I(t,i))):e]}),[null,null]);return o?this.where(o.name).equals(t[o.keyPath]).filter(u):e?this.filter(u):this.where(n).equals("")}filter(t){return this.toCollection().and(t)}count(t){return this.toCollection().count(t)}offset(t){return this.toCollection().offset(t)}limit(t){return this.toCollection().limit(t)}each(t){return this.toCollection().each(t)}toArray(t){return this.toCollection().toArray(t)}toCollection(){return new this.db.Collection(new this.db.WhereClause(this))}orderBy(t){return new this.db.Collection(new this.db.WhereClause(this,v(t)?`[${t.join("+")}]`:t))}reverse(){return this.toCollection().reverse()}mapToClass(t){this.schema.mappedClass=t;const n=n=>{if(!n)return n;const e=Object.create(t.prototype);for(var r in n)if(b(n,r))try{e[r]=n[r]}catch{}return e};return this.schema.readHook&&this.hook.reading.unsubscribe(this.schema.readHook),this.schema.readHook=n,this.hook("reading",n),t}defineClass(){return this.mapToClass((function(t){w(this,t)}))}add(t,n){const{auto:e,keyPath:r}=this.schema.primKey;let i=t;return r&&e&&(i=Wn(r)(t)),this._trans("readwrite",(t=>this.core.mutate({trans:t,type:"add",keys:n!=null?[n]:null,values:[i]}))).then((t=>t.numFailures?Wt.reject(t.failures[0]):t.lastResult)).then((n=>{if(r)try{R(t,r,n)}catch{}return n}))}update(t,n){if(typeof t!="object"||v(t))return this.where(":id").equals(t).modify(n);{const e=I(t,this.schema.primKey.keyPath);if(e===void 0)return En(new ht.InvalidArgument("Given object does not contain its primary key"));try{typeof n!="function"?y(n).forEach((e=>{R(t,e,n[e])})):n(t,{value:t,primKey:e})}catch{}return this.where(":id").equals(e).modify(n)}}put(t,n){const{auto:e,keyPath:r}=this.schema.primKey;let i=t;return r&&e&&(i=Wn(r)(t)),this._trans("readwrite",(t=>this.core.mutate({trans:t,type:"put",values:[i],keys:n!=null?[n]:null}))).then((t=>t.numFailures?Wt.reject(t.failures[0]):t.lastResult)).then((n=>{if(r)try{R(t,r,n)}catch{}return n}))}delete(t){return this._trans("readwrite",(n=>this.core.mutate({trans:n,type:"delete",keys:[t]}))).then((t=>t.numFailures?Wt.reject(t.failures[0]):void 0))}clear(){return this._trans("readwrite",(t=>this.core.mutate({trans:t,type:"deleteRange",range:Vn}))).then((t=>t.numFailures?Wt.reject(t.failures[0]):void 0))}bulkGet(t){return this._trans("readonly",(n=>this.core.getMany({keys:t,trans:n}).then((t=>t.map((t=>this.hook.reading.fire(t)))))))}bulkAdd(t,n,e){const r=Array.isArray(n)?n:void 0,i=(e=e||(r?void 0:n))?e.allKeys:void 0;return this._trans("readwrite",(n=>{const{auto:e,keyPath:s}=this.schema.primKey;if(s&&r)throw new ht.InvalidArgument("bulkAdd(): keys argument invalid on tables with inbound keys");if(r&&r.length!==t.length)throw new ht.InvalidArgument("Arguments objects and keys must have the same length");const o=t.length;let u=s&&e?t.map(Wn(s)):t;return this.core.mutate({trans:n,type:"add",keys:r,values:u,wantResults:i}).then((({numFailures:t,results:n,lastResult:e,failures:r})=>{if(t===0)return i?n:e;throw new at(`${this.name}.bulkAdd(): ${t} of ${o} operations failed`,r)}))}))}bulkPut(t,n,e){const r=Array.isArray(n)?n:void 0,i=(e=e||(r?void 0:n))?e.allKeys:void 0;return this._trans("readwrite",(n=>{const{auto:e,keyPath:s}=this.schema.primKey;if(s&&r)throw new ht.InvalidArgument("bulkPut(): keys argument invalid on tables with inbound keys");if(r&&r.length!==t.length)throw new ht.InvalidArgument("Arguments objects and keys must have the same length");const o=t.length;let u=s&&e?t.map(Wn(s)):t;return this.core.mutate({trans:n,type:"put",keys:r,values:u,wantResults:i}).then((({numFailures:t,results:n,lastResult:e,failures:r})=>{if(t===0)return i?n:e;throw new at(`${this.name}.bulkPut(): ${t} of ${o} operations failed`,r)}))}))}bulkDelete(t){const n=t.length;return this._trans("readwrite",(n=>this.core.mutate({trans:n,type:"delete",keys:t}))).then((({numFailures:t,lastResult:e,failures:r})=>{if(t===0)return e;throw new at(`${this.name}.bulkDelete(): ${t} of ${n} operations failed`,r)}))}}function Gn(t){var n={},e=function(e,r){if(r){for(var i=arguments.length,s=new Array(i-1);--i;)s[i-1]=arguments[i];return n[e].subscribe.apply(null,s),t}if(typeof e=="string")return n[e]};e.addEventType=s;for(var r=1,i=arguments.length;r<i;++r)s(arguments[r]);return e;function s(t,r,i){if(typeof t!="object"){var o;r||(r=kt),i||(i=pt);var u={subscribers:[],fire:i,subscribe:function(t){u.subscribers.indexOf(t)===-1&&(u.subscribers.push(t),u.fire=r(u.fire,t))},unsubscribe:function(t){u.subscribers=u.subscribers.filter((function(n){return n!==t})),u.fire=u.subscribers.reduce(r,i)}};return n[t]=e[t]=u,u}y(o=t).forEach((function(t){var n=o[t];if(v(n))s(t,o[t][0],o[t][1]);else{if(n!=="asap")throw new ht.InvalidArgument("Invalid event config");var e=s(t,yt,(function(){for(var t=arguments.length,n=new Array(t);t--;)n[t]=arguments[t];e.subscribers.forEach((function(t){D((function(){t.apply(null,n)}))}))}))}}))}}function zn(t,n){return A(n).from({prototype:t}),n}function Jn(t,n){return!(t.filter||t.algorithm||t.or)&&(n?t.justLimit:!t.replayFilter)}function Yn(t,n){t.filter=Un(t.filter,n)}function Qn(t,n,e){var r=t.replayFilter;t.replayFilter=r?()=>Un(r(),n()):n,t.justLimit=e&&!r}function Xn(t,n){if(t.isPrimKey)return n.primaryKey;const e=n.getIndexByKeyPath(t.index);if(!e)throw new ht.Schema("KeyPath "+t.index+" on object store "+n.name+" is not indexed");return e}function Zn(t,n,e){const r=Xn(t,n.schema);return n.openCursor({trans:e,values:!t.keysOnly,reverse:t.dir==="prev",unique:!!t.unique,query:{index:r,range:t.range}})}function te(t,n,e,r){const i=t.replayFilter?Un(t.filter,t.replayFilter()):t.filter;if(t.or){const s={},o=(t,e,r)=>{if(!i||i(e,r,(t=>e.stop(t)),(t=>e.fail(t)))){var o=e.primaryKey,u=""+o;u==="[object ArrayBuffer]"&&(u=""+new Uint8Array(o)),b(s,u)||(s[u]=!0,n(t,e,r))}};return Promise.all([t.or._iterate(o,e),ne(Zn(t,r,e),t.algorithm,o,!t.keysOnly&&t.valueMapper)])}return ne(Zn(t,r,e),Un(t.algorithm,i),n,!t.keysOnly&&t.valueMapper)}function ne(t,n,e,r){var i=un(r?(t,n,i)=>e(r(t),n,i):e);return t.then((t=>{if(t)return t.start((()=>{var e=()=>t.continue();n&&!n(t,(t=>e=t),(n=>{t.stop(n),e=pt}),(n=>{t.fail(n),e=pt}))||i(t.value,t,(t=>e=t)),e()}))}))}function ee(t,n){try{const e=re(t),r=re(n);if(e!==r)return e==="Array"?1:r==="Array"?-1:e==="binary"?1:r==="binary"?-1:e==="string"?1:r==="string"?-1:e==="Date"?1:r!=="Date"?NaN:-1;switch(e){case"number":case"Date":case"string":return t>n?1:t<n?-1:0;case"binary":return function(t,n){const e=t.length,r=n.length,i=e<r?e:r;for(let e=0;e<i;++e)if(t[e]!==n[e])return t[e]<n[e]?-1:1;return e===r?0:e<r?-1:1}(ie(t),ie(n));case"Array":return function(t,n){const e=t.length,r=n.length,i=e<r?e:r;for(let e=0;e<i;++e){const r=ee(t[e],n[e]);if(r!==0)return r}return e===r?0:e<r?-1:1}(t,n)}}catch{}return NaN}function re(t){const n=typeof t;if(n!=="object")return n;if(ArrayBuffer.isView(t))return"binary";const e=V(t);return e==="ArrayBuffer"?"binary":e}function ie(t){return t instanceof Uint8Array?t:ArrayBuffer.isView(t)?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):new Uint8Array(t)}class se{_read(t,n){var e=this._ctx;return e.error?e.table._trans(null,En.bind(null,e.error)):e.table._trans("readonly",t).then(n)}_write(t){var n=this._ctx;return n.error?n.table._trans(null,En.bind(null,n.error)):n.table._trans("readwrite",t,"locked")}_addAlgorithm(t){var n=this._ctx;n.algorithm=Un(n.algorithm,t)}_iterate(t,n){return te(this._ctx,t,n,this._ctx.table.core)}clone(t){var n=Object.create(this.constructor.prototype),e=Object.create(this._ctx);return t&&w(e,t),n._ctx=e,n}raw(){return this._ctx.valueMapper=null,this}each(t){var n=this._ctx;return this._read((e=>te(n,t,e,n.table.core)))}count(t){return this._read((t=>{const n=this._ctx,e=n.table.core;if(Jn(n,!0))return e.count({trans:t,query:{index:Xn(n,e.schema),range:n.range}}).then((t=>Math.min(t,n.limit)));var r=0;return te(n,(()=>(++r,!1)),t,e).then((()=>r))})).then(t)}sortBy(t,n){const e=t.split(".").reverse(),r=e[0],i=e.length-1;function s(t,n){return n?s(t[e[n]],n-1):t[r]}var o=this._ctx.dir==="next"?1:-1;function u(t,n){var e=s(t,i),r=s(n,i);return e<r?-o:e>r?o:0}return this.toArray((function(t){return t.sort(u)})).then(n)}toArray(t){return this._read((t=>{var n=this._ctx;if(n.dir==="next"&&Jn(n,!0)&&n.limit>0){const{valueMapper:e}=n,r=Xn(n,n.table.core.schema);return n.table.core.query({trans:t,limit:n.limit,values:!0,query:{index:r,range:n.range}}).then((({result:t})=>e?t.map(e):t))}{const e=[];return te(n,(t=>e.push(t)),t,n.table.core).then((()=>e))}}),t)}offset(t){var n=this._ctx;return t<=0||(n.offset+=t,Jn(n)?Qn(n,(()=>{var n=t;return(t,e)=>n===0||(n===1?(--n,!1):(e((()=>{t.advance(n),n=0})),!1))})):Qn(n,(()=>{var n=t;return()=>--n<0}))),this}limit(t){return this._ctx.limit=Math.min(this._ctx.limit,t),Qn(this._ctx,(()=>{var n=t;return function(t,e,r){return--n<=0&&e(r),n>=0}}),!0),this}until(t,n){return Yn(this._ctx,(function(e,r,i){return!t(e.value)||(r(i),n)})),this}first(t){return this.limit(1).toArray((function(t){return t[0]})).then(t)}last(t){return this.reverse().first(t)}filter(t){var n,e;return Yn(this._ctx,(function(n){return t(n.value)})),n=this._ctx,e=t,n.isMatch=Un(n.isMatch,e),this}and(t){return this.filter(t)}or(t){return new this.db.WhereClause(this._ctx.table,t,this)}reverse(){return this._ctx.dir=this._ctx.dir==="prev"?"next":"prev",this._ondirectionchange&&this._ondirectionchange(this._ctx.dir),this}desc(){return this.reverse()}eachKey(t){var n=this._ctx;return n.keysOnly=!n.isMatch,this.each((function(n,e){t(e.key,e)}))}eachUniqueKey(t){return this._ctx.unique="unique",this.eachKey(t)}eachPrimaryKey(t){var n=this._ctx;return n.keysOnly=!n.isMatch,this.each((function(n,e){t(e.primaryKey,e)}))}keys(t){var n=this._ctx;n.keysOnly=!n.isMatch;var e=[];return this.each((function(t,n){e.push(n.key)})).then((function(){return e})).then(t)}primaryKeys(t){var n=this._ctx;if(n.dir==="next"&&Jn(n,!0)&&n.limit>0)return this._read((t=>{var e=Xn(n,n.table.core.schema);return n.table.core.query({trans:t,values:!1,limit:n.limit,query:{index:e,range:n.range}})})).then((({result:t})=>t)).then(t);n.keysOnly=!n.isMatch;var e=[];return this.each((function(t,n){e.push(n.primaryKey)})).then((function(){return e})).then(t)}uniqueKeys(t){return this._ctx.unique="unique",this.keys(t)}firstKey(t){return this.limit(1).keys((function(t){return t[0]})).then(t)}lastKey(t){return this.reverse().firstKey(t)}distinct(){var t=this._ctx,n=t.index&&t.table.schema.idxByName[t.index];if(!n||!n.multi)return this;var e={};return Yn(this._ctx,(function(t){var n=t.primaryKey.toString(),r=b(e,n);return e[n]=!0,!r})),this}modify(t){var n=this._ctx;return this._write((e=>{var r;if(typeof t=="function")r=t;else{var i=y(t),s=i.length;r=function(n){for(var e=!1,r=0;r<s;++r){var o=i[r],u=t[o];I(n,o)!==u&&(R(n,o,u),e=!0)}return e}}const o=n.table.core,{outbound:u,extractKey:a}=o.schema.primaryKey,c=this.db._options.modifyChunkSize||200,l=[];let h=0;const f=[],d=(t,n)=>{const{failures:e,numFailures:r}=n;h+=t-r;for(let t of y(e))l.push(e[t])};return this.clone().primaryKeys().then((i=>{const s=l=>{const h=Math.min(c,i.length-l);return o.getMany({trans:e,keys:i.slice(l,l+h),cache:"immutable"}).then((f=>{const p=[],y=[],v=u?[]:null,w=[];for(let t=0;t<h;++t){const n=f[t],e={value:F(n),primKey:i[l+t]};r.call(e,e.value,e)!==!1&&(e.value==null?w.push(i[l+t]):u||ee(a(n),a(e.value))===0?(y.push(e.value),u&&v.push(i[l+t])):(w.push(i[l+t]),p.push(e.value)))}const g=Jn(n)&&n.limit===1/0&&(typeof t!="function"||t===oe)&&{index:n.index,range:n.range};return Promise.resolve(p.length>0&&o.mutate({trans:e,type:"add",values:p}).then((t=>{for(let n in t.failures)w.splice(parseInt(n),1);d(p.length,t)}))).then((()=>(y.length>0||g&&typeof t=="object")&&o.mutate({trans:e,type:"put",keys:v,values:y,criteria:g,changeSpec:typeof t!="function"&&t}).then((t=>d(y.length,t))))).then((()=>(w.length>0||g&&t===oe)&&o.mutate({trans:e,type:"delete",keys:w,criteria:g}).then((t=>d(w.length,t))))).then((()=>i.length>l+h&&s(l+c)))}))};return s(0).then((()=>{if(l.length>0)throw new ut("Error modifying one or more objects",l,h,f);return i.length}))}))}))}delete(){var t=this._ctx,n=t.range;return Jn(t)&&(t.isPrimKey&&!qn||n.type===3)?this._write((e=>{const{primaryKey:r}=t.table.core.schema,i=n;return t.table.core.count({trans:e,query:{index:r,range:i}}).then((n=>t.table.core.mutate({trans:e,type:"deleteRange",range:i}).then((({failures:t,lastResult:e,results:r,numFailures:i})=>{if(i)throw new ut("Could not delete some values",Object.keys(t).map((n=>t[n])),n-i);return n-i}))))})):this.modify(oe)}}const oe=(t,n)=>n.value=null;function ue(t,n){return t<n?-1:t===n?0:1}function ae(t,n){return t>n?-1:t===n?0:1}function ce(t,n,e){var r=t instanceof ye?new t.Collection(t):t;return r._ctx.error=e?new e(n):new TypeError(n),r}function le(t){return new t.Collection(t,(()=>pe(""))).limit(0)}function he(t,n,e,r,i,s){for(var o=Math.min(t.length,r.length),u=-1,a=0;a<o;++a){var c=n[a];if(c!==r[a])return i(t[a],e[a])<0?t.substr(0,a)+e[a]+e.substr(a+1):i(t[a],r[a])<0?t.substr(0,a)+r[a]+e.substr(a+1):u>=0?t.substr(0,u)+n[u]+e.substr(u+1):null;i(t[a],c)<0&&(u=a)}return o<r.length&&s==="next"?t+e.substr(t.length):o<t.length&&s==="prev"?t.substr(0,e.length):u<0?null:t.substr(0,u)+r[u]+e.substr(u+1)}function fe(t,n,e,r){var i,s,o,u,a,c,l,h=e.length;if(!e.every((t=>typeof t=="string")))return ce(t,Rn);function f(t){i=function(t){return t==="next"?t=>t.toUpperCase():t=>t.toLowerCase()}(t),s=function(t){return t==="next"?t=>t.toLowerCase():t=>t.toUpperCase()}(t),o=t==="next"?ue:ae;var n=e.map((function(t){return{lower:s(t),upper:i(t)}})).sort((function(t,n){return o(t.lower,n.lower)}));u=n.map((function(t){return t.upper})),a=n.map((function(t){return t.lower})),c=t,l=t==="next"?"":r}f("next");var d=new t.Collection(t,(()=>de(u[0],a[h-1]+r)));d._ondirectionchange=function(t){f(t)};var p=0;return d._addAlgorithm((function(t,e,r){var i=t.key;if(typeof i!="string")return!1;var f=s(i);if(n(f,a,p))return!0;for(var d=null,y=p;y<h;++y){var v=he(i,f,u[y],a[y],o,c);v===null&&d===null?p=y+1:(d===null||o(d,v)>0)&&(d=v)}return e(d!==null?function(){t.continue(d+l)}:r),!1})),d}function de(t,n,e,r){return{type:2,lower:t,upper:n,lowerOpen:e,upperOpen:r}}function pe(t){return{type:1,lower:t,upper:t}}class ye{get Collection(){return this._ctx.table.db.Collection}between(t,n,e,r){e=e!==!1,r=r===!0;try{return this._cmp(t,n)>0||this._cmp(t,n)===0&&(e||r)&&(!e||!r)?le(this):new this.Collection(this,(()=>de(t,n,!e,!r)))}catch{return ce(this,In)}}equals(t){return t==null?ce(this,In):new this.Collection(this,(()=>pe(t)))}above(t){return t==null?ce(this,In):new this.Collection(this,(()=>de(t,void 0,!0)))}aboveOrEqual(t){return t==null?ce(this,In):new this.Collection(this,(()=>de(t,void 0,!1)))}below(t){return t==null?ce(this,In):new this.Collection(this,(()=>de(void 0,t,!1,!0)))}belowOrEqual(t){return t==null?ce(this,In):new this.Collection(this,(()=>de(void 0,t)))}startsWith(t){return typeof t!="string"?ce(this,Rn):this.between(t,t+Dn,!0,!0)}startsWithIgnoreCase(t){return t===""?this.startsWith(t):fe(this,((t,n)=>t.indexOf(n[0])===0),[t],Dn)}equalsIgnoreCase(t){return fe(this,((t,n)=>t===n[0]),[t],"")}anyOfIgnoreCase(){var t=z.apply(G,arguments);return t.length===0?le(this):fe(this,((t,n)=>n.indexOf(t)!==-1),t,"")}startsWithAnyOfIgnoreCase(){var t=z.apply(G,arguments);return t.length===0?le(this):fe(this,((t,n)=>n.some((n=>t.indexOf(n)===0))),t,Dn)}anyOf(){const t=z.apply(G,arguments);let n=this._cmp;try{t.sort(n)}catch{return ce(this,In)}if(t.length===0)return le(this);const e=new this.Collection(this,(()=>de(t[0],t[t.length-1])));e._ondirectionchange=e=>{n=e==="next"?this._ascending:this._descending,t.sort(n)};let r=0;return e._addAlgorithm(((e,i,s)=>{const o=e.key;for(;n(o,t[r])>0;)if(++r,r===t.length)return i(s),!1;return n(o,t[r])===0||(i((()=>{e.continue(t[r])})),!1)})),e}notEqual(t){return this.inAnyRange([[jn,t],[t,this.db._maxKey]],{includeLowers:!1,includeUppers:!1})}noneOf(){const t=z.apply(G,arguments);if(t.length===0)return new this.Collection(this);try{t.sort(this._ascending)}catch{return ce(this,In)}const n=t.reduce(((t,n)=>t?t.concat([[t[t.length-1][1],n]]):[[jn,n]]),null);return n.push([t[t.length-1],this.db._maxKey]),this.inAnyRange(n,{includeLowers:!1,includeUppers:!1})}inAnyRange(t,n){const e=this._cmp,r=this._ascending,i=this._descending,s=this._min,o=this._max;if(t.length===0)return le(this);if(!t.every((t=>t[0]!==void 0&&t[1]!==void 0&&r(t[0],t[1])<=0)))return ce(this,"First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower",ht.InvalidArgument);const u=!n||n.includeLowers!==!1,a=n&&n.includeUppers===!0;let c,l=r;function h(t,n){return l(t[0],n[0])}try{c=t.reduce((function(t,n){let r=0,i=t.length;for(;r<i;++r){const i=t[r];if(e(n[0],i[1])<0&&e(n[1],i[0])>0){i[0]=s(i[0],n[0]),i[1]=o(i[1],n[1]);break}}return r===i&&t.push(n),t}),[]),c.sort(h)}catch{return ce(this,In)}let f=0;const d=a?t=>r(t,c[f][1])>0:t=>r(t,c[f][1])>=0,p=u?t=>i(t,c[f][0])>0:t=>i(t,c[f][0])>=0;let y=d;const v=new this.Collection(this,(()=>de(c[0][0],c[c.length-1][1],!u,!a)));return v._ondirectionchange=t=>{t==="next"?(y=d,l=r):(y=p,l=i),c.sort(h)},v._addAlgorithm(((t,n,e)=>{for(var i=t.key;y(i);)if(++f,f===c.length)return n(e),!1;return!!function(t){return!d(t)&&!p(t)}(i)||(this._cmp(i,c[f][1])===0||this._cmp(i,c[f][0])===0||n((()=>{l===r?t.continue(c[f][0]):t.continue(c[f][1])})),!1)})),v}startsWithAnyOf(){const t=z.apply(G,arguments);return t.every((t=>typeof t=="string"))?t.length===0?le(this):this.inAnyRange(t.map((t=>[t,t+Dn]))):ce(this,"startsWithAnyOf() only works with strings")}}function ve(t){return un((function(n){return we(n),t(n.target.error),!1}))}function we(t){t.stopPropagation&&t.stopPropagation(),t.preventDefault&&t.preventDefault()}const ge="storagemutated",me="x-storagemutated-1",be=Gn(null,ge);class ke{_lock(){return T(!Ft.global),++this._reculock,this._reculock!==1||Ft.global||(Ft.lockOwnerFor=this),this}_unlock(){if(T(!Ft.global),--this._reculock==0)for(Ft.global||(Ft.lockOwnerFor=null);this._blockedFuncs.length>0&&!this._locked();){var t=this._blockedFuncs.shift();try{$n(t[1],t[0])}catch{}}return this}_locked(){return this._reculock&&Ft.lockOwnerFor!==this}create(t){if(!this.mode)return this;const n=this.db.idbdb,e=this.db._state.dbOpenError;if(T(!this.idbtrans),!t&&!n)switch(e&&e.name){case"DatabaseClosedError":throw new ht.DatabaseClosed(e);case"MissingAPIError":throw new ht.MissingAPI(e.message,e);default:throw new ht.OpenFailed(e)}if(!this.active)throw new ht.TransactionInactive;return T(this._completion._state===null),(t=this.idbtrans=t||(this.db.core?this.db.core.transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability}):n.transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability}))).onerror=un((n=>{we(n),this._reject(t.error)})),t.onabort=un((n=>{we(n),this.active&&this._reject(new ht.Abort(t.error)),this.active=!1,this.on("abort").fire(n)})),t.oncomplete=un((()=>{this.active=!1,this._resolve(),"mutatedParts"in t&&be.storagemutated.fire(t.mutatedParts)})),this}_promise(t,n,e){if(t==="readwrite"&&this.mode!=="readwrite")return En(new ht.ReadOnly("Transaction is readonly"));if(!this.active)return En(new ht.TransactionInactive);if(this._locked())return new Wt(((r,i)=>{this._blockedFuncs.push([()=>{this._promise(t,n,e).then(r,i)},Ft])}));if(e)return pn((()=>{var t=new Wt(((t,e)=>{this._lock();const r=n(t,e,this);r&&r.then&&r.then(t,e)}));return t.finally((()=>this._unlock())),t._lib=!0,t}));var r=new Wt(((t,e)=>{var r=n(t,e,this);r&&r.then&&r.then(t,e)}));return r._lib=!0,r}_root(){return this.parent?this.parent._root():this}waitFor(t){var n=this._root();const e=Wt.resolve(t);if(n._waitingFor)n._waitingFor=n._waitingFor.then((()=>e));else{n._waitingFor=e,n._waitingQueue=[];var r=n.idbtrans.objectStore(n.storeNames[0]);(function t(){for(++n._spinCount;n._waitingQueue.length;)n._waitingQueue.shift()();n._waitingFor&&(r.get(-1/0).onsuccess=t)})()}var i=n._waitingFor;return new Wt(((t,r)=>{e.then((e=>n._waitingQueue.push(un(t.bind(null,e)))),(t=>n._waitingQueue.push(un(r.bind(null,t))))).finally((()=>{n._waitingFor===i&&(n._waitingFor=null)}))}))}abort(){this.active&&(this.active=!1,this.idbtrans&&this.idbtrans.abort(),this._reject(new ht.Abort))}table(t){const n=this._memoizedTables||(this._memoizedTables={});if(b(n,t))return n[t];const e=this.schema[t];if(!e)throw new ht.NotFound("Table "+t+" not part of transaction");const r=new this.db.Table(t,e,this);return r.core=this.db.core.table(t),n[t]=r,r}}function $e(t,n,e,r,i,s,o){return{name:t,keyPath:n,unique:e,multi:r,auto:i,compound:s,src:(e&&!o?"&":"")+(r?"*":"")+(i?"++":"")+Se(n)}}function Se(t){return typeof t=="string"?t:t?"["+[].join.call(t,"+")+"]":""}function Ae(t,n,e){return{name:t,primKey:n,indexes:e,mappedClass:null,idxByName:j(e,(t=>[t.name,t]))}}let Pe=t=>{try{return t.only([[]]),Pe=()=>[[]],[[]]}catch{return Pe=()=>Dn,Dn}};function xe(t){return t==null?()=>{}:typeof t=="string"?function(t){return t.split(".").length===1?n=>n[t]:n=>I(n,t)}(t):n=>I(n,t)}function Ce(t){return[].slice.call(t)}let Ee=0;function Oe(t){return t==null?":id":typeof t=="string"?t:`[${t.join("+")}]`}function Te(t,n,e){function r(t){if(t.type===3)return null;if(t.type===4)throw new Error("Cannot convert never type to IDBKeyRange");const{lower:e,upper:r,lowerOpen:i,upperOpen:s}=t;return e===void 0?r===void 0?null:n.upperBound(r,!!s):r===void 0?n.lowerBound(e,!!i):n.bound(e,r,!!i,!!s)}const{schema:i,hasGetAll:s}=function(t,n){const e=Ce(t.objectStoreNames);return{schema:{name:t.name,tables:e.map((t=>n.objectStore(t))).map((t=>{const{keyPath:n,autoIncrement:e}=t,r=v(n),i=n==null,s={},o={name:t.name,primaryKey:{name:null,isPrimaryKey:!0,outbound:i,compound:r,keyPath:n,autoIncrement:e,unique:!0,extractKey:xe(n)},indexes:Ce(t.indexNames).map((n=>t.index(n))).map((t=>{const{name:n,unique:e,multiEntry:r,keyPath:i}=t,o={name:n,compound:v(i),keyPath:i,unique:e,multiEntry:r,extractKey:xe(i)};return s[Oe(i)]=o,o})),getIndexByKeyPath:t=>s[Oe(t)]};return s[":id"]=o.primaryKey,n!=null&&(s[Oe(n)]=o.primaryKey),o}))},hasGetAll:e.length>0&&"getAll"in n.objectStore(e[0])&&!(typeof navigator<"u"&&/Safari/.test(navigator.userAgent)&&!/(Chrome\/|Edge\/)/.test(navigator.userAgent)&&[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]<604)}}(t,e),o=i.tables.map((t=>function(t){const n=t.name;return{name:n,schema:t,mutate:function({trans:t,type:e,keys:i,values:s,range:o}){return new Promise(((u,a)=>{u=un(u);const c=t.objectStore(n),l=c.keyPath==null,h=e==="put"||e==="add";if(!h&&e!=="delete"&&e!=="deleteRange")throw new Error("Invalid operation type: "+e);const{length:f}=i||s||{length:1};if(i&&s&&i.length!==s.length)throw new Error("Given keys array must have same length as given values array.");if(f===0)return u({numFailures:0,failures:{},results:[],lastResult:void 0});let d;const p=[],y=[];let v=0;const w=t=>{++v,we(t)};if(e==="deleteRange"){if(o.type===4)return u({numFailures:v,failures:y,results:[],lastResult:void 0});o.type===3?p.push(d=c.clear()):p.push(d=c.delete(r(o)))}else{const[t,n]=h?l?[s,i]:[s,null]:[i,null];if(h)for(let r=0;r<f;++r)p.push(d=n&&n[r]!==void 0?c[e](t[r],n[r]):c[e](t[r])),d.onerror=w;else for(let n=0;n<f;++n)p.push(d=c[e](t[n])),d.onerror=w}const g=t=>{const n=t.target.result;p.forEach(((t,n)=>t.error!=null&&(y[n]=t.error))),u({numFailures:v,failures:y,results:e==="delete"?i:p.map((t=>t.result)),lastResult:n})};d.onerror=t=>{w(t),g(t)},d.onsuccess=g}))},getMany:({trans:t,keys:e})=>new Promise(((r,i)=>{r=un(r);const s=t.objectStore(n),o=e.length,u=new Array(o);let a,c=0,l=0;const h=t=>{const n=t.target;u[n._pos]=n.result,++l===c&&r(u)},f=ve(i);for(let t=0;t<o;++t)e[t]!=null&&(a=s.get(e[t]),a._pos=t,a.onsuccess=h,a.onerror=f,++c);c===0&&r(u)})),get:({trans:t,key:e})=>new Promise(((r,i)=>{r=un(r);const s=t.objectStore(n).get(e);s.onsuccess=t=>r(t.target.result),s.onerror=ve(i)})),query:function(t){return e=>new Promise(((i,s)=>{i=un(i);const{trans:o,values:u,limit:a,query:c}=e,l=a===1/0?void 0:a,{index:h,range:f}=c,d=o.objectStore(n),p=h.isPrimaryKey?d:d.index(h.name),y=r(f);if(a===0)return i({result:[]});if(t){const t=u?p.getAll(y,l):p.getAllKeys(y,l);t.onsuccess=t=>i({result:t.target.result}),t.onerror=ve(s)}else{let t=0;const n=u||!("openKeyCursor"in p)?p.openCursor(y):p.openKeyCursor(y),e=[];n.onsuccess=r=>{const s=n.result;return s?(e.push(u?s.value:s.primaryKey),++t===a?i({result:e}):void s.continue()):i({result:e})},n.onerror=ve(s)}}))}(s),openCursor:function({trans:t,values:e,query:i,reverse:s,unique:o}){return new Promise(((u,a)=>{u=un(u);const{index:c,range:l}=i,h=t.objectStore(n),f=c.isPrimaryKey?h:h.index(c.name),d=s?o?"prevunique":"prev":o?"nextunique":"next",p=e||!("openKeyCursor"in f)?f.openCursor(r(l),d):f.openKeyCursor(r(l),d);p.onerror=ve(a),p.onsuccess=un((n=>{const e=p.result;if(!e)return void u(null);e.___id=++Ee,e.done=!1;const r=e.continue.bind(e);let i=e.continuePrimaryKey;i&&(i=i.bind(e));const s=e.advance.bind(e),o=()=>{throw new Error("Cursor not stopped")};e.trans=t,e.stop=e.continue=e.continuePrimaryKey=e.advance=()=>{throw new Error("Cursor not started")},e.fail=un(a),e.next=function(){let t=1;return this.start((()=>t--?this.continue():this.stop())).then((()=>this))},e.start=t=>{const n=new Promise(((t,n)=>{t=un(t),p.onerror=ve(n),e.fail=n,e.stop=n=>{e.stop=e.continue=e.continuePrimaryKey=e.advance=o,t(n)}})),u=()=>{if(p.result)try{t()}catch(t){e.fail(t)}else e.done=!0,e.start=()=>{throw new Error("Cursor behind last entry")},e.stop()};return p.onsuccess=un((t=>{p.onsuccess=u,u()})),e.continue=r,e.continuePrimaryKey=i,e.advance=s,u(),n},u(e)}),a)}))},count({query:t,trans:e}){const{index:i,range:s}=t;return new Promise(((t,o)=>{const u=e.objectStore(n),a=i.isPrimaryKey?u:u.index(i.name),c=r(s),l=c?a.count(c):a.count();l.onsuccess=un((n=>t(n.target.result))),l.onerror=ve(o)}))}}}(t))),u={};return o.forEach((t=>u[t.name]=t)),{stack:"dbcore",transaction:t.transaction.bind(t),table(t){if(!u[t])throw new Error(`Table '${t}' not found`);return u[t]},MIN_KEY:-1/0,MAX_KEY:Pe(n),schema:i}}function De({_novip:t},n){const e=n.db,r=function(t,n,{IDBKeyRange:e,indexedDB:r},i){return{dbcore:function(t,n){return n.reduce(((t,{create:n})=>({...t,...n(t)})),t)}(Te(n,e,i),t.dbcore)}}(t._middlewares,e,t._deps,n);t.core=r.dbcore,t.tables.forEach((n=>{const e=n.name;t.core.schema.tables.some((t=>t.name===e))&&(n.core=t.core.table(e),t[e]instanceof t.Table&&(t[e].core=n.core))}))}function je({_novip:t},n,e,r){e.forEach((e=>{const i=r[e];n.forEach((n=>{const r=x(n,e);(!r||"value"in r&&r.value===void 0)&&(n===t.Transaction.prototype||n instanceof t.Transaction?S(n,e,{get(){return this.table(e)},set(t){$(this,e,{value:t,writable:!0,configurable:!0,enumerable:!0})}}):n[e]=new t.Table(e,i))}))}))}function Ie({_novip:t},n){n.forEach((n=>{for(let e in n)n[e]instanceof t.Table&&delete n[e]}))}function Re(t,n){return t._cfg.version-n._cfg.version}function Ke(t,n,e,r){const i=t._dbSchema,s=t._createTransaction("readwrite",t._storeNames,i);s.create(e),s._completion.catch(r);const o=s._reject.bind(s),u=Ft.transless||Ft;pn((()=>{Ft.trans=s,Ft.transless=u,n===0?(y(i).forEach((t=>{_e(e,t,i[t].primKey,i[t].indexes)})),De(t,e),Wt.follow((()=>t.on.populate.fire(s))).catch(o)):function({_novip:t},n,e,r){const i=[],s=t._versions;let o=t._dbSchema=Ne(t,t.idbdb,r),u=!1;const a=s.filter((t=>t._cfg.version>=n));function c(){return i.length?Wt.resolve(i.shift()(e.idbtrans)).then(c):Wt.resolve()}return a.forEach((s=>{i.push((()=>{const i=o,a=s._cfg.dbschema;Me(t,i,r),Me(t,a,r),o=t._dbSchema=a;const c=Be(i,a);c.add.forEach((t=>{_e(r,t[0],t[1].primKey,t[1].indexes)})),c.change.forEach((t=>{if(t.recreate)throw new ht.Upgrade("Not yet support for changing primary key");{const n=r.objectStore(t.name);t.add.forEach((t=>qe(n,t))),t.change.forEach((t=>{n.deleteIndex(t.name),qe(n,t)})),t.del.forEach((t=>n.deleteIndex(t)))}}));const l=s._cfg.contentUpgrade;if(l&&s._cfg.version>n){De(t,r),e._memoizedTables={},u=!0;let n=K(a);c.del.forEach((t=>{n[t]=i[t]})),Ie(t,[t.Transaction.prototype]),je(t,[t.Transaction.prototype],y(n),n),e.schema=n;const s=J(l);let o;s&&yn();const h=Wt.follow((()=>{if(o=l(e),o&&s){var t=vn.bind(null,null);o.then(t,t)}}));return o&&typeof o.then=="function"?Wt.resolve(o):h.then((()=>o))}})),i.push((n=>{(!u||!_n)&&function(t,n){[].slice.call(n.db.objectStoreNames).forEach((e=>t[e]==null&&n.db.deleteObjectStore(e)))}(s._cfg.dbschema,n),Ie(t,[t.Transaction.prototype]),je(t,[t.Transaction.prototype],t._storeNames,t._dbSchema),e.schema=t._dbSchema}))})),c().then((()=>{var t,n;n=r,y(t=o).forEach((e=>{n.db.objectStoreNames.contains(e)||_e(n,e,t[e].primKey,t[e].indexes)}))}))}(t,n,s,e).catch(o)}))}function Be(t,n){const e={del:[],add:[],change:[]};let r;for(r in t)n[r]||e.del.push(r);for(r in n){const i=t[r],s=n[r];if(i){const t={name:r,def:s,recreate:!1,del:[],add:[],change:[]};if(""+(i.primKey.keyPath||"")!=""+(s.primKey.keyPath||"")||i.primKey.auto!==s.primKey.auto&&!Bn)t.recreate=!0,e.change.push(t);else{const n=i.idxByName,r=s.idxByName;let o;for(o in n)r[o]||t.del.push(o);for(o in r){const e=n[o],i=r[o];e?e.src!==i.src&&t.change.push(i):t.add.push(i)}(t.del.length>0||t.add.length>0||t.change.length>0)&&e.change.push(t)}}else e.add.push([r,s])}return e}function _e(t,n,e,r){const i=t.db.createObjectStore(n,e.keyPath?{keyPath:e.keyPath,autoIncrement:e.auto}:{autoIncrement:e.auto});return r.forEach((t=>qe(i,t))),i}function qe(t,n){t.createIndex(n.name,n.keyPath,{unique:n.unique,multiEntry:n.multi})}function Ne(t,n,e){const r={};return E(n.objectStoreNames,0).forEach((t=>{const n=e.objectStore(t);let i=n.keyPath;const s=$e(Se(i),i||"",!1,!1,!!n.autoIncrement,i&&typeof i!="string",!0),o=[];for(let t=0;t<n.indexNames.length;++t){const e=n.index(n.indexNames[t]);i=e.keyPath;var u=$e(e.name,i,!!e.unique,!!e.multiEntry,!1,i&&typeof i!="string",!1);o.push(u)}r[t]=Ae(t,s,o)})),r}function Me({_novip:t},n,e){const r=e.db.objectStoreNames;for(let i=0;i<r.length;++i){const s=r[i],o=e.objectStore(s);t._hasGetAll="getAll"in o;for(let t=0;t<o.indexNames.length;++t){const e=o.indexNames[t],r=o.index(e).keyPath,i=typeof r=="string"?r:"["+E(r).join("+")+"]";if(n[s]){const t=n[s].idxByName[i];t&&(t.name=e,delete n[s].idxByName[i],n[s].idxByName[e]=t)}}}typeof navigator<"u"&&/Safari/.test(navigator.userAgent)&&!/(Chrome\/|Edge\/)/.test(navigator.userAgent)&&p.WorkerGlobalScope&&p instanceof p.WorkerGlobalScope&&[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]<604&&(t._hasGetAll=!1)}class Fe{_parseStoresSpec(t,n){y(t).forEach((e=>{if(t[e]!==null){var r=t[e].split(",").map(((t,n)=>{const e=(t=t.trim()).replace(/([&*]|\+\+)/g,""),r=/^\[/.test(e)?e.match(/^\[(.*)\]$/)[1].split("+"):e;return $e(e,r||null,/\&/.test(t),/\*/.test(t),/\+\+/.test(t),v(r),n===0)})),i=r.shift();if(i.multi)throw new ht.Schema("Primary key cannot be multi-valued");r.forEach((t=>{if(t.auto)throw new ht.Schema("Only primary key can be marked as autoIncrement (++)");if(!t.keyPath)throw new ht.Schema("Index must have a name and cannot be an empty string")})),n[e]=Ae(e,i,r)}}))}stores(t){const n=this.db;this._cfg.storesSource=this._cfg.storesSource?w(this._cfg.storesSource,t):t;const e=n._versions,r={};let i={};return e.forEach((t=>{w(r,t._cfg.storesSource),i=t._cfg.dbschema={},t._parseStoresSpec(r,i)})),n._dbSchema=i,Ie(n,[n._allTables,n,n.Transaction.prototype]),je(n,[n._allTables,n,n.Transaction.prototype,this._cfg.tables],y(i),i),n._storeNames=y(i),this}upgrade(t){return this._cfg.contentUpgrade=$t(this._cfg.contentUpgrade||pt,t),this}}function Le(t,n){let e=t._dbNamesDB;return e||(e=t._dbNamesDB=new hr(Mn,{addons:[],indexedDB:t,IDBKeyRange:n}),e.version(1).stores({dbnames:"name"})),e.table("dbnames")}function Ue(t){return t&&typeof t.databases=="function"}function Ve(t){return pn((function(){return Ft.letThrough=!0,t()}))}function We(){var t;return!navigator.userAgentData&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\//.test(navigator.userAgent)&&indexedDB.databases?new Promise((function(n){var e=function(){return indexedDB.databases().finally(n)};t=setInterval(e,100),e()})).finally((function(){return clearInterval(t)})):Promise.resolve()}function He(t){const n=t._state,{indexedDB:e}=t._deps;if(n.isBeingOpened||t.idbdb)return n.dbReadyPromise.then((()=>n.dbOpenError?En(n.dbOpenError):t));Y&&(n.openCanceller._stackHolder=tt()),n.isBeingOpened=!0,n.dbOpenError=null,n.openComplete=!1;const r=n.openCanceller;function i(){if(n.openCanceller!==r)throw new ht.DatabaseClosed("db.open() was cancelled")}let s=n.dbReadyResolve,o=null,u=!1;return Wt.race([r,(typeof navigator>"u"?Wt.resolve():We()).then((()=>new Wt(((r,s)=>{if(i(),!e)throw new ht.MissingAPI;const a=t.name,c=n.autoSchema?e.open(a):e.open(a,Math.round(10*t.verno));if(!c)throw new ht.MissingAPI;c.onerror=ve(s),c.onblocked=un(t._fireOnBlocked),c.onupgradeneeded=un((r=>{if(o=c.transaction,n.autoSchema&&!t._options.allowEmptyDB){c.onerror=we,o.abort(),c.result.close();const t=e.deleteDatabase(a);t.onsuccess=t.onerror=un((()=>{s(new ht.NoSuchDatabase(`Database ${a} doesnt exist`))}))}else{o.onerror=ve(s);var i=r.oldVersion>Math.pow(2,62)?0:r.oldVersion;u=i<1,t._novip.idbdb=c.result,Ke(t,i/10,o,s)}}),s),c.onsuccess=un((()=>{o=null;const e=t._novip.idbdb=c.result,i=E(e.objectStoreNames);if(i.length>0)try{const r=e.transaction((s=i).length===1?s[0]:s,"readonly");n.autoSchema?function({_novip:t},n,e){t.verno=n.version/10;const r=t._dbSchema=Ne(0,n,e);t._storeNames=E(n.objectStoreNames,0),je(t,[t._allTables],y(r),r)}(t,e,r):(Me(t,t._dbSchema,r),function(t,n){const e=Be(Ne(0,t.idbdb,n),t._dbSchema);return!(e.add.length||e.change.some((t=>t.add.length||t.change.length)))}(t,r)||console.warn("Dexie SchemaDiff: Schema was extended without increasing the number passed to db.version(). Some queries may fail.")),De(t,r)}catch{}var s;Kn.push(t),e.onversionchange=un((e=>{n.vcFired=!0,t.on("versionchange").fire(e)})),e.onclose=un((n=>{t.on("close").fire(n)})),u&&function({indexedDB:t,IDBKeyRange:n},e){!Ue(t)&&e!==Mn&&Le(t,n).put({name:e}).catch(pt)}(t._deps,a),r()}),s)}))))]).then((()=>(i(),n.onReadyBeingFired=[],Wt.resolve(Ve((()=>t.on.ready.fire(t.vip)))).then((function e(){if(n.onReadyBeingFired.length>0){let r=n.onReadyBeingFired.reduce($t,pt);return n.onReadyBeingFired=[],Wt.resolve(Ve((()=>r(t.vip)))).then(e)}}))))).finally((()=>{n.onReadyBeingFired=null,n.isBeingOpened=!1})).then((()=>t)).catch((e=>{n.dbOpenError=e;try{o&&o.abort()}catch{}return r===n.openCanceller&&t._close(),En(e)})).finally((()=>{n.openComplete=!0,s()}))}function Ge(t){var n=n=>t.next(n),e=i(n),r=i((n=>t.throw(n)));function i(t){return n=>{var i=t(n),s=i.value;return i.done?s:s&&typeof s.then=="function"?s.then(e,r):v(s)?Promise.all(s).then(e,r):e(s)}}return i(n)()}function ze(t,n,e){var r=arguments.length;if(r<2)throw new ht.InvalidArgument("Too few arguments");for(var i=new Array(r-1);--r;)i[r-1]=arguments[r];return e=i.pop(),[t,_(i),e]}function Je(t,n,e,r,i){return Wt.resolve().then((()=>{const s=Ft.transless||Ft,o=t._createTransaction(n,e,t._dbSchema,r),u={trans:o,transless:s};if(r)o.idbtrans=r.idbtrans;else try{o.create(),t._state.PR1398_maxLoop=3}catch(r){return r.name===ct.InvalidState&&t.isOpen()&&--t._state.PR1398_maxLoop>0?(console.warn("Dexie: Need to reopen db"),t._close(),t.open().then((()=>Je(t,n,e,null,i)))):En(r)}const a=J(i);let c;a&&yn();const l=Wt.follow((()=>{if(c=i.call(o,o),c)if(a){var t=vn.bind(null,null);c.then(t,t)}else typeof c.next=="function"&&typeof c.throw=="function"&&(c=Ge(c))}),u);return(c&&typeof c.then=="function"?Wt.resolve(c).then((t=>o.active?t:En(new ht.PrematureCommit("Transaction committed too early. See http://bit.ly/2kdckMn")))):l.then((()=>c))).then((t=>(r&&o._resolve(),o._completion.then((()=>t))))).catch((t=>(o._reject(t),En(t))))}))}function Ye(t,n,e){const r=v(t)?t.slice():[t];for(let t=0;t<e;++t)r.push(n);return r}const Qe={stack:"dbcore",name:"VirtualIndexMiddleware",level:1,create:function(t){return{...t,table(n){const e=t.table(n),{schema:r}=e,i={},s=[];function o(t,n,e){const r=Oe(t),u=i[r]=i[r]||[],a=t==null?0:typeof t=="string"?1:t.length,c=n>0,l={...e,isVirtual:c,keyTail:n,keyLength:a,extractKey:xe(t),unique:!c&&e.unique};return u.push(l),l.isPrimaryKey||s.push(l),a>1&&o(a===2?t[0]:t.slice(0,a-1),n+1,e),u.sort(((t,n)=>t.keyTail-n.keyTail)),l}const u=o(r.primaryKey.keyPath,0,r.primaryKey);i[":id"]=[u];for(const t of r.indexes)o(t.keyPath,0,t);function a(n){const e=n.query.index;return e.isVirtual?{...n,query:{index:e,range:(r=n.query.range,i=e.keyTail,{type:r.type===1?2:r.type,lower:Ye(r.lower,r.lowerOpen?t.MAX_KEY:t.MIN_KEY,i),lowerOpen:!0,upper:Ye(r.upper,r.upperOpen?t.MIN_KEY:t.MAX_KEY,i),upperOpen:!0})}}:n;var r,i}return{...e,schema:{...r,primaryKey:u,indexes:s,getIndexByKeyPath:function(t){const n=i[Oe(t)];return n&&n[0]}},count:t=>e.count(a(t)),query:t=>e.query(a(t)),openCursor(n){const{keyTail:r,isVirtual:i,keyLength:s}=n.query.index;return i?e.openCursor(a(n)).then((e=>e&&function(e){return Object.create(e,{continue:{value:function(i){i!=null?e.continue(Ye(i,n.reverse?t.MAX_KEY:t.MIN_KEY,r)):n.unique?e.continue(e.key.slice(0,s).concat(n.reverse?t.MIN_KEY:t.MAX_KEY,r)):e.continue()}},continuePrimaryKey:{value(n,i){e.continuePrimaryKey(Ye(n,t.MAX_KEY,r),i)}},primaryKey:{get:()=>e.primaryKey},key:{get(){const t=e.key;return s===1?t[0]:t.slice(0,s)}},value:{get:()=>e.value}})}(e))):e.openCursor(n)}}}}}};function Xe(t,n,e,r){return e=e||{},r=r||"",y(t).forEach((i=>{if(b(n,i)){var s=t[i],o=n[i];if(typeof s=="object"&&typeof o=="object"&&s&&o){const t=V(s);t!==V(o)?e[r+i]=n[i]:t==="Object"?Xe(s,o,e,r+i+"."):s!==o&&(e[r+i]=n[i])}else s!==o&&(e[r+i]=n[i])}else e[r+i]=void 0})),y(n).forEach((i=>{b(t,i)||(e[r+i]=n[i])})),e}const Ze={stack:"dbcore",name:"HooksMiddleware",level:2,create:t=>({...t,table(n){const e=t.table(n),{primaryKey:r}=e.schema;return{...e,mutate(t){const i=Ft.trans,{deleting:s,creating:o,updating:u}=i.table(n).hook;switch(t.type){case"add":if(o.fire===pt)break;return i._promise("readwrite",(()=>a(t)),!0);case"put":if(o.fire===pt&&u.fire===pt)break;return i._promise("readwrite",(()=>a(t)),!0);case"delete":if(s.fire===pt)break;return i._promise("readwrite",(()=>a(t)),!0);case"deleteRange":if(s.fire===pt)break;return i._promise("readwrite",(()=>function(t){return c(t.trans,t.range,1e4)}(t)),!0)}return e.mutate(t);function a(t){const n=Ft.trans,i=t.keys||function(t,n){return n.type==="delete"?n.keys:n.keys||n.values.map(t.extractKey)}(r,t);if(!i)throw new Error("Keys missing");return(t=t.type==="add"||t.type==="put"?{...t,keys:i}:{...t}).type!=="delete"&&(t.values=[...t.values]),t.keys&&(t.keys=[...t.keys]),function(t,n,e){return n.type==="add"?Promise.resolve([]):t.getMany({trans:n.trans,keys:e,cache:"immutable"})}(e,t,i).then((a=>{const c=i.map(((e,i)=>{const c=a[i],l={onerror:null,onsuccess:null};if(t.type==="delete")s.fire.call(l,e,c,n);else if(t.type==="add"||c===void 0){const s=o.fire.call(l,e,t.values[i],n);e==null&&s!=null&&(e=s,t.keys[i]=e,r.outbound||R(t.values[i],r.keyPath,e))}else{const r=Xe(c,t.values[i]),s=u.fire.call(l,r,e,c,n);if(s){const n=t.values[i];Object.keys(s).forEach((t=>{b(n,t)?n[t]=s[t]:R(n,t,s[t])}))}}return l}));return e.mutate(t).then((({failures:n,results:e,numFailures:r,lastResult:s})=>{for(let r=0;r<i.length;++r){const s=e?e[r]:i[r],o=c[r];s==null?o.onerror&&o.onerror(n[r]):o.onsuccess&&o.onsuccess(t.type==="put"&&a[r]?t.values[r]:s)}return{failures:n,results:e,numFailures:r,lastResult:s}})).catch((t=>(c.forEach((n=>n.onerror&&n.onerror(t))),Promise.reject(t))))}))}function c(t,n,i){return e.query({trans:t,values:!1,query:{index:r,range:n},limit:i}).then((({result:e})=>a({type:"delete",keys:e,trans:t}).then((r=>r.numFailures>0?Promise.reject(r.failures[0]):e.length<i?{failures:[],numFailures:0,lastResult:void 0}:c(t,{...n,lower:e[e.length-1],lowerOpen:!0},i)))))}}}}})};function tr(t,n,e){try{if(!n||n.keys.length<t.length)return null;const r=[];for(let i=0,s=0;i<n.keys.length&&s<t.length;++i)ee(n.keys[i],t[s])===0&&(r.push(e?F(n.values[i]):n.values[i]),++s);return r.length===t.length?r:null}catch{return null}}const nr={stack:"dbcore",level:-1,create:t=>({table:n=>{const e=t.table(n);return{...e,getMany:t=>{if(!t.cache)return e.getMany(t);const n=tr(t.keys,t.trans._cache,t.cache==="clone");return n?Wt.resolve(n):e.getMany(t).then((n=>(t.trans._cache={keys:t.keys,values:t.cache==="clone"?F(n):n},n)))},mutate:t=>(t.type!=="add"&&(t.trans._cache=null),e.mutate(t))}}})};function er(t){return!("from"in t)}const rr=function(t,n){if(!this){const n=new rr;return t&&"d"in t&&w(n,t),n}w(this,arguments.length?{d:1,from:t,to:arguments.length>1?n:t}:{d:0})};function ir(t,n,e){const r=ee(n,e);if(isNaN(r))return;if(r>0)throw RangeError();if(er(t))return w(t,{from:n,to:e,d:1});const i=t.l,s=t.r;if(ee(e,t.from)<0)return i?ir(i,n,e):t.l={from:n,to:e,d:1,l:null,r:null},ar(t);if(ee(n,t.to)>0)return s?ir(s,n,e):t.r={from:n,to:e,d:1,l:null,r:null},ar(t);ee(n,t.from)<0&&(t.from=n,t.l=null,t.d=s?s.d+1:1),ee(e,t.to)>0&&(t.to=e,t.r=null,t.d=t.l?t.l.d+1:1);const o=!t.r;i&&!t.l&&sr(t,i),s&&o&&sr(t,s)}function sr(t,n){er(n)||function t(n,{from:e,to:r,l:i,r:s}){ir(n,e,r),i&&t(n,i),s&&t(n,s)}(t,n)}function or(t,n){const e=ur(n);let r=e.next();if(r.done)return!1;let i=r.value;const s=ur(t);let o=s.next(i.from),u=o.value;for(;!r.done&&!o.done;){if(ee(u.from,i.to)<=0&&ee(u.to,i.from)>=0)return!0;ee(i.from,u.from)<0?i=(r=e.next(u.from)).value:u=(o=s.next(i.from)).value}return!1}function ur(t){let n=er(t)?null:{s:0,n:t};return{next(t){const e=arguments.length>0;for(;n;)switch(n.s){case 0:if(n.s=1,e)for(;n.n.l&&ee(t,n.n.from)<0;)n={up:n,n:n.n.l,s:1};else for(;n.n.l;)n={up:n,n:n.n.l,s:1};case 1:if(n.s=2,!e||ee(t,n.n.to)<=0)return{value:n.n,done:!1};case 2:if(n.n.r){n.s=3,n={up:n,n:n.n.r,s:0};continue}case 3:n=n.up}return{done:!0}}}}function ar(t){var n,e;const r=(((n=t.r)===null||n===void 0?void 0:n.d)||0)-(((e=t.l)===null||e===void 0?void 0:e.d)||0),i=r>1?"r":r<-1?"l":"";if(i){const n=i==="r"?"l":"r",e={...t},r=t[i];t.from=r.from,t.to=r.to,t[i]=r[i],e[i]=r[n],t[n]=e,e.d=cr(e)}t.d=cr(t)}function cr({r:t,l:n}){return(t?n?Math.max(t.d,n.d):t.d:n?n.d:0)+1}k(rr.prototype,{add(t){return sr(this,t),this},addKey(t){return ir(this,t,t),this},addKeys(t){return t.forEach((t=>ir(this,t,t))),this},[W](){return ur(this)}});const lr={stack:"dbcore",level:0,create:t=>{const n=t.schema.name,e=new rr(t.MIN_KEY,t.MAX_KEY);return{...t,table:r=>{const i=t.table(r),{schema:s}=i,{primaryKey:o}=s,{extractKey:u,outbound:a}=o,c={...i,mutate:t=>{const o=t.trans,u=o.mutatedParts||(o.mutatedParts={}),a=t=>{const e=`idb://${n}/${r}/${t}`;return u[e]||(u[e]=new rr)},c=a(""),l=a(":dels"),{type:h}=t;let[f,d]=t.type==="deleteRange"?[t.range]:t.type==="delete"?[t.keys]:t.values.length<50?[[],t.values]:[];const p=t.trans._cache;return i.mutate(t).then((t=>{if(v(f)){h!=="delete"&&(f=t.results),c.addKeys(f);const n=tr(f,p);n||h==="add"||l.addKeys(f),(n||d)&&function(t,n,e,r){function i(n){const i=t(n.name||"");function s(t){return t!=null?n.extractKey(t):null}const o=t=>n.multiEntry&&v(t)?t.forEach((t=>i.addKey(t))):i.addKey(t);(e||r).forEach(((t,n)=>{const i=e&&s(e[n]),u=r&&s(r[n]);ee(i,u)!==0&&(i!=null&&o(i),u!=null&&o(u))}))}n.indexes.forEach(i)}(a,s,n,d)}else if(f){const t={from:f.lower,to:f.upper};l.add(t),c.add(t)}else c.add(e),l.add(e),s.indexes.forEach((t=>a(t.name).add(e)));return t}))}},l=({query:{index:n,range:e}})=>{var r,i;return[n,new rr((r=e.lower)!==null&&r!==void 0?r:t.MIN_KEY,(i=e.upper)!==null&&i!==void 0?i:t.MAX_KEY)]},h={get:t=>[o,new rr(t.key)],getMany:t=>[o,(new rr).addKeys(t.keys)],count:l,query:l,openCursor:l};return y(h).forEach((t=>{c[t]=function(s){const{subscr:o}=Ft;if(o){const c=t=>{const e=`idb://${n}/${r}/${t}`;return o[e]||(o[e]=new rr)},l=c(""),f=c(":dels"),[d,p]=h[t](s);if(c(d.name||"").add(p),!d.isPrimaryKey){if(t!=="count"){const n=t==="query"&&a&&s.values&&i.query({...s,values:!1});return i[t].apply(this,arguments).then((e=>{if(t==="query"){if(a&&s.values)return n.then((({result:t})=>(l.addKeys(t),e)));const t=s.values?e.result.map(u):e.result;s.values?l.addKeys(t):f.addKeys(t)}else if(t==="openCursor"){const t=e,n=s.values;return t&&Object.create(t,{key:{get:()=>(f.addKey(t.primaryKey),t.key)},primaryKey:{get(){const n=t.primaryKey;return f.addKey(n),n}},value:{get:()=>(n&&l.addKey(t.primaryKey),t.value)}})}return e}))}f.add(e)}}return i[t].apply(this,arguments)}})),c}}}};class hr{constructor(t,n){this._middlewares={},this.verno=0;const e=hr.dependencies;this._options=n={addons:hr.addons,autoOpen:!0,indexedDB:e.indexedDB,IDBKeyRange:e.IDBKeyRange,...n},this._deps={indexedDB:n.indexedDB,IDBKeyRange:n.IDBKeyRange};const{addons:r}=n;this._dbSchema={},this._versions=[],this._storeNames=[],this._allTables={},this.idbdb=null,this._novip=this;const i={dbOpenError:null,isBeingOpened:!1,onReadyBeingFired:null,openComplete:!1,dbReadyResolve:pt,dbReadyPromise:null,cancelOpen:pt,openCanceller:null,autoSchema:!0,PR1398_maxLoop:3};var s;i.dbReadyPromise=new Wt((t=>{i.dbReadyResolve=t})),i.openCanceller=new Wt(((t,n)=>{i.cancelOpen=n})),this._state=i,this.name=t,this.on=Gn(this,"populate","blocked","versionchange","close",{ready:[$t,pt]}),this.on.ready.subscribe=O(this.on.ready.subscribe,(t=>(n,e)=>{hr.vip((()=>{const r=this._state;if(r.openComplete)r.dbOpenError||Wt.resolve().then(n),e&&t(n);else if(r.onReadyBeingFired)r.onReadyBeingFired.push(n),e&&t(n);else{t(n);const r=this;e||t((function t(){r.on.ready.unsubscribe(n),r.on.ready.unsubscribe(t)}))}}))})),this.Collection=(s=this,zn(se.prototype,(function(t,n){this.db=s;let e=Vn,r=null;if(n)try{e=n()}catch(t){r=t}const i=t._ctx,o=i.table,u=o.hook.reading.fire;this._ctx={table:o,index:i.index,isPrimKey:!i.index||o.schema.primKey.keyPath&&i.index===o.schema.primKey.name,range:e,keysOnly:!1,dir:"next",unique:"",algorithm:null,filter:null,replayFilter:null,justLimit:!0,isMatch:null,offset:0,limit:1/0,error:r,or:i.or,valueMapper:u!==yt?u:null}}))),this.Table=function(t){return zn(Hn.prototype,(function(n,e,r){this.db=t,this._tx=r,this.name=n,this.schema=e,this.hook=t._allTables[n]?t._allTables[n].hook:Gn(null,{creating:[gt,pt],reading:[vt,yt],updating:[bt,pt],deleting:[mt,pt]})}))}(this),this.Transaction=function(t){return zn(ke.prototype,(function(n,e,r,i,s){this.db=t,this.mode=n,this.storeNames=e,this.schema=r,this.chromeTransactionDurability=i,this.idbtrans=null,this.on=Gn(this,"complete","error","abort"),this.parent=s||null,this.active=!0,this._reculock=0,this._blockedFuncs=[],this._resolve=null,this._reject=null,this._waitingFor=null,this._waitingQueue=null,this._spinCount=0,this._completion=new Wt(((t,n)=>{this._resolve=t,this._reject=n})),this._completion.then((()=>{this.active=!1,this.on.complete.fire()}),(t=>{var n=this.active;return this.active=!1,this.on.error.fire(t),this.parent?this.parent._reject(t):n&&this.idbtrans&&this.idbtrans.abort(),En(t)}))}))}(this),this.Version=function(t){return zn(Fe.prototype,(function(n){this.db=t,this._cfg={version:n,storesSource:null,dbschema:{},tables:{},contentUpgrade:null}}))}(this),this.WhereClause=function(t){return zn(ye.prototype,(function(n,e,r){this.db=t,this._ctx={table:n,index:e===":id"?null:e,or:r};const i=t._deps.indexedDB;if(!i)throw new ht.MissingAPI;this._cmp=this._ascending=i.cmp.bind(i),this._descending=(t,n)=>i.cmp(n,t),this._max=(t,n)=>i.cmp(t,n)>0?t:n,this._min=(t,n)=>i.cmp(t,n)<0?t:n,this._IDBKeyRange=t._deps.IDBKeyRange}))}(this),this.on("versionchange",(t=>{t.newVersion>0?console.warn(`Another connection wants to upgrade database '${this.name}'. Closing db now to resume the upgrade.`):console.warn(`Another connection wants to delete database '${this.name}'. Closing db now to resume the delete request.`),this.close()})),this.on("blocked",(t=>{!t.newVersion||t.newVersion<t.oldVersion?console.warn(`Dexie.delete('${this.name}') was blocked`):console.warn(`Upgrade '${this.name}' blocked by other connection holding version ${t.oldVersion/10}`)})),this._maxKey=Pe(n.IDBKeyRange),this._createTransaction=(t,n,e,r)=>new this.Transaction(t,n,e,this._options.chromeTransactionDurability,r),this._fireOnBlocked=t=>{this.on("blocked").fire(t),Kn.filter((t=>t.name===this.name&&t!==this&&!t._state.vcFired)).map((n=>n.on("versionchange").fire(t)))},this.use(Qe),this.use(Ze),this.use(lr),this.use(nr),this.vip=Object.create(this,{_vip:{value:!0}}),r.forEach((t=>t(this)))}version(t){if(isNaN(t)||t<.1)throw new ht.Type("Given version is not a positive number");if(t=Math.round(10*t)/10,this.idbdb||this._state.isBeingOpened)throw new ht.Schema("Cannot add version when database is open");this.verno=Math.max(this.verno,t);const n=this._versions;var e=n.filter((n=>n._cfg.version===t))[0];return e||(e=new this.Version(t),n.push(e),n.sort(Re),e.stores({}),this._state.autoSchema=!1,e)}_whenReady(t){return this.idbdb&&(this._state.openComplete||Ft.letThrough||this._vip)?t():new Wt(((t,n)=>{if(this._state.openComplete)return n(new ht.DatabaseClosed(this._state.dbOpenError));if(!this._state.isBeingOpened){if(!this._options.autoOpen)return void n(new ht.DatabaseClosed);this.open().catch(pt)}this._state.dbReadyPromise.then(t,n)})).then(t)}use({stack:t,create:n,level:e,name:r}){r&&this.unuse({stack:t,name:r});const i=this._middlewares[t]||(this._middlewares[t]=[]);return i.push({stack:t,create:n,level:e??10,name:r}),i.sort(((t,n)=>t.level-n.level)),this}unuse({stack:t,name:n,create:e}){return t&&this._middlewares[t]&&(this._middlewares[t]=this._middlewares[t].filter((t=>e?t.create!==e:!!n&&t.name!==n))),this}open(){return He(this)}_close(){const t=this._state,n=Kn.indexOf(this);if(n>=0&&Kn.splice(n,1),this.idbdb){try{this.idbdb.close()}catch{}this._novip.idbdb=null}t.dbReadyPromise=new Wt((n=>{t.dbReadyResolve=n})),t.openCanceller=new Wt(((n,e)=>{t.cancelOpen=e}))}close(){this._close();const t=this._state;this._options.autoOpen=!1,t.dbOpenError=new ht.DatabaseClosed,t.isBeingOpened&&t.cancelOpen(t.dbOpenError)}delete(){const t=arguments.length>0,n=this._state;return new Wt(((e,r)=>{const i=()=>{this.close();var t=this._deps.indexedDB.deleteDatabase(this.name);t.onsuccess=un((()=>{(function({indexedDB:t,IDBKeyRange:n},e){!Ue(t)&&e!==Mn&&Le(t,n).delete(e).catch(pt)})(this._deps,this.name),e()})),t.onerror=ve(r),t.onblocked=this._fireOnBlocked};if(t)throw new ht.InvalidArgument("Arguments not allowed in db.delete()");n.isBeingOpened?n.dbReadyPromise.then(i):i()}))}backendDB(){return this.idbdb}isOpen(){return this.idbdb!==null}hasBeenClosed(){const t=this._state.dbOpenError;return t&&t.name==="DatabaseClosed"}hasFailed(){return this._state.dbOpenError!==null}dynamicallyOpened(){return this._state.autoSchema}get tables(){return y(this._allTables).map((t=>this._allTables[t]))}transaction(){const t=ze.apply(this,arguments);return this._transaction.apply(this,t)}_transaction(t,n,e){let r=Ft.trans;r&&r.db===this&&t.indexOf("!")===-1||(r=null);const i=t.indexOf("?")!==-1;let s,o;t=t.replace("!","").replace("?","");try{if(o=n.map((t=>{var n=t instanceof this.Table?t.name:t;if(typeof n!="string")throw new TypeError("Invalid table argument to Dexie.transaction(). Only Table or String are allowed");return n})),t=="r"||t===Fn)s=Fn;else{if(t!="rw"&&t!=Ln)throw new ht.InvalidArgument("Invalid transaction mode: "+t);s=Ln}if(r){if(r.mode===Fn&&s===Ln){if(!i)throw new ht.SubTransaction("Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY");r=null}r&&o.forEach((t=>{if(r&&r.storeNames.indexOf(t)===-1){if(!i)throw new ht.SubTransaction("Table "+t+" not included in parent transaction.");r=null}})),i&&r&&!r.active&&(r=null)}}catch(t){return r?r._promise(null,((n,e)=>{e(t)})):En(t)}const u=Je.bind(null,this,s,o,r,e);return r?r._promise(s,u,"lock"):Ft.trans?$n(Ft.transless,(()=>this._whenReady(u))):this._whenReady(u)}table(t){if(!b(this._allTables,t))throw new ht.InvalidTable(`Table ${t} does not exist`);return this._allTables[t]}}const fr=typeof Symbol<"u"&&"observable"in Symbol?Symbol.observable:"@@observable";class dr{constructor(t){this._subscribe=t}subscribe(t,n,e){return this._subscribe(t&&typeof t!="function"?t:{next:t,error:n,complete:e})}[fr](){return this}}function pr(t,n){return y(n).forEach((e=>{sr(t[e]||(t[e]=new rr),n[e])})),t}function yr(t){let n,e=!1;const r=new dr((r=>{const i=J(t);let s=!1,o={},u={};const a={get closed(){return s},unsubscribe:()=>{s=!0,be.storagemutated.unsubscribe(f)}};r.start&&r.start(a);let c=!1,l=!1;function h(){return y(u).some((t=>o[t]&&or(o[t],u[t])))}const f=t=>{pr(o,t),h()&&d()},d=()=>{if(c||s)return;o={};const p={},y=function(n){i&&yn();const e=()=>pn(t,{subscr:n,trans:null}),r=Ft.trans?$n(Ft.transless,e):e();return i&&r.then(vn,vn),r}(p);l||(be(ge,f),l=!0),c=!0,Promise.resolve(y).then((t=>{e=!0,n=t,c=!1,s||(h()?d():(o={},u=p,r.next&&r.next(t)))}),(t=>{c=!1,e=!1,r.error&&r.error(t),a.unsubscribe()}))};return d(),a}));return r.hasValue=()=>e,r.getValue=()=>n,r}let vr;try{vr={indexedDB:p.indexedDB||p.mozIndexedDB||p.webkitIndexedDB||p.msIndexedDB,IDBKeyRange:p.IDBKeyRange||p.webkitIDBKeyRange}}catch{vr={indexedDB:null,IDBKeyRange:null}}const wr=hr;function gr(t){let n=mr;try{mr=!0,be.storagemutated.fire(t)}finally{mr=n}}k(wr,{...dt,delete:t=>new wr(t,{addons:[]}).delete(),exists:t=>new wr(t,{addons:[]}).open().then((t=>(t.close(),!0))).catch("NoSuchDatabaseError",(()=>!1)),getDatabaseNames(t){try{return function({indexedDB:t,IDBKeyRange:n}){return Ue(t)?Promise.resolve(t.databases()).then((t=>t.map((t=>t.name)).filter((t=>t!==Mn)))):Le(t,n).toCollection().primaryKeys()}(wr.dependencies).then(t)}catch{return En(new ht.MissingAPI)}},defineClass:()=>function(t){w(this,t)},ignoreTransaction:t=>Ft.trans?$n(Ft.transless,t):t(),vip:Ve,async:function(t){return function(){try{var n=Ge(t.apply(this,arguments));return n&&typeof n.then=="function"?n:Wt.resolve(n)}catch(t){return En(t)}}},spawn:function(t,n,e){try{var r=Ge(t.apply(e,n||[]));return r&&typeof r.then=="function"?r:Wt.resolve(r)}catch(t){return En(t)}},currentTransaction:{get:()=>Ft.trans||null},waitFor:function(t,n){const e=Wt.resolve(typeof t=="function"?wr.ignoreTransaction(t):t).timeout(n||6e4);return Ft.trans?Ft.trans.waitFor(e):e},Promise:Wt,debug:{get:()=>Y,set:t=>{Q(t,t==="dexie"?()=>!0:Nn)}},derive:A,extend:w,props:k,override:O,Events:Gn,on:be,liveQuery:yr,extendObservabilitySet:pr,getByKeyPath:I,setByKeyPath:R,delByKeyPath:function(t,n){typeof n=="string"?R(t,n,void 0):"length"in n&&[].map.call(n,(function(n){R(t,n,void 0)}))},shallowClone:K,deepClone:F,getObjectDiff:Xe,cmp:ee,asap:D,minKey:jn,addons:[],connections:Kn,errnames:ct,dependencies:vr,semVer:Tn,version:Tn.split(".").map((t=>parseInt(t))).reduce(((t,n,e)=>t+n/Math.pow(10,2*e)))}),wr.maxKey=Pe(wr.dependencies.IDBKeyRange),typeof dispatchEvent<"u"&&typeof addEventListener<"u"&&(be(ge,(t=>{if(!mr){let n;Bn?(n=document.createEvent("CustomEvent"),n.initCustomEvent(me,!0,!0,t)):n=new CustomEvent(me,{detail:t}),mr=!0,dispatchEvent(n),mr=!1}})),addEventListener(me,(({detail:t})=>{mr||gr(t)})));let mr=!1;if(typeof BroadcastChannel<"u"){const t=new BroadcastChannel(me);typeof t.unref=="function"&&t.unref(),be(ge,(n=>{mr||t.postMessage(n)})),t.onmessage=t=>{t.data&&gr(t.data)}}else if(typeof self<"u"&&typeof navigator<"u"){be(ge,(t=>{try{mr||(typeof localStorage<"u"&&localStorage.setItem(me,JSON.stringify({trig:Math.random(),changedParts:t})),typeof self.clients=="object"&&[...self.clients.matchAll({includeUncontrolled:!0})].forEach((n=>n.postMessage({type:me,changedParts:t}))))}catch{}})),typeof addEventListener<"u"&&addEventListener("storage",(t=>{if(t.key===me){const n=JSON.parse(t.newValue);n&&gr(n.changedParts)}}));const t=self.document&&navigator.serviceWorker;t&&t.addEventListener("message",(function({data:t}){t&&t.type===me&&gr(t.changedParts)}))}Wt.rejectionMapper=function(t,n){if(!t||t instanceof st||t instanceof TypeError||t instanceof SyntaxError||!t.name||!ft[t.name])return t;var e=new ft[t.name](n||t.message,t);return"stack"in t&&S(e,"stack",{get:function(){return this.inner.stack}}),e},Q(Y,Nn);class br extends hr{constructor(){super("NylasAuthDatabase");a(this,"grant");a(this,"pkce");this.version(1).stores({grant:"++id,token",pkce:"++id,codeVerifier"}),this.grant=this.table("grant"),this.pkce=this.table("pkce")}}class kr{constructor(){a(this,"theDB");this.theDB=new br}async setCodeVerifier(t){await this.theDB.pkce.put({id:1,codeVerifier:t},1)}async getCodeVerifier(){const[t]=await this.theDB.pkce.toArray();return t?t.codeVerifier:null}async getTokenInfo(){const t=await this.theDB.grant.get(1);return t?t.token:null}async setTokenInfo(t){await this.theDB.grant.put({id:1,token:t},1)}async reset(){await this.theDB.grant.clear()}}function $r(t){const n="NylasAuth";if(!t)throw new Error("NylasAuth requires a config object");let e=null;if(t.storageType==="indexeddb"&&(e=new kr),!e)throw new Error("NylasAuth requires a storage object");const r=[{type:"read-only",value:"https://www.googleapis.com/auth/gmail.readonly"},{type:"modify",value:"https://www.googleapis.com/auth/gmail.modify"},{type:"compose",value:"https://www.googleapis.com/auth/gmail.compose"},{type:"insert",value:"https://www.googleapis.com/auth/gmail.insert"},{type:"labels",value:"https://www.googleapis.com/auth/gmail.labels"},{type:"metadata",value:"https://www.googleapis.com/auth/gmail.metadata"},{type:"settings.basic",value:"https://www.googleapis.com/auth/gmail.settings.basic"},{type:"settings.sharing",value:"https://www.googleapis.com/auth/gmail.settings.sharing"}],i=[{type:"read-only",value:"https://outlook.office.com/mail.read"},{type:"modify",value:"https://outlook.office.com/mail.readwrite"},{type:"send",value:"https://outlook.office.com/mail.send"},{type:"offline",value:"offline_access"}];async function s(r,i,s,o=!0,u,a){const c=await(e==null?void 0:e.getTokenInfo()),l=new URL(r,u??t.apiUri),h=new Headers;h.append("Accept","application/json"),h.append("Content-Type","application/json"),h.append("User-Agent",n),c&&h.append("Authorization",`Bearer ${c.access_token}`);const f=await fetch(l.toString(),{method:i||"GET",headers:h,mode:"cors",referrer:location.origin,body:s?JSON.stringify(s):void 0,...a||{}});return o?await f.json():f.body}return{config:t,async getHostedAuthRedirectURL(n=t.defaultScopes,r,i){const s=await d(Math.random().toString()),o=await d(s);await(e==null?void 0:e.setCodeVerifier(s));const u=new URL(`${t.apiUri}/v3/connect/auth`);return u.searchParams.set("client_id",t.clientId),u.searchParams.set("response_type","code"),u.searchParams.set("scope",n.join(" ")),u.searchParams.set("redirect_uri",t.redirectURI),u.searchParams.set("access_type","offline"),u.searchParams.set("code_challenge",o),u.searchParams.set("code_challenge_method","S256"),u.searchParams.set("options","rotate_refresh_token"),i&&u.searchParams.set("provider",i),r&&u.searchParams.set("login_hint",r),u.toString()},nylasAPIRequest:s,async exchangeAuthCodeForTokenInfo(n){if(!n)return null;const r=await(e==null?void 0:e.getCodeVerifier()),i=await this.nylasAPIRequest("/v3/connect/token","POST",{code:n,client_id:t.clientId,grant_type:"authorization_code",redirect_uri:t.redirectURI,code_verifier:r});return"error"in i||await(e==null?void 0:e.setTokenInfo(i)),i},async nylasDownloadFileRequest(r,i="GET",s){const o=await(e==null?void 0:e.getTokenInfo()),u=new URL(r,t.apiUri),a=new Headers;return a.append("Accept","application/json"),a.append("Content-Type","application/octet-stream"),a.append("User-Agent",n),o&&a.append("Authorization",`Bearer ${o.access_token}`),(await fetch(u.toString(),{method:i,headers:a,mode:"cors",referrer:location.origin,body:s?JSON.stringify(s):void 0})).blob()},async logout(){const t=await(e==null?void 0:e.getTokenInfo());t&&await this.nylasAPIRequest(`/v3/connect/revoke?token=${t.access_token}`,"POST"),await(e==null?void 0:e.reset())},async isAuthenticated(){return!!await(e==null?void 0:e.getTokenInfo())},async getTokenInfo(){const t=await(e==null?void 0:e.getTokenInfo());if(!t)return null;const{access_token:n,...r}=t;return r},async isAccessTokenValid(){const t=await(e==null?void 0:e.getTokenInfo());return t?"data"in await this.nylasAPIRequest(`/v3/connect/tokeninfo?id_token=${t.id_token}`,"GET"):!1},async refreshAccessToken(){const n=await(e==null?void 0:e.getTokenInfo());if(!n)return null;const r=await this.nylasAPIRequest("/v3/connect/token","POST",{client_id:t.clientId,grant_type:"refresh_token",refresh_token:n.refresh_token});return"error"in r||await(e==null?void 0:e.setTokenInfo(r)),r},async hasScopeByType(t="email",n){const s=await(e==null?void 0:e.getTokenInfo());if(!s)return!1;const o=s.scope.toLowerCase().split(" ");let u=[];const a=Array.isArray(n)?n:[n];return t==="email"&&(u=[...i,...r].filter((t=>a.includes(t.type)))),u.every((t=>o.includes(t.value)))},async hasScope(t){const n=await(e==null?void 0:e.getTokenInfo());if(!n)return!1;const r=n.scope.toLowerCase().split(" ");return(Array.isArray(t)?t:[t]).some((t=>r.includes(t.toLowerCase())))}}}export{s as N,h as X,$r as e,c as n};
|
|
2
|
+
//# sourceMappingURL=index.es-82b6efae.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{c as e}from"./index-89ee2ce0.js";export{N as NylasIdentityRequestWrapper}from"./nylas-api-request-
|
|
1
|
+
import{c as e}from"./index-89ee2ce0.js";export{N as NylasIdentityRequestWrapper}from"./nylas-api-request-51129e10.js";import"./index-3e0d6890.js";import"./utils-ac8fef1e.js";import"./utc-290d564f.js";const s=e({});export{s as NylasThemeStore};
|
|
2
2
|
//# sourceMappingURL=index.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as e,i as s,h as
|
|
1
|
+
import{r as e,i as s,h as a,e as l}from"./index-3e0d6890.js";import{l as r}from"./utils-ac8fef1e.js";import"./utc-290d564f.js";const t=':host{display:block;height:auto;--nylas-primary:#2563eb;--nylas-error:#cc4841;--nylas-error-pressed:#992222;--nylas-wraning:#f06c00;--nylas-success:#16a392;--nylas-info:#2b8fc2;--nylas-base-0:#ffffff;--nylas-base-25:#fcfcfd;--nylas-base-50:#f8f9fc;--nylas-base-100:#eaecf5;--nylas-base-200:#d5d9eb;--nylas-base-300:#b3b8d8;--nylas-base-400:#717bbc;--nylas-base-500:#4e5ba6;--nylas-base-600:#3e4784;--nylas-base-700:#263f72;--nylas-base-800:#293056;--nylas-base-900:#101323;--nylas-base-950:#0e101b;--nylas-color-blue-100:#e0e6f9;--nylas-border-radius:0.25rem;--nylas-border-radius-2x:0.5rem;--nylas-border-radius-3x:0.75rem;--nylas-font-family:"Inter", sans-serif;--nylas-color-black:#000000;--nylas-color-grey-900:#2c2c2c;--nylas-color-grey-800:#4b4b4b;--nylas-color-grey-700:#6e6e6e;--nylas-color-grey-600:#8e8e8e;--nylas-color-grey-500:#b3b3b3;--nylas-color-grey-400:#cacaca;--nylas-color-grey-300:#e1e1e1;--nylas-color-grey-200:#eaeaea;--nylas-color-grey-100:#f5f5f5;--nylas-color-grey-50:#fbfcfe;--nylas-color-white:#ffffff;--nylas-color-red-900:#992222;--nylas-color-red-700:#cc4841;--nylas-color-red-500:#ff786a;--nylas-color-red-300:#ffa79e;--nylas-color-red-100:#ffc5bf;--nylas-color-red-50:#ffeae8;--nylas-color-blue-900:#213571;--nylas-color-blue-700:#314fa9;--nylas-color-blue-500:#4169e1;--nylas-color-blue-300:#bdccf9;--nylas-color-blue-100:#e0e6f9;--nylas-color-blue-50:#f6f8fd;--nylas-color-yellow-900:#7c6506;--nylas-color-yellow-700:#c29f09;--nylas-color-yellow-500:#f7c90b;--nylas-color-yellow-300:#f9de70;--nylas-color-yellow-100:#fceba9;--nylas-color-yellow-50:#fdf4ce;--nylas-color-green-900:#0e6b60;--nylas-color-green-700:#16a392;--nylas-color-green-500:#17c3b2;--nylas-color-green-300:#74dbd1;--nylas-color-green-100:#a2e7e0;--nylas-color-green-50:#d1f3f0;--nylas-color-purple-900:#643554;--nylas-color-purple-700:#954f7d;--nylas-color-purple-500:#c769a7;--nylas-color-purple-300:#dda5ca;--nylas-color-purple-100:#e0bdd6;--nylas-color-purple-50:#e9dde5;--nylas-color-sky-900:#20698f;--nylas-color-sky-700:#2b8fc2;--nylas-color-sky-500:#6dceff;--nylas-color-sky-300:#8fdaff;--nylas-color-sky-100:#b8e7ff;--nylas-color-sky-50:#d9f2ff;width:100%}label{display:flex;color:var(--nylas-base-800, #293056);font-size:14px;font-style:normal;font-weight:400;line-height:150%;flex-direction:column;gap:4px;font-family:var(--nylas-font-family);font-size:16px;color:var(--nylas-base-800)}label.error{color:var(--nylas-error)}label span.required{color:var(--nylas-error);padding:0 0.25rem}label p{margin:0}label .error{color:var(--nylas-error)}.input_wrapper{display:flex;align-items:center;gap:1rem}input[type=text],input[type=number],input[type=email],input[type=phone_number]{display:flex;height:48px;padding-left:16px;align-items:center;gap:8px;align-self:stretch;border-radius:var(--nylas-border-radius-2x);border:1px solid var(--nylas-base-300);background:var(--nylas-base-0);width:-webkit-fill-available;color:var(--nylas-base-900);font-size:16px;font-style:normal;font-weight:400;line-height:150%;width:-moz-available;width:-webkit-fill-available}input[type=text]:focus,input[type=number]:focus,input[type=email]:focus,input[type=phone_number]:focus{outline-color:var(--nylas-primary)}input[type=text].error,input[type=number].error,input[type=email].error,input[type=phone_number].error{border-radius:var(--nylas-border-radius-2x);font-weight:600;border-color:var(--nylas-error);border-width:2px}input[type=text].error::placeholder,input[type=number].error::placeholder,input[type=email].error::placeholder,input[type=phone_number].error::placeholder{font-weight:400}input[type=text]::placeholder,input[type=number]::placeholder,input[type=email]::placeholder,input[type=phone_number]::placeholder{color:var(--nylas-base-300)}input:read-only{background-color:var(--nylas-base-100);cursor:not-allowed}';const n={email:/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,phone_number:/^\+?\d{1,15}$/};const i={email:"name@example.com",phone_number:"1234567890"};const o=class{constructor(a){e(this,a);this.nylasFormInputChanged=s(this,"nylasFormInputChanged",7);this.nylasFormInputFocused=s(this,"nylasFormInputFocused",7);this.nylasFormInputBlurred=s(this,"nylasFormInputBlurred",7);this.name="input";this.defaultValue=undefined;this.label="";this.type="text";this.placeholder=i[this.type];this.required=false;this.readOnly=false;this.autoFocus=false;this.pattern=undefined;this.maxLength=255;this.patternError="";this.requiredError="";this.maxValue=undefined;this.minValue=undefined;this.value=undefined;this.error=""}handleDefaultValueChange(e){this.value=r(e);if(this.value){this.validatePattern(this.value)}}componentDidLoad(){this.value=r(this.defaultValue||"");if(this.type!=="text"&&!this.pattern){this.pattern=n[this.type]}if(this.value){this.validatePattern(this.value)}}handleBookingFormSubmitted(e){this.validatePattern(this.value);if(this.error){e.preventDefault()}}async handleFormSubmitted(e){if(this.el?.getAttribute("data-page-styling")){this.validatePattern(this.value);if(this.error){e.preventDefault()}}}handleInput(e){this.error="";const s=e.target.value;if(this.type==="number"){const e=parseFloat(s);if(this.maxValue!==undefined&&e>this.maxValue||this.minValue!==undefined&&e<this.minValue){if(this.minValue===undefined){this.error=`Value must be less than ${this.maxValue}`}else if(this.maxValue===undefined){this.error=`Value must be greater than ${this.minValue}`}else{this.error=`Value must be between ${this.minValue} and ${this.maxValue}`}}else if(isNaN(e)){this.error=this.patternError||"Invalid format."}}this.value=r(s);this.nylasFormInputChanged.emit({value:this.value,name:this.name,label:this.label,error:this.error,type:this.type})}handleBlur(){this.nylasFormInputBlurred.emit({value:this.value,name:this.name})}handleFocus(){this.nylasFormInputFocused.emit({value:this.value,name:this.name})}validatePattern(e){this.error="";if(this.required&&!e){this.error=this.requiredError||"This field is required.";return}if(this.type==="number"&&e){const s=parseFloat(e);if(this.maxValue!==undefined&&s>this.maxValue||this.minValue!==undefined&&s<this.minValue){this.error=`Value must be between ${this.minValue} and ${this.maxValue}`;return}}if(this.pattern&&e&&!this.pattern.test(e)){this.error=this.patternError||"Invalid format."}}render(){return a("label",{key:"e993ec134622eeed719e170c454e7ec29879d444",part:this.error?"ic__label ic__label--error":"ic__label",class:{error:!!this.error}},this.label&&a("p",null,a("span",{class:"label"},this.label),this.required&&a("span",{class:"required"},"*")),a("div",{key:"3685c05f586fc78d77888ae3e8e3167c5c1bbd0c",part:"ic__input_wrapper",class:"input_wrapper"},a("input",{key:"c8aad7e2f76e2ef88a9af6864243c2620d805fb1",type:this.type,name:this.name,part:this.error?"ic__input ic__input--error":"ic__input",title:this.readOnly?"read-only field":undefined,readOnly:this.readOnly,autoFocus:this.autoFocus,value:this.value,maxLength:this.maxLength,max:this.type==="number"?this.maxValue:undefined,min:this.type==="number"?this.minValue:undefined,placeholder:this.placeholder,class:{error:!!this.error},onInput:e=>this.handleInput(e),onFocus:()=>this.handleFocus(),onBlur:()=>this.handleBlur()}),a("slot",{key:"b7c031e9ddc0c81a241c6c3d9efae8c6c2c40274",name:"additional-input"})),this.error&&a("span",{class:"error help-text",part:"ic__error_message"},this.error))}get el(){return l(this)}static get watchers(){return{defaultValue:["handleDefaultValueChange"]}}};o.style=t;export{o as input_component};
|
|
2
2
|
//# sourceMappingURL=input-component.entry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["inputComponentCss","DefaultPattern","email","phone_number","DefaultPlaceholder","InputComponent","this","type","handleDefaultValueChange","newValue","value","sanitize","validatePattern","componentDidLoad","defaultValue","pattern","handleBookingFormSubmitted","event","error","preventDefault","handleFormSubmitted","el","getAttribute","handleInput","e","inputValue","target","numericValue","parseFloat","maxValue","undefined","minValue","nylasFormInputChanged","emit","name","label","handleBlur","nylasFormInputBlurred","handleFocus","nylasFormInputFocused","required","requiredError","test","patternError","render","h","key","part","class","title","readOnly","autoFocus","maxLength","max","min","placeholder","onInput","onFocus","onBlur"],"sources":["src/components/design-system/input-component/input-component.scss?tag=input-component&encapsulation=shadow","src/components/design-system/input-component/input-component.tsx"],"sourcesContent":["@import '../../../common/styles/variables.scss';\n@import '../../../common/mixins/inputs.scss';\n\n:host {\n display: block;\n height: auto;\n @include default-css-variables;\n width: 100%;\n}\n\nlabel {\n @include input-label;\n flex-direction: column;\n gap: 4px;\n font-family: var(--nylas-font-family);\n font-size: 16px;\n color: var(--nylas-base-800);\n\n p {\n margin: 0;\n }\n\n .error {\n color: var(--nylas-error);\n }\n}\n\n.input_wrapper {\n display: flex;\n align-items: center;\n gap: 1rem;\n}\n\ninput[type='text'],\ninput[type='number'],\ninput[type='email'],\ninput[type='phone_number'] {\n @include textfield;\n width: -moz-available;\n width: -webkit-fill-available;\n}\n\ninput:read-only {\n background-color: var(--nylas-base-100);\n cursor: not-allowed;\n}","import { Component, h, Prop, State, Event, EventEmitter, Listen, Watch, Element } from '@stencil/core';\nimport { sanitize } from '@/utils/utils';\n\nconst DefaultPattern = {\n email: /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,\n phone_number: /^\\+?\\d{1,15}$/,\n};\n\nconst DefaultPlaceholder = {\n email: 'name@example.com',\n phone_number: '1234567890',\n};\n\n/**\n * The `input-component` component is a UI component that allows users to input text, email, or phone number values.\n * This component is used in the scheduling form to input text, email and phone number type inputs.\n */\n\n@Component({\n tag: 'input-component',\n styleUrl: 'input-component.scss',\n shadow: true,\n})\nexport class InputComponent {\n /**\n * The host element\n */\n @Element() el!: HTMLElement;\n /**\n * The name of the input. This is used to identify the input when submitting a form.\n */\n @Prop() name: string = 'input';\n /**\n * The default value of the input. This is the value that is displayed when the input is rendered.\n */\n @Prop() defaultValue?: string;\n /**\n * The label of the input. This is displayed above the input.\n */\n @Prop() label: string = '';\n /**\n * The type of the input. This is used to determine the input's behavior.\n * Supported types are 'text', 'email', and 'phone_number'.\n */\n @Prop() type: 'text' | 'email' | 'phone_number' | 'number' = 'text';\n /**\n * The placeholder of the input. This is displayed when the input is empty.\n */\n @Prop() placeholder: string = DefaultPlaceholder[this.type];\n /**\n * Whether the input is required. If true, the input must have a value when submitting a form.\n * Default is false. If the input is required and the value is empty, an error message is displayed.\n */\n @Prop() required: boolean = false;\n /**\n * Whether the input is read-only. If true, the input cannot be edited.\n * Default is false.\n */\n @Prop() readOnly: boolean = false;\n /**\n * Whether the input should be focused when rendered.\n * Default is false. If true, the input is focused when rendered.\n * Use this to set the focus on the first input in a form.\n */\n @Prop() autoFocus: boolean = false;\n /**\n * The pattern to validate the input value. If the value does not match the pattern, an error message is displayed.\n * Default is null. If the pattern is not set, the pattern is determined by the input type for 'email' and 'phone_number'.\n */\n @Prop() pattern?: RegExp;\n /**\n * The maximum length of the input value. If the value is longer than the maximum length, an error message is displayed.\n * Default is 255.\n */\n @Prop() maxLength: number = 255;\n /**\n * The error message to display when the value does not match the pattern.\n * Default is 'Invalid <field> format.' where <field> is the input label.\n */\n @Prop() patternError: string = '';\n\n /**\n * This error message is displayed when the input value is empty and the input is required.\n */\n @Prop() requiredError: string = '';\n @Prop() maxValue?: number; // Optional max value for 'number'\n @Prop() minValue?: number; // Optional min value for 'number'\n\n /**\n * The input value state.\n */\n @State() value!: string;\n /**\n * The error message state.\n */\n @State() error: string = '';\n\n /**\n * This event is fired when the input value is changed.\n * The scheduling form listens for this event to validate the input value and submit the form.\n * If using outside of the scheduling form, listen for this event to validate the input value\n * and handle the input value change.\n */\n @Event() nylasFormInputChanged!: EventEmitter<{\n value: string;\n name: string;\n label: string;\n type: string;\n error: string;\n }>;\n\n @Event() nylasFormInputFocused!: EventEmitter<{\n value: string;\n name: string;\n }>;\n\n @Event() nylasFormInputBlurred!: EventEmitter<{\n value: string;\n name: string;\n }>;\n\n // Lifecycle methods\n @Watch('defaultValue')\n handleDefaultValueChange(newValue: string) {\n this.value = sanitize(newValue);\n if (this.value) {\n this.validatePattern(this.value);\n }\n }\n\n componentDidLoad() {\n this.value = sanitize(this.defaultValue || '');\n if (this.type !== 'text' && !this.pattern) {\n this.pattern = DefaultPattern[this.type];\n }\n\n if (this.value) {\n this.validatePattern(this.value);\n }\n }\n\n // Event listeners\n /**\n * Listen for the bookingFormSubmitted event to validate the input value when the form is submitted.\n */\n @Listen('bookingFormSubmitted', { target: 'document' })\n handleBookingFormSubmitted(event: CustomEvent) {\n this.validatePattern(this.value);\n if (this.error) {\n event.preventDefault();\n }\n }\n\n @Listen('formSubmitted', { target: 'document' })\n async handleFormSubmitted(event: CustomEvent) {\n if (this.el?.getAttribute('data-page-styling')) {\n this.validatePattern(this.value);\n if (this.error) {\n event.preventDefault();\n }\n }\n }\n\n // Methods\n handleInput(e: Event) {\n this.error = '';\n const inputValue = (e.target as HTMLInputElement).value;\n\n // For 'number', ensure the value is valid\n if (this.type === 'number') {\n const numericValue = parseFloat(inputValue);\n if ((this.maxValue !== undefined && numericValue > this.maxValue) || (this.minValue !== undefined && numericValue < this.minValue)) {\n this.error = `Value must be between ${this.minValue} and ${this.maxValue}`;\n }\n }\n\n this.value = sanitize(inputValue);\n this.nylasFormInputChanged.emit({\n value: this.value,\n name: this.name,\n label: this.label,\n error: this.error,\n type: this.type,\n });\n }\n\n handleBlur() {\n this.nylasFormInputBlurred.emit({\n value: this.value,\n name: this.name,\n });\n }\n\n handleFocus() {\n this.nylasFormInputFocused.emit({\n value: this.value,\n name: this.name,\n });\n }\n\n validatePattern(value: string) {\n // Reset error\n this.error = '';\n\n if (this.required && !value) {\n this.error = this.requiredError || 'This field is required.';\n return;\n }\n\n if (this.type === 'number' && value) {\n const numericValue = parseFloat(value);\n if ((this.maxValue !== undefined && numericValue > this.maxValue) || (this.minValue !== undefined && numericValue < this.minValue)) {\n this.error = `Value must be between ${this.minValue} and ${this.maxValue}`;\n return;\n }\n }\n\n if (this.pattern && value && !this.pattern.test(value)) {\n this.error = this.patternError || 'Invalid format.';\n }\n }\n\n render() {\n return (\n <label part=\"ic__label\" class={{ error: !!this.error }}>\n {this.label && (\n <p>\n <span class=\"label\">{this.label}</span>\n {this.required && <span class=\"required\">*</span>}\n </p>\n )}\n <div part=\"ic__input_wrapper\" class=\"input_wrapper\">\n <input\n type={this.type}\n name={this.name}\n part=\"ic__input\"\n title={this.readOnly ? 'read-only field' : undefined}\n readOnly={this.readOnly}\n autoFocus={this.autoFocus}\n value={this.value}\n maxLength={this.maxLength}\n max={this.type === 'number' ? this.maxValue : undefined}\n min={this.type === 'number' ? this.minValue : undefined}\n placeholder={this.placeholder}\n class={{ error: !!this.error }}\n onInput={e => this.handleInput(e)}\n onFocus={() => this.handleFocus()}\n onBlur={() => this.handleBlur()}\n />\n <slot name=\"additional-input\"></slot>\n </div>\n {this.error && <span class=\"error help-text\">{this.error}</span>}\n </label>\n );\n }\n}\n"],"mappings":"+HAAA,MAAMA,EAAoB,+uHCG1B,MAAMC,EAAiB,CACrBC,MAAO,uIACPC,aAAc,iBAGhB,MAAMC,EAAqB,CACzBF,MAAO,mBACPC,aAAc,c,MAaHE,EAAc,M,0NAQF,Q,uCAQC,G,UAKqC,O,iBAI/BD,EAAmBE,KAAKC,M,cAK1B,M,cAKA,M,eAMC,M,sCAUD,I,kBAKG,G,mBAKC,G,gFAWP,E,CA4BzB,wBAAAC,CAAyBC,GACvBH,KAAKI,MAAQC,EAASF,GACtB,GAAIH,KAAKI,MAAO,CACdJ,KAAKM,gBAAgBN,KAAKI,M,EAI9B,gBAAAG,GACEP,KAAKI,MAAQC,EAASL,KAAKQ,cAAgB,IAC3C,GAAIR,KAAKC,OAAS,SAAWD,KAAKS,QAAS,CACzCT,KAAKS,QAAUd,EAAeK,KAAKC,K,CAGrC,GAAID,KAAKI,MAAO,CACdJ,KAAKM,gBAAgBN,KAAKI,M,EAS9B,0BAAAM,CAA2BC,GACzBX,KAAKM,gBAAgBN,KAAKI,OAC1B,GAAIJ,KAAKY,MAAO,CACdD,EAAME,gB,EAKV,yBAAMC,CAAoBH,GACxB,GAAIX,KAAKe,IAAIC,aAAa,qBAAsB,CAC9ChB,KAAKM,gBAAgBN,KAAKI,OAC1B,GAAIJ,KAAKY,MAAO,CACdD,EAAME,gB,GAMZ,WAAAI,CAAYC,GACVlB,KAAKY,MAAQ,GACb,MAAMO,EAAcD,EAAEE,OAA4BhB,MAGlD,GAAIJ,KAAKC,OAAS,SAAU,CAC1B,MAAMoB,EAAeC,WAAWH,GAChC,GAAKnB,KAAKuB,WAAaC,WAAaH,EAAerB,KAAKuB,UAAcvB,KAAKyB,WAAaD,WAAaH,EAAerB,KAAKyB,SAAW,CAClIzB,KAAKY,MAAQ,yBAAyBZ,KAAKyB,gBAAgBzB,KAAKuB,U,EAIpEvB,KAAKI,MAAQC,EAASc,GACtBnB,KAAK0B,sBAAsBC,KAAK,CAC9BvB,MAAOJ,KAAKI,MACZwB,KAAM5B,KAAK4B,KACXC,MAAO7B,KAAK6B,MACZjB,MAAOZ,KAAKY,MACZX,KAAMD,KAAKC,M,CAIf,UAAA6B,GACE9B,KAAK+B,sBAAsBJ,KAAK,CAC9BvB,MAAOJ,KAAKI,MACZwB,KAAM5B,KAAK4B,M,CAIf,WAAAI,GACEhC,KAAKiC,sBAAsBN,KAAK,CAC9BvB,MAAOJ,KAAKI,MACZwB,KAAM5B,KAAK4B,M,CAIf,eAAAtB,CAAgBF,GAEdJ,KAAKY,MAAQ,GAEb,GAAIZ,KAAKkC,WAAa9B,EAAO,CAC3BJ,KAAKY,MAAQZ,KAAKmC,eAAiB,0BACnC,M,CAGF,GAAInC,KAAKC,OAAS,UAAYG,EAAO,CACnC,MAAMiB,EAAeC,WAAWlB,GAChC,GAAKJ,KAAKuB,WAAaC,WAAaH,EAAerB,KAAKuB,UAAcvB,KAAKyB,WAAaD,WAAaH,EAAerB,KAAKyB,SAAW,CAClIzB,KAAKY,MAAQ,yBAAyBZ,KAAKyB,gBAAgBzB,KAAKuB,WAChE,M,EAIJ,GAAIvB,KAAKS,SAAWL,IAAUJ,KAAKS,QAAQ2B,KAAKhC,GAAQ,CACtDJ,KAAKY,MAAQZ,KAAKqC,cAAgB,iB,EAItC,MAAAC,GACE,OACEC,EAAA,SAAAC,IAAA,2CAAOC,KAAK,YAAYC,MAAO,CAAE9B,QAASZ,KAAKY,QAC5CZ,KAAK6B,OACJU,EAAA,SACEA,EAAA,QAAMG,MAAM,SAAS1C,KAAK6B,OACzB7B,KAAKkC,UAAYK,EAAA,QAAMG,MAAM,YAAU,MAG5CH,EAAA,OAAAC,IAAA,2CAAKC,KAAK,oBAAoBC,MAAM,iBAClCH,EAAA,SAAAC,IAAA,2CACEvC,KAAMD,KAAKC,KACX2B,KAAM5B,KAAK4B,KACXa,KAAK,YACLE,MAAO3C,KAAK4C,SAAW,kBAAoBpB,UAC3CoB,SAAU5C,KAAK4C,SACfC,UAAW7C,KAAK6C,UAChBzC,MAAOJ,KAAKI,MACZ0C,UAAW9C,KAAK8C,UAChBC,IAAK/C,KAAKC,OAAS,SAAWD,KAAKuB,SAAWC,UAC9CwB,IAAKhD,KAAKC,OAAS,SAAWD,KAAKyB,SAAWD,UAC9CyB,YAAajD,KAAKiD,YAClBP,MAAO,CAAE9B,QAASZ,KAAKY,OACvBsC,QAAShC,GAAKlB,KAAKiB,YAAYC,GAC/BiC,QAAS,IAAMnD,KAAKgC,cACpBoB,OAAQ,IAAMpD,KAAK8B,eAErBS,EAAA,QAAAC,IAAA,2CAAMZ,KAAK,sBAEZ5B,KAAKY,OAAS2B,EAAA,QAAMG,MAAM,mBAAmB1C,KAAKY,O"}
|
|
1
|
+
{"version":3,"names":["inputComponentCss","DefaultPattern","email","phone_number","DefaultPlaceholder","InputComponent","this","type","handleDefaultValueChange","newValue","value","sanitize","validatePattern","componentDidLoad","defaultValue","pattern","handleBookingFormSubmitted","event","error","preventDefault","handleFormSubmitted","el","getAttribute","handleInput","e","inputValue","target","numericValue","parseFloat","maxValue","undefined","minValue","isNaN","patternError","nylasFormInputChanged","emit","name","label","handleBlur","nylasFormInputBlurred","handleFocus","nylasFormInputFocused","required","requiredError","test","render","h","key","part","class","title","readOnly","autoFocus","maxLength","max","min","placeholder","onInput","onFocus","onBlur"],"sources":["src/components/design-system/input-component/input-component.scss?tag=input-component&encapsulation=shadow","src/components/design-system/input-component/input-component.tsx"],"sourcesContent":["@import '../../../common/styles/variables.scss';\n@import '../../../common/mixins/inputs.scss';\n\n:host {\n display: block;\n height: auto;\n @include default-css-variables;\n width: 100%;\n}\n\nlabel {\n @include input-label;\n flex-direction: column;\n gap: 4px;\n font-family: var(--nylas-font-family);\n font-size: 16px;\n color: var(--nylas-base-800);\n\n p {\n margin: 0;\n }\n\n .error {\n color: var(--nylas-error);\n }\n}\n\n.input_wrapper {\n display: flex;\n align-items: center;\n gap: 1rem;\n}\n\ninput[type='text'],\ninput[type='number'],\ninput[type='email'],\ninput[type='phone_number'] {\n @include textfield;\n width: -moz-available;\n width: -webkit-fill-available;\n}\n\ninput:read-only {\n background-color: var(--nylas-base-100);\n cursor: not-allowed;\n}","import { Component, h, Prop, State, Event, EventEmitter, Listen, Watch, Element } from '@stencil/core';\nimport { sanitize } from '@/utils/utils';\n\nconst DefaultPattern = {\n email: /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,\n phone_number: /^\\+?\\d{1,15}$/,\n};\n\nconst DefaultPlaceholder = {\n email: 'name@example.com',\n phone_number: '1234567890',\n};\n\n/**\n * The `input-component` component is a UI component that allows users to input text, email, or phone number values.\n * This component is used in the scheduling form to input text, email and phone number type inputs.\n */\n\n@Component({\n tag: 'input-component',\n styleUrl: 'input-component.scss',\n shadow: true,\n})\nexport class InputComponent {\n /**\n * The host element\n */\n @Element() el!: HTMLElement;\n /**\n * The name of the input. This is used to identify the input when submitting a form.\n */\n @Prop() name: string = 'input';\n /**\n * The default value of the input. This is the value that is displayed when the input is rendered.\n */\n @Prop() defaultValue?: string;\n /**\n * The label of the input. This is displayed above the input.\n */\n @Prop() label: string = '';\n /**\n * The type of the input. This is used to determine the input's behavior.\n * Supported types are 'text', 'email', and 'phone_number'.\n */\n @Prop() type: 'text' | 'email' | 'phone_number' | 'number' = 'text';\n /**\n * The placeholder of the input. This is displayed when the input is empty.\n */\n @Prop() placeholder: string = DefaultPlaceholder[this.type];\n /**\n * Whether the input is required. If true, the input must have a value when submitting a form.\n * Default is false. If the input is required and the value is empty, an error message is displayed.\n */\n @Prop() required: boolean = false;\n /**\n * Whether the input is read-only. If true, the input cannot be edited.\n * Default is false.\n */\n @Prop() readOnly: boolean = false;\n /**\n * Whether the input should be focused when rendered.\n * Default is false. If true, the input is focused when rendered.\n * Use this to set the focus on the first input in a form.\n */\n @Prop() autoFocus: boolean = false;\n /**\n * The pattern to validate the input value. If the value does not match the pattern, an error message is displayed.\n * Default is null. If the pattern is not set, the pattern is determined by the input type for 'email' and 'phone_number'.\n */\n @Prop() pattern?: RegExp;\n /**\n * The maximum length of the input value. If the value is longer than the maximum length, an error message is displayed.\n * Default is 255.\n */\n @Prop() maxLength: number = 255;\n /**\n * The error message to display when the value does not match the pattern.\n * Default is 'Invalid <field> format.' where <field> is the input label.\n */\n @Prop() patternError: string = '';\n\n /**\n * This error message is displayed when the input value is empty and the input is required.\n */\n @Prop() requiredError: string = '';\n @Prop() maxValue?: number; // Optional max value for 'number'\n @Prop() minValue?: number; // Optional min value for 'number'\n\n /**\n * The input value state.\n */\n @State() value!: string;\n /**\n * The error message state.\n */\n @State() error: string = '';\n\n /**\n * This event is fired when the input value is changed.\n * The scheduling form listens for this event to validate the input value and submit the form.\n * If using outside of the scheduling form, listen for this event to validate the input value\n * and handle the input value change.\n */\n @Event() nylasFormInputChanged!: EventEmitter<{\n value: string;\n name: string;\n label: string;\n type: string;\n error: string;\n }>;\n\n @Event() nylasFormInputFocused!: EventEmitter<{\n value: string;\n name: string;\n }>;\n\n @Event() nylasFormInputBlurred!: EventEmitter<{\n value: string;\n name: string;\n }>;\n\n // Lifecycle methods\n @Watch('defaultValue')\n handleDefaultValueChange(newValue: string) {\n this.value = sanitize(newValue);\n if (this.value) {\n this.validatePattern(this.value);\n }\n }\n\n componentDidLoad() {\n this.value = sanitize(this.defaultValue || '');\n if (this.type !== 'text' && !this.pattern) {\n this.pattern = DefaultPattern[this.type];\n }\n\n if (this.value) {\n this.validatePattern(this.value);\n }\n }\n\n // Event listeners\n /**\n * Listen for the bookingFormSubmitted event to validate the input value when the form is submitted.\n */\n @Listen('bookingFormSubmitted', { target: 'document' })\n handleBookingFormSubmitted(event: CustomEvent) {\n this.validatePattern(this.value);\n if (this.error) {\n event.preventDefault();\n }\n }\n\n @Listen('formSubmitted', { target: 'document' })\n async handleFormSubmitted(event: CustomEvent) {\n if (this.el?.getAttribute('data-page-styling')) {\n this.validatePattern(this.value);\n if (this.error) {\n event.preventDefault();\n }\n }\n }\n\n // Methods\n handleInput(e: Event) {\n this.error = '';\n const inputValue = (e.target as HTMLInputElement).value;\n\n // For 'number', ensure the value is valid\n if (this.type === 'number') {\n const numericValue = parseFloat(inputValue);\n if ((this.maxValue !== undefined && numericValue > this.maxValue) || (this.minValue !== undefined && numericValue < this.minValue)) {\n if (this.minValue === undefined) {\n this.error = `Value must be less than ${this.maxValue}`;\n } else if (this.maxValue === undefined) {\n this.error = `Value must be greater than ${this.minValue}`;\n } else {\n this.error = `Value must be between ${this.minValue} and ${this.maxValue}`;\n }\n } else if (isNaN(numericValue)) {\n this.error = this.patternError || 'Invalid format.';\n }\n }\n\n this.value = sanitize(inputValue);\n this.nylasFormInputChanged.emit({\n value: this.value,\n name: this.name,\n label: this.label,\n error: this.error,\n type: this.type,\n });\n }\n\n handleBlur() {\n this.nylasFormInputBlurred.emit({\n value: this.value,\n name: this.name,\n });\n }\n\n handleFocus() {\n this.nylasFormInputFocused.emit({\n value: this.value,\n name: this.name,\n });\n }\n\n validatePattern(value: string) {\n // Reset error\n this.error = '';\n\n if (this.required && !value) {\n this.error = this.requiredError || 'This field is required.';\n return;\n }\n\n if (this.type === 'number' && value) {\n const numericValue = parseFloat(value);\n if ((this.maxValue !== undefined && numericValue > this.maxValue) || (this.minValue !== undefined && numericValue < this.minValue)) {\n this.error = `Value must be between ${this.minValue} and ${this.maxValue}`;\n return;\n }\n }\n\n if (this.pattern && value && !this.pattern.test(value)) {\n this.error = this.patternError || 'Invalid format.';\n }\n }\n\n render() {\n return (\n <label part={this.error ? 'ic__label ic__label--error' : 'ic__label'} class={{ error: !!this.error }}>\n {this.label && (\n <p>\n <span class=\"label\">{this.label}</span>\n {this.required && <span class=\"required\">*</span>}\n </p>\n )}\n <div part=\"ic__input_wrapper\" class=\"input_wrapper\">\n <input\n type={this.type}\n name={this.name}\n part={this.error ? 'ic__input ic__input--error' : 'ic__input'}\n title={this.readOnly ? 'read-only field' : undefined}\n readOnly={this.readOnly}\n autoFocus={this.autoFocus}\n value={this.value}\n maxLength={this.maxLength}\n max={this.type === 'number' ? this.maxValue : undefined}\n min={this.type === 'number' ? this.minValue : undefined}\n placeholder={this.placeholder}\n class={{ error: !!this.error }}\n onInput={e => this.handleInput(e)}\n onFocus={() => this.handleFocus()}\n onBlur={() => this.handleBlur()}\n />\n <slot name=\"additional-input\"></slot>\n </div>\n {this.error && (\n <span class=\"error help-text\" part=\"ic__error_message\">\n {this.error}\n </span>\n )}\n </label>\n );\n }\n}\n"],"mappings":"+HAAA,MAAMA,EAAoB,+uHCG1B,MAAMC,EAAiB,CACrBC,MAAO,uIACPC,aAAc,iBAGhB,MAAMC,EAAqB,CACzBF,MAAO,mBACPC,aAAc,c,MAaHE,EAAc,M,0NAQF,Q,uCAQC,G,UAKqC,O,iBAI/BD,EAAmBE,KAAKC,M,cAK1B,M,cAKA,M,eAMC,M,sCAUD,I,kBAKG,G,mBAKC,G,gFAWP,E,CA4BzB,wBAAAC,CAAyBC,GACvBH,KAAKI,MAAQC,EAASF,GACtB,GAAIH,KAAKI,MAAO,CACdJ,KAAKM,gBAAgBN,KAAKI,M,EAI9B,gBAAAG,GACEP,KAAKI,MAAQC,EAASL,KAAKQ,cAAgB,IAC3C,GAAIR,KAAKC,OAAS,SAAWD,KAAKS,QAAS,CACzCT,KAAKS,QAAUd,EAAeK,KAAKC,K,CAGrC,GAAID,KAAKI,MAAO,CACdJ,KAAKM,gBAAgBN,KAAKI,M,EAS9B,0BAAAM,CAA2BC,GACzBX,KAAKM,gBAAgBN,KAAKI,OAC1B,GAAIJ,KAAKY,MAAO,CACdD,EAAME,gB,EAKV,yBAAMC,CAAoBH,GACxB,GAAIX,KAAKe,IAAIC,aAAa,qBAAsB,CAC9ChB,KAAKM,gBAAgBN,KAAKI,OAC1B,GAAIJ,KAAKY,MAAO,CACdD,EAAME,gB,GAMZ,WAAAI,CAAYC,GACVlB,KAAKY,MAAQ,GACb,MAAMO,EAAcD,EAAEE,OAA4BhB,MAGlD,GAAIJ,KAAKC,OAAS,SAAU,CAC1B,MAAMoB,EAAeC,WAAWH,GAChC,GAAKnB,KAAKuB,WAAaC,WAAaH,EAAerB,KAAKuB,UAAcvB,KAAKyB,WAAaD,WAAaH,EAAerB,KAAKyB,SAAW,CAClI,GAAIzB,KAAKyB,WAAaD,UAAW,CAC/BxB,KAAKY,MAAQ,2BAA2BZ,KAAKuB,U,MACxC,GAAIvB,KAAKuB,WAAaC,UAAW,CACtCxB,KAAKY,MAAQ,8BAA8BZ,KAAKyB,U,KAC3C,CACLzB,KAAKY,MAAQ,yBAAyBZ,KAAKyB,gBAAgBzB,KAAKuB,U,OAE7D,GAAIG,MAAML,GAAe,CAC9BrB,KAAKY,MAAQZ,KAAK2B,cAAgB,iB,EAItC3B,KAAKI,MAAQC,EAASc,GACtBnB,KAAK4B,sBAAsBC,KAAK,CAC9BzB,MAAOJ,KAAKI,MACZ0B,KAAM9B,KAAK8B,KACXC,MAAO/B,KAAK+B,MACZnB,MAAOZ,KAAKY,MACZX,KAAMD,KAAKC,M,CAIf,UAAA+B,GACEhC,KAAKiC,sBAAsBJ,KAAK,CAC9BzB,MAAOJ,KAAKI,MACZ0B,KAAM9B,KAAK8B,M,CAIf,WAAAI,GACElC,KAAKmC,sBAAsBN,KAAK,CAC9BzB,MAAOJ,KAAKI,MACZ0B,KAAM9B,KAAK8B,M,CAIf,eAAAxB,CAAgBF,GAEdJ,KAAKY,MAAQ,GAEb,GAAIZ,KAAKoC,WAAahC,EAAO,CAC3BJ,KAAKY,MAAQZ,KAAKqC,eAAiB,0BACnC,M,CAGF,GAAIrC,KAAKC,OAAS,UAAYG,EAAO,CACnC,MAAMiB,EAAeC,WAAWlB,GAChC,GAAKJ,KAAKuB,WAAaC,WAAaH,EAAerB,KAAKuB,UAAcvB,KAAKyB,WAAaD,WAAaH,EAAerB,KAAKyB,SAAW,CAClIzB,KAAKY,MAAQ,yBAAyBZ,KAAKyB,gBAAgBzB,KAAKuB,WAChE,M,EAIJ,GAAIvB,KAAKS,SAAWL,IAAUJ,KAAKS,QAAQ6B,KAAKlC,GAAQ,CACtDJ,KAAKY,MAAQZ,KAAK2B,cAAgB,iB,EAItC,MAAAY,GACE,OACEC,EAAA,SAAAC,IAAA,2CAAOC,KAAM1C,KAAKY,MAAQ,6BAA+B,YAAa+B,MAAO,CAAE/B,QAASZ,KAAKY,QAC1FZ,KAAK+B,OACJS,EAAA,SACEA,EAAA,QAAMG,MAAM,SAAS3C,KAAK+B,OACzB/B,KAAKoC,UAAYI,EAAA,QAAMG,MAAM,YAAU,MAG5CH,EAAA,OAAAC,IAAA,2CAAKC,KAAK,oBAAoBC,MAAM,iBAClCH,EAAA,SAAAC,IAAA,2CACExC,KAAMD,KAAKC,KACX6B,KAAM9B,KAAK8B,KACXY,KAAM1C,KAAKY,MAAQ,6BAA+B,YAClDgC,MAAO5C,KAAK6C,SAAW,kBAAoBrB,UAC3CqB,SAAU7C,KAAK6C,SACfC,UAAW9C,KAAK8C,UAChB1C,MAAOJ,KAAKI,MACZ2C,UAAW/C,KAAK+C,UAChBC,IAAKhD,KAAKC,OAAS,SAAWD,KAAKuB,SAAWC,UAC9CyB,IAAKjD,KAAKC,OAAS,SAAWD,KAAKyB,SAAWD,UAC9C0B,YAAalD,KAAKkD,YAClBP,MAAO,CAAE/B,QAASZ,KAAKY,OACvBuC,QAASjC,GAAKlB,KAAKiB,YAAYC,GAC/BkC,QAAS,IAAMpD,KAAKkC,cACpBmB,OAAQ,IAAMrD,KAAKgC,eAErBQ,EAAA,QAAAC,IAAA,2CAAMX,KAAK,sBAEZ9B,KAAKY,OACJ4B,EAAA,QAAMG,MAAM,kBAAkBD,KAAK,qBAChC1C,KAAKY,O"}
|