@vue-skuilder/platform-ui 0.1.30 → 0.1.31-a

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.
Files changed (61) hide show
  1. package/dist/assets/About-BzQmP9L6.js +2 -0
  2. package/dist/assets/About-BzQmP9L6.js.map +1 -0
  3. package/dist/assets/AdminDashboard-Btfp3xbX.js +2 -0
  4. package/dist/assets/AdminDashboard-Btfp3xbX.js.map +1 -0
  5. package/dist/assets/AdminDashboard-CWnC_vEI.css +1 -0
  6. package/dist/assets/ClassroomCtrlPanel-Del1NMJ0.js +2 -0
  7. package/dist/assets/ClassroomCtrlPanel-Del1NMJ0.js.map +1 -0
  8. package/dist/assets/Classrooms-uc9jXghN.js +2 -0
  9. package/dist/assets/Classrooms-uc9jXghN.js.map +1 -0
  10. package/dist/assets/CourseRouter-DfwtPHs0.js +2 -0
  11. package/dist/assets/CourseRouter-DfwtPHs0.js.map +1 -0
  12. package/dist/assets/CourseRouter-DuzvSsqI.css +1 -0
  13. package/dist/assets/Courses-DQW3kca9.css +1 -0
  14. package/dist/assets/Courses-Iub72F0b.js +2 -0
  15. package/dist/assets/Courses-Iub72F0b.js.map +1 -0
  16. package/dist/assets/DataInputFormTester-BL-SAhyy.js +2 -0
  17. package/dist/assets/DataInputFormTester-BL-SAhyy.js.map +1 -0
  18. package/dist/assets/EloModeration-B90G61YI.css +1 -0
  19. package/dist/assets/EloModeration-DK8zrUJv.js +2 -0
  20. package/dist/assets/EloModeration-DK8zrUJv.js.map +1 -0
  21. package/dist/assets/JoinCode-CnXEpiOH.js +2 -0
  22. package/dist/assets/JoinCode-CnXEpiOH.js.map +1 -0
  23. package/dist/assets/JoinCode-DFiral3R.css +1 -0
  24. package/dist/assets/NewCourseDialog-4P2ZrBpL.js +2 -0
  25. package/dist/assets/NewCourseDialog-4P2ZrBpL.js.map +1 -0
  26. package/dist/assets/ReleaseNotes-CH_BZW3D.js +2 -0
  27. package/dist/assets/ReleaseNotes-CH_BZW3D.js.map +1 -0
  28. package/dist/assets/RequestPasswordReset-06j_OmhC.js +2 -0
  29. package/dist/assets/RequestPasswordReset-06j_OmhC.js.map +1 -0
  30. package/dist/assets/RequestPasswordReset-Du5-awJG.css +1 -0
  31. package/dist/assets/ResetPassword-Bm2btF6K.js +2 -0
  32. package/dist/assets/ResetPassword-Bm2btF6K.js.map +1 -0
  33. package/dist/assets/Study-Cxxw_AYM.css +1 -0
  34. package/dist/assets/Study-D3owlaib.js +2 -0
  35. package/dist/assets/Study-D3owlaib.js.map +1 -0
  36. package/dist/assets/TagInformation-BpBQo85-.js +2 -0
  37. package/dist/assets/TagInformation-BpBQo85-.js.map +1 -0
  38. package/dist/assets/User-NjHri3_k.js +2 -0
  39. package/dist/assets/User-NjHri3_k.js.map +1 -0
  40. package/dist/assets/UserStats-B_Oc2Pl5.js +2 -0
  41. package/dist/assets/UserStats-B_Oc2Pl5.js.map +1 -0
  42. package/dist/assets/VerifyEmail-C_CXjeU5.js +2 -0
  43. package/dist/assets/VerifyEmail-C_CXjeU5.js.map +1 -0
  44. package/dist/assets/edit-ui.es-BX72VVRb.js +2 -0
  45. package/dist/assets/edit-ui.es-BX72VVRb.js.map +1 -0
  46. package/dist/assets/index-BHFq3MXV.js +3 -0
  47. package/dist/assets/index-BHFq3MXV.js.map +1 -0
  48. package/dist/assets/index-CfLe2ewO.js +3 -0
  49. package/dist/assets/index-CfLe2ewO.js.map +1 -0
  50. package/dist/assets/index-kzKpN32E.css +1 -0
  51. package/dist/assets/mousetrap-BPMmAIzH.js +2 -0
  52. package/dist/assets/mousetrap-BPMmAIzH.js.map +1 -0
  53. package/dist/index.html +2 -2
  54. package/dist/sw.js +1 -1
  55. package/dist/sw.js.map +1 -1
  56. package/package.json +7 -9
  57. package/src/router.ts +24 -19
  58. package/src/views/Courses.vue +2 -2
  59. package/dist/assets/index-B6AxCe1N.js +0 -2
  60. package/dist/assets/index-B6AxCe1N.js.map +0 -1
  61. package/dist/assets/index-DPLGnI5s.css +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"User-NjHri3_k.js","sources":["../../../../node_modules/canvas-confetti/dist/confetti.module.mjs","../../src/views/User.vue"],"sourcesContent":["// canvas-confetti v1.9.3 built on 2024-04-30T22:19:17.794Z\nvar module = {};\n\n// source content\n/* globals Map */\n\n(function main(global, module, isWorker, workerSize) {\n var canUseWorker = !!(\n global.Worker &&\n global.Blob &&\n global.Promise &&\n global.OffscreenCanvas &&\n global.OffscreenCanvasRenderingContext2D &&\n global.HTMLCanvasElement &&\n global.HTMLCanvasElement.prototype.transferControlToOffscreen &&\n global.URL &&\n global.URL.createObjectURL);\n\n var canUsePaths = typeof Path2D === 'function' && typeof DOMMatrix === 'function';\n var canDrawBitmap = (function () {\n // this mostly supports ssr\n if (!global.OffscreenCanvas) {\n return false;\n }\n\n var canvas = new OffscreenCanvas(1, 1);\n var ctx = canvas.getContext('2d');\n ctx.fillRect(0, 0, 1, 1);\n var bitmap = canvas.transferToImageBitmap();\n\n try {\n ctx.createPattern(bitmap, 'no-repeat');\n } catch (e) {\n return false;\n }\n\n return true;\n })();\n\n function noop() {}\n\n // create a promise if it exists, otherwise, just\n // call the function directly\n function promise(func) {\n var ModulePromise = module.exports.Promise;\n var Prom = ModulePromise !== void 0 ? ModulePromise : global.Promise;\n\n if (typeof Prom === 'function') {\n return new Prom(func);\n }\n\n func(noop, noop);\n\n return null;\n }\n\n var bitmapMapper = (function (skipTransform, map) {\n // see https://github.com/catdad/canvas-confetti/issues/209\n // creating canvases is actually pretty expensive, so we should create a\n // 1:1 map for bitmap:canvas, so that we can animate the confetti in\n // a performant manner, but also not store them forever so that we don't\n // have a memory leak\n return {\n transform: function(bitmap) {\n if (skipTransform) {\n return bitmap;\n }\n\n if (map.has(bitmap)) {\n return map.get(bitmap);\n }\n\n var canvas = new OffscreenCanvas(bitmap.width, bitmap.height);\n var ctx = canvas.getContext('2d');\n ctx.drawImage(bitmap, 0, 0);\n\n map.set(bitmap, canvas);\n\n return canvas;\n },\n clear: function () {\n map.clear();\n }\n };\n })(canDrawBitmap, new Map());\n\n var raf = (function () {\n var TIME = Math.floor(1000 / 60);\n var frame, cancel;\n var frames = {};\n var lastFrameTime = 0;\n\n if (typeof requestAnimationFrame === 'function' && typeof cancelAnimationFrame === 'function') {\n frame = function (cb) {\n var id = Math.random();\n\n frames[id] = requestAnimationFrame(function onFrame(time) {\n if (lastFrameTime === time || lastFrameTime + TIME - 1 < time) {\n lastFrameTime = time;\n delete frames[id];\n\n cb();\n } else {\n frames[id] = requestAnimationFrame(onFrame);\n }\n });\n\n return id;\n };\n cancel = function (id) {\n if (frames[id]) {\n cancelAnimationFrame(frames[id]);\n }\n };\n } else {\n frame = function (cb) {\n return setTimeout(cb, TIME);\n };\n cancel = function (timer) {\n return clearTimeout(timer);\n };\n }\n\n return { frame: frame, cancel: cancel };\n }());\n\n var getWorker = (function () {\n var worker;\n var prom;\n var resolves = {};\n\n function decorate(worker) {\n function execute(options, callback) {\n worker.postMessage({ options: options || {}, callback: callback });\n }\n worker.init = function initWorker(canvas) {\n var offscreen = canvas.transferControlToOffscreen();\n worker.postMessage({ canvas: offscreen }, [offscreen]);\n };\n\n worker.fire = function fireWorker(options, size, done) {\n if (prom) {\n execute(options, null);\n return prom;\n }\n\n var id = Math.random().toString(36).slice(2);\n\n prom = promise(function (resolve) {\n function workerDone(msg) {\n if (msg.data.callback !== id) {\n return;\n }\n\n delete resolves[id];\n worker.removeEventListener('message', workerDone);\n\n prom = null;\n\n bitmapMapper.clear();\n\n done();\n resolve();\n }\n\n worker.addEventListener('message', workerDone);\n execute(options, id);\n\n resolves[id] = workerDone.bind(null, { data: { callback: id }});\n });\n\n return prom;\n };\n\n worker.reset = function resetWorker() {\n worker.postMessage({ reset: true });\n\n for (var id in resolves) {\n resolves[id]();\n delete resolves[id];\n }\n };\n }\n\n return function () {\n if (worker) {\n return worker;\n }\n\n if (!isWorker && canUseWorker) {\n var code = [\n 'var CONFETTI, SIZE = {}, module = {};',\n '(' + main.toString() + ')(this, module, true, SIZE);',\n 'onmessage = function(msg) {',\n ' if (msg.data.options) {',\n ' CONFETTI(msg.data.options).then(function () {',\n ' if (msg.data.callback) {',\n ' postMessage({ callback: msg.data.callback });',\n ' }',\n ' });',\n ' } else if (msg.data.reset) {',\n ' CONFETTI && CONFETTI.reset();',\n ' } else if (msg.data.resize) {',\n ' SIZE.width = msg.data.resize.width;',\n ' SIZE.height = msg.data.resize.height;',\n ' } else if (msg.data.canvas) {',\n ' SIZE.width = msg.data.canvas.width;',\n ' SIZE.height = msg.data.canvas.height;',\n ' CONFETTI = module.exports.create(msg.data.canvas);',\n ' }',\n '}',\n ].join('\\n');\n try {\n worker = new Worker(URL.createObjectURL(new Blob([code])));\n } catch (e) {\n // eslint-disable-next-line no-console\n typeof console !== undefined && typeof console.warn === 'function' ? console.warn('🎊 Could not load worker', e) : null;\n\n return null;\n }\n\n decorate(worker);\n }\n\n return worker;\n };\n })();\n\n var defaults = {\n particleCount: 50,\n angle: 90,\n spread: 45,\n startVelocity: 45,\n decay: 0.9,\n gravity: 1,\n drift: 0,\n ticks: 200,\n x: 0.5,\n y: 0.5,\n shapes: ['square', 'circle'],\n zIndex: 100,\n colors: [\n '#26ccff',\n '#a25afd',\n '#ff5e7e',\n '#88ff5a',\n '#fcff42',\n '#ffa62d',\n '#ff36ff'\n ],\n // probably should be true, but back-compat\n disableForReducedMotion: false,\n scalar: 1\n };\n\n function convert(val, transform) {\n return transform ? transform(val) : val;\n }\n\n function isOk(val) {\n return !(val === null || val === undefined);\n }\n\n function prop(options, name, transform) {\n return convert(\n options && isOk(options[name]) ? options[name] : defaults[name],\n transform\n );\n }\n\n function onlyPositiveInt(number){\n return number < 0 ? 0 : Math.floor(number);\n }\n\n function randomInt(min, max) {\n // [min, max)\n return Math.floor(Math.random() * (max - min)) + min;\n }\n\n function toDecimal(str) {\n return parseInt(str, 16);\n }\n\n function colorsToRgb(colors) {\n return colors.map(hexToRgb);\n }\n\n function hexToRgb(str) {\n var val = String(str).replace(/[^0-9a-f]/gi, '');\n\n if (val.length < 6) {\n val = val[0]+val[0]+val[1]+val[1]+val[2]+val[2];\n }\n\n return {\n r: toDecimal(val.substring(0,2)),\n g: toDecimal(val.substring(2,4)),\n b: toDecimal(val.substring(4,6))\n };\n }\n\n function getOrigin(options) {\n var origin = prop(options, 'origin', Object);\n origin.x = prop(origin, 'x', Number);\n origin.y = prop(origin, 'y', Number);\n\n return origin;\n }\n\n function setCanvasWindowSize(canvas) {\n canvas.width = document.documentElement.clientWidth;\n canvas.height = document.documentElement.clientHeight;\n }\n\n function setCanvasRectSize(canvas) {\n var rect = canvas.getBoundingClientRect();\n canvas.width = rect.width;\n canvas.height = rect.height;\n }\n\n function getCanvas(zIndex) {\n var canvas = document.createElement('canvas');\n\n canvas.style.position = 'fixed';\n canvas.style.top = '0px';\n canvas.style.left = '0px';\n canvas.style.pointerEvents = 'none';\n canvas.style.zIndex = zIndex;\n\n return canvas;\n }\n\n function ellipse(context, x, y, radiusX, radiusY, rotation, startAngle, endAngle, antiClockwise) {\n context.save();\n context.translate(x, y);\n context.rotate(rotation);\n context.scale(radiusX, radiusY);\n context.arc(0, 0, 1, startAngle, endAngle, antiClockwise);\n context.restore();\n }\n\n function randomPhysics(opts) {\n var radAngle = opts.angle * (Math.PI / 180);\n var radSpread = opts.spread * (Math.PI / 180);\n\n return {\n x: opts.x,\n y: opts.y,\n wobble: Math.random() * 10,\n wobbleSpeed: Math.min(0.11, Math.random() * 0.1 + 0.05),\n velocity: (opts.startVelocity * 0.5) + (Math.random() * opts.startVelocity),\n angle2D: -radAngle + ((0.5 * radSpread) - (Math.random() * radSpread)),\n tiltAngle: (Math.random() * (0.75 - 0.25) + 0.25) * Math.PI,\n color: opts.color,\n shape: opts.shape,\n tick: 0,\n totalTicks: opts.ticks,\n decay: opts.decay,\n drift: opts.drift,\n random: Math.random() + 2,\n tiltSin: 0,\n tiltCos: 0,\n wobbleX: 0,\n wobbleY: 0,\n gravity: opts.gravity * 3,\n ovalScalar: 0.6,\n scalar: opts.scalar,\n flat: opts.flat\n };\n }\n\n function updateFetti(context, fetti) {\n fetti.x += Math.cos(fetti.angle2D) * fetti.velocity + fetti.drift;\n fetti.y += Math.sin(fetti.angle2D) * fetti.velocity + fetti.gravity;\n fetti.velocity *= fetti.decay;\n\n if (fetti.flat) {\n fetti.wobble = 0;\n fetti.wobbleX = fetti.x + (10 * fetti.scalar);\n fetti.wobbleY = fetti.y + (10 * fetti.scalar);\n\n fetti.tiltSin = 0;\n fetti.tiltCos = 0;\n fetti.random = 1;\n } else {\n fetti.wobble += fetti.wobbleSpeed;\n fetti.wobbleX = fetti.x + ((10 * fetti.scalar) * Math.cos(fetti.wobble));\n fetti.wobbleY = fetti.y + ((10 * fetti.scalar) * Math.sin(fetti.wobble));\n\n fetti.tiltAngle += 0.1;\n fetti.tiltSin = Math.sin(fetti.tiltAngle);\n fetti.tiltCos = Math.cos(fetti.tiltAngle);\n fetti.random = Math.random() + 2;\n }\n\n var progress = (fetti.tick++) / fetti.totalTicks;\n\n var x1 = fetti.x + (fetti.random * fetti.tiltCos);\n var y1 = fetti.y + (fetti.random * fetti.tiltSin);\n var x2 = fetti.wobbleX + (fetti.random * fetti.tiltCos);\n var y2 = fetti.wobbleY + (fetti.random * fetti.tiltSin);\n\n context.fillStyle = 'rgba(' + fetti.color.r + ', ' + fetti.color.g + ', ' + fetti.color.b + ', ' + (1 - progress) + ')';\n\n context.beginPath();\n\n if (canUsePaths && fetti.shape.type === 'path' && typeof fetti.shape.path === 'string' && Array.isArray(fetti.shape.matrix)) {\n context.fill(transformPath2D(\n fetti.shape.path,\n fetti.shape.matrix,\n fetti.x,\n fetti.y,\n Math.abs(x2 - x1) * 0.1,\n Math.abs(y2 - y1) * 0.1,\n Math.PI / 10 * fetti.wobble\n ));\n } else if (fetti.shape.type === 'bitmap') {\n var rotation = Math.PI / 10 * fetti.wobble;\n var scaleX = Math.abs(x2 - x1) * 0.1;\n var scaleY = Math.abs(y2 - y1) * 0.1;\n var width = fetti.shape.bitmap.width * fetti.scalar;\n var height = fetti.shape.bitmap.height * fetti.scalar;\n\n var matrix = new DOMMatrix([\n Math.cos(rotation) * scaleX,\n Math.sin(rotation) * scaleX,\n -Math.sin(rotation) * scaleY,\n Math.cos(rotation) * scaleY,\n fetti.x,\n fetti.y\n ]);\n\n // apply the transform matrix from the confetti shape\n matrix.multiplySelf(new DOMMatrix(fetti.shape.matrix));\n\n var pattern = context.createPattern(bitmapMapper.transform(fetti.shape.bitmap), 'no-repeat');\n pattern.setTransform(matrix);\n\n context.globalAlpha = (1 - progress);\n context.fillStyle = pattern;\n context.fillRect(\n fetti.x - (width / 2),\n fetti.y - (height / 2),\n width,\n height\n );\n context.globalAlpha = 1;\n } else if (fetti.shape === 'circle') {\n context.ellipse ?\n context.ellipse(fetti.x, fetti.y, Math.abs(x2 - x1) * fetti.ovalScalar, Math.abs(y2 - y1) * fetti.ovalScalar, Math.PI / 10 * fetti.wobble, 0, 2 * Math.PI) :\n ellipse(context, fetti.x, fetti.y, Math.abs(x2 - x1) * fetti.ovalScalar, Math.abs(y2 - y1) * fetti.ovalScalar, Math.PI / 10 * fetti.wobble, 0, 2 * Math.PI);\n } else if (fetti.shape === 'star') {\n var rot = Math.PI / 2 * 3;\n var innerRadius = 4 * fetti.scalar;\n var outerRadius = 8 * fetti.scalar;\n var x = fetti.x;\n var y = fetti.y;\n var spikes = 5;\n var step = Math.PI / spikes;\n\n while (spikes--) {\n x = fetti.x + Math.cos(rot) * outerRadius;\n y = fetti.y + Math.sin(rot) * outerRadius;\n context.lineTo(x, y);\n rot += step;\n\n x = fetti.x + Math.cos(rot) * innerRadius;\n y = fetti.y + Math.sin(rot) * innerRadius;\n context.lineTo(x, y);\n rot += step;\n }\n } else {\n context.moveTo(Math.floor(fetti.x), Math.floor(fetti.y));\n context.lineTo(Math.floor(fetti.wobbleX), Math.floor(y1));\n context.lineTo(Math.floor(x2), Math.floor(y2));\n context.lineTo(Math.floor(x1), Math.floor(fetti.wobbleY));\n }\n\n context.closePath();\n context.fill();\n\n return fetti.tick < fetti.totalTicks;\n }\n\n function animate(canvas, fettis, resizer, size, done) {\n var animatingFettis = fettis.slice();\n var context = canvas.getContext('2d');\n var animationFrame;\n var destroy;\n\n var prom = promise(function (resolve) {\n function onDone() {\n animationFrame = destroy = null;\n\n context.clearRect(0, 0, size.width, size.height);\n bitmapMapper.clear();\n\n done();\n resolve();\n }\n\n function update() {\n if (isWorker && !(size.width === workerSize.width && size.height === workerSize.height)) {\n size.width = canvas.width = workerSize.width;\n size.height = canvas.height = workerSize.height;\n }\n\n if (!size.width && !size.height) {\n resizer(canvas);\n size.width = canvas.width;\n size.height = canvas.height;\n }\n\n context.clearRect(0, 0, size.width, size.height);\n\n animatingFettis = animatingFettis.filter(function (fetti) {\n return updateFetti(context, fetti);\n });\n\n if (animatingFettis.length) {\n animationFrame = raf.frame(update);\n } else {\n onDone();\n }\n }\n\n animationFrame = raf.frame(update);\n destroy = onDone;\n });\n\n return {\n addFettis: function (fettis) {\n animatingFettis = animatingFettis.concat(fettis);\n\n return prom;\n },\n canvas: canvas,\n promise: prom,\n reset: function () {\n if (animationFrame) {\n raf.cancel(animationFrame);\n }\n\n if (destroy) {\n destroy();\n }\n }\n };\n }\n\n function confettiCannon(canvas, globalOpts) {\n var isLibCanvas = !canvas;\n var allowResize = !!prop(globalOpts || {}, 'resize');\n var hasResizeEventRegistered = false;\n var globalDisableForReducedMotion = prop(globalOpts, 'disableForReducedMotion', Boolean);\n var shouldUseWorker = canUseWorker && !!prop(globalOpts || {}, 'useWorker');\n var worker = shouldUseWorker ? getWorker() : null;\n var resizer = isLibCanvas ? setCanvasWindowSize : setCanvasRectSize;\n var initialized = (canvas && worker) ? !!canvas.__confetti_initialized : false;\n var preferLessMotion = typeof matchMedia === 'function' && matchMedia('(prefers-reduced-motion)').matches;\n var animationObj;\n\n function fireLocal(options, size, done) {\n var particleCount = prop(options, 'particleCount', onlyPositiveInt);\n var angle = prop(options, 'angle', Number);\n var spread = prop(options, 'spread', Number);\n var startVelocity = prop(options, 'startVelocity', Number);\n var decay = prop(options, 'decay', Number);\n var gravity = prop(options, 'gravity', Number);\n var drift = prop(options, 'drift', Number);\n var colors = prop(options, 'colors', colorsToRgb);\n var ticks = prop(options, 'ticks', Number);\n var shapes = prop(options, 'shapes');\n var scalar = prop(options, 'scalar');\n var flat = !!prop(options, 'flat');\n var origin = getOrigin(options);\n\n var temp = particleCount;\n var fettis = [];\n\n var startX = canvas.width * origin.x;\n var startY = canvas.height * origin.y;\n\n while (temp--) {\n fettis.push(\n randomPhysics({\n x: startX,\n y: startY,\n angle: angle,\n spread: spread,\n startVelocity: startVelocity,\n color: colors[temp % colors.length],\n shape: shapes[randomInt(0, shapes.length)],\n ticks: ticks,\n decay: decay,\n gravity: gravity,\n drift: drift,\n scalar: scalar,\n flat: flat\n })\n );\n }\n\n // if we have a previous canvas already animating,\n // add to it\n if (animationObj) {\n return animationObj.addFettis(fettis);\n }\n\n animationObj = animate(canvas, fettis, resizer, size , done);\n\n return animationObj.promise;\n }\n\n function fire(options) {\n var disableForReducedMotion = globalDisableForReducedMotion || prop(options, 'disableForReducedMotion', Boolean);\n var zIndex = prop(options, 'zIndex', Number);\n\n if (disableForReducedMotion && preferLessMotion) {\n return promise(function (resolve) {\n resolve();\n });\n }\n\n if (isLibCanvas && animationObj) {\n // use existing canvas from in-progress animation\n canvas = animationObj.canvas;\n } else if (isLibCanvas && !canvas) {\n // create and initialize a new canvas\n canvas = getCanvas(zIndex);\n document.body.appendChild(canvas);\n }\n\n if (allowResize && !initialized) {\n // initialize the size of a user-supplied canvas\n resizer(canvas);\n }\n\n var size = {\n width: canvas.width,\n height: canvas.height\n };\n\n if (worker && !initialized) {\n worker.init(canvas);\n }\n\n initialized = true;\n\n if (worker) {\n canvas.__confetti_initialized = true;\n }\n\n function onResize() {\n if (worker) {\n // TODO this really shouldn't be immediate, because it is expensive\n var obj = {\n getBoundingClientRect: function () {\n if (!isLibCanvas) {\n return canvas.getBoundingClientRect();\n }\n }\n };\n\n resizer(obj);\n\n worker.postMessage({\n resize: {\n width: obj.width,\n height: obj.height\n }\n });\n return;\n }\n\n // don't actually query the size here, since this\n // can execute frequently and rapidly\n size.width = size.height = null;\n }\n\n function done() {\n animationObj = null;\n\n if (allowResize) {\n hasResizeEventRegistered = false;\n global.removeEventListener('resize', onResize);\n }\n\n if (isLibCanvas && canvas) {\n if (document.body.contains(canvas)) {\n document.body.removeChild(canvas); \n }\n canvas = null;\n initialized = false;\n }\n }\n\n if (allowResize && !hasResizeEventRegistered) {\n hasResizeEventRegistered = true;\n global.addEventListener('resize', onResize, false);\n }\n\n if (worker) {\n return worker.fire(options, size, done);\n }\n\n return fireLocal(options, size, done);\n }\n\n fire.reset = function () {\n if (worker) {\n worker.reset();\n }\n\n if (animationObj) {\n animationObj.reset();\n }\n };\n\n return fire;\n }\n\n // Make default export lazy to defer worker creation until called.\n var defaultFire;\n function getDefaultFire() {\n if (!defaultFire) {\n defaultFire = confettiCannon(null, { useWorker: true, resize: true });\n }\n return defaultFire;\n }\n\n function transformPath2D(pathString, pathMatrix, x, y, scaleX, scaleY, rotation) {\n var path2d = new Path2D(pathString);\n\n var t1 = new Path2D();\n t1.addPath(path2d, new DOMMatrix(pathMatrix));\n\n var t2 = new Path2D();\n // see https://developer.mozilla.org/en-US/docs/Web/API/DOMMatrix/DOMMatrix\n t2.addPath(t1, new DOMMatrix([\n Math.cos(rotation) * scaleX,\n Math.sin(rotation) * scaleX,\n -Math.sin(rotation) * scaleY,\n Math.cos(rotation) * scaleY,\n x,\n y\n ]));\n\n return t2;\n }\n\n function shapeFromPath(pathData) {\n if (!canUsePaths) {\n throw new Error('path confetti are not supported in this browser');\n }\n\n var path, matrix;\n\n if (typeof pathData === 'string') {\n path = pathData;\n } else {\n path = pathData.path;\n matrix = pathData.matrix;\n }\n\n var path2d = new Path2D(path);\n var tempCanvas = document.createElement('canvas');\n var tempCtx = tempCanvas.getContext('2d');\n\n if (!matrix) {\n // attempt to figure out the width of the path, up to 1000x1000\n var maxSize = 1000;\n var minX = maxSize;\n var minY = maxSize;\n var maxX = 0;\n var maxY = 0;\n var width, height;\n\n // do some line skipping... this is faster than checking\n // every pixel and will be mostly still correct\n for (var x = 0; x < maxSize; x += 2) {\n for (var y = 0; y < maxSize; y += 2) {\n if (tempCtx.isPointInPath(path2d, x, y, 'nonzero')) {\n minX = Math.min(minX, x);\n minY = Math.min(minY, y);\n maxX = Math.max(maxX, x);\n maxY = Math.max(maxY, y);\n }\n }\n }\n\n width = maxX - minX;\n height = maxY - minY;\n\n var maxDesiredSize = 10;\n var scale = Math.min(maxDesiredSize/width, maxDesiredSize/height);\n\n matrix = [\n scale, 0, 0, scale,\n -Math.round((width/2) + minX) * scale,\n -Math.round((height/2) + minY) * scale\n ];\n }\n\n return {\n type: 'path',\n path: path,\n matrix: matrix\n };\n }\n\n function shapeFromText(textData) {\n var text,\n scalar = 1,\n color = '#000000',\n // see https://nolanlawson.com/2022/04/08/the-struggle-of-using-native-emoji-on-the-web/\n fontFamily = '\"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\", \"EmojiOne Color\", \"Android Emoji\", \"Twemoji Mozilla\", \"system emoji\", sans-serif';\n\n if (typeof textData === 'string') {\n text = textData;\n } else {\n text = textData.text;\n scalar = 'scalar' in textData ? textData.scalar : scalar;\n fontFamily = 'fontFamily' in textData ? textData.fontFamily : fontFamily;\n color = 'color' in textData ? textData.color : color;\n }\n\n // all other confetti are 10 pixels,\n // so this pixel size is the de-facto 100% scale confetti\n var fontSize = 10 * scalar;\n var font = '' + fontSize + 'px ' + fontFamily;\n\n var canvas = new OffscreenCanvas(fontSize, fontSize);\n var ctx = canvas.getContext('2d');\n\n ctx.font = font;\n var size = ctx.measureText(text);\n var width = Math.ceil(size.actualBoundingBoxRight + size.actualBoundingBoxLeft);\n var height = Math.ceil(size.actualBoundingBoxAscent + size.actualBoundingBoxDescent);\n\n var padding = 2;\n var x = size.actualBoundingBoxLeft + padding;\n var y = size.actualBoundingBoxAscent + padding;\n width += padding + padding;\n height += padding + padding;\n\n canvas = new OffscreenCanvas(width, height);\n ctx = canvas.getContext('2d');\n ctx.font = font;\n ctx.fillStyle = color;\n\n ctx.fillText(text, x, y);\n\n var scale = 1 / scalar;\n\n return {\n type: 'bitmap',\n // TODO these probably need to be transfered for workers\n bitmap: canvas.transferToImageBitmap(),\n matrix: [scale, 0, 0, scale, -width * scale / 2, -height * scale / 2]\n };\n }\n\n module.exports = function() {\n return getDefaultFire().apply(this, arguments);\n };\n module.exports.reset = function() {\n getDefaultFire().reset();\n };\n module.exports.create = confettiCannon;\n module.exports.shapeFromPath = shapeFromPath;\n module.exports.shapeFromText = shapeFromText;\n}((function () {\n if (typeof window !== 'undefined') {\n return window;\n }\n\n if (typeof self !== 'undefined') {\n return self;\n }\n\n return this || {};\n})(), module, false));\n\n// end source content\n\nexport default module.exports;\nexport var create = module.exports.create;\n","<template>\n <div class=\"text-subtitle-1\">\n <v-alert v-if=\"isNewUser\" type=\"success\" class=\"text-subtitle-1\" variant=\"tonal\" :prepend-icon=\"'mdi-check'\">\n Welcome, {{ username }}! Please take a moment to look through these settings:\n </v-alert>\n\n <h1 class=\"text-h3\">Account Settings</h1>\n <h2 class=\"text-h4\">General:</h2>\n\n <v-checkbox\n v-model=\"configStore.config.likesConfetti\"\n label=\"I like confetti\"\n @update:model-value=\"updateConfetti\"\n />\n <v-checkbox v-model=\"configStore.config.darkMode\" label=\"I like the dark\" @update:model-value=\"updateDark\" />\n <!-- <h2 class=\"text-h4\">Languages:</h2>\n I am near-fluent or better in the following languages:\n {{ selectedLanguages.toString() }}\n <v-checkbox\n v-for=\"(language, i) in configLanguages\"\n :key=\"i\"\n :label=\"language.name\"\n :value=\"language.code\"\n v-model=\"selectedLanguages\"\n @update:model-value=\"updateLanguage\"\n /> -->\n\n <v-divider class=\"my-6\" />\n\n <h2 class=\"text-h4 mb-4\">Learning Preferences:</h2>\n <p class=\"text-body-2 text-medium-emphasis mb-4\">Customize how content is presented in your registered courses.</p>\n\n <v-select\n v-model=\"selectedCourseId\"\n :items=\"registeredCourses\"\n item-title=\"name\"\n item-value=\"courseID\"\n label=\"Select a course\"\n variant=\"outlined\"\n density=\"comfortable\"\n class=\"mb-4\"\n style=\"max-width: 400px\"\n >\n <template #item=\"{ props, item }\">\n <v-list-item v-bind=\"props\">\n <template #subtitle>\n {{ item.raw.courseID }}\n </template>\n </v-list-item>\n </template>\n </v-select>\n\n <user-tag-preferences\n v-if=\"selectedCourseId\"\n :course-id=\"selectedCourseId\"\n @preferences-saved=\"onPreferencesSaved\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { getCurrentUser, useConfigStore, UserTagPreferences } from '@vue-skuilder/common-ui';\nimport { UserDBInterface, getDataLayer } from '@vue-skuilder/db';\nimport { CourseConfig } from '@vue-skuilder/common';\nimport confetti from 'canvas-confetti';\nimport { defineComponent, PropType } from 'vue';\nimport { useRoute } from 'vue-router';\n\ninterface Language {\n name: string;\n code: string;\n}\n\nexport default defineComponent({\n name: 'UserSettings',\n\n components: {\n UserTagPreferences,\n },\n\n props: {\n username: {\n type: String as PropType<string>,\n required: true,\n },\n },\n\n setup() {\n const configStore = useConfigStore();\n const route = useRoute();\n\n const darkMode = configStore.config.darkMode;\n const likesConfetti = configStore.config.likesConfetti;\n\n const isNewUser = route.path.endsWith('new');\n\n return { configStore, darkMode, likesConfetti, route, isNewUser };\n },\n\n data() {\n return {\n u: {} as UserDBInterface,\n configLanguages: [\n {\n name: 'English',\n code: 'en',\n },\n {\n name: 'French',\n code: 'fr',\n },\n ] as Language[],\n selectedLanguages: [] as string[],\n registeredCourses: [] as CourseConfig[],\n selectedCourseId: '' as string,\n };\n },\n\n async created() {\n this.u = await getCurrentUser();\n this.configLanguages.forEach((l) => {\n console.log(`afweatifvwzeatfvwzeta` + l.name);\n });\n\n // Load registered courses for preferences selector\n await this.loadRegisteredCourses();\n },\n\n methods: {\n updateDark(): void {\n this.configStore.updateDarkMode(this.configStore.config.darkMode);\n },\n\n updateConfetti(): void {\n this.configStore.updateLikesConfetti(this.configStore.config.likesConfetti);\n\n if (this.configStore.config.likesConfetti) {\n confetti({\n origin: {\n x: 0.5,\n y: 1,\n },\n });\n }\n },\n\n async loadRegisteredCourses(): Promise<void> {\n try {\n const activeCourses = await this.u.getActiveCourses();\n const dataLayer = getDataLayer();\n\n // Fetch course configs for display names\n const courseConfigs = await Promise.all(\n activeCourses.map(async (reg) => {\n try {\n const courseDB = dataLayer.getCourseDB(reg.courseID);\n return await courseDB.getCourseConfig();\n } catch {\n // Return minimal config if fetch fails\n return { courseID: reg.courseID, name: reg.courseID } as CourseConfig;\n }\n })\n );\n\n this.registeredCourses = courseConfigs.filter(Boolean);\n } catch (e) {\n console.error('Failed to load registered courses:', e);\n }\n },\n\n onPreferencesSaved(): void {\n // Could show a snackbar or other feedback here\n console.log('Preferences saved for course:', this.selectedCourseId);\n },\n },\n});\n</script>\n\n<style scoped></style>\n"],"names":["module","main","global","isWorker","workerSize","canUseWorker","Worker","Blob","Promise","OffscreenCanvas","OffscreenCanvasRenderingContext2D","HTMLCanvasElement","prototype","transferControlToOffscreen","URL","createObjectURL","canUsePaths","Path2D","DOMMatrix","noop","promise","func","ModulePromise","exports","Prom","frame","cancel","TIME","frames","lastFrameTime","defaultFire","bitmapMapper","skipTransform","map","transform","bitmap","has","get","canvas","width","height","getContext","drawImage","set","clear","ctx","fillRect","transferToImageBitmap","createPattern","e","Map","raf","Math","floor","requestAnimationFrame","cancelAnimationFrame","cb","id","random","onFrame","time","setTimeout","timer","clearTimeout","getWorker","worker","prom","resolves","code","toString","join","console","warn","execute","options","callback","postMessage","init","offscreen","fire","size","done","slice","resolve","workerDone","msg","data","removeEventListener","addEventListener","bind","reset","decorate","defaults","particleCount","angle","spread","startVelocity","decay","gravity","drift","ticks","x","y","shapes","zIndex","colors","disableForReducedMotion","scalar","prop","name","val","convert","onlyPositiveInt","number","toDecimal","str","parseInt","colorsToRgb","hexToRgb","String","replace","length","r","substring","g","b","setCanvasWindowSize","document","documentElement","clientWidth","clientHeight","setCanvasRectSize","rect","getBoundingClientRect","updateFetti","context","fetti","cos","angle2D","velocity","sin","flat","wobble","wobbleX","wobbleY","tiltSin","tiltCos","wobbleSpeed","tiltAngle","progress","tick","totalTicks","x1","y1","x2","y2","fillStyle","color","beginPath","shape","type","path","Array","isArray","matrix","fill","pathString","pathMatrix","scaleX","scaleY","rotation","path2d","t1","addPath","t2","transformPath2D","abs","PI","multiplySelf","pattern","setTransform","globalAlpha","ellipse","ovalScalar","radiusX","radiusY","startAngle","endAngle","antiClockwise","save","translate","rotate","scale","arc","restore","rot","innerRadius","outerRadius","spikes","step","lineTo","moveTo","closePath","confettiCannon","globalOpts","animationObj","isLibCanvas","allowResize","hasResizeEventRegistered","globalDisableForReducedMotion","Boolean","resizer","initialized","__confetti_initialized","preferLessMotion","matchMedia","matches","fireLocal","opts","radAngle","radSpread","min","max","Number","origin","Object","getOrigin","temp","fettis","startX","startY","push","addFettis","animationFrame","destroy","animatingFettis","onDone","clearRect","update","filter","concat","animate","createElement","style","position","top","left","pointerEvents","getCanvas","body","appendChild","onResize","obj","resize","contains","removeChild","getDefaultFire","useWorker","apply","this","arguments","create","shapeFromPath","pathData","Error","tempCtx","maxSize","minX","minY","maxX","maxY","isPointInPath","round","shapeFromText","textData","text","fontFamily","fontSize","font","measureText","ceil","actualBoundingBoxRight","actualBoundingBoxLeft","actualBoundingBoxAscent","actualBoundingBoxDescent","padding","fillText","window","self","confetti","_sfc_main","defineComponent","components","UserTagPreferences","props","username","required","setup","configStore","useConfigStore","route","useRoute","darkMode","config","likesConfetti","isNewUser","endsWith","u","configLanguages","selectedLanguages","registeredCourses","selectedCourseId","created","getCurrentUser","forEach","l","log","loadRegisteredCourses","methods","updateDark","updateDarkMode","updateConfetti","updateLikesConfetti","activeCourses","getActiveCourses","dataLayer","getDataLayer","courseConfigs","all","async","reg","courseDB","getCourseDB","courseID","getCourseConfig","error","onPreferencesSaved","_hoisted_1","class","_openBlock","_createElementBlock","_ctx","_createBlock","_component_v_alert","key","variant","default","_withCtx","_createTextVNode","_toDisplayString","_","_createCommentVNode","_cache","_createElementVNode","_createVNode","_component_v_checkbox","modelValue","$event","label","_component_v_divider","_component_v_select","items","density","item","_component_v_list_item","_normalizeProps","_guardReactiveProps","subtitle","raw","_component_user_tag_preferences"],"mappings":"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","x_google_ignoreList":[0]}
