@vue-skuilder/platform-ui 0.1.33 → 0.1.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{About-C1rcp0Ex.js → About-BpqIdlZQ.js} +2 -2
- package/dist/assets/{About-C1rcp0Ex.js.map → About-BpqIdlZQ.js.map} +1 -1
- package/dist/assets/{AdminDashboard-BOHgXD45.js → AdminDashboard-BObO6egG.js} +2 -2
- package/dist/assets/{AdminDashboard-BOHgXD45.js.map → AdminDashboard-BObO6egG.js.map} +1 -1
- package/dist/assets/{ClassroomCtrlPanel-ezMgP7A3.js → ClassroomCtrlPanel-lgN6cdTd.js} +2 -2
- package/dist/assets/{ClassroomCtrlPanel-ezMgP7A3.js.map → ClassroomCtrlPanel-lgN6cdTd.js.map} +1 -1
- package/dist/assets/{Classrooms-CdN-ogiI.js → Classrooms-BWoQ4i1_.js} +2 -2
- package/dist/assets/{Classrooms-CdN-ogiI.js.map → Classrooms-BWoQ4i1_.js.map} +1 -1
- package/dist/assets/{CourseRouter-BKHj3HHh.js → CourseRouter-CODD0Qm5.js} +2 -2
- package/dist/assets/{CourseRouter-BKHj3HHh.js.map → CourseRouter-CODD0Qm5.js.map} +1 -1
- package/dist/assets/{Courses-DTsQz202.js → Courses-ClDdLQUO.js} +2 -2
- package/dist/assets/{Courses-DTsQz202.js.map → Courses-ClDdLQUO.js.map} +1 -1
- package/dist/assets/{DataInputFormTester-BC2ZDakI.js → DataInputFormTester-ywHjm2yC.js} +2 -2
- package/dist/assets/{DataInputFormTester-BC2ZDakI.js.map → DataInputFormTester-ywHjm2yC.js.map} +1 -1
- package/dist/assets/{EloModeration-DqViuzI8.js → EloModeration-B6LM11G_.js} +2 -2
- package/dist/assets/{EloModeration-DqViuzI8.js.map → EloModeration-B6LM11G_.js.map} +1 -1
- package/dist/assets/{JoinCode-BjbhKTgK.js → JoinCode-DgPD_OFL.js} +2 -2
- package/dist/assets/{JoinCode-BjbhKTgK.js.map → JoinCode-DgPD_OFL.js.map} +1 -1
- package/dist/assets/{NewCourseDialog-4YsIKoUU.js → NewCourseDialog-DhwvBT3y.js} +2 -2
- package/dist/assets/{NewCourseDialog-4YsIKoUU.js.map → NewCourseDialog-DhwvBT3y.js.map} +1 -1
- package/dist/assets/{ReleaseNotes-BYXN8IZ4.js → ReleaseNotes-DtwDIIfH.js} +2 -2
- package/dist/assets/{ReleaseNotes-BYXN8IZ4.js.map → ReleaseNotes-DtwDIIfH.js.map} +1 -1
- package/dist/assets/{RequestPasswordReset-Zxt4oKHx.js → RequestPasswordReset-DBv0XCIk.js} +2 -2
- package/dist/assets/{RequestPasswordReset-Zxt4oKHx.js.map → RequestPasswordReset-DBv0XCIk.js.map} +1 -1
- package/dist/assets/{ResetPassword-rAc69I0Q.js → ResetPassword-BtBplqsQ.js} +2 -2
- package/dist/assets/{ResetPassword-rAc69I0Q.js.map → ResetPassword-BtBplqsQ.js.map} +1 -1
- package/dist/assets/{Study-DJlTc-ZH.js → Study-D9W1DKes.js} +2 -2
- package/dist/assets/{Study-DJlTc-ZH.js.map → Study-D9W1DKes.js.map} +1 -1
- package/dist/assets/{TagInformation-CSUtrZy7.js → TagInformation-DgUkKxoU.js} +2 -2
- package/dist/assets/{TagInformation-CSUtrZy7.js.map → TagInformation-DgUkKxoU.js.map} +1 -1
- package/dist/assets/{User-D2R6CphB.js → User-DorFkRx_.js} +2 -2
- package/dist/assets/{User-D2R6CphB.js.map → User-DorFkRx_.js.map} +1 -1
- package/dist/assets/{UserStats-BgnHXg6C.js → UserStats-ck9Oh4qt.js} +2 -2
- package/dist/assets/{UserStats-BgnHXg6C.js.map → UserStats-ck9Oh4qt.js.map} +1 -1
- package/dist/assets/{VerifyEmail-BLfciV-4.js → VerifyEmail-BYt5xfhm.js} +2 -2
- package/dist/assets/{VerifyEmail-BLfciV-4.js.map → VerifyEmail-BYt5xfhm.js.map} +1 -1
- package/dist/assets/{common-ui.es-I814CYyx.js → common-ui.es-BrXWBn7p.js} +6 -6
- package/dist/assets/common-ui.es-BrXWBn7p.js.map +1 -0
- package/dist/assets/common-ui.es-DKUQOgQx.js +1 -0
- package/dist/assets/dist-5cG6aSxW.js +1 -0
- package/dist/assets/{dist-DkeESCP4.js → dist-CzLl7g6t.js} +11 -10
- package/dist/assets/dist-CzLl7g6t.js.map +1 -0
- package/dist/assets/{dist-BwVFN4Xe.js → dist-D5-LrzD6.js} +3 -3
- package/dist/assets/{dist-BwVFN4Xe.js.map → dist-D5-LrzD6.js.map} +1 -1
- package/dist/assets/dist-y6_rrqhr.js +1 -0
- package/dist/assets/{edit-ui.es-Cs9EI-Ey.js → edit-ui.es-C9MhXwkt.js} +2 -2
- package/dist/assets/{edit-ui.es-Cs9EI-Ey.js.map → edit-ui.es-C9MhXwkt.js.map} +1 -1
- package/dist/assets/edit-ui.es-DT9CMaNG.js +1 -0
- package/dist/assets/{index-DotoyByQ.css → index-C8gy3Ea0.css} +1 -1
- package/dist/assets/{index-CF-NaZ2k.js → index-DUZItsH-.js} +4 -4
- package/dist/assets/{index-CF-NaZ2k.js.map → index-DUZItsH-.js.map} +1 -1
- package/dist/assets/{server-Cl1ZnRx7.js → server-Db_WegNj.js} +2 -2
- package/dist/assets/{server-Cl1ZnRx7.js.map → server-Db_WegNj.js.map} +1 -1
- package/dist/index.html +4 -4
- package/dist/sw.js +1 -1
- package/dist/sw.js.map +1 -1
- package/package.json +8 -8
- package/dist/assets/common-ui.es-B6tKmOxI.js +0 -1
- package/dist/assets/common-ui.es-I814CYyx.js.map +0 -1
- package/dist/assets/dist-BjDnRspm.js +0 -1
- package/dist/assets/dist-CFgc27Ho.js +0 -1
- package/dist/assets/dist-DkeESCP4.js.map +0 -1
- package/dist/assets/edit-ui.es-C_I54ckd.js +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dist-
|
|
2
|
-
import{i as t,n,o as r,r as i,s as a,t as o}from"./chunk-D6hFPZc3.js";import{$ as s,A as c,At as l,B as u,Bt as d,C as f,Ct as p,D as m,Dt as h,Et as g,Ft as _,G as b,H as x,Ht as S,I as C,It as w,J as T,K as E,Lt as D,M as O,Mt as k,N as ee,Nt as te,O as ne,Ot as re,Pt as ie,Rt as ae,S as A,St as oe,T as j,Tt as se,U as ce,Vt as N,W as P,Z as le,_ as I,_t as ue,at as de,b as R,bt as fe,c as pe,dt as me,et as he,f as ge,g as z,gt as _e,ht as ve,i as ye,jt as be,kt as xe,l as Se,lt as Ce,o as we,s as Te,st as Ee,t as De,u as Oe,ut as ke,v as H,vt as Ae,w as je,wt as Me,x as Ne,xt as Pe,y as U,yt as Fe,z as Ie,zt as Le}from"./vue.runtime.esm-bundler-C3q8JS9f.js";import{E as Re,S as ze,T as Be,a as Ve,f as He,o as Ue,r as We,v as Ge}from"./dist-CrcJCHFk.js";import{D as Ke,O as qe,a as Je,b as Ye,c as Xe,f as Ze,g as Qe,i as $e,n as et,t as q}from"./MarkdownRenderer-DoVbFpA6-BIbDxYC4.js";import{D as tt,P as nt,k as rt,m as it,s as at}from"./dist-DkeESCP4.js";var ot=typeof document<`u`;function isRouteComponent(t){return typeof t==`object`||`displayName`in t||`props`in t||`__vccOpts`in t}function isESModule(t){return t.__esModule||t[Symbol.toStringTag]===`Module`||t.default&&isRouteComponent(t.default)}var st=Object.assign;function applyToParams(t,n){let r={};for(let i in n){let a=n[i];r[i]=ct(a)?a.map(t):t(a)}return r}var noop=()=>{},ct=Array.isArray,lt=/#/g,ut=/&/g,dt=/\//g,ft=/=/g,pt=/\?/g,mt=/\+/g,ht=/%5B/g,gt=/%5D/g,_t=/%5E/g,vt=/%60/g,yt=/%7B/g,bt=/%7C/g,xt=/%7D/g,St=/%20/g;function commonEncode(t){return encodeURI(``+t).replace(bt,`|`).replace(ht,`[`).replace(gt,`]`)}function encodeHash(t){return commonEncode(t).replace(yt,`{`).replace(xt,`}`).replace(_t,`^`)}function encodeQueryValue(t){return commonEncode(t).replace(mt,`%2B`).replace(St,`+`).replace(lt,`%23`).replace(ut,`%26`).replace(vt,"`").replace(yt,`{`).replace(xt,`}`).replace(_t,`^`)}function encodeQueryKey(t){return encodeQueryValue(t).replace(ft,`%3D`)}function encodePath(t){return commonEncode(t).replace(lt,`%23`).replace(pt,`%3F`)}function encodeParam(t){return t==null?``:encodePath(t).replace(dt,`%2F`)}function decode(t){try{return decodeURIComponent(``+t)}catch{}return``+t}var Ct=/\/$/,removeTrailingSlash=t=>t.replace(Ct,``);function parseURL(t,n,r=`/`){let i,a={},o=``,s=``,c=n.indexOf(`#`),l=n.indexOf(`?`);return c<l&&c>=0&&(l=-1),l>-1&&(i=n.slice(0,l),o=n.slice(l+1,c>-1?c:n.length),a=t(o)),c>-1&&(i=i||n.slice(0,c),s=n.slice(c,n.length)),i=resolveRelativePath(i??n,r),{fullPath:i+(o&&`?`)+o+s,path:i,query:a,hash:decode(s)}}function stringifyURL(t,n){let r=n.query?t(n.query):``;return n.path+(r&&`?`)+r+(n.hash||``)}function stripBase(t,n){return!n||!t.toLowerCase().startsWith(n.toLowerCase())?t:t.slice(n.length)||`/`}function isSameRouteLocation(t,n,r){let i=n.matched.length-1,a=r.matched.length-1;return i>-1&&i===a&&isSameRouteRecord(n.matched[i],r.matched[a])&&isSameRouteLocationParams(n.params,r.params)&&t(n.query)===t(r.query)&&n.hash===r.hash}function isSameRouteRecord(t,n){return(t.aliasOf||t)===(n.aliasOf||n)}function isSameRouteLocationParams(t,n){if(Object.keys(t).length!==Object.keys(n).length)return!1;for(let r in t)if(!isSameRouteLocationParamsValue(t[r],n[r]))return!1;return!0}function isSameRouteLocationParamsValue(t,n){return ct(t)?isEquivalentArray(t,n):ct(n)?isEquivalentArray(n,t):t===n}function isEquivalentArray(t,n){return ct(n)?t.length===n.length&&t.every((t,r)=>t===n[r]):t.length===1&&t[0]===n}function resolveRelativePath(t,n){if(t.startsWith(`/`))return t;if(!t)return n;let r=n.split(`/`),i=t.split(`/`),a=i[i.length-1];(a===`..`||a===`.`)&&i.push(``);let o=r.length-1,s,c;for(s=0;s<i.length;s++)if(c=i[s],c!==`.`)if(c===`..`)o>1&&o--;else break;return r.slice(0,o).join(`/`)+`/`+i.slice(s).join(`/`)}var wt={path:`/`,name:void 0,params:{},query:{},hash:``,fullPath:`/`,matched:[],meta:{},redirectedFrom:void 0},Tt;(function(t){t.pop=`pop`,t.push=`push`})(Tt||(Tt={}));var Et;(function(t){t.back=`back`,t.forward=`forward`,t.unknown=``})(Et||(Et={}));function normalizeBase(t){if(!t)if(ot){let n=document.querySelector(`base`);t=n&&n.getAttribute(`href`)||`/`,t=t.replace(/^\w+:\/\/[^\/]+/,``)}else t=`/`;return t[0]!==`/`&&t[0]!==`#`&&(t=`/`+t),removeTrailingSlash(t)}var Dt=/^[^#]+#/;function createHref(t,n){return t.replace(Dt,`#`)+n}function getElementPosition(t,n){let r=document.documentElement.getBoundingClientRect(),i=t.getBoundingClientRect();return{behavior:n.behavior,left:i.left-r.left-(n.left||0),top:i.top-r.top-(n.top||0)}}var computeScrollPosition=()=>({left:window.scrollX,top:window.scrollY});function scrollToPosition(t){let n;if(`el`in t){let r=t.el,i=typeof r==`string`&&r.startsWith(`#`),a=typeof r==`string`?i?document.getElementById(r.slice(1)):document.querySelector(r):r;if(!a)return;n=getElementPosition(a,t)}else n=t;`scrollBehavior`in document.documentElement.style?window.scrollTo(n):window.scrollTo(n.left==null?window.scrollX:n.left,n.top==null?window.scrollY:n.top)}function getScrollKey(t,n){return(history.state?history.state.position-n:-1)+t}var Ot=new Map;function saveScrollPosition(t,n){Ot.set(t,n)}function getSavedScrollPosition(t){let n=Ot.get(t);return Ot.delete(t),n}var createBaseLocation=()=>location.protocol+`//`+location.host;function createCurrentLocation(t,n){let{pathname:r,search:i,hash:a}=n,o=t.indexOf(`#`);if(o>-1){let n=a.includes(t.slice(o))?t.slice(o).length:1,r=a.slice(n);return r[0]!==`/`&&(r=`/`+r),stripBase(r,``)}return stripBase(r,t)+i+a}function useHistoryListeners(t,n,r,i){let a=[],o=[],s=null,popStateHandler=({state:o})=>{let c=createCurrentLocation(t,location),l=r.value,u=n.value,d=0;if(o){if(r.value=c,n.value=o,s&&s===l){s=null;return}d=u?o.position-u.position:0}else i(c);a.forEach(t=>{t(r.value,l,{delta:d,type:Tt.pop,direction:d?d>0?Et.forward:Et.back:Et.unknown})})};function pauseListeners(){s=r.value}function listen(t){a.push(t);let teardown=()=>{let n=a.indexOf(t);n>-1&&a.splice(n,1)};return o.push(teardown),teardown}function beforeUnloadListener(){let{history:t}=window;t.state&&t.replaceState(st({},t.state,{scroll:computeScrollPosition()}),``)}function destroy(){for(let t of o)t();o=[],window.removeEventListener(`popstate`,popStateHandler),window.removeEventListener(`beforeunload`,beforeUnloadListener)}return window.addEventListener(`popstate`,popStateHandler),window.addEventListener(`beforeunload`,beforeUnloadListener,{passive:!0}),{pauseListeners,listen,destroy}}function buildState(t,n,r,i=!1,a=!1){return{back:t,current:n,forward:r,replaced:i,position:window.history.length,scroll:a?computeScrollPosition():null}}function useHistoryStateNavigation(t){let{history:n,location:r}=window,i={value:createCurrentLocation(t,r)},a={value:n.state};a.value||changeLocation(i.value,{back:null,current:i.value,forward:null,position:n.length-1,replaced:!0,scroll:null},!0);function changeLocation(i,o,s){let c=t.indexOf(`#`),l=c>-1?(r.host&&document.querySelector(`base`)?t:t.slice(c))+i:createBaseLocation()+t+i;try{n[s?`replaceState`:`pushState`](o,``,l),a.value=o}catch(t){console.error(t),r[s?`replace`:`assign`](l)}}function replace(t,r){changeLocation(t,st({},n.state,buildState(a.value.back,t,a.value.forward,!0),r,{position:a.value.position}),!0),i.value=t}function push(t,r){let o=st({},a.value,n.state,{forward:t,scroll:computeScrollPosition()});changeLocation(o.current,o,!0),changeLocation(t,st({},buildState(i.value,t,null),{position:o.position+1},r),!1),i.value=t}return{location:i,state:a,push,replace}}function createWebHistory(t){t=normalizeBase(t);let n=useHistoryStateNavigation(t),r=useHistoryListeners(t,n.state,n.location,n.replace);function go(t,n=!0){n||r.pauseListeners(),history.go(t)}let i=st({location:``,base:t,go,createHref:createHref.bind(null,t)},n,r);return Object.defineProperty(i,`location`,{enumerable:!0,get:()=>n.location.value}),Object.defineProperty(i,`state`,{enumerable:!0,get:()=>n.state.value}),i}function isRouteLocation(t){return typeof t==`string`||t&&typeof t==`object`}function isRouteName(t){return typeof t==`string`||typeof t==`symbol`}var kt=Symbol(``),At;(function(t){t[t.aborted=4]=`aborted`,t[t.cancelled=8]=`cancelled`,t[t.duplicated=16]=`duplicated`})(At||(At={}));function createRouterError(t,n){return st(Error(),{type:t,[kt]:!0},n)}function isNavigationFailure(t,n){return t instanceof Error&&kt in t&&(n==null||!!(t.type&n))}var jt=`[^/]+?`,Mt={sensitive:!1,strict:!1,start:!0,end:!0},Nt=/[.+*?^${}()[\]/\\]/g;function tokensToParser(t,n){let r=st({},Mt,n),i=[],a=r.start?`^`:``,o=[];for(let n of t){let t=n.length?[]:[90];r.strict&&!n.length&&(a+=`/`);for(let i=0;i<n.length;i++){let s=n[i],c=40+(r.sensitive?.25:0);if(s.type===0)i||(a+=`/`),a+=s.value.replace(Nt,`\\$&`),c+=40;else if(s.type===1){let{value:t,repeatable:r,optional:l,regexp:u}=s;o.push({name:t,repeatable:r,optional:l});let d=u||jt;if(d!==jt){c+=10;try{RegExp(`(${d})`)}catch(n){throw Error(`Invalid custom RegExp for param "${t}" (${d}): `+n.message)}}let f=r?`((?:${d})(?:/(?:${d}))*)`:`(${d})`;i||(f=l&&n.length<2?`(?:/${f})`:`/`+f),l&&(f+=`?`),a+=f,c+=20,l&&(c+=-8),r&&(c+=-20),d===`.*`&&(c+=-50)}t.push(c)}i.push(t)}if(r.strict&&r.end){let t=i.length-1;i[t][i[t].length-1]+=.7000000000000001}r.strict||(a+=`/?`),r.end?a+=`$`:r.strict&&!a.endsWith(`/`)&&(a+=`(?:/|$)`);let s=new RegExp(a,r.sensitive?``:`i`);function parse(t){let n=t.match(s),r={};if(!n)return null;for(let t=1;t<n.length;t++){let i=n[t]||``,a=o[t-1];r[a.name]=i&&a.repeatable?i.split(`/`):i}return r}function stringify(n){let r=``,i=!1;for(let a of t){(!i||!r.endsWith(`/`))&&(r+=`/`),i=!1;for(let t of a)if(t.type===0)r+=t.value;else if(t.type===1){let{value:o,repeatable:s,optional:c}=t,l=o in n?n[o]:``;if(ct(l)&&!s)throw Error(`Provided param "${o}" is an array but it is not repeatable (* or + modifiers)`);let u=ct(l)?l.join(`/`):l;if(!u)if(c)a.length<2&&(r.endsWith(`/`)?r=r.slice(0,-1):i=!0);else throw Error(`Missing required param "${o}"`);r+=u}}return r||`/`}return{re:s,score:i,keys:o,parse,stringify}}function compareScoreArray(t,n){let r=0;for(;r<t.length&&r<n.length;){let i=n[r]-t[r];if(i)return i;r++}return t.length<n.length?t.length===1&&t[0]===80?-1:1:t.length>n.length?n.length===1&&n[0]===80?1:-1:0}function comparePathParserScore(t,n){let r=0,i=t.score,a=n.score;for(;r<i.length&&r<a.length;){let t=compareScoreArray(i[r],a[r]);if(t)return t;r++}if(Math.abs(a.length-i.length)===1){if(isLastScoreNegative(i))return 1;if(isLastScoreNegative(a))return-1}return a.length-i.length}function isLastScoreNegative(t){let n=t[t.length-1];return t.length>0&&n[n.length-1]<0}var Pt={type:0,value:``},Ft=/[a-zA-Z0-9_]/;function tokenizePath(t){if(!t)return[[]];if(t===`/`)return[[Pt]];if(!t.startsWith(`/`))throw Error(`Invalid path "${t}"`);function crash(t){throw Error(`ERR (${n})/"${c}": ${t}`)}let n=0,r=n,i=[],a;function finalizeSegment(){a&&i.push(a),a=[]}let o=0,s,c=``,l=``;function consumeBuffer(){c&&(n===0?a.push({type:0,value:c}):n===1||n===2||n===3?(a.length>1&&(s===`*`||s===`+`)&&crash(`A repeatable param (${c}) must be alone in its segment. eg: '/:ids+.`),a.push({type:1,value:c,regexp:l,repeatable:s===`*`||s===`+`,optional:s===`*`||s===`?`})):crash(`Invalid state to consume buffer`),c=``)}function addCharToBuffer(){c+=s}for(;o<t.length;){if(s=t[o++],s===`\\`&&n!==2){r=n,n=4;continue}switch(n){case 0:s===`/`?(c&&consumeBuffer(),finalizeSegment()):s===`:`?(consumeBuffer(),n=1):addCharToBuffer();break;case 4:addCharToBuffer(),n=r;break;case 1:s===`(`?n=2:Ft.test(s)?addCharToBuffer():(consumeBuffer(),n=0,s!==`*`&&s!==`?`&&s!==`+`&&o--);break;case 2:s===`)`?l[l.length-1]==`\\`?l=l.slice(0,-1)+s:n=3:l+=s;break;case 3:consumeBuffer(),n=0,s!==`*`&&s!==`?`&&s!==`+`&&o--,l=``;break;default:crash(`Unknown state`);break}}return n===2&&crash(`Unfinished custom RegExp for param "${c}"`),consumeBuffer(),finalizeSegment(),i}function createRouteRecordMatcher(t,n,r){let i=st(tokensToParser(tokenizePath(t.path),r),{record:t,parent:n,children:[],alias:[]});return n&&!i.record.aliasOf==!n.record.aliasOf&&n.children.push(i),i}function createRouterMatcher(t,n){let r=[],i=new Map;n=mergeOptions({strict:!1,end:!0,sensitive:!1},n);function getRecordMatcher(t){return i.get(t)}function addRoute(t,r,i){let a=!i,o=normalizeRouteRecord(t);o.aliasOf=i&&i.record;let s=mergeOptions(n,t),c=[o];if(`alias`in t){let n=typeof t.alias==`string`?[t.alias]:t.alias;for(let t of n)c.push(normalizeRouteRecord(st({},o,{components:i?i.record.components:o.components,path:t,aliasOf:i?i.record:o})))}let l,u;for(let n of c){let{path:c}=n;if(r&&c[0]!==`/`){let t=r.record.path,i=t[t.length-1]===`/`?``:`/`;n.path=r.record.path+(c&&i+c)}if(l=createRouteRecordMatcher(n,r,s),i?i.alias.push(l):(u=u||l,u!==l&&u.alias.push(l),a&&t.name&&!isAliasRecord(l)&&removeRoute(t.name)),isMatchable(l)&&insertMatcher(l),o.children){let t=o.children;for(let n=0;n<t.length;n++)addRoute(t[n],l,i&&i.children[n])}i=i||l}return u?()=>{removeRoute(u)}:noop}function removeRoute(t){if(isRouteName(t)){let n=i.get(t);n&&(i.delete(t),r.splice(r.indexOf(n),1),n.children.forEach(removeRoute),n.alias.forEach(removeRoute))}else{let n=r.indexOf(t);n>-1&&(r.splice(n,1),t.record.name&&i.delete(t.record.name),t.children.forEach(removeRoute),t.alias.forEach(removeRoute))}}function getRoutes(){return r}function insertMatcher(t){let n=findInsertionIndex(t,r);r.splice(n,0,t),t.record.name&&!isAliasRecord(t)&&i.set(t.record.name,t)}function resolve(t,n){let a,o={},s,c;if(`name`in t&&t.name){if(a=i.get(t.name),!a)throw createRouterError(1,{location:t});c=a.record.name,o=st(paramsFromLocation(n.params,a.keys.filter(t=>!t.optional).concat(a.parent?a.parent.keys.filter(t=>t.optional):[]).map(t=>t.name)),t.params&¶msFromLocation(t.params,a.keys.map(t=>t.name))),s=a.stringify(o)}else if(t.path!=null)s=t.path,a=r.find(t=>t.re.test(s)),a&&(o=a.parse(s),c=a.record.name);else{if(a=n.name?i.get(n.name):r.find(t=>t.re.test(n.path)),!a)throw createRouterError(1,{location:t,currentLocation:n});c=a.record.name,o=st({},n.params,t.params),s=a.stringify(o)}let l=[],u=a;for(;u;)l.unshift(u.record),u=u.parent;return{name:c,path:s,params:o,matched:l,meta:mergeMetaFields(l)}}t.forEach(t=>addRoute(t));function clearRoutes(){r.length=0,i.clear()}return{addRoute,resolve,removeRoute,clearRoutes,getRoutes,getRecordMatcher}}function paramsFromLocation(t,n){let r={};for(let i of n)i in t&&(r[i]=t[i]);return r}function normalizeRouteRecord(t){let n={path:t.path,redirect:t.redirect,name:t.name,meta:t.meta||{},aliasOf:t.aliasOf,beforeEnter:t.beforeEnter,props:normalizeRecordProps(t),children:t.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:`components`in t?t.components||null:t.component&&{default:t.component}};return Object.defineProperty(n,`mods`,{value:{}}),n}function normalizeRecordProps(t){let n={},r=t.props||!1;if(`component`in t)n.default=r;else for(let i in t.components)n[i]=typeof r==`object`?r[i]:r;return n}function isAliasRecord(t){for(;t;){if(t.record.aliasOf)return!0;t=t.parent}return!1}function mergeMetaFields(t){return t.reduce((t,n)=>st(t,n.meta),{})}function mergeOptions(t,n){let r={};for(let i in t)r[i]=i in n?n[i]:t[i];return r}function findInsertionIndex(t,n){let r=0,i=n.length;for(;r!==i;){let a=r+i>>1;comparePathParserScore(t,n[a])<0?i=a:r=a+1}let a=getInsertionAncestor(t);return a&&(i=n.lastIndexOf(a,i-1)),i}function getInsertionAncestor(t){let n=t;for(;n=n.parent;)if(isMatchable(n)&&comparePathParserScore(t,n)===0)return n}function isMatchable({record:t}){return!!(t.name||t.components&&Object.keys(t.components).length||t.redirect)}function parseQuery(t){let n={};if(t===``||t===`?`)return n;let r=(t[0]===`?`?t.slice(1):t).split(`&`);for(let t=0;t<r.length;++t){let i=r[t].replace(mt,` `),a=i.indexOf(`=`),o=decode(a<0?i:i.slice(0,a)),s=a<0?null:decode(i.slice(a+1));if(o in n){let t=n[o];ct(t)||(t=n[o]=[t]),t.push(s)}else n[o]=s}return n}function stringifyQuery(t){let n=``;for(let r in t){let i=t[r];if(r=encodeQueryKey(r),i==null){i!==void 0&&(n+=(n.length?`&`:``)+r);continue}(ct(i)?i.map(t=>t&&encodeQueryValue(t)):[i&&encodeQueryValue(i)]).forEach(t=>{t!==void 0&&(n+=(n.length?`&`:``)+r,t!=null&&(n+=`=`+t))})}return n}function normalizeQuery(t){let n={};for(let r in t){let i=t[r];i!==void 0&&(n[r]=ct(i)?i.map(t=>t==null?null:``+t):i==null?i:``+i)}return n}var It=Symbol(``),Lt=Symbol(``),Rt=Symbol(``),zt=Symbol(``),Bt=Symbol(``);function useCallbacks(){let t=[];function add(n){return t.push(n),()=>{let r=t.indexOf(n);r>-1&&t.splice(r,1)}}function reset(){t=[]}return{add,list:()=>t.slice(),reset}}function guardToPromiseFn(t,n,r,i,a,o=t=>t()){let s=i&&(i.enterCallbacks[a]=i.enterCallbacks[a]||[]);return()=>new Promise((c,l)=>{let next=t=>{t===!1?l(createRouterError(4,{from:r,to:n})):t instanceof Error?l(t):isRouteLocation(t)?l(createRouterError(2,{from:n,to:t})):(s&&i.enterCallbacks[a]===s&&typeof t==`function`&&s.push(t),c())},u=o(()=>t.call(i&&i.instances[a],n,r,next)),d=Promise.resolve(u);t.length<3&&(d=d.then(next)),d.catch(t=>l(t))})}function extractComponentsGuards(t,n,r,i,a=t=>t()){let o=[];for(let s of t)for(let t in s.components){let c=s.components[t];if(!(n!==`beforeRouteEnter`&&!s.instances[t]))if(isRouteComponent(c)){let l=(c.__vccOpts||c)[n];l&&o.push(guardToPromiseFn(l,r,i,s,t,a))}else{let l=c();o.push(()=>l.then(o=>{if(!o)throw Error(`Couldn't resolve component "${t}" at "${s.path}"`);let c=isESModule(o)?o.default:o;s.mods[t]=o,s.components[t]=c;let l=(c.__vccOpts||c)[n];return l&&guardToPromiseFn(l,r,i,s,t,a)()}))}}return o}function useLink(t){let n=c(Rt),r=c(zt),i=z(()=>{let r=ve(t.to);return n.resolve(r)}),a=z(()=>{let{matched:t}=i.value,{length:n}=t,a=t[n-1],o=r.matched;if(!a||!o.length)return-1;let s=o.findIndex(isSameRouteRecord.bind(null,a));if(s>-1)return s;let c=getOriginalPath(t[n-2]);return n>1&&getOriginalPath(a)===c&&o[o.length-1].path!==c?o.findIndex(isSameRouteRecord.bind(null,t[n-2])):s}),o=z(()=>a.value>-1&&includesParams(r.params,i.value.params)),s=z(()=>a.value>-1&&a.value===r.matched.length-1&&isSameRouteLocationParams(r.params,i.value.params));function navigate(r={}){if(guardEvent(r)){let r=n[ve(t.replace)?`replace`:`push`](ve(t.to)).catch(noop);return t.viewTransition&&typeof document<`u`&&`startViewTransition`in document&&document.startViewTransition(()=>r),r}return Promise.resolve()}return{route:i,href:z(()=>i.value.href),isActive:o,isExactActive:s,navigate}}function preferSingleVNode(t){return t.length===1?t[0]:t}var Vt=j({name:`RouterLink`,compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:`page`}},useLink,setup(t,{slots:n}){let r=Ee(useLink(t)),{options:i}=c(Rt),a=z(()=>({[getLinkClass(t.activeClass,i.linkActiveClass,`router-link-active`)]:r.isActive,[getLinkClass(t.exactActiveClass,i.linkExactActiveClass,`router-link-exact-active`)]:r.isExactActive}));return()=>{let i=n.default&&preferSingleVNode(n.default(r));return t.custom?i:ne(`a`,{"aria-current":r.isExactActive?t.ariaCurrentValue:null,href:r.href,onClick:r.navigate,class:a.value},i)}}});function guardEvent(t){if(!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)&&!t.defaultPrevented&&!(t.button!==void 0&&t.button!==0)){if(t.currentTarget&&t.currentTarget.getAttribute){let n=t.currentTarget.getAttribute(`target`);if(/\b_blank\b/i.test(n))return}return t.preventDefault&&t.preventDefault(),!0}}function includesParams(t,n){for(let r in n){let i=n[r],a=t[r];if(typeof i==`string`){if(i!==a)return!1}else if(!ct(a)||a.length!==i.length||i.some((t,n)=>t!==a[n]))return!1}return!0}function getOriginalPath(t){return t?t.aliasOf?t.aliasOf.path:t.path:``}var getLinkClass=(t,n,r)=>t??n??r,Ht=j({name:`RouterView`,inheritAttrs:!1,props:{name:{type:String,default:`default`},route:Object},compatConfig:{MODE:3},setup(t,{attrs:n,slots:r}){let i=c(Bt),a=z(()=>t.route||i.value),o=c(Lt,0),s=z(()=>{let t=ve(o),{matched:n}=a.value,r;for(;(r=n[t])&&!r.components;)t++;return t}),l=z(()=>a.value.matched[s.value]);ce(Lt,z(()=>s.value+1)),ce(It,l),ce(Bt,a);let u=Ce();return le(()=>[u.value,l.value,t.name],([t,n,r],[i,a,o])=>{n&&(n.instances[r]=t,a&&a!==n&&t&&t===i&&(n.leaveGuards.size||(n.leaveGuards=a.leaveGuards),n.updateGuards.size||(n.updateGuards=a.updateGuards))),t&&n&&(!a||!isSameRouteRecord(n,a)||!i)&&(n.enterCallbacks[r]||[]).forEach(n=>n(t))},{flush:`post`}),()=>{let i=a.value,o=t.name,s=l.value,c=s&&s.components[o];if(!c)return normalizeSlot(r.default,{Component:c,route:i});let d=s.props[o],f=d?d===!0?i.params:typeof d==`function`?d(i):d:null,onVnodeUnmounted=t=>{t.component.isUnmounted&&(s.instances[o]=null)},p=ne(c,st({},f,n,{onVnodeUnmounted,ref:u}));return normalizeSlot(r.default,{Component:p,route:i})||p}}});function normalizeSlot(t,n){if(!t)return null;let r=t(n);return r.length===1?r[0]:r}var Ut=Ht;function createRouter(t){let n=createRouterMatcher(t.routes,t),r=t.parseQuery||parseQuery,i=t.stringifyQuery||stringifyQuery,a=t.history,o=useCallbacks(),s=useCallbacks(),c=useCallbacks(),l=me(wt),u=wt;ot&&t.scrollBehavior&&`scrollRestoration`in history&&(history.scrollRestoration=`manual`);let d=applyToParams.bind(null,t=>``+t),f=applyToParams.bind(null,encodeParam),p=applyToParams.bind(null,decode);function addRoute(t,r){let i,a;return isRouteName(t)?(i=n.getRecordMatcher(t),a=r):a=t,n.addRoute(a,i)}function removeRoute(t){let r=n.getRecordMatcher(t);r&&n.removeRoute(r)}function getRoutes(){return n.getRoutes().map(t=>t.record)}function hasRoute(t){return!!n.getRecordMatcher(t)}function resolve(t,o){if(o=st({},o||l.value),typeof t==`string`){let i=parseURL(r,t,o.path),s=n.resolve({path:i.path},o),c=a.createHref(i.fullPath);return st(i,s,{params:p(s.params),hash:decode(i.hash),redirectedFrom:void 0,href:c})}let s;if(t.path!=null)s=st({},t,{path:parseURL(r,t.path,o.path).path});else{let n=st({},t.params);for(let t in n)n[t]??delete n[t];s=st({},t,{params:f(n)}),o.params=f(o.params)}let c=n.resolve(s,o),u=t.hash||``;c.params=d(p(c.params));let m=stringifyURL(i,st({},t,{hash:encodeHash(u),path:c.path})),h=a.createHref(m);return st({fullPath:m,hash:u,query:i===stringifyQuery?normalizeQuery(t.query):t.query||{}},c,{redirectedFrom:void 0,href:h})}function locationAsObject(t){return typeof t==`string`?parseURL(r,t,l.value.path):st({},t)}function checkCanceledNavigation(t,n){if(u!==t)return createRouterError(8,{from:n,to:t})}function push(t){return pushWithRedirect(t)}function replace(t){return push(st(locationAsObject(t),{replace:!0}))}function handleRedirectRecord(t){let n=t.matched[t.matched.length-1];if(n&&n.redirect){let{redirect:r}=n,i=typeof r==`function`?r(t):r;return typeof i==`string`&&(i=i.includes(`?`)||i.includes(`#`)?i=locationAsObject(i):{path:i},i.params={}),st({query:t.query,hash:t.hash,params:i.path==null?t.params:{}},i)}}function pushWithRedirect(t,n){let r=u=resolve(t),a=l.value,o=t.state,s=t.force,c=t.replace===!0,d=handleRedirectRecord(r);if(d)return pushWithRedirect(st(locationAsObject(d),{state:typeof d==`object`?st({},o,d.state):o,force:s,replace:c}),n||r);let f=r;f.redirectedFrom=n;let p;return!s&&isSameRouteLocation(i,a,r)&&(p=createRouterError(16,{to:f,from:a}),handleScroll(a,a,!0,!1)),(p?Promise.resolve(p):navigate(f,a)).catch(t=>isNavigationFailure(t)?isNavigationFailure(t,2)?t:markAsReady(t):triggerError(t,f,a)).then(t=>{if(t){if(isNavigationFailure(t,2))return pushWithRedirect(st({replace:c},locationAsObject(t.to),{state:typeof t.to==`object`?st({},o,t.to.state):o,force:s}),n||f)}else t=finalizeNavigation(f,a,!0,c,o);return triggerAfterEach(f,a,t),t})}function checkCanceledNavigationAndReject(t,n){let r=checkCanceledNavigation(t,n);return r?Promise.reject(r):Promise.resolve()}function runWithContext(t){let n=x.values().next().value;return n&&typeof n.runWithContext==`function`?n.runWithContext(t):t()}function navigate(t,n){let r,[i,a,c]=extractChangingRecords(t,n);r=extractComponentsGuards(i.reverse(),`beforeRouteLeave`,t,n);for(let a of i)a.leaveGuards.forEach(i=>{r.push(guardToPromiseFn(i,t,n))});let l=checkCanceledNavigationAndReject.bind(null,t,n);return r.push(l),runGuardQueue(r).then(()=>{r=[];for(let i of o.list())r.push(guardToPromiseFn(i,t,n));return r.push(l),runGuardQueue(r)}).then(()=>{r=extractComponentsGuards(a,`beforeRouteUpdate`,t,n);for(let i of a)i.updateGuards.forEach(i=>{r.push(guardToPromiseFn(i,t,n))});return r.push(l),runGuardQueue(r)}).then(()=>{r=[];for(let i of c)if(i.beforeEnter)if(ct(i.beforeEnter))for(let a of i.beforeEnter)r.push(guardToPromiseFn(a,t,n));else r.push(guardToPromiseFn(i.beforeEnter,t,n));return r.push(l),runGuardQueue(r)}).then(()=>(t.matched.forEach(t=>t.enterCallbacks={}),r=extractComponentsGuards(c,`beforeRouteEnter`,t,n,runWithContext),r.push(l),runGuardQueue(r))).then(()=>{r=[];for(let i of s.list())r.push(guardToPromiseFn(i,t,n));return r.push(l),runGuardQueue(r)}).catch(t=>isNavigationFailure(t,8)?t:Promise.reject(t))}function triggerAfterEach(t,n,r){c.list().forEach(i=>runWithContext(()=>i(t,n,r)))}function finalizeNavigation(t,n,r,i,o){let s=checkCanceledNavigation(t,n);if(s)return s;let c=n===wt,u=ot?history.state:{};r&&(i||c?a.replace(t.fullPath,st({scroll:c&&u&&u.scroll},o)):a.push(t.fullPath,o)),l.value=t,handleScroll(t,n,r,c),markAsReady()}let m;function setupListeners(){m||(m=a.listen((t,n,r)=>{if(!S.listening)return;let i=resolve(t),o=handleRedirectRecord(i);if(o){pushWithRedirect(st(o,{replace:!0,force:!0}),i).catch(noop);return}u=i;let s=l.value;ot&&saveScrollPosition(getScrollKey(s.fullPath,r.delta),computeScrollPosition()),navigate(i,s).catch(t=>isNavigationFailure(t,12)?t:isNavigationFailure(t,2)?(pushWithRedirect(st(locationAsObject(t.to),{force:!0}),i).then(t=>{isNavigationFailure(t,20)&&!r.delta&&r.type===Tt.pop&&a.go(-1,!1)}).catch(noop),Promise.reject()):(r.delta&&a.go(-r.delta,!1),triggerError(t,i,s))).then(t=>{t=t||finalizeNavigation(i,s,!1),t&&(r.delta&&!isNavigationFailure(t,8)?a.go(-r.delta,!1):r.type===Tt.pop&&isNavigationFailure(t,20)&&a.go(-1,!1)),triggerAfterEach(i,s,t)}).catch(noop)}))}let h=useCallbacks(),g=useCallbacks(),_;function triggerError(t,n,r){markAsReady(t);let i=g.list();return i.length?i.forEach(i=>i(t,n,r)):console.error(t),Promise.reject(t)}function isReady(){return _&&l.value!==wt?Promise.resolve():new Promise((t,n)=>{h.add([t,n])})}function markAsReady(t){return _||(_=!t,setupListeners(),h.list().forEach(([n,r])=>t?r(t):n()),h.reset()),t}function handleScroll(n,r,i,a){let{scrollBehavior:o}=t;if(!ot||!o)return Promise.resolve();let s=!i&&getSavedScrollPosition(getScrollKey(n.fullPath,0))||(a||!i)&&history.state&&history.state.scroll||null;return ee().then(()=>o(n,r,s)).then(t=>t&&scrollToPosition(t)).catch(t=>triggerError(t,n,r))}let go=t=>a.go(t),b,x=new Set,S={currentRoute:l,listening:!0,addRoute,removeRoute,clearRoutes:n.clearRoutes,hasRoute,getRoutes,resolve,options:t,push,replace,go,back:()=>go(-1),forward:()=>go(1),beforeEach:o.add,beforeResolve:s.add,afterEach:c.add,onError:g.add,isReady,install(t){let n=this;t.component(`RouterLink`,Vt),t.component(`RouterView`,Ut),t.config.globalProperties.$router=n,Object.defineProperty(t.config.globalProperties,`$route`,{enumerable:!0,get:()=>ve(l)}),ot&&!b&&l.value===wt&&(b=!0,push(a.location).catch(t=>{}));let r={};for(let t in wt)Object.defineProperty(r,t,{get:()=>l.value[t],enumerable:!0});t.provide(Rt,n),t.provide(zt,ke(r)),t.provide(Bt,l);let i=t.unmount;x.add(t),t.unmount=function(){x.delete(t),x.size<1&&(u=wt,m&&m(),m=null,l.value=wt,b=!1,_=!1),i()}}};function runGuardQueue(t){return t.reduce((t,n)=>t.then(()=>runWithContext(n)),Promise.resolve())}return S}function extractChangingRecords(t,n){let r=[],i=[],a=[],o=Math.max(n.matched.length,t.matched.length);for(let s=0;s<o;s++){let o=n.matched[s];o&&(t.matched.find(t=>isSameRouteRecord(t,o))?i.push(o):r.push(o));let c=t.matched[s];c&&(n.matched.find(t=>isSameRouteRecord(t,c))||a.push(c))}return[r,i,a]}function useRouter(){return c(Rt)}function useRoute(t){return c(zt)}function registerRuntimeHelpers(t){Object.getOwnPropertySymbols(t).forEach(n=>{An[n]=t[n]})}function createRoot(t,n=``){return{type:0,source:n,children:t,helpers:new Set,components:[],directives:[],hoists:[],imports:[],cached:[],temps:0,codegenNode:void 0,loc:Fn}}function createVNodeCall(t,n,r,i,a,o,s,c=!1,l=!1,u=!1,d=Fn){return t&&(c?(t.helper(Yt),t.helper(getVNodeBlockHelper(t.inSSR,u))):t.helper(getVNodeHelper(t.inSSR,u)),s&&t.helper(cn)),{type:13,tag:n,props:r,children:i,patchFlag:a,dynamicProps:o,directives:s,isBlock:c,disableTracking:l,isComponent:u,loc:d}}function createArrayExpression(t,n=Fn){return{type:17,loc:n,elements:t}}function createObjectExpression(t,n=Fn){return{type:15,loc:n,properties:t}}function createObjectProperty(t,n){return{type:16,loc:Fn,key:k(t)?createSimpleExpression(t,!0):t,value:n}}function createSimpleExpression(t,n=!1,r=Fn,i=0){return{type:4,loc:r,content:t,isStatic:n,constType:n?3:i}}function createInterpolation(t,n){return{type:5,loc:n,content:k(t)?createSimpleExpression(t,!1,n):t}}function createCompoundExpression(t,n=Fn){return{type:8,loc:n,children:t}}function createCallExpression(t,n=[],r=Fn){return{type:14,loc:r,callee:t,arguments:n}}function createFunctionExpression(t,n=void 0,r=!1,i=!1,a=Fn){return{type:18,params:t,returns:n,newline:r,isSlot:i,loc:a}}function createConditionalExpression(t,n,r,i=!0){return{type:19,test:t,consequent:n,alternate:r,newline:i,loc:Fn}}function createCacheExpression(t,n,r=!1,i=!1){return{type:20,index:t,value:n,needPauseTracking:r,inVOnce:i,needArraySpread:!1,loc:Fn}}function createBlockStatement(t){return{type:21,body:t,loc:Fn}}function createTemplateLiteral(t){return{type:22,elements:t,loc:Fn}}function createIfStatement(t,n,r){return{type:23,test:t,consequent:n,alternate:r,loc:Fn}}function createAssignmentExpression(t,n){return{type:24,left:t,right:n,loc:Fn}}function createSequenceExpression(t){return{type:25,expressions:t,loc:Fn}}function createReturnStatement(t){return{type:26,returns:t,loc:Fn}}function getVNodeHelper(t,n){return t||n?Qt:$t}function getVNodeBlockHelper(t,n){return t||n?Xt:Zt}function convertToBlock(t,{helper:n,removeHelper:r,inSSR:i}){t.isBlock||(t.isBlock=!0,r(getVNodeHelper(i,t.isComponent)),n(Yt),n(getVNodeBlockHelper(i,t.isComponent)))}function isTagStartChar(t){return t>=97&&t<=122||t>=65&&t<=90}function isWhitespace(t){return t===32||t===10||t===9||t===12||t===13}function isEndOfTagSection(t){return t===47||t===62||isWhitespace(t)}function toCharCodes(t){let n=new Uint8Array(t.length);for(let r=0;r<t.length;r++)n[r]=t.charCodeAt(r);return n}function getCompatValue(t,{compatConfig:n}){let r=n&&n[t];return t===`MODE`?r||3:r}function isCompatEnabled(t,n){let r=getCompatValue(`MODE`,n),i=getCompatValue(t,n);return r===3?i===!0:i!==!1}function checkCompatEnabled(t,n,r,...i){return isCompatEnabled(t,n)}function warnDeprecation(t,n,r,...i){if(getCompatValue(t,n)===`suppress-warning`)return;let{message:a,link:o}=Bn[t],s=`(deprecation ${t}) ${typeof a==`function`?a(...i):a}${o?`
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dist-y6_rrqhr.js","assets/dist-CrcJCHFk.js","assets/chunk-D6hFPZc3.js","assets/dist-CzLl7g6t.js","assets/MarkdownRenderer-DoVbFpA6-CQGwEJFh.js","assets/vue.runtime.esm-bundler-C3q8JS9f.js","assets/MarkdownRenderer-DoVbFpA6-BIbDxYC4.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{i as t,n,o as r,r as i,s as a,t as o}from"./chunk-D6hFPZc3.js";import{$ as s,A as c,At as l,B as u,Bt as d,C as f,Ct as p,D as m,Dt as h,Et as g,Ft as _,G as b,H as x,Ht as S,I as C,It as w,J as T,K as E,Lt as D,M as O,Mt as k,N as ee,Nt as te,O as ne,Ot as re,Pt as ie,Rt as ae,S as A,St as oe,T as j,Tt as se,U as ce,Vt as N,W as P,Z as le,_ as I,_t as ue,at as de,b as R,bt as fe,c as pe,dt as me,et as he,f as ge,g as z,gt as _e,ht as ve,i as ye,jt as be,kt as xe,l as Se,lt as Ce,o as we,s as Te,st as Ee,t as De,u as Oe,ut as ke,v as H,vt as Ae,w as je,wt as Me,x as Ne,xt as Pe,y as U,yt as Fe,z as Ie,zt as Le}from"./vue.runtime.esm-bundler-C3q8JS9f.js";import{E as Re,S as ze,T as Be,a as Ve,f as He,o as Ue,r as We,v as Ge}from"./dist-CrcJCHFk.js";import{D as Ke,O as qe,a as Je,b as Ye,c as Xe,f as Ze,g as Qe,i as $e,n as et,t as q}from"./MarkdownRenderer-DoVbFpA6-BIbDxYC4.js";import{D as tt,P as nt,k as rt,m as it,s as at}from"./dist-CzLl7g6t.js";var ot=typeof document<`u`;function isRouteComponent(t){return typeof t==`object`||`displayName`in t||`props`in t||`__vccOpts`in t}function isESModule(t){return t.__esModule||t[Symbol.toStringTag]===`Module`||t.default&&isRouteComponent(t.default)}var st=Object.assign;function applyToParams(t,n){let r={};for(let i in n){let a=n[i];r[i]=ct(a)?a.map(t):t(a)}return r}var noop=()=>{},ct=Array.isArray,lt=/#/g,ut=/&/g,dt=/\//g,ft=/=/g,pt=/\?/g,mt=/\+/g,ht=/%5B/g,gt=/%5D/g,_t=/%5E/g,vt=/%60/g,yt=/%7B/g,bt=/%7C/g,xt=/%7D/g,St=/%20/g;function commonEncode(t){return encodeURI(``+t).replace(bt,`|`).replace(ht,`[`).replace(gt,`]`)}function encodeHash(t){return commonEncode(t).replace(yt,`{`).replace(xt,`}`).replace(_t,`^`)}function encodeQueryValue(t){return commonEncode(t).replace(mt,`%2B`).replace(St,`+`).replace(lt,`%23`).replace(ut,`%26`).replace(vt,"`").replace(yt,`{`).replace(xt,`}`).replace(_t,`^`)}function encodeQueryKey(t){return encodeQueryValue(t).replace(ft,`%3D`)}function encodePath(t){return commonEncode(t).replace(lt,`%23`).replace(pt,`%3F`)}function encodeParam(t){return t==null?``:encodePath(t).replace(dt,`%2F`)}function decode(t){try{return decodeURIComponent(``+t)}catch{}return``+t}var Ct=/\/$/,removeTrailingSlash=t=>t.replace(Ct,``);function parseURL(t,n,r=`/`){let i,a={},o=``,s=``,c=n.indexOf(`#`),l=n.indexOf(`?`);return c<l&&c>=0&&(l=-1),l>-1&&(i=n.slice(0,l),o=n.slice(l+1,c>-1?c:n.length),a=t(o)),c>-1&&(i=i||n.slice(0,c),s=n.slice(c,n.length)),i=resolveRelativePath(i??n,r),{fullPath:i+(o&&`?`)+o+s,path:i,query:a,hash:decode(s)}}function stringifyURL(t,n){let r=n.query?t(n.query):``;return n.path+(r&&`?`)+r+(n.hash||``)}function stripBase(t,n){return!n||!t.toLowerCase().startsWith(n.toLowerCase())?t:t.slice(n.length)||`/`}function isSameRouteLocation(t,n,r){let i=n.matched.length-1,a=r.matched.length-1;return i>-1&&i===a&&isSameRouteRecord(n.matched[i],r.matched[a])&&isSameRouteLocationParams(n.params,r.params)&&t(n.query)===t(r.query)&&n.hash===r.hash}function isSameRouteRecord(t,n){return(t.aliasOf||t)===(n.aliasOf||n)}function isSameRouteLocationParams(t,n){if(Object.keys(t).length!==Object.keys(n).length)return!1;for(let r in t)if(!isSameRouteLocationParamsValue(t[r],n[r]))return!1;return!0}function isSameRouteLocationParamsValue(t,n){return ct(t)?isEquivalentArray(t,n):ct(n)?isEquivalentArray(n,t):t===n}function isEquivalentArray(t,n){return ct(n)?t.length===n.length&&t.every((t,r)=>t===n[r]):t.length===1&&t[0]===n}function resolveRelativePath(t,n){if(t.startsWith(`/`))return t;if(!t)return n;let r=n.split(`/`),i=t.split(`/`),a=i[i.length-1];(a===`..`||a===`.`)&&i.push(``);let o=r.length-1,s,c;for(s=0;s<i.length;s++)if(c=i[s],c!==`.`)if(c===`..`)o>1&&o--;else break;return r.slice(0,o).join(`/`)+`/`+i.slice(s).join(`/`)}var wt={path:`/`,name:void 0,params:{},query:{},hash:``,fullPath:`/`,matched:[],meta:{},redirectedFrom:void 0},Tt;(function(t){t.pop=`pop`,t.push=`push`})(Tt||(Tt={}));var Et;(function(t){t.back=`back`,t.forward=`forward`,t.unknown=``})(Et||(Et={}));function normalizeBase(t){if(!t)if(ot){let n=document.querySelector(`base`);t=n&&n.getAttribute(`href`)||`/`,t=t.replace(/^\w+:\/\/[^\/]+/,``)}else t=`/`;return t[0]!==`/`&&t[0]!==`#`&&(t=`/`+t),removeTrailingSlash(t)}var Dt=/^[^#]+#/;function createHref(t,n){return t.replace(Dt,`#`)+n}function getElementPosition(t,n){let r=document.documentElement.getBoundingClientRect(),i=t.getBoundingClientRect();return{behavior:n.behavior,left:i.left-r.left-(n.left||0),top:i.top-r.top-(n.top||0)}}var computeScrollPosition=()=>({left:window.scrollX,top:window.scrollY});function scrollToPosition(t){let n;if(`el`in t){let r=t.el,i=typeof r==`string`&&r.startsWith(`#`),a=typeof r==`string`?i?document.getElementById(r.slice(1)):document.querySelector(r):r;if(!a)return;n=getElementPosition(a,t)}else n=t;`scrollBehavior`in document.documentElement.style?window.scrollTo(n):window.scrollTo(n.left==null?window.scrollX:n.left,n.top==null?window.scrollY:n.top)}function getScrollKey(t,n){return(history.state?history.state.position-n:-1)+t}var Ot=new Map;function saveScrollPosition(t,n){Ot.set(t,n)}function getSavedScrollPosition(t){let n=Ot.get(t);return Ot.delete(t),n}var createBaseLocation=()=>location.protocol+`//`+location.host;function createCurrentLocation(t,n){let{pathname:r,search:i,hash:a}=n,o=t.indexOf(`#`);if(o>-1){let n=a.includes(t.slice(o))?t.slice(o).length:1,r=a.slice(n);return r[0]!==`/`&&(r=`/`+r),stripBase(r,``)}return stripBase(r,t)+i+a}function useHistoryListeners(t,n,r,i){let a=[],o=[],s=null,popStateHandler=({state:o})=>{let c=createCurrentLocation(t,location),l=r.value,u=n.value,d=0;if(o){if(r.value=c,n.value=o,s&&s===l){s=null;return}d=u?o.position-u.position:0}else i(c);a.forEach(t=>{t(r.value,l,{delta:d,type:Tt.pop,direction:d?d>0?Et.forward:Et.back:Et.unknown})})};function pauseListeners(){s=r.value}function listen(t){a.push(t);let teardown=()=>{let n=a.indexOf(t);n>-1&&a.splice(n,1)};return o.push(teardown),teardown}function beforeUnloadListener(){let{history:t}=window;t.state&&t.replaceState(st({},t.state,{scroll:computeScrollPosition()}),``)}function destroy(){for(let t of o)t();o=[],window.removeEventListener(`popstate`,popStateHandler),window.removeEventListener(`beforeunload`,beforeUnloadListener)}return window.addEventListener(`popstate`,popStateHandler),window.addEventListener(`beforeunload`,beforeUnloadListener,{passive:!0}),{pauseListeners,listen,destroy}}function buildState(t,n,r,i=!1,a=!1){return{back:t,current:n,forward:r,replaced:i,position:window.history.length,scroll:a?computeScrollPosition():null}}function useHistoryStateNavigation(t){let{history:n,location:r}=window,i={value:createCurrentLocation(t,r)},a={value:n.state};a.value||changeLocation(i.value,{back:null,current:i.value,forward:null,position:n.length-1,replaced:!0,scroll:null},!0);function changeLocation(i,o,s){let c=t.indexOf(`#`),l=c>-1?(r.host&&document.querySelector(`base`)?t:t.slice(c))+i:createBaseLocation()+t+i;try{n[s?`replaceState`:`pushState`](o,``,l),a.value=o}catch(t){console.error(t),r[s?`replace`:`assign`](l)}}function replace(t,r){changeLocation(t,st({},n.state,buildState(a.value.back,t,a.value.forward,!0),r,{position:a.value.position}),!0),i.value=t}function push(t,r){let o=st({},a.value,n.state,{forward:t,scroll:computeScrollPosition()});changeLocation(o.current,o,!0),changeLocation(t,st({},buildState(i.value,t,null),{position:o.position+1},r),!1),i.value=t}return{location:i,state:a,push,replace}}function createWebHistory(t){t=normalizeBase(t);let n=useHistoryStateNavigation(t),r=useHistoryListeners(t,n.state,n.location,n.replace);function go(t,n=!0){n||r.pauseListeners(),history.go(t)}let i=st({location:``,base:t,go,createHref:createHref.bind(null,t)},n,r);return Object.defineProperty(i,`location`,{enumerable:!0,get:()=>n.location.value}),Object.defineProperty(i,`state`,{enumerable:!0,get:()=>n.state.value}),i}function isRouteLocation(t){return typeof t==`string`||t&&typeof t==`object`}function isRouteName(t){return typeof t==`string`||typeof t==`symbol`}var kt=Symbol(``),At;(function(t){t[t.aborted=4]=`aborted`,t[t.cancelled=8]=`cancelled`,t[t.duplicated=16]=`duplicated`})(At||(At={}));function createRouterError(t,n){return st(Error(),{type:t,[kt]:!0},n)}function isNavigationFailure(t,n){return t instanceof Error&&kt in t&&(n==null||!!(t.type&n))}var jt=`[^/]+?`,Mt={sensitive:!1,strict:!1,start:!0,end:!0},Nt=/[.+*?^${}()[\]/\\]/g;function tokensToParser(t,n){let r=st({},Mt,n),i=[],a=r.start?`^`:``,o=[];for(let n of t){let t=n.length?[]:[90];r.strict&&!n.length&&(a+=`/`);for(let i=0;i<n.length;i++){let s=n[i],c=40+(r.sensitive?.25:0);if(s.type===0)i||(a+=`/`),a+=s.value.replace(Nt,`\\$&`),c+=40;else if(s.type===1){let{value:t,repeatable:r,optional:l,regexp:u}=s;o.push({name:t,repeatable:r,optional:l});let d=u||jt;if(d!==jt){c+=10;try{RegExp(`(${d})`)}catch(n){throw Error(`Invalid custom RegExp for param "${t}" (${d}): `+n.message)}}let f=r?`((?:${d})(?:/(?:${d}))*)`:`(${d})`;i||(f=l&&n.length<2?`(?:/${f})`:`/`+f),l&&(f+=`?`),a+=f,c+=20,l&&(c+=-8),r&&(c+=-20),d===`.*`&&(c+=-50)}t.push(c)}i.push(t)}if(r.strict&&r.end){let t=i.length-1;i[t][i[t].length-1]+=.7000000000000001}r.strict||(a+=`/?`),r.end?a+=`$`:r.strict&&!a.endsWith(`/`)&&(a+=`(?:/|$)`);let s=new RegExp(a,r.sensitive?``:`i`);function parse(t){let n=t.match(s),r={};if(!n)return null;for(let t=1;t<n.length;t++){let i=n[t]||``,a=o[t-1];r[a.name]=i&&a.repeatable?i.split(`/`):i}return r}function stringify(n){let r=``,i=!1;for(let a of t){(!i||!r.endsWith(`/`))&&(r+=`/`),i=!1;for(let t of a)if(t.type===0)r+=t.value;else if(t.type===1){let{value:o,repeatable:s,optional:c}=t,l=o in n?n[o]:``;if(ct(l)&&!s)throw Error(`Provided param "${o}" is an array but it is not repeatable (* or + modifiers)`);let u=ct(l)?l.join(`/`):l;if(!u)if(c)a.length<2&&(r.endsWith(`/`)?r=r.slice(0,-1):i=!0);else throw Error(`Missing required param "${o}"`);r+=u}}return r||`/`}return{re:s,score:i,keys:o,parse,stringify}}function compareScoreArray(t,n){let r=0;for(;r<t.length&&r<n.length;){let i=n[r]-t[r];if(i)return i;r++}return t.length<n.length?t.length===1&&t[0]===80?-1:1:t.length>n.length?n.length===1&&n[0]===80?1:-1:0}function comparePathParserScore(t,n){let r=0,i=t.score,a=n.score;for(;r<i.length&&r<a.length;){let t=compareScoreArray(i[r],a[r]);if(t)return t;r++}if(Math.abs(a.length-i.length)===1){if(isLastScoreNegative(i))return 1;if(isLastScoreNegative(a))return-1}return a.length-i.length}function isLastScoreNegative(t){let n=t[t.length-1];return t.length>0&&n[n.length-1]<0}var Pt={type:0,value:``},Ft=/[a-zA-Z0-9_]/;function tokenizePath(t){if(!t)return[[]];if(t===`/`)return[[Pt]];if(!t.startsWith(`/`))throw Error(`Invalid path "${t}"`);function crash(t){throw Error(`ERR (${n})/"${c}": ${t}`)}let n=0,r=n,i=[],a;function finalizeSegment(){a&&i.push(a),a=[]}let o=0,s,c=``,l=``;function consumeBuffer(){c&&(n===0?a.push({type:0,value:c}):n===1||n===2||n===3?(a.length>1&&(s===`*`||s===`+`)&&crash(`A repeatable param (${c}) must be alone in its segment. eg: '/:ids+.`),a.push({type:1,value:c,regexp:l,repeatable:s===`*`||s===`+`,optional:s===`*`||s===`?`})):crash(`Invalid state to consume buffer`),c=``)}function addCharToBuffer(){c+=s}for(;o<t.length;){if(s=t[o++],s===`\\`&&n!==2){r=n,n=4;continue}switch(n){case 0:s===`/`?(c&&consumeBuffer(),finalizeSegment()):s===`:`?(consumeBuffer(),n=1):addCharToBuffer();break;case 4:addCharToBuffer(),n=r;break;case 1:s===`(`?n=2:Ft.test(s)?addCharToBuffer():(consumeBuffer(),n=0,s!==`*`&&s!==`?`&&s!==`+`&&o--);break;case 2:s===`)`?l[l.length-1]==`\\`?l=l.slice(0,-1)+s:n=3:l+=s;break;case 3:consumeBuffer(),n=0,s!==`*`&&s!==`?`&&s!==`+`&&o--,l=``;break;default:crash(`Unknown state`);break}}return n===2&&crash(`Unfinished custom RegExp for param "${c}"`),consumeBuffer(),finalizeSegment(),i}function createRouteRecordMatcher(t,n,r){let i=st(tokensToParser(tokenizePath(t.path),r),{record:t,parent:n,children:[],alias:[]});return n&&!i.record.aliasOf==!n.record.aliasOf&&n.children.push(i),i}function createRouterMatcher(t,n){let r=[],i=new Map;n=mergeOptions({strict:!1,end:!0,sensitive:!1},n);function getRecordMatcher(t){return i.get(t)}function addRoute(t,r,i){let a=!i,o=normalizeRouteRecord(t);o.aliasOf=i&&i.record;let s=mergeOptions(n,t),c=[o];if(`alias`in t){let n=typeof t.alias==`string`?[t.alias]:t.alias;for(let t of n)c.push(normalizeRouteRecord(st({},o,{components:i?i.record.components:o.components,path:t,aliasOf:i?i.record:o})))}let l,u;for(let n of c){let{path:c}=n;if(r&&c[0]!==`/`){let t=r.record.path,i=t[t.length-1]===`/`?``:`/`;n.path=r.record.path+(c&&i+c)}if(l=createRouteRecordMatcher(n,r,s),i?i.alias.push(l):(u=u||l,u!==l&&u.alias.push(l),a&&t.name&&!isAliasRecord(l)&&removeRoute(t.name)),isMatchable(l)&&insertMatcher(l),o.children){let t=o.children;for(let n=0;n<t.length;n++)addRoute(t[n],l,i&&i.children[n])}i=i||l}return u?()=>{removeRoute(u)}:noop}function removeRoute(t){if(isRouteName(t)){let n=i.get(t);n&&(i.delete(t),r.splice(r.indexOf(n),1),n.children.forEach(removeRoute),n.alias.forEach(removeRoute))}else{let n=r.indexOf(t);n>-1&&(r.splice(n,1),t.record.name&&i.delete(t.record.name),t.children.forEach(removeRoute),t.alias.forEach(removeRoute))}}function getRoutes(){return r}function insertMatcher(t){let n=findInsertionIndex(t,r);r.splice(n,0,t),t.record.name&&!isAliasRecord(t)&&i.set(t.record.name,t)}function resolve(t,n){let a,o={},s,c;if(`name`in t&&t.name){if(a=i.get(t.name),!a)throw createRouterError(1,{location:t});c=a.record.name,o=st(paramsFromLocation(n.params,a.keys.filter(t=>!t.optional).concat(a.parent?a.parent.keys.filter(t=>t.optional):[]).map(t=>t.name)),t.params&¶msFromLocation(t.params,a.keys.map(t=>t.name))),s=a.stringify(o)}else if(t.path!=null)s=t.path,a=r.find(t=>t.re.test(s)),a&&(o=a.parse(s),c=a.record.name);else{if(a=n.name?i.get(n.name):r.find(t=>t.re.test(n.path)),!a)throw createRouterError(1,{location:t,currentLocation:n});c=a.record.name,o=st({},n.params,t.params),s=a.stringify(o)}let l=[],u=a;for(;u;)l.unshift(u.record),u=u.parent;return{name:c,path:s,params:o,matched:l,meta:mergeMetaFields(l)}}t.forEach(t=>addRoute(t));function clearRoutes(){r.length=0,i.clear()}return{addRoute,resolve,removeRoute,clearRoutes,getRoutes,getRecordMatcher}}function paramsFromLocation(t,n){let r={};for(let i of n)i in t&&(r[i]=t[i]);return r}function normalizeRouteRecord(t){let n={path:t.path,redirect:t.redirect,name:t.name,meta:t.meta||{},aliasOf:t.aliasOf,beforeEnter:t.beforeEnter,props:normalizeRecordProps(t),children:t.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:`components`in t?t.components||null:t.component&&{default:t.component}};return Object.defineProperty(n,`mods`,{value:{}}),n}function normalizeRecordProps(t){let n={},r=t.props||!1;if(`component`in t)n.default=r;else for(let i in t.components)n[i]=typeof r==`object`?r[i]:r;return n}function isAliasRecord(t){for(;t;){if(t.record.aliasOf)return!0;t=t.parent}return!1}function mergeMetaFields(t){return t.reduce((t,n)=>st(t,n.meta),{})}function mergeOptions(t,n){let r={};for(let i in t)r[i]=i in n?n[i]:t[i];return r}function findInsertionIndex(t,n){let r=0,i=n.length;for(;r!==i;){let a=r+i>>1;comparePathParserScore(t,n[a])<0?i=a:r=a+1}let a=getInsertionAncestor(t);return a&&(i=n.lastIndexOf(a,i-1)),i}function getInsertionAncestor(t){let n=t;for(;n=n.parent;)if(isMatchable(n)&&comparePathParserScore(t,n)===0)return n}function isMatchable({record:t}){return!!(t.name||t.components&&Object.keys(t.components).length||t.redirect)}function parseQuery(t){let n={};if(t===``||t===`?`)return n;let r=(t[0]===`?`?t.slice(1):t).split(`&`);for(let t=0;t<r.length;++t){let i=r[t].replace(mt,` `),a=i.indexOf(`=`),o=decode(a<0?i:i.slice(0,a)),s=a<0?null:decode(i.slice(a+1));if(o in n){let t=n[o];ct(t)||(t=n[o]=[t]),t.push(s)}else n[o]=s}return n}function stringifyQuery(t){let n=``;for(let r in t){let i=t[r];if(r=encodeQueryKey(r),i==null){i!==void 0&&(n+=(n.length?`&`:``)+r);continue}(ct(i)?i.map(t=>t&&encodeQueryValue(t)):[i&&encodeQueryValue(i)]).forEach(t=>{t!==void 0&&(n+=(n.length?`&`:``)+r,t!=null&&(n+=`=`+t))})}return n}function normalizeQuery(t){let n={};for(let r in t){let i=t[r];i!==void 0&&(n[r]=ct(i)?i.map(t=>t==null?null:``+t):i==null?i:``+i)}return n}var It=Symbol(``),Lt=Symbol(``),Rt=Symbol(``),zt=Symbol(``),Bt=Symbol(``);function useCallbacks(){let t=[];function add(n){return t.push(n),()=>{let r=t.indexOf(n);r>-1&&t.splice(r,1)}}function reset(){t=[]}return{add,list:()=>t.slice(),reset}}function guardToPromiseFn(t,n,r,i,a,o=t=>t()){let s=i&&(i.enterCallbacks[a]=i.enterCallbacks[a]||[]);return()=>new Promise((c,l)=>{let next=t=>{t===!1?l(createRouterError(4,{from:r,to:n})):t instanceof Error?l(t):isRouteLocation(t)?l(createRouterError(2,{from:n,to:t})):(s&&i.enterCallbacks[a]===s&&typeof t==`function`&&s.push(t),c())},u=o(()=>t.call(i&&i.instances[a],n,r,next)),d=Promise.resolve(u);t.length<3&&(d=d.then(next)),d.catch(t=>l(t))})}function extractComponentsGuards(t,n,r,i,a=t=>t()){let o=[];for(let s of t)for(let t in s.components){let c=s.components[t];if(!(n!==`beforeRouteEnter`&&!s.instances[t]))if(isRouteComponent(c)){let l=(c.__vccOpts||c)[n];l&&o.push(guardToPromiseFn(l,r,i,s,t,a))}else{let l=c();o.push(()=>l.then(o=>{if(!o)throw Error(`Couldn't resolve component "${t}" at "${s.path}"`);let c=isESModule(o)?o.default:o;s.mods[t]=o,s.components[t]=c;let l=(c.__vccOpts||c)[n];return l&&guardToPromiseFn(l,r,i,s,t,a)()}))}}return o}function useLink(t){let n=c(Rt),r=c(zt),i=z(()=>{let r=ve(t.to);return n.resolve(r)}),a=z(()=>{let{matched:t}=i.value,{length:n}=t,a=t[n-1],o=r.matched;if(!a||!o.length)return-1;let s=o.findIndex(isSameRouteRecord.bind(null,a));if(s>-1)return s;let c=getOriginalPath(t[n-2]);return n>1&&getOriginalPath(a)===c&&o[o.length-1].path!==c?o.findIndex(isSameRouteRecord.bind(null,t[n-2])):s}),o=z(()=>a.value>-1&&includesParams(r.params,i.value.params)),s=z(()=>a.value>-1&&a.value===r.matched.length-1&&isSameRouteLocationParams(r.params,i.value.params));function navigate(r={}){if(guardEvent(r)){let r=n[ve(t.replace)?`replace`:`push`](ve(t.to)).catch(noop);return t.viewTransition&&typeof document<`u`&&`startViewTransition`in document&&document.startViewTransition(()=>r),r}return Promise.resolve()}return{route:i,href:z(()=>i.value.href),isActive:o,isExactActive:s,navigate}}function preferSingleVNode(t){return t.length===1?t[0]:t}var Vt=j({name:`RouterLink`,compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:`page`}},useLink,setup(t,{slots:n}){let r=Ee(useLink(t)),{options:i}=c(Rt),a=z(()=>({[getLinkClass(t.activeClass,i.linkActiveClass,`router-link-active`)]:r.isActive,[getLinkClass(t.exactActiveClass,i.linkExactActiveClass,`router-link-exact-active`)]:r.isExactActive}));return()=>{let i=n.default&&preferSingleVNode(n.default(r));return t.custom?i:ne(`a`,{"aria-current":r.isExactActive?t.ariaCurrentValue:null,href:r.href,onClick:r.navigate,class:a.value},i)}}});function guardEvent(t){if(!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)&&!t.defaultPrevented&&!(t.button!==void 0&&t.button!==0)){if(t.currentTarget&&t.currentTarget.getAttribute){let n=t.currentTarget.getAttribute(`target`);if(/\b_blank\b/i.test(n))return}return t.preventDefault&&t.preventDefault(),!0}}function includesParams(t,n){for(let r in n){let i=n[r],a=t[r];if(typeof i==`string`){if(i!==a)return!1}else if(!ct(a)||a.length!==i.length||i.some((t,n)=>t!==a[n]))return!1}return!0}function getOriginalPath(t){return t?t.aliasOf?t.aliasOf.path:t.path:``}var getLinkClass=(t,n,r)=>t??n??r,Ht=j({name:`RouterView`,inheritAttrs:!1,props:{name:{type:String,default:`default`},route:Object},compatConfig:{MODE:3},setup(t,{attrs:n,slots:r}){let i=c(Bt),a=z(()=>t.route||i.value),o=c(Lt,0),s=z(()=>{let t=ve(o),{matched:n}=a.value,r;for(;(r=n[t])&&!r.components;)t++;return t}),l=z(()=>a.value.matched[s.value]);ce(Lt,z(()=>s.value+1)),ce(It,l),ce(Bt,a);let u=Ce();return le(()=>[u.value,l.value,t.name],([t,n,r],[i,a,o])=>{n&&(n.instances[r]=t,a&&a!==n&&t&&t===i&&(n.leaveGuards.size||(n.leaveGuards=a.leaveGuards),n.updateGuards.size||(n.updateGuards=a.updateGuards))),t&&n&&(!a||!isSameRouteRecord(n,a)||!i)&&(n.enterCallbacks[r]||[]).forEach(n=>n(t))},{flush:`post`}),()=>{let i=a.value,o=t.name,s=l.value,c=s&&s.components[o];if(!c)return normalizeSlot(r.default,{Component:c,route:i});let d=s.props[o],f=d?d===!0?i.params:typeof d==`function`?d(i):d:null,onVnodeUnmounted=t=>{t.component.isUnmounted&&(s.instances[o]=null)},p=ne(c,st({},f,n,{onVnodeUnmounted,ref:u}));return normalizeSlot(r.default,{Component:p,route:i})||p}}});function normalizeSlot(t,n){if(!t)return null;let r=t(n);return r.length===1?r[0]:r}var Ut=Ht;function createRouter(t){let n=createRouterMatcher(t.routes,t),r=t.parseQuery||parseQuery,i=t.stringifyQuery||stringifyQuery,a=t.history,o=useCallbacks(),s=useCallbacks(),c=useCallbacks(),l=me(wt),u=wt;ot&&t.scrollBehavior&&`scrollRestoration`in history&&(history.scrollRestoration=`manual`);let d=applyToParams.bind(null,t=>``+t),f=applyToParams.bind(null,encodeParam),p=applyToParams.bind(null,decode);function addRoute(t,r){let i,a;return isRouteName(t)?(i=n.getRecordMatcher(t),a=r):a=t,n.addRoute(a,i)}function removeRoute(t){let r=n.getRecordMatcher(t);r&&n.removeRoute(r)}function getRoutes(){return n.getRoutes().map(t=>t.record)}function hasRoute(t){return!!n.getRecordMatcher(t)}function resolve(t,o){if(o=st({},o||l.value),typeof t==`string`){let i=parseURL(r,t,o.path),s=n.resolve({path:i.path},o),c=a.createHref(i.fullPath);return st(i,s,{params:p(s.params),hash:decode(i.hash),redirectedFrom:void 0,href:c})}let s;if(t.path!=null)s=st({},t,{path:parseURL(r,t.path,o.path).path});else{let n=st({},t.params);for(let t in n)n[t]??delete n[t];s=st({},t,{params:f(n)}),o.params=f(o.params)}let c=n.resolve(s,o),u=t.hash||``;c.params=d(p(c.params));let m=stringifyURL(i,st({},t,{hash:encodeHash(u),path:c.path})),h=a.createHref(m);return st({fullPath:m,hash:u,query:i===stringifyQuery?normalizeQuery(t.query):t.query||{}},c,{redirectedFrom:void 0,href:h})}function locationAsObject(t){return typeof t==`string`?parseURL(r,t,l.value.path):st({},t)}function checkCanceledNavigation(t,n){if(u!==t)return createRouterError(8,{from:n,to:t})}function push(t){return pushWithRedirect(t)}function replace(t){return push(st(locationAsObject(t),{replace:!0}))}function handleRedirectRecord(t){let n=t.matched[t.matched.length-1];if(n&&n.redirect){let{redirect:r}=n,i=typeof r==`function`?r(t):r;return typeof i==`string`&&(i=i.includes(`?`)||i.includes(`#`)?i=locationAsObject(i):{path:i},i.params={}),st({query:t.query,hash:t.hash,params:i.path==null?t.params:{}},i)}}function pushWithRedirect(t,n){let r=u=resolve(t),a=l.value,o=t.state,s=t.force,c=t.replace===!0,d=handleRedirectRecord(r);if(d)return pushWithRedirect(st(locationAsObject(d),{state:typeof d==`object`?st({},o,d.state):o,force:s,replace:c}),n||r);let f=r;f.redirectedFrom=n;let p;return!s&&isSameRouteLocation(i,a,r)&&(p=createRouterError(16,{to:f,from:a}),handleScroll(a,a,!0,!1)),(p?Promise.resolve(p):navigate(f,a)).catch(t=>isNavigationFailure(t)?isNavigationFailure(t,2)?t:markAsReady(t):triggerError(t,f,a)).then(t=>{if(t){if(isNavigationFailure(t,2))return pushWithRedirect(st({replace:c},locationAsObject(t.to),{state:typeof t.to==`object`?st({},o,t.to.state):o,force:s}),n||f)}else t=finalizeNavigation(f,a,!0,c,o);return triggerAfterEach(f,a,t),t})}function checkCanceledNavigationAndReject(t,n){let r=checkCanceledNavigation(t,n);return r?Promise.reject(r):Promise.resolve()}function runWithContext(t){let n=x.values().next().value;return n&&typeof n.runWithContext==`function`?n.runWithContext(t):t()}function navigate(t,n){let r,[i,a,c]=extractChangingRecords(t,n);r=extractComponentsGuards(i.reverse(),`beforeRouteLeave`,t,n);for(let a of i)a.leaveGuards.forEach(i=>{r.push(guardToPromiseFn(i,t,n))});let l=checkCanceledNavigationAndReject.bind(null,t,n);return r.push(l),runGuardQueue(r).then(()=>{r=[];for(let i of o.list())r.push(guardToPromiseFn(i,t,n));return r.push(l),runGuardQueue(r)}).then(()=>{r=extractComponentsGuards(a,`beforeRouteUpdate`,t,n);for(let i of a)i.updateGuards.forEach(i=>{r.push(guardToPromiseFn(i,t,n))});return r.push(l),runGuardQueue(r)}).then(()=>{r=[];for(let i of c)if(i.beforeEnter)if(ct(i.beforeEnter))for(let a of i.beforeEnter)r.push(guardToPromiseFn(a,t,n));else r.push(guardToPromiseFn(i.beforeEnter,t,n));return r.push(l),runGuardQueue(r)}).then(()=>(t.matched.forEach(t=>t.enterCallbacks={}),r=extractComponentsGuards(c,`beforeRouteEnter`,t,n,runWithContext),r.push(l),runGuardQueue(r))).then(()=>{r=[];for(let i of s.list())r.push(guardToPromiseFn(i,t,n));return r.push(l),runGuardQueue(r)}).catch(t=>isNavigationFailure(t,8)?t:Promise.reject(t))}function triggerAfterEach(t,n,r){c.list().forEach(i=>runWithContext(()=>i(t,n,r)))}function finalizeNavigation(t,n,r,i,o){let s=checkCanceledNavigation(t,n);if(s)return s;let c=n===wt,u=ot?history.state:{};r&&(i||c?a.replace(t.fullPath,st({scroll:c&&u&&u.scroll},o)):a.push(t.fullPath,o)),l.value=t,handleScroll(t,n,r,c),markAsReady()}let m;function setupListeners(){m||(m=a.listen((t,n,r)=>{if(!S.listening)return;let i=resolve(t),o=handleRedirectRecord(i);if(o){pushWithRedirect(st(o,{replace:!0,force:!0}),i).catch(noop);return}u=i;let s=l.value;ot&&saveScrollPosition(getScrollKey(s.fullPath,r.delta),computeScrollPosition()),navigate(i,s).catch(t=>isNavigationFailure(t,12)?t:isNavigationFailure(t,2)?(pushWithRedirect(st(locationAsObject(t.to),{force:!0}),i).then(t=>{isNavigationFailure(t,20)&&!r.delta&&r.type===Tt.pop&&a.go(-1,!1)}).catch(noop),Promise.reject()):(r.delta&&a.go(-r.delta,!1),triggerError(t,i,s))).then(t=>{t=t||finalizeNavigation(i,s,!1),t&&(r.delta&&!isNavigationFailure(t,8)?a.go(-r.delta,!1):r.type===Tt.pop&&isNavigationFailure(t,20)&&a.go(-1,!1)),triggerAfterEach(i,s,t)}).catch(noop)}))}let h=useCallbacks(),g=useCallbacks(),_;function triggerError(t,n,r){markAsReady(t);let i=g.list();return i.length?i.forEach(i=>i(t,n,r)):console.error(t),Promise.reject(t)}function isReady(){return _&&l.value!==wt?Promise.resolve():new Promise((t,n)=>{h.add([t,n])})}function markAsReady(t){return _||(_=!t,setupListeners(),h.list().forEach(([n,r])=>t?r(t):n()),h.reset()),t}function handleScroll(n,r,i,a){let{scrollBehavior:o}=t;if(!ot||!o)return Promise.resolve();let s=!i&&getSavedScrollPosition(getScrollKey(n.fullPath,0))||(a||!i)&&history.state&&history.state.scroll||null;return ee().then(()=>o(n,r,s)).then(t=>t&&scrollToPosition(t)).catch(t=>triggerError(t,n,r))}let go=t=>a.go(t),b,x=new Set,S={currentRoute:l,listening:!0,addRoute,removeRoute,clearRoutes:n.clearRoutes,hasRoute,getRoutes,resolve,options:t,push,replace,go,back:()=>go(-1),forward:()=>go(1),beforeEach:o.add,beforeResolve:s.add,afterEach:c.add,onError:g.add,isReady,install(t){let n=this;t.component(`RouterLink`,Vt),t.component(`RouterView`,Ut),t.config.globalProperties.$router=n,Object.defineProperty(t.config.globalProperties,`$route`,{enumerable:!0,get:()=>ve(l)}),ot&&!b&&l.value===wt&&(b=!0,push(a.location).catch(t=>{}));let r={};for(let t in wt)Object.defineProperty(r,t,{get:()=>l.value[t],enumerable:!0});t.provide(Rt,n),t.provide(zt,ke(r)),t.provide(Bt,l);let i=t.unmount;x.add(t),t.unmount=function(){x.delete(t),x.size<1&&(u=wt,m&&m(),m=null,l.value=wt,b=!1,_=!1),i()}}};function runGuardQueue(t){return t.reduce((t,n)=>t.then(()=>runWithContext(n)),Promise.resolve())}return S}function extractChangingRecords(t,n){let r=[],i=[],a=[],o=Math.max(n.matched.length,t.matched.length);for(let s=0;s<o;s++){let o=n.matched[s];o&&(t.matched.find(t=>isSameRouteRecord(t,o))?i.push(o):r.push(o));let c=t.matched[s];c&&(n.matched.find(t=>isSameRouteRecord(t,c))||a.push(c))}return[r,i,a]}function useRouter(){return c(Rt)}function useRoute(t){return c(zt)}function registerRuntimeHelpers(t){Object.getOwnPropertySymbols(t).forEach(n=>{An[n]=t[n]})}function createRoot(t,n=``){return{type:0,source:n,children:t,helpers:new Set,components:[],directives:[],hoists:[],imports:[],cached:[],temps:0,codegenNode:void 0,loc:Fn}}function createVNodeCall(t,n,r,i,a,o,s,c=!1,l=!1,u=!1,d=Fn){return t&&(c?(t.helper(Yt),t.helper(getVNodeBlockHelper(t.inSSR,u))):t.helper(getVNodeHelper(t.inSSR,u)),s&&t.helper(cn)),{type:13,tag:n,props:r,children:i,patchFlag:a,dynamicProps:o,directives:s,isBlock:c,disableTracking:l,isComponent:u,loc:d}}function createArrayExpression(t,n=Fn){return{type:17,loc:n,elements:t}}function createObjectExpression(t,n=Fn){return{type:15,loc:n,properties:t}}function createObjectProperty(t,n){return{type:16,loc:Fn,key:k(t)?createSimpleExpression(t,!0):t,value:n}}function createSimpleExpression(t,n=!1,r=Fn,i=0){return{type:4,loc:r,content:t,isStatic:n,constType:n?3:i}}function createInterpolation(t,n){return{type:5,loc:n,content:k(t)?createSimpleExpression(t,!1,n):t}}function createCompoundExpression(t,n=Fn){return{type:8,loc:n,children:t}}function createCallExpression(t,n=[],r=Fn){return{type:14,loc:r,callee:t,arguments:n}}function createFunctionExpression(t,n=void 0,r=!1,i=!1,a=Fn){return{type:18,params:t,returns:n,newline:r,isSlot:i,loc:a}}function createConditionalExpression(t,n,r,i=!0){return{type:19,test:t,consequent:n,alternate:r,newline:i,loc:Fn}}function createCacheExpression(t,n,r=!1,i=!1){return{type:20,index:t,value:n,needPauseTracking:r,inVOnce:i,needArraySpread:!1,loc:Fn}}function createBlockStatement(t){return{type:21,body:t,loc:Fn}}function createTemplateLiteral(t){return{type:22,elements:t,loc:Fn}}function createIfStatement(t,n,r){return{type:23,test:t,consequent:n,alternate:r,loc:Fn}}function createAssignmentExpression(t,n){return{type:24,left:t,right:n,loc:Fn}}function createSequenceExpression(t){return{type:25,expressions:t,loc:Fn}}function createReturnStatement(t){return{type:26,returns:t,loc:Fn}}function getVNodeHelper(t,n){return t||n?Qt:$t}function getVNodeBlockHelper(t,n){return t||n?Xt:Zt}function convertToBlock(t,{helper:n,removeHelper:r,inSSR:i}){t.isBlock||(t.isBlock=!0,r(getVNodeHelper(i,t.isComponent)),n(Yt),n(getVNodeBlockHelper(i,t.isComponent)))}function isTagStartChar(t){return t>=97&&t<=122||t>=65&&t<=90}function isWhitespace(t){return t===32||t===10||t===9||t===12||t===13}function isEndOfTagSection(t){return t===47||t===62||isWhitespace(t)}function toCharCodes(t){let n=new Uint8Array(t.length);for(let r=0;r<t.length;r++)n[r]=t.charCodeAt(r);return n}function getCompatValue(t,{compatConfig:n}){let r=n&&n[t];return t===`MODE`?r||3:r}function isCompatEnabled(t,n){let r=getCompatValue(`MODE`,n),i=getCompatValue(t,n);return r===3?i===!0:i!==!1}function checkCompatEnabled(t,n,r,...i){return isCompatEnabled(t,n)}function warnDeprecation(t,n,r,...i){if(getCompatValue(t,n)===`suppress-warning`)return;let{message:a,link:o}=Bn[t],s=`(deprecation ${t}) ${typeof a==`function`?a(...i):a}${o?`
|
|
3
3
|
Details: ${o}`:``}`,c=SyntaxError(s);c.code=t,r&&(c.loc=r),n.onWarn(c)}function defaultOnError(t){throw t}function defaultOnWarn(t){}function createCompilerError(t,n,r,i){let a=`https://vuejs.org/error-reference/#compiler-${t}`,o=SyntaxError(String(a));return o.code=t,o.loc=n,o}function walkIdentifiers(t,n,r=!1,i=[],a=Object.create(null)){}function isReferencedIdentifier(t,n,r){return!1}function isInDestructureAssignment(t,n){if(t&&(t.type===`ObjectProperty`||t.type===`ArrayPattern`)){let t=n.length;for(;t--;){let r=n[t];if(r.type===`AssignmentExpression`)return!0;if(r.type!==`ObjectProperty`&&!r.type.endsWith(`Pattern`))break}}return!1}function isInNewExpression(t){let n=t.length;for(;n--;){let r=t[n];if(r.type===`NewExpression`)return!0;if(r.type!==`MemberExpression`)break}return!1}function walkFunctionParams(t,n){for(let r of t.params)for(let t of extractIdentifiers(r))n(t)}function walkBlockDeclarations(t,n){for(let r of t.body)if(r.type===`VariableDeclaration`){if(r.declare)continue;for(let t of r.declarations)for(let r of extractIdentifiers(t.id))n(r)}else if(r.type===`FunctionDeclaration`||r.type===`ClassDeclaration`){if(r.declare||!r.id)continue;n(r.id)}else isForStatement(r)&&walkForStatement(r,!0,n)}function isForStatement(t){return t.type===`ForOfStatement`||t.type===`ForInStatement`||t.type===`ForStatement`}function walkForStatement(t,n,r){let i=t.type===`ForStatement`?t.init:t.left;if(i&&i.type===`VariableDeclaration`&&(i.kind===`var`?n:!n))for(let t of i.declarations)for(let n of extractIdentifiers(t.id))r(n)}function extractIdentifiers(t,n=[]){switch(t.type){case`Identifier`:n.push(t);break;case`MemberExpression`:let r=t;for(;r.type===`MemberExpression`;)r=r.object;n.push(r);break;case`ObjectPattern`:for(let r of t.properties)r.type===`RestElement`?extractIdentifiers(r.argument,n):extractIdentifiers(r.value,n);break;case`ArrayPattern`:t.elements.forEach(t=>{t&&extractIdentifiers(t,n)});break;case`RestElement`:extractIdentifiers(t.argument,n);break;case`AssignmentPattern`:extractIdentifiers(t.left,n);break}return n}function unwrapTSNode(t){return Un.includes(t.type)?unwrapTSNode(t.expression):t}function isCoreComponent(t){switch(t){case`Teleport`:case`teleport`:return Gt;case`Suspense`:case`suspense`:return Kt;case`KeepAlive`:case`keep-alive`:return qt;case`BaseTransition`:case`base-transition`:return Jt}}function advancePositionWithClone(t,n,r=n.length){return advancePositionWithMutation({offset:t.offset,line:t.line,column:t.column},n,r)}function advancePositionWithMutation(t,n,r=n.length){let i=0,a=-1;for(let t=0;t<r;t++)n.charCodeAt(t)===10&&(i++,a=t);return t.offset+=r,t.line+=i,t.column=a===-1?t.column+r:r-a,t}function assert(t,n){if(!t)throw Error(n||`unexpected compiler condition`)}function findDir(t,n,r=!1){for(let i=0;i<t.props.length;i++){let a=t.props[i];if(a.type===7&&(r||a.exp)&&(k(n)?a.name===n:n.test(a.name)))return a}}function findProp(t,n,r=!1,i=!1){for(let a=0;a<t.props.length;a++){let o=t.props[a];if(o.type===6){if(r)continue;if(o.name===n&&(o.value||i))return o}else if(o.name===`bind`&&(o.exp||i)&&isStaticArgOf(o.arg,n))return o}}function isStaticArgOf(t,n){return!!(t&&isStaticExp(t)&&t.content===n)}function hasDynamicKeyVBind(t){return t.props.some(t=>t.type===7&&t.name===`bind`&&(!t.arg||t.arg.type!==4||!t.arg.isStatic))}function isText$1(t){return t.type===5||t.type===2}function isVSlot(t){return t.type===7&&t.name===`slot`}function isTemplateNode(t){return t.type===1&&t.tagType===3}function isSlotOutlet(t){return t.type===1&&t.tagType===2}function getUnnormalizedProps(t,n=[]){if(t&&!k(t)&&t.type===14){let r=t.callee;if(!k(r)&&$n.has(r))return getUnnormalizedProps(t.arguments[0],n.concat(t))}return[t,n]}function injectProp(t,n,r){let i,a=t.type===13?t.props:t.arguments[2],o=[],s;if(a&&!k(a)&&a.type===14){let t=getUnnormalizedProps(a);a=t[0],o=t[1],s=o[o.length-1]}if(a==null||k(a))i=createObjectExpression([n]);else if(a.type===14){let t=a.arguments[0];!k(t)&&t.type===15?hasProp(n,t)||t.properties.unshift(n):a.callee===vn?i=createCallExpression(r.helper(pn),[createObjectExpression([n]),a]):a.arguments.unshift(createObjectExpression([n])),!i&&(i=a)}else a.type===15?(hasProp(n,a)||a.properties.unshift(n),i=a):(i=createCallExpression(r.helper(pn),[createObjectExpression([n]),a]),s&&s.callee===_n&&(s=o[o.length-2]));t.type===13?s?s.arguments[0]=i:t.props=i:s?s.arguments[0]=i:t.arguments[2]=i}function hasProp(t,n){let r=!1;if(t.key.type===4){let i=t.key.content;r=n.properties.some(t=>t.key.type===4&&t.key.content===i)}return r}function toValidAssetId(t,n){return`_${n}_${t.replace(/[^\w]/g,(n,r)=>n===`-`?`_`:t.charCodeAt(r).toString())}`}function hasScopeRef(t,n){if(!t||Object.keys(n).length===0)return!1;switch(t.type){case 1:for(let r=0;r<t.props.length;r++){let i=t.props[r];if(i.type===7&&(hasScopeRef(i.arg,n)||hasScopeRef(i.exp,n)))return!0}return t.children.some(t=>hasScopeRef(t,n));case 11:return hasScopeRef(t.source,n)?!0:t.children.some(t=>hasScopeRef(t,n));case 9:return t.branches.some(t=>hasScopeRef(t,n));case 10:return hasScopeRef(t.condition,n)?!0:t.children.some(t=>hasScopeRef(t,n));case 4:return!t.isStatic&&isSimpleIdentifier(t.content)&&!!n[t.content];case 8:return t.children.some(t=>re(t)&&hasScopeRef(t,n));case 5:case 12:return hasScopeRef(t.content,n);case 2:case 3:case 20:return!1;default:return!1}}function getMemoedVNodeCall(t){return t.type===14&&t.callee===On?t.arguments[1].returns:t}function parseForExpression(t){let n=t.loc,r=t.content,i=r.match(er);if(!i)return;let[,a,o]=i,createAliasExpression=(t,r,i=!1)=>{let a=n.start.offset+r;return createExp(t,!1,getLoc(a,a+t.length),0,i?1:0)},s={source:createAliasExpression(o.trim(),r.indexOf(o,a.length)),value:void 0,key:void 0,index:void 0,finalized:!1},c=a.trim().replace(mr,``).trim(),l=a.indexOf(c),u=c.match(pr);if(u){c=c.replace(pr,``).trim();let t=u[1].trim(),n;if(t&&(n=r.indexOf(t,l+c.length),s.key=createAliasExpression(t,n,!0)),u[2]){let i=u[2].trim();i&&(s.index=createAliasExpression(i,r.indexOf(i,s.key?n+t.length:l+c.length),!0))}}return c&&(s.value=createAliasExpression(c,l,!0)),s}function getSlice(t,n){return rr.slice(t,n)}function endOpenTag(t){fr.inSFCRoot&&(ir.innerLoc=getLoc(t+1,t+1)),addNode(ir);let{tag:n,ns:r}=ir;r===0&&Y.isPreTag(n)&&cr++,Y.isVoidTag(n)?onCloseTag(ir,t):(dr.unshift(ir),(r===1||r===2)&&(fr.inXML=!0)),ir=null}function onText(t,n,r){{let n=dr[0]&&dr[0].tag;n!==`script`&&n!==`style`&&t.includes(`&`)&&(t=Y.decodeEntities(t,!1))}let i=dr[0]||nr,a=i.children[i.children.length-1];a&&a.type===2?(a.content+=t,setLocEnd(a.loc,r)):i.children.push({type:2,content:t,loc:getLoc(n,r)})}function onCloseTag(t,n,r=!1){r?setLocEnd(t.loc,backTrack(n,60)):setLocEnd(t.loc,lookAhead(n,62)+1),fr.inSFCRoot&&(t.children.length?t.innerLoc.end=Pe({},t.children[t.children.length-1].loc.end):t.innerLoc.end=Pe({},t.innerLoc.start),t.innerLoc.source=getSlice(t.innerLoc.start.offset,t.innerLoc.end.offset));let{tag:i,ns:a,children:o}=t;if(lr||(i===`slot`?t.tagType=2:isFragmentTemplate(t)?t.tagType=3:isComponent(t)&&(t.tagType=1)),fr.inRCDATA||(t.children=condenseWhitespace(o)),a===0&&Y.isIgnoreNewlineTag(i)){let t=o[0];t&&t.type===2&&(t.content=t.content.replace(/^\r?\n/,``))}a===0&&Y.isPreTag(i)&&cr--,ur===t&&(lr=fr.inVPre=!1,ur=null),fr.inXML&&(dr[0]?dr[0].ns:Y.ns)===0&&(fr.inXML=!1);{let n=t.props;if(!fr.inSFCRoot&&isCompatEnabled(`COMPILER_NATIVE_TEMPLATE`,Y)&&t.tag===`template`&&!isFragmentTemplate(t)){let n=dr[0]||nr,r=n.children.indexOf(t);n.children.splice(r,1,...t.children)}let r=n.find(t=>t.type===6&&t.name===`inline-template`);r&&checkCompatEnabled(`COMPILER_INLINE_TEMPLATE`,Y,r.loc)&&t.children.length&&(r.value={type:2,content:getSlice(t.children[0].loc.start.offset,t.children[t.children.length-1].loc.end.offset),loc:r.loc})}}function lookAhead(t,n){let r=t;for(;rr.charCodeAt(r)!==n&&r<rr.length-1;)r++;return r}function backTrack(t,n){let r=t;for(;rr.charCodeAt(r)!==n&&r>=0;)r--;return r}function isFragmentTemplate({tag:t,props:n}){if(t===`template`){for(let t=0;t<n.length;t++)if(n[t].type===7&&hr.has(n[t].name))return!0}return!1}function isComponent({tag:t,props:n}){if(Y.isCustomElement(t))return!1;if(t===`component`||isUpperCase(t.charCodeAt(0))||isCoreComponent(t)||Y.isBuiltInComponent&&Y.isBuiltInComponent(t)||Y.isNativeTag&&!Y.isNativeTag(t))return!0;for(let t=0;t<n.length;t++){let r=n[t];if(r.type===6){if(r.name===`is`&&r.value&&(r.value.content.startsWith(`vue:`)||checkCompatEnabled(`COMPILER_IS_ON_ELEMENT`,Y,r.loc)))return!0}else if(r.name===`bind`&&isStaticArgOf(r.arg,`is`)&&checkCompatEnabled(`COMPILER_IS_ON_ELEMENT`,Y,r.loc))return!0}return!1}function isUpperCase(t){return t>64&&t<91}function condenseWhitespace(t,n){let r=Y.whitespace!==`preserve`,i=!1;for(let n=0;n<t.length;n++){let a=t[n];if(a.type===2)if(cr)a.content=a.content.replace(gr,`
|
|
4
4
|
`);else if(isAllWhitespace(a.content)){let o=t[n-1]&&t[n-1].type,s=t[n+1]&&t[n+1].type;!o||!s||r&&(o===3&&(s===3||s===1)||o===1&&(s===3||s===1&&hasNewlineChar(a.content)))?(i=!0,t[n]=null):a.content=` `}else r&&(a.content=condense(a.content))}return i?t.filter(Boolean):t}function isAllWhitespace(t){for(let n=0;n<t.length;n++)if(!isWhitespace(t.charCodeAt(n)))return!1;return!0}function hasNewlineChar(t){for(let n=0;n<t.length;n++){let r=t.charCodeAt(n);if(r===10||r===13)return!0}return!1}function condense(t){let n=``,r=!1;for(let i=0;i<t.length;i++)isWhitespace(t.charCodeAt(i))?r||(n+=` `,r=!0):(n+=t[i],r=!1);return n}function addNode(t){(dr[0]||nr).children.push(t)}function getLoc(t,n){return{start:fr.getPos(t),end:n==null?n:fr.getPos(n),source:n==null?n:getSlice(t,n)}}function cloneLoc(t){return getLoc(t.start.offset,t.end.offset)}function setLocEnd(t,n){t.end=fr.getPos(n),t.source=getSlice(t.start.offset,n)}function dirToAttr(t){let n={type:6,name:t.rawName,nameLoc:getLoc(t.loc.start.offset,t.loc.start.offset+t.rawName.length),value:void 0,loc:t.loc};if(t.exp){let r=t.exp.loc;r.end.offset<t.loc.end.offset&&(r.start.offset--,r.start.column--,r.end.offset++,r.end.column++),n.value={type:2,content:t.exp.content,loc:r}}return n}function createExp(t,n=!1,r,i=0,a=0){return createSimpleExpression(t,n,r,i)}function emitError(t,n,r){Y.onError(createCompilerError(t,getLoc(n,n),void 0,r))}function reset(){fr.reset(),ir=null,X=null,ar=``,or=-1,sr=-1,dr.length=0}function baseParse(t,n){if(reset(),rr=t,Y=Pe({},tr),n){let t;for(t in n)n[t]!=null&&(Y[t]=n[t])}fr.mode=Y.parseMode===`html`?1:Y.parseMode===`sfc`?2:0,fr.inXML=Y.ns===1||Y.ns===2;let r=n&&n.delimiters;r&&(fr.delimiterOpen=toCharCodes(r[0]),fr.delimiterClose=toCharCodes(r[1]));let i=nr=createRoot([],t);return fr.parse(rr),i.loc=getLoc(0,t.length),i.children=condenseWhitespace(i.children),nr=null,i}function cacheStatic(t,n){walk(t,void 0,n,isSingleElementRoot(t,t.children[0]))}function isSingleElementRoot(t,n){let{children:r}=t;return r.length===1&&n.type===1&&!isSlotOutlet(n)}function walk(t,n,r,i=!1,a=!1){let{children:o}=t,s=[];for(let n=0;n<o.length;n++){let c=o[n];if(c.type===1&&c.tagType===0){let t=i?0:getConstantType(c,r);if(t>0){if(t>=2){c.codegenNode.patchFlag=-1,s.push(c);continue}}else{let t=c.codegenNode;if(t.type===13){let n=t.patchFlag;if((n===void 0||n===512||n===1)&&getGeneratedPropsConstantType(c,r)>=2){let n=getNodeProps(c);n&&(t.props=r.hoist(n))}t.dynamicProps&&(t.dynamicProps=r.hoist(t.dynamicProps))}}}else if(c.type===12&&(i?0:getConstantType(c,r))>=2){s.push(c);continue}if(c.type===1){let n=c.tagType===1;n&&r.scopes.vSlot++,walk(c,t,r,!1,a),n&&r.scopes.vSlot--}else if(c.type===11)walk(c,t,r,c.children.length===1,!0);else if(c.type===9)for(let n=0;n<c.branches.length;n++)walk(c.branches[n],t,r,c.branches[n].children.length===1,a)}let c=!1;if(s.length===o.length&&t.type===1){if(t.tagType===0&&t.codegenNode&&t.codegenNode.type===13&&Me(t.codegenNode.children))t.codegenNode.children=getCacheExpression(createArrayExpression(t.codegenNode.children)),c=!0;else if(t.tagType===1&&t.codegenNode&&t.codegenNode.type===13&&t.codegenNode.children&&!Me(t.codegenNode.children)&&t.codegenNode.children.type===15){let n=getSlotNode(t.codegenNode,`default`);n&&(n.returns=getCacheExpression(createArrayExpression(n.returns)),c=!0)}else if(t.tagType===3&&n&&n.type===1&&n.tagType===1&&n.codegenNode&&n.codegenNode.type===13&&n.codegenNode.children&&!Me(n.codegenNode.children)&&n.codegenNode.children.type===15){let r=findDir(t,`slot`,!0),i=r&&r.arg&&getSlotNode(n.codegenNode,r.arg);i&&(i.returns=getCacheExpression(createArrayExpression(i.returns)),c=!0)}}if(!c)for(let t of s)t.codegenNode=r.cache(t.codegenNode);function getCacheExpression(t){let n=r.cache(t);return a&&r.hmr&&(n.needArraySpread=!0),n}function getSlotNode(t,n){if(t.children&&!Me(t.children)&&t.children.type===15){let r=t.children.properties.find(t=>t.key===n||t.key.content===n);return r&&r.value}}s.length&&r.transformHoist&&r.transformHoist(o,r,t)}function getConstantType(t,n){let{constantCache:r}=n;switch(t.type){case 1:if(t.tagType!==0)return 0;let i=r.get(t);if(i!==void 0)return i;let a=t.codegenNode;if(a.type!==13||a.isBlock&&t.tag!==`svg`&&t.tag!==`foreignObject`&&t.tag!==`math`)return 0;if(a.patchFlag===void 0){let i=3,o=getGeneratedPropsConstantType(t,n);if(o===0)return r.set(t,0),0;o<i&&(i=o);for(let a=0;a<t.children.length;a++){let o=getConstantType(t.children[a],n);if(o===0)return r.set(t,0),0;o<i&&(i=o)}if(i>1)for(let a=0;a<t.props.length;a++){let o=t.props[a];if(o.type===7&&o.name===`bind`&&o.exp){let a=getConstantType(o.exp,n);if(a===0)return r.set(t,0),0;a<i&&(i=a)}}if(a.isBlock){for(let n=0;n<t.props.length;n++)if(t.props[n].type===7)return r.set(t,0),0;n.removeHelper(Yt),n.removeHelper(getVNodeBlockHelper(n.inSSR,a.isComponent)),a.isBlock=!1,n.helper(getVNodeHelper(n.inSSR,a.isComponent))}return r.set(t,i),i}else return r.set(t,0),0;case 2:case 3:return 3;case 9:case 11:case 10:return 0;case 5:case 12:return getConstantType(t.content,n);case 4:return t.constType;case 8:let o=3;for(let r=0;r<t.children.length;r++){let i=t.children[r];if(k(i)||te(i))continue;let a=getConstantType(i,n);if(a===0)return 0;a<o&&(o=a)}return o;case 20:return 2;default:return 0}}function getConstantTypeOfHelperCall(t,n){if(t.type===14&&!k(t.callee)&&_r.has(t.callee)){let r=t.arguments[0];if(r.type===4)return getConstantType(r,n);if(r.type===14)return getConstantTypeOfHelperCall(r,n)}return 0}function getGeneratedPropsConstantType(t,n){let r=3,i=getNodeProps(t);if(i&&i.type===15){let{properties:t}=i;for(let i=0;i<t.length;i++){let{key:a,value:o}=t[i],s=getConstantType(a,n);if(s===0)return s;s<r&&(r=s);let c;if(c=o.type===4?getConstantType(o,n):o.type===14?getConstantTypeOfHelperCall(o,n):0,c===0)return c;c<r&&(r=c)}}return r}function getNodeProps(t){let n=t.codegenNode;if(n.type===13)return n.props}function createTransformContext(t,{filename:n=``,prefixIdentifiers:r=!1,hoistStatic:i=!1,hmr:a=!1,cacheHandlers:o=!1,nodeTransforms:s=[],directiveTransforms:c={},transformHoist:l=null,isBuiltInComponent:u=Ae,isCustomElement:d=Ae,expressionPlugins:f=[],scopeId:p=null,slotted:m=!0,ssr:h=!1,inSSR:g=!1,ssrCssVars:_=``,bindingMetadata:b=_e,inline:x=!1,isTS:S=!1,onError:C=defaultOnError,onWarn:w=defaultOnWarn,compatConfig:T}){let E=n.replace(/\?.*$/,``).match(/([^/\\]+)\.\w+$/),D={filename:n,selfName:E&&fe(Fe(E[1])),prefixIdentifiers:r,hoistStatic:i,hmr:a,cacheHandlers:o,nodeTransforms:s,directiveTransforms:c,transformHoist:l,isBuiltInComponent:u,isCustomElement:d,expressionPlugins:f,scopeId:p,slotted:m,ssr:h,inSSR:g,ssrCssVars:_,bindingMetadata:b,inline:x,isTS:S,onError:C,onWarn:w,compatConfig:T,root:t,helpers:new Map,components:new Set,directives:new Set,hoists:[],imports:[],cached:[],constantCache:new WeakMap,temps:0,identifiers:Object.create(null),scopes:{vFor:0,vSlot:0,vPre:0,vOnce:0},parent:null,grandParent:null,currentNode:t,childIndex:0,inVOnce:!1,helper(t){let n=D.helpers.get(t)||0;return D.helpers.set(t,n+1),t},removeHelper(t){let n=D.helpers.get(t);if(n){let r=n-1;r?D.helpers.set(t,r):D.helpers.delete(t)}},helperString(t){return`_${An[D.helper(t)]}`},replaceNode(t){D.parent.children[D.childIndex]=D.currentNode=t},removeNode(t){let n=D.parent.children,r=t?n.indexOf(t):D.currentNode?D.childIndex:-1;!t||t===D.currentNode?(D.currentNode=null,D.onNodeRemoved()):D.childIndex>r&&(D.childIndex--,D.onNodeRemoved()),D.parent.children.splice(r,1)},onNodeRemoved:Ae,addIdentifiers(t){},removeIdentifiers(t){},hoist(t){k(t)&&(t=createSimpleExpression(t)),D.hoists.push(t);let n=createSimpleExpression(`_hoisted_${D.hoists.length}`,!1,t.loc,2);return n.hoisted=t,n},cache(t,n=!1,r=!1){let i=createCacheExpression(D.cached.length,t,n,r);return D.cached.push(i),i}};return D.filters=new Set,D}function transform(t,n){let r=createTransformContext(t,n);traverseNode(t,r),n.hoistStatic&&cacheStatic(t,r),n.ssr||createRootCodegen(t,r),t.helpers=new Set([...r.helpers.keys()]),t.components=[...r.components],t.directives=[...r.directives],t.imports=r.imports,t.hoists=r.hoists,t.temps=r.temps,t.cached=r.cached,t.transformed=!0,t.filters=[...r.filters]}function createRootCodegen(t,n){let{helper:r}=n,{children:i}=t;if(i.length===1){let r=i[0];if(isSingleElementRoot(t,r)&&r.codegenNode){let i=r.codegenNode;i.type===13&&convertToBlock(i,n),t.codegenNode=i}else t.codegenNode=r}else i.length>1&&(t.codegenNode=createVNodeCall(n,r(Wt),void 0,t.children,64,void 0,void 0,!0,void 0,!1))}function traverseChildren(t,n){let r=0,nodeRemoved=()=>{r--};for(;r<t.children.length;r++){let i=t.children[r];k(i)||(n.grandParent=n.parent,n.parent=t,n.childIndex=r,n.onNodeRemoved=nodeRemoved,traverseNode(i,n))}}function traverseNode(t,n){n.currentNode=t;let{nodeTransforms:r}=n,i=[];for(let a=0;a<r.length;a++){let o=r[a](t,n);if(o&&(Me(o)?i.push(...o):i.push(o)),n.currentNode)t=n.currentNode;else return}switch(t.type){case 3:n.ssr||n.helper(en);break;case 5:n.ssr||n.helper(fn);break;case 9:for(let r=0;r<t.branches.length;r++)traverseNode(t.branches[r],n);break;case 10:case 11:case 1:case 0:traverseChildren(t,n);break}n.currentNode=t;let a=i.length;for(;a--;)i[a]()}function createStructuralDirectiveTransform(t,n){let r=k(t)?n=>n===t:n=>t.test(n);return(t,i)=>{if(t.type===1){let{props:a}=t;if(t.tagType===3&&a.some(isVSlot))return;let o=[];for(let s=0;s<a.length;s++){let c=a[s];if(c.type===7&&r(c.name)){a.splice(s,1),s--;let r=n(t,c,i);r&&o.push(r)}}return o}}}function createCodegenContext(t,{mode:n=`function`,prefixIdentifiers:r=n===`module`,sourceMap:i=!1,filename:a=`template.vue.html`,scopeId:o=null,optimizeImports:s=!1,runtimeGlobalName:c=`Vue`,runtimeModuleName:l=`vue`,ssrRuntimeModuleName:u=`vue/server-renderer`,ssr:d=!1,isTS:f=!1,inSSR:p=!1}){let m={mode:n,prefixIdentifiers:r,sourceMap:i,filename:a,scopeId:o,optimizeImports:s,runtimeGlobalName:c,runtimeModuleName:l,ssrRuntimeModuleName:u,ssr:d,isTS:f,inSSR:p,source:t.source,code:``,column:1,line:1,offset:0,indentLevel:0,pure:!1,map:void 0,helper(t){return`_${An[t]}`},push(t,n=-2,r){m.code+=t},indent(){newline(++m.indentLevel)},deindent(t=!1){t?--m.indentLevel:newline(--m.indentLevel)},newline(){newline(m.indentLevel)}};function newline(t){m.push(`
|
|
5
5
|
`+` `.repeat(t),0)}return m}function generate(t,n={}){let r=createCodegenContext(t,n);n.onContextCreated&&n.onContextCreated(r);let{mode:i,push:a,prefixIdentifiers:o,indent:s,deindent:c,newline:l,scopeId:u,ssr:d}=r,f=Array.from(t.helpers),p=f.length>0,m=!o&&i!==`module`;if(genFunctionPreamble(t,r),a(`function ${d?`ssrRender`:`render`}(${(d?[`_ctx`,`_push`,`_parent`,`_attrs`]:[`_ctx`,`_cache`]).join(`, `)}) {`),s(),m&&(a(`with (_ctx) {`),s(),p&&(a(`const { ${f.map(aliasHelper).join(`, `)} } = _Vue
|
|
@@ -11,18 +11,18 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
|
|
|
11
11
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function userAgent(t){if(typeof window<`u`&&window.navigator)return!!navigator.userAgent.match(t)}function on$1(t,n,r){t.addEventListener(n,r,!ni&&ci)}function off(t,n,r){t.removeEventListener(n,r,!ni&&ci)}function matches(t,n){if(n){if(n[0]===`>`&&(n=n.substring(1)),t)try{if(t.matches)return t.matches(n);if(t.msMatchesSelector)return t.msMatchesSelector(n);if(t.webkitMatchesSelector)return t.webkitMatchesSelector(n)}catch{return!1}return!1}}function getParentOrHost(t){return t.host&&t!==document&&t.host.nodeType?t.host:t.parentNode}function closest(t,n,r,i){if(t){r=r||document;do{if(n!=null&&(n[0]===`>`?t.parentNode===r&&matches(t,n):matches(t,n))||i&&t===r)return t;if(t===r)break}while(t=getParentOrHost(t))}return null}function toggleClass(t,n,r){t&&n&&(t.classList?t.classList[r?`add`:`remove`](n):t.className=((` `+t.className+` `).replace(li,` `).replace(` `+n+` `,` `)+(r?` `+n:``)).replace(li,` `))}function css(t,n,r){var i=t&&t.style;if(i){if(r===void 0)return document.defaultView&&document.defaultView.getComputedStyle?r=document.defaultView.getComputedStyle(t,``):t.currentStyle&&(r=t.currentStyle),n===void 0?r:r[n];!(n in i)&&n.indexOf(`webkit`)===-1&&(n=`-webkit-`+n),i[n]=r+(typeof r==`string`?``:`px`)}}function matrix(t,n){var r=``;if(typeof t==`string`)r=t;else do{var i=css(t,`transform`);i&&i!==`none`&&(r=i+` `+r)}while(!n&&(t=t.parentNode));var a=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return a&&new a(r)}function find(t,n,r){if(t){var i=t.getElementsByTagName(n),a=0,o=i.length;if(r)for(;a<o;a++)r(i[a],a);return i}return[]}function getWindowScrollingElement(){return document.scrollingElement||document.documentElement}function getRect(t,n,r,i,a){if(!(!t.getBoundingClientRect&&t!==window)){var o,s,c,l,u,d,f;if(t!==window&&t.parentNode&&t!==getWindowScrollingElement()?(o=t.getBoundingClientRect(),s=o.top,c=o.left,l=o.bottom,u=o.right,d=o.height,f=o.width):(s=0,c=0,l=window.innerHeight,u=window.innerWidth,d=window.innerHeight,f=window.innerWidth),(n||r)&&t!==window&&(a=a||t.parentNode,!ni))do if(a&&a.getBoundingClientRect&&(css(a,`transform`)!==`none`||r&&css(a,`position`)!==`static`)){var p=a.getBoundingClientRect();s-=p.top+parseInt(css(a,`border-top-width`)),c-=p.left+parseInt(css(a,`border-left-width`)),l=s+o.height,u=c+o.width;break}while(a=a.parentNode);if(i&&t!==window){var m=matrix(a||t),h=m&&m.a,g=m&&m.d;m&&(s/=g,c/=h,f/=h,d/=g,l=s+d,u=c+f)}return{top:s,left:c,bottom:l,right:u,width:f,height:d}}}function isScrolledPast(t,n,r){for(var i=getParentAutoScrollElement(t,!0),a=getRect(t)[n];i;){var o=getRect(i)[r],s=void 0;if(s=r===`top`||r===`left`?a>=o:a<=o,!s)return i;if(i===getWindowScrollingElement())break;i=getParentAutoScrollElement(i,!1)}return!1}function getChild(t,n,r,i){for(var a=0,o=0,s=t.children;o<s.length;){if(s[o].style.display!==`none`&&s[o]!==Sortable.ghost&&(i||s[o]!==Sortable.dragged)&&closest(s[o],r.draggable,t,!1)){if(a===n)return s[o];a++}o++}return null}function lastChild(t,n){for(var r=t.lastElementChild;r&&(r===Sortable.ghost||css(r,`display`)===`none`||n&&!matches(r,n));)r=r.previousElementSibling;return r||null}function index(t,n){var r=0;if(!t||!t.parentNode)return-1;for(;t=t.previousElementSibling;)t.nodeName.toUpperCase()!==`TEMPLATE`&&t!==Sortable.clone&&(!n||matches(t,n))&&r++;return r}function getRelativeScrollOffset(t){var n=0,r=0,i=getWindowScrollingElement();if(t)do{var a=matrix(t),o=a.a,s=a.d;n+=t.scrollLeft*o,r+=t.scrollTop*s}while(t!==i&&(t=t.parentNode));return[n,r]}function indexOfObject(t,n){for(var r in t)if(t.hasOwnProperty(r)){for(var i in n)if(n.hasOwnProperty(i)&&n[i]===t[r][i])return Number(r)}return-1}function getParentAutoScrollElement(t,n){if(!t||!t.getBoundingClientRect)return getWindowScrollingElement();var r=t,i=!1;do if(r.clientWidth<r.scrollWidth||r.clientHeight<r.scrollHeight){var a=css(r);if(r.clientWidth<r.scrollWidth&&(a.overflowX==`auto`||a.overflowX==`scroll`)||r.clientHeight<r.scrollHeight&&(a.overflowY==`auto`||a.overflowY==`scroll`)){if(!r.getBoundingClientRect||r===document.body)return getWindowScrollingElement();if(i||n)return r;i=!0}}while(r=r.parentNode);return getWindowScrollingElement()}function extend(t,n){if(t&&n)for(var r in n)n.hasOwnProperty(r)&&(t[r]=n[r]);return t}function isRectEqual(t,n){return Math.round(t.top)===Math.round(n.top)&&Math.round(t.left)===Math.round(n.left)&&Math.round(t.height)===Math.round(n.height)&&Math.round(t.width)===Math.round(n.width)}function throttle(t,n){return function(){if(!ui){var r=arguments,i=this;r.length===1?t.call(i,r[0]):t.apply(i,r),ui=setTimeout(function(){ui=void 0},n)}}}function cancelThrottle(){clearTimeout(ui),ui=void 0}function scrollBy(t,n,r){t.scrollLeft+=n,t.scrollTop+=r}function clone(t){var n=window.Polymer,r=window.jQuery||window.Zepto;return n&&n.dom?n.dom(t).cloneNode(!0):r?r(t).clone(!0)[0]:t.cloneNode(!0)}function setRect(t,n){css(t,`position`,`absolute`),css(t,`top`,n.top),css(t,`left`,n.left),css(t,`width`,n.width),css(t,`height`,n.height)}function unsetRect(t){css(t,`position`,``),css(t,`top`,``),css(t,`left`,``),css(t,`width`,``),css(t,`height`,``)}function AnimationStateManager(){var t=[],n;return{captureAnimationState:function captureAnimationState(){t=[],this.options.animation&&[].slice.call(this.el.children).forEach(function(n){if(!(css(n,`display`)===`none`||n===Sortable.ghost)){t.push({target:n,rect:getRect(n)});var r=_objectSpread2({},t[t.length-1].rect);if(n.thisAnimationDuration){var i=matrix(n,!0);i&&(r.top-=i.f,r.left-=i.e)}n.fromRect=r}})},addAnimationState:function addAnimationState(n){t.push(n)},removeAnimationState:function removeAnimationState(n){t.splice(indexOfObject(t,{target:n}),1)},animateAll:function animateAll(r){var i=this;if(!this.options.animation){clearTimeout(n),typeof r==`function`&&r();return}var a=!1,o=0;t.forEach(function(t){var n=0,r=t.target,s=r.fromRect,c=getRect(r),l=r.prevFromRect,u=r.prevToRect,d=t.rect,f=matrix(r,!0);f&&(c.top-=f.f,c.left-=f.e),r.toRect=c,r.thisAnimationDuration&&isRectEqual(l,c)&&!isRectEqual(s,c)&&(d.top-c.top)/(d.left-c.left)===(s.top-c.top)/(s.left-c.left)&&(n=calculateRealTime(d,l,u,i.options)),isRectEqual(c,s)||(r.prevFromRect=s,r.prevToRect=c,n||(n=i.options.animation),i.animate(r,d,c,n)),n&&(a=!0,o=Math.max(o,n),clearTimeout(r.animationResetTimer),r.animationResetTimer=setTimeout(function(){r.animationTime=0,r.prevFromRect=null,r.fromRect=null,r.prevToRect=null,r.thisAnimationDuration=null},n),r.thisAnimationDuration=n)}),clearTimeout(n),a?n=setTimeout(function(){typeof r==`function`&&r()},o):typeof r==`function`&&r(),t=[]},animate:function animate(t,n,r,i){if(i){css(t,`transition`,``),css(t,`transform`,``);var a=matrix(this.el),o=a&&a.a,s=a&&a.d,c=(n.left-r.left)/(o||1),l=(n.top-r.top)/(s||1);t.animatingX=!!c,t.animatingY=!!l,css(t,`transform`,`translate3d(`+c+`px,`+l+`px,0)`),this.forRepaintDummy=repaint(t),css(t,`transition`,`transform `+i+`ms`+(this.options.easing?` `+this.options.easing:``)),css(t,`transform`,`translate3d(0,0,0)`),typeof t.animated==`number`&&clearTimeout(t.animated),t.animated=setTimeout(function(){css(t,`transition`,``),css(t,`transform`,``),t.animated=!1,t.animatingX=!1,t.animatingY=!1},i)}}}}function repaint(t){return t.offsetWidth}function calculateRealTime(t,n,r,i){return Math.sqrt((n.top-t.top)**2+(n.left-t.left)**2)/Math.sqrt((n.top-r.top)**2+(n.left-r.left)**2)*i.animation}function dispatchEvent(t){var n=t.sortable,r=t.rootEl,i=t.name,a=t.targetEl,o=t.cloneEl,s=t.toEl,c=t.fromEl,l=t.oldIndex,u=t.newIndex,d=t.oldDraggableIndex,f=t.newDraggableIndex,p=t.originalEvent,m=t.putSortable,h=t.extraEventProperties;if(n=n||r&&r[di],n){var g,_=n.options,b=`on`+i.charAt(0).toUpperCase()+i.substr(1);window.CustomEvent&&!ni&&!ri?g=new CustomEvent(i,{bubbles:!0,cancelable:!0}):(g=document.createEvent(`Event`),g.initEvent(i,!0,!0)),g.to=s||r,g.from=c||r,g.item=a||r,g.clone=o,g.oldIndex=l,g.newIndex=u,g.oldDraggableIndex=d,g.newDraggableIndex=f,g.originalEvent=p,g.pullMode=m?m.lastPutMode:void 0;var x=_objectSpread2(_objectSpread2({},h),mi.getEventProperties(i,n));for(var S in x)g[S]=x[S];r&&r.dispatchEvent(g),_[b]&&_[b].call(n,g)}}function _dispatchEvent(t){dispatchEvent(_objectSpread2({putSortable:Oi,cloneEl:xi,targetEl:Z,rootEl:vi,oldIndex:Ci,oldDraggableIndex:Ti,newIndex:wi,newDraggableIndex:Ei},t))}function Sortable(t,n){if(!(t&&t.nodeType&&t.nodeType===1))throw`Sortable: \`el\` must be an HTMLElement, not ${{}.toString.call(t)}`;this.el=t,this.options=n=_extends({},n),t[di]=this;var r={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(t.nodeName)?`>li`:`>*`,swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function direction(){return $i(t,this.options)},ghostClass:`sortable-ghost`,chosenClass:`sortable-chosen`,dragClass:`sortable-drag`,ignore:`a, img`,filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function setData(t,n){t.setData(`Text`,n.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:`data-id`,delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:`sortable-fallback`,fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:Sortable.supportPointer!==!1&&`PointerEvent`in window&&!ai,emptyInsertThreshold:5};for(var i in mi.initializePlugins(this,t,r),r)!(i in n)&&(n[i]=r[i]);for(var a in na(n),this)a.charAt(0)===`_`&&typeof this[a]==`function`&&(this[a]=this[a].bind(this));this.nativeDraggable=n.forceFallback?!1:Zi,this.nativeDraggable&&(this.options.touchStartThreshold=1),n.supportPointer?on$1(t,`pointerdown`,this._onTapStart):(on$1(t,`mousedown`,this._onTapStart),on$1(t,`touchstart`,this._onTapStart)),this.nativeDraggable&&(on$1(t,`dragover`,this),on$1(t,`dragenter`,this)),ji.push(this.el),n.store&&n.store.get&&this.sort(n.store.get(this)||[]),_extends(this,AnimationStateManager())}function _globalDragOver(t){t.dataTransfer&&(t.dataTransfer.dropEffect=`move`),t.cancelable&&t.preventDefault()}function _onMove(t,n,r,i,a,o,s,c){var l,u=t[di],d=u.options.onMove,f;return window.CustomEvent&&!ni&&!ri?l=new CustomEvent(`move`,{bubbles:!0,cancelable:!0}):(l=document.createEvent(`Event`),l.initEvent(`move`,!0,!0)),l.to=n,l.from=t,l.dragged=r,l.draggedRect=i,l.related=a||n,l.relatedRect=o||getRect(n),l.willInsertAfter=c,l.originalEvent=s,t.dispatchEvent(l),d&&(f=d.call(u,l,s)),f}function _disableDraggable(t){t.draggable=!1}function _unsilent(){Ki=!1}function _ghostIsFirst(t,n,r){var i=getRect(getChild(r.el,0,r.options,!0)),a=10;return n?t.clientX<i.left-a||t.clientY<i.top&&t.clientX<i.right:t.clientY<i.top-a||t.clientY<i.bottom&&t.clientX<i.left}function _ghostIsLast(t,n,r){var i=getRect(lastChild(r.el,r.options.draggable)),a=10;return n?t.clientX>i.right+a||t.clientX<=i.right&&t.clientY>i.bottom&&t.clientX>=i.left:t.clientX>i.right&&t.clientY>i.top||t.clientX<=i.right&&t.clientY>i.bottom+a}function _getSwapDirection(t,n,r,i,a,o,s,c){var l=i?t.clientY:t.clientX,u=i?r.height:r.width,d=i?r.top:r.left,f=i?r.bottom:r.right,p=!1;if(!s){if(c&&Ui<u*a){if(!Vi&&(Bi===1?l>d+u*o/2:l<f-u*o/2)&&(Vi=!0),Vi)p=!0;else if(Bi===1?l<d+Ui:l>f-Ui)return-Bi}else if(l>d+u*(1-a)/2&&l<f-u*(1-a)/2)return _getInsertDirection(n)}return p=p||s,p&&(l<d+u*o/2||l>f-u*o/2)?l>d+u/2?1:-1:0}function _getInsertDirection(t){return index(Z)<index(t)?1:-1}function _generateId(t){for(var n=t.tagName+t.className+t.src+t.href+t.textContent,r=n.length,i=0;r--;)i+=n.charCodeAt(r);return i.toString(36)}function _saveInputCheckedState(t){qi.length=0;for(var n=t.getElementsByTagName(`input`),r=n.length;r--;){var i=n[r];i.checked&&qi.push(i)}}function _nextTick(t){return setTimeout(t,0)}function _cancelNextTick(t){return clearTimeout(t)}function AutoScrollPlugin(){function AutoScroll(){for(var t in this.defaults={scroll:!0,forceAutoScrollFallback:!1,scrollSensitivity:30,scrollSpeed:10,bubbleScroll:!0},this)t.charAt(0)===`_`&&typeof this[t]==`function`&&(this[t]=this[t].bind(this))}return AutoScroll.prototype={dragStarted:function dragStarted(t){var n=t.originalEvent;this.sortable.nativeDraggable?on$1(document,`dragover`,this._handleAutoScroll):this.options.supportPointer?on$1(document,`pointermove`,this._handleFallbackAutoScroll):n.touches?on$1(document,`touchmove`,this._handleFallbackAutoScroll):on$1(document,`mousemove`,this._handleFallbackAutoScroll)},dragOverCompleted:function dragOverCompleted(t){var n=t.originalEvent;!this.options.dragOverBubble&&!n.rootEl&&this._handleAutoScroll(n)},drop:function drop(){this.sortable.nativeDraggable?off(document,`dragover`,this._handleAutoScroll):(off(document,`pointermove`,this._handleFallbackAutoScroll),off(document,`touchmove`,this._handleFallbackAutoScroll),off(document,`mousemove`,this._handleFallbackAutoScroll)),clearPointerElemChangedInterval(),clearAutoScrolls(),cancelThrottle()},nulling:function nulling(){pa=la=ca=ua=ma=da=fa=null,sa.length=0},_handleFallbackAutoScroll:function _handleFallbackAutoScroll(t){this._handleAutoScroll(t,!0)},_handleAutoScroll:function _handleAutoScroll(t,n){var r=this,i=(t.touches?t.touches[0]:t).clientX,a=(t.touches?t.touches[0]:t).clientY,o=document.elementFromPoint(i,a);if(pa=t,n||this.options.forceAutoScrollFallback||ri||ni||ai){ha(t,this.options,o,n);var s=getParentAutoScrollElement(o,!0);ua&&(!ma||i!==da||a!==fa)&&(ma&&clearPointerElemChangedInterval(),ma=setInterval(function(){var o=getParentAutoScrollElement(document.elementFromPoint(i,a),!0);o!==s&&(s=o,clearAutoScrolls()),ha(t,r.options,o,n)},10),da=i,fa=a)}else{if(!this.options.bubbleScroll||getParentAutoScrollElement(o,!0)===getWindowScrollingElement()){clearAutoScrolls();return}ha(t,this.options,getParentAutoScrollElement(o,!1),!1)}}},_extends(AutoScroll,{pluginName:`scroll`,initializeByDefault:!0})}function clearAutoScrolls(){sa.forEach(function(t){clearInterval(t.pid)}),sa=[]}function clearPointerElemChangedInterval(){clearInterval(ma)}function Revert(){}function Remove(){}function SwapPlugin(){function Swap(){this.defaults={swapClass:`sortable-swap-highlight`}}return Swap.prototype={dragStart:function dragStart(t){_a=t.dragEl},dragOverValid:function dragOverValid(t){var n=t.completed,r=t.target,i=t.onMove,a=t.activeSortable,o=t.changed,s=t.cancel;if(a.options.swap){var c=this.sortable.el,l=this.options;if(r&&r!==c){var u=_a;i(r)===!1?_a=null:(toggleClass(r,l.swapClass,!0),_a=r),u&&u!==_a&&toggleClass(u,l.swapClass,!1)}o(),n(!0),s()}},drop:function drop(t){var n=t.activeSortable,r=t.putSortable,i=t.dragEl,a=r||this.sortable,o=this.options;_a&&toggleClass(_a,o.swapClass,!1),_a&&(o.swap||r&&r.options.swap)&&i!==_a&&(a.captureAnimationState(),a!==n&&n.captureAnimationState(),swapNodes(i,_a),a.animateAll(),a!==n&&n.animateAll())},nulling:function nulling(){_a=null}},_extends(Swap,{pluginName:`swap`,eventProperties:function eventProperties(){return{swapItem:_a}}})}function swapNodes(t,n){var r=t.parentNode,i=n.parentNode,a,o;!r||!i||r.isEqualNode(n)||i.isEqualNode(t)||(a=index(t),o=index(n),r.isEqualNode(i)&&a<o&&o++,r.insertBefore(n,r.children[a]),i.insertBefore(t,i.children[o]))}function MultiDragPlugin(){function MultiDrag(t){for(var n in this)n.charAt(0)===`_`&&typeof this[n]==`function`&&(this[n]=this[n].bind(this));t.options.supportPointer?on$1(document,`pointerup`,this._deselectMultiDrag):(on$1(document,`mouseup`,this._deselectMultiDrag),on$1(document,`touchend`,this._deselectMultiDrag)),on$1(document,`keydown`,this._checkKeyDown),on$1(document,`keyup`,this._checkKeyUp),this.defaults={selectedClass:`sortable-selected`,multiDragKey:null,setData:function setData(n,r){var i=``;$.length&&ba===t?$.forEach(function(t,n){i+=(n?`, `:``)+t.textContent}):i=r.textContent,n.setData(`Text`,i)}}}return MultiDrag.prototype={multiDragKeyDown:!1,isMultiDrag:!1,delayStartGlobal:function delayStartGlobal(t){wa=t.dragEl},delayEnded:function delayEnded(){this.isMultiDrag=~$.indexOf(wa)},setupClone:function setupClone(t){var n=t.sortable,r=t.cancel;if(this.isMultiDrag){for(var i=0;i<$.length;i++)va.push(clone($[i])),va[i].sortableIndex=$[i].sortableIndex,va[i].draggable=!1,va[i].style[`will-change`]=``,toggleClass(va[i],this.options.selectedClass,!1),$[i]===wa&&toggleClass(va[i],this.options.chosenClass,!1);n._hideClone(),r()}},clone:function clone(t){var n=t.sortable,r=t.rootEl,i=t.dispatchSortableEvent,a=t.cancel;this.isMultiDrag&&(this.options.removeCloneOnHide||$.length&&ba===n&&(insertMultiDragClones(!0,r),i(`clone`),a()))},showClone:function showClone(t){var n=t.cloneNowShown,r=t.rootEl,i=t.cancel;this.isMultiDrag&&(insertMultiDragClones(!1,r),va.forEach(function(t){css(t,`display`,``)}),n(),Ea=!1,i())},hideClone:function hideClone(t){var n=this;t.sortable;var r=t.cloneNowHidden,i=t.cancel;this.isMultiDrag&&(va.forEach(function(t){css(t,`display`,`none`),n.options.removeCloneOnHide&&t.parentNode&&t.parentNode.removeChild(t)}),r(),Ea=!0,i())},dragStartGlobal:function dragStartGlobal(t){t.sortable,!this.isMultiDrag&&ba&&ba.multiDrag._deselectMultiDrag(),$.forEach(function(t){t.sortableIndex=index(t)}),$=$.sort(function(t,n){return t.sortableIndex-n.sortableIndex}),Ca=!0},dragStarted:function dragStarted(t){var n=this,r=t.sortable;if(this.isMultiDrag){if(this.options.sort&&(r.captureAnimationState(),this.options.animation)){$.forEach(function(t){t!==wa&&css(t,`position`,`absolute`)});var i=getRect(wa,!1,!0,!0);$.forEach(function(t){t!==wa&&setRect(t,i)}),Sa=!0,xa=!0}r.animateAll(function(){Sa=!1,xa=!1,n.options.animation&&$.forEach(function(t){unsetRect(t)}),n.options.sort&&removeMultiDragElements()})}},dragOver:function dragOver(t){var n=t.target,r=t.completed,i=t.cancel;Sa&&~$.indexOf(n)&&(r(!1),i())},revert:function revert(t){var n=t.fromSortable,r=t.rootEl,i=t.sortable,a=t.dragRect;$.length>1&&($.forEach(function(t){i.addAnimationState({target:t,rect:Sa?getRect(t):a}),unsetRect(t),t.fromRect=a,n.removeAnimationState(t)}),Sa=!1,insertMultiDragElements(!this.options.removeCloneOnHide,r))},dragOverCompleted:function dragOverCompleted(t){var n=t.sortable,r=t.isOwner,i=t.insertion,a=t.activeSortable,o=t.parentEl,s=t.putSortable,c=this.options;if(i){if(r&&a._hideClone(),xa=!1,c.animation&&$.length>1&&(Sa||!r&&!a.options.sort&&!s)){var l=getRect(wa,!1,!0,!0);$.forEach(function(t){t!==wa&&(setRect(t,l),o.appendChild(t))}),Sa=!0}if(!r)if(Sa||removeMultiDragElements(),$.length>1){var u=Ea;a._showClone(n),a.options.animation&&!Ea&&u&&va.forEach(function(t){a.addAnimationState({target:t,rect:Ta}),t.fromRect=Ta,t.thisAnimationDuration=null})}else a._showClone(n)}},dragOverAnimationCapture:function dragOverAnimationCapture(t){var n=t.dragRect,r=t.isOwner,i=t.activeSortable;if($.forEach(function(t){t.thisAnimationDuration=null}),i.options.animation&&!r&&i.multiDrag.isMultiDrag){Ta=_extends({},n);var a=matrix(wa,!0);Ta.top-=a.f,Ta.left-=a.e}},dragOverAnimationComplete:function dragOverAnimationComplete(){Sa&&(Sa=!1,removeMultiDragElements())},drop:function drop(t){var n=t.originalEvent,r=t.rootEl,i=t.parentEl,a=t.sortable,o=t.dispatchSortableEvent,s=t.oldIndex,c=t.putSortable,l=c||this.sortable;if(n){var u=this.options,d=i.children;if(!Ca)if(u.multiDragKey&&!this.multiDragKeyDown&&this._deselectMultiDrag(),toggleClass(wa,u.selectedClass,!~$.indexOf(wa)),~$.indexOf(wa))$.splice($.indexOf(wa),1),ya=null,dispatchEvent({sortable:a,rootEl:r,name:`deselect`,targetEl:wa,originalEvt:n});else{if($.push(wa),dispatchEvent({sortable:a,rootEl:r,name:`select`,targetEl:wa,originalEvt:n}),n.shiftKey&&ya&&a.el.contains(ya)){var f=index(ya),p=index(wa);if(~f&&~p&&f!==p){var m,h;for(p>f?(h=f,m=p):(h=p,m=f+1);h<m;h++)~$.indexOf(d[h])||(toggleClass(d[h],u.selectedClass,!0),$.push(d[h]),dispatchEvent({sortable:a,rootEl:r,name:`select`,targetEl:d[h],originalEvt:n}))}}else ya=wa;ba=l}if(Ca&&this.isMultiDrag){if(Sa=!1,(i[di].options.sort||i!==r)&&$.length>1){var g=getRect(wa),_=index(wa,`:not(.`+this.options.selectedClass+`)`);if(!xa&&u.animation&&(wa.thisAnimationDuration=null),l.captureAnimationState(),!xa&&(u.animation&&(wa.fromRect=g,$.forEach(function(t){if(t.thisAnimationDuration=null,t!==wa){var n=Sa?getRect(t):g;t.fromRect=n,l.addAnimationState({target:t,rect:n})}})),removeMultiDragElements(),$.forEach(function(t){d[_]?i.insertBefore(t,d[_]):i.appendChild(t),_++}),s===index(wa))){var b=!1;$.forEach(function(t){if(t.sortableIndex!==index(t)){b=!0;return}}),b&&o(`update`)}$.forEach(function(t){unsetRect(t)}),l.animateAll()}ba=l}(r===i||c&&c.lastPutMode!==`clone`)&&va.forEach(function(t){t.parentNode&&t.parentNode.removeChild(t)})}},nullingGlobal:function nullingGlobal(){this.isMultiDrag=Ca=!1,va.length=0},destroyGlobal:function destroyGlobal(){this._deselectMultiDrag(),off(document,`pointerup`,this._deselectMultiDrag),off(document,`mouseup`,this._deselectMultiDrag),off(document,`touchend`,this._deselectMultiDrag),off(document,`keydown`,this._checkKeyDown),off(document,`keyup`,this._checkKeyUp)},_deselectMultiDrag:function _deselectMultiDrag(t){if(!(Ca!==void 0&&Ca)&&ba===this.sortable&&!(t&&closest(t.target,this.options.draggable,this.sortable.el,!1))&&!(t&&t.button!==0))for(;$.length;){var n=$[0];toggleClass(n,this.options.selectedClass,!1),$.shift(),dispatchEvent({sortable:this.sortable,rootEl:this.sortable.el,name:`deselect`,targetEl:n,originalEvt:t})}},_checkKeyDown:function _checkKeyDown(t){t.key===this.options.multiDragKey&&(this.multiDragKeyDown=!0)},_checkKeyUp:function _checkKeyUp(t){t.key===this.options.multiDragKey&&(this.multiDragKeyDown=!1)}},_extends(MultiDrag,{pluginName:`multiDrag`,utils:{select:function select(t){var n=t.parentNode[di];!n||!n.options.multiDrag||~$.indexOf(t)||(ba&&ba!==n&&(ba.multiDrag._deselectMultiDrag(),ba=n),toggleClass(t,n.options.selectedClass,!0),$.push(t))},deselect:function deselect(t){var n=t.parentNode[di],r=$.indexOf(t);!n||!n.options.multiDrag||!~r||(toggleClass(t,n.options.selectedClass,!1),$.splice(r,1))}},eventProperties:function eventProperties(){var t=this,n=[],r=[];return $.forEach(function(i){n.push({multiDragElement:i,index:i.sortableIndex});var a=Sa&&i!==wa?-1:Sa?index(i,`:not(.`+t.options.selectedClass+`)`):index(i);r.push({multiDragElement:i,index:a})}),{items:_toConsumableArray($),clones:[].concat(va),oldIndicies:n,newIndicies:r}},optionListeners:{multiDragKey:function multiDragKey(t){return t=t.toLowerCase(),t===`ctrl`?t=`Control`:t.length>1&&(t=t.charAt(0).toUpperCase()+t.substr(1)),t}}})}function insertMultiDragElements(t,n){$.forEach(function(r,i){var a=n.children[r.sortableIndex+(t?Number(i):0)];a?n.insertBefore(r,a):n.appendChild(r)})}function insertMultiDragClones(t,n){va.forEach(function(r,i){var a=n.children[r.sortableIndex+(t?Number(i):0)];a?n.insertBefore(r,a):n.appendChild(r)})}function removeMultiDragElements(){$.forEach(function(t){t!==wa&&t.parentNode&&t.parentNode.removeChild(t)})}var ti,ni,ri,ii,ai,oi,si,ci,li,ui,di,fi,pi,mi,hi,gi,Z,_i,Q,vi,yi,bi,xi,Si,Ci,wi,Ti,Ei,Di,Oi,ki,Ai,ji,Mi,Ni,Pi,Fi,Ii,Li,Ri,zi,Bi,Vi,Hi,Ui,Wi,Gi,Ki,qi,Ji,Yi,Xi,Zi,Qi,$i,ea,ta,na,ra,ia,aa,oa,sa,ca,la,ua,da,fa,pa,ma,ha,ga,_a,$,va,ya,ba,xa,Sa,Ca,wa,Ta,Ea,Da=n((()=>{ti=`1.14.0`,ni=userAgent(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),ri=userAgent(/Edge/i),ii=userAgent(/firefox/i),ai=userAgent(/safari/i)&&!userAgent(/chrome/i)&&!userAgent(/android/i),oi=userAgent(/iP(ad|od|hone)/i),si=userAgent(/chrome/i)&&userAgent(/android/i),ci={capture:!1,passive:!1},t(on$1,`on`),li=/\s+/g,di=`Sortable`+new Date().getTime(),fi=[],pi={initializeByDefault:!0},mi={mount:function mount(t){for(var n in pi)pi.hasOwnProperty(n)&&!(n in t)&&(t[n]=pi[n]);fi.forEach(function(n){if(n.pluginName===t.pluginName)throw`Sortable: Cannot mount plugin ${t.pluginName} more than once`}),fi.push(t)},pluginEvent:function pluginEvent(t,n,r){var i=this;this.eventCanceled=!1,r.cancel=function(){i.eventCanceled=!0};var a=t+`Global`;fi.forEach(function(i){n[i.pluginName]&&(n[i.pluginName][a]&&n[i.pluginName][a](_objectSpread2({sortable:n},r)),n.options[i.pluginName]&&n[i.pluginName][t]&&n[i.pluginName][t](_objectSpread2({sortable:n},r)))})},initializePlugins:function initializePlugins(t,n,r,i){for(var a in fi.forEach(function(i){var a=i.pluginName;if(!(!t.options[a]&&!i.initializeByDefault)){var o=new i(t,n,t.options);o.sortable=t,o.options=t.options,t[a]=o,_extends(r,o.defaults)}}),t.options)if(t.options.hasOwnProperty(a)){var o=this.modifyOption(t,a,t.options[a]);o!==void 0&&(t.options[a]=o)}},getEventProperties:function getEventProperties(t,n){var r={};return fi.forEach(function(i){typeof i.eventProperties==`function`&&_extends(r,i.eventProperties.call(n[i.pluginName],t))}),r},modifyOption:function modifyOption(t,n,r){var i;return fi.forEach(function(a){t[a.pluginName]&&a.optionListeners&&typeof a.optionListeners[n]==`function`&&(i=a.optionListeners[n].call(t[a.pluginName],r))}),i}},hi=[`evt`],gi=function pluginEvent(t,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},i=r.evt,a=_objectWithoutProperties(r,hi);mi.pluginEvent.bind(Sortable)(t,n,_objectSpread2({dragEl:Z,parentEl:_i,ghostEl:Q,rootEl:vi,nextEl:yi,lastDownEl:bi,cloneEl:xi,cloneHidden:Si,dragStarted:Ri,putSortable:Oi,activeSortable:Sortable.active,originalEvent:i,oldIndex:Ci,oldDraggableIndex:Ti,newIndex:wi,newDraggableIndex:Ei,hideGhostForTarget:ra,unhideGhostForTarget:ia,cloneNowHidden:function cloneNowHidden(){Si=!0},cloneNowShown:function cloneNowShown(){Si=!1},dispatchSortableEvent:function dispatchSortableEvent(t){_dispatchEvent({sortable:n,name:t,originalEvent:i})}},a))},ki=!1,Ai=!1,ji=[],Vi=!1,Hi=!1,Gi=[],Ki=!1,qi=[],Ji=typeof document<`u`,Yi=oi,Xi=ri||ni?`cssFloat`:`float`,Zi=Ji&&!si&&!oi&&`draggable`in document.createElement(`div`),Qi=function(){if(Ji){if(ni)return!1;var t=document.createElement(`x`);return t.style.cssText=`pointer-events:auto`,t.style.pointerEvents===`auto`}}(),$i=function _detectDirection(t,n){var r=css(t),i=parseInt(r.width)-parseInt(r.paddingLeft)-parseInt(r.paddingRight)-parseInt(r.borderLeftWidth)-parseInt(r.borderRightWidth),a=getChild(t,0,n),o=getChild(t,1,n),s=a&&css(a),c=o&&css(o),l=s&&parseInt(s.marginLeft)+parseInt(s.marginRight)+getRect(a).width,u=c&&parseInt(c.marginLeft)+parseInt(c.marginRight)+getRect(o).width;if(r.display===`flex`)return r.flexDirection===`column`||r.flexDirection===`column-reverse`?`vertical`:`horizontal`;if(r.display===`grid`)return r.gridTemplateColumns.split(` `).length<=1?`vertical`:`horizontal`;if(a&&s.float&&s.float!==`none`){var d=s.float===`left`?`left`:`right`;return o&&(c.clear===`both`||c.clear===d)?`vertical`:`horizontal`}return a&&(s.display===`block`||s.display===`flex`||s.display===`table`||s.display===`grid`||l>=i&&r[Xi]===`none`||o&&r[Xi]===`none`&&l+u>i)?`vertical`:`horizontal`},ea=function _dragElInRowColumn(t,n,r){var i=r?t.left:t.top,a=r?t.right:t.bottom,o=r?t.width:t.height,s=r?n.left:n.top,c=r?n.right:n.bottom,l=r?n.width:n.height;return i===s||a===c||i+o/2===s+l/2},ta=function _detectNearestEmptySortable(t,n){var r;return ji.some(function(i){var a=i[di].options.emptyInsertThreshold;if(!(!a||lastChild(i))){var o=getRect(i),s=t>=o.left-a&&t<=o.right+a,c=n>=o.top-a&&n<=o.bottom+a;if(s&&c)return r=i}}),r},na=function _prepareGroup(t){function toFn(t,n){return function(r,i,a,o){var s=r.options.group.name&&i.options.group.name&&r.options.group.name===i.options.group.name;if(t==null&&(n||s))return!0;if(t==null||t===!1)return!1;if(n&&t===`clone`)return t;if(typeof t==`function`)return toFn(t(r,i,a,o),n)(r,i,a,o);var c=(n?r:i).options.group.name;return t===!0||typeof t==`string`&&t===c||t.join&&t.indexOf(c)>-1}}var n={},r=t.group;(!r||_typeof(r)!=`object`)&&(r={name:r}),n.name=r.name,n.checkPull=toFn(r.pull,!0),n.checkPut=toFn(r.put),n.revertClone=r.revertClone,t.group=n},ra=function _hideGhostForTarget(){!Qi&&Q&&css(Q,`display`,`none`)},ia=function _unhideGhostForTarget(){!Qi&&Q&&css(Q,`display`,``)},Ji&&document.addEventListener(`click`,function(t){if(Ai)return t.preventDefault(),t.stopPropagation&&t.stopPropagation(),t.stopImmediatePropagation&&t.stopImmediatePropagation(),Ai=!1,!1},!0),aa=function nearestEmptyInsertDetectEvent(t){if(Z){t=t.touches?t.touches[0]:t;var n=ta(t.clientX,t.clientY);if(n){var r={};for(var i in t)t.hasOwnProperty(i)&&(r[i]=t[i]);r.target=r.rootEl=n,r.preventDefault=void 0,r.stopPropagation=void 0,n[di]._onDragOver(r)}}},oa=function _checkOutsideTargetEl(t){Z&&Z.parentNode[di]._isOutsideThisEl(t.target)},Sortable.prototype={constructor:Sortable,_isOutsideThisEl:function _isOutsideThisEl(t){!this.el.contains(t)&&t!==this.el&&(zi=null)},_getDirection:function _getDirection(t,n){return typeof this.options.direction==`function`?this.options.direction.call(this,t,n,Z):this.options.direction},_onTapStart:function _onTapStart(t){if(t.cancelable){var n=this,r=this.el,i=this.options,a=i.preventOnFilter,o=t.type,s=t.touches&&t.touches[0]||t.pointerType&&t.pointerType===`touch`&&t,c=(s||t).target,l=t.target.shadowRoot&&(t.path&&t.path[0]||t.composedPath&&t.composedPath()[0])||c,u=i.filter;if(_saveInputCheckedState(r),!Z&&!(/mousedown|pointerdown/.test(o)&&t.button!==0||i.disabled)&&!l.isContentEditable&&!(!this.nativeDraggable&&ai&&c&&c.tagName.toUpperCase()===`SELECT`)&&(c=closest(c,i.draggable,r,!1),!(c&&c.animated)&&bi!==c)){if(Ci=index(c),Ti=index(c,i.draggable),typeof u==`function`){if(u.call(this,t,c,this)){_dispatchEvent({sortable:n,rootEl:l,name:`filter`,targetEl:c,toEl:r,fromEl:r}),gi(`filter`,n,{evt:t}),a&&t.cancelable&&t.preventDefault();return}}else if(u&&(u=u.split(`,`).some(function(i){if(i=closest(l,i.trim(),r,!1),i)return _dispatchEvent({sortable:n,rootEl:i,name:`filter`,targetEl:c,fromEl:r,toEl:r}),gi(`filter`,n,{evt:t}),!0}),u)){a&&t.cancelable&&t.preventDefault();return}i.handle&&!closest(l,i.handle,r,!1)||this._prepareDragStart(t,s,c)}}},_prepareDragStart:function _prepareDragStart(t,n,r){var i=this,a=i.el,o=i.options,s=a.ownerDocument,c;if(r&&!Z&&r.parentNode===a){var l=getRect(r);if(vi=a,Z=r,_i=Z.parentNode,yi=Z.nextSibling,bi=r,Di=o.group,Sortable.dragged=Z,Mi={target:Z,clientX:(n||t).clientX,clientY:(n||t).clientY},Ii=Mi.clientX-l.left,Li=Mi.clientY-l.top,this._lastX=(n||t).clientX,this._lastY=(n||t).clientY,Z.style[`will-change`]=`all`,c=function dragStartFn(){if(gi(`delayEnded`,i,{evt:t}),Sortable.eventCanceled){i._onDrop();return}i._disableDelayedDragEvents(),!ii&&i.nativeDraggable&&(Z.draggable=!0),i._triggerDragStart(t,n),_dispatchEvent({sortable:i,name:`choose`,originalEvent:t}),toggleClass(Z,o.chosenClass,!0)},o.ignore.split(`,`).forEach(function(t){find(Z,t.trim(),_disableDraggable)}),on$1(s,`dragover`,aa),on$1(s,`mousemove`,aa),on$1(s,`touchmove`,aa),on$1(s,`mouseup`,i._onDrop),on$1(s,`touchend`,i._onDrop),on$1(s,`touchcancel`,i._onDrop),ii&&this.nativeDraggable&&(this.options.touchStartThreshold=4,Z.draggable=!0),gi(`delayStart`,this,{evt:t}),o.delay&&(!o.delayOnTouchOnly||n)&&(!this.nativeDraggable||!(ri||ni))){if(Sortable.eventCanceled){this._onDrop();return}on$1(s,`mouseup`,i._disableDelayedDrag),on$1(s,`touchend`,i._disableDelayedDrag),on$1(s,`touchcancel`,i._disableDelayedDrag),on$1(s,`mousemove`,i._delayedDragTouchMoveHandler),on$1(s,`touchmove`,i._delayedDragTouchMoveHandler),o.supportPointer&&on$1(s,`pointermove`,i._delayedDragTouchMoveHandler),i._dragStartTimer=setTimeout(c,o.delay)}else c()}},_delayedDragTouchMoveHandler:function _delayedDragTouchMoveHandler(t){var n=t.touches?t.touches[0]:t;Math.max(Math.abs(n.clientX-this._lastX),Math.abs(n.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function _disableDelayedDrag(){Z&&_disableDraggable(Z),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function _disableDelayedDragEvents(){var t=this.el.ownerDocument;off(t,`mouseup`,this._disableDelayedDrag),off(t,`touchend`,this._disableDelayedDrag),off(t,`touchcancel`,this._disableDelayedDrag),off(t,`mousemove`,this._delayedDragTouchMoveHandler),off(t,`touchmove`,this._delayedDragTouchMoveHandler),off(t,`pointermove`,this._delayedDragTouchMoveHandler)},_triggerDragStart:function _triggerDragStart(t,n){n=n||t.pointerType==`touch`&&t,!this.nativeDraggable||n?this.options.supportPointer?on$1(document,`pointermove`,this._onTouchMove):n?on$1(document,`touchmove`,this._onTouchMove):on$1(document,`mousemove`,this._onTouchMove):(on$1(Z,`dragend`,this),on$1(vi,`dragstart`,this._onDragStart));try{document.selection?_nextTick(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch{}},_dragStarted:function _dragStarted(t,n){if(ki=!1,vi&&Z){gi(`dragStarted`,this,{evt:n}),this.nativeDraggable&&on$1(document,`dragover`,oa);var r=this.options;!t&&toggleClass(Z,r.dragClass,!1),toggleClass(Z,r.ghostClass,!0),Sortable.active=this,t&&this._appendGhost(),_dispatchEvent({sortable:this,name:`start`,originalEvent:n})}else this._nulling()},_emulateDragOver:function _emulateDragOver(){if(Ni){this._lastX=Ni.clientX,this._lastY=Ni.clientY,ra();for(var t=document.elementFromPoint(Ni.clientX,Ni.clientY),n=t;t&&t.shadowRoot&&(t=t.shadowRoot.elementFromPoint(Ni.clientX,Ni.clientY),t!==n);)n=t;if(Z.parentNode[di]._isOutsideThisEl(t),n)do{if(n[di]){var r=void 0;if(r=n[di]._onDragOver({clientX:Ni.clientX,clientY:Ni.clientY,target:t,rootEl:n}),r&&!this.options.dragoverBubble)break}t=n}while(n=n.parentNode);ia()}},_onTouchMove:function _onTouchMove(t){if(Mi){var n=this.options,r=n.fallbackTolerance,i=n.fallbackOffset,a=t.touches?t.touches[0]:t,o=Q&&matrix(Q,!0),s=Q&&o&&o.a,c=Q&&o&&o.d,l=Yi&&Wi&&getRelativeScrollOffset(Wi),u=(a.clientX-Mi.clientX+i.x)/(s||1)+(l?l[0]-Gi[0]:0)/(s||1),d=(a.clientY-Mi.clientY+i.y)/(c||1)+(l?l[1]-Gi[1]:0)/(c||1);if(!Sortable.active&&!ki){if(r&&Math.max(Math.abs(a.clientX-this._lastX),Math.abs(a.clientY-this._lastY))<r)return;this._onDragStart(t,!0)}if(Q){o?(o.e+=u-(Pi||0),o.f+=d-(Fi||0)):o={a:1,b:0,c:0,d:1,e:u,f:d};var f=`matrix(${o.a},${o.b},${o.c},${o.d},${o.e},${o.f})`;css(Q,`webkitTransform`,f),css(Q,`mozTransform`,f),css(Q,`msTransform`,f),css(Q,`transform`,f),Pi=u,Fi=d,Ni=a}t.cancelable&&t.preventDefault()}},_appendGhost:function _appendGhost(){if(!Q){var t=this.options.fallbackOnBody?document.body:vi,n=getRect(Z,!0,Yi,!0,t),r=this.options;if(Yi){for(Wi=t;css(Wi,`position`)===`static`&&css(Wi,`transform`)===`none`&&Wi!==document;)Wi=Wi.parentNode;Wi!==document.body&&Wi!==document.documentElement?(Wi===document&&(Wi=getWindowScrollingElement()),n.top+=Wi.scrollTop,n.left+=Wi.scrollLeft):Wi=getWindowScrollingElement(),Gi=getRelativeScrollOffset(Wi)}Q=Z.cloneNode(!0),toggleClass(Q,r.ghostClass,!1),toggleClass(Q,r.fallbackClass,!0),toggleClass(Q,r.dragClass,!0),css(Q,`transition`,``),css(Q,`transform`,``),css(Q,`box-sizing`,`border-box`),css(Q,`margin`,0),css(Q,`top`,n.top),css(Q,`left`,n.left),css(Q,`width`,n.width),css(Q,`height`,n.height),css(Q,`opacity`,`0.8`),css(Q,`position`,Yi?`absolute`:`fixed`),css(Q,`zIndex`,`100000`),css(Q,`pointerEvents`,`none`),Sortable.ghost=Q,t.appendChild(Q),css(Q,`transform-origin`,Ii/parseInt(Q.style.width)*100+`% `+Li/parseInt(Q.style.height)*100+`%`)}},_onDragStart:function _onDragStart(t,n){var r=this,i=t.dataTransfer,a=r.options;if(gi(`dragStart`,this,{evt:t}),Sortable.eventCanceled){this._onDrop();return}gi(`setupClone`,this),Sortable.eventCanceled||(xi=clone(Z),xi.draggable=!1,xi.style[`will-change`]=``,this._hideClone(),toggleClass(xi,this.options.chosenClass,!1),Sortable.clone=xi),r.cloneId=_nextTick(function(){gi(`clone`,r),!Sortable.eventCanceled&&(r.options.removeCloneOnHide||vi.insertBefore(xi,Z),r._hideClone(),_dispatchEvent({sortable:r,name:`clone`}))}),!n&&toggleClass(Z,a.dragClass,!0),n?(Ai=!0,r._loopId=setInterval(r._emulateDragOver,50)):(off(document,`mouseup`,r._onDrop),off(document,`touchend`,r._onDrop),off(document,`touchcancel`,r._onDrop),i&&(i.effectAllowed=`move`,a.setData&&a.setData.call(r,i,Z)),on$1(document,`drop`,r),css(Z,`transform`,`translateZ(0)`)),ki=!0,r._dragStartId=_nextTick(r._dragStarted.bind(r,n,t)),on$1(document,`selectstart`,r),Ri=!0,ai&&css(document.body,`user-select`,`none`)},_onDragOver:function _onDragOver(t){var n=this.el,r=t.target,i,a,o,s=this.options,c=s.group,l=Sortable.active,u=Di===c,d=s.sort,f=Oi||l,p,m=this,h=!1;if(Ki)return;function dragOverEvent(s,c){gi(s,m,_objectSpread2({evt:t,isOwner:u,axis:p?`vertical`:`horizontal`,revert:o,dragRect:i,targetRect:a,canSort:d,fromSortable:f,target:r,completed,onMove:function onMove(r,a){return _onMove(vi,n,Z,i,r,getRect(r),t,a)},changed},c))}function capture(){dragOverEvent(`dragOverAnimationCapture`),m.captureAnimationState(),m!==f&&f.captureAnimationState()}function completed(i){return dragOverEvent(`dragOverCompleted`,{insertion:i}),i&&(u?l._hideClone():l._showClone(m),m!==f&&(toggleClass(Z,Oi?Oi.options.ghostClass:l.options.ghostClass,!1),toggleClass(Z,s.ghostClass,!0)),Oi!==m&&m!==Sortable.active?Oi=m:m===Sortable.active&&Oi&&(Oi=null),f===m&&(m._ignoreWhileAnimating=r),m.animateAll(function(){dragOverEvent(`dragOverAnimationComplete`),m._ignoreWhileAnimating=null}),m!==f&&(f.animateAll(),f._ignoreWhileAnimating=null)),(r===Z&&!Z.animated||r===n&&!r.animated)&&(zi=null),!s.dragoverBubble&&!t.rootEl&&r!==document&&(Z.parentNode[di]._isOutsideThisEl(t.target),!i&&aa(t)),!s.dragoverBubble&&t.stopPropagation&&t.stopPropagation(),h=!0}function changed(){wi=index(Z),Ei=index(Z,s.draggable),_dispatchEvent({sortable:m,name:`change`,toEl:n,newIndex:wi,newDraggableIndex:Ei,originalEvent:t})}if(t.preventDefault!==void 0&&t.cancelable&&t.preventDefault(),r=closest(r,s.draggable,n,!0),dragOverEvent(`dragOver`),Sortable.eventCanceled)return h;if(Z.contains(t.target)||r.animated&&r.animatingX&&r.animatingY||m._ignoreWhileAnimating===r)return completed(!1);if(Ai=!1,l&&!s.disabled&&(u?d||(o=_i!==vi):Oi===this||(this.lastPutMode=Di.checkPull(this,l,Z,t))&&c.checkPut(this,l,Z,t))){if(p=this._getDirection(t,r)===`vertical`,i=getRect(Z),dragOverEvent(`dragOverValid`),Sortable.eventCanceled)return h;if(o)return _i=vi,capture(),this._hideClone(),dragOverEvent(`revert`),Sortable.eventCanceled||(yi?vi.insertBefore(Z,yi):vi.appendChild(Z)),completed(!0);var g=lastChild(n,s.draggable);if(!g||_ghostIsLast(t,p,this)&&!g.animated){if(g===Z)return completed(!1);if(g&&n===t.target&&(r=g),r&&(a=getRect(r)),_onMove(vi,n,Z,i,r,a,t,!!r)!==!1)return capture(),n.appendChild(Z),_i=n,changed(),completed(!0)}else if(g&&_ghostIsFirst(t,p,this)){var _=getChild(n,0,s,!0);if(_===Z)return completed(!1);if(r=_,a=getRect(r),_onMove(vi,n,Z,i,r,a,t,!1)!==!1)return capture(),n.insertBefore(Z,_),_i=n,changed(),completed(!0)}else if(r.parentNode===n){a=getRect(r);var b=0,x,S=Z.parentNode!==n,C=!ea(Z.animated&&Z.toRect||i,r.animated&&r.toRect||a,p),w=p?`top`:`left`,T=isScrolledPast(r,`top`,`top`)||isScrolledPast(Z,`top`,`top`),E=T?T.scrollTop:void 0;zi!==r&&(x=a[w],Vi=!1,Hi=!C&&s.invertSwap||S),b=_getSwapDirection(t,r,a,p,C?1:s.swapThreshold,s.invertedSwapThreshold==null?s.swapThreshold:s.invertedSwapThreshold,Hi,zi===r);var D;if(b!==0){var O=index(Z);do O-=b,D=_i.children[O];while(D&&(css(D,`display`)===`none`||D===Q))}if(b===0||D===r)return completed(!1);zi=r,Bi=b;var k=r.nextElementSibling,ee=!1;ee=b===1;var te=_onMove(vi,n,Z,i,r,a,t,ee);if(te!==!1)return(te===1||te===-1)&&(ee=te===1),Ki=!0,setTimeout(_unsilent,30),capture(),ee&&!k?n.appendChild(Z):r.parentNode.insertBefore(Z,ee?k:r),T&&scrollBy(T,0,E-T.scrollTop),_i=Z.parentNode,x!==void 0&&!Hi&&(Ui=Math.abs(x-getRect(r)[w])),changed(),completed(!0)}if(n.contains(Z))return completed(!1)}return!1},_ignoreWhileAnimating:null,_offMoveEvents:function _offMoveEvents(){off(document,`mousemove`,this._onTouchMove),off(document,`touchmove`,this._onTouchMove),off(document,`pointermove`,this._onTouchMove),off(document,`dragover`,aa),off(document,`mousemove`,aa),off(document,`touchmove`,aa)},_offUpEvents:function _offUpEvents(){var t=this.el.ownerDocument;off(t,`mouseup`,this._onDrop),off(t,`touchend`,this._onDrop),off(t,`pointerup`,this._onDrop),off(t,`touchcancel`,this._onDrop),off(document,`selectstart`,this)},_onDrop:function _onDrop(t){var n=this.el,r=this.options;if(wi=index(Z),Ei=index(Z,r.draggable),gi(`drop`,this,{evt:t}),_i=Z&&Z.parentNode,wi=index(Z),Ei=index(Z,r.draggable),Sortable.eventCanceled){this._nulling();return}ki=!1,Hi=!1,Vi=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),_cancelNextTick(this.cloneId),_cancelNextTick(this._dragStartId),this.nativeDraggable&&(off(document,`drop`,this),off(n,`dragstart`,this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),ai&&css(document.body,`user-select`,``),css(Z,`transform`,``),t&&(Ri&&(t.cancelable&&t.preventDefault(),!r.dropBubble&&t.stopPropagation()),Q&&Q.parentNode&&Q.parentNode.removeChild(Q),(vi===_i||Oi&&Oi.lastPutMode!==`clone`)&&xi&&xi.parentNode&&xi.parentNode.removeChild(xi),Z&&(this.nativeDraggable&&off(Z,`dragend`,this),_disableDraggable(Z),Z.style[`will-change`]=``,Ri&&!ki&&toggleClass(Z,Oi?Oi.options.ghostClass:this.options.ghostClass,!1),toggleClass(Z,this.options.chosenClass,!1),_dispatchEvent({sortable:this,name:`unchoose`,toEl:_i,newIndex:null,newDraggableIndex:null,originalEvent:t}),vi===_i?wi!==Ci&&wi>=0&&(_dispatchEvent({sortable:this,name:`update`,toEl:_i,originalEvent:t}),_dispatchEvent({sortable:this,name:`sort`,toEl:_i,originalEvent:t})):(wi>=0&&(_dispatchEvent({rootEl:_i,name:`add`,toEl:_i,fromEl:vi,originalEvent:t}),_dispatchEvent({sortable:this,name:`remove`,toEl:_i,originalEvent:t}),_dispatchEvent({rootEl:_i,name:`sort`,toEl:_i,fromEl:vi,originalEvent:t}),_dispatchEvent({sortable:this,name:`sort`,toEl:_i,originalEvent:t})),Oi&&Oi.save()),Sortable.active&&((wi==null||wi===-1)&&(wi=Ci,Ei=Ti),_dispatchEvent({sortable:this,name:`end`,toEl:_i,originalEvent:t}),this.save()))),this._nulling()},_nulling:function _nulling(){gi(`nulling`,this),vi=Z=_i=Q=yi=xi=bi=Si=Mi=Ni=Ri=wi=Ei=Ci=Ti=zi=Bi=Oi=Di=Sortable.dragged=Sortable.ghost=Sortable.clone=Sortable.active=null,qi.forEach(function(t){t.checked=!0}),qi.length=Pi=Fi=0},handleEvent:function handleEvent(t){switch(t.type){case`drop`:case`dragend`:this._onDrop(t);break;case`dragenter`:case`dragover`:Z&&(this._onDragOver(t),_globalDragOver(t));break;case`selectstart`:t.preventDefault();break}},toArray:function toArray(){for(var t=[],n,r=this.el.children,i=0,a=r.length,o=this.options;i<a;i++)n=r[i],closest(n,o.draggable,this.el,!1)&&t.push(n.getAttribute(o.dataIdAttr)||_generateId(n));return t},sort:function sort(t,n){var r={},i=this.el;this.toArray().forEach(function(t,n){var a=i.children[n];closest(a,this.options.draggable,i,!1)&&(r[t]=a)},this),n&&this.captureAnimationState(),t.forEach(function(t){r[t]&&(i.removeChild(r[t]),i.appendChild(r[t]))}),n&&this.animateAll()},save:function save(){var t=this.options.store;t&&t.set&&t.set(this)},closest:function closest$1(t,n){return closest(t,n||this.options.draggable,this.el,!1)},option:function option(t,n){var r=this.options;if(n===void 0)return r[t];var i=mi.modifyOption(this,t,n);i===void 0?r[t]=n:r[t]=i,t===`group`&&na(r)},destroy:function destroy(){gi(`destroy`,this);var t=this.el;t[di]=null,off(t,`mousedown`,this._onTapStart),off(t,`touchstart`,this._onTapStart),off(t,`pointerdown`,this._onTapStart),this.nativeDraggable&&(off(t,`dragover`,this),off(t,`dragenter`,this)),Array.prototype.forEach.call(t.querySelectorAll(`[draggable]`),function(t){t.removeAttribute(`draggable`)}),this._onDrop(),this._disableDelayedDragEvents(),ji.splice(ji.indexOf(this.el),1),this.el=t=null},_hideClone:function _hideClone(){if(!Si){if(gi(`hideClone`,this),Sortable.eventCanceled)return;css(xi,`display`,`none`),this.options.removeCloneOnHide&&xi.parentNode&&xi.parentNode.removeChild(xi),Si=!0}},_showClone:function _showClone(t){if(t.lastPutMode!==`clone`){this._hideClone();return}if(Si){if(gi(`showClone`,this),Sortable.eventCanceled)return;Z.parentNode==vi&&!this.options.group.revertClone?vi.insertBefore(xi,Z):yi?vi.insertBefore(xi,yi):vi.appendChild(xi),this.options.group.revertClone&&this.animate(Z,xi),css(xi,`display`,``),Si=!1}}},Ji&&on$1(document,`touchmove`,function(t){(Sortable.active||ki)&&t.cancelable&&t.preventDefault()}),Sortable.utils={on:on$1,off,css,find,is:function is(t,n){return!!closest(t,n,t,!1)},extend,throttle,closest,toggleClass,clone,index,nextTick:_nextTick,cancelNextTick:_cancelNextTick,detectDirection:$i,getChild},Sortable.get=function(t){return t[di]},Sortable.mount=function(){var t=[...arguments];t[0].constructor===Array&&(t=t[0]),t.forEach(function(t){if(!t.prototype||!t.prototype.constructor)throw`Sortable: Mounted plugin must be a constructor function, not ${{}.toString.call(t)}`;t.utils&&(Sortable.utils=_objectSpread2(_objectSpread2({},Sortable.utils),t.utils)),mi.mount(t)})},Sortable.create=function(t,n){return new Sortable(t,n)},Sortable.version=ti,sa=[],ua=!1,ha=throttle(function(t,n,r,i){if(n.scroll){var a=(t.touches?t.touches[0]:t).clientX,o=(t.touches?t.touches[0]:t).clientY,s=n.scrollSensitivity,c=n.scrollSpeed,l=getWindowScrollingElement(),u=!1,d;la!==r&&(la=r,clearAutoScrolls(),ca=n.scroll,d=n.scrollFn,ca===!0&&(ca=getParentAutoScrollElement(r,!0)));var f=0,p=ca;do{var m=p,h=getRect(m),g=h.top,_=h.bottom,b=h.left,x=h.right,S=h.width,C=h.height,w=void 0,T=void 0,E=m.scrollWidth,D=m.scrollHeight,O=css(m),k=m.scrollLeft,ee=m.scrollTop;m===l?(w=S<E&&(O.overflowX===`auto`||O.overflowX===`scroll`||O.overflowX===`visible`),T=C<D&&(O.overflowY===`auto`||O.overflowY===`scroll`||O.overflowY===`visible`)):(w=S<E&&(O.overflowX===`auto`||O.overflowX===`scroll`),T=C<D&&(O.overflowY===`auto`||O.overflowY===`scroll`));var te=w&&(Math.abs(x-a)<=s&&k+S<E)-(Math.abs(b-a)<=s&&!!k),ne=T&&(Math.abs(_-o)<=s&&ee+C<D)-(Math.abs(g-o)<=s&&!!ee);if(!sa[f])for(var re=0;re<=f;re++)sa[re]||(sa[re]={});(sa[f].vx!=te||sa[f].vy!=ne||sa[f].el!==m)&&(sa[f].el=m,sa[f].vx=te,sa[f].vy=ne,clearInterval(sa[f].pid),(te!=0||ne!=0)&&(u=!0,sa[f].pid=setInterval(function(){i&&this.layer===0&&Sortable.active._onTouchMove(pa);var n=sa[this.layer].vy?sa[this.layer].vy*c:0,r=sa[this.layer].vx?sa[this.layer].vx*c:0;typeof d==`function`&&d.call(Sortable.dragged.parentNode[di],r,n,t,pa,sa[this.layer].el)!==`continue`||scrollBy(sa[this.layer].el,r,n)}.bind({layer:f}),24))),f++}while(n.bubbleScroll&&p!==l&&(p=getParentAutoScrollElement(p,!1)));ua=u}},30),ga=function drop(t){var n=t.originalEvent,r=t.putSortable,i=t.dragEl,a=t.activeSortable,o=t.dispatchSortableEvent,s=t.hideGhostForTarget,c=t.unhideGhostForTarget;if(n){var l=r||a;s();var u=n.changedTouches&&n.changedTouches.length?n.changedTouches[0]:n,d=document.elementFromPoint(u.clientX,u.clientY);c(),l&&!l.el.contains(d)&&(o(`spill`),this.onSpill({dragEl:i,putSortable:r}))}},Revert.prototype={startIndex:null,dragStart:function dragStart(t){this.startIndex=t.oldDraggableIndex},onSpill:function onSpill(t){var n=t.dragEl,r=t.putSortable;this.sortable.captureAnimationState(),r&&r.captureAnimationState();var i=getChild(this.sortable.el,this.startIndex,this.options);i?this.sortable.el.insertBefore(n,i):this.sortable.el.appendChild(n),this.sortable.animateAll(),r&&r.animateAll()},drop:ga},_extends(Revert,{pluginName:`revertOnSpill`}),Remove.prototype={onSpill:function onSpill(t){var n=t.dragEl,r=t.putSortable||this.sortable;r.captureAnimationState(),n.parentNode&&n.parentNode.removeChild(n),r.animateAll()},drop:ga},_extends(Remove,{pluginName:`removeOnSpill`}),$=[],va=[],xa=!1,Sa=!1,Ca=!1,Sortable.mount(new AutoScrollPlugin),Sortable.mount(Remove,Revert)})),Oa=a(o(((t,n)=>{(function webpackUniversalModuleDefinition(i,a){typeof t==`object`&&typeof n==`object`?n.exports=a($r(),(Da(),r(ei))):typeof define==`function`&&define.amd?define([,`sortablejs`],a):typeof t==`object`?t.vuedraggable=a($r(),(Da(),r(ei))):i.vuedraggable=a(i.Vue,i.Sortable)})(typeof self<`u`?self:t,function(t,n){return(function(t){var n={};function __webpack_require__(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,__webpack_require__),i.l=!0,i.exports}return __webpack_require__.m=t,__webpack_require__.c=n,__webpack_require__.d=function(t,n,r){__webpack_require__.o(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:r})},__webpack_require__.r=function(t){typeof Symbol<`u`&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:`Module`}),Object.defineProperty(t,`__esModule`,{value:!0})},__webpack_require__.t=function(t,n){if(n&1&&(t=__webpack_require__(t)),n&8||n&4&&typeof t==`object`&&t&&t.__esModule)return t;var r=Object.create(null);if(__webpack_require__.r(r),Object.defineProperty(r,`default`,{enumerable:!0,value:t}),n&2&&typeof t!=`string`)for(var i in t)__webpack_require__.d(r,i,function(n){return t[n]}.bind(null,i));return r},__webpack_require__.n=function(t){var n=t&&t.__esModule?function getDefault(){return t.default}:function getModuleExports(){return t};return __webpack_require__.d(n,`a`,n),n},__webpack_require__.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},__webpack_require__.p=``,__webpack_require__(__webpack_require__.s=`fb15`)})({"00ee":(function(t,n,r){var i=r(`b622`)(`toStringTag`),a={};a[i]=`z`,t.exports=String(a)===`[object z]`}),"0366":(function(t,n,r){var i=r(`1c0b`);t.exports=function(t,n,r){if(i(t),n===void 0)return t;switch(r){case 0:return function(){return t.call(n)};case 1:return function(r){return t.call(n,r)};case 2:return function(r,i){return t.call(n,r,i)};case 3:return function(r,i,a){return t.call(n,r,i,a)}}return function(){return t.apply(n,arguments)}}}),"057f":(function(t,n,r){var i=r(`fc6a`),a=r(`241c`).f,o={}.toString,s=typeof window==`object`&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],getWindowNames=function(t){try{return a(t)}catch{return s.slice()}};t.exports.f=function getOwnPropertyNames(t){return s&&o.call(t)==`[object Window]`?getWindowNames(t):a(i(t))}}),"06cf":(function(t,n,r){var i=r(`83ab`),a=r(`d1e7`),o=r(`5c6c`),s=r(`fc6a`),c=r(`c04e`),l=r(`5135`),u=r(`0cfb`),d=Object.getOwnPropertyDescriptor;n.f=i?d:function getOwnPropertyDescriptor(t,n){if(t=s(t),n=c(n,!0),u)try{return d(t,n)}catch{}if(l(t,n))return o(!a.f.call(t,n),t[n])}}),"0cfb":(function(t,n,r){var i=r(`83ab`),a=r(`d039`),o=r(`cc12`);t.exports=!i&&!a(function(){return Object.defineProperty(o(`div`),`a`,{get:function(){return 7}}).a!=7})}),"13d5":(function(t,n,r){var i=r(`23e7`),a=r(`d58f`).left,o=r(`a640`),s=r(`ae40`),c=o(`reduce`),l=s(`reduce`,{1:0});i({target:`Array`,proto:!0,forced:!c||!l},{reduce:function reduce(t){return a(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})}),"14c3":(function(t,n,r){var i=r(`c6b6`),a=r(`9263`);t.exports=function(t,n){var r=t.exec;if(typeof r==`function`){var o=r.call(t,n);if(typeof o!=`object`)throw TypeError(`RegExp exec method returned something other than an Object or null`);return o}if(i(t)!==`RegExp`)throw TypeError(`RegExp#exec called on incompatible receiver`);return a.call(t,n)}}),"159b":(function(t,n,r){var i=r(`da84`),a=r(`fdbc`),o=r(`17c2`),s=r(`9112`);for(var c in a){var l=i[c],u=l&&l.prototype;if(u&&u.forEach!==o)try{s(u,`forEach`,o)}catch{u.forEach=o}}}),"17c2":(function(t,n,r){var i=r(`b727`).forEach,a=r(`a640`),o=r(`ae40`),s=a(`forEach`),c=o(`forEach`);t.exports=!s||!c?function forEach(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}:[].forEach}),"1be4":(function(t,n,r){t.exports=r(`d066`)(`document`,`documentElement`)}),"1c0b":(function(t,n){t.exports=function(t){if(typeof t!=`function`)throw TypeError(String(t)+` is not a function`);return t}}),"1c7e":(function(t,n,r){var i=r(`b622`)(`iterator`),a=!1;try{var o=0,s={next:function(){return{done:!!o++}},return:function(){a=!0}};s[i]=function(){return this},Array.from(s,function(){throw 2})}catch{}t.exports=function(t,n){if(!n&&!a)return!1;var r=!1;try{var o={};o[i]=function(){return{next:function(){return{done:r=!0}}}},t(o)}catch{}return r}}),"1d80":(function(t,n){t.exports=function(t){if(t==null)throw TypeError(`Can't call method on `+t);return t}}),"1dde":(function(t,n,r){var i=r(`d039`),a=r(`b622`),o=r(`2d00`),s=a(`species`);t.exports=function(t){return o>=51||!i(function(){var n=[],r=n.constructor={};return r[s]=function(){return{foo:1}},n[t](Boolean).foo!==1})}}),"23cb":(function(t,n,r){var i=r(`a691`),a=Math.max,o=Math.min;t.exports=function(t,n){var r=i(t);return r<0?a(r+n,0):o(r,n)}}),"23e7":(function(t,n,r){var i=r(`da84`),a=r(`06cf`).f,o=r(`9112`),s=r(`6eeb`),c=r(`ce4e`),l=r(`e893`),u=r(`94ca`);t.exports=function(t,n){var r=t.target,d=t.global,f=t.stat,p,m=d?i:f?i[r]||c(r,{}):(i[r]||{}).prototype,h,g,_,b;if(m)for(h in n){if(_=n[h],t.noTargetGet?(b=a(m,h),g=b&&b.value):g=m[h],p=u(d?h:r+(f?`.`:`#`)+h,t.forced),!p&&g!==void 0){if(typeof _==typeof g)continue;l(_,g)}(t.sham||g&&g.sham)&&o(_,`sham`,!0),s(m,h,_,t)}}}),"241c":(function(t,n,r){var i=r(`ca84`),a=r(`7839`).concat(`length`,`prototype`);n.f=Object.getOwnPropertyNames||function getOwnPropertyNames(t){return i(t,a)}}),"25f0":(function(t,n,r){var i=r(`6eeb`),a=r(`825a`),o=r(`d039`),s=r(`ad6d`),c=`toString`,l=RegExp.prototype,u=l[c],d=o(function(){return u.call({source:`a`,flags:`b`})!=`/a/b`}),f=u.name!=c;(d||f)&&i(RegExp.prototype,c,function toString(){var t=a(this),n=String(t.source),r=t.flags,i=String(r===void 0&&t instanceof RegExp&&!(`flags`in l)?s.call(t):r);return`/`+n+`/`+i},{unsafe:!0})}),"2ca0":(function(t,n,r){var i=r(`23e7`),a=r(`06cf`).f,o=r(`50c4`),s=r(`5a34`),c=r(`1d80`),l=r(`ab13`),u=r(`c430`),d=``.startsWith,f=Math.min,p=l(`startsWith`);i({target:`String`,proto:!0,forced:!(!u&&!p&&function(){var t=a(String.prototype,`startsWith`);return t&&!t.writable}())&&!p},{startsWith:function startsWith(t){var n=String(c(this));s(t);var r=o(f(arguments.length>1?arguments[1]:void 0,n.length)),i=String(t);return d?d.call(n,i,r):n.slice(r,r+i.length)===i}})}),"2d00":(function(t,n,r){var i=r(`da84`),a=r(`342f`),o=i.process,s=o&&o.versions,c=s&&s.v8,l,u;c?(l=c.split(`.`),u=l[0]+l[1]):a&&(l=a.match(/Edge\/(\d+)/),(!l||l[1]>=74)&&(l=a.match(/Chrome\/(\d+)/),l&&(u=l[1]))),t.exports=u&&+u}),"342f":(function(t,n,r){t.exports=r(`d066`)(`navigator`,`userAgent`)||``}),"35a1":(function(t,n,r){var i=r(`f5df`),a=r(`3f8c`),o=r(`b622`)(`iterator`);t.exports=function(t){if(t!=null)return t[o]||t[`@@iterator`]||a[i(t)]}}),"37e8":(function(t,n,r){var i=r(`83ab`),a=r(`9bf2`),o=r(`825a`),s=r(`df75`);t.exports=i?Object.defineProperties:function defineProperties(t,n){o(t);for(var r=s(n),i=r.length,c=0,l;i>c;)a.f(t,l=r[c++],n[l]);return t}}),"3bbe":(function(t,n,r){var i=r(`861d`);t.exports=function(t){if(!i(t)&&t!==null)throw TypeError(`Can't set `+String(t)+` as a prototype`);return t}}),"3ca3":(function(t,n,r){var i=r(`6547`).charAt,a=r(`69f3`),o=r(`7dd0`),s=`String Iterator`,c=a.set,l=a.getterFor(s);o(String,`String`,function(t){c(this,{type:s,string:String(t),index:0})},function next(){var t=l(this),n=t.string,r=t.index,a;return r>=n.length?{value:void 0,done:!0}:(a=i(n,r),t.index+=a.length,{value:a,done:!1})})}),"3f8c":(function(t,n){t.exports={}}),4160:(function(t,n,r){var i=r(`23e7`),a=r(`17c2`);i({target:`Array`,proto:!0,forced:[].forEach!=a},{forEach:a})}),"428f":(function(t,n,r){t.exports=r(`da84`)}),"44ad":(function(t,n,r){var i=r(`d039`),a=r(`c6b6`),o=``.split;t.exports=i(function(){return!Object(`z`).propertyIsEnumerable(0)})?function(t){return a(t)==`String`?o.call(t,``):Object(t)}:Object}),"44d2":(function(t,n,r){var i=r(`b622`),a=r(`7c73`),o=r(`9bf2`),s=i(`unscopables`),c=Array.prototype;c[s]??o.f(c,s,{configurable:!0,value:a(null)}),t.exports=function(t){c[s][t]=!0}}),"44e7":(function(t,n,r){var i=r(`861d`),a=r(`c6b6`),o=r(`b622`)(`match`);t.exports=function(t){var n;return i(t)&&((n=t[o])===void 0?a(t)==`RegExp`:!!n)}}),4930:(function(t,n,r){var i=r(`d039`);t.exports=!!Object.getOwnPropertySymbols&&!i(function(){return!String(Symbol())})}),"4d64":(function(t,n,r){var i=r(`fc6a`),a=r(`50c4`),o=r(`23cb`),createMethod=function(t){return function(n,r,s){var c=i(n),l=a(c.length),u=o(s,l),d;if(t&&r!=r){for(;l>u;)if(d=c[u++],d!=d)return!0}else for(;l>u;u++)if((t||u in c)&&c[u]===r)return t||u||0;return!t&&-1}};t.exports={includes:createMethod(!0),indexOf:createMethod(!1)}}),"4de4":(function(t,n,r){var i=r(`23e7`),a=r(`b727`).filter,o=r(`1dde`),s=r(`ae40`),c=o(`filter`),l=s(`filter`);i({target:`Array`,proto:!0,forced:!c||!l},{filter:function filter(t){return a(this,t,arguments.length>1?arguments[1]:void 0)}})}),"4df4":(function(t,n,r){var i=r(`0366`),a=r(`7b0b`),o=r(`9bdd`),s=r(`e95a`),c=r(`50c4`),l=r(`8418`),u=r(`35a1`);t.exports=function from(t){var n=a(t),r=typeof this==`function`?this:Array,d=arguments.length,f=d>1?arguments[1]:void 0,p=f!==void 0,m=u(n),h=0,g,_,b,x,S,C;if(p&&(f=i(f,d>2?arguments[2]:void 0,2)),m!=null&&!(r==Array&&s(m)))for(x=m.call(n),S=x.next,_=new r;!(b=S.call(x)).done;h++)C=p?o(x,f,[b.value,h],!0):b.value,l(_,h,C);else for(g=c(n.length),_=new r(g);g>h;h++)C=p?f(n[h],h):n[h],l(_,h,C);return _.length=h,_}}),"4fad":(function(t,n,r){var i=r(`23e7`),a=r(`6f53`).entries;i({target:`Object`,stat:!0},{entries:function entries(t){return a(t)}})}),"50c4":(function(t,n,r){var i=r(`a691`),a=Math.min;t.exports=function(t){return t>0?a(i(t),9007199254740991):0}}),5135:(function(t,n){var r={}.hasOwnProperty;t.exports=function(t,n){return r.call(t,n)}}),5319:(function(t,n,r){var i=r(`d784`),a=r(`825a`),o=r(`7b0b`),s=r(`50c4`),c=r(`a691`),l=r(`1d80`),u=r(`8aa5`),d=r(`14c3`),f=Math.max,p=Math.min,m=Math.floor,h=/\$([$&'`]|\d\d?|<[^>]*>)/g,g=/\$([$&'`]|\d\d?)/g,maybeToString=function(t){return t===void 0?t:String(t)};i(`replace`,2,function(t,n,r,i){var _=i.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,b=i.REPLACE_KEEPS_$0,x=_?`$`:`$0`;return[function replace(r,i){var a=l(this),o=r?.[t];return o===void 0?n.call(String(a),r,i):o.call(r,a,i)},function(t,i){if(!_&&b||typeof i==`string`&&i.indexOf(x)===-1){var o=r(n,t,this,i);if(o.done)return o.value}var l=a(t),m=String(this),h=typeof i==`function`;h||(i=String(i));var g=l.global;if(g){var S=l.unicode;l.lastIndex=0}for(var C=[];;){var w=d(l,m);if(w===null||(C.push(w),!g))break;String(w[0])===``&&(l.lastIndex=u(m,s(l.lastIndex),S))}for(var T=``,E=0,D=0;D<C.length;D++){w=C[D];for(var O=String(w[0]),k=f(p(c(w.index),m.length),0),ee=[],te=1;te<w.length;te++)ee.push(maybeToString(w[te]));var ne=w.groups;if(h){var re=[O].concat(ee,k,m);ne!==void 0&&re.push(ne);var ie=String(i.apply(void 0,re))}else ie=getSubstitution(O,m,k,ee,ne,i);k>=E&&(T+=m.slice(E,k)+ie,E=k+O.length)}return T+m.slice(E)}];function getSubstitution(t,r,i,a,s,c){var l=i+t.length,u=a.length,d=g;return s!==void 0&&(s=o(s),d=h),n.call(c,d,function(n,o){var c;switch(o.charAt(0)){case`$`:return`$`;case`&`:return t;case"`":return r.slice(0,i);case`'`:return r.slice(l);case`<`:c=s[o.slice(1,-1)];break;default:var d=+o;if(d===0)return n;if(d>u){var f=m(d/10);return f===0?n:f<=u?a[f-1]===void 0?o.charAt(1):a[f-1]+o.charAt(1):n}c=a[d-1]}return c===void 0?``:c})}})}),5692:(function(t,n,r){var i=r(`c430`),a=r(`c6cd`);(t.exports=function(t,n){return a[t]||(a[t]=n===void 0?{}:n)})(`versions`,[]).push({version:`3.6.5`,mode:i?`pure`:`global`,copyright:`© 2020 Denis Pushkarev (zloirock.ru)`})}),"56ef":(function(t,n,r){var i=r(`d066`),a=r(`241c`),o=r(`7418`),s=r(`825a`);t.exports=i(`Reflect`,`ownKeys`)||function ownKeys(t){var n=a.f(s(t)),r=o.f;return r?n.concat(r(t)):n}}),"5a34":(function(t,n,r){var i=r(`44e7`);t.exports=function(t){if(i(t))throw TypeError(`The method doesn't accept regular expressions`);return t}}),"5c6c":(function(t,n){t.exports=function(t,n){return{enumerable:!(t&1),configurable:!(t&2),writable:!(t&4),value:n}}}),"5db7":(function(t,n,r){var i=r(`23e7`),a=r(`a2bf`),o=r(`7b0b`),s=r(`50c4`),c=r(`1c0b`),l=r(`65f0`);i({target:`Array`,proto:!0},{flatMap:function flatMap(t){var n=o(this),r=s(n.length),i;return c(t),i=l(n,0),i.length=a(i,n,n,r,0,1,t,arguments.length>1?arguments[1]:void 0),i}})}),6547:(function(t,n,r){var i=r(`a691`),a=r(`1d80`),createMethod=function(t){return function(n,r){var o=String(a(n)),s=i(r),c=o.length,l,u;return s<0||s>=c?t?``:void 0:(l=o.charCodeAt(s),l<55296||l>56319||s+1===c||(u=o.charCodeAt(s+1))<56320||u>57343?t?o.charAt(s):l:t?o.slice(s,s+2):(l-55296<<10)+(u-56320)+65536)}};t.exports={codeAt:createMethod(!1),charAt:createMethod(!0)}}),"65f0":(function(t,n,r){var i=r(`861d`),a=r(`e8b5`),o=r(`b622`)(`species`);t.exports=function(t,n){var r;return a(t)&&(r=t.constructor,typeof r==`function`&&(r===Array||a(r.prototype))?r=void 0:i(r)&&(r=r[o],r===null&&(r=void 0))),new(r===void 0?Array:r)(n===0?0:n)}}),"69f3":(function(t,n,r){var i=r(`7f9a`),a=r(`da84`),o=r(`861d`),s=r(`9112`),c=r(`5135`),l=r(`f772`),u=r(`d012`),d=a.WeakMap,set,get,has,enforce=function(t){return has(t)?get(t):set(t,{})},getterFor=function(t){return function(n){var r;if(!o(n)||(r=get(n)).type!==t)throw TypeError(`Incompatible receiver, `+t+` required`);return r}};if(i){var f=new d,p=f.get,m=f.has,h=f.set;set=function(t,n){return h.call(f,t,n),n},get=function(t){return p.call(f,t)||{}},has=function(t){return m.call(f,t)}}else{var g=l(`state`);u[g]=!0,set=function(t,n){return s(t,g,n),n},get=function(t){return c(t,g)?t[g]:{}},has=function(t){return c(t,g)}}t.exports={set,get,has,enforce,getterFor}}),"6eeb":(function(t,n,r){var i=r(`da84`),a=r(`9112`),o=r(`5135`),s=r(`ce4e`),c=r(`8925`),l=r(`69f3`),u=l.get,d=l.enforce,f=String(String).split(`String`);(t.exports=function(t,n,r,c){var l=c?!!c.unsafe:!1,u=c?!!c.enumerable:!1,p=c?!!c.noTargetGet:!1;if(typeof r==`function`&&(typeof n==`string`&&!o(r,`name`)&&a(r,`name`,n),d(r).source=f.join(typeof n==`string`?n:``)),t===i){u?t[n]=r:s(n,r);return}else l?!p&&t[n]&&(u=!0):delete t[n];u?t[n]=r:a(t,n,r)})(Function.prototype,`toString`,function toString(){return typeof this==`function`&&u(this).source||c(this)})}),"6f53":(function(t,n,r){var i=r(`83ab`),a=r(`df75`),o=r(`fc6a`),s=r(`d1e7`).f,createMethod=function(t){return function(n){for(var r=o(n),c=a(r),l=c.length,u=0,d=[],f;l>u;)f=c[u++],(!i||s.call(r,f))&&d.push(t?[f,r[f]]:r[f]);return d}};t.exports={entries:createMethod(!0),values:createMethod(!1)}}),"73d9":(function(t,n,r){r(`44d2`)(`flatMap`)}),7418:(function(t,n){n.f=Object.getOwnPropertySymbols}),"746f":(function(t,n,r){var i=r(`428f`),a=r(`5135`),o=r(`e538`),s=r(`9bf2`).f;t.exports=function(t){var n=i.Symbol||(i.Symbol={});a(n,t)||s(n,t,{value:o.f(t)})}}),7839:(function(t,n){t.exports=[`constructor`,`hasOwnProperty`,`isPrototypeOf`,`propertyIsEnumerable`,`toLocaleString`,`toString`,`valueOf`]}),"7b0b":(function(t,n,r){var i=r(`1d80`);t.exports=function(t){return Object(i(t))}}),"7c73":(function(t,n,r){var i=r(`825a`),a=r(`37e8`),o=r(`7839`),s=r(`d012`),c=r(`1be4`),l=r(`cc12`),u=r(`f772`),d=`>`,f=`<`,p=`prototype`,m=`script`,h=u(`IE_PROTO`),EmptyConstructor=function(){},scriptTag=function(t){return f+m+d+t+f+`/`+m+d},NullProtoObjectViaActiveX=function(t){t.write(scriptTag(``)),t.close();var n=t.parentWindow.Object;return t=null,n},NullProtoObjectViaIFrame=function(){var t=l(`iframe`),n=`java`+m+`:`,r;return t.style.display=`none`,c.appendChild(t),t.src=String(n),r=t.contentWindow.document,r.open(),r.write(scriptTag(`document.F=Object`)),r.close(),r.F},g,NullProtoObject=function(){try{g=document.domain&&new ActiveXObject(`htmlfile`)}catch{}NullProtoObject=g?NullProtoObjectViaActiveX(g):NullProtoObjectViaIFrame();for(var t=o.length;t--;)delete NullProtoObject[p][o[t]];return NullProtoObject()};s[h]=!0,t.exports=Object.create||function create(t,n){var r;return t===null?r=NullProtoObject():(EmptyConstructor[p]=i(t),r=new EmptyConstructor,EmptyConstructor[p]=null,r[h]=t),n===void 0?r:a(r,n)}}),"7dd0":(function(t,n,r){var i=r(`23e7`),a=r(`9ed3`),o=r(`e163`),s=r(`d2bb`),c=r(`d44e`),l=r(`9112`),u=r(`6eeb`),d=r(`b622`),f=r(`c430`),p=r(`3f8c`),m=r(`ae93`),h=m.IteratorPrototype,g=m.BUGGY_SAFARI_ITERATORS,_=d(`iterator`),b=`keys`,x=`values`,S=`entries`,returnThis=function(){return this};t.exports=function(t,n,r,d,m,C,w){a(r,n,d);var getIterationMethod=function(t){if(t===m&&k)return k;if(!g&&t in D)return D[t];switch(t){case b:return function keys(){return new r(this,t)};case x:return function values(){return new r(this,t)};case S:return function entries(){return new r(this,t)}}return function(){return new r(this)}},T=n+` Iterator`,E=!1,D=t.prototype,O=D[_]||D[`@@iterator`]||m&&D[m],k=!g&&O||getIterationMethod(m),ee=n==`Array`&&D.entries||O,te,ne,re;if(ee&&(te=o(ee.call(new t)),h!==Object.prototype&&te.next&&(!f&&o(te)!==h&&(s?s(te,h):typeof te[_]!=`function`&&l(te,_,returnThis)),c(te,T,!0,!0),f&&(p[T]=returnThis))),m==x&&O&&O.name!==x&&(E=!0,k=function values(){return O.call(this)}),(!f||w)&&D[_]!==k&&l(D,_,k),p[n]=k,m)if(ne={values:getIterationMethod(x),keys:C?k:getIterationMethod(b),entries:getIterationMethod(S)},w)for(re in ne)(g||E||!(re in D))&&u(D,re,ne[re]);else i({target:n,proto:!0,forced:g||E},ne);return ne}}),"7f9a":(function(t,n,r){var i=r(`da84`),a=r(`8925`),o=i.WeakMap;t.exports=typeof o==`function`&&/native code/.test(a(o))}),"825a":(function(t,n,r){var i=r(`861d`);t.exports=function(t){if(!i(t))throw TypeError(String(t)+` is not an object`);return t}}),"83ab":(function(t,n,r){t.exports=!r(`d039`)(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})}),8418:(function(t,n,r){var i=r(`c04e`),a=r(`9bf2`),o=r(`5c6c`);t.exports=function(t,n,r){var s=i(n);s in t?a.f(t,s,o(0,r)):t[s]=r}}),"861d":(function(t,n){t.exports=function(t){return typeof t==`object`?t!==null:typeof t==`function`}}),8875:(function(t,n,r){var i,a,o;(function(r,s){a=[],i=s,o=typeof i==`function`?i.apply(n,a):i,o!==void 0&&(t.exports=o)})(typeof self<`u`?self:this,function(){function getCurrentScript(){var t=Object.getOwnPropertyDescriptor(document,`currentScript`);if(!t&&`currentScript`in document&&document.currentScript||t&&t.get!==getCurrentScript&&document.currentScript)return document.currentScript;try{throw Error()}catch(t){var n=/.*at [^(]*\((.*):(.+):(.+)\)$/gi.exec(t.stack)||/@([^@]*):(\d+):(\d+)\s*$/gi.exec(t.stack),r=n&&n[1]||!1,i=n&&n[2]||!1,a=document.location.href.replace(document.location.hash,``),o,s,c,l=document.getElementsByTagName(`script`);r===a&&(o=document.documentElement.outerHTML,s=RegExp(`(?:[^\\n]+?\\n){0,`+(i-2)+`}[^<]*<script>([\\d\\D]*?)<\\/script>[\\d\\D]*`,`i`),c=o.replace(s,`$1`).trim());for(var u=0;u<l.length;u++)if(l[u].readyState===`interactive`||l[u].src===r||r===a&&l[u].innerHTML&&l[u].innerHTML.trim()===c)return l[u];return null}}return getCurrentScript})}),8925:(function(t,n,r){var i=r(`c6cd`),a=Function.toString;typeof i.inspectSource!=`function`&&(i.inspectSource=function(t){return a.call(t)}),t.exports=i.inspectSource}),"8aa5":(function(t,n,r){var i=r(`6547`).charAt;t.exports=function(t,n,r){return n+(r?i(t,n).length:1)}}),"8bbf":(function(n,r){n.exports=t}),"90e3":(function(t,n){var r=0,i=Math.random();t.exports=function(t){return`Symbol(`+String(t===void 0?``:t)+`)_`+(++r+i).toString(36)}}),9112:(function(t,n,r){var i=r(`83ab`),a=r(`9bf2`),o=r(`5c6c`);t.exports=i?function(t,n,r){return a.f(t,n,o(1,r))}:function(t,n,r){return t[n]=r,t}}),9263:(function(t,n,r){var i=r(`ad6d`),a=r(`9f7f`),o=RegExp.prototype.exec,s=String.prototype.replace,c=o,l=(function(){var t=/a/,n=/b*/g;return o.call(t,`a`),o.call(n,`a`),t.lastIndex!==0||n.lastIndex!==0})(),u=a.UNSUPPORTED_Y||a.BROKEN_CARET,d=/()??/.exec(``)[1]!==void 0;(l||d||u)&&(c=function exec(t){var n=this,r,a,c,f,p=u&&n.sticky,m=i.call(n),h=n.source,g=0,_=t;return p&&(m=m.replace(`y`,``),m.indexOf(`g`)===-1&&(m+=`g`),_=String(t).slice(n.lastIndex),n.lastIndex>0&&(!n.multiline||n.multiline&&t[n.lastIndex-1]!==`
|
|
12
12
|
`)&&(h=`(?: `+h+`)`,_=` `+_,g++),a=RegExp(`^(?:`+h+`)`,m)),d&&(a=RegExp(`^`+h+`$(?!\\s)`,m)),l&&(r=n.lastIndex),c=o.call(p?a:n,_),p?c?(c.input=c.input.slice(g),c[0]=c[0].slice(g),c.index=n.lastIndex,n.lastIndex+=c[0].length):n.lastIndex=0:l&&c&&(n.lastIndex=n.global?c.index+c[0].length:r),d&&c&&c.length>1&&s.call(c[0],a,function(){for(f=1;f<arguments.length-2;f++)arguments[f]===void 0&&(c[f]=void 0)}),c}),t.exports=c}),"94ca":(function(t,n,r){var i=r(`d039`),a=/#|\.prototype\./,isForced=function(t,n){var r=s[o(t)];return r==l?!0:r==c?!1:typeof n==`function`?i(n):!!n},o=isForced.normalize=function(t){return String(t).replace(a,`.`).toLowerCase()},s=isForced.data={},c=isForced.NATIVE=`N`,l=isForced.POLYFILL=`P`;t.exports=isForced}),"99af":(function(t,n,r){var i=r(`23e7`),a=r(`d039`),o=r(`e8b5`),s=r(`861d`),c=r(`7b0b`),l=r(`50c4`),u=r(`8418`),d=r(`65f0`),f=r(`1dde`),p=r(`b622`),m=r(`2d00`),h=p(`isConcatSpreadable`),g=9007199254740991,_=`Maximum allowed index exceeded`,b=m>=51||!a(function(){var t=[];return t[h]=!1,t.concat()[0]!==t}),x=f(`concat`),isConcatSpreadable=function(t){if(!s(t))return!1;var n=t[h];return n===void 0?o(t):!!n};i({target:`Array`,proto:!0,forced:!b||!x},{concat:function concat(t){var n=c(this),r=d(n,0),i=0,a,o,s,f,p;for(a=-1,s=arguments.length;a<s;a++)if(p=a===-1?n:arguments[a],isConcatSpreadable(p)){if(f=l(p.length),i+f>g)throw TypeError(_);for(o=0;o<f;o++,i++)o in p&&u(r,i,p[o])}else{if(i>=g)throw TypeError(_);u(r,i++,p)}return r.length=i,r}})}),"9bdd":(function(t,n,r){var i=r(`825a`);t.exports=function(t,n,r,a){try{return a?n(i(r)[0],r[1]):n(r)}catch(n){var o=t.return;throw o!==void 0&&i(o.call(t)),n}}}),"9bf2":(function(t,n,r){var i=r(`83ab`),a=r(`0cfb`),o=r(`825a`),s=r(`c04e`),c=Object.defineProperty;n.f=i?c:function defineProperty(t,n,r){if(o(t),n=s(n,!0),o(r),a)try{return c(t,n,r)}catch{}if(`get`in r||`set`in r)throw TypeError(`Accessors not supported`);return`value`in r&&(t[n]=r.value),t}}),"9ed3":(function(t,n,r){var i=r(`ae93`).IteratorPrototype,a=r(`7c73`),o=r(`5c6c`),s=r(`d44e`),c=r(`3f8c`),returnThis=function(){return this};t.exports=function(t,n,r){var l=n+` Iterator`;return t.prototype=a(i,{next:o(1,r)}),s(t,l,!1,!0),c[l]=returnThis,t}}),"9f7f":(function(t,n,r){var i=r(`d039`);function RE(t,n){return RegExp(t,n)}n.UNSUPPORTED_Y=i(function(){var t=RE(`a`,`y`);return t.lastIndex=2,t.exec(`abcd`)!=null}),n.BROKEN_CARET=i(function(){var t=RE(`^r`,`gy`);return t.lastIndex=2,t.exec(`str`)!=null})}),a2bf:(function(t,n,r){var i=r(`e8b5`),a=r(`50c4`),o=r(`0366`),flattenIntoArray=function(t,n,r,s,c,l,u,d){for(var f=c,p=0,m=u?o(u,d,3):!1,h;p<s;){if(p in r){if(h=m?m(r[p],p,n):r[p],l>0&&i(h))f=flattenIntoArray(t,n,h,a(h.length),f,l-1)-1;else{if(f>=9007199254740991)throw TypeError(`Exceed the acceptable array length`);t[f]=h}f++}p++}return f};t.exports=flattenIntoArray}),a352:(function(t,r){t.exports=n}),a434:(function(t,n,r){var i=r(`23e7`),a=r(`23cb`),o=r(`a691`),s=r(`50c4`),c=r(`7b0b`),l=r(`65f0`),u=r(`8418`),d=r(`1dde`),f=r(`ae40`),p=d(`splice`),m=f(`splice`,{ACCESSORS:!0,0:0,1:2}),h=Math.max,g=Math.min,_=9007199254740991,b=`Maximum allowed length exceeded`;i({target:`Array`,proto:!0,forced:!p||!m},{splice:function splice(t,n){var r=c(this),i=s(r.length),d=a(t,i),f=arguments.length,p,m,x,S,C,w;if(f===0?p=m=0:f===1?(p=0,m=i-d):(p=f-2,m=g(h(o(n),0),i-d)),i+p-m>_)throw TypeError(b);for(x=l(r,m),S=0;S<m;S++)C=d+S,C in r&&u(x,S,r[C]);if(x.length=m,p<m){for(S=d;S<i-m;S++)C=S+m,w=S+p,C in r?r[w]=r[C]:delete r[w];for(S=i;S>i-m+p;S--)delete r[S-1]}else if(p>m)for(S=i-m;S>d;S--)C=S+m-1,w=S+p-1,C in r?r[w]=r[C]:delete r[w];for(S=0;S<p;S++)r[S+d]=arguments[S+2];return r.length=i-m+p,x}})}),a4d3:(function(t,n,r){var i=r(`23e7`),a=r(`da84`),o=r(`d066`),s=r(`c430`),c=r(`83ab`),l=r(`4930`),u=r(`fdbf`),d=r(`d039`),f=r(`5135`),p=r(`e8b5`),m=r(`861d`),h=r(`825a`),g=r(`7b0b`),_=r(`fc6a`),b=r(`c04e`),x=r(`5c6c`),S=r(`7c73`),C=r(`df75`),w=r(`241c`),T=r(`057f`),E=r(`7418`),D=r(`06cf`),O=r(`9bf2`),k=r(`d1e7`),ee=r(`9112`),te=r(`6eeb`),ne=r(`5692`),re=r(`f772`),ie=r(`d012`),ae=r(`90e3`),A=r(`b622`),oe=r(`e538`),j=r(`746f`),se=r(`d44e`),ce=r(`69f3`),N=r(`b727`).forEach,P=re(`hidden`),le=`Symbol`,I=`prototype`,ue=A(`toPrimitive`),de=ce.set,R=ce.getterFor(le),fe=Object[I],pe=a.Symbol,me=o(`JSON`,`stringify`),he=D.f,ge=O.f,z=T.f,_e=k.f,ve=ne(`symbols`),ye=ne(`op-symbols`),be=ne(`string-to-symbol-registry`),xe=ne(`symbol-to-string-registry`),Se=ne(`wks`),Ce=a.QObject,we=!Ce||!Ce[I]||!Ce[I].findChild,Te=c&&d(function(){return S(ge({},`a`,{get:function(){return ge(this,`a`,{value:7}).a}})).a!=7})?function(t,n,r){var i=he(fe,n);i&&delete fe[n],ge(t,n,r),i&&t!==fe&&ge(fe,n,i)}:ge,wrap=function(t,n){var r=ve[t]=S(pe[I]);return de(r,{type:le,tag:t,description:n}),c||(r.description=n),r},Ee=u?function(t){return typeof t==`symbol`}:function(t){return Object(t)instanceof pe},De=function defineProperty(t,n,r){t===fe&&De(ye,n,r),h(t);var i=b(n,!0);return h(r),f(ve,i)?(r.enumerable?(f(t,P)&&t[P][i]&&(t[P][i]=!1),r=S(r,{enumerable:x(0,!1)})):(f(t,P)||ge(t,P,x(1,{})),t[P][i]=!0),Te(t,i,r)):ge(t,i,r)},Oe=function defineProperties(t,n){h(t);var r=_(n);return N(C(r).concat(Me(r)),function(n){(!c||H.call(r,n))&&De(t,n,r[n])}),t},ke=function create(t,n){return n===void 0?S(t):Oe(S(t),n)},H=function propertyIsEnumerable(t){var n=b(t,!0),r=_e.call(this,n);return this===fe&&f(ve,n)&&!f(ye,n)?!1:r||!f(this,n)||!f(ve,n)||f(this,P)&&this[P][n]?r:!0},Ae=function getOwnPropertyDescriptor(t,n){var r=_(t),i=b(n,!0);if(!(r===fe&&f(ve,i)&&!f(ye,i))){var a=he(r,i);return a&&f(ve,i)&&!(f(r,P)&&r[P][i])&&(a.enumerable=!0),a}},je=function getOwnPropertyNames(t){var n=z(_(t)),r=[];return N(n,function(t){!f(ve,t)&&!f(ie,t)&&r.push(t)}),r},Me=function getOwnPropertySymbols(t){var n=t===fe,r=z(n?ye:_(t)),i=[];return N(r,function(t){f(ve,t)&&(!n||f(fe,t))&&i.push(ve[t])}),i};l||(pe=function Symbol(){if(this instanceof pe)throw TypeError(`Symbol is not a constructor`);var t=!arguments.length||arguments[0]===void 0?void 0:String(arguments[0]),n=ae(t),setter=function(t){this===fe&&setter.call(ye,t),f(this,P)&&f(this[P],n)&&(this[P][n]=!1),Te(this,n,x(1,t))};return c&&we&&Te(fe,n,{configurable:!0,set:setter}),wrap(n,t)},te(pe[I],`toString`,function toString(){return R(this).tag}),te(pe,`withoutSetter`,function(t){return wrap(ae(t),t)}),k.f=H,O.f=De,D.f=Ae,w.f=T.f=je,E.f=Me,oe.f=function(t){return wrap(A(t),t)},c&&(ge(pe[I],`description`,{configurable:!0,get:function description(){return R(this).description}}),s||te(fe,`propertyIsEnumerable`,H,{unsafe:!0}))),i({global:!0,wrap:!0,forced:!l,sham:!l},{Symbol:pe}),N(C(Se),function(t){j(t)}),i({target:le,stat:!0,forced:!l},{for:function(t){var n=String(t);if(f(be,n))return be[n];var r=pe(n);return be[n]=r,xe[r]=n,r},keyFor:function keyFor(t){if(!Ee(t))throw TypeError(t+` is not a symbol`);if(f(xe,t))return xe[t]},useSetter:function(){we=!0},useSimple:function(){we=!1}}),i({target:`Object`,stat:!0,forced:!l,sham:!c},{create:ke,defineProperty:De,defineProperties:Oe,getOwnPropertyDescriptor:Ae}),i({target:`Object`,stat:!0,forced:!l},{getOwnPropertyNames:je,getOwnPropertySymbols:Me}),i({target:`Object`,stat:!0,forced:d(function(){E.f(1)})},{getOwnPropertySymbols:function getOwnPropertySymbols(t){return E.f(g(t))}}),me&&i({target:`JSON`,stat:!0,forced:!l||d(function(){var t=pe();return me([t])!=`[null]`||me({a:t})!=`{}`||me(Object(t))!=`{}`})},{stringify:function stringify(t,replacer,n){for(var r=[t],i=1,a;arguments.length>i;)r.push(arguments[i++]);if(a=replacer,!(!m(replacer)&&t===void 0||Ee(t)))return p(replacer)||(replacer=function(t,n){if(typeof a==`function`&&(n=a.call(this,t,n)),!Ee(n))return n}),r[1]=replacer,me.apply(null,r)}}),pe[I][ue]||ee(pe[I],ue,pe[I].valueOf),se(pe,le),ie[P]=!0}),a630:(function(t,n,r){var i=r(`23e7`),a=r(`4df4`);i({target:`Array`,stat:!0,forced:!r(`1c7e`)(function(t){Array.from(t)})},{from:a})}),a640:(function(t,n,r){var i=r(`d039`);t.exports=function(t,n){var r=[][t];return!!r&&i(function(){r.call(null,n||function(){throw 1},1)})}}),a691:(function(t,n){var r=Math.ceil,i=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?i:r)(t)}}),ab13:(function(t,n,r){var i=r(`b622`)(`match`);t.exports=function(t){var n=/./;try{`/./`[t](n)}catch{try{return n[i]=!1,`/./`[t](n)}catch{}}return!1}}),ac1f:(function(t,n,r){var i=r(`23e7`),a=r(`9263`);i({target:`RegExp`,proto:!0,forced:/./.exec!==a},{exec:a})}),ad6d:(function(t,n,r){var i=r(`825a`);t.exports=function(){var t=i(this),n=``;return t.global&&(n+=`g`),t.ignoreCase&&(n+=`i`),t.multiline&&(n+=`m`),t.dotAll&&(n+=`s`),t.unicode&&(n+=`u`),t.sticky&&(n+=`y`),n}}),ae40:(function(t,n,r){var i=r(`83ab`),a=r(`d039`),o=r(`5135`),s=Object.defineProperty,c={},thrower=function(t){throw t};t.exports=function(t,n){if(o(c,t))return c[t];n||(n={});var r=[][t],l=o(n,`ACCESSORS`)?n.ACCESSORS:!1,u=o(n,0)?n[0]:thrower,d=o(n,1)?n[1]:void 0;return c[t]=!!r&&!a(function(){if(l&&!i)return!0;var t={length:-1};l?s(t,1,{enumerable:!0,get:thrower}):t[1]=1,r.call(t,u,d)})}}),ae93:(function(t,n,r){var i=r(`e163`),a=r(`9112`),o=r(`5135`),s=r(`b622`),c=r(`c430`),l=s(`iterator`),u=!1,returnThis=function(){return this},d,f,p;[].keys&&(p=[].keys(),`next`in p?(f=i(i(p)),f!==Object.prototype&&(d=f)):u=!0),d??(d={}),!c&&!o(d,l)&&a(d,l,returnThis),t.exports={IteratorPrototype:d,BUGGY_SAFARI_ITERATORS:u}}),b041:(function(t,n,r){var i=r(`00ee`),a=r(`f5df`);t.exports=i?{}.toString:function toString(){return`[object `+a(this)+`]`}}),b0c0:(function(t,n,r){var i=r(`83ab`),a=r(`9bf2`).f,o=Function.prototype,s=o.toString,c=/^\s*function ([^ (]*)/,l=`name`;i&&!(l in o)&&a(o,l,{configurable:!0,get:function(){try{return s.call(this).match(c)[1]}catch{return``}}})}),b622:(function(t,n,r){var i=r(`da84`),a=r(`5692`),o=r(`5135`),s=r(`90e3`),c=r(`4930`),l=r(`fdbf`),u=a(`wks`),d=i.Symbol,f=l?d:d&&d.withoutSetter||s;t.exports=function(t){return o(u,t)||(c&&o(d,t)?u[t]=d[t]:u[t]=f(`Symbol.`+t)),u[t]}}),b64b:(function(t,n,r){var i=r(`23e7`),a=r(`7b0b`),o=r(`df75`);i({target:`Object`,stat:!0,forced:r(`d039`)(function(){o(1)})},{keys:function keys(t){return o(a(t))}})}),b727:(function(t,n,r){var i=r(`0366`),a=r(`44ad`),o=r(`7b0b`),s=r(`50c4`),c=r(`65f0`),l=[].push,createMethod=function(t){var n=t==1,r=t==2,u=t==3,d=t==4,f=t==6,p=t==5||f;return function(m,h,g,_){for(var b=o(m),x=a(b),S=i(h,g,3),C=s(x.length),w=0,T=_||c,E=n?T(m,C):r?T(m,0):void 0,D,O;C>w;w++)if((p||w in x)&&(D=x[w],O=S(D,w,b),t)){if(n)E[w]=O;else if(O)switch(t){case 3:return!0;case 5:return D;case 6:return w;case 2:l.call(E,D)}else if(d)return!1}return f?-1:u||d?d:E}};t.exports={forEach:createMethod(0),map:createMethod(1),filter:createMethod(2),some:createMethod(3),every:createMethod(4),find:createMethod(5),findIndex:createMethod(6)}}),c04e:(function(t,n,r){var i=r(`861d`);t.exports=function(t,n){if(!i(t))return t;var r,a;if(n&&typeof(r=t.toString)==`function`&&!i(a=r.call(t))||typeof(r=t.valueOf)==`function`&&!i(a=r.call(t))||!n&&typeof(r=t.toString)==`function`&&!i(a=r.call(t)))return a;throw TypeError(`Can't convert object to primitive value`)}}),c430:(function(t,n){t.exports=!1}),c6b6:(function(t,n){var r={}.toString;t.exports=function(t){return r.call(t).slice(8,-1)}}),c6cd:(function(t,n,r){var i=r(`da84`),a=r(`ce4e`),o=`__core-js_shared__`;t.exports=i[o]||a(o,{})}),c740:(function(t,n,r){var i=r(`23e7`),a=r(`b727`).findIndex,o=r(`44d2`),s=r(`ae40`),c=`findIndex`,l=!0,u=s(c);c in[]&&[,][c](function(){l=!1}),i({target:`Array`,proto:!0,forced:l||!u},{findIndex:function findIndex(t){return a(this,t,arguments.length>1?arguments[1]:void 0)}}),o(c)}),c8ba:(function(t,n){var r=(function(){return this})();try{r=r||Function(`return this`)()}catch{typeof window==`object`&&(r=window)}t.exports=r}),c975:(function(t,n,r){var i=r(`23e7`),a=r(`4d64`).indexOf,o=r(`a640`),s=r(`ae40`),c=[].indexOf,l=!!c&&1/[1].indexOf(1,-0)<0,u=o(`indexOf`),d=s(`indexOf`,{ACCESSORS:!0,1:0});i({target:`Array`,proto:!0,forced:l||!u||!d},{indexOf:function indexOf(t){return l?c.apply(this,arguments)||0:a(this,t,arguments.length>1?arguments[1]:void 0)}})}),ca84:(function(t,n,r){var i=r(`5135`),a=r(`fc6a`),o=r(`4d64`).indexOf,s=r(`d012`);t.exports=function(t,n){var r=a(t),c=0,l=[],u;for(u in r)!i(s,u)&&i(r,u)&&l.push(u);for(;n.length>c;)i(r,u=n[c++])&&(~o(l,u)||l.push(u));return l}}),caad:(function(t,n,r){var i=r(`23e7`),a=r(`4d64`).includes,o=r(`44d2`);i({target:`Array`,proto:!0,forced:!r(`ae40`)(`indexOf`,{ACCESSORS:!0,1:0})},{includes:function includes(t){return a(this,t,arguments.length>1?arguments[1]:void 0)}}),o(`includes`)}),cc12:(function(t,n,r){var i=r(`da84`),a=r(`861d`),o=i.document,s=a(o)&&a(o.createElement);t.exports=function(t){return s?o.createElement(t):{}}}),ce4e:(function(t,n,r){var i=r(`da84`),a=r(`9112`);t.exports=function(t,n){try{a(i,t,n)}catch{i[t]=n}return n}}),d012:(function(t,n){t.exports={}}),d039:(function(t,n){t.exports=function(t){try{return!!t()}catch{return!0}}}),d066:(function(t,n,r){var i=r(`428f`),a=r(`da84`),aFunction=function(t){return typeof t==`function`?t:void 0};t.exports=function(t,n){return arguments.length<2?aFunction(i[t])||aFunction(a[t]):i[t]&&i[t][n]||a[t]&&a[t][n]}}),d1e7:(function(t,n,r){var i={}.propertyIsEnumerable,a=Object.getOwnPropertyDescriptor;n.f=a&&!i.call({1:2},1)?function propertyIsEnumerable(t){var n=a(this,t);return!!n&&n.enumerable}:i}),d28b:(function(t,n,r){r(`746f`)(`iterator`)}),d2bb:(function(t,n,r){var i=r(`825a`),a=r(`3bbe`);t.exports=Object.setPrototypeOf||(`__proto__`in{}?function(){var t=!1,n={},r;try{r=Object.getOwnPropertyDescriptor(Object.prototype,`__proto__`).set,r.call(n,[]),t=n instanceof Array}catch{}return function setPrototypeOf(n,o){return i(n),a(o),t?r.call(n,o):n.__proto__=o,n}}():void 0)}),d3b7:(function(t,n,r){var i=r(`00ee`),a=r(`6eeb`),o=r(`b041`);i||a(Object.prototype,`toString`,o,{unsafe:!0})}),d44e:(function(t,n,r){var i=r(`9bf2`).f,a=r(`5135`),o=r(`b622`)(`toStringTag`);t.exports=function(t,n,r){t&&!a(t=r?t:t.prototype,o)&&i(t,o,{configurable:!0,value:n})}}),d58f:(function(t,n,r){var i=r(`1c0b`),a=r(`7b0b`),o=r(`44ad`),s=r(`50c4`),createMethod=function(t){return function(n,r,c,l){i(r);var u=a(n),d=o(u),f=s(u.length),p=t?f-1:0,m=t?-1:1;if(c<2)for(;;){if(p in d){l=d[p],p+=m;break}if(p+=m,t?p<0:f<=p)throw TypeError(`Reduce of empty array with no initial value`)}for(;t?p>=0:f>p;p+=m)p in d&&(l=r(l,d[p],p,u));return l}};t.exports={left:createMethod(!1),right:createMethod(!0)}}),d784:(function(t,n,r){r(`ac1f`);var i=r(`6eeb`),a=r(`d039`),o=r(`b622`),s=r(`9263`),c=r(`9112`),l=o(`species`),u=!a(function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:`7`},t},``.replace(t,`$<a>`)!==`7`}),d=(function(){return`a`.replace(/./,`$0`)===`$0`})(),f=o(`replace`),p=(function(){return/./[f]?/./[f](`a`,`$0`)===``:!1})(),m=!a(function(){var t=/(?:)/,n=t.exec;t.exec=function(){return n.apply(this,arguments)};var r=`ab`.split(t);return r.length!==2||r[0]!==`a`||r[1]!==`b`});t.exports=function(t,n,r,f){var h=o(t),g=!a(function(){var n={};return n[h]=function(){return 7},``[t](n)!=7}),_=g&&!a(function(){var n=!1,r=/a/;return t===`split`&&(r={},r.constructor={},r.constructor[l]=function(){return r},r.flags=``,r[h]=/./[h]),r.exec=function(){return n=!0,null},r[h](``),!n});if(!g||!_||t===`replace`&&!(u&&d&&!p)||t===`split`&&!m){var b=/./[h],x=r(h,``[t],function(t,n,r,i,a){return n.exec===s?g&&!a?{done:!0,value:b.call(n,r,i)}:{done:!0,value:t.call(r,n,i)}:{done:!1}},{REPLACE_KEEPS_$0:d,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:p}),S=x[0],C=x[1];i(String.prototype,t,S),i(RegExp.prototype,h,n==2?function(t,n){return C.call(t,this,n)}:function(t){return C.call(t,this)})}f&&c(RegExp.prototype[h],`sham`,!0)}}),d81d:(function(t,n,r){var i=r(`23e7`),a=r(`b727`).map,o=r(`1dde`),s=r(`ae40`),c=o(`map`),l=s(`map`);i({target:`Array`,proto:!0,forced:!c||!l},{map:function map(t){return a(this,t,arguments.length>1?arguments[1]:void 0)}})}),da84:(function(t,n,r){(function(n){var check=function(t){return t&&t.Math==Math&&t};t.exports=check(typeof globalThis==`object`&&globalThis)||check(typeof window==`object`&&window)||check(typeof self==`object`&&self)||check(typeof n==`object`&&n)||Function(`return this`)()}).call(this,r(`c8ba`))}),dbb4:(function(t,n,r){var i=r(`23e7`),a=r(`83ab`),o=r(`56ef`),s=r(`fc6a`),c=r(`06cf`),l=r(`8418`);i({target:`Object`,stat:!0,sham:!a},{getOwnPropertyDescriptors:function getOwnPropertyDescriptors(t){for(var n=s(t),r=c.f,i=o(n),a={},u=0,d,f;i.length>u;)f=r(n,d=i[u++]),f!==void 0&&l(a,d,f);return a}})}),dbf1:(function(t,n,r){(function(t){r.d(n,`a`,function(){return i});function getConsole(){return typeof window<`u`?window.console:t.console}var i=getConsole()}).call(this,r(`c8ba`))}),ddb0:(function(t,n,r){var i=r(`da84`),a=r(`fdbc`),o=r(`e260`),s=r(`9112`),c=r(`b622`),l=c(`iterator`),u=c(`toStringTag`),d=o.values;for(var f in a){var p=i[f],m=p&&p.prototype;if(m){if(m[l]!==d)try{s(m,l,d)}catch{m[l]=d}if(m[u]||s(m,u,f),a[f]){for(var h in o)if(m[h]!==o[h])try{s(m,h,o[h])}catch{m[h]=o[h]}}}}}),df75:(function(t,n,r){var i=r(`ca84`),a=r(`7839`);t.exports=Object.keys||function keys(t){return i(t,a)}}),e01a:(function(t,n,r){var i=r(`23e7`),a=r(`83ab`),o=r(`da84`),s=r(`5135`),c=r(`861d`),l=r(`9bf2`).f,u=r(`e893`),d=o.Symbol;if(a&&typeof d==`function`&&(!(`description`in d.prototype)||d().description!==void 0)){var f={},p=function Symbol(){var t=arguments.length<1||arguments[0]===void 0?void 0:String(arguments[0]),n=this instanceof p?new d(t):t===void 0?d():d(t);return t===``&&(f[n]=!0),n};u(p,d);var m=p.prototype=d.prototype;m.constructor=p;var h=m.toString,g=String(d(`test`))==`Symbol(test)`,_=/^Symbol\((.*)\)[^)]+$/;l(m,`description`,{configurable:!0,get:function description(){var t=c(this)?this.valueOf():this,n=h.call(t);if(s(f,t))return``;var r=g?n.slice(7,-1):n.replace(_,`$1`);return r===``?void 0:r}}),i({global:!0,forced:!0},{Symbol:p})}}),e163:(function(t,n,r){var i=r(`5135`),a=r(`7b0b`),o=r(`f772`),s=r(`e177`),c=o(`IE_PROTO`),l=Object.prototype;t.exports=s?Object.getPrototypeOf:function(t){return t=a(t),i(t,c)?t[c]:typeof t.constructor==`function`&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?l:null}}),e177:(function(t,n,r){t.exports=!r(`d039`)(function(){function F(){}return F.prototype.constructor=null,Object.getPrototypeOf(new F)!==F.prototype})}),e260:(function(t,n,r){var i=r(`fc6a`),a=r(`44d2`),o=r(`3f8c`),s=r(`69f3`),c=r(`7dd0`),l=`Array Iterator`,u=s.set,d=s.getterFor(l);t.exports=c(Array,`Array`,function(t,n){u(this,{type:l,target:i(t),index:0,kind:n})},function(){var t=d(this),n=t.target,r=t.kind,i=t.index++;return!n||i>=n.length?(t.target=void 0,{value:void 0,done:!0}):r==`keys`?{value:i,done:!1}:r==`values`?{value:n[i],done:!1}:{value:[i,n[i]],done:!1}},`values`),o.Arguments=o.Array,a(`keys`),a(`values`),a(`entries`)}),e439:(function(t,n,r){var i=r(`23e7`),a=r(`d039`),o=r(`fc6a`),s=r(`06cf`).f,c=r(`83ab`),l=a(function(){s(1)});i({target:`Object`,stat:!0,forced:!c||l,sham:!c},{getOwnPropertyDescriptor:function getOwnPropertyDescriptor(t,n){return s(o(t),n)}})}),e538:(function(t,n,r){n.f=r(`b622`)}),e893:(function(t,n,r){var i=r(`5135`),a=r(`56ef`),o=r(`06cf`),s=r(`9bf2`);t.exports=function(t,n){for(var r=a(n),c=s.f,l=o.f,u=0;u<r.length;u++){var d=r[u];i(t,d)||c(t,d,l(n,d))}}}),e8b5:(function(t,n,r){var i=r(`c6b6`);t.exports=Array.isArray||function isArray(t){return i(t)==`Array`}}),e95a:(function(t,n,r){var i=r(`b622`),a=r(`3f8c`),o=i(`iterator`),s=Array.prototype;t.exports=function(t){return t!==void 0&&(a.Array===t||s[o]===t)}}),f5df:(function(t,n,r){var i=r(`00ee`),a=r(`c6b6`),o=r(`b622`)(`toStringTag`),s=a(function(){return arguments}())==`Arguments`,tryGet=function(t,n){try{return t[n]}catch{}};t.exports=i?a:function(t){var n,r,i;return t===void 0?`Undefined`:t===null?`Null`:typeof(r=tryGet(n=Object(t),o))==`string`?r:s?a(n):(i=a(n))==`Object`&&typeof n.callee==`function`?`Arguments`:i}}),f772:(function(t,n,r){var i=r(`5692`),a=r(`90e3`),o=i(`keys`);t.exports=function(t){return o[t]||(o[t]=a(t))}}),fb15:(function(t,n,r){if(r.r(n),typeof window<`u`){var i=window.document.currentScript,a=r(`8875`);i=a(),`currentScript`in document||Object.defineProperty(document,`currentScript`,{get:a});var o=i&&i.src.match(/(.+\/)[^/]+\.js(\?.*)?$/);o&&(r.p=o[1])}r(`99af`),r(`4de4`),r(`4160`),r(`c975`),r(`d81d`),r(`a434`),r(`159b`),r(`a4d3`),r(`e439`),r(`dbb4`),r(`b64b`);function _defineProperty(t,n,r){return n in t?Object.defineProperty(t,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[n]=r,t}function ownKeys(t,n){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);n&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),r.push.apply(r,i)}return r}function _objectSpread2(t){for(var n=1;n<arguments.length;n++){var r=arguments[n]==null?{}:arguments[n];n%2?ownKeys(Object(r),!0).forEach(function(n){_defineProperty(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function _arrayWithHoles(t){if(Array.isArray(t))return t}r(`e01a`),r(`d28b`),r(`e260`),r(`d3b7`),r(`3ca3`),r(`ddb0`);function _iterableToArrayLimit(t,n){if(!(typeof Symbol>`u`||!(Symbol.iterator in Object(t)))){var r=[],i=!0,a=!1,o=void 0;try{for(var s=t[Symbol.iterator](),c;!(i=(c=s.next()).done)&&(r.push(c.value),!(n&&r.length===n));i=!0);}catch(t){a=!0,o=t}finally{try{!i&&s.return!=null&&s.return()}finally{if(a)throw o}}return r}}r(`a630`),r(`fb6a`),r(`b0c0`),r(`25f0`);function _arrayLikeToArray(t,n){(n==null||n>t.length)&&(n=t.length);for(var r=0,i=Array(n);r<n;r++)i[r]=t[r];return i}function _unsupportedIterableToArray(t,n){if(t){if(typeof t==`string`)return _arrayLikeToArray(t,n);var r=Object.prototype.toString.call(t).slice(8,-1);if(r===`Object`&&t.constructor&&(r=t.constructor.name),r===`Map`||r===`Set`)return Array.from(t);if(r===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return _arrayLikeToArray(t,n)}}function _nonIterableRest(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
13
13
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _slicedToArray(t,n){return _arrayWithHoles(t)||_iterableToArrayLimit(t,n)||_unsupportedIterableToArray(t,n)||_nonIterableRest()}function _arrayWithoutHoles(t){if(Array.isArray(t))return _arrayLikeToArray(t)}function _iterableToArray(t){if(typeof Symbol<`u`&&Symbol.iterator in Object(t))return Array.from(t)}function _nonIterableSpread(){throw TypeError(`Invalid attempt to spread non-iterable instance.
|
|
14
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _toConsumableArray(t){return _arrayWithoutHoles(t)||_iterableToArray(t)||_unsupportedIterableToArray(t)||_nonIterableSpread()}var s=r(`a352`),c=r.n(s);function removeNode(t){t.parentElement!==null&&t.parentElement.removeChild(t)}function insertNodeAt(t,n,r){var i=r===0?t.children[0]:t.children[r-1].nextSibling;t.insertBefore(n,i)}var l=r(`dbf1`);r(`13d5`),r(`4fad`),r(`ac1f`),r(`5319`);function cached(t){var n=Object.create(null);return function cachedFn(r){return n[r]||(n[r]=t(r))}}var u=/-(\w)/g,d=cached(function(t){return t.replace(u,function(t,n){return n.toUpperCase()})});r(`5db7`),r(`73d9`);var f=[`Start`,`Add`,`Remove`,`Update`,`End`],p=[`Choose`,`Unchoose`,`Sort`,`Filter`,`Clone`],m=[`Move`],h=[m,f,p].flatMap(function(t){return t}).map(function(t){return`on${t}`}),g={manage:m,manageAndEmit:f,emit:p};function isReadOnly(t){return h.indexOf(t)!==-1}r(`caad`),r(`2ca0`);var _=`a.abbr.address.area.article.aside.audio.b.base.bdi.bdo.blockquote.body.br.button.canvas.caption.cite.code.col.colgroup.data.datalist.dd.del.details.dfn.dialog.div.dl.dt.em.embed.fieldset.figcaption.figure.footer.form.h1.h2.h3.h4.h5.h6.head.header.hgroup.hr.html.i.iframe.img.input.ins.kbd.label.legend.li.link.main.map.mark.math.menu.menuitem.meta.meter.nav.noscript.object.ol.optgroup.option.output.p.param.picture.pre.progress.q.rb.rp.rt.rtc.ruby.s.samp.script.section.select.slot.small.source.span.strong.style.sub.summary.sup.svg.table.tbody.td.template.textarea.tfoot.th.thead.time.title.tr.track.u.ul.var.video.wbr`.split(`.`);function isHtmlTag(t){return _.includes(t)}function isTransition(t){return[`transition-group`,`TransitionGroup`].includes(t)}function isHtmlAttribute(t){return[`id`,`class`,`role`,`style`].includes(t)||t.startsWith(`data-`)||t.startsWith(`aria-`)||t.startsWith(`on`)}function project(t){return t.reduce(function(t,n){var r=_slicedToArray(n,2),i=r[0];return t[i]=r[1],t},{})}function getComponentAttributes(t){var n=t.$attrs,r=t.componentData,i=r===void 0?{}:r;return _objectSpread2(_objectSpread2({},project(Object.entries(n).filter(function(t){var n=_slicedToArray(t,2),r=n[0];return n[1],isHtmlAttribute(r)}))),i)}function createSortableOption(t){var n=t.$attrs,r=t.callBackBuilder,i=project(getValidSortableEntries(n));Object.entries(r).forEach(function(t){var n=_slicedToArray(t,2),r=n[0],a=n[1];g[r].forEach(function(t){i[`on${t}`]=a(t)})});var a=`[data-draggable]${i.draggable||``}`;return _objectSpread2(_objectSpread2({},i),{},{draggable:a})}function getValidSortableEntries(t){return Object.entries(t).filter(function(t){var n=_slicedToArray(t,2),r=n[0];return n[1],!isHtmlAttribute(r)}).map(function(t){var n=_slicedToArray(t,2),r=n[0],i=n[1];return[d(r),i]}).filter(function(t){var n=_slicedToArray(t,2),r=n[0];return n[1],!isReadOnly(r)})}r(`c740`);function _classCallCheck(t,n){if(!(t instanceof n))throw TypeError(`Cannot call a class as a function`)}function _defineProperties(t,n){for(var r=0;r<n.length;r++){var i=n[r];i.enumerable=i.enumerable||!1,i.configurable=!0,`value`in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function _createClass(t,n,r){return n&&_defineProperties(t.prototype,n),r&&_defineProperties(t,r),t}var b=function getHtmlElementFromNode(t){return t.el},x=function addContext(t,n){return t.__draggable_context=n},S=function getContext(t){return t.__draggable_context},C=function(){function ComponentStructure(t){var n=t.nodes,r=n.header,i=n.default,a=n.footer,o=t.root,s=t.realList;_classCallCheck(this,ComponentStructure),this.defaultNodes=i,this.children=[].concat(_toConsumableArray(r),_toConsumableArray(i),_toConsumableArray(a)),this.externalComponent=o.externalComponent,this.rootTransition=o.transition,this.tag=o.tag,this.realList=s}return _createClass(ComponentStructure,[{key:`render`,value:function render(t,n){var r=this.tag,i=this.children;return t(r,n,this._isRootComponent?{default:function _default(){return i}}:i)}},{key:`updated`,value:function updated(){var t=this.defaultNodes,n=this.realList;t.forEach(function(t,r){x(b(t),{element:n[r],index:r})})}},{key:`getUnderlyingVm`,value:function getUnderlyingVm(t){return S(t)}},{key:`getVmIndexFromDomIndex`,value:function getVmIndexFromDomIndex(t,n){var r=this.defaultNodes,i=r.length,a=n.children,o=a.item(t);if(o===null)return i;var s=S(o);if(s)return s.index;if(i===0)return 0;var c=b(r[0]);return t<_toConsumableArray(a).findIndex(function(t){return t===c})?0:i}},{key:`_isRootComponent`,get:function get(){return this.externalComponent||this.rootTransition}}]),ComponentStructure}(),w=r(`8bbf`);function getSlot(t,n){var r=t[n];return r?r():[]}function computeNodes(t){var n=t.$slots,r=t.realList,i=t.getKey,a=r||[],o=_slicedToArray([`header`,`footer`].map(function(t){return getSlot(n,t)}),2),s=o[0],c=o[1],l=n.item;if(!l)throw Error(`draggable element must have an item slot`);var u=a.flatMap(function(t,n){return l({element:t,index:n}).map(function(n){return n.key=i(t),n.props=_objectSpread2(_objectSpread2({},n.props||{}),{},{"data-draggable":!0}),n})});if(u.length!==a.length)throw Error(`Item slot must have only one child`);return{header:s,footer:c,default:u}}function getRootInformation(t){var n=isTransition(t),r=!isHtmlTag(t)&&!n;return{transition:n,externalComponent:r,tag:r?(0,w.resolveComponent)(t):n?w.TransitionGroup:t}}function computeComponentStructure(t){var n=t.$slots,r=t.tag,i=t.realList,a=t.getKey;return new C({nodes:computeNodes({$slots:n,realList:i,getKey:a}),root:getRootInformation(r),realList:i})}function _emit(t,n){var r=this;(0,w.nextTick)(function(){return r.$emit(t.toLowerCase(),n)})}function _manage(t){var n=this;return function(r,i){if(n.realList!==null)return n[`onDrag${t}`](r,i)}}function _manageAndEmit(t){var n=this,r=_manage.call(this,t);return function(i,a){r.call(n,i,a),_emit.call(n,t,i)}}var T=null,E={list:{type:Array,required:!1,default:null},modelValue:{type:Array,required:!1,default:null},itemKey:{type:[String,Function],required:!0},clone:{type:Function,default:function _default(t){return t}},tag:{type:String,default:`div`},move:{type:Function,default:null},componentData:{type:Object,required:!1,default:null}},D=[`update:modelValue`,`change`].concat(_toConsumableArray([].concat(_toConsumableArray(g.manageAndEmit),_toConsumableArray(g.emit)).map(function(t){return t.toLowerCase()})));n.default=(0,w.defineComponent)({name:`draggable`,inheritAttrs:!1,props:E,emits:D,data:function data(){return{error:!1}},render:function render(){try{this.error=!1;var t=this.$slots,n=this.$attrs,r=this.tag,i=this.componentData,a=this.realList,o=this.getKey,s=computeComponentStructure({$slots:t,tag:r,realList:a,getKey:o});this.componentStructure=s;var c=getComponentAttributes({$attrs:n,componentData:i});return s.render(w.h,c)}catch(t){return this.error=!0,(0,w.h)(`pre`,{style:{color:`red`}},t.stack)}},created:function created(){this.list!==null&&this.modelValue!==null&&l.a.error(`modelValue and list props are mutually exclusive! Please set one or another.`)},mounted:function mounted(){var t=this;if(!this.error){var n=this.$attrs,r=this.$el;this.componentStructure.updated();var i=createSortableOption({$attrs:n,callBackBuilder:{manageAndEmit:function manageAndEmit(n){return _manageAndEmit.call(t,n)},emit:function emit(n){return _emit.bind(t,n)},manage:function manage(n){return _manage.call(t,n)}}}),a=r.nodeType===1?r:r.parentElement;this._sortable=new c.a(a,i),this.targetDomElement=a,a.__draggable_component__=this}},updated:function updated(){this.componentStructure.updated()},beforeUnmount:function beforeUnmount(){this._sortable!==void 0&&this._sortable.destroy()},computed:{realList:function realList(){return this.list||this.modelValue},getKey:function getKey(){var t=this.itemKey;return typeof t==`function`?t:function(n){return n[t]}}},watch:{$attrs:{handler:function handler(t){var n=this._sortable;n&&getValidSortableEntries(t).forEach(function(t){var r=_slicedToArray(t,2),i=r[0],a=r[1];n.option(i,a)})},deep:!0}},methods:{getUnderlyingVm:function getUnderlyingVm(t){return this.componentStructure.getUnderlyingVm(t)||null},getUnderlyingPotencialDraggableComponent:function getUnderlyingPotencialDraggableComponent(t){return t.__draggable_component__},emitChanges:function emitChanges(t){var n=this;(0,w.nextTick)(function(){return n.$emit(`change`,t)})},alterList:function alterList(t){if(this.list){t(this.list);return}var n=_toConsumableArray(this.modelValue);t(n),this.$emit(`update:modelValue`,n)},spliceList:function spliceList(){var t=arguments;this.alterList(function spliceList(n){return n.splice.apply(n,_toConsumableArray(t))})},updatePosition:function updatePosition(t,n){this.alterList(function updatePosition(r){return r.splice(n,0,r.splice(t,1)[0])})},getRelatedContextFromMoveEvent:function getRelatedContextFromMoveEvent(t){var n=t.to,r=t.related,i=this.getUnderlyingPotencialDraggableComponent(n);if(!i)return{component:i};var a=i.realList,o={list:a,component:i};return n!==r&&a?_objectSpread2(_objectSpread2({},i.getUnderlyingVm(r)||{}),o):o},getVmIndexFromDomIndex:function getVmIndexFromDomIndex(t){return this.componentStructure.getVmIndexFromDomIndex(t,this.targetDomElement)},onDragStart:function onDragStart(t){this.context=this.getUnderlyingVm(t.item),t.item._underlying_vm_=this.clone(this.context.element),T=t.item},onDragAdd:function onDragAdd(t){var n=t.item._underlying_vm_;if(n!==void 0){removeNode(t.item);var r=this.getVmIndexFromDomIndex(t.newIndex);this.spliceList(r,0,n);var i={element:n,newIndex:r};this.emitChanges({added:i})}},onDragRemove:function onDragRemove(t){if(insertNodeAt(this.$el,t.item,t.oldIndex),t.pullMode===`clone`){removeNode(t.clone);return}var n=this.context,r=n.index,i=n.element;this.spliceList(r,1);var a={element:i,oldIndex:r};this.emitChanges({removed:a})},onDragUpdate:function onDragUpdate(t){removeNode(t.item),insertNodeAt(t.from,t.item,t.oldIndex);var n=this.context.index,r=this.getVmIndexFromDomIndex(t.newIndex);this.updatePosition(n,r);var i={element:this.context.element,oldIndex:n,newIndex:r};this.emitChanges({moved:i})},computeFutureIndex:function computeFutureIndex(t,n){if(!t.element)return 0;var r=_toConsumableArray(n.to.children).filter(function(t){return t.style.display!==`none`}),i=r.indexOf(n.related),a=t.component.getVmIndexFromDomIndex(i);return r.indexOf(T)!==-1||!n.willInsertAfter?a:a+1},onDragMove:function onDragMove(t,n){var r=this.move,i=this.realList;if(!r||!i)return!0;var a=this.getRelatedContextFromMoveEvent(t),o=this.computeFutureIndex(a,t),s=_objectSpread2(_objectSpread2({},this.context),{},{futureIndex:o});return r(_objectSpread2(_objectSpread2({},t),{},{relatedContext:a,draggedContext:s}),n)},onDragEnd:function onDragEnd(){T=null}}})}),fb6a:(function(t,n,r){var i=r(`23e7`),a=r(`861d`),o=r(`e8b5`),s=r(`23cb`),c=r(`50c4`),l=r(`fc6a`),u=r(`8418`),d=r(`b622`),f=r(`1dde`),p=r(`ae40`),m=f(`slice`),h=p(`slice`,{ACCESSORS:!0,0:0,1:2}),g=d(`species`),_=[].slice,b=Math.max;i({target:`Array`,proto:!0,forced:!m||!h},{slice:function slice(t,n){var r=l(this),i=c(r.length),d=s(t,i),f=s(n===void 0?i:n,i),p,m,h;if(o(r)&&(p=r.constructor,typeof p==`function`&&(p===Array||o(p.prototype))?p=void 0:a(p)&&(p=p[g],p===null&&(p=void 0)),p===Array||p===void 0))return _.call(r,d,f);for(m=new(p===void 0?Array:p)(b(f-d,0)),h=0;d<f;d++,h++)d in r&&u(m,h,r[d]);return m.length=h,m}})}),fc6a:(function(t,n,r){var i=r(`44ad`),a=r(`1d80`);t.exports=function(t){return i(a(t))}}),fdbc:(function(t,n){t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}}),fdbf:(function(t,n,r){t.exports=r(`4930`)&&!Symbol.sham&&typeof Symbol.iterator==`symbol`})}).default})}))(),1),B=(t,n)=>{let r=t.__vccOpts||t;for(let[t,i]of n)r[t]=i;return r},ka={name:`TagInput`,props:{scope:{type:Object,required:!0}}},Aa=[`maxlength`];function K(t,n,r,i,a,o){return r.scope.edit?he((x(),R(`input`,{key:0,"onUpdate:modelValue":n[0]||(n[0]=t=>r.scope.element.text=t),maxlength:r.scope.maxlength,type:`text`,class:`ti-tag-input`,size:`1`,onInput:n[1]||(n[1]=t=>r.scope.validateTag(r.scope.index,t)),onBlur:n[2]||(n[2]=t=>r.scope.performCancelEdit(r.scope.index)),onKeydown:n[3]||(n[3]=t=>r.scope.performSaveEdit(r.scope.index,t))},null,40,Aa)),[[Te,r.scope.element.text]]):U(``,!0)}var ja=B(ka,[[`render`,K],[`__scopeId`,`data-v-a3408643`]]),M=t=>!t.some(t=>{let n=!t.text;n&&console.warn(`Missing property "text"`,t);let r=!1;return t.classes&&(r=typeof t.classes!=`string`),r&&console.warn(`Property "classes" must be type of string`,t),n||r}),F=t=>!t.some(t=>{if(typeof t==`number`){let n=isFinite(t)&&Math.floor(t)===t;return n||console.warn(`Only numerics are allowed for this prop. Found:`,t),!n}else if(typeof t==`string`){let n=/\W|[a-z]|!\d/i.test(t);return n||console.warn(`Only alpha strings are allowed for this prop. Found:`,t),!n}else return console.warn(`Only numeric and string values are allowed. Found:`,t),!1}),Ma={modelValue:{type:String,default:``,required:!0},tags:{type:Array,default:()=>[],validator:M},autocompleteItems:{type:Array,default:()=>[],validator:M},allowEditTags:{type:Boolean,default:!1},autocompleteFilterDuplicates:{default:!0,type:Boolean},addOnlyFromAutocomplete:{type:Boolean,default:!1},autocompleteMinLength:{type:Number,default:1},autocompleteAlwaysOpen:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},placeholder:{type:String,default:`Add Tag`},addOnKey:{type:Array,default:()=>[13],validator:F},saveOnKey:{type:Array,default:()=>[13],validator:F},maxTags:{type:Number},maxlength:{type:Number},validation:{type:Array,default:()=>[],validator(t){return!t.some(t=>{let n=!t.rule;n&&console.warn(`Property "rule" is missing`,t);let r=t.rule&&(typeof t.rule==`string`||t.rule instanceof RegExp||{}.toString.call(t.rule)===`[object Function]`);r||console.warn(`A rule must be type of string, RegExp or function. Found:`,JSON.stringify(t.rule));let i=!t.classes;i&&console.warn(`Property "classes" is missing`,t);let a=t.type&&typeof t.type!=`string`;return a&&console.warn(`Property "type" must be type of string. Found:`,t),!r||n||i||a})}},separators:{type:Array,default:()=>[`;`],validator(t){return!t.some(t=>{let n=typeof t!=`string`;return n&&console.warn(`Separators must be type of string. Found:`,t),n})}},avoidAddingDuplicates:{type:Boolean,default:!0},addOnBlur:{type:Boolean,default:!0},isDuplicate:{type:Function,default:null},addFromPaste:{type:Boolean,default:!0},deleteOnBackspace:{default:!0,type:Boolean},isDraggable:{type:Boolean,default:!1},draggableHandle:{type:Boolean,default:!1},onBeforeAddingTag:Function,onBeforeDeletingTag:Function,onBeforeEditingTag:Function,onBeforeSavingTag:Function};function L(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,`default`)?t.default:t}var Na=L(function e(t,n){if(t===n)return!0;if(t&&n&&typeof t==`object`&&typeof n==`object`){if(t.constructor!==n.constructor)return!1;var r,i,a;if(Array.isArray(t)){if(r=t.length,r!=n.length)return!1;for(i=r;i--!==0;)if(!e(t[i],n[i]))return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===n.toString();if(a=Object.keys(t),r=a.length,r!==Object.keys(n).length)return!1;for(i=r;i--!==0;)if(!Object.prototype.hasOwnProperty.call(n,a[i]))return!1;for(i=r;i--!==0;){var o=a[i];if(!e(t[o],n[o]))return!1}return!0}return t!==t&&n!==n}),J=(t,n)=>n.filter(n=>{let{text:r}=t;return typeof n.rule==`string`?!new RegExp(n.rule).test(r):n.rule instanceof RegExp?!n.rule.test(r):{}.toString.call(n.rule)===`[object Function]`?n.rule(t):!1}).map(t=>t.classes),y=t=>JSON.parse(JSON.stringify(t)),W=(t,n)=>{let r=0;for(;r<t.length;){if(n(t[r],r,t))return r;r++}return-1},V=(t,n,r=[],i)=>{t.text===void 0&&(t={text:t});let a=J(t,r),o=W(n,n=>n===t),s=y(n),c=o===-1?y(t):s.splice(o,1)[0];return(i?i(s,c):s.map(t=>t.text).indexOf(c.text)!==-1)&&a.push(`ti-duplicate`),a.length===0?a.push(`ti-valid`):a.push(`ti-invalid`),a},v=(t,...n)=>{t.text===void 0&&(t={text:t});let r=y(t);return r.tiClasses=V(t,...n),r},G=(t,...n)=>t.map(r=>v(r,t,...n)),Pa={name:`VueTagsInput`,components:{TagInput:ja,draggable:Oa.default},props:Ma,emits:[`adding-duplicate`,`before-adding-tag`,`before-deleting-tag`,`before-editing-tag`,`before-saving-tag`,`max-tags-reached`,`saving-duplicate`,`tags-changed`,`tag-clicked`,`update:modelValue`,`update:tags`,`tag-order-changed`,`click`],inheritAttrs:!1,data(){return{tagCenter:[],newTag:null,tagsCopy:[],tagsEditStatus:null,deletionMark:null,deletionMarkTime:null,selectedItem:null,focused:null}},computed:{autocompleteOpen(){return this.autocompleteAlwaysOpen?!0:this.newTag!==null&&this.newTag.length>=this.autocompleteMinLength&&this.filteredAutocompleteItems.length>0&&this.focused},filteredAutocompleteItems(){let t=this.autocompleteItems.map(t=>v(t,this.tags,this.validation,this.isDuplicate));return this.autocompleteFilterDuplicates?t.filter(this.duplicateFilter):t}},methods:{createClasses:V,getSelectedIndex(t){let n=this.filteredAutocompleteItems,r=this.selectedItem,i=n.length-1;if(n.length!==0)return r===null?0:t===`before`&&r===0?i:t===`after`&&r===i?0:t===`after`?r+1:r-1},selectDefaultItem(){this.addOnlyFromAutocomplete&&this.filteredAutocompleteItems.length>0?this.selectedItem=0:this.selectedItem=null},selectItem(t,n){t.preventDefault(),this.selectedItem=this.getSelectedIndex(n)},isSelected(t){return this.selectedItem===t},isMarked(t){return this.deletionMark===t},setTagCenter(t){t&&this.tagCenter.push(t)},invokeDelete(){if(!this.deleteOnBackspace||this.newTag.length>0)return;let t=this.tagsCopy.length-1;this.deletionMark===null?(this.deletionMarkTime=setTimeout(()=>{this.deletionMark=null},1e3),this.deletionMark=t):this.performDeleteTag(t)},addTagsFromPaste(){this.addFromPaste&&setTimeout(()=>this.performAddTags(this.newTag),10)},performEditTag(t){this.allowEditTags&&(this.onBeforeAddingTag||this.editTag(t),this.$emit(`before-editing-tag`,{index:t,tag:this.tagsCopy[t],editTag:()=>this.editTag(t)}))},editTag(t){this.allowEditTags&&(this.toggleEditMode(t),this.focus(t))},toggleEditMode(t){!this.allowEditTags||this.disabled||(this.tagsEditStatus[t]=!this.tagsEditStatus[t])},createChangedTag(t,n){let r=this.tagsCopy[t];r.text=n?n.target.value:this.tagsCopy[t].text,this.tagsCopy[t]=v(r,this.tagsCopy,this.validation,this.isDuplicate)},focus(t){this.$nextTick(()=>{let n=this.tagCenter[t].querySelector(`input.ti-tag-input`);n&&n.focus()})},quote(t){return t.replace(/([()[{*+.$^\\|?])/g,`\\$1`)},cancelEdit(t){this.tags[t]&&(this.tagsCopy[t]=y(v(this.tags[t],this.tags,this.validation,this.isDuplicate)),this.tagsEditStatus[t]=!1)},hasForbiddingAddRule(t){return t.some(t=>{let n=this.validation.find(n=>t===n.classes);return n?n.disableAdd:!1})},createTagTexts(t){let n=new RegExp(this.separators.map(t=>this.quote(t)).join(`|`));return t.split(n).map(t=>({text:t}))},performDeleteTag(t){this.onBeforeDeletingTag||this.deleteTag(t),this.$emit(`before-deleting-tag`,{index:t,tag:this.tagsCopy[t],deleteTag:()=>this.deleteTag(t)})},deleteTag(t){this.disabled||(this.deletionMark=null,clearTimeout(this.deletionMarkTime),this.tagsCopy.splice(t,1),this.$emit(`update:tags`,this.tagsCopy),this.$emit(`tags-changed`,this.tagsCopy))},noTriggerKey(t,n){let r=this[n].indexOf(t.keyCode)!==-1||this[n].indexOf(t.key)!==-1;return r&&t.preventDefault(),!r},performAddTags(t,n,r){if(this.disabled||n&&this.noTriggerKey(n,`addOnKey`))return;let i=[];typeof t==`object`&&(i=[t]),typeof t==`string`&&(i=this.createTagTexts(t)),i=i.filter(t=>t.text.trim().length>0),i.forEach(t=>{t=v(t,this.tags,this.validation,this.isDuplicate),this.onBeforeAddingTag||this.addTag(t,r),this.$emit(`before-adding-tag`,{tag:t,addTag:()=>this.addTag(t,r)})})},duplicateFilter(t){return this.isDuplicate?!this.isDuplicate(this.tagsCopy,t):!this.tagsCopy.find(n=>n.text===t.text)},addTag(t,n=`new-tag-input`){let r=this.filteredAutocompleteItems.map(t=>t.text);this.addOnlyFromAutocomplete&&r.indexOf(t.text)===-1||this.$nextTick(()=>{if(this.maxTags&&this.maxTags<=this.tagsCopy.length)return this.$emit(`max-tags-reached`,t);if(this.avoidAddingDuplicates&&!this.duplicateFilter(t))return this.$emit(`adding-duplicate`,t);this.hasForbiddingAddRule(t.tiClasses)||(this.newTag=``,this.tagsCopy.push(t),this.$emit(`update:tags`,this.tagsCopy),n===`autocomplete`&&this.$refs.newTagInput.focus(),this.$emit(`tags-changed`,this.tagsCopy))})},performSaveTag(t,n){let r=this.tagsCopy[t];this.disabled||n&&this.noTriggerKey(n,`addOnKey`)||r.text.trim().length!==0&&(this[`on-before-saving-tag`]||this.saveTag(t,r),this.$emit(`before-saving-tag`,{index:t,tag:r,saveTag:()=>this.saveTag(t,r)}))},saveTag(t,n){if(this.avoidAddingDuplicates){let r=y(this.tagsCopy),i=r.splice(t,1)[0];if(this.isDuplicate?this.isDuplicate(r,i):r.map(t=>t.text).indexOf(i.text)!==-1)return this.$emit(`saving-duplicate`,n)}this.hasForbiddingAddRule(n.tiClasses)||(this.tagsCopy[t]=n,this.toggleEditMode(t),this.$emit(`update:tags`,this.tagsCopy),this.$emit(`tags-changed`,this.tagsCopy))},tagsEqual(){return!this.tagsCopy.some((t,n)=>!Na(t,this.tags[n]))},updateNewTag(t){let n=t.target.value;this.newTag=n,this.$emit(`update:modelValue`,n)},initTags(){this.tagsCopy=G(this.tags,this.validation,this.isDuplicate),this.tagsEditStatus=y(this.tags).map(()=>!1),this.tagsEqual()||this.$emit(`update:tags`,this.tagsCopy)},blurredOnClick(t){this.$el.contains(t.target)||this.$el.contains(document.activeElement)||this.performBlur(t)},performBlur(){this.addOnBlur&&this.focused&&this.performAddTags(this.newTag),this.focused=!1},tagOrderChanged(){this.$emit(`tag-order-changed`,this.tagsCopy)},performClick(t){if(this.addOnlyFromAutocomplete)return this.$emit(`click`,t),!1;this.selectedItem=null,this.$emit(`click`,t)},getTagIndex(t){return this.tagsCopy.findIndex(n=>n.text===t.text)}},watch:{modelValue(t){this.addOnlyFromAutocomplete||(this.selectedItem=null),this.newTag=t},tags:{handler(){this.initTags()},deep:!0},autocompleteOpen:`selectDefaultItem`},created(){this.newTag=this.modelValue,this.initTags()},mounted(){this.selectDefaultItem(),document.addEventListener(`click`,this.blurredOnClick)},beforeUpdate(){this.tagCenter=[]},unmounted(){document.removeEventListener(`click`,this.blurredOnClick)}},Fa={class:`ti-input`},Ia=[`onClick`],La={class:`ti-content`},Ra={key:0,class:`handle`},za={key:1,class:`ti-tag-left`},Ba=[`onClick`],Va={key:2,class:`ti-tag-right`},Ha={class:`ti-actions`},Ua=[`onClick`],Wa=[`onClick`],Ga={class:`ti-new-tag-input-wrapper`},Ka=[`placeholder`,`value`,`maxlength`,`disabled`],qa={key:1,class:`ti-tags`},Ja=[`onClick`],Ya={class:`ti-content`},Xa={key:0,class:`ti-tag-left`},Za=[`onClick`],Qa={key:1,class:`ti-tag-right`},$a={class:`ti-actions`},eo=[`onClick`],to=[`onClick`],no={class:`ti-new-tag-input-wrapper`},ro=[`placeholder`,`value`,`maxlength`,`disabled`],io=[`onMouseover`],ao=[`onClick`];function ke$1(t,n,r,i,a,o){let c=E(`tag-input`),l=E(`draggable`);return x(),R(`div`,{class:w([`vue-tags-input`,[{"ti-disabled":t.disabled},{"ti-focus":t.focused},t.$attrs.class]]),style:ae(t.$attrs.style)},[I(`div`,Fa,[t.isDraggable?(x(),H(l,{key:0,modelValue:t.tagsCopy,"onUpdate:modelValue":n[9]||(n[9]=n=>t.tagsCopy=n),group:`tags`,class:`ti-tags`,tag:`ul`,draggable:`.item`,handle:t.draggableHandle?`.handle`:``,"ghost-class":`ghost-tag`,"drag-class":`drag-tag`,"item-key":t.getTagIndex,onStart:n[10]||(n[10]=n=>t.drag=!0),onEnd:n[11]||(n[11]=n=>{t.drag=!1,t.tagOrderChanged()})},{item:s(({element:n,index:r})=>[(x(),R(`li`,{key:r,style:ae(n.style),class:w([[{"ti-editing":t.tagsEditStatus[r]},n.tiClasses,n.classes,{"ti-deletion-mark":t.isMarked(r)}],`ti-tag item`]),tabindex:`0`,onClick:i=>t.$emit(`tag-clicked`,{element:n,index:r})},[I(`div`,La,[t.draggableHandle?(x(),R(`span`,Ra,`::`)):U(``,!0),t.$slots[`tag-left`]?(x(),R(`div`,za,[b(t.$slots,`tag-left`,{tag:n,index:r,edit:t.tagsEditStatus[r],performSaveEdit:t.performSaveTag,performDelete:t.performDeleteTag,performCancelEdit:t.cancelEdit,performOpenEdit:t.performEditTag,deletionMark:t.isMarked(r)},void 0,!0)])):U(``,!0),I(`div`,{ref:t.setTagCenter,class:`ti-tag-center`},[t.$slots[`tag-center`]?U(``,!0):(x(),R(`span`,{key:0,class:w({"ti-hidden":t.tagsEditStatus[r]}),onClick:n=>t.performEditTag(r)},N(n.text),11,Ba)),t.$slots[`tag-center`]?U(``,!0):(x(),H(c,{key:1,scope:{edit:t.tagsEditStatus[r],maxlength:t.maxlength,element:n,index:r,validateTag:t.createChangedTag,performCancelEdit:t.cancelEdit,performSaveEdit:t.performSaveTag}},null,8,[`scope`])),b(t.$slots,`tag-center`,{tag:n,index:r,maxlength:t.maxlength,edit:t.tagsEditStatus[r],performSaveEdit:t.performSaveTag,performDelete:t.performDeleteTag,performCancelEdit:t.cancelEdit,validateTag:t.createChangedTag,performOpenEdit:t.performEditTag,deletionMark:t.isMarked(r)},void 0,!0)],512),t.$slots[`tag-right`]?(x(),R(`div`,Va,[b(t.$slots,`tag-right`,{tag:n,index:r,edit:t.tagsEditStatus[r],performSaveEdit:t.performSaveTag,performDelete:t.performDeleteTag,performCancelEdit:t.cancelEdit,performOpenEdit:t.performEditTag,deletionMark:t.isMarked(r)},void 0,!0)])):U(``,!0)]),I(`div`,Ha,[t.$slots[`tag-actions`]?U(``,!0):he((x(),R(`i`,{key:0,class:`ti-icon-undo`,onClick:n=>t.cancelEdit(r)},null,8,Ua)),[[pe,t.tagsEditStatus[r]]]),t.$slots[`tag-actions`]?U(``,!0):he((x(),R(`i`,{key:1,class:`ti-icon-close`,onClick:n=>t.performDeleteTag(r)},null,8,Wa)),[[pe,!t.tagsEditStatus[r]]]),t.$slots[`tag-actions`]?b(t.$slots,`tag-actions`,{key:2,tag:n,index:r,edit:t.tagsEditStatus[r],performSaveEdit:t.performSaveTag,performDelete:t.performDeleteTag,performCancelEdit:t.cancelEdit,performOpenEdit:t.performEditTag,deletionMark:t.isMarked(r)},void 0,!0):U(``,!0)])],14,Ia))]),footer:s(()=>[I(`li`,Ga,[I(`input`,O({ref:`newTagInput`},t.$attrs,{class:[[t.createClasses(t.newTag,t.tags,t.validation,t.isDuplicate)],`ti-new-tag-input`],placeholder:t.placeholder,value:t.newTag,maxlength:t.maxlength,disabled:t.disabled,type:`text`,size:`1`,onKeydown:[n[0]||(n[0]=n=>t.performAddTags(t.filteredAutocompleteItems[t.selectedItem]||t.newTag,n)),n[2]||(n[2]=Se((...n)=>t.invokeDelete&&t.invokeDelete(...n),[`delete`])),n[3]||(n[3]=Se((...n)=>t.performBlur&&t.performBlur(...n),[`tab`])),n[4]||(n[4]=Se(n=>t.selectItem(n,`before`),[`up`])),n[5]||(n[5]=Se(n=>t.selectItem(n,`after`),[`down`]))],onPaste:n[1]||(n[1]=(...n)=>t.addTagsFromPaste&&t.addTagsFromPaste(...n)),onInput:n[6]||(n[6]=(...n)=>t.updateNewTag&&t.updateNewTag(...n)),onFocus:n[7]||(n[7]=n=>t.focused=!0),onClick:n[8]||(n[8]=n=>t.performClick(n))}),null,16,Ka)])]),_:3},8,[`modelValue`,`handle`,`item-key`])):(x(),R(`ul`,qa,[(x(!0),R(ge,null,P(t.tagsCopy,(n,r)=>(x(),R(`li`,{key:r,style:ae(n.style),class:w([[{"ti-editing":t.tagsEditStatus[r]},n.tiClasses,n.classes,{"ti-deletion-mark":t.isMarked(r)}],`ti-tag item`]),tabindex:`0`,onClick:i=>t.$emit(`tag-clicked`,{element:n,index:r})},[I(`div`,Ya,[t.$slots[`tag-left`]?(x(),R(`div`,Xa,[b(t.$slots,`tag-left`,{tag:n,index:r,edit:t.tagsEditStatus[r],performSaveEdit:t.performSaveTag,performDelete:t.performDeleteTag,performCancelEdit:t.cancelEdit,performOpenEdit:t.performEditTag,deletionMark:t.isMarked(r)},void 0,!0)])):U(``,!0),I(`div`,{ref_for:!0,ref:t.setTagCenter,class:`ti-tag-center`},[t.$slots[`tag-center`]?U(``,!0):(x(),R(`span`,{key:0,class:w({"ti-hidden":t.tagsEditStatus[r]}),onClick:n=>t.performEditTag(r)},N(n.text),11,Za)),t.$slots[`tag-center`]?U(``,!0):(x(),H(c,{key:1,scope:{edit:t.tagsEditStatus[r],maxlength:t.maxlength,element:n,index:r,validateTag:t.createChangedTag,performCancelEdit:t.cancelEdit,performSaveEdit:t.performSaveTag}},null,8,[`scope`])),b(t.$slots,`tag-center`,{tag:n,index:r,maxlength:t.maxlength,edit:t.tagsEditStatus[r],performSaveEdit:t.performSaveTag,performDelete:t.performDeleteTag,performCancelEdit:t.cancelEdit,validateTag:t.createChangedTag,performOpenEdit:t.performEditTag,deletionMark:t.isMarked(r)},void 0,!0)],512),t.$slots[`tag-right`]?(x(),R(`div`,Qa,[b(t.$slots,`tag-right`,{tag:n,index:r,edit:t.tagsEditStatus[r],performSaveEdit:t.performSaveTag,performDelete:t.performDeleteTag,performCancelEdit:t.cancelEdit,performOpenEdit:t.performEditTag,deletionMark:t.isMarked(r)},void 0,!0)])):U(``,!0)]),I(`div`,$a,[t.$slots[`tag-actions`]?U(``,!0):he((x(),R(`i`,{key:0,class:`ti-icon-undo`,onClick:n=>t.cancelEdit(r)},null,8,eo)),[[pe,t.tagsEditStatus[r]]]),t.$slots[`tag-actions`]?U(``,!0):he((x(),R(`i`,{key:1,class:`ti-icon-close`,onClick:n=>t.performDeleteTag(r)},null,8,to)),[[pe,!t.tagsEditStatus[r]]]),t.$slots[`tag-actions`]?b(t.$slots,`tag-actions`,{key:2,tag:n,index:r,edit:t.tagsEditStatus[r],performSaveEdit:t.performSaveTag,performDelete:t.performDeleteTag,performCancelEdit:t.cancelEdit,performOpenEdit:t.performEditTag,deletionMark:t.isMarked(r)},void 0,!0):U(``,!0)])],14,Ja))),128)),I(`li`,no,[I(`input`,O({ref:`newTagInput`},t.$attrs,{class:[[t.createClasses(t.newTag,t.tags,t.validation,t.isDuplicate)],`ti-new-tag-input`],placeholder:t.placeholder,value:t.newTag,maxlength:t.maxlength,disabled:t.disabled,type:`text`,size:`1`,onKeydown:[n[12]||(n[12]=n=>t.performAddTags(t.filteredAutocompleteItems[t.selectedItem]||t.newTag,n)),n[14]||(n[14]=Se((...n)=>t.invokeDelete&&t.invokeDelete(...n),[`delete`])),n[15]||(n[15]=Se((...n)=>t.performBlur&&t.performBlur(...n),[`tab`])),n[16]||(n[16]=Se(n=>t.selectItem(n,`before`),[`up`])),n[17]||(n[17]=Se(n=>t.selectItem(n,`after`),[`down`]))],onPaste:n[13]||(n[13]=(...n)=>t.addTagsFromPaste&&t.addTagsFromPaste(...n)),onInput:n[18]||(n[18]=(...n)=>t.updateNewTag&&t.updateNewTag(...n)),onFocus:n[19]||(n[19]=n=>t.focused=!0),onClick:n[20]||(n[20]=n=>t.performClick(n))}),null,16,ro)])]))]),b(t.$slots,`between-elements`,{},void 0,!0),t.autocompleteOpen?(x(),R(`div`,{key:0,class:`ti-autocomplete`,onMouseout:n[21]||(n[21]=n=>t.selectedItem=null)},[b(t.$slots,`autocomplete-header`,{},void 0,!0),I(`ul`,null,[(x(!0),R(ge,null,P(t.filteredAutocompleteItems,(n,r)=>(x(),R(`li`,{key:r,style:ae(n.style),class:w([[n.tiClasses,n.classes,{"ti-selected-item":t.isSelected(r)}],`ti-item`]),onMouseover:n=>t.disabled?!1:t.selectedItem=r},[t.$slots[`autocomplete-item`]?b(t.$slots,`autocomplete-item`,{key:1,item:n,index:r,performAdd:n=>t.performAddTags(n,void 0,`autocomplete`),selected:t.isSelected(r)},void 0,!0):(x(),R(`div`,{key:0,onClick:r=>t.performAddTags(n,void 0,`autocomplete`)},N(n.text),9,ao))],46,io))),128))]),b(t.$slots,`autocomplete-footer`,{},void 0,!0)],32)):U(``,!0)],6)}t(ke$1,`ke`);var oo=B(Pa,[[`render`,ke$1],[`__scopeId`,`data-v-63864685`]]);oo.install=t=>t.component(oo.name,oo),typeof window<`u`&&window.Vue&&window.Vue.use(oo);var so=`modulepreload`,assetsURL=function(t){return`/`+t},co={},lo=function preload(t,n,r){let i=Promise.resolve();if(n&&n.length>0){let t=document.getElementsByTagName(`link`),a=document.querySelector(`meta[property=csp-nonce]`),o=a?.nonce||a?.getAttribute(`nonce`);function allSettled(t){return Promise.all(t.map(t=>Promise.resolve(t).then(t=>({status:`fulfilled`,value:t}),t=>({status:`rejected`,reason:t}))))}i=allSettled(n.map(n=>{if(n=assetsURL(n,r),n in co)return;co[n]=!0;let i=n.endsWith(`.css`),a=i?`[rel="stylesheet"]`:``;if(r)for(let r=t.length-1;r>=0;r--){let a=t[r];if(a.href===n&&(!i||a.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${n}"]${a}`))return;let s=document.createElement(`link`);if(s.rel=i?`stylesheet`:so,i||(s.as=`script`),s.crossOrigin=``,s.href=n,o&&s.setAttribute(`nonce`,o),document.head.appendChild(s),i)return new Promise((t,r)=>{s.addEventListener(`load`,t),s.addEventListener(`error`,()=>r(Error(`Unable to preload CSS for ${n}`)))})}))}function handlePreloadError(t){let n=new Event(`vite:preloadError`,{cancelable:!0});if(n.payload=t,window.dispatchEvent(n),!n.defaultPrevented)throw t}return i.then(n=>{for(let t of n||[])t.status===`rejected`&&handlePreloadError(t.reason);return t().catch(handlePreloadError)})},uo=j({name:`HeatMap`,props:{activityRecords:{type:Array,default:()=>[]},activityRecordsGetter:{type:Function,default:null},inactiveColor:{type:Object,default:()=>({h:0,s:0,l:.9})},activeColor:{type:Object,default:()=>({h:155,s:1,l:.5})},cellSize:{type:Number,default:12},cellMargin:{type:Number,default:3},enableSeasonalColors:{type:Boolean,default:!0}},data(){return{isLoading:!1,localActivityRecords:[],heatmapData:{},weeks:[],tooltipData:null,tooltipStyle:{},maxInRange:0}},computed:{width(){return 53*(this.cellSize+this.cellMargin)},height(){return 7*(this.cellSize+this.cellMargin)},effectiveActivityRecords(){let t=Array.isArray(this.localActivityRecords)&&this.localActivityRecords.length>0,n=t?this.localActivityRecords:this.activityRecords||[];return console.log(`Using effectiveActivityRecords, count:`,n.length,`source:`,t?`local`:`prop`),n}},watch:{activityRecords:{handler(){this.processRecords(),this.createWeeksData()},immediate:!0}},async created(){if(this.activityRecordsGetter)try{this.isLoading=!0,console.log(`Fetching activity records using getter...`);let t=await this.activityRecordsGetter();Array.isArray(t)?(this.localActivityRecords=t.filter(t=>{if(!t||!t.timeStamp)return!1;try{let n=Re(t.timeStamp);return n.isValid()&&n.year()>2e3&&n.year()<2100}catch{return!1}}),console.log(`Received ${t.length} records, ${this.localActivityRecords.length} valid after filtering`),this.processRecords(),this.createWeeksData()):(console.error(`Activity records getter did not return an array:`,t),this.localActivityRecords=[])}catch(t){console.error(`Error fetching activity records:`,t),this.localActivityRecords=[]}finally{this.isLoading=!1}else console.log(`No activityRecordsGetter provided, using direct activityRecords prop`)},methods:{toDateString(t){let n=Re(t);return Re.months()[n.month()]+` `+n.date()},processRecords(){let t=this.effectiveActivityRecords||[];console.log(`Processing ${t.length} records`);let n={};if(t.length===0){console.log(`No records to process`),this.heatmapData=n;return}let r=new Set,i={},a=0,o=0;for(let s=0;s<t.length;s++){let c=t[s];if(!c||typeof c!=`object`||!c.timeStamp){o++;continue}try{let t;if(typeof c.timeStamp==`string`)t=Re(c.timeStamp).format(`YYYY-MM-DD`);else if(typeof c.timeStamp==`number`)t=Re(new Date(c.timeStamp)).format(`YYYY-MM-DD`);else if(typeof c.timeStamp==`object`)t=typeof c.timeStamp.format==`function`?c.timeStamp.format(`YYYY-MM-DD`):c.timeStamp instanceof Date?Re(c.timeStamp).format(`YYYY-MM-DD`):Re(String(c.timeStamp)).format(`YYYY-MM-DD`);else{o++;continue}if(Re(t,`YYYY-MM-DD`,!0).isValid()){n[t]=(n[t]||0)+1,r.add(t);let o=t.substring(0,7);i[o]=(i[o]||0)+1,a++}else o++}catch{o++}}console.log(`Processed ${a} valid dates, ${o} invalid dates`),console.log(`Found ${r.size} unique dates`),console.log(`Date distribution by month:`,i),this.heatmapData=n},createWeeksData(){this.weeks=[],this.maxInRange=0;let t=Re(),n=t.clone().subtract(52,`weeks`),r=n.clone().startOf(`week`);console.log(`Creating weeks data from`,n.format(`YYYY-MM-DD`),`to`,t.format(`YYYY-MM-DD`)),Object.keys(this.heatmapData).length===0&&console.log(`No heatmap data available to display`);let i=Object.keys(this.heatmapData).slice(0,5);for(console.log(`Sample dates in heatmap data:`,i);r.isSameOrBefore(t);){let t=[];for(let n=0;n<7;n++){let n=r.format(`YYYY-MM-DD`),i={date:n,count:this.heatmapData[n]||0};t.push(i),i.count>this.maxInRange&&(this.maxInRange=i.count),r.add(1,`day`)}this.weeks.push(t)}console.log(`Weeks data created, maxInRange:`,this.maxInRange);let a=0,o=0;Object.values(this.heatmapData).forEach(t=>{a++,o+=t}),console.log(`Activity summary: ${o} activities across ${a} days`)},getColor(t){if(this.maxInRange===0)return this.hslToString(this.inactiveColor);let n=t===0?0:Math.min(2*t/this.maxInRange,1),r=this.activeColor;if(this.enableSeasonalColors){let t=Re();t.month()===11&&t.date()>=5?r=Math.random()>.5?{h:350,s:.8,l:.5}:{h:135,s:.8,l:.4}:t.month()===9&&t.date()>=25&&(r=Math.random()>.5?{h:0,s:0,l:0}:Math.random()>.5?{h:30,s:1,l:.5}:{h:270,s:1,l:.5})}let i=r.h,a=this.interpolate(this.inactiveColor.s,r.s,n),o=this.interpolate(this.inactiveColor.l,r.l,n);return this.hslToString({h:i,s:a,l:o})},interpolate(t,n,r){return t+(n-t)*r},hslToString(t){return`hsl(${t.h}, ${t.s*100}%, ${t.l*100}%)`},showTooltip(t,n){this.tooltipData=t,this.tooltipStyle={position:`absolute`,left:`${n.pageX+10}px`,top:`${n.pageY+10}px`}},hideTooltip(){this.tooltipData=null}}}),fo=[`width`,`height`],po=[`transform`],mo=[`y`,`width`,`height`,`fill`,`onMouseover`];function _sfc_render$26(t,n,r,i,a,o){return x(),R(`div`,null,[(x(),R(`svg`,{width:t.width,height:t.height},[(x(!0),R(ge,null,P(t.weeks,(r,i)=>(x(),R(`g`,{key:i,transform:`translate(${i*(t.cellSize+t.cellMargin)}, 0)`},[(x(!0),R(ge,null,P(r,(r,i)=>(x(),R(`rect`,{key:r.date,x:0,y:i*(t.cellSize+t.cellMargin),width:t.cellSize,height:t.cellSize,fill:t.getColor(r.count),onMouseover:n=>t.showTooltip(r,n),onMouseout:n[0]||(n[0]=(...n)=>t.hideTooltip&&t.hideTooltip(...n))},null,40,mo))),128))],8,po))),128))],8,fo)),t.tooltipData?(x(),R(`div`,{key:0,class:`tooltip`,style:ae(t.tooltipStyle)},N(t.tooltipData.count)+` review`+N(t.tooltipData.count===1?``:`s`)+` on `+N(t.toDateString(t.tooltipData.date)),5)):U(``,!0)])}$e(_sfc_render$26,`_sfc_render`);var ho=q(uo,[[`render`,_sfc_render$26],[`__scopeId`,`data-v-ca46239a`]]),_o=j({name:`SkMouseTrap`,props:{refreshInterval:{type:Number,default:500}},data(){return{commands:[],display:!1,intervalId:null}},created(){this.intervalId=window.setInterval(this.refreshState,this.refreshInterval)},beforeUnmount(){this.intervalId!==null&&clearInterval(this.intervalId)},methods:{refreshState(){this.commands=et.commands,this.display=this.commands.length>0}}}),vo={class:`text-caption ml-2`};function _sfc_render$25(t,n,r,i,a,o){let c=E(`v-icon`),l=E(`v-btn`),u=E(`v-toolbar-title`),d=E(`v-toolbar`),p=E(`v-spacer`),m=E(`v-list-item`),h=E(`v-list`),g=E(`v-card`),_=E(`v-dialog`);return t.display?(x(),H(_,{key:0,"max-width":`500px`,transition:`dialog-transition`},{activator:s(({props:t})=>[f(l,O({icon:``,color:`primary`},t),{default:s(()=>[f(c,null,{default:s(()=>n[0]||(n[0]=[A(`mdi-keyboard`)])),_:1})]),_:2},1040)]),default:s(()=>[f(g,null,{default:s(()=>[f(d,{color:`secondary`,dark:``,dense:``},{default:s(()=>[f(u,{class:`text-subtitle-1`},{default:s(()=>n[1]||(n[1]=[A(`Shortcut keys:`)])),_:1})]),_:1}),f(h,{dense:``},{default:s(()=>[(x(!0),R(ge,null,P(t.commands,t=>(x(),H(m,{key:Array.isArray(t.hotkey)?t.hotkey.join(`,`):t.hotkey,class:`py-1`},{default:s(()=>[f(l,{variant:`outlined`,color:`primary`,class:`text-white`,size:`small`},{default:s(()=>[A(N(Array.isArray(t.hotkey)?t.hotkey[0]:t.hotkey),1)]),_:2},1024),f(p),I(`span`,vo,N(t.command),1)]),_:2},1024))),128))]),_:1})]),_:1})]),_:1})):U(``,!0)}$e(_sfc_render$25,`_sfc_render`);var yo=q(_o,[[`render`,_sfc_render$25]]),bo=j({name:`SkMouseTrapToolTip`,props:{hotkey:{type:[String,Array],required:!0},command:{type:String,required:!0},disabled:{type:Boolean,default:!1},position:{type:String,default:`top`},showTooltip:{type:Boolean,default:!0},highlightEffect:{type:String,default:`glow`}},emits:[`hotkey-triggered`],setup(t,{emit:n}){let r=Ce(null),i=Ce(!1);Ce(`hotkey-${Math.random().toString(36).substring(2,15)}`);let a=z(()=>{let n=Array.isArray(t.hotkey)?t.hotkey[0]:t.hotkey;return n.includes(` `)?n.toLowerCase().split(` `).map(t=>t.charAt(0)+t.slice(1)).join(`, `):n.toLowerCase().split(`+`).map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(` + `)});le(()=>i.value,n=>{if(!r.value||t.disabled)return;let i=r.value.querySelector(`button, a, input[type="button"], [role="button"]`);i&&(i.style.transition=`all 250ms ease`,n&&t.highlightEffect!==`none`?i.style.filter=`brightness(1.1)`:i.style.filter=``)});let handleKeyDown=t=>{t.key===`Control`&&(i.value=!0)},handleKeyUp=t=>{t.key===`Control`&&(i.value=!1)},handleHotkeyPress=()=>{if(t.disabled||!r.value)return;let i=r.value.querySelector(`button, a, input[type="button"], [role="button"]`);if(i||(i=r.value.querySelector(`v-list-item, .v-list-item, router-link, .router-link, a, [to]`)),!i&&(r.value.hasAttribute(`to`)||r.value.tagName===`A`||r.value.classList.contains(`v-list-item`))&&(i=r.value),!i){let t=r.value.closest(`v-list-item, .v-list-item, a, [to]`);t&&(i=t)}if(i)if(i.hasAttribute(`to`)){let r=i.getAttribute(`to`);if(r&&window.location.pathname!==r){let t=window.$nuxt?.$router||window.$router;t&&typeof t.push==`function`?t.push(r):window.location.pathname=r}n(`hotkey-triggered`,t.hotkey)}else i.click(),n(`hotkey-triggered`,t.hotkey);else console.log(`No clickable element found for hotkey`,t.hotkey),n(`hotkey-triggered`,t.hotkey)},registerHotkey=()=>{t.disabled||et.addBinding({hotkey:t.hotkey,command:t.command,callback:handleHotkeyPress})},unregisterHotkey=()=>{t.disabled||et.removeBinding(t.hotkey)};return le(()=>t.disabled,t=>{t?unregisterHotkey():registerHotkey()}),Ie(()=>{document.addEventListener(`keydown`,handleKeyDown),document.addEventListener(`keyup`,handleKeyUp),registerHotkey()}),C(()=>{document.removeEventListener(`keydown`,handleKeyDown),document.removeEventListener(`keyup`,handleKeyUp),unregisterHotkey()}),{wrapperElement:r,isControlKeyPressed:i,formattedHotkey:a}}});function _sfc_render$24(t,n,r,i,a,o){return x(),R(`div`,{class:w([`sk-mousetrap-tooltip-wrapper`,[t.isControlKeyPressed&&!t.disabled&&t.highlightEffect!==`none`?`sk-mousetrap-highlight-${t.highlightEffect}`:``]]),ref:`wrapperElement`},[b(t.$slots,`default`,{},void 0,!0),f(De,{name:`fade`},{default:s(()=>[t.showTooltip&&t.isControlKeyPressed&&!t.disabled?(x(),R(`div`,{key:0,class:w([`sk-mousetrap-tooltip`,{"sk-mt-tooltip-top":t.position===`top`,"sk-mt-tooltip-bottom":t.position===`bottom`,"sk-mt-tooltip-left":t.position===`left`,"sk-mt-tooltip-right":t.position===`right`}])},N(t.formattedHotkey),3)):U(``,!0)]),_:1})],2)}$e(_sfc_render$24,`_sfc_render`);var xo=q(bo,[[`render`,_sfc_render$24],[`__scopeId`,`data-v-5d6fb09c`]]),{setInstance:So,getInstance:Co,alertUser:wo}=(()=>{let t=null;return{setInstance(n){t=n},getInstance(){return t},alertUser(n){let r=t;if(r){r.addSnack(n);return}console.error(`SnackbarService not found`)}}})(),To=j({name:`SnackbarService`,data(){return{snacks:[],show:[]}},mounted(){So(this)},methods:{addSnack(t){this.snacks.push(t),this.show.push(!0)},close(){this.show.pop(),this.show.push(!1)},getColor(t){if(t.status===Be.ok)return`success`;if(t.status===Be.error)return`error`;if(t.status===Be.warning)return`yellow`}}}),Eo={class:`d-flex align-center justify-space-between w-100`};function _sfc_render$23(t,n,r,i,a,o){let c=E(`v-icon`),l=E(`v-btn`),u=E(`v-snackbar`);return x(),R(`div`,null,[(x(!0),R(ge,null,P(t.snacks,r=>(x(),H(u,{key:t.snacks.indexOf(r),modelValue:t.show[t.snacks.indexOf(r)],"onUpdate:modelValue":n=>t.show[t.snacks.indexOf(r)]=n,timeout:r.timeout,location:`bottom right`,color:t.getColor(r)},{default:s(()=>[I(`div`,Eo,[I(`span`,null,N(r.text),1),f(l,{icon:``,variant:`text`,onClick:n[0]||(n[0]=n=>t.close())},{default:s(()=>[f(c,null,{default:s(()=>n[1]||(n[1]=[A(`mdi-close`)])),_:1})]),_:1})])]),_:2},1032,[`modelValue`,`onUpdate:modelValue`,`timeout`,`color`]))),128))])}$e(_sfc_render$23,`_sfc_render`);var Do=q(To,[[`render`,_sfc_render$23]]),Oo=j({name:`PaginatingToolbar`,props:{pages:{type:Array,required:!0},page:{type:Number,required:!0},title:{type:String,required:!1,default:``},subtitle:{type:String,required:!1,default:``}},emits:[`first`,`prev`,`next`,`last`,`set-page`]}),ko={key:0,class:`ms-2 text-subtitle-2`,"data-cy":`paginating-toolbar-subtitle`};function _sfc_render$22(t,n,r,i,a,o){let c=E(`v-toolbar-title`),l=E(`v-spacer`),u=E(`v-icon`),d=E(`v-btn`),p=E(`v-select`),m=E(`v-toolbar`);return x(),H(m,{density:`compact`},{default:s(()=>[f(c,null,{default:s(()=>[I(`span`,null,N(t.title),1),t.subtitle?(x(),R(`span`,ko,N(t.subtitle),1)):U(``,!0)]),_:1}),f(l),f(d,{variant:`text`,icon:``,color:`secondary`,disabled:t.page==1,onClick:n[0]||(n[0]=n=>t.$emit(`first`))},{default:s(()=>[f(u,null,{default:s(()=>n[5]||(n[5]=[A(`mdi-page-first`)])),_:1})]),_:1},8,[`disabled`]),f(d,{variant:`text`,icon:``,color:`secondary`,disabled:t.page==1,onClick:n[1]||(n[1]=n=>t.$emit(`prev`))},{default:s(()=>[f(u,null,{default:s(()=>n[6]||(n[6]=[A(`mdi-chevron-left`)])),_:1})]),_:1},8,[`disabled`]),f(p,{"model-value":t.page,items:t.pages,class:`pageSelect`,density:`compact`,"hide-details":``,"return-object":!1,variant:`outlined`,"onUpdate:modelValue":n[2]||(n[2]=n=>t.$emit(`set-page`,n))},{selection:s(({item:t})=>[A(N(t.value),1)]),_:1},8,[`model-value`,`items`]),f(d,{variant:`text`,icon:``,color:`secondary`,disabled:t.page==t.pages.length,onClick:n[3]||(n[3]=n=>t.$emit(`next`))},{default:s(()=>[f(u,null,{default:s(()=>n[7]||(n[7]=[A(`mdi-chevron-right`)])),_:1})]),_:1},8,[`disabled`]),f(d,{variant:`text`,icon:``,color:`secondary`,disabled:t.page==t.pages.length,onClick:n[4]||(n[4]=n=>t.$emit(`last`))},{default:s(()=>[f(u,null,{default:s(()=>n[8]||(n[8]=[A(`mdi-page-last`)])),_:1})]),_:1},8,[`disabled`])]),_:1})}$e(_sfc_render$22,`_sfc_render`);var Ao=q(Oo,[[`render`,_sfc_render$22],[`__scopeId`,`data-v-a75fea7e`]]),jo=j({name:`CardSearch`,emits:{search:t=>typeof t==`string`},data(){return{query:``}},methods:{search(){this.$emit(`search`,this.query)}}}),Mo={class:`card-search`};function _sfc_render$21(t,n,r,i,a,o){let s=E(`v-text-field`);return x(),R(`div`,Mo,[f(s,{modelValue:t.query,"onUpdate:modelValue":n[0]||(n[0]=n=>t.query=n),label:`Search for cards...`,"append-icon":`mdi-magnify`,"onClick:append":t.search,onKeydown:Se(t.search,[`enter`])},null,8,[`modelValue`,`onClick:append`,`onKeydown`])])}$e(_sfc_render$21,`_sfc_render`);var No=q(jo,[[`render`,_sfc_render$21]]),Po=j({name:`CardSearchResults`,emits:{"card-selected":t=>typeof t.cardId==`string`&&typeof t.courseId==`string`},props:{query:{type:String,required:!0},dataLayer:{type:Object,required:!0},courseFilter:{type:String,default:null}},data(){return{cards:[],loading:!1,error:null,selectedCardId:null}},watch:{query:{immediate:!0,handler(t){t&&this.fetchResults(t)}}},methods:{async fetchResults(t){this.loading=!0,this.error=null;try{let n=[];if(this.courseFilter)n=[this.courseFilter],console.log(`Filtering search to course: ${this.courseFilter}`);else{let{CourseLookup:t}=await lo(async()=>{let{CourseLookup:t}=await import(`./dist-CFgc27Ho.js`);return{CourseLookup:t}},__vite__mapDeps([0,1,2,3]));n=(await t.allCourseWare()).map(t=>t._id).filter(Boolean),console.log(`Searching across all ${n.length} courses`)}let r=[];for(let i of n){let n=await this.dataLayer.getCourseDB(i).searchCards(t);for(let t of n)r.push({...t,courseId:i})}this.cards=r,console.log(`Search completed: found ${r.length} cards across ${n.length} courses`)}catch(t){this.error=`Error fetching search results.`,console.error(`Search error:`,t)}finally{this.loading=!1}},selectCard(t){this.selectedCardId=t._id,this.$emit(`card-selected`,{cardId:t._id,courseId:t.courseId})}}}),Fo={class:`card-search-results`},Io={key:0},Lo={key:1},Ro={key:2};function _sfc_render$20(t,n,r,i,a,o){let c=E(`v-list-item-title`),l=E(`v-list-item-subtitle`),u=E(`v-list-item`),d=E(`v-list`);return x(),R(`div`,Fo,[t.loading?(x(),R(`div`,Io,`Loading...`)):t.error?(x(),R(`div`,Lo,N(t.error),1)):(x(),R(`div`,Ro,[f(d,null,{default:s(()=>[(x(!0),R(ge,null,P(t.cards,n=>(x(),H(u,{key:n._id,onClick:r=>t.selectCard(n),class:w([{"selected-card":n._id===t.selectedCardId},`cursor-pointer`])},{default:s(()=>[f(c,null,{default:s(()=>[A(N(n._id),1)]),_:2},1024),f(l,null,{default:s(()=>[A(`Course: `+N(n.courseId),1)]),_:2},1024)]),_:2},1032,[`onClick`,`class`]))),128))]),_:1})]))])}$e(_sfc_render$20,`_sfc_render`);var zo=q(Po,[[`render`,_sfc_render$20],[`__scopeId`,`data-v-285e13bd`]]),Bo=j({name:`CardHistoryViewer`,props:{cardId:{type:String,required:!0},courseId:{type:String,required:!0},userId:{type:String,required:!0},userDB:{type:Object,required:!0}},data(){return{history:[],cardHistory:null,bestIntervalHumanized:``,loading:!1,error:null,headers:[{title:`Timestamp`,key:`formattedTimeStamp`},{title:`Interval`,key:`userFriendlyInterval`},{title:`Time Spent (s)`,key:`timeSpentSeconds`},{title:`Correct?`,key:`isCorrect`},{title:`Performance`,key:`performance`},{title:`Prior Attempts`,key:`priorAttemps`},{title:`User Answer`,key:`userAnswer`}]}},watch:{cardId:{immediate:!0,handler(t){t&&this.userDB&&this.fetchHistory()}},userDB:{handler(t){t&&this.cardId&&this.fetchHistory()}}},methods:{async fetchHistory(){this.loading=!0,this.error=null;try{let t=tt(this.courseId,this.cardId),n=await this.userDB.get(t);this.cardHistory=n,this.bestIntervalHumanized=Re.duration(n.bestInterval,`seconds`).humanize();let r=[...n.records].sort((t,n)=>Re(t.timeStamp).valueOf()-Re(n.timeStamp).valueOf());this.history=r.map((t,n)=>{let i=Re(t.timeStamp),a={...t,formattedTimeStamp:i.format(`YYYY-MM-DD HH:mm:ss`),timeSpentSeconds:Math.round(t.timeSpent/1e3),isCorrect:t.isCorrect,performance:t.performance,priorAttemps:t.priorAttemps,userAnswer:t.userAnswer};if(n>0){let t=Re(r[n-1].timeStamp),o=i.diff(t,`seconds`,!0);a.intervalFromPrevious=Math.round(o*100)/100,a.userFriendlyInterval=`${a.intervalFromPrevious} sec (${Re.duration(o,`seconds`).humanize()})`}return a})}catch(t){this.error=`Error fetching card history.`,console.error(t)}finally{this.loading=!1}}}}),Vo={class:`card-history-viewer`},Ho={key:0},Uo={key:1},Wo={key:2,class:`error-message`},Go={key:3};function _sfc_render$19(t,n,r,i,a,o){let c=E(`v-card-title`),l=E(`v-list-item-title`),u=E(`v-list-item-subtitle`),d=E(`v-list-item-content`),p=E(`v-list-item`),m=E(`v-card`),h=E(`v-data-table`);return x(),R(`div`,Vo,[t.userId?(x(),R(`h3`,Ho,`Card History for User: `+N(t.userId),1)):U(``,!0),t.loading?(x(),R(`div`,Uo,`Loading...`)):t.error?(x(),R(`div`,Wo,N(t.error),1)):t.cardHistory?(x(),R(`div`,Go,[f(m,{class:`mb-4`},{default:s(()=>[f(c,null,{default:s(()=>n[0]||(n[0]=[A(`Summary`)])),_:1}),f(p,null,{default:s(()=>[f(d,null,{default:s(()=>[f(l,null,{default:s(()=>[A(`Best Interval: `+N(t.cardHistory.bestInterval)+` seconds (`+N(t.bestIntervalHumanized)+`)`,1)]),_:1}),f(u,null,{default:s(()=>n[1]||(n[1]=[A(`The to-date largest interval between successful card reviews.`)])),_:1})]),_:1})]),_:1}),f(p,null,{default:s(()=>[f(d,null,{default:s(()=>[f(l,null,{default:s(()=>[A(`Lapses: `+N(t.cardHistory.lapses),1)]),_:1}),f(u,null,{default:s(()=>n[2]||(n[2]=[A(`The number of times that a card has been failed in review.`)])),_:1})]),_:1})]),_:1}),f(p,null,{default:s(()=>[f(d,null,{default:s(()=>[f(l,null,{default:s(()=>[A(`Streak: `+N(t.cardHistory.streak),1)]),_:1}),f(u,null,{default:s(()=>n[3]||(n[3]=[A(`The number of consecutive successful impressions on this card.`)])),_:1})]),_:1})]),_:1})]),_:1}),f(h,{headers:t.headers,items:t.history,class:`elevation-1`},null,8,[`headers`,`items`])])):U(``,!0)])}$e(_sfc_render$19,`_sfc_render`);var Ko=q(Bo,[[`render`,_sfc_render$19],[`__scopeId`,`data-v-a4bdfdfb`]]),Displayable=class{constructor(t){if(t.length===0)throw Error(`
|
|
14
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _toConsumableArray(t){return _arrayWithoutHoles(t)||_iterableToArray(t)||_unsupportedIterableToArray(t)||_nonIterableSpread()}var s=r(`a352`),c=r.n(s);function removeNode(t){t.parentElement!==null&&t.parentElement.removeChild(t)}function insertNodeAt(t,n,r){var i=r===0?t.children[0]:t.children[r-1].nextSibling;t.insertBefore(n,i)}var l=r(`dbf1`);r(`13d5`),r(`4fad`),r(`ac1f`),r(`5319`);function cached(t){var n=Object.create(null);return function cachedFn(r){return n[r]||(n[r]=t(r))}}var u=/-(\w)/g,d=cached(function(t){return t.replace(u,function(t,n){return n.toUpperCase()})});r(`5db7`),r(`73d9`);var f=[`Start`,`Add`,`Remove`,`Update`,`End`],p=[`Choose`,`Unchoose`,`Sort`,`Filter`,`Clone`],m=[`Move`],h=[m,f,p].flatMap(function(t){return t}).map(function(t){return`on${t}`}),g={manage:m,manageAndEmit:f,emit:p};function isReadOnly(t){return h.indexOf(t)!==-1}r(`caad`),r(`2ca0`);var _=`a.abbr.address.area.article.aside.audio.b.base.bdi.bdo.blockquote.body.br.button.canvas.caption.cite.code.col.colgroup.data.datalist.dd.del.details.dfn.dialog.div.dl.dt.em.embed.fieldset.figcaption.figure.footer.form.h1.h2.h3.h4.h5.h6.head.header.hgroup.hr.html.i.iframe.img.input.ins.kbd.label.legend.li.link.main.map.mark.math.menu.menuitem.meta.meter.nav.noscript.object.ol.optgroup.option.output.p.param.picture.pre.progress.q.rb.rp.rt.rtc.ruby.s.samp.script.section.select.slot.small.source.span.strong.style.sub.summary.sup.svg.table.tbody.td.template.textarea.tfoot.th.thead.time.title.tr.track.u.ul.var.video.wbr`.split(`.`);function isHtmlTag(t){return _.includes(t)}function isTransition(t){return[`transition-group`,`TransitionGroup`].includes(t)}function isHtmlAttribute(t){return[`id`,`class`,`role`,`style`].includes(t)||t.startsWith(`data-`)||t.startsWith(`aria-`)||t.startsWith(`on`)}function project(t){return t.reduce(function(t,n){var r=_slicedToArray(n,2),i=r[0];return t[i]=r[1],t},{})}function getComponentAttributes(t){var n=t.$attrs,r=t.componentData,i=r===void 0?{}:r;return _objectSpread2(_objectSpread2({},project(Object.entries(n).filter(function(t){var n=_slicedToArray(t,2),r=n[0];return n[1],isHtmlAttribute(r)}))),i)}function createSortableOption(t){var n=t.$attrs,r=t.callBackBuilder,i=project(getValidSortableEntries(n));Object.entries(r).forEach(function(t){var n=_slicedToArray(t,2),r=n[0],a=n[1];g[r].forEach(function(t){i[`on${t}`]=a(t)})});var a=`[data-draggable]${i.draggable||``}`;return _objectSpread2(_objectSpread2({},i),{},{draggable:a})}function getValidSortableEntries(t){return Object.entries(t).filter(function(t){var n=_slicedToArray(t,2),r=n[0];return n[1],!isHtmlAttribute(r)}).map(function(t){var n=_slicedToArray(t,2),r=n[0],i=n[1];return[d(r),i]}).filter(function(t){var n=_slicedToArray(t,2),r=n[0];return n[1],!isReadOnly(r)})}r(`c740`);function _classCallCheck(t,n){if(!(t instanceof n))throw TypeError(`Cannot call a class as a function`)}function _defineProperties(t,n){for(var r=0;r<n.length;r++){var i=n[r];i.enumerable=i.enumerable||!1,i.configurable=!0,`value`in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function _createClass(t,n,r){return n&&_defineProperties(t.prototype,n),r&&_defineProperties(t,r),t}var b=function getHtmlElementFromNode(t){return t.el},x=function addContext(t,n){return t.__draggable_context=n},S=function getContext(t){return t.__draggable_context},C=function(){function ComponentStructure(t){var n=t.nodes,r=n.header,i=n.default,a=n.footer,o=t.root,s=t.realList;_classCallCheck(this,ComponentStructure),this.defaultNodes=i,this.children=[].concat(_toConsumableArray(r),_toConsumableArray(i),_toConsumableArray(a)),this.externalComponent=o.externalComponent,this.rootTransition=o.transition,this.tag=o.tag,this.realList=s}return _createClass(ComponentStructure,[{key:`render`,value:function render(t,n){var r=this.tag,i=this.children;return t(r,n,this._isRootComponent?{default:function _default(){return i}}:i)}},{key:`updated`,value:function updated(){var t=this.defaultNodes,n=this.realList;t.forEach(function(t,r){x(b(t),{element:n[r],index:r})})}},{key:`getUnderlyingVm`,value:function getUnderlyingVm(t){return S(t)}},{key:`getVmIndexFromDomIndex`,value:function getVmIndexFromDomIndex(t,n){var r=this.defaultNodes,i=r.length,a=n.children,o=a.item(t);if(o===null)return i;var s=S(o);if(s)return s.index;if(i===0)return 0;var c=b(r[0]);return t<_toConsumableArray(a).findIndex(function(t){return t===c})?0:i}},{key:`_isRootComponent`,get:function get(){return this.externalComponent||this.rootTransition}}]),ComponentStructure}(),w=r(`8bbf`);function getSlot(t,n){var r=t[n];return r?r():[]}function computeNodes(t){var n=t.$slots,r=t.realList,i=t.getKey,a=r||[],o=_slicedToArray([`header`,`footer`].map(function(t){return getSlot(n,t)}),2),s=o[0],c=o[1],l=n.item;if(!l)throw Error(`draggable element must have an item slot`);var u=a.flatMap(function(t,n){return l({element:t,index:n}).map(function(n){return n.key=i(t),n.props=_objectSpread2(_objectSpread2({},n.props||{}),{},{"data-draggable":!0}),n})});if(u.length!==a.length)throw Error(`Item slot must have only one child`);return{header:s,footer:c,default:u}}function getRootInformation(t){var n=isTransition(t),r=!isHtmlTag(t)&&!n;return{transition:n,externalComponent:r,tag:r?(0,w.resolveComponent)(t):n?w.TransitionGroup:t}}function computeComponentStructure(t){var n=t.$slots,r=t.tag,i=t.realList,a=t.getKey;return new C({nodes:computeNodes({$slots:n,realList:i,getKey:a}),root:getRootInformation(r),realList:i})}function _emit(t,n){var r=this;(0,w.nextTick)(function(){return r.$emit(t.toLowerCase(),n)})}function _manage(t){var n=this;return function(r,i){if(n.realList!==null)return n[`onDrag${t}`](r,i)}}function _manageAndEmit(t){var n=this,r=_manage.call(this,t);return function(i,a){r.call(n,i,a),_emit.call(n,t,i)}}var T=null,E={list:{type:Array,required:!1,default:null},modelValue:{type:Array,required:!1,default:null},itemKey:{type:[String,Function],required:!0},clone:{type:Function,default:function _default(t){return t}},tag:{type:String,default:`div`},move:{type:Function,default:null},componentData:{type:Object,required:!1,default:null}},D=[`update:modelValue`,`change`].concat(_toConsumableArray([].concat(_toConsumableArray(g.manageAndEmit),_toConsumableArray(g.emit)).map(function(t){return t.toLowerCase()})));n.default=(0,w.defineComponent)({name:`draggable`,inheritAttrs:!1,props:E,emits:D,data:function data(){return{error:!1}},render:function render(){try{this.error=!1;var t=this.$slots,n=this.$attrs,r=this.tag,i=this.componentData,a=this.realList,o=this.getKey,s=computeComponentStructure({$slots:t,tag:r,realList:a,getKey:o});this.componentStructure=s;var c=getComponentAttributes({$attrs:n,componentData:i});return s.render(w.h,c)}catch(t){return this.error=!0,(0,w.h)(`pre`,{style:{color:`red`}},t.stack)}},created:function created(){this.list!==null&&this.modelValue!==null&&l.a.error(`modelValue and list props are mutually exclusive! Please set one or another.`)},mounted:function mounted(){var t=this;if(!this.error){var n=this.$attrs,r=this.$el;this.componentStructure.updated();var i=createSortableOption({$attrs:n,callBackBuilder:{manageAndEmit:function manageAndEmit(n){return _manageAndEmit.call(t,n)},emit:function emit(n){return _emit.bind(t,n)},manage:function manage(n){return _manage.call(t,n)}}}),a=r.nodeType===1?r:r.parentElement;this._sortable=new c.a(a,i),this.targetDomElement=a,a.__draggable_component__=this}},updated:function updated(){this.componentStructure.updated()},beforeUnmount:function beforeUnmount(){this._sortable!==void 0&&this._sortable.destroy()},computed:{realList:function realList(){return this.list||this.modelValue},getKey:function getKey(){var t=this.itemKey;return typeof t==`function`?t:function(n){return n[t]}}},watch:{$attrs:{handler:function handler(t){var n=this._sortable;n&&getValidSortableEntries(t).forEach(function(t){var r=_slicedToArray(t,2),i=r[0],a=r[1];n.option(i,a)})},deep:!0}},methods:{getUnderlyingVm:function getUnderlyingVm(t){return this.componentStructure.getUnderlyingVm(t)||null},getUnderlyingPotencialDraggableComponent:function getUnderlyingPotencialDraggableComponent(t){return t.__draggable_component__},emitChanges:function emitChanges(t){var n=this;(0,w.nextTick)(function(){return n.$emit(`change`,t)})},alterList:function alterList(t){if(this.list){t(this.list);return}var n=_toConsumableArray(this.modelValue);t(n),this.$emit(`update:modelValue`,n)},spliceList:function spliceList(){var t=arguments;this.alterList(function spliceList(n){return n.splice.apply(n,_toConsumableArray(t))})},updatePosition:function updatePosition(t,n){this.alterList(function updatePosition(r){return r.splice(n,0,r.splice(t,1)[0])})},getRelatedContextFromMoveEvent:function getRelatedContextFromMoveEvent(t){var n=t.to,r=t.related,i=this.getUnderlyingPotencialDraggableComponent(n);if(!i)return{component:i};var a=i.realList,o={list:a,component:i};return n!==r&&a?_objectSpread2(_objectSpread2({},i.getUnderlyingVm(r)||{}),o):o},getVmIndexFromDomIndex:function getVmIndexFromDomIndex(t){return this.componentStructure.getVmIndexFromDomIndex(t,this.targetDomElement)},onDragStart:function onDragStart(t){this.context=this.getUnderlyingVm(t.item),t.item._underlying_vm_=this.clone(this.context.element),T=t.item},onDragAdd:function onDragAdd(t){var n=t.item._underlying_vm_;if(n!==void 0){removeNode(t.item);var r=this.getVmIndexFromDomIndex(t.newIndex);this.spliceList(r,0,n);var i={element:n,newIndex:r};this.emitChanges({added:i})}},onDragRemove:function onDragRemove(t){if(insertNodeAt(this.$el,t.item,t.oldIndex),t.pullMode===`clone`){removeNode(t.clone);return}var n=this.context,r=n.index,i=n.element;this.spliceList(r,1);var a={element:i,oldIndex:r};this.emitChanges({removed:a})},onDragUpdate:function onDragUpdate(t){removeNode(t.item),insertNodeAt(t.from,t.item,t.oldIndex);var n=this.context.index,r=this.getVmIndexFromDomIndex(t.newIndex);this.updatePosition(n,r);var i={element:this.context.element,oldIndex:n,newIndex:r};this.emitChanges({moved:i})},computeFutureIndex:function computeFutureIndex(t,n){if(!t.element)return 0;var r=_toConsumableArray(n.to.children).filter(function(t){return t.style.display!==`none`}),i=r.indexOf(n.related),a=t.component.getVmIndexFromDomIndex(i);return r.indexOf(T)!==-1||!n.willInsertAfter?a:a+1},onDragMove:function onDragMove(t,n){var r=this.move,i=this.realList;if(!r||!i)return!0;var a=this.getRelatedContextFromMoveEvent(t),o=this.computeFutureIndex(a,t),s=_objectSpread2(_objectSpread2({},this.context),{},{futureIndex:o});return r(_objectSpread2(_objectSpread2({},t),{},{relatedContext:a,draggedContext:s}),n)},onDragEnd:function onDragEnd(){T=null}}})}),fb6a:(function(t,n,r){var i=r(`23e7`),a=r(`861d`),o=r(`e8b5`),s=r(`23cb`),c=r(`50c4`),l=r(`fc6a`),u=r(`8418`),d=r(`b622`),f=r(`1dde`),p=r(`ae40`),m=f(`slice`),h=p(`slice`,{ACCESSORS:!0,0:0,1:2}),g=d(`species`),_=[].slice,b=Math.max;i({target:`Array`,proto:!0,forced:!m||!h},{slice:function slice(t,n){var r=l(this),i=c(r.length),d=s(t,i),f=s(n===void 0?i:n,i),p,m,h;if(o(r)&&(p=r.constructor,typeof p==`function`&&(p===Array||o(p.prototype))?p=void 0:a(p)&&(p=p[g],p===null&&(p=void 0)),p===Array||p===void 0))return _.call(r,d,f);for(m=new(p===void 0?Array:p)(b(f-d,0)),h=0;d<f;d++,h++)d in r&&u(m,h,r[d]);return m.length=h,m}})}),fc6a:(function(t,n,r){var i=r(`44ad`),a=r(`1d80`);t.exports=function(t){return i(a(t))}}),fdbc:(function(t,n){t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}}),fdbf:(function(t,n,r){t.exports=r(`4930`)&&!Symbol.sham&&typeof Symbol.iterator==`symbol`})}).default})}))(),1),B=(t,n)=>{let r=t.__vccOpts||t;for(let[t,i]of n)r[t]=i;return r},ka={name:`TagInput`,props:{scope:{type:Object,required:!0}}},Aa=[`maxlength`];function K(t,n,r,i,a,o){return r.scope.edit?he((x(),R(`input`,{key:0,"onUpdate:modelValue":n[0]||(n[0]=t=>r.scope.element.text=t),maxlength:r.scope.maxlength,type:`text`,class:`ti-tag-input`,size:`1`,onInput:n[1]||(n[1]=t=>r.scope.validateTag(r.scope.index,t)),onBlur:n[2]||(n[2]=t=>r.scope.performCancelEdit(r.scope.index)),onKeydown:n[3]||(n[3]=t=>r.scope.performSaveEdit(r.scope.index,t))},null,40,Aa)),[[Te,r.scope.element.text]]):U(``,!0)}var ja=B(ka,[[`render`,K],[`__scopeId`,`data-v-a3408643`]]),M=t=>!t.some(t=>{let n=!t.text;n&&console.warn(`Missing property "text"`,t);let r=!1;return t.classes&&(r=typeof t.classes!=`string`),r&&console.warn(`Property "classes" must be type of string`,t),n||r}),F=t=>!t.some(t=>{if(typeof t==`number`){let n=isFinite(t)&&Math.floor(t)===t;return n||console.warn(`Only numerics are allowed for this prop. Found:`,t),!n}else if(typeof t==`string`){let n=/\W|[a-z]|!\d/i.test(t);return n||console.warn(`Only alpha strings are allowed for this prop. Found:`,t),!n}else return console.warn(`Only numeric and string values are allowed. Found:`,t),!1}),Ma={modelValue:{type:String,default:``,required:!0},tags:{type:Array,default:()=>[],validator:M},autocompleteItems:{type:Array,default:()=>[],validator:M},allowEditTags:{type:Boolean,default:!1},autocompleteFilterDuplicates:{default:!0,type:Boolean},addOnlyFromAutocomplete:{type:Boolean,default:!1},autocompleteMinLength:{type:Number,default:1},autocompleteAlwaysOpen:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},placeholder:{type:String,default:`Add Tag`},addOnKey:{type:Array,default:()=>[13],validator:F},saveOnKey:{type:Array,default:()=>[13],validator:F},maxTags:{type:Number},maxlength:{type:Number},validation:{type:Array,default:()=>[],validator(t){return!t.some(t=>{let n=!t.rule;n&&console.warn(`Property "rule" is missing`,t);let r=t.rule&&(typeof t.rule==`string`||t.rule instanceof RegExp||{}.toString.call(t.rule)===`[object Function]`);r||console.warn(`A rule must be type of string, RegExp or function. Found:`,JSON.stringify(t.rule));let i=!t.classes;i&&console.warn(`Property "classes" is missing`,t);let a=t.type&&typeof t.type!=`string`;return a&&console.warn(`Property "type" must be type of string. Found:`,t),!r||n||i||a})}},separators:{type:Array,default:()=>[`;`],validator(t){return!t.some(t=>{let n=typeof t!=`string`;return n&&console.warn(`Separators must be type of string. Found:`,t),n})}},avoidAddingDuplicates:{type:Boolean,default:!0},addOnBlur:{type:Boolean,default:!0},isDuplicate:{type:Function,default:null},addFromPaste:{type:Boolean,default:!0},deleteOnBackspace:{default:!0,type:Boolean},isDraggable:{type:Boolean,default:!1},draggableHandle:{type:Boolean,default:!1},onBeforeAddingTag:Function,onBeforeDeletingTag:Function,onBeforeEditingTag:Function,onBeforeSavingTag:Function};function L(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,`default`)?t.default:t}var Na=L(function e(t,n){if(t===n)return!0;if(t&&n&&typeof t==`object`&&typeof n==`object`){if(t.constructor!==n.constructor)return!1;var r,i,a;if(Array.isArray(t)){if(r=t.length,r!=n.length)return!1;for(i=r;i--!==0;)if(!e(t[i],n[i]))return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===n.toString();if(a=Object.keys(t),r=a.length,r!==Object.keys(n).length)return!1;for(i=r;i--!==0;)if(!Object.prototype.hasOwnProperty.call(n,a[i]))return!1;for(i=r;i--!==0;){var o=a[i];if(!e(t[o],n[o]))return!1}return!0}return t!==t&&n!==n}),J=(t,n)=>n.filter(n=>{let{text:r}=t;return typeof n.rule==`string`?!new RegExp(n.rule).test(r):n.rule instanceof RegExp?!n.rule.test(r):{}.toString.call(n.rule)===`[object Function]`?n.rule(t):!1}).map(t=>t.classes),y=t=>JSON.parse(JSON.stringify(t)),W=(t,n)=>{let r=0;for(;r<t.length;){if(n(t[r],r,t))return r;r++}return-1},V=(t,n,r=[],i)=>{t.text===void 0&&(t={text:t});let a=J(t,r),o=W(n,n=>n===t),s=y(n),c=o===-1?y(t):s.splice(o,1)[0];return(i?i(s,c):s.map(t=>t.text).indexOf(c.text)!==-1)&&a.push(`ti-duplicate`),a.length===0?a.push(`ti-valid`):a.push(`ti-invalid`),a},v=(t,...n)=>{t.text===void 0&&(t={text:t});let r=y(t);return r.tiClasses=V(t,...n),r},G=(t,...n)=>t.map(r=>v(r,t,...n)),Pa={name:`VueTagsInput`,components:{TagInput:ja,draggable:Oa.default},props:Ma,emits:[`adding-duplicate`,`before-adding-tag`,`before-deleting-tag`,`before-editing-tag`,`before-saving-tag`,`max-tags-reached`,`saving-duplicate`,`tags-changed`,`tag-clicked`,`update:modelValue`,`update:tags`,`tag-order-changed`,`click`],inheritAttrs:!1,data(){return{tagCenter:[],newTag:null,tagsCopy:[],tagsEditStatus:null,deletionMark:null,deletionMarkTime:null,selectedItem:null,focused:null}},computed:{autocompleteOpen(){return this.autocompleteAlwaysOpen?!0:this.newTag!==null&&this.newTag.length>=this.autocompleteMinLength&&this.filteredAutocompleteItems.length>0&&this.focused},filteredAutocompleteItems(){let t=this.autocompleteItems.map(t=>v(t,this.tags,this.validation,this.isDuplicate));return this.autocompleteFilterDuplicates?t.filter(this.duplicateFilter):t}},methods:{createClasses:V,getSelectedIndex(t){let n=this.filteredAutocompleteItems,r=this.selectedItem,i=n.length-1;if(n.length!==0)return r===null?0:t===`before`&&r===0?i:t===`after`&&r===i?0:t===`after`?r+1:r-1},selectDefaultItem(){this.addOnlyFromAutocomplete&&this.filteredAutocompleteItems.length>0?this.selectedItem=0:this.selectedItem=null},selectItem(t,n){t.preventDefault(),this.selectedItem=this.getSelectedIndex(n)},isSelected(t){return this.selectedItem===t},isMarked(t){return this.deletionMark===t},setTagCenter(t){t&&this.tagCenter.push(t)},invokeDelete(){if(!this.deleteOnBackspace||this.newTag.length>0)return;let t=this.tagsCopy.length-1;this.deletionMark===null?(this.deletionMarkTime=setTimeout(()=>{this.deletionMark=null},1e3),this.deletionMark=t):this.performDeleteTag(t)},addTagsFromPaste(){this.addFromPaste&&setTimeout(()=>this.performAddTags(this.newTag),10)},performEditTag(t){this.allowEditTags&&(this.onBeforeAddingTag||this.editTag(t),this.$emit(`before-editing-tag`,{index:t,tag:this.tagsCopy[t],editTag:()=>this.editTag(t)}))},editTag(t){this.allowEditTags&&(this.toggleEditMode(t),this.focus(t))},toggleEditMode(t){!this.allowEditTags||this.disabled||(this.tagsEditStatus[t]=!this.tagsEditStatus[t])},createChangedTag(t,n){let r=this.tagsCopy[t];r.text=n?n.target.value:this.tagsCopy[t].text,this.tagsCopy[t]=v(r,this.tagsCopy,this.validation,this.isDuplicate)},focus(t){this.$nextTick(()=>{let n=this.tagCenter[t].querySelector(`input.ti-tag-input`);n&&n.focus()})},quote(t){return t.replace(/([()[{*+.$^\\|?])/g,`\\$1`)},cancelEdit(t){this.tags[t]&&(this.tagsCopy[t]=y(v(this.tags[t],this.tags,this.validation,this.isDuplicate)),this.tagsEditStatus[t]=!1)},hasForbiddingAddRule(t){return t.some(t=>{let n=this.validation.find(n=>t===n.classes);return n?n.disableAdd:!1})},createTagTexts(t){let n=new RegExp(this.separators.map(t=>this.quote(t)).join(`|`));return t.split(n).map(t=>({text:t}))},performDeleteTag(t){this.onBeforeDeletingTag||this.deleteTag(t),this.$emit(`before-deleting-tag`,{index:t,tag:this.tagsCopy[t],deleteTag:()=>this.deleteTag(t)})},deleteTag(t){this.disabled||(this.deletionMark=null,clearTimeout(this.deletionMarkTime),this.tagsCopy.splice(t,1),this.$emit(`update:tags`,this.tagsCopy),this.$emit(`tags-changed`,this.tagsCopy))},noTriggerKey(t,n){let r=this[n].indexOf(t.keyCode)!==-1||this[n].indexOf(t.key)!==-1;return r&&t.preventDefault(),!r},performAddTags(t,n,r){if(this.disabled||n&&this.noTriggerKey(n,`addOnKey`))return;let i=[];typeof t==`object`&&(i=[t]),typeof t==`string`&&(i=this.createTagTexts(t)),i=i.filter(t=>t.text.trim().length>0),i.forEach(t=>{t=v(t,this.tags,this.validation,this.isDuplicate),this.onBeforeAddingTag||this.addTag(t,r),this.$emit(`before-adding-tag`,{tag:t,addTag:()=>this.addTag(t,r)})})},duplicateFilter(t){return this.isDuplicate?!this.isDuplicate(this.tagsCopy,t):!this.tagsCopy.find(n=>n.text===t.text)},addTag(t,n=`new-tag-input`){let r=this.filteredAutocompleteItems.map(t=>t.text);this.addOnlyFromAutocomplete&&r.indexOf(t.text)===-1||this.$nextTick(()=>{if(this.maxTags&&this.maxTags<=this.tagsCopy.length)return this.$emit(`max-tags-reached`,t);if(this.avoidAddingDuplicates&&!this.duplicateFilter(t))return this.$emit(`adding-duplicate`,t);this.hasForbiddingAddRule(t.tiClasses)||(this.newTag=``,this.tagsCopy.push(t),this.$emit(`update:tags`,this.tagsCopy),n===`autocomplete`&&this.$refs.newTagInput.focus(),this.$emit(`tags-changed`,this.tagsCopy))})},performSaveTag(t,n){let r=this.tagsCopy[t];this.disabled||n&&this.noTriggerKey(n,`addOnKey`)||r.text.trim().length!==0&&(this[`on-before-saving-tag`]||this.saveTag(t,r),this.$emit(`before-saving-tag`,{index:t,tag:r,saveTag:()=>this.saveTag(t,r)}))},saveTag(t,n){if(this.avoidAddingDuplicates){let r=y(this.tagsCopy),i=r.splice(t,1)[0];if(this.isDuplicate?this.isDuplicate(r,i):r.map(t=>t.text).indexOf(i.text)!==-1)return this.$emit(`saving-duplicate`,n)}this.hasForbiddingAddRule(n.tiClasses)||(this.tagsCopy[t]=n,this.toggleEditMode(t),this.$emit(`update:tags`,this.tagsCopy),this.$emit(`tags-changed`,this.tagsCopy))},tagsEqual(){return!this.tagsCopy.some((t,n)=>!Na(t,this.tags[n]))},updateNewTag(t){let n=t.target.value;this.newTag=n,this.$emit(`update:modelValue`,n)},initTags(){this.tagsCopy=G(this.tags,this.validation,this.isDuplicate),this.tagsEditStatus=y(this.tags).map(()=>!1),this.tagsEqual()||this.$emit(`update:tags`,this.tagsCopy)},blurredOnClick(t){this.$el.contains(t.target)||this.$el.contains(document.activeElement)||this.performBlur(t)},performBlur(){this.addOnBlur&&this.focused&&this.performAddTags(this.newTag),this.focused=!1},tagOrderChanged(){this.$emit(`tag-order-changed`,this.tagsCopy)},performClick(t){if(this.addOnlyFromAutocomplete)return this.$emit(`click`,t),!1;this.selectedItem=null,this.$emit(`click`,t)},getTagIndex(t){return this.tagsCopy.findIndex(n=>n.text===t.text)}},watch:{modelValue(t){this.addOnlyFromAutocomplete||(this.selectedItem=null),this.newTag=t},tags:{handler(){this.initTags()},deep:!0},autocompleteOpen:`selectDefaultItem`},created(){this.newTag=this.modelValue,this.initTags()},mounted(){this.selectDefaultItem(),document.addEventListener(`click`,this.blurredOnClick)},beforeUpdate(){this.tagCenter=[]},unmounted(){document.removeEventListener(`click`,this.blurredOnClick)}},Fa={class:`ti-input`},Ia=[`onClick`],La={class:`ti-content`},Ra={key:0,class:`handle`},za={key:1,class:`ti-tag-left`},Ba=[`onClick`],Va={key:2,class:`ti-tag-right`},Ha={class:`ti-actions`},Ua=[`onClick`],Wa=[`onClick`],Ga={class:`ti-new-tag-input-wrapper`},Ka=[`placeholder`,`value`,`maxlength`,`disabled`],qa={key:1,class:`ti-tags`},Ja=[`onClick`],Ya={class:`ti-content`},Xa={key:0,class:`ti-tag-left`},Za=[`onClick`],Qa={key:1,class:`ti-tag-right`},$a={class:`ti-actions`},eo=[`onClick`],to=[`onClick`],no={class:`ti-new-tag-input-wrapper`},ro=[`placeholder`,`value`,`maxlength`,`disabled`],io=[`onMouseover`],ao=[`onClick`];function ke$1(t,n,r,i,a,o){let c=E(`tag-input`),l=E(`draggable`);return x(),R(`div`,{class:w([`vue-tags-input`,[{"ti-disabled":t.disabled},{"ti-focus":t.focused},t.$attrs.class]]),style:ae(t.$attrs.style)},[I(`div`,Fa,[t.isDraggable?(x(),H(l,{key:0,modelValue:t.tagsCopy,"onUpdate:modelValue":n[9]||(n[9]=n=>t.tagsCopy=n),group:`tags`,class:`ti-tags`,tag:`ul`,draggable:`.item`,handle:t.draggableHandle?`.handle`:``,"ghost-class":`ghost-tag`,"drag-class":`drag-tag`,"item-key":t.getTagIndex,onStart:n[10]||(n[10]=n=>t.drag=!0),onEnd:n[11]||(n[11]=n=>{t.drag=!1,t.tagOrderChanged()})},{item:s(({element:n,index:r})=>[(x(),R(`li`,{key:r,style:ae(n.style),class:w([[{"ti-editing":t.tagsEditStatus[r]},n.tiClasses,n.classes,{"ti-deletion-mark":t.isMarked(r)}],`ti-tag item`]),tabindex:`0`,onClick:i=>t.$emit(`tag-clicked`,{element:n,index:r})},[I(`div`,La,[t.draggableHandle?(x(),R(`span`,Ra,`::`)):U(``,!0),t.$slots[`tag-left`]?(x(),R(`div`,za,[b(t.$slots,`tag-left`,{tag:n,index:r,edit:t.tagsEditStatus[r],performSaveEdit:t.performSaveTag,performDelete:t.performDeleteTag,performCancelEdit:t.cancelEdit,performOpenEdit:t.performEditTag,deletionMark:t.isMarked(r)},void 0,!0)])):U(``,!0),I(`div`,{ref:t.setTagCenter,class:`ti-tag-center`},[t.$slots[`tag-center`]?U(``,!0):(x(),R(`span`,{key:0,class:w({"ti-hidden":t.tagsEditStatus[r]}),onClick:n=>t.performEditTag(r)},N(n.text),11,Ba)),t.$slots[`tag-center`]?U(``,!0):(x(),H(c,{key:1,scope:{edit:t.tagsEditStatus[r],maxlength:t.maxlength,element:n,index:r,validateTag:t.createChangedTag,performCancelEdit:t.cancelEdit,performSaveEdit:t.performSaveTag}},null,8,[`scope`])),b(t.$slots,`tag-center`,{tag:n,index:r,maxlength:t.maxlength,edit:t.tagsEditStatus[r],performSaveEdit:t.performSaveTag,performDelete:t.performDeleteTag,performCancelEdit:t.cancelEdit,validateTag:t.createChangedTag,performOpenEdit:t.performEditTag,deletionMark:t.isMarked(r)},void 0,!0)],512),t.$slots[`tag-right`]?(x(),R(`div`,Va,[b(t.$slots,`tag-right`,{tag:n,index:r,edit:t.tagsEditStatus[r],performSaveEdit:t.performSaveTag,performDelete:t.performDeleteTag,performCancelEdit:t.cancelEdit,performOpenEdit:t.performEditTag,deletionMark:t.isMarked(r)},void 0,!0)])):U(``,!0)]),I(`div`,Ha,[t.$slots[`tag-actions`]?U(``,!0):he((x(),R(`i`,{key:0,class:`ti-icon-undo`,onClick:n=>t.cancelEdit(r)},null,8,Ua)),[[pe,t.tagsEditStatus[r]]]),t.$slots[`tag-actions`]?U(``,!0):he((x(),R(`i`,{key:1,class:`ti-icon-close`,onClick:n=>t.performDeleteTag(r)},null,8,Wa)),[[pe,!t.tagsEditStatus[r]]]),t.$slots[`tag-actions`]?b(t.$slots,`tag-actions`,{key:2,tag:n,index:r,edit:t.tagsEditStatus[r],performSaveEdit:t.performSaveTag,performDelete:t.performDeleteTag,performCancelEdit:t.cancelEdit,performOpenEdit:t.performEditTag,deletionMark:t.isMarked(r)},void 0,!0):U(``,!0)])],14,Ia))]),footer:s(()=>[I(`li`,Ga,[I(`input`,O({ref:`newTagInput`},t.$attrs,{class:[[t.createClasses(t.newTag,t.tags,t.validation,t.isDuplicate)],`ti-new-tag-input`],placeholder:t.placeholder,value:t.newTag,maxlength:t.maxlength,disabled:t.disabled,type:`text`,size:`1`,onKeydown:[n[0]||(n[0]=n=>t.performAddTags(t.filteredAutocompleteItems[t.selectedItem]||t.newTag,n)),n[2]||(n[2]=Se((...n)=>t.invokeDelete&&t.invokeDelete(...n),[`delete`])),n[3]||(n[3]=Se((...n)=>t.performBlur&&t.performBlur(...n),[`tab`])),n[4]||(n[4]=Se(n=>t.selectItem(n,`before`),[`up`])),n[5]||(n[5]=Se(n=>t.selectItem(n,`after`),[`down`]))],onPaste:n[1]||(n[1]=(...n)=>t.addTagsFromPaste&&t.addTagsFromPaste(...n)),onInput:n[6]||(n[6]=(...n)=>t.updateNewTag&&t.updateNewTag(...n)),onFocus:n[7]||(n[7]=n=>t.focused=!0),onClick:n[8]||(n[8]=n=>t.performClick(n))}),null,16,Ka)])]),_:3},8,[`modelValue`,`handle`,`item-key`])):(x(),R(`ul`,qa,[(x(!0),R(ge,null,P(t.tagsCopy,(n,r)=>(x(),R(`li`,{key:r,style:ae(n.style),class:w([[{"ti-editing":t.tagsEditStatus[r]},n.tiClasses,n.classes,{"ti-deletion-mark":t.isMarked(r)}],`ti-tag item`]),tabindex:`0`,onClick:i=>t.$emit(`tag-clicked`,{element:n,index:r})},[I(`div`,Ya,[t.$slots[`tag-left`]?(x(),R(`div`,Xa,[b(t.$slots,`tag-left`,{tag:n,index:r,edit:t.tagsEditStatus[r],performSaveEdit:t.performSaveTag,performDelete:t.performDeleteTag,performCancelEdit:t.cancelEdit,performOpenEdit:t.performEditTag,deletionMark:t.isMarked(r)},void 0,!0)])):U(``,!0),I(`div`,{ref_for:!0,ref:t.setTagCenter,class:`ti-tag-center`},[t.$slots[`tag-center`]?U(``,!0):(x(),R(`span`,{key:0,class:w({"ti-hidden":t.tagsEditStatus[r]}),onClick:n=>t.performEditTag(r)},N(n.text),11,Za)),t.$slots[`tag-center`]?U(``,!0):(x(),H(c,{key:1,scope:{edit:t.tagsEditStatus[r],maxlength:t.maxlength,element:n,index:r,validateTag:t.createChangedTag,performCancelEdit:t.cancelEdit,performSaveEdit:t.performSaveTag}},null,8,[`scope`])),b(t.$slots,`tag-center`,{tag:n,index:r,maxlength:t.maxlength,edit:t.tagsEditStatus[r],performSaveEdit:t.performSaveTag,performDelete:t.performDeleteTag,performCancelEdit:t.cancelEdit,validateTag:t.createChangedTag,performOpenEdit:t.performEditTag,deletionMark:t.isMarked(r)},void 0,!0)],512),t.$slots[`tag-right`]?(x(),R(`div`,Qa,[b(t.$slots,`tag-right`,{tag:n,index:r,edit:t.tagsEditStatus[r],performSaveEdit:t.performSaveTag,performDelete:t.performDeleteTag,performCancelEdit:t.cancelEdit,performOpenEdit:t.performEditTag,deletionMark:t.isMarked(r)},void 0,!0)])):U(``,!0)]),I(`div`,$a,[t.$slots[`tag-actions`]?U(``,!0):he((x(),R(`i`,{key:0,class:`ti-icon-undo`,onClick:n=>t.cancelEdit(r)},null,8,eo)),[[pe,t.tagsEditStatus[r]]]),t.$slots[`tag-actions`]?U(``,!0):he((x(),R(`i`,{key:1,class:`ti-icon-close`,onClick:n=>t.performDeleteTag(r)},null,8,to)),[[pe,!t.tagsEditStatus[r]]]),t.$slots[`tag-actions`]?b(t.$slots,`tag-actions`,{key:2,tag:n,index:r,edit:t.tagsEditStatus[r],performSaveEdit:t.performSaveTag,performDelete:t.performDeleteTag,performCancelEdit:t.cancelEdit,performOpenEdit:t.performEditTag,deletionMark:t.isMarked(r)},void 0,!0):U(``,!0)])],14,Ja))),128)),I(`li`,no,[I(`input`,O({ref:`newTagInput`},t.$attrs,{class:[[t.createClasses(t.newTag,t.tags,t.validation,t.isDuplicate)],`ti-new-tag-input`],placeholder:t.placeholder,value:t.newTag,maxlength:t.maxlength,disabled:t.disabled,type:`text`,size:`1`,onKeydown:[n[12]||(n[12]=n=>t.performAddTags(t.filteredAutocompleteItems[t.selectedItem]||t.newTag,n)),n[14]||(n[14]=Se((...n)=>t.invokeDelete&&t.invokeDelete(...n),[`delete`])),n[15]||(n[15]=Se((...n)=>t.performBlur&&t.performBlur(...n),[`tab`])),n[16]||(n[16]=Se(n=>t.selectItem(n,`before`),[`up`])),n[17]||(n[17]=Se(n=>t.selectItem(n,`after`),[`down`]))],onPaste:n[13]||(n[13]=(...n)=>t.addTagsFromPaste&&t.addTagsFromPaste(...n)),onInput:n[18]||(n[18]=(...n)=>t.updateNewTag&&t.updateNewTag(...n)),onFocus:n[19]||(n[19]=n=>t.focused=!0),onClick:n[20]||(n[20]=n=>t.performClick(n))}),null,16,ro)])]))]),b(t.$slots,`between-elements`,{},void 0,!0),t.autocompleteOpen?(x(),R(`div`,{key:0,class:`ti-autocomplete`,onMouseout:n[21]||(n[21]=n=>t.selectedItem=null)},[b(t.$slots,`autocomplete-header`,{},void 0,!0),I(`ul`,null,[(x(!0),R(ge,null,P(t.filteredAutocompleteItems,(n,r)=>(x(),R(`li`,{key:r,style:ae(n.style),class:w([[n.tiClasses,n.classes,{"ti-selected-item":t.isSelected(r)}],`ti-item`]),onMouseover:n=>t.disabled?!1:t.selectedItem=r},[t.$slots[`autocomplete-item`]?b(t.$slots,`autocomplete-item`,{key:1,item:n,index:r,performAdd:n=>t.performAddTags(n,void 0,`autocomplete`),selected:t.isSelected(r)},void 0,!0):(x(),R(`div`,{key:0,onClick:r=>t.performAddTags(n,void 0,`autocomplete`)},N(n.text),9,ao))],46,io))),128))]),b(t.$slots,`autocomplete-footer`,{},void 0,!0)],32)):U(``,!0)],6)}t(ke$1,`ke`);var oo=B(Pa,[[`render`,ke$1],[`__scopeId`,`data-v-63864685`]]);oo.install=t=>t.component(oo.name,oo),typeof window<`u`&&window.Vue&&window.Vue.use(oo);var so=`modulepreload`,assetsURL=function(t){return`/`+t},co={},lo=function preload(t,n,r){let i=Promise.resolve();if(n&&n.length>0){let t=document.getElementsByTagName(`link`),a=document.querySelector(`meta[property=csp-nonce]`),o=a?.nonce||a?.getAttribute(`nonce`);function allSettled(t){return Promise.all(t.map(t=>Promise.resolve(t).then(t=>({status:`fulfilled`,value:t}),t=>({status:`rejected`,reason:t}))))}i=allSettled(n.map(n=>{if(n=assetsURL(n,r),n in co)return;co[n]=!0;let i=n.endsWith(`.css`),a=i?`[rel="stylesheet"]`:``;if(r)for(let r=t.length-1;r>=0;r--){let a=t[r];if(a.href===n&&(!i||a.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${n}"]${a}`))return;let s=document.createElement(`link`);if(s.rel=i?`stylesheet`:so,i||(s.as=`script`),s.crossOrigin=``,s.href=n,o&&s.setAttribute(`nonce`,o),document.head.appendChild(s),i)return new Promise((t,r)=>{s.addEventListener(`load`,t),s.addEventListener(`error`,()=>r(Error(`Unable to preload CSS for ${n}`)))})}))}function handlePreloadError(t){let n=new Event(`vite:preloadError`,{cancelable:!0});if(n.payload=t,window.dispatchEvent(n),!n.defaultPrevented)throw t}return i.then(n=>{for(let t of n||[])t.status===`rejected`&&handlePreloadError(t.reason);return t().catch(handlePreloadError)})},uo=j({name:`HeatMap`,props:{activityRecords:{type:Array,default:()=>[]},activityRecordsGetter:{type:Function,default:null},inactiveColor:{type:Object,default:()=>({h:0,s:0,l:.9})},activeColor:{type:Object,default:()=>({h:155,s:1,l:.5})},cellSize:{type:Number,default:12},cellMargin:{type:Number,default:3},enableSeasonalColors:{type:Boolean,default:!0}},data(){return{isLoading:!1,localActivityRecords:[],heatmapData:{},weeks:[],tooltipData:null,tooltipStyle:{},maxInRange:0}},computed:{width(){return 53*(this.cellSize+this.cellMargin)},height(){return 7*(this.cellSize+this.cellMargin)},effectiveActivityRecords(){let t=Array.isArray(this.localActivityRecords)&&this.localActivityRecords.length>0,n=t?this.localActivityRecords:this.activityRecords||[];return console.log(`Using effectiveActivityRecords, count:`,n.length,`source:`,t?`local`:`prop`),n}},watch:{activityRecords:{handler(){this.processRecords(),this.createWeeksData()},immediate:!0}},async created(){if(this.activityRecordsGetter)try{this.isLoading=!0,console.log(`Fetching activity records using getter...`);let t=await this.activityRecordsGetter();Array.isArray(t)?(this.localActivityRecords=t.filter(t=>{if(!t||!t.timeStamp)return!1;try{let n=Re(t.timeStamp);return n.isValid()&&n.year()>2e3&&n.year()<2100}catch{return!1}}),console.log(`Received ${t.length} records, ${this.localActivityRecords.length} valid after filtering`),this.processRecords(),this.createWeeksData()):(console.error(`Activity records getter did not return an array:`,t),this.localActivityRecords=[])}catch(t){console.error(`Error fetching activity records:`,t),this.localActivityRecords=[]}finally{this.isLoading=!1}else console.log(`No activityRecordsGetter provided, using direct activityRecords prop`)},methods:{toDateString(t){let n=Re(t);return Re.months()[n.month()]+` `+n.date()},processRecords(){let t=this.effectiveActivityRecords||[];console.log(`Processing ${t.length} records`);let n={};if(t.length===0){console.log(`No records to process`),this.heatmapData=n;return}let r=new Set,i={},a=0,o=0;for(let s=0;s<t.length;s++){let c=t[s];if(!c||typeof c!=`object`||!c.timeStamp){o++;continue}try{let t;if(typeof c.timeStamp==`string`)t=Re(c.timeStamp).format(`YYYY-MM-DD`);else if(typeof c.timeStamp==`number`)t=Re(new Date(c.timeStamp)).format(`YYYY-MM-DD`);else if(typeof c.timeStamp==`object`)t=typeof c.timeStamp.format==`function`?c.timeStamp.format(`YYYY-MM-DD`):c.timeStamp instanceof Date?Re(c.timeStamp).format(`YYYY-MM-DD`):Re(String(c.timeStamp)).format(`YYYY-MM-DD`);else{o++;continue}if(Re(t,`YYYY-MM-DD`,!0).isValid()){n[t]=(n[t]||0)+1,r.add(t);let o=t.substring(0,7);i[o]=(i[o]||0)+1,a++}else o++}catch{o++}}console.log(`Processed ${a} valid dates, ${o} invalid dates`),console.log(`Found ${r.size} unique dates`),console.log(`Date distribution by month:`,i),this.heatmapData=n},createWeeksData(){this.weeks=[],this.maxInRange=0;let t=Re(),n=t.clone().subtract(52,`weeks`),r=n.clone().startOf(`week`);console.log(`Creating weeks data from`,n.format(`YYYY-MM-DD`),`to`,t.format(`YYYY-MM-DD`)),Object.keys(this.heatmapData).length===0&&console.log(`No heatmap data available to display`);let i=Object.keys(this.heatmapData).slice(0,5);for(console.log(`Sample dates in heatmap data:`,i);r.isSameOrBefore(t);){let t=[];for(let n=0;n<7;n++){let n=r.format(`YYYY-MM-DD`),i={date:n,count:this.heatmapData[n]||0};t.push(i),i.count>this.maxInRange&&(this.maxInRange=i.count),r.add(1,`day`)}this.weeks.push(t)}console.log(`Weeks data created, maxInRange:`,this.maxInRange);let a=0,o=0;Object.values(this.heatmapData).forEach(t=>{a++,o+=t}),console.log(`Activity summary: ${o} activities across ${a} days`)},getColor(t){if(this.maxInRange===0)return this.hslToString(this.inactiveColor);let n=t===0?0:Math.min(2*t/this.maxInRange,1),r=this.activeColor;if(this.enableSeasonalColors){let t=Re();t.month()===11&&t.date()>=5?r=Math.random()>.5?{h:350,s:.8,l:.5}:{h:135,s:.8,l:.4}:t.month()===9&&t.date()>=25&&(r=Math.random()>.5?{h:0,s:0,l:0}:Math.random()>.5?{h:30,s:1,l:.5}:{h:270,s:1,l:.5})}let i=r.h,a=this.interpolate(this.inactiveColor.s,r.s,n),o=this.interpolate(this.inactiveColor.l,r.l,n);return this.hslToString({h:i,s:a,l:o})},interpolate(t,n,r){return t+(n-t)*r},hslToString(t){return`hsl(${t.h}, ${t.s*100}%, ${t.l*100}%)`},showTooltip(t,n){this.tooltipData=t,this.tooltipStyle={position:`absolute`,left:`${n.pageX+10}px`,top:`${n.pageY+10}px`}},hideTooltip(){this.tooltipData=null}}}),fo=[`width`,`height`],po=[`transform`],mo=[`y`,`width`,`height`,`fill`,`onMouseover`];function _sfc_render$26(t,n,r,i,a,o){return x(),R(`div`,null,[(x(),R(`svg`,{width:t.width,height:t.height},[(x(!0),R(ge,null,P(t.weeks,(r,i)=>(x(),R(`g`,{key:i,transform:`translate(${i*(t.cellSize+t.cellMargin)}, 0)`},[(x(!0),R(ge,null,P(r,(r,i)=>(x(),R(`rect`,{key:r.date,x:0,y:i*(t.cellSize+t.cellMargin),width:t.cellSize,height:t.cellSize,fill:t.getColor(r.count),onMouseover:n=>t.showTooltip(r,n),onMouseout:n[0]||(n[0]=(...n)=>t.hideTooltip&&t.hideTooltip(...n))},null,40,mo))),128))],8,po))),128))],8,fo)),t.tooltipData?(x(),R(`div`,{key:0,class:`tooltip`,style:ae(t.tooltipStyle)},N(t.tooltipData.count)+` review`+N(t.tooltipData.count===1?``:`s`)+` on `+N(t.toDateString(t.tooltipData.date)),5)):U(``,!0)])}$e(_sfc_render$26,`_sfc_render`);var ho=q(uo,[[`render`,_sfc_render$26],[`__scopeId`,`data-v-ca46239a`]]),_o=j({name:`SkMouseTrap`,props:{refreshInterval:{type:Number,default:500}},data(){return{commands:[],display:!1,intervalId:null}},created(){this.intervalId=window.setInterval(this.refreshState,this.refreshInterval)},beforeUnmount(){this.intervalId!==null&&clearInterval(this.intervalId)},methods:{refreshState(){this.commands=et.commands,this.display=this.commands.length>0}}}),vo={class:`text-caption ml-2`};function _sfc_render$25(t,n,r,i,a,o){let c=E(`v-icon`),l=E(`v-btn`),u=E(`v-toolbar-title`),d=E(`v-toolbar`),p=E(`v-spacer`),m=E(`v-list-item`),h=E(`v-list`),g=E(`v-card`),_=E(`v-dialog`);return t.display?(x(),H(_,{key:0,"max-width":`500px`,transition:`dialog-transition`},{activator:s(({props:t})=>[f(l,O({icon:``,color:`primary`},t),{default:s(()=>[f(c,null,{default:s(()=>n[0]||(n[0]=[A(`mdi-keyboard`)])),_:1})]),_:2},1040)]),default:s(()=>[f(g,null,{default:s(()=>[f(d,{color:`secondary`,dark:``,dense:``},{default:s(()=>[f(u,{class:`text-subtitle-1`},{default:s(()=>n[1]||(n[1]=[A(`Shortcut keys:`)])),_:1})]),_:1}),f(h,{dense:``},{default:s(()=>[(x(!0),R(ge,null,P(t.commands,t=>(x(),H(m,{key:Array.isArray(t.hotkey)?t.hotkey.join(`,`):t.hotkey,class:`py-1`},{default:s(()=>[f(l,{variant:`outlined`,color:`primary`,class:`text-white`,size:`small`},{default:s(()=>[A(N(Array.isArray(t.hotkey)?t.hotkey[0]:t.hotkey),1)]),_:2},1024),f(p),I(`span`,vo,N(t.command),1)]),_:2},1024))),128))]),_:1})]),_:1})]),_:1})):U(``,!0)}$e(_sfc_render$25,`_sfc_render`);var yo=q(_o,[[`render`,_sfc_render$25]]),bo=j({name:`SkMouseTrapToolTip`,props:{hotkey:{type:[String,Array],required:!0},command:{type:String,required:!0},disabled:{type:Boolean,default:!1},position:{type:String,default:`top`},showTooltip:{type:Boolean,default:!0},highlightEffect:{type:String,default:`glow`}},emits:[`hotkey-triggered`],setup(t,{emit:n}){let r=Ce(null),i=Ce(!1);Ce(`hotkey-${Math.random().toString(36).substring(2,15)}`);let a=z(()=>{let n=Array.isArray(t.hotkey)?t.hotkey[0]:t.hotkey;return n.includes(` `)?n.toLowerCase().split(` `).map(t=>t.charAt(0)+t.slice(1)).join(`, `):n.toLowerCase().split(`+`).map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(` + `)});le(()=>i.value,n=>{if(!r.value||t.disabled)return;let i=r.value.querySelector(`button, a, input[type="button"], [role="button"]`);i&&(i.style.transition=`all 250ms ease`,n&&t.highlightEffect!==`none`?i.style.filter=`brightness(1.1)`:i.style.filter=``)});let handleKeyDown=t=>{t.key===`Control`&&(i.value=!0)},handleKeyUp=t=>{t.key===`Control`&&(i.value=!1)},handleHotkeyPress=()=>{if(t.disabled||!r.value)return;let i=r.value.querySelector(`button, a, input[type="button"], [role="button"]`);if(i||(i=r.value.querySelector(`v-list-item, .v-list-item, router-link, .router-link, a, [to]`)),!i&&(r.value.hasAttribute(`to`)||r.value.tagName===`A`||r.value.classList.contains(`v-list-item`))&&(i=r.value),!i){let t=r.value.closest(`v-list-item, .v-list-item, a, [to]`);t&&(i=t)}if(i)if(i.hasAttribute(`to`)){let r=i.getAttribute(`to`);if(r&&window.location.pathname!==r){let t=window.$nuxt?.$router||window.$router;t&&typeof t.push==`function`?t.push(r):window.location.pathname=r}n(`hotkey-triggered`,t.hotkey)}else i.click(),n(`hotkey-triggered`,t.hotkey);else console.log(`No clickable element found for hotkey`,t.hotkey),n(`hotkey-triggered`,t.hotkey)},registerHotkey=()=>{t.disabled||et.addBinding({hotkey:t.hotkey,command:t.command,callback:handleHotkeyPress})},unregisterHotkey=()=>{t.disabled||et.removeBinding(t.hotkey)};return le(()=>t.disabled,t=>{t?unregisterHotkey():registerHotkey()}),Ie(()=>{document.addEventListener(`keydown`,handleKeyDown),document.addEventListener(`keyup`,handleKeyUp),registerHotkey()}),C(()=>{document.removeEventListener(`keydown`,handleKeyDown),document.removeEventListener(`keyup`,handleKeyUp),unregisterHotkey()}),{wrapperElement:r,isControlKeyPressed:i,formattedHotkey:a}}});function _sfc_render$24(t,n,r,i,a,o){return x(),R(`div`,{class:w([`sk-mousetrap-tooltip-wrapper`,[t.isControlKeyPressed&&!t.disabled&&t.highlightEffect!==`none`?`sk-mousetrap-highlight-${t.highlightEffect}`:``]]),ref:`wrapperElement`},[b(t.$slots,`default`,{},void 0,!0),f(De,{name:`fade`},{default:s(()=>[t.showTooltip&&t.isControlKeyPressed&&!t.disabled?(x(),R(`div`,{key:0,class:w([`sk-mousetrap-tooltip`,{"sk-mt-tooltip-top":t.position===`top`,"sk-mt-tooltip-bottom":t.position===`bottom`,"sk-mt-tooltip-left":t.position===`left`,"sk-mt-tooltip-right":t.position===`right`}])},N(t.formattedHotkey),3)):U(``,!0)]),_:1})],2)}$e(_sfc_render$24,`_sfc_render`);var xo=q(bo,[[`render`,_sfc_render$24],[`__scopeId`,`data-v-5d6fb09c`]]),{setInstance:So,getInstance:Co,alertUser:wo}=(()=>{let t=null;return{setInstance(n){t=n},getInstance(){return t},alertUser(n){let r=t;if(r){r.addSnack(n);return}console.error(`SnackbarService not found`)}}})(),To=j({name:`SnackbarService`,data(){return{snacks:[],show:[]}},mounted(){So(this)},methods:{addSnack(t){this.snacks.push(t),this.show.push(!0)},close(){this.show.pop(),this.show.push(!1)},getColor(t){if(t.status===Be.ok)return`success`;if(t.status===Be.error)return`error`;if(t.status===Be.warning)return`yellow`}}}),Eo={class:`d-flex align-center justify-space-between w-100`};function _sfc_render$23(t,n,r,i,a,o){let c=E(`v-icon`),l=E(`v-btn`),u=E(`v-snackbar`);return x(),R(`div`,null,[(x(!0),R(ge,null,P(t.snacks,r=>(x(),H(u,{key:t.snacks.indexOf(r),modelValue:t.show[t.snacks.indexOf(r)],"onUpdate:modelValue":n=>t.show[t.snacks.indexOf(r)]=n,timeout:r.timeout,location:`bottom right`,color:t.getColor(r)},{default:s(()=>[I(`div`,Eo,[I(`span`,null,N(r.text),1),f(l,{icon:``,variant:`text`,onClick:n[0]||(n[0]=n=>t.close())},{default:s(()=>[f(c,null,{default:s(()=>n[1]||(n[1]=[A(`mdi-close`)])),_:1})]),_:1})])]),_:2},1032,[`modelValue`,`onUpdate:modelValue`,`timeout`,`color`]))),128))])}$e(_sfc_render$23,`_sfc_render`);var Do=q(To,[[`render`,_sfc_render$23]]),Oo=j({name:`PaginatingToolbar`,props:{pages:{type:Array,required:!0},page:{type:Number,required:!0},title:{type:String,required:!1,default:``},subtitle:{type:String,required:!1,default:``}},emits:[`first`,`prev`,`next`,`last`,`set-page`]}),ko={key:0,class:`ms-2 text-subtitle-2`,"data-cy":`paginating-toolbar-subtitle`};function _sfc_render$22(t,n,r,i,a,o){let c=E(`v-toolbar-title`),l=E(`v-spacer`),u=E(`v-icon`),d=E(`v-btn`),p=E(`v-select`),m=E(`v-toolbar`);return x(),H(m,{density:`compact`},{default:s(()=>[f(c,null,{default:s(()=>[I(`span`,null,N(t.title),1),t.subtitle?(x(),R(`span`,ko,N(t.subtitle),1)):U(``,!0)]),_:1}),f(l),f(d,{variant:`text`,icon:``,color:`secondary`,disabled:t.page==1,onClick:n[0]||(n[0]=n=>t.$emit(`first`))},{default:s(()=>[f(u,null,{default:s(()=>n[5]||(n[5]=[A(`mdi-page-first`)])),_:1})]),_:1},8,[`disabled`]),f(d,{variant:`text`,icon:``,color:`secondary`,disabled:t.page==1,onClick:n[1]||(n[1]=n=>t.$emit(`prev`))},{default:s(()=>[f(u,null,{default:s(()=>n[6]||(n[6]=[A(`mdi-chevron-left`)])),_:1})]),_:1},8,[`disabled`]),f(p,{"model-value":t.page,items:t.pages,class:`pageSelect`,density:`compact`,"hide-details":``,"return-object":!1,variant:`outlined`,"onUpdate:modelValue":n[2]||(n[2]=n=>t.$emit(`set-page`,n))},{selection:s(({item:t})=>[A(N(t.value),1)]),_:1},8,[`model-value`,`items`]),f(d,{variant:`text`,icon:``,color:`secondary`,disabled:t.page==t.pages.length,onClick:n[3]||(n[3]=n=>t.$emit(`next`))},{default:s(()=>[f(u,null,{default:s(()=>n[7]||(n[7]=[A(`mdi-chevron-right`)])),_:1})]),_:1},8,[`disabled`]),f(d,{variant:`text`,icon:``,color:`secondary`,disabled:t.page==t.pages.length,onClick:n[4]||(n[4]=n=>t.$emit(`last`))},{default:s(()=>[f(u,null,{default:s(()=>n[8]||(n[8]=[A(`mdi-page-last`)])),_:1})]),_:1},8,[`disabled`])]),_:1})}$e(_sfc_render$22,`_sfc_render`);var Ao=q(Oo,[[`render`,_sfc_render$22],[`__scopeId`,`data-v-a75fea7e`]]),jo=j({name:`CardSearch`,emits:{search:t=>typeof t==`string`},data(){return{query:``}},methods:{search(){this.$emit(`search`,this.query)}}}),Mo={class:`card-search`};function _sfc_render$21(t,n,r,i,a,o){let s=E(`v-text-field`);return x(),R(`div`,Mo,[f(s,{modelValue:t.query,"onUpdate:modelValue":n[0]||(n[0]=n=>t.query=n),label:`Search for cards...`,"append-icon":`mdi-magnify`,"onClick:append":t.search,onKeydown:Se(t.search,[`enter`])},null,8,[`modelValue`,`onClick:append`,`onKeydown`])])}$e(_sfc_render$21,`_sfc_render`);var No=q(jo,[[`render`,_sfc_render$21]]),Po=j({name:`CardSearchResults`,emits:{"card-selected":t=>typeof t.cardId==`string`&&typeof t.courseId==`string`},props:{query:{type:String,required:!0},dataLayer:{type:Object,required:!0},courseFilter:{type:String,default:null}},data(){return{cards:[],loading:!1,error:null,selectedCardId:null}},watch:{query:{immediate:!0,handler(t){t&&this.fetchResults(t)}}},methods:{async fetchResults(t){this.loading=!0,this.error=null;try{let n=[];if(this.courseFilter)n=[this.courseFilter],console.log(`Filtering search to course: ${this.courseFilter}`);else{let{CourseLookup:t}=await lo(async()=>{let{CourseLookup:t}=await import(`./dist-y6_rrqhr.js`);return{CourseLookup:t}},__vite__mapDeps([0,1,2,3]));n=(await t.allCourseWare()).map(t=>t._id).filter(Boolean),console.log(`Searching across all ${n.length} courses`)}let r=[];for(let i of n){let n=await this.dataLayer.getCourseDB(i).searchCards(t);for(let t of n)r.push({...t,courseId:i})}this.cards=r,console.log(`Search completed: found ${r.length} cards across ${n.length} courses`)}catch(t){this.error=`Error fetching search results.`,console.error(`Search error:`,t)}finally{this.loading=!1}},selectCard(t){this.selectedCardId=t._id,this.$emit(`card-selected`,{cardId:t._id,courseId:t.courseId})}}}),Fo={class:`card-search-results`},Io={key:0},Lo={key:1},Ro={key:2};function _sfc_render$20(t,n,r,i,a,o){let c=E(`v-list-item-title`),l=E(`v-list-item-subtitle`),u=E(`v-list-item`),d=E(`v-list`);return x(),R(`div`,Fo,[t.loading?(x(),R(`div`,Io,`Loading...`)):t.error?(x(),R(`div`,Lo,N(t.error),1)):(x(),R(`div`,Ro,[f(d,null,{default:s(()=>[(x(!0),R(ge,null,P(t.cards,n=>(x(),H(u,{key:n._id,onClick:r=>t.selectCard(n),class:w([{"selected-card":n._id===t.selectedCardId},`cursor-pointer`])},{default:s(()=>[f(c,null,{default:s(()=>[A(N(n._id),1)]),_:2},1024),f(l,null,{default:s(()=>[A(`Course: `+N(n.courseId),1)]),_:2},1024)]),_:2},1032,[`onClick`,`class`]))),128))]),_:1})]))])}$e(_sfc_render$20,`_sfc_render`);var zo=q(Po,[[`render`,_sfc_render$20],[`__scopeId`,`data-v-285e13bd`]]),Bo=j({name:`CardHistoryViewer`,props:{cardId:{type:String,required:!0},courseId:{type:String,required:!0},userId:{type:String,required:!0},userDB:{type:Object,required:!0}},data(){return{history:[],cardHistory:null,bestIntervalHumanized:``,loading:!1,error:null,headers:[{title:`Timestamp`,key:`formattedTimeStamp`},{title:`Interval`,key:`userFriendlyInterval`},{title:`Time Spent (s)`,key:`timeSpentSeconds`},{title:`Correct?`,key:`isCorrect`},{title:`Performance`,key:`performance`},{title:`Prior Attempts`,key:`priorAttemps`},{title:`User Answer`,key:`userAnswer`}]}},watch:{cardId:{immediate:!0,handler(t){t&&this.userDB&&this.fetchHistory()}},userDB:{handler(t){t&&this.cardId&&this.fetchHistory()}}},methods:{async fetchHistory(){this.loading=!0,this.error=null;try{let t=tt(this.courseId,this.cardId),n=await this.userDB.get(t);this.cardHistory=n,this.bestIntervalHumanized=Re.duration(n.bestInterval,`seconds`).humanize();let r=[...n.records].sort((t,n)=>Re(t.timeStamp).valueOf()-Re(n.timeStamp).valueOf());this.history=r.map((t,n)=>{let i=Re(t.timeStamp),a={...t,formattedTimeStamp:i.format(`YYYY-MM-DD HH:mm:ss`),timeSpentSeconds:Math.round(t.timeSpent/1e3),isCorrect:t.isCorrect,performance:t.performance,priorAttemps:t.priorAttemps,userAnswer:t.userAnswer};if(n>0){let t=Re(r[n-1].timeStamp),o=i.diff(t,`seconds`,!0);a.intervalFromPrevious=Math.round(o*100)/100,a.userFriendlyInterval=`${a.intervalFromPrevious} sec (${Re.duration(o,`seconds`).humanize()})`}return a})}catch(t){this.error=`Error fetching card history.`,console.error(t)}finally{this.loading=!1}}}}),Vo={class:`card-history-viewer`},Ho={key:0},Uo={key:1},Wo={key:2,class:`error-message`},Go={key:3};function _sfc_render$19(t,n,r,i,a,o){let c=E(`v-card-title`),l=E(`v-list-item-title`),u=E(`v-list-item-subtitle`),d=E(`v-list-item-content`),p=E(`v-list-item`),m=E(`v-card`),h=E(`v-data-table`);return x(),R(`div`,Vo,[t.userId?(x(),R(`h3`,Ho,`Card History for User: `+N(t.userId),1)):U(``,!0),t.loading?(x(),R(`div`,Uo,`Loading...`)):t.error?(x(),R(`div`,Wo,N(t.error),1)):t.cardHistory?(x(),R(`div`,Go,[f(m,{class:`mb-4`},{default:s(()=>[f(c,null,{default:s(()=>n[0]||(n[0]=[A(`Summary`)])),_:1}),f(p,null,{default:s(()=>[f(d,null,{default:s(()=>[f(l,null,{default:s(()=>[A(`Best Interval: `+N(t.cardHistory.bestInterval)+` seconds (`+N(t.bestIntervalHumanized)+`)`,1)]),_:1}),f(u,null,{default:s(()=>n[1]||(n[1]=[A(`The to-date largest interval between successful card reviews.`)])),_:1})]),_:1})]),_:1}),f(p,null,{default:s(()=>[f(d,null,{default:s(()=>[f(l,null,{default:s(()=>[A(`Lapses: `+N(t.cardHistory.lapses),1)]),_:1}),f(u,null,{default:s(()=>n[2]||(n[2]=[A(`The number of times that a card has been failed in review.`)])),_:1})]),_:1})]),_:1}),f(p,null,{default:s(()=>[f(d,null,{default:s(()=>[f(l,null,{default:s(()=>[A(`Streak: `+N(t.cardHistory.streak),1)]),_:1}),f(u,null,{default:s(()=>n[3]||(n[3]=[A(`The number of consecutive successful impressions on this card.`)])),_:1})]),_:1})]),_:1})]),_:1}),f(h,{headers:t.headers,items:t.history,class:`elevation-1`},null,8,[`headers`,`items`])])):U(``,!0)])}$e(_sfc_render$19,`_sfc_render`);var Ko=q(Bo,[[`render`,_sfc_render$19],[`__scopeId`,`data-v-a4bdfdfb`]]),Displayable=class{constructor(t){if(t.length===0)throw Error(`
|
|
15
15
|
Displayable Constructor was called with no view Data.
|
|
16
16
|
`);validateData(this.dataShapes(),t)}};Je(Displayable,`dataShapes`,void 0),Je(Displayable,`views`,void 0),Je(Displayable,`seedData`,void 0),Je(Displayable,`acceptsUserData`,!0);function validateData(t,n){for(let r=0;r<t.length;r++)t[r].fields.forEach((t,i)=>{console.log(`[Displayable] shape[${r}].field[${i}]:\n ${JSON.stringify(t)}`),n[r][t.name]===void 0&&t.type!==ze.MEDIA_UPLOADS&&console.warn(`[Displayable] missing data`)})}var Question=class extends Displayable{displayedSkill(t,n){console.warn(`Question is running the reference implementation of displayedSkill.
|
|
17
17
|
Consider overriding!`);let r=5e3,i=Math.min(n,10*r),a=i/r,o=i>r?.8**a:1,s=this.isCorrect(t)?1:0;return s*=o,Math.min(s,1)}evaluate(t,n){return{isCorrect:this.isCorrect(t),performance:this.displayedSkill(t,n)}}},getApiBase=()=>{let t=`fallback (empty string)`,n=``;if(!n&&typeof window<`u`&&window.__SKUILDER_CONFIG__?.apiBase){let r=window.__SKUILDER_CONFIG__.apiBase.replace(/\/$/,``);n=r.startsWith(`/`)?r:`/${r}`,t=`window.__SKUILDER_CONFIG__.apiBase`}return console.log(`[authAPI] getApiBase() called`),console.log(`[authAPI] source:`,t),console.log(`[authAPI] result:`,n),n};async function sendVerificationEmail(t,n,r){try{let i={username:t,email:n};r&&(i.origin=r);let a=await fetch(`${getApiBase()}/auth/send-verification`,{method:`POST`,headers:{"Content-Type":`application/json`},credentials:`include`,body:JSON.stringify(i)});if(!a.ok){let t=await a.text();return console.error(`Send verification email error:`,t),{ok:!1,error:`HTTP ${a.status}: ${a.statusText}`}}return await a.json()}catch(t){return console.error(`Send verification email fetch error:`,t),{ok:!1,error:t instanceof Error?t.message:`Network error`}}}async function verifyEmail(t){try{let n=await fetch(`${getApiBase()}/auth/verify`,{method:`POST`,headers:{"Content-Type":`application/json`},credentials:`include`,body:JSON.stringify({token:t})});return n.ok?await n.json():{ok:!1,error:`HTTP ${n.status}: ${n.statusText}`}}catch(t){return{ok:!1,error:t instanceof Error?t.message:`Network error`}}}async function requestPasswordReset(t,n){try{let r={email:t};n&&(r.origin=n);let i=await fetch(`${getApiBase()}/auth/request-reset`,{method:`POST`,headers:{"Content-Type":`application/json`},credentials:`include`,body:JSON.stringify(r)});return i.ok?await i.json():{ok:!1,error:`HTTP ${i.status}: ${i.statusText}`}}catch(t){return{ok:!1,error:t instanceof Error?t.message:`Network error`}}}async function resetPassword(t,n){try{let r=await fetch(`${getApiBase()}/auth/reset-password`,{method:`POST`,headers:{"Content-Type":`application/json`},credentials:`include`,body:JSON.stringify({token:t,newPassword:n})});return r.ok?await r.json():{ok:!1,error:`HTTP ${r.status}: ${r.statusText}`}}catch(t){return{ok:!1,error:t instanceof Error?t.message:`Network error`}}}var qo=j({name:`StudySessionTimer`,props:{timeRemaining:{type:Number,required:!0},sessionTimeLimit:{type:Number,required:!0,default:5}},emits:[`add-time`],setup(t,{emit:n}){let r=Ce(!1),i=z(()=>{let n=``,r=t.timeRemaining;r>60&&(n=Math.floor(r/60).toString()+`:`);let i=r%60;return n+=i>=10?i:`0`+i,r<=60&&(n+=` seconds`),n+=` left!`,n}),a=z(()=>t.timeRemaining>60?100*(t.timeRemaining/(60*t.sessionTimeLimit)):100*(t.timeRemaining/60)),o=z(()=>t.timeRemaining>60?`primary`:`orange darken-3`),addSessionTime=()=>{n(`add-time`)};return{hovered:r,formattedTimeRemaining:i,percentageRemaining:a,timerColor:o,addSessionTime}}});function _sfc_render$18(t,n,r,i,a,o){let c=E(`v-icon`),l=E(`v-btn`),u=E(`v-progress-circular`),d=E(`v-tooltip`);return x(),H(d,{location:`right`,"open-delay":0,"close-delay":200,color:`secondary`,class:`text-subtitle-1`},{activator:s(({props:r})=>[I(`div`,O({class:`timer-container`},r,{onMouseenter:n[0]||(n[0]=n=>t.hovered=!0),onMouseleave:n[1]||(n[1]=n=>t.hovered=!1)}),[f(u,{alt:`Time remaining in study session`,size:`64`,width:`8`,rotate:`0`,color:t.timerColor,"model-value":t.percentageRemaining},{default:s(()=>[t.timeRemaining>0&&t.hovered?(x(),H(l,{key:0,icon:``,color:`transparent`,location:`bottom left`,onClick:t.addSessionTime},{default:s(()=>[f(c,{size:`large`},{default:s(()=>n[2]||(n[2]=[A(`mdi-plus`)])),_:1})]),_:1},8,[`onClick`])):U(``,!0)]),_:1},8,[`color`,`model-value`])],16)]),default:s(()=>[A(` `+N(t.formattedTimeRemaining),1)]),_:1})}$e(_sfc_render$18,`_sfc_render`);var Jo=q(qo,[[`render`,_sfc_render$18],[`__scopeId`,`data-v-5960940a`]]),Yo=j({name:`CardViewer`,ref:{},props:{sessionOrder:{type:Number,required:!1,default:0},card_id:{type:String,required:!0,default:``},course_id:{type:String,required:!0,default:``},view:{type:[Function,Object],required:!0},data:{type:Array,required:!0},user_elo:{type:Object,default:()=>({global:{score:1e3,count:0},tags:{},misc:{}})},card_elo:{type:Number,default:1e3},frameless:{type:Boolean,default:!1}},emits:[`emitResponse`,`requestReplan`,`readyToAdvance`],methods:{processResponse(t){console.log(`
|
|
18
18
|
Card was displayed at ${t.timeStamp}
|
|
19
19
|
User spent ${t.timeSpent} milliseconds with the card.
|
|
20
20
|
`),this.$emit(`emitResponse`,t)}}});function _sfc_render$17(t,n,r,i,a,o){let c=E(`v-card`);return t.frameless?(x(),H(T(t.view),{ref:`activeView`,key:t.course_id+`-`+t.card_id+`-`+t.sessionOrder,data:t.data,"modify-difficulty":t.user_elo.global.score-t.card_elo,class:`cardView`,onEmitResponse:n[0]||(n[0]=n=>t.processResponse(n)),onRequestReplan:n[1]||(n[1]=n=>t.$emit(`requestReplan`,n)),onReadyToAdvance:n[2]||(n[2]=n=>t.$emit(`readyToAdvance`))},null,40,[`data`,`modify-difficulty`])):(x(),H(c,{key:1,elevation:`12`},{default:s(()=>[(x(),H(T(t.view),{ref:`activeView`,key:t.course_id+`-`+t.card_id+`-`+t.sessionOrder,data:t.data,"modify-difficulty":t.user_elo.global.score-t.card_elo,class:`cardView ma-2 pa-2`,onEmitResponse:n[3]||(n[3]=n=>t.processResponse(n)),onRequestReplan:n[4]||(n[4]=n=>t.$emit(`requestReplan`,n)),onReadyToAdvance:n[5]||(n[5]=n=>t.$emit(`readyToAdvance`))},null,40,[`data`,`modify-difficulty`]))]),_:1}))}$e(_sfc_render$17,`_sfc_render`);var Xo=q(Yo,[[`render`,_sfc_render$17],[`__scopeId`,`data-v-2d892b82`]]),Zo=j({name:`SessionControllerDebug`,props:{sessionController:{type:Object,required:!0}},setup(t){let n=Ce(0),r=null;return Ie(()=>{r=setInterval(()=>{n.value++},500)}),u(()=>{r&&clearInterval(r)}),{debugInfo:z(()=>(n.value,t.sessionController?t.sessionController.getDebugInfo():{reviewQueue:{length:0,dequeueCount:0,items:[]},newQueue:{length:0,dequeueCount:0,items:[]},failedQueue:{length:0,dequeueCount:0,items:[]},hydratedCache:{count:0,failedCacheSize:0,items:[]}}))}}}),Qo={class:`debug-section`},$o={class:`debug-header`},es={class:`debug-stats`},ts={class:`text-caption`},ns={class:`text-caption ml-2`},rs={key:0,class:`debug-items`},as={class:`text-caption`},os={class:`text-caption text-grey ml-1`},ss={key:0,class:`text-caption text-grey`},cs={key:1,class:`text-caption text-grey`},ls={class:`debug-section`},us={class:`debug-header`},ds={class:`debug-stats`},fs={class:`text-caption`},ps={class:`text-caption ml-2`},ms={key:0,class:`debug-items`},hs={class:`text-caption`},gs={class:`text-caption text-grey ml-1`},_s={key:0,class:`text-caption text-grey`},vs={key:1,class:`text-caption text-grey`},ys={class:`debug-section`},bs={class:`debug-header`},xs={class:`debug-stats`},Ss={class:`text-caption`},Cs={class:`text-caption ml-2`},ws={key:0,class:`debug-items`},Ts={class:`text-caption`},Es={class:`text-caption text-grey ml-1`},Ds={key:0,class:`text-caption text-grey`},Os={key:1,class:`text-caption text-grey`},ks={class:`debug-section`},As={class:`debug-header`},js={class:`debug-stats`},Ms={class:`text-caption`},Ns={class:`text-caption ml-2`},Ps={key:0,class:`debug-items`},Fs={class:`text-caption`},Is={key:0,class:`text-caption text-grey`},Ls={key:1,class:`text-caption text-grey`};function _sfc_render$16(t,n,r,i,a,o){let c=E(`v-spacer`),l=E(`v-icon`),u=E(`v-card-title`),d=E(`v-col`),p=E(`v-row`),m=E(`v-divider`),h=E(`v-card-text`),g=E(`v-card`);return t.sessionController?(x(),H(g,{key:0,class:`session-debug ma-2`,elevation:`2`},{default:s(()=>[f(u,{class:`text-caption bg-grey-darken-3`},{default:s(()=>[n[1]||(n[1]=A(` Session Controller Debug `)),f(c),f(l,{size:`small`},{default:s(()=>n[0]||(n[0]=[A(`mdi-bug`)])),_:1})]),_:1}),f(h,{class:`pa-2`},{default:s(()=>[f(p,{dense:``},{default:s(()=>[f(d,{cols:`12`,md:`4`},{default:s(()=>[I(`div`,Qo,[I(`div`,$o,[f(l,{size:`x-small`,class:`mr-1`},{default:s(()=>n[2]||(n[2]=[A(`mdi-calendar-check`)])),_:1}),n[3]||(n[3]=I(`strong`,null,`Review Queue`,-1))]),I(`div`,es,[I(`span`,ts,`Length: `+N(t.debugInfo.reviewQueue.length),1),I(`span`,ns,`Dequeued: `+N(t.debugInfo.reviewQueue.dequeueCount),1)]),t.debugInfo.reviewQueue.items.length>0?(x(),R(`div`,rs,[(x(!0),R(ge,null,P(t.debugInfo.reviewQueue.items.slice(0,5),(t,n)=>(x(),R(`div`,{key:n,class:`debug-item`},[I(`span`,as,N(n)+`: `+N(t.courseID)+`::`+N(t.cardID),1),I(`span`,os,`(`+N(t.status)+`)`,1)]))),128)),t.debugInfo.reviewQueue.items.length>5?(x(),R(`div`,ss,` ... +`+N(t.debugInfo.reviewQueue.items.length-5)+` more `,1)):U(``,!0)])):(x(),R(`div`,cs,` (empty) `))])]),_:1}),f(d,{cols:`12`,md:`4`},{default:s(()=>[I(`div`,ls,[I(`div`,us,[f(l,{size:`x-small`,class:`mr-1`},{default:s(()=>n[4]||(n[4]=[A(`mdi-file-document-plus`)])),_:1}),n[5]||(n[5]=I(`strong`,null,`New Cards Queue`,-1))]),I(`div`,ds,[I(`span`,fs,`Length: `+N(t.debugInfo.newQueue.length),1),I(`span`,ps,`Dequeued: `+N(t.debugInfo.newQueue.dequeueCount),1)]),t.debugInfo.newQueue.items.length>0?(x(),R(`div`,ms,[(x(!0),R(ge,null,P(t.debugInfo.newQueue.items.slice(0,5),(t,n)=>(x(),R(`div`,{key:n,class:`debug-item`},[I(`span`,hs,N(n)+`: `+N(t.courseID)+`::`+N(t.cardID),1),I(`span`,gs,`(`+N(t.status)+`)`,1)]))),128)),t.debugInfo.newQueue.items.length>5?(x(),R(`div`,_s,` ... +`+N(t.debugInfo.newQueue.items.length-5)+` more `,1)):U(``,!0)])):(x(),R(`div`,vs,` (empty) `))])]),_:1}),f(d,{cols:`12`,md:`4`},{default:s(()=>[I(`div`,ys,[I(`div`,bs,[f(l,{size:`x-small`,class:`mr-1`},{default:s(()=>n[6]||(n[6]=[A(`mdi-alert-circle`)])),_:1}),n[7]||(n[7]=I(`strong`,null,`Failed Cards Queue`,-1))]),I(`div`,xs,[I(`span`,Ss,`Length: `+N(t.debugInfo.failedQueue.length),1),I(`span`,Cs,`Dequeued: `+N(t.debugInfo.failedQueue.dequeueCount),1)]),t.debugInfo.failedQueue.items.length>0?(x(),R(`div`,ws,[(x(!0),R(ge,null,P(t.debugInfo.failedQueue.items.slice(0,5),(t,n)=>(x(),R(`div`,{key:n,class:`debug-item`},[I(`span`,Ts,N(n)+`: `+N(t.courseID)+`::`+N(t.cardID),1),I(`span`,Es,`(`+N(t.status)+`)`,1)]))),128)),t.debugInfo.failedQueue.items.length>5?(x(),R(`div`,Ds,` ... +`+N(t.debugInfo.failedQueue.items.length-5)+` more `,1)):U(``,!0)])):(x(),R(`div`,Os,` (empty) `))])]),_:1})]),_:1}),f(p,{dense:``},{default:s(()=>[f(d,{cols:`12`},{default:s(()=>[f(m,{class:`my-2`}),I(`div`,ks,[I(`div`,As,[f(l,{size:`x-small`,class:`mr-1`},{default:s(()=>n[8]||(n[8]=[A(`mdi-database`)])),_:1}),n[9]||(n[9]=I(`strong`,null,`Hydrated Cards Cache`,-1))]),I(`div`,js,[I(`span`,Ms,`Cached: `+N(t.debugInfo.hydratedCache.count),1),I(`span`,Ns,`Failed Cache: `+N(t.debugInfo.hydratedCache.failedCacheSize),1)]),t.debugInfo.hydratedCache.items.length>0?(x(),R(`div`,Ps,[(x(!0),R(ge,null,P(t.debugInfo.hydratedCache.items.slice(0,8),(t,n)=>(x(),R(`div`,{key:n,class:`debug-item d-inline-block mr-3`},[I(`span`,Fs,N(t.courseID)+`::`+N(t.cardID),1)]))),128)),t.debugInfo.hydratedCache.items.length>8?(x(),R(`div`,Is,` ... +`+N(t.debugInfo.hydratedCache.items.length-8)+` more `,1)):U(``,!0)])):(x(),R(`div`,Ls,` (empty) `))])]),_:1})]),_:1})]),_:1})]),_:1})):U(``,!0)}$e(_sfc_render$16,`_sfc_render`);var Rs=q(Zo,[[`render`,_sfc_render$16],[`__scopeId`,`data-v-1a6ac7a1`]]),zs={};(function main(t,n,r,i){var a=!!(t.Worker&&t.Blob&&t.Promise&&t.OffscreenCanvas&&t.OffscreenCanvasRenderingContext2D&&t.HTMLCanvasElement&&t.HTMLCanvasElement.prototype.transferControlToOffscreen&&t.URL&&t.URL.createObjectURL),o=typeof Path2D==`function`&&typeof DOMMatrix==`function`,s=(function(){if(!t.OffscreenCanvas)return!1;var n=new OffscreenCanvas(1,1),r=n.getContext(`2d`);r.fillRect(0,0,1,1);var i=n.transferToImageBitmap();try{r.createPattern(i,`no-repeat`)}catch{return!1}return!0})();function noop(){}function promise(r){var i=n.exports.Promise,a=i===void 0?t.Promise:i;return typeof a==`function`?new a(r):(r(noop,noop),null)}var c=(function(t,n){return{transform:function(r){if(t)return r;if(n.has(r))return n.get(r);var i=new OffscreenCanvas(r.width,r.height);return i.getContext(`2d`).drawImage(r,0,0),n.set(r,i),i},clear:function(){n.clear()}}})(s,new Map),l=function(){var t=16,frame,cancel,n={},r=0;return typeof requestAnimationFrame==`function`&&typeof cancelAnimationFrame==`function`?(frame=function(i){var a=Math.random();return n[a]=requestAnimationFrame(function onFrame(o){r===o||r+t-1<o?(r=o,delete n[a],i()):n[a]=requestAnimationFrame(onFrame)}),a},cancel=function(t){n[t]&&cancelAnimationFrame(n[t])}):(frame=function(n){return setTimeout(n,t)},cancel=function(t){return clearTimeout(t)}),{frame,cancel}}(),u=(function(){var t,n,i={};function decorate(t){function execute(n,r){t.postMessage({options:n||{},callback:r})}t.init=function initWorker(n){var r=n.transferControlToOffscreen();t.postMessage({canvas:r},[r])},t.fire=function fireWorker(r,a,o){if(n)return execute(r,null),n;var s=Math.random().toString(36).slice(2);return n=promise(function(a){function workerDone(r){r.data.callback===s&&(delete i[s],t.removeEventListener(`message`,workerDone),n=null,c.clear(),o(),a())}t.addEventListener(`message`,workerDone),execute(r,s),i[s]=workerDone.bind(null,{data:{callback:s}})}),n},t.reset=function resetWorker(){for(var n in t.postMessage({reset:!0}),i)i[n](),delete i[n]}}return function(){if(t)return t;if(!r&&a){var n=[`var CONFETTI, SIZE = {}, module = {};`,`(`+main.toString()+`)(this, module, true, SIZE);`,`onmessage = function(msg) {`,` if (msg.data.options) {`,` CONFETTI(msg.data.options).then(function () {`,` if (msg.data.callback) {`,` postMessage({ callback: msg.data.callback });`,` }`,` });`,` } else if (msg.data.reset) {`,` CONFETTI && CONFETTI.reset();`,` } else if (msg.data.resize) {`,` SIZE.width = msg.data.resize.width;`,` SIZE.height = msg.data.resize.height;`,` } else if (msg.data.canvas) {`,` SIZE.width = msg.data.canvas.width;`,` SIZE.height = msg.data.canvas.height;`,` CONFETTI = module.exports.create(msg.data.canvas);`,` }`,`}`].join(`
|
|
21
|
-
`);try{t=new Worker(URL.createObjectURL(new Blob([n])))}catch(t){return typeof console.warn==`function`&&console.warn(`🎊 Could not load worker`,t),null}decorate(t)}return t}})(),d={particleCount:50,angle:90,spread:45,startVelocity:45,decay:.9,gravity:1,drift:0,ticks:200,x:.5,y:.5,shapes:[`square`,`circle`],zIndex:100,colors:[`#26ccff`,`#a25afd`,`#ff5e7e`,`#88ff5a`,`#fcff42`,`#ffa62d`,`#ff36ff`],disableForReducedMotion:!1,scalar:1};function convert(t,n){return n?n(t):t}function isOk(t){return t!=null}function prop(t,n,r){return convert(t&&isOk(t[n])?t[n]:d[n],r)}function onlyPositiveInt(t){return t<0?0:Math.floor(t)}function randomInt(t,n){return Math.floor(Math.random()*(n-t))+t}function toDecimal(t){return parseInt(t,16)}function colorsToRgb(t){return t.map(hexToRgb)}function hexToRgb(t){var n=String(t).replace(/[^0-9a-f]/gi,``);return n.length<6&&(n=n[0]+n[0]+n[1]+n[1]+n[2]+n[2]),{r:toDecimal(n.substring(0,2)),g:toDecimal(n.substring(2,4)),b:toDecimal(n.substring(4,6))}}function getOrigin(t){var n=prop(t,`origin`,Object);return n.x=prop(n,`x`,Number),n.y=prop(n,`y`,Number),n}function setCanvasWindowSize(t){t.width=document.documentElement.clientWidth,t.height=document.documentElement.clientHeight}function setCanvasRectSize(t){var n=t.getBoundingClientRect();t.width=n.width,t.height=n.height}function getCanvas(t){var n=document.createElement(`canvas`);return n.style.position=`fixed`,n.style.top=`0px`,n.style.left=`0px`,n.style.pointerEvents=`none`,n.style.zIndex=t,n}function ellipse(t,n,r,i,a,o,s,c,l){t.save(),t.translate(n,r),t.rotate(o),t.scale(i,a),t.arc(0,0,1,s,c,l),t.restore()}function randomPhysics(t){var n=t.angle*(Math.PI/180),r=t.spread*(Math.PI/180);return{x:t.x,y:t.y,wobble:Math.random()*10,wobbleSpeed:Math.min(.11,Math.random()*.1+.05),velocity:t.startVelocity*.5+Math.random()*t.startVelocity,angle2D:-n+(.5*r-Math.random()*r),tiltAngle:(Math.random()*.5+.25)*Math.PI,color:t.color,shape:t.shape,tick:0,totalTicks:t.ticks,decay:t.decay,drift:t.drift,random:Math.random()+2,tiltSin:0,tiltCos:0,wobbleX:0,wobbleY:0,gravity:t.gravity*3,ovalScalar:.6,scalar:t.scalar,flat:t.flat}}function updateFetti(t,n){n.x+=Math.cos(n.angle2D)*n.velocity+n.drift,n.y+=Math.sin(n.angle2D)*n.velocity+n.gravity,n.velocity*=n.decay,n.flat?(n.wobble=0,n.wobbleX=n.x+10*n.scalar,n.wobbleY=n.y+10*n.scalar,n.tiltSin=0,n.tiltCos=0,n.random=1):(n.wobble+=n.wobbleSpeed,n.wobbleX=n.x+10*n.scalar*Math.cos(n.wobble),n.wobbleY=n.y+10*n.scalar*Math.sin(n.wobble),n.tiltAngle+=.1,n.tiltSin=Math.sin(n.tiltAngle),n.tiltCos=Math.cos(n.tiltAngle),n.random=Math.random()+2);var r=n.tick++/n.totalTicks,i=n.x+n.random*n.tiltCos,a=n.y+n.random*n.tiltSin,s=n.wobbleX+n.random*n.tiltCos,l=n.wobbleY+n.random*n.tiltSin;if(t.fillStyle=`rgba(`+n.color.r+`, `+n.color.g+`, `+n.color.b+`, `+(1-r)+`)`,t.beginPath(),o&&n.shape.type===`path`&&typeof n.shape.path==`string`&&Array.isArray(n.shape.matrix))t.fill(transformPath2D(n.shape.path,n.shape.matrix,n.x,n.y,Math.abs(s-i)*.1,Math.abs(l-a)*.1,Math.PI/10*n.wobble));else if(n.shape.type===`bitmap`){var u=Math.PI/10*n.wobble,d=Math.abs(s-i)*.1,f=Math.abs(l-a)*.1,p=n.shape.bitmap.width*n.scalar,m=n.shape.bitmap.height*n.scalar,h=new DOMMatrix([Math.cos(u)*d,Math.sin(u)*d,-Math.sin(u)*f,Math.cos(u)*f,n.x,n.y]);h.multiplySelf(new DOMMatrix(n.shape.matrix));var g=t.createPattern(c.transform(n.shape.bitmap),`no-repeat`);g.setTransform(h),t.globalAlpha=1-r,t.fillStyle=g,t.fillRect(n.x-p/2,n.y-m/2,p,m),t.globalAlpha=1}else if(n.shape===`circle`)t.ellipse?t.ellipse(n.x,n.y,Math.abs(s-i)*n.ovalScalar,Math.abs(l-a)*n.ovalScalar,Math.PI/10*n.wobble,0,2*Math.PI):ellipse(t,n.x,n.y,Math.abs(s-i)*n.ovalScalar,Math.abs(l-a)*n.ovalScalar,Math.PI/10*n.wobble,0,2*Math.PI);else if(n.shape===`star`)for(var _=Math.PI/2*3,b=4*n.scalar,x=8*n.scalar,S=n.x,C=n.y,w=5,T=Math.PI/w;w--;)S=n.x+Math.cos(_)*x,C=n.y+Math.sin(_)*x,t.lineTo(S,C),_+=T,S=n.x+Math.cos(_)*b,C=n.y+Math.sin(_)*b,t.lineTo(S,C),_+=T;else t.moveTo(Math.floor(n.x),Math.floor(n.y)),t.lineTo(Math.floor(n.wobbleX),Math.floor(a)),t.lineTo(Math.floor(s),Math.floor(l)),t.lineTo(Math.floor(i),Math.floor(n.wobbleY));return t.closePath(),t.fill(),n.tick<n.totalTicks}function animate(t,n,a,o,s){var u=n.slice(),d=t.getContext(`2d`),f,p,m=promise(function(n){function onDone(){f=p=null,d.clearRect(0,0,o.width,o.height),c.clear(),s(),n()}function update(){r&&!(o.width===i.width&&o.height===i.height)&&(o.width=t.width=i.width,o.height=t.height=i.height),!o.width&&!o.height&&(a(t),o.width=t.width,o.height=t.height),d.clearRect(0,0,o.width,o.height),u=u.filter(function(t){return updateFetti(d,t)}),u.length?f=l.frame(update):onDone()}f=l.frame(update),p=onDone});return{addFettis:function(t){return u=u.concat(t),m},canvas:t,promise:m,reset:function(){f&&l.cancel(f),p&&p()}}}function confettiCannon(n,r){var i=!n,o=!!prop(r||{},`resize`),s=!1,c=prop(r,`disableForReducedMotion`,Boolean),l=a&&prop(r||{},`useWorker`)?u():null,d=i?setCanvasWindowSize:setCanvasRectSize,f=n&&l?!!n.__confetti_initialized:!1,p=typeof matchMedia==`function`&&matchMedia(`(prefers-reduced-motion)`).matches,m;function fireLocal(t,r,i){for(var a=prop(t,`particleCount`,onlyPositiveInt),o=prop(t,`angle`,Number),s=prop(t,`spread`,Number),c=prop(t,`startVelocity`,Number),l=prop(t,`decay`,Number),u=prop(t,`gravity`,Number),f=prop(t,`drift`,Number),p=prop(t,`colors`,colorsToRgb),h=prop(t,`ticks`,Number),g=prop(t,`shapes`),_=prop(t,`scalar`),b=!!prop(t,`flat`),x=getOrigin(t),S=a,C=[],w=n.width*x.x,T=n.height*x.y;S--;)C.push(randomPhysics({x:w,y:T,angle:o,spread:s,startVelocity:c,color:p[S%p.length],shape:g[randomInt(0,g.length)],ticks:h,decay:l,gravity:u,drift:f,scalar:_,flat:b}));return m?m.addFettis(C):(m=animate(n,C,d,r,i),m.promise)}function fire(r){var a=c||prop(r,`disableForReducedMotion`,Boolean),u=prop(r,`zIndex`,Number);if(a&&p)return promise(function(t){t()});i&&m?n=m.canvas:i&&!n&&(n=getCanvas(u),document.body.appendChild(n)),o&&!f&&d(n);var h={width:n.width,height:n.height};l&&!f&&l.init(n),f=!0,l&&(n.__confetti_initialized=!0);function onResize(){if(l){var t={getBoundingClientRect:function(){if(!i)return n.getBoundingClientRect()}};d(t),l.postMessage({resize:{width:t.width,height:t.height}});return}h.width=h.height=null}function done(){m=null,o&&(s=!1,t.removeEventListener(`resize`,onResize)),i&&n&&(document.body.contains(n)&&document.body.removeChild(n),n=null,f=!1)}return o&&!s&&(s=!0,t.addEventListener(`resize`,onResize,!1)),l?l.fire(r,h,done):fireLocal(r,h,done)}return fire.reset=function(){l&&l.reset(),m&&m.reset()},fire}var f;function getDefaultFire(){return f||(f=confettiCannon(null,{useWorker:!0,resize:!0})),f}function transformPath2D(t,n,r,i,a,o,s){var c=new Path2D(t),l=new Path2D;l.addPath(c,new DOMMatrix(n));var u=new Path2D;return u.addPath(l,new DOMMatrix([Math.cos(s)*a,Math.sin(s)*a,-Math.sin(s)*o,Math.cos(s)*o,r,i])),u}function shapeFromPath(t){if(!o)throw Error(`path confetti are not supported in this browser`);var n,r;typeof t==`string`?n=t:(n=t.path,r=t.matrix);var i=new Path2D(n),a=document.createElement(`canvas`).getContext(`2d`);if(!r){for(var s=1e3,c=s,l=s,u=0,d=0,f,p,m=0;m<s;m+=2)for(var h=0;h<s;h+=2)a.isPointInPath(i,m,h,`nonzero`)&&(c=Math.min(c,m),l=Math.min(l,h),u=Math.max(u,m),d=Math.max(d,h));f=u-c,p=d-l;var g=10,_=Math.min(g/f,g/p);r=[_,0,0,_,-Math.round(f/2+c)*_,-Math.round(p/2+l)*_]}return{type:`path`,path:n,matrix:r}}function shapeFromText(t){var n,r=1,i=`#000000`,a=`"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji", "EmojiOne Color", "Android Emoji", "Twemoji Mozilla", "system emoji", sans-serif`;typeof t==`string`?n=t:(n=t.text,r=`scalar`in t?t.scalar:r,a=`fontFamily`in t?t.fontFamily:a,i=`color`in t?t.color:i);var o=10*r,s=``+o+`px `+a,c=new OffscreenCanvas(o,o),l=c.getContext(`2d`);l.font=s;var u=l.measureText(n),d=Math.ceil(u.actualBoundingBoxRight+u.actualBoundingBoxLeft),f=Math.ceil(u.actualBoundingBoxAscent+u.actualBoundingBoxDescent),p=2,m=u.actualBoundingBoxLeft+p,h=u.actualBoundingBoxAscent+p;d+=p+p,f+=p+p,c=new OffscreenCanvas(d,f),l=c.getContext(`2d`),l.font=s,l.fillStyle=i,l.fillText(n,m,h);var g=1/r;return{type:`bitmap`,bitmap:c.transferToImageBitmap(),matrix:[g,0,0,g,-d*g/2,-f*g/2]}}n.exports=function(){return getDefaultFire().apply(this,arguments)},n.exports.reset=function(){getDefaultFire().reset()},n.exports.create=confettiCannon,n.exports.shapeFromPath=shapeFromPath,n.exports.shapeFromText=shapeFromText})((function(){return typeof window<`u`?window:typeof self<`u`?self:this||{}})(),zs,!1);var Bs=zs.exports;zs.exports.create;var Vs=j({name:`StudySession`,ref:{},components:{CardViewer:Xo,StudySessionTimer:Jo,SkMouseTrap:yo,HeatMap:ho,SessionControllerDebug:Rs},props:{sessionTimeLimit:{type:Number,required:!0},contentSources:{type:Array,required:!0},user:{type:Object,required:!0},dataLayer:{type:Object,required:!0},sessionConfig:{type:Object,default:()=>({likesConfetti:!1})},getViewComponent:{type:Function,required:!0},frameless:{type:Boolean,default:!1},hideFooter:{type:Boolean,default:!1},transitionName:{type:String,default:`component-fade`},transitionMode:{type:String,default:`out-in`}},emits:[`session-finished`,`session-started`,`card-loaded`,`card-response`,`time-changed`,`session-prepared`,`session-error`,`replan-requested`],data(){return{cardID:``,view:null,data:[],courseID:``,card_elo:1e3,courseNames:{},cardCount:1,sessionController:null,sessionPrepared:!1,sessionFinished:!1,sessionRecord:[],percentageRemaining:100,timerIsActive:!0,loading:!1,userCourseRegDoc:null,sessionContentSources:[],timeRemaining:300,replanPending:!1,replanOptions:null,deferredNextCardAction:null,intervalHandler:null,cardType:``,debugMode:window.debugMode===!0}},computed:{currentCard(){return this.sessionRecord[this.sessionRecord.length-1]}},async created(){this.userCourseRegDoc=await this.user.getCourseRegistrationsDoc(),console.log(`[StudySession] Created lifecycle hook - starting initSession`),await this.initSession(),console.log(`[StudySession] InitSession completed in created hook`)},methods:{async handleReadyToAdvance(){let t=this.deferredNextCardAction;if(!t){console.warn(`[StudySession] ready-to-advance received but no deferred action stashed — ignoring`);return}console.log(`[StudySession] ready-to-advance received — advancing with stashed action: ${t}`),this.deferredNextCardAction=null,this.loadCard(await this.sessionController.nextCard(t))},handleReplanRequest(t){if(this.sessionController){let n=t?.label,r=n?` [${n}]`:``;console.log(`[StudySession] Replan requested by card view${r}, deferring until after response processing`),this.replanPending=!0,this.replanOptions=t??null}},user_elo(t){let n=this.userCourseRegDoc.courses.find(n=>n.courseID===t);return Ge(n?n.elo:void 0)},handleClassroomMessage(){return t=>(wo({text:this.user?.getUsername()||`[Unknown user]`,status:Be.ok}),console.log(`[StudySession] There was a change in the classroom DB:`),console.log(`[StudySession] change: ${t}`),console.log(`[StudySession] Stringified change: ${JSON.stringify(t)}`),{})},incrementSessionClock(){let t=60*this.sessionTimeLimit-this.timeRemaining;this.sessionController.addTime(Math.min(t,60)),this.tick()},tick(){this.timeRemaining=this.sessionController.secondsRemaining,this.percentageRemaining=this.timeRemaining>60?100*(this.timeRemaining/(60*this.sessionTimeLimit)):100*(this.timeRemaining/60),this.$emit(`time-changed`,this.timeRemaining),this.timeRemaining===0&&clearInterval(this.intervalHandler)},async initSession(){let t=[];try{console.log(`[StudySession] starting study session w/ sources: ${JSON.stringify(this.contentSources)}`),console.log(`[StudySession] Beginning preparation process`),this.sessionContentSources=de((await Promise.all(this.contentSources.map(async t=>{try{return await nt(t,this.user)}catch(n){return console.error(`Failed to load study source: ${t.type}/${t.id}`,n),null}}))).filter(t=>t!==null)),this.timeRemaining=this.sessionTimeLimit*60,t=await Promise.all(this.contentSources.filter(t=>t.type===`classroom`).map(async t=>await this.dataLayer.getClassroomDB(t.id,`student`))),t.forEach(t=>{});let n=this.sessionConfig?.defaultBatchLimit===void 0?void 0:{defaultBatchLimit:this.sessionConfig.defaultBatchLimit};if(this.sessionController=de(new it(this.sessionContentSources,60*this.sessionTimeLimit,this.dataLayer,this.getViewComponent,void 0,n)),this.sessionController.sessionRecord=this.sessionRecord,this.sessionConfig?.initHints){for(let t of this.sessionContentSources)t.setEphemeralHints?.(this.sessionConfig.initHints);console.log(`[StudySession] Applied init hints to content sources`)}await this.sessionController.prepareSession(),this.intervalHandler=setInterval(this.tick,1e3),this.sessionPrepared=!0,console.log(`[StudySession] Session preparation complete, emitting session-prepared event`),this.$emit(`session-prepared`),console.log(`[StudySession] Event emission completed`)}catch(t){console.error(`[StudySession] Error during session preparation:`,t),this.$emit(`session-error`,{message:`Failed to prepare study session`,error:t})}try{this.contentSources.filter(t=>t.type===`course`).forEach(async t=>this.courseNames[t.id]=(await this.dataLayer.getCoursesDB().getCourseConfig(t.id)).name),console.log(`[StudySession] Session created:
|
|
21
|
+
`);try{t=new Worker(URL.createObjectURL(new Blob([n])))}catch(t){return typeof console.warn==`function`&&console.warn(`🎊 Could not load worker`,t),null}decorate(t)}return t}})(),d={particleCount:50,angle:90,spread:45,startVelocity:45,decay:.9,gravity:1,drift:0,ticks:200,x:.5,y:.5,shapes:[`square`,`circle`],zIndex:100,colors:[`#26ccff`,`#a25afd`,`#ff5e7e`,`#88ff5a`,`#fcff42`,`#ffa62d`,`#ff36ff`],disableForReducedMotion:!1,scalar:1};function convert(t,n){return n?n(t):t}function isOk(t){return t!=null}function prop(t,n,r){return convert(t&&isOk(t[n])?t[n]:d[n],r)}function onlyPositiveInt(t){return t<0?0:Math.floor(t)}function randomInt(t,n){return Math.floor(Math.random()*(n-t))+t}function toDecimal(t){return parseInt(t,16)}function colorsToRgb(t){return t.map(hexToRgb)}function hexToRgb(t){var n=String(t).replace(/[^0-9a-f]/gi,``);return n.length<6&&(n=n[0]+n[0]+n[1]+n[1]+n[2]+n[2]),{r:toDecimal(n.substring(0,2)),g:toDecimal(n.substring(2,4)),b:toDecimal(n.substring(4,6))}}function getOrigin(t){var n=prop(t,`origin`,Object);return n.x=prop(n,`x`,Number),n.y=prop(n,`y`,Number),n}function setCanvasWindowSize(t){t.width=document.documentElement.clientWidth,t.height=document.documentElement.clientHeight}function setCanvasRectSize(t){var n=t.getBoundingClientRect();t.width=n.width,t.height=n.height}function getCanvas(t){var n=document.createElement(`canvas`);return n.style.position=`fixed`,n.style.top=`0px`,n.style.left=`0px`,n.style.pointerEvents=`none`,n.style.zIndex=t,n}function ellipse(t,n,r,i,a,o,s,c,l){t.save(),t.translate(n,r),t.rotate(o),t.scale(i,a),t.arc(0,0,1,s,c,l),t.restore()}function randomPhysics(t){var n=t.angle*(Math.PI/180),r=t.spread*(Math.PI/180);return{x:t.x,y:t.y,wobble:Math.random()*10,wobbleSpeed:Math.min(.11,Math.random()*.1+.05),velocity:t.startVelocity*.5+Math.random()*t.startVelocity,angle2D:-n+(.5*r-Math.random()*r),tiltAngle:(Math.random()*.5+.25)*Math.PI,color:t.color,shape:t.shape,tick:0,totalTicks:t.ticks,decay:t.decay,drift:t.drift,random:Math.random()+2,tiltSin:0,tiltCos:0,wobbleX:0,wobbleY:0,gravity:t.gravity*3,ovalScalar:.6,scalar:t.scalar,flat:t.flat}}function updateFetti(t,n){n.x+=Math.cos(n.angle2D)*n.velocity+n.drift,n.y+=Math.sin(n.angle2D)*n.velocity+n.gravity,n.velocity*=n.decay,n.flat?(n.wobble=0,n.wobbleX=n.x+10*n.scalar,n.wobbleY=n.y+10*n.scalar,n.tiltSin=0,n.tiltCos=0,n.random=1):(n.wobble+=n.wobbleSpeed,n.wobbleX=n.x+10*n.scalar*Math.cos(n.wobble),n.wobbleY=n.y+10*n.scalar*Math.sin(n.wobble),n.tiltAngle+=.1,n.tiltSin=Math.sin(n.tiltAngle),n.tiltCos=Math.cos(n.tiltAngle),n.random=Math.random()+2);var r=n.tick++/n.totalTicks,i=n.x+n.random*n.tiltCos,a=n.y+n.random*n.tiltSin,s=n.wobbleX+n.random*n.tiltCos,l=n.wobbleY+n.random*n.tiltSin;if(t.fillStyle=`rgba(`+n.color.r+`, `+n.color.g+`, `+n.color.b+`, `+(1-r)+`)`,t.beginPath(),o&&n.shape.type===`path`&&typeof n.shape.path==`string`&&Array.isArray(n.shape.matrix))t.fill(transformPath2D(n.shape.path,n.shape.matrix,n.x,n.y,Math.abs(s-i)*.1,Math.abs(l-a)*.1,Math.PI/10*n.wobble));else if(n.shape.type===`bitmap`){var u=Math.PI/10*n.wobble,d=Math.abs(s-i)*.1,f=Math.abs(l-a)*.1,p=n.shape.bitmap.width*n.scalar,m=n.shape.bitmap.height*n.scalar,h=new DOMMatrix([Math.cos(u)*d,Math.sin(u)*d,-Math.sin(u)*f,Math.cos(u)*f,n.x,n.y]);h.multiplySelf(new DOMMatrix(n.shape.matrix));var g=t.createPattern(c.transform(n.shape.bitmap),`no-repeat`);g.setTransform(h),t.globalAlpha=1-r,t.fillStyle=g,t.fillRect(n.x-p/2,n.y-m/2,p,m),t.globalAlpha=1}else if(n.shape===`circle`)t.ellipse?t.ellipse(n.x,n.y,Math.abs(s-i)*n.ovalScalar,Math.abs(l-a)*n.ovalScalar,Math.PI/10*n.wobble,0,2*Math.PI):ellipse(t,n.x,n.y,Math.abs(s-i)*n.ovalScalar,Math.abs(l-a)*n.ovalScalar,Math.PI/10*n.wobble,0,2*Math.PI);else if(n.shape===`star`)for(var _=Math.PI/2*3,b=4*n.scalar,x=8*n.scalar,S=n.x,C=n.y,w=5,T=Math.PI/w;w--;)S=n.x+Math.cos(_)*x,C=n.y+Math.sin(_)*x,t.lineTo(S,C),_+=T,S=n.x+Math.cos(_)*b,C=n.y+Math.sin(_)*b,t.lineTo(S,C),_+=T;else t.moveTo(Math.floor(n.x),Math.floor(n.y)),t.lineTo(Math.floor(n.wobbleX),Math.floor(a)),t.lineTo(Math.floor(s),Math.floor(l)),t.lineTo(Math.floor(i),Math.floor(n.wobbleY));return t.closePath(),t.fill(),n.tick<n.totalTicks}function animate(t,n,a,o,s){var u=n.slice(),d=t.getContext(`2d`),f,p,m=promise(function(n){function onDone(){f=p=null,d.clearRect(0,0,o.width,o.height),c.clear(),s(),n()}function update(){r&&!(o.width===i.width&&o.height===i.height)&&(o.width=t.width=i.width,o.height=t.height=i.height),!o.width&&!o.height&&(a(t),o.width=t.width,o.height=t.height),d.clearRect(0,0,o.width,o.height),u=u.filter(function(t){return updateFetti(d,t)}),u.length?f=l.frame(update):onDone()}f=l.frame(update),p=onDone});return{addFettis:function(t){return u=u.concat(t),m},canvas:t,promise:m,reset:function(){f&&l.cancel(f),p&&p()}}}function confettiCannon(n,r){var i=!n,o=!!prop(r||{},`resize`),s=!1,c=prop(r,`disableForReducedMotion`,Boolean),l=a&&prop(r||{},`useWorker`)?u():null,d=i?setCanvasWindowSize:setCanvasRectSize,f=n&&l?!!n.__confetti_initialized:!1,p=typeof matchMedia==`function`&&matchMedia(`(prefers-reduced-motion)`).matches,m;function fireLocal(t,r,i){for(var a=prop(t,`particleCount`,onlyPositiveInt),o=prop(t,`angle`,Number),s=prop(t,`spread`,Number),c=prop(t,`startVelocity`,Number),l=prop(t,`decay`,Number),u=prop(t,`gravity`,Number),f=prop(t,`drift`,Number),p=prop(t,`colors`,colorsToRgb),h=prop(t,`ticks`,Number),g=prop(t,`shapes`),_=prop(t,`scalar`),b=!!prop(t,`flat`),x=getOrigin(t),S=a,C=[],w=n.width*x.x,T=n.height*x.y;S--;)C.push(randomPhysics({x:w,y:T,angle:o,spread:s,startVelocity:c,color:p[S%p.length],shape:g[randomInt(0,g.length)],ticks:h,decay:l,gravity:u,drift:f,scalar:_,flat:b}));return m?m.addFettis(C):(m=animate(n,C,d,r,i),m.promise)}function fire(r){var a=c||prop(r,`disableForReducedMotion`,Boolean),u=prop(r,`zIndex`,Number);if(a&&p)return promise(function(t){t()});i&&m?n=m.canvas:i&&!n&&(n=getCanvas(u),document.body.appendChild(n)),o&&!f&&d(n);var h={width:n.width,height:n.height};l&&!f&&l.init(n),f=!0,l&&(n.__confetti_initialized=!0);function onResize(){if(l){var t={getBoundingClientRect:function(){if(!i)return n.getBoundingClientRect()}};d(t),l.postMessage({resize:{width:t.width,height:t.height}});return}h.width=h.height=null}function done(){m=null,o&&(s=!1,t.removeEventListener(`resize`,onResize)),i&&n&&(document.body.contains(n)&&document.body.removeChild(n),n=null,f=!1)}return o&&!s&&(s=!0,t.addEventListener(`resize`,onResize,!1)),l?l.fire(r,h,done):fireLocal(r,h,done)}return fire.reset=function(){l&&l.reset(),m&&m.reset()},fire}var f;function getDefaultFire(){return f||(f=confettiCannon(null,{useWorker:!0,resize:!0})),f}function transformPath2D(t,n,r,i,a,o,s){var c=new Path2D(t),l=new Path2D;l.addPath(c,new DOMMatrix(n));var u=new Path2D;return u.addPath(l,new DOMMatrix([Math.cos(s)*a,Math.sin(s)*a,-Math.sin(s)*o,Math.cos(s)*o,r,i])),u}function shapeFromPath(t){if(!o)throw Error(`path confetti are not supported in this browser`);var n,r;typeof t==`string`?n=t:(n=t.path,r=t.matrix);var i=new Path2D(n),a=document.createElement(`canvas`).getContext(`2d`);if(!r){for(var s=1e3,c=s,l=s,u=0,d=0,f,p,m=0;m<s;m+=2)for(var h=0;h<s;h+=2)a.isPointInPath(i,m,h,`nonzero`)&&(c=Math.min(c,m),l=Math.min(l,h),u=Math.max(u,m),d=Math.max(d,h));f=u-c,p=d-l;var g=10,_=Math.min(g/f,g/p);r=[_,0,0,_,-Math.round(f/2+c)*_,-Math.round(p/2+l)*_]}return{type:`path`,path:n,matrix:r}}function shapeFromText(t){var n,r=1,i=`#000000`,a=`"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji", "EmojiOne Color", "Android Emoji", "Twemoji Mozilla", "system emoji", sans-serif`;typeof t==`string`?n=t:(n=t.text,r=`scalar`in t?t.scalar:r,a=`fontFamily`in t?t.fontFamily:a,i=`color`in t?t.color:i);var o=10*r,s=``+o+`px `+a,c=new OffscreenCanvas(o,o),l=c.getContext(`2d`);l.font=s;var u=l.measureText(n),d=Math.ceil(u.actualBoundingBoxRight+u.actualBoundingBoxLeft),f=Math.ceil(u.actualBoundingBoxAscent+u.actualBoundingBoxDescent),p=2,m=u.actualBoundingBoxLeft+p,h=u.actualBoundingBoxAscent+p;d+=p+p,f+=p+p,c=new OffscreenCanvas(d,f),l=c.getContext(`2d`),l.font=s,l.fillStyle=i,l.fillText(n,m,h);var g=1/r;return{type:`bitmap`,bitmap:c.transferToImageBitmap(),matrix:[g,0,0,g,-d*g/2,-f*g/2]}}n.exports=function(){return getDefaultFire().apply(this,arguments)},n.exports.reset=function(){getDefaultFire().reset()},n.exports.create=confettiCannon,n.exports.shapeFromPath=shapeFromPath,n.exports.shapeFromText=shapeFromText})((function(){return typeof window<`u`?window:typeof self<`u`?self:this||{}})(),zs,!1);var Bs=zs.exports;zs.exports.create;var Vs=j({name:`StudySession`,ref:{},components:{CardViewer:Xo,StudySessionTimer:Jo,SkMouseTrap:yo,HeatMap:ho,SessionControllerDebug:Rs},props:{sessionTimeLimit:{type:Number,required:!0},contentSources:{type:Array,required:!0},user:{type:Object,required:!0},dataLayer:{type:Object,required:!0},sessionConfig:{type:Object,default:()=>({likesConfetti:!1})},getViewComponent:{type:Function,required:!0},frameless:{type:Boolean,default:!1},hideFooter:{type:Boolean,default:!1},transitionName:{type:String,default:`component-fade`},transitionMode:{type:String,default:`out-in`}},emits:[`session-finished`,`session-started`,`card-loaded`,`card-response`,`time-changed`,`session-prepared`,`session-error`,`replan-requested`],data(){return{cardID:``,view:null,data:[],courseID:``,card_elo:1e3,courseNames:{},cardCount:1,sessionController:null,sessionPrepared:!1,sessionFinished:!1,sessionRecord:[],percentageRemaining:100,timerIsActive:!0,loading:!1,userCourseRegDoc:null,sessionContentSources:[],timeRemaining:300,replanPending:!1,replanOptions:null,deferredNextCardAction:null,intervalHandler:null,cardType:``,debugMode:window.debugMode===!0}},computed:{currentCard(){return this.sessionRecord[this.sessionRecord.length-1]}},async created(){this.userCourseRegDoc=await this.user.getCourseRegistrationsDoc(),console.log(`[StudySession] Created lifecycle hook - starting initSession`),await this.initSession(),console.log(`[StudySession] InitSession completed in created hook`)},errorCaptured(t,n,r){return console.error(`[StudySession] Card render error (${r}), skipping card "${this.cardID}":`,t),this.sessionController&&this.sessionController.nextCard().then(t=>this.loadCard(t)),!1},methods:{async handleReadyToAdvance(){let t=this.deferredNextCardAction;if(!t){console.warn(`[StudySession] ready-to-advance received but no deferred action stashed — ignoring`);return}console.log(`[StudySession] ready-to-advance received — advancing with stashed action: ${t}`),this.deferredNextCardAction=null,this.loadCard(await this.sessionController.nextCard(t))},handleReplanRequest(t){if(this.sessionController){let n=t?.label,r=n?` [${n}]`:``;console.log(`[StudySession] Replan requested by card view${r}, deferring until after response processing`),this.replanPending=!0,this.replanOptions=t??null}},user_elo(t){let n=this.userCourseRegDoc.courses.find(n=>n.courseID===t);return Ge(n?n.elo:void 0)},handleClassroomMessage(){return t=>(wo({text:this.user?.getUsername()||`[Unknown user]`,status:Be.ok}),console.log(`[StudySession] There was a change in the classroom DB:`),console.log(`[StudySession] change: ${t}`),console.log(`[StudySession] Stringified change: ${JSON.stringify(t)}`),{})},incrementSessionClock(){let t=60*this.sessionTimeLimit-this.timeRemaining;this.sessionController.addTime(Math.min(t,60)),this.tick()},tick(){this.timeRemaining=this.sessionController.secondsRemaining,this.percentageRemaining=this.timeRemaining>60?100*(this.timeRemaining/(60*this.sessionTimeLimit)):100*(this.timeRemaining/60),this.$emit(`time-changed`,this.timeRemaining),this.timeRemaining===0&&clearInterval(this.intervalHandler)},async initSession(){let t=[];try{console.log(`[StudySession] starting study session w/ sources: ${JSON.stringify(this.contentSources)}`),console.log(`[StudySession] Beginning preparation process`),this.sessionContentSources=de((await Promise.all(this.contentSources.map(async t=>{try{return await nt(t,this.user)}catch(n){return console.error(`Failed to load study source: ${t.type}/${t.id}`,n),null}}))).filter(t=>t!==null)),this.timeRemaining=this.sessionTimeLimit*60,t=await Promise.all(this.contentSources.filter(t=>t.type===`classroom`).map(async t=>await this.dataLayer.getClassroomDB(t.id,`student`))),t.forEach(t=>{});let n={};if(this.sessionConfig?.defaultBatchLimit!==void 0&&(n.defaultBatchLimit=this.sessionConfig.defaultBatchLimit),this.sessionConfig?.initialReviewCap!==void 0&&(n.initialReviewCap=this.sessionConfig.initialReviewCap),this.sessionController=de(new it(this.sessionContentSources,60*this.sessionTimeLimit,this.dataLayer,this.getViewComponent,void 0,n)),this.sessionController.sessionRecord=this.sessionRecord,this.sessionConfig?.initHints){for(let t of this.sessionContentSources)t.setEphemeralHints?.(this.sessionConfig.initHints);console.log(`[StudySession] Applied init hints to content sources`)}await this.sessionController.prepareSession(),this.intervalHandler=setInterval(this.tick,1e3),this.sessionPrepared=!0,console.log(`[StudySession] Session preparation complete, emitting session-prepared event`),this.$emit(`session-prepared`),console.log(`[StudySession] Event emission completed`)}catch(t){console.error(`[StudySession] Error during session preparation:`,t),this.$emit(`session-error`,{message:`Failed to prepare study session`,error:t})}try{this.contentSources.filter(t=>t.type===`course`).forEach(async t=>this.courseNames[t.id]=(await this.dataLayer.getCoursesDB().getCourseConfig(t.id)).name),console.log(`[StudySession] Session created:
|
|
22
22
|
${this.sessionController?.toString()||`Session controller not initialized`}
|
|
23
23
|
User courses: ${this.contentSources.filter(t=>t.type===`course`).map(t=>t.id).toString()}
|
|
24
24
|
User classrooms: ${t.map(t=>t._id).toString()||`No classrooms`}
|
|
25
|
-
`)}catch(t){console.error(`[StudySession] Error during final session setup:`,t)}if(this.sessionController)try{this.$emit(`session-started`),this.loadCard(await this.sessionController.nextCard())}catch(t){console.error(`[StudySession] Error loading next card:`,t),this.$emit(`session-error`,{message:`Failed to load study card`,error:t})}else console.error(`[StudySession] Cannot load card: session controller not initialized`),this.$emit(`session-error`,{message:`Study session initialization failed`})},countCardViews(t,n){return this.sessionRecord.filter(r=>r.card.course_id===t&&r.card.card_id===n).length},async processResponse(t){this.$emit(`card-response`,t),this.timerIsActive=!0,t.cardID=this.cardID,t.courseID=this.courseID,this.currentCard.records.push(t),console.log(`[StudySession] StudySession.processResponse is running...`);let n=this.logCardRecord(t).catch(t=>{throw console.error(`[StudySession] putCardRecord failed:`,t),t}),r=1,i=1;if(Ze(this.$refs.cardViewer?.$refs.activeView)){let t=this.$refs.cardViewer.$refs.activeView;r=t.maxAttemptsPerView,i=t.maxSessionViews}let a=this.countCardViews(this.courseID,this.cardID),o=await this.sessionController.submitResponse(t,n,this.userCourseRegDoc,this.currentCard,this.courseID,this.cardID,r,i,a);try{this.handleUIFeedback(o)}catch(t){console.error(`[StudySession] Error handling UI feedback: ${t}.\n\nResult: ${JSON.stringify(o)}`)}if(this.replanPending){let t=this.replanOptions,n=t?.label,r=n?` [${n}]`:``;console.log(`[StudySession] Firing deferred replan (post-submitResponse)${r}`),this.replanPending=!1,this.replanOptions=null,this.sessionController.requestReplan(t??void 0),this.$emit(`replan-requested`)}o.deferred?(console.log(`[StudySession] Deferred advance — stashing action: ${o.nextCardAction}`),this.deferredNextCardAction=o.nextCardAction):o.shouldLoadNextCard&&this.loadCard(await this.sessionController.nextCard(o.nextCardAction)),o.shouldClearFeedbackShadow&&this.clearFeedbackShadow()},handleUIFeedback(t){if(t.isCorrect){if(!this.frameless)try{this.$refs.shadowWrapper&&t.performanceScore!==void 0&&(this.$refs.shadowWrapper.setAttribute(`style`,`--r: ${255*(1-t.performanceScore)}; --g:255`),this.$refs.shadowWrapper.classList.add(`correct`))}catch(t){console.warn(`[StudySession] Error setting shadowWrapper style: ${t}`)}this.sessionConfig.likesConfetti&&Bs({origin:{y:1,x:.25+.5*Math.random()},disableForReducedMotion:!0,angle:60+60*Math.random()})}else if(!this.frameless)try{this.$refs.shadowWrapper&&this.$refs.shadowWrapper.classList.add(`incorrect`)}catch(t){console.warn(`[StudySession] Error setting shadowWrapper style: ${t}`)}},clearFeedbackShadow(){this.frameless||setTimeout(()=>{try{this.$refs.shadowWrapper&&this.$refs.shadowWrapper.classList.remove(`correct`,`incorrect`)}catch(t){console.warn(`[StudySession] Error clearing shadowWrapper style: ${t}`)}},1250)},async logCardRecord(t){console.log(`[StudySession] About to call user.putCardRecord...`);let n=await this.user.putCardRecord(t);return console.log(`[StudySession] user.putCardRecord completed`),n},async loadCard(t){if(this.loading){console.warn(`Attempted to load card while loading another...`);return}if(console.log(`[StudySession] loading: ${JSON.stringify(t)}`),t===null){this.sessionFinished=!0,this.$emit(`session-finished`,this.sessionRecord);return}this.cardType=t.item.status,this.loading=!0,this.cardCount++,this.data=t.data,this.view=de(t.view),this.cardID=t.item.cardID,this.courseID=t.item.courseID,this.card_elo=t.item.elo||1e3,this.sessionRecord.push({card:{course_id:t.item.courseID,card_id:t.item.cardID,card_elo:this.card_elo,tags:t.tags??[]},item:t.item,records:[]}),this.$emit(`card-loaded`,{courseID:t.item.courseID,cardID:t.item.cardID,cardCount:this.cardCount}),this.loading=!1}}}),Hs={key:0,class:`StudySession`},Us={key:2},Ws={key:3},Gs={class:`text-h4`},Ks={key:0},qs={key:4,ref:`shadowWrapper`,class:`card-transition-container`},Js={key:0};function _sfc_render$15(t,n,r,i,a,o){let c=E(`v-spacer`),l=E(`v-progress-circular`),u=E(`v-row`),d=E(`session-controller-debug`),p=E(`heat-map`),m=E(`card-viewer`),h=E(`StudySessionTimer`),g=E(`v-col`),_=E(`SkMouseTrap`);return t.sessionPrepared?(x(),R(`div`,Hs,[t.frameless?U(``,!0):(x(),H(u,{key:0,align:`center`},{default:s(()=>[f(c),t.loading?(x(),H(l,{key:0,color:`primary`,indeterminate:``,size:`32`,width:`4`})):U(``,!0)]),_:1})),t.debugMode?(x(),H(d,{key:1,"session-controller":t.sessionController},null,8,[`session-controller`])):U(``,!0),t.frameless?U(``,!0):(x(),R(`br`,Us)),t.sessionFinished?(x(),R(`div`,Ws,[b(t.$slots,`session-finished`,{sessionRecord:t.sessionRecord,report:t.sessionController?.report},()=>[I(`div`,Gs,[n[1]||(n[1]=I(`p`,null,`Study session finished! Great job!`,-1)),t.sessionController?(x(),R(`p`,Ks,N(t.sessionController.report),1)):U(``,!0),f(p,{"activity-records-getter":()=>t.user.getActivityRecords()},null,8,[`activity-records-getter`])])],!0)])):(x(),R(`div`,qs,[f(De,{name:t.transitionName},{default:s(()=>[t.view?(x(),H(m,{ref:`cardViewer`,key:t.cardID,class:w(t.loading?`muted`:``),view:t.view,data:t.data,card_id:t.cardID,course_id:t.courseID,"session-order":t.cardCount,user_elo:t.user_elo(t.courseID),card_elo:t.card_elo,frameless:t.frameless,onEmitResponse:n[0]||(n[0]=n=>t.processResponse(n)),onRequestReplan:t.handleReplanRequest,onReadyToAdvance:t.handleReadyToAdvance},null,8,[`class`,`view`,`data`,`card_id`,`course_id`,`session-order`,`user_elo`,`card_elo`,`frameless`,`onRequestReplan`,`onReadyToAdvance`])):U(``,!0)]),_:1},8,[`name`])],512)),t.frameless?U(``,!0):(x(),R(ge,{key:5},[n[2]||(n[2]=I(`br`,null,null,-1)),t.sessionController?(x(),R(`div`,Js,[(x(!0),R(ge,null,P(t.sessionController.failedCount,t=>(x(),R(`span`,{key:t,class:`text-h5`},`•`))),128))])):U(``,!0)],64)),t.hideFooter?U(``,!0):(x(),H(u,{key:6,align:`center`,class:`footer-controls pa-5`},{default:s(()=>[f(g,{cols:`auto`,class:`d-flex flex-grow-0 mr-auto`},{default:s(()=>[f(h,{"time-remaining":t.timeRemaining,"session-time-limit":t.sessionTimeLimit,onAddTime:t.incrementSessionClock},null,8,[`time-remaining`,`session-time-limit`,`onAddTime`])]),_:1}),f(c),f(g,{cols:`auto`,class:`footer-right`},{default:s(()=>[f(_)]),_:1})]),_:1}))])):U(``,!0)}$e(_sfc_render$15,`_sfc_render`);var Ys=q(Vs,[[`render`,_sfc_render$15],[`__scopeId`,`data-v-fc2f14b9`]]),Xs=j({name:`MultipleChoiceOption`,components:{MarkdownRenderer:je(()=>lo(()=>import(`./MarkdownRenderer-DoVbFpA6-CQGwEJFh.js`).then(t=>t.n),__vite__mapDeps([4,1,2,5,6])))},props:{content:{type:String,required:!0},selected:{type:Boolean,required:!0},number:{type:Number,required:!0},setSelection:{type:Function,required:!0},submit:{type:Function,required:!0},markedWrong:{type:Boolean,required:!0}},computed:{className(){let t;switch(this.number){case 0:t=`bg-red`;break;case 1:t=`bg-purple`;break;case 2:t=`bg-indigo`;break;case 3:t=`bg-light-blue`;break;case 4:t=`bg-teal`;break;case 5:t=`bg-deep-orange`;break;default:t=`bg-grey`;break}if(this.selected&&!this.markedWrong)return`choice selected ${t} lighten-3 elevation-8`;if(!this.selected&&!this.markedWrong)return`choice not-selected ${t} lighten-4 elevation-1`;if(this.selected&&this.markedWrong)return`choice selected grey lighten-2 elevation-8`;if(!this.selected&&this.markedWrong)return`choice not-selected grey lighten-2 elevation-0`;throw Error(`'selected' and 'markedWrong' props in MultipleChoiceOption are in an impossible configuration.`)}},methods:{select(){this.setSelection(this.number)},submitThisOption(){this.markedWrong||(this.select(),this.submit())}}});function _sfc_render$14(t,n,r,i,a,o){let c=E(`markdown-renderer`),l=E(`v-card`);return x(),H(l,{class:w(`${t.className}`),onMouseover:t.select,onClick:t.submitThisOption},{default:s(()=>[f(c,{md:t.content},null,8,[`md`])]),_:1},8,[`class`,`onMouseover`,`onClick`])}$e(_sfc_render$14,`_sfc_render`);var Zs=q(Xs,[[`render`,_sfc_render$14],[`__scopeId`,`data-v-96de7172`]]),Qs=j({name:`RadioMultipleChoice`,components:{MultipleChoiceOption:Zs},extends:Qe,props:{choiceList:{type:Array,required:!0}},data(){return{currentSelection:-1,incorrectSelections:[],containerRef:null,_registeredHotkeys:[]}},watch:{choiceList:{immediate:!0,handler(t){t?.length&&this.bindKeys()}}},mounted(){this.containerRef&&this.containerRef.focus()},unmounted(){this.unbindKeys()},methods:{forwardSelection(){if(!this.choiceIsWrong(this.choiceList[this.currentSelection])&&this.currentSelection!==-1){let t={choiceList:this.choiceList,selection:this.currentSelection};this.submitAnswer(t).isCorrect||this.incorrectSelections.push(this.currentSelection)}},setSelection(t){t<this.choiceList.length&&(this.currentSelection=t)},incrementSelection(){this.currentSelection===-1?this.currentSelection=Math.ceil(this.choiceList.length/2):this.currentSelection=Math.min(this.choiceList.length-1,this.currentSelection+1)},decrementSelection(){this.currentSelection===-1?this.currentSelection=Math.floor(this.choiceList.length/2-1):this.currentSelection=Math.max(0,this.currentSelection-1)},choiceIsWrong(t){let n=!1;return this.incorrectSelections.forEach(r=>{this.choiceList[r]===t&&(n=!0)}),n},bindKeys(){let t=[{hotkey:`left`,callback:this.decrementSelection,command:`Move selection left`},{hotkey:`right`,callback:this.incrementSelection,command:`Move selection right`},{hotkey:`enter`,callback:this.forwardSelection,command:`Submit selection`},...Array.from({length:this.choiceList.length},(t,n)=>({hotkey:(n+1).toString(),callback:()=>this.setSelection(n),command:`Select ${(t=>{switch(t){case 0:return`first`;case 1:return`second`;case 2:return`third`;case 3:return`fourth`;case 4:return`fifth`;case 5:return`sixth`;default:return`${t+1}th`}})(n)} option`}))];et.addBinding(t),this._registeredHotkeys=t.map(t=>t.hotkey)},unbindKeys(){this._registeredHotkeys&&this._registeredHotkeys.forEach(t=>{et.removeBinding(t)})}}}),$s={ref:`containerRef`,class:`multipleChoice`};function _sfc_render$13(t,n,r,i,a,o){let s=E(`MultipleChoiceOption`);return x(),R(`div`,$s,[(x(!0),R(ge,null,P(t.choiceList,(n,r)=>(x(),H(s,{key:r,content:n,selected:t.choiceList.indexOf(n)===t.currentSelection,number:t.choiceList.indexOf(n),"set-selection":t.setSelection,submit:t.forwardSelection,"marked-wrong":t.choiceIsWrong(n)},null,8,[`content`,`selected`,`number`,`set-selection`,`submit`,`marked-wrong`]))),128))],512)}$e(_sfc_render$13,`_sfc_render`);var ec=q(Qs,[[`render`,_sfc_render$13]]),tc=j({name:`TrueFalse`,components:{RadioMultipleChoice:ec},props:{MouseTrap:{type:Object,required:!0},submit:{type:Function,required:!0}}}),nc={"data-viewable":`TrueFalse`};function _sfc_render$12(t,n,r,i,a,o){let s=E(`RadioMultipleChoice`);return x(),R(`div`,nc,[f(s,{"choice-list":[`True`,`False`],MouseTrap:t.MouseTrap,submit:t.submit},null,8,[`MouseTrap`,`submit`])])}$e(_sfc_render$12,`_sfc_render`);var rc=q(tc,[[`render`,_sfc_render$12]]),ic=j({name:`UserInputNumber`,ref:{},extends:Qe,methods:{mounted(){this.$refs.input.focus()},isNumeric(t){return!isNaN(Number.parseFloat(t))},makeNumeric(t){if(typeof t==`string`)return Number.parseFloat(t);throw Error(`Expected a string, got `+typeof t)}}});function _sfc_render$11(t,n,r,i,a,o){let c=E(`v-text-field`),l=E(`v-container`);return x(),H(l,{class:`pa-0`},{default:s(()=>[f(c,{ref:`input`,modelValue:t.answer,"onUpdate:modelValue":n[0]||(n[0]=n=>t.answer=n),"prepend-icon":`edit`,autofocus:t.autofocus,"row-height":`24`,"toggle-keys":`[13,32]`,class:`text-h5`,rules:[t.isNumeric],onKeyup:n[1]||(n[1]=Se(n=>t.submitAnswer(t.makeNumeric(t.answer)),[`enter`]))},null,8,[`modelValue`,`autofocus`,`rules`])]),_:1})}$e(_sfc_render$11,`_sfc_render`);var ac=q(ic,[[`render`,_sfc_render$11],[`__scopeId`,`data-v-a56dcd1c`]]),oc=j({name:`CardLoader`,components:{CardViewer:Xo},props:{sessionOrder:{type:Number,required:!1,default:0},qualified_id:{type:Object,required:!0},viewLookup:{type:Function,required:!0}},data(){return{loading:!0,view:null,data:[],courseID:``,cardID:``}},created(){this.loadCard()},watch:{qualified_id:{immediate:!0,handler(){this.loadCard()}}},methods:{processResponse(t){He(`
|
|
25
|
+
`)}catch(t){console.error(`[StudySession] Error during final session setup:`,t)}if(this.sessionController)try{this.$emit(`session-started`),this.loadCard(await this.sessionController.nextCard())}catch(t){console.error(`[StudySession] Error loading next card:`,t),this.$emit(`session-error`,{message:`Failed to load study card`,error:t})}else console.error(`[StudySession] Cannot load card: session controller not initialized`),this.$emit(`session-error`,{message:`Study session initialization failed`})},countCardViews(t,n){return this.sessionRecord.filter(r=>r.card.course_id===t&&r.card.card_id===n).length},async processResponse(t){this.$emit(`card-response`,t),this.timerIsActive=!0,t.cardID=this.cardID,t.courseID=this.courseID,this.currentCard.records.push(t),console.log(`[StudySession] StudySession.processResponse is running...`);let n=this.logCardRecord(t).catch(t=>{throw console.error(`[StudySession] putCardRecord failed:`,t),t}),r=1,i=1;if(Ze(this.$refs.cardViewer?.$refs.activeView)){let t=this.$refs.cardViewer.$refs.activeView;r=t.maxAttemptsPerView,i=t.maxSessionViews}let a=this.countCardViews(this.courseID,this.cardID),o=await this.sessionController.submitResponse(t,n,this.userCourseRegDoc,this.currentCard,this.courseID,this.cardID,r,i,a);try{this.handleUIFeedback(o)}catch(t){console.error(`[StudySession] Error handling UI feedback: ${t}.\n\nResult: ${JSON.stringify(o)}`)}if(this.replanPending){let t=this.replanOptions,n=t?.label,r=n?` [${n}]`:``;console.log(`[StudySession] Firing deferred replan (post-submitResponse)${r}`),this.replanPending=!1,this.replanOptions=null,this.sessionController.requestReplan(t??void 0),this.$emit(`replan-requested`)}o.deferred?(console.log(`[StudySession] Deferred advance — stashing action: ${o.nextCardAction}`),this.deferredNextCardAction=o.nextCardAction):o.shouldLoadNextCard&&this.loadCard(await this.sessionController.nextCard(o.nextCardAction)),o.shouldClearFeedbackShadow&&this.clearFeedbackShadow()},handleUIFeedback(t){if(t.isCorrect){if(!this.frameless)try{this.$refs.shadowWrapper&&t.performanceScore!==void 0&&(this.$refs.shadowWrapper.setAttribute(`style`,`--r: ${255*(1-t.performanceScore)}; --g:255`),this.$refs.shadowWrapper.classList.add(`correct`))}catch(t){console.warn(`[StudySession] Error setting shadowWrapper style: ${t}`)}this.sessionConfig.likesConfetti&&Bs({origin:{y:1,x:.25+.5*Math.random()},disableForReducedMotion:!0,angle:60+60*Math.random()})}else if(!this.frameless)try{this.$refs.shadowWrapper&&this.$refs.shadowWrapper.classList.add(`incorrect`)}catch(t){console.warn(`[StudySession] Error setting shadowWrapper style: ${t}`)}},clearFeedbackShadow(){this.frameless||setTimeout(()=>{try{this.$refs.shadowWrapper&&this.$refs.shadowWrapper.classList.remove(`correct`,`incorrect`)}catch(t){console.warn(`[StudySession] Error clearing shadowWrapper style: ${t}`)}},1250)},async logCardRecord(t){console.log(`[StudySession] About to call user.putCardRecord...`);let n=await this.user.putCardRecord(t);return console.log(`[StudySession] user.putCardRecord completed`),n},async loadCard(t){if(this.loading){console.warn(`Attempted to load card while loading another...`);return}if(console.log(`[StudySession] loading: ${JSON.stringify(t)}`),t===null){this.sessionFinished=!0,this.$emit(`session-finished`,this.sessionRecord);return}this.cardType=t.item.status,this.loading=!0,this.cardCount++,this.data=t.data,this.view=de(t.view),this.cardID=t.item.cardID,this.courseID=t.item.courseID,this.card_elo=t.item.elo||1e3,this.sessionRecord.push({card:{course_id:t.item.courseID,card_id:t.item.cardID,card_elo:this.card_elo,tags:t.tags??[]},item:t.item,records:[]}),this.$emit(`card-loaded`,{courseID:t.item.courseID,cardID:t.item.cardID,cardCount:this.cardCount}),this.loading=!1}}}),Hs={key:0,class:`StudySession`},Us={key:2},Ws={key:3},Gs={class:`text-h4`},Ks={key:0},qs={key:4,ref:`shadowWrapper`,class:`card-transition-container`},Js={key:0};function _sfc_render$15(t,n,r,i,a,o){let c=E(`v-spacer`),l=E(`v-progress-circular`),u=E(`v-row`),d=E(`session-controller-debug`),p=E(`heat-map`),m=E(`card-viewer`),h=E(`StudySessionTimer`),g=E(`v-col`),_=E(`SkMouseTrap`);return t.sessionPrepared?(x(),R(`div`,Hs,[t.frameless?U(``,!0):(x(),H(u,{key:0,align:`center`},{default:s(()=>[f(c),t.loading?(x(),H(l,{key:0,color:`primary`,indeterminate:``,size:`32`,width:`4`})):U(``,!0)]),_:1})),t.debugMode?(x(),H(d,{key:1,"session-controller":t.sessionController},null,8,[`session-controller`])):U(``,!0),t.frameless?U(``,!0):(x(),R(`br`,Us)),t.sessionFinished?(x(),R(`div`,Ws,[b(t.$slots,`session-finished`,{sessionRecord:t.sessionRecord,report:t.sessionController?.report},()=>[I(`div`,Gs,[n[1]||(n[1]=I(`p`,null,`Study session finished! Great job!`,-1)),t.sessionController?(x(),R(`p`,Ks,N(t.sessionController.report),1)):U(``,!0),f(p,{"activity-records-getter":()=>t.user.getActivityRecords()},null,8,[`activity-records-getter`])])],!0)])):(x(),R(`div`,qs,[f(De,{name:t.transitionName},{default:s(()=>[t.view?(x(),H(m,{ref:`cardViewer`,key:t.cardID,class:w(t.loading?`muted`:``),view:t.view,data:t.data,card_id:t.cardID,course_id:t.courseID,"session-order":t.cardCount,user_elo:t.user_elo(t.courseID),card_elo:t.card_elo,frameless:t.frameless,onEmitResponse:n[0]||(n[0]=n=>t.processResponse(n)),onRequestReplan:t.handleReplanRequest,onReadyToAdvance:t.handleReadyToAdvance},null,8,[`class`,`view`,`data`,`card_id`,`course_id`,`session-order`,`user_elo`,`card_elo`,`frameless`,`onRequestReplan`,`onReadyToAdvance`])):U(``,!0)]),_:1},8,[`name`])],512)),t.frameless?U(``,!0):(x(),R(ge,{key:5},[n[2]||(n[2]=I(`br`,null,null,-1)),t.sessionController?(x(),R(`div`,Js,[(x(!0),R(ge,null,P(t.sessionController.failedCount,t=>(x(),R(`span`,{key:t,class:`text-h5`},`•`))),128))])):U(``,!0)],64)),t.hideFooter?U(``,!0):(x(),H(u,{key:6,align:`center`,class:`footer-controls pa-5`},{default:s(()=>[f(g,{cols:`auto`,class:`d-flex flex-grow-0 mr-auto`},{default:s(()=>[f(h,{"time-remaining":t.timeRemaining,"session-time-limit":t.sessionTimeLimit,onAddTime:t.incrementSessionClock},null,8,[`time-remaining`,`session-time-limit`,`onAddTime`])]),_:1}),f(c),f(g,{cols:`auto`,class:`footer-right`},{default:s(()=>[f(_)]),_:1})]),_:1}))])):U(``,!0)}$e(_sfc_render$15,`_sfc_render`);var Ys=q(Vs,[[`render`,_sfc_render$15],[`__scopeId`,`data-v-bc445530`]]),Xs=j({name:`MultipleChoiceOption`,components:{MarkdownRenderer:je(()=>lo(()=>import(`./MarkdownRenderer-DoVbFpA6-CQGwEJFh.js`).then(t=>t.n),__vite__mapDeps([4,1,2,5,6])))},props:{content:{type:String,required:!0},selected:{type:Boolean,required:!0},number:{type:Number,required:!0},setSelection:{type:Function,required:!0},submit:{type:Function,required:!0},markedWrong:{type:Boolean,required:!0}},computed:{className(){let t;switch(this.number){case 0:t=`bg-red`;break;case 1:t=`bg-purple`;break;case 2:t=`bg-indigo`;break;case 3:t=`bg-light-blue`;break;case 4:t=`bg-teal`;break;case 5:t=`bg-deep-orange`;break;default:t=`bg-grey`;break}if(this.selected&&!this.markedWrong)return`choice selected ${t} lighten-3 elevation-8`;if(!this.selected&&!this.markedWrong)return`choice not-selected ${t} lighten-4 elevation-1`;if(this.selected&&this.markedWrong)return`choice selected grey lighten-2 elevation-8`;if(!this.selected&&this.markedWrong)return`choice not-selected grey lighten-2 elevation-0`;throw Error(`'selected' and 'markedWrong' props in MultipleChoiceOption are in an impossible configuration.`)}},methods:{select(){this.setSelection(this.number)},submitThisOption(){this.markedWrong||(this.select(),this.submit())}}});function _sfc_render$14(t,n,r,i,a,o){let c=E(`markdown-renderer`),l=E(`v-card`);return x(),H(l,{class:w(`${t.className}`),onMouseover:t.select,onClick:t.submitThisOption},{default:s(()=>[f(c,{md:t.content},null,8,[`md`])]),_:1},8,[`class`,`onMouseover`,`onClick`])}$e(_sfc_render$14,`_sfc_render`);var Zs=q(Xs,[[`render`,_sfc_render$14],[`__scopeId`,`data-v-96de7172`]]),Qs=j({name:`RadioMultipleChoice`,components:{MultipleChoiceOption:Zs},extends:Qe,props:{choiceList:{type:Array,required:!0}},data(){return{currentSelection:-1,incorrectSelections:[],containerRef:null,_registeredHotkeys:[]}},watch:{choiceList:{immediate:!0,handler(t){t?.length&&this.bindKeys()}}},mounted(){this.containerRef&&this.containerRef.focus()},unmounted(){this.unbindKeys()},methods:{forwardSelection(){if(!this.choiceIsWrong(this.choiceList[this.currentSelection])&&this.currentSelection!==-1){let t={choiceList:this.choiceList,selection:this.currentSelection};this.submitAnswer(t).isCorrect||this.incorrectSelections.push(this.currentSelection)}},setSelection(t){t<this.choiceList.length&&(this.currentSelection=t)},incrementSelection(){this.currentSelection===-1?this.currentSelection=Math.ceil(this.choiceList.length/2):this.currentSelection=Math.min(this.choiceList.length-1,this.currentSelection+1)},decrementSelection(){this.currentSelection===-1?this.currentSelection=Math.floor(this.choiceList.length/2-1):this.currentSelection=Math.max(0,this.currentSelection-1)},choiceIsWrong(t){let n=!1;return this.incorrectSelections.forEach(r=>{this.choiceList[r]===t&&(n=!0)}),n},bindKeys(){let t=[{hotkey:`left`,callback:this.decrementSelection,command:`Move selection left`},{hotkey:`right`,callback:this.incrementSelection,command:`Move selection right`},{hotkey:`enter`,callback:this.forwardSelection,command:`Submit selection`},...Array.from({length:this.choiceList.length},(t,n)=>({hotkey:(n+1).toString(),callback:()=>this.setSelection(n),command:`Select ${(t=>{switch(t){case 0:return`first`;case 1:return`second`;case 2:return`third`;case 3:return`fourth`;case 4:return`fifth`;case 5:return`sixth`;default:return`${t+1}th`}})(n)} option`}))];et.addBinding(t),this._registeredHotkeys=t.map(t=>t.hotkey)},unbindKeys(){this._registeredHotkeys&&this._registeredHotkeys.forEach(t=>{et.removeBinding(t)})}}}),$s={ref:`containerRef`,class:`multipleChoice`};function _sfc_render$13(t,n,r,i,a,o){let s=E(`MultipleChoiceOption`);return x(),R(`div`,$s,[(x(!0),R(ge,null,P(t.choiceList,(n,r)=>(x(),H(s,{key:r,content:n,selected:t.choiceList.indexOf(n)===t.currentSelection,number:t.choiceList.indexOf(n),"set-selection":t.setSelection,submit:t.forwardSelection,"marked-wrong":t.choiceIsWrong(n)},null,8,[`content`,`selected`,`number`,`set-selection`,`submit`,`marked-wrong`]))),128))],512)}$e(_sfc_render$13,`_sfc_render`);var ec=q(Qs,[[`render`,_sfc_render$13]]),tc=j({name:`TrueFalse`,components:{RadioMultipleChoice:ec},props:{MouseTrap:{type:Object,required:!0},submit:{type:Function,required:!0}}}),nc={"data-viewable":`TrueFalse`};function _sfc_render$12(t,n,r,i,a,o){let s=E(`RadioMultipleChoice`);return x(),R(`div`,nc,[f(s,{"choice-list":[`True`,`False`],MouseTrap:t.MouseTrap,submit:t.submit},null,8,[`MouseTrap`,`submit`])])}$e(_sfc_render$12,`_sfc_render`);var rc=q(tc,[[`render`,_sfc_render$12]]),ic=j({name:`UserInputNumber`,ref:{},extends:Qe,methods:{mounted(){this.$refs.input.focus()},isNumeric(t){return!isNaN(Number.parseFloat(t))},makeNumeric(t){if(typeof t==`string`)return Number.parseFloat(t);throw Error(`Expected a string, got `+typeof t)}}});function _sfc_render$11(t,n,r,i,a,o){let c=E(`v-text-field`),l=E(`v-container`);return x(),H(l,{class:`pa-0`},{default:s(()=>[f(c,{ref:`input`,modelValue:t.answer,"onUpdate:modelValue":n[0]||(n[0]=n=>t.answer=n),"prepend-icon":`edit`,autofocus:t.autofocus,"row-height":`24`,"toggle-keys":`[13,32]`,class:`text-h5`,rules:[t.isNumeric],onKeyup:n[1]||(n[1]=Se(n=>t.submitAnswer(t.makeNumeric(t.answer)),[`enter`]))},null,8,[`modelValue`,`autofocus`,`rules`])]),_:1})}$e(_sfc_render$11,`_sfc_render`);var ac=q(ic,[[`render`,_sfc_render$11],[`__scopeId`,`data-v-a56dcd1c`]]),oc=j({name:`CardLoader`,components:{CardViewer:Xo},props:{sessionOrder:{type:Number,required:!1,default:0},qualified_id:{type:Object,required:!0},viewLookup:{type:Function,required:!0}},data(){return{loading:!0,view:null,data:[],courseID:``,cardID:``}},created(){this.loadCard()},watch:{qualified_id:{immediate:!0,handler(){this.loadCard()}}},methods:{processResponse(t){He(`
|
|
26
26
|
Card was displayed at ${t.timeStamp}
|
|
27
27
|
User spent ${t.timeSpent} milliseconds with the card.
|
|
28
28
|
`),this.$emit(`emitResponse`,t)},async loadCard(){let t=this.qualified_id;console.log(`Card Loader displaying: ${t.courseID}::${t.cardID}`),this.loading=!0;let n=t.courseID,r=t.cardID,i=rt().getCourseDB(n);try{let t=await i.getCourseDoc(r),a=this.viewLookup(t.id_view),o=t.id_displayable_data.map(t=>i.getCourseDoc(t,{attachments:!0,binary:!0})),s=[];for(let t of o){let n=await t;s.unshift(We(n))}this.data=s,this.view=de(a),this.cardID=r,this.courseID=n}catch(t){throw Error(`[CardLoader] Error loading card: ${JSON.stringify(t)}, ${t}`)}finally{this.loading=!1,this.$emit(`card-loaded`)}}}});function _sfc_render$10(t,n,r,i,a,o){let s=E(`card-viewer`);return t.loading?U(``,!0):(x(),H(s,{key:0,class:w([`ma-2`,t.loading?`muted`:``]),view:t.view,data:t.data,card_id:t.cardID,course_id:t.courseID,"session-order":t.sessionOrder,onEmitResponse:n[0]||(n[0]=n=>t.processResponse(n))},null,8,[`class`,`view`,`data`,`card_id`,`course_id`,`session-order`]))}$e(_sfc_render$10,`_sfc_render`);var sc=q(oc,[[`render`,_sfc_render$10],[`__scopeId`,`data-v-93f758b5`]]);async function getCurrentUser(){let t=useAuthStore();if(!t.onLoadComplete){let n=200;for(;!t.onLoadComplete&&n>0;)await new Promise(t=>setTimeout(t,50)),n--;if(!t.onLoadComplete)throw Error(`User initialization timed out`)}return rt().getUserDB()}var useAuthStore=()=>{let t=Xe();return t&&qe(t),Ke(`auth`,{state:()=>({_user:void 0,loginAndRegistration:{init:!1,loggedIn:!1,regDialogOpen:!1,loginDialogOpen:!1},onLoadComplete:!1}),actions:{async init(){try{this._user=rt().getUserDB(),this.loginAndRegistration.loggedIn=this._user?this._user.isLoggedIn():!1,this.onLoadComplete=!0,this.loginAndRegistration.init=!0}catch(t){console.error(`Failed to initialize auth store:`,t),this.loginAndRegistration.loggedIn=!1,this.onLoadComplete=!0,this.loginAndRegistration.init=!0}},setLoginDialog(t){this.loginAndRegistration.loginDialogOpen=t},setRegDialog(t){this.loginAndRegistration.regDialogOpen=t},async resetUserData(){try{if(!this._user)throw Error(`No user available for data reset`);let t=await this._user.resetUserData();if(t.status!==`ok`)throw Error(t.error||`Reset failed`);return console.log(`User data reset successfully`),t}catch(t){throw console.error(`Failed to reset user data:`,t),t}}},getters:{currentUser:async()=>getCurrentUser(),isLoggedIn:t=>t.loginAndRegistration.loggedIn,isInitialized:t=>t.loginAndRegistration.init,status:t=>({loggedIn:t.loginAndRegistration.loggedIn,init:t.loginAndRegistration.init,user:t._user})}})()},useConfigStore=()=>{let t=Xe();return t&&qe(t),Ke(`config`,{state:()=>({config:{darkMode:!1,likesConfetti:!1,sessionTimeLimit:5}}),actions:{updateConfig(t){this.config=t},async updateDarkMode(t){this.config.darkMode=t;let n=await getCurrentUser();n&&await n.setConfig({darkMode:t})},async updateLikesConfetti(t){this.config.likesConfetti=t;let n=await getCurrentUser();n&&await n.setConfig({likesConfetti:t})},async updateSessionTimeLimit(t){this.config.sessionTimeLimit=t;let n=await getCurrentUser();n&&await n.setConfig({sessionTimeLimit:t})},async hydrate(){try{let t=await getCurrentUser();if(t){let n=await t.getConfig();console.log(`user config: ${JSON.stringify(n)}`),this.updateConfig(n)}else console.log(`No user logged in, using default config`)}catch(t){console.warn(`Failed to hydrate config store, using defaults:`,t)}},async init(){await this.hydrate()},resetDefaults(){this.config={darkMode:!1,likesConfetti:!1,sessionTimeLimit:5}}}})()};function useAuthUI(){let t=Ce(!0),n=Ce(!1),r=Ce(!1),i=z(()=>r.value?{showLoginRegistration:!1,showLogout:!1,showResetData:!0,logoutLabel:``,resetLabel:`Reset User Data`}:{showLoginRegistration:!0,showLogout:!0,showResetData:!1,logoutLabel:`Log out`,resetLabel:``}),detectSyncStrategy=async()=>{try{t.value=!0,r.value=!(await getCurrentUser()).syncStrategy?.canCreateAccount?.(),n.value=!0}catch(t){console.error(`Failed to detect sync strategy:`,t),r.value=!1,n.value=!0}finally{t.value=!1}};return{config:i,isLoading:t,syncStrategyDetected:n,isLocalOnlyMode:r,detectSyncStrategy}}var cc=q(j({__name:`UserChip`,props:{showLoginButton:{type:Boolean},redirectToPath:{}},setup(t){let n=useRouter(),r=useAuthStore(),i=useConfigStore(),a=useAuthUI(),o=Ce(``),c=Ce([]),l=Ce(!1),u=Ce(``),d=z(()=>u.value===`reset`),resetDialogState=()=>{u.value=``,l.value=!1},p=z(()=>c.value.length>0),m=z(()=>a.config.value||{showLoginRegistration:!0,showLogout:!0,showResetData:!1,logoutLabel:`Log out`,resetLabel:``});Ie(async()=>{o.value=(await getCurrentUser()).getUsername(),await a.detectSyncStrategy()});let gotoSettings=async()=>{n.push(`/u/${(await getCurrentUser()).getUsername()}`)},gotoStats=async()=>{n.push(`/u/${(await getCurrentUser()).getUsername()}/stats`)},dismiss=t=>{let n=c.value.indexOf(t);c.value.splice(n,1)},logout=async()=>{(await r._user.logout()).ok&&(r.loginAndRegistration={init:!0,loggedIn:!1,regDialogOpen:!1,loginDialogOpen:!1},i.resetDefaults(),n.push(`/home`))},executeReset=async()=>{try{await r.resetUserData(),i.resetDefaults(),resetDialogState(),n.push(`/home`)}catch(t){console.error(`Failed to reset user data:`,t)}};return(t,n)=>{let r=E(`v-icon`),i=E(`v-avatar`),a=E(`v-chip`),h=E(`v-list-item-title`),g=E(`v-list-item`),_=E(`v-divider`),b=E(`v-list`),S=E(`v-menu`),C=E(`v-badge`),w=E(`v-card-title`),T=E(`v-text-field`),D=E(`v-card-text`),k=E(`v-spacer`),ee=E(`v-btn`),te=E(`v-card-actions`),ne=E(`v-card`),re=E(`v-dialog`);return x(),R(ge,null,[f(C,{content:c.value.length,"model-value":p.value,color:`accent`,location:`end top`},{default:s(()=>[f(S,{location:`bottom end`,transition:`scale-transition`},{activator:s(({props:t})=>[f(a,O(t,{class:`ma-2`}),{default:s(()=>[f(i,{start:``,class:`bg-primary`},{default:s(()=>[f(r,null,{default:s(()=>n[4]||(n[4]=[A(`mdi-school`)])),_:1})]),_:1}),A(` `+N(o.value),1)]),_:2},1040)]),default:s(()=>[f(b,null,{default:s(()=>[(x(!0),R(ge,null,P(c.value,t=>(x(),H(g,{key:t,onClick:n=>dismiss(t)},{default:s(()=>[f(h,null,{default:s(()=>[A(N(t),1)]),_:2},1024)]),_:2},1032,[`onClick`]))),128)),c.value.length?(x(),H(_,{key:0})):U(``,!0),f(g,{onClick:gotoStats},{prepend:s(()=>[f(r,null,{default:s(()=>n[5]||(n[5]=[A(`mdi-trending-up`)])),_:1})]),default:s(()=>[f(h,null,{default:s(()=>n[6]||(n[6]=[A(`Stats`)])),_:1})]),_:1}),f(g,{onClick:gotoSettings},{prepend:s(()=>[f(r,null,{default:s(()=>n[7]||(n[7]=[A(`mdi-cog`)])),_:1})]),default:s(()=>[f(h,null,{default:s(()=>n[8]||(n[8]=[A(`Settings`)])),_:1})]),_:1}),m.value.showLogout?(x(),H(g,{key:1,onClick:logout},{prepend:s(()=>[f(r,null,{default:s(()=>n[9]||(n[9]=[A(`mdi-logout`)])),_:1})]),default:s(()=>[f(h,null,{default:s(()=>[A(N(m.value.logoutLabel),1)]),_:1})]),_:1})):U(``,!0),m.value.showResetData?(x(),H(g,{key:2,onClick:n[0]||(n[0]=t=>l.value=!0)},{prepend:s(()=>[f(r,null,{default:s(()=>n[10]||(n[10]=[A(`mdi-delete-sweep`)])),_:1})]),default:s(()=>[f(h,null,{default:s(()=>[A(N(m.value.resetLabel),1)]),_:1})]),_:1})):U(``,!0)]),_:1})]),_:1})]),_:1},8,[`content`,`model-value`]),f(re,{modelValue:l.value,"onUpdate:modelValue":n[3]||(n[3]=t=>l.value=t),"max-width":`500px`,persistent:``},{default:s(()=>[f(ne,null,{default:s(()=>[f(w,{class:`text-h5 d-flex align-center`},{default:s(()=>[f(r,{color:`warning`,class:`mr-3`},{default:s(()=>n[11]||(n[11]=[A(`mdi-alert-circle`)])),_:1}),n[12]||(n[12]=A(` Reset All User Data `))]),_:1}),f(D,null,{default:s(()=>[n[13]||(n[13]=I(`p`,{class:`mb-4`},`This will permanently delete:`,-1)),n[14]||(n[14]=I(`ul`,{class:`mb-4`},[I(`li`,null,`All course progress and history`),I(`li`,null,`Scheduled card reviews`),I(`li`,null,`Course registrations`),I(`li`,null,`User preferences`)],-1)),n[15]||(n[15]=I(`p`,{class:`mb-4 text-error font-weight-bold`},`This cannot be undone.`,-1)),f(T,{modelValue:u.value,"onUpdate:modelValue":n[1]||(n[1]=t=>u.value=t),label:`Type "reset" to confirm`,outlined:``,dense:``,onKeyup:n[2]||(n[2]=Se(t=>d.value&&executeReset(),[`enter`]))},null,8,[`modelValue`])]),_:1}),f(te,null,{default:s(()=>[f(k),f(ee,{text:``,onClick:resetDialogState},{default:s(()=>n[16]||(n[16]=[A(`Cancel`)])),_:1}),f(ee,{color:`error`,disabled:!d.value,onClick:executeReset},{default:s(()=>n[17]||(n[17]=[A(` Reset All Data `)])),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`modelValue`])],64)}}}),[[`__scopeId`,`data-v-9a38a213`]]),lc={class:`d-flex flex-column align-start`},uc={class:`mb-2`},dc=q(j({__name:`UserLogin`,props:{redirectTo:{default:`/study`}},emits:[`toggle`,`loginSuccess`,`forgotPassword`],setup(t,{emit:n}){let r=t,i=n,a=useRouter(),o=useRoute(),c=useAuthStore(),l=useConfigStore(),u=Ce(``),d=Ce(``),p=Ce(!1),m=Ce(!1),h=Ce(!1),g=Ce(7e3),_=Ce(void 0),S=z(()=>o.name===`login`),C=z(()=>({color:h.value?`error`:`success`,text:h.value?`Try again`:`Log In`})),initBadLogin=()=>{h.value=!0,wo({text:`Username or password was incorrect.`,status:Be.error,timeout:g.value}),setTimeout(()=>{h.value=!1},g.value)},login=async()=>{m.value=!0,He(`Starting login attempt`),He(`Login attempt for username: ${u.value}`);try{He(`Attempting to get User instance`),_.value=await getCurrentUser(),He(`Got User instance, attempting login`),await _.value.login(u.value,d.value),He(`Login successful`),He(`Initializing user config`),l.init(),He(`User config initialized`),He(`Setting authentication state`),c.loginAndRegistration.loggedIn=!0,He(`Authentication state set, redirecting to: ${r.redirectTo}`),i(`loginSuccess`,r.redirectTo),a.push(r.redirectTo),He(`Login and redirect complete`)}catch(t){He(`Login attempt failed`),He(`Login error details: ${JSON.stringify(t)}`),console.log(`login error: ${JSON.stringify(t)}`),He(`Initiating bad login feedback`),initBadLogin()}He(`Resetting awaiting response state`),m.value=!1},toggle=()=>{He(`Toggling registration / login forms.`),i(`toggle`)},handleForgotPassword=()=>{He(`Forgot password clicked`),S.value?a.push(`/request-reset`):i(`forgotPassword`)};return(t,n)=>{let r=E(`v-card-title`),i=E(`v-text-field`),a=E(`v-btn`),o=E(`v-snackbar`),c=E(`v-icon`),l=E(`router-link`),_=E(`v-form`),w=E(`v-card-text`),T=E(`v-card`);return x(),H(T,null,{default:s(()=>[S.value?U(``,!0):(x(),H(r,{key:0,class:`text-h5 bg-grey-lighten-2`},{default:s(()=>n[5]||(n[5]=[A(`Log In`)])),_:1})),f(w,null,{default:s(()=>[f(_,{onsubmit:`return false;`,onSubmit:Oe(login,[`prevent`])},{default:s(()=>[f(i,{id:``,modelValue:u.value,"onUpdate:modelValue":n[0]||(n[0]=t=>u.value=t),autofocus:``,name:`username`,label:`Username`,"prepend-icon":`mdi-account-circle`},null,8,[`modelValue`]),f(i,{modelValue:d.value,"onUpdate:modelValue":n[1]||(n[1]=t=>d.value=t),"prepend-icon":`mdi-lock`,name:`password`,hover:`Show password input`,label:`Enter your password`,hint:``,min:`0`,"append-icon":p.value?`mdi-eye-off`:`mdi-eye`,type:p.value?`text`:`password`,"onClick:append":n[2]||(n[2]=()=>p.value=!p.value)},null,8,[`modelValue`,`append-icon`,`type`]),f(o,{modelValue:h.value,"onUpdate:modelValue":n[4]||(n[4]=t=>h.value=t),location:`bottom right`,timeout:g.value},{default:s(()=>[n[7]||(n[7]=A(` Username or password was incorrect. `)),f(a,{color:`pink`,variant:`text`,onClick:n[3]||(n[3]=t=>h.value=!1)},{default:s(()=>n[6]||(n[6]=[A(`Close`)])),_:1})]),_:1},8,[`modelValue`,`timeout`]),I(`div`,lc,[I(`div`,uc,[f(a,{class:`mr-2`,type:`submit`,loading:m.value,color:C.value.color},{default:s(()=>[f(c,{start:``},{default:s(()=>n[8]||(n[8]=[A(`mdi-lock-open`)])),_:1}),n[9]||(n[9]=A(` Log In `))]),_:1},8,[`loading`,`color`]),S.value?(x(),H(l,{key:0,to:`signup`},{default:s(()=>[f(a,{variant:`text`},{default:s(()=>n[10]||(n[10]=[A(`Create New Account`)])),_:1})]),_:1})):(x(),H(a,{key:1,variant:`text`,onClick:toggle},{default:s(()=>n[11]||(n[11]=[A(`Create New Account`)])),_:1}))]),b(t.$slots,`forgot-password`,{},()=>[I(`a`,{href:`#`,class:`text-caption text-decoration-none`,onClick:Oe(handleForgotPassword,[`prevent`])},` Forgot password? `)],!0)])]),_:3})]),_:3})]),_:3})}}}),[[`__scopeId`,`data-v-563b0048`]]);function validatePassword(t){return t?t.length<6?`Password must be at least 6 characters`:new Set(t).size<2?`Password must contain at least 2 different characters`:``:``}var fc=j({name:`UserRegistration`,props:{onSignupSuccess:{type:Function,required:!1}},emits:[`toggle`,`signup-success`],data(){return{email:``,username:``,password:``,retypedPassword:``,passwordVisible:!1,emailError:!1,emailHint:``,usernameValidationInProgress:!1,usernameError:!1,usernameHint:``,awaitingResponse:!1,badLoginAttempt:!1,userSecret:``,secret:`goons`,user:null,roles:[`Student`,`Teacher`,`Author`],student:!0,teacher:!1,author:!1,authStore:useAuthStore()}},computed:{registrationRoute(){return typeof this.$route.name==`string`&&this.$route.name.toLowerCase()===`signup`},buttonStatus(){return{color:this.badLoginAttempt?`error`:`success`,text:this.badLoginAttempt?`Try again`:`Log In`}},passwordError(){return validatePassword(this.password)},passwordRetypeError(){return console.log(`[RTE]`),this.password===this.retypedPassword?``:`Passwords must match.`}},async created(){this.user=await getCurrentUser()},methods:{toggle(){He(`Toggling registration / login forms.`),this.$emit(`toggle`)},validateEmail(){this.emailError=!1,this.email&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(this.email)?(this.emailError=!0,this.emailHint=`Please enter a valid email address`):this.emailHint=``},validateUsername(){this.usernameError=!1},async createUser(){if(this.awaitingResponse=!0,this.passwordError){wo({text:this.passwordError,status:Be.error}),this.awaitingResponse=!1;return}if(He(`
|
|
@@ -35,4 +35,4 @@ Teacher: ${this.teacher}
|
|
|
35
35
|
Author: ${this.author}
|
|
36
36
|
`),this.password===this.retypedPassword){if(!this.user){console.error(`ERROR: No user object available`);return}this.user.createAccount(this.username,this.password).then(async t=>{if(t.status===Be.ok){if(this.authStore.loginAndRegistration.loggedIn=!0,this.authStore.loginAndRegistration.init=!1,this.authStore.loginAndRegistration.init=!0,this.email)try{await(await getCurrentUser()).setConfig({email:this.email});let t=typeof window<`u`?window.location.origin:void 0,n=await sendVerificationEmail(this.username,this.email,t);n.ok?wo({text:`Account created! Please check your email to verify your account.`,status:Be.ok}):He(`Warning: Failed to send verification email: ${n.error}`)}catch(t){console.error(`Email save/send error:`,t),He(`Warning: Failed to save email or send verification: ${t}`)}this.onSignupSuccess&&(console.log(`[UserRegistration] Calling onSignupSuccess callback`),this.onSignupSuccess({username:this.username})),this.$emit(`signup-success`,{username:this.username})}else t.error===`This username is taken!`?(this.usernameError=!0,this.usernameHint=`Try a different name.`,this.$refs.userNameTextField.focus(),wo({text:`The name ${this.username} is taken!`,status:t.status})):wo({text:t.error,status:t.status})}).catch(t=>{console.error(`[UserRegistration] .catch() called with error:`,t),t&&wo({text:t?.message||t?.error||t?.toString()||`Account creation failed`,status:Be.error})}),this.awaitingResponse=!1}else wo({text:`Passwords do not match.`,status:Be.error}),this.awaitingResponse=!1}}});function _sfc_render$9(t,n,r,i,a,o){let c=E(`v-card-title`),l=E(`v-text-field`),u=E(`v-btn`),d=E(`v-snackbar`),p=E(`v-icon`),m=E(`router-link`),h=E(`v-form`),g=E(`v-card-text`),_=E(`v-card`);return x(),H(_,null,{default:s(()=>[f(c,{class:`text-h5 bg-grey-lighten-2`},{default:s(()=>n[7]||(n[7]=[A(` Create an Account `)])),_:1}),f(g,null,{default:s(()=>[f(h,{onSubmit:Oe(t.createUser,[`prevent`])},{default:s(()=>[f(l,{modelValue:t.email,"onUpdate:modelValue":n[0]||(n[0]=n=>t.email=n),name:`email`,label:`Email address`,type:`email`,"prepend-icon":`mdi-email`,error:t.emailError,hint:t.emailHint,onBlur:t.validateEmail},null,8,[`modelValue`,`error`,`hint`,`onBlur`]),f(l,{id:``,ref:`userNameTextField`,modelValue:t.username,"onUpdate:modelValue":n[1]||(n[1]=n=>t.username=n),name:`username`,label:`Choose a Username`,"prepend-icon":`mdi-account-circle`,error:t.usernameError,hint:t.usernameHint,onBlur:t.validateUsername},null,8,[`modelValue`,`error`,`hint`,`onBlur`]),f(l,{modelValue:t.password,"onUpdate:modelValue":n[2]||(n[2]=n=>t.password=n),"prepend-icon":`mdi-lock`,name:`password`,hover:`Show password`,label:`Create a password`,hint:t.passwordError,error:!!t.passwordError,min:`4`,"append-icon":t.passwordVisible?`mdi-eye-off`:`mdi-eye`,type:t.passwordVisible?`text`:`password`,"onClick:append":n[3]||(n[3]=()=>t.passwordVisible=!t.passwordVisible)},null,8,[`modelValue`,`hint`,`error`,`append-icon`,`type`]),f(l,{modelValue:t.retypedPassword,"onUpdate:modelValue":n[4]||(n[4]=n=>t.retypedPassword=n),"prepend-icon":`mdi-lock`,name:`retypedPassword`,hover:`Show password`,label:`Retype your password`,disabled:t.password===``||!!t.passwordError,hint:t.passwordRetypeError,min:`4`,type:t.passwordVisible?`text`:`password`},null,8,[`modelValue`,`disabled`,`hint`,`type`]),f(d,{modelValue:t.badLoginAttempt,"onUpdate:modelValue":n[6]||(n[6]=n=>t.badLoginAttempt=n),location:`bottom right`,timeout:5e3},{default:s(()=>[n[9]||(n[9]=A(` Username or password was incorrect. `)),f(u,{color:`pink`,variant:`text`,onClick:n[5]||(n[5]=n=>t.badLoginAttempt=!1)},{default:s(()=>n[8]||(n[8]=[A(` Close `)])),_:1})]),_:1},8,[`modelValue`]),f(u,{class:`mr-2 my-2`,type:`submit`,loading:t.awaitingResponse,color:t.buttonStatus.color,disabled:!!t.passwordError||t.password!==t.retypedPassword},{default:s(()=>[f(p,{start:``},{default:s(()=>n[10]||(n[10]=[A(`mdi-lock-open`)])),_:1}),n[11]||(n[11]=A(` Create Account `))]),_:1},8,[`loading`,`color`,`disabled`]),t.registrationRoute?(x(),H(m,{key:0,to:`login`},{default:s(()=>[f(u,{variant:`text`},{default:s(()=>n[12]||(n[12]=[A(`Log In`)])),_:1})]),_:1})):(x(),H(u,{key:1,variant:`text`,onClick:t.toggle},{default:s(()=>n[13]||(n[13]=[A(` Log In `)])),_:1},8,[`onClick`]))]),_:1},8,[`onSubmit`])]),_:1})]),_:1})}$e(_sfc_render$9,`_sfc_render`);var pc=q(fc,[[`render`,_sfc_render$9]]),mc=j({name:`RequestPasswordReset`,emits:[`cancel`,`success`],data(){return{email:``,emailError:!1,emailHint:``,isSubmitting:!1,requestSent:!1}},methods:{validateEmail(){this.emailError=!1,this.emailHint=``,this.email&&(/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(this.email)||(this.emailError=!0,this.emailHint=`Please enter a valid email address`))},async handleSubmit(){if(this.validateEmail(),!(this.emailError||!this.email)){this.isSubmitting=!0;try{let t=typeof window<`u`?window.location.origin:void 0,n=await requestPasswordReset(this.email,t);n.ok?(this.requestSent=!0,this.$emit(`success`,this.email)):wo({text:n.error||`Failed to send reset email`,status:Be.error})}catch{wo({text:`An unexpected error occurred`,status:Be.error})}finally{this.isSubmitting=!1}}}}}),hc={key:1,class:`text-center`};function _sfc_render$8(t,n,r,i,a,o){let c=E(`v-card-title`),l=E(`v-text-field`),u=E(`v-icon`),d=E(`v-btn`),p=E(`v-form`),m=E(`v-card-text`),h=E(`v-spacer`),g=E(`v-card-actions`),_=E(`v-card`);return x(),H(_,null,{default:s(()=>[f(c,{class:`text-h5 bg-grey-lighten-2`},{default:s(()=>n[2]||(n[2]=[A(` Reset Password `)])),_:1}),f(m,{class:`pa-6`},{default:s(()=>[t.requestSent?(x(),R(`div`,hc,[f(u,{color:`success`,size:`64`,class:`mb-4`},{default:s(()=>n[6]||(n[6]=[A(`mdi-email-check`)])),_:1}),n[9]||(n[9]=I(`h3`,{class:`mb-2`},`Check Your Email`,-1)),I(`p`,null,[n[7]||(n[7]=A(` If an account exists with `)),I(`strong`,null,N(t.email),1),n[8]||(n[8]=A(`, you will receive a password reset link shortly. `))]),n[10]||(n[10]=I(`p`,{class:`text-caption mt-4`},`Didn't receive an email? Check your spam folder.`,-1))])):(x(),H(p,{key:0,onSubmit:Oe(t.handleSubmit,[`prevent`])},{default:s(()=>[n[5]||(n[5]=I(`p`,{class:`mb-4`},` Enter your email address and we'll send you a link to reset your password. `,-1)),f(l,{modelValue:t.email,"onUpdate:modelValue":n[0]||(n[0]=n=>t.email=n),name:`email`,label:`Email address`,type:`email`,"prepend-icon":`mdi-email`,error:t.emailError,hint:t.emailHint,disabled:t.isSubmitting,onBlur:t.validateEmail},null,8,[`modelValue`,`error`,`hint`,`disabled`,`onBlur`]),f(d,{type:`submit`,color:`primary`,class:`mt-4`,loading:t.isSubmitting,disabled:!t.email||t.emailError,block:``},{default:s(()=>[f(u,{start:``},{default:s(()=>n[3]||(n[3]=[A(`mdi-email-send`)])),_:1}),n[4]||(n[4]=A(` Send Reset Link `))]),_:1},8,[`loading`,`disabled`])]),_:1},8,[`onSubmit`]))]),_:1}),t.requestSent?U(``,!0):(x(),H(g,{key:0},{default:s(()=>[b(t.$slots,`back-action`,{},()=>[f(d,{variant:`text`,onClick:n[1]||(n[1]=n=>t.$emit(`cancel`))},{default:s(()=>n[11]||(n[11]=[A(` Cancel `)])),_:1})]),f(h)]),_:3}))]),_:3})}$e(_sfc_render$8,`_sfc_render`);var gc=q(mc,[[`render`,_sfc_render$8]]),_c={key:0},vc={key:`login-buttons`},yc={key:`user-chip`},bc=q(j({__name:`UserLoginAndRegistrationContainer`,props:{showLoginButton:{type:Boolean},redirectToPath:{},showRegistration:{type:Boolean},onSignupSuccess:{type:Function}},emits:[`signup-success`],setup(t,{emit:n}){let r=t,i=n,a=useRoute(),o=useAuthStore(),c=useAuthUI();Ie(async()=>{await c.detectSyncStrategy()});let l=z(()=>{if(!a.name||typeof a.name!=`string`)return!0;let t=a.name.toLowerCase();return!(t===`login`||t===`signup`)}),u=z(()=>o.onLoadComplete),d=z(()=>o._user?o._user.getUsername().startsWith(at):!o.loginAndRegistration.loggedIn),p=z(()=>({...c.config.value||{showLoginRegistration:!0,showLogout:!0,showResetData:!1,logoutLabel:`Log out`,resetLabel:``},...r.showRegistration!==void 0&&{showLoginRegistration:r.showRegistration}})),m=z({get:()=>o.loginAndRegistration.regDialogOpen,set:t=>{o.loginAndRegistration.regDialogOpen=t}}),h=z({get:()=>o.loginAndRegistration.loginDialogOpen,set:t=>{o.loginAndRegistration.loginDialogOpen=t}}),g=Ce(!1),toggle=()=>{if(m.value&&h.value)throw Error(`Registration / Login dialogs both activated.`);if(m.value===h.value)throw Error(`Registration / Login dialogs toggled while both were dormant.`);m.value=!m.value,h.value=!h.value},openResetDialog=()=>{h.value=!1,g.value=!0},closeResetDialog=()=>{g.value=!1},handleSignupSuccess=t=>{m.value=!1,r.onSignupSuccess&&r.onSignupSuccess(t),i(`signup-success`,t)};return(t,n)=>{let r=E(`v-btn`),i=E(`v-dialog`);return u.value&&l.value?(x(),R(`div`,_c,[f(De,{name:`component-fade`,mode:`out-in`},{default:s(()=>[d.value?(x(),R(`div`,vc,[p.value.showLoginRegistration?(x(),H(i,{key:0,modelValue:m.value,"onUpdate:modelValue":n[0]||(n[0]=t=>m.value=t),width:`500px`},{activator:s(({props:t})=>[f(r,O({class:`mr-2`,size:`small`,color:`success`},t),{default:s(()=>n[3]||(n[3]=[A(`Sign Up`)])),_:2},1040)]),default:s(()=>[f(pc,{onToggle:toggle,onSignupSuccess:handleSignupSuccess,"on-signup-success":handleSignupSuccess})]),_:1},8,[`modelValue`])):U(``,!0),f(i,{modelValue:h.value,"onUpdate:modelValue":n[1]||(n[1]=t=>h.value=t),width:`500px`},{activator:s(({props:t})=>[f(r,O({size:`small`,color:`success`},t),{default:s(()=>n[4]||(n[4]=[A(`Log In`)])),_:2},1040)]),default:s(()=>[f(dc,{onToggle:toggle,onForgotPassword:openResetDialog})]),_:1},8,[`modelValue`]),f(i,{modelValue:g.value,"onUpdate:modelValue":n[2]||(n[2]=t=>g.value=t),width:`500px`},{default:s(()=>[f(gc,{onCancel:closeResetDialog,onSuccess:closeResetDialog})]),_:1},8,[`modelValue`])])):(x(),R(`div`,yc,[f(cc)]))]),_:1})])):U(``,!0)}}}),[[`__scopeId`,`data-v-5a55bdf0`]]),xc=j({name:`VerifyEmail`,emits:[`verified`,`error`],props:{token:{type:String,default:null}},data(){return{isVerifying:!1,verificationStatus:null,errorMessage:``,username:``}},async mounted(){await this.performVerification()},methods:{async performVerification(){let t=this.token||this.getTokenFromURL();if(!t){this.verificationStatus=`error`,this.errorMessage=`No verification token provided`;return}this.isVerifying=!0;try{let n=await verifyEmail(t);n.ok?(this.verificationStatus=`success`,this.username=n.username||``,wo({text:`Email verified successfully!`,status:Be.ok})):(this.verificationStatus=`error`,this.errorMessage=n.error||`Verification failed`,wo({text:n.error||`Verification failed`,status:Be.error}))}catch{this.verificationStatus=`error`,this.errorMessage=`An unexpected error occurred`,wo({text:`An unexpected error occurred`,status:Be.error})}finally{this.isVerifying=!1}},getTokenFromURL(){return typeof window>`u`?null:new URLSearchParams(window.location.search).get(`token`)}}}),Sc={key:0,class:`text-center`},Cc={key:1,class:`text-center`},wc={key:0},Tc={key:2,class:`text-center`},Ec={key:3,class:`text-center`};function _sfc_render$7(t,n,r,i,a,o){let c=E(`v-card-title`),l=E(`v-progress-circular`),u=E(`v-icon`),d=E(`v-card-text`),p=E(`v-spacer`),m=E(`v-btn`),h=E(`v-card-actions`),g=E(`v-card`),_=E(`v-col`),S=E(`v-row`),C=E(`v-container`);return x(),H(C,{class:`fill-height`,fluid:``},{default:s(()=>[f(S,{align:`center`,justify:`center`},{default:s(()=>[f(_,{cols:`12`,sm:`8`,md:`6`},{default:s(()=>[f(g,null,{default:s(()=>[f(c,{class:`text-h5 bg-grey-lighten-2`},{default:s(()=>n[2]||(n[2]=[A(` Email Verification `)])),_:1}),f(d,{class:`pa-6`},{default:s(()=>[t.isVerifying?(x(),R(`div`,Sc,[f(l,{indeterminate:``,color:`primary`,size:`64`,class:`mb-4`}),n[3]||(n[3]=I(`p`,null,`Verifying your email...`,-1))])):t.verificationStatus===`success`?(x(),R(`div`,Cc,[f(u,{color:`success`,size:`64`,class:`mb-4`},{default:s(()=>n[4]||(n[4]=[A(`mdi-check-circle`)])),_:1}),n[5]||(n[5]=I(`h3`,{class:`mb-2`},`Email Verified!`,-1)),n[6]||(n[6]=I(`p`,null,`Your account has been successfully verified.`,-1)),t.username?(x(),R(`p`,wc,`Welcome, `+N(t.username)+`!`,1)):U(``,!0)])):t.verificationStatus===`error`?(x(),R(`div`,Tc,[f(u,{color:`error`,size:`64`,class:`mb-4`},{default:s(()=>n[7]||(n[7]=[A(`mdi-alert-circle`)])),_:1}),n[8]||(n[8]=I(`h3`,{class:`mb-2`},`Verification Failed`,-1)),I(`p`,null,N(t.errorMessage),1)])):(x(),R(`div`,Ec,[f(u,{color:`warning`,size:`64`,class:`mb-4`},{default:s(()=>n[9]||(n[9]=[A(`mdi-help-circle`)])),_:1}),n[10]||(n[10]=I(`h3`,{class:`mb-2`},`No Verification Token`,-1)),n[11]||(n[11]=I(`p`,null,`Please use the link from your verification email.`,-1))]))]),_:1}),f(h,null,{default:s(()=>[f(p),b(t.$slots,`actions`,{status:t.verificationStatus,username:t.username},()=>[t.verificationStatus===`success`?(x(),H(m,{key:0,color:`primary`,onClick:n[0]||(n[0]=n=>t.$emit(`verified`,t.username))},{default:s(()=>n[12]||(n[12]=[A(` Continue `)])),_:1})):t.verificationStatus===`error`?(x(),H(m,{key:1,variant:`text`,onClick:n[1]||(n[1]=n=>t.$emit(`error`,t.errorMessage))},{default:s(()=>n[13]||(n[13]=[A(` Close `)])),_:1})):U(``,!0)])]),_:3})]),_:3})]),_:3})]),_:3})]),_:3})}$e(_sfc_render$7,`_sfc_render`);var Dc=q(xc,[[`render`,_sfc_render$7]]),Oc=j({name:`ResetPassword`,emits:[`complete`,`error`],props:{token:{type:String,default:null}},data(){return{password:``,confirmPassword:``,passwordVisible:!1,confirmPasswordError:!1,confirmPasswordHint:``,isSubmitting:!1,isComplete:!1}},computed:{canSubmit(){return this.password.length>=4&&this.confirmPassword.length>=4&&this.password===this.confirmPassword&&!this.confirmPasswordError}},methods:{validateConfirmPassword(){this.confirmPasswordError=!1,this.confirmPasswordHint=``,this.confirmPassword&&this.password!==this.confirmPassword&&(this.confirmPasswordError=!0,this.confirmPasswordHint=`Passwords do not match`)},async handleSubmit(){if(this.validateConfirmPassword(),!this.canSubmit)return;let t=this.token||this.getTokenFromURL();if(!t){wo({text:`No reset token provided. Please use the link from your email.`,status:Be.error}),this.$emit(`error`,`No token`);return}this.isSubmitting=!0;try{let n=await resetPassword(t,this.password);n.ok?(this.isComplete=!0,wo({text:`Password reset successfully!`,status:Be.ok})):(wo({text:n.error||`Failed to reset password`,status:Be.error}),this.$emit(`error`,n.error))}catch{wo({text:`An unexpected error occurred`,status:Be.error}),this.$emit(`error`,`Unexpected error`)}finally{this.isSubmitting=!1}},getTokenFromURL(){return typeof window>`u`?null:new URLSearchParams(window.location.search).get(`token`)}}}),kc={key:1,class:`text-center`};function _sfc_render$6(t,n,r,i,a,o){let c=E(`v-card-title`),l=E(`v-text-field`),u=E(`v-icon`),d=E(`v-btn`),p=E(`v-form`),m=E(`v-card-text`),h=E(`v-spacer`),g=E(`v-card-actions`),_=E(`v-card`),S=E(`v-col`),C=E(`v-row`),w=E(`v-container`);return x(),H(w,{class:`fill-height`,fluid:``},{default:s(()=>[f(C,{align:`center`,justify:`center`},{default:s(()=>[f(S,{cols:`12`,sm:`8`,md:`6`},{default:s(()=>[f(_,null,{default:s(()=>[f(c,{class:`text-h5 bg-grey-lighten-2`},{default:s(()=>n[4]||(n[4]=[A(` Set New Password `)])),_:1}),f(m,{class:`pa-6`},{default:s(()=>[t.isComplete?(x(),R(`div`,kc,[f(u,{color:`success`,size:`64`,class:`mb-4`},{default:s(()=>n[8]||(n[8]=[A(`mdi-check-circle`)])),_:1}),n[9]||(n[9]=I(`h3`,{class:`mb-2`},`Password Reset Successful!`,-1)),n[10]||(n[10]=I(`p`,null,`Your password has been updated. You can now log in with your new password.`,-1))])):(x(),H(p,{key:0,onSubmit:Oe(t.handleSubmit,[`prevent`])},{default:s(()=>[n[7]||(n[7]=I(`p`,{class:`mb-4`},`Enter your new password below.`,-1)),f(l,{modelValue:t.password,"onUpdate:modelValue":n[0]||(n[0]=n=>t.password=n),"prepend-icon":`mdi-lock`,name:`password`,label:`New password`,min:`4`,"append-icon":t.passwordVisible?`mdi-eye-off`:`mdi-eye`,type:t.passwordVisible?`text`:`password`,disabled:t.isSubmitting,"onClick:append":n[1]||(n[1]=()=>t.passwordVisible=!t.passwordVisible)},null,8,[`modelValue`,`append-icon`,`type`,`disabled`]),f(l,{modelValue:t.confirmPassword,"onUpdate:modelValue":n[2]||(n[2]=n=>t.confirmPassword=n),"prepend-icon":`mdi-lock`,name:`confirmPassword`,label:`Confirm new password`,min:`4`,type:t.passwordVisible?`text`:`password`,error:t.confirmPasswordError,hint:t.confirmPasswordHint,disabled:t.isSubmitting,onBlur:t.validateConfirmPassword},null,8,[`modelValue`,`type`,`error`,`hint`,`disabled`,`onBlur`]),f(d,{type:`submit`,color:`primary`,class:`mt-4`,loading:t.isSubmitting,disabled:!t.canSubmit,block:``},{default:s(()=>[f(u,{start:``},{default:s(()=>n[5]||(n[5]=[A(`mdi-lock-reset`)])),_:1}),n[6]||(n[6]=A(` Reset Password `))]),_:1},8,[`loading`,`disabled`])]),_:1},8,[`onSubmit`]))]),_:1}),t.isComplete?(x(),H(g,{key:0},{default:s(()=>[f(h),b(t.$slots,`success-action`,{},()=>[f(d,{color:`primary`,onClick:n[3]||(n[3]=n=>t.$emit(`complete`))},{default:s(()=>n[11]||(n[11]=[A(` Continue to Login `)])),_:1})])]),_:3})):U(``,!0)]),_:3})]),_:3})]),_:3})]),_:3})}$e(_sfc_render$6,`_sfc_render`);var Ac=q(Oc,[[`render`,_sfc_render$6]]),jc=j({name:`SkTagsInput`,components:{VueTagsInput:oo},props:{courseID:{type:String,required:!0,default:``},cardID:{type:String,required:!1,default:``},hideSubmit:{type:Boolean,required:!1,default:!1}},data(){return{loading:!0,tag:``,tags:[],initialTags:[],availableCourseTags:[],separators:[`;`,`,`,` `],courseDB:null}},computed:{autoCompleteSuggestions(){return this.availableCourseTags.filter(t=>t.name.toLowerCase().indexOf(this.tag.toLowerCase())!==-1).map(t=>({text:t.name,data:{snippet:t.snippet}}))}},watch:{async cardID(){await this.getAppliedTags()},async courseID(){this.courseDB=rt().getCourseDB(this.courseID),await this.updateAvailableCourseTags()}},async created(){this.courseDB=rt().getCourseDB(this.courseID),await this.updateAvailableCourseTags(),await this.getAppliedTags()},methods:{tagsChanged(t){console.log(`[TagsInput] Tags changing: ${JSON.stringify(t)}`),this.tags=t},async getAppliedTags(){this.initialTags=[],this.tags=[];try{(await this.courseDB.getAppliedTags(this.cardID)).rows.forEach(t=>{console.log(`[TagsInput] The following tag is applied:
|
|
37
37
|
\t${JSON.stringify(t)}`),this.tags.push({text:t.value.name,style:``,classes:``})}),this.initialTags=this.tags.map(t=>t.text)}catch(t){console.error(`Error in init-getAppliedTags: ${JSON.stringify(t)}, ${t}`)}finally{this.loading=!1}},async updateAvailableCourseTags(){try{this.availableCourseTags=(await this.courseDB.getCourseTagStubs()).rows.map(t=>t.doc)}catch(t){console.error(`Error in init-availableCourseTags: ${JSON.stringify(t)}`)}},async submit(){console.log(`[TagsInput] tagsInput is submitting...`),this.loading=!0;try{await Promise.all(this.tags.map(async t=>{if(!this.initialTags.includes(t.text))try{await this.courseDB.addTagToCard(this.cardID,t.text),console.log(`[TagsInput] Successfully added tag: ${t.text}`)}catch(n){console.error(`Failed to add tag ${t.text}:`,n)}}))}catch(t){console.error(`Exception adding tags: ${JSON.stringify(t)}`)}try{await Promise.all(this.initialTags.map(async t=>{if(this.tags.filter(n=>n.text===t).length===0)try{await this.courseDB.removeTagFromCard(this.cardID,t),console.log(`[TagsInput] Successfully removed tag: ${t}`)}catch(n){console.error(`Failed to remove tag ${t}:`,n)}}))}catch(t){console.error(`Exception removing tags: ${JSON.stringify(t)}`)}this.loading=!1}}}),Mc={"data-cy":`tags-input`},Nc={class:`tag-name`},Pc={key:0,class:`tag-snippet`};function _sfc_render$5(t,n,r,i,a,o){let c=E(`vue-tags-input`),l=E(`v-btn`);return x(),R(`div`,Mc,[f(c,{modelValue:t.tag,"onUpdate:modelValue":n[0]||(n[0]=n=>t.tag=n),tags:t.tags,"autocomplete-items":t.autoCompleteSuggestions,separators:t.separators,"add-on-key":t.separators,onTagsChanged:t.tagsChanged},{"autocomplete-item":s(t=>[I(`div`,{class:w([`autocomplete-item`,{"is-active":t.selected}])},[I(`span`,Nc,N(t.item.text),1),t.item.data&&t.item.data.snippet?(x(),R(`span`,Pc,` - `+N(t.item.data.snippet),1)):U(``,!0)],2)]),_:1},8,[`modelValue`,`tags`,`autocomplete-items`,`separators`,`add-on-key`,`onTagsChanged`]),t.hideSubmit?U(``,!0):(x(),H(l,{key:0,color:`success`,loading:t.loading,onClick:t.submit},{default:s(()=>n[1]||(n[1]=[A(`Save Changes`)])),_:1},8,[`loading`,`onClick`]))])}$e(_sfc_render$5,`_sfc_render`);var Fc=q(jc,[[`render`,_sfc_render$5],[`__scopeId`,`data-v-f7373dc0`]]),Ic=j({name:`CourseCardBrowser`,components:{CardLoader:sc,TagsInput:Fc,PaginatingToolbar:Ao},props:{courseId:{type:String,required:!0},tagId:{type:String,required:!1,default:``},viewLookupFunction:{type:Function,required:!0,default:()=>(console.warn(`No viewLookupFunction provided to CourseCardBrowser`),null)},editMode:{type:String,required:!1,default:`full`}},data(){return{courseDB:null,page:1,pages:[],cards:[],cardData:{},cardPreview:{},cardElos:{},cardTags:{},internalEditMode:`none`,delBtn:!1,updatePending:!0,userIsRegistered:!1,questionCount:0,tags:[],viewLookup:this.viewLookupFunction}},async created(){try{this.courseDB=rt().getCourseDB(this.courseId),this.tagId?this.questionCount=(await this.courseDB.getTag(this.tagId)).taggedCards.length:this.questionCount=(await this.courseDB.getCourseInfo()).cardCount;for(let t=1;(t-1)*25<this.questionCount;t++)this.pages.push(t);await this.populateTableData()}catch(t){console.error(`Error initializing CourseCardBrowser:`,t)}finally{this.updatePending=!1}},methods:{idQualify(t){return t.includes(`-`)?t:`${this.courseId}-${t}`},idToQualifiedObject(t){if(t.includes(`-`)){let n=t.split(`-`);return{courseID:n[0],cardID:n[1]}}else return{courseID:this.courseId,cardID:t}},first(){this.page=1,this.populateTableData()},prev(){this.page--,this.populateTableData()},next(){this.page++,this.populateTableData()},last(){this.page=this.pages.length,this.populateTableData()},setPage(t){this.page=t,this.populateTableData()},async loadCardTags(t){try{await Promise.all(t.map(async t=>{let n=await this.courseDB.getAppliedTags(t);this.cardTags[t]=n.rows.map(t=>({name:t.value.name,snippet:t.value.snippet,count:t.value.count}))}))}catch(t){console.error(`Error loading card tags:`,t)}},clearSelections(t=``){this.cards.forEach(n=>{n.card.cardID!==t&&(n.isOpen=!1)}),this.internalEditMode=`none`,this.delBtn=!1},async deleteCard(t){console.log(`Deleting card ${t}`);let n=await this.courseDB.removeCard(t);n.ok?(this.cards=this.cards.filter(n=>n.card.cardID!=t),this.clearSelections()):(console.error(`Failed to delete card:\n\n${JSON.stringify(n)}`),wo({text:`Failed to delete card`,status:Be.error}))},async populateTableData(){this.updatePending=!0,this.tagId?this.cards=(await this.courseDB.getTag(this.tagId)).taggedCards.map(t=>({card:{cardID:t,courseID:this.courseId},isOpen:!1,delBtn:!1})):this.cards=(await this.courseDB.getCardsByELO(0,25)).map(t=>({card:t,isOpen:!1,delBtn:!1}));let t=[],n=(await this.courseDB.getCourseDocs(this.cards.map(t=>t.card.cardID),{include_docs:!0})).rows.filter(t=>t.doc?!0:(console.error(`Card ${t.id}.doc not found.\ncard: ${JSON.stringify(t)}`),!1)).map(t=>t.doc);this.cards=this.cards.filter(n=>!t.includes(n.card.cardID)),n.forEach(t=>{t&&t.id_displayable_data&&(this.cardData[t._id]=t.id_displayable_data)});try{await Promise.all(this.cards.map(async t=>{let r=t.card.cardID,i=n.find(t=>t._id==r);if(!i||!i.id_displayable_data){console.error(`No valid data found for card ${r}`);return}let a=this.viewLookupFunction(i.id_view||`default.question.BlanksCard.FillInView`),o=i.id_displayable_data.map(t=>this.courseDB.getCourseDoc(t,{attachments:!1,binary:!0})),s=await Promise.all(o);await Promise.all(s.map(n=>{[].unshift(We(n)),this.cardPreview[t.card.cardID]=a.name?a.name:`Unknown`}))}));let t=this.cards.map(t=>t.card.cardID),r=await this.courseDB.getCardEloData(t);t.forEach((t,n)=>{this.cardElos[t]=r[n]}),await this.loadCardTags(t)}catch(t){console.error(`Error populating table data:`,t)}finally{this.updatePending=!1,this.$forceUpdate()}}}}),Lc={key:0,class:`d-flex justify-center align-center pa-6`},Rc={key:1},zc={key:0,class:`px-4 py-2 bg-blue-grey-lighten-5`},Bc={key:0,class:`mt-4`},Vc={class:`mt-4`},Hc={key:0,class:`ml-4`};function _sfc_render$4(t,n,r,i,a,o){let c=E(`v-progress-circular`),l=E(`paginating-toolbar`),u=E(`v-list-item-title`),d=E(`v-list-item-subtitle`),p=E(`v-btn`),m=E(`v-icon`),h=E(`v-speed-dial`),g=E(`v-list-item`),_=E(`card-loader`),b=E(`v-chip`),S=E(`v-chip-group`),C=E(`tags-input`),T=E(`v-list`),D=E(`v-card`);return x(),H(D,null,{default:s(()=>[t.updatePending?(x(),R(`div`,Lc,[f(c,{indeterminate:``,color:`primary`})])):(x(),R(`div`,Rc,[f(l,{title:`Exercises`,page:t.page,pages:t.pages,subtitle:`(${t.questionCount})`,onFirst:t.first,onPrev:t.prev,onNext:t.next,onLast:t.last,onSetPage:n[0]||(n[0]=n=>t.setPage(n))},null,8,[`page`,`pages`,`subtitle`,`onFirst`,`onPrev`,`onNext`,`onLast`]),f(T,null,{default:s(()=>[(x(!0),R(ge,null,P(t.cards,r=>(x(),R(ge,{key:r.card.cardID},[f(g,{class:w({"bg-blue-grey-lighten-5":r.isOpen,"elevation-4":r.isOpen}),density:`compact`,"data-cy":`course-card`},{prepend:s(()=>[I(`div`,null,[f(u,{class:w([{"text-blue-grey-darken-1":r.isOpen},`font-weight-medium`])},{default:s(()=>[A(N(t.cardPreview[r.card.cardID]),1)]),_:2},1032,[`class`]),f(d,null,{default:s(()=>[A(` ELO: `+N(t.cardElos[r.card.cardID]?.global?.score||`(unknown)`),1)]),_:2},1024)])]),append:s(()=>[f(h,{modelValue:r.isOpen,"onUpdate:modelValue":t=>r.isOpen=t,location:`left center`,transition:`slide-x-transition`,style:{display:`flex`,"flex-direction":`row-reverse`},persistent:``},{activator:s(({props:n})=>[f(p,O({ref_for:!0},n,{icon:r.isOpen?`mdi-close`:`mdi-plus`,size:`small`,variant:`text`,onClick:n=>t.clearSelections(r.card.cardID)}),null,16,[`icon`,`onClick`])]),default:s(()=>[t.editMode===`full`?(x(),H(p,{key:`tags`,icon:``,size:`small`,variant:t.internalEditMode===`tags`?`elevated`:`outlined`,color:t.internalEditMode===`tags`?`teal`:`teal-darken-3`,onClick:n[1]||(n[1]=Oe(n=>t.internalEditMode=`tags`,[`stop`]))},{default:s(()=>[f(m,null,{default:s(()=>n[4]||(n[4]=[A(`mdi-bookmark`)])),_:1})]),_:1},8,[`variant`,`color`])):U(``,!0),t.editMode===`full`?(x(),H(p,{key:`flag`,icon:``,size:`small`,variant:t.internalEditMode===`flag`?`elevated`:`outlined`,color:t.internalEditMode===`flag`?`error`:`error-darken-3`,onClick:n[2]||(n[2]=Oe(n=>t.internalEditMode=`flag`,[`stop`]))},{default:s(()=>[f(m,null,{default:s(()=>n[5]||(n[5]=[A(`mdi-flag`)])),_:1})]),_:1},8,[`variant`,`color`])):U(``,!0)]),_:2},1032,[`modelValue`,`onUpdate:modelValue`])]),_:2},1032,[`class`]),r.isOpen?(x(),R(`div`,zc,[f(_,{qualified_id:r.card,"view-lookup":t.viewLookup,class:`elevation-1`},null,8,[`qualified_id`,`view-lookup`]),t.editMode===`readonly`&&t.cardTags[r.card.cardID]?(x(),R(`div`,Bc,[f(S,null,{default:s(()=>[(x(!0),R(ge,null,P(t.cardTags[r.card.cardID],t=>(x(),H(b,{key:t.name,size:`small`,color:`primary`,variant:`outlined`},{default:s(()=>[A(N(t.name),1)]),_:2},1024))),128))]),_:2},1024)])):U(``,!0),he(f(C,{"course-i-d":t.courseId,"card-i-d":r.card.cardID,class:`mt-4`},null,8,[`course-i-d`,`card-i-d`]),[[pe,t.internalEditMode===`tags`&&t.editMode===`full`]]),he(I(`div`,Vc,[f(p,{color:`error`,variant:`outlined`,onClick:t=>r.delBtn=!0},{default:s(()=>n[6]||(n[6]=[A(` Delete this card `)])),_:2},1032,[`onClick`]),r.delBtn?(x(),R(`span`,Hc,[n[8]||(n[8]=I(`span`,{class:`mr-2`},`Are you sure?`,-1)),f(p,{color:`error`,variant:`elevated`,onClick:n=>t.deleteCard(r.card.cardID)},{default:s(()=>n[7]||(n[7]=[A(` Confirm `)])),_:2},1032,[`onClick`])])):U(``,!0)],512),[[pe,t.internalEditMode===`flag`&&t.editMode===`full`]])])):U(``,!0)],64))),128))]),_:1}),f(l,{class:`elevation-0`,page:t.page,pages:t.pages,onFirst:t.first,onPrev:t.prev,onNext:t.next,onLast:t.last,onSetPage:n[3]||(n[3]=n=>t.setPage(n))},null,8,[`page`,`pages`,`onFirst`,`onPrev`,`onNext`,`onLast`])]))]),_:1})}$e(_sfc_render$4,`_sfc_render`);var Uc=q(Ic,[[`render`,_sfc_render$4],[`__scopeId`,`data-v-5ecc9d21`]]),Wc=j({name:`CourseInformation`,components:{CourseCardBrowser:Uc},props:{courseId:{type:String,required:!0},viewLookupFunction:{type:Function,required:!1,default:t=>(console.warn(`No viewLookupFunction provided to CourseInformation`),null)},editMode:{type:String,required:!1,default:`full`}},data(){return{courseDB:null,nameRules:[t=>t.length>30?`Course name must be 30 characters or less`:!0],updatePending:!0,courseConfig:{},userIsRegistered:!1,tags:[],user:null}},computed:{},async created(){this.courseDB=rt().getCourseDB(this.courseId),this.user=await getCurrentUser();let t=await this.user.getCourseRegistrationsDoc();this.user.getUsername()===`admin`?this.userIsRegistered=!0:this.userIsRegistered=t.courses.filter(t=>t.courseID===this.courseId&&(t.status===`active`||t.status===void 0)).length===1,this.courseConfig=await this.courseDB.getCourseConfig(),this.tags=(await this.courseDB.getCourseTagStubs()).rows.map(t=>t.doc),this.updatePending=!1},methods:{async register(){He(`Registering for ${this.courseId}`),(await this.user.registerForCourse(this.courseId)).ok&&(this.userIsRegistered=!0)},async drop(){He(`Dropping course ${this.courseId}`),(await this.user.dropCourse(this.courseId)).ok&&(this.userIsRegistered=!1)}}}),Gc={key:0},Kc={class:`text-h4 mb-2`},qc={class:`text-body-2`},Jc={key:0},Yc={key:1};function _sfc_render$3(t,n,r,i,a,o){let c=E(`v-btn`),l=E(`v-icon`),u=E(`v-toolbar-title`),d=E(`v-toolbar-items`),p=E(`v-toolbar`),m=E(`v-chip`),h=E(`v-card-text`),g=E(`v-card`),_=E(`course-card-browser`);return t.updatePending?U(``,!0):(x(),R(`div`,Gc,[b(t.$slots,`header`,{courseConfig:t.courseConfig,courseId:t.courseId},()=>[I(`h1`,Kc,N(t.courseConfig.name),1)],!0),I(`p`,qc,N(t.courseConfig.description),1),b(t.$slots,`actions`,{userIsRegistered:t.userIsRegistered,courseId:t.courseId,editMode:t.editMode,register:t.register,drop:t.drop},()=>[f(De,{name:`component-fade`,mode:`out-in`},{default:s(()=>[t.userIsRegistered?(x(),R(`div`,Jc,[f(c,{color:`success`,"data-cy":`focused-study-session-btn`,class:`me-2`},{default:s(()=>n[0]||(n[0]=[A(`Start ad study session`)])),_:1}),t.editMode===`full`?(x(),H(c,{key:0,"data-cy":`add-content-btn`,color:`indigo-lighten-1`,class:`me-2`},{default:s(()=>[f(l,{start:``},{default:s(()=>n[1]||(n[1]=[A(`mdi-plus`)])),_:1}),n[2]||(n[2]=A(` Add content `))]),_:1})):U(``,!0),t.editMode===`full`?(x(),H(c,{key:1,color:`green-darken-2`,title:`Rank course content for difficulty`,class:`me-2`},{default:s(()=>[f(l,{start:``},{default:s(()=>n[3]||(n[3]=[A(`mdi-format-list-numbered`)])),_:1}),n[4]||(n[4]=A(` Arrange `))]),_:1})):U(``,!0),t.editMode===`full`?(x(),H(c,{key:2,color:`error`,size:`small`,variant:`outlined`,onClick:t.drop},{default:s(()=>n[5]||(n[5]=[A(` Drop this course `)])),_:1},8,[`onClick`])):U(``,!0)])):(x(),R(`div`,Yc,[f(c,{"data-cy":`register-btn`,color:`primary`,class:`me-2`,onClick:t.register},{default:s(()=>n[6]||(n[6]=[A(`Register`)])),_:1},8,[`onClick`]),f(c,{variant:`outlined`,color:`primary`,class:`me-2`},{default:s(()=>n[7]||(n[7]=[A(`Start a trial study session`)])),_:1})]))]),_:1})],!0),b(t.$slots,`additional-content`,{},void 0,!0),f(g,{class:`my-2`},{default:s(()=>[f(p,{density:`compact`},{default:s(()=>[f(u,null,{default:s(()=>n[8]||(n[8]=[A(`Tags`)])),_:1}),f(d,null,{default:s(()=>[f(c,{variant:`text`},{default:s(()=>[A(`(`+N(t.tags.length)+`)`,1)]),_:1})]),_:1})]),_:1}),f(h,null,{default:s(()=>[(x(!0),R(ge,null,P(t.tags,(n,r)=>(x(),R(`span`,{key:r},[b(t.$slots,`tag-link`,{tag:n,courseId:t.courseId},()=>[f(m,{variant:`tonal`,class:`me-2 mb-2`},{default:s(()=>[A(N(n.name),1)]),_:2},1024)],!0)]))),128))]),_:3})]),_:3}),f(_,{class:`my-3`,"course-id":t.courseId,"view-lookup-function":t.viewLookupFunction,"edit-mode":t.editMode},null,8,[`course-id`,`view-lookup-function`,`edit-mode`])]))}$e(_sfc_render$3,`_sfc_render`);var Xc=q(Wc,[[`render`,_sfc_render$3],[`__scopeId`,`data-v-38e9efe1`]]),Zc=j({name:`CardBrowser`,components:{CardViewer:Xo},props:{views:{type:Array,required:!0},data:{type:Array,required:!0},suppressSpinner:{type:Boolean,default:!1}},data(){return{viewIndex:0,previewMode:Ye()}},computed:{spinner(){return this.views.length>1}},created(){console.log(`[CardBrowser] Card browser created. Cards now in 'prewviewMode'`),this.previewMode.setPreviewMode(!0)},unmounted(){console.log(`[CardBrowser] Card browser unmounted. Cards no longer in 'prewviewMode'`),this.previewMode.setPreviewMode(!1)},methods:{incrementView(){this.viewIndex++,this.viewIndex=(this.viewIndex+this.views.length)%this.views.length},decrementView(){this.viewIndex--,this.viewIndex=(this.viewIndex+this.views.length)%this.views.length}}}),Qc={key:0,class:`text-subtitle-1 pa-2`};function _sfc_render$2(t,n,r,i,a,o){let c=E(`CardViewer`),l=E(`v-icon`),u=E(`v-btn`),d=E(`v-row`);return x(),H(d,{column:``,align:`center`,justify:`center`},{default:s(()=>[f(c,{view:t.views[t.viewIndex],data:t.data,course_id:`[browsing]`,card_id:`[browsing]`},null,8,[`view`,`data`]),n[2]||(n[2]=I(`br`,null,null,-1)),n[3]||(n[3]=I(`br`,null,null,-1)),t.suppressSpinner?U(``,!0):(x(),R(`div`,Qc,[t.spinner?(x(),H(u,{key:0,icon:``,variant:`outlined`,color:`primary`,onClick:t.decrementView},{default:s(()=>[f(l,null,{default:s(()=>n[0]||(n[0]=[A(`mdi-chevron-left`)])),_:1})]),_:1},8,[`onClick`])):U(``,!0),A(` `+N(t.views[t.viewIndex].name)+` `,1),t.spinner?(x(),H(u,{key:1,icon:``,variant:`outlined`,color:`primary`,onClick:t.incrementView},{default:s(()=>[f(l,null,{default:s(()=>n[1]||(n[1]=[A(`mdi-chevron-right`)])),_:1})]),_:1},8,[`onClick`])):U(``,!0)]))]),_:1})}$e(_sfc_render$2,`_sfc_render`);var $c=q(Zc,[[`render`,_sfc_render$2]]),el=j({name:`CourseTagFilterWidget`,props:{courseId:{type:String,required:!0},modelValue:{type:Object,default:void 0}},emits:[`update:modelValue`],setup(t,{emit:n}){let r=Ce(!0),i=Ce([]),a=Ce({}),o=Ce(t.modelValue?{...t.modelValue}:Ve()),s=z(()=>i.value.filter(t=>!o.value.include.includes(t))),c=z(()=>Ue(o.value)),fuzzyFilter=(t,n)=>{if(!n)return!0;let r=n.toLowerCase(),i=t.toLowerCase(),a=0;for(let t=0;t<i.length&&a<r.length;t++)i[t]===r[a]&&a++;return a===r.length};le(()=>t.modelValue,t=>{t?o.value={...t}:o.value=Ve()},{deep:!0}),le(o,t=>{n(`update:modelValue`,{...t})},{deep:!0}),le(()=>t.courseId,async t=>{t&&await loadTags()});async function loadTags(){r.value=!0;try{let n=await rt().getCourseDB(t.courseId).getCourseTagStubs();i.value=[],a.value={};for(let t of n.rows)if(t.doc){let n=t.doc;i.value.push(n.name),n.snippet&&(a.value[n.name]=n.snippet)}i.value.sort((t,n)=>t.localeCompare(n))}catch(t){console.error(`[CourseTagFilterWidget] Failed to load tags:`,t),i.value=[],a.value={}}finally{r.value=!1}}return Ie(()=>{t.courseId&&loadTags()}),{loading:r,availableTags:i,availableTagsForExclude:s,tagSnippets:a,localFilter:o,hasActiveFilter:c,fuzzyFilter}}}),tl={class:`course-tag-filter-widget`},nl={key:0,class:`filter-summary text-caption mt-2`},rl={key:0},il={key:1},al={key:2};function _sfc_render$1(t,n,r,i,a,o){let c=E(`v-chip`),l=E(`v-list-item`),u=E(`v-autocomplete`),d=E(`v-icon`);return x(),R(`div`,tl,[f(u,{modelValue:t.localFilter.include,"onUpdate:modelValue":n[0]||(n[0]=n=>t.localFilter.include=n),items:t.availableTags,loading:t.loading,disabled:t.loading,label:`Include tags`,placeholder:`Type to search tags...`,hint:`Cards must have at least one of these tags`,"persistent-hint":``,multiple:``,chips:``,"closable-chips":``,clearable:``,density:`compact`,variant:`outlined`,class:`mb-2`,"custom-filter":t.fuzzyFilter,"no-data-text":`No matching tags found`},{chip:s(({props:t,item:n})=>[f(c,O(t,{color:`primary`,variant:`tonal`,size:`small`}),{default:s(()=>[A(N(n.raw),1)]),_:2},1040)]),item:s(({props:n,item:r})=>[f(l,O(n,{title:r.raw}),Ne({_:2},[t.tagSnippets[r.raw]?{name:`subtitle`,fn:s(()=>[A(N(t.tagSnippets[r.raw]),1)]),key:`0`}:void 0]),1040,[`title`])]),_:1},8,[`modelValue`,`items`,`loading`,`disabled`,`custom-filter`]),f(u,{modelValue:t.localFilter.exclude,"onUpdate:modelValue":n[1]||(n[1]=n=>t.localFilter.exclude=n),items:t.availableTagsForExclude,loading:t.loading,disabled:t.loading,label:`Exclude tags`,placeholder:`Type to search tags...`,hint:`Cards with these tags will be excluded`,"persistent-hint":``,multiple:``,chips:``,"closable-chips":``,clearable:``,density:`compact`,variant:`outlined`,"custom-filter":t.fuzzyFilter,"no-data-text":`No matching tags found`},{chip:s(({props:t,item:n})=>[f(c,O(t,{color:`error`,variant:`tonal`,size:`small`}),{default:s(()=>[A(N(n.raw),1)]),_:2},1040)]),item:s(({props:n,item:r})=>[f(l,O(n,{title:r.raw}),Ne({_:2},[t.tagSnippets[r.raw]?{name:`subtitle`,fn:s(()=>[A(N(t.tagSnippets[r.raw]),1)]),key:`0`}:void 0]),1040,[`title`])]),_:1},8,[`modelValue`,`items`,`loading`,`disabled`,`custom-filter`]),t.hasActiveFilter?(x(),R(`div`,nl,[f(d,{size:`small`,color:`info`,class:`mr-1`},{default:s(()=>n[2]||(n[2]=[A(`mdi-filter`)])),_:1}),t.localFilter.include.length?(x(),R(`span`,rl,` Including: `+N(t.localFilter.include.join(`, `)),1)):U(``,!0),t.localFilter.include.length&&t.localFilter.exclude.length?(x(),R(`span`,il,` · `)):U(``,!0),t.localFilter.exclude.length?(x(),R(`span`,al,` Excluding: `+N(t.localFilter.exclude.join(`, `)),1)):U(``,!0)])):U(``,!0)])}$e(_sfc_render$1,`_sfc_render`);var ol=q(el,[[`render`,_sfc_render$1],[`__scopeId`,`data-v-e1ba963b`]]),sl={min:0,startingMax:2,absoluteMax:10},cl=`UserTagPreferenceFilter`,ll=j({name:`UserTagPreferences`,props:{courseId:{type:String,required:!1,default:``},sliderConfig:{type:Object,required:!1,default:()=>({})}},emits:[`preferences-saved`,`preferences-changed`],data(){return{loading:!0,saving:!1,saveError:``,saveSuccess:!1,preferences:{boost:{}},savedPreferences:{boost:{}},tagMaxRanges:{},availableTags:[],tagToAdd:null,courseDB:null,user:null}},computed:{sliderConfigResolved(){return{min:this.sliderConfig.min??sl.min,startingMax:this.sliderConfig.startingMax??sl.startingMax,absoluteMax:this.sliderConfig.absoluteMax??sl.absoluteMax}},tagNames(){return Object.keys(this.preferences.boost).sort()},globalSliderMax(){let t=Object.values(this.tagMaxRanges);return t.length===0?this.sliderConfigResolved.startingMax:Math.max(...t)},availableTagsToAdd(){let t=new Set(Object.keys(this.preferences.boost));return this.availableTags.filter(n=>!t.has(n.name))},hasChanges(){let t=Object.keys(this.preferences.boost).sort(),n=Object.keys(this.savedPreferences.boost).sort();return t.length!==n.length||t.join(`,`)!==n.join(`,`)?!0:t.some(t=>this.preferences.boost[t]!==this.savedPreferences.boost[t])}},watch:{courseId:{immediate:!0,async handler(t){t?await this.loadPreferences():this.loading=!1}}},methods:{async loadPreferences(){this.loading=!0,this.saveError=``;try{if(this.user=await getCurrentUser()??null,!this.user)throw Error(`User not available`);this.courseDB=rt().getCourseDB(this.courseId),this.availableTags=(await this.courseDB.getCourseTagStubs()).rows.map(t=>t.doc).filter(Boolean);let t=await this.user.getStrategyState(this.courseId,cl);t?this.preferences.boost={...t.boost}:this.preferences.boost={},this.savedPreferences.boost={...this.preferences.boost},this.tagMaxRanges={},Object.keys(this.preferences.boost).forEach(t=>{let n=this.preferences.boost[t],r=this.sliderConfigResolved.startingMax;n>r?this.tagMaxRanges[t]=Math.min(Math.ceil(n),this.sliderConfigResolved.absoluteMax):this.tagMaxRanges[t]=r})}catch(t){console.error(`Failed to load preferences:`,t),this.saveError=`Failed to load preferences. Please try again.`}finally{this.loading=!1}},addTag(t){t&&!(t in this.preferences.boost)&&(this.preferences.boost[t]=1,this.tagMaxRanges[t]=this.sliderConfigResolved.startingMax,this.$emit(`preferences-changed`,this.preferences)),this.$nextTick(()=>{this.tagToAdd=null})},removeTag(t){delete this.preferences.boost[t],delete this.tagMaxRanges[t],this.$emit(`preferences-changed`,this.preferences)},updateBoost(t,n){this.preferences.boost[t]=n,this.$emit(`preferences-changed`,this.preferences)},expandSliderRange(t){let n=this.globalSliderMax;if(n<this.sliderConfigResolved.absoluteMax){let r=n+1;Object.keys(this.tagMaxRanges).forEach(t=>{this.tagMaxRanges[t]=Math.max(this.tagMaxRanges[t],r)}),this.preferences.boost[t]=r,this.$emit(`preferences-changed`,this.preferences)}},formatMultiplier(t){return t===0?`0x`:t<.1?t.toFixed(2)+`x`:t.toFixed(1)+`x`},resetToSaved(){this.preferences.boost={...this.savedPreferences.boost},this.saveSuccess=!1,this.saveError=``,this.tagMaxRanges={},Object.keys(this.preferences.boost).forEach(t=>{let n=this.preferences.boost[t],r=this.sliderConfigResolved.startingMax;n>r?this.tagMaxRanges[t]=Math.min(Math.ceil(n),this.sliderConfigResolved.absoluteMax):this.tagMaxRanges[t]=r})},async savePreferences(){if(!this.user||!this.courseId){this.saveError=`Unable to save - user or course not available`;return}this.saving=!0,this.saveError=``,this.saveSuccess=!1;try{let t={boost:{...this.preferences.boost},updatedAt:new Date().toISOString()};await this.user.putStrategyState(this.courseId,cl,t),this.savedPreferences.boost={...this.preferences.boost},this.saveSuccess=!0,this.$emit(`preferences-saved`,t)}catch(t){console.error(`Failed to save preferences:`,t),this.saveError=`Failed to save preferences. Please try again.`}finally{this.saving=!1}}}}),ul={key:1},dl={class:`mb-6`},fl={class:`text-subtitle-1 font-weight-bold mb-2`},pl={class:`d-flex align-center ga-3 w-100`},ml={class:`text-body-2 flex-shrink-0`,style:{"min-width":`60px`,"text-align":`right`}},hl={key:2,class:`d-flex justify-center py-8`};function _sfc_render(t,n,r,i,a,o){let c=E(`v-icon`),l=E(`v-card-title`),u=E(`v-card-subtitle`),d=E(`v-alert`),p=E(`v-list-item`),h=E(`v-autocomplete`),g=E(`v-chip`),_=E(`v-slider`),b=E(`v-btn`),S=E(`v-list`),C=E(`v-progress-circular`),w=E(`v-card-text`),T=E(`v-spacer`),O=E(`v-card-actions`),k=E(`v-card`);return x(),H(k,{loading:t.loading},{default:s(()=>[f(l,null,{default:s(()=>[f(c,{start:``},{default:s(()=>n[3]||(n[3]=[A(`mdi-tune`)])),_:1}),n[4]||(n[4]=A(` Learning Preferences `))]),_:1}),t.courseId?(x(),H(u,{key:0},{default:s(()=>n[5]||(n[5]=[A(` Customize how content is presented in this course `)])),_:1})):U(``,!0),f(w,null,{default:s(()=>[t.courseId?t.loading?(x(),R(`div`,hl,[f(C,{indeterminate:``,color:`primary`})])):(x(),R(`div`,ul,[I(`div`,dl,[I(`h3`,fl,[f(c,{start:``,size:`small`},{default:s(()=>n[7]||(n[7]=[A(`mdi-tune-variant`)])),_:1}),n[8]||(n[8]=A(` Tag Preferences `))]),n[10]||(n[10]=I(`p`,{class:`text-body-2 text-medium-emphasis mb-3`},` Adjust how much you want to see cards with specific tags. 0 = exclude, 1 = neutral, higher = prefer more. `,-1)),f(h,{modelValue:t.tagToAdd,"onUpdate:modelValue":[n[0]||(n[0]=n=>t.tagToAdd=n),t.addTag],items:t.availableTagsToAdd,"item-title":`name`,"item-value":`name`,label:`Add tag preference`,placeholder:`Search tags...`,density:`compact`,variant:`outlined`,clearable:``,"hide-details":``,class:`mb-4`},{item:s(({props:t,item:n})=>[f(p,D(m(t)),{subtitle:s(()=>[A(N(n.raw.snippet),1)]),_:2},1040)]),_:1},8,[`modelValue`,`items`,`onUpdate:modelValue`]),t.tagNames.length>0?(x(),H(S,{key:0,class:`mt-4`},{default:s(()=>[(x(!0),R(ge,null,P(t.tagNames,n=>(x(),H(p,{key:n,class:`px-0`},{default:s(()=>[I(`div`,pl,[f(g,{size:`small`,variant:`tonal`,class:`flex-shrink-0`,style:{"min-width":`120px`}},{default:s(()=>[A(N(n),1)]),_:2},1024),f(_,{"model-value":t.preferences.boost[n],min:t.sliderConfigResolved.min,max:t.globalSliderMax,step:.01,"hide-details":``,class:`flex-grow-1`,"thumb-label":``,"onUpdate:modelValue":r=>t.updateBoost(n,r)},{"thumb-label":s(({modelValue:n})=>[A(N(t.formatMultiplier(n)),1)]),_:2},1032,[`model-value`,`min`,`max`,`onUpdate:modelValue`]),I(`span`,ml,N(t.formatMultiplier(t.preferences.boost[n])),1),f(b,{icon:`mdi-plus`,size:`small`,variant:`text`,density:`compact`,disabled:t.globalSliderMax>=t.sliderConfigResolved.absoluteMax,onClick:r=>t.expandSliderRange(n)},null,8,[`disabled`,`onClick`]),f(b,{icon:`mdi-delete`,size:`small`,variant:`text`,density:`compact`,onClick:r=>t.removeTag(n)},null,8,[`onClick`])])]),_:2},1024))),128))]),_:1})):(x(),H(d,{key:1,type:`info`,variant:`tonal`,class:`mt-4`},{default:s(()=>n[9]||(n[9]=[A(` No tag preferences configured yet. Add tags above to get started. `)])),_:1}))]),t.saveError?(x(),H(d,{key:0,type:`error`,variant:`tonal`,class:`mt-4`,closable:``,"onClick:close":n[1]||(n[1]=n=>t.saveError=``)},{default:s(()=>[A(N(t.saveError),1)]),_:1})):U(``,!0),t.saveSuccess?(x(),H(d,{key:1,type:`success`,variant:`tonal`,class:`mt-4`,closable:``,"onClick:close":n[2]||(n[2]=n=>t.saveSuccess=!1)},{default:s(()=>n[11]||(n[11]=[A(` Preferences saved successfully `)])),_:1})):U(``,!0)])):(x(),H(d,{key:0,type:`info`,variant:`tonal`,class:`mb-4`},{default:s(()=>n[6]||(n[6]=[A(` Select a course to configure your learning preferences. `)])),_:1}))]),_:1}),t.courseId&&!t.loading?(x(),H(O,{key:1},{default:s(()=>[f(T),f(b,{variant:`text`,disabled:!t.hasChanges,onClick:t.resetToSaved},{default:s(()=>n[12]||(n[12]=[A(` Reset `)])),_:1},8,[`disabled`,`onClick`]),f(b,{color:`primary`,variant:`flat`,loading:t.saving,disabled:!t.hasChanges,onClick:t.savePreferences},{default:s(()=>n[13]||(n[13]=[A(` Save Preferences `)])),_:1},8,[`loading`,`disabled`,`onClick`])]),_:1})):U(``,!0)]),_:1},8,[`loading`])}var gl=q(ll,[[`render`,_sfc_render],[`__scopeId`,`data-v-8fb14605`]]);export{resetPassword as A,sc as B,$c as C,Zs as D,rc as E,useAuthStore as F,useRoute as G,lo as H,useConfigStore as I,useRouter as K,validatePassword as L,Ys as M,Jo as N,Fc as O,Uc as P,verifyEmail as R,Xc as S,getCurrentUser as T,createRouter as U,Dc as V,createWebHistory as W,Rs as _,gl as a,Ko as b,No as c,gc as d,Xo as f,Ao as g,pc as h,Displayable as i,sendVerificationEmail as j,requestPasswordReset as k,bc as l,Question as m,Do as n,xo as o,zo as p,dc as r,Ac as s,ho as t,yo as u,wo as v,ec as w,cc as x,ac as y,ol as z};
|
|
38
|
-
//# sourceMappingURL=common-ui.es-
|
|
38
|
+
//# sourceMappingURL=common-ui.es-BrXWBn7p.js.map
|