AfterShip – WooCommerce Tracking - Version 1.14.1

Version Description

  • Fix known issue
Download this release

Release Info

Developer aftership
Plugin Icon 128x128 AfterShip – WooCommerce Tracking
Version 1.14.1
Comparing to
See all releases

Code changes from version 1.14.0 to 1.14.1

Files changed (42) hide show
  1. aftership-woocommerce-tracking.php +4 -4
  2. assets/meta-box/.gitignore +4 -0
  3. assets/meta-box/.prettierrc.json +9 -0
  4. assets/meta-box/README.md +33 -0
  5. assets/meta-box/dist/index.js +1 -1
  6. assets/meta-box/dist/style.css +1 -1
  7. assets/meta-box/index.html +16 -0
  8. assets/meta-box/inject.js +6 -0
  9. assets/meta-box/package.json +28 -0
  10. assets/meta-box/plugins/hotReloadShadowDomCss.js +58 -0
  11. assets/meta-box/src/App.module.scss +52 -0
  12. assets/meta-box/src/App.tsx +108 -0
  13. assets/meta-box/src/components/Button/Button.module.scss +26 -0
  14. assets/meta-box/src/components/Button/Button.tsx +23 -0
  15. assets/meta-box/src/components/Button/index.ts +1 -0
  16. assets/meta-box/src/components/EditTrackingModal/EditTrackingModal.module.scss +70 -0
  17. assets/meta-box/src/components/EditTrackingModal/EditTrackingModal.tsx +296 -0
  18. assets/meta-box/src/components/EditTrackingModal/index.ts +2 -0
  19. assets/meta-box/src/components/Modal/Modal.module.scss +62 -0
  20. assets/meta-box/src/components/Modal/Modal.tsx +48 -0
  21. assets/meta-box/src/components/Modal/index.ts +1 -0
  22. assets/meta-box/src/components/Modal/x.svg +3 -0
  23. assets/meta-box/src/components/NumberInput/NumberInput.module.scss +56 -0
  24. assets/meta-box/src/components/NumberInput/NumberInput.tsx +92 -0
  25. assets/meta-box/src/components/NumberInput/images/caret-down-fill.svg +3 -0
  26. assets/meta-box/src/components/NumberInput/images/caret-up-fill.svg +3 -0
  27. assets/meta-box/src/components/NumberInput/index.ts +1 -0
  28. assets/meta-box/src/components/Spinner/Spinner.module.scss +16 -0
  29. assets/meta-box/src/components/Spinner/Spinner.tsx +20 -0
  30. assets/meta-box/src/components/Spinner/index.ts +1 -0
  31. assets/meta-box/src/index.scss +21 -0
  32. assets/meta-box/src/index.tsx +28 -0
  33. assets/meta-box/src/storages/metaBox.ts +130 -0
  34. assets/meta-box/src/typings/global.d.ts +10 -0
  35. assets/meta-box/src/typings/trackings.ts +45 -0
  36. assets/meta-box/src/utils/common.ts +27 -0
  37. assets/meta-box/tsconfig.json +16 -0
  38. assets/meta-box/vite.config.ts +27 -0
  39. assets/meta-box/yarn.lock +1256 -0
  40. includes/class-aftership-actions.php +2 -2
  41. includes/class-aftership-settings.php +4 -4
  42. readme.txt +4 -1
aftership-woocommerce-tracking.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: AfterShip Tracking - All-In-One WooCommerce Order Tracking (Free plan available)
4
  * Plugin URI: http://aftership.com/
5
  * Description: Track orders in one place. shipment tracking, automated notifications, order lookup, branded tracking page, delivery day prediction
6
- * Version: 1.14.0
7
  * Author: AfterShip
8
  * Author URI: http://aftership.com
9
  *