@@ -0,0 +1,2 @@
1
+ import{d as a,G as l,H as s,s as e,f as t,o as n,b as u,e as r,t as o}from"./index-CfLe2ewO.js";const v=a({__name:"UserStats",setup(a){const v=l(null),i=l([]);return s((async()=>{v.value=await e();const a=await Promise.all([1,7,30].map((a=>v.value.getReviewsForcast(a))));i.value=a.map((a=>a.length))})),(a,l)=>(n(),t("div",null,[l[0]||(l[0]=u("h2",null,"Stats!",-1)),r(" One day: "+o(i.value[0])+" ",1),l[1]||(l[1]=u("br",null,null,-1)),r(" Seven day: "+o(i.value[1])+" ",1),l[2]||(l[2]=u("br",null,null,-1)),r(" Thirty Day: "+o(i.value[2]),1)]))}});export{v as default};
2
+ //# sourceMappingURL=UserStats-B_Oc2Pl5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserStats-B_Oc2Pl5.js","sources":["../../src/components/User/UserStats.vue"],"sourcesContent":["<template>\n <div>\n <h2>Stats!</h2>\n One day: {{ scheduledReviews[0] }}\n <br />\n Seven day: {{ scheduledReviews[1] }}\n <br />\n Thirty Day: {{ scheduledReviews[2] }}\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, onMounted } from 'vue';\nimport { User } from '@vue-skuilder/db';\nimport { getCurrentUser } from '@vue-skuilder/common-ui';\n\nconst user = ref<User | null>(null);\nconst scheduledReviews = ref<number[]>([]);\n\nonMounted(async () => {\n user.value = await getCurrentUser();\n\n // Using Promise.all to handle all forecasts concurrently\n const days = [1, 7, 30];\n const forecasts = await Promise.all(days.map((d) => user.value!.getReviewsForcast(d)));\n scheduledReviews.value = forecasts.map((f) => f.length);\n});\n</script>\n\n<style scoped></style>\n"],"names":["user","ref","scheduledReviews","onMounted","async","value","getCurrentUser","forecasts","Promise","all","map","d","getReviewsForcast","f","length"],"mappings":"uIAgBA,MAAMA,EAAOC,EAAiB,MACxBC,EAAmBD,EAAc,WAEvCE,GAAUC,UACRJ,EAAKK,YAAcC,IAGnB,MACMC,QAAkBC,QAAQC,IADnB,CAAC,EAAG,EAAG,IACqBC,KAAKC,GAAMX,EAAKK,MAAOO,kBAAkBD,MAClFT,EAAiBG,MAAQE,EAAUG,KAAKG,GAAMA,EAAEC,QAAM"}
@@ -0,0 +1,2 @@
1
+ import{d as o,U as e,_ as r,r as i,c as n,o as a,w as s,a as t,e as l}from"./index-CfLe2ewO.js";const c=r(o({name:"VerifyEmailView",components:{VerifyEmail:e},methods:{handleVerified(o){console.log(`User ${o} verified successfully`)},handleError(o){console.error("Verification error:",o)},goToLogin(){this.$router.push({name:"login"})},goToHome(){this.$router.push({name:"home"})}}}),[["render",function(o,e,r,c,d,f){const m=i("v-btn"),u=i("verify-email",!0);return a(),n(u,{onVerified:o.handleVerified,onError:o.handleError},{"success-action":s((()=>[t(m,{color:"primary",onClick:o.goToLogin},{default:s((()=>e[0]||(e[0]=[l(" Continue to Login ")]))),_:1},8,["onClick"])])),"error-action":s((()=>[t(m,{variant:"text",onClick:o.goToHome},{default:s((()=>e[1]||(e[1]=[l(" Back to Home ")]))),_:1},8,["onClick"])])),_:1},8,["onVerified","onError"])}]]);export{c as default};
2
+ //# sourceMappingURL=VerifyEmail-C_CXjeU5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VerifyEmail-C_CXjeU5.js","sources":["../../src/views/VerifyEmail.vue"],"sourcesContent":["<template>\n <verify-email @verified=\"handleVerified\" @error=\"handleError\">\n <template #success-action>\n <v-btn color=\"primary\" @click=\"goToLogin\">\n Continue to Login\n </v-btn>\n </template>\n <template #error-action>\n <v-btn variant=\"text\" @click=\"goToHome\">\n Back to Home\n </v-btn>\n </template>\n </verify-email>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport { VerifyEmail } from '@vue-skuilder/common-ui';\n\nexport default defineComponent({\n name: 'VerifyEmailView',\n\n components: {\n VerifyEmail,\n },\n\n methods: {\n handleVerified(username: string) {\n console.log(`User ${username} verified successfully`);\n },\n\n handleError(error: string) {\n console.error('Verification error:', error);\n },\n\n goToLogin() {\n this.$router.push({ name: 'login' });\n },\n\n goToHome() {\n this.$router.push({ name: 'home' });\n },\n },\n});\n</script>\n"],"names":["defineComponent","name","components","VerifyEmail","methods","handleVerified","username","console","log","handleError","error","goToLogin","this","$router","push","goToHome","_createBlock","_component_verify_email","onVerified","_ctx","onError","_withCtx","_createVNode","_component_v_btn","color","onClick","default","_cache","_createTextVNode","_","variant"],"mappings":"0GAmBeA,EAAgB,CAC7BC,KAAM,kBAENC,WAAY,CAAAC,YACVA,GAGFC,QAAS,CACP,cAAAC,CAAeC,GACbC,QAAQC,IAAI,QAAQF,0BACtB,EAEA,WAAAG,CAAYC,GACVH,QAAQG,MAAM,sBAAuBA,EACvC,EAEA,SAAAC,GACEC,KAAKC,QAAQC,KAAK,CAAEb,KAAM,SAC5B,EAEA,QAAAc,GACEH,KAAKC,QAAQC,KAAK,CAAEb,KAAM,QAC5B,2FAxCFe,EAWeC,EAAA,CAXAC,WAAUC,EAAAd,eAAiBe,QAAOD,EAAAV,aAAA,CACpC,iBAAcY,GACvB,IAEQ,CAFRC,EAEQC,EAAA,CAFDC,MAAM,UAAWC,QAAON,EAAAR,WAAA,CAHrCe,QAAAL,GAGgD,IAE1CM,EAAA,KAAAA,EAAA,GAAA,CALNC,EAGgD,2BAHhDC,EAAA,GAAA,EAAA,CAAA,eAOe,eAAYR,GACrB,IAEQ,CAFRC,EAEQC,EAAA,CAFDO,QAAQ,OAAQL,QAAON,EAAAJ,UAAA,CARpCW,QAAAL,GAQ8C,IAExCM,EAAA,KAAAA,EAAA,GAAA,CAVNC,EAQ8C,sBAR9CC,EAAA,GAAA,EAAA,CAAA,eAAAA,EAAA,GAAA,EAAA,CAAA,aAAA"}
@@ -0,0 +1,2 @@
1
+ import{k as e,d as t,Y as n,r,c as a,o as i,w as o,h as u,a as s,e as l,b as c,f as d,t as f,F as p,n as h,a0 as g,a1 as m,u as v,a2 as y,G as _,a3 as w,j as b,s as C,a4 as S,a5 as I,a6 as k,g as x,a7 as D,a8 as V,K as T,D as E,a9 as A,H as F,aa as O,ab as R}from"./index-CfLe2ewO.js";import{BlanksCardDataShapes as j,allCourseWare as U,BlanksCard as q,eventsToSyllableSequence as N,SyllableSeqVis as P,transposeSyllableSeq as M,SkMidi as z}from"./index-BHFq3MXV.js";const B=e=>parseFloat(e),$=e=>parseInt(e,10),L={string:{databaseConverter:e=>e,previewConverter:e=>e},chess_puzzle:{databaseConverter:e=>e,previewConverter:e=>e},number:{databaseConverter:B,previewConverter:B},int:{databaseConverter:$,previewConverter:$},image:{databaseConverter:e=>e,previewConverter:e=>e?e.data:new Blob},audio:{databaseConverter:e=>e,previewConverter:e=>e?e.data:new Blob},midi:{databaseConverter:e=>e,previewConverter:e=>e},markdown:{databaseConverter:e=>e,previewConverter:e=>e},uploads:{databaseConverter:e=>e,previewConverter:e=>e}},W={tagIdentifier:"tags:",eloIdentifier:"elo:"};function J(e,t=W){const n=e.trim();if(!n)return null;const r=n.split("\n");let a,i=[];const o=[...r];let u=0;const s=t.tagIdentifier||W.tagIdentifier,l=t.eloIdentifier||W.eloIdentifier;for(let d=r.length-1;d>=0&&d>=r.length-2;d--){const e=r[d].trim();if(e.toLowerCase().startsWith(s.toLowerCase()))i=e.substring(s.length).split(",").map((e=>e.trim())).filter((e=>e)),u++;else if(e.toLowerCase().startsWith(l.toLowerCase())){const t=e.substring(l.length).trim(),n=parseInt(t,10);isNaN(n)||(a=n),u++}}u>0&&o.splice(o.length-u);const c=o.join("\n").trim();return c?{markdown:c,tags:i,elo:a}:null}function G(e){return e.split("\n---\n---\n").map((e=>e.trim())).filter((e=>e))}var H,K,Q,Y="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window||"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},Z={exports:{}},X=(H||(H=1,K=Z,Q=Z.exports,function(){var e,t="Expected a function",n="__lodash_hash_undefined__",r="__lodash_placeholder__",a=32,i=128,o=1/0,u=9007199254740991,s=NaN,l=4294967295,c=[["ary",i],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",a],["partialRight",64],["rearg",256]],d="[object Arguments]",f="[object Array]",p="[object Boolean]",h="[object Date]",g="[object Error]",m="[object Function]",v="[object GeneratorFunction]",y="[object Map]",_="[object Number]",w="[object Object]",b="[object Promise]",C="[object RegExp]",S="[object Set]",I="[object String]",k="[object Symbol]",x="[object WeakMap]",D="[object ArrayBuffer]",V="[object DataView]",T="[object Float32Array]",E="[object Float64Array]",A="[object Int8Array]",F="[object Int16Array]",O="[object Int32Array]",R="[object Uint8Array]",j="[object Uint8ClampedArray]",U="[object Uint16Array]",q="[object Uint32Array]",N=/\b__p \+= '';/g,P=/\b(__p \+=) '' \+/g,M=/(__e\(.*?\)|\b__t\)) \+\n'';/g,z=/&(?:amp|lt|gt|quot|#39);/g,B=/[&<>"']/g,$=RegExp(z.source),L=RegExp(B.source),W=/<%-([\s\S]+?)%>/g,J=/<%([\s\S]+?)%>/g,G=/<%=([\s\S]+?)%>/g,H=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Z=/^\w*$/,X=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ee=/[\\^$.*+?()[\]{}|]/g,te=RegExp(ee.source),ne=/^\s+/,re=/\s/,ae=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,ie=/\{\n\/\* \[wrapped with (.+)\] \*/,oe=/,? & /,ue=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,se=/[()=,{}\[\]\/\s]/,le=/\\(\\)?/g,ce=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,de=/\w*$/,fe=/^[-+]0x[0-9a-f]+$/i,pe=/^0b[01]+$/i,he=/^\[object .+?Constructor\]$/,ge=/^0o[0-7]+$/i,me=/^(?:0|[1-9]\d*)$/,ve=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,ye=/($^)/,_e=/['\n\r\u2028\u2029\\]/g,we="\\ud800-\\udfff",be="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",Ce="\\u2700-\\u27bf",Se="a-z\\xdf-\\xf6\\xf8-\\xff",Ie="A-Z\\xc0-\\xd6\\xd8-\\xde",ke="\\ufe0e\\ufe0f",xe="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",De="["+we+"]",Ve="["+xe+"]",Te="["+be+"]",Ee="\\d+",Ae="["+Ce+"]",Fe="["+Se+"]",Oe="[^"+we+xe+Ee+Ce+Se+Ie+"]",Re="\\ud83c[\\udffb-\\udfff]",je="[^"+we+"]",Ue="(?:\\ud83c[\\udde6-\\uddff]){2}",qe="[\\ud800-\\udbff][\\udc00-\\udfff]",Ne="["+Ie+"]",Pe="\\u200d",Me="(?:"+Fe+"|"+Oe+")",ze="(?:"+Ne+"|"+Oe+")",Be="(?:['’](?:d|ll|m|re|s|t|ve))?",$e="(?:['’](?:D|LL|M|RE|S|T|VE))?",Le="(?:"+Te+"|"+Re+")?",We="["+ke+"]?",Je=We+Le+"(?:"+Pe+"(?:"+[je,Ue,qe].join("|")+")"+We+Le+")*",Ge="(?:"+[Ae,Ue,qe].join("|")+")"+Je,He="(?:"+[je+Te+"?",Te,Ue,qe,De].join("|")+")",Ke=RegExp("['’]","g"),Qe=RegExp(Te,"g"),Ye=RegExp(Re+"(?="+Re+")|"+He+Je,"g"),Ze=RegExp([Ne+"?"+Fe+"+"+Be+"(?="+[Ve,Ne,"$"].join("|")+")",ze+"+"+$e+"(?="+[Ve,Ne+Me,"$"].join("|")+")",Ne+"?"+Me+"+"+Be,Ne+"+"+$e,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Ee,Ge].join("|"),"g"),Xe=RegExp("["+Pe+we+be+ke+"]"),et=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,tt=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],nt=-1,rt={};rt[T]=rt[E]=rt[A]=rt[F]=rt[O]=rt[R]=rt[j]=rt[U]=rt[q]=!0,rt[d]=rt[f]=rt[D]=rt[p]=rt[V]=rt[h]=rt[g]=rt[m]=rt[y]=rt[_]=rt[w]=rt[C]=rt[S]=rt[I]=rt[x]=!1;var at={};at[d]=at[f]=at[D]=at[V]=at[p]=at[h]=at[T]=at[E]=at[A]=at[F]=at[O]=at[y]=at[_]=at[w]=at[C]=at[S]=at[I]=at[k]=at[R]=at[j]=at[U]=at[q]=!0,at[g]=at[m]=at[x]=!1;var it={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},ot=parseFloat,ut=parseInt,st="object"==typeof Y&&Y&&Y.Object===Object&&Y,lt="object"==typeof self&&self&&self.Object===Object&&self,ct=st||lt||Function("return this")(),dt=Q&&!Q.nodeType&&Q,ft=dt&&K&&!K.nodeType&&K,pt=ft&&ft.exports===dt,ht=pt&&st.process,gt=function(){try{return ft&&ft.require&&ft.require("util").types||ht&&ht.binding&&ht.binding("util")}catch(e){}}(),mt=gt&&gt.isArrayBuffer,vt=gt&&gt.isDate,yt=gt&&gt.isMap,_t=gt&&gt.isRegExp,wt=gt&&gt.isSet,bt=gt&&gt.isTypedArray;function Ct(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function St(e,t,n,r){for(var a=-1,i=null==e?0:e.length;++a<i;){var o=e[a];t(r,o,n(o),e)}return r}function It(e,t){for(var n=-1,r=null==e?0:e.length;++n<r&&!1!==t(e[n],n,e););return e}function kt(e,t){for(var n=null==e?0:e.length;n--&&!1!==t(e[n],n,e););return e}function xt(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(!t(e[n],n,e))return!1;return!0}function Dt(e,t){for(var n=-1,r=null==e?0:e.length,a=0,i=[];++n<r;){var o=e[n];t(o,n,e)&&(i[a++]=o)}return i}function Vt(e,t){return!(null==e||!e.length)&&Nt(e,t,0)>-1}function Tt(e,t,n){for(var r=-1,a=null==e?0:e.length;++r<a;)if(n(t,e[r]))return!0;return!1}function Et(e,t){for(var n=-1,r=null==e?0:e.length,a=Array(r);++n<r;)a[n]=t(e[n],n,e);return a}function At(e,t){for(var n=-1,r=t.length,a=e.length;++n<r;)e[a+n]=t[n];return e}function Ft(e,t,n,r){var a=-1,i=null==e?0:e.length;for(r&&i&&(n=e[++a]);++a<i;)n=t(n,e[a],a,e);return n}function Ot(e,t,n,r){var a=null==e?0:e.length;for(r&&a&&(n=e[--a]);a--;)n=t(n,e[a],a,e);return n}function Rt(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}var jt=Bt("length");function Ut(e,t,n){var r;return n(e,(function(e,n,a){if(t(e,n,a))return r=n,!1})),r}function qt(e,t,n,r){for(var a=e.length,i=n+(r?1:-1);r?i--:++i<a;)if(t(e[i],i,e))return i;return-1}function Nt(e,t,n){return t==t?function(e,t,n){for(var r=n-1,a=e.length;++r<a;)if(e[r]===t)return r;return-1}(e,t,n):qt(e,Mt,n)}function Pt(e,t,n,r){for(var a=n-1,i=e.length;++a<i;)if(r(e[a],t))return a;return-1}function Mt(e){return e!=e}function zt(e,t){var n=null==e?0:e.length;return n?Wt(e,t)/n:s}function Bt(t){return function(n){return null==n?e:n[t]}}function $t(t){return function(n){return null==t?e:t[n]}}function Lt(e,t,n,r,a){return a(e,(function(e,a,i){n=r?(r=!1,e):t(n,e,a,i)})),n}function Wt(t,n){for(var r,a=-1,i=t.length;++a<i;){var o=n(t[a]);o!==e&&(r=r===e?o:r+o)}return r}function Jt(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}function Gt(e){return e?e.slice(0,cn(e)+1).replace(ne,""):e}function Ht(e){return function(t){return e(t)}}function Kt(e,t){return Et(t,(function(t){return e[t]}))}function Qt(e,t){return e.has(t)}function Yt(e,t){for(var n=-1,r=e.length;++n<r&&Nt(t,e[n],0)>-1;);return n}function Zt(e,t){for(var n=e.length;n--&&Nt(t,e[n],0)>-1;);return n}var Xt=$t({"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"}),en=$t({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"});function tn(e){return"\\"+it[e]}function nn(e){return Xe.test(e)}function rn(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}function an(e,t){return function(n){return e(t(n))}}function on(e,t){for(var n=-1,a=e.length,i=0,o=[];++n<a;){var u=e[n];u!==t&&u!==r||(e[n]=r,o[i++]=n)}return o}function un(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}function sn(e){return nn(e)?function(e){for(var t=Ye.lastIndex=0;Ye.test(e);)++t;return t}(e):jt(e)}function ln(e){return nn(e)?e.match(Ye)||[]:function(e){return e.split("")}(e)}function cn(e){for(var t=e.length;t--&&re.test(e.charAt(t)););return t}var dn=$t({"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"}),fn=function K(Q){var Y,re=(Q=null==Q?ct:fn.defaults(ct.Object(),Q,fn.pick(ct,tt))).Array,we=Q.Date,be=Q.Error,Ce=Q.Function,Se=Q.Math,Ie=Q.Object,ke=Q.RegExp,xe=Q.String,De=Q.TypeError,Ve=re.prototype,Te=Ce.prototype,Ee=Ie.prototype,Ae=Q["__core-js_shared__"],Fe=Te.toString,Oe=Ee.hasOwnProperty,Re=0,je=(Y=/[^.]+$/.exec(Ae&&Ae.keys&&Ae.keys.IE_PROTO||""))?"Symbol(src)_1."+Y:"",Ue=Ee.toString,qe=Fe.call(Ie),Ne=ct._,Pe=ke("^"+Fe.call(Oe).replace(ee,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Me=pt?Q.Buffer:e,ze=Q.Symbol,Be=Q.Uint8Array,$e=Me?Me.allocUnsafe:e,Le=an(Ie.getPrototypeOf,Ie),We=Ie.create,Je=Ee.propertyIsEnumerable,Ge=Ve.splice,He=ze?ze.isConcatSpreadable:e,Ye=ze?ze.iterator:e,Xe=ze?ze.toStringTag:e,it=function(){try{var e=ui(Ie,"defineProperty");return e({},"",{}),e}catch(t){}}(),st=Q.clearTimeout!==ct.clearTimeout&&Q.clearTimeout,lt=we&&we.now!==ct.Date.now&&we.now,dt=Q.setTimeout!==ct.setTimeout&&Q.setTimeout,ft=Se.ceil,ht=Se.floor,gt=Ie.getOwnPropertySymbols,jt=Me?Me.isBuffer:e,$t=Q.isFinite,pn=Ve.join,hn=an(Ie.keys,Ie),gn=Se.max,mn=Se.min,vn=we.now,yn=Q.parseInt,_n=Se.random,wn=Ve.reverse,bn=ui(Q,"DataView"),Cn=ui(Q,"Map"),Sn=ui(Q,"Promise"),In=ui(Q,"Set"),kn=ui(Q,"WeakMap"),xn=ui(Ie,"create"),Dn=kn&&new kn,Vn={},Tn=ji(bn),En=ji(Cn),An=ji(Sn),Fn=ji(In),On=ji(kn),Rn=ze?ze.prototype:e,jn=Rn?Rn.valueOf:e,Un=Rn?Rn.toString:e;function qn(e){if(Xo(e)&&!Bo(e)&&!(e instanceof zn)){if(e instanceof Mn)return e;if(Oe.call(e,"__wrapped__"))return Ui(e)}return new Mn(e)}var Nn=function(){function t(){}return function(n){if(!Zo(n))return{};if(We)return We(n);t.prototype=n;var r=new t;return t.prototype=e,r}}();function Pn(){}function Mn(t,n){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!n,this.__index__=0,this.__values__=e}function zn(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=l,this.__views__=[]}function Bn(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function $n(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Ln(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Wn(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new Ln;++t<n;)this.add(e[t])}function Jn(e){var t=this.__data__=new $n(e);this.size=t.size}function Gn(e,t){var n=Bo(e),r=!n&&zo(e),a=!n&&!r&&Jo(e),i=!n&&!r&&!a&&uu(e),o=n||r||a||i,u=o?Jt(e.length,xe):[],s=u.length;for(var l in e)!t&&!Oe.call(e,l)||o&&("length"==l||a&&("offset"==l||"parent"==l)||i&&("buffer"==l||"byteLength"==l||"byteOffset"==l)||hi(l,s))||u.push(l);return u}function Hn(t){var n=t.length;return n?t[Lr(0,n-1)]:e}function Kn(e,t){return Ei(ka(e),ar(t,0,e.length))}function Qn(e){return Ei(ka(e))}function Yn(t,n,r){(r!==e&&!No(t[n],r)||r===e&&!(n in t))&&nr(t,n,r)}function Zn(t,n,r){var a=t[n];Oe.call(t,n)&&No(a,r)&&(r!==e||n in t)||nr(t,n,r)}function Xn(e,t){for(var n=e.length;n--;)if(No(e[n][0],t))return n;return-1}function er(e,t,n,r){return lr(e,(function(e,a,i){t(r,e,n(e),i)})),r}function tr(e,t){return e&&xa(t,Tu(t),e)}function nr(e,t,n){"__proto__"==t&&it?it(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}function rr(t,n){for(var r=-1,a=n.length,i=re(a),o=null==t;++r<a;)i[r]=o?e:Iu(t,n[r]);return i}function ar(t,n,r){return t==t&&(r!==e&&(t=t<=r?t:r),n!==e&&(t=t>=n?t:n)),t}function ir(t,n,r,a,i,o){var u,s=1&n,l=2&n,c=4&n;if(r&&(u=i?r(t,a,i,o):r(t)),u!==e)return u;if(!Zo(t))return t;var f,g,b,x=Bo(t);if(x){if(g=(f=t).length,b=new f.constructor(g),g&&"string"==typeof f[0]&&Oe.call(f,"index")&&(b.index=f.index,b.input=f.input),u=b,!s)return ka(t,u)}else{var N=ci(t),P=N==m||N==v;if(Jo(t))return _a(t,s);if(N==w||N==d||P&&!i){if(u=l||P?{}:fi(t),!s)return l?function(e,t){return xa(e,li(e),t)}(t,function(e,t){return e&&xa(t,Eu(t),e)}(u,t)):function(e,t){return xa(e,si(e),t)}(t,tr(u,t))}else{if(!at[N])return i?t:{};u=function(e,t,n){var r,a,i,o=e.constructor;switch(t){case D:return wa(e);case p:case h:return new o(+e);case V:return a=e,i=n?wa(a.buffer):a.buffer,new a.constructor(i,a.byteOffset,a.byteLength);case T:case E:case A:case F:case O:case R:case j:case U:case q:return ba(e,n);case y:return new o;case _:case I:return new o(e);case C:return function(e){var t=new e.constructor(e.source,de.exec(e));return t.lastIndex=e.lastIndex,t}(e);case S:return new o;case k:return r=e,jn?Ie(jn.call(r)):{}}}(t,N,s)}}o||(o=new Jn);var M=o.get(t);if(M)return M;o.set(t,u),au(t)?t.forEach((function(e){u.add(ir(e,n,r,e,t,o))})):eu(t)&&t.forEach((function(e,a){u.set(a,ir(e,n,r,a,t,o))}));var z=x?e:(c?l?ei:Xa:l?Eu:Tu)(t);return It(z||t,(function(e,a){z&&(e=t[a=e]),Zn(u,a,ir(e,n,r,a,t,o))})),u}function or(t,n,r){var a=r.length;if(null==t)return!a;for(t=Ie(t);a--;){var i=r[a],o=n[i],u=t[i];if(u===e&&!(i in t)||!o(u))return!1}return!0}function ur(n,r,a){if("function"!=typeof n)throw new De(t);return xi((function(){n.apply(e,a)}),r)}function sr(e,t,n,r){var a=-1,i=Vt,o=!0,u=e.length,s=[],l=t.length;if(!u)return s;n&&(t=Et(t,Ht(n))),r?(i=Tt,o=!1):t.length>=200&&(i=Qt,o=!1,t=new Wn(t));e:for(;++a<u;){var c=e[a],d=null==n?c:n(c);if(c=r||0!==c?c:0,o&&d==d){for(var f=l;f--;)if(t[f]===d)continue e;s.push(c)}else i(t,d,r)||s.push(c)}return s}qn.templateSettings={escape:W,evaluate:J,interpolate:G,variable:"",imports:{_:qn}},qn.prototype=Pn.prototype,qn.prototype.constructor=qn,Mn.prototype=Nn(Pn.prototype),Mn.prototype.constructor=Mn,zn.prototype=Nn(Pn.prototype),zn.prototype.constructor=zn,Bn.prototype.clear=function(){this.__data__=xn?xn(null):{},this.size=0},Bn.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},Bn.prototype.get=function(t){var r=this.__data__;if(xn){var a=r[t];return a===n?e:a}return Oe.call(r,t)?r[t]:e},Bn.prototype.has=function(t){var n=this.__data__;return xn?n[t]!==e:Oe.call(n,t)},Bn.prototype.set=function(t,r){var a=this.__data__;return this.size+=this.has(t)?0:1,a[t]=xn&&r===e?n:r,this},$n.prototype.clear=function(){this.__data__=[],this.size=0},$n.prototype.delete=function(e){var t=this.__data__,n=Xn(t,e);return!(n<0||(n==t.length-1?t.pop():Ge.call(t,n,1),--this.size,0))},$n.prototype.get=function(t){var n=this.__data__,r=Xn(n,t);return r<0?e:n[r][1]},$n.prototype.has=function(e){return Xn(this.__data__,e)>-1},$n.prototype.set=function(e,t){var n=this.__data__,r=Xn(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this},Ln.prototype.clear=function(){this.size=0,this.__data__={hash:new Bn,map:new(Cn||$n),string:new Bn}},Ln.prototype.delete=function(e){var t=ii(this,e).delete(e);return this.size-=t?1:0,t},Ln.prototype.get=function(e){return ii(this,e).get(e)},Ln.prototype.has=function(e){return ii(this,e).has(e)},Ln.prototype.set=function(e,t){var n=ii(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},Wn.prototype.add=Wn.prototype.push=function(e){return this.__data__.set(e,n),this},Wn.prototype.has=function(e){return this.__data__.has(e)},Jn.prototype.clear=function(){this.__data__=new $n,this.size=0},Jn.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},Jn.prototype.get=function(e){return this.__data__.get(e)},Jn.prototype.has=function(e){return this.__data__.has(e)},Jn.prototype.set=function(e,t){var n=this.__data__;if(n instanceof $n){var r=n.__data__;if(!Cn||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new Ln(r)}return n.set(e,t),this.size=n.size,this};var lr=Ta(vr),cr=Ta(yr,!0);function dr(e,t){var n=!0;return lr(e,(function(e,r,a){return n=!!t(e,r,a)})),n}function fr(t,n,r){for(var a=-1,i=t.length;++a<i;){var o=t[a],u=n(o);if(null!=u&&(s===e?u==u&&!ou(u):r(u,s)))var s=u,l=o}return l}function pr(e,t){var n=[];return lr(e,(function(e,r,a){t(e,r,a)&&n.push(e)})),n}function hr(e,t,n,r,a){var i=-1,o=e.length;for(n||(n=pi),a||(a=[]);++i<o;){var u=e[i];t>0&&n(u)?t>1?hr(u,t-1,n,r,a):At(a,u):r||(a[a.length]=u)}return a}var gr=Ea(),mr=Ea(!0);function vr(e,t){return e&&gr(e,t,Tu)}function yr(e,t){return e&&mr(e,t,Tu)}function _r(e,t){return Dt(t,(function(t){return Ko(e[t])}))}function wr(t,n){for(var r=0,a=(n=ga(n,t)).length;null!=t&&r<a;)t=t[Ri(n[r++])];return r&&r==a?t:e}function br(e,t,n){var r=t(e);return Bo(e)?r:At(r,n(e))}function Cr(t){return null==t?t===e?"[object Undefined]":"[object Null]":Xe&&Xe in Ie(t)?function(t){var n=Oe.call(t,Xe),r=t[Xe];try{t[Xe]=e;var a=!0}catch(o){}var i=Ue.call(t);return a&&(n?t[Xe]=r:delete t[Xe]),i}(t):(n=t,Ue.call(n));var n}function Sr(e,t){return e>t}function Ir(e,t){return null!=e&&Oe.call(e,t)}function kr(e,t){return null!=e&&t in Ie(e)}function xr(t,n,r){for(var a=r?Tt:Vt,i=t[0].length,o=t.length,u=o,s=re(o),l=1/0,c=[];u--;){var d=t[u];u&&n&&(d=Et(d,Ht(n))),l=mn(d.length,l),s[u]=!r&&(n||i>=120&&d.length>=120)?new Wn(u&&d):e}d=t[0];var f=-1,p=s[0];e:for(;++f<i&&c.length<l;){var h=d[f],g=n?n(h):h;if(h=r||0!==h?h:0,!(p?Qt(p,g):a(c,g,r))){for(u=o;--u;){var m=s[u];if(!(m?Qt(m,g):a(t[u],g,r)))continue e}p&&p.push(g),c.push(h)}}return c}function Dr(t,n,r){var a=null==(t=Si(t,n=ga(n,t)))?t:t[Ri(Gi(n))];return null==a?e:Ct(a,t,r)}function Vr(e){return Xo(e)&&Cr(e)==d}function Tr(t,n,r,a,i){return t===n||(null==t||null==n||!Xo(t)&&!Xo(n)?t!=t&&n!=n:function(t,n,r,a,i,o){var u=Bo(t),s=Bo(n),l=u?f:ci(t),c=s?f:ci(n),m=(l=l==d?w:l)==w,v=(c=c==d?w:c)==w,b=l==c;if(b&&Jo(t)){if(!Jo(n))return!1;u=!0,m=!1}if(b&&!m)return o||(o=new Jn),u||uu(t)?Ya(t,n,r,a,i,o):function(e,t,n,r,a,i,o){switch(n){case V:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case D:return!(e.byteLength!=t.byteLength||!i(new Be(e),new Be(t)));case p:case h:case _:return No(+e,+t);case g:return e.name==t.name&&e.message==t.message;case C:case I:return e==t+"";case y:var u=rn;case S:var s=1&r;if(u||(u=un),e.size!=t.size&&!s)return!1;var l=o.get(e);if(l)return l==t;r|=2,o.set(e,t);var c=Ya(u(e),u(t),r,a,i,o);return o.delete(e),c;case k:if(jn)return jn.call(e)==jn.call(t)}return!1}(t,n,l,r,a,i,o);if(!(1&r)){var x=m&&Oe.call(t,"__wrapped__"),T=v&&Oe.call(n,"__wrapped__");if(x||T){var E=x?t.value():t,A=T?n.value():n;return o||(o=new Jn),i(E,A,r,a,o)}}return!!b&&(o||(o=new Jn),function(t,n,r,a,i,o){var u=1&r,s=Xa(t),l=s.length;if(l!=Xa(n).length&&!u)return!1;for(var c=l;c--;){var d=s[c];if(!(u?d in n:Oe.call(n,d)))return!1}var f=o.get(t),p=o.get(n);if(f&&p)return f==n&&p==t;var h=!0;o.set(t,n),o.set(n,t);for(var g=u;++c<l;){var m=t[d=s[c]],v=n[d];if(a)var y=u?a(v,m,d,n,t,o):a(m,v,d,t,n,o);if(!(y===e?m===v||i(m,v,r,a,o):y)){h=!1;break}g||(g="constructor"==d)}if(h&&!g){var _=t.constructor,w=n.constructor;_==w||!("constructor"in t)||!("constructor"in n)||"function"==typeof _&&_ instanceof _&&"function"==typeof w&&w instanceof w||(h=!1)}return o.delete(t),o.delete(n),h}(t,n,r,a,i,o))}(t,n,r,a,Tr,i))}function Er(t,n,r,a){var i=r.length,o=i,u=!a;if(null==t)return!o;for(t=Ie(t);i--;){var s=r[i];if(u&&s[2]?s[1]!==t[s[0]]:!(s[0]in t))return!1}for(;++i<o;){var l=(s=r[i])[0],c=t[l],d=s[1];if(u&&s[2]){if(c===e&&!(l in t))return!1}else{var f=new Jn;if(a)var p=a(c,d,l,t,n,f);if(!(p===e?Tr(d,c,3,a,f):p))return!1}}return!0}function Ar(e){return!(!Zo(e)||(t=e,je&&je in t))&&(Ko(e)?Pe:he).test(ji(e));var t}function Fr(e){return"function"==typeof e?e:null==e?ts:"object"==typeof e?Bo(e)?qr(e[0],e[1]):Ur(e):cs(e)}function Or(e){if(!_i(e))return hn(e);var t=[];for(var n in Ie(e))Oe.call(e,n)&&"constructor"!=n&&t.push(n);return t}function Rr(e,t){return e<t}function jr(e,t){var n=-1,r=Lo(e)?re(e.length):[];return lr(e,(function(e,a,i){r[++n]=t(e,a,i)})),r}function Ur(e){var t=oi(e);return 1==t.length&&t[0][2]?bi(t[0][0],t[0][1]):function(n){return n===e||Er(n,e,t)}}function qr(t,n){return mi(t)&&wi(n)?bi(Ri(t),n):function(r){var a=Iu(r,t);return a===e&&a===n?ku(r,t):Tr(n,a,3)}}function Nr(t,n,r,a,i){t!==n&&gr(n,(function(o,u){if(i||(i=new Jn),Zo(o))!function(t,n,r,a,i,o,u){var s=Ii(t,r),l=Ii(n,r),c=u.get(l);if(c)Yn(t,r,c);else{var d=o?o(s,l,r+"",t,n,u):e,f=d===e;if(f){var p=Bo(l),h=!p&&Jo(l),g=!p&&!h&&uu(l);d=l,p||h||g?Bo(s)?d=s:Wo(s)?d=ka(s):h?(f=!1,d=_a(l,!0)):g?(f=!1,d=ba(l,!0)):d=[]:nu(l)||zo(l)?(d=s,zo(s)?d=gu(s):Zo(s)&&!Ko(s)||(d=fi(l))):f=!1}f&&(u.set(l,d),i(d,l,a,o,u),u.delete(l)),Yn(t,r,d)}}(t,n,u,r,Nr,a,i);else{var s=a?a(Ii(t,u),o,u+"",t,n,i):e;s===e&&(s=o),Yn(t,u,s)}}),Eu)}function Pr(t,n){var r=t.length;if(r)return hi(n+=n<0?r:0,r)?t[n]:e}function Mr(e,t,n){t=t.length?Et(t,(function(e){return Bo(e)?function(t){return wr(t,1===e.length?e[0]:e)}:e})):[ts];var r=-1;return t=Et(t,Ht(ai())),function(e){var t=e.length;for(e.sort((function(e,t){return function(e,t,n){for(var r=-1,a=e.criteria,i=t.criteria,o=a.length,u=n.length;++r<o;){var s=Ca(a[r],i[r]);if(s)return r>=u?s:s*("desc"==n[r]?-1:1)}return e.index-t.index}(e,t,n)}));t--;)e[t]=e[t].value;return e}(jr(e,(function(e,n,a){return{criteria:Et(t,(function(t){return t(e)})),index:++r,value:e}})))}function zr(e,t,n){for(var r=-1,a=t.length,i={};++r<a;){var o=t[r],u=wr(e,o);n(u,o)&&Kr(i,ga(o,e),u)}return i}function Br(e,t,n,r){var a=r?Pt:Nt,i=-1,o=t.length,u=e;for(e===t&&(t=ka(t)),n&&(u=Et(e,Ht(n)));++i<o;)for(var s=0,l=t[i],c=n?n(l):l;(s=a(u,c,s,r))>-1;)u!==e&&Ge.call(u,s,1),Ge.call(e,s,1);return e}function $r(e,t){for(var n=e?t.length:0,r=n-1;n--;){var a=t[n];if(n==r||a!==i){var i=a;hi(a)?Ge.call(e,a,1):ua(e,a)}}return e}function Lr(e,t){return e+ht(_n()*(t-e+1))}function Wr(e,t){var n="";if(!e||t<1||t>u)return n;do{t%2&&(n+=e),(t=ht(t/2))&&(e+=e)}while(t);return n}function Jr(e,t){return Di(Ci(e,t,ts),e+"")}function Gr(e){return Hn(Nu(e))}function Hr(e,t){var n=Nu(e);return Ei(n,ar(t,0,n.length))}function Kr(t,n,r,a){if(!Zo(t))return t;for(var i=-1,o=(n=ga(n,t)).length,u=o-1,s=t;null!=s&&++i<o;){var l=Ri(n[i]),c=r;if("__proto__"===l||"constructor"===l||"prototype"===l)return t;if(i!=u){var d=s[l];(c=a?a(d,l,s):e)===e&&(c=Zo(d)?d:hi(n[i+1])?[]:{})}Zn(s,l,c),s=s[l]}return t}var Qr=Dn?function(e,t){return Dn.set(e,t),e}:ts,Yr=it?function(e,t){return it(e,"toString",{configurable:!0,enumerable:!1,value:Zu(t),writable:!0})}:ts;function Zr(e){return Ei(Nu(e))}function Xr(e,t,n){var r=-1,a=e.length;t<0&&(t=-t>a?0:a+t),(n=n>a?a:n)<0&&(n+=a),a=t>n?0:n-t>>>0,t>>>=0;for(var i=re(a);++r<a;)i[r]=e[r+t];return i}function ea(e,t){var n;return lr(e,(function(e,r,a){return!(n=t(e,r,a))})),!!n}function ta(e,t,n){var r=0,a=null==e?r:e.length;if("number"==typeof t&&t==t&&a<=2147483647){for(;r<a;){var i=r+a>>>1,o=e[i];null!==o&&!ou(o)&&(n?o<=t:o<t)?r=i+1:a=i}return a}return na(e,t,ts,n)}function na(t,n,r,a){var i=0,o=null==t?0:t.length;if(0===o)return 0;for(var u=(n=r(n))!=n,s=null===n,l=ou(n),c=n===e;i<o;){var d=ht((i+o)/2),f=r(t[d]),p=f!==e,h=null===f,g=f==f,m=ou(f);if(u)var v=a||g;else v=c?g&&(a||p):s?g&&p&&(a||!h):l?g&&p&&!h&&(a||!m):!h&&!m&&(a?f<=n:f<n);v?i=d+1:o=d}return mn(o,4294967294)}function ra(e,t){for(var n=-1,r=e.length,a=0,i=[];++n<r;){var o=e[n],u=t?t(o):o;if(!n||!No(u,s)){var s=u;i[a++]=0===o?0:o}}return i}function aa(e){return"number"==typeof e?e:ou(e)?s:+e}function ia(e){if("string"==typeof e)return e;if(Bo(e))return Et(e,ia)+"";if(ou(e))return Un?Un.call(e):"";var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function oa(e,t,n){var r=-1,a=Vt,i=e.length,o=!0,u=[],s=u;if(n)o=!1,a=Tt;else if(i>=200){var l=t?null:Wa(e);if(l)return un(l);o=!1,a=Qt,s=new Wn}else s=t?[]:u;e:for(;++r<i;){var c=e[r],d=t?t(c):c;if(c=n||0!==c?c:0,o&&d==d){for(var f=s.length;f--;)if(s[f]===d)continue e;t&&s.push(d),u.push(c)}else a(s,d,n)||(s!==u&&s.push(d),u.push(c))}return u}function ua(e,t){return null==(e=Si(e,t=ga(t,e)))||delete e[Ri(Gi(t))]}function sa(e,t,n,r){return Kr(e,t,n(wr(e,t)),r)}function la(e,t,n,r){for(var a=e.length,i=r?a:-1;(r?i--:++i<a)&&t(e[i],i,e););return n?Xr(e,r?0:i,r?i+1:a):Xr(e,r?i+1:0,r?a:i)}function ca(e,t){var n=e;return n instanceof zn&&(n=n.value()),Ft(t,(function(e,t){return t.func.apply(t.thisArg,At([e],t.args))}),n)}function da(e,t,n){var r=e.length;if(r<2)return r?oa(e[0]):[];for(var a=-1,i=re(r);++a<r;)for(var o=e[a],u=-1;++u<r;)u!=a&&(i[a]=sr(i[a]||o,e[u],t,n));return oa(hr(i,1),t,n)}function fa(t,n,r){for(var a=-1,i=t.length,o=n.length,u={};++a<i;){var s=a<o?n[a]:e;r(u,t[a],s)}return u}function pa(e){return Wo(e)?e:[]}function ha(e){return"function"==typeof e?e:ts}function ga(e,t){return Bo(e)?e:mi(e,t)?[e]:Oi(mu(e))}var ma=Jr;function va(t,n,r){var a=t.length;return r=r===e?a:r,!n&&r>=a?t:Xr(t,n,r)}var ya=st||function(e){return ct.clearTimeout(e)};function _a(e,t){if(t)return e.slice();var n=e.length,r=$e?$e(n):new e.constructor(n);return e.copy(r),r}function wa(e){var t=new e.constructor(e.byteLength);return new Be(t).set(new Be(e)),t}function ba(e,t){var n=t?wa(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}function Ca(t,n){if(t!==n){var r=t!==e,a=null===t,i=t==t,o=ou(t),u=n!==e,s=null===n,l=n==n,c=ou(n);if(!s&&!c&&!o&&t>n||o&&u&&l&&!s&&!c||a&&u&&l||!r&&l||!i)return 1;if(!a&&!o&&!c&&t<n||c&&r&&i&&!a&&!o||s&&r&&i||!u&&i||!l)return-1}return 0}function Sa(e,t,n,r){for(var a=-1,i=e.length,o=n.length,u=-1,s=t.length,l=gn(i-o,0),c=re(s+l),d=!r;++u<s;)c[u]=t[u];for(;++a<o;)(d||a<i)&&(c[n[a]]=e[a]);for(;l--;)c[u++]=e[a++];return c}function Ia(e,t,n,r){for(var a=-1,i=e.length,o=-1,u=n.length,s=-1,l=t.length,c=gn(i-u,0),d=re(c+l),f=!r;++a<c;)d[a]=e[a];for(var p=a;++s<l;)d[p+s]=t[s];for(;++o<u;)(f||a<i)&&(d[p+n[o]]=e[a++]);return d}function ka(e,t){var n=-1,r=e.length;for(t||(t=re(r));++n<r;)t[n]=e[n];return t}function xa(t,n,r,a){var i=!r;r||(r={});for(var o=-1,u=n.length;++o<u;){var s=n[o],l=a?a(r[s],t[s],s,r,t):e;l===e&&(l=t[s]),i?nr(r,s,l):Zn(r,s,l)}return r}function Da(e,t){return function(n,r){var a=Bo(n)?St:er,i=t?t():{};return a(n,e,ai(r,2),i)}}function Va(t){return Jr((function(n,r){var a=-1,i=r.length,o=i>1?r[i-1]:e,u=i>2?r[2]:e;for(o=t.length>3&&"function"==typeof o?(i--,o):e,u&&gi(r[0],r[1],u)&&(o=i<3?e:o,i=1),n=Ie(n);++a<i;){var s=r[a];s&&t(n,s,a,o)}return n}))}function Ta(e,t){return function(n,r){if(null==n)return n;if(!Lo(n))return e(n,r);for(var a=n.length,i=t?a:-1,o=Ie(n);(t?i--:++i<a)&&!1!==r(o[i],i,o););return n}}function Ea(e){return function(t,n,r){for(var a=-1,i=Ie(t),o=r(t),u=o.length;u--;){var s=o[e?u:++a];if(!1===n(i[s],s,i))break}return t}}function Aa(t){return function(n){var r=nn(n=mu(n))?ln(n):e,a=r?r[0]:n.charAt(0),i=r?va(r,1).join(""):n.slice(1);return a[t]()+i}}function Fa(e){return function(t){return Ft(Ku(zu(t).replace(Ke,"")),e,"")}}function Oa(e){return function(){var t=arguments;switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3]);case 5:return new e(t[0],t[1],t[2],t[3],t[4]);case 6:return new e(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new e(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var n=Nn(e.prototype),r=e.apply(n,t);return Zo(r)?r:n}}function Ra(t){return function(n,r,a){var i=Ie(n);if(!Lo(n)){var o=ai(r,3);n=Tu(n),r=function(e){return o(i[e],e,i)}}var u=t(n,r,a);return u>-1?i[o?n[u]:u]:e}}function ja(n){return Za((function(r){var a=r.length,i=a,o=Mn.prototype.thru;for(n&&r.reverse();i--;){var u=r[i];if("function"!=typeof u)throw new De(t);if(o&&!s&&"wrapper"==ni(u))var s=new Mn([],!0)}for(i=s?i:a;++i<a;){var l=ni(u=r[i]),c="wrapper"==l?ti(u):e;s=c&&vi(c[0])&&424==c[1]&&!c[4].length&&1==c[9]?s[ni(c[0])].apply(s,c[3]):1==u.length&&vi(u)?s[l]():s.thru(u)}return function(){var e=arguments,t=e[0];if(s&&1==e.length&&Bo(t))return s.plant(t).value();for(var n=0,i=a?r[n].apply(this,e):t;++n<a;)i=r[n].call(this,i);return i}}))}function Ua(t,n,r,a,o,u,s,l,c,d){var f=n&i,p=1&n,h=2&n,g=24&n,m=512&n,v=h?e:Oa(t);return function i(){for(var y=arguments.length,_=re(y),w=y;w--;)_[w]=arguments[w];if(g)var b=ri(i),C=function(e,t){for(var n=e.length,r=0;n--;)e[n]===t&&++r;return r}(_,b);if(a&&(_=Sa(_,a,o,g)),u&&(_=Ia(_,u,s,g)),y-=C,g&&y<d){var S=on(_,b);return $a(t,n,Ua,i.placeholder,r,_,S,l,c,d-y)}var I=p?r:this,k=h?I[t]:t;return y=_.length,l?_=function(t,n){for(var r=t.length,a=mn(n.length,r),i=ka(t);a--;){var o=n[a];t[a]=hi(o,r)?i[o]:e}return t}(_,l):m&&y>1&&_.reverse(),f&&c<y&&(_.length=c),this&&this!==ct&&this instanceof i&&(k=v||Oa(k)),k.apply(I,_)}}function qa(e,t){return function(n,r){return a=n,i=e,o=t(r),u={},vr(a,(function(e,t,n){i(u,o(e),t,n)})),u;var a,i,o,u}}function Na(t,n){return function(r,a){var i;if(r===e&&a===e)return n;if(r!==e&&(i=r),a!==e){if(i===e)return a;"string"==typeof r||"string"==typeof a?(r=ia(r),a=ia(a)):(r=aa(r),a=aa(a)),i=t(r,a)}return i}}function Pa(e){return Za((function(t){return t=Et(t,Ht(ai())),Jr((function(n){var r=this;return e(t,(function(e){return Ct(e,r,n)}))}))}))}function Ma(t,n){var r=(n=n===e?" ":ia(n)).length;if(r<2)return r?Wr(n,t):n;var a=Wr(n,ft(t/sn(n)));return nn(n)?va(ln(a),0,t).join(""):a.slice(0,t)}function za(t){return function(n,r,a){return a&&"number"!=typeof a&&gi(n,r,a)&&(r=a=e),n=du(n),r===e?(r=n,n=0):r=du(r),function(e,t,n,r){for(var a=-1,i=gn(ft((t-e)/(n||1)),0),o=re(i);i--;)o[r?i:++a]=e,e+=n;return o}(n,r,a=a===e?n<r?1:-1:du(a),t)}}function Ba(e){return function(t,n){return"string"==typeof t&&"string"==typeof n||(t=hu(t),n=hu(n)),e(t,n)}}function $a(t,n,r,i,o,u,s,l,c,d){var f=8&n;n|=f?a:64,4&(n&=~(f?64:a))||(n&=-4);var p=[t,n,o,f?u:e,f?s:e,f?e:u,f?e:s,l,c,d],h=r.apply(e,p);return vi(t)&&ki(h,p),h.placeholder=i,Vi(h,t,n)}function La(e){var t=Se[e];return function(e,n){if(e=hu(e),(n=null==n?0:mn(fu(n),292))&&$t(e)){var r=(mu(e)+"e").split("e");return+((r=(mu(t(r[0]+"e"+(+r[1]+n)))+"e").split("e"))[0]+"e"+(+r[1]-n))}return t(e)}}var Wa=In&&1/un(new In([,-0]))[1]==o?function(e){return new In(e)}:os;function Ja(e){return function(t){var n,r,a,i=ci(t);return i==y?rn(t):i==S?(n=t,r=-1,a=Array(n.size),n.forEach((function(e){a[++r]=[e,e]})),a):function(e,t){return Et(t,(function(t){return[t,e[t]]}))}(t,e(t))}}function Ga(n,o,u,s,l,c,d,f){var p=2&o;if(!p&&"function"!=typeof n)throw new De(t);var h=s?s.length:0;if(h||(o&=-97,s=l=e),d=d===e?d:gn(fu(d),0),f=f===e?f:fu(f),h-=l?l.length:0,64&o){var g=s,m=l;s=l=e}var v,y,_,w,b=p?e:ti(n),C=[n,o,u,s,l,g,m,c,d,f];if(b&&function(e,t){var n=e[1],a=t[1],o=n|a,u=o<131,s=a==i&&8==n||a==i&&256==n&&e[7].length<=t[8]||384==a&&t[7].length<=t[8]&&8==n;if(!u&&!s)return e;1&a&&(e[2]=t[2],o|=1&n?0:4);var l=t[3];if(l){var c=e[3];e[3]=c?Sa(c,l,t[4]):l,e[4]=c?on(e[3],r):t[4]}(l=t[5])&&(c=e[5],e[5]=c?Ia(c,l,t[6]):l,e[6]=c?on(e[5],r):t[6]),(l=t[7])&&(e[7]=l),a&i&&(e[8]=null==e[8]?t[8]:mn(e[8],t[8])),null==e[9]&&(e[9]=t[9]),e[0]=t[0],e[1]=o}(C,b),n=C[0],o=C[1],u=C[2],s=C[3],l=C[4],!(f=C[9]=C[9]===e?p?0:n.length:gn(C[9]-h,0))&&24&o&&(o&=-25),o&&1!=o)S=8==o||16==o?(y=o,_=f,w=Oa(v=n),function t(){for(var n=arguments.length,r=re(n),a=n,i=ri(t);a--;)r[a]=arguments[a];var o=n<3&&r[0]!==i&&r[n-1]!==i?[]:on(r,i);return(n-=o.length)<_?$a(v,y,Ua,t.placeholder,e,r,o,e,e,_-n):Ct(this&&this!==ct&&this instanceof t?w:v,this,r)}):o!=a&&33!=o||l.length?Ua.apply(e,C):function(e,t,n,r){var a=1&t,i=Oa(e);return function t(){for(var o=-1,u=arguments.length,s=-1,l=r.length,c=re(l+u),d=this&&this!==ct&&this instanceof t?i:e;++s<l;)c[s]=r[s];for(;u--;)c[s++]=arguments[++o];return Ct(d,a?n:this,c)}}(n,o,u,s);else var S=function(e,t,n){var r=1&t,a=Oa(e);return function t(){return(this&&this!==ct&&this instanceof t?a:e).apply(r?n:this,arguments)}}(n,o,u);return Vi((b?Qr:ki)(S,C),n,o)}function Ha(t,n,r,a){return t===e||No(t,Ee[r])&&!Oe.call(a,r)?n:t}function Ka(t,n,r,a,i,o){return Zo(t)&&Zo(n)&&(o.set(n,t),Nr(t,n,e,Ka,o),o.delete(n)),t}function Qa(t){return nu(t)?e:t}function Ya(t,n,r,a,i,o){var u=1&r,s=t.length,l=n.length;if(s!=l&&!(u&&l>s))return!1;var c=o.get(t),d=o.get(n);if(c&&d)return c==n&&d==t;var f=-1,p=!0,h=2&r?new Wn:e;for(o.set(t,n),o.set(n,t);++f<s;){var g=t[f],m=n[f];if(a)var v=u?a(m,g,f,n,t,o):a(g,m,f,t,n,o);if(v!==e){if(v)continue;p=!1;break}if(h){if(!Rt(n,(function(e,t){if(!Qt(h,t)&&(g===e||i(g,e,r,a,o)))return h.push(t)}))){p=!1;break}}else if(g!==m&&!i(g,m,r,a,o)){p=!1;break}}return o.delete(t),o.delete(n),p}function Za(t){return Di(Ci(t,e,Bi),t+"")}function Xa(e){return br(e,Tu,si)}function ei(e){return br(e,Eu,li)}var ti=Dn?function(e){return Dn.get(e)}:os;function ni(e){for(var t=e.name+"",n=Vn[t],r=Oe.call(Vn,t)?n.length:0;r--;){var a=n[r],i=a.func;if(null==i||i==e)return a.name}return t}function ri(e){return(Oe.call(qn,"placeholder")?qn:e).placeholder}function ai(){var e=qn.iteratee||ns;return e=e===ns?Fr:e,arguments.length?e(arguments[0],arguments[1]):e}function ii(e,t){var n,r,a=e.__data__;return("string"==(r=typeof(n=t))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?a["string"==typeof t?"string":"hash"]:a.map}function oi(e){for(var t=Tu(e),n=t.length;n--;){var r=t[n],a=e[r];t[n]=[r,a,wi(a)]}return t}function ui(t,n){var r,a,i=(a=n,null==(r=t)?e:r[a]);return Ar(i)?i:e}var si=gt?function(e){return null==e?[]:(e=Ie(e),Dt(gt(e),(function(t){return Je.call(e,t)})))}:ps,li=gt?function(e){for(var t=[];e;)At(t,si(e)),e=Le(e);return t}:ps,ci=Cr;function di(e,t,n){for(var r=-1,a=(t=ga(t,e)).length,i=!1;++r<a;){var o=Ri(t[r]);if(!(i=null!=e&&n(e,o)))break;e=e[o]}return i||++r!=a?i:!!(a=null==e?0:e.length)&&Yo(a)&&hi(o,a)&&(Bo(e)||zo(e))}function fi(e){return"function"!=typeof e.constructor||_i(e)?{}:Nn(Le(e))}function pi(e){return Bo(e)||zo(e)||!!(He&&e&&e[He])}function hi(e,t){var n=typeof e;return!!(t=null==t?u:t)&&("number"==n||"symbol"!=n&&me.test(e))&&e>-1&&e%1==0&&e<t}function gi(e,t,n){if(!Zo(n))return!1;var r=typeof t;return!!("number"==r?Lo(n)&&hi(t,n.length):"string"==r&&t in n)&&No(n[t],e)}function mi(e,t){if(Bo(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!ou(e))||Z.test(e)||!H.test(e)||null!=t&&e in Ie(t)}function vi(e){var t=ni(e),n=qn[t];if("function"!=typeof n||!(t in zn.prototype))return!1;if(e===n)return!0;var r=ti(n);return!!r&&e===r[0]}(bn&&ci(new bn(new ArrayBuffer(1)))!=V||Cn&&ci(new Cn)!=y||Sn&&ci(Sn.resolve())!=b||In&&ci(new In)!=S||kn&&ci(new kn)!=x)&&(ci=function(t){var n=Cr(t),r=n==w?t.constructor:e,a=r?ji(r):"";if(a)switch(a){case Tn:return V;case En:return y;case An:return b;case Fn:return S;case On:return x}return n});var yi=Ae?Ko:hs;function _i(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Ee)}function wi(e){return e==e&&!Zo(e)}function bi(t,n){return function(r){return null!=r&&r[t]===n&&(n!==e||t in Ie(r))}}function Ci(t,n,r){return n=gn(n===e?t.length-1:n,0),function(){for(var e=arguments,a=-1,i=gn(e.length-n,0),o=re(i);++a<i;)o[a]=e[n+a];a=-1;for(var u=re(n+1);++a<n;)u[a]=e[a];return u[n]=r(o),Ct(t,this,u)}}function Si(e,t){return t.length<2?e:wr(e,Xr(t,0,-1))}function Ii(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]}var ki=Ti(Qr),xi=dt||function(e,t){return ct.setTimeout(e,t)},Di=Ti(Yr);function Vi(e,t,n){var r,a=t+"";return Di(e,function(e,t){var n=t.length;if(!n)return e;var r=n-1;return t[r]=(n>1?"& ":"")+t[r],t=t.join(n>2?", ":" "),e.replace(ae,"{\n/* [wrapped with "+t+"] */\n")}(a,function(e,t){return It(c,(function(n){var r="_."+n[0];t&n[1]&&!Vt(e,r)&&e.push(r)})),e.sort()}((r=a.match(ie))?r[1].split(oe):[],n)))}function Ti(t){var n=0,r=0;return function(){var a=vn(),i=16-(a-r);if(r=a,i>0){if(++n>=800)return arguments[0]}else n=0;return t.apply(e,arguments)}}function Ei(t,n){var r=-1,a=t.length,i=a-1;for(n=n===e?a:n;++r<n;){var o=Lr(r,i),u=t[o];t[o]=t[r],t[r]=u}return t.length=n,t}var Ai,Fi,Oi=(Ai=Fo((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(X,(function(e,n,r,a){t.push(r?a.replace(le,"$1"):n||e)})),t}),(function(e){return 500===Fi.size&&Fi.clear(),e})),Fi=Ai.cache,Ai);function Ri(e){if("string"==typeof e||ou(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function ji(e){if(null!=e){try{return Fe.call(e)}catch(t){}try{return e+""}catch(t){}}return""}function Ui(e){if(e instanceof zn)return e.clone();var t=new Mn(e.__wrapped__,e.__chain__);return t.__actions__=ka(e.__actions__),t.__index__=e.__index__,t.__values__=e.__values__,t}var qi=Jr((function(e,t){return Wo(e)?sr(e,hr(t,1,Wo,!0)):[]})),Ni=Jr((function(t,n){var r=Gi(n);return Wo(r)&&(r=e),Wo(t)?sr(t,hr(n,1,Wo,!0),ai(r,2)):[]})),Pi=Jr((function(t,n){var r=Gi(n);return Wo(r)&&(r=e),Wo(t)?sr(t,hr(n,1,Wo,!0),e,r):[]}));function Mi(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var a=null==n?0:fu(n);return a<0&&(a=gn(r+a,0)),qt(e,ai(t,3),a)}function zi(t,n,r){var a=null==t?0:t.length;if(!a)return-1;var i=a-1;return r!==e&&(i=fu(r),i=r<0?gn(a+i,0):mn(i,a-1)),qt(t,ai(n,3),i,!0)}function Bi(e){return null!=e&&e.length?hr(e,1):[]}function $i(t){return t&&t.length?t[0]:e}var Li=Jr((function(e){var t=Et(e,pa);return t.length&&t[0]===e[0]?xr(t):[]})),Wi=Jr((function(t){var n=Gi(t),r=Et(t,pa);return n===Gi(r)?n=e:r.pop(),r.length&&r[0]===t[0]?xr(r,ai(n,2)):[]})),Ji=Jr((function(t){var n=Gi(t),r=Et(t,pa);return(n="function"==typeof n?n:e)&&r.pop(),r.length&&r[0]===t[0]?xr(r,e,n):[]}));function Gi(t){var n=null==t?0:t.length;return n?t[n-1]:e}var Hi=Jr(Ki);function Ki(e,t){return e&&e.length&&t&&t.length?Br(e,t):e}var Qi=Za((function(e,t){var n=null==e?0:e.length,r=rr(e,t);return $r(e,Et(t,(function(e){return hi(e,n)?+e:e})).sort(Ca)),r}));function Yi(e){return null==e?e:wn.call(e)}var Zi=Jr((function(e){return oa(hr(e,1,Wo,!0))})),Xi=Jr((function(t){var n=Gi(t);return Wo(n)&&(n=e),oa(hr(t,1,Wo,!0),ai(n,2))})),eo=Jr((function(t){var n=Gi(t);return n="function"==typeof n?n:e,oa(hr(t,1,Wo,!0),e,n)}));function to(e){if(!e||!e.length)return[];var t=0;return e=Dt(e,(function(e){if(Wo(e))return t=gn(e.length,t),!0})),Jt(t,(function(t){return Et(e,Bt(t))}))}function no(t,n){if(!t||!t.length)return[];var r=to(t);return null==n?r:Et(r,(function(t){return Ct(n,e,t)}))}var ro=Jr((function(e,t){return Wo(e)?sr(e,t):[]})),ao=Jr((function(e){return da(Dt(e,Wo))})),io=Jr((function(t){var n=Gi(t);return Wo(n)&&(n=e),da(Dt(t,Wo),ai(n,2))})),oo=Jr((function(t){var n=Gi(t);return n="function"==typeof n?n:e,da(Dt(t,Wo),e,n)})),uo=Jr(to),so=Jr((function(t){var n=t.length,r=n>1?t[n-1]:e;return r="function"==typeof r?(t.pop(),r):e,no(t,r)}));function lo(e){var t=qn(e);return t.__chain__=!0,t}function co(e,t){return t(e)}var fo=Za((function(t){var n=t.length,r=n?t[0]:0,a=this.__wrapped__,i=function(e){return rr(e,t)};return!(n>1||this.__actions__.length)&&a instanceof zn&&hi(r)?((a=a.slice(r,+r+(n?1:0))).__actions__.push({func:co,args:[i],thisArg:e}),new Mn(a,this.__chain__).thru((function(t){return n&&!t.length&&t.push(e),t}))):this.thru(i)})),po=Da((function(e,t,n){Oe.call(e,n)?++e[n]:nr(e,n,1)})),ho=Ra(Mi),go=Ra(zi);function mo(e,t){return(Bo(e)?It:lr)(e,ai(t,3))}function vo(e,t){return(Bo(e)?kt:cr)(e,ai(t,3))}var yo=Da((function(e,t,n){Oe.call(e,n)?e[n].push(t):nr(e,n,[t])})),_o=Jr((function(e,t,n){var r=-1,a="function"==typeof t,i=Lo(e)?re(e.length):[];return lr(e,(function(e){i[++r]=a?Ct(t,e,n):Dr(e,t,n)})),i})),wo=Da((function(e,t,n){nr(e,n,t)}));function bo(e,t){return(Bo(e)?Et:jr)(e,ai(t,3))}var Co=Da((function(e,t,n){e[n?0:1].push(t)}),(function(){return[[],[]]})),So=Jr((function(e,t){if(null==e)return[];var n=t.length;return n>1&&gi(e,t[0],t[1])?t=[]:n>2&&gi(t[0],t[1],t[2])&&(t=[t[0]]),Mr(e,hr(t,1),[])})),Io=lt||function(){return ct.Date.now()};function ko(t,n,r){return n=r?e:n,n=t&&null==n?t.length:n,Ga(t,i,e,e,e,e,n)}function xo(n,r){var a;if("function"!=typeof r)throw new De(t);return n=fu(n),function(){return--n>0&&(a=r.apply(this,arguments)),n<=1&&(r=e),a}}var Do=Jr((function(e,t,n){var r=1;if(n.length){var i=on(n,ri(Do));r|=a}return Ga(e,r,t,n,i)})),Vo=Jr((function(e,t,n){var r=3;if(n.length){var i=on(n,ri(Vo));r|=a}return Ga(t,r,e,n,i)}));function To(n,r,a){var i,o,u,s,l,c,d=0,f=!1,p=!1,h=!0;if("function"!=typeof n)throw new De(t);function g(t){var r=i,a=o;return i=o=e,d=t,s=n.apply(a,r)}function m(t){var n=t-c;return c===e||n>=r||n<0||p&&t-d>=u}function v(){var e,t,n=Io();if(m(n))return y(n);l=xi(v,(t=r-((e=n)-c),p?mn(t,u-(e-d)):t))}function y(t){return l=e,h&&i?g(t):(i=o=e,s)}function _(){var t,n=Io(),a=m(n);if(i=arguments,o=this,c=n,a){if(l===e)return d=t=c,l=xi(v,r),f?g(t):s;if(p)return ya(l),l=xi(v,r),g(c)}return l===e&&(l=xi(v,r)),s}return r=hu(r)||0,Zo(a)&&(f=!!a.leading,u=(p="maxWait"in a)?gn(hu(a.maxWait)||0,r):u,h="trailing"in a?!!a.trailing:h),_.cancel=function(){l!==e&&ya(l),d=0,i=c=o=l=e},_.flush=function(){return l===e?s:y(Io())},_}var Eo=Jr((function(e,t){return ur(e,1,t)})),Ao=Jr((function(e,t,n){return ur(e,hu(t)||0,n)}));function Fo(e,n){if("function"!=typeof e||null!=n&&"function"!=typeof n)throw new De(t);var r=function(){var t=arguments,a=n?n.apply(this,t):t[0],i=r.cache;if(i.has(a))return i.get(a);var o=e.apply(this,t);return r.cache=i.set(a,o)||i,o};return r.cache=new(Fo.Cache||Ln),r}function Oo(e){if("function"!=typeof e)throw new De(t);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}Fo.Cache=Ln;var Ro=ma((function(e,t){var n=(t=1==t.length&&Bo(t[0])?Et(t[0],Ht(ai())):Et(hr(t,1),Ht(ai()))).length;return Jr((function(r){for(var a=-1,i=mn(r.length,n);++a<i;)r[a]=t[a].call(this,r[a]);return Ct(e,this,r)}))})),jo=Jr((function(t,n){var r=on(n,ri(jo));return Ga(t,a,e,n,r)})),Uo=Jr((function(t,n){var r=on(n,ri(Uo));return Ga(t,64,e,n,r)})),qo=Za((function(t,n){return Ga(t,256,e,e,e,n)}));function No(e,t){return e===t||e!=e&&t!=t}var Po=Ba(Sr),Mo=Ba((function(e,t){return e>=t})),zo=Vr(function(){return arguments}())?Vr:function(e){return Xo(e)&&Oe.call(e,"callee")&&!Je.call(e,"callee")},Bo=re.isArray,$o=mt?Ht(mt):function(e){return Xo(e)&&Cr(e)==D};function Lo(e){return null!=e&&Yo(e.length)&&!Ko(e)}function Wo(e){return Xo(e)&&Lo(e)}var Jo=jt||hs,Go=vt?Ht(vt):function(e){return Xo(e)&&Cr(e)==h};function Ho(e){if(!Xo(e))return!1;var t=Cr(e);return t==g||"[object DOMException]"==t||"string"==typeof e.message&&"string"==typeof e.name&&!nu(e)}function Ko(e){if(!Zo(e))return!1;var t=Cr(e);return t==m||t==v||"[object AsyncFunction]"==t||"[object Proxy]"==t}function Qo(e){return"number"==typeof e&&e==fu(e)}function Yo(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=u}function Zo(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function Xo(e){return null!=e&&"object"==typeof e}var eu=yt?Ht(yt):function(e){return Xo(e)&&ci(e)==y};function tu(e){return"number"==typeof e||Xo(e)&&Cr(e)==_}function nu(e){if(!Xo(e)||Cr(e)!=w)return!1;var t=Le(e);if(null===t)return!0;var n=Oe.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&Fe.call(n)==qe}var ru=_t?Ht(_t):function(e){return Xo(e)&&Cr(e)==C},au=wt?Ht(wt):function(e){return Xo(e)&&ci(e)==S};function iu(e){return"string"==typeof e||!Bo(e)&&Xo(e)&&Cr(e)==I}function ou(e){return"symbol"==typeof e||Xo(e)&&Cr(e)==k}var uu=bt?Ht(bt):function(e){return Xo(e)&&Yo(e.length)&&!!rt[Cr(e)]},su=Ba(Rr),lu=Ba((function(e,t){return e<=t}));function cu(e){if(!e)return[];if(Lo(e))return iu(e)?ln(e):ka(e);if(Ye&&e[Ye])return function(e){for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}(e[Ye]());var t=ci(e);return(t==y?rn:t==S?un:Nu)(e)}function du(e){return e?(e=hu(e))===o||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}function fu(e){var t=du(e),n=t%1;return t==t?n?t-n:t:0}function pu(e){return e?ar(fu(e),0,l):0}function hu(e){if("number"==typeof e)return e;if(ou(e))return s;if(Zo(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=Zo(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=Gt(e);var n=pe.test(e);return n||ge.test(e)?ut(e.slice(2),n?2:8):fe.test(e)?s:+e}function gu(e){return xa(e,Eu(e))}function mu(e){return null==e?"":ia(e)}var vu=Va((function(e,t){if(_i(t)||Lo(t))xa(t,Tu(t),e);else for(var n in t)Oe.call(t,n)&&Zn(e,n,t[n])})),yu=Va((function(e,t){xa(t,Eu(t),e)})),_u=Va((function(e,t,n,r){xa(t,Eu(t),e,r)})),wu=Va((function(e,t,n,r){xa(t,Tu(t),e,r)})),bu=Za(rr),Cu=Jr((function(t,n){t=Ie(t);var r=-1,a=n.length,i=a>2?n[2]:e;for(i&&gi(n[0],n[1],i)&&(a=1);++r<a;)for(var o=n[r],u=Eu(o),s=-1,l=u.length;++s<l;){var c=u[s],d=t[c];(d===e||No(d,Ee[c])&&!Oe.call(t,c))&&(t[c]=o[c])}return t})),Su=Jr((function(t){return t.push(e,Ka),Ct(Fu,e,t)}));function Iu(t,n,r){var a=null==t?e:wr(t,n);return a===e?r:a}function ku(e,t){return null!=e&&di(e,t,kr)}var xu=qa((function(e,t,n){null!=t&&"function"!=typeof t.toString&&(t=Ue.call(t)),e[t]=n}),Zu(ts)),Du=qa((function(e,t,n){null!=t&&"function"!=typeof t.toString&&(t=Ue.call(t)),Oe.call(e,t)?e[t].push(n):e[t]=[n]}),ai),Vu=Jr(Dr);function Tu(e){return Lo(e)?Gn(e):Or(e)}function Eu(e){return Lo(e)?Gn(e,!0):function(e){if(!Zo(e))return function(e){var t=[];if(null!=e)for(var n in Ie(e))t.push(n);return t}(e);var t=_i(e),n=[];for(var r in e)("constructor"!=r||!t&&Oe.call(e,r))&&n.push(r);return n}(e)}var Au=Va((function(e,t,n){Nr(e,t,n)})),Fu=Va((function(e,t,n,r){Nr(e,t,n,r)})),Ou=Za((function(e,t){var n={};if(null==e)return n;var r=!1;t=Et(t,(function(t){return t=ga(t,e),r||(r=t.length>1),t})),xa(e,ei(e),n),r&&(n=ir(n,7,Qa));for(var a=t.length;a--;)ua(n,t[a]);return n})),Ru=Za((function(e,t){return null==e?{}:zr(n=e,t,(function(e,t){return ku(n,t)}));var n}));function ju(e,t){if(null==e)return{};var n=Et(ei(e),(function(e){return[e]}));return t=ai(t),zr(e,n,(function(e,n){return t(e,n[0])}))}var Uu=Ja(Tu),qu=Ja(Eu);function Nu(e){return null==e?[]:Kt(e,Tu(e))}var Pu=Fa((function(e,t,n){return t=t.toLowerCase(),e+(n?Mu(t):t)}));function Mu(e){return Hu(mu(e).toLowerCase())}function zu(e){return(e=mu(e))&&e.replace(ve,Xt).replace(Qe,"")}var Bu=Fa((function(e,t,n){return e+(n?"-":"")+t.toLowerCase()})),$u=Fa((function(e,t,n){return e+(n?" ":"")+t.toLowerCase()})),Lu=Aa("toLowerCase"),Wu=Fa((function(e,t,n){return e+(n?"_":"")+t.toLowerCase()})),Ju=Fa((function(e,t,n){return e+(n?" ":"")+Hu(t)})),Gu=Fa((function(e,t,n){return e+(n?" ":"")+t.toUpperCase()})),Hu=Aa("toUpperCase");function Ku(t,n,r){return t=mu(t),(n=r?e:n)===e?(a=t,et.test(a)?function(e){return e.match(Ze)||[]}(t):function(e){return e.match(ue)||[]}(t)):t.match(n)||[];var a}var Qu=Jr((function(t,n){try{return Ct(t,e,n)}catch(r){return Ho(r)?r:new be(r)}})),Yu=Za((function(e,t){return It(t,(function(t){t=Ri(t),nr(e,t,Do(e[t],e))})),e}));function Zu(e){return function(){return e}}var Xu=ja(),es=ja(!0);function ts(e){return e}function ns(e){return Fr("function"==typeof e?e:ir(e,1))}var rs=Jr((function(e,t){return function(n){return Dr(n,e,t)}})),as=Jr((function(e,t){return function(n){return Dr(e,n,t)}}));function is(e,t,n){var r=Tu(t),a=_r(t,r);null!=n||Zo(t)&&(a.length||!r.length)||(n=t,t=e,e=this,a=_r(t,Tu(t)));var i=!(Zo(n)&&"chain"in n&&!n.chain),o=Ko(e);return It(a,(function(n){var r=t[n];e[n]=r,o&&(e.prototype[n]=function(){var t=this.__chain__;if(i||t){var n=e(this.__wrapped__);return(n.__actions__=ka(this.__actions__)).push({func:r,args:arguments,thisArg:e}),n.__chain__=t,n}return r.apply(e,At([this.value()],arguments))})})),e}function os(){}var us=Pa(Et),ss=Pa(xt),ls=Pa(Rt);function cs(e){return mi(e)?Bt(Ri(e)):function(e){return function(t){return wr(t,e)}}(e)}var ds=za(),fs=za(!0);function ps(){return[]}function hs(){return!1}var gs,ms=Na((function(e,t){return e+t}),0),vs=La("ceil"),ys=Na((function(e,t){return e/t}),1),_s=La("floor"),ws=Na((function(e,t){return e*t}),1),bs=La("round"),Cs=Na((function(e,t){return e-t}),0);return qn.after=function(e,n){if("function"!=typeof n)throw new De(t);return e=fu(e),function(){if(--e<1)return n.apply(this,arguments)}},qn.ary=ko,qn.assign=vu,qn.assignIn=yu,qn.assignInWith=_u,qn.assignWith=wu,qn.at=bu,qn.before=xo,qn.bind=Do,qn.bindAll=Yu,qn.bindKey=Vo,qn.castArray=function(){if(!arguments.length)return[];var e=arguments[0];return Bo(e)?e:[e]},qn.chain=lo,qn.chunk=function(t,n,r){n=(r?gi(t,n,r):n===e)?1:gn(fu(n),0);var a=null==t?0:t.length;if(!a||n<1)return[];for(var i=0,o=0,u=re(ft(a/n));i<a;)u[o++]=Xr(t,i,i+=n);return u},qn.compact=function(e){for(var t=-1,n=null==e?0:e.length,r=0,a=[];++t<n;){var i=e[t];i&&(a[r++]=i)}return a},qn.concat=function(){var e=arguments.length;if(!e)return[];for(var t=re(e-1),n=arguments[0],r=e;r--;)t[r-1]=arguments[r];return At(Bo(n)?ka(n):[n],hr(t,1))},qn.cond=function(e){var n=null==e?0:e.length,r=ai();return e=n?Et(e,(function(e){if("function"!=typeof e[1])throw new De(t);return[r(e[0]),e[1]]})):[],Jr((function(t){for(var r=-1;++r<n;){var a=e[r];if(Ct(a[0],this,t))return Ct(a[1],this,t)}}))},qn.conforms=function(e){return t=ir(e,1),n=Tu(t),function(e){return or(e,t,n)};var t,n},qn.constant=Zu,qn.countBy=po,qn.create=function(e,t){var n=Nn(e);return null==t?n:tr(n,t)},qn.curry=function t(n,r,a){var i=Ga(n,8,e,e,e,e,e,r=a?e:r);return i.placeholder=t.placeholder,i},qn.curryRight=function t(n,r,a){var i=Ga(n,16,e,e,e,e,e,r=a?e:r);return i.placeholder=t.placeholder,i},qn.debounce=To,qn.defaults=Cu,qn.defaultsDeep=Su,qn.defer=Eo,qn.delay=Ao,qn.difference=qi,qn.differenceBy=Ni,qn.differenceWith=Pi,qn.drop=function(t,n,r){var a=null==t?0:t.length;return a?Xr(t,(n=r||n===e?1:fu(n))<0?0:n,a):[]},qn.dropRight=function(t,n,r){var a=null==t?0:t.length;return a?Xr(t,0,(n=a-(n=r||n===e?1:fu(n)))<0?0:n):[]},qn.dropRightWhile=function(e,t){return e&&e.length?la(e,ai(t,3),!0,!0):[]},qn.dropWhile=function(e,t){return e&&e.length?la(e,ai(t,3),!0):[]},qn.fill=function(t,n,r,a){var i=null==t?0:t.length;return i?(r&&"number"!=typeof r&&gi(t,n,r)&&(r=0,a=i),function(t,n,r,a){var i=t.length;for((r=fu(r))<0&&(r=-r>i?0:i+r),(a=a===e||a>i?i:fu(a))<0&&(a+=i),a=r>a?0:pu(a);r<a;)t[r++]=n;return t}(t,n,r,a)):[]},qn.filter=function(e,t){return(Bo(e)?Dt:pr)(e,ai(t,3))},qn.flatMap=function(e,t){return hr(bo(e,t),1)},qn.flatMapDeep=function(e,t){return hr(bo(e,t),o)},qn.flatMapDepth=function(t,n,r){return r=r===e?1:fu(r),hr(bo(t,n),r)},qn.flatten=Bi,qn.flattenDeep=function(e){return null!=e&&e.length?hr(e,o):[]},qn.flattenDepth=function(t,n){return null!=t&&t.length?hr(t,n=n===e?1:fu(n)):[]},qn.flip=function(e){return Ga(e,512)},qn.flow=Xu,qn.flowRight=es,qn.fromPairs=function(e){for(var t=-1,n=null==e?0:e.length,r={};++t<n;){var a=e[t];r[a[0]]=a[1]}return r},qn.functions=function(e){return null==e?[]:_r(e,Tu(e))},qn.functionsIn=function(e){return null==e?[]:_r(e,Eu(e))},qn.groupBy=yo,qn.initial=function(e){return null!=e&&e.length?Xr(e,0,-1):[]},qn.intersection=Li,qn.intersectionBy=Wi,qn.intersectionWith=Ji,qn.invert=xu,qn.invertBy=Du,qn.invokeMap=_o,qn.iteratee=ns,qn.keyBy=wo,qn.keys=Tu,qn.keysIn=Eu,qn.map=bo,qn.mapKeys=function(e,t){var n={};return t=ai(t,3),vr(e,(function(e,r,a){nr(n,t(e,r,a),e)})),n},qn.mapValues=function(e,t){var n={};return t=ai(t,3),vr(e,(function(e,r,a){nr(n,r,t(e,r,a))})),n},qn.matches=function(e){return Ur(ir(e,1))},qn.matchesProperty=function(e,t){return qr(e,ir(t,1))},qn.memoize=Fo,qn.merge=Au,qn.mergeWith=Fu,qn.method=rs,qn.methodOf=as,qn.mixin=is,qn.negate=Oo,qn.nthArg=function(e){return e=fu(e),Jr((function(t){return Pr(t,e)}))},qn.omit=Ou,qn.omitBy=function(e,t){return ju(e,Oo(ai(t)))},qn.once=function(e){return xo(2,e)},qn.orderBy=function(t,n,r,a){return null==t?[]:(Bo(n)||(n=null==n?[]:[n]),Bo(r=a?e:r)||(r=null==r?[]:[r]),Mr(t,n,r))},qn.over=us,qn.overArgs=Ro,qn.overEvery=ss,qn.overSome=ls,qn.partial=jo,qn.partialRight=Uo,qn.partition=Co,qn.pick=Ru,qn.pickBy=ju,qn.property=cs,qn.propertyOf=function(t){return function(n){return null==t?e:wr(t,n)}},qn.pull=Hi,qn.pullAll=Ki,qn.pullAllBy=function(e,t,n){return e&&e.length&&t&&t.length?Br(e,t,ai(n,2)):e},qn.pullAllWith=function(t,n,r){return t&&t.length&&n&&n.length?Br(t,n,e,r):t},qn.pullAt=Qi,qn.range=ds,qn.rangeRight=fs,qn.rearg=qo,qn.reject=function(e,t){return(Bo(e)?Dt:pr)(e,Oo(ai(t,3)))},qn.remove=function(e,t){var n=[];if(!e||!e.length)return n;var r=-1,a=[],i=e.length;for(t=ai(t,3);++r<i;){var o=e[r];t(o,r,e)&&(n.push(o),a.push(r))}return $r(e,a),n},qn.rest=function(n,r){if("function"!=typeof n)throw new De(t);return Jr(n,r=r===e?r:fu(r))},qn.reverse=Yi,qn.sampleSize=function(t,n,r){return n=(r?gi(t,n,r):n===e)?1:fu(n),(Bo(t)?Kn:Hr)(t,n)},qn.set=function(e,t,n){return null==e?e:Kr(e,t,n)},qn.setWith=function(t,n,r,a){return a="function"==typeof a?a:e,null==t?t:Kr(t,n,r,a)},qn.shuffle=function(e){return(Bo(e)?Qn:Zr)(e)},qn.slice=function(t,n,r){var a=null==t?0:t.length;return a?(r&&"number"!=typeof r&&gi(t,n,r)?(n=0,r=a):(n=null==n?0:fu(n),r=r===e?a:fu(r)),Xr(t,n,r)):[]},qn.sortBy=So,qn.sortedUniq=function(e){return e&&e.length?ra(e):[]},qn.sortedUniqBy=function(e,t){return e&&e.length?ra(e,ai(t,2)):[]},qn.split=function(t,n,r){return r&&"number"!=typeof r&&gi(t,n,r)&&(n=r=e),(r=r===e?l:r>>>0)?(t=mu(t))&&("string"==typeof n||null!=n&&!ru(n))&&!(n=ia(n))&&nn(t)?va(ln(t),0,r):t.split(n,r):[]},qn.spread=function(e,n){if("function"!=typeof e)throw new De(t);return n=null==n?0:gn(fu(n),0),Jr((function(t){var r=t[n],a=va(t,0,n);return r&&At(a,r),Ct(e,this,a)}))},qn.tail=function(e){var t=null==e?0:e.length;return t?Xr(e,1,t):[]},qn.take=function(t,n,r){return t&&t.length?Xr(t,0,(n=r||n===e?1:fu(n))<0?0:n):[]},qn.takeRight=function(t,n,r){var a=null==t?0:t.length;return a?Xr(t,(n=a-(n=r||n===e?1:fu(n)))<0?0:n,a):[]},qn.takeRightWhile=function(e,t){return e&&e.length?la(e,ai(t,3),!1,!0):[]},qn.takeWhile=function(e,t){return e&&e.length?la(e,ai(t,3)):[]},qn.tap=function(e,t){return t(e),e},qn.throttle=function(e,n,r){var a=!0,i=!0;if("function"!=typeof e)throw new De(t);return Zo(r)&&(a="leading"in r?!!r.leading:a,i="trailing"in r?!!r.trailing:i),To(e,n,{leading:a,maxWait:n,trailing:i})},qn.thru=co,qn.toArray=cu,qn.toPairs=Uu,qn.toPairsIn=qu,qn.toPath=function(e){return Bo(e)?Et(e,Ri):ou(e)?[e]:ka(Oi(mu(e)))},qn.toPlainObject=gu,qn.transform=function(e,t,n){var r=Bo(e),a=r||Jo(e)||uu(e);if(t=ai(t,4),null==n){var i=e&&e.constructor;n=a?r?new i:[]:Zo(e)&&Ko(i)?Nn(Le(e)):{}}return(a?It:vr)(e,(function(e,r,a){return t(n,e,r,a)})),n},qn.unary=function(e){return ko(e,1)},qn.union=Zi,qn.unionBy=Xi,qn.unionWith=eo,qn.uniq=function(e){return e&&e.length?oa(e):[]},qn.uniqBy=function(e,t){return e&&e.length?oa(e,ai(t,2)):[]},qn.uniqWith=function(t,n){return n="function"==typeof n?n:e,t&&t.length?oa(t,e,n):[]},qn.unset=function(e,t){return null==e||ua(e,t)},qn.unzip=to,qn.unzipWith=no,qn.update=function(e,t,n){return null==e?e:sa(e,t,ha(n))},qn.updateWith=function(t,n,r,a){return a="function"==typeof a?a:e,null==t?t:sa(t,n,ha(r),a)},qn.values=Nu,qn.valuesIn=function(e){return null==e?[]:Kt(e,Eu(e))},qn.without=ro,qn.words=Ku,qn.wrap=function(e,t){return jo(ha(t),e)},qn.xor=ao,qn.xorBy=io,qn.xorWith=oo,qn.zip=uo,qn.zipObject=function(e,t){return fa(e||[],t||[],Zn)},qn.zipObjectDeep=function(e,t){return fa(e||[],t||[],Kr)},qn.zipWith=so,qn.entries=Uu,qn.entriesIn=qu,qn.extend=yu,qn.extendWith=_u,is(qn,qn),qn.add=ms,qn.attempt=Qu,qn.camelCase=Pu,qn.capitalize=Mu,qn.ceil=vs,qn.clamp=function(t,n,r){return r===e&&(r=n,n=e),r!==e&&(r=(r=hu(r))==r?r:0),n!==e&&(n=(n=hu(n))==n?n:0),ar(hu(t),n,r)},qn.clone=function(e){return ir(e,4)},qn.cloneDeep=function(e){return ir(e,5)},qn.cloneDeepWith=function(t,n){return ir(t,5,n="function"==typeof n?n:e)},qn.cloneWith=function(t,n){return ir(t,4,n="function"==typeof n?n:e)},qn.conformsTo=function(e,t){return null==t||or(e,t,Tu(t))},qn.deburr=zu,qn.defaultTo=function(e,t){return null==e||e!=e?t:e},qn.divide=ys,qn.endsWith=function(t,n,r){t=mu(t),n=ia(n);var a=t.length,i=r=r===e?a:ar(fu(r),0,a);return(r-=n.length)>=0&&t.slice(r,i)==n},qn.eq=No,qn.escape=function(e){return(e=mu(e))&&L.test(e)?e.replace(B,en):e},qn.escapeRegExp=function(e){return(e=mu(e))&&te.test(e)?e.replace(ee,"\\$&"):e},qn.every=function(t,n,r){var a=Bo(t)?xt:dr;return r&&gi(t,n,r)&&(n=e),a(t,ai(n,3))},qn.find=ho,qn.findIndex=Mi,qn.findKey=function(e,t){return Ut(e,ai(t,3),vr)},qn.findLast=go,qn.findLastIndex=zi,qn.findLastKey=function(e,t){return Ut(e,ai(t,3),yr)},qn.floor=_s,qn.forEach=mo,qn.forEachRight=vo,qn.forIn=function(e,t){return null==e?e:gr(e,ai(t,3),Eu)},qn.forInRight=function(e,t){return null==e?e:mr(e,ai(t,3),Eu)},qn.forOwn=function(e,t){return e&&vr(e,ai(t,3))},qn.forOwnRight=function(e,t){return e&&yr(e,ai(t,3))},qn.get=Iu,qn.gt=Po,qn.gte=Mo,qn.has=function(e,t){return null!=e&&di(e,t,Ir)},qn.hasIn=ku,qn.head=$i,qn.identity=ts,qn.includes=function(e,t,n,r){e=Lo(e)?e:Nu(e),n=n&&!r?fu(n):0;var a=e.length;return n<0&&(n=gn(a+n,0)),iu(e)?n<=a&&e.indexOf(t,n)>-1:!!a&&Nt(e,t,n)>-1},qn.indexOf=function(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var a=null==n?0:fu(n);return a<0&&(a=gn(r+a,0)),Nt(e,t,a)},qn.inRange=function(t,n,r){return n=du(n),r===e?(r=n,n=0):r=du(r),(a=t=hu(t))>=mn(i=n,o=r)&&a<gn(i,o);var a,i,o},qn.invoke=Vu,qn.isArguments=zo,qn.isArray=Bo,qn.isArrayBuffer=$o,qn.isArrayLike=Lo,qn.isArrayLikeObject=Wo,qn.isBoolean=function(e){return!0===e||!1===e||Xo(e)&&Cr(e)==p},qn.isBuffer=Jo,qn.isDate=Go,qn.isElement=function(e){return Xo(e)&&1===e.nodeType&&!nu(e)},qn.isEmpty=function(e){if(null==e)return!0;if(Lo(e)&&(Bo(e)||"string"==typeof e||"function"==typeof e.splice||Jo(e)||uu(e)||zo(e)))return!e.length;var t=ci(e);if(t==y||t==S)return!e.size;if(_i(e))return!Or(e).length;for(var n in e)if(Oe.call(e,n))return!1;return!0},qn.isEqual=function(e,t){return Tr(e,t)},qn.isEqualWith=function(t,n,r){var a=(r="function"==typeof r?r:e)?r(t,n):e;return a===e?Tr(t,n,e,r):!!a},qn.isError=Ho,qn.isFinite=function(e){return"number"==typeof e&&$t(e)},qn.isFunction=Ko,qn.isInteger=Qo,qn.isLength=Yo,qn.isMap=eu,qn.isMatch=function(e,t){return e===t||Er(e,t,oi(t))},qn.isMatchWith=function(t,n,r){return r="function"==typeof r?r:e,Er(t,n,oi(n),r)},qn.isNaN=function(e){return tu(e)&&e!=+e},qn.isNative=function(e){if(yi(e))throw new be("Unsupported core-js use. Try https://npms.io/search?q=ponyfill.");return Ar(e)},qn.isNil=function(e){return null==e},qn.isNull=function(e){return null===e},qn.isNumber=tu,qn.isObject=Zo,qn.isObjectLike=Xo,qn.isPlainObject=nu,qn.isRegExp=ru,qn.isSafeInteger=function(e){return Qo(e)&&e>=-9007199254740991&&e<=u},qn.isSet=au,qn.isString=iu,qn.isSymbol=ou,qn.isTypedArray=uu,qn.isUndefined=function(t){return t===e},qn.isWeakMap=function(e){return Xo(e)&&ci(e)==x},qn.isWeakSet=function(e){return Xo(e)&&"[object WeakSet]"==Cr(e)},qn.join=function(e,t){return null==e?"":pn.call(e,t)},qn.kebabCase=Bu,qn.last=Gi,qn.lastIndexOf=function(t,n,r){var a=null==t?0:t.length;if(!a)return-1;var i=a;return r!==e&&(i=(i=fu(r))<0?gn(a+i,0):mn(i,a-1)),n==n?function(e,t,n){for(var r=n+1;r--;)if(e[r]===t)return r;return r}(t,n,i):qt(t,Mt,i,!0)},qn.lowerCase=$u,qn.lowerFirst=Lu,qn.lt=su,qn.lte=lu,qn.max=function(t){return t&&t.length?fr(t,ts,Sr):e},qn.maxBy=function(t,n){return t&&t.length?fr(t,ai(n,2),Sr):e},qn.mean=function(e){return zt(e,ts)},qn.meanBy=function(e,t){return zt(e,ai(t,2))},qn.min=function(t){return t&&t.length?fr(t,ts,Rr):e},qn.minBy=function(t,n){return t&&t.length?fr(t,ai(n,2),Rr):e},qn.stubArray=ps,qn.stubFalse=hs,qn.stubObject=function(){return{}},qn.stubString=function(){return""},qn.stubTrue=function(){return!0},qn.multiply=ws,qn.nth=function(t,n){return t&&t.length?Pr(t,fu(n)):e},qn.noConflict=function(){return ct._===this&&(ct._=Ne),this},qn.noop=os,qn.now=Io,qn.pad=function(e,t,n){e=mu(e);var r=(t=fu(t))?sn(e):0;if(!t||r>=t)return e;var a=(t-r)/2;return Ma(ht(a),n)+e+Ma(ft(a),n)},qn.padEnd=function(e,t,n){e=mu(e);var r=(t=fu(t))?sn(e):0;return t&&r<t?e+Ma(t-r,n):e},qn.padStart=function(e,t,n){e=mu(e);var r=(t=fu(t))?sn(e):0;return t&&r<t?Ma(t-r,n)+e:e},qn.parseInt=function(e,t,n){return n||null==t?t=0:t&&(t=+t),yn(mu(e).replace(ne,""),t||0)},qn.random=function(t,n,r){if(r&&"boolean"!=typeof r&&gi(t,n,r)&&(n=r=e),r===e&&("boolean"==typeof n?(r=n,n=e):"boolean"==typeof t&&(r=t,t=e)),t===e&&n===e?(t=0,n=1):(t=du(t),n===e?(n=t,t=0):n=du(n)),t>n){var a=t;t=n,n=a}if(r||t%1||n%1){var i=_n();return mn(t+i*(n-t+ot("1e-"+((i+"").length-1))),n)}return Lr(t,n)},qn.reduce=function(e,t,n){var r=Bo(e)?Ft:Lt,a=arguments.length<3;return r(e,ai(t,4),n,a,lr)},qn.reduceRight=function(e,t,n){var r=Bo(e)?Ot:Lt,a=arguments.length<3;return r(e,ai(t,4),n,a,cr)},qn.repeat=function(t,n,r){return n=(r?gi(t,n,r):n===e)?1:fu(n),Wr(mu(t),n)},qn.replace=function(){var e=arguments,t=mu(e[0]);return e.length<3?t:t.replace(e[1],e[2])},qn.result=function(t,n,r){var a=-1,i=(n=ga(n,t)).length;for(i||(i=1,t=e);++a<i;){var o=null==t?e:t[Ri(n[a])];o===e&&(a=i,o=r),t=Ko(o)?o.call(t):o}return t},qn.round=bs,qn.runInContext=K,qn.sample=function(e){return(Bo(e)?Hn:Gr)(e)},qn.size=function(e){if(null==e)return 0;if(Lo(e))return iu(e)?sn(e):e.length;var t=ci(e);return t==y||t==S?e.size:Or(e).length},qn.snakeCase=Wu,qn.some=function(t,n,r){var a=Bo(t)?Rt:ea;return r&&gi(t,n,r)&&(n=e),a(t,ai(n,3))},qn.sortedIndex=function(e,t){return ta(e,t)},qn.sortedIndexBy=function(e,t,n){return na(e,t,ai(n,2))},qn.sortedIndexOf=function(e,t){var n=null==e?0:e.length;if(n){var r=ta(e,t);if(r<n&&No(e[r],t))return r}return-1},qn.sortedLastIndex=function(e,t){return ta(e,t,!0)},qn.sortedLastIndexBy=function(e,t,n){return na(e,t,ai(n,2),!0)},qn.sortedLastIndexOf=function(e,t){if(null!=e&&e.length){var n=ta(e,t,!0)-1;if(No(e[n],t))return n}return-1},qn.startCase=Ju,qn.startsWith=function(e,t,n){return e=mu(e),n=null==n?0:ar(fu(n),0,e.length),t=ia(t),e.slice(n,n+t.length)==t},qn.subtract=Cs,qn.sum=function(e){return e&&e.length?Wt(e,ts):0},qn.sumBy=function(e,t){return e&&e.length?Wt(e,ai(t,2)):0},qn.template=function(t,n,r){var a=qn.templateSettings;r&&gi(t,n,r)&&(n=e),t=mu(t),n=_u({},n,a,Ha);var i,o,u=_u({},n.imports,a.imports,Ha),s=Tu(u),l=Kt(u,s),c=0,d=n.interpolate||ye,f="__p += '",p=ke((n.escape||ye).source+"|"+d.source+"|"+(d===G?ce:ye).source+"|"+(n.evaluate||ye).source+"|$","g"),h="//# sourceURL="+(Oe.call(n,"sourceURL")?(n.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++nt+"]")+"\n";t.replace(p,(function(e,n,r,a,u,s){return r||(r=a),f+=t.slice(c,s).replace(_e,tn),n&&(i=!0,f+="' +\n__e("+n+") +\n'"),u&&(o=!0,f+="';\n"+u+";\n__p += '"),r&&(f+="' +\n((__t = ("+r+")) == null ? '' : __t) +\n'"),c=s+e.length,e})),f+="';\n";var g=Oe.call(n,"variable")&&n.variable;if(g){if(se.test(g))throw new be("Invalid `variable` option passed into `_.template`")}else f="with (obj) {\n"+f+"\n}\n";f=(o?f.replace(N,""):f).replace(P,"$1").replace(M,"$1;"),f="function("+(g||"obj")+") {\n"+(g?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(i?", __e = _.escape":"")+(o?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+f+"return __p\n}";var m=Qu((function(){return Ce(s,h+"return "+f).apply(e,l)}));if(m.source=f,Ho(m))throw m;return m},qn.times=function(e,t){if((e=fu(e))<1||e>u)return[];var n=l,r=mn(e,l);t=ai(t),e-=l;for(var a=Jt(r,t);++n<e;)t(n);return a},qn.toFinite=du,qn.toInteger=fu,qn.toLength=pu,qn.toLower=function(e){return mu(e).toLowerCase()},qn.toNumber=hu,qn.toSafeInteger=function(e){return e?ar(fu(e),-9007199254740991,u):0===e?e:0},qn.toString=mu,qn.toUpper=function(e){return mu(e).toUpperCase()},qn.trim=function(t,n,r){if((t=mu(t))&&(r||n===e))return Gt(t);if(!t||!(n=ia(n)))return t;var a=ln(t),i=ln(n);return va(a,Yt(a,i),Zt(a,i)+1).join("")},qn.trimEnd=function(t,n,r){if((t=mu(t))&&(r||n===e))return t.slice(0,cn(t)+1);if(!t||!(n=ia(n)))return t;var a=ln(t);return va(a,0,Zt(a,ln(n))+1).join("")},qn.trimStart=function(t,n,r){if((t=mu(t))&&(r||n===e))return t.replace(ne,"");if(!t||!(n=ia(n)))return t;var a=ln(t);return va(a,Yt(a,ln(n))).join("")},qn.truncate=function(t,n){var r=30,a="...";if(Zo(n)){var i="separator"in n?n.separator:i;r="length"in n?fu(n.length):r,a="omission"in n?ia(n.omission):a}var o=(t=mu(t)).length;if(nn(t)){var u=ln(t);o=u.length}if(r>=o)return t;var s=r-sn(a);if(s<1)return a;var l=u?va(u,0,s).join(""):t.slice(0,s);if(i===e)return l+a;if(u&&(s+=l.length-s),ru(i)){if(t.slice(s).search(i)){var c,d=l;for(i.global||(i=ke(i.source,mu(de.exec(i))+"g")),i.lastIndex=0;c=i.exec(d);)var f=c.index;l=l.slice(0,f===e?s:f)}}else if(t.indexOf(ia(i),s)!=s){var p=l.lastIndexOf(i);p>-1&&(l=l.slice(0,p))}return l+a},qn.unescape=function(e){return(e=mu(e))&&$.test(e)?e.replace(z,dn):e},qn.uniqueId=function(e){var t=++Re;return mu(e)+t},qn.upperCase=Gu,qn.upperFirst=Hu,qn.each=mo,qn.eachRight=vo,qn.first=$i,is(qn,(gs={},vr(qn,(function(e,t){Oe.call(qn.prototype,t)||(gs[t]=e)})),gs),{chain:!1}),qn.VERSION="4.17.21",It(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(e){qn[e].placeholder=qn})),It(["drop","take"],(function(t,n){zn.prototype[t]=function(r){r=r===e?1:gn(fu(r),0);var a=this.__filtered__&&!n?new zn(this):this.clone();return a.__filtered__?a.__takeCount__=mn(r,a.__takeCount__):a.__views__.push({size:mn(r,l),type:t+(a.__dir__<0?"Right":"")}),a},zn.prototype[t+"Right"]=function(e){return this.reverse()[t](e).reverse()}})),It(["filter","map","takeWhile"],(function(e,t){var n=t+1,r=1==n||3==n;zn.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:ai(e,3),type:n}),t.__filtered__=t.__filtered__||r,t}})),It(["head","last"],(function(e,t){var n="take"+(t?"Right":"");zn.prototype[e]=function(){return this[n](1).value()[0]}})),It(["initial","tail"],(function(e,t){var n="drop"+(t?"":"Right");zn.prototype[e]=function(){return this.__filtered__?new zn(this):this[n](1)}})),zn.prototype.compact=function(){return this.filter(ts)},zn.prototype.find=function(e){return this.filter(e).head()},zn.prototype.findLast=function(e){return this.reverse().find(e)},zn.prototype.invokeMap=Jr((function(e,t){return"function"==typeof e?new zn(this):this.map((function(n){return Dr(n,e,t)}))})),zn.prototype.reject=function(e){return this.filter(Oo(ai(e)))},zn.prototype.slice=function(t,n){t=fu(t);var r=this;return r.__filtered__&&(t>0||n<0)?new zn(r):(t<0?r=r.takeRight(-t):t&&(r=r.drop(t)),n!==e&&(r=(n=fu(n))<0?r.dropRight(-n):r.take(n-t)),r)},zn.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},zn.prototype.toArray=function(){return this.take(l)},vr(zn.prototype,(function(t,n){var r=/^(?:filter|find|map|reject)|While$/.test(n),a=/^(?:head|last)$/.test(n),i=qn[a?"take"+("last"==n?"Right":""):n],o=a||/^find/.test(n);i&&(qn.prototype[n]=function(){var n=this.__wrapped__,u=a?[1]:arguments,s=n instanceof zn,l=u[0],c=s||Bo(n),d=function(e){var t=i.apply(qn,At([e],u));return a&&f?t[0]:t};c&&r&&"function"==typeof l&&1!=l.length&&(s=c=!1);var f=this.__chain__,p=!!this.__actions__.length,h=o&&!f,g=s&&!p;if(!o&&c){n=g?n:new zn(this);var m=t.apply(n,u);return m.__actions__.push({func:co,args:[d],thisArg:e}),new Mn(m,f)}return h&&g?t.apply(this,u):(m=this.thru(d),h?a?m.value()[0]:m.value():m)})})),It(["pop","push","shift","sort","splice","unshift"],(function(e){var t=Ve[e],n=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",r=/^(?:pop|shift)$/.test(e);qn.prototype[e]=function(){var e=arguments;if(r&&!this.__chain__){var a=this.value();return t.apply(Bo(a)?a:[],e)}return this[n]((function(n){return t.apply(Bo(n)?n:[],e)}))}})),vr(zn.prototype,(function(e,t){var n=qn[t];if(n){var r=n.name+"";Oe.call(Vn,r)||(Vn[r]=[]),Vn[r].push({name:t,func:n})}})),Vn[Ua(e,2).name]=[{name:"wrapper",func:e}],zn.prototype.clone=function(){var e=new zn(this.__wrapped__);return e.__actions__=ka(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=ka(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=ka(this.__views__),e},zn.prototype.reverse=function(){if(this.__filtered__){var e=new zn(this);e.__dir__=-1,e.__filtered__=!0}else(e=this.clone()).__dir__*=-1;return e},zn.prototype.value=function(){var e=this.__wrapped__.value(),t=this.__dir__,n=Bo(e),r=t<0,a=n?e.length:0,i=function(e,t,n){for(var r=-1,a=n.length;++r<a;){var i=n[r],o=i.size;switch(i.type){case"drop":e+=o;break;case"dropRight":t-=o;break;case"take":t=mn(t,e+o);break;case"takeRight":e=gn(e,t-o)}}return{start:e,end:t}}(0,a,this.__views__),o=i.start,u=i.end,s=u-o,l=r?u:o-1,c=this.__iteratees__,d=c.length,f=0,p=mn(s,this.__takeCount__);if(!n||!r&&a==s&&p==s)return ca(e,this.__actions__);var h=[];e:for(;s--&&f<p;){for(var g=-1,m=e[l+=t];++g<d;){var v=c[g],y=v.iteratee,_=v.type,w=y(m);if(2==_)m=w;else if(!w){if(1==_)continue e;break e}}h[f++]=m}return h},qn.prototype.at=fo,qn.prototype.chain=function(){return lo(this)},qn.prototype.commit=function(){return new Mn(this.value(),this.__chain__)},qn.prototype.next=function(){this.__values__===e&&(this.__values__=cu(this.value()));var t=this.__index__>=this.__values__.length;return{done:t,value:t?e:this.__values__[this.__index__++]}},qn.prototype.plant=function(t){for(var n,r=this;r instanceof Pn;){var a=Ui(r);a.__index__=0,a.__values__=e,n?i.__wrapped__=a:n=a;var i=a;r=r.__wrapped__}return i.__wrapped__=t,n},qn.prototype.reverse=function(){var t=this.__wrapped__;if(t instanceof zn){var n=t;return this.__actions__.length&&(n=new zn(this)),(n=n.reverse()).__actions__.push({func:co,args:[Yi],thisArg:e}),new Mn(n,this.__chain__)}return this.thru(Yi)},qn.prototype.toJSON=qn.prototype.valueOf=qn.prototype.value=function(){return ca(this.__wrapped__,this.__actions__)},qn.prototype.first=qn.prototype.head,Ye&&(qn.prototype[Ye]=function(){return this}),qn}();ft?((ft.exports=fn)._=fn,dt._=fn):ct._=fn}.call(Z.exports)),Z.exports);const ee=t({name:"ComponentRegistration",props:{course:{type:String,required:!0}},data:()=>({dataShapes:[],questions:[],courseDatashapes:[],courseQuestionTypes:[],courseConfig:void 0,courseDB:null}),async created(){this.courseDB=x().getCourseDB(this.course),this.courseConfig=await this.courseDB.getCourseConfig(),this.courseDatashapes=this.courseConfig.dataShapes,this.courseQuestionTypes=this.courseConfig.questionTypes;const e=U.allDataShapes();U.allDataShapesRaw().forEach((e=>{console.log(`[ComponentRegistration] Datashape:\n${JSON.stringify(e)}`)})),e.forEach((e=>{const t=this.courseDatashapes.find((t=>t.name===S.getDataShapeString(e)));this.dataShapes.push({name:e.dataShape,course:e.course,dataShape:U.getDataShape(e),registered:void 0!==t,displayable:e.displayable})})),this.dataShapes=X.sortBy(this.dataShapes,["registered","name"]);const t=U.courses.map((e=>e.name)),n=[];t.forEach((e=>{U.getCourseWare(e).questions.forEach((t=>{n.push([{course:e,questionType:t.name},t])}))})),n.forEach((e=>{const t=this.courseQuestionTypes.find((t=>S.getQuestionString(e[0])===t.name));this.questions.push({course:e[0].course,name:e[1].name,registered:void 0!==t,question:e[1]})}))},methods:{async registerShape(e){const t=this.dataShapes.find((t=>t.name===e));this.courseConfig.dataShapes.push({name:S.getDataShapeString({dataShape:t.name,course:t.course}),questionTypes:[]}),(await this.courseDB.updateCourseConfig(this.courseConfig)).ok&&(t.registered=!0)},async registerQuestionView(e){const t=this.questions.find((t=>t.name===e)),n=S.getQuestionString({course:t.course,questionType:t.name});this.courseConfig.questionTypes.push({name:n,viewList:t.question.views.map((e=>e.name?e.name:"unnamedComponent")),dataShapeList:t.question.dataShapes.map((e=>S.getDataShapeString({course:t.course,dataShape:e.name})))}),t.question.dataShapes.forEach((e=>{const r=S.getDataShapeString({course:t.course,dataShape:e.name});for(const t of this.courseConfig.dataShapes)t.name===r&&t.questionTypes.push(n)}));const r=await this.courseDB.updateCourseConfig(this.courseConfig),a=await C();r.ok&&(t.registered=!0,console.log(`[ComponentRegistration]\nQuestion: ${JSON.stringify(t)}\nCourseID: ${this.course}\n `),t.question.seedData?(console.log("[ComponentRegistration] Question has seed data!"),t.question.seedData.forEach((e=>{this.courseDB.addNote(t.course,t.question.dataShapes[0],e,a.getUsername(),[])}))):console.log("[ComponentRegistration] Question has NO seed data!"))}}}),te=(e,t)=>{const n=e.__vccOpts||e;for(const[r,a]of t)n[r]=a;return n},ne={key:1,class:"inset"},re={key:0},ae={key:1,class:"inset"},ie=te(ee,[["render",function(e,t,n,s,g,m){const v=r("v-btn");return i(),d("div",null,[t[2]||(t[2]=c("h3",null,"DataShapes",-1)),c("ul",null,[(i(!0),d(p,null,h(e.dataShapes,(n=>(i(),d("li",{key:n.name,class:"ma-2"},[n.registered?(i(),d("span",ne," (Registered) ")):(i(),a(v,{key:0,size:"small",onClick:t=>e.registerShape(n.name)},{default:o((()=>t[0]||(t[0]=[l(" Register ")]))),_:2},1032,["onClick"])),l(" "+f(n.name)+" ",1),c("ul",null,[(i(!0),d(p,null,h(n.dataShape.views,(e=>(i(),d("div",{key:e.name},[e?(i(),d("li",re,f(e.name),1)):u("",!0)])))),128))])])))),128))]),t[3]||(t[3]=c("h3",null,"Questions",-1)),c("ul",null,[(i(!0),d(p,null,h(e.questions,(n=>(i(),d("li",{key:n.name,class:"ma-2"},[n.registered?(i(),d("span",ae," (Registered) ")):(i(),a(v,{key:0,size:"small",onClick:t=>e.registerQuestionView(n.name)},{default:o((()=>t[1]||(t[1]=[l(" Register ")]))),_:2},1032,["onClick"])),l(" "+f(n.name),1)])))),128))])])}],["__scopeId","data-v-c01bca96"]]),oe=t({name:"NavigationStrategyList",props:{strategies:{type:Array,required:!0},defaultStrategyId:{type:String,default:null}},emits:["edit","delete","update:defaultStrategy"],methods:{getDisplayConfig(e){if(!e.serializedData)return"No configuration";try{const t=JSON.parse(e.serializedData);return Array.isArray(t)?`${t.length} cards in sequence`:Object.keys(t).map((e=>`${e}: ${t[e]}`)).join(", ")}catch{return e.serializedData}}}}),ue={class:"navigation-strategy-list"},se={key:0},le={class:"d-flex"},ce=te(oe,[["render",function(e,t,n,g,m,v){const y=r("v-radio"),_=r("v-list-item-title"),w=r("v-list-item-subtitle"),b=r("v-icon"),C=r("v-btn"),S=r("v-list-item"),I=r("v-list"),k=r("v-radio-group");return i(),d("div",ue,[s(k,{"model-value":e.defaultStrategyId,"onUpdate:modelValue":t[0]||(t[0]=t=>e.$emit("update:defaultStrategy",t)),density:"compact"},{default:o((()=>[s(I,{density:"compact"},{default:o((()=>[(i(!0),d(p,null,h(e.strategies,(n=>(i(),a(S,{key:n._id,lines:"two"},{prepend:o((()=>[s(y,{value:n._id},null,8,["value"])])),append:o((()=>[c("div",le,[s(C,{icon:"",size:"x-small",variant:"text",title:"Edit Strategy",onClick:t=>e.$emit("edit",n)},{default:o((()=>[s(b,{size:"small"},{default:o((()=>t[1]||(t[1]=[l("mdi-pencil")]))),_:1})])),_:2},1032,["onClick"]),s(C,{icon:"",size:"x-small",variant:"text",title:"Delete Strategy",onClick:t=>e.$emit("delete",n)},{default:o((()=>[s(b,{size:"small"},{default:o((()=>t[2]||(t[2]=[l("mdi-delete")]))),_:1})])),_:2},1032,["onClick"])])])),default:o((()=>[s(_,{class:"text-subtitle-2"},{default:o((()=>[l(f(n.name),1)])),_:2},1024),s(w,{class:"text-caption"},{default:o((()=>[l(f(n.implementingClass)+" ",1),n.description?(i(),d("span",se," • "+f(n.description),1)):u("",!0)])),_:2},1024)])),_:2},1024)))),128))])),_:1})])),_:1},8,["model-value"])])}],["__scopeId","data-v-1fcb2a5f"]]),de=t({name:"HierarchyConfigForm",props:{modelValue:{type:Object,required:!0},courseId:{type:String,required:!0}},emits:["update:modelValue"],setup(e,{emit:t}){const n=_("ui"),r=_([]),a=_(null),i=_(null),o=_(!0),u=y((()=>e.modelValue)),s=y((()=>{try{return JSON.stringify(u.value,null,2)}catch{return""}}));return F((()=>{!async function(){o.value=!0;try{const t=x().getCourseDB(e.courseId),n=await t.getCourseTagStubs();r.value=n.rows.map((e=>e.id.replace("TAG-",""))),console.log("Loaded tags:",r.value)}catch(t){console.error("Failed to load course tags:",t),a.value="Failed to load course tags"}finally{o.value=!1}}()})),w((()=>u.value),(()=>{!function(){a.value=null;try{if(!u.value.prerequisites||"object"!=typeof u.value.prerequisites)throw new Error("Prerequisites must be an object");new Set(Object.keys(u.value.prerequisites));for(const[e,t]of Object.entries(u.value.prerequisites))for(const n of t)if(n.tag===e)throw new Error(`Circular dependency: ${e} requires itself`);return!0}catch(e){return a.value=e instanceof Error?e.message:"Invalid configuration",!1}}()}),{deep:!0}),{inputMode:n,config:u,availableTags:r,loadingTags:o,jsonText:s,jsonError:i,validationError:a,addPrerequisiteRule:function(){const e=r.value[0]||"new-tag";t("update:modelValue",{...u.value,prerequisites:{...u.value.prerequisites,[e]:[]}})},removePrerequisiteRule:function(e){const n={...u.value.prerequisites};delete n[e],t("update:modelValue",{...u.value,prerequisites:n})},renamePrerequisiteTag:function(e,n){if(e===n)return;const r={...u.value.prerequisites};r[n]=r[e],delete r[e],t("update:modelValue",{...u.value,prerequisites:r})},addPrerequisite:function(e){const n=r.value.find((t=>t!==e))||"prerequisite-tag",a={...u.value.prerequisites};a[e]=[...a[e],{tag:n,masteryThreshold:{minCount:3}}],t("update:modelValue",{...u.value,prerequisites:a})},removePrerequisite:function(e,n){const r={...u.value.prerequisites};r[e]=r[e].filter(((e,t)=>t!==n)),t("update:modelValue",{...u.value,prerequisites:r})},updatePrerequisiteTag:function(e,n,r){const a={...u.value.prerequisites};a[e][n]={...a[e][n],tag:r},t("update:modelValue",{...u.value,prerequisites:a})},updateMinCount:function(e,n,r){const a="string"==typeof r?parseInt(r):r;if(isNaN(a))return;const i={...u.value.prerequisites},o=i[e][n];i[e][n]={...o,masteryThreshold:{...o.masteryThreshold,minCount:a}},t("update:modelValue",{...u.value,prerequisites:i})},updateMinElo:function(e,n,r){if(""===r||null==r){const r={...u.value.prerequisites},a=r[e][n],i={...a.masteryThreshold};return delete i.minElo,r[e][n]={...a,masteryThreshold:i},void t("update:modelValue",{...u.value,prerequisites:r})}const a="string"==typeof r?parseInt(r):r;if(isNaN(a))return;const i={...u.value.prerequisites},o=i[e][n];i[e][n]={...o,masteryThreshold:{...o.masteryThreshold,minElo:a}},t("update:modelValue",{...u.value,prerequisites:i})},updateFromJson:function(e){i.value=null;try{const n=JSON.parse(e);if(!n.prerequisites||"object"!=typeof n.prerequisites)throw new Error('Config must have "prerequisites" object');t("update:modelValue",n)}catch(n){i.value=n instanceof Error?n.message:"Invalid JSON"}}}}}),fe={class:"hierarchy-config-form"},pe={class:"prerequisites-section"},he={class:"d-flex align-center mb-2"},ge={class:"d-flex align-center mb-2"},me=te(de,[["render",function(e,t,n,g,m,v){const y=r("v-tab"),_=r("v-tabs"),w=r("v-spacer"),b=r("v-icon"),C=r("v-btn"),S=r("v-alert"),I=r("v-select"),k=r("v-divider"),x=r("v-text-field"),D=r("v-card"),V=r("v-window-item"),T=r("v-textarea"),E=r("v-window");return i(),d("div",fe,[s(_,{modelValue:e.inputMode,"onUpdate:modelValue":t[0]||(t[0]=t=>e.inputMode=t),density:"compact",class:"mb-4"},{default:o((()=>[s(y,{value:"ui"},{default:o((()=>t[2]||(t[2]=[l("Visual Editor")]))),_:1}),s(y,{value:"json"},{default:o((()=>t[3]||(t[3]=[l("JSON Editor")]))),_:1})])),_:1},8,["modelValue"]),s(E,{modelValue:e.inputMode,"onUpdate:modelValue":t[1]||(t[1]=t=>e.inputMode=t)},{default:o((()=>[s(V,{value:"ui"},{default:o((()=>[c("div",pe,[c("div",he,[t[6]||(t[6]=c("h4",{class:"text-subtitle-1"},"Prerequisites",-1)),s(w),s(C,{size:"small",color:"primary",onClick:e.addPrerequisiteRule},{default:o((()=>[s(b,{start:""},{default:o((()=>t[4]||(t[4]=[l("mdi-plus")]))),_:1}),t[5]||(t[5]=l(" Add Rule "))])),_:1},8,["onClick"])]),0===Object.keys(e.config.prerequisites).length?(i(),a(S,{key:0,type:"info",density:"compact"},{default:o((()=>t[7]||(t[7]=[l(' No prerequisites defined. Click "Add Rule" to gate a tag behind prerequisite mastery. ')]))),_:1})):u("",!0),(i(!0),d(p,null,h(e.config.prerequisites,((n,r)=>(i(),a(D,{key:r,variant:"outlined",class:"mb-3 pa-3"},{default:o((()=>[c("div",ge,[s(I,{"model-value":r,"onUpdate:modelValue":t=>e.renamePrerequisiteTag(r,t),items:e.availableTags,loading:e.loadingTags,disabled:e.loadingTags,label:"Gated Tag",hint:"This tag will be locked until prerequisites are met","persistent-hint":"",density:"compact",style:{"max-width":"300px"}},null,8,["model-value","onUpdate:modelValue","items","loading","disabled"]),s(w),s(C,{icon:"",size:"small",color:"error",onClick:t=>e.removePrerequisiteRule(r)},{default:o((()=>[s(b,null,{default:o((()=>t[8]||(t[8]=[l("mdi-delete")]))),_:1})])),_:2},1032,["onClick"])]),s(k,{class:"my-2"}),t[12]||(t[12]=c("div",{class:"text-caption mb-2"},"Requires mastery of:",-1)),(i(!0),d(p,null,h(n,((n,a)=>(i(),d("div",{key:`${r}-${a}`,class:"d-flex align-center gap-2 mb-2"},[s(I,{"model-value":n.tag,"onUpdate:modelValue":t=>e.updatePrerequisiteTag(r,a,t),items:e.availableTags,loading:e.loadingTags,disabled:e.loadingTags,label:"Prerequisite Tag",density:"compact",style:{flex:"1","max-width":"200px"}},null,8,["model-value","onUpdate:modelValue","items","loading","disabled"]),s(x,{"model-value":n.masteryThreshold?.minCount,"onUpdate:modelValue":t=>e.updateMinCount(r,a,t),label:"Min Count",type:"number",density:"compact",style:{"max-width":"100px"},hint:"Min interactions","persistent-hint":""},null,8,["model-value","onUpdate:modelValue"]),s(x,{"model-value":n.masteryThreshold?.minElo,"onUpdate:modelValue":t=>e.updateMinElo(r,a,t),label:"Min ELO",type:"number",density:"compact",style:{"max-width":"100px"},hint:"Optional","persistent-hint":""},null,8,["model-value","onUpdate:modelValue"]),s(C,{icon:"",size:"small",onClick:t=>e.removePrerequisite(r,a)},{default:o((()=>[s(b,null,{default:o((()=>t[9]||(t[9]=[l("mdi-minus-circle")]))),_:1})])),_:2},1032,["onClick"])])))),128)),s(C,{size:"small",variant:"text",onClick:t=>e.addPrerequisite(r)},{default:o((()=>[s(b,{start:""},{default:o((()=>t[10]||(t[10]=[l("mdi-plus")]))),_:1}),t[11]||(t[11]=l(" Add Prerequisite "))])),_:2},1032,["onClick"])])),_:2},1024)))),128))])])),_:1}),s(V,{value:"json"},{default:o((()=>[s(T,{"model-value":e.jsonText,"onUpdate:modelValue":e.updateFromJson,label:"Configuration JSON",rows:"15",placeholder:'{"prerequisites": {"cvc-words": [{"tag": "letter-sounds", "masteryThreshold": {"minCount": 10}}]}}',hint:"Paste or edit JSON configuration directly","persistent-hint":"","auto-grow":""},null,8,["model-value","onUpdate:modelValue"]),e.jsonError?(i(),a(S,{key:0,type:"error",density:"compact",class:"mt-2"},{default:o((()=>[l(f(e.jsonError),1)])),_:1})):e.jsonText?(i(),a(S,{key:1,type:"success",density:"compact",class:"mt-2"},{default:o((()=>t[13]||(t[13]=[l(" Valid configuration ")]))),_:1})):u("",!0)])),_:1})])),_:1},8,["modelValue"]),e.validationError?(i(),a(S,{key:0,type:"error",density:"compact",class:"mt-3"},{default:o((()=>[l(f(e.validationError),1)])),_:1})):u("",!0)])}],["__scopeId","data-v-470885e1"]]),ve=t({name:"InterferenceConfigForm",props:{modelValue:{type:Object,required:!0},courseId:{type:String,required:!0}},emits:["update:modelValue"],setup(e,{emit:t}){const n=_("ui"),r=_([]),a=_(null),i=_(null),o=_(!0),u=y((()=>e.modelValue)),s=y((()=>{try{return JSON.stringify(u.value,null,2)}catch{return""}}));return F((()=>{!async function(){o.value=!0;try{const t=x().getCourseDB(e.courseId),n=await t.getCourseTagStubs();r.value=n.rows.map((e=>e.id.replace("TAG-","")))}catch(t){console.error("Failed to load course tags:",t),a.value="Failed to load course tags"}finally{o.value=!1}}()})),w((()=>u.value),(()=>{!function(){a.value=null;try{if(!u.value.interferenceSets||!Array.isArray(u.value.interferenceSets))throw new Error("Interference sets must be an array");for(const e of u.value.interferenceSets){if(!Array.isArray(e.tags)||e.tags.length<2)throw new Error("Each interference group must have at least 2 tags");if(void 0!==e.decay&&(e.decay<0||e.decay>1))throw new Error("Decay values must be between 0 and 1")}return!0}catch(e){return a.value=e instanceof Error?e.message:"Invalid configuration",!1}}()}),{deep:!0}),{inputMode:n,config:u,availableTags:r,loadingTags:o,jsonText:s,jsonError:i,validationError:a,updateMinCount:function(e){const n="string"==typeof e?parseInt(e):e;isNaN(n)||t("update:modelValue",{...u.value,maturityThreshold:{...u.value.maturityThreshold,minCount:n}})},updateMinElo:function(e){if(""===e||null==e){const e={...u.value.maturityThreshold};return delete e.minElo,void t("update:modelValue",{...u.value,maturityThreshold:e})}const n="string"==typeof e?parseInt(e):e;isNaN(n)||t("update:modelValue",{...u.value,maturityThreshold:{...u.value.maturityThreshold,minElo:n}})},updateMinElapsedDays:function(e){const n="string"==typeof e?parseInt(e):e;isNaN(n)||t("update:modelValue",{...u.value,maturityThreshold:{...u.value.maturityThreshold,minElapsedDays:n}})},updateDefaultDecay:function(e){const n="string"==typeof e?parseFloat(e):e;isNaN(n)||t("update:modelValue",{...u.value,defaultDecay:Math.max(0,Math.min(1,n))})},addInterferenceGroup:function(){t("update:modelValue",{...u.value,interferenceSets:[...u.value.interferenceSets,{tags:[],decay:u.value.defaultDecay||.8}]})},removeInterferenceGroup:function(e){t("update:modelValue",{...u.value,interferenceSets:u.value.interferenceSets.filter(((t,n)=>n!==e))})},updateGroupTags:function(e,n){const r=[...u.value.interferenceSets];r[e]={...r[e],tags:n},t("update:modelValue",{...u.value,interferenceSets:r})},updateGroupDecay:function(e,n){const r="string"==typeof n?parseFloat(n):n;if(isNaN(r))return;const a=[...u.value.interferenceSets];a[e]={...a[e],decay:Math.max(0,Math.min(1,r))},t("update:modelValue",{...u.value,interferenceSets:a})},updateFromJson:function(e){i.value=null;try{const n=JSON.parse(e);if(!n.interferenceSets||!Array.isArray(n.interferenceSets))throw new Error('Config must have "interferenceSets" array');t("update:modelValue",n)}catch(n){i.value=n instanceof Error?n.message:"Invalid JSON"}}}}}),ye={class:"interference-config-form"},_e={class:"maturity-section mb-4"},we={class:"mb-4"},be={class:"interference-groups-section"},Ce={class:"d-flex align-center mb-2"},Se={class:"d-flex align-center mb-2"},Ie={class:"text-subtitle-2"},ke=te(ve,[["render",function(e,t,n,g,m,v){const y=r("v-tab"),_=r("v-tabs"),w=r("v-text-field"),b=r("v-slider"),C=r("v-spacer"),S=r("v-icon"),I=r("v-btn"),k=r("v-alert"),x=r("v-select"),D=r("v-card"),V=r("v-window-item"),T=r("v-textarea"),E=r("v-window");return i(),d("div",ye,[s(_,{modelValue:e.inputMode,"onUpdate:modelValue":t[0]||(t[0]=t=>e.inputMode=t),density:"compact",class:"mb-4"},{default:o((()=>[s(y,{value:"ui"},{default:o((()=>t[2]||(t[2]=[l("Visual Editor")]))),_:1}),s(y,{value:"json"},{default:o((()=>t[3]||(t[3]=[l("JSON Editor")]))),_:1})])),_:1},8,["modelValue"]),s(E,{modelValue:e.inputMode,"onUpdate:modelValue":t[1]||(t[1]=t=>e.inputMode=t)},{default:o((()=>[s(V,{value:"ui"},{default:o((()=>[c("div",_e,[t[4]||(t[4]=c("h4",{class:"text-subtitle-1 mb-2"},"Maturity Threshold",-1)),t[5]||(t[5]=c("p",{class:"text-caption mb-3"},'Tags below this threshold are considered "immature" (still being learned)',-1)),s(w,{"model-value":e.config.maturityThreshold?.minCount,"onUpdate:modelValue":e.updateMinCount,label:"Min Count",type:"number",hint:"Minimum interactions required (default: 10)","persistent-hint":"",density:"compact",class:"mb-2"},null,8,["model-value","onUpdate:modelValue"]),s(w,{"model-value":e.config.maturityThreshold?.minElo,"onUpdate:modelValue":e.updateMinElo,label:"Min ELO (optional)",type:"number",hint:"Minimum ELO score for maturity","persistent-hint":"",density:"compact",class:"mb-2"},null,8,["model-value","onUpdate:modelValue"]),s(w,{"model-value":e.config.maturityThreshold?.minElapsedDays,"onUpdate:modelValue":e.updateMinElapsedDays,label:"Min Elapsed Days",type:"number",hint:"Minimum time since first interaction (default: 3)","persistent-hint":"",density:"compact"},null,8,["model-value","onUpdate:modelValue"])]),c("div",we,[s(b,{"model-value":e.config.defaultDecay||.8,"onUpdate:modelValue":e.updateDefaultDecay,label:"Default Decay",min:0,max:1,step:.05,"thumb-label":"",hint:"Default interference strength for groups without explicit decay (0 = no effect, 1 = maximum avoidance)","persistent-hint":""},{append:o((()=>[s(w,{"model-value":e.config.defaultDecay||.8,"onUpdate:modelValue":e.updateDefaultDecay,type:"number",style:{width:"80px"},density:"compact","hide-details":"",min:0,max:1,step:.05},null,8,["model-value","onUpdate:modelValue"])])),_:1},8,["model-value","onUpdate:modelValue"])]),c("div",be,[c("div",Ce,[t[8]||(t[8]=c("h4",{class:"text-subtitle-1"},"Interference Groups",-1)),s(C),s(I,{size:"small",color:"primary",onClick:e.addInterferenceGroup},{default:o((()=>[s(S,{start:""},{default:o((()=>t[6]||(t[6]=[l("mdi-plus")]))),_:1}),t[7]||(t[7]=l(" Add Group "))])),_:1},8,["onClick"])]),0===e.config.interferenceSets.length?(i(),a(k,{key:0,type:"info",density:"compact"},{default:o((()=>t[9]||(t[9]=[l(' No interference groups defined. Click "Add Group" to create a set of tags that interfere with each other. ')]))),_:1})):u("",!0),(i(!0),d(p,null,h(e.config.interferenceSets,((n,r)=>(i(),a(D,{key:r,variant:"outlined",class:"mb-3 pa-3"},{default:o((()=>[c("div",Se,[c("h5",Ie,"Group "+f(r+1),1),s(C),s(I,{icon:"",size:"small",color:"error",onClick:t=>e.removeInterferenceGroup(r)},{default:o((()=>[s(S,null,{default:o((()=>t[10]||(t[10]=[l("mdi-delete")]))),_:1})])),_:2},1032,["onClick"])]),s(x,{"model-value":n.tags,"onUpdate:modelValue":t=>e.updateGroupTags(r,t),items:e.availableTags,loading:e.loadingTags,disabled:e.loadingTags,label:"Interfering Tags",hint:"Tags that interfere with each other","persistent-hint":"",multiple:"",chips:"","closable-chips":"",density:"compact",class:"mb-3"},null,8,["model-value","onUpdate:modelValue","items","loading","disabled"]),s(b,{"model-value":void 0!==n.decay?n.decay:e.config.defaultDecay||.8,"onUpdate:modelValue":t=>e.updateGroupDecay(r,t),label:"Decay Strength",min:0,max:1,step:.05,"thumb-label":"",hint:"How strongly these tags interfere (higher = stronger avoidance)","persistent-hint":""},{append:o((()=>[s(w,{"model-value":void 0!==n.decay?n.decay:e.config.defaultDecay||.8,"onUpdate:modelValue":t=>e.updateGroupDecay(r,t),type:"number",style:{width:"80px"},density:"compact","hide-details":"",min:0,max:1,step:.05},null,8,["model-value","onUpdate:modelValue"])])),_:2},1032,["model-value","onUpdate:modelValue"])])),_:2},1024)))),128))])])),_:1}),s(V,{value:"json"},{default:o((()=>[s(T,{"model-value":e.jsonText,"onUpdate:modelValue":e.updateFromJson,label:"Configuration JSON",rows:"20",placeholder:'{"interferenceSets": [{"tags": ["letter-b", "letter-d"], "decay": 0.9}], "maturityThreshold": {"minCount": 10}, "defaultDecay": 0.8}',hint:"Paste or edit JSON configuration directly","persistent-hint":"","auto-grow":""},null,8,["model-value","onUpdate:modelValue"]),e.jsonError?(i(),a(k,{key:0,type:"error",density:"compact",class:"mt-2"},{default:o((()=>[l(f(e.jsonError),1)])),_:1})):e.jsonText?(i(),a(k,{key:1,type:"success",density:"compact",class:"mt-2"},{default:o((()=>t[11]||(t[11]=[l(" Valid configuration ")]))),_:1})):u("",!0)])),_:1})])),_:1},8,["modelValue"]),e.validationError?(i(),a(k,{key:0,type:"error",density:"compact",class:"mt-3"},{default:o((()=>[l(f(e.validationError),1)])),_:1})):u("",!0)])}],["__scopeId","data-v-20d01937"]]),xe=t({name:"RelativePriorityConfigForm",props:{modelValue:{type:Object,required:!0},courseId:{type:String,required:!0}},emits:["update:modelValue"],setup(e,{emit:t}){const n=_("ui"),r=_([]),a=_(null),i=_(null),o=_(!0),u=y((()=>e.modelValue)),s=y((()=>{try{return JSON.stringify(u.value,null,2)}catch{return""}}));return F((()=>{!async function(){o.value=!0;try{const t=x().getCourseDB(e.courseId),n=await t.getCourseTagStubs();r.value=n.rows.map((e=>e.id.replace("TAG-","")))}catch(t){console.error("Failed to load course tags:",t),a.value="Failed to load course tags"}finally{o.value=!1}}()})),w((()=>u.value),(()=>{!function(){a.value=null;try{if(!u.value.tagPriorities||"object"!=typeof u.value.tagPriorities)throw new Error("Tag priorities must be an object");for(const[e,t]of Object.entries(u.value.tagPriorities))if("number"!=typeof t||t<0||t>1)throw new Error(`Priority for ${e} must be between 0 and 1`);return!0}catch(e){return a.value=e instanceof Error?e.message:"Invalid configuration",!1}}()}),{deep:!0}),{inputMode:n,config:u,availableTags:r,loadingTags:o,combineModes:[{title:"Max (highest priority wins)",value:"max"},{title:"Average (average all priorities)",value:"average"},{title:"Min (lowest priority wins)",value:"min"}],jsonText:s,jsonError:i,validationError:a,updateDefaultPriority:function(e){const n="string"==typeof e?parseFloat(e):e;isNaN(n)||t("update:modelValue",{...u.value,defaultPriority:Math.max(0,Math.min(1,n))})},updateCombineMode:function(e){t("update:modelValue",{...u.value,combineMode:e})},updatePriorityInfluence:function(e){const n="string"==typeof e?parseFloat(e):e;isNaN(n)||t("update:modelValue",{...u.value,priorityInfluence:Math.max(0,Math.min(1,n))})},getTagPriority:function(e){return void 0!==u.value.tagPriorities[e]?u.value.tagPriorities[e]:void 0!==u.value.defaultPriority?u.value.defaultPriority:.5},updateTagPriority:function(e,n){const r="string"==typeof n?parseFloat(n):n;isNaN(r)||t("update:modelValue",{...u.value,tagPriorities:{...u.value.tagPriorities,[e]:Math.max(0,Math.min(1,r))}})},updateFromJson:function(e){i.value=null;try{const n=JSON.parse(e);if(!n.tagPriorities||"object"!=typeof n.tagPriorities)throw new Error('Config must have "tagPriorities" object');t("update:modelValue",n)}catch(n){i.value=n instanceof Error?n.message:"Invalid JSON"}}}}}),De={class:"relative-priority-config-form"},Ve={class:"config-options mb-4"},Te={class:"tag-priorities-section"},Ee={key:2,class:"tag-priority-list"},Ae=t({name:"NavigationStrategyEditor",components:{NavigationStrategyList:ce,HierarchyConfigForm:me,InterferenceConfigForm:ke,RelativePriorityConfigForm:te(xe,[["render",function(e,t,n,g,m,v){const y=r("v-tab"),_=r("v-tabs"),w=r("v-text-field"),b=r("v-slider"),C=r("v-select"),S=r("v-alert"),I=r("v-window-item"),k=r("v-textarea"),x=r("v-window");return i(),d("div",De,[s(_,{modelValue:e.inputMode,"onUpdate:modelValue":t[0]||(t[0]=t=>e.inputMode=t),density:"compact",class:"mb-4"},{default:o((()=>[s(y,{value:"ui"},{default:o((()=>t[2]||(t[2]=[l("Visual Editor")]))),_:1}),s(y,{value:"json"},{default:o((()=>t[3]||(t[3]=[l("JSON Editor")]))),_:1})])),_:1},8,["modelValue"]),s(x,{modelValue:e.inputMode,"onUpdate:modelValue":t[1]||(t[1]=t=>e.inputMode=t)},{default:o((()=>[s(I,{value:"ui"},{default:o((()=>[c("div",Ve,[t[4]||(t[4]=c("h4",{class:"text-subtitle-1 mb-2"},"Priority Configuration",-1)),s(b,{"model-value":void 0!==e.config.defaultPriority?e.config.defaultPriority:.5,"onUpdate:modelValue":e.updateDefaultPriority,label:"Default Priority",min:0,max:1,step:.05,"thumb-label":"",hint:"Priority for tags not explicitly listed (0.5 = neutral)","persistent-hint":"",class:"mb-3"},{append:o((()=>[s(w,{"model-value":void 0!==e.config.defaultPriority?e.config.defaultPriority:.5,"onUpdate:modelValue":e.updateDefaultPriority,type:"number",style:{width:"80px"},density:"compact","hide-details":"",min:0,max:1,step:.05},null,8,["model-value","onUpdate:modelValue"])])),_:1},8,["model-value","onUpdate:modelValue"]),s(C,{"model-value":e.config.combineMode||"max","onUpdate:modelValue":e.updateCombineMode,label:"Combine Mode",items:e.combineModes,hint:"How to combine priorities when a card has multiple tags","persistent-hint":"",density:"compact",class:"mb-3"},null,8,["model-value","onUpdate:modelValue","items"]),s(b,{"model-value":void 0!==e.config.priorityInfluence?e.config.priorityInfluence:.5,"onUpdate:modelValue":e.updatePriorityInfluence,label:"Priority Influence",min:0,max:1,step:.05,"thumb-label":"",hint:"How strongly priority affects scoring (0 = no effect, 1 = maximum effect)","persistent-hint":""},{append:o((()=>[s(w,{"model-value":void 0!==e.config.priorityInfluence?e.config.priorityInfluence:.5,"onUpdate:modelValue":e.updatePriorityInfluence,type:"number",style:{width:"80px"},density:"compact","hide-details":"",min:0,max:1,step:.05},null,8,["model-value","onUpdate:modelValue"])])),_:1},8,["model-value","onUpdate:modelValue"])]),c("div",Te,[t[7]||(t[7]=c("h4",{class:"text-subtitle-1 mb-2"},"Tag Priorities",-1)),t[8]||(t[8]=c("p",{class:"text-caption mb-3"},"Set priority for each tag (1.0 = highest priority, 0.0 = lowest)",-1)),e.loadingTags?(i(),a(S,{key:0,type:"info",density:"compact"},{default:o((()=>t[5]||(t[5]=[l(" Loading tags... ")]))),_:1})):0===e.availableTags.length?(i(),a(S,{key:1,type:"warning",density:"compact"},{default:o((()=>t[6]||(t[6]=[l(" No tags available in course ")]))),_:1})):(i(),d("div",Ee,[(i(!0),d(p,null,h(e.availableTags,(t=>(i(),d("div",{key:t,class:"tag-priority-item mb-3"},[s(b,{"model-value":e.getTagPriority(t),"onUpdate:modelValue":n=>e.updateTagPriority(t,n),label:t,min:0,max:1,step:.05,"thumb-label":"",density:"compact"},{append:o((()=>[s(w,{"model-value":e.getTagPriority(t),"onUpdate:modelValue":n=>e.updateTagPriority(t,n),type:"number",style:{width:"80px"},density:"compact","hide-details":"",min:0,max:1,step:.05},null,8,["model-value","onUpdate:modelValue"])])),_:2},1032,["model-value","onUpdate:modelValue","label"])])))),128))]))])])),_:1}),s(I,{value:"json"},{default:o((()=>[s(k,{"model-value":e.jsonText,"onUpdate:modelValue":e.updateFromJson,label:"Configuration JSON",rows:"15",placeholder:'{"tagPriorities": {"letter-s": 0.95, "letter-t": 0.90}, "defaultPriority": 0.5, "combineMode": "max", "priorityInfluence": 0.5}',hint:"Paste or edit JSON configuration directly","persistent-hint":"","auto-grow":""},null,8,["model-value","onUpdate:modelValue"]),e.jsonError?(i(),a(S,{key:0,type:"error",density:"compact",class:"mt-2"},{default:o((()=>[l(f(e.jsonError),1)])),_:1})):e.jsonText?(i(),a(S,{key:1,type:"success",density:"compact",class:"mt-2"},{default:o((()=>t[9]||(t[9]=[l(" Valid configuration ")]))),_:1})):u("",!0)])),_:1})])),_:1},8,["modelValue"]),e.validationError?(i(),a(S,{key:0,type:"error",density:"compact",class:"mt-3"},{default:o((()=>[l(f(e.validationError),1)])),_:1})):u("",!0)])}],["__scopeId","data-v-573b50bd"]])},props:{courseId:{type:String,required:!0}},data:()=>({strategies:[],loading:!0,showDeleteConfirm:!1,strategyToDelete:null,strategyTypes:[{label:"Hierarchy Definition",value:"hierarchy"},{label:"Interference Mitigator",value:"interference"},{label:"Relative Priority",value:"relativePriority"}],newStrategy:{type:"hierarchy",name:"",description:"",config:{cardIds:[]}},editingStrategy:null,defaultStrategyId:null}),async created(){await this.loadStrategies()},watch:{"newStrategy.type"(e){this.newStrategy.config=this.getDefaultConfig(e)}},methods:{getDefaultConfig(e){switch(e){case"hierarchy":return{prerequisites:{}};case"interference":return{interferenceSets:[],maturityThreshold:{minCount:10,minElapsedDays:3},defaultDecay:.8};case"relativePriority":return{tagPriorities:{},defaultPriority:.5,combineMode:"max",priorityInfluence:.5};default:return{}}},getStrategyTypeFromClass(e){switch(e){case A.HIERARCHY:return"hierarchy";case A.INTERFERENCE:return"interference";case A.RELATIVE_PRIORITY:return"relativePriority";default:return"hierarchy"}},parseSerializedData(e,t){try{return JSON.parse(t)}catch(n){return console.error("Failed to parse strategy data:",n),this.getDefaultConfig(e)}},async loadStrategies(){this.loading=!0;try{const e=x().getCourseDB(this.courseId),[t,n]=await Promise.all([e.getAllNavigationStrategies(),e.getCourseConfig()]);this.strategies=t,this.defaultStrategyId=n.defaultNavigationStrategyId||null}catch(e){console.error("Failed to load navigation strategies:",e),this.strategies=[{_id:"NAVIGATION_STRATEGY-ELO",docType:E.NAVIGATION_STRATEGY,name:"ELO",description:"Default ELO-based navigation strategy",implementingClass:A.ELO,course:this.courseId,serializedData:"",author:"system"}]}this.loading=!1},async setDefaultStrategy(e){try{this.loading=!0;const t=x().getCourseDB(this.courseId),n=await t.getCourseConfig();n.defaultNavigationStrategyId=e,await t.updateCourseConfig(n),this.defaultStrategyId=e,alert("Default strategy updated!")}catch(t){console.error("Failed to set default strategy:",t),alert("Error updating default strategy. See console for details.")}finally{this.loading=!1}},startNewStrategy(){const e="hierarchy";this.newStrategy={type:e,name:"",description:"",config:this.getDefaultConfig(e)},this.editingStrategy=null},cancelEdit(){this.startNewStrategy()},editStrategy(e){const t=this.getStrategyTypeFromClass(e.implementingClass),n=this.parseSerializedData(t,e.serializedData);this.newStrategy={type:t,name:e.name,description:e.description,config:n},this.editingStrategy=e},async saveStrategy(){if(this.newStrategy.name)if("hardcoded"!==this.newStrategy.type||0!==this.newStrategy.config.cardIds.length){if("hierarchy"===this.newStrategy.type&&0===Object.keys(this.newStrategy.config.prerequisites||{}).length)return void alert("At least one prerequisite rule is required for hierarchy strategy.");if("interference"!==this.newStrategy.type||this.newStrategy.config.interferenceSets&&0!==this.newStrategy.config.interferenceSets.length)if("relativePriority"!==this.newStrategy.type||this.newStrategy.config.tagPriorities&&0!==Object.keys(this.newStrategy.config.tagPriorities).length){this.loading=!0;try{const e=x(),t=e.getUserDB().getUsername(),n=e.getCourseDB(this.courseId),r={hierarchy:A.HIERARCHY,interference:A.INTERFERENCE,relativePriority:A.RELATIVE_PRIORITY};let a=JSON.stringify(this.newStrategy.config);if(this.editingStrategy){const e={...this.editingStrategy,name:this.newStrategy.name,description:this.newStrategy.description,implementingClass:r[this.newStrategy.type],serializedData:a};await n.updateNavigationStrategy(this.editingStrategy._id,e)}else{const e={_id:`NAVIGATION_STRATEGY-${Date.now()}`,docType:E.NAVIGATION_STRATEGY,name:this.newStrategy.name,description:this.newStrategy.description,implementingClass:r[this.newStrategy.type],author:t,course:this.courseId,serializedData:a};await n.addNavigationStrategy(e)}await this.loadStrategies(),this.startNewStrategy()}catch(e){console.error("Failed to save new strategy:",e),alert("Error saving strategy. See console for details.")}this.loading=!1}else alert("At least one tag priority must be set for relative priority strategy.");else alert("At least one interference group is required for interference strategy.")}else alert("At least one card ID is required for hardcoded order strategy.");else alert("Strategy Name is required.")},confirmDeleteStrategy(e){this.strategyToDelete=e,this.showDeleteConfirm=!0},async deleteStrategy(){if(this.strategyToDelete){this.loading=!0;try{const e=x().getCourseDB(this.courseId),t={_id:this.strategyToDelete._id,docType:E.NAVIGATION_STRATEGY,name:"DELETED",description:"This strategy has been deleted",implementingClass:"",course:this.courseId,serializedData:""};await e.updateNavigationStrategy(this.strategyToDelete._id,t),console.log(`Strategy ${this.strategyToDelete._id} marked as deleted`),this.strategies=this.strategies.filter((e=>e._id!==this.strategyToDelete?._id)),this.showDeleteConfirm=!1,this.strategyToDelete=null}catch(e){console.error("Failed to delete navigation strategy:",e)}this.loading=!1}}}}),Fe={class:"navigation-strategy-editor"},Oe={key:0,class:"text-center pa-4"},Re={key:1,class:"editor-layout"},je={class:"strategy-list-column"},Ue={class:"d-flex align-center mb-2"},qe={class:"strategy-form-column"},Ne={class:"form-header d-flex align-center mb-3"},Pe={class:"text-h6"},Me={class:"form-actions mt-4"},ze=te(Ae,[["render",function(e,t,n,p,h,g){const m=r("v-progress-circular"),v=r("v-spacer"),y=r("v-icon"),_=r("v-btn"),w=r("v-alert"),b=r("navigation-strategy-list"),C=r("v-select"),S=r("v-text-field"),I=r("hierarchy-config-form"),k=r("interference-config-form"),x=r("relative-priority-config-form"),D=r("v-card-title"),V=r("v-card-text"),T=r("v-card-actions"),E=r("v-card"),A=r("v-dialog");return i(),d("div",Fe,[e.loading?(i(),d("div",Oe,[s(m,{indeterminate:"",color:"secondary"})])):(i(),d("div",Re,[c("div",je,[c("div",Ue,[t[10]||(t[10]=c("h3",{class:"text-h6"},"Strategies",-1)),s(v),s(_,{size:"small",color:"primary",onClick:e.startNewStrategy,density:"compact"},{default:o((()=>[s(y,{start:"",size:"small"},{default:o((()=>t[8]||(t[8]=[l("mdi-plus")]))),_:1}),t[9]||(t[9]=l(" New "))])),_:1},8,["onClick"])]),0===e.strategies.length?(i(),a(w,{key:0,type:"info",density:"compact"},{default:o((()=>t[11]||(t[11]=[l(" No strategies defined ")]))),_:1})):(i(),a(b,{key:1,strategies:e.strategies,"default-strategy-id":e.defaultStrategyId,"onUpdate:defaultStrategy":e.setDefaultStrategy,onEdit:e.editStrategy,onDelete:e.confirmDeleteStrategy},null,8,["strategies","default-strategy-id","onUpdate:defaultStrategy","onEdit","onDelete"]))]),c("div",qe,[c("div",Ne,[c("h3",Pe,f(e.editingStrategy?"Edit Strategy":"New Strategy"),1),s(v),e.editingStrategy?(i(),a(_,{key:0,size:"small",variant:"text",onClick:e.cancelEdit,density:"compact"},{default:o((()=>t[12]||(t[12]=[l(" Cancel ")]))),_:1},8,["onClick"])):u("",!0)]),s(C,{modelValue:e.newStrategy.type,"onUpdate:modelValue":t[0]||(t[0]=t=>e.newStrategy.type=t),label:"Type",items:e.strategyTypes,"item-title":"label","item-value":"value",density:"compact",class:"mb-3"},null,8,["modelValue","items"]),s(S,{modelValue:e.newStrategy.name,"onUpdate:modelValue":t[1]||(t[1]=t=>e.newStrategy.name=t),label:"Name",density:"compact",class:"mb-3"},null,8,["modelValue"]),s(S,{modelValue:e.newStrategy.description,"onUpdate:modelValue":t[2]||(t[2]=t=>e.newStrategy.description=t),label:"Description",density:"compact",class:"mb-3"},null,8,["modelValue"]),"hierarchy"===e.newStrategy.type?(i(),a(I,{key:0,modelValue:e.newStrategy.config,"onUpdate:modelValue":t[3]||(t[3]=t=>e.newStrategy.config=t),"course-id":e.courseId},null,8,["modelValue","course-id"])):"interference"===e.newStrategy.type?(i(),a(k,{key:1,modelValue:e.newStrategy.config,"onUpdate:modelValue":t[4]||(t[4]=t=>e.newStrategy.config=t),"course-id":e.courseId},null,8,["modelValue","course-id"])):"relativePriority"===e.newStrategy.type?(i(),a(x,{key:2,modelValue:e.newStrategy.config,"onUpdate:modelValue":t[5]||(t[5]=t=>e.newStrategy.config=t),"course-id":e.courseId},null,8,["modelValue","course-id"])):(i(),a(w,{key:3,type:"warning",density:"compact"},{default:o((()=>[l(" Unknown strategy type: "+f(e.newStrategy.type),1)])),_:1})),c("div",Me,[s(_,{color:"primary",onClick:e.saveStrategy,disabled:!e.newStrategy.name,size:"small"},{default:o((()=>[l(f(e.editingStrategy?"Update":"Create"),1)])),_:1},8,["onClick","disabled"]),e.editingStrategy?(i(),a(_,{key:0,variant:"text",onClick:e.cancelEdit,size:"small"},{default:o((()=>t[13]||(t[13]=[l(" Cancel ")]))),_:1},8,["onClick"])):u("",!0)])]),s(A,{modelValue:e.showDeleteConfirm,"onUpdate:modelValue":t[7]||(t[7]=t=>e.showDeleteConfirm=t),"max-width":"400px"},{default:o((()=>[s(E,null,{default:o((()=>[s(D,{class:"text-subtitle-1"},{default:o((()=>t[14]||(t[14]=[l("Delete Strategy")]))),_:1}),s(V,null,{default:o((()=>[l('Delete "'+f(e.strategyToDelete?.name)+'"?',1)])),_:1}),s(T,null,{default:o((()=>[s(v),s(_,{size:"small",onClick:t[6]||(t[6]=t=>e.showDeleteConfirm=!1)},{default:o((()=>t[15]||(t[15]=[l("Cancel")]))),_:1}),s(_,{size:"small",color:"error",onClick:e.deleteStrategy},{default:o((()=>t[16]||(t[16]=[l("Delete")]))),_:1},8,["onClick"])])),_:1})])),_:1})])),_:1},8,["modelValue"])]))])}],["__scopeId","data-v-1cb6c357"]]);function Be(e){return null!==e&&"object"==typeof e&&"clearData"in e&&"validate"in e&&"function"==typeof e.clearData&&"function"==typeof e.validate}const $e={status:e.ok,msg:""};function Le(t){const n={status:e.error,msg:"This input must be a number"};return r=t,isNaN(r-parseFloat(r))?n:$e;var r}function We(t){const n={status:e.error,msg:"This input must be an integer (..., -2, -1, 0, 1, 2, ...)."};return Le(t).status===e.error?Le(t):/^[+,-]?\s?\d+$/.test(t)?$e:n}const Je=n("fieldStore",{state:()=>({dataShape:null,inputs:{},mediaInputs:{},inputIsValid:!1,validation:{},convertedInput:{},previewInput:{}}),getters:{isValidated(){return this.inputIsValid},getPreview:e=>e.inputIsValid?e.previewInput:{},getConverted:e=>e.inputIsValid?e.convertedInput:{}},actions:{$reset(){console.log("[FieldInputStore].reset()"),this.inputs={},this.mediaInputs={},this.validation={},this.convertedInput={},this.previewInput={},this.inputIsValid=!1;for(let e=1;e<=10;e++){const t=`audio-${e}`,n=`image-${e}`;delete this.mediaInputs[t],delete this.mediaInputs[n]}},setFieldValue(e,t){this.inputs[e]=t,this.validate(),this.convert()},setMedia(e,t){console.log(`[FieldInputStore].setMedia: ${e}`),this.mediaInputs[e]=t,this.convert()},validate(){if(this.validation={},null!==this.dataShape){this.inputIsValid=!0;for(const t of this.dataShape.fields)t.validator&&(t.validator.test(this.inputs[t.name]).status===e.ok?this.validation[t.name]=!0:(this.inputIsValid=!1,this.validation[t.name]=!1))}else this.inputIsValid=!1},convert(){this.convertedInput={},this.dataShape?.fields.forEach((e=>{this.convertedInput[e.name]=L[e.type].databaseConverter(this.inputs[e.name]),this.previewInput[e.name]=L[e.type].previewConverter(this.inputs[e.name])}));for(let e=1;e<11;e++){const t=`audio-${e}`,n=this.mediaInputs[t];if(!n)break;this.convertedInput[t]=L[O.AUDIO].databaseConverter(n),this.previewInput[t]=L[O.AUDIO].previewConverter(n)}for(let e=1;e<11;e++){const t=`image-${e}`,n=this.mediaInputs[t];if(!n)break;this.convertedInput[t]=L[O.IMAGE].databaseConverter(n),this.previewInput[t]=L[O.IMAGE].previewConverter(n)}},clearMediaEntries(){for(let e=1;e<=10;e++)delete this.mediaInputs[`audio-${e}`],delete this.mediaInputs[`image-${e}`],delete this.convertedInput[`audio-${e}`],delete this.convertedInput[`image-${e}`],delete this.previewInput[`audio-${e}`],delete this.previewInput[`image-${e}`]},clearField(e){delete this.inputs[e],delete this.validation[e],delete this.convertedInput[e],delete this.previewInput[e]}}}),Ge=t({name:"FieldInput",props:{autofocus:Boolean,field:{type:Object,required:!0}},setup(t){const n=Je(),r=_(null),a=y({get:()=>n.inputs[t.field.name],set:e=>n.setFieldValue(t.field.name,e)});w(a,((e,r)=>{console.log("[FieldInput] modelValue changed:",{new:e,old:r,currentStoreValue:n.inputs[t.field.name]})}));const i=y((()=>{const e=[];return t.field?.validator&&e.push(t.field.validator.test),e})),o=()=>{if(!t.field?.name)throw new Error("Field name is required for FieldInput component");return n.inputs[t.field.name]};return{inputField:r,fieldStore:n,modelValue:a,validators:i,focus:()=>{r.value&&r.value.focus()},userInput:o,clearData:()=>{if(console.log(`[FieldInput] Running generic clearData() for ${t.field?.name} in FieldInput.ts`),r.value){if(r.value.value="",!t.field?.name)return;n.clearField(t.field.name)}},setData:e=>{if(!t.field?.name)throw new Error("Field name is required for FieldInput component");n.setFieldValue(t.field.name,e)},vuetifyRules:()=>t.field?.validator?i.value.map((t=>{return n=t,t=>{const r=n(t);return r.status===e.ok||r.msg};var n})):[],generateTags:()=>(console.log("[FieldInput] Running generic generateTags() in FieldInput.ts"),t.field?.tagger?t.field.tagger(o()):[]),generateELO:()=>(console.log("[FieldInput] Running generic generateELO() in FieldInput.ts"),t.field?.generateELO?t.field.generateELO(o()):void 0)}},data:()=>({validationStatus:{status:e.ok,msg:""}})}),He=te(t({name:"IntegerInput",extends:Ge,setup(e,t){const n=Ge.setup?.(e,t);return{...n,validators:y((()=>{const t=Ge.validators.call(this);return e.field.validator?.test&&t.push(e.field.validator.test),t?[We,...t]:[We]}))}}}),[["render",function(e,t,n,o,u,s){const l=r("v-text-field");return i(),a(l,{ref:"inputField",modelValue:e.modelValue,"onUpdate:modelValue":t[0]||(t[0]=t=>e.modelValue=t),variant:"filled",type:"number",name:e.field.name,label:e.field.name,rules:e.vuetifyRules(),hint:e.validationStatus.msg,autofocus:e.autofocus},null,8,["modelValue","name","label","rules","hint","autofocus"])}]]),Ke=te(t({name:"MarkdownInput",extends:Ge,setup(e,t){const n=Ge.setup?.(e,t);return{...n}}}),[["render",function(e,t,n,o,u,s){const l=r("v-textarea");return i(),a(l,{ref:"inputField",modelValue:e.modelValue,"onUpdate:modelValue":t[0]||(t[0]=t=>e.modelValue=t),variant:"filled",name:e.field.name,label:e.field.name,rules:e.vuetifyRules(),hint:e.validationStatus.msg,autofocus:e.autofocus},null,8,["modelValue","name","label","rules","hint","autofocus"])}],["__scopeId","data-v-28ef24ff"]]),Qe=t({name:"MediaDragDropUploader",extends:Ge,setup(e,t){const n=Ge.setup?.(e,t),{fieldStore:r}=n;return{...n,fieldStore:r}},data:()=>({isDragging:!1,mediaItems:[]}),computed:{hasMedia(){return this.mediaItems.length>0}},created(){},methods:{dragOverHandler(e){e.preventDefault()},dragEnterHandler(e){e.preventDefault(),this.isDragging=!0},dragLeaveHandler(e){e.preventDefault(),this.isDragging=!1},dropHandler(e){e.preventDefault(),this.isDragging=!1;const t=e.dataTransfer?.files;t&&this.processFiles(t)},triggerFileInput(){this.$refs.fileInput.click()},handleFileInput(e){const t=e.target.files;t&&this.processFiles(t)},processFiles(e){Array.from(e).forEach((e=>{this.addMediaItem(e)})),this.updateStore()},addMediaItem(e){const t=e.type.startsWith("image/")?"image":"audio",n={type:t,file:e,url:URL.createObjectURL(e)};"image"===t&&this.createThumbnail(e).then((e=>{n.thumbnailUrl=e,this.$nextTick((()=>{this.$forceUpdate()}))})),this.mediaItems.push(n)},createThumbnail:async e=>new Promise((t=>{const n=new FileReader;n.onload=e=>{t(e.target?.result)},n.readAsDataURL(e)})),removeMedia(e){URL.revokeObjectURL(this.mediaItems[e].url),this.mediaItems.splice(e,1),this.updateStore()},clearData(){this.mediaItems.forEach((e=>{URL.revokeObjectURL(e.url)})),this.mediaItems=[],this.updateStore()},addMoreMedia(){console.log("addMoreMedia"),this.triggerFileInput()},updateStore(){let e=0,t=0;this.mediaItems.forEach((n=>{"image"===n.type?(e++,this.fieldStore.setMedia(`image-${e}`,{content_type:n.file.type,data:n.file})):"audio"===n.type&&(t++,this.fieldStore.setMedia(`audio-${t}`,{content_type:n.file.type,data:n.file}))}))},getValidators(){return[()=>({status:this.mediaItems.length>0?e.ok:e.error,msg:this.mediaItems.length>0?"":"At least one media item is required"})]}}}),Ye={class:"mr-2 mb-2"},Ze=["src"],Xe=["src"],et=te(Qe,[["render",function(e,t,n,a,f,g){const y=r("v-label"),_=r("v-btn");return i(),d("div",Ye,[s(y,{class:"text-h5"},{default:o((()=>t[5]||(t[5]=[l("Add media:")]))),_:1}),c("div",{class:v(["drop-zone",{"drop-zone--over":e.isDragging}]),onDrop:t[1]||(t[1]=(...t)=>e.dropHandler&&e.dropHandler(...t)),onDragover:t[2]||(t[2]=m(((...t)=>e.dragOverHandler&&e.dragOverHandler(...t)),["prevent"])),onDragenter:t[3]||(t[3]=m(((...t)=>e.dragEnterHandler&&e.dragEnterHandler(...t)),["prevent"])),onDragleave:t[4]||(t[4]=m(((...t)=>e.dragLeaveHandler&&e.dragLeaveHandler(...t)),["prevent"]))},[c("input",{ref:"fileInput",type:"file",accept:"image/*,audio/*",multiple:"",style:{display:"none"},onChange:t[0]||(t[0]=(...t)=>e.handleFileInput&&e.handleFileInput(...t))},null,544),(i(!0),d(p,null,h(e.mediaItems,((n,r)=>(i(),d("div",{key:r,class:"media-item"},["image"===n.type?(i(),d("img",{key:0,src:n.thumbnailUrl,alt:"Uploaded image thumbnail",class:"thumbnail"},null,8,Ze)):"audio"===n.type?(i(),d("audio",{key:1,controls:"",src:n.url},null,8,Xe)):u("",!0),s(_,{size:"small",onClick:t=>e.removeMedia(r)},{default:o((()=>t[6]||(t[6]=[l("Remove")]))),_:2},1032,["onClick"])])))),128)),t[8]||(t[8]=l(" Drop image or audio files here... ")),s(_,{onClick:e.triggerFileInput},{default:o((()=>t[7]||(t[7]=[l("Or Click to Upload")]))),_:1},8,["onClick"])],34)])}],["__scopeId","data-v-e86645b6"]]),tt=t({name:"MidiInput",components:{SyllableSeqVis:P},extends:Ge,data:()=>({midi:null,recording:!1,SylSeq:N([]),display:!1,transpositions:!1}),async created(){try{this.midi=await z.instance(),this.record(),this.store[this.field.name]=this.getTransposedSeqs}catch(e){throw new Error(`MidiInput.created: ${e}`)}},methods:{record(){this.midi&&(this.midi.record(),this.midi.addNoteonListenter((e=>{this.SylSeq.append(e),this.$refs.inputVis.updateBounds()})),this.recording=!0)},getTransposedSeqs(){return this.midi?this.transpositions?[-5,-4,-3,-2,-1,0,1,2,3,4,5,6].map((e=>M(this.midi.recording,e))):[this.midi.recording]:[]},clearData(){this.midi&&(console.log("midiInput clearing data..."),this.midi.stopRecording(),this.midi.eraseRecording(),this.SylSeq=N([]),this.record(),this.recording=!0,this.store.convertedInput[this.field.name]=this.midi.recording,this.store.validation[this.field.name]=!1,this.store[this.field.name]=this.getTransposedSeqs)},hasRecording(){return this.midi?.hasRecording??!1},reset(){this.clearData()},play(){this.midi&&(this.midi.play(),this.display=!0,this.validate())}}}),nt={key:0},rt={class:"text-h5"},at={class:"font-weight-black"},it=te(tt,[["render",function(e,t,n,p,h,g){const m=r("syllable-seq-vis"),v=r("v-icon"),y=r("v-btn"),_=r("v-checkbox");return i(),d("div",null,[e.recording?(i(),d("div",nt,[c("span",rt,[t[1]||(t[1]=l(" Now Recording from device: ")),c("span",at,f(e.midi.configuredInput),1)])])):u("",!0),(i(),a(m,{key:1,ref:"inputVis",seq:e.SylSeq,"last-t-ssuggestion":"5000"},null,8,["seq"])),s(y,{color:"primary",disabled:e.hasRecording(),onClick:e.play},{default:o((()=>[t[3]||(t[3]=l(" Preview ")),s(v,{end:""},{default:o((()=>t[2]||(t[2]=[l("volume_up")]))),_:1})])),_:1},8,["disabled","onClick"]),s(y,{color:"error",disabled:e.hasRecording(),onClick:e.reset},{default:o((()=>[t[5]||(t[5]=l(" Clear and try again ")),s(v,{end:""},{default:o((()=>t[4]||(t[4]=[l("close")]))),_:1})])),_:1},8,["disabled","onClick"]),s(_,{modelValue:e.transpositions,"onUpdate:modelValue":t[0]||(t[0]=t=>e.transpositions=t),label:"Include Transpositions",onClickCapture:e.reset},null,8,["modelValue","onClickCapture"])])}]]),ot=te(t({name:"NumberInput",extends:Ge,setup(e,t){const n=Ge.setup?.(e,t);return{...n,validators:y((()=>{const t=Ge.validators.call(this);return e.field.validator?.test&&t.push(e.field.validator.test),t?[Le,...t]:[Le]}))}}}),[["render",function(e,t,n,o,u,s){const l=r("v-text-field");return i(),a(l,{ref:"inputField",modelValue:e.modelValue,"onUpdate:modelValue":t[0]||(t[0]=t=>e.modelValue=t),variant:"filled",type:"number",name:e.field.name,label:e.field.name,rules:e.vuetifyRules(),hint:e.validationStatus.msg,autofocus:e.autofocus},null,8,["modelValue","name","label","rules","hint","autofocus"])}]]),ut=te(t({name:"StringInput",extends:Ge,setup(e,t){const n=Ge.setup?.(e,t);return{...n,validators:y((()=>{const t=Ge.validators.call(this);return e.field.validator?.test&&t.push(e.field.validator.test),t||[]}))}}}),[["render",function(e,t,n,o,u,s){const l=r("v-text-field");return i(),a(l,{ref:"inputField",modelValue:e.modelValue,"onUpdate:modelValue":t[0]||(t[0]=t=>e.modelValue=t),variant:"filled",type:"text",name:e.field.name,label:e.field.name,rules:e.vuetifyRules(),hint:e.validationStatus.msg,autofocus:e.autofocus},null,8,["modelValue","name","label","rules","hint","autofocus"])}]]),st=te(t({name:"ChessPuzzleInput",extends:Ge,setup(e,t){const n=Ge.setup?.(e,t),r=()=>{if(!n)return[];console.log(`CPI.generateTags: modelValue: ${n.modelValue.value}`);const e=n.modelValue.value.split(","),t=e[7].split(" "),r=e[9].split(" ");return t.map((e=>`theme-${e}`)).concat(r.map((e=>`opening-${e}`)))};return{...n,generateELO:()=>{if(!n)return;const e=n.modelValue.value.split(","),t=parseInt(e[3]),a=parseInt(e[6]),i={global:{score:t,count:a},tags:{},misc:{}};return r().forEach((e=>{i.tags[e]={score:t,count:a}})),console.log("generateELO",JSON.stringify(i)),i},generateTags:r}}}),[["render",function(e,t,n,o,u,s){const l=r("v-text-field");return i(),a(l,{ref:"inputField",modelValue:e.modelValue,"onUpdate:modelValue":t[0]||(t[0]=t=>e.modelValue=t),variant:"filled",name:e.field.name,label:e.field.name,rules:e.vuetifyRules(),autofocus:e.autofocus},null,8,["modelValue","name","label","rules","autofocus"])}]]),lt=n("dataInputForm",{state:()=>({dataInputForm:{dataShape:null,course:null,shapeViews:[],fields:[],fieldStore:Je(),uploading:!1}}),actions:{setDataShape(e){this.dataInputForm.dataShape=e,this.dataInputForm.fieldStore.dataShape=e,this.dataInputForm.fieldStore.$reset()},setCourse(e){this.dataInputForm.course=e}}}),ct=t({name:"DataInputForm",components:{NumberInput:ot,StringInput:ut,IntegerInput:He,MarkdownInput:Ke,MidiInput:it,CardBrowser:V,MediaDragDropUploader:et,TagsInput:R,ChessPuzzleInput:st},props:{courseCfg:{type:Object,required:!0,default:()=>({courseID:"default-test"})},dataShape:{type:Object,required:!0},previewComponent:{type:Object,required:!1,default:null},courseWare:{type:Object,default:()=>U}},data:()=>({tag:"",tags:[],autoCompleteSuggestions:[],timer:void 0,dataInputFormStore:lt(),fieldInputRefs:[],courseDB:null}),computed:{ftString:()=>O.STRING,int:()=>O.INT,num:()=>O.NUMBER,img:()=>O.IMAGE,mkd:()=>O.MARKDOWN,audio:()=>O.AUDIO,midi:()=>O.MIDI,uploader:()=>O.MEDIA_UPLOADS,chessPuzzle:()=>O.CHESS_PUZZLE,fieldInputs(){return Array.from(this.fieldInputRefs.values())},shapeViews:{get(){return this.dataInputFormStore.dataInputForm.shapeViews},set(e){this.dataInputFormStore.dataInputForm.shapeViews=e}},allowSubmit(){return this.dataInputFormStore.dataInputForm.fieldStore.isValidated},fieldStore(){return this.dataInputFormStore.dataInputForm.fieldStore},uploading:{get(){return this.dataInputFormStore.dataInputForm.uploading},set(e){this.dataInputFormStore.dataInputForm.uploading=e}},previewInput(){return this.fieldStore.getPreview},convertedInput(){return this.fieldStore.convertedInput},inputIsValidated(){return this.dataInputFormStore.dataInputForm.fieldStore.isValidated},datashapeDescriptor(){if(!this.courseCfg||!this.courseCfg.dataShapes)return{course:"",dataShape:""};for(const e of this.courseCfg.dataShapes){const t=S.getDataShapeDescriptor(e.name);if(t.dataShape===this.dataShape.name)return t}return{course:"",dataShape:""}}},watch:{dataShape:{handler(){this.previewComponent||this.getImplementingViews()},immediate:!0},store:{handler(){this.convertInput()}},"dataShape.fields"(e){console.log(`[DataInputForm].watch(fields): newFields ${JSON.stringify(e)}`),console.log(`[DataInputForm].watch(fields): fields ${JSON.stringify(this.dataShape.fields)}`),this.fieldInputRefs=new Array(e.length).fill(null),console.log(`[DataInputForm].watch(fields): fieldRefs ${JSON.stringify(this.fieldInputRefs)}`)}},created(){this.uploading=!1,this.courseDB=x().getCourseDB(this.courseCfg.courseID),this.getCourseTags(),this.dataInputFormStore.setDataShape(this.dataShape),console.log(`[DataInputForm].created: fields: ${JSON.stringify(this.dataShape.fields)}`),this.fieldInputRefs=new Array(this.dataShape.fields.length).fill(null),this.previewComponent&&this.getImplementingViews()},beforeUnmount(){this.fieldInputRefs=[]},methods:{async updateTags(e){console.log(`[DataInputForm] tags updated: ${JSON.stringify(e)}`),this.tags=e},setFieldInputRef(e,t){for(console.log(`[DataInputForm].setFieldInputRef: index: ${t}`),t>=this.fieldInputRefs.length&&(this.fieldInputRefs=this.fieldInputRefs.concat(new Array(t-this.fieldInputRefs.length+1).fill(null)));null===this.fieldInputRefs[this.fieldInputRefs.length-1];)this.fieldInputRefs.pop();this.fieldInputRefs[t]=e},async getCourseTags(){const e=await this.courseDB.getCourseTagStubs();this.autoCompleteSuggestions=e.rows.map((e=>e.doc.name))},expectedValidations(){return this.dataShape.fields.length},checkInput:()=>!0,convertInput(){},inputContainsTranspositionFcns(){this.convertInput();for(const e in this.convertedInput)if("function"==typeof this.convertedInput[e])return!0;return!1},objectContainsFunction(e){for(const t in e)if("function"==typeof e[t])return!0;return!1},expandO(e){let t=[];if(this.objectContainsFunction(e)){for(const n in e)if("function"==typeof e[n]){console.log(`[DataInputForm] Key ${n} is a function.`);const r=[];e[n]().forEach((t=>{let a={};a=structuredClone(e),a[n]=t,console.log(`[DataInputForm] Replaced Copy: ${JSON.stringify(a)}`),r.push(a)})),r.forEach((e=>{if(this.objectContainsFunction(e)){console.log("[DataInputForm] 2nd pass...");const n=this.expandO(e);t=t.concat(n)}else t.push(e)}))}return t}return[]},getTags(){const e=[];this.fieldInputs.forEach((t=>{if(t.generateTags){const n=t.generateTags();e.push(...n)}}));const t=this.$refs.tagsInput.tags.map((e=>e.text));return e.concat(t)},getElo(){for(const e of this.fieldInputs)if(e.generateELO)return e.generateELO()},async submit(){if(this.checkInput()){console.log(`[DataInputForm] Store: ${JSON.stringify(this.fieldStore.inputs)}`),console.log(`[DataInputForm] ConvertedStore: ${JSON.stringify(this.convertedInput)}`),this.uploading=!0;let t=[];this.inputContainsTranspositionFcns()?(console.log(`[DataInputForm] Expanded input: ${JSON.stringify(this.expandO(this.convertedInput))}`),t=this.expandO(this.convertedInput)):(console.log("[DataInputForm] No Transposition fcn detected"),t=[this.convertedInput]);const n=await Promise.all(t.map((async e=>await this.courseDB.addNote(this.datashapeDescriptor.course,this.dataShape,e,(await C()).getUsername(),this.getTags(),void 0,this.getElo()))));if(n[0].status===e.ok){b({text:"Content added... Thank you!",status:e.ok});const t=this.$refs.tagsInput;t.tags.length&&(t.updateAvailableCourseTags(),t.tags=[]),this.reset()}else b({text:"A problem occurred. Content has not been added.",status:e.error}),console.error(`Error in DataInputForm.submit(). Result from addNote: ${JSON.stringify(n)}`),this.uploading=!1}},reset(){console.log("[DataInputForm].reset()"),this.uploading=!1,this.fieldInputs.forEach((e=>{e.clearData()})),this.fieldStore.$reset(),this.fieldInputs[0].focus(),this.convertInput()},getImplementingViews(){if(this.previewComponent)return console.log("[DataInputForm] Getting previewComponent views"),void(this.shapeViews=this.previewComponent.views);for(const e of this.courseCfg.dataShapes){const t=S.getDataShapeDescriptor(e.name);if(console.log("[DataInputForm] descriptor",t),console.log("[DataInputForm] this.dataShape",this.dataShape),console.log("[DataInputForm] this.dataShape.name",this.dataShape.name),t.dataShape===this.dataShape.name){const n=this.courseWare.getCourseWare(t.course);this.shapeViews=[],n.getBaseQTypes().forEach((e=>{e.dataShapes[0].name===this.dataShape.name&&(this.shapeViews=this.shapeViews.concat(e.views))}));for(const t of e.questionTypes){const e=S.getQuestionDescriptor(t);n.getQuestion(e.questionType).views.forEach((e=>{this.shapeViews=this.shapeViews.concat(e)}))}}}},isFieldInput:e=>Be(e)}}),dt={key:1},ft=te(ct,[["render",function(e,t,n,c,g,v){const y=r("string-input"),_=r("chess-puzzle-input"),w=r("number-input"),b=r("integer-input"),C=r("markdown-input"),S=r("midi-input"),I=r("media-drag-drop-uploader"),k=r("tags-input"),x=r("v-icon"),D=r("v-btn"),V=r("v-form"),T=r("v-col"),E=r("card-browser"),A=r("v-row"),F=r("v-container");return i(),a(F,{fluid:""},{default:o((()=>[s(A,null,{default:o((()=>[s(T,{cols:"12",xl:"6"},{default:o((()=>[s(V,{"ma-2":"",autocomplete:"off"},{default:o((()=>[(i(!0),d(p,null,h(e.dataShape.fields,((t,n)=>(i(),d("div",{key:e.dataShape.fields.indexOf(t)},[t.type===e.ftString?(i(),a(y,{key:0,ref_for:!0,ref:t=>e.setFieldInputRef(t,n),field:t,autofocus:0==n},null,8,["field","autofocus"])):t.type===e.chessPuzzle?(i(),a(_,{key:1,ref_for:!0,ref:t=>e.setFieldInputRef(t,n),field:t,autofocus:0==n},null,8,["field","autofocus"])):t.type===e.num?(i(),a(w,{key:2,ref_for:!0,ref:t=>e.setFieldInputRef(t,n),field:t,autofocus:0==n},null,8,["field","autofocus"])):t.type===e.int?(i(),a(b,{key:3,ref_for:!0,ref:t=>e.setFieldInputRef(t,n),field:t,autofocus:0==n},null,8,["field","autofocus"])):t.type===e.mkd?(i(),a(C,{key:4,ref_for:!0,ref:t=>e.setFieldInputRef(t,n),field:t,autofocus:0==n,"data-cy":"markdown-input"},null,8,["field","autofocus"])):t.type===e.midi?(i(),a(S,{key:5,ref_for:!0,ref:t=>e.setFieldInputRef(t,n),field:t,autofocus:0==n},null,8,["field","autofocus"])):t.type===e.uploader?(i(),a(I,{key:6,ref_for:!0,ref:t=>e.setFieldInputRef(t,n),field:t,autofocus:0==n},null,8,["field","autofocus"])):u("",!0)])))),128)),s(k,{ref:"tagsInput","hide-submit":!0,"course-i-d":e.courseCfg.courseID,"card-i-d":""},null,8,["course-i-d"]),e.previewComponent?(i(),d("div",dt,"Input validated: "+f(e.inputIsValidated),1)):(i(),a(D,{key:0,"data-cy":"add-card-btn",class:"float-right",type:"submit",color:"primary",loading:e.uploading,disabled:!e.allowSubmit,onClick:m(e.submit,["prevent"])},{default:o((()=>[t[1]||(t[1]=l(" Add card ")),s(x,{end:""},{default:o((()=>t[0]||(t[0]=[l("mdi-plus-circle")]))),_:1})])),_:1},8,["loading","disabled","onClick"]))])),_:1})])),_:1}),s(T,{cols:"12",xl:"6"},{default:o((()=>[e.inputIsValidated?(i(),a(E,{key:0,class:"ml-4",views:e.shapeViews,data:[e.previewInput]},null,8,["views","data"])):u("",!0)])),_:1})])),_:1})])),_:1})}]]),pt=t({name:"CardPreviewList",components:{CardBrowser:V,SkMouseTrap:D},props:{parsedCards:{type:Array,required:!0,default:()=>[]},dataShape:{type:Object,required:!0},viewComponents:{type:Array,required:!1,default:()=>[]}},emits:["update:parsedCards","edit-card","delete-card"],data:()=>({currentIndex:0,loading:!1,keyBindings:[],showDeleteConfirm:!1,dontAskAgain:!1,skipDeleteConfirmation:!1,shortcutsEnabled:!0}),computed:{currentCard(){return 0===this.parsedCards.length||this.currentIndex>=this.parsedCards.length?null:this.parsedCards[this.currentIndex]},currentViewData(){return this.currentCard?{Input:this.currentCard.markdown}:{Input:""}}},mounted(){this.setupKeyBindings()},beforeUnmount(){this.shortcutsEnabled&&this.keyBindings.forEach((e=>{T.removeBinding(e.hotkey)}))},methods:{nextCard(){this.currentIndex<this.parsedCards.length-1&&this.currentIndex++},prevCard(){this.currentIndex>0&&this.currentIndex--},showCard(e){e>=0&&e<this.parsedCards.length&&(this.currentIndex=e)},setupKeyBindings(){this.keyBindings=[{command:"Previous Card",hotkey:"left",callback:()=>(this.prevCard(),!1)},{command:"Next Card",hotkey:"right",callback:()=>(this.nextCard(),!1)},{command:"Delete Card",hotkey:"del",callback:()=>(this.promptDelete(),!1)},{command:"Edit Card",hotkey:"e",callback:()=>(this.editCurrentCard(),!1)}],this.shortcutsEnabled&&T.addBinding(this.keyBindings)},enableShortcuts(){this.shortcutsEnabled||(this.shortcutsEnabled=!0,T.addBinding(this.keyBindings),console.log("[CardPreviewList] Keyboard shortcuts enabled"))},disableShortcuts(){this.shortcutsEnabled&&(this.shortcutsEnabled=!1,this.keyBindings.forEach((e=>{T.removeBinding(e.hotkey)})),console.log("[CardPreviewList] Keyboard shortcuts disabled"))},toggleShortcuts(e){e?this.enableShortcuts():this.disableShortcuts()},promptDelete(){this.currentCard&&(this.skipDeleteConfirmation?this.deleteCurrentCard():this.showDeleteConfirm=!0)},cancelDelete(){this.showDeleteConfirm=!1},confirmDelete(){this.dontAskAgain&&(this.skipDeleteConfirmation=!0),this.showDeleteConfirm=!1,this.deleteCurrentCard()},deleteCurrentCard(){if(!this.currentCard)return;const e=[...this.parsedCards];e.splice(this.currentIndex,1),this.$emit("update:parsedCards",e),this.$emit("delete-card",this.currentIndex),this.currentIndex>=e.length&&e.length>0&&(this.currentIndex=e.length-1)},editCurrentCard(){this.currentCard&&this.$emit("edit-card",this.currentCard,this.currentIndex)}}}),ht={class:"card-preview-list"},gt={class:"d-flex align-center"},mt={class:"text-subtitle-1 mr-2"},vt={key:0,class:"d-flex justify-center align-center my-4"},yt={key:1},_t={key:0},wt={key:0},bt={key:1},Ct={class:"markdown-content"},St={class:"card-metadata mt-2"},It={class:"d-flex flex-wrap gap-1"},kt={key:0,class:"mt-2 text-caption"},xt={key:1,class:"text-center pa-4"},Dt=t({name:"BulkImportView",components:{CardPreviewList:te(pt,[["render",function(e,t,n,g,m,v){const y=r("v-card-title"),_=r("v-checkbox"),w=r("v-card-text"),b=r("v-spacer"),C=r("v-btn"),S=r("v-card-actions"),I=r("v-card"),k=r("v-dialog"),x=r("sk-mouse-trap"),D=r("v-progress-circular"),V=r("card-browser"),T=r("v-sheet"),E=r("v-chip"),A=r("v-icon");return i(),d("div",ht,[s(k,{modelValue:e.showDeleteConfirm,"onUpdate:modelValue":t[1]||(t[1]=t=>e.showDeleteConfirm=t),"max-width":"400px"},{default:o((()=>[s(I,null,{default:o((()=>[s(y,{class:"text-h5"},{default:o((()=>t[2]||(t[2]=[l("Remove Card")]))),_:1}),s(w,null,{default:o((()=>[t[3]||(t[3]=c("p",null,"Are you sure you want to remove this card?",-1)),s(_,{modelValue:e.dontAskAgain,"onUpdate:modelValue":t[0]||(t[0]=t=>e.dontAskAgain=t),label:"Don't ask me again","hide-details":"",class:"mt-2"},null,8,["modelValue"])])),_:1}),s(S,null,{default:o((()=>[s(b),s(C,{color:"grey-darken-1",variant:"text",onClick:e.cancelDelete},{default:o((()=>t[4]||(t[4]=[l("Cancel")]))),_:1},8,["onClick"]),s(C,{color:"error",onClick:e.confirmDelete},{default:o((()=>t[5]||(t[5]=[l("Remove")]))),_:1},8,["onClick"])])),_:1})])),_:1})])),_:1},8,["modelValue"]),e.parsedCards.length>0?(i(),a(I,{key:0,class:"mb-4"},{default:o((()=>[s(y,{class:"d-flex align-center justify-space-between"},{default:o((()=>[t[6]||(t[6]=c("span",null,"Card Preview",-1)),c("div",gt,[c("div",mt,f(e.currentIndex+1)+" of "+f(e.parsedCards.length),1),s(x)])])),_:1}),s(w,null,{default:o((()=>[e.loading?(i(),d("div",vt,[s(D,{indeterminate:"",color:"primary"})])):(i(),d("div",yt,[e.currentCard?(i(),d("div",_t,[s(T,{class:"card-content pa-4 mb-4",rounded:"",border:""},{default:o((()=>[e.viewComponents&&e.viewComponents.length>0?(i(),d("div",wt,[s(V,{views:e.viewComponents,data:[e.currentViewData],"suppress-spinner":!0},null,8,["views","data"])])):(i(),d("div",bt,[t[7]||(t[7]=c("div",{class:"mb-2 font-weight-bold"},"Card content:",-1)),c("div",Ct,f(e.currentCard.markdown),1)]))])),_:1}),c("div",St,[c("div",It,[(i(!0),d(p,null,h(e.currentCard.tags,(e=>(i(),a(E,{key:e,size:"small",color:"primary",variant:"outlined",class:"mr-1 mb-1"},{default:o((()=>[l(f(e),1)])),_:2},1024)))),128))]),void 0!==e.currentCard.elo?(i(),d("div",kt,"ELO: "+f(e.currentCard.elo),1)):u("",!0)])])):(i(),d("div",xt,"No card selected or available to preview."))]))])),_:1}),s(S,{class:"px-4 pb-4"},{default:o((()=>[s(C,{variant:"outlined",icon:"",disabled:0===e.currentIndex||e.loading,onClick:e.prevCard},{default:o((()=>[s(A,null,{default:o((()=>t[8]||(t[8]=[l("mdi-chevron-left")]))),_:1})])),_:1},8,["disabled","onClick"]),s(b),s(C,{variant:"tonal",color:"error","prepend-icon":"mdi-delete",class:"mx-2",disabled:!e.currentCard||e.loading,onClick:e.promptDelete},{default:o((()=>t[9]||(t[9]=[l(" Remove ")]))),_:1},8,["disabled","onClick"]),s(C,{variant:"tonal",color:"primary","prepend-icon":"mdi-pencil",class:"mx-2",disabled:!e.currentCard||e.loading,onClick:e.editCurrentCard},{default:o((()=>t[10]||(t[10]=[l(" Edit ")]))),_:1},8,["disabled","onClick"]),s(b),s(C,{variant:"outlined",icon:"",disabled:e.currentIndex>=e.parsedCards.length-1||e.loading,onClick:e.nextCard},{default:o((()=>[s(A,null,{default:o((()=>t[11]||(t[11]=[l("mdi-chevron-right")]))),_:1})])),_:1},8,["disabled","onClick"])])),_:1})])),_:1})):u("",!0)])}],["__scopeId","data-v-41613480"]])},props:{courseCfg:{type:Object,required:!0}},data:()=>({bulkText:"",parsedCards:[],parsingComplete:!1,importAttempted:!1,results:[],processing:!1,courseDB:null,dataShape:j[0],cardViewComponents:[],editingCard:null,editingCardIndex:-1,showEditDialog:!1,editedMarkdown:"",editedTags:[],editedElo:void 0,newTagText:""}),computed:{uniqueTags(){if(!this.parsedCards||0===this.parsedCards.length)return[];const e=this.parsedCards.reduce(((e,t)=>(t.tags&&t.tags.length>0&&e.push(...t.tags),e)),[]);return[...new Set(e)].sort()}},created(){this.courseCfg?.courseID?(this.courseDB=x().getCourseDB(this.courseCfg.courseID),this.courseCfg.dataShapes&&0!==this.courseCfg.dataShapes.length?this.initializeCardPreviewComponents():(console.error("[BulkImportView] Course config does not contain any dataShapes."),b({text:"Course configuration has no dataShapes. Bulk import may not work correctly.",status:e.warning}))):(console.error("[BulkImportView] Course config or Course ID is missing."),b({text:"Course configuration is missing. Cannot initialize bulk import.",status:e.error}))},methods:{handleDeleteCard(t){console.log(`[BulkImportView] Card at index ${t} was deleted`),b({text:"Card removed from import list",status:e.ok})},handleEditCard(e,t){this.$refs.cardPreviewList&&this.$refs.cardPreviewList.toggleShortcuts(!1),this.editingCard={...e},this.editingCardIndex=t,this.editedMarkdown=e.markdown,this.editedTags=[...e.tags],this.editedElo=e.elo,this.showEditDialog=!0,this.$nextTick((()=>{this.$refs.markdownTextarea&&this.$refs.markdownTextarea.$el.querySelector("textarea")?.focus()}))},saveEditedCard(){if(this.editingCardIndex<0||!this.editingCard)return;const t={markdown:this.editedMarkdown,tags:this.editedTags,elo:this.editedElo},n=[...this.parsedCards];n[this.editingCardIndex]=t,this.parsedCards=n,this.closeEditDialog(),b({text:"Card updated successfully",status:e.ok})},closeEditDialog(){this.showEditDialog=!1,this.editingCard=null,this.editingCardIndex=-1,this.editedMarkdown="",this.editedTags=[],this.editedElo=void 0,setTimeout((()=>{this.$refs.cardPreviewList&&this.$refs.cardPreviewList.toggleShortcuts(!0)}),100)},addTag(){const e=this.newTagText.trim();e&&!this.editedTags.includes(e)&&(this.editedTags.push(e),this.newTagText="")},removeTag(e){this.editedTags=this.editedTags.filter((t=>t!==e))},initializeCardPreviewComponents(){const e=this.courseCfg?.dataShapes?.[0];if(!e)return;this.dataShape.name!==j[0].name&&(this.dataShape=j[0]);const t=S.getDataShapeDescriptor(e.name),n=U.getCourse(t.course);if(n){this.cardViewComponents=[],n.getBaseQTypes().forEach((e=>{e.dataShapes[0].name===this.dataShape?.name&&(this.cardViewComponents=this.cardViewComponents.concat(e.views))}));for(const t of e.questionTypes){const e=S.getQuestionDescriptor(t),r=n.getQuestion(e.questionType)?.views||[];this.cardViewComponents=this.cardViewComponents.concat(r)}console.log(`[BulkImportView] Loaded ${this.cardViewComponents.length} view components for card preview`)}},resetToInputStage(){this.parsingComplete=!1,this.parsedCards=[],this.importAttempted=!1},startNewBulkImport(){this.bulkText="",this.results=[],this.parsedCards=[],this.parsingComplete=!1,this.importAttempted=!1},handleInitialParse(){if(this.courseDB){if(function(e){const t=G(e);return t.length>0&&t.some((e=>!!e.trim()))}(this.bulkText)){this.processing=!0,this.results=[],this.parsedCards=[],this.parsingComplete=!1;try{if(this.parsedCards=function(e,t=W){const n=G(e),r=[];for(const a of n){const e=J(a,t);e&&r.push(e)}return r}(this.bulkText),0===this.parsedCards.length)return b({text:'No cards could be parsed from the input. Please check the format and ensure cards are separated by two "---" lines and that cards have content.',status:e.warning}),void(this.processing=!1);0===this.cardViewComponents.length&&this.initializeCardPreviewComponents(),this.parsingComplete=!0,console.log(`[BulkImportView] Successfully parsed ${this.parsedCards.length} cards for preview`)}catch(t){console.error("[BulkImportView] Error parsing bulk text:",t),b({text:`Error parsing cards: ${t instanceof Error?t.message:"Unknown error"}`,status:e.error})}finally{this.processing=!1}}}else b({text:"Database connection not available. Cannot process cards.",status:e.error})},async confirmAndImportCards(){if(!this.courseDB)return b({text:"Database connection lost before import.",status:e.error}),void(this.processing=!1);if(0===this.parsedCards.length)return b({text:"No parsed cards to import.",status:e.warning}),void(this.processing=!1);if(!this.courseCfg?.dataShapes||0===this.courseCfg.dataShapes.length)return b({text:"This course has no data shapes configured. Cannot import cards.",status:e.error}),void(this.processing=!1);this.processing=!0,this.results=[];const t=(await C()).getUsername(),n=j[0];if(!n)return b({text:"Critical: Could not find BlanksCardDataShapes. Aborting import.",status:e.error}),void(this.processing=!1);const r=this.courseCfg?.dataShapes?.[0];if(!r)return b({text:"Critical: No data shapes found in course configuration. Aborting import.",status:e.error}),void(this.processing=!1);const a=S.getDataShapeDescriptor(r.name).course,i={dataShape:n,courseCode:a,userName:t},o=I(i);if(!o.isValid)return b({text:o.errorMessage||"Invalid processor configuration for import.",status:e.error}),void(this.processing=!1);console.log("[BulkImportView] Starting import of parsed cards:",{courseID:this.courseCfg.courseID,dataShapeToUse:n.name,courseCode:a,numberOfCards:this.parsedCards.length});try{this.results=await k(this.parsedCards,this.courseDB,i)}catch(u){console.error("[BulkImportView] Error importing parsed cards:",u),this.results.push({originalText:"Bulk Operation Error",status:"error",message:`Critical error during import: ${u instanceof Error?u.message:"Unknown error"}`})}finally{this.processing=!1,this.importAttempted=!0}this.results.every((e=>"success"===e.status))&&this.results.length>0?b({text:`${this.results.length} card(s) imported successfully!`,status:e.ok}):this.results.some((e=>"error"===e.status))&&b({text:"Some cards failed to import. Please review the results below.",status:e.warning})}}}),Vt={key:0},Tt={key:1,class:"text--secondary"},Et={class:"my-4"},At={class:"d-flex align-center mb-2"},Ft={class:"d-flex flex-wrap"},Ot={key:0,class:"ml-6"},Rt={key:1,class:"ml-6"},jt={key:2,class:"ml-6"},Ut={style:{"white-space":"pre-wrap","background-color":"#f5f5f5",padding:"5px"}},qt=te(Dt,[["render",function(e,t,n,y,_,w){const b=r("v-textarea"),C=r("v-col"),S=r("v-row"),I=r("v-card-title"),k=r("v-chip"),x=r("v-card-text"),D=r("v-card"),V=r("card-preview-list"),T=r("v-text-field"),E=r("v-btn"),A=r("v-form"),F=r("v-spacer"),O=r("v-tooltip"),R=r("v-card-actions"),j=r("v-dialog"),U=r("v-icon"),q=r("v-list-subheader"),N=r("v-list-item-title"),P=r("v-list-item-subtitle"),M=r("v-list-item"),z=r("v-list"),B=r("v-container");return i(),a(B,{fluid:""},{default:o((()=>[e.parsingComplete?u("",!0):(i(),a(S,{key:0},{default:o((()=>[s(C,{cols:"12"},{default:o((()=>[s(b,{modelValue:e.bulkText,"onUpdate:modelValue":t[0]||(t[0]=t=>e.bulkText=t),label:"Bulk Card Input",placeholder:"Paste card data here.\nSeparate cards with two consecutive '---' lines on their own lines.\nExample:\nCard 1 Question\n{{blank}}\ntags: tagA, tagB\nelo: 1500\n---\n---\nCard 2 Question\nAnother {{blank}}\nelo: 1200\ntags: tagC",rows:"15",variant:"outlined","data-cy":"bulk-import-textarea"},null,8,["modelValue"])])),_:1})])),_:1})),e.parsingComplete?(i(),a(S,{key:1,class:"mb-4"},{default:o((()=>[s(C,{cols:"12",md:"4"},{default:o((()=>[s(D,{border:""},{default:o((()=>[s(I,null,{default:o((()=>t[6]||(t[6]=[l("Parsing Summary")]))),_:1}),s(x,null,{default:o((()=>[c("p",null,[c("strong",null,f(e.parsedCards.length),1),t[7]||(t[7]=l(" card(s) parsed and ready for import. "))]),e.parsedCards.length>0?(i(),d("div",Vt,[t[8]||(t[8]=c("strong",null,"Tags Found:",-1)),e.uniqueTags.length>0?(i(!0),d(p,{key:0},h(e.uniqueTags,(e=>(i(),a(k,{key:e,class:"mr-1 mb-1",size:"small",label:""},{default:o((()=>[l(f(e),1)])),_:2},1024)))),128)):(i(),d("span",Tt,"No unique tags identified across parsed cards."))])):u("",!0)])),_:1})])),_:1})])),_:1}),s(C,{cols:"12",md:"8"},{default:o((()=>[e.parsedCards.length>0?(i(),a(V,{key:0,ref:"cardPreviewList","parsed-cards":e.parsedCards,"onUpdate:parsedCards":t[1]||(t[1]=t=>e.parsedCards=t),"data-shape":e.dataShape,"view-components":e.cardViewComponents,onEditCard:e.handleEditCard,onDeleteCard:e.handleDeleteCard},null,8,["parsed-cards","data-shape","view-components","onEditCard","onDeleteCard"])):u("",!0)])),_:1})])),_:1})):u("",!0),s(j,{modelValue:e.showEditDialog,"onUpdate:modelValue":t[5]||(t[5]=t=>e.showEditDialog=t),"max-width":"800px"},{default:o((()=>[s(D,null,{default:o((()=>[s(I,null,{default:o((()=>t[9]||(t[9]=[l("Edit Card")]))),_:1}),s(x,null,{default:o((()=>[s(A,{onSubmit:m(e.saveEditedCard,["prevent"]),onKeydown:g(e.closeEditDialog,["esc"])},{default:o((()=>[s(b,{ref:"markdownTextarea",modelValue:e.editedMarkdown,"onUpdate:modelValue":t[2]||(t[2]=t=>e.editedMarkdown=t),label:"Card Content",rows:"6","auto-grow":"",variant:"outlined",onKeydown:g(m(e.saveEditedCard,["ctrl"]),["enter"])},null,8,["modelValue","onKeydown"]),c("div",Et,[c("div",At,[t[11]||(t[11]=c("h3",{class:"text-subtitle-1 mr-2"},"Tags",-1)),s(T,{modelValue:e.newTagText,"onUpdate:modelValue":t[3]||(t[3]=t=>e.newTagText=t),density:"compact","hide-details":"",placeholder:"Add a tag",variant:"outlined",class:"mr-2",onKeydown:[g(m(e.addTag,["prevent"]),["enter"]),g(e.closeEditDialog,["esc"])]},null,8,["modelValue","onKeydown"]),s(E,{size:"small",color:"primary",variant:"text",onClick:e.addTag},{default:o((()=>t[10]||(t[10]=[l("Add")]))),_:1},8,["onClick"])]),c("div",Ft,[(i(!0),d(p,null,h(e.editedTags,(t=>(i(),a(k,{key:t,closable:"",class:"mr-1 mb-1","onClick:close":n=>e.removeTag(t)},{default:o((()=>[l(f(t),1)])),_:2},1032,["onClick:close"])))),128))])]),s(T,{modelValue:e.editedElo,"onUpdate:modelValue":t[4]||(t[4]=t=>e.editedElo=t),modelModifiers:{number:!0},label:"ELO Rating (optional)",type:"number",variant:"outlined",min:"0",max:"3000"},null,8,["modelValue"])])),_:1},8,["onSubmit","onKeydown"])])),_:1}),s(R,null,{default:o((()=>[s(F),s(E,{color:"grey",variant:"text",onClick:e.closeEditDialog},{default:o((()=>[t[13]||(t[13]=l(" Cancel ")),s(O,{activator:"parent",location:"top"},{default:o((()=>t[12]||(t[12]=[l("Press ESC")]))),_:1})])),_:1},8,["onClick"]),s(E,{color:"primary",onClick:e.saveEditedCard},{default:o((()=>[t[15]||(t[15]=l(" Save ")),s(O,{activator:"parent",location:"top"},{default:o((()=>t[14]||(t[14]=[l("Press Ctrl+Enter")]))),_:1})])),_:1},8,["onClick"])])),_:1})])),_:1})])),_:1},8,["modelValue"]),s(S,null,{default:o((()=>[s(C,{cols:"12"},{default:o((()=>[e.parsingComplete?u("",!0):(i(),a(E,{key:0,color:"primary",loading:e.processing,disabled:!e.bulkText.trim()||e.processing,"data-cy":"bulk-import-parse-btn",onClick:e.handleInitialParse},{default:o((()=>[t[17]||(t[17]=l(" Parse Cards ")),s(U,{end:""},{default:o((()=>t[16]||(t[16]=[l("mdi-play-circle-outline")]))),_:1})])),_:1},8,["loading","disabled","onClick"])),e.parsingComplete?(i(),d(p,{key:1},[s(E,{color:"primary",class:"mr-2",loading:e.processing,disabled:0===e.parsedCards.length||e.processing||e.importAttempted,"data-cy":"bulk-import-confirm-btn",onClick:e.confirmAndImportCards},{default:o((()=>[l(" Confirm and Import "+f(e.parsedCards.length)+" Card(s) ",1),s(U,{end:""},{default:o((()=>t[18]||(t[18]=[l("mdi-check-circle-outline")]))),_:1})])),_:1},8,["loading","disabled","onClick"]),e.importAttempted?u("",!0):(i(),a(E,{key:0,variant:"outlined",color:"grey-darken-1",disabled:e.processing,"data-cy":"bulk-import-edit-again-btn",onClick:e.resetToInputStage},{default:o((()=>[s(U,{start:""},{default:o((()=>t[19]||(t[19]=[l("mdi-pencil")]))),_:1}),t[20]||(t[20]=l(" Back to bulk-editor. "))])),_:1},8,["disabled","onClick"])),e.importAttempted?(i(),a(E,{key:1,variant:"outlined",color:"blue-darken-1",disabled:e.processing,"data-cy":"bulk-import-add-another-btn",onClick:e.startNewBulkImport},{default:o((()=>[s(U,{start:""},{default:o((()=>t[21]||(t[21]=[l("mdi-plus-circle-outline")]))),_:1}),t[22]||(t[22]=l(" Add Another Bulk Import "))])),_:1},8,["disabled","onClick"])):u("",!0)],64)):u("",!0)])),_:1})])),_:1}),e.results.length>0?(i(),a(S,{key:2},{default:o((()=>[s(C,{cols:"12"},{default:o((()=>[s(z,{density:"compact"},{default:o((()=>[s(q,null,{default:o((()=>t[23]||(t[23]=[l("Import Results")]))),_:1}),(i(!0),d(p,null,h(e.results,((e,n)=>(i(),a(M,{key:n,class:v({"lime-lighten-5":"success"===e.status,"red-lighten-5":"error"===e.status,"force-dark-text":"success"===e.status||"error"===e.status})},{default:o((()=>[s(N,null,{default:o((()=>[s(U,{color:"success"===e.status?"green":"red"},{default:o((()=>[l(f("success"===e.status?"mdi-check-circle":"mdi-alert-circle"),1)])),_:2},1032,["color"]),l(" Card "+f(n+1),1)])),_:2},1024),s(P,null,{default:o((()=>[e.message?(i(),d("div",Ot,f(e.message),1)):u("",!0),e.cardId?(i(),d("div",Rt,"ID: "+f(e.cardId),1)):u("",!0),"error"===e.status&&e.originalText?(i(),d("details",jt,[t[24]||(t[24]=c("summary",null,"Original Input",-1)),c("pre",Ut,f(e.originalText),1)])):u("",!0)])),_:2},1024)])),_:2},1032,["class"])))),128))])),_:1})])),_:1})])),_:1})):u("",!0)])),_:1})}],["__scopeId","data-v-901d842b"]]),Nt=t({name:"CourseEditor",components:{DataInputForm:ft,ComponentRegistration:ie,NavigationStrategyEditor:ze,BulkImportView:qt},props:{course:{type:String,required:!0}},data:()=>({registeredDataShapes:[],dataShapes:[],selectedShape:q.dataShapes[0].name,courseConfig:null,dataShape:j[0],loading:!0,currentTab:"single",dataInputFormStore:lt()}),watch:{selectedShape:{handler(e){e&&(this.dataShape=this.getDataShape(e),this.dataInputFormStore.setDataShape(this.dataShape),this.dataInputFormStore.dataInputForm.course=this.courseConfig)}}},async created(){this.courseConfig=await x().getCoursesDB().getCourseConfig(this.course),U.courses.forEach((e=>{e.questions.forEach((e=>{e.dataShapes.forEach((e=>{this.dataShapes.push(e)}))}))})),this.courseConfig&&this.courseConfig.dataShapes&&this.courseConfig.dataShapes.forEach((e=>{this.registeredDataShapes.push(this.dataShapes.find((t=>t.name===S.getDataShapeDescriptor(e.name).dataShape)))})),this.loading=!1},methods:{getDataShape(e){return this.dataShapes.find((t=>t.name===e))}}}),Pt={key:0,class:"courseEditor"},Mt={key:0},zt={key:1},Bt={class:"text-h4"},$t=te(Nt,[["render",function(e,t,n,p,h,g){const m=r("v-progress-circular"),v=r("router-link"),y=r("v-tab"),_=r("v-tabs"),w=r("v-select"),b=r("data-input-form"),C=r("v-container"),S=r("v-window-item"),I=r("bulk-import-view"),k=r("component-registration"),x=r("navigation-strategy-editor"),D=r("v-window");return e.course?(i(),d("div",Pt,[e.loading?(i(),d("div",Mt,[s(m,{indeterminate:"",color:"secondary"})])):(i(),d("div",zt,[c("h1",Bt,[s(v,{to:"/q"},{default:o((()=>t[3]||(t[3]=[l("Quilts")]))),_:1}),t[4]||(t[4]=l(" / ")),s(v,{to:`/q/${e.courseConfig?e.courseConfig.name:e.course}`},{default:o((()=>[l(f(e.courseConfig?.name),1)])),_:1},8,["to"])]),s(_,{modelValue:e.currentTab,"onUpdate:modelValue":t[0]||(t[0]=t=>e.currentTab=t),"bg-color":"primary",grow:""},{default:o((()=>[s(y,{value:"single"},{default:o((()=>t[5]||(t[5]=[l("Single Card Input")]))),_:1}),s(y,{value:"bulk"},{default:o((()=>t[6]||(t[6]=[l("Bulk Import")]))),_:1}),s(y,{value:"navigation"},{default:o((()=>t[7]||(t[7]=[l("Navigation")]))),_:1}),s(y,{value:"registration"},{default:o((()=>t[8]||(t[8]=[l("Component Registration")]))),_:1})])),_:1},8,["modelValue"]),s(D,{modelValue:e.currentTab,"onUpdate:modelValue":t[2]||(t[2]=t=>e.currentTab=t)},{default:o((()=>[s(S,{value:"single"},{default:o((()=>[s(C,{fluid:""},{default:o((()=>[s(w,{modelValue:e.selectedShape,"onUpdate:modelValue":t[1]||(t[1]=t=>e.selectedShape=t),label:"What kind of content are you adding?",items:e.registeredDataShapes.map((e=>e.name)),class:"mt-4"},null,8,["modelValue","items"]),""!==e.selectedShape&&e.courseConfig&&e.dataShape?(i(),a(b,{key:0,"data-shape":e.dataShape,"course-cfg":e.courseConfig},null,8,["data-shape","course-cfg"])):u("",!0)])),_:1})])),_:1}),s(S,{value:"bulk"},{default:o((()=>[s(C,{fluid:""},{default:o((()=>[e.courseConfig?(i(),a(I,{key:0,"course-cfg":e.courseConfig,class:"mt-4"},null,8,["course-cfg"])):u("",!0)])),_:1})])),_:1}),s(S,{value:"registration"},{default:o((()=>[s(C,{fluid:""},{default:o((()=>[s(k,{course:e.course,class:"mt-4"},null,8,["course"])])),_:1})])),_:1}),s(S,{value:"navigation"},{default:o((()=>[s(C,{fluid:""},{default:o((()=>[s(x,{"course-id":e.course},null,8,["course-id"])])),_:1})])),_:1})])),_:1},8,["modelValue"])]))])):u("",!0)}],["__scopeId","data-v-c987522c"]]);export{qt as BulkImportView,st as ChessPuzzleInput,$t as CourseEditor,ft as DataInputForm,He as IntegerInput,Ke as MarkdownInput,et as MediaDragDropUploader,it as MidiInput,ot as NumberInput,Ge as OptionsFieldInput,ut as StringInput,We as integerValidator,Be as isFieldInput,Le as numberValidator,lt as useDataInputFormStore,Je as useFieldInputStore};
2
+ //# sourceMappingURL=edit-ui.es-BX72VVRb.js.map