@@ -20,7 +20,7 @@ if ( ! defined( 'ABSPATH' ) ) {
20
 
21
  require_once( 'woo-includes/woo-functions.php' );
22
 
23
- define( 'AFTERSHIP_VERSION', '1.14.0' );
24
  define( 'AFTERSHIP_PATH', dirname( __FILE__ ) );
25
  define( 'AFTERSHIP_ASSETS_URL', plugins_url() . '/' . basename( AFTERSHIP_PATH ) );
26
 
@@ -243,9 +243,9 @@ if ( is_woocommerce_active() ) {
243
  * Parameters: hook | Not used.
244
  */
245
  public function automizely_aftership_add_admin_css() {
246
- wp_register_style( 'automizely-aftership-admin', plugins_url( 'assets/css/index.css', __FILE__ ), array(), '1.1' );
247
  wp_enqueue_style( 'automizely-aftership-admin' );
248
- wp_register_style( 'automizely-aftership-admin', plugins_url( 'assets/css/normalize.css', __FILE__ ), array(), '1.0' );
249
  wp_enqueue_style( 'automizely-aftership-admin' );
250
  }
251
 
3
  * Plugin Name: AfterShip Tracking - All-In-One WooCommerce Order Tracking (Free plan available)
4
  * Plugin URI: http://aftership.com/
5
  * Description: Track orders in one place. shipment tracking, automated notifications, order lookup, branded tracking page, delivery day prediction
6
+ * Version: 1.14.1
7
  * Author: AfterShip
8
  * Author URI: http://aftership.com
9
  *
20
 
21
  require_once( 'woo-includes/woo-functions.php' );
22
 
23
+ define( 'AFTERSHIP_VERSION', '1.14.1' );
24
  define( 'AFTERSHIP_PATH', dirname( __FILE__ ) );
25
  define( 'AFTERSHIP_ASSETS_URL', plugins_url() . '/' . basename( AFTERSHIP_PATH ) );
26
 
243
  * Parameters: hook | Not used.
244
  */
245
  public function automizely_aftership_add_admin_css() {
246
+ wp_register_style( 'automizely-aftership-admin', plugins_url( 'assets/css/index.css', __FILE__ ), array(), AFTERSHIP_VERSION );
247
  wp_enqueue_style( 'automizely-aftership-admin' );
248
+ wp_register_style( 'automizely-aftership-admin', plugins_url( 'assets/css/normalize.css', __FILE__ ), array(), AFTERSHIP_VERSION );
249
  wp_enqueue_style( 'automizely-aftership-admin' );
250
  }
251
 
assets/meta-box/.gitignore ADDED
@@ -0,0 +1,4 @@
 
 
 
 
1
+ !package.json
2
+ !yarn.lock
3
+ node_modules
4
+ # dist
assets/meta-box/.prettierrc.json ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "singleQuote": true,
3
+ "trailingComma": "es5",
4
+ "printWidth": 100,
5
+ "semi": true,
6
+ "useTabs": false,
7
+ "tabWidth": 2,
8
+ "jsxBracketSameLine": true
9
+ }
assets/meta-box/README.md ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ## Usage
2
+
3
+ Those templates dependencies are maintained via [pnpm](https://pnpm.io) via `pnpm up -Lri`.
4
+
5
+ This is the reason you see a `pnpm-lock.yaml`. That being said, any package manager will work. This file can be safely be removed once you clone a template.
6
+
7
+ ```bash
8
+ $ npm install # or pnpm install or yarn install
9
+ ```
10
+ ### Learn more on the [Solid Website](https://solidjs.com) and come chat with us on our [Discord](https://discord.com/invite/solidjs)
11
+
12
+ ## Available Scripts
13
+
14
+ In the project directory, you can run:
15
+
16
+ ### `npm dev` or `npm start`
17
+
18
+ Runs the app in the development mode.<br>
19
+ Open [http://localhost:3000](http://localhost:3000) to view it in the browser.
20
+
21
+ The page will reload if you make edits.<br>
22
+
23
+ ### `npm run build`
24
+
25
+ Builds the app for production to the `dist` folder.<br>
26
+ It correctly bundles Solid in production mode and optimizes the build for the best performance.
27
+
28
+ The build is minified and the filenames include the hashes.<br>
29
+ Your app is ready to be deployed!
30
+
31
+ ## Deployment
32
+
33
+ You can deploy the `dist` folder to any static host provider (netlify, surge, now, etc.)
assets/meta-box/dist/index.js CHANGED
@@ -1 +1 @@
1
- var _i=Object.defineProperty,vi=Object.defineProperties;var mi=Object.getOwnPropertyDescriptors;var $t=Object.getOwnPropertySymbols;var yi=Object.prototype.hasOwnProperty,bi=Object.prototype.propertyIsEnumerable;var Fe=(H,E,j)=>E in H?_i(H,E,{enumerable:!0,configurable:!0,writable:!0,value:j}):H[E]=j,R=(H,E)=>{for(var j in E||(E={}))yi.call(E,j)&&Fe(H,j,E[j]);if($t)for(var j of $t(E))bi.call(E,j)&&Fe(H,j,E[j]);return H},z=(H,E)=>vi(H,mi(E));var wt=(H,E,j)=>(Fe(H,typeof E!="symbol"?E+"":E,j),j);var te=(H,E,j)=>new Promise((_e,Q)=>{var J=I=>{try{ie(j.next(I))}catch(G){Q(G)}},le=I=>{try{ie(j.throw(I))}catch(G){Q(G)}},ie=I=>I.done?_e(I.value):Promise.resolve(I.value).then(J,le);ie((j=j.apply(H,E)).next())});(function(){"use strict";const H=(e,n)=>e===n,E=Symbol("solid-proxy"),j={equals:H};let _e=Ge;const Q={},J=1,le=2,ie={owned:null,cleanups:null,context:null,owner:null};var I=null;let G=null,D=null,ae=null,Y=null,K=null,Ie=0;function ve(e,n){n&&(I=n);const t=D,i=I,r=e.length===0?ie:{owned:null,cleanups:null,context:null,owner:i};I=r,D=null;let s;try{Ee(()=>s=e(()=>Le(r)),!0)}finally{D=t,I=i}return s}function X(e,n){n=n?Object.assign({},j,n):j;const t={value:e,observers:null,observerSlots:null,pending:Q,comparator:n.equals||void 0};return[Ve.bind(t),i=>(typeof i=="function"&&(G&&G.running&&G.sources.has(t)?i=i(t.pending!==Q?t.pending:t.tValue):i=i(t.pending!==Q?t.pending:t.value)),je(t,i))]}function q(e,n,t){const i=Me(e,n,!1,J);me(i)}function Te(e,n,t){_e=It;const i=Me(e,n,!1,J);i.user=!0,K&&K.push(i)}function F(e,n,t){t=t?Object.assign({},j,t):j;const i=Me(e,n,!0,0);return i.pending=Q,i.observers=null,i.observerSlots=null,i.comparator=t.equals||void 0,me(i),Ve.bind(i)}function xt(e){if(ae)return e();let n;const t=ae=[];try{n=e()}finally{ae=null}return Ee(()=>{for(let i=0;i<t.length;i+=1){const r=t[i];if(r.pending!==Q){const s=r.pending;r.pending=Q,je(r,s)}}},!1),n}function re(e){let n,t=D;return D=null,n=e(),D=t,n}function St(e){Te(()=>re(e))}function kt(e){return I===null||(I.cleanups===null?I.cleanups=[e]:I.cleanups.push(e)),e}function Ct(e){const n=F(e);return F(()=>Oe(n()))}function Ve(){const e=G;if(this.sources&&(this.state||e)){const n=Y;Y=null,this.state===J||e?me(this):De(this),Y=n}if(D){const n=this.observers?this.observers.length:0;D.sources?(D.sources.push(this),D.sourceSlots.push(n)):(D.sources=[this],D.sourceSlots=[n]),this.observers?(this.observers.push(D),this.observerSlots.push(D.sources.length-1)):(this.observers=[D],this.observerSlots=[D.sources.length-1])}return this.value}function je(e,n,t){if(e.comparator&&e.comparator(e.value,n))return n;if(ae)return e.pending===Q&&ae.push(e),e.pending=n,n;let i=!1;return e.value=n,e.observers&&e.observers.length&&Ee(()=>{for(let r=0;r<e.observers.length;r+=1){const s=e.observers[r];i&&G.disposed.has(s),s.pure?Y.push(s):K.push(s),s.observers&&(i&&!s.tState||!i&&!s.state)&&We(s),i||(s.state=J)}if(Y.length>1e6)throw Y=[],new Error},!1),n}function me(e){if(!e.fn)return;Le(e);const n=I,t=D,i=Ie;D=I=e,Nt(e,e.value,i),D=t,I=n}function Nt(e,n,t){let i;try{i=e.fn(n)}catch(r){Qe(r)}(!e.updatedAt||e.updatedAt<=t)&&(e.observers&&e.observers.length?je(e,i):e.value=i,e.updatedAt=t)}function Me(e,n,t,i=J,r){const s={fn:e,state:i,updatedAt:null,owned:null,sources:null,sourceSlots:null,cleanups:null,value:n,owner:I,context:null,pure:t};return I===null||I!==ie&&(I.owned?I.owned.push(s):I.owned=[s]),s}function ce(e){const n=G;if(e.state!==J)return e.state=0;if(e.suspense&&re(e.suspense.inFallback))return e.suspense.effects.push(e);const t=[e];for(;(e=e.owner)&&(!e.updatedAt||e.updatedAt<Ie);)(e.state||n)&&t.push(e);for(let i=t.length-1;i>=0;i--)if(e=t[i],e.state===J||n)me(e);else if(e.state===le||n){const r=Y;Y=null,De(e),Y=r}}function Ee(e,n){if(Y)return e();let t=!1;n||(Y=[]),K?t=!0:K=[],Ie++;try{e()}catch(i){Qe(i)}finally{At(t)}}function At(e){Y&&(Ge(Y),Y=null),!e&&(K.length?xt(()=>{_e(K),K=null}):K=null)}function Ge(e){for(let n=0;n<e.length;n++)ce(e[n])}function It(e){let n,t=0;for(n=0;n<e.length;n++){const r=e[n];r.user?e[t++]=r:ce(r)}const i=e.length;for(n=0;n<t;n++)ce(e[n]);for(n=i;n<e.length;n++)ce(e[n])}function De(e){e.state=0;const n=G;for(let t=0;t<e.sources.length;t+=1){const i=e.sources[t];i.sources&&(i.state===J||n?ce(i):(i.state===le||n)&&De(i))}}function We(e){const n=G;for(let t=0;t<e.observers.length;t+=1){const i=e.observers[t];(!i.state||n)&&(i.state=le,i.pure?Y.push(i):K.push(i),i.observers&&We(i))}}function Le(e){let n;if(e.sources)for(;e.sources.length;){const t=e.sources.pop(),i=e.sourceSlots.pop(),r=t.observers;if(r&&r.length){const s=r.pop(),d=t.observerSlots.pop();i<r.length&&(s.sourceSlots[d]=i,r[i]=s,t.observerSlots[i]=d)}}if(e.owned){for(n=0;n<e.owned.length;n++)Le(e.owned[n]);e.owned=null}if(e.cleanups){for(n=0;n<e.cleanups.length;n++)e.cleanups[n]();e.cleanups=null}e.state=0,e.context=null}function Qe(e){throw e}function Oe(e){if(typeof e=="function"&&!e.length)return Oe(e());if(Array.isArray(e)){const n=[];for(let t=0;t<e.length;t++){const i=Oe(e[t]);Array.isArray(i)?n.push.apply(n,i):n.push(i)}return n}return e}const Tt=Symbol("fallback");function Je(e){for(let n=0;n<e.length;n++)e[n]()}function jt(e,n,t={}){let i=[],r=[],s=[],d=0,l=n.length>1?[]:null;return kt(()=>Je(s)),()=>{let p=e()||[],a,u;return re(()=>{let w=p.length,A,b,m,f,C,o,c,y,$;if(w===0)d!==0&&(Je(s),s=[],i=[],r=[],d=0,l&&(l=[])),t.fallback&&(i=[Tt],r[0]=ve(k=>(s[0]=k,t.fallback())),d=1);else if(d===0){for(r=new Array(w),u=0;u<w;u++)i[u]=p[u],r[u]=ve(S);d=w}else{for(m=new Array(w),f=new Array(w),l&&(C=new Array(w)),o=0,c=Math.min(d,w);o<c&&i[o]===p[o];o++);for(c=d-1,y=w-1;c>=o&&y>=o&&i[c]===p[y];c--,y--)m[y]=r[c],f[y]=s[c],l&&(C[y]=l[c]);for(A=new Map,b=new Array(y+1),u=y;u>=o;u--)$=p[u],a=A.get($),b[u]=a===void 0?-1:a,A.set($,u);for(a=o;a<=c;a++)$=i[a],u=A.get($),u!==void 0&&u!==-1?(m[u]=r[a],f[u]=s[a],l&&(C[u]=l[a]),u=b[u],A.set($,u)):s[a]();for(u=o;u<w;u++)u in m?(r[u]=m[u],s[u]=f[u],l&&(l[u]=C[u],l[u](u))):r[u]=ve(S);r=r.slice(0,d=w),i=p.slice(0)}return r});function S(w){if(s[u]=w,l){const[A,b]=X(u);return l[u]=b,n(p[u],A)}return n(p[u])}}}function U(e,n){return re(()=>e(n))}function ye(){return!0}const Mt={get(e,n,t){return n===E?t:e.get(n)},has(e,n){return e.has(n)},set:ye,deleteProperty:ye,getOwnPropertyDescriptor(e,n){return{configurable:!0,enumerable:!0,get(){return e.get(n)},set:ye,deleteProperty:ye}},ownKeys(e){return e.keys()}};function Be(e){return typeof e=="function"?e():e}function Et(...e){return new Proxy({get(n){for(let t=e.length-1;t>=0;t--){const i=Be(e[t])[n];if(i!==void 0)return i}},has(n){for(let t=e.length-1;t>=0;t--)if(n in Be(e[t]))return!0;return!1},keys(){const n=[];for(let t=0;t<e.length;t++)n.push(...Object.keys(Be(e[t])));return[...new Set(n)]}},Mt)}function be(e){const n="fallback"in e&&{fallback:()=>e.fallback};return F(jt(()=>e.each,e.children,n||void 0))}function Pe(e){let n=!1;const t=F(()=>e.when,void 0,{equals:(i,r)=>n?i===r:!i==!r});return F(()=>{const i=t();if(i){const r=e.children;return(n=typeof r=="function"&&r.length>0)?re(()=>r(i)):r}return e.fallback})}function Dt(e){let n=!1;const t=Ct(()=>e.children),i=F(()=>{let r=t();Array.isArray(r)||(r=[r]);for(let s=0;s<r.length;s++){const d=r[s].when;if(d)return[s,d,r[s]]}return[-1]},void 0,{equals:(r,s)=>r&&r[0]===s[0]&&(n?r[1]===s[1]:!r[1]==!s[1])&&r[2]===s[2]});return F(()=>{const[r,s,d]=i();if(r<0)return e.fallback;const l=d.children;return(n=typeof l=="function"&&l.length>0)?re(()=>l(s)):l})}function Lt(e){return e}function Ke(e,n,t){let i=t.length,r=n.length,s=i,d=0,l=0,p=n[r-1].nextSibling,a=null;for(;d<r||l<s;){if(n[d]===t[l]){d++,l++;continue}for(;n[r-1]===t[s-1];)r--,s--;if(r===d){const u=s<i?l?t[l-1].nextSibling:t[s-l]:p;for(;l<s;)e.insertBefore(t[l++],u)}else if(s===l)for(;d<r;)(!a||!a.has(n[d]))&&e.removeChild(n[d]),d++;else if(n[d]===t[s-1]&&t[l]===n[r-1]){const u=n[--r].nextSibling;e.insertBefore(t[l++],n[d++].nextSibling),e.insertBefore(t[--s],u),n[r]=t[s]}else{if(!a){a=new Map;let S=l;for(;S<s;)a.set(t[S],S++)}const u=a.get(n[d]);if(u!=null)if(l<u&&u<s){let S=d,w=1,A;for(;++S<r&&S<s&&!((A=a.get(n[S]))==null||A!==u+w);)w++;if(w>u-l){const b=n[d];for(;l<u;)e.insertBefore(t[l++],b)}else e.replaceChild(t[l++],n[d++])}else d++;else e.removeChild(n[d++])}}}const Xe="_$DX_DELEGATE";function Ot(e,n,t){let i;return ve(r=>{i=r,M(n,e(),n.firstChild?null:void 0,t)}),()=>{i(),n.textContent=""}}function V(e,n,t){const i=document.createElement("template");i.innerHTML=e;let r=i.content.firstChild;return t&&(r=r.firstChild),r}function ue(e,n=window.document){const t=n[Xe]||(n[Xe]=new Set);for(let i=0,r=e.length;i<r;i++){const s=e[i];t.has(s)||(t.add(s),n.addEventListener(s,Rt))}}function ne(e,n,t){t==null?e.removeAttribute(n):e.setAttribute(n,t)}function Re(e,n,t,i){i?Array.isArray(t)?(e[`$$${n}`]=t[0],e[`$$${n}Data`]=t[1]):e[`$$${n}`]=t:Array.isArray(t)?e.addEventListener(n,r=>t[0](t[1],r)):e.addEventListener(n,t)}function Bt(e,n,t={}){const i=Object.keys(n||{}),r=Object.keys(t);let s,d;for(s=0,d=r.length;s<d;s++){const l=r[s];!l||l==="undefined"||n[l]||(et(e,l,!1),delete t[l])}for(s=0,d=i.length;s<d;s++){const l=i[s],p=!!n[l];!l||l==="undefined"||t[l]===p||!p||(et(e,l,!0),t[l]=p)}return t}function Pt(e,n,t={}){const i=e.style;if(n==null||typeof n=="string")return i.cssText=n;typeof t=="string"&&(t={});let r,s;for(s in t)n[s]==null&&i.removeProperty(s),delete t[s];for(s in n)r=n[s],r!==t[s]&&(i.setProperty(s,r),t[s]=r);return t}function M(e,n,t,i){if(t!==void 0&&!i&&(i=[]),typeof n!="function")return pe(e,n,i,t);q(r=>pe(e,n(),r,t),i)}function et(e,n,t){const i=n.trim().split(/\s+/);for(let r=0,s=i.length;r<s;r++)e.classList.toggle(i[r],t)}function Rt(e){const n=`$$${e.type}`;let t=e.composedPath&&e.composedPath()[0]||e.target;for(e.target!==t&&Object.defineProperty(e,"target",{configurable:!0,value:t}),Object.defineProperty(e,"currentTarget",{configurable:!0,get(){return t}});t!==null;){const i=t[n];if(i&&!t.disabled){const r=t[`${n}Data`];if(r!==void 0?i(r,e):i(e),e.cancelBubble)return}t=t.host&&t.host!==t&&t.host instanceof Node?t.host:t.parentNode}}function pe(e,n,t,i,r){for(;typeof t=="function";)t=t();if(n===t)return t;const s=typeof n,d=i!==void 0;if(e=d&&t[0]&&t[0].parentNode||e,s==="string"||s==="number")if(s==="number"&&(n=n.toString()),d){let l=t[0];l&&l.nodeType===3?l.data=n:l=document.createTextNode(n),t=fe(e,t,i,l)}else t!==""&&typeof t=="string"?t=e.firstChild.data=n:t=e.textContent=n;else if(n==null||s==="boolean")t=fe(e,t,i);else{if(s==="function")return q(()=>{let l=n();for(;typeof l=="function";)l=l();t=pe(e,l,t,i)}),()=>t;if(Array.isArray(n)){const l=[];if(ze(l,n,r))return q(()=>t=pe(e,l,t,i,!0)),()=>t;if(l.length===0){if(t=fe(e,t,i),d)return t}else Array.isArray(t)?t.length===0?tt(e,l,i):Ke(e,t,l):t==null||t===""?tt(e,l):Ke(e,d&&t||[e.firstChild],l);t=l}else if(n instanceof Node){if(Array.isArray(t)){if(d)return t=fe(e,t,i,n);fe(e,t,null,n)}else t==null||t===""||!e.firstChild?e.appendChild(n):e.replaceChild(n,e.firstChild);t=n}}return t}function ze(e,n,t){let i=!1;for(let r=0,s=n.length;r<s;r++){let d=n[r],l;if(d instanceof Node)e.push(d);else if(!(d==null||d===!0||d===!1))if(Array.isArray(d))i=ze(e,d)||i;else if((l=typeof d)==="string")e.push(document.createTextNode(d));else if(l==="function")if(t){for(;typeof d=="function";)d=d();i=ze(e,Array.isArray(d)?d:[d])||i}else e.push(d),i=!0;else e.push(document.createTextNode(d.toString()))}return i}function tt(e,n,t){for(let i=0,r=n.length;i<r;i++)e.insertBefore(n[i],t)}function fe(e,n,t,i){if(t===void 0)return e.textContent="";const r=i||document.createTextNode("");if(n.length){let s=!1;for(let d=n.length-1;d>=0;d--){const l=n[d];if(r!==l){const p=l.parentNode===e;!s&&!d?p?e.replaceChild(r,l):e.insertBefore(r,t):p&&e.removeChild(l)}else s=!0}}else e.insertBefore(r,t);return[r]}var nt={button:"_button_1dv9o_1",primary:"_primary_1dv9o_18"};const zt=V("<button></button>"),it=e=>(()=>{const n=zt.cloneNode(!0);return Re(n,"click",e.onClick,!0),M(n,()=>e.children),q(t=>{const i={[nt.button]:!0,[nt.primary]:e.type==="primary"},r=e.disabled,s=e.style;return t._v$=Bt(n,i,t._v$),r!==t._v$2&&(n.disabled=t._v$2=r),t._v$3=Pt(n,s,t._v$3),t},{_v$:void 0,_v$2:void 0,_v$3:void 0}),n})();ue(["click"]);var $e={root:"_root_1nuhb_1",loading:"_loading_1nuhb_5",tracking:"_tracking_1nuhb_19",title:"_title_1nuhb_23",content:"_content_1nuhb_37"},de=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function Ht(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var rt={exports:{}},st={exports:{}};(function(e,n){(function(t,i){e.exports=i()})(de,function(){var t=t||function(i,r){var s;if(typeof window!="undefined"&&window.crypto&&(s=window.crypto),typeof self!="undefined"&&self.crypto&&(s=self.crypto),typeof globalThis!="undefined"&&globalThis.crypto&&(s=globalThis.crypto),!s&&typeof window!="undefined"&&window.msCrypto&&(s=window.msCrypto),!s&&typeof de!="undefined"&&de.crypto&&(s=de.crypto),!s&&typeof Ht=="function")try{s=require("crypto")}catch(o){}var d=function(){if(s){if(typeof s.getRandomValues=="function")try{return s.getRandomValues(new Uint32Array(1))[0]}catch(o){}if(typeof s.randomBytes=="function")try{return s.randomBytes(4).readInt32LE()}catch(o){}}throw new Error("Native crypto module could not be used to get secure random number.")},l=Object.create||function(){function o(){}return function(c){var y;return o.prototype=c,y=new o,o.prototype=null,y}}(),p={},a=p.lib={},u=a.Base=function(){return{extend:function(o){var c=l(this);return o&&c.mixIn(o),(!c.hasOwnProperty("init")||this.init===c.init)&&(c.init=function(){c.$super.init.apply(this,arguments)}),c.init.prototype=c,c.$super=this,c},create:function(){var o=this.extend();return o.init.apply(o,arguments),o},init:function(){},mixIn:function(o){for(var c in o)o.hasOwnProperty(c)&&(this[c]=o[c]);o.hasOwnProperty("toString")&&(this.toString=o.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),S=a.WordArray=u.extend({init:function(o,c){o=this.words=o||[],c!=r?this.sigBytes=c:this.sigBytes=o.length*4},toString:function(o){return(o||A).stringify(this)},concat:function(o){var c=this.words,y=o.words,$=this.sigBytes,k=o.sigBytes;if(this.clamp(),$%4)for(var N=0;N<k;N++){var L=y[N>>>2]>>>24-N%4*8&255;c[$+N>>>2]|=L<<24-($+N)%4*8}else for(var x=0;x<k;x+=4)c[$+x>>>2]=y[x>>>2];return this.sigBytes+=k,this},clamp:function(){var o=this.words,c=this.sigBytes;o[c>>>2]&=4294967295<<32-c%4*8,o.length=i.ceil(c/4)},clone:function(){var o=u.clone.call(this);return o.words=this.words.slice(0),o},random:function(o){for(var c=[],y=0;y<o;y+=4)c.push(d());return new S.init(c,o)}}),w=p.enc={},A=w.Hex={stringify:function(o){for(var c=o.words,y=o.sigBytes,$=[],k=0;k<y;k++){var N=c[k>>>2]>>>24-k%4*8&255;$.push((N>>>4).toString(16)),$.push((N&15).toString(16))}return $.join("")},parse:function(o){for(var c=o.length,y=[],$=0;$<c;$+=2)y[$>>>3]|=parseInt(o.substr($,2),16)<<24-$%8*4;return new S.init(y,c/2)}},b=w.Latin1={stringify:function(o){for(var c=o.words,y=o.sigBytes,$=[],k=0;k<y;k++){var N=c[k>>>2]>>>24-k%4*8&255;$.push(String.fromCharCode(N))}return $.join("")},parse:function(o){for(var c=o.length,y=[],$=0;$<c;$++)y[$>>>2]|=(o.charCodeAt($)&255)<<24-$%4*8;return new S.init(y,c)}},m=w.Utf8={stringify:function(o){try{return decodeURIComponent(escape(b.stringify(o)))}catch(c){throw new Error("Malformed UTF-8 data")}},parse:function(o){return b.parse(unescape(encodeURIComponent(o)))}},f=a.BufferedBlockAlgorithm=u.extend({reset:function(){this._data=new S.init,this._nDataBytes=0},_append:function(o){typeof o=="string"&&(o=m.parse(o)),this._data.concat(o),this._nDataBytes+=o.sigBytes},_process:function(o){var c,y=this._data,$=y.words,k=y.sigBytes,N=this.blockSize,L=N*4,x=k/L;o?x=i.ceil(x):x=i.max((x|0)-this._minBufferSize,0);var T=x*N,B=i.min(T*4,k);if(T){for(var O=0;O<T;O+=N)this._doProcessBlock($,O);c=$.splice(0,T),y.sigBytes-=B}return new S.init(c,B)},clone:function(){var o=u.clone.call(this);return o._data=this._data.clone(),o},_minBufferSize:0});a.Hasher=f.extend({cfg:u.extend(),init:function(o){this.cfg=this.cfg.extend(o),this.reset()},reset:function(){f.reset.call(this),this._doReset()},update:function(o){return this._append(o),this._process(),this},finalize:function(o){o&&this._append(o);var c=this._doFinalize();return c},blockSize:512/32,_createHelper:function(o){return function(c,y){return new o.init(y).finalize(c)}},_createHmacHelper:function(o){return function(c,y){return new C.HMAC.init(o,y).finalize(c)}}});var C=p.algo={};return p}(Math);return t})})(st),function(e,n){(function(t,i){e.exports=i(st.exports)})(de,function(t){return function(i){var r=t,s=r.lib,d=s.WordArray,l=s.Hasher,p=r.algo,a=[];(function(){for(var m=0;m<64;m++)a[m]=i.abs(i.sin(m+1))*4294967296|0})();var u=p.MD5=l.extend({_doReset:function(){this._hash=new d.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(m,f){for(var C=0;C<16;C++){var o=f+C,c=m[o];m[o]=(c<<8|c>>>24)&16711935|(c<<24|c>>>8)&4278255360}var y=this._hash.words,$=m[f+0],k=m[f+1],N=m[f+2],L=m[f+3],x=m[f+4],T=m[f+5],B=m[f+6],O=m[f+7],Z=m[f+8],P=m[f+9],ee=m[f+10],W=m[f+11],ke=m[f+12],Ce=m[f+13],Ne=m[f+14],Ae=m[f+15],g=y[0],h=y[1],_=y[2],v=y[3];g=S(g,h,_,v,$,7,a[0]),v=S(v,g,h,_,k,12,a[1]),_=S(_,v,g,h,N,17,a[2]),h=S(h,_,v,g,L,22,a[3]),g=S(g,h,_,v,x,7,a[4]),v=S(v,g,h,_,T,12,a[5]),_=S(_,v,g,h,B,17,a[6]),h=S(h,_,v,g,O,22,a[7]),g=S(g,h,_,v,Z,7,a[8]),v=S(v,g,h,_,P,12,a[9]),_=S(_,v,g,h,ee,17,a[10]),h=S(h,_,v,g,W,22,a[11]),g=S(g,h,_,v,ke,7,a[12]),v=S(v,g,h,_,Ce,12,a[13]),_=S(_,v,g,h,Ne,17,a[14]),h=S(h,_,v,g,Ae,22,a[15]),g=w(g,h,_,v,k,5,a[16]),v=w(v,g,h,_,B,9,a[17]),_=w(_,v,g,h,W,14,a[18]),h=w(h,_,v,g,$,20,a[19]),g=w(g,h,_,v,T,5,a[20]),v=w(v,g,h,_,ee,9,a[21]),_=w(_,v,g,h,Ae,14,a[22]),h=w(h,_,v,g,x,20,a[23]),g=w(g,h,_,v,P,5,a[24]),v=w(v,g,h,_,Ne,9,a[25]),_=w(_,v,g,h,L,14,a[26]),h=w(h,_,v,g,Z,20,a[27]),g=w(g,h,_,v,Ce,5,a[28]),v=w(v,g,h,_,N,9,a[29]),_=w(_,v,g,h,O,14,a[30]),h=w(h,_,v,g,ke,20,a[31]),g=A(g,h,_,v,T,4,a[32]),v=A(v,g,h,_,Z,11,a[33]),_=A(_,v,g,h,W,16,a[34]),h=A(h,_,v,g,Ne,23,a[35]),g=A(g,h,_,v,k,4,a[36]),v=A(v,g,h,_,x,11,a[37]),_=A(_,v,g,h,O,16,a[38]),h=A(h,_,v,g,ee,23,a[39]),g=A(g,h,_,v,Ce,4,a[40]),v=A(v,g,h,_,$,11,a[41]),_=A(_,v,g,h,L,16,a[42]),h=A(h,_,v,g,B,23,a[43]),g=A(g,h,_,v,P,4,a[44]),v=A(v,g,h,_,ke,11,a[45]),_=A(_,v,g,h,Ae,16,a[46]),h=A(h,_,v,g,N,23,a[47]),g=b(g,h,_,v,$,6,a[48]),v=b(v,g,h,_,O,10,a[49]),_=b(_,v,g,h,Ne,15,a[50]),h=b(h,_,v,g,T,21,a[51]),g=b(g,h,_,v,ke,6,a[52]),v=b(v,g,h,_,L,10,a[53]),_=b(_,v,g,h,ee,15,a[54]),h=b(h,_,v,g,k,21,a[55]),g=b(g,h,_,v,Z,6,a[56]),v=b(v,g,h,_,Ae,10,a[57]),_=b(_,v,g,h,B,15,a[58]),h=b(h,_,v,g,Ce,21,a[59]),g=b(g,h,_,v,x,6,a[60]),v=b(v,g,h,_,W,10,a[61]),_=b(_,v,g,h,N,15,a[62]),h=b(h,_,v,g,P,21,a[63]),y[0]=y[0]+g|0,y[1]=y[1]+h|0,y[2]=y[2]+_|0,y[3]=y[3]+v|0},_doFinalize:function(){var m=this._data,f=m.words,C=this._nDataBytes*8,o=m.sigBytes*8;f[o>>>5]|=128<<24-o%32;var c=i.floor(C/4294967296),y=C;f[(o+64>>>9<<4)+15]=(c<<8|c>>>24)&16711935|(c<<24|c>>>8)&4278255360,f[(o+64>>>9<<4)+14]=(y<<8|y>>>24)&16711935|(y<<24|y>>>8)&4278255360,m.sigBytes=(f.length+1)*4,this._process();for(var $=this._hash,k=$.words,N=0;N<4;N++){var L=k[N];k[N]=(L<<8|L>>>24)&16711935|(L<<24|L>>>8)&4278255360}return $},clone:function(){var m=l.clone.call(this);return m._hash=this._hash.clone(),m}});function S(m,f,C,o,c,y,$){var k=m+(f&C|~f&o)+c+$;return(k<<y|k>>>32-y)+f}function w(m,f,C,o,c,y,$){var k=m+(f&o|C&~o)+c+$;return(k<<y|k>>>32-y)+f}function A(m,f,C,o,c,y,$){var k=m+(f^C^o)+c+$;return(k<<y|k>>>32-y)+f}function b(m,f,C,o,c,y,$){var k=m+(C^(f|~o))+c+$;return(k<<y|k>>>32-y)+f}r.MD5=l._createHelper(u),r.HmacMD5=l._createHmacHelper(u)}(Math),t.MD5})}(rt);var Yt=rt.exports;const[se,Ut]=X([]),[ot,qt]=X([]),[He,lt]=X(new Map),[Zt,Ft]=X([]),[Ye,Vt]=X("");function ge(){return te(this,null,function*(){var n;const e=((n=document.querySelector("#aftership_get_nonce"))==null?void 0:n.value)||"";yield fetch(`/wp-admin/admin-ajax.php?action=aftership_get_order_trackings&security=${e}&order_id=${window.woocommerce_admin_meta_boxes.post_id}`).then(t=>t.json()).then(t=>{const i=t.data,r=window.get_aftership_couriers(),s=new Map;i.trackings.forEach(d=>{if(s.has(d.slug))return;const l=r.find(p=>p.slug===d.slug);l&&s.set(d.slug,l)}),lt(d=>new Map([...d,...s])),Ut(i.trackings),Ft(i.line_items)})})}function Gt(e){return te(this,null,function*(){var l;const n=se().find(p=>p.tracking_id===e.tracking_id),t=se().findIndex(p=>p.tracking_id===e.tracking_id),i=new Date().toISOString().replace(/\.\d+(?=Z$)/,""),r=e.slug!==(n==null?void 0:n.slug)||e.tracking_number!==(n==null?void 0:n.tracking_number);let s=[...se()];n&&!r?s.splice(t,1,z(R({},e),{metrics:{created_at:n.metrics.created_at||i,updated_at:i}})):s=[...s.filter(p=>p.tracking_id!==e.tracking_id),z(R({},e),{tracking_id:Yt(`${e.slug}-${e.tracking_number}`).toString(),metrics:{created_at:i,updated_at:i}})];const d=((l=document.querySelector("#aftership_create_nonce"))==null?void 0:l.value)||"";yield fetch(`/wp-admin/admin-ajax.php?action=aftership_save_order_tracking&security=${d}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({order_id:window.woocommerce_admin_meta_boxes.post_id,trackings:s})}),yield ge()})}function Wt(e){return te(this,null,function*(){var t;const n=((t=document.querySelector("#aftership_delete_nonce"))==null?void 0:t.value)||"";yield fetch(`/wp-admin/admin-ajax.php?action=aftership_delete_order_tracking&security=${n}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({order_id:window.woocommerce_admin_meta_boxes.post_id,tracking_id:e})}),yield ge()})}function Qt(){return te(this,null,function*(){yield fetch("/wp-admin/admin-ajax.php?action=aftership_get_settings").then(e=>e.json()).then(e=>{const n=e.data.couriers,t=new Map(He());n.forEach(i=>{t.set(i.slug,i)}),lt(i=>new Map([...i,...t])),qt(n),Vt(e.data.custom_domain)})})}var Jt=typeof global=="object"&&global&&global.Object===Object&&global,Kt=Jt,Xt=typeof self=="object"&&self&&self.Object===Object&&self,en=Kt||Xt||Function("return this")(),tn=en,nn=tn.Symbol,oe=nn,at=Object.prototype,rn=at.hasOwnProperty,sn=at.toString,he=oe?oe.toStringTag:void 0;function on(e){var n=rn.call(e,he),t=e[he];try{e[he]=void 0;var i=!0}catch(s){}var r=sn.call(e);return i&&(n?e[he]=t:delete e[he]),r}var ln=Object.prototype,an=ln.toString;function cn(e){return an.call(e)}var un="[object Null]",fn="[object Undefined]",ct=oe?oe.toStringTag:void 0;function dn(e){return e==null?e===void 0?fn:un:ct&&ct in Object(e)?on(e):cn(e)}function gn(e){return e!=null&&typeof e=="object"}var hn="[object Symbol]";function _n(e){return typeof e=="symbol"||gn(e)&&dn(e)==hn}function vn(e,n){for(var t=-1,i=e==null?0:e.length,r=Array(i);++t<i;)r[t]=n(e[t],t,e);return r}var mn=Array.isArray,yn=mn,bn=1/0,ut=oe?oe.prototype:void 0,ft=ut?ut.toString:void 0;function dt(e){if(typeof e=="string")return e;if(yn(e))return vn(e,dt)+"";if(_n(e))return ft?ft.call(e):"";var n=e+"";return n=="0"&&1/e==-bn?"-0":n}function gt(e){return e==null?"":dt(e)}function pn(e,n,t){var i=-1,r=e.length;n<0&&(n=-n>r?0:r+n),t=t>r?r:t,t<0&&(t+=r),r=n>t?0:t-n>>>0,n>>>=0;for(var s=Array(r);++i<r;)s[i]=e[i+n];return s}function $n(e,n,t){var i=e.length;return t=t===void 0?i:t,!n&&t>=i?e:pn(e,n,t)}var wn="\\ud800-\\udfff",xn="\\u0300-\\u036f",Sn="\\ufe20-\\ufe2f",kn="\\u20d0-\\u20ff",Cn=xn+Sn+kn,Nn="\\ufe0e\\ufe0f",An="\\u200d",In=RegExp("["+An+wn+Cn+Nn+"]");function ht(e){return In.test(e)}function Tn(e){return e.split("")}var _t="\\ud800-\\udfff",jn="\\u0300-\\u036f",Mn="\\ufe20-\\ufe2f",En="\\u20d0-\\u20ff",Dn=jn+Mn+En,Ln="\\ufe0e\\ufe0f",On="["+_t+"]",Ue="["+Dn+"]",qe="\\ud83c[\\udffb-\\udfff]",Bn="(?:"+Ue+"|"+qe+")",vt="[^"+_t+"]",mt="(?:\\ud83c[\\udde6-\\uddff]){2}",yt="[\\ud800-\\udbff][\\udc00-\\udfff]",Pn="\\u200d",bt=Bn+"?",pt="["+Ln+"]?",Rn="(?:"+Pn+"(?:"+[vt,mt,yt].join("|")+")"+pt+bt+")*",zn=pt+bt+Rn,Hn="(?:"+[vt+Ue+"?",Ue,mt,yt,On].join("|")+")",Yn=RegExp(qe+"(?="+qe+")|"+Hn+zn,"g");function Un(e){return e.match(Yn)||[]}function qn(e){return ht(e)?Un(e):Tn(e)}function Zn(e){return function(n){n=gt(n);var t=ht(n)?qn(n):void 0,i=t?t[0]:n.charAt(0),r=t?$n(t,1).join(""):n.slice(1);return i[e]()+r}}var Fn=Zn("toUpperCase"),Vn=Fn;function Gn(e){return Vn(gt(e).toLowerCase())}var we={container:"_container_1s8av_1",backdrop:"_backdrop_1s8av_8",modal:"_modal_1s8av_15"},Wn="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iY3VycmVudENvbG9yIiBjbGFzcz0iYmkgYmkteCIgdmlld0JveD0iMCAwIDE2IDE2Ij4KICA8cGF0aCBmaWxsPSIjNjY2IiBkPSJNNC42NDYgNC42NDZhLjUuNSAwIDAgMSAuNzA4IDBMOCA3LjI5M2wyLjY0Ni0yLjY0N2EuNS41IDAgMCAxIC43MDguNzA4TDguNzA3IDhsMi42NDcgMi42NDZhLjUuNSAwIDAgMS0uNzA4LjcwOEw4IDguNzA3bC0yLjY0NiAyLjY0N2EuNS41IDAgMCAxLS43MDgtLjcwOEw3LjI5MyA4IDQuNjQ2IDUuMzU0YS41LjUgMCAwIDEgMC0uNzA4eiIvPgo8L3N2Zz4=";const Qn=V('<div><div></div><section><header><h1></h1><div role="button"><img></div></header><article></article><footer></footer></section></div>');function Jn(e){return Te(()=>{e.visible?document.body.style.overflowY="hidden":document.body.style.overflowY="auto"}),U(Pe,{get when(){return e.visible},get children(){const n=Qn.cloneNode(!0),t=n.firstChild,i=t.nextSibling,r=i.firstChild,s=r.firstChild,d=s.nextSibling,l=d.firstChild,p=r.nextSibling,a=p.nextSibling;return Re(t,"click",e.onCancel,!0),M(s,()=>e.title),Re(d,"click",e.onCancel,!0),ne(l,"src",Wn),M(p,()=>e.children),M(a,U(it,{get disabled(){return e.disabled},onClick:()=>e.onOk&&e.onOk(),type:"primary",get children(){return e.okText||"Ok"}})),q(u=>{const S=we.container,w=we.backdrop,A=we.modal,b=we.header;return S!==u._v$&&(n.className=u._v$=S),w!==u._v$2&&(t.className=u._v$2=w),A!==u._v$3&&(i.className=u._v$3=A),b!==u._v$4&&(r.className=u._v$4=b),u},{_v$:void 0,_v$2:void 0,_v$3:void 0,_v$4:void 0}),n}})}ue(["click"]);var Ze={root:"_root_b92ih_1",suffix:"_suffix_b92ih_25",action:"_action_b92ih_30"},Kn="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iY3VycmVudENvbG9yIiBjbGFzcz0iYmkgYmktY2FyZXQtdXAtZmlsbCIgdmlld0JveD0iMCAwIDE2IDE2Ij4KICA8cGF0aCBmaWxsPSIjNWM1ZjYyIiBkPSJtNy4yNDcgNC44Ni00Ljc5NiA1LjQ4MWMtLjU2Ni42NDctLjEwNiAxLjY1OS43NTMgMS42NTloOS41OTJhMSAxIDAgMCAwIC43NTMtMS42NTlsLTQuNzk2LTUuNDhhMSAxIDAgMCAwLTEuNTA2IDB6Ii8+Cjwvc3ZnPg==",Xn="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iY3VycmVudENvbG9yIiBjbGFzcz0iYmkgYmktY2FyZXQtZG93bi1maWxsIiB2aWV3Qm94PSIwIDAgMTYgMTYiPgogIDxwYXRoIGZpbGw9IiM1YzVmNjIiIGQ9Ik03LjI0NyAxMS4xNCAyLjQ1MSA1LjY1OEMxLjg4NSA1LjAxMyAyLjM0NSA0IDMuMjA0IDRoOS41OTJhMSAxIDAgMCAxIC43NTMgMS42NTlsLTQuNzk2IDUuNDhhMSAxIDAgMCAxLTEuNTA2IDB6Ii8+Cjwvc3ZnPg==";const ei=V("<div>of </div>"),ti=V('<div><div><input type="number" inputmode="numeric"></div><div aria-hidden><div role="button" tabindex="-1"><img></div><div role="button" tabindex="-1"><img></div></div></div>');function ni(e){let n;const t=Et({step:1},e);function i(p){return t.min!==void 0&&Number(p)<t.min}function r(p){return t.max!==void 0&&Number(p)>t.max}function s(p){!p||i(p)||r(p)||t.onChange(Number(p))}function d(p){if(p)if(i(p)){t.onChange(t.min),n.value=String(t.min);return}else if(r(p)){t.onChange(t.max),n.value=String(t.max);return}else t.onChange(Number(p));else n.value="",t.onChange(void 0)}function l(p){const a=t.value;let u;if(a===void 0)u=p>0?t.min:t.max,t.onChange(u||0);else{u=a+p*t.step;const S=String(u);if(i(S)||r(S))return}t.onChange(u)}return(()=>{const p=ti.cloneNode(!0),a=p.firstChild,u=a.firstChild,S=a.nextSibling,w=S.firstChild,A=w.firstChild,b=w.nextSibling,m=b.firstChild;return u.addEventListener("blur",f=>d(f.currentTarget.value)),u.$$input=f=>s(f.currentTarget.value),(f=>n=f)(u),M(p,U(Pe,{get when(){return t.max!==void 0},get children(){const f=ei.cloneNode(!0);return f.firstChild,f.$$click=()=>n.focus(),M(f,()=>t.max,null),q(()=>f.className=Ze.suffix),f}}),S),w.$$click=()=>l(1),ne(A,"src",Kn),b.$$click=()=>l(-1),ne(m,"src",Xn),q(f=>{const C=Ze.root,o=t.min,c=t.max,y=t.value,$=Ze.action;return C!==f._v$&&(p.className=f._v$=C),o!==f._v$2&&ne(u,"min",f._v$2=o),c!==f._v$3&&ne(u,"max",f._v$3=c),y!==f._v$4&&(u.value=f._v$4=y),$!==f._v$5&&(S.className=f._v$5=$),f},{_v$:void 0,_v$2:void 0,_v$3:void 0,_v$4:void 0,_v$5:void 0}),p})()}ue(["input","click"]);var xe={modal:"_modal_kfzs9_1",empty:"_empty_kfzs9_5",items:"_items_kfzs9_11",input:"_input_kfzs9_32"};function ii(e){const n=new Map;return e.forEach(i=>{var r;(r=i.line_items)==null||r.forEach(s=>{n.has(Number(s.id))?n.set(Number(s.id),(n.get(Number(s.id))||0)+Number(s.quantity)):n.set(Number(s.id),Number(s.quantity))})}),Zt().map(i=>{const r=n.get(i.id)||0;return{id:i.id,name:i.name,quantity:i.quantity-r}}).filter(i=>i.quantity>0)}const ri=V("<table><thead><tr><th>Items</th><th>Qty.</th></tr></thead><tbody></tbody></table>"),si=V('<div style="color: red;"></div>'),oi=V('<div><hr><div><div><label>Courier:<select></select></label><a href="admin.php?page=aftership-setting-admin">Update carrier list</a></div><div><label>Tracking number:<input></label></div></div></div>'),li=V("<div>All items have been fulfilled</div>"),ai=V("<tr><td></td><td></td></tr>"),ci=V("<option></option>"),ui=V("<div><label>:<input></label></div>"),Se={tracking_id:"",tracking_number:"",slug:"",additional_fields:{account_number:"",key:"",postal_code:"",ship_date:"",destination_country:"",state:""},line_items:{}};function fi(e){const[n,t]=X(Se),i=F(()=>n().slug||""),r=F(()=>{var m;return(((m=He().get(i()))==null?void 0:m.required_fields)||[]).map(f=>({key:f.replace(/^tracking_/,""),name:f.replace(/^tracking_/,"").split("_").map(Gn).join(" ")}))}),s=F(()=>e.value?se().filter(b=>{var m;return b.tracking_id!==((m=e.value)==null?void 0:m.tracking_id)}):se()),d=F(()=>s().length),l=F(()=>ii(s()));Te(()=>{var f,C,o;const b=new Date().toISOString().split("T")[0],m=((f=e.value)==null?void 0:f.line_items)||[];e.value?e.value.line_items?t({tracking_id:e.value.tracking_id,slug:e.value.slug,tracking_number:e.value.tracking_number,additional_fields:z(R({},e.value.additional_fields),{ship_date:e.value.additional_fields.ship_date||b}),line_items:Object.fromEntries(m.map(c=>[Number(c.id),Number(c.quantity)]))}):d()?t({tracking_id:e.value.tracking_id,slug:e.value.slug,tracking_number:e.value.tracking_number,additional_fields:z(R({},e.value.additional_fields),{ship_date:e.value.additional_fields.ship_date||b}),line_items:Object.fromEntries(l().map(c=>[Number(c.id),0]))}):t({tracking_id:e.value.tracking_id,slug:e.value.slug,tracking_number:e.value.tracking_number,additional_fields:z(R({},e.value.additional_fields),{ship_date:e.value.additional_fields.ship_date||b}),line_items:Object.fromEntries(l().map(c=>[Number(c.id),Number(c.quantity)]))}):t(z(R({},Se),{slug:((o=(C=ot())==null?void 0:C[0])==null?void 0:o.slug)||"",additional_fields:z(R({},Se.additional_fields),{ship_date:b}),line_items:Object.fromEntries(l().map(c=>[Number(c.id),Number(c.quantity)]))}))});const p=()=>{t(b=>{const m=new Date().toISOString().split("T")[0];return z(R({},b),{additional_fields:z(R({},Se.additional_fields),{ship_date:m})})})},a=F(()=>{let b=!0;const m={};return Object.entries(n().line_items||[]).some(([,C])=>!!C)||(b=!1),n().slug===""&&(b=!1,m.slug="Required"),n().tracking_number===""&&(b=!1),s().some(C=>C.slug===n().slug&&C.tracking_number===n().tracking_number)&&(b=!1,m.tracking_number="This shipment has already been added."),r().forEach(C=>{n().additional_fields[C.key]===""&&(b=!1,m.additional_fields=z(R({},m.additional_fields),{[C.key]:"Required"}))}),{isValid:b,errors:m}}),u=(b,m)=>{console.log("handleLineItemChange"),t(f=>z(R({},f),{line_items:z(R({},f.line_items),{[b]:m})}))},S=(b,m)=>{t(f=>z(R({},f),{[b]:m.trim()}))},w=(b,m)=>{t(f=>z(R({},f),{additional_fields:z(R({},f.additional_fields),{[b]:m.trim()})}))};return U(Jn,{get title(){var b;return((b=e.value)==null?void 0:b.tracking_id)?"Edit tracking":"Add tracking"},get visible(){return e.visible},get okText(){var b;return((b=e.value)==null?void 0:b.tracking_id)?"Save":"Add"},onOk:()=>e.onOk(n()),get onCancel(){return e.onCancel},get disabled(){return!a().isValid},get children(){const b=oi.cloneNode(!0),m=b.firstChild,f=m.nextSibling,C=f.firstChild,o=C.firstChild,c=o.firstChild,y=c.nextSibling,$=C.nextSibling,k=$.firstChild,N=k.firstChild,L=N.nextSibling;return M(b,U(Dt,{get fallback(){return(()=>{const x=li.cloneNode(!0);return q(()=>x.className=xe.empty),x})()},get children(){return U(Lt,{get when(){return l().length>0},get children(){const x=ri.cloneNode(!0),T=x.firstChild,B=T.nextSibling;return M(B,U(be,{get each(){return l()},children:O=>(()=>{const Z=ai.cloneNode(!0),P=Z.firstChild,ee=P.nextSibling;return M(P,()=>O.name),M(ee,U(ni,{min:0,get max(){return O.quantity},step:1,get value(){var W;return((W=n().line_items)==null?void 0:W[O.id])||0},onChange:W=>u(O.id,W||0)})),Z})()})),q(()=>x.className=xe.items),x}})}}),m),m.style.setProperty("margin","20px 0"),y.addEventListener("change",x=>{p(),S("slug",x.currentTarget.value)}),M(y,U(be,{get each(){return ot()},children:x=>(()=>{const T=ci.cloneNode(!0);return M(T,()=>x.name||x.other_name),q(()=>T.value=x.slug),T})()})),L.$$input=x=>S("tracking_number",x.currentTarget.value),M($,U(Pe,{get when(){return a().errors.tracking_number},get children(){const x=si.cloneNode(!0);return M(x,()=>a().errors.tracking_number),x}}),null),M(f,U(be,{get each(){return r()},children:x=>(()=>{const T=ui.cloneNode(!0),B=T.firstChild,O=B.firstChild,Z=O.nextSibling;return M(B,()=>x.name,O),Z.$$input=P=>w(x.key,P.currentTarget.value),q(P=>{const ee=x.key==="ship_date"?"date":"text",W=n().additional_fields[x.key];return ee!==P._v$5&&ne(Z,"type",P._v$5=ee),W!==P._v$6&&(Z.value=P._v$6=W),P},{_v$5:void 0,_v$6:void 0}),T})()}),null),q(x=>{var P;const T=xe.modal,B=xe.input,O=(P=n())==null?void 0:P.slug,Z=n().tracking_number;return T!==x._v$&&(b.className=x._v$=T),B!==x._v$2&&(f.className=x._v$2=B),O!==x._v$3&&(y.value=x._v$3=O),Z!==x._v$4&&(L.value=x._v$4=Z),x},{_v$:void 0,_v$2:void 0,_v$3:void 0,_v$4:void 0}),b}})}ue(["input"]);const di=V("<div><div></div><div></div></div>"),gi=V('<div><div><div>Shipment </div><div><a>Edit</a><a>Delete</a></div></div><div><div><strong></strong></div><div><a target="_blank"></a></div></div></div>'),hi=()=>{const[e,n]=X(!1),[t,i]=X();St(()=>{ge(),Qt()});const r=l=>te(this,null,function*(){const p=l.line_items||{};yield Gt(z(R({},l),{line_items:Object.entries(p).map(([a,u])=>({id:Number(a),quantity:u})).filter(a=>a.quantity>0)})),n(!1),i(void 0)}),s=()=>{n(!1),i(void 0)},d=l=>/^https?:\/\//.test(Ye())?`${Ye()}/${l.slug}/${l.tracking_number}`:`https://${Ye()}/${l.slug}/${l.tracking_number}`;return(()=>{const l=di.cloneNode(!0),p=l.firstChild,a=p.nextSibling;return M(p,U(be,{get each(){return se()},children:(u,S)=>(()=>{const w=gi.cloneNode(!0),A=w.firstChild,b=A.firstChild;b.firstChild;const m=b.nextSibling,f=m.firstChild,C=f.nextSibling,o=A.nextSibling,c=o.firstChild,y=c.firstChild,$=c.nextSibling,k=$.firstChild;return M(b,()=>S()+1,null),f.$$click=()=>te(this,null,function*(){yield ge(),i(u),n(!0)}),C.$$click=()=>Wt(u.tracking_id),M(y,()=>{var N;return((N=He().get(u.slug))==null?void 0:N.name)||u.slug}),M(k,()=>u.tracking_number),q(N=>{const L=$e.tracking,x=$e.title,T=$e.content,B=d(u);return L!==N._v$&&(w.className=N._v$=L),x!==N._v$2&&(A.className=N._v$2=x),T!==N._v$3&&(o.className=N._v$3=T),B!==N._v$4&&ne(k,"href",N._v$4=B),N},{_v$:void 0,_v$2:void 0,_v$3:void 0,_v$4:void 0}),w})()})),a.style.setProperty("padding","12px"),M(a,U(it,{onClick:()=>te(this,null,function*(){yield ge(),n(!0)}),style:{width:"100%"},children:"Add Tracking Number"})),M(l,U(fi,{get visible(){return e()},get value(){return t()},onCancel:s,onOk:r}),null),q(()=>l.className=$e.root),l})()};ue(["click"]);var Bi="";console.log("src/index.js"),customElements.define("aftership-meta-box",class extends HTMLElement{constructor(){super();wt(this,"initialized",!1);this.attachShadow({mode:"open"})}connectedCallback(){if(!!this.shadowRoot&&!this.initialized){this.initialized=!0;{const n=document.createElement("link");n.rel="stylesheet",n.href="/wp-content/plugins/aftership-woocommerce-tracking/assets/meta-box/dist/style.css",this.shadowRoot.appendChild(n)}Ot(()=>U(hi,{}),this.shadowRoot)}}})})();
1
+ var _i=Object.defineProperty,vi=Object.defineProperties;var mi=Object.getOwnPropertyDescriptors;var $t=Object.getOwnPropertySymbols;var yi=Object.prototype.hasOwnProperty,bi=Object.prototype.propertyIsEnumerable;var Fe=(H,E,j)=>E in H?_i(H,E,{enumerable:!0,configurable:!0,writable:!0,value:j}):H[E]=j,R=(H,E)=>{for(var j in E||(E={}))yi.call(E,j)&&Fe(H,j,E[j]);if($t)for(var j of $t(E))bi.call(E,j)&&Fe(H,j,E[j]);return H},z=(H,E)=>vi(H,mi(E));var wt=(H,E,j)=>(Fe(H,typeof E!="symbol"?E+"":E,j),j);var te=(H,E,j)=>new Promise((_e,Q)=>{var J=I=>{try{ie(j.next(I))}catch(G){Q(G)}},le=I=>{try{ie(j.throw(I))}catch(G){Q(G)}},ie=I=>I.done?_e(I.value):Promise.resolve(I.value).then(J,le);ie((j=j.apply(H,E)).next())});(function(){"use strict";const H=(e,n)=>e===n,E=Symbol("solid-proxy"),j={equals:H};let _e=Ge;const Q={},J=1,le=2,ie={owned:null,cleanups:null,context:null,owner:null};var I=null;let G=null,D=null,ae=null,Y=null,K=null,Ie=0;function ve(e,n){n&&(I=n);const t=D,i=I,r=e.length===0?ie:{owned:null,cleanups:null,context:null,owner:i};I=r,D=null;let s;try{Ee(()=>s=e(()=>Le(r)),!0)}finally{D=t,I=i}return s}function X(e,n){n=n?Object.assign({},j,n):j;const t={value:e,observers:null,observerSlots:null,pending:Q,comparator:n.equals||void 0};return[Ve.bind(t),i=>(typeof i=="function"&&(G&&G.running&&G.sources.has(t)?i=i(t.pending!==Q?t.pending:t.tValue):i=i(t.pending!==Q?t.pending:t.value)),je(t,i))]}function q(e,n,t){const i=Me(e,n,!1,J);me(i)}function Te(e,n,t){_e=It;const i=Me(e,n,!1,J);i.user=!0,K&&K.push(i)}function F(e,n,t){t=t?Object.assign({},j,t):j;const i=Me(e,n,!0,0);return i.pending=Q,i.observers=null,i.observerSlots=null,i.comparator=t.equals||void 0,me(i),Ve.bind(i)}function xt(e){if(ae)return e();let n;const t=ae=[];try{n=e()}finally{ae=null}return Ee(()=>{for(let i=0;i<t.length;i+=1){const r=t[i];if(r.pending!==Q){const s=r.pending;r.pending=Q,je(r,s)}}},!1),n}function re(e){let n,t=D;return D=null,n=e(),D=t,n}function St(e){Te(()=>re(e))}function Ct(e){return I===null||(I.cleanups===null?I.cleanups=[e]:I.cleanups.push(e)),e}function kt(e){const n=F(e);return F(()=>Oe(n()))}function Ve(){const e=G;if(this.sources&&(this.state||e)){const n=Y;Y=null,this.state===J||e?me(this):De(this),Y=n}if(D){const n=this.observers?this.observers.length:0;D.sources?(D.sources.push(this),D.sourceSlots.push(n)):(D.sources=[this],D.sourceSlots=[n]),this.observers?(this.observers.push(D),this.observerSlots.push(D.sources.length-1)):(this.observers=[D],this.observerSlots=[D.sources.length-1])}return this.value}function je(e,n,t){if(e.comparator&&e.comparator(e.value,n))return n;if(ae)return e.pending===Q&&ae.push(e),e.pending=n,n;let i=!1;return e.value=n,e.observers&&e.observers.length&&Ee(()=>{for(let r=0;r<e.observers.length;r+=1){const s=e.observers[r];i&&G.disposed.has(s),s.pure?Y.push(s):K.push(s),s.observers&&(i&&!s.tState||!i&&!s.state)&&We(s),i||(s.state=J)}if(Y.length>1e6)throw Y=[],new Error},!1),n}function me(e){if(!e.fn)return;Le(e);const n=I,t=D,i=Ie;D=I=e,Nt(e,e.value,i),D=t,I=n}function Nt(e,n,t){let i;try{i=e.fn(n)}catch(r){Qe(r)}(!e.updatedAt||e.updatedAt<=t)&&(e.observers&&e.observers.length?je(e,i):e.value=i,e.updatedAt=t)}function Me(e,n,t,i=J,r){const s={fn:e,state:i,updatedAt:null,owned:null,sources:null,sourceSlots:null,cleanups:null,value:n,owner:I,context:null,pure:t};return I===null||I!==ie&&(I.owned?I.owned.push(s):I.owned=[s]),s}function ce(e){const n=G;if(e.state!==J)return e.state=0;if(e.suspense&&re(e.suspense.inFallback))return e.suspense.effects.push(e);const t=[e];for(;(e=e.owner)&&(!e.updatedAt||e.updatedAt<Ie);)(e.state||n)&&t.push(e);for(let i=t.length-1;i>=0;i--)if(e=t[i],e.state===J||n)me(e);else if(e.state===le||n){const r=Y;Y=null,De(e),Y=r}}function Ee(e,n){if(Y)return e();let t=!1;n||(Y=[]),K?t=!0:K=[],Ie++;try{e()}catch(i){Qe(i)}finally{At(t)}}function At(e){Y&&(Ge(Y),Y=null),!e&&(K.length?xt(()=>{_e(K),K=null}):K=null)}function Ge(e){for(let n=0;n<e.length;n++)ce(e[n])}function It(e){let n,t=0;for(n=0;n<e.length;n++){const r=e[n];r.user?e[t++]=r:ce(r)}const i=e.length;for(n=0;n<t;n++)ce(e[n]);for(n=i;n<e.length;n++)ce(e[n])}function De(e){e.state=0;const n=G;for(let t=0;t<e.sources.length;t+=1){const i=e.sources[t];i.sources&&(i.state===J||n?ce(i):(i.state===le||n)&&De(i))}}function We(e){const n=G;for(let t=0;t<e.observers.length;t+=1){const i=e.observers[t];(!i.state||n)&&(i.state=le,i.pure?Y.push(i):K.push(i),i.observers&&We(i))}}function Le(e){let n;if(e.sources)for(;e.sources.length;){const t=e.sources.pop(),i=e.sourceSlots.pop(),r=t.observers;if(r&&r.length){const s=r.pop(),d=t.observerSlots.pop();i<r.length&&(s.sourceSlots[d]=i,r[i]=s,t.observerSlots[i]=d)}}if(e.owned){for(n=0;n<e.owned.length;n++)Le(e.owned[n]);e.owned=null}if(e.cleanups){for(n=0;n<e.cleanups.length;n++)e.cleanups[n]();e.cleanups=null}e.state=0,e.context=null}function Qe(e){throw e}function Oe(e){if(typeof e=="function"&&!e.length)return Oe(e());if(Array.isArray(e)){const n=[];for(let t=0;t<e.length;t++){const i=Oe(e[t]);Array.isArray(i)?n.push.apply(n,i):n.push(i)}return n}return e}const Tt=Symbol("fallback");function Je(e){for(let n=0;n<e.length;n++)e[n]()}function jt(e,n,t={}){let i=[],r=[],s=[],d=0,l=n.length>1?[]:null;return Ct(()=>Je(s)),()=>{let p=e()||[],a,u;return re(()=>{let w=p.length,A,b,m,f,k,o,c,y,$;if(w===0)d!==0&&(Je(s),s=[],i=[],r=[],d=0,l&&(l=[])),t.fallback&&(i=[Tt],r[0]=ve(C=>(s[0]=C,t.fallback())),d=1);else if(d===0){for(r=new Array(w),u=0;u<w;u++)i[u]=p[u],r[u]=ve(S);d=w}else{for(m=new Array(w),f=new Array(w),l&&(k=new Array(w)),o=0,c=Math.min(d,w);o<c&&i[o]===p[o];o++);for(c=d-1,y=w-1;c>=o&&y>=o&&i[c]===p[y];c--,y--)m[y]=r[c],f[y]=s[c],l&&(k[y]=l[c]);for(A=new Map,b=new Array(y+1),u=y;u>=o;u--)$=p[u],a=A.get($),b[u]=a===void 0?-1:a,A.set($,u);for(a=o;a<=c;a++)$=i[a],u=A.get($),u!==void 0&&u!==-1?(m[u]=r[a],f[u]=s[a],l&&(k[u]=l[a]),u=b[u],A.set($,u)):s[a]();for(u=o;u<w;u++)u in m?(r[u]=m[u],s[u]=f[u],l&&(l[u]=k[u],l[u](u))):r[u]=ve(S);r=r.slice(0,d=w),i=p.slice(0)}return r});function S(w){if(s[u]=w,l){const[A,b]=X(u);return l[u]=b,n(p[u],A)}return n(p[u])}}}function U(e,n){return re(()=>e(n))}function ye(){return!0}const Mt={get(e,n,t){return n===E?t:e.get(n)},has(e,n){return e.has(n)},set:ye,deleteProperty:ye,getOwnPropertyDescriptor(e,n){return{configurable:!0,enumerable:!0,get(){return e.get(n)},set:ye,deleteProperty:ye}},ownKeys(e){return e.keys()}};function Be(e){return typeof e=="function"?e():e}function Et(...e){return new Proxy({get(n){for(let t=e.length-1;t>=0;t--){const i=Be(e[t])[n];if(i!==void 0)return i}},has(n){for(let t=e.length-1;t>=0;t--)if(n in Be(e[t]))return!0;return!1},keys(){const n=[];for(let t=0;t<e.length;t++)n.push(...Object.keys(Be(e[t])));return[...new Set(n)]}},Mt)}function be(e){const n="fallback"in e&&{fallback:()=>e.fallback};return F(jt(()=>e.each,e.children,n||void 0))}function Pe(e){let n=!1;const t=F(()=>e.when,void 0,{equals:(i,r)=>n?i===r:!i==!r});return F(()=>{const i=t();if(i){const r=e.children;return(n=typeof r=="function"&&r.length>0)?re(()=>r(i)):r}return e.fallback})}function Dt(e){let n=!1;const t=kt(()=>e.children),i=F(()=>{let r=t();Array.isArray(r)||(r=[r]);for(let s=0;s<r.length;s++){const d=r[s].when;if(d)return[s,d,r[s]]}return[-1]},void 0,{equals:(r,s)=>r&&r[0]===s[0]&&(n?r[1]===s[1]:!r[1]==!s[1])&&r[2]===s[2]});return F(()=>{const[r,s,d]=i();if(r<0)return e.fallback;const l=d.children;return(n=typeof l=="function"&&l.length>0)?re(()=>l(s)):l})}function Lt(e){return e}function Ke(e,n,t){let i=t.length,r=n.length,s=i,d=0,l=0,p=n[r-1].nextSibling,a=null;for(;d<r||l<s;){if(n[d]===t[l]){d++,l++;continue}for(;n[r-1]===t[s-1];)r--,s--;if(r===d){const u=s<i?l?t[l-1].nextSibling:t[s-l]:p;for(;l<s;)e.insertBefore(t[l++],u)}else if(s===l)for(;d<r;)(!a||!a.has(n[d]))&&e.removeChild(n[d]),d++;else if(n[d]===t[s-1]&&t[l]===n[r-1]){const u=n[--r].nextSibling;e.insertBefore(t[l++],n[d++].nextSibling),e.insertBefore(t[--s],u),n[r]=t[s]}else{if(!a){a=new Map;let S=l;for(;S<s;)a.set(t[S],S++)}const u=a.get(n[d]);if(u!=null)if(l<u&&u<s){let S=d,w=1,A;for(;++S<r&&S<s&&!((A=a.get(n[S]))==null||A!==u+w);)w++;if(w>u-l){const b=n[d];for(;l<u;)e.insertBefore(t[l++],b)}else e.replaceChild(t[l++],n[d++])}else d++;else e.removeChild(n[d++])}}}const Xe="_$DX_DELEGATE";function Ot(e,n,t){let i;return ve(r=>{i=r,M(n,e(),n.firstChild?null:void 0,t)}),()=>{i(),n.textContent=""}}function V(e,n,t){const i=document.createElement("template");i.innerHTML=e;let r=i.content.firstChild;return t&&(r=r.firstChild),r}function ue(e,n=window.document){const t=n[Xe]||(n[Xe]=new Set);for(let i=0,r=e.length;i<r;i++){const s=e[i];t.has(s)||(t.add(s),n.addEventListener(s,Rt))}}function ne(e,n,t){t==null?e.removeAttribute(n):e.setAttribute(n,t)}function Re(e,n,t,i){i?Array.isArray(t)?(e[`$$${n}`]=t[0],e[`$$${n}Data`]=t[1]):e[`$$${n}`]=t:Array.isArray(t)?e.addEventListener(n,r=>t[0](t[1],r)):e.addEventListener(n,t)}function Bt(e,n,t={}){const i=Object.keys(n||{}),r=Object.keys(t);let s,d;for(s=0,d=r.length;s<d;s++){const l=r[s];!l||l==="undefined"||n[l]||(et(e,l,!1),delete t[l])}for(s=0,d=i.length;s<d;s++){const l=i[s],p=!!n[l];!l||l==="undefined"||t[l]===p||!p||(et(e,l,!0),t[l]=p)}return t}function Pt(e,n,t={}){const i=e.style;if(n==null||typeof n=="string")return i.cssText=n;typeof t=="string"&&(t={});let r,s;for(s in t)n[s]==null&&i.removeProperty(s),delete t[s];for(s in n)r=n[s],r!==t[s]&&(i.setProperty(s,r),t[s]=r);return t}function M(e,n,t,i){if(t!==void 0&&!i&&(i=[]),typeof n!="function")return pe(e,n,i,t);q(r=>pe(e,n(),r,t),i)}function et(e,n,t){const i=n.trim().split(/\s+/);for(let r=0,s=i.length;r<s;r++)e.classList.toggle(i[r],t)}function Rt(e){const n=`$$${e.type}`;let t=e.composedPath&&e.composedPath()[0]||e.target;for(e.target!==t&&Object.defineProperty(e,"target",{configurable:!0,value:t}),Object.defineProperty(e,"currentTarget",{configurable:!0,get(){return t}});t!==null;){const i=t[n];if(i&&!t.disabled){const r=t[`${n}Data`];if(r!==void 0?i(r,e):i(e),e.cancelBubble)return}t=t.host&&t.host!==t&&t.host instanceof Node?t.host:t.parentNode}}function pe(e,n,t,i,r){for(;typeof t=="function";)t=t();if(n===t)return t;const s=typeof n,d=i!==void 0;if(e=d&&t[0]&&t[0].parentNode||e,s==="string"||s==="number")if(s==="number"&&(n=n.toString()),d){let l=t[0];l&&l.nodeType===3?l.data=n:l=document.createTextNode(n),t=fe(e,t,i,l)}else t!==""&&typeof t=="string"?t=e.firstChild.data=n:t=e.textContent=n;else if(n==null||s==="boolean")t=fe(e,t,i);else{if(s==="function")return q(()=>{let l=n();for(;typeof l=="function";)l=l();t=pe(e,l,t,i)}),()=>t;if(Array.isArray(n)){const l=[];if(ze(l,n,r))return q(()=>t=pe(e,l,t,i,!0)),()=>t;if(l.length===0){if(t=fe(e,t,i),d)return t}else Array.isArray(t)?t.length===0?tt(e,l,i):Ke(e,t,l):t==null||t===""?tt(e,l):Ke(e,d&&t||[e.firstChild],l);t=l}else if(n instanceof Node){if(Array.isArray(t)){if(d)return t=fe(e,t,i,n);fe(e,t,null,n)}else t==null||t===""||!e.firstChild?e.appendChild(n):e.replaceChild(n,e.firstChild);t=n}}return t}function ze(e,n,t){let i=!1;for(let r=0,s=n.length;r<s;r++){let d=n[r],l;if(d instanceof Node)e.push(d);else if(!(d==null||d===!0||d===!1))if(Array.isArray(d))i=ze(e,d)||i;else if((l=typeof d)==="string")e.push(document.createTextNode(d));else if(l==="function")if(t){for(;typeof d=="function";)d=d();i=ze(e,Array.isArray(d)?d:[d])||i}else e.push(d),i=!0;else e.push(document.createTextNode(d.toString()))}return i}function tt(e,n,t){for(let i=0,r=n.length;i<r;i++)e.insertBefore(n[i],t)}function fe(e,n,t,i){if(t===void 0)return e.textContent="";const r=i||document.createTextNode("");if(n.length){let s=!1;for(let d=n.length-1;d>=0;d--){const l=n[d];if(r!==l){const p=l.parentNode===e;!s&&!d?p?e.replaceChild(r,l):e.insertBefore(r,t):p&&e.removeChild(l)}else s=!0}}else e.insertBefore(r,t);return[r]}var nt={button:"_button_1dv9o_1",primary:"_primary_1dv9o_18"};const zt=V("<button></button>"),it=e=>(()=>{const n=zt.cloneNode(!0);return Re(n,"click",e.onClick,!0),M(n,()=>e.children),q(t=>{const i={[nt.button]:!0,[nt.primary]:e.type==="primary"},r=e.disabled,s=e.style;return t._v$=Bt(n,i,t._v$),r!==t._v$2&&(n.disabled=t._v$2=r),t._v$3=Pt(n,s,t._v$3),t},{_v$:void 0,_v$2:void 0,_v$3:void 0}),n})();ue(["click"]);var $e={root:"_root_1nuhb_1",loading:"_loading_1nuhb_5",tracking:"_tracking_1nuhb_19",title:"_title_1nuhb_23",content:"_content_1nuhb_37"},de=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function Ht(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var rt={exports:{}},st={exports:{}};(function(e,n){(function(t,i){e.exports=i()})(de,function(){var t=t||function(i,r){var s;if(typeof window!="undefined"&&window.crypto&&(s=window.crypto),typeof self!="undefined"&&self.crypto&&(s=self.crypto),typeof globalThis!="undefined"&&globalThis.crypto&&(s=globalThis.crypto),!s&&typeof window!="undefined"&&window.msCrypto&&(s=window.msCrypto),!s&&typeof de!="undefined"&&de.crypto&&(s=de.crypto),!s&&typeof Ht=="function")try{s=require("crypto")}catch(o){}var d=function(){if(s){if(typeof s.getRandomValues=="function")try{return s.getRandomValues(new Uint32Array(1))[0]}catch(o){}if(typeof s.randomBytes=="function")try{return s.randomBytes(4).readInt32LE()}catch(o){}}throw new Error("Native crypto module could not be used to get secure random number.")},l=Object.create||function(){function o(){}return function(c){var y;return o.prototype=c,y=new o,o.prototype=null,y}}(),p={},a=p.lib={},u=a.Base=function(){return{extend:function(o){var c=l(this);return o&&c.mixIn(o),(!c.hasOwnProperty("init")||this.init===c.init)&&(c.init=function(){c.$super.init.apply(this,arguments)}),c.init.prototype=c,c.$super=this,c},create:function(){var o=this.extend();return o.init.apply(o,arguments),o},init:function(){},mixIn:function(o){for(var c in o)o.hasOwnProperty(c)&&(this[c]=o[c]);o.hasOwnProperty("toString")&&(this.toString=o.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),S=a.WordArray=u.extend({init:function(o,c){o=this.words=o||[],c!=r?this.sigBytes=c:this.sigBytes=o.length*4},toString:function(o){return(o||A).stringify(this)},concat:function(o){var c=this.words,y=o.words,$=this.sigBytes,C=o.sigBytes;if(this.clamp(),$%4)for(var N=0;N<C;N++){var L=y[N>>>2]>>>24-N%4*8&255;c[$+N>>>2]|=L<<24-($+N)%4*8}else for(var x=0;x<C;x+=4)c[$+x>>>2]=y[x>>>2];return this.sigBytes+=C,this},clamp:function(){var o=this.words,c=this.sigBytes;o[c>>>2]&=4294967295<<32-c%4*8,o.length=i.ceil(c/4)},clone:function(){var o=u.clone.call(this);return o.words=this.words.slice(0),o},random:function(o){for(var c=[],y=0;y<o;y+=4)c.push(d());return new S.init(c,o)}}),w=p.enc={},A=w.Hex={stringify:function(o){for(var c=o.words,y=o.sigBytes,$=[],C=0;C<y;C++){var N=c[C>>>2]>>>24-C%4*8&255;$.push((N>>>4).toString(16)),$.push((N&15).toString(16))}return $.join("")},parse:function(o){for(var c=o.length,y=[],$=0;$<c;$+=2)y[$>>>3]|=parseInt(o.substr($,2),16)<<24-$%8*4;return new S.init(y,c/2)}},b=w.Latin1={stringify:function(o){for(var c=o.words,y=o.sigBytes,$=[],C=0;C<y;C++){var N=c[C>>>2]>>>24-C%4*8&255;$.push(String.fromCharCode(N))}return $.join("")},parse:function(o){for(var c=o.length,y=[],$=0;$<c;$++)y[$>>>2]|=(o.charCodeAt($)&255)<<24-$%4*8;return new S.init(y,c)}},m=w.Utf8={stringify:function(o){try{return decodeURIComponent(escape(b.stringify(o)))}catch(c){throw new Error("Malformed UTF-8 data")}},parse:function(o){return b.parse(unescape(encodeURIComponent(o)))}},f=a.BufferedBlockAlgorithm=u.extend({reset:function(){this._data=new S.init,this._nDataBytes=0},_append:function(o){typeof o=="string"&&(o=m.parse(o)),this._data.concat(o),this._nDataBytes+=o.sigBytes},_process:function(o){var c,y=this._data,$=y.words,C=y.sigBytes,N=this.blockSize,L=N*4,x=C/L;o?x=i.ceil(x):x=i.max((x|0)-this._minBufferSize,0);var T=x*N,B=i.min(T*4,C);if(T){for(var O=0;O<T;O+=N)this._doProcessBlock($,O);c=$.splice(0,T),y.sigBytes-=B}return new S.init(c,B)},clone:function(){var o=u.clone.call(this);return o._data=this._data.clone(),o},_minBufferSize:0});a.Hasher=f.extend({cfg:u.extend(),init:function(o){this.cfg=this.cfg.extend(o),this.reset()},reset:function(){f.reset.call(this),this._doReset()},update:function(o){return this._append(o),this._process(),this},finalize:function(o){o&&this._append(o);var c=this._doFinalize();return c},blockSize:512/32,_createHelper:function(o){return function(c,y){return new o.init(y).finalize(c)}},_createHmacHelper:function(o){return function(c,y){return new k.HMAC.init(o,y).finalize(c)}}});var k=p.algo={};return p}(Math);return t})})(st),function(e,n){(function(t,i){e.exports=i(st.exports)})(de,function(t){return function(i){var r=t,s=r.lib,d=s.WordArray,l=s.Hasher,p=r.algo,a=[];(function(){for(var m=0;m<64;m++)a[m]=i.abs(i.sin(m+1))*4294967296|0})();var u=p.MD5=l.extend({_doReset:function(){this._hash=new d.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(m,f){for(var k=0;k<16;k++){var o=f+k,c=m[o];m[o]=(c<<8|c>>>24)&16711935|(c<<24|c>>>8)&4278255360}var y=this._hash.words,$=m[f+0],C=m[f+1],N=m[f+2],L=m[f+3],x=m[f+4],T=m[f+5],B=m[f+6],O=m[f+7],Z=m[f+8],P=m[f+9],ee=m[f+10],W=m[f+11],Ce=m[f+12],ke=m[f+13],Ne=m[f+14],Ae=m[f+15],g=y[0],h=y[1],_=y[2],v=y[3];g=S(g,h,_,v,$,7,a[0]),v=S(v,g,h,_,C,12,a[1]),_=S(_,v,g,h,N,17,a[2]),h=S(h,_,v,g,L,22,a[3]),g=S(g,h,_,v,x,7,a[4]),v=S(v,g,h,_,T,12,a[5]),_=S(_,v,g,h,B,17,a[6]),h=S(h,_,v,g,O,22,a[7]),g=S(g,h,_,v,Z,7,a[8]),v=S(v,g,h,_,P,12,a[9]),_=S(_,v,g,h,ee,17,a[10]),h=S(h,_,v,g,W,22,a[11]),g=S(g,h,_,v,Ce,7,a[12]),v=S(v,g,h,_,ke,12,a[13]),_=S(_,v,g,h,Ne,17,a[14]),h=S(h,_,v,g,Ae,22,a[15]),g=w(g,h,_,v,C,5,a[16]),v=w(v,g,h,_,B,9,a[17]),_=w(_,v,g,h,W,14,a[18]),h=w(h,_,v,g,$,20,a[19]),g=w(g,h,_,v,T,5,a[20]),v=w(v,g,h,_,ee,9,a[21]),_=w(_,v,g,h,Ae,14,a[22]),h=w(h,_,v,g,x,20,a[23]),g=w(g,h,_,v,P,5,a[24]),v=w(v,g,h,_,Ne,9,a[25]),_=w(_,v,g,h,L,14,a[26]),h=w(h,_,v,g,Z,20,a[27]),g=w(g,h,_,v,ke,5,a[28]),v=w(v,g,h,_,N,9,a[29]),_=w(_,v,g,h,O,14,a[30]),h=w(h,_,v,g,Ce,20,a[31]),g=A(g,h,_,v,T,4,a[32]),v=A(v,g,h,_,Z,11,a[33]),_=A(_,v,g,h,W,16,a[34]),h=A(h,_,v,g,Ne,23,a[35]),g=A(g,h,_,v,C,4,a[36]),v=A(v,g,h,_,x,11,a[37]),_=A(_,v,g,h,O,16,a[38]),h=A(h,_,v,g,ee,23,a[39]),g=A(g,h,_,v,ke,4,a[40]),v=A(v,g,h,_,$,11,a[41]),_=A(_,v,g,h,L,16,a[42]),h=A(h,_,v,g,B,23,a[43]),g=A(g,h,_,v,P,4,a[44]),v=A(v,g,h,_,Ce,11,a[45]),_=A(_,v,g,h,Ae,16,a[46]),h=A(h,_,v,g,N,23,a[47]),g=b(g,h,_,v,$,6,a[48]),v=b(v,g,h,_,O,10,a[49]),_=b(_,v,g,h,Ne,15,a[50]),h=b(h,_,v,g,T,21,a[51]),g=b(g,h,_,v,Ce,6,a[52]),v=b(v,g,h,_,L,10,a[53]),_=b(_,v,g,h,ee,15,a[54]),h=b(h,_,v,g,C,21,a[55]),g=b(g,h,_,v,Z,6,a[56]),v=b(v,g,h,_,Ae,10,a[57]),_=b(_,v,g,h,B,15,a[58]),h=b(h,_,v,g,ke,21,a[59]),g=b(g,h,_,v,x,6,a[60]),v=b(v,g,h,_,W,10,a[61]),_=b(_,v,g,h,N,15,a[62]),h=b(h,_,v,g,P,21,a[63]),y[0]=y[0]+g|0,y[1]=y[1]+h|0,y[2]=y[2]+_|0,y[3]=y[3]+v|0},_doFinalize:function(){var m=this._data,f=m.words,k=this._nDataBytes*8,o=m.sigBytes*8;f[o>>>5]|=128<<24-o%32;var c=i.floor(k/4294967296),y=k;f[(o+64>>>9<<4)+15]=(c<<8|c>>>24)&16711935|(c<<24|c>>>8)&4278255360,f[(o+64>>>9<<4)+14]=(y<<8|y>>>24)&16711935|(y<<24|y>>>8)&4278255360,m.sigBytes=(f.length+1)*4,this._process();for(var $=this._hash,C=$.words,N=0;N<4;N++){var L=C[N];C[N]=(L<<8|L>>>24)&16711935|(L<<24|L>>>8)&4278255360}return $},clone:function(){var m=l.clone.call(this);return m._hash=this._hash.clone(),m}});function S(m,f,k,o,c,y,$){var C=m+(f&k|~f&o)+c+$;return(C<<y|C>>>32-y)+f}function w(m,f,k,o,c,y,$){var C=m+(f&o|k&~o)+c+$;return(C<<y|C>>>32-y)+f}function A(m,f,k,o,c,y,$){var C=m+(f^k^o)+c+$;return(C<<y|C>>>32-y)+f}function b(m,f,k,o,c,y,$){var C=m+(k^(f|~o))+c+$;return(C<<y|C>>>32-y)+f}r.MD5=l._createHelper(u),r.HmacMD5=l._createHmacHelper(u)}(Math),t.MD5})}(rt);var Yt=rt.exports;const[se,Ut]=X([]),[ot,qt]=X([]),[He,lt]=X(new Map),[Zt,Ft]=X([]),[Ye,Vt]=X("");function ge(){return te(this,null,function*(){var n;const e=((n=document.querySelector("#aftership_get_nonce"))==null?void 0:n.value)||"";yield fetch(`/wp-admin/admin-ajax.php?action=aftership_get_order_trackings&security=${e}&order_id=${window.woocommerce_admin_meta_boxes.post_id}`).then(t=>t.json()).then(t=>{const i=t.data,r=window.get_aftership_couriers(),s=new Map;i.trackings.forEach(d=>{if(s.has(d.slug))return;const l=r.find(p=>p.slug===d.slug);l&&s.set(d.slug,l)}),lt(d=>new Map([...d,...s])),Ut(i.trackings),Ft(i.line_items)})})}function Gt(e){return te(this,null,function*(){var l;const n=se().find(p=>p.tracking_id===e.tracking_id),t=se().findIndex(p=>p.tracking_id===e.tracking_id),i=new Date().toISOString().replace(/\.\d+(?=Z$)/,""),r=e.slug!==(n==null?void 0:n.slug)||e.tracking_number!==(n==null?void 0:n.tracking_number);let s=[...se()];n&&!r?s.splice(t,1,z(R({},e),{metrics:{created_at:n.metrics.created_at||i,updated_at:i}})):s=[...s.filter(p=>p.tracking_id!==e.tracking_id),z(R({},e),{tracking_id:Yt(`${e.slug}-${e.tracking_number}`).toString(),metrics:{created_at:i,updated_at:i}})];const d=((l=document.querySelector("#aftership_create_nonce"))==null?void 0:l.value)||"";yield fetch(`/wp-admin/admin-ajax.php?action=aftership_save_order_tracking&security=${d}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({order_id:window.woocommerce_admin_meta_boxes.post_id,trackings:s})}),yield ge()})}function Wt(e){return te(this,null,function*(){var t;const n=((t=document.querySelector("#aftership_delete_nonce"))==null?void 0:t.value)||"";yield fetch(`/wp-admin/admin-ajax.php?action=aftership_delete_order_tracking&security=${n}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({order_id:window.woocommerce_admin_meta_boxes.post_id,tracking_id:e})}),yield ge()})}function Qt(){return te(this,null,function*(){yield fetch("/wp-admin/admin-ajax.php?action=aftership_get_settings").then(e=>e.json()).then(e=>{const n=e.data.couriers,t=new Map(He());n.forEach(i=>{t.set(i.slug,i)}),lt(i=>new Map([...i,...t])),qt(n),Vt(e.data.custom_domain)})})}var Jt=typeof global=="object"&&global&&global.Object===Object&&global,Kt=Jt,Xt=typeof self=="object"&&self&&self.Object===Object&&self,en=Kt||Xt||Function("return this")(),tn=en,nn=tn.Symbol,oe=nn,at=Object.prototype,rn=at.hasOwnProperty,sn=at.toString,he=oe?oe.toStringTag:void 0;function on(e){var n=rn.call(e,he),t=e[he];try{e[he]=void 0;var i=!0}catch(s){}var r=sn.call(e);return i&&(n?e[he]=t:delete e[he]),r}var ln=Object.prototype,an=ln.toString;function cn(e){return an.call(e)}var un="[object Null]",fn="[object Undefined]",ct=oe?oe.toStringTag:void 0;function dn(e){return e==null?e===void 0?fn:un:ct&&ct in Object(e)?on(e):cn(e)}function gn(e){return e!=null&&typeof e=="object"}var hn="[object Symbol]";function _n(e){return typeof e=="symbol"||gn(e)&&dn(e)==hn}function vn(e,n){for(var t=-1,i=e==null?0:e.length,r=Array(i);++t<i;)r[t]=n(e[t],t,e);return r}var mn=Array.isArray,yn=mn,bn=1/0,ut=oe?oe.prototype:void 0,ft=ut?ut.toString:void 0;function dt(e){if(typeof e=="string")return e;if(yn(e))return vn(e,dt)+"";if(_n(e))return ft?ft.call(e):"";var n=e+"";return n=="0"&&1/e==-bn?"-0":n}function gt(e){return e==null?"":dt(e)}function pn(e,n,t){var i=-1,r=e.length;n<0&&(n=-n>r?0:r+n),t=t>r?r:t,t<0&&(t+=r),r=n>t?0:t-n>>>0,n>>>=0;for(var s=Array(r);++i<r;)s[i]=e[i+n];return s}function $n(e,n,t){var i=e.length;return t=t===void 0?i:t,!n&&t>=i?e:pn(e,n,t)}var wn="\\ud800-\\udfff",xn="\\u0300-\\u036f",Sn="\\ufe20-\\ufe2f",Cn="\\u20d0-\\u20ff",kn=xn+Sn+Cn,Nn="\\ufe0e\\ufe0f",An="\\u200d",In=RegExp("["+An+wn+kn+Nn+"]");function ht(e){return In.test(e)}function Tn(e){return e.split("")}var _t="\\ud800-\\udfff",jn="\\u0300-\\u036f",Mn="\\ufe20-\\ufe2f",En="\\u20d0-\\u20ff",Dn=jn+Mn+En,Ln="\\ufe0e\\ufe0f",On="["+_t+"]",Ue="["+Dn+"]",qe="\\ud83c[\\udffb-\\udfff]",Bn="(?:"+Ue+"|"+qe+")",vt="[^"+_t+"]",mt="(?:\\ud83c[\\udde6-\\uddff]){2}",yt="[\\ud800-\\udbff][\\udc00-\\udfff]",Pn="\\u200d",bt=Bn+"?",pt="["+Ln+"]?",Rn="(?:"+Pn+"(?:"+[vt,mt,yt].join("|")+")"+pt+bt+")*",zn=pt+bt+Rn,Hn="(?:"+[vt+Ue+"?",Ue,mt,yt,On].join("|")+")",Yn=RegExp(qe+"(?="+qe+")|"+Hn+zn,"g");function Un(e){return e.match(Yn)||[]}function qn(e){return ht(e)?Un(e):Tn(e)}function Zn(e){return function(n){n=gt(n);var t=ht(n)?qn(n):void 0,i=t?t[0]:n.charAt(0),r=t?$n(t,1).join(""):n.slice(1);return i[e]()+r}}var Fn=Zn("toUpperCase"),Vn=Fn;function Gn(e){return Vn(gt(e).toLowerCase())}var we={container:"_container_1s8av_1",backdrop:"_backdrop_1s8av_8",modal:"_modal_1s8av_15"},Wn="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iY3VycmVudENvbG9yIiBjbGFzcz0iYmkgYmkteCIgdmlld0JveD0iMCAwIDE2IDE2Ij4KICA8cGF0aCBmaWxsPSIjNjY2IiBkPSJNNC42NDYgNC42NDZhLjUuNSAwIDAgMSAuNzA4IDBMOCA3LjI5M2wyLjY0Ni0yLjY0N2EuNS41IDAgMCAxIC43MDguNzA4TDguNzA3IDhsMi42NDcgMi42NDZhLjUuNSAwIDAgMS0uNzA4LjcwOEw4IDguNzA3bC0yLjY0NiAyLjY0N2EuNS41IDAgMCAxLS43MDgtLjcwOEw3LjI5MyA4IDQuNjQ2IDUuMzU0YS41LjUgMCAwIDEgMC0uNzA4eiIvPgo8L3N2Zz4=";const Qn=V('<div><div></div><section><header><h1></h1><div role="button"><img></div></header><article></article><footer></footer></section></div>');function Jn(e){return Te(()=>{e.visible?document.body.style.overflowY="hidden":document.body.style.overflowY="auto"}),U(Pe,{get when(){return e.visible},get children(){const n=Qn.cloneNode(!0),t=n.firstChild,i=t.nextSibling,r=i.firstChild,s=r.firstChild,d=s.nextSibling,l=d.firstChild,p=r.nextSibling,a=p.nextSibling;return Re(t,"click",e.onCancel,!0),M(s,()=>e.title),Re(d,"click",e.onCancel,!0),ne(l,"src",Wn),M(p,()=>e.children),M(a,U(it,{get disabled(){return e.disabled},onClick:()=>e.onOk&&e.onOk(),type:"primary",get children(){return e.okText||"Ok"}})),q(u=>{const S=we.container,w=we.backdrop,A=we.modal,b=we.header;return S!==u._v$&&(n.className=u._v$=S),w!==u._v$2&&(t.className=u._v$2=w),A!==u._v$3&&(i.className=u._v$3=A),b!==u._v$4&&(r.className=u._v$4=b),u},{_v$:void 0,_v$2:void 0,_v$3:void 0,_v$4:void 0}),n}})}ue(["click"]);var Ze={root:"_root_b92ih_1",suffix:"_suffix_b92ih_25",action:"_action_b92ih_30"},Kn="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iY3VycmVudENvbG9yIiBjbGFzcz0iYmkgYmktY2FyZXQtdXAtZmlsbCIgdmlld0JveD0iMCAwIDE2IDE2Ij4KICA8cGF0aCBmaWxsPSIjNWM1ZjYyIiBkPSJtNy4yNDcgNC44Ni00Ljc5NiA1LjQ4MWMtLjU2Ni42NDctLjEwNiAxLjY1OS43NTMgMS42NTloOS41OTJhMSAxIDAgMCAwIC43NTMtMS42NTlsLTQuNzk2LTUuNDhhMSAxIDAgMCAwLTEuNTA2IDB6Ii8+Cjwvc3ZnPg==",Xn="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iY3VycmVudENvbG9yIiBjbGFzcz0iYmkgYmktY2FyZXQtZG93bi1maWxsIiB2aWV3Qm94PSIwIDAgMTYgMTYiPgogIDxwYXRoIGZpbGw9IiM1YzVmNjIiIGQ9Ik03LjI0NyAxMS4xNCAyLjQ1MSA1LjY1OEMxLjg4NSA1LjAxMyAyLjM0NSA0IDMuMjA0IDRoOS41OTJhMSAxIDAgMCAxIC43NTMgMS42NTlsLTQuNzk2IDUuNDhhMSAxIDAgMCAxLTEuNTA2IDB6Ii8+Cjwvc3ZnPg==";const ei=V("<div>of </div>"),ti=V('<div><div><input type="number" inputmode="numeric"></div><div aria-hidden><div role="button" tabindex="-1"><img></div><div role="button" tabindex="-1"><img></div></div></div>');function ni(e){let n;const t=Et({step:1},e);function i(p){return t.min!==void 0&&Number(p)<t.min}function r(p){return t.max!==void 0&&Number(p)>t.max}function s(p){!p||i(p)||r(p)||t.onChange(Number(p))}function d(p){if(p)if(i(p)){t.onChange(t.min),n.value=String(t.min);return}else if(r(p)){t.onChange(t.max),n.value=String(t.max);return}else t.onChange(Number(p));else n.value="",t.onChange(void 0)}function l(p){const a=t.value;let u;if(a===void 0)u=p>0?t.min:t.max,t.onChange(u||0);else{u=a+p*t.step;const S=String(u);if(i(S)||r(S))return}t.onChange(u)}return(()=>{const p=ti.cloneNode(!0),a=p.firstChild,u=a.firstChild,S=a.nextSibling,w=S.firstChild,A=w.firstChild,b=w.nextSibling,m=b.firstChild;return u.addEventListener("blur",f=>d(f.currentTarget.value)),u.$$input=f=>s(f.currentTarget.value),(f=>n=f)(u),M(p,U(Pe,{get when(){return t.max!==void 0},get children(){const f=ei.cloneNode(!0);return f.firstChild,f.$$click=()=>n.focus(),M(f,()=>t.max,null),q(()=>f.className=Ze.suffix),f}}),S),w.$$click=()=>l(1),ne(A,"src",Kn),b.$$click=()=>l(-1),ne(m,"src",Xn),q(f=>{const k=Ze.root,o=t.min,c=t.max,y=t.value,$=Ze.action;return k!==f._v$&&(p.className=f._v$=k),o!==f._v$2&&ne(u,"min",f._v$2=o),c!==f._v$3&&ne(u,"max",f._v$3=c),y!==f._v$4&&(u.value=f._v$4=y),$!==f._v$5&&(S.className=f._v$5=$),f},{_v$:void 0,_v$2:void 0,_v$3:void 0,_v$4:void 0,_v$5:void 0}),p})()}ue(["input","click"]);var xe={modal:"_modal_128mo_1",empty:"_empty_128mo_7",items:"_items_128mo_13",input:"_input_128mo_34"};function ii(e){const n=new Map;return e.forEach(i=>{var r;(r=i.line_items)==null||r.forEach(s=>{n.has(Number(s.id))?n.set(Number(s.id),(n.get(Number(s.id))||0)+Number(s.quantity)):n.set(Number(s.id),Number(s.quantity))})}),Zt().map(i=>{const r=n.get(i.id)||0;return{id:i.id,name:i.name,quantity:i.quantity-r}}).filter(i=>i.quantity>0)}const ri=V("<table><thead><tr><th>Items</th><th>Qty.</th></tr></thead><tbody></tbody></table>"),si=V('<div style="color: red;"></div>'),oi=V('<div><hr><div><div><label>Courier:<select></select></label><a href="admin.php?page=aftership-setting-admin">Update carrier list</a></div><div><label>Tracking number:<input></label></div></div></div>'),li=V("<div>All items have been fulfilled</div>"),ai=V("<tr><td></td><td></td></tr>"),ci=V("<option></option>"),ui=V("<div><label>:<input></label></div>"),Se={tracking_id:"",tracking_number:"",slug:"",additional_fields:{account_number:"",key:"",postal_code:"",ship_date:"",destination_country:"",state:""},line_items:{}};function fi(e){const[n,t]=X(Se),i=F(()=>n().slug||""),r=F(()=>{var m;return(((m=He().get(i()))==null?void 0:m.required_fields)||[]).map(f=>({key:f.replace(/^tracking_/,""),name:f.replace(/^tracking_/,"").split("_").map(Gn).join(" ")}))}),s=F(()=>e.value?se().filter(b=>{var m;return b.tracking_id!==((m=e.value)==null?void 0:m.tracking_id)}):se()),d=F(()=>s().length),l=F(()=>ii(s()));Te(()=>{var f,k,o;const b=new Date().toISOString().split("T")[0],m=((f=e.value)==null?void 0:f.line_items)||[];e.value?e.value.line_items?t({tracking_id:e.value.tracking_id,slug:e.value.slug,tracking_number:e.value.tracking_number,additional_fields:z(R({},e.value.additional_fields),{ship_date:e.value.additional_fields.ship_date||b}),line_items:Object.fromEntries(m.map(c=>[Number(c.id),Number(c.quantity)]))}):d()?t({tracking_id:e.value.tracking_id,slug:e.value.slug,tracking_number:e.value.tracking_number,additional_fields:z(R({},e.value.additional_fields),{ship_date:e.value.additional_fields.ship_date||b}),line_items:Object.fromEntries(l().map(c=>[Number(c.id),0]))}):t({tracking_id:e.value.tracking_id,slug:e.value.slug,tracking_number:e.value.tracking_number,additional_fields:z(R({},e.value.additional_fields),{ship_date:e.value.additional_fields.ship_date||b}),line_items:Object.fromEntries(l().map(c=>[Number(c.id),Number(c.quantity)]))}):t(z(R({},Se),{slug:((o=(k=ot())==null?void 0:k[0])==null?void 0:o.slug)||"",additional_fields:z(R({},Se.additional_fields),{ship_date:b}),line_items:Object.fromEntries(l().map(c=>[Number(c.id),Number(c.quantity)]))}))});const p=()=>{t(b=>{const m=new Date().toISOString().split("T")[0];return z(R({},b),{additional_fields:z(R({},Se.additional_fields),{ship_date:m})})})},a=F(()=>{let b=!0;const m={};return Object.entries(n().line_items||[]).some(([,k])=>!!k)||(b=!1),n().slug===""&&(b=!1,m.slug="Required"),n().tracking_number===""&&(b=!1),s().some(k=>k.slug===n().slug&&k.tracking_number===n().tracking_number)&&(b=!1,m.tracking_number="This shipment has already been added."),r().forEach(k=>{n().additional_fields[k.key]===""&&(b=!1,m.additional_fields=z(R({},m.additional_fields),{[k.key]:"Required"}))}),{isValid:b,errors:m}}),u=(b,m)=>{t(f=>z(R({},f),{line_items:z(R({},f.line_items),{[b]:m})}))},S=(b,m)=>{t(f=>z(R({},f),{[b]:m.trim()}))},w=(b,m)=>{t(f=>z(R({},f),{additional_fields:z(R({},f.additional_fields),{[b]:m.trim()})}))};return U(Jn,{get title(){var b;return((b=e.value)==null?void 0:b.tracking_id)?"Edit tracking":"Add tracking"},get visible(){return e.visible},get okText(){var b;return((b=e.value)==null?void 0:b.tracking_id)?"Save":"Add"},onOk:()=>e.onOk(n()),get onCancel(){return e.onCancel},get disabled(){return!a().isValid},get children(){const b=oi.cloneNode(!0),m=b.firstChild,f=m.nextSibling,k=f.firstChild,o=k.firstChild,c=o.firstChild,y=c.nextSibling,$=k.nextSibling,C=$.firstChild,N=C.firstChild,L=N.nextSibling;return M(b,U(Dt,{get fallback(){return(()=>{const x=li.cloneNode(!0);return q(()=>x.className=xe.empty),x})()},get children(){return U(Lt,{get when(){return l().length>0},get children(){const x=ri.cloneNode(!0),T=x.firstChild,B=T.nextSibling;return M(B,U(be,{get each(){return l()},children:O=>(()=>{const Z=ai.cloneNode(!0),P=Z.firstChild,ee=P.nextSibling;return M(P,()=>O.name),M(ee,U(ni,{min:0,get max(){return O.quantity},step:1,get value(){var W;return((W=n().line_items)==null?void 0:W[O.id])||0},onChange:W=>u(O.id,W||0)})),Z})()})),q(()=>x.className=xe.items),x}})}}),m),m.style.setProperty("margin","20px 0"),y.addEventListener("change",x=>{p(),S("slug",x.currentTarget.value)}),M(y,U(be,{get each(){return ot()},children:x=>(()=>{const T=ci.cloneNode(!0);return M(T,()=>x.name||x.other_name),q(()=>T.value=x.slug),T})()})),L.$$input=x=>S("tracking_number",x.currentTarget.value),M($,U(Pe,{get when(){return a().errors.tracking_number},get children(){const x=si.cloneNode(!0);return M(x,()=>a().errors.tracking_number),x}}),null),M(f,U(be,{get each(){return r()},children:x=>(()=>{const T=ui.cloneNode(!0),B=T.firstChild,O=B.firstChild,Z=O.nextSibling;return M(B,()=>x.name,O),Z.$$input=P=>w(x.key,P.currentTarget.value),q(P=>{const ee=x.key==="ship_date"?"date":"text",W=n().additional_fields[x.key];return ee!==P._v$5&&ne(Z,"type",P._v$5=ee),W!==P._v$6&&(Z.value=P._v$6=W),P},{_v$5:void 0,_v$6:void 0}),T})()}),null),q(x=>{var P;const T=xe.modal,B=xe.input,O=(P=n())==null?void 0:P.slug,Z=n().tracking_number;return T!==x._v$&&(b.className=x._v$=T),B!==x._v$2&&(f.className=x._v$2=B),O!==x._v$3&&(y.value=x._v$3=O),Z!==x._v$4&&(L.value=x._v$4=Z),x},{_v$:void 0,_v$2:void 0,_v$3:void 0,_v$4:void 0}),b}})}ue(["input"]);const di=V("<div><div></div><div></div></div>"),gi=V('<div><div><div>Shipment </div><div><a>Edit</a><a>Delete</a></div></div><div><div><strong></strong></div><div><a target="_blank"></a></div></div></div>'),hi=()=>{const[e,n]=X(!1),[t,i]=X();St(()=>{ge(),Qt()});const r=l=>te(this,null,function*(){const p=l.line_items||{};yield Gt(z(R({},l),{line_items:Object.entries(p).map(([a,u])=>({id:Number(a),quantity:u})).filter(a=>a.quantity>0)})),n(!1),i(void 0)}),s=()=>{n(!1),i(void 0)},d=l=>/^https?:\/\//.test(Ye())?`${Ye()}/${l.slug}/${l.tracking_number}`:`https://${Ye()}/${l.slug}/${l.tracking_number}`;return(()=>{const l=di.cloneNode(!0),p=l.firstChild,a=p.nextSibling;return M(p,U(be,{get each(){return se()},children:(u,S)=>(()=>{const w=gi.cloneNode(!0),A=w.firstChild,b=A.firstChild;b.firstChild;const m=b.nextSibling,f=m.firstChild,k=f.nextSibling,o=A.nextSibling,c=o.firstChild,y=c.firstChild,$=c.nextSibling,C=$.firstChild;return M(b,()=>S()+1,null),f.$$click=()=>te(this,null,function*(){yield ge(),i(u),n(!0)}),k.$$click=()=>Wt(u.tracking_id),M(y,()=>{var N;return((N=He().get(u.slug))==null?void 0:N.name)||u.slug}),M(C,()=>u.tracking_number),q(N=>{const L=$e.tracking,x=$e.title,T=$e.content,B=d(u);return L!==N._v$&&(w.className=N._v$=L),x!==N._v$2&&(A.className=N._v$2=x),T!==N._v$3&&(o.className=N._v$3=T),B!==N._v$4&&ne(C,"href",N._v$4=B),N},{_v$:void 0,_v$2:void 0,_v$3:void 0,_v$4:void 0}),w})()})),a.style.setProperty("padding","12px"),M(a,U(it,{onClick:()=>te(this,null,function*(){yield ge(),n(!0)}),style:{width:"100%"},children:"Add Tracking Number"})),M(l,U(fi,{get visible(){return e()},get value(){return t()},onCancel:s,onOk:r}),null),q(()=>l.className=$e.root),l})()};ue(["click"]);var Bi="";console.log("src/index.js"),customElements.define("aftership-meta-box",class extends HTMLElement{constructor(){super();wt(this,"initialized",!1);this.attachShadow({mode:"open"})}connectedCallback(){if(!!this.shadowRoot&&!this.initialized){this.initialized=!0;{const n=document.createElement("link");n.rel="stylesheet",n.href="/wp-content/plugins/aftership-woocommerce-tracking/assets/meta-box/dist/style.css",this.shadowRoot.appendChild(n)}Ot(()=>U(hi,{}),this.shadowRoot)}}})})();
assets/meta-box/dist/style.css CHANGED
@@ -1 +1 @@
1
- ._button_1dv9o_1{border:1px solid #ccc;border-radius:3px;background-color:#f7f7f7;color:#555;font-size:13px;min-height:30px;padding:0 10px;cursor:pointer}._button_1dv9o_1[disabled]{color:#a7aaad!important;background:#f6f7f7!important;border-color:#dcdcde!important;cursor:not-allowed}._primary_1dv9o_18{border-color:#2271b1;background:#2271b1;color:#fff}._primary_1dv9o_18:hover{background:#135e96;border-color:#135e96}._root_1nuhb_1{position:relative}._loading_1nuhb_5{position:absolute;height:100%;width:100%;top:0;left:0;background:#fff;opacity:.6;pointer-events:none;display:flex;align-items:center;justify-content:center}._tracking_1nuhb_19{padding:16px 12px;border-bottom:1px solid #eeeeee}._tracking_1nuhb_19 ._title_1nuhb_23{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;color:#5f5f5f}._tracking_1nuhb_19 ._title_1nuhb_23 a{font-size:12px}._tracking_1nuhb_19 ._title_1nuhb_23 a:nth-child(2){color:#a00;margin-left:12px}._tracking_1nuhb_19 ._content_1nuhb_37{background-color:#f6f6f6;padding:12px;font-size:14px;line-height:1.43;word-break:break-all;display:flex;flex-direction:column}._tracking_1nuhb_19 ._content_1nuhb_37 a{text-decoration:none}._tracking_1nuhb_19 ._content_1nuhb_37 strong{font-weight:600;color:#3c434a}._container_1s8av_1{position:fixed;top:0;right:0;z-index:99999}._backdrop_1s8av_8{width:100vw;height:100vh;background-color:#000;opacity:.7}._modal_1s8av_15{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background-color:#fff;width:500px}._modal_1s8av_15 header{background:#fcfcfc;padding:1em 1.5em;border-bottom:1px solid #ddd}._modal_1s8av_15 header h1{margin:0;font-size:18px;font-weight:700;line-height:1.5em}._modal_1s8av_15 header div{position:absolute;top:0;right:0;width:54px;height:54px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-left:1px solid #ddd;color:#666}._modal_1s8av_15 header div:hover{background:#ddd;border-color:#ccc}._modal_1s8av_15 header img{height:32px;width:32px}._modal_1s8av_15 footer{padding:1em 1.5em;background:#fcfcfc;border-top:1px solid #dfdfdf;box-shadow:0 -4px 4px -4px #0000001a;display:flex;justify-content:flex-end}._root_b92ih_1{display:flex;align-items:center;justify-content:space-between;border:1px solid #8c8f94;border-radius:4px;height:30px;overflow:hidden}._root_b92ih_1 input{line-height:26px;border:0;padding-left:8px}._root_b92ih_1 input:focus{outline:0}._root_b92ih_1 input[type=number]::-webkit-outer-spin-button,._root_b92ih_1 input[type=number]::-webkit-inner-spin-button{appearance:none;margin:0}._root_b92ih_1 input[type=number]{appearance:textfield}._root_b92ih_1 ._suffix_b92ih_25{color:#6c7075;margin-right:8px;cursor:default}._root_b92ih_1 ._action_b92ih_30{width:22px;padding:2px;height:100%;display:grid;row-gap:2px}._root_b92ih_1 ._action_b92ih_30 div{border-radius:2px;background-color:#e4e5e7;display:flex;align-items:center;justify-content:center;cursor:pointer}._root_b92ih_1 ._action_b92ih_30 div:hover{background-color:#c9cbcf}._root_b92ih_1 ._action_b92ih_30 div:active{background-color:#b3b5b9}._root_b92ih_1 ._action_b92ih_30 div img{width:10px;height:10px;user-select:none}._modal_kfzs9_1{padding:20px}._empty_kfzs9_5{text-align:center;font-size:16px;color:#999c9f}._items_kfzs9_11{display:grid;text-align:left;grid-template-columns:1fr auto;column-gap:10px;row-gap:6px;align-items:center}._items_kfzs9_11 thead,._items_kfzs9_11 tbody,._items_kfzs9_11 tr{display:contents}._items_kfzs9_11 th:last-child,._items_kfzs9_11 td:last-child{text-align:right}._items_kfzs9_11 th{margin-bottom:8px}._input_kfzs9_32{color:#3c434a;display:grid;grid-template-columns:1fr 1fr;column-gap:20px;row-gap:10px}._input_kfzs9_32 label{display:flex;flex-direction:column}._input_kfzs9_32 a{font-size:12px;text-decoration-line:underline;margin-left:2px;width:fit-content}._input_kfzs9_32 label{margin-left:2px}._input_kfzs9_32 select{border:1px solid #8c8f94;border-radius:4px;min-height:30px;font-size:14px;line-height:28px;padding:0 8px}._input_kfzs9_32 input{border:1px solid #8c8f94;border-radius:4px;font-size:14px;line-height:28px;padding:0 8px}/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:host{all:initial;font-family:inherit;font-size:inherit}*{box-sizing:border-box}a{cursor:pointer;color:#2271b1;transition:color .5s ease-in-out}a:hover{color:#135e96}
1
+ ._button_1dv9o_1{border:1px solid #ccc;border-radius:3px;background-color:#f7f7f7;color:#555;font-size:13px;min-height:30px;padding:0 10px;cursor:pointer}._button_1dv9o_1[disabled]{color:#a7aaad!important;background:#f6f7f7!important;border-color:#dcdcde!important;cursor:not-allowed}._primary_1dv9o_18{border-color:#2271b1;background:#2271b1;color:#fff}._primary_1dv9o_18:hover{background:#135e96;border-color:#135e96}._root_1nuhb_1{position:relative}._loading_1nuhb_5{position:absolute;height:100%;width:100%;top:0;left:0;background:#fff;opacity:.6;pointer-events:none;display:flex;align-items:center;justify-content:center}._tracking_1nuhb_19{padding:16px 12px;border-bottom:1px solid #eeeeee}._tracking_1nuhb_19 ._title_1nuhb_23{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;color:#5f5f5f}._tracking_1nuhb_19 ._title_1nuhb_23 a{font-size:12px}._tracking_1nuhb_19 ._title_1nuhb_23 a:nth-child(2){color:#a00;margin-left:12px}._tracking_1nuhb_19 ._content_1nuhb_37{background-color:#f6f6f6;padding:12px;font-size:14px;line-height:1.43;word-break:break-all;display:flex;flex-direction:column}._tracking_1nuhb_19 ._content_1nuhb_37 a{text-decoration:none}._tracking_1nuhb_19 ._content_1nuhb_37 strong{font-weight:600;color:#3c434a}._container_1s8av_1{position:fixed;top:0;right:0;z-index:99999}._backdrop_1s8av_8{width:100vw;height:100vh;background-color:#000;opacity:.7}._modal_1s8av_15{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background-color:#fff;width:500px}._modal_1s8av_15 header{background:#fcfcfc;padding:1em 1.5em;border-bottom:1px solid #ddd}._modal_1s8av_15 header h1{margin:0;font-size:18px;font-weight:700;line-height:1.5em}._modal_1s8av_15 header div{position:absolute;top:0;right:0;width:54px;height:54px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-left:1px solid #ddd;color:#666}._modal_1s8av_15 header div:hover{background:#ddd;border-color:#ccc}._modal_1s8av_15 header img{height:32px;width:32px}._modal_1s8av_15 footer{padding:1em 1.5em;background:#fcfcfc;border-top:1px solid #dfdfdf;box-shadow:0 -4px 4px -4px #0000001a;display:flex;justify-content:flex-end}._root_b92ih_1{display:flex;align-items:center;justify-content:space-between;border:1px solid #8c8f94;border-radius:4px;height:30px;overflow:hidden}._root_b92ih_1 input{line-height:26px;border:0;padding-left:8px}._root_b92ih_1 input:focus{outline:0}._root_b92ih_1 input[type=number]::-webkit-outer-spin-button,._root_b92ih_1 input[type=number]::-webkit-inner-spin-button{appearance:none;margin:0}._root_b92ih_1 input[type=number]{appearance:textfield}._root_b92ih_1 ._suffix_b92ih_25{color:#6c7075;margin-right:8px;cursor:default}._root_b92ih_1 ._action_b92ih_30{width:22px;padding:2px;height:100%;display:grid;row-gap:2px}._root_b92ih_1 ._action_b92ih_30 div{border-radius:2px;background-color:#e4e5e7;display:flex;align-items:center;justify-content:center;cursor:pointer}._root_b92ih_1 ._action_b92ih_30 div:hover{background-color:#c9cbcf}._root_b92ih_1 ._action_b92ih_30 div:active{background-color:#b3b5b9}._root_b92ih_1 ._action_b92ih_30 div img{width:10px;height:10px;user-select:none}._modal_128mo_1{padding:20px;max-height:70vh;overflow:auto}._empty_128mo_7{text-align:center;font-size:16px;color:#999c9f}._items_128mo_13{display:grid;text-align:left;grid-template-columns:1fr auto;column-gap:10px;row-gap:6px;align-items:center}._items_128mo_13 thead,._items_128mo_13 tbody,._items_128mo_13 tr{display:contents}._items_128mo_13 th:last-child,._items_128mo_13 td:last-child{text-align:right}._items_128mo_13 th{margin-bottom:8px}._input_128mo_34{color:#3c434a;display:grid;grid-template-columns:1fr 1fr;column-gap:20px;row-gap:10px}._input_128mo_34 label{display:flex;flex-direction:column}._input_128mo_34 a{font-size:12px;text-decoration-line:underline;margin-left:2px;width:fit-content}._input_128mo_34 label{margin-left:2px}._input_128mo_34 select{border:1px solid #8c8f94;border-radius:4px;min-height:30px;font-size:14px;line-height:28px;padding:0 8px}._input_128mo_34 input{border:1px solid #8c8f94;border-radius:4px;font-size:14px;line-height:28px;padding:0 8px}/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:host{all:initial;font-family:inherit;font-size:inherit}*{box-sizing:border-box}a{cursor:pointer;color:#2271b1;transition:color .5s ease-in-out}a:hover{color:#135e96}
assets/meta-box/index.html ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <meta name="theme-color" content="#000000" />
7
+ <title>Solid App</title>
8
+ </head>
9
+ <body>
10
+ <noscript>You need to enable JavaScript to run this app.</noscript>
11
+ <!-- <div id="root"></div> -->
12
+ <aftership-meta-box></aftership-meta-box>
13
+
14
+ <script src="/src/index.tsx" type="module"></script>
15
+ </body>
16
+ </html>
assets/meta-box/inject.js ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ console.log('inject.js');
2
+ const scriptElm = document.createElement('script');
3
+ scriptElm.src = 'http://localhost:3000/src/index.tsx';
4
+ scriptElm.type = 'module';
5
+
6
+ document.body.appendChild(scriptElm);
assets/meta-box/package.json ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "vite-template-solid",
3
+ "version": "0.0.0",
4
+ "description": "",
5
+ "scripts": {
6
+ "dev": "vite",
7
+ "build": "vite build",
8
+ "serve": "vite preview"
9
+ },
10
+ "license": "MIT",
11
+ "devDependencies": {
12
+ "@types/crypto-js": "^4.1.0",
13
+ "@types/lodash-es": "^4.17.5",
14
+ "@types/node": "^17.0.7",
15
+ "lint-staged": "^12.1.2",
16
+ "prettier": "^2.5.1",
17
+ "sass": "^1.44.0",
18
+ "typescript": "^4.4.3",
19
+ "vite": "2.7.10",
20
+ "vite-plugin-solid": "2.1.4"
21
+ },
22
+ "dependencies": {
23
+ "crypto-js": "^4.1.1",
24
+ "lodash-es": "^4.17.21",
25
+ "normalize.css": "^8.0.1",
26
+ "solid-js": "1.2.6"
27
+ }
28
+ }
assets/meta-box/plugins/hotReloadShadowDomCss.js ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const sheetsMap = new Map();
2
+
3
+ export async function updateStyle(id, content, elName) {
4
+ const shadowRoot = document.querySelector(elName).shadowRoot;
5
+ if (!shadowRoot) {
6
+ await new Promise((resolve) => {
7
+ window.addEventListener('load', () => {
8
+ resolve();
9
+ });
10
+ });
11
+ }
12
+ let style = sheetsMap.get(id);
13
+ if (style && !(style instanceof HTMLStyleElement)) {
14
+ removeStyle(id);
15
+ style = undefined;
16
+ }
17
+ if (!style) {
18
+ style = document.createElement('style');
19
+ style.setAttribute('type', 'text/css');
20
+ style.innerHTML = content;
21
+ document.querySelector(elName).shadowRoot.appendChild(style);
22
+ // document.head.appendChild(style);
23
+ } else {
24
+ style.innerHTML = content;
25
+ }
26
+ sheetsMap.set(id, style);
27
+ }
28
+
29
+ export function removeStyle(id, elName) {
30
+ const style = sheetsMap.get(id);
31
+ document.querySelector(elName).shadowRoot.removeChild(style);
32
+ // document.head.removeChild(style);
33
+ sheetsMap.delete(id);
34
+ }
35
+
36
+ export default function myExample(elName) {
37
+ return {
38
+ name: 'inject-css-to-shadowRoot',
39
+ apply: 'serve',
40
+ enforce: 'post',
41
+ async transform(code, id, _options) {
42
+ if (/(\.module)?\.s?css$/.test(id)) {
43
+ if (process.env.MODE === 'production') return code;
44
+ return (
45
+ `const elName = '${elName}';\n` +
46
+ code
47
+ .replace(
48
+ /(?<=import { updateStyle as __vite__updateStyle, removeStyle as __vite__removeStyle } from )"[^"]+@vite\/client"/,
49
+ `"${__filename}"`
50
+ )
51
+ .replace(/__vite__(?:update|remove)Style\([^)]+/, '$&, elName')
52
+ );
53
+ } else {
54
+ return code;
55
+ }
56
+ },
57
+ };
58
+ }
assets/meta-box/src/App.module.scss ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .root {
2
+ position: relative;
3
+ }
4
+
5
+ .loading {
6
+ position: absolute;
7
+ height: 100%;
8
+ width: 100%;
9
+ top: 0;
10
+ left: 0;
11
+ background: #fff;
12
+ opacity: 0.6;
13
+ pointer-events: none;
14
+ display: flex;
15
+ align-items: center;
16
+ justify-content: center;
17
+ }
18
+
19
+ .tracking {
20
+ padding: 16px 12px;
21
+ border-bottom: 1px solid #eeeeee;
22
+ .title {
23
+ display: flex;
24
+ align-items: center;
25
+ justify-content: space-between;
26
+ margin-bottom: 8px;
27
+ color: #5f5f5f;
28
+ a {
29
+ font-size: 12px;
30
+ &:nth-child(2) {
31
+ color: #a00;
32
+ margin-left: 12px;
33
+ }
34
+ }
35
+ }
36
+ .content {
37
+ background-color: #f6f6f6;
38
+ padding: 12px;
39
+ font-size: 14px;
40
+ line-height: 1.43;
41
+ word-break: break-all;
42
+ display: flex;
43
+ flex-direction: column;
44
+ a {
45
+ text-decoration: none;
46
+ }
47
+ strong {
48
+ font-weight: 600;
49
+ color: #3c434a;
50
+ }
51
+ }
52
+ }
assets/meta-box/src/App.tsx ADDED
@@ -0,0 +1,108 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { Component, createSignal, For, onMount, createMemo, Show } from 'solid-js';
2
+ import Button from './components/Button';
3
+ import styles from './App.module.scss';
4
+ import {
5
+ trackings,
6
+ courierMap,
7
+ fetchTrackings,
8
+ deleteTracking,
9
+ editTracking,
10
+ getSelectedCouriers,
11
+ customDomain,
12
+ } from './storages/metaBox';
13
+ import EditTrackingModal, { FormValue } from './components/EditTrackingModal';
14
+ import { Tracking } from './typings/trackings';
15
+ import { calcUnfulfilledItems } from './utils/common';
16
+
17
+ const App: Component = () => {
18
+ const [showModal, setShowModal] = createSignal(false);
19
+ const [editingTracking, setEditingTracking] = createSignal<Tracking>();
20
+
21
+ onMount(() => {
22
+ fetchTrackings();
23
+ getSelectedCouriers();
24
+ });
25
+
26
+ const handleOk = async (values: FormValue) => {
27
+ const selectedItems = values.line_items || {};
28
+ await editTracking({
29
+ ...values,
30
+ line_items: Object.entries(selectedItems)
31
+ .map(([id, quantity]) => ({
32
+ id: Number(id),
33
+ quantity,
34
+ }))
35
+ .filter((item) => item.quantity > 0),
36
+ });
37
+ setShowModal(false);
38
+ setEditingTracking(undefined);
39
+ };
40
+ const handleCancel = () => {
41
+ setShowModal(false);
42
+ setEditingTracking(undefined);
43
+ };
44
+
45
+ const formatTackingLink = (tracking: Tracking) => {
46
+ return /^https?:\/\//.test(customDomain())
47
+ ? `${customDomain()}/${tracking.slug}/${tracking.tracking_number}`
48
+ : `https://${customDomain()}/${tracking.slug}/${tracking.tracking_number}`;
49
+ };
50
+
51
+ return (
52
+ <div className={styles.root}>
53
+ {/* trackings */}
54
+ <div>
55
+ <For each={trackings()}>
56
+ {(item, index) => (
57
+ <div className={styles.tracking}>
58
+ <div className={styles.title}>
59
+ <div>Shipment {index() + 1}</div>
60
+ <div>
61
+ <a
62
+ onClick={async () => {
63
+ // 💩 update data first, user maybe modify line_items
64
+ await fetchTrackings();
65
+ setEditingTracking(item);
66
+ setShowModal(true);
67
+ }}>
68
+ Edit
69
+ </a>
70
+ <a onClick={() => deleteTracking(item.tracking_id)}>Delete</a>
71
+ </div>
72
+ </div>
73
+ <div className={styles.content}>
74
+ <div>
75
+ <strong>{courierMap().get(item.slug)?.name || item.slug}</strong>
76
+ </div>
77
+ <div>
78
+ <a href={formatTackingLink(item)} target="_blank">
79
+ {item.tracking_number}
80
+ </a>
81
+ </div>
82
+ </div>
83
+ </div>
84
+ )}
85
+ </For>
86
+ </div>
87
+ {/* add button */}
88
+ <div style={{ padding: '12px' }}>
89
+ <Button
90
+ onClick={async () => {
91
+ await fetchTrackings();
92
+ setShowModal(true);
93
+ }}
94
+ style={{ width: '100%' }}>
95
+ Add Tracking Number
96
+ </Button>
97
+ </div>
98
+ <EditTrackingModal
99
+ visible={showModal()}
100
+ value={editingTracking()}
101
+ onCancel={handleCancel}
102
+ onOk={handleOk}
103
+ />
104
+ </div>
105
+ );
106
+ };
107
+
108
+ export default App;
assets/meta-box/src/components/Button/Button.module.scss ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .button {
2
+ border: 1px solid #ccc;
3
+ border-radius: 3px;
4
+ background-color: #f7f7f7;
5
+ color: #555;
6
+ font-size: 13px;
7
+ min-height: 30px;
8
+ padding: 0 10px;
9
+ cursor: pointer;
10
+ &[disabled] {
11
+ color: #a7aaad !important;
12
+ background: #f6f7f7 !important;
13
+ border-color: #dcdcde !important;
14
+ cursor: not-allowed;
15
+ }
16
+ }
17
+
18
+ .primary {
19
+ border-color: #2271b1;
20
+ background: #2271b1;
21
+ color: #fff;
22
+ &:hover {
23
+ background: #135e96;
24
+ border-color: #135e96;
25
+ }
26
+ }
assets/meta-box/src/components/Button/Button.tsx ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { Component, JSX } from 'solid-js';
2
+ import styles from './Button.module.scss';
3
+
4
+ interface Props {
5
+ type?: 'primary';
6
+ style?: JSX.CSSProperties;
7
+ onClick?(e: MouseEvent): void;
8
+ disabled?: boolean;
9
+ }
10
+
11
+ const Button: Component<Props> = (props) => {
12
+ return (
13
+ <button
14
+ classList={{ [styles.button]: true, [styles.primary]: props.type === 'primary' }}
15
+ disabled={props.disabled}
16
+ style={props.style}
17
+ onClick={props.onClick}>
18
+ {props.children}
19
+ </button>
20
+ );
21
+ };
22
+
23
+ export default Button;
assets/meta-box/src/components/Button/index.ts ADDED
@@ -0,0 +1 @@
 
1
+ export { default } from './Button';
assets/meta-box/src/components/EditTrackingModal/EditTrackingModal.module.scss ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .modal {
2
+ padding: 20px;
3
+ max-height: 70vh;
4
+ overflow: auto;
5
+ }
6
+
7
+ .empty {
8
+ text-align: center;
9
+ font-size: 16px;
10
+ color: #999c9f;
11
+ }
12
+ .items {
13
+ thead,
14
+ tbody,
15
+ tr {
16
+ display: contents;
17
+ }
18
+ th,
19
+ td {
20
+ &:last-child {
21
+ text-align: right;
22
+ }
23
+ }
24
+ th {
25
+ margin-bottom: 8px;
26
+ }
27
+ display: grid;
28
+ text-align: left;
29
+ grid-template-columns: 1fr auto;
30
+ column-gap: 10px;
31
+ row-gap: 6px;
32
+ align-items: center;
33
+ }
34
+
35
+ .input {
36
+ color: #3c434a;
37
+ display: grid;
38
+ grid-template-columns: 1fr 1fr;
39
+ column-gap: 20px;
40
+ row-gap: 10px;
41
+ label {
42
+ display: flex;
43
+ flex-direction: column;
44
+ }
45
+ a {
46
+ font-size: 12px;
47
+ text-decoration-line: underline;
48
+ margin-left: 2px;
49
+ width: fit-content;
50
+ }
51
+ label {
52
+ margin-left: 2px;
53
+ }
54
+
55
+ select {
56
+ border: 1px solid #8c8f94;
57
+ border-radius: 4px;
58
+ min-height: 30px;
59
+ font-size: 14px;
60
+ line-height: 28px;
61
+ padding: 0 8px;
62
+ }
63
+ input {
64
+ border: 1px solid #8c8f94;
65
+ border-radius: 4px;
66
+ font-size: 14px;
67
+ line-height: 28px;
68
+ padding: 0 8px;
69
+ }
70
+ }
assets/meta-box/src/components/EditTrackingModal/EditTrackingModal.tsx ADDED
@@ -0,0 +1,296 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { selectedCouriers, trackings, courierMap } from '@src/storages/metaBox';
2
+ import { Tracking, AdditionalFields } from '@src/typings/trackings';
3
+ import { createEffect, createMemo, createSignal, For, Show, Switch, Match } from 'solid-js';
4
+ import { capitalize } from 'lodash-es';
5
+
6
+ import Modal from '../Modal';
7
+ import NumberInput from '../NumberInput';
8
+
9
+ import styles from './EditTrackingModal.module.scss';
10
+ import { calcUnfulfilledItems } from '@src/utils/common';
11
+
12
+ interface Props {
13
+ visible: boolean;
14
+ value?: Tracking;
15
+ onOk(v: FormValue): void;
16
+ onCancel(): void;
17
+ }
18
+
19
+ export interface FormValue {
20
+ tracking_id: string;
21
+ slug: string;
22
+ tracking_number: string;
23
+ additional_fields: AdditionalFields;
24
+ line_items?: {
25
+ [id: string]: number;
26
+ };
27
+ }
28
+
29
+ const defaultValue = {
30
+ tracking_id: '',
31
+ tracking_number: '',
32
+ slug: '',
33
+ additional_fields: {
34
+ account_number: '',
35
+ key: '',
36
+ postal_code: '',
37
+ ship_date: '',
38
+ destination_country: '',
39
+ state: '',
40
+ },
41
+ line_items: {},
42
+ };
43
+
44
+ export default function EditTrackingModal(props: Props) {
45
+ const [_val, _setVal] = createSignal<FormValue>(defaultValue);
46
+
47
+ const slugName = createMemo(() => _val().slug || '');
48
+
49
+ const additionalFields = createMemo(() => {
50
+ const r = courierMap().get(slugName())?.required_fields || [];
51
+ return r.map((item) => ({
52
+ key: item.replace(/^tracking_/, '') as keyof AdditionalFields,
53
+ name: item
54
+ .replace(/^tracking_/, '')
55
+ .split('_')
56
+ .map(capitalize)
57
+ .join(' '),
58
+ }));
59
+ });
60
+ const otherTrackings = createMemo(() => {
61
+ if (props.value) {
62
+ return trackings().filter((t) => t.tracking_id !== props.value?.tracking_id);
63
+ } else {
64
+ return trackings();
65
+ }
66
+ });
67
+ const hasMoreThanOneTracking = createMemo(() => otherTrackings().length);
68
+ const remainLineItems = createMemo(() => calcUnfulfilledItems(otherTrackings()));
69
+
70
+ // handle props.value change
71
+ createEffect(() => {
72
+ const today = new Date().toISOString().split('T')[0];
73
+ const lineItems = props.value?.line_items || [];
74
+ if (props.value) {
75
+ // Caveat old tracking don't have line_items property
76
+ // for old tracking,
77
+ // if there's only one tracking, default items qty value should be remain items
78
+ // if there's more than one tracking, default items qty value should be 0
79
+ if (props.value.line_items) {
80
+ _setVal({
81
+ tracking_id: props.value.tracking_id,
82
+ slug: props.value.slug,
83
+ tracking_number: props.value.tracking_number,
84
+ additional_fields: {
85
+ ...props.value.additional_fields,
86
+ ship_date: props.value.additional_fields.ship_date || today,
87
+ },
88
+ line_items: Object.fromEntries(
89
+ lineItems.map((item) => [Number(item.id), Number(item.quantity)])
90
+ ),
91
+ });
92
+ } else {
93
+ if (hasMoreThanOneTracking()) {
94
+ _setVal({
95
+ tracking_id: props.value.tracking_id,
96
+ slug: props.value.slug,
97
+ tracking_number: props.value.tracking_number,
98
+ additional_fields: {
99
+ ...props.value.additional_fields,
100
+ ship_date: props.value.additional_fields.ship_date || today,
101
+ },
102
+ line_items: Object.fromEntries(remainLineItems().map((item) => [Number(item.id), 0])),
103
+ });
104
+ } else {
105
+ _setVal({
106
+ tracking_id: props.value.tracking_id,
107
+ slug: props.value.slug,
108
+ tracking_number: props.value.tracking_number,
109
+ additional_fields: {
110
+ ...props.value.additional_fields,
111
+ ship_date: props.value.additional_fields.ship_date || today,
112
+ },
113
+ line_items: Object.fromEntries(
114
+ remainLineItems().map((item) => [Number(item.id), Number(item.quantity)])
115
+ ),
116
+ });
117
+ }
118
+ }
119
+ } else {
120
+ _setVal({
121
+ ...defaultValue,
122
+ slug: selectedCouriers()?.[0]?.slug || '',
123
+ additional_fields: {
124
+ ...defaultValue.additional_fields,
125
+ ship_date: today,
126
+ },
127
+ line_items: Object.fromEntries(
128
+ remainLineItems().map((item) => [Number(item.id), Number(item.quantity)])
129
+ ),
130
+ });
131
+ }
132
+ });
133
+
134
+ const resetAdditionalFields = () => {
135
+ _setVal((prev) => {
136
+ const today = new Date().toISOString().split('T')[0];
137
+ return {
138
+ ...prev,
139
+ additional_fields: {
140
+ ...defaultValue.additional_fields,
141
+ ship_date: today,
142
+ },
143
+ };
144
+ });
145
+ };
146
+
147
+ const validator = createMemo(() => {
148
+ let isValid = true;
149
+ const errors: any = {};
150
+ const hasLineItem = Object.entries(_val().line_items || []).some(([, v]) => !!v);
151
+ if (!hasLineItem) {
152
+ isValid = false;
153
+ }
154
+ if (_val().slug === '') {
155
+ isValid = false;
156
+ errors.slug = 'Required';
157
+ }
158
+ if (_val().tracking_number === '') {
159
+ isValid = false;
160
+ }
161
+ if (
162
+ otherTrackings().some(
163
+ (t) => t.slug === _val().slug && t.tracking_number === _val().tracking_number
164
+ )
165
+ ) {
166
+ isValid = false;
167
+ errors.tracking_number = 'This shipment has already been added.';
168
+ }
169
+
170
+ additionalFields().forEach((item) => {
171
+ if (_val().additional_fields[item.key] === '') {
172
+ isValid = false;
173
+ errors.additional_fields = {
174
+ ...errors.additional_fields,
175
+ [item.key]: 'Required',
176
+ };
177
+ }
178
+ });
179
+ return { isValid, errors };
180
+ });
181
+
182
+ const handleLineItemChange = (id: number, value: number) => {
183
+ _setVal((prev) => ({
184
+ ...prev,
185
+ line_items: {
186
+ ...prev.line_items,
187
+ [id]: value,
188
+ },
189
+ }));
190
+ };
191
+ const handleChange = (key: string, value: string) => {
192
+ _setVal((prev) => ({
193
+ ...prev,
194
+ [key]: value.trim(),
195
+ }));
196
+ };
197
+ const handleAdditionalFieldChange = (key: string, value: string) => {
198
+ _setVal((prev) => ({
199
+ ...prev,
200
+ additional_fields: {
201
+ ...prev.additional_fields,
202
+ [key]: value.trim(),
203
+ },
204
+ }));
205
+ };
206
+
207
+ const handleOk = () => props.onOk(_val());
208
+ return (
209
+ <Modal
210
+ title={props.value?.tracking_id ? 'Edit tracking' : 'Add tracking'}
211
+ visible={props.visible}
212
+ okText={props.value?.tracking_id ? 'Save' : 'Add'}
213
+ onOk={handleOk}
214
+ onCancel={props.onCancel}
215
+ disabled={!validator().isValid}>
216
+ <div className={styles.modal}>
217
+ <Switch fallback={<div className={styles.empty}>All items have been fulfilled</div>}>
218
+ <Match when={remainLineItems().length > 0}>
219
+ <table className={styles.items}>
220
+ <thead>
221
+ <tr>
222
+ <th>Items</th>
223
+ <th>Qty.</th>
224
+ </tr>
225
+ </thead>
226
+ <tbody>
227
+ <For each={remainLineItems()}>
228
+ {(item) => (
229
+ <tr>
230
+ <td>{item.name}</td>
231
+ <td>
232
+ <NumberInput
233
+ min={0}
234
+ max={item.quantity}
235
+ step={1}
236
+ value={_val().line_items?.[item.id] || 0}
237
+ onChange={(val) => handleLineItemChange(item.id, val || 0)}
238
+ />
239
+ </td>
240
+ </tr>
241
+ )}
242
+ </For>
243
+ </tbody>
244
+ </table>
245
+ </Match>
246
+ </Switch>
247
+ <hr style={{ margin: '20px 0' }} />
248
+ <div className={styles.input}>
249
+ <div>
250
+ <label>
251
+ Courier:
252
+ <select
253
+ value={_val()?.slug}
254
+ onChange={(e) => {
255
+ resetAdditionalFields();
256
+ handleChange('slug', e.currentTarget.value);
257
+ }}>
258
+ <For each={selectedCouriers()}>
259
+ {(item) => <option value={item.slug}>{item.name || item.other_name}</option>}
260
+ </For>
261
+ </select>
262
+ </label>
263
+ <a href="admin.php?page=aftership-setting-admin">Update carrier list</a>
264
+ </div>
265
+ <div>
266
+ <label>
267
+ Tracking number:
268
+ <input
269
+ value={_val().tracking_number}
270
+ onInput={(e) => handleChange('tracking_number', e.currentTarget.value)}
271
+ />
272
+ </label>
273
+
274
+ <Show when={validator().errors.tracking_number}>
275
+ <div style="color: red;">{validator().errors.tracking_number}</div>
276
+ </Show>
277
+ </div>
278
+ <For each={additionalFields()}>
279
+ {(item) => (
280
+ <div>
281
+ <label>
282
+ {item.name}:
283
+ <input
284
+ type={item.key === 'ship_date' ? 'date' : 'text'}
285
+ value={_val().additional_fields[item.key]}
286
+ onInput={(e) => handleAdditionalFieldChange(item.key, e.currentTarget.value)}
287
+ />
288
+ </label>
289
+ </div>
290
+ )}
291
+ </For>
292
+ </div>
293
+ </div>
294
+ </Modal>
295
+ );
296
+ }
assets/meta-box/src/components/EditTrackingModal/index.ts ADDED
@@ -0,0 +1,2 @@
 
 
1
+ export { default } from './EditTrackingModal';
2
+ export * from './EditTrackingModal';
assets/meta-box/src/components/Modal/Modal.module.scss ADDED
@@ -0,0 +1,62 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .container {
2
+ position: fixed;
3
+ top: 0;
4
+ right: 0;
5
+ z-index: 99999;
6
+ }
7
+
8
+ .backdrop {
9
+ width: 100vw;
10
+ height: 100vh;
11
+ background-color: black;
12
+ opacity: 0.7;
13
+ }
14
+
15
+ .modal {
16
+ position: absolute;
17
+ top: 50%;
18
+ left: 50%;
19
+ transform: translate(-50%, -50%);
20
+ background-color: white;
21
+ width: 500px;
22
+ header {
23
+ background: #fcfcfc;
24
+ padding: 1em 1.5em;
25
+ border-bottom: 1px solid #ddd;
26
+ h1 {
27
+ margin: 0;
28
+ font-size: 18px;
29
+ font-weight: 700;
30
+ line-height: 1.5em;
31
+ }
32
+ div {
33
+ position: absolute;
34
+ top: 0;
35
+ right: 0;
36
+ width: 54px;
37
+ height: 54px;
38
+ display: flex;
39
+ align-items: center;
40
+ justify-content: center;
41
+ cursor: pointer;
42
+ border-left: 1px solid #ddd;
43
+ color: #666;
44
+ &:hover {
45
+ background: #ddd;
46
+ border-color: #ccc;
47
+ }
48
+ }
49
+ img {
50
+ height: 32px;
51
+ width: 32px;
52
+ }
53
+ }
54
+ footer {
55
+ padding: 1em 1.5em;
56
+ background: #fcfcfc;
57
+ border-top: 1px solid #dfdfdf;
58
+ box-shadow: 0 -4px 4px -4px rgba(0, 0, 0, 0.1);
59
+ display: flex;
60
+ justify-content: flex-end;
61
+ }
62
+ }
assets/meta-box/src/components/Modal/Modal.tsx ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { createEffect, JSX, Show } from 'solid-js';
2
+ import Button from '../Button';
3
+ import styles from './Modal.module.scss';
4
+ import iconX from './x.svg';
5
+
6
+ interface ModalProps {
7
+ visible: boolean;
8
+ onOk?(): void;
9
+ okText?: string;
10
+ onCancel?(): void;
11
+ children: JSX.Element;
12
+ title?: string;
13
+ disabled?: boolean;
14
+ }
15
+
16
+ export default function Modal(props: ModalProps) {
17
+ createEffect(() => {
18
+ if (props.visible) {
19
+ document.body.style.overflowY = 'hidden';
20
+ } else {
21
+ document.body.style.overflowY = 'auto';
22
+ }
23
+ });
24
+ return (
25
+ <Show when={props.visible}>
26
+ <div className={styles.container}>
27
+ <div className={styles.backdrop} onClick={props.onCancel} />
28
+ <section className={styles.modal}>
29
+ <header className={styles.header}>
30
+ <h1>{props.title}</h1>
31
+ <div role="button" onClick={props.onCancel}>
32
+ <img src={iconX} />
33
+ </div>
34
+ </header>
35
+ <article>{props.children}</article>
36
+ <footer>
37
+ <Button
38
+ disabled={props.disabled}
39
+ onClick={() => props.onOk && props.onOk()}
40
+ type="primary">
41
+ {props.okText || 'Ok'}
42
+ </Button>
43
+ </footer>
44
+ </section>
45
+ </div>
46
+ </Show>
47
+ );
48
+ }
assets/meta-box/src/components/Modal/index.ts ADDED
@@ -0,0 +1 @@
 
1
+ export { default } from './Modal';
assets/meta-box/src/components/Modal/x.svg ADDED
@@ -0,0 +1,3 @@
 
 
 
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-x" viewBox="0 0 16 16">
2
+ <path fill="#666" d="M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z"/>
3
+ </svg>
assets/meta-box/src/components/NumberInput/NumberInput.module.scss ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .root {
2
+ display: flex;
3
+ align-items: center;
4
+ justify-content: space-between;
5
+ border: 1px solid #8c8f94;
6
+ border-radius: 4px;
7
+ height: 30px;
8
+ overflow: hidden;
9
+ input {
10
+ line-height: 26px;
11
+ border: 0;
12
+ padding-left: 8px;
13
+ &:focus {
14
+ outline: 0;
15
+ }
16
+ &[type='number']::-webkit-outer-spin-button,
17
+ &[type='number']::-webkit-inner-spin-button {
18
+ appearance: none;
19
+ margin: 0;
20
+ }
21
+ &[type='number'] {
22
+ appearance: textfield;
23
+ }
24
+ }
25
+ .suffix {
26
+ color: hsl(210, 4%, 44%);
27
+ margin-right: 8px;
28
+ cursor: default;
29
+ }
30
+ .action {
31
+ width: 22px;
32
+ padding: 2px;
33
+ height: 100%;
34
+ display: grid;
35
+ row-gap: 2px;
36
+ div {
37
+ border-radius: 2px;
38
+ background-color: #e4e5e7;
39
+ display: flex;
40
+ align-items: center;
41
+ justify-content: center;
42
+ cursor: pointer;
43
+ &:hover {
44
+ background-color: #c9cbcf;
45
+ }
46
+ &:active {
47
+ background-color: #b3b5b9;
48
+ }
49
+ img {
50
+ width: 10px;
51
+ height: 10px;
52
+ user-select: none;
53
+ }
54
+ }
55
+ }
56
+ }
assets/meta-box/src/components/NumberInput/NumberInput.tsx ADDED
@@ -0,0 +1,92 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { mergeProps, Show } from 'solid-js';
2
+ import styles from './NumberInput.module.scss';
3
+ import iconUp from './images/caret-up-fill.svg';
4
+ import iconDown from './images/caret-down-fill.svg';
5
+
6
+ export interface Props {
7
+ defaultValue?: number;
8
+ min?: number;
9
+ max?: number;
10
+ step?: number;
11
+ value?: number;
12
+ onChange(val: number | undefined): void;
13
+ }
14
+
15
+ export default function NumberInput(props: Props) {
16
+ let inputRef: HTMLInputElement;
17
+ const merged = mergeProps({ step: 1 }, props);
18
+
19
+ function isSmallerThanMin(value: string) {
20
+ return merged.min !== undefined && Number(value) < merged.min;
21
+ }
22
+ function isBiggerThanMax(value: string) {
23
+ return merged.max !== undefined && Number(value) > merged.max;
24
+ }
25
+
26
+ function handleInput(value: string) {
27
+ if (!value) return;
28
+ if (isSmallerThanMin(value) || isBiggerThanMax(value)) return;
29
+ merged.onChange(Number(value));
30
+ }
31
+ function handleBlur(value: string) {
32
+ if (value) {
33
+ if (isSmallerThanMin(value)) {
34
+ merged.onChange(merged.min);
35
+ inputRef.value = String(merged.min);
36
+ return;
37
+ } else if (isBiggerThanMax(value)) {
38
+ merged.onChange(merged.max);
39
+ inputRef.value = String(merged.max);
40
+ return;
41
+ } else {
42
+ merged.onChange(Number(value));
43
+ }
44
+ } else {
45
+ inputRef.value = '';
46
+ merged.onChange(undefined);
47
+ }
48
+ }
49
+ function handleArrowClick(sign: 1 | -1) {
50
+ const value = merged.value;
51
+ let nextValue;
52
+ if (value === undefined) {
53
+ nextValue = sign > 0 ? merged.min : merged.max;
54
+ merged.onChange(nextValue || 0);
55
+ } else {
56
+ nextValue = value + sign * merged.step;
57
+ const str = String(nextValue);
58
+ if (isSmallerThanMin(str) || isBiggerThanMax(str)) return;
59
+ }
60
+ merged.onChange(nextValue);
61
+ }
62
+
63
+ return (
64
+ <div className={styles.root}>
65
+ <div>
66
+ <input
67
+ ref={(el) => (inputRef = el)}
68
+ type="number"
69
+ inputMode="numeric"
70
+ min={merged.min}
71
+ max={merged.max}
72
+ value={merged.value}
73
+ onInput={(e) => handleInput(e.currentTarget.value)}
74
+ onBlur={(e) => handleBlur(e.currentTarget.value)}
75
+ />
76
+ </div>
77
+ <Show when={merged.max !== undefined}>
78
+ <div className={styles.suffix} onClick={() => inputRef.focus()}>
79
+ of {merged.max}
80
+ </div>
81
+ </Show>
82
+ <div class={styles.action} aria-hidden>
83
+ <div onClick={() => handleArrowClick(1)} role="button" tabIndex={-1}>
84
+ <img src={iconUp} />
85
+ </div>
86
+ <div onClick={() => handleArrowClick(-1)} role="button" tabIndex={-1}>
87
+ <img src={iconDown} />
88
+ </div>
89
+ </div>
90
+ </div>
91
+ );
92
+ }
assets/meta-box/src/components/NumberInput/images/caret-down-fill.svg ADDED
@@ -0,0 +1,3 @@
 
 
 
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-caret-down-fill" viewBox="0 0 16 16">
2
+ <path fill="#5c5f62" d="M7.247 11.14 2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592a1 1 0 0 1 .753 1.659l-4.796 5.48a1 1 0 0 1-1.506 0z"/>
3
+ </svg>
assets/meta-box/src/components/NumberInput/images/caret-up-fill.svg ADDED
@@ -0,0 +1,3 @@
 
 
 
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-caret-up-fill" viewBox="0 0 16 16">
2
+ <path fill="#5c5f62" d="m7.247 4.86-4.796 5.481c-.566.647-.106 1.659.753 1.659h9.592a1 1 0 0 0 .753-1.659l-4.796-5.48a1 1 0 0 0-1.506 0z"/>
3
+ </svg>
assets/meta-box/src/components/NumberInput/index.ts ADDED
@@ -0,0 +1 @@
 
1
+ export { default } from './NumberInput';
assets/meta-box/src/components/Spinner/Spinner.module.scss ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @keyframes spin {
2
+ from {
3
+ transform: rotate(0deg);
4
+ }
5
+ to {
6
+ transform: rotate(360deg);
7
+ }
8
+ }
9
+
10
+ .spinner {
11
+ display: block;
12
+ background-image: url('/wp-content/plugins/woocommerce/assets/images/icons/loader.svg');
13
+ height: 26px;
14
+ width: 26px;
15
+ animation: spin 1s ease-in-out infinite;
16
+ }
assets/meta-box/src/components/Spinner/Spinner.tsx ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { JSX } from 'solid-js';
2
+ import styles from './Spinner.module.scss';
3
+
4
+ interface Props {
5
+ children: JSX.Element;
6
+ width?: JSX.CSSProperties['width'];
7
+ height?: JSX.CSSProperties['height'];
8
+ }
9
+
10
+ export default function Spinner(props) {
11
+ return (
12
+ <div
13
+ className={styles.spinner}
14
+ style={{
15
+ width: props.width,
16
+ height: props.height,
17
+ }}
18
+ />
19
+ );
20
+ }
assets/meta-box/src/components/Spinner/index.ts ADDED
@@ -0,0 +1 @@
 
1
+ export { default } from './Spinner';
assets/meta-box/src/index.scss ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ :host {
2
+ all: initial;
3
+ font-family: inherit;
4
+ font-size: inherit;
5
+ }
6
+
7
+ @import url('normalize.css/normalize.css');
8
+
9
+ * {
10
+ box-sizing: border-box;
11
+ }
12
+
13
+ a {
14
+ cursor: pointer;
15
+ color: #2271b1;
16
+ transition: color 0.5s ease-in-out;
17
+
18
+ &:hover {
19
+ color: #135e96;
20
+ }
21
+ }
assets/meta-box/src/index.tsx ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { render } from 'solid-js/web';
2
+ import App from './App';
3
+ import './index.scss';
4
+
5
+ console.log('src/index.js');
6
+ customElements.define(
7
+ 'aftership-meta-box',
8
+ class Tracking extends HTMLElement {
9
+ private initialized = false;
10
+ constructor() {
11
+ super();
12
+ this.attachShadow({ mode: 'open' });
13
+ }
14
+
15
+ connectedCallback() {
16
+ if (!this.shadowRoot) return;
17
+ if(this.initialized) return;
18
+ this.initialized = true;
19
+ if (import.meta.env.MODE === 'production') {
20
+ const linkElm = document.createElement('link');
21
+ linkElm.rel = 'stylesheet';
22
+ linkElm.href = `${import.meta.env.BASE_URL}dist/style.css`;
23
+ this.shadowRoot.appendChild(linkElm);
24
+ }
25
+ render(() => <App />, this.shadowRoot);
26
+ }
27
+ }
28
+ );
assets/meta-box/src/storages/metaBox.ts ADDED
@@ -0,0 +1,130 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { createSignal } from 'solid-js';
2
+ import md5 from 'crypto-js/md5';
3
+
4
+ import { Tracking, Courier, LineItem } from '@src/typings/trackings';
5
+
6
+ interface GetTrackingsResponse {
7
+ data: {
8
+ line_items: LineItem[];
9
+ trackings: Tracking[];
10
+ };
11
+ }
12
+
13
+ interface GetSelectedCouriersResponse {
14
+ data: {
15
+ couriers: Courier[];
16
+ custom_domain: string;
17
+ };
18
+ }
19
+
20
+ export const [trackings, setTrackings] = createSignal<Tracking[]>([]);
21
+ export const [selectedCouriers, setSelectedCouriers] = createSignal<Courier[]>([]);
22
+ export const [courierMap, setCourierMap] = createSignal<Map<string, Courier>>(new Map());
23
+ export const [lineItems, setLineItems] = createSignal<LineItem[]>([]);
24
+ export const [customDomain, setCustomDomain] = createSignal<string>('');
25
+
26
+ export async function fetchTrackings() {
27
+ const security = document.querySelector<HTMLInputElement>('#aftership_get_nonce')?.value || '';
28
+ await fetch(
29
+ `/wp-admin/admin-ajax.php?action=aftership_get_order_trackings&security=${security}&order_id=${window.woocommerce_admin_meta_boxes.post_id}`
30
+ )
31
+ .then((res): Promise<GetTrackingsResponse> => res.json())
32
+ .then((res) => {
33
+ const data = res.data;
34
+ const allCouriers = window.get_aftership_couriers();
35
+ const nextCourierMap = new Map();
36
+ data.trackings.forEach((t) => {
37
+ if (nextCourierMap.has(t.slug)) return;
38
+ const c = allCouriers.find((c) => c.slug === t.slug);
39
+ c && nextCourierMap.set(t.slug, c);
40
+ });
41
+ setCourierMap((prev) => new Map([...prev, ...nextCourierMap]));
42
+ setTrackings(data.trackings);
43
+ setLineItems(data.line_items);
44
+ });
45
+ }
46
+
47
+ interface SubmitData extends Omit<Tracking, 'tracking_id' | 'line_items' | 'metrics'> {
48
+ tracking_id?: string;
49
+ line_items?: Pick<LineItem, 'id' | 'quantity'>[];
50
+ metrics?: Tracking['metrics'];
51
+ }
52
+
53
+ export async function editTracking(data: SubmitData) {
54
+ const oldTracking = trackings().find((t) => t.tracking_id === data.tracking_id);
55
+ const oldTrackingIndex = trackings().findIndex((t) => t.tracking_id === data.tracking_id);
56
+ const nowISOString = new Date().toISOString().replace(/\.\d+(?=Z$)/, '');
57
+ const isSlugOrNumberChanged =
58
+ data.slug !== oldTracking?.slug || data.tracking_number !== oldTracking?.tracking_number;
59
+ let result: SubmitData[] = [...trackings()];
60
+ if (oldTracking && !isSlugOrNumberChanged) {
61
+ result.splice(oldTrackingIndex, 1, {
62
+ ...data,
63
+ metrics: {
64
+ created_at: oldTracking.metrics.created_at || nowISOString,
65
+ updated_at: nowISOString,
66
+ },
67
+ });
68
+ } else {
69
+ result = [
70
+ ...result.filter((t) => t.tracking_id !== data.tracking_id),
71
+ {
72
+ ...data,
73
+ tracking_id: md5(`${data.slug}-${data.tracking_number}`).toString(),
74
+ metrics: {
75
+ created_at: nowISOString,
76
+ updated_at: nowISOString,
77
+ },
78
+ },
79
+ ];
80
+ }
81
+ const security = document.querySelector<HTMLInputElement>('#aftership_create_nonce')?.value || '';
82
+
83
+ await fetch(
84
+ `/wp-admin/admin-ajax.php?action=aftership_save_order_tracking&security=${security}`,
85
+ {
86
+ method: 'POST',
87
+ headers: {
88
+ 'Content-Type': 'application/json',
89
+ },
90
+ body: JSON.stringify({
91
+ order_id: window.woocommerce_admin_meta_boxes.post_id,
92
+ trackings: result,
93
+ }),
94
+ }
95
+ );
96
+ await fetchTrackings();
97
+ }
98
+
99
+ export async function deleteTracking(id: string) {
100
+ const security = document.querySelector<HTMLInputElement>('#aftership_delete_nonce')?.value || '';
101
+ await fetch(
102
+ `/wp-admin/admin-ajax.php?action=aftership_delete_order_tracking&security=${security}`,
103
+ {
104
+ method: 'POST',
105
+ headers: {
106
+ 'Content-Type': 'application/json',
107
+ },
108
+ body: JSON.stringify({
109
+ order_id: window.woocommerce_admin_meta_boxes.post_id,
110
+ tracking_id: id,
111
+ }),
112
+ }
113
+ );
114
+ await fetchTrackings();
115
+ }
116
+
117
+ export async function getSelectedCouriers() {
118
+ await fetch(`/wp-admin/admin-ajax.php?action=aftership_get_settings`)
119
+ .then((res): Promise<GetSelectedCouriersResponse> => res.json())
120
+ .then((res) => {
121
+ const selected_couriers = res.data.couriers;
122
+ const nextCourierMap = new Map(courierMap());
123
+ selected_couriers.forEach((c) => {
124
+ nextCourierMap.set(c.slug, c);
125
+ });
126
+ setCourierMap((prev) => new Map([...prev, ...nextCourierMap]));
127
+ setSelectedCouriers(selected_couriers);
128
+ setCustomDomain(res.data.custom_domain);
129
+ });
130
+ }
assets/meta-box/src/typings/global.d.ts ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ import { Courier } from './trackings';
2
+
3
+ declare global {
4
+ interface Window {
5
+ woocommerce_admin_meta_boxes: {
6
+ post_id: string;
7
+ };
8
+ get_aftership_couriers(): Courier[];
9
+ }
10
+ }
assets/meta-box/src/typings/trackings.ts ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ export interface AdditionalFields {
2
+ account_number: string;
3
+ key: string;
4
+ postal_code: string;
5
+ ship_date: string;
6
+ destination_country: string;
7
+ state: string;
8
+ }
9
+
10
+ export interface Tracking {
11
+ tracking_id: string;
12
+ slug: string;
13
+ tracking_number: string;
14
+ additional_fields: AdditionalFields;
15
+ line_items?: Pick<LineItem, 'id' | 'quantity'>[];
16
+ metrics: {
17
+ created_at: string;
18
+ updated_at: string;
19
+ };
20
+ }
21
+
22
+ export interface LineItem {
23
+ id: number;
24
+ name: string;
25
+ product_id: number;
26
+ variation_id: number;
27
+ quantity: number;
28
+ sku: string;
29
+ // ...
30
+ }
31
+
32
+ export type RequiredField =
33
+ | 'tracking_account_number'
34
+ | 'tracking_key'
35
+ | 'tracking_postal_code'
36
+ | 'tracking_ship_date'
37
+ | 'tracking_destination_country'
38
+ | 'tracking_state';
39
+
40
+ export interface Courier {
41
+ slug: string;
42
+ name: string;
43
+ other_name: string;
44
+ required_fields: RequiredField[];
45
+ }
assets/meta-box/src/utils/common.ts ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { lineItems } from '@src/storages/metaBox';
2
+ import { Tracking } from '@src/typings/trackings';
3
+
4
+ export function calcUnfulfilledItems(trackings: Tracking[]) {
5
+ const itemsMap = new Map<number, number>();
6
+ trackings.forEach((tracking) => {
7
+ tracking.line_items?.forEach((item) => {
8
+ // TODO 后端兼容后不需要转换 number
9
+ if (itemsMap.has(Number(item.id))) {
10
+ itemsMap.set(Number(item.id), (itemsMap.get(Number(item.id)) || 0) + Number(item.quantity));
11
+ } else {
12
+ itemsMap.set(Number(item.id), Number(item.quantity));
13
+ }
14
+ });
15
+ });
16
+ const remainLineItems = lineItems()
17
+ .map((item) => {
18
+ const currentQty = itemsMap.get(item.id) || 0;
19
+ return {
20
+ id: item.id,
21
+ name: item.name,
22
+ quantity: item.quantity - currentQty,
23
+ };
24
+ })
25
+ .filter((item) => item.quantity > 0);
26
+ return remainLineItems;
27
+ }
assets/meta-box/tsconfig.json ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "compilerOptions": {
3
+ "strict": true,
4
+ "target": "ESNext",
5
+ "module": "ESNext",
6
+ "moduleResolution": "node",
7
+ "allowSyntheticDefaultImports": true,
8
+ "esModuleInterop": true,
9
+ "jsx": "preserve",
10
+ "jsxImportSource": "solid-js",
11
+ "types": ["vite/client"],
12
+ "paths": {
13
+ "@src/*": ["./src/*"]
14
+ }
15
+ }
16
+ }
assets/meta-box/vite.config.ts ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { defineConfig, Plugin } from 'vite';
2
+ import path from 'path';
3
+ import solidPlugin from 'vite-plugin-solid';
4
+ // @ts-ignore
5
+ import MyExamplePlugin from './plugins/hotReloadShadowDomCss.js';
6
+
7
+ export default defineConfig({
8
+ base: '/wp-content/plugins/aftership-woocommerce-tracking/assets/meta-box/',
9
+ plugins: [solidPlugin(), MyExamplePlugin('aftership-meta-box')],
10
+ resolve: {
11
+ alias: {
12
+ '@src': path.resolve(__dirname, './src'),
13
+ },
14
+ },
15
+ build: {
16
+ // target: 'esnext',
17
+ // polyfillDynamicImport: false,
18
+ target: 'es2015',
19
+ outDir: './dist',
20
+ lib: {
21
+ entry: 'src/index.tsx',
22
+ name: 'metabox',
23
+ fileName: (_format) => `index.js`,
24
+ formats: ['iife'],
25
+ },
26
+ },
27
+ });
assets/meta-box/yarn.lock ADDED
@@ -0,0 +1,1256 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2
+ # yarn lockfile v1
3
+
4
+
5
+ "@babel/code-frame@^7.16.0":
6
+ version "7.16.0"
7
+ resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz"
8
+ integrity sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==
9
+ dependencies:
10
+ "@babel/highlight" "^7.16.0"
11
+
12
+ "@babel/compat-data@^7.16.0":
13
+ version "7.16.4"
14
+ resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.4.tgz"
15
+ integrity sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==
16
+
17
+ "@babel/core@^7.16.0":
18
+ version "7.16.0"
19
+ resolved "https://registry.npmjs.org/@babel/core/-/core-7.16.0.tgz"
20
+ integrity sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ==
21
+ dependencies:
22
+ "@babel/code-frame" "^7.16.0"
23
+ "@babel/generator" "^7.16.0"
24
+ "@babel/helper-compilation-targets" "^7.16.0"
25
+ "@babel/helper-module-transforms" "^7.16.0"
26
+ "@babel/helpers" "^7.16.0"
27
+ "@babel/parser" "^7.16.0"
28
+ "@babel/template" "^7.16.0"
29
+ "@babel/traverse" "^7.16.0"
30
+ "@babel/types" "^7.16.0"
31
+ convert-source-map "^1.7.0"
32
+ debug "^4.1.0"
33
+ gensync "^1.0.0-beta.2"
34
+ json5 "^2.1.2"
35
+ semver "^6.3.0"
36
+ source-map "^0.5.0"
37
+
38
+ "@babel/generator@^7.16.0":
39
+ version "7.16.0"
40
+ resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.16.0.tgz"
41
+ integrity sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew==
42
+ dependencies:
43
+ "@babel/types" "^7.16.0"
44
+ jsesc "^2.5.1"
45
+ source-map "^0.5.0"
46
+
47
+ "@babel/helper-annotate-as-pure@^7.16.0":
48
+ version "7.16.0"
49
+ resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.0.tgz"
50
+ integrity sha512-ItmYF9vR4zA8cByDocY05o0LGUkp1zhbTQOH1NFyl5xXEqlTJQCEJjieriw+aFpxo16swMxUnUiKS7a/r4vtHg==
51
+ dependencies:
52
+ "@babel/types" "^7.16.0"
53
+
54
+ "@babel/helper-compilation-targets@^7.16.0":
55
+ version "7.16.3"
56
+ resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz"
57
+ integrity sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA==
58
+ dependencies:
59
+ "@babel/compat-data" "^7.16.0"
60
+ "@babel/helper-validator-option" "^7.14.5"
61
+ browserslist "^4.17.5"
62
+ semver "^6.3.0"
63
+
64
+ "@babel/helper-create-class-features-plugin@^7.16.0":
65
+ version "7.16.0"
66
+ resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.0.tgz"
67
+ integrity sha512-XLwWvqEaq19zFlF5PTgOod4bUA+XbkR4WLQBct1bkzmxJGB0ZEJaoKF4c8cgH9oBtCDuYJ8BP5NB9uFiEgO5QA==
68
+ dependencies:
69
+ "@babel/helper-annotate-as-pure" "^7.16.0"
70
+ "@babel/helper-function-name" "^7.16.0"
71
+ "@babel/helper-member-expression-to-functions" "^7.16.0"
72
+ "@babel/helper-optimise-call-expression" "^7.16.0"
73
+ "@babel/helper-replace-supers" "^7.16.0"
74
+ "@babel/helper-split-export-declaration" "^7.16.0"
75
+
76
+ "@babel/helper-function-name@^7.16.0":
77
+ version "7.16.0"
78
+ resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz"
79
+ integrity sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog==
80
+ dependencies:
81
+ "@babel/helper-get-function-arity" "^7.16.0"
82
+ "@babel/template" "^7.16.0"
83
+ "@babel/types" "^7.16.0"
84
+
85
+ "@babel/helper-get-function-arity@^7.16.0":
86
+ version "7.16.0"
87
+ resolved "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz"
88
+ integrity sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ==
89
+ dependencies:
90
+ "@babel/types" "^7.16.0"
91
+
92
+ "@babel/helper-hoist-variables@^7.16.0":
93
+ version "7.16.0"
94
+ resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz"
95
+ integrity sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg==
96
+ dependencies:
97
+ "@babel/types" "^7.16.0"
98
+
99
+ "@babel/helper-member-expression-to-functions@^7.16.0":
100
+ version "7.16.0"
101
+ resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.0.tgz"
102
+ integrity sha512-bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ==
103
+ dependencies:
104
+ "@babel/types" "^7.16.0"
105
+
106
+ "@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.16.0":
107
+ version "7.16.0"
108
+ resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz"
109
+ integrity sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==
110
+ dependencies:
111
+ "@babel/types" "^7.16.0"
112
+
113
+ "@babel/helper-module-transforms@^7.16.0":
114
+ version "7.16.0"
115
+ resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.0.tgz"
116
+ integrity sha512-My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA==
117
+ dependencies:
118
+ "@babel/helper-module-imports" "^7.16.0"
119
+ "@babel/helper-replace-supers" "^7.16.0"
120
+ "@babel/helper-simple-access" "^7.16.0"
121
+ "@babel/helper-split-export-declaration" "^7.16.0"
122
+ "@babel/helper-validator-identifier" "^7.15.7"
123
+ "@babel/template" "^7.16.0"
124
+ "@babel/traverse" "^7.16.0"
125
+ "@babel/types" "^7.16.0"
126
+
127
+ "@babel/helper-optimise-call-expression@^7.16.0":
128
+ version "7.16.0"
129
+ resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz"
130
+ integrity sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw==
131
+ dependencies:
132
+ "@babel/types" "^7.16.0"
133
+
134
+ "@babel/helper-plugin-utils@^7.14.5":
135
+ version "7.14.5"
136
+ resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz"
137
+ integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==
138
+
139
+ "@babel/helper-replace-supers@^7.16.0":
140
+ version "7.16.0"
141
+ resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz"
142
+ integrity sha512-TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA==
143
+ dependencies:
144
+ "@babel/helper-member-expression-to-functions" "^7.16.0"
145
+ "@babel/helper-optimise-call-expression" "^7.16.0"
146
+ "@babel/traverse" "^7.16.0"
147
+ "@babel/types" "^7.16.0"
148
+
149
+ "@babel/helper-simple-access@^7.16.0":
150
+ version "7.16.0"
151
+ resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz"
152
+ integrity sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw==
153
+ dependencies:
154
+ "@babel/types" "^7.16.0"
155
+
156
+ "@babel/helper-split-export-declaration@^7.16.0":
157
+ version "7.16.0"
158
+ resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz"
159
+ integrity sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw==
160
+ dependencies:
161
+ "@babel/types" "^7.16.0"
162
+
163
+ "@babel/helper-validator-identifier@^7.15.7":
164
+ version "7.15.7"
165
+ resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz"
166
+ integrity sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==
167
+
168
+ "@babel/helper-validator-option@^7.14.5":
169
+ version "7.14.5"
170
+ resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz"
171
+ integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==
172
+
173
+ "@babel/helpers@^7.16.0":
174
+ version "7.16.3"
175
+ resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.3.tgz"
176
+ integrity sha512-Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w==
177
+ dependencies:
178
+ "@babel/template" "^7.16.0"
179
+ "@babel/traverse" "^7.16.3"
180
+ "@babel/types" "^7.16.0"
181
+
182
+ "@babel/highlight@^7.16.0":
183
+ version "7.16.0"
184
+ resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz"
185
+ integrity sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==
186
+ dependencies:
187
+ "@babel/helper-validator-identifier" "^7.15.7"
188
+ chalk "^2.0.0"
189
+ js-tokens "^4.0.0"
190
+
191
+ "@babel/parser@^7.16.0", "@babel/parser@^7.16.3":
192
+ version "7.16.4"
193
+ resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.16.4.tgz"
194
+ integrity sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==
195
+
196
+ "@babel/plugin-syntax-jsx@^7.10.4":
197
+ version "7.16.0"
198
+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.0.tgz"
199
+ integrity sha512-8zv2+xiPHwly31RK4RmnEYY5zziuF3O7W2kIDW+07ewWDh6Oi0dRq8kwvulRkFgt6DB97RlKs5c1y068iPlCUg==
200
+ dependencies:
201
+ "@babel/helper-plugin-utils" "^7.14.5"
202
+
203
+ "@babel/plugin-syntax-typescript@^7.16.0":
204
+ version "7.16.0"
205
+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.0.tgz"
206
+ integrity sha512-Xv6mEXqVdaqCBfJFyeab0fH2DnUoMsDmhamxsSi4j8nLd4Vtw213WMJr55xxqipC/YVWyPY3K0blJncPYji+dQ==
207
+ dependencies:
208
+ "@babel/helper-plugin-utils" "^7.14.5"
209
+
210
+ "@babel/plugin-transform-typescript@^7.16.0":
211
+ version "7.16.1"
212
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.1.tgz"
213
+ integrity sha512-NO4XoryBng06jjw/qWEU2LhcLJr1tWkhpMam/H4eas/CDKMX/b2/Ylb6EI256Y7+FVPCawwSM1rrJNOpDiz+Lg==
214
+ dependencies:
215
+ "@babel/helper-create-class-features-plugin" "^7.16.0"
216
+ "@babel/helper-plugin-utils" "^7.14.5"
217
+ "@babel/plugin-syntax-typescript" "^7.16.0"
218
+
219
+ "@babel/preset-typescript@^7.16.0":
220
+ version "7.16.0"
221
+ resolved "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.16.0.tgz"
222
+ integrity sha512-txegdrZYgO9DlPbv+9QOVpMnKbOtezsLHWsnsRF4AjbSIsVaujrq1qg8HK0mxQpWv0jnejt0yEoW1uWpvbrDTg==
223
+ dependencies:
224
+ "@babel/helper-plugin-utils" "^7.14.5"
225
+ "@babel/helper-validator-option" "^7.14.5"
226
+ "@babel/plugin-transform-typescript" "^7.16.0"
227
+
228
+ "@babel/template@^7.16.0":
229
+ version "7.16.0"
230
+ resolved "https://registry.npmjs.org/@babel/template/-/template-7.16.0.tgz"
231
+ integrity sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A==
232
+ dependencies:
233
+ "@babel/code-frame" "^7.16.0"
234
+ "@babel/parser" "^7.16.0"
235
+ "@babel/types" "^7.16.0"
236
+
237
+ "@babel/traverse@^7.16.0", "@babel/traverse@^7.16.3":
238
+ version "7.16.3"
239
+ resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.3.tgz"
240
+ integrity sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag==
241
+ dependencies:
242
+ "@babel/code-frame" "^7.16.0"
243
+ "@babel/generator" "^7.16.0"
244
+ "@babel/helper-function-name" "^7.16.0"
245
+ "@babel/helper-hoist-variables" "^7.16.0"
246
+ "@babel/helper-split-export-declaration" "^7.16.0"
247
+ "@babel/parser" "^7.16.3"
248
+ "@babel/types" "^7.16.0"
249
+ debug "^4.1.0"
250
+ globals "^11.1.0"
251
+
252
+ "@babel/types@^7.11.5", "@babel/types@^7.16.0":
253
+ version "7.16.0"
254
+ resolved "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz"
255
+ integrity sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==
256
+ dependencies:
257
+ "@babel/helper-validator-identifier" "^7.15.7"
258
+ to-fast-properties "^2.0.0"
259
+
260
+ "@types/crypto-js@^4.1.0":
261
+ version "4.1.0"
262
+ resolved "https://registry.yarnpkg.com/@types/crypto-js/-/crypto-js-4.1.0.tgz#09ba1b49bcce62c9a8e6d5e50a3364aa98975578"
263
+ integrity sha512-DCFfy/vh2lG6qHSGezQ+Sn2Ulf/1Mx51dqOdmOKyW5nMK3maLlxeS3onC7r212OnBM2pBR95HkAmAjjF08YkxQ==
264
+
265
+ "@types/lodash-es@^4.17.5":
266
+ version "4.17.5"
267
+ resolved "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.5.tgz"
268
+ integrity sha512-SHBoI8/0aoMQWAgUHMQ599VM6ZiSKg8sh/0cFqqlQQMyY9uEplc0ULU5yQNzcvdR4ZKa0ey8+vFmahuRbOCT1A==
269
+ dependencies:
270
+ "@types/lodash" "*"
271
+
272
+ "@types/lodash@*":
273
+ version "4.14.178"
274
+ resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.178.tgz"
275
+ integrity sha512-0d5Wd09ItQWH1qFbEyQ7oTQ3GZrMfth5JkbN3EvTKLXcHLRDSXeLnlvlOn0wvxVIwK5o2M8JzP/OWz7T3NRsbw==
276
+
277
+ "@types/node@^17.0.7":
278
+ version "17.0.7"
279
+ resolved "https://registry.npmjs.org/@types/node/-/node-17.0.7.tgz"
280
+ integrity sha512-1QUk+WAUD4t8iR+Oj+UgI8oJa6yyxaB8a8pHaC8uqM6RrS1qbL7bf3Pwl5rHv0psm2CuDErgho6v5N+G+5fwtQ==
281
+
282
+ aggregate-error@^3.0.0:
283
+ version "3.1.0"
284
+ resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz"
285
+ integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==
286
+ dependencies:
287
+ clean-stack "^2.0.0"
288
+ indent-string "^4.0.0"
289
+
290
+ ansi-colors@^4.1.1:
291
+ version "4.1.1"
292
+ resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz"
293
+ integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==
294
+
295
+ ansi-escapes@^4.3.0:
296
+ version "4.3.2"
297
+ resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz"
298
+ integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==
299
+ dependencies:
300
+ type-fest "^0.21.3"
301
+
302
+ ansi-regex@^5.0.1:
303
+ version "5.0.1"
304
+ resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz"
305
+ integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
306
+
307
+ ansi-regex@^6.0.1:
308
+ version "6.0.1"
309
+ resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz"
310
+ integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==
311
+
312
+ ansi-styles@^3.2.1:
313
+ version "3.2.1"
314
+ resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz"
315
+ integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
316
+ dependencies:
317
+ color-convert "^1.9.0"
318
+
319
+ ansi-styles@^4.0.0:
320
+ version "4.3.0"
321
+ resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz"
322
+ integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
323
+ dependencies:
324
+ color-convert "^2.0.1"
325
+
326
+ ansi-styles@^6.0.0:
327
+ version "6.1.0"
328
+ resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.1.0.tgz"
329
+ integrity sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==
330
+
331
+ anymatch@~3.1.2:
332
+ version "3.1.2"
333
+ resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz"
334
+ integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
335
+ dependencies:
336
+ normalize-path "^3.0.0"
337
+ picomatch "^2.0.4"
338
+
339
+ astral-regex@^2.0.0:
340
+ version "2.0.0"
341
+ resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz"
342
+ integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
343
+
344
+ babel-plugin-jsx-dom-expressions@^0.30.9:
345
+ version "0.30.9"
346
+ resolved "https://registry.npmjs.org/babel-plugin-jsx-dom-expressions/-/babel-plugin-jsx-dom-expressions-0.30.9.tgz"
347
+ integrity sha512-FdfgH5IgB5vUCHGQtj65uZ4uiW42VPN2h2KgRwRkINL9/vHRPw0bsGKL+2CaI/LmLKvot9IXhqjSV/HhD0KDWA==
348
+ dependencies:
349
+ "@babel/helper-module-imports" "^7.10.4"
350
+ "@babel/plugin-syntax-jsx" "^7.10.4"
351
+ "@babel/types" "^7.11.5"
352
+ html-entities "2.3.2"
353
+
354
+ babel-preset-solid@^1.2.6:
355
+ version "1.2.6"
356
+ resolved "https://registry.npmjs.org/babel-preset-solid/-/babel-preset-solid-1.2.6.tgz"
357
+ integrity sha512-rFl9Sv/llx5fbE1zfx9QlQMsJz3q/nQZds2xq5Atnayop1NOyK9l/ychF2g3DWXoN9MbAR+ZxZqxzsPnOXAV+A==
358
+ dependencies:
359
+ babel-plugin-jsx-dom-expressions "^0.30.9"
360
+
361
+ binary-extensions@^2.0.0:
362
+ version "2.2.0"
363
+ resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz"
364
+ integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
365
+
366
+ braces@^3.0.1, braces@~3.0.2:
367
+ version "3.0.2"
368
+ resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz"
369
+ integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
370
+ dependencies:
371
+ fill-range "^7.0.1"
372
+
373
+ browserslist@^4.17.5:
374
+ version "4.18.1"
375
+ resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.18.1.tgz"
376
+ integrity sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ==
377
+ dependencies:
378
+ caniuse-lite "^1.0.30001280"
379
+ electron-to-chromium "^1.3.896"
380
+ escalade "^3.1.1"
381
+ node-releases "^2.0.1"
382
+ picocolors "^1.0.0"
383
+
384
+ caniuse-lite@^1.0.30001280:
385
+ version "1.0.30001286"
386
+ resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001286.tgz"
387
+ integrity sha512-zaEMRH6xg8ESMi2eQ3R4eZ5qw/hJiVsO/HlLwniIwErij0JDr9P+8V4dtx1l+kLq6j3yy8l8W4fst1lBnat5wQ==
388
+
389
+ chalk@^2.0.0:
390
+ version "2.4.2"
391
+ resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz"
392
+ integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
393
+ dependencies:
394
+ ansi-styles "^3.2.1"
395
+ escape-string-regexp "^1.0.5"
396
+ supports-color "^5.3.0"
397
+
398
+ "chokidar@>=3.0.0 <4.0.0":
399
+ version "3.5.2"
400
+ resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz"
401
+ integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==
402
+ dependencies:
403
+ anymatch "~3.1.2"
404
+ braces "~3.0.2"
405
+ glob-parent "~5.1.2"
406
+ is-binary-path "~2.1.0"
407
+ is-glob "~4.0.1"
408
+ normalize-path "~3.0.0"
409
+ readdirp "~3.6.0"
410
+ optionalDependencies:
411
+ fsevents "~2.3.2"
412
+
413
+ clean-stack@^2.0.0:
414
+ version "2.2.0"
415
+ resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz"
416
+ integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==
417
+
418
+ cli-cursor@^3.1.0:
419
+ version "3.1.0"
420
+ resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz"
421
+ integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==
422
+ dependencies:
423
+ restore-cursor "^3.1.0"
424
+
425
+ cli-truncate@^2.1.0:
426
+ version "2.1.0"
427
+ resolved "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz"
428
+ integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==
429
+ dependencies:
430
+ slice-ansi "^3.0.0"
431
+ string-width "^4.2.0"
432
+
433
+ cli-truncate@^3.1.0:
434
+ version "3.1.0"
435
+ resolved "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz"
436
+ integrity sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==
437
+ dependencies:
438
+ slice-ansi "^5.0.0"
439
+ string-width "^5.0.0"
440
+
441
+ color-convert@^1.9.0:
442
+ version "1.9.3"
443
+ resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz"
444
+ integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
445
+ dependencies:
446
+ color-name "1.1.3"
447
+
448
+ color-convert@^2.0.1:
449
+ version "2.0.1"
450
+ resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz"
451
+ integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
452
+ dependencies:
453
+ color-name "~1.1.4"
454
+
455
+ color-name@1.1.3:
456
+ version "1.1.3"
457
+ resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
458
+ integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
459
+
460
+ color-name@~1.1.4:
461
+ version "1.1.4"
462
+ resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
463
+ integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
464
+
465
+ colorette@^2.0.16:
466
+ version "2.0.16"
467
+ resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz"
468
+ integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==
469
+
470
+ commander@^8.3.0:
471
+ version "8.3.0"
472
+ resolved "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz"
473
+ integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==
474
+
475
+ convert-source-map@^1.7.0:
476
+ version "1.8.0"
477
+ resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz"
478
+ integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==
479
+ dependencies:
480
+ safe-buffer "~5.1.1"
481
+
482
+ cross-spawn@^7.0.3:
483
+ version "7.0.3"
484
+ resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz"
485
+ integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
486
+ dependencies:
487
+ path-key "^3.1.0"
488
+ shebang-command "^2.0.0"
489
+ which "^2.0.1"
490
+
491
+ crypto-js@^4.1.1:
492
+ version "4.1.1"
493
+ resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.1.1.tgz#9e485bcf03521041bd85844786b83fb7619736cf"
494
+ integrity sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==
495
+
496
+ debug@^4.1.0, debug@^4.3.2:
497
+ version "4.3.3"
498
+ resolved "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz"
499
+ integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==
500
+ dependencies:
501
+ ms "2.1.2"
502
+
503
+ electron-to-chromium@^1.3.896:
504
+ version "1.4.16"
505
+ resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.16.tgz"
506
+ integrity sha512-BQb7FgYwnu6haWLU63/CdVW+9xhmHls3RCQUFiV4lvw3wimEHTVcUk2hkuZo76QhR8nnDdfZE7evJIZqijwPdA==
507
+
508
+ emoji-regex@^8.0.0:
509
+ version "8.0.0"
510
+ resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz"
511
+ integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
512
+
513
+ emoji-regex@^9.2.2:
514
+ version "9.2.2"
515
+ resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz"
516
+ integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==
517
+
518
+ enquirer@^2.3.6:
519
+ version "2.3.6"
520
+ resolved "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz"
521
+ integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==
522
+ dependencies:
523
+ ansi-colors "^4.1.1"
524
+
525
+ esbuild-android-arm64@0.13.15:
526
+ version "0.13.15"
527
+ resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.13.15.tgz#3fc3ff0bab76fe35dd237476b5d2b32bb20a3d44"
528
+ integrity sha512-m602nft/XXeO8YQPUDVoHfjyRVPdPgjyyXOxZ44MK/agewFFkPa8tUo6lAzSWh5Ui5PB4KR9UIFTSBKh/RrCmg==
529
+
530
+ esbuild-darwin-64@0.13.15:
531
+ version "0.13.15"
532
+ resolved "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.13.15.tgz"
533
+ integrity sha512-ihOQRGs2yyp7t5bArCwnvn2Atr6X4axqPpEdCFPVp7iUj4cVSdisgvEKdNR7yH3JDjW6aQDw40iQFoTqejqxvQ==
534
+
535
+ esbuild-darwin-arm64@0.13.15:
536
+ version "0.13.15"
537
+ resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.15.tgz#1b07f893b632114f805e188ddfca41b2b778229a"
538
+ integrity sha512-i1FZssTVxUqNlJ6cBTj5YQj4imWy3m49RZRnHhLpefFIh0To05ow9DTrXROTE1urGTQCloFUXTX8QfGJy1P8dQ==
539
+
540
+ esbuild-freebsd-64@0.13.15:
541
+ version "0.13.15"
542
+ resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.15.tgz#0b8b7eca1690c8ec94c75680c38c07269c1f4a85"
543
+ integrity sha512-G3dLBXUI6lC6Z09/x+WtXBXbOYQZ0E8TDBqvn7aMaOCzryJs8LyVXKY4CPnHFXZAbSwkCbqiPuSQ1+HhrNk7EA==
544
+
545
+ esbuild-freebsd-arm64@0.13.15:
546
+ version "0.13.15"
547
+ resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.15.tgz#2e1a6c696bfdcd20a99578b76350b41db1934e52"
548
+ integrity sha512-KJx0fzEDf1uhNOZQStV4ujg30WlnwqUASaGSFPhznLM/bbheu9HhqZ6mJJZM32lkyfGJikw0jg7v3S0oAvtvQQ==
549
+
550
+ esbuild-linux-32@0.13.15:
551
+ version "0.13.15"
552
+ resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.13.15.tgz#6fd39f36fc66dd45b6b5f515728c7bbebc342a69"
553
+ integrity sha512-ZvTBPk0YWCLMCXiFmD5EUtB30zIPvC5Itxz0mdTu/xZBbbHJftQgLWY49wEPSn2T/TxahYCRDWun5smRa0Tu+g==
554
+
555
+ esbuild-linux-64@0.13.15:
556
+ version "0.13.15"
557
+ resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.13.15.tgz#9cb8e4bcd7574e67946e4ee5f1f1e12386bb6dd3"
558
+ integrity sha512-eCKzkNSLywNeQTRBxJRQ0jxRCl2YWdMB3+PkWFo2BBQYC5mISLIVIjThNtn6HUNqua1pnvgP5xX0nHbZbPj5oA==
559
+
560
+ esbuild-linux-arm64@0.13.15:
561
+ version "0.13.15"
562
+ resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.15.tgz#3891aa3704ec579a1b92d2a586122e5b6a2bfba1"
563
+ integrity sha512-bYpuUlN6qYU9slzr/ltyLTR9YTBS7qUDymO8SV7kjeNext61OdmqFAzuVZom+OLW1HPHseBfJ/JfdSlx8oTUoA==
564
+
565
+ esbuild-linux-arm@0.13.15:
566
+ version "0.13.15"
567
+ resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.13.15.tgz#8a00e99e6a0c6c9a6b7f334841364d8a2b4aecfe"
568
+ integrity sha512-wUHttDi/ol0tD8ZgUMDH8Ef7IbDX+/UsWJOXaAyTdkT7Yy9ZBqPg8bgB/Dn3CZ9SBpNieozrPRHm0BGww7W/jA==
569
+
570
+ esbuild-linux-mips64le@0.13.15:
571
+ version "0.13.15"
572
+ resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.15.tgz#36b07cc47c3d21e48db3bb1f4d9ef8f46aead4f7"
573
+ integrity sha512-KlVjIG828uFPyJkO/8gKwy9RbXhCEUeFsCGOJBepUlpa7G8/SeZgncUEz/tOOUJTcWMTmFMtdd3GElGyAtbSWg==
574
+
575
+ esbuild-linux-ppc64le@0.13.15:
576
+ version "0.13.15"
577
+ resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.15.tgz#f7e6bba40b9a11eb9dcae5b01550ea04670edad2"
578
+ integrity sha512-h6gYF+OsaqEuBjeesTBtUPw0bmiDu7eAeuc2OEH9S6mV9/jPhPdhOWzdeshb0BskRZxPhxPOjqZ+/OqLcxQwEQ==
579
+
580
+ esbuild-netbsd-64@0.13.15:
581
+ version "0.13.15"
582
+ resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.13.15.tgz#a2fedc549c2b629d580a732d840712b08d440038"
583
+ integrity sha512-3+yE9emwoevLMyvu+iR3rsa+Xwhie7ZEHMGDQ6dkqP/ndFzRHkobHUKTe+NCApSqG5ce2z4rFu+NX/UHnxlh3w==
584
+
585
+ esbuild-openbsd-64@0.13.15:
586
+ version "0.13.15"
587
+ resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.15.tgz#b22c0e5806d3a1fbf0325872037f885306b05cd7"
588
+ integrity sha512-wTfvtwYJYAFL1fSs8yHIdf5GEE4NkbtbXtjLWjM3Cw8mmQKqsg8kTiqJ9NJQe5NX/5Qlo7Xd9r1yKMMkHllp5g==
589
+
590
+ esbuild-sunos-64@0.13.15:
591
+ version "0.13.15"
592
+ resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.13.15.tgz#d0b6454a88375ee8d3964daeff55c85c91c7cef4"
593
+ integrity sha512-lbivT9Bx3t1iWWrSnGyBP9ODriEvWDRiweAs69vI+miJoeKwHWOComSRukttbuzjZ8r1q0mQJ8Z7yUsDJ3hKdw==
594
+
595
+ esbuild-windows-32@0.13.15:
596
+ version "0.13.15"
597
+ resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.13.15.tgz#c96d0b9bbb52f3303322582ef8e4847c5ad375a7"
598
+ integrity sha512-fDMEf2g3SsJ599MBr50cY5ve5lP1wyVwTe6aLJsM01KtxyKkB4UT+fc5MXQFn3RLrAIAZOG+tHC+yXObpSn7Nw==
599
+
600
+ esbuild-windows-64@0.13.15:
601
+ version "0.13.15"
602
+ resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.13.15.tgz#1f79cb9b1e1bb02fb25cd414cb90d4ea2892c294"
603
+ integrity sha512-9aMsPRGDWCd3bGjUIKG/ZOJPKsiztlxl/Q3C1XDswO6eNX/Jtwu4M+jb6YDH9hRSUflQWX0XKAfWzgy5Wk54JQ==
604
+
605
+ esbuild-windows-arm64@0.13.15:
606
+ version "0.13.15"
607
+ resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.15.tgz#482173070810df22a752c686509c370c3be3b3c3"
608
+ integrity sha512-zzvyCVVpbwQQATaf3IG8mu1IwGEiDxKkYUdA4FpoCHi1KtPa13jeScYDjlW0Qh+ebWzpKfR2ZwvqAQkSWNcKjA==
609
+
610
+ esbuild@^0.13.12:
611
+ version "0.13.15"
612
+ resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.13.15.tgz"
613
+ integrity sha512-raCxt02HBKv8RJxE8vkTSCXGIyKHdEdGfUmiYb8wnabnaEmHzyW7DCHb5tEN0xU8ryqg5xw54mcwnYkC4x3AIw==
614
+ optionalDependencies:
615
+ esbuild-android-arm64 "0.13.15"
616
+ esbuild-darwin-64 "0.13.15"
617
+ esbuild-darwin-arm64 "0.13.15"
618
+ esbuild-freebsd-64 "0.13.15"
619
+ esbuild-freebsd-arm64 "0.13.15"
620
+ esbuild-linux-32 "0.13.15"
621
+ esbuild-linux-64 "0.13.15"
622
+ esbuild-linux-arm "0.13.15"
623
+ esbuild-linux-arm64 "0.13.15"
624
+ esbuild-linux-mips64le "0.13.15"
625
+ esbuild-linux-ppc64le "0.13.15"
626
+ esbuild-netbsd-64 "0.13.15"
627
+ esbuild-openbsd-64 "0.13.15"
628
+ esbuild-sunos-64 "0.13.15"
629
+ esbuild-windows-32 "0.13.15"
630
+ esbuild-windows-64 "0.13.15"
631
+ esbuild-windows-arm64 "0.13.15"
632
+
633
+ escalade@^3.1.1:
634
+ version "3.1.1"
635
+ resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz"
636
+ integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
637
+
638
+ escape-string-regexp@^1.0.5:
639
+ version "1.0.5"
640
+ resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"
641
+ integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
642
+
643
+ execa@^5.1.1:
644
+ version "5.1.1"
645
+ resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz"
646
+ integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==
647
+ dependencies:
648
+ cross-spawn "^7.0.3"
649
+ get-stream "^6.0.0"
650
+ human-signals "^2.1.0"
651
+ is-stream "^2.0.0"
652
+ merge-stream "^2.0.0"
653
+ npm-run-path "^4.0.1"
654
+ onetime "^5.1.2"
655
+ signal-exit "^3.0.3"
656
+ strip-final-newline "^2.0.0"
657
+
658
+ fill-range@^7.0.1:
659
+ version "7.0.1"
660
+ resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz"
661
+ integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
662
+ dependencies:
663
+ to-regex-range "^5.0.1"
664
+
665
+ fsevents@~2.3.2:
666
+ version "2.3.2"
667
+ resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz"
668
+ integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
669
+
670
+ function-bind@^1.1.1:
671
+ version "1.1.1"
672
+ resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"
673
+ integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
674
+
675
+ gensync@^1.0.0-beta.2:
676
+ version "1.0.0-beta.2"
677
+ resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz"
678
+ integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
679
+
680
+ get-stream@^6.0.0:
681
+ version "6.0.1"
682
+ resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz"
683
+ integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
684
+
685
+ glob-parent@~5.1.2:
686
+ version "5.1.2"
687
+ resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"
688
+ integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
689
+ dependencies:
690
+ is-glob "^4.0.1"
691
+
692
+ globals@^11.1.0:
693
+ version "11.12.0"
694
+ resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz"
695
+ integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
696
+
697
+ has-flag@^3.0.0:
698
+ version "3.0.0"
699
+ resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz"
700
+ integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
701
+
702
+ has@^1.0.3:
703
+ version "1.0.3"
704
+ resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz"
705
+ integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
706
+ dependencies:
707
+ function-bind "^1.1.1"
708
+
709
+ html-entities@2.3.2:
710
+ version "2.3.2"
711
+ resolved "https://registry.npmjs.org/html-entities/-/html-entities-2.3.2.tgz"
712
+ integrity sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ==
713
+
714
+ human-signals@^2.1.0:
715
+ version "2.1.0"
716
+ resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz"
717
+ integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
718
+
719
+ immutable@^4.0.0:
720
+ version "4.0.0"
721
+ resolved "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz"
722
+ integrity sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==
723
+
724
+ indent-string@^4.0.0:
725
+ version "4.0.0"
726
+ resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz"
727
+ integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==
728
+
729
+ is-binary-path@~2.1.0:
730
+ version "2.1.0"
731
+ resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz"
732
+ integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
733
+ dependencies:
734
+ binary-extensions "^2.0.0"
735
+
736
+ is-core-module@^2.2.0:
737
+ version "2.8.0"
738
+ resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz"
739
+ integrity sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==
740
+ dependencies:
741
+ has "^1.0.3"
742
+
743
+ is-extglob@^2.1.1:
744
+ version "2.1.1"
745
+ resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz"
746
+ integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
747
+
748
+ is-fullwidth-code-point@^3.0.0:
749
+ version "3.0.0"
750
+ resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz"
751
+ integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
752
+
753
+ is-fullwidth-code-point@^4.0.0:
754
+ version "4.0.0"
755
+ resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz"
756
+ integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==
757
+
758
+ is-glob@^4.0.1, is-glob@~4.0.1:
759
+ version "4.0.3"
760
+ resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz"
761
+ integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
762
+ dependencies:
763
+ is-extglob "^2.1.1"
764
+
765
+ is-number@^7.0.0:
766
+ version "7.0.0"
767
+ resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz"
768
+ integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
769
+
770
+ is-stream@^2.0.0:
771
+ version "2.0.1"
772
+ resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz"
773
+ integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
774
+
775
+ is-what@^3.14.1:
776
+ version "3.14.1"
777
+ resolved "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz"
778
+ integrity sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==
779
+
780
+ isexe@^2.0.0:
781
+ version "2.0.0"
782
+ resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz"
783
+ integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
784
+
785
+ js-tokens@^4.0.0:
786
+ version "4.0.0"
787
+ resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz"
788
+ integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
789
+
790
+ jsesc@^2.5.1:
791
+ version "2.5.2"
792
+ resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz"
793
+ integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
794
+
795
+ json5@^2.1.2:
796
+ version "2.2.0"
797
+ resolved "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz"
798
+ integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==
799
+ dependencies:
800
+ minimist "^1.2.5"
801
+
802
+ lilconfig@2.0.4:
803
+ version "2.0.4"
804
+ resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.4.tgz"
805
+ integrity sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==
806
+
807
+ lint-staged@^12.1.2:
808
+ version "12.1.2"
809
+ resolved "https://registry.npmjs.org/lint-staged/-/lint-staged-12.1.2.tgz"
810
+ integrity sha512-bSMcQVqMW98HLLLR2c2tZ+vnDCnx4fd+0QJBQgN/4XkdspGRPc8DGp7UuOEBe1ApCfJ+wXXumYnJmU+wDo7j9A==
811
+ dependencies:
812
+ cli-truncate "^3.1.0"
813
+ colorette "^2.0.16"
814
+ commander "^8.3.0"
815
+ debug "^4.3.2"
816
+ enquirer "^2.3.6"
817
+ execa "^5.1.1"
818
+ lilconfig "2.0.4"
819
+ listr2 "^3.13.3"
820
+ micromatch "^4.0.4"
821
+ normalize-path "^3.0.0"
822
+ object-inspect "^1.11.0"
823
+ string-argv "^0.3.1"
824
+ supports-color "^9.0.2"
825
+ yaml "^1.10.2"
826
+
827
+ listr2@^3.13.3:
828
+ version "3.13.5"
829
+ resolved "https://registry.npmjs.org/listr2/-/listr2-3.13.5.tgz"
830
+ integrity sha512-3n8heFQDSk+NcwBn3CgxEibZGaRzx+pC64n3YjpMD1qguV4nWus3Al+Oo3KooqFKTQEJ1v7MmnbnyyNspgx3NA==
831
+ dependencies:
832
+ cli-truncate "^2.1.0"
833
+ colorette "^2.0.16"
834
+ log-update "^4.0.0"
835
+ p-map "^4.0.0"
836
+ rfdc "^1.3.0"
837
+ rxjs "^7.4.0"
838
+ through "^2.3.8"
839
+ wrap-ansi "^7.0.0"
840
+
841
+ lodash-es@^4.17.21:
842
+ version "4.17.21"
843
+ resolved "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz"
844
+ integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==
845
+
846
+ log-update@^4.0.0:
847
+ version "4.0.0"
848
+ resolved "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz"
849
+ integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==
850
+ dependencies:
851
+ ansi-escapes "^4.3.0"
852
+ cli-cursor "^3.1.0"
853
+ slice-ansi "^4.0.0"
854
+ wrap-ansi "^6.2.0"
855
+
856
+ merge-anything@^4.0.1:
857
+ version "4.0.2"
858
+ resolved "https://registry.npmjs.org/merge-anything/-/merge-anything-4.0.2.tgz"
859
+ integrity sha512-YxLHKgX8jN5xfKIxcwVNzQ2HpS0r9eUSqifgGhVARoZEW31Jwu95OQzX7qlFPBPQdCmNBhCYaqJzOcwAKi2Elg==
860
+ dependencies:
861
+ is-what "^3.14.1"
862
+ ts-toolbelt "^9.6.0"
863
+
864
+ merge-stream@^2.0.0:
865
+ version "2.0.0"
866
+ resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz"
867
+ integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
868
+
869
+ micromatch@^4.0.4:
870
+ version "4.0.4"
871
+ resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz"
872
+ integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==
873
+ dependencies:
874
+ braces "^3.0.1"
875
+ picomatch "^2.2.3"
876
+
877
+ mimic-fn@^2.1.0:
878
+ version "2.1.0"
879
+ resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz"
880
+ integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
881
+
882
+ minimist@^1.2.5:
883
+ version "1.2.5"
884
+ resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz"
885
+ integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
886
+
887
+ ms@2.1.2:
888
+ version "2.1.2"
889
+ resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
890
+ integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
891
+
892
+ nanoid@^3.1.30:
893
+ version "3.1.30"
894
+ resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz"
895
+ integrity sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==
896
+
897
+ node-releases@^2.0.1:
898
+ version "2.0.1"
899
+ resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz"
900
+ integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==
901
+
902
+ normalize-path@^3.0.0, normalize-path@~3.0.0:
903
+ version "3.0.0"
904
+ resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz"
905
+ integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
906
+
907
+ normalize.css@^8.0.1:
908
+ version "8.0.1"
909
+ resolved "https://registry.npmjs.org/normalize.css/-/normalize.css-8.0.1.tgz"
910
+ integrity sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg==
911
+
912
+ npm-run-path@^4.0.1:
913
+ version "4.0.1"
914
+ resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz"
915
+ integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
916
+ dependencies:
917
+ path-key "^3.0.0"
918
+
919
+ object-inspect@^1.11.0:
920
+ version "1.11.1"
921
+ resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.1.tgz"
922
+ integrity sha512-If7BjFlpkzzBeV1cqgT3OSWT3azyoxDGajR+iGnFBfVV2EWyDyWaZZW2ERDjUaY2QM8i5jI3Sj7mhsM4DDAqWA==
923
+
924
+ onetime@^5.1.0, onetime@^5.1.2:
925
+ version "5.1.2"
926
+ resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz"
927
+ integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
928
+ dependencies:
929
+ mimic-fn "^2.1.0"
930
+
931
+ p-map@^4.0.0:
932
+ version "4.0.0"
933
+ resolved "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz"
934
+ integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==
935
+ dependencies:
936
+ aggregate-error "^3.0.0"
937
+
938
+ path-key@^3.0.0, path-key@^3.1.0:
939
+ version "3.1.1"
940
+ resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz"
941
+ integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
942
+
943
+ path-parse@^1.0.6:
944
+ version "1.0.7"
945
+ resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz"
946
+ integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
947
+
948
+ picocolors@^1.0.0:
949
+ version "1.0.0"
950
+ resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz"
951
+ integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
952
+
953
+ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3:
954
+ version "2.3.0"
955
+ resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz"
956
+ integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==
957
+
958
+ postcss@^8.3.11, postcss@^8.4.5:
959
+ version "8.4.5"
960
+ resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz"
961
+ integrity sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==
962
+ dependencies:
963
+ nanoid "^3.1.30"
964
+ picocolors "^1.0.0"
965
+ source-map-js "^1.0.1"
966
+
967
+ prettier@^2.5.1:
968
+ version "2.5.1"
969
+ resolved "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz"
970
+ integrity sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==
971
+
972
+ readdirp@~3.6.0:
973
+ version "3.6.0"
974
+ resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz"
975
+ integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
976
+ dependencies:
977
+ picomatch "^2.2.1"
978
+
979
+ resolve@^1.20.0:
980
+ version "1.20.0"
981
+ resolved "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz"
982
+ integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==
983
+ dependencies:
984
+ is-core-module "^2.2.0"
985
+ path-parse "^1.0.6"
986
+
987
+ restore-cursor@^3.1.0:
988
+ version "3.1.0"
989
+ resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz"
990
+ integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==
991
+ dependencies:
992
+ onetime "^5.1.0"
993
+ signal-exit "^3.0.2"
994
+
995
+ rfdc@^1.3.0:
996
+ version "1.3.0"
997
+ resolved "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz"
998
+ integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==
999
+
1000
+ rollup@^2.59.0:
1001
+ version "2.61.1"
1002
+ resolved "https://registry.npmjs.org/rollup/-/rollup-2.61.1.tgz"
1003
+ integrity sha512-BbTXlEvB8d+XFbK/7E5doIcRtxWPRiqr0eb5vQ0+2paMM04Ye4PZY5nHOQef2ix24l/L0SpLd5hwcH15QHPdvA==
1004
+ optionalDependencies:
1005
+ fsevents "~2.3.2"
1006
+
1007
+ rxjs@^7.4.0:
1008
+ version "7.4.0"
1009
+ resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.4.0.tgz"
1010
+ integrity sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w==
1011
+ dependencies:
1012
+ tslib "~2.1.0"
1013
+
1014
+ safe-buffer@~5.1.1:
1015
+ version "5.1.2"
1016
+ resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"
1017
+ integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
1018
+
1019
+ sass@^1.44.0:
1020
+ version "1.45.0"
1021
+ resolved "https://registry.npmjs.org/sass/-/sass-1.45.0.tgz"
1022
+ integrity sha512-ONy5bjppoohtNkFJRqdz1gscXamMzN3wQy1YH9qO2FiNpgjLhpz/IPRGg0PpCjyz/pWfCOaNEaiEGCcjOFAjqw==
1023
+ dependencies:
1024
+ chokidar ">=3.0.0 <4.0.0"
1025
+ immutable "^4.0.0"
1026
+ source-map-js ">=0.6.2 <2.0.0"
1027
+
1028
+ semver@^6.3.0:
1029
+ version "6.3.0"
1030
+ resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz"
1031
+ integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
1032
+
1033
+ shebang-command@^2.0.0:
1034
+ version "2.0.0"
1035
+ resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz"
1036
+ integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
1037
+ dependencies:
1038
+ shebang-regex "^3.0.0"
1039
+
1040
+ shebang-regex@^3.0.0:
1041
+ version "3.0.0"
1042
+ resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz"
1043
+ integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
1044
+
1045
+ signal-exit@^3.0.2, signal-exit@^3.0.3:
1046
+ version "3.0.6"
1047
+ resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz"
1048
+ integrity sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==
1049
+
1050
+ slice-ansi@^3.0.0:
1051
+ version "3.0.0"
1052
+ resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz"
1053
+ integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==
1054
+ dependencies:
1055
+ ansi-styles "^4.0.0"
1056
+ astral-regex "^2.0.0"
1057
+ is-fullwidth-code-point "^3.0.0"
1058
+
1059
+ slice-ansi@^4.0.0:
1060
+ version "4.0.0"
1061
+ resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz"
1062
+ integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==
1063
+ dependencies:
1064
+ ansi-styles "^4.0.0"
1065
+ astral-regex "^2.0.0"
1066
+ is-fullwidth-code-point "^3.0.0"
1067
+
1068
+ slice-ansi@^5.0.0:
1069
+ version "5.0.0"
1070
+ resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz"
1071
+ integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==
1072
+ dependencies:
1073
+ ansi-styles "^6.0.0"
1074
+ is-fullwidth-code-point "^4.0.0"
1075
+
1076
+ solid-js@1.2.6, solid-js@^1.2.6:
1077
+ version "1.2.6"
1078
+ resolved "https://registry.npmjs.org/solid-js/-/solid-js-1.2.6.tgz"
1079
+ integrity sha512-NvPHJ5Vj5f+ZJWIioickrC55seovSkDtm5NzSpnoUk3z4tATv0STpy5iuGNEn51ZORUcwpZzrMAtOCGziXU1XA==
1080
+
1081
+ solid-refresh@^0.3.2:
1082
+ version "0.3.2"
1083
+ resolved "https://registry.npmjs.org/solid-refresh/-/solid-refresh-0.3.2.tgz"
1084
+ integrity sha512-7lg3EjenGoxQvGoZnTD3d480wBxbpAiAsyk0dhoGq6hjcaAQ3vnsBGxvXV0LBTzeQcGmIRz1GeSsw/64YyNr+g==
1085
+ dependencies:
1086
+ "@babel/generator" "^7.16.0"
1087
+ "@babel/helper-module-imports" "^7.16.0"
1088
+ "@babel/types" "^7.16.0"
1089
+
1090
+ "source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.1:
1091
+ version "1.0.1"
1092
+ resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz"
1093
+ integrity sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==
1094
+
1095
+ source-map@^0.5.0:
1096
+ version "0.5.7"
1097
+ resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz"
1098
+ integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
1099
+
1100
+ string-argv@^0.3.1:
1101
+ version "0.3.1"
1102
+ resolved "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz"
1103
+ integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==
1104
+
1105
+ string-width@^4.1.0, string-width@^4.2.0:
1106
+ version "4.2.3"
1107
+ resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz"
1108
+ integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
1109
+ dependencies:
1110
+ emoji-regex "^8.0.0"
1111
+ is-fullwidth-code-point "^3.0.0"
1112
+ strip-ansi "^6.0.1"
1113
+
1114
+ string-width@^5.0.0:
1115
+ version "5.0.1"
1116
+ resolved "https://registry.npmjs.org/string-width/-/string-width-5.0.1.tgz"
1117
+ integrity sha512-5ohWO/M4//8lErlUUtrFy3b11GtNOuMOU0ysKCDXFcfXuuvUXu95akgj/i8ofmaGdN0hCqyl6uu9i8dS/mQp5g==
1118
+ dependencies:
1119
+ emoji-regex "^9.2.2"
1120
+ is-fullwidth-code-point "^4.0.0"
1121
+ strip-ansi "^7.0.1"
1122
+
1123
+ strip-ansi@^6.0.0, strip-ansi@^6.0.1:
1124
+ version "6.0.1"
1125
+ resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz"
1126
+ integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
1127
+ dependencies:
1128
+ ansi-regex "^5.0.1"
1129
+
1130
+ strip-ansi@^7.0.1:
1131
+ version "7.0.1"
1132
+ resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz"
1133
+ integrity sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==
1134
+ dependencies:
1135
+ ansi-regex "^6.0.1"
1136
+
1137
+ strip-final-newline@^2.0.0:
1138
+ version "2.0.0"
1139
+ resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz"
1140
+ integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
1141
+
1142
+ supports-color@^5.3.0:
1143
+ version "5.5.0"
1144
+ resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz"
1145
+ integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
1146
+ dependencies:
1147
+ has-flag "^3.0.0"
1148
+
1149
+ supports-color@^9.0.2:
1150
+ version "9.2.1"
1151
+ resolved "https://registry.npmjs.org/supports-color/-/supports-color-9.2.1.tgz"
1152
+ integrity sha512-Obv7ycoCTG51N7y175StI9BlAXrmgZrFhZOb0/PyjHBher/NmsdBgbbQ1Inhq+gIhz6+7Gb+jWF2Vqi7Mf1xnQ==
1153
+
1154
+ through@^2.3.8:
1155
+ version "2.3.8"
1156
+ resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz"
1157
+ integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
1158
+
1159
+ to-fast-properties@^2.0.0:
1160
+ version "2.0.0"
1161
+ resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz"
1162
+ integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
1163
+
1164
+ to-regex-range@^5.0.1:
1165
+ version "5.0.1"
1166
+ resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz"
1167
+ integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
1168
+ dependencies:
1169
+ is-number "^7.0.0"
1170
+
1171
+ ts-toolbelt@^9.6.0:
1172
+ version "9.6.0"
1173
+ resolved "https://registry.npmjs.org/ts-toolbelt/-/ts-toolbelt-9.6.0.tgz"
1174
+ integrity sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==
1175
+
1176
+ tslib@~2.1.0:
1177
+ version "2.1.0"
1178
+ resolved "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz"
1179
+ integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==
1180
+
1181
+ type-fest@^0.21.3:
1182
+ version "0.21.3"
1183
+ resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz"
1184
+ integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==
1185
+
1186
+ typescript@^4.4.3:
1187
+ version "4.5.3"
1188
+ resolved "https://registry.npmjs.org/typescript/-/typescript-4.5.3.tgz"
1189
+ integrity sha512-eVYaEHALSt+s9LbvgEv4Ef+Tdq7hBiIZgii12xXJnukryt3pMgJf6aKhoCZ3FWQsu6sydEnkg11fYXLzhLBjeQ==
1190
+
1191
+ vite-plugin-solid@2.1.4:
1192
+ version "2.1.4"
1193
+ resolved "https://registry.npmjs.org/vite-plugin-solid/-/vite-plugin-solid-2.1.4.tgz"
1194
+ integrity sha512-lhEPlDf4PB+KKu5ExaT3zaENqC8shpJ4H74a2R0qbr1MCiFvhE/AooWvIlclpHzBtDK6MmUKv25qSFoSC1EaXQ==
1195
+ dependencies:
1196
+ "@babel/core" "^7.16.0"
1197
+ "@babel/preset-typescript" "^7.16.0"
1198
+ babel-preset-solid "^1.2.6"
1199
+ merge-anything "^4.0.1"
1200
+ solid-js "^1.2.6"
1201
+ solid-refresh "^0.3.2"
1202
+ vite "^2.7.1"
1203
+
1204
+ vite@2.7.10:
1205
+ version "2.7.10"
1206
+ resolved "https://registry.npmjs.org/vite/-/vite-2.7.10.tgz"
1207
+ integrity sha512-KEY96ntXUid1/xJihJbgmLZx7QSC2D4Tui0FdS0Old5OokYzFclcofhtxtjDdGOk/fFpPbHv9yw88+rB93Tb8w==
1208
+ dependencies:
1209
+ esbuild "^0.13.12"
1210
+ postcss "^8.4.5"
1211
+ resolve "^1.20.0"
1212
+ rollup "^2.59.0"
1213
+ optionalDependencies:
1214
+ fsevents "~2.3.2"
1215
+
1216
+ vite@^2.7.1:
1217
+ version "2.7.1"
1218
+ resolved "https://registry.npmjs.org/vite/-/vite-2.7.1.tgz"
1219
+ integrity sha512-TDXXhcu5lyQ6uosK4ZWaOyB4VzOiizk0biitRzDzaEtgSUi8rVYPc4k1xgOjLSf0OuceDJmojFKXHOX9DB1WuQ==
1220
+ dependencies:
1221
+ esbuild "^0.13.12"
1222
+ postcss "^8.3.11"
1223
+ resolve "^1.20.0"
1224
+ rollup "^2.59.0"
1225
+ optionalDependencies:
1226
+ fsevents "~2.3.2"
1227
+
1228
+ which@^2.0.1:
1229
+ version "2.0.2"
1230
+ resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz"
1231
+ integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
1232
+ dependencies:
1233
+ isexe "^2.0.0"
1234
+
1235
+ wrap-ansi@^6.2.0:
1236
+ version "6.2.0"
1237
+ resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz"
1238
+ integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==
1239
+ dependencies:
1240
+ ansi-styles "^4.0.0"
1241
+ string-width "^4.1.0"
1242
+ strip-ansi "^6.0.0"
1243
+
1244
+ wrap-ansi@^7.0.0:
1245
+ version "7.0.0"
1246
+ resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz"
1247
+ integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
1248
+ dependencies:
1249
+ ansi-styles "^4.0.0"
1250
+ string-width "^4.1.0"
1251
+ strip-ansi "^6.0.0"
1252
+
1253
+ yaml@^1.10.2:
1254
+ version "1.10.2"
1255
+ resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz"
1256
+ integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
includes/class-aftership-actions.php CHANGED
@@ -59,7 +59,7 @@ class AfterShip_Actions {
59
  */
60
  public function admin_styles() {
61
  $plugin_url = $GLOBALS['AfterShip']->plugin_url;
62
- wp_enqueue_style( 'aftership_styles', $plugin_url . '/assets/css/admin.css' );
63
  }
64
 
65
  /**
@@ -195,7 +195,7 @@ class AfterShip_Actions {
195
  );
196
 
197
  echo '<aftership-meta-box></aftership-meta-box>';
198
- wp_enqueue_script( 'aftership-js-tracking-items', $GLOBALS['AfterShip']->plugin_url . '/assets/meta-box/dist/index.js' );
199
  }
200
 
201
  /**
59
  */
60
  public function admin_styles() {
61
  $plugin_url = $GLOBALS['AfterShip']->plugin_url;
62
+ wp_enqueue_style( 'aftership_styles', $plugin_url . '/assets/css/admin.css', array(), AFTERSHIP_VERSION );
63
  }
64
 
65
  /**
195
  );
196
 
197
  echo '<aftership-meta-box></aftership-meta-box>';
198
+ wp_enqueue_script( 'aftership-js-tracking-items', $GLOBALS['AfterShip']->plugin_url . '/assets/meta-box/dist/index.js', array(), AFTERSHIP_VERSION );
199
  }
200
 
201
  /**
includes/class-aftership-settings.php CHANGED
@@ -49,7 +49,7 @@ class AfterShip_Settings {
49
  * Inject css
50
  */
51
  public function admin_styles() {
52
- wp_enqueue_style( 'aftership_styles_chosen', aftership()->plugin_url . '/assets/plugin/chosen/chosen.min.css' );
53
  }
54
 
55
  /**
@@ -57,9 +57,9 @@ class AfterShip_Settings {
57
  */
58
  public function library_scripts() {
59
  $plugin_url = aftership()->plugin_url;
60
- wp_enqueue_script( 'aftership_styles_chosen_jquery', $plugin_url . '/assets/plugin/chosen/chosen.jquery.min.js' );
61
- wp_enqueue_script( 'aftership_styles_chosen_proto', $plugin_url . '/assets/plugin/chosen/chosen.proto.min.js' );
62
- wp_enqueue_script( 'aftership_script_util', $plugin_url . '/assets/js/util.js' );
63
  wp_enqueue_script( 'aftership_script_couriers', $plugin_url . '/assets/js/couriers.js', array(), AFTERSHIP_VERSION );
64
  wp_enqueue_script( 'aftership_script_setting', $plugin_url . '/assets/js/setting.js', array(), AFTERSHIP_VERSION );
65
  }
49
  * Inject css
50
  */
51
  public function admin_styles() {
52
+ wp_enqueue_style( 'aftership_styles_chosen', aftership()->plugin_url . '/assets/plugin/chosen/chosen.min.css', array(), AFTERSHIP_VERSION );
53
  }
54
 
55
  /**
57
  */
58
  public function library_scripts() {
59
  $plugin_url = aftership()->plugin_url;
60
+ wp_enqueue_script( 'aftership_styles_chosen_jquery', $plugin_url . '/assets/plugin/chosen/chosen.jquery.min.js', array(), AFTERSHIP_VERSION );
61
+ wp_enqueue_script( 'aftership_styles_chosen_proto', $plugin_url . '/assets/plugin/chosen/chosen.proto.min.js', array(), AFTERSHIP_VERSION );
62
+ wp_enqueue_script( 'aftership_script_util', $plugin_url . '/assets/js/util.js', array(), AFTERSHIP_VERSION );
63
  wp_enqueue_script( 'aftership_script_couriers', $plugin_url . '/assets/js/couriers.js', array(), AFTERSHIP_VERSION );
64
  wp_enqueue_script( 'aftership_script_setting', $plugin_url . '/assets/js/setting.js', array(), AFTERSHIP_VERSION );
65
  }
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: https://www.aftership.com/
4
  Tags: woocommerce shipping,woocommerce tracking,shipment tracking,order tracking, woocommerce,track order,dhl,ups,usps,fedex,shipping,tracking,order
5
  Requires at least: 2.9
6
  Tested up to: 5.7
7
- Stable tag: 1.14.0
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -138,6 +138,9 @@ Tailor a dynamic branded tracking page. Upload promotional banner, logo, and fav
138
 
139
  == Changelog ==
140
 
 
 
 
141
  = 1.14.0 =
142
  * New Feature: Support fulfillment according to order items
143
 
4
  Tags: woocommerce shipping,woocommerce tracking,shipment tracking,order tracking, woocommerce,track order,dhl,ups,usps,fedex,shipping,tracking,order
5
  Requires at least: 2.9
6
  Tested up to: 5.7
7
+ Stable tag: 1.14.1
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
138
 
139
  == Changelog ==
140
 
141
+ = 1.14.1 =
142
+ * Fix known issue
143
+
144
  = 1.14.0 =
145
  * New Feature: Support fulfillment according to order items
146