From a321b0ce9992b10accc6b9bf597ebfaeeca400df Mon Sep 17 00:00:00 2001 From: boris Date: Tue, 16 Jan 2024 13:48:46 +0000 Subject: [PATCH] lint all files --- .obsidian/appearance.json | 2 +- .obsidian/community-plugins.json | 6 +- .obsidian/core-plugins-migration.json | 6 +- .obsidian/core-plugins.json | 3 - .../plugins/obsidian-day-planner/data.json | 17 - .../plugins/obsidian-day-planner/main.js | 22597 ------ .../obsidian-day-planner/manifest.json | 11 - .../plugins/obsidian-day-planner/styles.css | 463 - .../plugins/obsidian-full-calendar/data.json | 29 + .../plugins/obsidian-full-calendar/main.js | 65473 ++++++++++++++++ .../obsidian-full-calendar/manifest.json | 11 + .../plugins/obsidian-full-calendar/styles.css | 1327 + .obsidian/workspace.json | 45 +- .../Coursework 1/Task 1.md | 5 +- .../Coursework 1/Task 2.md | 9 +- .../Coursework 1/Task 3.md | 2 +- .../Coursework 1/Task 5.md | 2 +- ...uter Systems Internals - Floating Point.md | 6 +- .../Week 7/Week 7 Computer Systems.md | 2 +- .../Week 8 Computer Systems Internals.md | 3 +- .../Assignment/Creating Tables.md | 14 +- .../Database Systems/Assignment/ER Diagram.md | 2 +- .../Assignment/Populating Database.md | 14 +- .../Assignment/Querying Database.md | 10 +- .../Assignment/Relational Model.md | 10 +- .../Assignment/postgre Compatible.md | 8 +- .../Database Systems/Week 10/Week 10.md | 3 +- .../Week 2/Week 2 Database Systems.md | 2 +- .../Week 5/Week 5 Database Systems.md | 17 +- .../Week 6/Week 6 Database Systems.md | 13 +- .../Week 8/Week 8 Database Systems.md | 2 +- .../Week 2/Week 2 Database Systems.md | 2 +- .../Week 5/Week 5 Database Systems.md | 17 +- .../Week 6/Week 6 Database Systems.md | 13 +- .../Week 8/Week 8 Database Systems.md | 2 +- .../Week 5/Week 5 Professional Development.md | 1 - .../Week 10/Week 10 Programming 1.md | 2 +- ...- Understanding Class Definitions cont..md | 2 - ...g 1 - Arithmetic, Typecasting & Boolean.md | 8 +- .../Week 7/Week 7 Programming 1.md | 3 +- .../Week 9/Week 9 Programming 1.md | 4 +- .../Week 5/Week 5 Web Development.md | 3 +- .../Week 6/Week 6 Web Development.md | 2 +- .../Week 7/Week 7 Web Development.md | 2 - .../Week 1/Week 1 Database Systems.md | 16 + 45 files changed, 66985 insertions(+), 23206 deletions(-) delete mode 100644 .obsidian/plugins/obsidian-day-planner/data.json delete mode 100644 .obsidian/plugins/obsidian-day-planner/main.js delete mode 100644 .obsidian/plugins/obsidian-day-planner/manifest.json delete mode 100644 .obsidian/plugins/obsidian-day-planner/styles.css create mode 100644 .obsidian/plugins/obsidian-full-calendar/data.json create mode 100644 .obsidian/plugins/obsidian-full-calendar/main.js create mode 100644 .obsidian/plugins/obsidian-full-calendar/manifest.json create mode 100644 .obsidian/plugins/obsidian-full-calendar/styles.css diff --git a/.obsidian/appearance.json b/.obsidian/appearance.json index 184e63e..738a66c 100644 --- a/.obsidian/appearance.json +++ b/.obsidian/appearance.json @@ -3,5 +3,5 @@ "theme": "obsidian", "cssTheme": "Dracula Official", "nativeMenus": true, - "baseFontSize": 30 + "baseFontSize": 16 } \ No newline at end of file diff --git a/.obsidian/community-plugins.json b/.obsidian/community-plugins.json index 496fece..894e1b4 100644 --- a/.obsidian/community-plugins.json +++ b/.obsidian/community-plugins.json @@ -1,11 +1,9 @@ [ "obsidian-git", "dataview", - "obsidian-day-planner", "obsidian-excel-to-markdown-table", "obsidian-linter", "omnisearch", - "cm-typewriter-scroll-obsidian", - "local-backup", - "obsidian-diagrams-net" + "obsidian-diagrams-net", + "obsidian-full-calendar" ] \ No newline at end of file diff --git a/.obsidian/core-plugins-migration.json b/.obsidian/core-plugins-migration.json index dab71c6..28cfcee 100644 --- a/.obsidian/core-plugins-migration.json +++ b/.obsidian/core-plugins-migration.json @@ -4,13 +4,13 @@ "switcher": true, "graph": true, "backlink": true, - "canvas": true, + "canvas": false, "outgoing-link": true, "tag-pane": true, "properties": true, "page-preview": true, - "daily-notes": true, - "templates": true, + "daily-notes": false, + "templates": false, "note-composer": true, "command-palette": true, "slash-command": false, diff --git a/.obsidian/core-plugins.json b/.obsidian/core-plugins.json index 56b44a5..2b5e5dc 100644 --- a/.obsidian/core-plugins.json +++ b/.obsidian/core-plugins.json @@ -4,13 +4,10 @@ "switcher", "graph", "backlink", - "canvas", "outgoing-link", "tag-pane", "properties", "page-preview", - "daily-notes", - "templates", "note-composer", "command-palette", "editor-status", diff --git a/.obsidian/plugins/obsidian-day-planner/data.json b/.obsidian/plugins/obsidian-day-planner/data.json deleted file mode 100644 index 5280588..0000000 --- a/.obsidian/plugins/obsidian-day-planner/data.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "circularProgress": true, - "nowAndNextInStatusBar": true, - "showTaskNotification": true, - "zoomLevel": 2, - "timelineIcon": "calendar-with-checkmark", - "endLabel": "All done", - "startHour": 6, - "timelineDateFormat": "LLLL", - "centerNeedle": false, - "showHelp": true, - "plannerHeading": "Day planner", - "plannerHeadingLevel": 1, - "timelineColored": false, - "timelineStartColor": "#006466", - "timelineEndColor": "#4d194d" -} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-day-planner/main.js b/.obsidian/plugins/obsidian-day-planner/main.js deleted file mode 100644 index bc65052..0000000 --- a/.obsidian/plugins/obsidian-day-planner/main.js +++ /dev/null @@ -1,22597 +0,0 @@ -/* -THIS IS A GENERATED/BUNDLED FILE BY ESBUILD -if you want to view the source, please visit the github repository of this plugin -*/ - -var __create = Object.create; -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __getProtoOf = Object.getPrototypeOf; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __commonJS = (cb, mod) => function __require() { - return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; -}; -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( - // If the importer is in node compatibility mode or this is not an ESM - // file that has been converted to a CommonJS file using a Babel- - // compatible transform (i.e. "__esModule" has not been set), then set - // "default" to the CommonJS "module.exports" for node compatibility. - isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, - mod -)); -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// node_modules/obsidian-daily-notes-interface/dist/main.js -var require_main = __commonJS({ - "node_modules/obsidian-daily-notes-interface/dist/main.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var obsidian = require("obsidian"); - var DEFAULT_DAILY_NOTE_FORMAT2 = "YYYY-MM-DD"; - var DEFAULT_WEEKLY_NOTE_FORMAT = "gggg-[W]ww"; - var DEFAULT_MONTHLY_NOTE_FORMAT = "YYYY-MM"; - var DEFAULT_QUARTERLY_NOTE_FORMAT = "YYYY-[Q]Q"; - var DEFAULT_YEARLY_NOTE_FORMAT = "YYYY"; - function shouldUsePeriodicNotesSettings(periodicity) { - var _a, _b; - const periodicNotes = window.app.plugins.getPlugin("periodic-notes"); - return periodicNotes && ((_b = (_a = periodicNotes.settings) == null ? void 0 : _a[periodicity]) == null ? void 0 : _b.enabled); - } - function getDailyNoteSettings() { - var _a, _b, _c, _d; - try { - const { internalPlugins, plugins } = window.app; - if (shouldUsePeriodicNotesSettings("daily")) { - const { format: format2, folder: folder2, template: template2 } = ((_b = (_a = plugins.getPlugin("periodic-notes")) == null ? void 0 : _a.settings) == null ? void 0 : _b.daily) || {}; - return { - format: format2 || DEFAULT_DAILY_NOTE_FORMAT2, - folder: (folder2 == null ? void 0 : folder2.trim()) || "", - template: (template2 == null ? void 0 : template2.trim()) || "" - }; - } - const { folder, format, template } = ((_d = (_c = internalPlugins.getPluginById("daily-notes")) == null ? void 0 : _c.instance) == null ? void 0 : _d.options) || {}; - return { - format: format || DEFAULT_DAILY_NOTE_FORMAT2, - folder: (folder == null ? void 0 : folder.trim()) || "", - template: (template == null ? void 0 : template.trim()) || "" - }; - } catch (err) { - console.info("No custom daily note settings found!", err); - } - } - function getWeeklyNoteSettings() { - var _a, _b, _c, _d, _e, _f, _g; - try { - const pluginManager = window.app.plugins; - const calendarSettings = (_a = pluginManager.getPlugin("calendar")) == null ? void 0 : _a.options; - const periodicNotesSettings = (_c = (_b = pluginManager.getPlugin("periodic-notes")) == null ? void 0 : _b.settings) == null ? void 0 : _c.weekly; - if (shouldUsePeriodicNotesSettings("weekly")) { - return { - format: periodicNotesSettings.format || DEFAULT_WEEKLY_NOTE_FORMAT, - folder: ((_d = periodicNotesSettings.folder) == null ? void 0 : _d.trim()) || "", - template: ((_e = periodicNotesSettings.template) == null ? void 0 : _e.trim()) || "" - }; - } - const settings2 = calendarSettings || {}; - return { - format: settings2.weeklyNoteFormat || DEFAULT_WEEKLY_NOTE_FORMAT, - folder: ((_f = settings2.weeklyNoteFolder) == null ? void 0 : _f.trim()) || "", - template: ((_g = settings2.weeklyNoteTemplate) == null ? void 0 : _g.trim()) || "" - }; - } catch (err) { - console.info("No custom weekly note settings found!", err); - } - } - function getMonthlyNoteSettings() { - var _a, _b, _c, _d; - const pluginManager = window.app.plugins; - try { - const settings2 = shouldUsePeriodicNotesSettings("monthly") && ((_b = (_a = pluginManager.getPlugin("periodic-notes")) == null ? void 0 : _a.settings) == null ? void 0 : _b.monthly) || {}; - return { - format: settings2.format || DEFAULT_MONTHLY_NOTE_FORMAT, - folder: ((_c = settings2.folder) == null ? void 0 : _c.trim()) || "", - template: ((_d = settings2.template) == null ? void 0 : _d.trim()) || "" - }; - } catch (err) { - console.info("No custom monthly note settings found!", err); - } - } - function getQuarterlyNoteSettings() { - var _a, _b, _c, _d; - const pluginManager = window.app.plugins; - try { - const settings2 = shouldUsePeriodicNotesSettings("quarterly") && ((_b = (_a = pluginManager.getPlugin("periodic-notes")) == null ? void 0 : _a.settings) == null ? void 0 : _b.quarterly) || {}; - return { - format: settings2.format || DEFAULT_QUARTERLY_NOTE_FORMAT, - folder: ((_c = settings2.folder) == null ? void 0 : _c.trim()) || "", - template: ((_d = settings2.template) == null ? void 0 : _d.trim()) || "" - }; - } catch (err) { - console.info("No custom quarterly note settings found!", err); - } - } - function getYearlyNoteSettings() { - var _a, _b, _c, _d; - const pluginManager = window.app.plugins; - try { - const settings2 = shouldUsePeriodicNotesSettings("yearly") && ((_b = (_a = pluginManager.getPlugin("periodic-notes")) == null ? void 0 : _a.settings) == null ? void 0 : _b.yearly) || {}; - return { - format: settings2.format || DEFAULT_YEARLY_NOTE_FORMAT, - folder: ((_c = settings2.folder) == null ? void 0 : _c.trim()) || "", - template: ((_d = settings2.template) == null ? void 0 : _d.trim()) || "" - }; - } catch (err) { - console.info("No custom yearly note settings found!", err); - } - } - function join(...partSegments) { - let parts = []; - for (let i = 0, l = partSegments.length; i < l; i++) { - parts = parts.concat(partSegments[i].split("/")); - } - const newParts = []; - for (let i = 0, l = parts.length; i < l; i++) { - const part = parts[i]; - if (!part || part === ".") - continue; - else - newParts.push(part); - } - if (parts[0] === "") - newParts.unshift(""); - return newParts.join("/"); - } - function basename(fullPath) { - let base = fullPath.substring(fullPath.lastIndexOf("/") + 1); - if (base.lastIndexOf(".") != -1) - base = base.substring(0, base.lastIndexOf(".")); - return base; - } - async function ensureFolderExists(path) { - const dirs = path.replace(/\\/g, "/").split("/"); - dirs.pop(); - if (dirs.length) { - const dir = join(...dirs); - if (!window.app.vault.getAbstractFileByPath(dir)) { - await window.app.vault.createFolder(dir); - } - } - } - async function getNotePath(directory, filename) { - if (!filename.endsWith(".md")) { - filename += ".md"; - } - const path = obsidian.normalizePath(join(directory, filename)); - await ensureFolderExists(path); - return path; - } - async function getTemplateInfo(template) { - const { metadataCache, vault } = window.app; - const templatePath = obsidian.normalizePath(template); - if (templatePath === "/") { - return Promise.resolve(["", null]); - } - try { - const templateFile = metadataCache.getFirstLinkpathDest(templatePath, ""); - const contents = await vault.cachedRead(templateFile); - const IFoldInfo = window.app.foldManager.load(templateFile); - return [contents, IFoldInfo]; - } catch (err) { - console.error(`Failed to read the daily note template '${templatePath}'`, err); - new obsidian.Notice("Failed to read the daily note template"); - return ["", null]; - } - } - function getDateUID(date, granularity = "day") { - const ts = date.clone().startOf(granularity).format(); - return `${granularity}-${ts}`; - } - function removeEscapedCharacters(format) { - return format.replace(/\[[^\]]*\]/g, ""); - } - function isFormatAmbiguous(format, granularity) { - if (granularity === "week") { - const cleanFormat = removeEscapedCharacters(format); - return /w{1,2}/i.test(cleanFormat) && (/M{1,4}/.test(cleanFormat) || /D{1,4}/.test(cleanFormat)); - } - return false; - } - function getDateFromFile3(file, granularity) { - return getDateFromFilename(file.basename, granularity); - } - function getDateFromPath(path, granularity) { - return getDateFromFilename(basename(path), granularity); - } - function getDateFromFilename(filename, granularity) { - const getSettings = { - day: getDailyNoteSettings, - week: getWeeklyNoteSettings, - month: getMonthlyNoteSettings, - quarter: getQuarterlyNoteSettings, - year: getYearlyNoteSettings - }; - const format = getSettings[granularity]().format.split("/").pop(); - const noteDate = window.moment(filename, format, true); - if (!noteDate.isValid()) { - return null; - } - if (isFormatAmbiguous(format, granularity)) { - if (granularity === "week") { - const cleanFormat = removeEscapedCharacters(format); - if (/w{1,2}/i.test(cleanFormat)) { - return window.moment( - filename, - // If format contains week, remove day & month formatting - format.replace(/M{1,4}/g, "").replace(/D{1,4}/g, ""), - false - ); - } - } - } - return noteDate; - } - var DailyNotesFolderMissingError = class extends Error { - }; - async function createDailyNote3(date) { - const app = window.app; - const { vault } = app; - const moment2 = window.moment; - const { template, format, folder } = getDailyNoteSettings(); - const [templateContents, IFoldInfo] = await getTemplateInfo(template); - const filename = date.format(format); - const normalizedPath = await getNotePath(folder, filename); - try { - const createdFile = await vault.create(normalizedPath, templateContents.replace(/{{\s*date\s*}}/gi, filename).replace(/{{\s*time\s*}}/gi, moment2().format("HH:mm")).replace(/{{\s*title\s*}}/gi, filename).replace(/{{\s*(date|time)\s*(([+-]\d+)([yqmwdhs]))?\s*(:.+?)?}}/gi, (_, _timeOrDate, calc, timeDelta, unit, momentFormat) => { - const now = moment2(); - const currentDate = date.clone().set({ - hour: now.get("hour"), - minute: now.get("minute"), - second: now.get("second") - }); - if (calc) { - currentDate.add(parseInt(timeDelta, 10), unit); - } - if (momentFormat) { - return currentDate.format(momentFormat.substring(1).trim()); - } - return currentDate.format(format); - }).replace(/{{\s*yesterday\s*}}/gi, date.clone().subtract(1, "day").format(format)).replace(/{{\s*tomorrow\s*}}/gi, date.clone().add(1, "d").format(format))); - app.foldManager.save(createdFile, IFoldInfo); - return createdFile; - } catch (err) { - console.error(`Failed to create file: '${normalizedPath}'`, err); - new obsidian.Notice("Unable to create new file."); - } - } - function getDailyNote6(date, dailyNotes) { - var _a; - return (_a = dailyNotes[getDateUID(date, "day")]) != null ? _a : null; - } - function getAllDailyNotes6() { - const { vault } = window.app; - const { folder } = getDailyNoteSettings(); - const dailyNotesFolder = vault.getAbstractFileByPath(obsidian.normalizePath(folder)); - if (!dailyNotesFolder) { - throw new DailyNotesFolderMissingError("Failed to find daily notes folder"); - } - const dailyNotes = {}; - obsidian.Vault.recurseChildren(dailyNotesFolder, (note) => { - if (note instanceof obsidian.TFile) { - const date = getDateFromFile3(note, "day"); - if (date) { - const dateString = getDateUID(date, "day"); - dailyNotes[dateString] = note; - } - } - }); - return dailyNotes; - } - var WeeklyNotesFolderMissingError = class extends Error { - }; - function getDaysOfWeek2() { - const { moment: moment2 } = window; - let weekStart = moment2.localeData()._week.dow; - const daysOfWeek = [ - "sunday", - "monday", - "tuesday", - "wednesday", - "thursday", - "friday", - "saturday" - ]; - while (weekStart) { - daysOfWeek.push(daysOfWeek.shift()); - weekStart--; - } - return daysOfWeek; - } - function getDayOfWeekNumericalValue(dayOfWeekName) { - return getDaysOfWeek2().indexOf(dayOfWeekName.toLowerCase()); - } - async function createWeeklyNote(date) { - const { vault } = window.app; - const { template, format, folder } = getWeeklyNoteSettings(); - const [templateContents, IFoldInfo] = await getTemplateInfo(template); - const filename = date.format(format); - const normalizedPath = await getNotePath(folder, filename); - try { - const createdFile = await vault.create(normalizedPath, templateContents.replace(/{{\s*(date|time)\s*(([+-]\d+)([yqmwdhs]))?\s*(:.+?)?}}/gi, (_, _timeOrDate, calc, timeDelta, unit, momentFormat) => { - const now = window.moment(); - const currentDate = date.clone().set({ - hour: now.get("hour"), - minute: now.get("minute"), - second: now.get("second") - }); - if (calc) { - currentDate.add(parseInt(timeDelta, 10), unit); - } - if (momentFormat) { - return currentDate.format(momentFormat.substring(1).trim()); - } - return currentDate.format(format); - }).replace(/{{\s*title\s*}}/gi, filename).replace(/{{\s*time\s*}}/gi, window.moment().format("HH:mm")).replace(/{{\s*(sunday|monday|tuesday|wednesday|thursday|friday|saturday)\s*:(.*?)}}/gi, (_, dayOfWeek, momentFormat) => { - const day = getDayOfWeekNumericalValue(dayOfWeek); - return date.weekday(day).format(momentFormat.trim()); - })); - window.app.foldManager.save(createdFile, IFoldInfo); - return createdFile; - } catch (err) { - console.error(`Failed to create file: '${normalizedPath}'`, err); - new obsidian.Notice("Unable to create new file."); - } - } - function getWeeklyNote(date, weeklyNotes) { - var _a; - return (_a = weeklyNotes[getDateUID(date, "week")]) != null ? _a : null; - } - function getAllWeeklyNotes() { - const weeklyNotes = {}; - if (!appHasWeeklyNotesPluginLoaded()) { - return weeklyNotes; - } - const { vault } = window.app; - const { folder } = getWeeklyNoteSettings(); - const weeklyNotesFolder = vault.getAbstractFileByPath(obsidian.normalizePath(folder)); - if (!weeklyNotesFolder) { - throw new WeeklyNotesFolderMissingError("Failed to find weekly notes folder"); - } - obsidian.Vault.recurseChildren(weeklyNotesFolder, (note) => { - if (note instanceof obsidian.TFile) { - const date = getDateFromFile3(note, "week"); - if (date) { - const dateString = getDateUID(date, "week"); - weeklyNotes[dateString] = note; - } - } - }); - return weeklyNotes; - } - var MonthlyNotesFolderMissingError = class extends Error { - }; - async function createMonthlyNote(date) { - const { vault } = window.app; - const { template, format, folder } = getMonthlyNoteSettings(); - const [templateContents, IFoldInfo] = await getTemplateInfo(template); - const filename = date.format(format); - const normalizedPath = await getNotePath(folder, filename); - try { - const createdFile = await vault.create(normalizedPath, templateContents.replace(/{{\s*(date|time)\s*(([+-]\d+)([yqmwdhs]))?\s*(:.+?)?}}/gi, (_, _timeOrDate, calc, timeDelta, unit, momentFormat) => { - const now = window.moment(); - const currentDate = date.clone().set({ - hour: now.get("hour"), - minute: now.get("minute"), - second: now.get("second") - }); - if (calc) { - currentDate.add(parseInt(timeDelta, 10), unit); - } - if (momentFormat) { - return currentDate.format(momentFormat.substring(1).trim()); - } - return currentDate.format(format); - }).replace(/{{\s*date\s*}}/gi, filename).replace(/{{\s*time\s*}}/gi, window.moment().format("HH:mm")).replace(/{{\s*title\s*}}/gi, filename)); - window.app.foldManager.save(createdFile, IFoldInfo); - return createdFile; - } catch (err) { - console.error(`Failed to create file: '${normalizedPath}'`, err); - new obsidian.Notice("Unable to create new file."); - } - } - function getMonthlyNote(date, monthlyNotes) { - var _a; - return (_a = monthlyNotes[getDateUID(date, "month")]) != null ? _a : null; - } - function getAllMonthlyNotes() { - const monthlyNotes = {}; - if (!appHasMonthlyNotesPluginLoaded()) { - return monthlyNotes; - } - const { vault } = window.app; - const { folder } = getMonthlyNoteSettings(); - const monthlyNotesFolder = vault.getAbstractFileByPath(obsidian.normalizePath(folder)); - if (!monthlyNotesFolder) { - throw new MonthlyNotesFolderMissingError("Failed to find monthly notes folder"); - } - obsidian.Vault.recurseChildren(monthlyNotesFolder, (note) => { - if (note instanceof obsidian.TFile) { - const date = getDateFromFile3(note, "month"); - if (date) { - const dateString = getDateUID(date, "month"); - monthlyNotes[dateString] = note; - } - } - }); - return monthlyNotes; - } - var QuarterlyNotesFolderMissingError = class extends Error { - }; - async function createQuarterlyNote(date) { - const { vault } = window.app; - const { template, format, folder } = getQuarterlyNoteSettings(); - const [templateContents, IFoldInfo] = await getTemplateInfo(template); - const filename = date.format(format); - const normalizedPath = await getNotePath(folder, filename); - try { - const createdFile = await vault.create(normalizedPath, templateContents.replace(/{{\s*(date|time)\s*(([+-]\d+)([yqmwdhs]))?\s*(:.+?)?}}/gi, (_, _timeOrDate, calc, timeDelta, unit, momentFormat) => { - const now = window.moment(); - const currentDate = date.clone().set({ - hour: now.get("hour"), - minute: now.get("minute"), - second: now.get("second") - }); - if (calc) { - currentDate.add(parseInt(timeDelta, 10), unit); - } - if (momentFormat) { - return currentDate.format(momentFormat.substring(1).trim()); - } - return currentDate.format(format); - }).replace(/{{\s*date\s*}}/gi, filename).replace(/{{\s*time\s*}}/gi, window.moment().format("HH:mm")).replace(/{{\s*title\s*}}/gi, filename)); - window.app.foldManager.save(createdFile, IFoldInfo); - return createdFile; - } catch (err) { - console.error(`Failed to create file: '${normalizedPath}'`, err); - new obsidian.Notice("Unable to create new file."); - } - } - function getQuarterlyNote(date, quarterly) { - var _a; - return (_a = quarterly[getDateUID(date, "quarter")]) != null ? _a : null; - } - function getAllQuarterlyNotes() { - const quarterly = {}; - if (!appHasQuarterlyNotesPluginLoaded()) { - return quarterly; - } - const { vault } = window.app; - const { folder } = getQuarterlyNoteSettings(); - const quarterlyFolder = vault.getAbstractFileByPath(obsidian.normalizePath(folder)); - if (!quarterlyFolder) { - throw new QuarterlyNotesFolderMissingError("Failed to find quarterly notes folder"); - } - obsidian.Vault.recurseChildren(quarterlyFolder, (note) => { - if (note instanceof obsidian.TFile) { - const date = getDateFromFile3(note, "quarter"); - if (date) { - const dateString = getDateUID(date, "quarter"); - quarterly[dateString] = note; - } - } - }); - return quarterly; - } - var YearlyNotesFolderMissingError = class extends Error { - }; - async function createYearlyNote(date) { - const { vault } = window.app; - const { template, format, folder } = getYearlyNoteSettings(); - const [templateContents, IFoldInfo] = await getTemplateInfo(template); - const filename = date.format(format); - const normalizedPath = await getNotePath(folder, filename); - try { - const createdFile = await vault.create(normalizedPath, templateContents.replace(/{{\s*(date|time)\s*(([+-]\d+)([yqmwdhs]))?\s*(:.+?)?}}/gi, (_, _timeOrDate, calc, timeDelta, unit, momentFormat) => { - const now = window.moment(); - const currentDate = date.clone().set({ - hour: now.get("hour"), - minute: now.get("minute"), - second: now.get("second") - }); - if (calc) { - currentDate.add(parseInt(timeDelta, 10), unit); - } - if (momentFormat) { - return currentDate.format(momentFormat.substring(1).trim()); - } - return currentDate.format(format); - }).replace(/{{\s*date\s*}}/gi, filename).replace(/{{\s*time\s*}}/gi, window.moment().format("HH:mm")).replace(/{{\s*title\s*}}/gi, filename)); - window.app.foldManager.save(createdFile, IFoldInfo); - return createdFile; - } catch (err) { - console.error(`Failed to create file: '${normalizedPath}'`, err); - new obsidian.Notice("Unable to create new file."); - } - } - function getYearlyNote(date, yearlyNotes) { - var _a; - return (_a = yearlyNotes[getDateUID(date, "year")]) != null ? _a : null; - } - function getAllYearlyNotes() { - const yearlyNotes = {}; - if (!appHasYearlyNotesPluginLoaded()) { - return yearlyNotes; - } - const { vault } = window.app; - const { folder } = getYearlyNoteSettings(); - const yearlyNotesFolder = vault.getAbstractFileByPath(obsidian.normalizePath(folder)); - if (!yearlyNotesFolder) { - throw new YearlyNotesFolderMissingError("Failed to find yearly notes folder"); - } - obsidian.Vault.recurseChildren(yearlyNotesFolder, (note) => { - if (note instanceof obsidian.TFile) { - const date = getDateFromFile3(note, "year"); - if (date) { - const dateString = getDateUID(date, "year"); - yearlyNotes[dateString] = note; - } - } - }); - return yearlyNotes; - } - function appHasDailyNotesPluginLoaded() { - var _a, _b; - const { app } = window; - const dailyNotesPlugin = app.internalPlugins.plugins["daily-notes"]; - if (dailyNotesPlugin && dailyNotesPlugin.enabled) { - return true; - } - const periodicNotes = app.plugins.getPlugin("periodic-notes"); - return periodicNotes && ((_b = (_a = periodicNotes.settings) == null ? void 0 : _a.daily) == null ? void 0 : _b.enabled); - } - function appHasWeeklyNotesPluginLoaded() { - var _a, _b; - const { app } = window; - if (app.plugins.getPlugin("calendar")) { - return true; - } - const periodicNotes = app.plugins.getPlugin("periodic-notes"); - return periodicNotes && ((_b = (_a = periodicNotes.settings) == null ? void 0 : _a.weekly) == null ? void 0 : _b.enabled); - } - function appHasMonthlyNotesPluginLoaded() { - var _a, _b; - const { app } = window; - const periodicNotes = app.plugins.getPlugin("periodic-notes"); - return periodicNotes && ((_b = (_a = periodicNotes.settings) == null ? void 0 : _a.monthly) == null ? void 0 : _b.enabled); - } - function appHasQuarterlyNotesPluginLoaded() { - var _a, _b; - const { app } = window; - const periodicNotes = app.plugins.getPlugin("periodic-notes"); - return periodicNotes && ((_b = (_a = periodicNotes.settings) == null ? void 0 : _a.quarterly) == null ? void 0 : _b.enabled); - } - function appHasYearlyNotesPluginLoaded() { - var _a, _b; - const { app } = window; - const periodicNotes = app.plugins.getPlugin("periodic-notes"); - return periodicNotes && ((_b = (_a = periodicNotes.settings) == null ? void 0 : _a.yearly) == null ? void 0 : _b.enabled); - } - function getPeriodicNoteSettings(granularity) { - const getSettings = { - day: getDailyNoteSettings, - week: getWeeklyNoteSettings, - month: getMonthlyNoteSettings, - quarter: getQuarterlyNoteSettings, - year: getYearlyNoteSettings - }[granularity]; - return getSettings(); - } - function createPeriodicNote(granularity, date) { - const createFn = { - day: createDailyNote3, - month: createMonthlyNote, - week: createWeeklyNote - }; - return createFn[granularity](date); - } - exports.DEFAULT_DAILY_NOTE_FORMAT = DEFAULT_DAILY_NOTE_FORMAT2; - exports.DEFAULT_MONTHLY_NOTE_FORMAT = DEFAULT_MONTHLY_NOTE_FORMAT; - exports.DEFAULT_QUARTERLY_NOTE_FORMAT = DEFAULT_QUARTERLY_NOTE_FORMAT; - exports.DEFAULT_WEEKLY_NOTE_FORMAT = DEFAULT_WEEKLY_NOTE_FORMAT; - exports.DEFAULT_YEARLY_NOTE_FORMAT = DEFAULT_YEARLY_NOTE_FORMAT; - exports.appHasDailyNotesPluginLoaded = appHasDailyNotesPluginLoaded; - exports.appHasMonthlyNotesPluginLoaded = appHasMonthlyNotesPluginLoaded; - exports.appHasQuarterlyNotesPluginLoaded = appHasQuarterlyNotesPluginLoaded; - exports.appHasWeeklyNotesPluginLoaded = appHasWeeklyNotesPluginLoaded; - exports.appHasYearlyNotesPluginLoaded = appHasYearlyNotesPluginLoaded; - exports.createDailyNote = createDailyNote3; - exports.createMonthlyNote = createMonthlyNote; - exports.createPeriodicNote = createPeriodicNote; - exports.createQuarterlyNote = createQuarterlyNote; - exports.createWeeklyNote = createWeeklyNote; - exports.createYearlyNote = createYearlyNote; - exports.getAllDailyNotes = getAllDailyNotes6; - exports.getAllMonthlyNotes = getAllMonthlyNotes; - exports.getAllQuarterlyNotes = getAllQuarterlyNotes; - exports.getAllWeeklyNotes = getAllWeeklyNotes; - exports.getAllYearlyNotes = getAllYearlyNotes; - exports.getDailyNote = getDailyNote6; - exports.getDailyNoteSettings = getDailyNoteSettings; - exports.getDateFromFile = getDateFromFile3; - exports.getDateFromPath = getDateFromPath; - exports.getDateUID = getDateUID; - exports.getMonthlyNote = getMonthlyNote; - exports.getMonthlyNoteSettings = getMonthlyNoteSettings; - exports.getPeriodicNoteSettings = getPeriodicNoteSettings; - exports.getQuarterlyNote = getQuarterlyNote; - exports.getQuarterlyNoteSettings = getQuarterlyNoteSettings; - exports.getTemplateInfo = getTemplateInfo; - exports.getWeeklyNote = getWeeklyNote; - exports.getWeeklyNoteSettings = getWeeklyNoteSettings; - exports.getYearlyNote = getYearlyNote; - exports.getYearlyNoteSettings = getYearlyNoteSettings; - } -}); - -// node_modules/typed-assert/build/index.js -var require_build = __commonJS({ - "node_modules/typed-assert/build/index.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.check = exports.isPromise = exports.isInstanceOf = exports.isOneOfType = exports.isOneOf = exports.isOptionOfType = exports.isArrayOfType = exports.isRecordOfType = exports.isArray = exports.isRecordWithKeys = exports.isRecord = exports.isDate = exports.isString = exports.isNumber = exports.isBoolean = exports.isExactly = exports.isNotVoid = exports.isNotUndefined = exports.isNotNull = exports.isNever = exports.isUnknown = exports.safeJsonParse = exports.setBaseAssert = exports.assert = exports.defaultAssert = void 0; - var expectedToBe = (type) => `expected to be ${type}`; - var defaultAssert = (condition, message) => { - if (!condition) { - throw new TypeError(message); - } - }; - exports.defaultAssert = defaultAssert; - var baseAssert = exports.defaultAssert; - var assert = (condition, message) => baseAssert(condition, message); - exports.assert = assert; - function setBaseAssert(assert2) { - if (assert2) { - baseAssert = assert2; - } - } - exports.setBaseAssert = setBaseAssert; - var safeJsonParse = (json) => JSON.parse(json); - exports.safeJsonParse = safeJsonParse; - function isUnknown(_input) { - return true; - } - exports.isUnknown = isUnknown; - function isNever(_input, message = expectedToBe("unreachable")) { - throw new TypeError(message); - } - exports.isNever = isNever; - function isNotNull(input, message = expectedToBe("not null")) { - (0, exports.assert)(input !== null, message); - } - exports.isNotNull = isNotNull; - function isNotUndefined(input, message = expectedToBe("not undefined")) { - (0, exports.assert)(input !== void 0, message); - } - exports.isNotUndefined = isNotUndefined; - function isNotVoid2(input, message = expectedToBe("neither null nor undefined")) { - (0, exports.assert)(input !== null && input !== void 0, message); - } - exports.isNotVoid = isNotVoid2; - function isExactly(input, value, message = expectedToBe(`exactly ${value}`)) { - (0, exports.assert)(input === value, message); - } - exports.isExactly = isExactly; - function isBoolean(input, message = expectedToBe("a boolean")) { - (0, exports.assert)(typeof input === "boolean", message); - } - exports.isBoolean = isBoolean; - function isNumber(input, message = expectedToBe("a number")) { - (0, exports.assert)(typeof input === "number", message); - } - exports.isNumber = isNumber; - function isString(input, message = expectedToBe("a string")) { - (0, exports.assert)(typeof input === "string", message); - } - exports.isString = isString; - function isDate(input, message = expectedToBe("a Date")) { - (0, exports.assert)(input instanceof Date, message); - } - exports.isDate = isDate; - function isRecord(input, message = expectedToBe("a record")) { - (0, exports.assert)(typeof input === "object", message); - isNotNull(input, message); - for (const key of Object.keys(input)) { - isString(key, message); - } - } - exports.isRecord = isRecord; - function isRecordWithKeys(input, keys, message = expectedToBe(`a record with keys ${keys.join(", ")}`)) { - isRecord(input, message); - for (const key of keys) { - isNotUndefined(input[key]); - } - } - exports.isRecordWithKeys = isRecordWithKeys; - function isArray(input, message = expectedToBe("an array")) { - (0, exports.assert)(Array.isArray(input), message); - } - exports.isArray = isArray; - function isRecordOfType(input, assertT, message = expectedToBe("a record of given type"), itemMessage = expectedToBe("of given type")) { - isRecord(input, message); - for (const item of Object.values(input)) { - assertT(item, itemMessage); - } - } - exports.isRecordOfType = isRecordOfType; - function isArrayOfType(input, assertT, message = expectedToBe("an array of given type"), itemMessage = expectedToBe("of given type")) { - isArray(input, message); - for (const item of input) { - assertT(item, itemMessage); - } - } - exports.isArrayOfType = isArrayOfType; - function isOptionOfType(input, assertT, message = expectedToBe("option of given type")) { - if (input === void 0) { - return; - } - assertT(input, message); - } - exports.isOptionOfType = isOptionOfType; - function isOneOf(input, values, message = expectedToBe(`one of ${values.join(", ")}`)) { - (0, exports.assert)(values.includes(input), message); - } - exports.isOneOf = isOneOf; - function isOneOfType(input, assertT, message = expectedToBe(`one of type`), itemMessage) { - for (const assert2 of assertT) { - try { - assert2(input, itemMessage); - return; - } catch (_) { - } - } - throw new TypeError(message); - } - exports.isOneOfType = isOneOfType; - function isInstanceOf2(input, constructor, message = expectedToBe("an instance of given constructor")) { - (0, exports.assert)(input instanceof constructor, message); - } - exports.isInstanceOf = isInstanceOf2; - function isPromise(input, message = expectedToBe("a promise")) { - isInstanceOf2(input, Promise, message); - } - exports.isPromise = isPromise; - function check(assertT) { - return (input) => { - try { - assertT(input); - return true; - } catch (_) { - return false; - } - }; - } - exports.check = check; - } -}); - -// node_modules/lodash/lodash.min.js -var require_lodash_min = __commonJS({ - "node_modules/lodash/lodash.min.js"(exports, module2) { - (function() { - function n(n2, t2, r2) { - switch (r2.length) { - case 0: - return n2.call(t2); - case 1: - return n2.call(t2, r2[0]); - case 2: - return n2.call(t2, r2[0], r2[1]); - case 3: - return n2.call(t2, r2[0], r2[1], r2[2]); - } - return n2.apply(t2, r2); - } - function t(n2, t2, r2, e2) { - for (var u2 = -1, i2 = null == n2 ? 0 : n2.length; ++u2 < i2; ) { - var o2 = n2[u2]; - t2(e2, o2, r2(o2), n2); - } - return e2; - } - function r(n2, t2) { - for (var r2 = -1, e2 = null == n2 ? 0 : n2.length; ++r2 < e2 && t2(n2[r2], r2, n2) !== false; ) - ; - return n2; - } - function e(n2, t2) { - for (var r2 = null == n2 ? 0 : n2.length; r2-- && t2(n2[r2], r2, n2) !== false; ) - ; - return n2; - } - function u(n2, t2) { - for (var r2 = -1, e2 = null == n2 ? 0 : n2.length; ++r2 < e2; ) - if (!t2(n2[r2], r2, n2)) - return false; - return true; - } - function i(n2, t2) { - for (var r2 = -1, e2 = null == n2 ? 0 : n2.length, u2 = 0, i2 = []; ++r2 < e2; ) { - var o2 = n2[r2]; - t2(o2, r2, n2) && (i2[u2++] = o2); - } - return i2; - } - function o(n2, t2) { - return !!(null == n2 ? 0 : n2.length) && y(n2, t2, 0) > -1; - } - function f(n2, t2, r2) { - for (var e2 = -1, u2 = null == n2 ? 0 : n2.length; ++e2 < u2; ) - if (r2(t2, n2[e2])) - return true; - return false; - } - function c(n2, t2) { - for (var r2 = -1, e2 = null == n2 ? 0 : n2.length, u2 = Array(e2); ++r2 < e2; ) - u2[r2] = t2(n2[r2], r2, n2); - return u2; - } - function a(n2, t2) { - for (var r2 = -1, e2 = t2.length, u2 = n2.length; ++r2 < e2; ) - n2[u2 + r2] = t2[r2]; - return n2; - } - function l(n2, t2, r2, e2) { - var u2 = -1, i2 = null == n2 ? 0 : n2.length; - for (e2 && i2 && (r2 = n2[++u2]); ++u2 < i2; ) - r2 = t2(r2, n2[u2], u2, n2); - return r2; - } - function s(n2, t2, r2, e2) { - var u2 = null == n2 ? 0 : n2.length; - for (e2 && u2 && (r2 = n2[--u2]); u2--; ) - r2 = t2(r2, n2[u2], u2, n2); - return r2; - } - function h(n2, t2) { - for (var r2 = -1, e2 = null == n2 ? 0 : n2.length; ++r2 < e2; ) - if (t2(n2[r2], r2, n2)) - return true; - return false; - } - function p(n2) { - return n2.split(""); - } - function _(n2) { - return n2.match($t) || []; - } - function v(n2, t2, r2) { - var e2; - return r2(n2, function(n3, r3, u2) { - if (t2(n3, r3, u2)) - return e2 = r3, false; - }), e2; - } - function g(n2, t2, r2, e2) { - for (var u2 = n2.length, i2 = r2 + (e2 ? 1 : -1); e2 ? i2-- : ++i2 < u2; ) - if (t2(n2[i2], i2, n2)) - return i2; - return -1; - } - function y(n2, t2, r2) { - return t2 === t2 ? Z(n2, t2, r2) : g(n2, b, r2); - } - function d(n2, t2, r2, e2) { - for (var u2 = r2 - 1, i2 = n2.length; ++u2 < i2; ) - if (e2(n2[u2], t2)) - return u2; - return -1; - } - function b(n2) { - return n2 !== n2; - } - function w(n2, t2) { - var r2 = null == n2 ? 0 : n2.length; - return r2 ? k(n2, t2) / r2 : Cn; - } - function m(n2) { - return function(t2) { - return null == t2 ? X : t2[n2]; - }; - } - function x(n2) { - return function(t2) { - return null == n2 ? X : n2[t2]; - }; - } - function j(n2, t2, r2, e2, u2) { - return u2(n2, function(n3, u3, i2) { - r2 = e2 ? (e2 = false, n3) : t2(r2, n3, u3, i2); - }), r2; - } - function A(n2, t2) { - var r2 = n2.length; - for (n2.sort(t2); r2--; ) - n2[r2] = n2[r2].value; - return n2; - } - function k(n2, t2) { - for (var r2, e2 = -1, u2 = n2.length; ++e2 < u2; ) { - var i2 = t2(n2[e2]); - i2 !== X && (r2 = r2 === X ? i2 : r2 + i2); - } - return r2; - } - function O(n2, t2) { - for (var r2 = -1, e2 = Array(n2); ++r2 < n2; ) - e2[r2] = t2(r2); - return e2; - } - function I(n2, t2) { - return c(t2, function(t3) { - return [t3, n2[t3]]; - }); - } - function R(n2) { - return n2 ? n2.slice(0, H(n2) + 1).replace(Lt, "") : n2; - } - function z(n2) { - return function(t2) { - return n2(t2); - }; - } - function E(n2, t2) { - return c(t2, function(t3) { - return n2[t3]; - }); - } - function S(n2, t2) { - return n2.has(t2); - } - function W(n2, t2) { - for (var r2 = -1, e2 = n2.length; ++r2 < e2 && y(t2, n2[r2], 0) > -1; ) - ; - return r2; - } - function L(n2, t2) { - for (var r2 = n2.length; r2-- && y(t2, n2[r2], 0) > -1; ) - ; - return r2; - } - function C(n2, t2) { - for (var r2 = n2.length, e2 = 0; r2--; ) - n2[r2] === t2 && ++e2; - return e2; - } - function U(n2) { - return "\\" + Yr[n2]; - } - function B(n2, t2) { - return null == n2 ? X : n2[t2]; - } - function T(n2) { - return Nr.test(n2); - } - function $(n2) { - return Pr.test(n2); - } - function D(n2) { - for (var t2, r2 = []; !(t2 = n2.next()).done; ) - r2.push(t2.value); - return r2; - } - function M(n2) { - var t2 = -1, r2 = Array(n2.size); - return n2.forEach(function(n3, e2) { - r2[++t2] = [e2, n3]; - }), r2; - } - function F(n2, t2) { - return function(r2) { - return n2(t2(r2)); - }; - } - function N(n2, t2) { - for (var r2 = -1, e2 = n2.length, u2 = 0, i2 = []; ++r2 < e2; ) { - var o2 = n2[r2]; - o2 !== t2 && o2 !== cn || (n2[r2] = cn, i2[u2++] = r2); - } - return i2; - } - function P(n2) { - var t2 = -1, r2 = Array(n2.size); - return n2.forEach(function(n3) { - r2[++t2] = n3; - }), r2; - } - function q(n2) { - var t2 = -1, r2 = Array(n2.size); - return n2.forEach(function(n3) { - r2[++t2] = [n3, n3]; - }), r2; - } - function Z(n2, t2, r2) { - for (var e2 = r2 - 1, u2 = n2.length; ++e2 < u2; ) - if (n2[e2] === t2) - return e2; - return -1; - } - function K(n2, t2, r2) { - for (var e2 = r2 + 1; e2--; ) - if (n2[e2] === t2) - return e2; - return e2; - } - function V(n2) { - return T(n2) ? J(n2) : _e(n2); - } - function G(n2) { - return T(n2) ? Y(n2) : p(n2); - } - function H(n2) { - for (var t2 = n2.length; t2-- && Ct.test(n2.charAt(t2)); ) - ; - return t2; - } - function J(n2) { - for (var t2 = Mr.lastIndex = 0; Mr.test(n2); ) - ++t2; - return t2; - } - function Y(n2) { - return n2.match(Mr) || []; - } - function Q(n2) { - return n2.match(Fr) || []; - } - var X, nn = "4.17.21", tn = 200, rn = "Unsupported core-js use. Try https://npms.io/search?q=ponyfill.", en = "Expected a function", un = "Invalid `variable` option passed into `_.template`", on = "__lodash_hash_undefined__", fn = 500, cn = "__lodash_placeholder__", an = 1, ln = 2, sn = 4, hn = 1, pn = 2, _n = 1, vn = 2, gn = 4, yn = 8, dn = 16, bn = 32, wn = 64, mn = 128, xn = 256, jn = 512, An = 30, kn = "...", On = 800, In = 16, Rn = 1, zn = 2, En = 3, Sn = 1 / 0, Wn = 9007199254740991, Ln = 17976931348623157e292, Cn = NaN, Un = 4294967295, Bn = Un - 1, Tn = Un >>> 1, $n = [["ary", mn], ["bind", _n], ["bindKey", vn], ["curry", yn], ["curryRight", dn], ["flip", jn], ["partial", bn], ["partialRight", wn], ["rearg", xn]], Dn = "[object Arguments]", Mn = "[object Array]", Fn = "[object AsyncFunction]", Nn = "[object Boolean]", Pn = "[object Date]", qn = "[object DOMException]", Zn = "[object Error]", Kn = "[object Function]", Vn = "[object GeneratorFunction]", Gn = "[object Map]", Hn = "[object Number]", Jn = "[object Null]", Yn = "[object Object]", Qn = "[object Promise]", Xn = "[object Proxy]", nt = "[object RegExp]", tt = "[object Set]", rt = "[object String]", et = "[object Symbol]", ut = "[object Undefined]", it = "[object WeakMap]", ot = "[object WeakSet]", ft = "[object ArrayBuffer]", ct = "[object DataView]", at = "[object Float32Array]", lt = "[object Float64Array]", st = "[object Int8Array]", ht = "[object Int16Array]", pt = "[object Int32Array]", _t = "[object Uint8Array]", vt = "[object Uint8ClampedArray]", gt = "[object Uint16Array]", yt = "[object Uint32Array]", dt = /\b__p \+= '';/g, bt = /\b(__p \+=) '' \+/g, wt = /(__e\(.*?\)|\b__t\)) \+\n'';/g, mt = /&(?:amp|lt|gt|quot|#39);/g, xt = /[&<>"']/g, jt = RegExp(mt.source), At = RegExp(xt.source), kt = /<%-([\s\S]+?)%>/g, Ot = /<%([\s\S]+?)%>/g, It = /<%=([\s\S]+?)%>/g, Rt = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, zt = /^\w*$/, Et = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g, St = /[\\^$.*+?()[\]{}|]/g, Wt = RegExp(St.source), Lt = /^\s+/, Ct = /\s/, Ut = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/, Bt = /\{\n\/\* \[wrapped with (.+)\] \*/, Tt = /,? & /, $t = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g, Dt = /[()=,{}\[\]\/\s]/, Mt = /\\(\\)?/g, Ft = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g, Nt = /\w*$/, Pt = /^[-+]0x[0-9a-f]+$/i, qt = /^0b[01]+$/i, Zt = /^\[object .+?Constructor\]$/, Kt = /^0o[0-7]+$/i, Vt = /^(?:0|[1-9]\d*)$/, Gt = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g, Ht = /($^)/, Jt = /['\n\r\u2028\u2029\\]/g, Yt = "\\ud800-\\udfff", Qt = "\\u0300-\\u036f", Xt = "\\ufe20-\\ufe2f", nr = "\\u20d0-\\u20ff", tr = Qt + Xt + nr, rr = "\\u2700-\\u27bf", er = "a-z\\xdf-\\xf6\\xf8-\\xff", ur = "\\xac\\xb1\\xd7\\xf7", ir = "\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf", or = "\\u2000-\\u206f", fr = " \\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", cr = "A-Z\\xc0-\\xd6\\xd8-\\xde", ar = "\\ufe0e\\ufe0f", lr = ur + ir + or + fr, sr = "['\u2019]", hr = "[" + Yt + "]", pr = "[" + lr + "]", _r = "[" + tr + "]", vr = "\\d+", gr = "[" + rr + "]", yr = "[" + er + "]", dr = "[^" + Yt + lr + vr + rr + er + cr + "]", br = "\\ud83c[\\udffb-\\udfff]", wr = "(?:" + _r + "|" + br + ")", mr = "[^" + Yt + "]", xr = "(?:\\ud83c[\\udde6-\\uddff]){2}", jr = "[\\ud800-\\udbff][\\udc00-\\udfff]", Ar = "[" + cr + "]", kr = "\\u200d", Or = "(?:" + yr + "|" + dr + ")", Ir = "(?:" + Ar + "|" + dr + ")", Rr = "(?:" + sr + "(?:d|ll|m|re|s|t|ve))?", zr = "(?:" + sr + "(?:D|LL|M|RE|S|T|VE))?", Er = wr + "?", Sr = "[" + ar + "]?", Wr = "(?:" + kr + "(?:" + [mr, xr, jr].join("|") + ")" + Sr + Er + ")*", Lr = "\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])", Cr = "\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])", Ur = Sr + Er + Wr, Br = "(?:" + [gr, xr, jr].join("|") + ")" + Ur, Tr = "(?:" + [mr + _r + "?", _r, xr, jr, hr].join("|") + ")", $r = RegExp(sr, "g"), Dr = RegExp(_r, "g"), Mr = RegExp(br + "(?=" + br + ")|" + Tr + Ur, "g"), Fr = RegExp([Ar + "?" + yr + "+" + Rr + "(?=" + [pr, Ar, "$"].join("|") + ")", Ir + "+" + zr + "(?=" + [pr, Ar + Or, "$"].join("|") + ")", Ar + "?" + Or + "+" + Rr, Ar + "+" + zr, Cr, Lr, vr, Br].join("|"), "g"), Nr = RegExp("[" + kr + Yt + tr + ar + "]"), Pr = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/, qr = ["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"], Zr = -1, Kr = {}; - Kr[at] = Kr[lt] = Kr[st] = Kr[ht] = Kr[pt] = Kr[_t] = Kr[vt] = Kr[gt] = Kr[yt] = true, Kr[Dn] = Kr[Mn] = Kr[ft] = Kr[Nn] = Kr[ct] = Kr[Pn] = Kr[Zn] = Kr[Kn] = Kr[Gn] = Kr[Hn] = Kr[Yn] = Kr[nt] = Kr[tt] = Kr[rt] = Kr[it] = false; - var Vr = {}; - Vr[Dn] = Vr[Mn] = Vr[ft] = Vr[ct] = Vr[Nn] = Vr[Pn] = Vr[at] = Vr[lt] = Vr[st] = Vr[ht] = Vr[pt] = Vr[Gn] = Vr[Hn] = Vr[Yn] = Vr[nt] = Vr[tt] = Vr[rt] = Vr[et] = Vr[_t] = Vr[vt] = Vr[gt] = Vr[yt] = true, Vr[Zn] = Vr[Kn] = Vr[it] = false; - var Gr = { - "\xC0": "A", - "\xC1": "A", - "\xC2": "A", - "\xC3": "A", - "\xC4": "A", - "\xC5": "A", - "\xE0": "a", - "\xE1": "a", - "\xE2": "a", - "\xE3": "a", - "\xE4": "a", - "\xE5": "a", - "\xC7": "C", - "\xE7": "c", - "\xD0": "D", - "\xF0": "d", - "\xC8": "E", - "\xC9": "E", - "\xCA": "E", - "\xCB": "E", - "\xE8": "e", - "\xE9": "e", - "\xEA": "e", - "\xEB": "e", - "\xCC": "I", - "\xCD": "I", - "\xCE": "I", - "\xCF": "I", - "\xEC": "i", - "\xED": "i", - "\xEE": "i", - "\xEF": "i", - "\xD1": "N", - "\xF1": "n", - "\xD2": "O", - "\xD3": "O", - "\xD4": "O", - "\xD5": "O", - "\xD6": "O", - "\xD8": "O", - "\xF2": "o", - "\xF3": "o", - "\xF4": "o", - "\xF5": "o", - "\xF6": "o", - "\xF8": "o", - "\xD9": "U", - "\xDA": "U", - "\xDB": "U", - "\xDC": "U", - "\xF9": "u", - "\xFA": "u", - "\xFB": "u", - "\xFC": "u", - "\xDD": "Y", - "\xFD": "y", - "\xFF": "y", - "\xC6": "Ae", - "\xE6": "ae", - "\xDE": "Th", - "\xFE": "th", - "\xDF": "ss", - "\u0100": "A", - "\u0102": "A", - "\u0104": "A", - "\u0101": "a", - "\u0103": "a", - "\u0105": "a", - "\u0106": "C", - "\u0108": "C", - "\u010A": "C", - "\u010C": "C", - "\u0107": "c", - "\u0109": "c", - "\u010B": "c", - "\u010D": "c", - "\u010E": "D", - "\u0110": "D", - "\u010F": "d", - "\u0111": "d", - "\u0112": "E", - "\u0114": "E", - "\u0116": "E", - "\u0118": "E", - "\u011A": "E", - "\u0113": "e", - "\u0115": "e", - "\u0117": "e", - "\u0119": "e", - "\u011B": "e", - "\u011C": "G", - "\u011E": "G", - "\u0120": "G", - "\u0122": "G", - "\u011D": "g", - "\u011F": "g", - "\u0121": "g", - "\u0123": "g", - "\u0124": "H", - "\u0126": "H", - "\u0125": "h", - "\u0127": "h", - "\u0128": "I", - "\u012A": "I", - "\u012C": "I", - "\u012E": "I", - "\u0130": "I", - "\u0129": "i", - "\u012B": "i", - "\u012D": "i", - "\u012F": "i", - "\u0131": "i", - "\u0134": "J", - "\u0135": "j", - "\u0136": "K", - "\u0137": "k", - "\u0138": "k", - "\u0139": "L", - "\u013B": "L", - "\u013D": "L", - "\u013F": "L", - "\u0141": "L", - "\u013A": "l", - "\u013C": "l", - "\u013E": "l", - "\u0140": "l", - "\u0142": "l", - "\u0143": "N", - "\u0145": "N", - "\u0147": "N", - "\u014A": "N", - "\u0144": "n", - "\u0146": "n", - "\u0148": "n", - "\u014B": "n", - "\u014C": "O", - "\u014E": "O", - "\u0150": "O", - "\u014D": "o", - "\u014F": "o", - "\u0151": "o", - "\u0154": "R", - "\u0156": "R", - "\u0158": "R", - "\u0155": "r", - "\u0157": "r", - "\u0159": "r", - "\u015A": "S", - "\u015C": "S", - "\u015E": "S", - "\u0160": "S", - "\u015B": "s", - "\u015D": "s", - "\u015F": "s", - "\u0161": "s", - "\u0162": "T", - "\u0164": "T", - "\u0166": "T", - "\u0163": "t", - "\u0165": "t", - "\u0167": "t", - "\u0168": "U", - "\u016A": "U", - "\u016C": "U", - "\u016E": "U", - "\u0170": "U", - "\u0172": "U", - "\u0169": "u", - "\u016B": "u", - "\u016D": "u", - "\u016F": "u", - "\u0171": "u", - "\u0173": "u", - "\u0174": "W", - "\u0175": "w", - "\u0176": "Y", - "\u0177": "y", - "\u0178": "Y", - "\u0179": "Z", - "\u017B": "Z", - "\u017D": "Z", - "\u017A": "z", - "\u017C": "z", - "\u017E": "z", - "\u0132": "IJ", - "\u0133": "ij", - "\u0152": "Oe", - "\u0153": "oe", - "\u0149": "'n", - "\u017F": "s" - }, Hr = { "&": "&", "<": "<", ">": ">", '"': """, "'": "'" }, Jr = { "&": "&", "<": "<", ">": ">", """: '"', "'": "'" }, Yr = { "\\": "\\", "'": "'", "\n": "n", "\r": "r", "\u2028": "u2028", "\u2029": "u2029" }, Qr = parseFloat, Xr = parseInt, ne = "object" == typeof global && global && global.Object === Object && global, te = "object" == typeof self && self && self.Object === Object && self, re = ne || te || Function("return this")(), ee = "object" == typeof exports && exports && !exports.nodeType && exports, ue = ee && "object" == typeof module2 && module2 && !module2.nodeType && module2, ie = ue && ue.exports === ee, oe = ie && ne.process, fe = function() { - try { - var n2 = ue && ue.require && ue.require("util").types; - return n2 ? n2 : oe && oe.binding && oe.binding("util"); - } catch (n3) { - } - }(), ce = fe && fe.isArrayBuffer, ae = fe && fe.isDate, le = fe && fe.isMap, se = fe && fe.isRegExp, he = fe && fe.isSet, pe = fe && fe.isTypedArray, _e = m("length"), ve = x(Gr), ge = x(Hr), ye = x(Jr), de = function p2(x2) { - function Z2(n2) { - if (cc(n2) && !bh(n2) && !(n2 instanceof Ct2)) { - if (n2 instanceof Y2) - return n2; - if (bl.call(n2, "__wrapped__")) - return eo(n2); - } - return new Y2(n2); - } - function J2() { - } - function Y2(n2, t2) { - this.__wrapped__ = n2, this.__actions__ = [], this.__chain__ = !!t2, this.__index__ = 0, this.__values__ = X; - } - function Ct2(n2) { - this.__wrapped__ = n2, this.__actions__ = [], this.__dir__ = 1, this.__filtered__ = false, this.__iteratees__ = [], this.__takeCount__ = Un, this.__views__ = []; - } - function $t2() { - var n2 = new Ct2(this.__wrapped__); - return n2.__actions__ = Tu(this.__actions__), n2.__dir__ = this.__dir__, n2.__filtered__ = this.__filtered__, n2.__iteratees__ = Tu(this.__iteratees__), n2.__takeCount__ = this.__takeCount__, n2.__views__ = Tu(this.__views__), n2; - } - function Yt2() { - if (this.__filtered__) { - var n2 = new Ct2(this); - n2.__dir__ = -1, n2.__filtered__ = true; - } else - n2 = this.clone(), n2.__dir__ *= -1; - return n2; - } - function Qt2() { - var n2 = this.__wrapped__.value(), t2 = this.__dir__, r2 = bh(n2), e2 = t2 < 0, u2 = r2 ? n2.length : 0, i2 = Oi(0, u2, this.__views__), o2 = i2.start, f2 = i2.end, c2 = f2 - o2, a2 = e2 ? f2 : o2 - 1, l2 = this.__iteratees__, s2 = l2.length, h2 = 0, p3 = Hl(c2, this.__takeCount__); - if (!r2 || !e2 && u2 == c2 && p3 == c2) - return wu(n2, this.__actions__); - var _2 = []; - n: - for (; c2-- && h2 < p3; ) { - a2 += t2; - for (var v2 = -1, g2 = n2[a2]; ++v2 < s2; ) { - var y2 = l2[v2], d2 = y2.iteratee, b2 = y2.type, w2 = d2(g2); - if (b2 == zn) - g2 = w2; - else if (!w2) { - if (b2 == Rn) - continue n; - break n; - } - } - _2[h2++] = g2; - } - return _2; - } - function Xt2(n2) { - var t2 = -1, r2 = null == n2 ? 0 : n2.length; - for (this.clear(); ++t2 < r2; ) { - var e2 = n2[t2]; - this.set(e2[0], e2[1]); - } - } - function nr2() { - this.__data__ = is ? is(null) : {}, this.size = 0; - } - function tr2(n2) { - var t2 = this.has(n2) && delete this.__data__[n2]; - return this.size -= t2 ? 1 : 0, t2; - } - function rr2(n2) { - var t2 = this.__data__; - if (is) { - var r2 = t2[n2]; - return r2 === on ? X : r2; - } - return bl.call(t2, n2) ? t2[n2] : X; - } - function er2(n2) { - var t2 = this.__data__; - return is ? t2[n2] !== X : bl.call(t2, n2); - } - function ur2(n2, t2) { - var r2 = this.__data__; - return this.size += this.has(n2) ? 0 : 1, r2[n2] = is && t2 === X ? on : t2, this; - } - function ir2(n2) { - var t2 = -1, r2 = null == n2 ? 0 : n2.length; - for (this.clear(); ++t2 < r2; ) { - var e2 = n2[t2]; - this.set(e2[0], e2[1]); - } - } - function or2() { - this.__data__ = [], this.size = 0; - } - function fr2(n2) { - var t2 = this.__data__, r2 = Wr2(t2, n2); - return !(r2 < 0) && (r2 == t2.length - 1 ? t2.pop() : Ll.call(t2, r2, 1), --this.size, true); - } - function cr2(n2) { - var t2 = this.__data__, r2 = Wr2(t2, n2); - return r2 < 0 ? X : t2[r2][1]; - } - function ar2(n2) { - return Wr2(this.__data__, n2) > -1; - } - function lr2(n2, t2) { - var r2 = this.__data__, e2 = Wr2(r2, n2); - return e2 < 0 ? (++this.size, r2.push([n2, t2])) : r2[e2][1] = t2, this; - } - function sr2(n2) { - var t2 = -1, r2 = null == n2 ? 0 : n2.length; - for (this.clear(); ++t2 < r2; ) { - var e2 = n2[t2]; - this.set(e2[0], e2[1]); - } - } - function hr2() { - this.size = 0, this.__data__ = { hash: new Xt2(), map: new (ts || ir2)(), string: new Xt2() }; - } - function pr2(n2) { - var t2 = xi(this, n2).delete(n2); - return this.size -= t2 ? 1 : 0, t2; - } - function _r2(n2) { - return xi(this, n2).get(n2); - } - function vr2(n2) { - return xi(this, n2).has(n2); - } - function gr2(n2, t2) { - var r2 = xi(this, n2), e2 = r2.size; - return r2.set(n2, t2), this.size += r2.size == e2 ? 0 : 1, this; - } - function yr2(n2) { - var t2 = -1, r2 = null == n2 ? 0 : n2.length; - for (this.__data__ = new sr2(); ++t2 < r2; ) - this.add(n2[t2]); - } - function dr2(n2) { - return this.__data__.set(n2, on), this; - } - function br2(n2) { - return this.__data__.has(n2); - } - function wr2(n2) { - this.size = (this.__data__ = new ir2(n2)).size; - } - function mr2() { - this.__data__ = new ir2(), this.size = 0; - } - function xr2(n2) { - var t2 = this.__data__, r2 = t2.delete(n2); - return this.size = t2.size, r2; - } - function jr2(n2) { - return this.__data__.get(n2); - } - function Ar2(n2) { - return this.__data__.has(n2); - } - function kr2(n2, t2) { - var r2 = this.__data__; - if (r2 instanceof ir2) { - var e2 = r2.__data__; - if (!ts || e2.length < tn - 1) - return e2.push([n2, t2]), this.size = ++r2.size, this; - r2 = this.__data__ = new sr2(e2); - } - return r2.set(n2, t2), this.size = r2.size, this; - } - function Or2(n2, t2) { - var r2 = bh(n2), e2 = !r2 && dh(n2), u2 = !r2 && !e2 && mh(n2), i2 = !r2 && !e2 && !u2 && Oh(n2), o2 = r2 || e2 || u2 || i2, f2 = o2 ? O(n2.length, hl) : [], c2 = f2.length; - for (var a2 in n2) - !t2 && !bl.call(n2, a2) || o2 && ("length" == a2 || u2 && ("offset" == a2 || "parent" == a2) || i2 && ("buffer" == a2 || "byteLength" == a2 || "byteOffset" == a2) || Ci(a2, c2)) || f2.push(a2); - return f2; - } - function Ir2(n2) { - var t2 = n2.length; - return t2 ? n2[tu(0, t2 - 1)] : X; - } - function Rr2(n2, t2) { - return Xi(Tu(n2), Mr2(t2, 0, n2.length)); - } - function zr2(n2) { - return Xi(Tu(n2)); - } - function Er2(n2, t2, r2) { - (r2 === X || Gf(n2[t2], r2)) && (r2 !== X || t2 in n2) || Br2(n2, t2, r2); - } - function Sr2(n2, t2, r2) { - var e2 = n2[t2]; - bl.call(n2, t2) && Gf(e2, r2) && (r2 !== X || t2 in n2) || Br2(n2, t2, r2); - } - function Wr2(n2, t2) { - for (var r2 = n2.length; r2--; ) - if (Gf(n2[r2][0], t2)) - return r2; - return -1; - } - function Lr2(n2, t2, r2, e2) { - return ys(n2, function(n3, u2, i2) { - t2(e2, n3, r2(n3), i2); - }), e2; - } - function Cr2(n2, t2) { - return n2 && $u(t2, Pc(t2), n2); - } - function Ur2(n2, t2) { - return n2 && $u(t2, qc(t2), n2); - } - function Br2(n2, t2, r2) { - "__proto__" == t2 && Tl ? Tl(n2, t2, { configurable: true, enumerable: true, value: r2, writable: true }) : n2[t2] = r2; - } - function Tr2(n2, t2) { - for (var r2 = -1, e2 = t2.length, u2 = il(e2), i2 = null == n2; ++r2 < e2; ) - u2[r2] = i2 ? X : Mc(n2, t2[r2]); - return u2; - } - function Mr2(n2, t2, r2) { - return n2 === n2 && (r2 !== X && (n2 = n2 <= r2 ? n2 : r2), t2 !== X && (n2 = n2 >= t2 ? n2 : t2)), n2; - } - function Fr2(n2, t2, e2, u2, i2, o2) { - var f2, c2 = t2 & an, a2 = t2 & ln, l2 = t2 & sn; - if (e2 && (f2 = i2 ? e2(n2, u2, i2, o2) : e2(n2)), f2 !== X) - return f2; - if (!fc(n2)) - return n2; - var s2 = bh(n2); - if (s2) { - if (f2 = zi(n2), !c2) - return Tu(n2, f2); - } else { - var h2 = zs(n2), p3 = h2 == Kn || h2 == Vn; - if (mh(n2)) - return Iu(n2, c2); - if (h2 == Yn || h2 == Dn || p3 && !i2) { - if (f2 = a2 || p3 ? {} : Ei(n2), !c2) - return a2 ? Mu(n2, Ur2(f2, n2)) : Du(n2, Cr2(f2, n2)); - } else { - if (!Vr[h2]) - return i2 ? n2 : {}; - f2 = Si(n2, h2, c2); - } - } - o2 || (o2 = new wr2()); - var _2 = o2.get(n2); - if (_2) - return _2; - o2.set(n2, f2), kh(n2) ? n2.forEach(function(r2) { - f2.add(Fr2(r2, t2, e2, r2, n2, o2)); - }) : jh(n2) && n2.forEach(function(r2, u3) { - f2.set(u3, Fr2(r2, t2, e2, u3, n2, o2)); - }); - var v2 = l2 ? a2 ? di : yi : a2 ? qc : Pc, g2 = s2 ? X : v2(n2); - return r(g2 || n2, function(r2, u3) { - g2 && (u3 = r2, r2 = n2[u3]), Sr2(f2, u3, Fr2(r2, t2, e2, u3, n2, o2)); - }), f2; - } - function Nr2(n2) { - var t2 = Pc(n2); - return function(r2) { - return Pr2(r2, n2, t2); - }; - } - function Pr2(n2, t2, r2) { - var e2 = r2.length; - if (null == n2) - return !e2; - for (n2 = ll(n2); e2--; ) { - var u2 = r2[e2], i2 = t2[u2], o2 = n2[u2]; - if (o2 === X && !(u2 in n2) || !i2(o2)) - return false; - } - return true; - } - function Gr2(n2, t2, r2) { - if ("function" != typeof n2) - throw new pl(en); - return Ws(function() { - n2.apply(X, r2); - }, t2); - } - function Hr2(n2, t2, r2, e2) { - var u2 = -1, i2 = o, a2 = true, l2 = n2.length, s2 = [], h2 = t2.length; - if (!l2) - return s2; - r2 && (t2 = c(t2, z(r2))), e2 ? (i2 = f, a2 = false) : t2.length >= tn && (i2 = S, a2 = false, t2 = new yr2(t2)); - n: - for (; ++u2 < l2; ) { - var p3 = n2[u2], _2 = null == r2 ? p3 : r2(p3); - if (p3 = e2 || 0 !== p3 ? p3 : 0, a2 && _2 === _2) { - for (var v2 = h2; v2--; ) - if (t2[v2] === _2) - continue n; - s2.push(p3); - } else - i2(t2, _2, e2) || s2.push(p3); - } - return s2; - } - function Jr2(n2, t2) { - var r2 = true; - return ys(n2, function(n3, e2, u2) { - return r2 = !!t2(n3, e2, u2); - }), r2; - } - function Yr2(n2, t2, r2) { - for (var e2 = -1, u2 = n2.length; ++e2 < u2; ) { - var i2 = n2[e2], o2 = t2(i2); - if (null != o2 && (f2 === X ? o2 === o2 && !bc(o2) : r2(o2, f2))) - var f2 = o2, c2 = i2; - } - return c2; - } - function ne2(n2, t2, r2, e2) { - var u2 = n2.length; - for (r2 = kc(r2), r2 < 0 && (r2 = -r2 > u2 ? 0 : u2 + r2), e2 = e2 === X || e2 > u2 ? u2 : kc(e2), e2 < 0 && (e2 += u2), e2 = r2 > e2 ? 0 : Oc(e2); r2 < e2; ) - n2[r2++] = t2; - return n2; - } - function te2(n2, t2) { - var r2 = []; - return ys(n2, function(n3, e2, u2) { - t2(n3, e2, u2) && r2.push(n3); - }), r2; - } - function ee2(n2, t2, r2, e2, u2) { - var i2 = -1, o2 = n2.length; - for (r2 || (r2 = Li), u2 || (u2 = []); ++i2 < o2; ) { - var f2 = n2[i2]; - t2 > 0 && r2(f2) ? t2 > 1 ? ee2(f2, t2 - 1, r2, e2, u2) : a(u2, f2) : e2 || (u2[u2.length] = f2); - } - return u2; - } - function ue2(n2, t2) { - return n2 && bs(n2, t2, Pc); - } - function oe2(n2, t2) { - return n2 && ws(n2, t2, Pc); - } - function fe2(n2, t2) { - return i(t2, function(t3) { - return uc(n2[t3]); - }); - } - function _e2(n2, t2) { - t2 = ku(t2, n2); - for (var r2 = 0, e2 = t2.length; null != n2 && r2 < e2; ) - n2 = n2[no(t2[r2++])]; - return r2 && r2 == e2 ? n2 : X; - } - function de2(n2, t2, r2) { - var e2 = t2(n2); - return bh(n2) ? e2 : a(e2, r2(n2)); - } - function we(n2) { - return null == n2 ? n2 === X ? ut : Jn : Bl && Bl in ll(n2) ? ki(n2) : Ki(n2); - } - function me(n2, t2) { - return n2 > t2; - } - function xe(n2, t2) { - return null != n2 && bl.call(n2, t2); - } - function je(n2, t2) { - return null != n2 && t2 in ll(n2); - } - function Ae(n2, t2, r2) { - return n2 >= Hl(t2, r2) && n2 < Gl(t2, r2); - } - function ke(n2, t2, r2) { - for (var e2 = r2 ? f : o, u2 = n2[0].length, i2 = n2.length, a2 = i2, l2 = il(i2), s2 = 1 / 0, h2 = []; a2--; ) { - var p3 = n2[a2]; - a2 && t2 && (p3 = c(p3, z(t2))), s2 = Hl(p3.length, s2), l2[a2] = !r2 && (t2 || u2 >= 120 && p3.length >= 120) ? new yr2(a2 && p3) : X; - } - p3 = n2[0]; - var _2 = -1, v2 = l2[0]; - n: - for (; ++_2 < u2 && h2.length < s2; ) { - var g2 = p3[_2], y2 = t2 ? t2(g2) : g2; - if (g2 = r2 || 0 !== g2 ? g2 : 0, !(v2 ? S(v2, y2) : e2(h2, y2, r2))) { - for (a2 = i2; --a2; ) { - var d2 = l2[a2]; - if (!(d2 ? S(d2, y2) : e2(n2[a2], y2, r2))) - continue n; - } - v2 && v2.push(y2), h2.push(g2); - } - } - return h2; - } - function Oe(n2, t2, r2, e2) { - return ue2(n2, function(n3, u2, i2) { - t2(e2, r2(n3), u2, i2); - }), e2; - } - function Ie(t2, r2, e2) { - r2 = ku(r2, t2), t2 = Gi(t2, r2); - var u2 = null == t2 ? t2 : t2[no(jo(r2))]; - return null == u2 ? X : n(u2, t2, e2); - } - function Re(n2) { - return cc(n2) && we(n2) == Dn; - } - function ze(n2) { - return cc(n2) && we(n2) == ft; - } - function Ee(n2) { - return cc(n2) && we(n2) == Pn; - } - function Se(n2, t2, r2, e2, u2) { - return n2 === t2 || (null == n2 || null == t2 || !cc(n2) && !cc(t2) ? n2 !== n2 && t2 !== t2 : We(n2, t2, r2, e2, Se, u2)); - } - function We(n2, t2, r2, e2, u2, i2) { - var o2 = bh(n2), f2 = bh(t2), c2 = o2 ? Mn : zs(n2), a2 = f2 ? Mn : zs(t2); - c2 = c2 == Dn ? Yn : c2, a2 = a2 == Dn ? Yn : a2; - var l2 = c2 == Yn, s2 = a2 == Yn, h2 = c2 == a2; - if (h2 && mh(n2)) { - if (!mh(t2)) - return false; - o2 = true, l2 = false; - } - if (h2 && !l2) - return i2 || (i2 = new wr2()), o2 || Oh(n2) ? pi(n2, t2, r2, e2, u2, i2) : _i(n2, t2, c2, r2, e2, u2, i2); - if (!(r2 & hn)) { - var p3 = l2 && bl.call(n2, "__wrapped__"), _2 = s2 && bl.call(t2, "__wrapped__"); - if (p3 || _2) { - var v2 = p3 ? n2.value() : n2, g2 = _2 ? t2.value() : t2; - return i2 || (i2 = new wr2()), u2(v2, g2, r2, e2, i2); - } - } - return !!h2 && (i2 || (i2 = new wr2()), vi(n2, t2, r2, e2, u2, i2)); - } - function Le(n2) { - return cc(n2) && zs(n2) == Gn; - } - function Ce(n2, t2, r2, e2) { - var u2 = r2.length, i2 = u2, o2 = !e2; - if (null == n2) - return !i2; - for (n2 = ll(n2); u2--; ) { - var f2 = r2[u2]; - if (o2 && f2[2] ? f2[1] !== n2[f2[0]] : !(f2[0] in n2)) - return false; - } - for (; ++u2 < i2; ) { - f2 = r2[u2]; - var c2 = f2[0], a2 = n2[c2], l2 = f2[1]; - if (o2 && f2[2]) { - if (a2 === X && !(c2 in n2)) - return false; - } else { - var s2 = new wr2(); - if (e2) - var h2 = e2(a2, l2, c2, n2, t2, s2); - if (!(h2 === X ? Se(l2, a2, hn | pn, e2, s2) : h2)) - return false; - } - } - return true; - } - function Ue(n2) { - return !(!fc(n2) || Di(n2)) && (uc(n2) ? kl : Zt).test(to(n2)); - } - function Be(n2) { - return cc(n2) && we(n2) == nt; - } - function Te(n2) { - return cc(n2) && zs(n2) == tt; - } - function $e(n2) { - return cc(n2) && oc(n2.length) && !!Kr[we(n2)]; - } - function De(n2) { - return "function" == typeof n2 ? n2 : null == n2 ? La : "object" == typeof n2 ? bh(n2) ? Ze(n2[0], n2[1]) : qe(n2) : Fa(n2); - } - function Me(n2) { - if (!Mi(n2)) - return Vl(n2); - var t2 = []; - for (var r2 in ll(n2)) - bl.call(n2, r2) && "constructor" != r2 && t2.push(r2); - return t2; - } - function Fe(n2) { - if (!fc(n2)) - return Zi(n2); - var t2 = Mi(n2), r2 = []; - for (var e2 in n2) - ("constructor" != e2 || !t2 && bl.call(n2, e2)) && r2.push(e2); - return r2; - } - function Ne(n2, t2) { - return n2 < t2; - } - function Pe(n2, t2) { - var r2 = -1, e2 = Hf(n2) ? il(n2.length) : []; - return ys(n2, function(n3, u2, i2) { - e2[++r2] = t2(n3, u2, i2); - }), e2; - } - function qe(n2) { - var t2 = ji(n2); - return 1 == t2.length && t2[0][2] ? Ni(t2[0][0], t2[0][1]) : function(r2) { - return r2 === n2 || Ce(r2, n2, t2); - }; - } - function Ze(n2, t2) { - return Bi(n2) && Fi(t2) ? Ni(no(n2), t2) : function(r2) { - var e2 = Mc(r2, n2); - return e2 === X && e2 === t2 ? Nc(r2, n2) : Se(t2, e2, hn | pn); - }; - } - function Ke(n2, t2, r2, e2, u2) { - n2 !== t2 && bs(t2, function(i2, o2) { - if (u2 || (u2 = new wr2()), fc(i2)) - Ve(n2, t2, o2, r2, Ke, e2, u2); - else { - var f2 = e2 ? e2(Ji(n2, o2), i2, o2 + "", n2, t2, u2) : X; - f2 === X && (f2 = i2), Er2(n2, o2, f2); - } - }, qc); - } - function Ve(n2, t2, r2, e2, u2, i2, o2) { - var f2 = Ji(n2, r2), c2 = Ji(t2, r2), a2 = o2.get(c2); - if (a2) - return Er2(n2, r2, a2), X; - var l2 = i2 ? i2(f2, c2, r2 + "", n2, t2, o2) : X, s2 = l2 === X; - if (s2) { - var h2 = bh(c2), p3 = !h2 && mh(c2), _2 = !h2 && !p3 && Oh(c2); - l2 = c2, h2 || p3 || _2 ? bh(f2) ? l2 = f2 : Jf(f2) ? l2 = Tu(f2) : p3 ? (s2 = false, l2 = Iu(c2, true)) : _2 ? (s2 = false, l2 = Wu(c2, true)) : l2 = [] : gc(c2) || dh(c2) ? (l2 = f2, dh(f2) ? l2 = Rc(f2) : fc(f2) && !uc(f2) || (l2 = Ei(c2))) : s2 = false; - } - s2 && (o2.set(c2, l2), u2(l2, c2, e2, i2, o2), o2.delete(c2)), Er2(n2, r2, l2); - } - function Ge(n2, t2) { - var r2 = n2.length; - if (r2) - return t2 += t2 < 0 ? r2 : 0, Ci(t2, r2) ? n2[t2] : X; - } - function He(n2, t2, r2) { - t2 = t2.length ? c(t2, function(n3) { - return bh(n3) ? function(t3) { - return _e2(t3, 1 === n3.length ? n3[0] : n3); - } : n3; - }) : [La]; - var e2 = -1; - return t2 = c(t2, z(mi())), A(Pe(n2, function(n3, r3, u2) { - return { criteria: c(t2, function(t3) { - return t3(n3); - }), index: ++e2, value: n3 }; - }), function(n3, t3) { - return Cu(n3, t3, r2); - }); - } - function Je(n2, t2) { - return Ye(n2, t2, function(t3, r2) { - return Nc(n2, r2); - }); - } - function Ye(n2, t2, r2) { - for (var e2 = -1, u2 = t2.length, i2 = {}; ++e2 < u2; ) { - var o2 = t2[e2], f2 = _e2(n2, o2); - r2(f2, o2) && fu(i2, ku(o2, n2), f2); - } - return i2; - } - function Qe(n2) { - return function(t2) { - return _e2(t2, n2); - }; - } - function Xe(n2, t2, r2, e2) { - var u2 = e2 ? d : y, i2 = -1, o2 = t2.length, f2 = n2; - for (n2 === t2 && (t2 = Tu(t2)), r2 && (f2 = c(n2, z(r2))); ++i2 < o2; ) - for (var a2 = 0, l2 = t2[i2], s2 = r2 ? r2(l2) : l2; (a2 = u2(f2, s2, a2, e2)) > -1; ) - f2 !== n2 && Ll.call(f2, a2, 1), Ll.call(n2, a2, 1); - return n2; - } - function nu(n2, t2) { - for (var r2 = n2 ? t2.length : 0, e2 = r2 - 1; r2--; ) { - var u2 = t2[r2]; - if (r2 == e2 || u2 !== i2) { - var i2 = u2; - Ci(u2) ? Ll.call(n2, u2, 1) : yu(n2, u2); - } - } - return n2; - } - function tu(n2, t2) { - return n2 + Nl(Ql() * (t2 - n2 + 1)); - } - function ru(n2, t2, r2, e2) { - for (var u2 = -1, i2 = Gl(Fl((t2 - n2) / (r2 || 1)), 0), o2 = il(i2); i2--; ) - o2[e2 ? i2 : ++u2] = n2, n2 += r2; - return o2; - } - function eu(n2, t2) { - var r2 = ""; - if (!n2 || t2 < 1 || t2 > Wn) - return r2; - do - t2 % 2 && (r2 += n2), t2 = Nl(t2 / 2), t2 && (n2 += n2); - while (t2); - return r2; - } - function uu(n2, t2) { - return Ls(Vi(n2, t2, La), n2 + ""); - } - function iu(n2) { - return Ir2(ra(n2)); - } - function ou(n2, t2) { - var r2 = ra(n2); - return Xi(r2, Mr2(t2, 0, r2.length)); - } - function fu(n2, t2, r2, e2) { - if (!fc(n2)) - return n2; - t2 = ku(t2, n2); - for (var u2 = -1, i2 = t2.length, o2 = i2 - 1, f2 = n2; null != f2 && ++u2 < i2; ) { - var c2 = no(t2[u2]), a2 = r2; - if ("__proto__" === c2 || "constructor" === c2 || "prototype" === c2) - return n2; - if (u2 != o2) { - var l2 = f2[c2]; - a2 = e2 ? e2(l2, c2, f2) : X, a2 === X && (a2 = fc(l2) ? l2 : Ci(t2[u2 + 1]) ? [] : {}); - } - Sr2(f2, c2, a2), f2 = f2[c2]; - } - return n2; - } - function cu(n2) { - return Xi(ra(n2)); - } - function au(n2, t2, r2) { - var e2 = -1, u2 = n2.length; - t2 < 0 && (t2 = -t2 > u2 ? 0 : u2 + t2), r2 = r2 > u2 ? u2 : r2, r2 < 0 && (r2 += u2), u2 = t2 > r2 ? 0 : r2 - t2 >>> 0, t2 >>>= 0; - for (var i2 = il(u2); ++e2 < u2; ) - i2[e2] = n2[e2 + t2]; - return i2; - } - function lu(n2, t2) { - var r2; - return ys(n2, function(n3, e2, u2) { - return r2 = t2(n3, e2, u2), !r2; - }), !!r2; - } - function su(n2, t2, r2) { - var e2 = 0, u2 = null == n2 ? e2 : n2.length; - if ("number" == typeof t2 && t2 === t2 && u2 <= Tn) { - for (; e2 < u2; ) { - var i2 = e2 + u2 >>> 1, o2 = n2[i2]; - null !== o2 && !bc(o2) && (r2 ? o2 <= t2 : o2 < t2) ? e2 = i2 + 1 : u2 = i2; - } - return u2; - } - return hu(n2, t2, La, r2); - } - function hu(n2, t2, r2, e2) { - var u2 = 0, i2 = null == n2 ? 0 : n2.length; - if (0 === i2) - return 0; - t2 = r2(t2); - for (var o2 = t2 !== t2, f2 = null === t2, c2 = bc(t2), a2 = t2 === X; u2 < i2; ) { - var l2 = Nl((u2 + i2) / 2), s2 = r2(n2[l2]), h2 = s2 !== X, p3 = null === s2, _2 = s2 === s2, v2 = bc(s2); - if (o2) - var g2 = e2 || _2; - else - g2 = a2 ? _2 && (e2 || h2) : f2 ? _2 && h2 && (e2 || !p3) : c2 ? _2 && h2 && !p3 && (e2 || !v2) : !p3 && !v2 && (e2 ? s2 <= t2 : s2 < t2); - g2 ? u2 = l2 + 1 : i2 = l2; - } - return Hl(i2, Bn); - } - function pu(n2, t2) { - for (var r2 = -1, e2 = n2.length, u2 = 0, i2 = []; ++r2 < e2; ) { - var o2 = n2[r2], f2 = t2 ? t2(o2) : o2; - if (!r2 || !Gf(f2, c2)) { - var c2 = f2; - i2[u2++] = 0 === o2 ? 0 : o2; - } - } - return i2; - } - function _u(n2) { - return "number" == typeof n2 ? n2 : bc(n2) ? Cn : +n2; - } - function vu(n2) { - if ("string" == typeof n2) - return n2; - if (bh(n2)) - return c(n2, vu) + ""; - if (bc(n2)) - return vs ? vs.call(n2) : ""; - var t2 = n2 + ""; - return "0" == t2 && 1 / n2 == -Sn ? "-0" : t2; - } - function gu(n2, t2, r2) { - var e2 = -1, u2 = o, i2 = n2.length, c2 = true, a2 = [], l2 = a2; - if (r2) - c2 = false, u2 = f; - else if (i2 >= tn) { - var s2 = t2 ? null : ks(n2); - if (s2) - return P(s2); - c2 = false, u2 = S, l2 = new yr2(); - } else - l2 = t2 ? [] : a2; - n: - for (; ++e2 < i2; ) { - var h2 = n2[e2], p3 = t2 ? t2(h2) : h2; - if (h2 = r2 || 0 !== h2 ? h2 : 0, c2 && p3 === p3) { - for (var _2 = l2.length; _2--; ) - if (l2[_2] === p3) - continue n; - t2 && l2.push(p3), a2.push(h2); - } else - u2(l2, p3, r2) || (l2 !== a2 && l2.push(p3), a2.push(h2)); - } - return a2; - } - function yu(n2, t2) { - return t2 = ku(t2, n2), n2 = Gi(n2, t2), null == n2 || delete n2[no(jo(t2))]; - } - function du(n2, t2, r2, e2) { - return fu(n2, t2, r2(_e2(n2, t2)), e2); - } - function bu(n2, t2, r2, e2) { - for (var u2 = n2.length, i2 = e2 ? u2 : -1; (e2 ? i2-- : ++i2 < u2) && t2(n2[i2], i2, n2); ) - ; - return r2 ? au(n2, e2 ? 0 : i2, e2 ? i2 + 1 : u2) : au(n2, e2 ? i2 + 1 : 0, e2 ? u2 : i2); - } - function wu(n2, t2) { - var r2 = n2; - return r2 instanceof Ct2 && (r2 = r2.value()), l(t2, function(n3, t3) { - return t3.func.apply(t3.thisArg, a([n3], t3.args)); - }, r2); - } - function mu(n2, t2, r2) { - var e2 = n2.length; - if (e2 < 2) - return e2 ? gu(n2[0]) : []; - for (var u2 = -1, i2 = il(e2); ++u2 < e2; ) - for (var o2 = n2[u2], f2 = -1; ++f2 < e2; ) - f2 != u2 && (i2[u2] = Hr2(i2[u2] || o2, n2[f2], t2, r2)); - return gu(ee2(i2, 1), t2, r2); - } - function xu(n2, t2, r2) { - for (var e2 = -1, u2 = n2.length, i2 = t2.length, o2 = {}; ++e2 < u2; ) { - r2(o2, n2[e2], e2 < i2 ? t2[e2] : X); - } - return o2; - } - function ju(n2) { - return Jf(n2) ? n2 : []; - } - function Au(n2) { - return "function" == typeof n2 ? n2 : La; - } - function ku(n2, t2) { - return bh(n2) ? n2 : Bi(n2, t2) ? [n2] : Cs(Ec(n2)); - } - function Ou(n2, t2, r2) { - var e2 = n2.length; - return r2 = r2 === X ? e2 : r2, !t2 && r2 >= e2 ? n2 : au(n2, t2, r2); - } - function Iu(n2, t2) { - if (t2) - return n2.slice(); - var r2 = n2.length, e2 = zl ? zl(r2) : new n2.constructor(r2); - return n2.copy(e2), e2; - } - function Ru(n2) { - var t2 = new n2.constructor(n2.byteLength); - return new Rl(t2).set(new Rl(n2)), t2; - } - function zu(n2, t2) { - return new n2.constructor(t2 ? Ru(n2.buffer) : n2.buffer, n2.byteOffset, n2.byteLength); - } - function Eu(n2) { - var t2 = new n2.constructor(n2.source, Nt.exec(n2)); - return t2.lastIndex = n2.lastIndex, t2; - } - function Su(n2) { - return _s ? ll(_s.call(n2)) : {}; - } - function Wu(n2, t2) { - return new n2.constructor(t2 ? Ru(n2.buffer) : n2.buffer, n2.byteOffset, n2.length); - } - function Lu(n2, t2) { - if (n2 !== t2) { - var r2 = n2 !== X, e2 = null === n2, u2 = n2 === n2, i2 = bc(n2), o2 = t2 !== X, f2 = null === t2, c2 = t2 === t2, a2 = bc(t2); - if (!f2 && !a2 && !i2 && n2 > t2 || i2 && o2 && c2 && !f2 && !a2 || e2 && o2 && c2 || !r2 && c2 || !u2) - return 1; - if (!e2 && !i2 && !a2 && n2 < t2 || a2 && r2 && u2 && !e2 && !i2 || f2 && r2 && u2 || !o2 && u2 || !c2) - return -1; - } - return 0; - } - function Cu(n2, t2, r2) { - for (var e2 = -1, u2 = n2.criteria, i2 = t2.criteria, o2 = u2.length, f2 = r2.length; ++e2 < o2; ) { - var c2 = Lu(u2[e2], i2[e2]); - if (c2) { - if (e2 >= f2) - return c2; - return c2 * ("desc" == r2[e2] ? -1 : 1); - } - } - return n2.index - t2.index; - } - function Uu(n2, t2, r2, e2) { - for (var u2 = -1, i2 = n2.length, o2 = r2.length, f2 = -1, c2 = t2.length, a2 = Gl(i2 - o2, 0), l2 = il(c2 + a2), s2 = !e2; ++f2 < c2; ) - l2[f2] = t2[f2]; - for (; ++u2 < o2; ) - (s2 || u2 < i2) && (l2[r2[u2]] = n2[u2]); - for (; a2--; ) - l2[f2++] = n2[u2++]; - return l2; - } - function Bu(n2, t2, r2, e2) { - for (var u2 = -1, i2 = n2.length, o2 = -1, f2 = r2.length, c2 = -1, a2 = t2.length, l2 = Gl(i2 - f2, 0), s2 = il(l2 + a2), h2 = !e2; ++u2 < l2; ) - s2[u2] = n2[u2]; - for (var p3 = u2; ++c2 < a2; ) - s2[p3 + c2] = t2[c2]; - for (; ++o2 < f2; ) - (h2 || u2 < i2) && (s2[p3 + r2[o2]] = n2[u2++]); - return s2; - } - function Tu(n2, t2) { - var r2 = -1, e2 = n2.length; - for (t2 || (t2 = il(e2)); ++r2 < e2; ) - t2[r2] = n2[r2]; - return t2; - } - function $u(n2, t2, r2, e2) { - var u2 = !r2; - r2 || (r2 = {}); - for (var i2 = -1, o2 = t2.length; ++i2 < o2; ) { - var f2 = t2[i2], c2 = e2 ? e2(r2[f2], n2[f2], f2, r2, n2) : X; - c2 === X && (c2 = n2[f2]), u2 ? Br2(r2, f2, c2) : Sr2(r2, f2, c2); - } - return r2; - } - function Du(n2, t2) { - return $u(n2, Is(n2), t2); - } - function Mu(n2, t2) { - return $u(n2, Rs(n2), t2); - } - function Fu(n2, r2) { - return function(e2, u2) { - var i2 = bh(e2) ? t : Lr2, o2 = r2 ? r2() : {}; - return i2(e2, n2, mi(u2, 2), o2); - }; - } - function Nu(n2) { - return uu(function(t2, r2) { - var e2 = -1, u2 = r2.length, i2 = u2 > 1 ? r2[u2 - 1] : X, o2 = u2 > 2 ? r2[2] : X; - for (i2 = n2.length > 3 && "function" == typeof i2 ? (u2--, i2) : X, o2 && Ui(r2[0], r2[1], o2) && (i2 = u2 < 3 ? X : i2, u2 = 1), t2 = ll(t2); ++e2 < u2; ) { - var f2 = r2[e2]; - f2 && n2(t2, f2, e2, i2); - } - return t2; - }); - } - function Pu(n2, t2) { - return function(r2, e2) { - if (null == r2) - return r2; - if (!Hf(r2)) - return n2(r2, e2); - for (var u2 = r2.length, i2 = t2 ? u2 : -1, o2 = ll(r2); (t2 ? i2-- : ++i2 < u2) && e2(o2[i2], i2, o2) !== false; ) - ; - return r2; - }; - } - function qu(n2) { - return function(t2, r2, e2) { - for (var u2 = -1, i2 = ll(t2), o2 = e2(t2), f2 = o2.length; f2--; ) { - var c2 = o2[n2 ? f2 : ++u2]; - if (r2(i2[c2], c2, i2) === false) - break; - } - return t2; - }; - } - function Zu(n2, t2, r2) { - function e2() { - return (this && this !== re && this instanceof e2 ? i2 : n2).apply(u2 ? r2 : this, arguments); - } - var u2 = t2 & _n, i2 = Gu(n2); - return e2; - } - function Ku(n2) { - return function(t2) { - t2 = Ec(t2); - var r2 = T(t2) ? G(t2) : X, e2 = r2 ? r2[0] : t2.charAt(0), u2 = r2 ? Ou(r2, 1).join("") : t2.slice(1); - return e2[n2]() + u2; - }; - } - function Vu(n2) { - return function(t2) { - return l(Ra(ca(t2).replace($r, "")), n2, ""); - }; - } - function Gu(n2) { - return function() { - var t2 = arguments; - switch (t2.length) { - case 0: - return new n2(); - case 1: - return new n2(t2[0]); - case 2: - return new n2(t2[0], t2[1]); - case 3: - return new n2(t2[0], t2[1], t2[2]); - case 4: - return new n2(t2[0], t2[1], t2[2], t2[3]); - case 5: - return new n2(t2[0], t2[1], t2[2], t2[3], t2[4]); - case 6: - return new n2(t2[0], t2[1], t2[2], t2[3], t2[4], t2[5]); - case 7: - return new n2(t2[0], t2[1], t2[2], t2[3], t2[4], t2[5], t2[6]); - } - var r2 = gs(n2.prototype), e2 = n2.apply(r2, t2); - return fc(e2) ? e2 : r2; - }; - } - function Hu(t2, r2, e2) { - function u2() { - for (var o2 = arguments.length, f2 = il(o2), c2 = o2, a2 = wi(u2); c2--; ) - f2[c2] = arguments[c2]; - var l2 = o2 < 3 && f2[0] !== a2 && f2[o2 - 1] !== a2 ? [] : N(f2, a2); - return o2 -= l2.length, o2 < e2 ? oi(t2, r2, Qu, u2.placeholder, X, f2, l2, X, X, e2 - o2) : n(this && this !== re && this instanceof u2 ? i2 : t2, this, f2); - } - var i2 = Gu(t2); - return u2; - } - function Ju(n2) { - return function(t2, r2, e2) { - var u2 = ll(t2); - if (!Hf(t2)) { - var i2 = mi(r2, 3); - t2 = Pc(t2), r2 = function(n3) { - return i2(u2[n3], n3, u2); - }; - } - var o2 = n2(t2, r2, e2); - return o2 > -1 ? u2[i2 ? t2[o2] : o2] : X; - }; - } - function Yu(n2) { - return gi(function(t2) { - var r2 = t2.length, e2 = r2, u2 = Y2.prototype.thru; - for (n2 && t2.reverse(); e2--; ) { - var i2 = t2[e2]; - if ("function" != typeof i2) - throw new pl(en); - if (u2 && !o2 && "wrapper" == bi(i2)) - var o2 = new Y2([], true); - } - for (e2 = o2 ? e2 : r2; ++e2 < r2; ) { - i2 = t2[e2]; - var f2 = bi(i2), c2 = "wrapper" == f2 ? Os(i2) : X; - o2 = c2 && $i(c2[0]) && c2[1] == (mn | yn | bn | xn) && !c2[4].length && 1 == c2[9] ? o2[bi(c2[0])].apply(o2, c2[3]) : 1 == i2.length && $i(i2) ? o2[f2]() : o2.thru(i2); - } - return function() { - var n3 = arguments, e3 = n3[0]; - if (o2 && 1 == n3.length && bh(e3)) - return o2.plant(e3).value(); - for (var u3 = 0, i3 = r2 ? t2[u3].apply(this, n3) : e3; ++u3 < r2; ) - i3 = t2[u3].call(this, i3); - return i3; - }; - }); - } - function Qu(n2, t2, r2, e2, u2, i2, o2, f2, c2, a2) { - function l2() { - for (var y2 = arguments.length, d2 = il(y2), b2 = y2; b2--; ) - d2[b2] = arguments[b2]; - if (_2) - var w2 = wi(l2), m2 = C(d2, w2); - if (e2 && (d2 = Uu(d2, e2, u2, _2)), i2 && (d2 = Bu(d2, i2, o2, _2)), y2 -= m2, _2 && y2 < a2) { - return oi(n2, t2, Qu, l2.placeholder, r2, d2, N(d2, w2), f2, c2, a2 - y2); - } - var x3 = h2 ? r2 : this, j2 = p3 ? x3[n2] : n2; - return y2 = d2.length, f2 ? d2 = Hi(d2, f2) : v2 && y2 > 1 && d2.reverse(), s2 && c2 < y2 && (d2.length = c2), this && this !== re && this instanceof l2 && (j2 = g2 || Gu(j2)), j2.apply(x3, d2); - } - var s2 = t2 & mn, h2 = t2 & _n, p3 = t2 & vn, _2 = t2 & (yn | dn), v2 = t2 & jn, g2 = p3 ? X : Gu(n2); - return l2; - } - function Xu(n2, t2) { - return function(r2, e2) { - return Oe(r2, n2, t2(e2), {}); - }; - } - function ni(n2, t2) { - return function(r2, e2) { - var u2; - if (r2 === X && e2 === X) - return t2; - if (r2 !== X && (u2 = r2), e2 !== X) { - if (u2 === X) - return e2; - "string" == typeof r2 || "string" == typeof e2 ? (r2 = vu(r2), e2 = vu(e2)) : (r2 = _u(r2), e2 = _u(e2)), u2 = n2(r2, e2); - } - return u2; - }; - } - function ti(t2) { - return gi(function(r2) { - return r2 = c(r2, z(mi())), uu(function(e2) { - var u2 = this; - return t2(r2, function(t3) { - return n(t3, u2, e2); - }); - }); - }); - } - function ri(n2, t2) { - t2 = t2 === X ? " " : vu(t2); - var r2 = t2.length; - if (r2 < 2) - return r2 ? eu(t2, n2) : t2; - var e2 = eu(t2, Fl(n2 / V(t2))); - return T(t2) ? Ou(G(e2), 0, n2).join("") : e2.slice(0, n2); - } - function ei(t2, r2, e2, u2) { - function i2() { - for (var r3 = -1, c2 = arguments.length, a2 = -1, l2 = u2.length, s2 = il(l2 + c2), h2 = this && this !== re && this instanceof i2 ? f2 : t2; ++a2 < l2; ) - s2[a2] = u2[a2]; - for (; c2--; ) - s2[a2++] = arguments[++r3]; - return n(h2, o2 ? e2 : this, s2); - } - var o2 = r2 & _n, f2 = Gu(t2); - return i2; - } - function ui(n2) { - return function(t2, r2, e2) { - return e2 && "number" != typeof e2 && Ui(t2, r2, e2) && (r2 = e2 = X), t2 = Ac(t2), r2 === X ? (r2 = t2, t2 = 0) : r2 = Ac(r2), e2 = e2 === X ? t2 < r2 ? 1 : -1 : Ac(e2), ru(t2, r2, e2, n2); - }; - } - function ii(n2) { - return function(t2, r2) { - return "string" == typeof t2 && "string" == typeof r2 || (t2 = Ic(t2), r2 = Ic(r2)), n2(t2, r2); - }; - } - function oi(n2, t2, r2, e2, u2, i2, o2, f2, c2, a2) { - var l2 = t2 & yn, s2 = l2 ? o2 : X, h2 = l2 ? X : o2, p3 = l2 ? i2 : X, _2 = l2 ? X : i2; - t2 |= l2 ? bn : wn, t2 &= ~(l2 ? wn : bn), t2 & gn || (t2 &= ~(_n | vn)); - var v2 = [n2, t2, u2, p3, s2, _2, h2, f2, c2, a2], g2 = r2.apply(X, v2); - return $i(n2) && Ss(g2, v2), g2.placeholder = e2, Yi(g2, n2, t2); - } - function fi(n2) { - var t2 = al[n2]; - return function(n3, r2) { - if (n3 = Ic(n3), r2 = null == r2 ? 0 : Hl(kc(r2), 292), r2 && Zl(n3)) { - var e2 = (Ec(n3) + "e").split("e"); - return e2 = (Ec(t2(e2[0] + "e" + (+e2[1] + r2))) + "e").split("e"), +(e2[0] + "e" + (+e2[1] - r2)); - } - return t2(n3); - }; - } - function ci(n2) { - return function(t2) { - var r2 = zs(t2); - return r2 == Gn ? M(t2) : r2 == tt ? q(t2) : I(t2, n2(t2)); - }; - } - function ai(n2, t2, r2, e2, u2, i2, o2, f2) { - var c2 = t2 & vn; - if (!c2 && "function" != typeof n2) - throw new pl(en); - var a2 = e2 ? e2.length : 0; - if (a2 || (t2 &= ~(bn | wn), e2 = u2 = X), o2 = o2 === X ? o2 : Gl(kc(o2), 0), f2 = f2 === X ? f2 : kc(f2), a2 -= u2 ? u2.length : 0, t2 & wn) { - var l2 = e2, s2 = u2; - e2 = u2 = X; - } - var h2 = c2 ? X : Os(n2), p3 = [n2, t2, r2, e2, u2, l2, s2, i2, o2, f2]; - if (h2 && qi(p3, h2), n2 = p3[0], t2 = p3[1], r2 = p3[2], e2 = p3[3], u2 = p3[4], f2 = p3[9] = p3[9] === X ? c2 ? 0 : n2.length : Gl(p3[9] - a2, 0), !f2 && t2 & (yn | dn) && (t2 &= ~(yn | dn)), t2 && t2 != _n) - _2 = t2 == yn || t2 == dn ? Hu(n2, t2, f2) : t2 != bn && t2 != (_n | bn) || u2.length ? Qu.apply(X, p3) : ei(n2, t2, r2, e2); - else - var _2 = Zu(n2, t2, r2); - return Yi((h2 ? ms : Ss)(_2, p3), n2, t2); - } - function li(n2, t2, r2, e2) { - return n2 === X || Gf(n2, gl[r2]) && !bl.call(e2, r2) ? t2 : n2; - } - function si(n2, t2, r2, e2, u2, i2) { - return fc(n2) && fc(t2) && (i2.set(t2, n2), Ke(n2, t2, X, si, i2), i2.delete(t2)), n2; - } - function hi(n2) { - return gc(n2) ? X : n2; - } - function pi(n2, t2, r2, e2, u2, i2) { - var o2 = r2 & hn, f2 = n2.length, c2 = t2.length; - if (f2 != c2 && !(o2 && c2 > f2)) - return false; - var a2 = i2.get(n2), l2 = i2.get(t2); - if (a2 && l2) - return a2 == t2 && l2 == n2; - var s2 = -1, p3 = true, _2 = r2 & pn ? new yr2() : X; - for (i2.set(n2, t2), i2.set(t2, n2); ++s2 < f2; ) { - var v2 = n2[s2], g2 = t2[s2]; - if (e2) - var y2 = o2 ? e2(g2, v2, s2, t2, n2, i2) : e2(v2, g2, s2, n2, t2, i2); - if (y2 !== X) { - if (y2) - continue; - p3 = false; - break; - } - if (_2) { - if (!h(t2, function(n3, t3) { - if (!S(_2, t3) && (v2 === n3 || u2(v2, n3, r2, e2, i2))) - return _2.push(t3); - })) { - p3 = false; - break; - } - } else if (v2 !== g2 && !u2(v2, g2, r2, e2, i2)) { - p3 = false; - break; - } - } - return i2.delete(n2), i2.delete(t2), p3; - } - function _i(n2, t2, r2, e2, u2, i2, o2) { - switch (r2) { - case ct: - if (n2.byteLength != t2.byteLength || n2.byteOffset != t2.byteOffset) - return false; - n2 = n2.buffer, t2 = t2.buffer; - case ft: - return !(n2.byteLength != t2.byteLength || !i2(new Rl(n2), new Rl(t2))); - case Nn: - case Pn: - case Hn: - return Gf(+n2, +t2); - case Zn: - return n2.name == t2.name && n2.message == t2.message; - case nt: - case rt: - return n2 == t2 + ""; - case Gn: - var f2 = M; - case tt: - var c2 = e2 & hn; - if (f2 || (f2 = P), n2.size != t2.size && !c2) - return false; - var a2 = o2.get(n2); - if (a2) - return a2 == t2; - e2 |= pn, o2.set(n2, t2); - var l2 = pi(f2(n2), f2(t2), e2, u2, i2, o2); - return o2.delete(n2), l2; - case et: - if (_s) - return _s.call(n2) == _s.call(t2); - } - return false; - } - function vi(n2, t2, r2, e2, u2, i2) { - var o2 = r2 & hn, f2 = yi(n2), c2 = f2.length; - if (c2 != yi(t2).length && !o2) - return false; - for (var a2 = c2; a2--; ) { - var l2 = f2[a2]; - if (!(o2 ? l2 in t2 : bl.call(t2, l2))) - return false; - } - var s2 = i2.get(n2), h2 = i2.get(t2); - if (s2 && h2) - return s2 == t2 && h2 == n2; - var p3 = true; - i2.set(n2, t2), i2.set(t2, n2); - for (var _2 = o2; ++a2 < c2; ) { - l2 = f2[a2]; - var v2 = n2[l2], g2 = t2[l2]; - if (e2) - var y2 = o2 ? e2(g2, v2, l2, t2, n2, i2) : e2(v2, g2, l2, n2, t2, i2); - if (!(y2 === X ? v2 === g2 || u2(v2, g2, r2, e2, i2) : y2)) { - p3 = false; - break; - } - _2 || (_2 = "constructor" == l2); - } - if (p3 && !_2) { - var d2 = n2.constructor, b2 = t2.constructor; - d2 != b2 && "constructor" in n2 && "constructor" in t2 && !("function" == typeof d2 && d2 instanceof d2 && "function" == typeof b2 && b2 instanceof b2) && (p3 = false); - } - return i2.delete(n2), i2.delete(t2), p3; - } - function gi(n2) { - return Ls(Vi(n2, X, _o), n2 + ""); - } - function yi(n2) { - return de2(n2, Pc, Is); - } - function di(n2) { - return de2(n2, qc, Rs); - } - function bi(n2) { - for (var t2 = n2.name + "", r2 = fs[t2], e2 = bl.call(fs, t2) ? r2.length : 0; e2--; ) { - var u2 = r2[e2], i2 = u2.func; - if (null == i2 || i2 == n2) - return u2.name; - } - return t2; - } - function wi(n2) { - return (bl.call(Z2, "placeholder") ? Z2 : n2).placeholder; - } - function mi() { - var n2 = Z2.iteratee || Ca; - return n2 = n2 === Ca ? De : n2, arguments.length ? n2(arguments[0], arguments[1]) : n2; - } - function xi(n2, t2) { - var r2 = n2.__data__; - return Ti(t2) ? r2["string" == typeof t2 ? "string" : "hash"] : r2.map; - } - function ji(n2) { - for (var t2 = Pc(n2), r2 = t2.length; r2--; ) { - var e2 = t2[r2], u2 = n2[e2]; - t2[r2] = [e2, u2, Fi(u2)]; - } - return t2; - } - function Ai(n2, t2) { - var r2 = B(n2, t2); - return Ue(r2) ? r2 : X; - } - function ki(n2) { - var t2 = bl.call(n2, Bl), r2 = n2[Bl]; - try { - n2[Bl] = X; - var e2 = true; - } catch (n3) { - } - var u2 = xl.call(n2); - return e2 && (t2 ? n2[Bl] = r2 : delete n2[Bl]), u2; - } - function Oi(n2, t2, r2) { - for (var e2 = -1, u2 = r2.length; ++e2 < u2; ) { - var i2 = r2[e2], o2 = i2.size; - switch (i2.type) { - case "drop": - n2 += o2; - break; - case "dropRight": - t2 -= o2; - break; - case "take": - t2 = Hl(t2, n2 + o2); - break; - case "takeRight": - n2 = Gl(n2, t2 - o2); - } - } - return { start: n2, end: t2 }; - } - function Ii(n2) { - var t2 = n2.match(Bt); - return t2 ? t2[1].split(Tt) : []; - } - function Ri(n2, t2, r2) { - t2 = ku(t2, n2); - for (var e2 = -1, u2 = t2.length, i2 = false; ++e2 < u2; ) { - var o2 = no(t2[e2]); - if (!(i2 = null != n2 && r2(n2, o2))) - break; - n2 = n2[o2]; - } - return i2 || ++e2 != u2 ? i2 : (u2 = null == n2 ? 0 : n2.length, !!u2 && oc(u2) && Ci(o2, u2) && (bh(n2) || dh(n2))); - } - function zi(n2) { - var t2 = n2.length, r2 = new n2.constructor(t2); - return t2 && "string" == typeof n2[0] && bl.call(n2, "index") && (r2.index = n2.index, r2.input = n2.input), r2; - } - function Ei(n2) { - return "function" != typeof n2.constructor || Mi(n2) ? {} : gs(El(n2)); - } - function Si(n2, t2, r2) { - var e2 = n2.constructor; - switch (t2) { - case ft: - return Ru(n2); - case Nn: - case Pn: - return new e2(+n2); - case ct: - return zu(n2, r2); - case at: - case lt: - case st: - case ht: - case pt: - case _t: - case vt: - case gt: - case yt: - return Wu(n2, r2); - case Gn: - return new e2(); - case Hn: - case rt: - return new e2(n2); - case nt: - return Eu(n2); - case tt: - return new e2(); - case et: - return Su(n2); - } - } - function Wi(n2, t2) { - var r2 = t2.length; - if (!r2) - return n2; - var e2 = r2 - 1; - return t2[e2] = (r2 > 1 ? "& " : "") + t2[e2], t2 = t2.join(r2 > 2 ? ", " : " "), n2.replace(Ut, "{\n/* [wrapped with " + t2 + "] */\n"); - } - function Li(n2) { - return bh(n2) || dh(n2) || !!(Cl && n2 && n2[Cl]); - } - function Ci(n2, t2) { - var r2 = typeof n2; - return t2 = null == t2 ? Wn : t2, !!t2 && ("number" == r2 || "symbol" != r2 && Vt.test(n2)) && n2 > -1 && n2 % 1 == 0 && n2 < t2; - } - function Ui(n2, t2, r2) { - if (!fc(r2)) - return false; - var e2 = typeof t2; - return !!("number" == e2 ? Hf(r2) && Ci(t2, r2.length) : "string" == e2 && t2 in r2) && Gf(r2[t2], n2); - } - function Bi(n2, t2) { - if (bh(n2)) - return false; - var r2 = typeof n2; - return !("number" != r2 && "symbol" != r2 && "boolean" != r2 && null != n2 && !bc(n2)) || (zt.test(n2) || !Rt.test(n2) || null != t2 && n2 in ll(t2)); - } - function Ti(n2) { - var t2 = typeof n2; - return "string" == t2 || "number" == t2 || "symbol" == t2 || "boolean" == t2 ? "__proto__" !== n2 : null === n2; - } - function $i(n2) { - var t2 = bi(n2), r2 = Z2[t2]; - if ("function" != typeof r2 || !(t2 in Ct2.prototype)) - return false; - if (n2 === r2) - return true; - var e2 = Os(r2); - return !!e2 && n2 === e2[0]; - } - function Di(n2) { - return !!ml && ml in n2; - } - function Mi(n2) { - var t2 = n2 && n2.constructor; - return n2 === ("function" == typeof t2 && t2.prototype || gl); - } - function Fi(n2) { - return n2 === n2 && !fc(n2); - } - function Ni(n2, t2) { - return function(r2) { - return null != r2 && (r2[n2] === t2 && (t2 !== X || n2 in ll(r2))); - }; - } - function Pi(n2) { - var t2 = Cf(n2, function(n3) { - return r2.size === fn && r2.clear(), n3; - }), r2 = t2.cache; - return t2; - } - function qi(n2, t2) { - var r2 = n2[1], e2 = t2[1], u2 = r2 | e2, i2 = u2 < (_n | vn | mn), o2 = e2 == mn && r2 == yn || e2 == mn && r2 == xn && n2[7].length <= t2[8] || e2 == (mn | xn) && t2[7].length <= t2[8] && r2 == yn; - if (!i2 && !o2) - return n2; - e2 & _n && (n2[2] = t2[2], u2 |= r2 & _n ? 0 : gn); - var f2 = t2[3]; - if (f2) { - var c2 = n2[3]; - n2[3] = c2 ? Uu(c2, f2, t2[4]) : f2, n2[4] = c2 ? N(n2[3], cn) : t2[4]; - } - return f2 = t2[5], f2 && (c2 = n2[5], n2[5] = c2 ? Bu(c2, f2, t2[6]) : f2, n2[6] = c2 ? N(n2[5], cn) : t2[6]), f2 = t2[7], f2 && (n2[7] = f2), e2 & mn && (n2[8] = null == n2[8] ? t2[8] : Hl(n2[8], t2[8])), null == n2[9] && (n2[9] = t2[9]), n2[0] = t2[0], n2[1] = u2, n2; - } - function Zi(n2) { - var t2 = []; - if (null != n2) - for (var r2 in ll(n2)) - t2.push(r2); - return t2; - } - function Ki(n2) { - return xl.call(n2); - } - function Vi(t2, r2, e2) { - return r2 = Gl(r2 === X ? t2.length - 1 : r2, 0), function() { - for (var u2 = arguments, i2 = -1, o2 = Gl(u2.length - r2, 0), f2 = il(o2); ++i2 < o2; ) - f2[i2] = u2[r2 + i2]; - i2 = -1; - for (var c2 = il(r2 + 1); ++i2 < r2; ) - c2[i2] = u2[i2]; - return c2[r2] = e2(f2), n(t2, this, c2); - }; - } - function Gi(n2, t2) { - return t2.length < 2 ? n2 : _e2(n2, au(t2, 0, -1)); - } - function Hi(n2, t2) { - for (var r2 = n2.length, e2 = Hl(t2.length, r2), u2 = Tu(n2); e2--; ) { - var i2 = t2[e2]; - n2[e2] = Ci(i2, r2) ? u2[i2] : X; - } - return n2; - } - function Ji(n2, t2) { - if (("constructor" !== t2 || "function" != typeof n2[t2]) && "__proto__" != t2) - return n2[t2]; - } - function Yi(n2, t2, r2) { - var e2 = t2 + ""; - return Ls(n2, Wi(e2, ro(Ii(e2), r2))); - } - function Qi(n2) { - var t2 = 0, r2 = 0; - return function() { - var e2 = Jl(), u2 = In - (e2 - r2); - if (r2 = e2, u2 > 0) { - if (++t2 >= On) - return arguments[0]; - } else - t2 = 0; - return n2.apply(X, arguments); - }; - } - function Xi(n2, t2) { - var r2 = -1, e2 = n2.length, u2 = e2 - 1; - for (t2 = t2 === X ? e2 : t2; ++r2 < t2; ) { - var i2 = tu(r2, u2), o2 = n2[i2]; - n2[i2] = n2[r2], n2[r2] = o2; - } - return n2.length = t2, n2; - } - function no(n2) { - if ("string" == typeof n2 || bc(n2)) - return n2; - var t2 = n2 + ""; - return "0" == t2 && 1 / n2 == -Sn ? "-0" : t2; - } - function to(n2) { - if (null != n2) { - try { - return dl.call(n2); - } catch (n3) { - } - try { - return n2 + ""; - } catch (n3) { - } - } - return ""; - } - function ro(n2, t2) { - return r($n, function(r2) { - var e2 = "_." + r2[0]; - t2 & r2[1] && !o(n2, e2) && n2.push(e2); - }), n2.sort(); - } - function eo(n2) { - if (n2 instanceof Ct2) - return n2.clone(); - var t2 = new Y2(n2.__wrapped__, n2.__chain__); - return t2.__actions__ = Tu(n2.__actions__), t2.__index__ = n2.__index__, t2.__values__ = n2.__values__, t2; - } - function uo(n2, t2, r2) { - t2 = (r2 ? Ui(n2, t2, r2) : t2 === X) ? 1 : Gl(kc(t2), 0); - var e2 = null == n2 ? 0 : n2.length; - if (!e2 || t2 < 1) - return []; - for (var u2 = 0, i2 = 0, o2 = il(Fl(e2 / t2)); u2 < e2; ) - o2[i2++] = au(n2, u2, u2 += t2); - return o2; - } - function io(n2) { - for (var t2 = -1, r2 = null == n2 ? 0 : n2.length, e2 = 0, u2 = []; ++t2 < r2; ) { - var i2 = n2[t2]; - i2 && (u2[e2++] = i2); - } - return u2; - } - function oo() { - var n2 = arguments.length; - if (!n2) - return []; - for (var t2 = il(n2 - 1), r2 = arguments[0], e2 = n2; e2--; ) - t2[e2 - 1] = arguments[e2]; - return a(bh(r2) ? Tu(r2) : [r2], ee2(t2, 1)); - } - function fo(n2, t2, r2) { - var e2 = null == n2 ? 0 : n2.length; - return e2 ? (t2 = r2 || t2 === X ? 1 : kc(t2), au(n2, t2 < 0 ? 0 : t2, e2)) : []; - } - function co(n2, t2, r2) { - var e2 = null == n2 ? 0 : n2.length; - return e2 ? (t2 = r2 || t2 === X ? 1 : kc(t2), t2 = e2 - t2, au(n2, 0, t2 < 0 ? 0 : t2)) : []; - } - function ao(n2, t2) { - return n2 && n2.length ? bu(n2, mi(t2, 3), true, true) : []; - } - function lo(n2, t2) { - return n2 && n2.length ? bu(n2, mi(t2, 3), true) : []; - } - function so(n2, t2, r2, e2) { - var u2 = null == n2 ? 0 : n2.length; - return u2 ? (r2 && "number" != typeof r2 && Ui(n2, t2, r2) && (r2 = 0, e2 = u2), ne2(n2, t2, r2, e2)) : []; - } - function ho(n2, t2, r2) { - var e2 = null == n2 ? 0 : n2.length; - if (!e2) - return -1; - var u2 = null == r2 ? 0 : kc(r2); - return u2 < 0 && (u2 = Gl(e2 + u2, 0)), g(n2, mi(t2, 3), u2); - } - function po(n2, t2, r2) { - var e2 = null == n2 ? 0 : n2.length; - if (!e2) - return -1; - var u2 = e2 - 1; - return r2 !== X && (u2 = kc(r2), u2 = r2 < 0 ? Gl(e2 + u2, 0) : Hl(u2, e2 - 1)), g(n2, mi(t2, 3), u2, true); - } - function _o(n2) { - return (null == n2 ? 0 : n2.length) ? ee2(n2, 1) : []; - } - function vo(n2) { - return (null == n2 ? 0 : n2.length) ? ee2(n2, Sn) : []; - } - function go(n2, t2) { - return (null == n2 ? 0 : n2.length) ? (t2 = t2 === X ? 1 : kc(t2), ee2(n2, t2)) : []; - } - function yo(n2) { - for (var t2 = -1, r2 = null == n2 ? 0 : n2.length, e2 = {}; ++t2 < r2; ) { - var u2 = n2[t2]; - e2[u2[0]] = u2[1]; - } - return e2; - } - function bo(n2) { - return n2 && n2.length ? n2[0] : X; - } - function wo(n2, t2, r2) { - var e2 = null == n2 ? 0 : n2.length; - if (!e2) - return -1; - var u2 = null == r2 ? 0 : kc(r2); - return u2 < 0 && (u2 = Gl(e2 + u2, 0)), y(n2, t2, u2); - } - function mo(n2) { - return (null == n2 ? 0 : n2.length) ? au(n2, 0, -1) : []; - } - function xo(n2, t2) { - return null == n2 ? "" : Kl.call(n2, t2); - } - function jo(n2) { - var t2 = null == n2 ? 0 : n2.length; - return t2 ? n2[t2 - 1] : X; - } - function Ao(n2, t2, r2) { - var e2 = null == n2 ? 0 : n2.length; - if (!e2) - return -1; - var u2 = e2; - return r2 !== X && (u2 = kc(r2), u2 = u2 < 0 ? Gl(e2 + u2, 0) : Hl(u2, e2 - 1)), t2 === t2 ? K(n2, t2, u2) : g(n2, b, u2, true); - } - function ko(n2, t2) { - return n2 && n2.length ? Ge(n2, kc(t2)) : X; - } - function Oo(n2, t2) { - return n2 && n2.length && t2 && t2.length ? Xe(n2, t2) : n2; - } - function Io(n2, t2, r2) { - return n2 && n2.length && t2 && t2.length ? Xe(n2, t2, mi(r2, 2)) : n2; - } - function Ro(n2, t2, r2) { - return n2 && n2.length && t2 && t2.length ? Xe(n2, t2, X, r2) : n2; - } - function zo(n2, t2) { - var r2 = []; - if (!n2 || !n2.length) - return r2; - var e2 = -1, u2 = [], i2 = n2.length; - for (t2 = mi(t2, 3); ++e2 < i2; ) { - var o2 = n2[e2]; - t2(o2, e2, n2) && (r2.push(o2), u2.push(e2)); - } - return nu(n2, u2), r2; - } - function Eo(n2) { - return null == n2 ? n2 : Xl.call(n2); - } - function So(n2, t2, r2) { - var e2 = null == n2 ? 0 : n2.length; - return e2 ? (r2 && "number" != typeof r2 && Ui(n2, t2, r2) ? (t2 = 0, r2 = e2) : (t2 = null == t2 ? 0 : kc(t2), r2 = r2 === X ? e2 : kc(r2)), au(n2, t2, r2)) : []; - } - function Wo(n2, t2) { - return su(n2, t2); - } - function Lo(n2, t2, r2) { - return hu(n2, t2, mi(r2, 2)); - } - function Co(n2, t2) { - var r2 = null == n2 ? 0 : n2.length; - if (r2) { - var e2 = su(n2, t2); - if (e2 < r2 && Gf(n2[e2], t2)) - return e2; - } - return -1; - } - function Uo(n2, t2) { - return su(n2, t2, true); - } - function Bo(n2, t2, r2) { - return hu(n2, t2, mi(r2, 2), true); - } - function To(n2, t2) { - if (null == n2 ? 0 : n2.length) { - var r2 = su(n2, t2, true) - 1; - if (Gf(n2[r2], t2)) - return r2; - } - return -1; - } - function $o(n2) { - return n2 && n2.length ? pu(n2) : []; - } - function Do(n2, t2) { - return n2 && n2.length ? pu(n2, mi(t2, 2)) : []; - } - function Mo(n2) { - var t2 = null == n2 ? 0 : n2.length; - return t2 ? au(n2, 1, t2) : []; - } - function Fo(n2, t2, r2) { - return n2 && n2.length ? (t2 = r2 || t2 === X ? 1 : kc(t2), au(n2, 0, t2 < 0 ? 0 : t2)) : []; - } - function No(n2, t2, r2) { - var e2 = null == n2 ? 0 : n2.length; - return e2 ? (t2 = r2 || t2 === X ? 1 : kc(t2), t2 = e2 - t2, au(n2, t2 < 0 ? 0 : t2, e2)) : []; - } - function Po(n2, t2) { - return n2 && n2.length ? bu(n2, mi(t2, 3), false, true) : []; - } - function qo(n2, t2) { - return n2 && n2.length ? bu(n2, mi(t2, 3)) : []; - } - function Zo(n2) { - return n2 && n2.length ? gu(n2) : []; - } - function Ko(n2, t2) { - return n2 && n2.length ? gu(n2, mi(t2, 2)) : []; - } - function Vo(n2, t2) { - return t2 = "function" == typeof t2 ? t2 : X, n2 && n2.length ? gu(n2, X, t2) : []; - } - function Go(n2) { - if (!n2 || !n2.length) - return []; - var t2 = 0; - return n2 = i(n2, function(n3) { - if (Jf(n3)) - return t2 = Gl(n3.length, t2), true; - }), O(t2, function(t3) { - return c(n2, m(t3)); - }); - } - function Ho(t2, r2) { - if (!t2 || !t2.length) - return []; - var e2 = Go(t2); - return null == r2 ? e2 : c(e2, function(t3) { - return n(r2, X, t3); - }); - } - function Jo(n2, t2) { - return xu(n2 || [], t2 || [], Sr2); - } - function Yo(n2, t2) { - return xu(n2 || [], t2 || [], fu); - } - function Qo(n2) { - var t2 = Z2(n2); - return t2.__chain__ = true, t2; - } - function Xo(n2, t2) { - return t2(n2), n2; - } - function nf(n2, t2) { - return t2(n2); - } - function tf() { - return Qo(this); - } - function rf() { - return new Y2(this.value(), this.__chain__); - } - function ef() { - this.__values__ === X && (this.__values__ = jc(this.value())); - var n2 = this.__index__ >= this.__values__.length; - return { done: n2, value: n2 ? X : this.__values__[this.__index__++] }; - } - function uf() { - return this; - } - function of(n2) { - for (var t2, r2 = this; r2 instanceof J2; ) { - var e2 = eo(r2); - e2.__index__ = 0, e2.__values__ = X, t2 ? u2.__wrapped__ = e2 : t2 = e2; - var u2 = e2; - r2 = r2.__wrapped__; - } - return u2.__wrapped__ = n2, t2; - } - function ff() { - var n2 = this.__wrapped__; - if (n2 instanceof Ct2) { - var t2 = n2; - return this.__actions__.length && (t2 = new Ct2(this)), t2 = t2.reverse(), t2.__actions__.push({ func: nf, args: [Eo], thisArg: X }), new Y2(t2, this.__chain__); - } - return this.thru(Eo); - } - function cf() { - return wu(this.__wrapped__, this.__actions__); - } - function af(n2, t2, r2) { - var e2 = bh(n2) ? u : Jr2; - return r2 && Ui(n2, t2, r2) && (t2 = X), e2(n2, mi(t2, 3)); - } - function lf(n2, t2) { - return (bh(n2) ? i : te2)(n2, mi(t2, 3)); - } - function sf(n2, t2) { - return ee2(yf(n2, t2), 1); - } - function hf(n2, t2) { - return ee2(yf(n2, t2), Sn); - } - function pf(n2, t2, r2) { - return r2 = r2 === X ? 1 : kc(r2), ee2(yf(n2, t2), r2); - } - function _f(n2, t2) { - return (bh(n2) ? r : ys)(n2, mi(t2, 3)); - } - function vf(n2, t2) { - return (bh(n2) ? e : ds)(n2, mi(t2, 3)); - } - function gf(n2, t2, r2, e2) { - n2 = Hf(n2) ? n2 : ra(n2), r2 = r2 && !e2 ? kc(r2) : 0; - var u2 = n2.length; - return r2 < 0 && (r2 = Gl(u2 + r2, 0)), dc(n2) ? r2 <= u2 && n2.indexOf(t2, r2) > -1 : !!u2 && y(n2, t2, r2) > -1; - } - function yf(n2, t2) { - return (bh(n2) ? c : Pe)(n2, mi(t2, 3)); - } - function df(n2, t2, r2, e2) { - return null == n2 ? [] : (bh(t2) || (t2 = null == t2 ? [] : [t2]), r2 = e2 ? X : r2, bh(r2) || (r2 = null == r2 ? [] : [r2]), He(n2, t2, r2)); - } - function bf(n2, t2, r2) { - var e2 = bh(n2) ? l : j, u2 = arguments.length < 3; - return e2(n2, mi(t2, 4), r2, u2, ys); - } - function wf(n2, t2, r2) { - var e2 = bh(n2) ? s : j, u2 = arguments.length < 3; - return e2(n2, mi(t2, 4), r2, u2, ds); - } - function mf(n2, t2) { - return (bh(n2) ? i : te2)(n2, Uf(mi(t2, 3))); - } - function xf(n2) { - return (bh(n2) ? Ir2 : iu)(n2); - } - function jf(n2, t2, r2) { - return t2 = (r2 ? Ui(n2, t2, r2) : t2 === X) ? 1 : kc(t2), (bh(n2) ? Rr2 : ou)(n2, t2); - } - function Af(n2) { - return (bh(n2) ? zr2 : cu)(n2); - } - function kf(n2) { - if (null == n2) - return 0; - if (Hf(n2)) - return dc(n2) ? V(n2) : n2.length; - var t2 = zs(n2); - return t2 == Gn || t2 == tt ? n2.size : Me(n2).length; - } - function Of(n2, t2, r2) { - var e2 = bh(n2) ? h : lu; - return r2 && Ui(n2, t2, r2) && (t2 = X), e2(n2, mi(t2, 3)); - } - function If(n2, t2) { - if ("function" != typeof t2) - throw new pl(en); - return n2 = kc(n2), function() { - if (--n2 < 1) - return t2.apply(this, arguments); - }; - } - function Rf(n2, t2, r2) { - return t2 = r2 ? X : t2, t2 = n2 && null == t2 ? n2.length : t2, ai(n2, mn, X, X, X, X, t2); - } - function zf(n2, t2) { - var r2; - if ("function" != typeof t2) - throw new pl(en); - return n2 = kc(n2), function() { - return --n2 > 0 && (r2 = t2.apply(this, arguments)), n2 <= 1 && (t2 = X), r2; - }; - } - function Ef(n2, t2, r2) { - t2 = r2 ? X : t2; - var e2 = ai(n2, yn, X, X, X, X, X, t2); - return e2.placeholder = Ef.placeholder, e2; - } - function Sf(n2, t2, r2) { - t2 = r2 ? X : t2; - var e2 = ai(n2, dn, X, X, X, X, X, t2); - return e2.placeholder = Sf.placeholder, e2; - } - function Wf(n2, t2, r2) { - function e2(t3) { - var r3 = h2, e3 = p3; - return h2 = p3 = X, d2 = t3, v2 = n2.apply(e3, r3); - } - function u2(n3) { - return d2 = n3, g2 = Ws(f2, t2), b2 ? e2(n3) : v2; - } - function i2(n3) { - var r3 = n3 - y2, e3 = n3 - d2, u3 = t2 - r3; - return w2 ? Hl(u3, _2 - e3) : u3; - } - function o2(n3) { - var r3 = n3 - y2, e3 = n3 - d2; - return y2 === X || r3 >= t2 || r3 < 0 || w2 && e3 >= _2; - } - function f2() { - var n3 = fh(); - return o2(n3) ? c2(n3) : (g2 = Ws(f2, i2(n3)), X); - } - function c2(n3) { - return g2 = X, m2 && h2 ? e2(n3) : (h2 = p3 = X, v2); - } - function a2() { - g2 !== X && As(g2), d2 = 0, h2 = y2 = p3 = g2 = X; - } - function l2() { - return g2 === X ? v2 : c2(fh()); - } - function s2() { - var n3 = fh(), r3 = o2(n3); - if (h2 = arguments, p3 = this, y2 = n3, r3) { - if (g2 === X) - return u2(y2); - if (w2) - return As(g2), g2 = Ws(f2, t2), e2(y2); - } - return g2 === X && (g2 = Ws(f2, t2)), v2; - } - var h2, p3, _2, v2, g2, y2, d2 = 0, b2 = false, w2 = false, m2 = true; - if ("function" != typeof n2) - throw new pl(en); - return t2 = Ic(t2) || 0, fc(r2) && (b2 = !!r2.leading, w2 = "maxWait" in r2, _2 = w2 ? Gl(Ic(r2.maxWait) || 0, t2) : _2, m2 = "trailing" in r2 ? !!r2.trailing : m2), s2.cancel = a2, s2.flush = l2, s2; - } - function Lf(n2) { - return ai(n2, jn); - } - function Cf(n2, t2) { - if ("function" != typeof n2 || null != t2 && "function" != typeof t2) - throw new pl(en); - var r2 = function() { - var e2 = arguments, u2 = t2 ? t2.apply(this, e2) : e2[0], i2 = r2.cache; - if (i2.has(u2)) - return i2.get(u2); - var o2 = n2.apply(this, e2); - return r2.cache = i2.set(u2, o2) || i2, o2; - }; - return r2.cache = new (Cf.Cache || sr2)(), r2; - } - function Uf(n2) { - if ("function" != typeof n2) - throw new pl(en); - return function() { - var t2 = arguments; - switch (t2.length) { - case 0: - return !n2.call(this); - case 1: - return !n2.call(this, t2[0]); - case 2: - return !n2.call(this, t2[0], t2[1]); - case 3: - return !n2.call(this, t2[0], t2[1], t2[2]); - } - return !n2.apply(this, t2); - }; - } - function Bf(n2) { - return zf(2, n2); - } - function Tf(n2, t2) { - if ("function" != typeof n2) - throw new pl(en); - return t2 = t2 === X ? t2 : kc(t2), uu(n2, t2); - } - function $f(t2, r2) { - if ("function" != typeof t2) - throw new pl(en); - return r2 = null == r2 ? 0 : Gl(kc(r2), 0), uu(function(e2) { - var u2 = e2[r2], i2 = Ou(e2, 0, r2); - return u2 && a(i2, u2), n(t2, this, i2); - }); - } - function Df(n2, t2, r2) { - var e2 = true, u2 = true; - if ("function" != typeof n2) - throw new pl(en); - return fc(r2) && (e2 = "leading" in r2 ? !!r2.leading : e2, u2 = "trailing" in r2 ? !!r2.trailing : u2), Wf(n2, t2, { leading: e2, maxWait: t2, trailing: u2 }); - } - function Mf(n2) { - return Rf(n2, 1); - } - function Ff(n2, t2) { - return ph(Au(t2), n2); - } - function Nf() { - if (!arguments.length) - return []; - var n2 = arguments[0]; - return bh(n2) ? n2 : [n2]; - } - function Pf(n2) { - return Fr2(n2, sn); - } - function qf(n2, t2) { - return t2 = "function" == typeof t2 ? t2 : X, Fr2(n2, sn, t2); - } - function Zf(n2) { - return Fr2(n2, an | sn); - } - function Kf(n2, t2) { - return t2 = "function" == typeof t2 ? t2 : X, Fr2(n2, an | sn, t2); - } - function Vf(n2, t2) { - return null == t2 || Pr2(n2, t2, Pc(t2)); - } - function Gf(n2, t2) { - return n2 === t2 || n2 !== n2 && t2 !== t2; - } - function Hf(n2) { - return null != n2 && oc(n2.length) && !uc(n2); - } - function Jf(n2) { - return cc(n2) && Hf(n2); - } - function Yf(n2) { - return n2 === true || n2 === false || cc(n2) && we(n2) == Nn; - } - function Qf(n2) { - return cc(n2) && 1 === n2.nodeType && !gc(n2); - } - function Xf(n2) { - if (null == n2) - return true; - if (Hf(n2) && (bh(n2) || "string" == typeof n2 || "function" == typeof n2.splice || mh(n2) || Oh(n2) || dh(n2))) - return !n2.length; - var t2 = zs(n2); - if (t2 == Gn || t2 == tt) - return !n2.size; - if (Mi(n2)) - return !Me(n2).length; - for (var r2 in n2) - if (bl.call(n2, r2)) - return false; - return true; - } - function nc(n2, t2) { - return Se(n2, t2); - } - function tc(n2, t2, r2) { - r2 = "function" == typeof r2 ? r2 : X; - var e2 = r2 ? r2(n2, t2) : X; - return e2 === X ? Se(n2, t2, X, r2) : !!e2; - } - function rc(n2) { - if (!cc(n2)) - return false; - var t2 = we(n2); - return t2 == Zn || t2 == qn || "string" == typeof n2.message && "string" == typeof n2.name && !gc(n2); - } - function ec(n2) { - return "number" == typeof n2 && Zl(n2); - } - function uc(n2) { - if (!fc(n2)) - return false; - var t2 = we(n2); - return t2 == Kn || t2 == Vn || t2 == Fn || t2 == Xn; - } - function ic(n2) { - return "number" == typeof n2 && n2 == kc(n2); - } - function oc(n2) { - return "number" == typeof n2 && n2 > -1 && n2 % 1 == 0 && n2 <= Wn; - } - function fc(n2) { - var t2 = typeof n2; - return null != n2 && ("object" == t2 || "function" == t2); - } - function cc(n2) { - return null != n2 && "object" == typeof n2; - } - function ac(n2, t2) { - return n2 === t2 || Ce(n2, t2, ji(t2)); - } - function lc(n2, t2, r2) { - return r2 = "function" == typeof r2 ? r2 : X, Ce(n2, t2, ji(t2), r2); - } - function sc(n2) { - return vc(n2) && n2 != +n2; - } - function hc(n2) { - if (Es(n2)) - throw new fl(rn); - return Ue(n2); - } - function pc(n2) { - return null === n2; - } - function _c(n2) { - return null == n2; - } - function vc(n2) { - return "number" == typeof n2 || cc(n2) && we(n2) == Hn; - } - function gc(n2) { - if (!cc(n2) || we(n2) != Yn) - return false; - var t2 = El(n2); - if (null === t2) - return true; - var r2 = bl.call(t2, "constructor") && t2.constructor; - return "function" == typeof r2 && r2 instanceof r2 && dl.call(r2) == jl; - } - function yc(n2) { - return ic(n2) && n2 >= -Wn && n2 <= Wn; - } - function dc(n2) { - return "string" == typeof n2 || !bh(n2) && cc(n2) && we(n2) == rt; - } - function bc(n2) { - return "symbol" == typeof n2 || cc(n2) && we(n2) == et; - } - function wc(n2) { - return n2 === X; - } - function mc(n2) { - return cc(n2) && zs(n2) == it; - } - function xc(n2) { - return cc(n2) && we(n2) == ot; - } - function jc(n2) { - if (!n2) - return []; - if (Hf(n2)) - return dc(n2) ? G(n2) : Tu(n2); - if (Ul && n2[Ul]) - return D(n2[Ul]()); - var t2 = zs(n2); - return (t2 == Gn ? M : t2 == tt ? P : ra)(n2); - } - function Ac(n2) { - if (!n2) - return 0 === n2 ? n2 : 0; - if (n2 = Ic(n2), n2 === Sn || n2 === -Sn) { - return (n2 < 0 ? -1 : 1) * Ln; - } - return n2 === n2 ? n2 : 0; - } - function kc(n2) { - var t2 = Ac(n2), r2 = t2 % 1; - return t2 === t2 ? r2 ? t2 - r2 : t2 : 0; - } - function Oc(n2) { - return n2 ? Mr2(kc(n2), 0, Un) : 0; - } - function Ic(n2) { - if ("number" == typeof n2) - return n2; - if (bc(n2)) - return Cn; - if (fc(n2)) { - var t2 = "function" == typeof n2.valueOf ? n2.valueOf() : n2; - n2 = fc(t2) ? t2 + "" : t2; - } - if ("string" != typeof n2) - return 0 === n2 ? n2 : +n2; - n2 = R(n2); - var r2 = qt.test(n2); - return r2 || Kt.test(n2) ? Xr(n2.slice(2), r2 ? 2 : 8) : Pt.test(n2) ? Cn : +n2; - } - function Rc(n2) { - return $u(n2, qc(n2)); - } - function zc(n2) { - return n2 ? Mr2(kc(n2), -Wn, Wn) : 0 === n2 ? n2 : 0; - } - function Ec(n2) { - return null == n2 ? "" : vu(n2); - } - function Sc(n2, t2) { - var r2 = gs(n2); - return null == t2 ? r2 : Cr2(r2, t2); - } - function Wc(n2, t2) { - return v(n2, mi(t2, 3), ue2); - } - function Lc(n2, t2) { - return v(n2, mi(t2, 3), oe2); - } - function Cc(n2, t2) { - return null == n2 ? n2 : bs(n2, mi(t2, 3), qc); - } - function Uc(n2, t2) { - return null == n2 ? n2 : ws(n2, mi(t2, 3), qc); - } - function Bc(n2, t2) { - return n2 && ue2(n2, mi(t2, 3)); - } - function Tc(n2, t2) { - return n2 && oe2(n2, mi(t2, 3)); - } - function $c(n2) { - return null == n2 ? [] : fe2(n2, Pc(n2)); - } - function Dc(n2) { - return null == n2 ? [] : fe2(n2, qc(n2)); - } - function Mc(n2, t2, r2) { - var e2 = null == n2 ? X : _e2(n2, t2); - return e2 === X ? r2 : e2; - } - function Fc(n2, t2) { - return null != n2 && Ri(n2, t2, xe); - } - function Nc(n2, t2) { - return null != n2 && Ri(n2, t2, je); - } - function Pc(n2) { - return Hf(n2) ? Or2(n2) : Me(n2); - } - function qc(n2) { - return Hf(n2) ? Or2(n2, true) : Fe(n2); - } - function Zc(n2, t2) { - var r2 = {}; - return t2 = mi(t2, 3), ue2(n2, function(n3, e2, u2) { - Br2(r2, t2(n3, e2, u2), n3); - }), r2; - } - function Kc(n2, t2) { - var r2 = {}; - return t2 = mi(t2, 3), ue2(n2, function(n3, e2, u2) { - Br2(r2, e2, t2(n3, e2, u2)); - }), r2; - } - function Vc(n2, t2) { - return Gc(n2, Uf(mi(t2))); - } - function Gc(n2, t2) { - if (null == n2) - return {}; - var r2 = c(di(n2), function(n3) { - return [n3]; - }); - return t2 = mi(t2), Ye(n2, r2, function(n3, r3) { - return t2(n3, r3[0]); - }); - } - function Hc(n2, t2, r2) { - t2 = ku(t2, n2); - var e2 = -1, u2 = t2.length; - for (u2 || (u2 = 1, n2 = X); ++e2 < u2; ) { - var i2 = null == n2 ? X : n2[no(t2[e2])]; - i2 === X && (e2 = u2, i2 = r2), n2 = uc(i2) ? i2.call(n2) : i2; - } - return n2; - } - function Jc(n2, t2, r2) { - return null == n2 ? n2 : fu(n2, t2, r2); - } - function Yc(n2, t2, r2, e2) { - return e2 = "function" == typeof e2 ? e2 : X, null == n2 ? n2 : fu(n2, t2, r2, e2); - } - function Qc(n2, t2, e2) { - var u2 = bh(n2), i2 = u2 || mh(n2) || Oh(n2); - if (t2 = mi(t2, 4), null == e2) { - var o2 = n2 && n2.constructor; - e2 = i2 ? u2 ? new o2() : [] : fc(n2) && uc(o2) ? gs(El(n2)) : {}; - } - return (i2 ? r : ue2)(n2, function(n3, r2, u3) { - return t2(e2, n3, r2, u3); - }), e2; - } - function Xc(n2, t2) { - return null == n2 || yu(n2, t2); - } - function na(n2, t2, r2) { - return null == n2 ? n2 : du(n2, t2, Au(r2)); - } - function ta(n2, t2, r2, e2) { - return e2 = "function" == typeof e2 ? e2 : X, null == n2 ? n2 : du(n2, t2, Au(r2), e2); - } - function ra(n2) { - return null == n2 ? [] : E(n2, Pc(n2)); - } - function ea(n2) { - return null == n2 ? [] : E(n2, qc(n2)); - } - function ua(n2, t2, r2) { - return r2 === X && (r2 = t2, t2 = X), r2 !== X && (r2 = Ic(r2), r2 = r2 === r2 ? r2 : 0), t2 !== X && (t2 = Ic(t2), t2 = t2 === t2 ? t2 : 0), Mr2(Ic(n2), t2, r2); - } - function ia(n2, t2, r2) { - return t2 = Ac(t2), r2 === X ? (r2 = t2, t2 = 0) : r2 = Ac(r2), n2 = Ic(n2), Ae(n2, t2, r2); - } - function oa(n2, t2, r2) { - if (r2 && "boolean" != typeof r2 && Ui(n2, t2, r2) && (t2 = r2 = X), r2 === X && ("boolean" == typeof t2 ? (r2 = t2, t2 = X) : "boolean" == typeof n2 && (r2 = n2, n2 = X)), n2 === X && t2 === X ? (n2 = 0, t2 = 1) : (n2 = Ac(n2), t2 === X ? (t2 = n2, n2 = 0) : t2 = Ac(t2)), n2 > t2) { - var e2 = n2; - n2 = t2, t2 = e2; - } - if (r2 || n2 % 1 || t2 % 1) { - var u2 = Ql(); - return Hl(n2 + u2 * (t2 - n2 + Qr("1e-" + ((u2 + "").length - 1))), t2); - } - return tu(n2, t2); - } - function fa(n2) { - return Qh(Ec(n2).toLowerCase()); - } - function ca(n2) { - return n2 = Ec(n2), n2 && n2.replace(Gt, ve).replace(Dr, ""); - } - function aa(n2, t2, r2) { - n2 = Ec(n2), t2 = vu(t2); - var e2 = n2.length; - r2 = r2 === X ? e2 : Mr2(kc(r2), 0, e2); - var u2 = r2; - return r2 -= t2.length, r2 >= 0 && n2.slice(r2, u2) == t2; - } - function la(n2) { - return n2 = Ec(n2), n2 && At.test(n2) ? n2.replace(xt, ge) : n2; - } - function sa(n2) { - return n2 = Ec(n2), n2 && Wt.test(n2) ? n2.replace(St, "\\$&") : n2; - } - function ha(n2, t2, r2) { - n2 = Ec(n2), t2 = kc(t2); - var e2 = t2 ? V(n2) : 0; - if (!t2 || e2 >= t2) - return n2; - var u2 = (t2 - e2) / 2; - return ri(Nl(u2), r2) + n2 + ri(Fl(u2), r2); - } - function pa(n2, t2, r2) { - n2 = Ec(n2), t2 = kc(t2); - var e2 = t2 ? V(n2) : 0; - return t2 && e2 < t2 ? n2 + ri(t2 - e2, r2) : n2; - } - function _a(n2, t2, r2) { - n2 = Ec(n2), t2 = kc(t2); - var e2 = t2 ? V(n2) : 0; - return t2 && e2 < t2 ? ri(t2 - e2, r2) + n2 : n2; - } - function va(n2, t2, r2) { - return r2 || null == t2 ? t2 = 0 : t2 && (t2 = +t2), Yl(Ec(n2).replace(Lt, ""), t2 || 0); - } - function ga(n2, t2, r2) { - return t2 = (r2 ? Ui(n2, t2, r2) : t2 === X) ? 1 : kc(t2), eu(Ec(n2), t2); - } - function ya() { - var n2 = arguments, t2 = Ec(n2[0]); - return n2.length < 3 ? t2 : t2.replace(n2[1], n2[2]); - } - function da(n2, t2, r2) { - return r2 && "number" != typeof r2 && Ui(n2, t2, r2) && (t2 = r2 = X), (r2 = r2 === X ? Un : r2 >>> 0) ? (n2 = Ec(n2), n2 && ("string" == typeof t2 || null != t2 && !Ah(t2)) && (t2 = vu(t2), !t2 && T(n2)) ? Ou(G(n2), 0, r2) : n2.split(t2, r2)) : []; - } - function ba(n2, t2, r2) { - return n2 = Ec(n2), r2 = null == r2 ? 0 : Mr2(kc(r2), 0, n2.length), t2 = vu(t2), n2.slice(r2, r2 + t2.length) == t2; - } - function wa(n2, t2, r2) { - var e2 = Z2.templateSettings; - r2 && Ui(n2, t2, r2) && (t2 = X), n2 = Ec(n2), t2 = Sh({}, t2, e2, li); - var u2, i2, o2 = Sh({}, t2.imports, e2.imports, li), f2 = Pc(o2), c2 = E(o2, f2), a2 = 0, l2 = t2.interpolate || Ht, s2 = "__p += '", h2 = sl((t2.escape || Ht).source + "|" + l2.source + "|" + (l2 === It ? Ft : Ht).source + "|" + (t2.evaluate || Ht).source + "|$", "g"), p3 = "//# sourceURL=" + (bl.call(t2, "sourceURL") ? (t2.sourceURL + "").replace(/\s/g, " ") : "lodash.templateSources[" + ++Zr + "]") + "\n"; - n2.replace(h2, function(t3, r3, e3, o3, f3, c3) { - return e3 || (e3 = o3), s2 += n2.slice(a2, c3).replace(Jt, U), r3 && (u2 = true, s2 += "' +\n__e(" + r3 + ") +\n'"), f3 && (i2 = true, s2 += "';\n" + f3 + ";\n__p += '"), e3 && (s2 += "' +\n((__t = (" + e3 + ")) == null ? '' : __t) +\n'"), a2 = c3 + t3.length, t3; - }), s2 += "';\n"; - var _2 = bl.call(t2, "variable") && t2.variable; - if (_2) { - if (Dt.test(_2)) - throw new fl(un); - } else - s2 = "with (obj) {\n" + s2 + "\n}\n"; - s2 = (i2 ? s2.replace(dt, "") : s2).replace(bt, "$1").replace(wt, "$1;"), s2 = "function(" + (_2 || "obj") + ") {\n" + (_2 ? "" : "obj || (obj = {});\n") + "var __t, __p = ''" + (u2 ? ", __e = _.escape" : "") + (i2 ? ", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n" : ";\n") + s2 + "return __p\n}"; - var v2 = Xh(function() { - return cl(f2, p3 + "return " + s2).apply(X, c2); - }); - if (v2.source = s2, rc(v2)) - throw v2; - return v2; - } - function ma(n2) { - return Ec(n2).toLowerCase(); - } - function xa(n2) { - return Ec(n2).toUpperCase(); - } - function ja(n2, t2, r2) { - if (n2 = Ec(n2), n2 && (r2 || t2 === X)) - return R(n2); - if (!n2 || !(t2 = vu(t2))) - return n2; - var e2 = G(n2), u2 = G(t2); - return Ou(e2, W(e2, u2), L(e2, u2) + 1).join(""); - } - function Aa(n2, t2, r2) { - if (n2 = Ec(n2), n2 && (r2 || t2 === X)) - return n2.slice(0, H(n2) + 1); - if (!n2 || !(t2 = vu(t2))) - return n2; - var e2 = G(n2); - return Ou(e2, 0, L(e2, G(t2)) + 1).join(""); - } - function ka(n2, t2, r2) { - if (n2 = Ec(n2), n2 && (r2 || t2 === X)) - return n2.replace(Lt, ""); - if (!n2 || !(t2 = vu(t2))) - return n2; - var e2 = G(n2); - return Ou(e2, W(e2, G(t2))).join(""); - } - function Oa(n2, t2) { - var r2 = An, e2 = kn; - if (fc(t2)) { - var u2 = "separator" in t2 ? t2.separator : u2; - r2 = "length" in t2 ? kc(t2.length) : r2, e2 = "omission" in t2 ? vu(t2.omission) : e2; - } - n2 = Ec(n2); - var i2 = n2.length; - if (T(n2)) { - var o2 = G(n2); - i2 = o2.length; - } - if (r2 >= i2) - return n2; - var f2 = r2 - V(e2); - if (f2 < 1) - return e2; - var c2 = o2 ? Ou(o2, 0, f2).join("") : n2.slice(0, f2); - if (u2 === X) - return c2 + e2; - if (o2 && (f2 += c2.length - f2), Ah(u2)) { - if (n2.slice(f2).search(u2)) { - var a2, l2 = c2; - for (u2.global || (u2 = sl(u2.source, Ec(Nt.exec(u2)) + "g")), u2.lastIndex = 0; a2 = u2.exec(l2); ) - var s2 = a2.index; - c2 = c2.slice(0, s2 === X ? f2 : s2); - } - } else if (n2.indexOf(vu(u2), f2) != f2) { - var h2 = c2.lastIndexOf(u2); - h2 > -1 && (c2 = c2.slice(0, h2)); - } - return c2 + e2; - } - function Ia(n2) { - return n2 = Ec(n2), n2 && jt.test(n2) ? n2.replace(mt, ye) : n2; - } - function Ra(n2, t2, r2) { - return n2 = Ec(n2), t2 = r2 ? X : t2, t2 === X ? $(n2) ? Q(n2) : _(n2) : n2.match(t2) || []; - } - function za(t2) { - var r2 = null == t2 ? 0 : t2.length, e2 = mi(); - return t2 = r2 ? c(t2, function(n2) { - if ("function" != typeof n2[1]) - throw new pl(en); - return [e2(n2[0]), n2[1]]; - }) : [], uu(function(e3) { - for (var u2 = -1; ++u2 < r2; ) { - var i2 = t2[u2]; - if (n(i2[0], this, e3)) - return n(i2[1], this, e3); - } - }); - } - function Ea(n2) { - return Nr2(Fr2(n2, an)); - } - function Sa(n2) { - return function() { - return n2; - }; - } - function Wa(n2, t2) { - return null == n2 || n2 !== n2 ? t2 : n2; - } - function La(n2) { - return n2; - } - function Ca(n2) { - return De("function" == typeof n2 ? n2 : Fr2(n2, an)); - } - function Ua(n2) { - return qe(Fr2(n2, an)); - } - function Ba(n2, t2) { - return Ze(n2, Fr2(t2, an)); - } - function Ta(n2, t2, e2) { - var u2 = Pc(t2), i2 = fe2(t2, u2); - null != e2 || fc(t2) && (i2.length || !u2.length) || (e2 = t2, t2 = n2, n2 = this, i2 = fe2(t2, Pc(t2))); - var o2 = !(fc(e2) && "chain" in e2 && !e2.chain), f2 = uc(n2); - return r(i2, function(r2) { - var e3 = t2[r2]; - n2[r2] = e3, f2 && (n2.prototype[r2] = function() { - var t3 = this.__chain__; - if (o2 || t3) { - var r3 = n2(this.__wrapped__); - return (r3.__actions__ = Tu(this.__actions__)).push({ func: e3, args: arguments, thisArg: n2 }), r3.__chain__ = t3, r3; - } - return e3.apply(n2, a([this.value()], arguments)); - }); - }), n2; - } - function $a() { - return re._ === this && (re._ = Al), this; - } - function Da() { - } - function Ma(n2) { - return n2 = kc(n2), uu(function(t2) { - return Ge(t2, n2); - }); - } - function Fa(n2) { - return Bi(n2) ? m(no(n2)) : Qe(n2); - } - function Na(n2) { - return function(t2) { - return null == n2 ? X : _e2(n2, t2); - }; - } - function Pa() { - return []; - } - function qa() { - return false; - } - function Za() { - return {}; - } - function Ka() { - return ""; - } - function Va() { - return true; - } - function Ga(n2, t2) { - if (n2 = kc(n2), n2 < 1 || n2 > Wn) - return []; - var r2 = Un, e2 = Hl(n2, Un); - t2 = mi(t2), n2 -= Un; - for (var u2 = O(e2, t2); ++r2 < n2; ) - t2(r2); - return u2; - } - function Ha(n2) { - return bh(n2) ? c(n2, no) : bc(n2) ? [n2] : Tu(Cs(Ec(n2))); - } - function Ja(n2) { - var t2 = ++wl; - return Ec(n2) + t2; - } - function Ya(n2) { - return n2 && n2.length ? Yr2(n2, La, me) : X; - } - function Qa(n2, t2) { - return n2 && n2.length ? Yr2(n2, mi(t2, 2), me) : X; - } - function Xa(n2) { - return w(n2, La); - } - function nl(n2, t2) { - return w(n2, mi(t2, 2)); - } - function tl(n2) { - return n2 && n2.length ? Yr2(n2, La, Ne) : X; - } - function rl(n2, t2) { - return n2 && n2.length ? Yr2(n2, mi(t2, 2), Ne) : X; - } - function el(n2) { - return n2 && n2.length ? k(n2, La) : 0; - } - function ul(n2, t2) { - return n2 && n2.length ? k(n2, mi(t2, 2)) : 0; - } - x2 = null == x2 ? re : be.defaults(re.Object(), x2, be.pick(re, qr)); - var il = x2.Array, ol = x2.Date, fl = x2.Error, cl = x2.Function, al = x2.Math, ll = x2.Object, sl = x2.RegExp, hl = x2.String, pl = x2.TypeError, _l = il.prototype, vl = cl.prototype, gl = ll.prototype, yl = x2["__core-js_shared__"], dl = vl.toString, bl = gl.hasOwnProperty, wl = 0, ml = function() { - var n2 = /[^.]+$/.exec(yl && yl.keys && yl.keys.IE_PROTO || ""); - return n2 ? "Symbol(src)_1." + n2 : ""; - }(), xl = gl.toString, jl = dl.call(ll), Al = re._, kl = sl("^" + dl.call(bl).replace(St, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"), Ol = ie ? x2.Buffer : X, Il = x2.Symbol, Rl = x2.Uint8Array, zl = Ol ? Ol.allocUnsafe : X, El = F(ll.getPrototypeOf, ll), Sl = ll.create, Wl = gl.propertyIsEnumerable, Ll = _l.splice, Cl = Il ? Il.isConcatSpreadable : X, Ul = Il ? Il.iterator : X, Bl = Il ? Il.toStringTag : X, Tl = function() { - try { - var n2 = Ai(ll, "defineProperty"); - return n2({}, "", {}), n2; - } catch (n3) { - } - }(), $l = x2.clearTimeout !== re.clearTimeout && x2.clearTimeout, Dl = ol && ol.now !== re.Date.now && ol.now, Ml = x2.setTimeout !== re.setTimeout && x2.setTimeout, Fl = al.ceil, Nl = al.floor, Pl = ll.getOwnPropertySymbols, ql = Ol ? Ol.isBuffer : X, Zl = x2.isFinite, Kl = _l.join, Vl = F(ll.keys, ll), Gl = al.max, Hl = al.min, Jl = ol.now, Yl = x2.parseInt, Ql = al.random, Xl = _l.reverse, ns = Ai(x2, "DataView"), ts = Ai(x2, "Map"), rs = Ai(x2, "Promise"), es = Ai(x2, "Set"), us = Ai(x2, "WeakMap"), is = Ai(ll, "create"), os = us && new us(), fs = {}, cs = to(ns), as = to(ts), ls = to(rs), ss = to(es), hs = to(us), ps = Il ? Il.prototype : X, _s = ps ? ps.valueOf : X, vs = ps ? ps.toString : X, gs = function() { - function n2() { - } - return function(t2) { - if (!fc(t2)) - return {}; - if (Sl) - return Sl(t2); - n2.prototype = t2; - var r2 = new n2(); - return n2.prototype = X, r2; - }; - }(); - Z2.templateSettings = { escape: kt, evaluate: Ot, interpolate: It, variable: "", imports: { _: Z2 } }, Z2.prototype = J2.prototype, Z2.prototype.constructor = Z2, Y2.prototype = gs(J2.prototype), Y2.prototype.constructor = Y2, Ct2.prototype = gs(J2.prototype), Ct2.prototype.constructor = Ct2, Xt2.prototype.clear = nr2, Xt2.prototype.delete = tr2, Xt2.prototype.get = rr2, Xt2.prototype.has = er2, Xt2.prototype.set = ur2, ir2.prototype.clear = or2, ir2.prototype.delete = fr2, ir2.prototype.get = cr2, ir2.prototype.has = ar2, ir2.prototype.set = lr2, sr2.prototype.clear = hr2, sr2.prototype.delete = pr2, sr2.prototype.get = _r2, sr2.prototype.has = vr2, sr2.prototype.set = gr2, yr2.prototype.add = yr2.prototype.push = dr2, yr2.prototype.has = br2, wr2.prototype.clear = mr2, wr2.prototype.delete = xr2, wr2.prototype.get = jr2, wr2.prototype.has = Ar2, wr2.prototype.set = kr2; - var ys = Pu(ue2), ds = Pu(oe2, true), bs = qu(), ws = qu(true), ms = os ? function(n2, t2) { - return os.set(n2, t2), n2; - } : La, xs = Tl ? function(n2, t2) { - return Tl(n2, "toString", { - configurable: true, - enumerable: false, - value: Sa(t2), - writable: true - }); - } : La, js = uu, As = $l || function(n2) { - return re.clearTimeout(n2); - }, ks = es && 1 / P(new es([, -0]))[1] == Sn ? function(n2) { - return new es(n2); - } : Da, Os = os ? function(n2) { - return os.get(n2); - } : Da, Is = Pl ? function(n2) { - return null == n2 ? [] : (n2 = ll(n2), i(Pl(n2), function(t2) { - return Wl.call(n2, t2); - })); - } : Pa, Rs = Pl ? function(n2) { - for (var t2 = []; n2; ) - a(t2, Is(n2)), n2 = El(n2); - return t2; - } : Pa, zs = we; - (ns && zs(new ns(new ArrayBuffer(1))) != ct || ts && zs(new ts()) != Gn || rs && zs(rs.resolve()) != Qn || es && zs(new es()) != tt || us && zs(new us()) != it) && (zs = function(n2) { - var t2 = we(n2), r2 = t2 == Yn ? n2.constructor : X, e2 = r2 ? to(r2) : ""; - if (e2) - switch (e2) { - case cs: - return ct; - case as: - return Gn; - case ls: - return Qn; - case ss: - return tt; - case hs: - return it; - } - return t2; - }); - var Es = yl ? uc : qa, Ss = Qi(ms), Ws = Ml || function(n2, t2) { - return re.setTimeout(n2, t2); - }, Ls = Qi(xs), Cs = Pi(function(n2) { - var t2 = []; - return 46 === n2.charCodeAt(0) && t2.push(""), n2.replace(Et, function(n3, r2, e2, u2) { - t2.push(e2 ? u2.replace(Mt, "$1") : r2 || n3); - }), t2; - }), Us = uu(function(n2, t2) { - return Jf(n2) ? Hr2(n2, ee2(t2, 1, Jf, true)) : []; - }), Bs = uu(function(n2, t2) { - var r2 = jo(t2); - return Jf(r2) && (r2 = X), Jf(n2) ? Hr2(n2, ee2(t2, 1, Jf, true), mi(r2, 2)) : []; - }), Ts = uu(function(n2, t2) { - var r2 = jo(t2); - return Jf(r2) && (r2 = X), Jf(n2) ? Hr2(n2, ee2(t2, 1, Jf, true), X, r2) : []; - }), $s = uu(function(n2) { - var t2 = c(n2, ju); - return t2.length && t2[0] === n2[0] ? ke(t2) : []; - }), Ds = uu(function(n2) { - var t2 = jo(n2), r2 = c(n2, ju); - return t2 === jo(r2) ? t2 = X : r2.pop(), r2.length && r2[0] === n2[0] ? ke(r2, mi(t2, 2)) : []; - }), Ms = uu(function(n2) { - var t2 = jo(n2), r2 = c(n2, ju); - return t2 = "function" == typeof t2 ? t2 : X, t2 && r2.pop(), r2.length && r2[0] === n2[0] ? ke(r2, X, t2) : []; - }), Fs = uu(Oo), Ns = gi(function(n2, t2) { - var r2 = null == n2 ? 0 : n2.length, e2 = Tr2(n2, t2); - return nu(n2, c(t2, function(n3) { - return Ci(n3, r2) ? +n3 : n3; - }).sort(Lu)), e2; - }), Ps = uu(function(n2) { - return gu(ee2(n2, 1, Jf, true)); - }), qs = uu(function(n2) { - var t2 = jo(n2); - return Jf(t2) && (t2 = X), gu(ee2(n2, 1, Jf, true), mi(t2, 2)); - }), Zs = uu(function(n2) { - var t2 = jo(n2); - return t2 = "function" == typeof t2 ? t2 : X, gu(ee2(n2, 1, Jf, true), X, t2); - }), Ks = uu(function(n2, t2) { - return Jf(n2) ? Hr2(n2, t2) : []; - }), Vs = uu(function(n2) { - return mu(i(n2, Jf)); - }), Gs = uu(function(n2) { - var t2 = jo(n2); - return Jf(t2) && (t2 = X), mu(i(n2, Jf), mi(t2, 2)); - }), Hs = uu(function(n2) { - var t2 = jo(n2); - return t2 = "function" == typeof t2 ? t2 : X, mu(i(n2, Jf), X, t2); - }), Js = uu(Go), Ys = uu(function(n2) { - var t2 = n2.length, r2 = t2 > 1 ? n2[t2 - 1] : X; - return r2 = "function" == typeof r2 ? (n2.pop(), r2) : X, Ho(n2, r2); - }), Qs = gi(function(n2) { - var t2 = n2.length, r2 = t2 ? n2[0] : 0, e2 = this.__wrapped__, u2 = function(t3) { - return Tr2(t3, n2); - }; - return !(t2 > 1 || this.__actions__.length) && e2 instanceof Ct2 && Ci(r2) ? (e2 = e2.slice(r2, +r2 + (t2 ? 1 : 0)), e2.__actions__.push({ func: nf, args: [u2], thisArg: X }), new Y2(e2, this.__chain__).thru(function(n3) { - return t2 && !n3.length && n3.push(X), n3; - })) : this.thru(u2); - }), Xs = Fu(function(n2, t2, r2) { - bl.call(n2, r2) ? ++n2[r2] : Br2(n2, r2, 1); - }), nh = Ju(ho), th = Ju(po), rh = Fu(function(n2, t2, r2) { - bl.call(n2, r2) ? n2[r2].push(t2) : Br2(n2, r2, [t2]); - }), eh = uu(function(t2, r2, e2) { - var u2 = -1, i2 = "function" == typeof r2, o2 = Hf(t2) ? il(t2.length) : []; - return ys(t2, function(t3) { - o2[++u2] = i2 ? n(r2, t3, e2) : Ie(t3, r2, e2); - }), o2; - }), uh = Fu(function(n2, t2, r2) { - Br2(n2, r2, t2); - }), ih = Fu(function(n2, t2, r2) { - n2[r2 ? 0 : 1].push(t2); - }, function() { - return [[], []]; - }), oh = uu(function(n2, t2) { - if (null == n2) - return []; - var r2 = t2.length; - return r2 > 1 && Ui(n2, t2[0], t2[1]) ? t2 = [] : r2 > 2 && Ui(t2[0], t2[1], t2[2]) && (t2 = [t2[0]]), He(n2, ee2(t2, 1), []); - }), fh = Dl || function() { - return re.Date.now(); - }, ch = uu(function(n2, t2, r2) { - var e2 = _n; - if (r2.length) { - var u2 = N(r2, wi(ch)); - e2 |= bn; - } - return ai(n2, e2, t2, r2, u2); - }), ah = uu(function(n2, t2, r2) { - var e2 = _n | vn; - if (r2.length) { - var u2 = N(r2, wi(ah)); - e2 |= bn; - } - return ai(t2, e2, n2, r2, u2); - }), lh = uu(function(n2, t2) { - return Gr2(n2, 1, t2); - }), sh = uu(function(n2, t2, r2) { - return Gr2(n2, Ic(t2) || 0, r2); - }); - Cf.Cache = sr2; - var hh = js(function(t2, r2) { - r2 = 1 == r2.length && bh(r2[0]) ? c(r2[0], z(mi())) : c(ee2(r2, 1), z(mi())); - var e2 = r2.length; - return uu(function(u2) { - for (var i2 = -1, o2 = Hl(u2.length, e2); ++i2 < o2; ) - u2[i2] = r2[i2].call(this, u2[i2]); - return n(t2, this, u2); - }); - }), ph = uu(function(n2, t2) { - return ai(n2, bn, X, t2, N(t2, wi(ph))); - }), _h = uu(function(n2, t2) { - return ai(n2, wn, X, t2, N(t2, wi(_h))); - }), vh = gi(function(n2, t2) { - return ai(n2, xn, X, X, X, t2); - }), gh = ii(me), yh = ii(function(n2, t2) { - return n2 >= t2; - }), dh = Re(function() { - return arguments; - }()) ? Re : function(n2) { - return cc(n2) && bl.call(n2, "callee") && !Wl.call(n2, "callee"); - }, bh = il.isArray, wh = ce ? z(ce) : ze, mh = ql || qa, xh = ae ? z(ae) : Ee, jh = le ? z(le) : Le, Ah = se ? z(se) : Be, kh = he ? z(he) : Te, Oh = pe ? z(pe) : $e, Ih = ii(Ne), Rh = ii(function(n2, t2) { - return n2 <= t2; - }), zh = Nu(function(n2, t2) { - if (Mi(t2) || Hf(t2)) - return $u(t2, Pc(t2), n2), X; - for (var r2 in t2) - bl.call(t2, r2) && Sr2(n2, r2, t2[r2]); - }), Eh = Nu(function(n2, t2) { - $u(t2, qc(t2), n2); - }), Sh = Nu(function(n2, t2, r2, e2) { - $u(t2, qc(t2), n2, e2); - }), Wh = Nu(function(n2, t2, r2, e2) { - $u(t2, Pc(t2), n2, e2); - }), Lh = gi(Tr2), Ch = uu(function(n2, t2) { - n2 = ll(n2); - var r2 = -1, e2 = t2.length, u2 = e2 > 2 ? t2[2] : X; - for (u2 && Ui(t2[0], t2[1], u2) && (e2 = 1); ++r2 < e2; ) - for (var i2 = t2[r2], o2 = qc(i2), f2 = -1, c2 = o2.length; ++f2 < c2; ) { - var a2 = o2[f2], l2 = n2[a2]; - (l2 === X || Gf(l2, gl[a2]) && !bl.call(n2, a2)) && (n2[a2] = i2[a2]); - } - return n2; - }), Uh = uu(function(t2) { - return t2.push(X, si), n(Mh, X, t2); - }), Bh = Xu(function(n2, t2, r2) { - null != t2 && "function" != typeof t2.toString && (t2 = xl.call(t2)), n2[t2] = r2; - }, Sa(La)), Th = Xu(function(n2, t2, r2) { - null != t2 && "function" != typeof t2.toString && (t2 = xl.call(t2)), bl.call(n2, t2) ? n2[t2].push(r2) : n2[t2] = [r2]; - }, mi), $h = uu(Ie), Dh = Nu(function(n2, t2, r2) { - Ke(n2, t2, r2); - }), Mh = Nu(function(n2, t2, r2, e2) { - Ke(n2, t2, r2, e2); - }), Fh = gi(function(n2, t2) { - var r2 = {}; - if (null == n2) - return r2; - var e2 = false; - t2 = c(t2, function(t3) { - return t3 = ku(t3, n2), e2 || (e2 = t3.length > 1), t3; - }), $u(n2, di(n2), r2), e2 && (r2 = Fr2(r2, an | ln | sn, hi)); - for (var u2 = t2.length; u2--; ) - yu(r2, t2[u2]); - return r2; - }), Nh = gi(function(n2, t2) { - return null == n2 ? {} : Je(n2, t2); - }), Ph = ci(Pc), qh = ci(qc), Zh = Vu(function(n2, t2, r2) { - return t2 = t2.toLowerCase(), n2 + (r2 ? fa(t2) : t2); - }), Kh = Vu(function(n2, t2, r2) { - return n2 + (r2 ? "-" : "") + t2.toLowerCase(); - }), Vh = Vu(function(n2, t2, r2) { - return n2 + (r2 ? " " : "") + t2.toLowerCase(); - }), Gh = Ku("toLowerCase"), Hh = Vu(function(n2, t2, r2) { - return n2 + (r2 ? "_" : "") + t2.toLowerCase(); - }), Jh = Vu(function(n2, t2, r2) { - return n2 + (r2 ? " " : "") + Qh(t2); - }), Yh = Vu(function(n2, t2, r2) { - return n2 + (r2 ? " " : "") + t2.toUpperCase(); - }), Qh = Ku("toUpperCase"), Xh = uu(function(t2, r2) { - try { - return n(t2, X, r2); - } catch (n2) { - return rc(n2) ? n2 : new fl(n2); - } - }), np = gi(function(n2, t2) { - return r(t2, function(t3) { - t3 = no(t3), Br2(n2, t3, ch(n2[t3], n2)); - }), n2; - }), tp = Yu(), rp = Yu(true), ep = uu(function(n2, t2) { - return function(r2) { - return Ie(r2, n2, t2); - }; - }), up = uu(function(n2, t2) { - return function(r2) { - return Ie(n2, r2, t2); - }; - }), ip = ti(c), op = ti(u), fp = ti(h), cp = ui(), ap = ui(true), lp = ni(function(n2, t2) { - return n2 + t2; - }, 0), sp = fi("ceil"), hp = ni(function(n2, t2) { - return n2 / t2; - }, 1), pp = fi("floor"), _p = ni(function(n2, t2) { - return n2 * t2; - }, 1), vp = fi("round"), gp = ni(function(n2, t2) { - return n2 - t2; - }, 0); - return Z2.after = If, Z2.ary = Rf, Z2.assign = zh, Z2.assignIn = Eh, Z2.assignInWith = Sh, Z2.assignWith = Wh, Z2.at = Lh, Z2.before = zf, Z2.bind = ch, Z2.bindAll = np, Z2.bindKey = ah, Z2.castArray = Nf, Z2.chain = Qo, Z2.chunk = uo, Z2.compact = io, Z2.concat = oo, Z2.cond = za, Z2.conforms = Ea, Z2.constant = Sa, Z2.countBy = Xs, Z2.create = Sc, Z2.curry = Ef, Z2.curryRight = Sf, Z2.debounce = Wf, Z2.defaults = Ch, Z2.defaultsDeep = Uh, Z2.defer = lh, Z2.delay = sh, Z2.difference = Us, Z2.differenceBy = Bs, Z2.differenceWith = Ts, Z2.drop = fo, Z2.dropRight = co, Z2.dropRightWhile = ao, Z2.dropWhile = lo, Z2.fill = so, Z2.filter = lf, Z2.flatMap = sf, Z2.flatMapDeep = hf, Z2.flatMapDepth = pf, Z2.flatten = _o, Z2.flattenDeep = vo, Z2.flattenDepth = go, Z2.flip = Lf, Z2.flow = tp, Z2.flowRight = rp, Z2.fromPairs = yo, Z2.functions = $c, Z2.functionsIn = Dc, Z2.groupBy = rh, Z2.initial = mo, Z2.intersection = $s, Z2.intersectionBy = Ds, Z2.intersectionWith = Ms, Z2.invert = Bh, Z2.invertBy = Th, Z2.invokeMap = eh, Z2.iteratee = Ca, Z2.keyBy = uh, Z2.keys = Pc, Z2.keysIn = qc, Z2.map = yf, Z2.mapKeys = Zc, Z2.mapValues = Kc, Z2.matches = Ua, Z2.matchesProperty = Ba, Z2.memoize = Cf, Z2.merge = Dh, Z2.mergeWith = Mh, Z2.method = ep, Z2.methodOf = up, Z2.mixin = Ta, Z2.negate = Uf, Z2.nthArg = Ma, Z2.omit = Fh, Z2.omitBy = Vc, Z2.once = Bf, Z2.orderBy = df, Z2.over = ip, Z2.overArgs = hh, Z2.overEvery = op, Z2.overSome = fp, Z2.partial = ph, Z2.partialRight = _h, Z2.partition = ih, Z2.pick = Nh, Z2.pickBy = Gc, Z2.property = Fa, Z2.propertyOf = Na, Z2.pull = Fs, Z2.pullAll = Oo, Z2.pullAllBy = Io, Z2.pullAllWith = Ro, Z2.pullAt = Ns, Z2.range = cp, Z2.rangeRight = ap, Z2.rearg = vh, Z2.reject = mf, Z2.remove = zo, Z2.rest = Tf, Z2.reverse = Eo, Z2.sampleSize = jf, Z2.set = Jc, Z2.setWith = Yc, Z2.shuffle = Af, Z2.slice = So, Z2.sortBy = oh, Z2.sortedUniq = $o, Z2.sortedUniqBy = Do, Z2.split = da, Z2.spread = $f, Z2.tail = Mo, Z2.take = Fo, Z2.takeRight = No, Z2.takeRightWhile = Po, Z2.takeWhile = qo, Z2.tap = Xo, Z2.throttle = Df, Z2.thru = nf, Z2.toArray = jc, Z2.toPairs = Ph, Z2.toPairsIn = qh, Z2.toPath = Ha, Z2.toPlainObject = Rc, Z2.transform = Qc, Z2.unary = Mf, Z2.union = Ps, Z2.unionBy = qs, Z2.unionWith = Zs, Z2.uniq = Zo, Z2.uniqBy = Ko, Z2.uniqWith = Vo, Z2.unset = Xc, Z2.unzip = Go, Z2.unzipWith = Ho, Z2.update = na, Z2.updateWith = ta, Z2.values = ra, Z2.valuesIn = ea, Z2.without = Ks, Z2.words = Ra, Z2.wrap = Ff, Z2.xor = Vs, Z2.xorBy = Gs, Z2.xorWith = Hs, Z2.zip = Js, Z2.zipObject = Jo, Z2.zipObjectDeep = Yo, Z2.zipWith = Ys, Z2.entries = Ph, Z2.entriesIn = qh, Z2.extend = Eh, Z2.extendWith = Sh, Ta(Z2, Z2), Z2.add = lp, Z2.attempt = Xh, Z2.camelCase = Zh, Z2.capitalize = fa, Z2.ceil = sp, Z2.clamp = ua, Z2.clone = Pf, Z2.cloneDeep = Zf, Z2.cloneDeepWith = Kf, Z2.cloneWith = qf, Z2.conformsTo = Vf, Z2.deburr = ca, Z2.defaultTo = Wa, Z2.divide = hp, Z2.endsWith = aa, Z2.eq = Gf, Z2.escape = la, Z2.escapeRegExp = sa, Z2.every = af, Z2.find = nh, Z2.findIndex = ho, Z2.findKey = Wc, Z2.findLast = th, Z2.findLastIndex = po, Z2.findLastKey = Lc, Z2.floor = pp, Z2.forEach = _f, Z2.forEachRight = vf, Z2.forIn = Cc, Z2.forInRight = Uc, Z2.forOwn = Bc, Z2.forOwnRight = Tc, Z2.get = Mc, Z2.gt = gh, Z2.gte = yh, Z2.has = Fc, Z2.hasIn = Nc, Z2.head = bo, Z2.identity = La, Z2.includes = gf, Z2.indexOf = wo, Z2.inRange = ia, Z2.invoke = $h, Z2.isArguments = dh, Z2.isArray = bh, Z2.isArrayBuffer = wh, Z2.isArrayLike = Hf, Z2.isArrayLikeObject = Jf, Z2.isBoolean = Yf, Z2.isBuffer = mh, Z2.isDate = xh, Z2.isElement = Qf, Z2.isEmpty = Xf, Z2.isEqual = nc, Z2.isEqualWith = tc, Z2.isError = rc, Z2.isFinite = ec, Z2.isFunction = uc, Z2.isInteger = ic, Z2.isLength = oc, Z2.isMap = jh, Z2.isMatch = ac, Z2.isMatchWith = lc, Z2.isNaN = sc, Z2.isNative = hc, Z2.isNil = _c, Z2.isNull = pc, Z2.isNumber = vc, Z2.isObject = fc, Z2.isObjectLike = cc, Z2.isPlainObject = gc, Z2.isRegExp = Ah, Z2.isSafeInteger = yc, Z2.isSet = kh, Z2.isString = dc, Z2.isSymbol = bc, Z2.isTypedArray = Oh, Z2.isUndefined = wc, Z2.isWeakMap = mc, Z2.isWeakSet = xc, Z2.join = xo, Z2.kebabCase = Kh, Z2.last = jo, Z2.lastIndexOf = Ao, Z2.lowerCase = Vh, Z2.lowerFirst = Gh, Z2.lt = Ih, Z2.lte = Rh, Z2.max = Ya, Z2.maxBy = Qa, Z2.mean = Xa, Z2.meanBy = nl, Z2.min = tl, Z2.minBy = rl, Z2.stubArray = Pa, Z2.stubFalse = qa, Z2.stubObject = Za, Z2.stubString = Ka, Z2.stubTrue = Va, Z2.multiply = _p, Z2.nth = ko, Z2.noConflict = $a, Z2.noop = Da, Z2.now = fh, Z2.pad = ha, Z2.padEnd = pa, Z2.padStart = _a, Z2.parseInt = va, Z2.random = oa, Z2.reduce = bf, Z2.reduceRight = wf, Z2.repeat = ga, Z2.replace = ya, Z2.result = Hc, Z2.round = vp, Z2.runInContext = p2, Z2.sample = xf, Z2.size = kf, Z2.snakeCase = Hh, Z2.some = Of, Z2.sortedIndex = Wo, Z2.sortedIndexBy = Lo, Z2.sortedIndexOf = Co, Z2.sortedLastIndex = Uo, Z2.sortedLastIndexBy = Bo, Z2.sortedLastIndexOf = To, Z2.startCase = Jh, Z2.startsWith = ba, Z2.subtract = gp, Z2.sum = el, Z2.sumBy = ul, Z2.template = wa, Z2.times = Ga, Z2.toFinite = Ac, Z2.toInteger = kc, Z2.toLength = Oc, Z2.toLower = ma, Z2.toNumber = Ic, Z2.toSafeInteger = zc, Z2.toString = Ec, Z2.toUpper = xa, Z2.trim = ja, Z2.trimEnd = Aa, Z2.trimStart = ka, Z2.truncate = Oa, Z2.unescape = Ia, Z2.uniqueId = Ja, Z2.upperCase = Yh, Z2.upperFirst = Qh, Z2.each = _f, Z2.eachRight = vf, Z2.first = bo, Ta(Z2, function() { - var n2 = {}; - return ue2(Z2, function(t2, r2) { - bl.call(Z2.prototype, r2) || (n2[r2] = t2); - }), n2; - }(), { chain: false }), Z2.VERSION = nn, r(["bind", "bindKey", "curry", "curryRight", "partial", "partialRight"], function(n2) { - Z2[n2].placeholder = Z2; - }), r(["drop", "take"], function(n2, t2) { - Ct2.prototype[n2] = function(r2) { - r2 = r2 === X ? 1 : Gl(kc(r2), 0); - var e2 = this.__filtered__ && !t2 ? new Ct2(this) : this.clone(); - return e2.__filtered__ ? e2.__takeCount__ = Hl(r2, e2.__takeCount__) : e2.__views__.push({ size: Hl(r2, Un), type: n2 + (e2.__dir__ < 0 ? "Right" : "") }), e2; - }, Ct2.prototype[n2 + "Right"] = function(t3) { - return this.reverse()[n2](t3).reverse(); - }; - }), r(["filter", "map", "takeWhile"], function(n2, t2) { - var r2 = t2 + 1, e2 = r2 == Rn || r2 == En; - Ct2.prototype[n2] = function(n3) { - var t3 = this.clone(); - return t3.__iteratees__.push({ iteratee: mi(n3, 3), type: r2 }), t3.__filtered__ = t3.__filtered__ || e2, t3; - }; - }), r(["head", "last"], function(n2, t2) { - var r2 = "take" + (t2 ? "Right" : ""); - Ct2.prototype[n2] = function() { - return this[r2](1).value()[0]; - }; - }), r(["initial", "tail"], function(n2, t2) { - var r2 = "drop" + (t2 ? "" : "Right"); - Ct2.prototype[n2] = function() { - return this.__filtered__ ? new Ct2(this) : this[r2](1); - }; - }), Ct2.prototype.compact = function() { - return this.filter(La); - }, Ct2.prototype.find = function(n2) { - return this.filter(n2).head(); - }, Ct2.prototype.findLast = function(n2) { - return this.reverse().find(n2); - }, Ct2.prototype.invokeMap = uu(function(n2, t2) { - return "function" == typeof n2 ? new Ct2(this) : this.map(function(r2) { - return Ie(r2, n2, t2); - }); - }), Ct2.prototype.reject = function(n2) { - return this.filter(Uf(mi(n2))); - }, Ct2.prototype.slice = function(n2, t2) { - n2 = kc(n2); - var r2 = this; - return r2.__filtered__ && (n2 > 0 || t2 < 0) ? new Ct2(r2) : (n2 < 0 ? r2 = r2.takeRight(-n2) : n2 && (r2 = r2.drop(n2)), t2 !== X && (t2 = kc(t2), r2 = t2 < 0 ? r2.dropRight(-t2) : r2.take(t2 - n2)), r2); - }, Ct2.prototype.takeRightWhile = function(n2) { - return this.reverse().takeWhile(n2).reverse(); - }, Ct2.prototype.toArray = function() { - return this.take(Un); - }, ue2(Ct2.prototype, function(n2, t2) { - var r2 = /^(?:filter|find|map|reject)|While$/.test(t2), e2 = /^(?:head|last)$/.test(t2), u2 = Z2[e2 ? "take" + ("last" == t2 ? "Right" : "") : t2], i2 = e2 || /^find/.test(t2); - u2 && (Z2.prototype[t2] = function() { - var t3 = this.__wrapped__, o2 = e2 ? [1] : arguments, f2 = t3 instanceof Ct2, c2 = o2[0], l2 = f2 || bh(t3), s2 = function(n3) { - var t4 = u2.apply(Z2, a([n3], o2)); - return e2 && h2 ? t4[0] : t4; - }; - l2 && r2 && "function" == typeof c2 && 1 != c2.length && (f2 = l2 = false); - var h2 = this.__chain__, p3 = !!this.__actions__.length, _2 = i2 && !h2, v2 = f2 && !p3; - if (!i2 && l2) { - t3 = v2 ? t3 : new Ct2(this); - var g2 = n2.apply(t3, o2); - return g2.__actions__.push({ func: nf, args: [s2], thisArg: X }), new Y2(g2, h2); - } - return _2 && v2 ? n2.apply(this, o2) : (g2 = this.thru(s2), _2 ? e2 ? g2.value()[0] : g2.value() : g2); - }); - }), r(["pop", "push", "shift", "sort", "splice", "unshift"], function(n2) { - var t2 = _l[n2], r2 = /^(?:push|sort|unshift)$/.test(n2) ? "tap" : "thru", e2 = /^(?:pop|shift)$/.test(n2); - Z2.prototype[n2] = function() { - var n3 = arguments; - if (e2 && !this.__chain__) { - var u2 = this.value(); - return t2.apply(bh(u2) ? u2 : [], n3); - } - return this[r2](function(r3) { - return t2.apply(bh(r3) ? r3 : [], n3); - }); - }; - }), ue2(Ct2.prototype, function(n2, t2) { - var r2 = Z2[t2]; - if (r2) { - var e2 = r2.name + ""; - bl.call(fs, e2) || (fs[e2] = []), fs[e2].push({ name: t2, func: r2 }); - } - }), fs[Qu(X, vn).name] = [{ name: "wrapper", func: X }], Ct2.prototype.clone = $t2, Ct2.prototype.reverse = Yt2, Ct2.prototype.value = Qt2, Z2.prototype.at = Qs, Z2.prototype.chain = tf, Z2.prototype.commit = rf, Z2.prototype.next = ef, Z2.prototype.plant = of, Z2.prototype.reverse = ff, Z2.prototype.toJSON = Z2.prototype.valueOf = Z2.prototype.value = cf, Z2.prototype.first = Z2.prototype.head, Ul && (Z2.prototype[Ul] = uf), Z2; - }, be = de(); - "function" == typeof define && "object" == typeof define.amd && define.amd ? (re._ = be, define(function() { - return be; - })) : ue ? ((ue.exports = be)._ = be, ee._ = be) : re._ = be; - }).call(exports); - } -}); - -// node_modules/lodash/fp/_mapping.js -var require_mapping = __commonJS({ - "node_modules/lodash/fp/_mapping.js"(exports) { - exports.aliasToReal = { - // Lodash aliases. - "each": "forEach", - "eachRight": "forEachRight", - "entries": "toPairs", - "entriesIn": "toPairsIn", - "extend": "assignIn", - "extendAll": "assignInAll", - "extendAllWith": "assignInAllWith", - "extendWith": "assignInWith", - "first": "head", - // Methods that are curried variants of others. - "conforms": "conformsTo", - "matches": "isMatch", - "property": "get", - // Ramda aliases. - "__": "placeholder", - "F": "stubFalse", - "T": "stubTrue", - "all": "every", - "allPass": "overEvery", - "always": "constant", - "any": "some", - "anyPass": "overSome", - "apply": "spread", - "assoc": "set", - "assocPath": "set", - "complement": "negate", - "compose": "flowRight", - "contains": "includes", - "dissoc": "unset", - "dissocPath": "unset", - "dropLast": "dropRight", - "dropLastWhile": "dropRightWhile", - "equals": "isEqual", - "identical": "eq", - "indexBy": "keyBy", - "init": "initial", - "invertObj": "invert", - "juxt": "over", - "omitAll": "omit", - "nAry": "ary", - "path": "get", - "pathEq": "matchesProperty", - "pathOr": "getOr", - "paths": "at", - "pickAll": "pick", - "pipe": "flow", - "pluck": "map", - "prop": "get", - "propEq": "matchesProperty", - "propOr": "getOr", - "props": "at", - "symmetricDifference": "xor", - "symmetricDifferenceBy": "xorBy", - "symmetricDifferenceWith": "xorWith", - "takeLast": "takeRight", - "takeLastWhile": "takeRightWhile", - "unapply": "rest", - "unnest": "flatten", - "useWith": "overArgs", - "where": "conformsTo", - "whereEq": "isMatch", - "zipObj": "zipObject" - }; - exports.aryMethod = { - "1": [ - "assignAll", - "assignInAll", - "attempt", - "castArray", - "ceil", - "create", - "curry", - "curryRight", - "defaultsAll", - "defaultsDeepAll", - "floor", - "flow", - "flowRight", - "fromPairs", - "invert", - "iteratee", - "memoize", - "method", - "mergeAll", - "methodOf", - "mixin", - "nthArg", - "over", - "overEvery", - "overSome", - "rest", - "reverse", - "round", - "runInContext", - "spread", - "template", - "trim", - "trimEnd", - "trimStart", - "uniqueId", - "words", - "zipAll" - ], - "2": [ - "add", - "after", - "ary", - "assign", - "assignAllWith", - "assignIn", - "assignInAllWith", - "at", - "before", - "bind", - "bindAll", - "bindKey", - "chunk", - "cloneDeepWith", - "cloneWith", - "concat", - "conformsTo", - "countBy", - "curryN", - "curryRightN", - "debounce", - "defaults", - "defaultsDeep", - "defaultTo", - "delay", - "difference", - "divide", - "drop", - "dropRight", - "dropRightWhile", - "dropWhile", - "endsWith", - "eq", - "every", - "filter", - "find", - "findIndex", - "findKey", - "findLast", - "findLastIndex", - "findLastKey", - "flatMap", - "flatMapDeep", - "flattenDepth", - "forEach", - "forEachRight", - "forIn", - "forInRight", - "forOwn", - "forOwnRight", - "get", - "groupBy", - "gt", - "gte", - "has", - "hasIn", - "includes", - "indexOf", - "intersection", - "invertBy", - "invoke", - "invokeMap", - "isEqual", - "isMatch", - "join", - "keyBy", - "lastIndexOf", - "lt", - "lte", - "map", - "mapKeys", - "mapValues", - "matchesProperty", - "maxBy", - "meanBy", - "merge", - "mergeAllWith", - "minBy", - "multiply", - "nth", - "omit", - "omitBy", - "overArgs", - "pad", - "padEnd", - "padStart", - "parseInt", - "partial", - "partialRight", - "partition", - "pick", - "pickBy", - "propertyOf", - "pull", - "pullAll", - "pullAt", - "random", - "range", - "rangeRight", - "rearg", - "reject", - "remove", - "repeat", - "restFrom", - "result", - "sampleSize", - "some", - "sortBy", - "sortedIndex", - "sortedIndexOf", - "sortedLastIndex", - "sortedLastIndexOf", - "sortedUniqBy", - "split", - "spreadFrom", - "startsWith", - "subtract", - "sumBy", - "take", - "takeRight", - "takeRightWhile", - "takeWhile", - "tap", - "throttle", - "thru", - "times", - "trimChars", - "trimCharsEnd", - "trimCharsStart", - "truncate", - "union", - "uniqBy", - "uniqWith", - "unset", - "unzipWith", - "without", - "wrap", - "xor", - "zip", - "zipObject", - "zipObjectDeep" - ], - "3": [ - "assignInWith", - "assignWith", - "clamp", - "differenceBy", - "differenceWith", - "findFrom", - "findIndexFrom", - "findLastFrom", - "findLastIndexFrom", - "getOr", - "includesFrom", - "indexOfFrom", - "inRange", - "intersectionBy", - "intersectionWith", - "invokeArgs", - "invokeArgsMap", - "isEqualWith", - "isMatchWith", - "flatMapDepth", - "lastIndexOfFrom", - "mergeWith", - "orderBy", - "padChars", - "padCharsEnd", - "padCharsStart", - "pullAllBy", - "pullAllWith", - "rangeStep", - "rangeStepRight", - "reduce", - "reduceRight", - "replace", - "set", - "slice", - "sortedIndexBy", - "sortedLastIndexBy", - "transform", - "unionBy", - "unionWith", - "update", - "xorBy", - "xorWith", - "zipWith" - ], - "4": [ - "fill", - "setWith", - "updateWith" - ] - }; - exports.aryRearg = { - "2": [1, 0], - "3": [2, 0, 1], - "4": [3, 2, 0, 1] - }; - exports.iterateeAry = { - "dropRightWhile": 1, - "dropWhile": 1, - "every": 1, - "filter": 1, - "find": 1, - "findFrom": 1, - "findIndex": 1, - "findIndexFrom": 1, - "findKey": 1, - "findLast": 1, - "findLastFrom": 1, - "findLastIndex": 1, - "findLastIndexFrom": 1, - "findLastKey": 1, - "flatMap": 1, - "flatMapDeep": 1, - "flatMapDepth": 1, - "forEach": 1, - "forEachRight": 1, - "forIn": 1, - "forInRight": 1, - "forOwn": 1, - "forOwnRight": 1, - "map": 1, - "mapKeys": 1, - "mapValues": 1, - "partition": 1, - "reduce": 2, - "reduceRight": 2, - "reject": 1, - "remove": 1, - "some": 1, - "takeRightWhile": 1, - "takeWhile": 1, - "times": 1, - "transform": 2 - }; - exports.iterateeRearg = { - "mapKeys": [1], - "reduceRight": [1, 0] - }; - exports.methodRearg = { - "assignInAllWith": [1, 0], - "assignInWith": [1, 2, 0], - "assignAllWith": [1, 0], - "assignWith": [1, 2, 0], - "differenceBy": [1, 2, 0], - "differenceWith": [1, 2, 0], - "getOr": [2, 1, 0], - "intersectionBy": [1, 2, 0], - "intersectionWith": [1, 2, 0], - "isEqualWith": [1, 2, 0], - "isMatchWith": [2, 1, 0], - "mergeAllWith": [1, 0], - "mergeWith": [1, 2, 0], - "padChars": [2, 1, 0], - "padCharsEnd": [2, 1, 0], - "padCharsStart": [2, 1, 0], - "pullAllBy": [2, 1, 0], - "pullAllWith": [2, 1, 0], - "rangeStep": [1, 2, 0], - "rangeStepRight": [1, 2, 0], - "setWith": [3, 1, 2, 0], - "sortedIndexBy": [2, 1, 0], - "sortedLastIndexBy": [2, 1, 0], - "unionBy": [1, 2, 0], - "unionWith": [1, 2, 0], - "updateWith": [3, 1, 2, 0], - "xorBy": [1, 2, 0], - "xorWith": [1, 2, 0], - "zipWith": [1, 2, 0] - }; - exports.methodSpread = { - "assignAll": { "start": 0 }, - "assignAllWith": { "start": 0 }, - "assignInAll": { "start": 0 }, - "assignInAllWith": { "start": 0 }, - "defaultsAll": { "start": 0 }, - "defaultsDeepAll": { "start": 0 }, - "invokeArgs": { "start": 2 }, - "invokeArgsMap": { "start": 2 }, - "mergeAll": { "start": 0 }, - "mergeAllWith": { "start": 0 }, - "partial": { "start": 1 }, - "partialRight": { "start": 1 }, - "without": { "start": 1 }, - "zipAll": { "start": 0 } - }; - exports.mutate = { - "array": { - "fill": true, - "pull": true, - "pullAll": true, - "pullAllBy": true, - "pullAllWith": true, - "pullAt": true, - "remove": true, - "reverse": true - }, - "object": { - "assign": true, - "assignAll": true, - "assignAllWith": true, - "assignIn": true, - "assignInAll": true, - "assignInAllWith": true, - "assignInWith": true, - "assignWith": true, - "defaults": true, - "defaultsAll": true, - "defaultsDeep": true, - "defaultsDeepAll": true, - "merge": true, - "mergeAll": true, - "mergeAllWith": true, - "mergeWith": true - }, - "set": { - "set": true, - "setWith": true, - "unset": true, - "update": true, - "updateWith": true - } - }; - exports.realToAlias = function() { - var hasOwnProperty = Object.prototype.hasOwnProperty, object = exports.aliasToReal, result = {}; - for (var key in object) { - var value = object[key]; - if (hasOwnProperty.call(result, value)) { - result[value].push(key); - } else { - result[value] = [key]; - } - } - return result; - }(); - exports.remap = { - "assignAll": "assign", - "assignAllWith": "assignWith", - "assignInAll": "assignIn", - "assignInAllWith": "assignInWith", - "curryN": "curry", - "curryRightN": "curryRight", - "defaultsAll": "defaults", - "defaultsDeepAll": "defaultsDeep", - "findFrom": "find", - "findIndexFrom": "findIndex", - "findLastFrom": "findLast", - "findLastIndexFrom": "findLastIndex", - "getOr": "get", - "includesFrom": "includes", - "indexOfFrom": "indexOf", - "invokeArgs": "invoke", - "invokeArgsMap": "invokeMap", - "lastIndexOfFrom": "lastIndexOf", - "mergeAll": "merge", - "mergeAllWith": "mergeWith", - "padChars": "pad", - "padCharsEnd": "padEnd", - "padCharsStart": "padStart", - "propertyOf": "get", - "rangeStep": "range", - "rangeStepRight": "rangeRight", - "restFrom": "rest", - "spreadFrom": "spread", - "trimChars": "trim", - "trimCharsEnd": "trimEnd", - "trimCharsStart": "trimStart", - "zipAll": "zip" - }; - exports.skipFixed = { - "castArray": true, - "flow": true, - "flowRight": true, - "iteratee": true, - "mixin": true, - "rearg": true, - "runInContext": true - }; - exports.skipRearg = { - "add": true, - "assign": true, - "assignIn": true, - "bind": true, - "bindKey": true, - "concat": true, - "difference": true, - "divide": true, - "eq": true, - "gt": true, - "gte": true, - "isEqual": true, - "lt": true, - "lte": true, - "matchesProperty": true, - "merge": true, - "multiply": true, - "overArgs": true, - "partial": true, - "partialRight": true, - "propertyOf": true, - "random": true, - "range": true, - "rangeRight": true, - "subtract": true, - "zip": true, - "zipObject": true, - "zipObjectDeep": true - }; - } -}); - -// node_modules/lodash/fp/placeholder.js -var require_placeholder = __commonJS({ - "node_modules/lodash/fp/placeholder.js"(exports, module2) { - module2.exports = {}; - } -}); - -// node_modules/lodash/fp/_baseConvert.js -var require_baseConvert = __commonJS({ - "node_modules/lodash/fp/_baseConvert.js"(exports, module2) { - var mapping = require_mapping(); - var fallbackHolder = require_placeholder(); - var push = Array.prototype.push; - function baseArity(func, n) { - return n == 2 ? function(a, b) { - return func.apply(void 0, arguments); - } : function(a) { - return func.apply(void 0, arguments); - }; - } - function baseAry(func, n) { - return n == 2 ? function(a, b) { - return func(a, b); - } : function(a) { - return func(a); - }; - } - function cloneArray(array) { - var length = array ? array.length : 0, result = Array(length); - while (length--) { - result[length] = array[length]; - } - return result; - } - function createCloner(func) { - return function(object) { - return func({}, object); - }; - } - function flatSpread(func, start) { - return function() { - var length = arguments.length, lastIndex = length - 1, args = Array(length); - while (length--) { - args[length] = arguments[length]; - } - var array = args[start], otherArgs = args.slice(0, start); - if (array) { - push.apply(otherArgs, array); - } - if (start != lastIndex) { - push.apply(otherArgs, args.slice(start + 1)); - } - return func.apply(this, otherArgs); - }; - } - function wrapImmutable(func, cloner) { - return function() { - var length = arguments.length; - if (!length) { - return; - } - var args = Array(length); - while (length--) { - args[length] = arguments[length]; - } - var result = args[0] = cloner.apply(void 0, args); - func.apply(void 0, args); - return result; - }; - } - function baseConvert(util, name, func, options) { - var isLib = typeof name == "function", isObj = name === Object(name); - if (isObj) { - options = func; - func = name; - name = void 0; - } - if (func == null) { - throw new TypeError(); - } - options || (options = {}); - var config = { - "cap": "cap" in options ? options.cap : true, - "curry": "curry" in options ? options.curry : true, - "fixed": "fixed" in options ? options.fixed : true, - "immutable": "immutable" in options ? options.immutable : true, - "rearg": "rearg" in options ? options.rearg : true - }; - var defaultHolder = isLib ? func : fallbackHolder, forceCurry = "curry" in options && options.curry, forceFixed = "fixed" in options && options.fixed, forceRearg = "rearg" in options && options.rearg, pristine = isLib ? func.runInContext() : void 0; - var helpers = isLib ? func : { - "ary": util.ary, - "assign": util.assign, - "clone": util.clone, - "curry": util.curry, - "forEach": util.forEach, - "isArray": util.isArray, - "isError": util.isError, - "isFunction": util.isFunction, - "isWeakMap": util.isWeakMap, - "iteratee": util.iteratee, - "keys": util.keys, - "rearg": util.rearg, - "toInteger": util.toInteger, - "toPath": util.toPath - }; - var ary = helpers.ary, assign2 = helpers.assign, clone = helpers.clone, curry = helpers.curry, each = helpers.forEach, isArray = helpers.isArray, isError = helpers.isError, isFunction = helpers.isFunction, isWeakMap = helpers.isWeakMap, keys = helpers.keys, rearg = helpers.rearg, toInteger = helpers.toInteger, toPath = helpers.toPath; - var aryMethodKeys = keys(mapping.aryMethod); - var wrappers = { - "castArray": function(castArray) { - return function() { - var value = arguments[0]; - return isArray(value) ? castArray(cloneArray(value)) : castArray.apply(void 0, arguments); - }; - }, - "iteratee": function(iteratee) { - return function() { - var func2 = arguments[0], arity = arguments[1], result = iteratee(func2, arity), length = result.length; - if (config.cap && typeof arity == "number") { - arity = arity > 2 ? arity - 2 : 1; - return length && length <= arity ? result : baseAry(result, arity); - } - return result; - }; - }, - "mixin": function(mixin) { - return function(source) { - var func2 = this; - if (!isFunction(func2)) { - return mixin(func2, Object(source)); - } - var pairs2 = []; - each(keys(source), function(key) { - if (isFunction(source[key])) { - pairs2.push([key, func2.prototype[key]]); - } - }); - mixin(func2, Object(source)); - each(pairs2, function(pair) { - var value = pair[1]; - if (isFunction(value)) { - func2.prototype[pair[0]] = value; - } else { - delete func2.prototype[pair[0]]; - } - }); - return func2; - }; - }, - "nthArg": function(nthArg) { - return function(n) { - var arity = n < 0 ? 1 : toInteger(n) + 1; - return curry(nthArg(n), arity); - }; - }, - "rearg": function(rearg2) { - return function(func2, indexes) { - var arity = indexes ? indexes.length : 0; - return curry(rearg2(func2, indexes), arity); - }; - }, - "runInContext": function(runInContext) { - return function(context) { - return baseConvert(util, runInContext(context), options); - }; - } - }; - function castCap(name2, func2) { - if (config.cap) { - var indexes = mapping.iterateeRearg[name2]; - if (indexes) { - return iterateeRearg(func2, indexes); - } - var n = !isLib && mapping.iterateeAry[name2]; - if (n) { - return iterateeAry(func2, n); - } - } - return func2; - } - function castCurry(name2, func2, n) { - return forceCurry || config.curry && n > 1 ? curry(func2, n) : func2; - } - function castFixed(name2, func2, n) { - if (config.fixed && (forceFixed || !mapping.skipFixed[name2])) { - var data = mapping.methodSpread[name2], start = data && data.start; - return start === void 0 ? ary(func2, n) : flatSpread(func2, start); - } - return func2; - } - function castRearg(name2, func2, n) { - return config.rearg && n > 1 && (forceRearg || !mapping.skipRearg[name2]) ? rearg(func2, mapping.methodRearg[name2] || mapping.aryRearg[n]) : func2; - } - function cloneByPath(object, path) { - path = toPath(path); - var index = -1, length = path.length, lastIndex = length - 1, result = clone(Object(object)), nested = result; - while (nested != null && ++index < length) { - var key = path[index], value = nested[key]; - if (value != null && !(isFunction(value) || isError(value) || isWeakMap(value))) { - nested[key] = clone(index == lastIndex ? value : Object(value)); - } - nested = nested[key]; - } - return result; - } - function convertLib(options2) { - return _.runInContext.convert(options2)(void 0); - } - function createConverter(name2, func2) { - var realName = mapping.aliasToReal[name2] || name2, methodName = mapping.remap[realName] || realName, oldOptions = options; - return function(options2) { - var newUtil = isLib ? pristine : helpers, newFunc = isLib ? pristine[methodName] : func2, newOptions = assign2(assign2({}, oldOptions), options2); - return baseConvert(newUtil, realName, newFunc, newOptions); - }; - } - function iterateeAry(func2, n) { - return overArg(func2, function(func3) { - return typeof func3 == "function" ? baseAry(func3, n) : func3; - }); - } - function iterateeRearg(func2, indexes) { - return overArg(func2, function(func3) { - var n = indexes.length; - return baseArity(rearg(baseAry(func3, n), indexes), n); - }); - } - function overArg(func2, transform2) { - return function() { - var length = arguments.length; - if (!length) { - return func2(); - } - var args = Array(length); - while (length--) { - args[length] = arguments[length]; - } - var index = config.rearg ? 0 : length - 1; - args[index] = transform2(args[index]); - return func2.apply(void 0, args); - }; - } - function wrap(name2, func2, placeholder) { - var result, realName = mapping.aliasToReal[name2] || name2, wrapped = func2, wrapper = wrappers[realName]; - if (wrapper) { - wrapped = wrapper(func2); - } else if (config.immutable) { - if (mapping.mutate.array[realName]) { - wrapped = wrapImmutable(func2, cloneArray); - } else if (mapping.mutate.object[realName]) { - wrapped = wrapImmutable(func2, createCloner(func2)); - } else if (mapping.mutate.set[realName]) { - wrapped = wrapImmutable(func2, cloneByPath); - } - } - each(aryMethodKeys, function(aryKey) { - each(mapping.aryMethod[aryKey], function(otherName) { - if (realName == otherName) { - var data = mapping.methodSpread[realName], afterRearg = data && data.afterRearg; - result = afterRearg ? castFixed(realName, castRearg(realName, wrapped, aryKey), aryKey) : castRearg(realName, castFixed(realName, wrapped, aryKey), aryKey); - result = castCap(realName, result); - result = castCurry(realName, result, aryKey); - return false; - } - }); - return !result; - }); - result || (result = wrapped); - if (result == func2) { - result = forceCurry ? curry(result, 1) : function() { - return func2.apply(this, arguments); - }; - } - result.convert = createConverter(realName, func2); - result.placeholder = func2.placeholder = placeholder; - return result; - } - if (!isObj) { - return wrap(name, func, defaultHolder); - } - var _ = func; - var pairs = []; - each(aryMethodKeys, function(aryKey) { - each(mapping.aryMethod[aryKey], function(key) { - var func2 = _[mapping.remap[key] || key]; - if (func2) { - pairs.push([key, wrap(key, func2, _)]); - } - }); - }); - each(keys(_), function(key) { - var func2 = _[key]; - if (typeof func2 == "function") { - var length = pairs.length; - while (length--) { - if (pairs[length][0] == key) { - return; - } - } - func2.convert = createConverter(key, func2); - pairs.push([key, func2]); - } - }); - each(pairs, function(pair) { - _[pair[0]] = pair[1]; - }); - _.convert = convertLib; - _.placeholder = _; - each(keys(_), function(key) { - each(mapping.realToAlias[key] || [], function(alias) { - _[alias] = _[key]; - }); - }); - return _; - } - module2.exports = baseConvert; - } -}); - -// node_modules/lodash/fp.js -var require_fp = __commonJS({ - "node_modules/lodash/fp.js"(exports, module2) { - var _ = require_lodash_min().runInContext(); - module2.exports = require_baseConvert()(_, _); - } -}); - -// node_modules/fraction.js/fraction.js -var require_fraction = __commonJS({ - "node_modules/fraction.js/fraction.js"(exports, module2) { - (function(root) { - "use strict"; - var MAX_CYCLE_LEN = 2e3; - var P = { - "s": 1, - "n": 0, - "d": 1 - }; - function createError(name) { - function errorConstructor() { - var temp = Error.apply(this, arguments); - temp["name"] = this["name"] = name; - this["stack"] = temp["stack"]; - this["message"] = temp["message"]; - } - function IntermediateInheritor() { - } - IntermediateInheritor.prototype = Error.prototype; - errorConstructor.prototype = new IntermediateInheritor(); - return errorConstructor; - } - var DivisionByZero = Fraction2["DivisionByZero"] = createError("DivisionByZero"); - var InvalidParameter = Fraction2["InvalidParameter"] = createError("InvalidParameter"); - function assign2(n, s) { - if (isNaN(n = parseInt(n, 10))) { - throwInvalidParam(); - } - return n * s; - } - function throwInvalidParam() { - throw new InvalidParameter(); - } - function factorize(num) { - var factors = {}; - var n = num; - var i = 2; - var s = 4; - while (s <= n) { - while (n % i === 0) { - n /= i; - factors[i] = (factors[i] || 0) + 1; - } - s += 1 + 2 * i++; - } - if (n !== num) { - if (n > 1) - factors[n] = (factors[n] || 0) + 1; - } else { - factors[num] = (factors[num] || 0) + 1; - } - return factors; - } - var parse = function(p1, p2) { - var n = 0, d = 1, s = 1; - var v = 0, w = 0, x = 0, y = 1, z = 1; - var A = 0, B = 1; - var C = 1, D = 1; - var N = 1e7; - var M; - if (p1 === void 0 || p1 === null) { - } else if (p2 !== void 0) { - n = p1; - d = p2; - s = n * d; - } else - switch (typeof p1) { - case "object": { - if ("d" in p1 && "n" in p1) { - n = p1["n"]; - d = p1["d"]; - if ("s" in p1) - n *= p1["s"]; - } else if (0 in p1) { - n = p1[0]; - if (1 in p1) - d = p1[1]; - } else { - throwInvalidParam(); - } - s = n * d; - break; - } - case "number": { - if (p1 < 0) { - s = p1; - p1 = -p1; - } - if (p1 % 1 === 0) { - n = p1; - } else if (p1 > 0) { - if (p1 >= 1) { - z = Math.pow(10, Math.floor(1 + Math.log(p1) / Math.LN10)); - p1 /= z; - } - while (B <= N && D <= N) { - M = (A + C) / (B + D); - if (p1 === M) { - if (B + D <= N) { - n = A + C; - d = B + D; - } else if (D > B) { - n = C; - d = D; - } else { - n = A; - d = B; - } - break; - } else { - if (p1 > M) { - A += C; - B += D; - } else { - C += A; - D += B; - } - if (B > N) { - n = C; - d = D; - } else { - n = A; - d = B; - } - } - } - n *= z; - } else if (isNaN(p1) || isNaN(p2)) { - d = n = NaN; - } - break; - } - case "string": { - B = p1.match(/\d+|./g); - if (B === null) - throwInvalidParam(); - if (B[A] === "-") { - s = -1; - A++; - } else if (B[A] === "+") { - A++; - } - if (B.length === A + 1) { - w = assign2(B[A++], s); - } else if (B[A + 1] === "." || B[A] === ".") { - if (B[A] !== ".") { - v = assign2(B[A++], s); - } - A++; - if (A + 1 === B.length || B[A + 1] === "(" && B[A + 3] === ")" || B[A + 1] === "'" && B[A + 3] === "'") { - w = assign2(B[A], s); - y = Math.pow(10, B[A].length); - A++; - } - if (B[A] === "(" && B[A + 2] === ")" || B[A] === "'" && B[A + 2] === "'") { - x = assign2(B[A + 1], s); - z = Math.pow(10, B[A + 1].length) - 1; - A += 3; - } - } else if (B[A + 1] === "/" || B[A + 1] === ":") { - w = assign2(B[A], s); - y = assign2(B[A + 2], 1); - A += 3; - } else if (B[A + 3] === "/" && B[A + 1] === " ") { - v = assign2(B[A], s); - w = assign2(B[A + 2], s); - y = assign2(B[A + 4], 1); - A += 5; - } - if (B.length <= A) { - d = y * z; - s = /* void */ - n = x + d * v + z * w; - break; - } - } - default: - throwInvalidParam(); - } - if (d === 0) { - throw new DivisionByZero(); - } - P["s"] = s < 0 ? -1 : 1; - P["n"] = Math.abs(n); - P["d"] = Math.abs(d); - }; - function modpow(b, e, m) { - var r = 1; - for (; e > 0; b = b * b % m, e >>= 1) { - if (e & 1) { - r = r * b % m; - } - } - return r; - } - function cycleLen(n, d) { - for (; d % 2 === 0; d /= 2) { - } - for (; d % 5 === 0; d /= 5) { - } - if (d === 1) - return 0; - var rem = 10 % d; - var t = 1; - for (; rem !== 1; t++) { - rem = rem * 10 % d; - if (t > MAX_CYCLE_LEN) - return 0; - } - return t; - } - function cycleStart(n, d, len) { - var rem1 = 1; - var rem2 = modpow(10, len, d); - for (var t = 0; t < 300; t++) { - if (rem1 === rem2) - return t; - rem1 = rem1 * 10 % d; - rem2 = rem2 * 10 % d; - } - return 0; - } - function gcd(a, b) { - if (!a) - return b; - if (!b) - return a; - while (1) { - a %= b; - if (!a) - return b; - b %= a; - if (!b) - return a; - } - } - ; - function Fraction2(a, b) { - if (!(this instanceof Fraction2)) { - return new Fraction2(a, b); - } - parse(a, b); - if (Fraction2["REDUCE"]) { - a = gcd(P["d"], P["n"]); - } else { - a = 1; - } - this["s"] = P["s"]; - this["n"] = P["n"] / a; - this["d"] = P["d"] / a; - } - Fraction2["REDUCE"] = 1; - Fraction2.prototype = { - "s": 1, - "n": 0, - "d": 1, - /** - * Calculates the absolute value - * - * Ex: new Fraction(-4).abs() => 4 - **/ - "abs": function() { - return new Fraction2(this["n"], this["d"]); - }, - /** - * Inverts the sign of the current fraction - * - * Ex: new Fraction(-4).neg() => 4 - **/ - "neg": function() { - return new Fraction2(-this["s"] * this["n"], this["d"]); - }, - /** - * Adds two rational numbers - * - * Ex: new Fraction({n: 2, d: 3}).add("14.9") => 467 / 30 - **/ - "add": function(a, b) { - parse(a, b); - return new Fraction2( - this["s"] * this["n"] * P["d"] + P["s"] * this["d"] * P["n"], - this["d"] * P["d"] - ); - }, - /** - * Subtracts two rational numbers - * - * Ex: new Fraction({n: 2, d: 3}).add("14.9") => -427 / 30 - **/ - "sub": function(a, b) { - parse(a, b); - return new Fraction2( - this["s"] * this["n"] * P["d"] - P["s"] * this["d"] * P["n"], - this["d"] * P["d"] - ); - }, - /** - * Multiplies two rational numbers - * - * Ex: new Fraction("-17.(345)").mul(3) => 5776 / 111 - **/ - "mul": function(a, b) { - parse(a, b); - return new Fraction2( - this["s"] * P["s"] * this["n"] * P["n"], - this["d"] * P["d"] - ); - }, - /** - * Divides two rational numbers - * - * Ex: new Fraction("-17.(345)").inverse().div(3) - **/ - "div": function(a, b) { - parse(a, b); - return new Fraction2( - this["s"] * P["s"] * this["n"] * P["d"], - this["d"] * P["n"] - ); - }, - /** - * Clones the actual object - * - * Ex: new Fraction("-17.(345)").clone() - **/ - "clone": function() { - return new Fraction2(this); - }, - /** - * Calculates the modulo of two rational numbers - a more precise fmod - * - * Ex: new Fraction('4.(3)').mod([7, 8]) => (13/3) % (7/8) = (5/6) - **/ - "mod": function(a, b) { - if (isNaN(this["n"]) || isNaN(this["d"])) { - return new Fraction2(NaN); - } - if (a === void 0) { - return new Fraction2(this["s"] * this["n"] % this["d"], 1); - } - parse(a, b); - if (0 === P["n"] && 0 === this["d"]) { - Fraction2(0, 0); - } - return new Fraction2( - this["s"] * (P["d"] * this["n"]) % (P["n"] * this["d"]), - P["d"] * this["d"] - ); - }, - /** - * Calculates the fractional gcd of two rational numbers - * - * Ex: new Fraction(5,8).gcd(3,7) => 1/56 - */ - "gcd": function(a, b) { - parse(a, b); - return new Fraction2(gcd(P["n"], this["n"]) * gcd(P["d"], this["d"]), P["d"] * this["d"]); - }, - /** - * Calculates the fractional lcm of two rational numbers - * - * Ex: new Fraction(5,8).lcm(3,7) => 15 - */ - "lcm": function(a, b) { - parse(a, b); - if (P["n"] === 0 && this["n"] === 0) { - return new Fraction2(); - } - return new Fraction2(P["n"] * this["n"], gcd(P["n"], this["n"]) * gcd(P["d"], this["d"])); - }, - /** - * Calculates the ceil of a rational number - * - * Ex: new Fraction('4.(3)').ceil() => (5 / 1) - **/ - "ceil": function(places) { - places = Math.pow(10, places || 0); - if (isNaN(this["n"]) || isNaN(this["d"])) { - return new Fraction2(NaN); - } - return new Fraction2(Math.ceil(places * this["s"] * this["n"] / this["d"]), places); - }, - /** - * Calculates the floor of a rational number - * - * Ex: new Fraction('4.(3)').floor() => (4 / 1) - **/ - "floor": function(places) { - places = Math.pow(10, places || 0); - if (isNaN(this["n"]) || isNaN(this["d"])) { - return new Fraction2(NaN); - } - return new Fraction2(Math.floor(places * this["s"] * this["n"] / this["d"]), places); - }, - /** - * Rounds a rational numbers - * - * Ex: new Fraction('4.(3)').round() => (4 / 1) - **/ - "round": function(places) { - places = Math.pow(10, places || 0); - if (isNaN(this["n"]) || isNaN(this["d"])) { - return new Fraction2(NaN); - } - return new Fraction2(Math.round(places * this["s"] * this["n"] / this["d"]), places); - }, - /** - * Gets the inverse of the fraction, means numerator and denominator are exchanged - * - * Ex: new Fraction([-3, 4]).inverse() => -4 / 3 - **/ - "inverse": function() { - return new Fraction2(this["s"] * this["d"], this["n"]); - }, - /** - * Calculates the fraction to some rational exponent, if possible - * - * Ex: new Fraction(-1,2).pow(-3) => -8 - */ - "pow": function(a, b) { - parse(a, b); - if (P["d"] === 1) { - if (P["s"] < 0) { - return new Fraction2(Math.pow(this["s"] * this["d"], P["n"]), Math.pow(this["n"], P["n"])); - } else { - return new Fraction2(Math.pow(this["s"] * this["n"], P["n"]), Math.pow(this["d"], P["n"])); - } - } - if (this["s"] < 0) - return null; - var N = factorize(this["n"]); - var D = factorize(this["d"]); - var n = 1; - var d = 1; - for (var k in N) { - if (k === "1") - continue; - if (k === "0") { - n = 0; - break; - } - N[k] *= P["n"]; - if (N[k] % P["d"] === 0) { - N[k] /= P["d"]; - } else - return null; - n *= Math.pow(k, N[k]); - } - for (var k in D) { - if (k === "1") - continue; - D[k] *= P["n"]; - if (D[k] % P["d"] === 0) { - D[k] /= P["d"]; - } else - return null; - d *= Math.pow(k, D[k]); - } - if (P["s"] < 0) { - return new Fraction2(d, n); - } - return new Fraction2(n, d); - }, - /** - * Check if two rational numbers are the same - * - * Ex: new Fraction(19.6).equals([98, 5]); - **/ - "equals": function(a, b) { - parse(a, b); - return this["s"] * this["n"] * P["d"] === P["s"] * P["n"] * this["d"]; - }, - /** - * Check if two rational numbers are the same - * - * Ex: new Fraction(19.6).equals([98, 5]); - **/ - "compare": function(a, b) { - parse(a, b); - var t = this["s"] * this["n"] * P["d"] - P["s"] * P["n"] * this["d"]; - return (0 < t) - (t < 0); - }, - "simplify": function(eps) { - if (isNaN(this["n"]) || isNaN(this["d"])) { - return this; - } - var cont = this["abs"]()["toContinued"](); - eps = eps || 1e-3; - function rec(a) { - if (a.length === 1) - return new Fraction2(a[0]); - return rec(a.slice(1))["inverse"]()["add"](a[0]); - } - for (var i = 0; i < cont.length; i++) { - var tmp = rec(cont.slice(0, i + 1)); - if (tmp["sub"](this["abs"]())["abs"]().valueOf() < eps) { - return tmp["mul"](this["s"]); - } - } - return this; - }, - /** - * Check if two rational numbers are divisible - * - * Ex: new Fraction(19.6).divisible(1.5); - */ - "divisible": function(a, b) { - parse(a, b); - return !(!(P["n"] * this["d"]) || this["n"] * P["d"] % (P["n"] * this["d"])); - }, - /** - * Returns a decimal representation of the fraction - * - * Ex: new Fraction("100.'91823'").valueOf() => 100.91823918239183 - **/ - "valueOf": function() { - return this["s"] * this["n"] / this["d"]; - }, - /** - * Returns a string-fraction representation of a Fraction object - * - * Ex: new Fraction("1.'3'").toFraction() => "4 1/3" - **/ - "toFraction": function(excludeWhole) { - var whole, str = ""; - var n = this["n"]; - var d = this["d"]; - if (this["s"] < 0) { - str += "-"; - } - if (d === 1) { - str += n; - } else { - if (excludeWhole && (whole = Math.floor(n / d)) > 0) { - str += whole; - str += " "; - n %= d; - } - str += n; - str += "/"; - str += d; - } - return str; - }, - /** - * Returns a latex representation of a Fraction object - * - * Ex: new Fraction("1.'3'").toLatex() => "\frac{4}{3}" - **/ - "toLatex": function(excludeWhole) { - var whole, str = ""; - var n = this["n"]; - var d = this["d"]; - if (this["s"] < 0) { - str += "-"; - } - if (d === 1) { - str += n; - } else { - if (excludeWhole && (whole = Math.floor(n / d)) > 0) { - str += whole; - n %= d; - } - str += "\\frac{"; - str += n; - str += "}{"; - str += d; - str += "}"; - } - return str; - }, - /** - * Returns an array of continued fraction elements - * - * Ex: new Fraction("7/8").toContinued() => [0,1,7] - */ - "toContinued": function() { - var t; - var a = this["n"]; - var b = this["d"]; - var res = []; - if (isNaN(a) || isNaN(b)) { - return res; - } - do { - res.push(Math.floor(a / b)); - t = a % b; - a = b; - b = t; - } while (a !== 1); - return res; - }, - /** - * Creates a string representation of a fraction with all digits - * - * Ex: new Fraction("100.'91823'").toString() => "100.(91823)" - **/ - "toString": function(dec) { - var g; - var N = this["n"]; - var D = this["d"]; - if (isNaN(N) || isNaN(D)) { - return "NaN"; - } - if (!Fraction2["REDUCE"]) { - g = gcd(N, D); - N /= g; - D /= g; - } - dec = dec || 15; - var cycLen = cycleLen(N, D); - var cycOff = cycleStart(N, D, cycLen); - var str = this["s"] === -1 ? "-" : ""; - str += N / D | 0; - N %= D; - N *= 10; - if (N) - str += "."; - if (cycLen) { - for (var i = cycOff; i--; ) { - str += N / D | 0; - N %= D; - N *= 10; - } - str += "("; - for (var i = cycLen; i--; ) { - str += N / D | 0; - N %= D; - N *= 10; - } - str += ")"; - } else { - for (var i = dec; N && i--; ) { - str += N / D | 0; - N %= D; - N *= 10; - } - } - return str; - } - }; - if (typeof define === "function" && define["amd"]) { - define([], function() { - return Fraction2; - }); - } else if (typeof exports === "object") { - Object.defineProperty(Fraction2, "__esModule", { "value": true }); - Fraction2["default"] = Fraction2; - Fraction2["Fraction"] = Fraction2; - module2["exports"] = Fraction2; - } else { - root["Fraction"] = Fraction2; - } - })(exports); - } -}); - -// node_modules/lodash/lodash.js -var require_lodash = __commonJS({ - "node_modules/lodash/lodash.js"(exports, module2) { - (function() { - var undefined2; - var VERSION = "4.17.21"; - var LARGE_ARRAY_SIZE = 200; - var CORE_ERROR_TEXT = "Unsupported core-js use. Try https://npms.io/search?q=ponyfill.", FUNC_ERROR_TEXT = "Expected a function", INVALID_TEMPL_VAR_ERROR_TEXT = "Invalid `variable` option passed into `_.template`"; - var HASH_UNDEFINED = "__lodash_hash_undefined__"; - var MAX_MEMOIZE_SIZE = 500; - var PLACEHOLDER = "__lodash_placeholder__"; - var CLONE_DEEP_FLAG = 1, CLONE_FLAT_FLAG = 2, CLONE_SYMBOLS_FLAG = 4; - var COMPARE_PARTIAL_FLAG = 1, COMPARE_UNORDERED_FLAG = 2; - var WRAP_BIND_FLAG = 1, WRAP_BIND_KEY_FLAG = 2, WRAP_CURRY_BOUND_FLAG = 4, WRAP_CURRY_FLAG = 8, WRAP_CURRY_RIGHT_FLAG = 16, WRAP_PARTIAL_FLAG = 32, WRAP_PARTIAL_RIGHT_FLAG = 64, WRAP_ARY_FLAG = 128, WRAP_REARG_FLAG = 256, WRAP_FLIP_FLAG = 512; - var DEFAULT_TRUNC_LENGTH = 30, DEFAULT_TRUNC_OMISSION = "..."; - var HOT_COUNT = 800, HOT_SPAN = 16; - var LAZY_FILTER_FLAG = 1, LAZY_MAP_FLAG = 2, LAZY_WHILE_FLAG = 3; - var INFINITY = 1 / 0, MAX_SAFE_INTEGER = 9007199254740991, MAX_INTEGER = 17976931348623157e292, NAN = 0 / 0; - var MAX_ARRAY_LENGTH = 4294967295, MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1, HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1; - var wrapFlags = [ - ["ary", WRAP_ARY_FLAG], - ["bind", WRAP_BIND_FLAG], - ["bindKey", WRAP_BIND_KEY_FLAG], - ["curry", WRAP_CURRY_FLAG], - ["curryRight", WRAP_CURRY_RIGHT_FLAG], - ["flip", WRAP_FLIP_FLAG], - ["partial", WRAP_PARTIAL_FLAG], - ["partialRight", WRAP_PARTIAL_RIGHT_FLAG], - ["rearg", WRAP_REARG_FLAG] - ]; - var argsTag = "[object Arguments]", arrayTag = "[object Array]", asyncTag = "[object AsyncFunction]", boolTag = "[object Boolean]", dateTag = "[object Date]", domExcTag = "[object DOMException]", errorTag = "[object Error]", funcTag = "[object Function]", genTag = "[object GeneratorFunction]", mapTag = "[object Map]", numberTag = "[object Number]", nullTag = "[object Null]", objectTag = "[object Object]", promiseTag = "[object Promise]", proxyTag = "[object Proxy]", regexpTag = "[object RegExp]", setTag = "[object Set]", stringTag = "[object String]", symbolTag = "[object Symbol]", undefinedTag = "[object Undefined]", weakMapTag = "[object WeakMap]", weakSetTag = "[object WeakSet]"; - var arrayBufferTag = "[object ArrayBuffer]", dataViewTag = "[object DataView]", float32Tag = "[object Float32Array]", float64Tag = "[object Float64Array]", int8Tag = "[object Int8Array]", int16Tag = "[object Int16Array]", int32Tag = "[object Int32Array]", uint8Tag = "[object Uint8Array]", uint8ClampedTag = "[object Uint8ClampedArray]", uint16Tag = "[object Uint16Array]", uint32Tag = "[object Uint32Array]"; - var reEmptyStringLeading = /\b__p \+= '';/g, reEmptyStringMiddle = /\b(__p \+=) '' \+/g, reEmptyStringTrailing = /(__e\(.*?\)|\b__t\)) \+\n'';/g; - var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g, reUnescapedHtml = /[&<>"']/g, reHasEscapedHtml = RegExp(reEscapedHtml.source), reHasUnescapedHtml = RegExp(reUnescapedHtml.source); - var reEscape = /<%-([\s\S]+?)%>/g, reEvaluate = /<%([\s\S]+?)%>/g, reInterpolate = /<%=([\s\S]+?)%>/g; - var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, reIsPlainProp = /^\w*$/, rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; - var reRegExpChar = /[\\^$.*+?()[\]{}|]/g, reHasRegExpChar = RegExp(reRegExpChar.source); - var reTrimStart = /^\s+/; - var reWhitespace = /\s/; - var reWrapComment = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/, reWrapDetails = /\{\n\/\* \[wrapped with (.+)\] \*/, reSplitDetails = /,? & /; - var reAsciiWord = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g; - var reForbiddenIdentifierChars = /[()=,{}\[\]\/\s]/; - var reEscapeChar = /\\(\\)?/g; - var reEsTemplate = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g; - var reFlags = /\w*$/; - var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; - var reIsBinary = /^0b[01]+$/i; - var reIsHostCtor = /^\[object .+?Constructor\]$/; - var reIsOctal = /^0o[0-7]+$/i; - var reIsUint = /^(?:0|[1-9]\d*)$/; - var reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g; - var reNoMatch = /($^)/; - var reUnescapedString = /['\n\r\u2028\u2029\\]/g; - var rsAstralRange = "\\ud800-\\udfff", rsComboMarksRange = "\\u0300-\\u036f", reComboHalfMarksRange = "\\ufe20-\\ufe2f", rsComboSymbolsRange = "\\u20d0-\\u20ff", rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, rsDingbatRange = "\\u2700-\\u27bf", rsLowerRange = "a-z\\xdf-\\xf6\\xf8-\\xff", rsMathOpRange = "\\xac\\xb1\\xd7\\xf7", rsNonCharRange = "\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf", rsPunctuationRange = "\\u2000-\\u206f", rsSpaceRange = " \\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", rsUpperRange = "A-Z\\xc0-\\xd6\\xd8-\\xde", rsVarRange = "\\ufe0e\\ufe0f", rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange; - var rsApos = "['\u2019]", rsAstral = "[" + rsAstralRange + "]", rsBreak = "[" + rsBreakRange + "]", rsCombo = "[" + rsComboRange + "]", rsDigits = "\\d+", rsDingbat = "[" + rsDingbatRange + "]", rsLower = "[" + rsLowerRange + "]", rsMisc = "[^" + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + "]", rsFitz = "\\ud83c[\\udffb-\\udfff]", rsModifier = "(?:" + rsCombo + "|" + rsFitz + ")", rsNonAstral = "[^" + rsAstralRange + "]", rsRegional = "(?:\\ud83c[\\udde6-\\uddff]){2}", rsSurrPair = "[\\ud800-\\udbff][\\udc00-\\udfff]", rsUpper = "[" + rsUpperRange + "]", rsZWJ = "\\u200d"; - var rsMiscLower = "(?:" + rsLower + "|" + rsMisc + ")", rsMiscUpper = "(?:" + rsUpper + "|" + rsMisc + ")", rsOptContrLower = "(?:" + rsApos + "(?:d|ll|m|re|s|t|ve))?", rsOptContrUpper = "(?:" + rsApos + "(?:D|LL|M|RE|S|T|VE))?", reOptMod = rsModifier + "?", rsOptVar = "[" + rsVarRange + "]?", rsOptJoin = "(?:" + rsZWJ + "(?:" + [rsNonAstral, rsRegional, rsSurrPair].join("|") + ")" + rsOptVar + reOptMod + ")*", rsOrdLower = "\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])", rsOrdUpper = "\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])", rsSeq = rsOptVar + reOptMod + rsOptJoin, rsEmoji = "(?:" + [rsDingbat, rsRegional, rsSurrPair].join("|") + ")" + rsSeq, rsSymbol = "(?:" + [rsNonAstral + rsCombo + "?", rsCombo, rsRegional, rsSurrPair, rsAstral].join("|") + ")"; - var reApos = RegExp(rsApos, "g"); - var reComboMark = RegExp(rsCombo, "g"); - var reUnicode = RegExp(rsFitz + "(?=" + rsFitz + ")|" + rsSymbol + rsSeq, "g"); - var reUnicodeWord = RegExp([ - rsUpper + "?" + rsLower + "+" + rsOptContrLower + "(?=" + [rsBreak, rsUpper, "$"].join("|") + ")", - rsMiscUpper + "+" + rsOptContrUpper + "(?=" + [rsBreak, rsUpper + rsMiscLower, "$"].join("|") + ")", - rsUpper + "?" + rsMiscLower + "+" + rsOptContrLower, - rsUpper + "+" + rsOptContrUpper, - rsOrdUpper, - rsOrdLower, - rsDigits, - rsEmoji - ].join("|"), "g"); - var reHasUnicode = RegExp("[" + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + "]"); - var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/; - var contextProps = [ - "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" - ]; - var templateCounter = -1; - var typedArrayTags = {}; - typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true; - typedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false; - var cloneableTags = {}; - cloneableTags[argsTag] = cloneableTags[arrayTag] = cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = cloneableTags[boolTag] = cloneableTags[dateTag] = cloneableTags[float32Tag] = cloneableTags[float64Tag] = cloneableTags[int8Tag] = cloneableTags[int16Tag] = cloneableTags[int32Tag] = cloneableTags[mapTag] = cloneableTags[numberTag] = cloneableTags[objectTag] = cloneableTags[regexpTag] = cloneableTags[setTag] = cloneableTags[stringTag] = cloneableTags[symbolTag] = cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true; - cloneableTags[errorTag] = cloneableTags[funcTag] = cloneableTags[weakMapTag] = false; - var deburredLetters = { - // Latin-1 Supplement block. - "\xC0": "A", - "\xC1": "A", - "\xC2": "A", - "\xC3": "A", - "\xC4": "A", - "\xC5": "A", - "\xE0": "a", - "\xE1": "a", - "\xE2": "a", - "\xE3": "a", - "\xE4": "a", - "\xE5": "a", - "\xC7": "C", - "\xE7": "c", - "\xD0": "D", - "\xF0": "d", - "\xC8": "E", - "\xC9": "E", - "\xCA": "E", - "\xCB": "E", - "\xE8": "e", - "\xE9": "e", - "\xEA": "e", - "\xEB": "e", - "\xCC": "I", - "\xCD": "I", - "\xCE": "I", - "\xCF": "I", - "\xEC": "i", - "\xED": "i", - "\xEE": "i", - "\xEF": "i", - "\xD1": "N", - "\xF1": "n", - "\xD2": "O", - "\xD3": "O", - "\xD4": "O", - "\xD5": "O", - "\xD6": "O", - "\xD8": "O", - "\xF2": "o", - "\xF3": "o", - "\xF4": "o", - "\xF5": "o", - "\xF6": "o", - "\xF8": "o", - "\xD9": "U", - "\xDA": "U", - "\xDB": "U", - "\xDC": "U", - "\xF9": "u", - "\xFA": "u", - "\xFB": "u", - "\xFC": "u", - "\xDD": "Y", - "\xFD": "y", - "\xFF": "y", - "\xC6": "Ae", - "\xE6": "ae", - "\xDE": "Th", - "\xFE": "th", - "\xDF": "ss", - // Latin Extended-A block. - "\u0100": "A", - "\u0102": "A", - "\u0104": "A", - "\u0101": "a", - "\u0103": "a", - "\u0105": "a", - "\u0106": "C", - "\u0108": "C", - "\u010A": "C", - "\u010C": "C", - "\u0107": "c", - "\u0109": "c", - "\u010B": "c", - "\u010D": "c", - "\u010E": "D", - "\u0110": "D", - "\u010F": "d", - "\u0111": "d", - "\u0112": "E", - "\u0114": "E", - "\u0116": "E", - "\u0118": "E", - "\u011A": "E", - "\u0113": "e", - "\u0115": "e", - "\u0117": "e", - "\u0119": "e", - "\u011B": "e", - "\u011C": "G", - "\u011E": "G", - "\u0120": "G", - "\u0122": "G", - "\u011D": "g", - "\u011F": "g", - "\u0121": "g", - "\u0123": "g", - "\u0124": "H", - "\u0126": "H", - "\u0125": "h", - "\u0127": "h", - "\u0128": "I", - "\u012A": "I", - "\u012C": "I", - "\u012E": "I", - "\u0130": "I", - "\u0129": "i", - "\u012B": "i", - "\u012D": "i", - "\u012F": "i", - "\u0131": "i", - "\u0134": "J", - "\u0135": "j", - "\u0136": "K", - "\u0137": "k", - "\u0138": "k", - "\u0139": "L", - "\u013B": "L", - "\u013D": "L", - "\u013F": "L", - "\u0141": "L", - "\u013A": "l", - "\u013C": "l", - "\u013E": "l", - "\u0140": "l", - "\u0142": "l", - "\u0143": "N", - "\u0145": "N", - "\u0147": "N", - "\u014A": "N", - "\u0144": "n", - "\u0146": "n", - "\u0148": "n", - "\u014B": "n", - "\u014C": "O", - "\u014E": "O", - "\u0150": "O", - "\u014D": "o", - "\u014F": "o", - "\u0151": "o", - "\u0154": "R", - "\u0156": "R", - "\u0158": "R", - "\u0155": "r", - "\u0157": "r", - "\u0159": "r", - "\u015A": "S", - "\u015C": "S", - "\u015E": "S", - "\u0160": "S", - "\u015B": "s", - "\u015D": "s", - "\u015F": "s", - "\u0161": "s", - "\u0162": "T", - "\u0164": "T", - "\u0166": "T", - "\u0163": "t", - "\u0165": "t", - "\u0167": "t", - "\u0168": "U", - "\u016A": "U", - "\u016C": "U", - "\u016E": "U", - "\u0170": "U", - "\u0172": "U", - "\u0169": "u", - "\u016B": "u", - "\u016D": "u", - "\u016F": "u", - "\u0171": "u", - "\u0173": "u", - "\u0174": "W", - "\u0175": "w", - "\u0176": "Y", - "\u0177": "y", - "\u0178": "Y", - "\u0179": "Z", - "\u017B": "Z", - "\u017D": "Z", - "\u017A": "z", - "\u017C": "z", - "\u017E": "z", - "\u0132": "IJ", - "\u0133": "ij", - "\u0152": "Oe", - "\u0153": "oe", - "\u0149": "'n", - "\u017F": "s" - }; - var htmlEscapes = { - "&": "&", - "<": "<", - ">": ">", - '"': """, - "'": "'" - }; - var htmlUnescapes = { - "&": "&", - "<": "<", - ">": ">", - """: '"', - "'": "'" - }; - var stringEscapes = { - "\\": "\\", - "'": "'", - "\n": "n", - "\r": "r", - "\u2028": "u2028", - "\u2029": "u2029" - }; - var freeParseFloat = parseFloat, freeParseInt = parseInt; - var freeGlobal = typeof global == "object" && global && global.Object === Object && global; - var freeSelf = typeof self == "object" && self && self.Object === Object && self; - var root = freeGlobal || freeSelf || Function("return this")(); - var freeExports = typeof exports == "object" && exports && !exports.nodeType && exports; - var freeModule = freeExports && typeof module2 == "object" && module2 && !module2.nodeType && module2; - var moduleExports = freeModule && freeModule.exports === freeExports; - var freeProcess = moduleExports && freeGlobal.process; - var nodeUtil = function() { - try { - var types = freeModule && freeModule.require && freeModule.require("util").types; - if (types) { - return types; - } - return freeProcess && freeProcess.binding && freeProcess.binding("util"); - } catch (e) { - } - }(); - var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer, nodeIsDate = nodeUtil && nodeUtil.isDate, nodeIsMap = nodeUtil && nodeUtil.isMap, nodeIsRegExp = nodeUtil && nodeUtil.isRegExp, nodeIsSet = nodeUtil && nodeUtil.isSet, nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; - function apply(func, thisArg, args) { - switch (args.length) { - case 0: - return func.call(thisArg); - case 1: - return func.call(thisArg, args[0]); - case 2: - return func.call(thisArg, args[0], args[1]); - case 3: - return func.call(thisArg, args[0], args[1], args[2]); - } - return func.apply(thisArg, args); - } - function arrayAggregator(array, setter, iteratee, accumulator) { - var index = -1, length = array == null ? 0 : array.length; - while (++index < length) { - var value = array[index]; - setter(accumulator, value, iteratee(value), array); - } - return accumulator; - } - function arrayEach(array, iteratee) { - var index = -1, length = array == null ? 0 : array.length; - while (++index < length) { - if (iteratee(array[index], index, array) === false) { - break; - } - } - return array; - } - function arrayEachRight(array, iteratee) { - var length = array == null ? 0 : array.length; - while (length--) { - if (iteratee(array[length], length, array) === false) { - break; - } - } - return array; - } - function arrayEvery(array, predicate) { - var index = -1, length = array == null ? 0 : array.length; - while (++index < length) { - if (!predicate(array[index], index, array)) { - return false; - } - } - return true; - } - function arrayFilter(array, predicate) { - var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result = []; - while (++index < length) { - var value = array[index]; - if (predicate(value, index, array)) { - result[resIndex++] = value; - } - } - return result; - } - function arrayIncludes(array, value) { - var length = array == null ? 0 : array.length; - return !!length && baseIndexOf(array, value, 0) > -1; - } - function arrayIncludesWith(array, value, comparator) { - var index = -1, length = array == null ? 0 : array.length; - while (++index < length) { - if (comparator(value, array[index])) { - return true; - } - } - return false; - } - function arrayMap(array, iteratee) { - var index = -1, length = array == null ? 0 : array.length, result = Array(length); - while (++index < length) { - result[index] = iteratee(array[index], index, array); - } - return result; - } - function arrayPush(array, values) { - var index = -1, length = values.length, offset = array.length; - while (++index < length) { - array[offset + index] = values[index]; - } - return array; - } - function arrayReduce(array, iteratee, accumulator, initAccum) { - var index = -1, length = array == null ? 0 : array.length; - if (initAccum && length) { - accumulator = array[++index]; - } - while (++index < length) { - accumulator = iteratee(accumulator, array[index], index, array); - } - return accumulator; - } - function arrayReduceRight(array, iteratee, accumulator, initAccum) { - var length = array == null ? 0 : array.length; - if (initAccum && length) { - accumulator = array[--length]; - } - while (length--) { - accumulator = iteratee(accumulator, array[length], length, array); - } - return accumulator; - } - function arraySome(array, predicate) { - var index = -1, length = array == null ? 0 : array.length; - while (++index < length) { - if (predicate(array[index], index, array)) { - return true; - } - } - return false; - } - var asciiSize = baseProperty("length"); - function asciiToArray(string) { - return string.split(""); - } - function asciiWords(string) { - return string.match(reAsciiWord) || []; - } - function baseFindKey(collection, predicate, eachFunc) { - var result; - eachFunc(collection, function(value, key, collection2) { - if (predicate(value, key, collection2)) { - result = key; - return false; - } - }); - return result; - } - function baseFindIndex(array, predicate, fromIndex, fromRight) { - var length = array.length, index = fromIndex + (fromRight ? 1 : -1); - while (fromRight ? index-- : ++index < length) { - if (predicate(array[index], index, array)) { - return index; - } - } - return -1; - } - function baseIndexOf(array, value, fromIndex) { - return value === value ? strictIndexOf(array, value, fromIndex) : baseFindIndex(array, baseIsNaN, fromIndex); - } - function baseIndexOfWith(array, value, fromIndex, comparator) { - var index = fromIndex - 1, length = array.length; - while (++index < length) { - if (comparator(array[index], value)) { - return index; - } - } - return -1; - } - function baseIsNaN(value) { - return value !== value; - } - function baseMean(array, iteratee) { - var length = array == null ? 0 : array.length; - return length ? baseSum(array, iteratee) / length : NAN; - } - function baseProperty(key) { - return function(object) { - return object == null ? undefined2 : object[key]; - }; - } - function basePropertyOf(object) { - return function(key) { - return object == null ? undefined2 : object[key]; - }; - } - function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) { - eachFunc(collection, function(value, index, collection2) { - accumulator = initAccum ? (initAccum = false, value) : iteratee(accumulator, value, index, collection2); - }); - return accumulator; - } - function baseSortBy(array, comparer) { - var length = array.length; - array.sort(comparer); - while (length--) { - array[length] = array[length].value; - } - return array; - } - function baseSum(array, iteratee) { - var result, index = -1, length = array.length; - while (++index < length) { - var current = iteratee(array[index]); - if (current !== undefined2) { - result = result === undefined2 ? current : result + current; - } - } - return result; - } - function baseTimes(n, iteratee) { - var index = -1, result = Array(n); - while (++index < n) { - result[index] = iteratee(index); - } - return result; - } - function baseToPairs(object, props) { - return arrayMap(props, function(key) { - return [key, object[key]]; - }); - } - function baseTrim(string) { - return string ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, "") : string; - } - function baseUnary(func) { - return function(value) { - return func(value); - }; - } - function baseValues(object, props) { - return arrayMap(props, function(key) { - return object[key]; - }); - } - function cacheHas(cache, key) { - return cache.has(key); - } - function charsStartIndex(strSymbols, chrSymbols) { - var index = -1, length = strSymbols.length; - while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) { - } - return index; - } - function charsEndIndex(strSymbols, chrSymbols) { - var index = strSymbols.length; - while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) { - } - return index; - } - function countHolders(array, placeholder) { - var length = array.length, result = 0; - while (length--) { - if (array[length] === placeholder) { - ++result; - } - } - return result; - } - var deburrLetter = basePropertyOf(deburredLetters); - var escapeHtmlChar = basePropertyOf(htmlEscapes); - function escapeStringChar(chr) { - return "\\" + stringEscapes[chr]; - } - function getValue(object, key) { - return object == null ? undefined2 : object[key]; - } - function hasUnicode(string) { - return reHasUnicode.test(string); - } - function hasUnicodeWord(string) { - return reHasUnicodeWord.test(string); - } - function iteratorToArray(iterator) { - var data, result = []; - while (!(data = iterator.next()).done) { - result.push(data.value); - } - return result; - } - function mapToArray(map) { - var index = -1, result = Array(map.size); - map.forEach(function(value, key) { - result[++index] = [key, value]; - }); - return result; - } - function overArg(func, transform2) { - return function(arg) { - return func(transform2(arg)); - }; - } - function replaceHolders(array, placeholder) { - var index = -1, length = array.length, resIndex = 0, result = []; - while (++index < length) { - var value = array[index]; - if (value === placeholder || value === PLACEHOLDER) { - array[index] = PLACEHOLDER; - result[resIndex++] = index; - } - } - return result; - } - function setToArray(set) { - var index = -1, result = Array(set.size); - set.forEach(function(value) { - result[++index] = value; - }); - return result; - } - function setToPairs(set) { - var index = -1, result = Array(set.size); - set.forEach(function(value) { - result[++index] = [value, value]; - }); - return result; - } - function strictIndexOf(array, value, fromIndex) { - var index = fromIndex - 1, length = array.length; - while (++index < length) { - if (array[index] === value) { - return index; - } - } - return -1; - } - function strictLastIndexOf(array, value, fromIndex) { - var index = fromIndex + 1; - while (index--) { - if (array[index] === value) { - return index; - } - } - return index; - } - function stringSize(string) { - return hasUnicode(string) ? unicodeSize(string) : asciiSize(string); - } - function stringToArray(string) { - return hasUnicode(string) ? unicodeToArray(string) : asciiToArray(string); - } - function trimmedEndIndex(string) { - var index = string.length; - while (index-- && reWhitespace.test(string.charAt(index))) { - } - return index; - } - var unescapeHtmlChar = basePropertyOf(htmlUnescapes); - function unicodeSize(string) { - var result = reUnicode.lastIndex = 0; - while (reUnicode.test(string)) { - ++result; - } - return result; - } - function unicodeToArray(string) { - return string.match(reUnicode) || []; - } - function unicodeWords(string) { - return string.match(reUnicodeWord) || []; - } - var runInContext = function runInContext2(context) { - context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps)); - var Array2 = context.Array, Date2 = context.Date, Error2 = context.Error, Function2 = context.Function, Math2 = context.Math, Object2 = context.Object, RegExp2 = context.RegExp, String2 = context.String, TypeError2 = context.TypeError; - var arrayProto = Array2.prototype, funcProto = Function2.prototype, objectProto = Object2.prototype; - var coreJsData = context["__core-js_shared__"]; - var funcToString = funcProto.toString; - var hasOwnProperty = objectProto.hasOwnProperty; - var idCounter = 0; - var maskSrcKey = function() { - var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ""); - return uid ? "Symbol(src)_1." + uid : ""; - }(); - var nativeObjectToString = objectProto.toString; - var objectCtorString = funcToString.call(Object2); - var oldDash = root._; - var reIsNative = RegExp2( - "^" + funcToString.call(hasOwnProperty).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$" - ); - var Buffer2 = moduleExports ? context.Buffer : undefined2, Symbol2 = context.Symbol, Uint8Array2 = context.Uint8Array, allocUnsafe = Buffer2 ? Buffer2.allocUnsafe : undefined2, getPrototype = overArg(Object2.getPrototypeOf, Object2), objectCreate = Object2.create, propertyIsEnumerable = objectProto.propertyIsEnumerable, splice = arrayProto.splice, spreadableSymbol = Symbol2 ? Symbol2.isConcatSpreadable : undefined2, symIterator = Symbol2 ? Symbol2.iterator : undefined2, symToStringTag = Symbol2 ? Symbol2.toStringTag : undefined2; - var defineProperty = function() { - try { - var func = getNative(Object2, "defineProperty"); - func({}, "", {}); - return func; - } catch (e) { - } - }(); - var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout, ctxNow = Date2 && Date2.now !== root.Date.now && Date2.now, ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout; - var nativeCeil = Math2.ceil, nativeFloor = Math2.floor, nativeGetSymbols = Object2.getOwnPropertySymbols, nativeIsBuffer = Buffer2 ? Buffer2.isBuffer : undefined2, nativeIsFinite = context.isFinite, nativeJoin = arrayProto.join, nativeKeys = overArg(Object2.keys, Object2), nativeMax = Math2.max, nativeMin = Math2.min, nativeNow = Date2.now, nativeParseInt = context.parseInt, nativeRandom = Math2.random, nativeReverse = arrayProto.reverse; - var DataView = getNative(context, "DataView"), Map2 = getNative(context, "Map"), Promise2 = getNative(context, "Promise"), Set2 = getNative(context, "Set"), WeakMap2 = getNative(context, "WeakMap"), nativeCreate = getNative(Object2, "create"); - var metaMap = WeakMap2 && new WeakMap2(); - var realNames = {}; - var dataViewCtorString = toSource(DataView), mapCtorString = toSource(Map2), promiseCtorString = toSource(Promise2), setCtorString = toSource(Set2), weakMapCtorString = toSource(WeakMap2); - var symbolProto = Symbol2 ? Symbol2.prototype : undefined2, symbolValueOf = symbolProto ? symbolProto.valueOf : undefined2, symbolToString = symbolProto ? symbolProto.toString : undefined2; - function lodash(value) { - if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) { - if (value instanceof LodashWrapper) { - return value; - } - if (hasOwnProperty.call(value, "__wrapped__")) { - return wrapperClone(value); - } - } - return new LodashWrapper(value); - } - var baseCreate = function() { - function object() { - } - return function(proto) { - if (!isObject(proto)) { - return {}; - } - if (objectCreate) { - return objectCreate(proto); - } - object.prototype = proto; - var result2 = new object(); - object.prototype = undefined2; - return result2; - }; - }(); - function baseLodash() { - } - function LodashWrapper(value, chainAll) { - this.__wrapped__ = value; - this.__actions__ = []; - this.__chain__ = !!chainAll; - this.__index__ = 0; - this.__values__ = undefined2; - } - lodash.templateSettings = { - /** - * Used to detect `data` property values to be HTML-escaped. - * - * @memberOf _.templateSettings - * @type {RegExp} - */ - "escape": reEscape, - /** - * Used to detect code to be evaluated. - * - * @memberOf _.templateSettings - * @type {RegExp} - */ - "evaluate": reEvaluate, - /** - * Used to detect `data` property values to inject. - * - * @memberOf _.templateSettings - * @type {RegExp} - */ - "interpolate": reInterpolate, - /** - * Used to reference the data object in the template text. - * - * @memberOf _.templateSettings - * @type {string} - */ - "variable": "", - /** - * Used to import variables into the compiled template. - * - * @memberOf _.templateSettings - * @type {Object} - */ - "imports": { - /** - * A reference to the `lodash` function. - * - * @memberOf _.templateSettings.imports - * @type {Function} - */ - "_": lodash - } - }; - lodash.prototype = baseLodash.prototype; - lodash.prototype.constructor = lodash; - LodashWrapper.prototype = baseCreate(baseLodash.prototype); - LodashWrapper.prototype.constructor = LodashWrapper; - function LazyWrapper(value) { - this.__wrapped__ = value; - this.__actions__ = []; - this.__dir__ = 1; - this.__filtered__ = false; - this.__iteratees__ = []; - this.__takeCount__ = MAX_ARRAY_LENGTH; - this.__views__ = []; - } - function lazyClone() { - var result2 = new LazyWrapper(this.__wrapped__); - result2.__actions__ = copyArray(this.__actions__); - result2.__dir__ = this.__dir__; - result2.__filtered__ = this.__filtered__; - result2.__iteratees__ = copyArray(this.__iteratees__); - result2.__takeCount__ = this.__takeCount__; - result2.__views__ = copyArray(this.__views__); - return result2; - } - function lazyReverse() { - if (this.__filtered__) { - var result2 = new LazyWrapper(this); - result2.__dir__ = -1; - result2.__filtered__ = true; - } else { - result2 = this.clone(); - result2.__dir__ *= -1; - } - return result2; - } - function lazyValue() { - var array = this.__wrapped__.value(), dir = this.__dir__, isArr = isArray(array), isRight = dir < 0, arrLength = isArr ? array.length : 0, view = getView(0, arrLength, this.__views__), start = view.start, end = view.end, length = end - start, index = isRight ? end : start - 1, iteratees = this.__iteratees__, iterLength = iteratees.length, resIndex = 0, takeCount = nativeMin(length, this.__takeCount__); - if (!isArr || !isRight && arrLength == length && takeCount == length) { - return baseWrapperValue(array, this.__actions__); - } - var result2 = []; - outer: - while (length-- && resIndex < takeCount) { - index += dir; - var iterIndex = -1, value = array[index]; - while (++iterIndex < iterLength) { - var data = iteratees[iterIndex], iteratee2 = data.iteratee, type = data.type, computed = iteratee2(value); - if (type == LAZY_MAP_FLAG) { - value = computed; - } else if (!computed) { - if (type == LAZY_FILTER_FLAG) { - continue outer; - } else { - break outer; - } - } - } - result2[resIndex++] = value; - } - return result2; - } - LazyWrapper.prototype = baseCreate(baseLodash.prototype); - LazyWrapper.prototype.constructor = LazyWrapper; - function Hash(entries) { - var index = -1, length = entries == null ? 0 : entries.length; - this.clear(); - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); - } - } - function hashClear() { - this.__data__ = nativeCreate ? nativeCreate(null) : {}; - this.size = 0; - } - function hashDelete(key) { - var result2 = this.has(key) && delete this.__data__[key]; - this.size -= result2 ? 1 : 0; - return result2; - } - function hashGet(key) { - var data = this.__data__; - if (nativeCreate) { - var result2 = data[key]; - return result2 === HASH_UNDEFINED ? undefined2 : result2; - } - return hasOwnProperty.call(data, key) ? data[key] : undefined2; - } - function hashHas(key) { - var data = this.__data__; - return nativeCreate ? data[key] !== undefined2 : hasOwnProperty.call(data, key); - } - function hashSet(key, value) { - var data = this.__data__; - this.size += this.has(key) ? 0 : 1; - data[key] = nativeCreate && value === undefined2 ? HASH_UNDEFINED : value; - return this; - } - Hash.prototype.clear = hashClear; - Hash.prototype["delete"] = hashDelete; - Hash.prototype.get = hashGet; - Hash.prototype.has = hashHas; - Hash.prototype.set = hashSet; - function ListCache(entries) { - var index = -1, length = entries == null ? 0 : entries.length; - this.clear(); - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); - } - } - function listCacheClear() { - this.__data__ = []; - this.size = 0; - } - function listCacheDelete(key) { - var data = this.__data__, index = assocIndexOf(data, key); - if (index < 0) { - return false; - } - var lastIndex = data.length - 1; - if (index == lastIndex) { - data.pop(); - } else { - splice.call(data, index, 1); - } - --this.size; - return true; - } - function listCacheGet(key) { - var data = this.__data__, index = assocIndexOf(data, key); - return index < 0 ? undefined2 : data[index][1]; - } - function listCacheHas(key) { - return assocIndexOf(this.__data__, key) > -1; - } - function listCacheSet(key, value) { - var data = this.__data__, index = assocIndexOf(data, key); - if (index < 0) { - ++this.size; - data.push([key, value]); - } else { - data[index][1] = value; - } - return this; - } - ListCache.prototype.clear = listCacheClear; - ListCache.prototype["delete"] = listCacheDelete; - ListCache.prototype.get = listCacheGet; - ListCache.prototype.has = listCacheHas; - ListCache.prototype.set = listCacheSet; - function MapCache(entries) { - var index = -1, length = entries == null ? 0 : entries.length; - this.clear(); - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); - } - } - function mapCacheClear() { - this.size = 0; - this.__data__ = { - "hash": new Hash(), - "map": new (Map2 || ListCache)(), - "string": new Hash() - }; - } - function mapCacheDelete(key) { - var result2 = getMapData(this, key)["delete"](key); - this.size -= result2 ? 1 : 0; - return result2; - } - function mapCacheGet(key) { - return getMapData(this, key).get(key); - } - function mapCacheHas(key) { - return getMapData(this, key).has(key); - } - function mapCacheSet(key, value) { - var data = getMapData(this, key), size2 = data.size; - data.set(key, value); - this.size += data.size == size2 ? 0 : 1; - return this; - } - MapCache.prototype.clear = mapCacheClear; - MapCache.prototype["delete"] = mapCacheDelete; - MapCache.prototype.get = mapCacheGet; - MapCache.prototype.has = mapCacheHas; - MapCache.prototype.set = mapCacheSet; - function SetCache(values2) { - var index = -1, length = values2 == null ? 0 : values2.length; - this.__data__ = new MapCache(); - while (++index < length) { - this.add(values2[index]); - } - } - function setCacheAdd(value) { - this.__data__.set(value, HASH_UNDEFINED); - return this; - } - function setCacheHas(value) { - return this.__data__.has(value); - } - SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; - SetCache.prototype.has = setCacheHas; - function Stack(entries) { - var data = this.__data__ = new ListCache(entries); - this.size = data.size; - } - function stackClear() { - this.__data__ = new ListCache(); - this.size = 0; - } - function stackDelete(key) { - var data = this.__data__, result2 = data["delete"](key); - this.size = data.size; - return result2; - } - function stackGet(key) { - return this.__data__.get(key); - } - function stackHas(key) { - return this.__data__.has(key); - } - function stackSet(key, value) { - var data = this.__data__; - if (data instanceof ListCache) { - var pairs = data.__data__; - if (!Map2 || pairs.length < LARGE_ARRAY_SIZE - 1) { - pairs.push([key, value]); - this.size = ++data.size; - return this; - } - data = this.__data__ = new MapCache(pairs); - } - data.set(key, value); - this.size = data.size; - return this; - } - Stack.prototype.clear = stackClear; - Stack.prototype["delete"] = stackDelete; - Stack.prototype.get = stackGet; - Stack.prototype.has = stackHas; - Stack.prototype.set = stackSet; - function arrayLikeKeys(value, inherited) { - var isArr = isArray(value), isArg = !isArr && isArguments(value), isBuff = !isArr && !isArg && isBuffer(value), isType = !isArr && !isArg && !isBuff && isTypedArray(value), skipIndexes = isArr || isArg || isBuff || isType, result2 = skipIndexes ? baseTimes(value.length, String2) : [], length = result2.length; - for (var key in value) { - if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && // Safari 9 has enumerable `arguments.length` in strict mode. - (key == "length" || // Node.js 0.10 has enumerable non-index properties on buffers. - isBuff && (key == "offset" || key == "parent") || // PhantomJS 2 has enumerable non-index properties on typed arrays. - isType && (key == "buffer" || key == "byteLength" || key == "byteOffset") || // Skip index properties. - isIndex(key, length)))) { - result2.push(key); - } - } - return result2; - } - function arraySample(array) { - var length = array.length; - return length ? array[baseRandom(0, length - 1)] : undefined2; - } - function arraySampleSize(array, n) { - return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length)); - } - function arrayShuffle(array) { - return shuffleSelf(copyArray(array)); - } - function assignMergeValue(object, key, value) { - if (value !== undefined2 && !eq(object[key], value) || value === undefined2 && !(key in object)) { - baseAssignValue(object, key, value); - } - } - function assignValue(object, key, value) { - var objValue = object[key]; - if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || value === undefined2 && !(key in object)) { - baseAssignValue(object, key, value); - } - } - function assocIndexOf(array, key) { - var length = array.length; - while (length--) { - if (eq(array[length][0], key)) { - return length; - } - } - return -1; - } - function baseAggregator(collection, setter, iteratee2, accumulator) { - baseEach(collection, function(value, key, collection2) { - setter(accumulator, value, iteratee2(value), collection2); - }); - return accumulator; - } - function baseAssign(object, source) { - return object && copyObject(source, keys(source), object); - } - function baseAssignIn(object, source) { - return object && copyObject(source, keysIn(source), object); - } - function baseAssignValue(object, key, value) { - if (key == "__proto__" && defineProperty) { - defineProperty(object, key, { - "configurable": true, - "enumerable": true, - "value": value, - "writable": true - }); - } else { - object[key] = value; - } - } - function baseAt(object, paths) { - var index = -1, length = paths.length, result2 = Array2(length), skip = object == null; - while (++index < length) { - result2[index] = skip ? undefined2 : get(object, paths[index]); - } - return result2; - } - function baseClamp(number, lower, upper) { - if (number === number) { - if (upper !== undefined2) { - number = number <= upper ? number : upper; - } - if (lower !== undefined2) { - number = number >= lower ? number : lower; - } - } - return number; - } - function baseClone(value, bitmask, customizer, key, object, stack) { - var result2, isDeep = bitmask & CLONE_DEEP_FLAG, isFlat = bitmask & CLONE_FLAT_FLAG, isFull = bitmask & CLONE_SYMBOLS_FLAG; - if (customizer) { - result2 = object ? customizer(value, key, object, stack) : customizer(value); - } - if (result2 !== undefined2) { - return result2; - } - if (!isObject(value)) { - return value; - } - var isArr = isArray(value); - if (isArr) { - result2 = initCloneArray(value); - if (!isDeep) { - return copyArray(value, result2); - } - } else { - var tag = getTag(value), isFunc = tag == funcTag || tag == genTag; - if (isBuffer(value)) { - return cloneBuffer(value, isDeep); - } - if (tag == objectTag || tag == argsTag || isFunc && !object) { - result2 = isFlat || isFunc ? {} : initCloneObject(value); - if (!isDeep) { - return isFlat ? copySymbolsIn(value, baseAssignIn(result2, value)) : copySymbols(value, baseAssign(result2, value)); - } - } else { - if (!cloneableTags[tag]) { - return object ? value : {}; - } - result2 = initCloneByTag(value, tag, isDeep); - } - } - stack || (stack = new Stack()); - var stacked = stack.get(value); - if (stacked) { - return stacked; - } - stack.set(value, result2); - if (isSet(value)) { - value.forEach(function(subValue) { - result2.add(baseClone(subValue, bitmask, customizer, subValue, value, stack)); - }); - } else if (isMap(value)) { - value.forEach(function(subValue, key2) { - result2.set(key2, baseClone(subValue, bitmask, customizer, key2, value, stack)); - }); - } - var keysFunc = isFull ? isFlat ? getAllKeysIn : getAllKeys : isFlat ? keysIn : keys; - var props = isArr ? undefined2 : keysFunc(value); - arrayEach(props || value, function(subValue, key2) { - if (props) { - key2 = subValue; - subValue = value[key2]; - } - assignValue(result2, key2, baseClone(subValue, bitmask, customizer, key2, value, stack)); - }); - return result2; - } - function baseConforms(source) { - var props = keys(source); - return function(object) { - return baseConformsTo(object, source, props); - }; - } - function baseConformsTo(object, source, props) { - var length = props.length; - if (object == null) { - return !length; - } - object = Object2(object); - while (length--) { - var key = props[length], predicate = source[key], value = object[key]; - if (value === undefined2 && !(key in object) || !predicate(value)) { - return false; - } - } - return true; - } - function baseDelay(func, wait, args) { - if (typeof func != "function") { - throw new TypeError2(FUNC_ERROR_TEXT); - } - return setTimeout(function() { - func.apply(undefined2, args); - }, wait); - } - function baseDifference(array, values2, iteratee2, comparator) { - var index = -1, includes2 = arrayIncludes, isCommon = true, length = array.length, result2 = [], valuesLength = values2.length; - if (!length) { - return result2; - } - if (iteratee2) { - values2 = arrayMap(values2, baseUnary(iteratee2)); - } - if (comparator) { - includes2 = arrayIncludesWith; - isCommon = false; - } else if (values2.length >= LARGE_ARRAY_SIZE) { - includes2 = cacheHas; - isCommon = false; - values2 = new SetCache(values2); - } - outer: - while (++index < length) { - var value = array[index], computed = iteratee2 == null ? value : iteratee2(value); - value = comparator || value !== 0 ? value : 0; - if (isCommon && computed === computed) { - var valuesIndex = valuesLength; - while (valuesIndex--) { - if (values2[valuesIndex] === computed) { - continue outer; - } - } - result2.push(value); - } else if (!includes2(values2, computed, comparator)) { - result2.push(value); - } - } - return result2; - } - var baseEach = createBaseEach(baseForOwn); - var baseEachRight = createBaseEach(baseForOwnRight, true); - function baseEvery(collection, predicate) { - var result2 = true; - baseEach(collection, function(value, index, collection2) { - result2 = !!predicate(value, index, collection2); - return result2; - }); - return result2; - } - function baseExtremum(array, iteratee2, comparator) { - var index = -1, length = array.length; - while (++index < length) { - var value = array[index], current = iteratee2(value); - if (current != null && (computed === undefined2 ? current === current && !isSymbol(current) : comparator(current, computed))) { - var computed = current, result2 = value; - } - } - return result2; - } - function baseFill(array, value, start, end) { - var length = array.length; - start = toInteger(start); - if (start < 0) { - start = -start > length ? 0 : length + start; - } - end = end === undefined2 || end > length ? length : toInteger(end); - if (end < 0) { - end += length; - } - end = start > end ? 0 : toLength(end); - while (start < end) { - array[start++] = value; - } - return array; - } - function baseFilter(collection, predicate) { - var result2 = []; - baseEach(collection, function(value, index, collection2) { - if (predicate(value, index, collection2)) { - result2.push(value); - } - }); - return result2; - } - function baseFlatten(array, depth, predicate, isStrict, result2) { - var index = -1, length = array.length; - predicate || (predicate = isFlattenable); - result2 || (result2 = []); - while (++index < length) { - var value = array[index]; - if (depth > 0 && predicate(value)) { - if (depth > 1) { - baseFlatten(value, depth - 1, predicate, isStrict, result2); - } else { - arrayPush(result2, value); - } - } else if (!isStrict) { - result2[result2.length] = value; - } - } - return result2; - } - var baseFor = createBaseFor(); - var baseForRight = createBaseFor(true); - function baseForOwn(object, iteratee2) { - return object && baseFor(object, iteratee2, keys); - } - function baseForOwnRight(object, iteratee2) { - return object && baseForRight(object, iteratee2, keys); - } - function baseFunctions(object, props) { - return arrayFilter(props, function(key) { - return isFunction(object[key]); - }); - } - function baseGet(object, path) { - path = castPath(path, object); - var index = 0, length = path.length; - while (object != null && index < length) { - object = object[toKey(path[index++])]; - } - return index && index == length ? object : undefined2; - } - function baseGetAllKeys(object, keysFunc, symbolsFunc) { - var result2 = keysFunc(object); - return isArray(object) ? result2 : arrayPush(result2, symbolsFunc(object)); - } - function baseGetTag(value) { - if (value == null) { - return value === undefined2 ? undefinedTag : nullTag; - } - return symToStringTag && symToStringTag in Object2(value) ? getRawTag(value) : objectToString(value); - } - function baseGt(value, other) { - return value > other; - } - function baseHas(object, key) { - return object != null && hasOwnProperty.call(object, key); - } - function baseHasIn(object, key) { - return object != null && key in Object2(object); - } - function baseInRange(number, start, end) { - return number >= nativeMin(start, end) && number < nativeMax(start, end); - } - function baseIntersection(arrays, iteratee2, comparator) { - var includes2 = comparator ? arrayIncludesWith : arrayIncludes, length = arrays[0].length, othLength = arrays.length, othIndex = othLength, caches = Array2(othLength), maxLength = Infinity, result2 = []; - while (othIndex--) { - var array = arrays[othIndex]; - if (othIndex && iteratee2) { - array = arrayMap(array, baseUnary(iteratee2)); - } - maxLength = nativeMin(array.length, maxLength); - caches[othIndex] = !comparator && (iteratee2 || length >= 120 && array.length >= 120) ? new SetCache(othIndex && array) : undefined2; - } - array = arrays[0]; - var index = -1, seen = caches[0]; - outer: - while (++index < length && result2.length < maxLength) { - var value = array[index], computed = iteratee2 ? iteratee2(value) : value; - value = comparator || value !== 0 ? value : 0; - if (!(seen ? cacheHas(seen, computed) : includes2(result2, computed, comparator))) { - othIndex = othLength; - while (--othIndex) { - var cache = caches[othIndex]; - if (!(cache ? cacheHas(cache, computed) : includes2(arrays[othIndex], computed, comparator))) { - continue outer; - } - } - if (seen) { - seen.push(computed); - } - result2.push(value); - } - } - return result2; - } - function baseInverter(object, setter, iteratee2, accumulator) { - baseForOwn(object, function(value, key, object2) { - setter(accumulator, iteratee2(value), key, object2); - }); - return accumulator; - } - function baseInvoke(object, path, args) { - path = castPath(path, object); - object = parent(object, path); - var func = object == null ? object : object[toKey(last3(path))]; - return func == null ? undefined2 : apply(func, object, args); - } - function baseIsArguments(value) { - return isObjectLike(value) && baseGetTag(value) == argsTag; - } - function baseIsArrayBuffer(value) { - return isObjectLike(value) && baseGetTag(value) == arrayBufferTag; - } - function baseIsDate(value) { - return isObjectLike(value) && baseGetTag(value) == dateTag; - } - function baseIsEqual(value, other, bitmask, customizer, stack) { - if (value === other) { - return true; - } - if (value == null || other == null || !isObjectLike(value) && !isObjectLike(other)) { - return value !== value && other !== other; - } - return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); - } - function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { - var objIsArr = isArray(object), othIsArr = isArray(other), objTag = objIsArr ? arrayTag : getTag(object), othTag = othIsArr ? arrayTag : getTag(other); - objTag = objTag == argsTag ? objectTag : objTag; - othTag = othTag == argsTag ? objectTag : othTag; - var objIsObj = objTag == objectTag, othIsObj = othTag == objectTag, isSameTag = objTag == othTag; - if (isSameTag && isBuffer(object)) { - if (!isBuffer(other)) { - return false; - } - objIsArr = true; - objIsObj = false; - } - if (isSameTag && !objIsObj) { - stack || (stack = new Stack()); - return objIsArr || isTypedArray(object) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); - } - if (!(bitmask & COMPARE_PARTIAL_FLAG)) { - var objIsWrapped = objIsObj && hasOwnProperty.call(object, "__wrapped__"), othIsWrapped = othIsObj && hasOwnProperty.call(other, "__wrapped__"); - if (objIsWrapped || othIsWrapped) { - var objUnwrapped = objIsWrapped ? object.value() : object, othUnwrapped = othIsWrapped ? other.value() : other; - stack || (stack = new Stack()); - return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); - } - } - if (!isSameTag) { - return false; - } - stack || (stack = new Stack()); - return equalObjects(object, other, bitmask, customizer, equalFunc, stack); - } - function baseIsMap(value) { - return isObjectLike(value) && getTag(value) == mapTag; - } - function baseIsMatch(object, source, matchData, customizer) { - var index = matchData.length, length = index, noCustomizer = !customizer; - if (object == null) { - return !length; - } - object = Object2(object); - while (index--) { - var data = matchData[index]; - if (noCustomizer && data[2] ? data[1] !== object[data[0]] : !(data[0] in object)) { - return false; - } - } - while (++index < length) { - data = matchData[index]; - var key = data[0], objValue = object[key], srcValue = data[1]; - if (noCustomizer && data[2]) { - if (objValue === undefined2 && !(key in object)) { - return false; - } - } else { - var stack = new Stack(); - if (customizer) { - var result2 = customizer(objValue, srcValue, key, object, source, stack); - } - if (!(result2 === undefined2 ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) : result2)) { - return false; - } - } - } - return true; - } - function baseIsNative(value) { - if (!isObject(value) || isMasked(value)) { - return false; - } - var pattern = isFunction(value) ? reIsNative : reIsHostCtor; - return pattern.test(toSource(value)); - } - function baseIsRegExp(value) { - return isObjectLike(value) && baseGetTag(value) == regexpTag; - } - function baseIsSet(value) { - return isObjectLike(value) && getTag(value) == setTag; - } - function baseIsTypedArray(value) { - return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; - } - function baseIteratee(value) { - if (typeof value == "function") { - return value; - } - if (value == null) { - return identity; - } - if (typeof value == "object") { - return isArray(value) ? baseMatchesProperty(value[0], value[1]) : baseMatches(value); - } - return property(value); - } - function baseKeys(object) { - if (!isPrototype(object)) { - return nativeKeys(object); - } - var result2 = []; - for (var key in Object2(object)) { - if (hasOwnProperty.call(object, key) && key != "constructor") { - result2.push(key); - } - } - return result2; - } - function baseKeysIn(object) { - if (!isObject(object)) { - return nativeKeysIn(object); - } - var isProto = isPrototype(object), result2 = []; - for (var key in object) { - if (!(key == "constructor" && (isProto || !hasOwnProperty.call(object, key)))) { - result2.push(key); - } - } - return result2; - } - function baseLt(value, other) { - return value < other; - } - function baseMap(collection, iteratee2) { - var index = -1, result2 = isArrayLike(collection) ? Array2(collection.length) : []; - baseEach(collection, function(value, key, collection2) { - result2[++index] = iteratee2(value, key, collection2); - }); - return result2; - } - function baseMatches(source) { - var matchData = getMatchData(source); - if (matchData.length == 1 && matchData[0][2]) { - return matchesStrictComparable(matchData[0][0], matchData[0][1]); - } - return function(object) { - return object === source || baseIsMatch(object, source, matchData); - }; - } - function baseMatchesProperty(path, srcValue) { - if (isKey(path) && isStrictComparable(srcValue)) { - return matchesStrictComparable(toKey(path), srcValue); - } - return function(object) { - var objValue = get(object, path); - return objValue === undefined2 && objValue === srcValue ? hasIn(object, path) : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); - }; - } - function baseMerge(object, source, srcIndex, customizer, stack) { - if (object === source) { - return; - } - baseFor(source, function(srcValue, key) { - stack || (stack = new Stack()); - if (isObject(srcValue)) { - baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack); - } else { - var newValue = customizer ? customizer(safeGet(object, key), srcValue, key + "", object, source, stack) : undefined2; - if (newValue === undefined2) { - newValue = srcValue; - } - assignMergeValue(object, key, newValue); - } - }, keysIn); - } - function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) { - var objValue = safeGet(object, key), srcValue = safeGet(source, key), stacked = stack.get(srcValue); - if (stacked) { - assignMergeValue(object, key, stacked); - return; - } - var newValue = customizer ? customizer(objValue, srcValue, key + "", object, source, stack) : undefined2; - var isCommon = newValue === undefined2; - if (isCommon) { - var isArr = isArray(srcValue), isBuff = !isArr && isBuffer(srcValue), isTyped = !isArr && !isBuff && isTypedArray(srcValue); - newValue = srcValue; - if (isArr || isBuff || isTyped) { - if (isArray(objValue)) { - newValue = objValue; - } else if (isArrayLikeObject(objValue)) { - newValue = copyArray(objValue); - } else if (isBuff) { - isCommon = false; - newValue = cloneBuffer(srcValue, true); - } else if (isTyped) { - isCommon = false; - newValue = cloneTypedArray(srcValue, true); - } else { - newValue = []; - } - } else if (isPlainObject(srcValue) || isArguments(srcValue)) { - newValue = objValue; - if (isArguments(objValue)) { - newValue = toPlainObject(objValue); - } else if (!isObject(objValue) || isFunction(objValue)) { - newValue = initCloneObject(srcValue); - } - } else { - isCommon = false; - } - } - if (isCommon) { - stack.set(srcValue, newValue); - mergeFunc(newValue, srcValue, srcIndex, customizer, stack); - stack["delete"](srcValue); - } - assignMergeValue(object, key, newValue); - } - function baseNth(array, n) { - var length = array.length; - if (!length) { - return; - } - n += n < 0 ? length : 0; - return isIndex(n, length) ? array[n] : undefined2; - } - function baseOrderBy(collection, iteratees, orders) { - if (iteratees.length) { - iteratees = arrayMap(iteratees, function(iteratee2) { - if (isArray(iteratee2)) { - return function(value) { - return baseGet(value, iteratee2.length === 1 ? iteratee2[0] : iteratee2); - }; - } - return iteratee2; - }); - } else { - iteratees = [identity]; - } - var index = -1; - iteratees = arrayMap(iteratees, baseUnary(getIteratee())); - var result2 = baseMap(collection, function(value, key, collection2) { - var criteria = arrayMap(iteratees, function(iteratee2) { - return iteratee2(value); - }); - return { "criteria": criteria, "index": ++index, "value": value }; - }); - return baseSortBy(result2, function(object, other) { - return compareMultiple(object, other, orders); - }); - } - function basePick(object, paths) { - return basePickBy(object, paths, function(value, path) { - return hasIn(object, path); - }); - } - function basePickBy(object, paths, predicate) { - var index = -1, length = paths.length, result2 = {}; - while (++index < length) { - var path = paths[index], value = baseGet(object, path); - if (predicate(value, path)) { - baseSet(result2, castPath(path, object), value); - } - } - return result2; - } - function basePropertyDeep(path) { - return function(object) { - return baseGet(object, path); - }; - } - function basePullAll(array, values2, iteratee2, comparator) { - var indexOf2 = comparator ? baseIndexOfWith : baseIndexOf, index = -1, length = values2.length, seen = array; - if (array === values2) { - values2 = copyArray(values2); - } - if (iteratee2) { - seen = arrayMap(array, baseUnary(iteratee2)); - } - while (++index < length) { - var fromIndex = 0, value = values2[index], computed = iteratee2 ? iteratee2(value) : value; - while ((fromIndex = indexOf2(seen, computed, fromIndex, comparator)) > -1) { - if (seen !== array) { - splice.call(seen, fromIndex, 1); - } - splice.call(array, fromIndex, 1); - } - } - return array; - } - function basePullAt(array, indexes) { - var length = array ? indexes.length : 0, lastIndex = length - 1; - while (length--) { - var index = indexes[length]; - if (length == lastIndex || index !== previous) { - var previous = index; - if (isIndex(index)) { - splice.call(array, index, 1); - } else { - baseUnset(array, index); - } - } - } - return array; - } - function baseRandom(lower, upper) { - return lower + nativeFloor(nativeRandom() * (upper - lower + 1)); - } - function baseRange(start, end, step, fromRight) { - var index = -1, length = nativeMax(nativeCeil((end - start) / (step || 1)), 0), result2 = Array2(length); - while (length--) { - result2[fromRight ? length : ++index] = start; - start += step; - } - return result2; - } - function baseRepeat(string, n) { - var result2 = ""; - if (!string || n < 1 || n > MAX_SAFE_INTEGER) { - return result2; - } - do { - if (n % 2) { - result2 += string; - } - n = nativeFloor(n / 2); - if (n) { - string += string; - } - } while (n); - return result2; - } - function baseRest(func, start) { - return setToString(overRest(func, start, identity), func + ""); - } - function baseSample(collection) { - return arraySample(values(collection)); - } - function baseSampleSize(collection, n) { - var array = values(collection); - return shuffleSelf(array, baseClamp(n, 0, array.length)); - } - function baseSet(object, path, value, customizer) { - if (!isObject(object)) { - return object; - } - path = castPath(path, object); - var index = -1, length = path.length, lastIndex = length - 1, nested = object; - while (nested != null && ++index < length) { - var key = toKey(path[index]), newValue = value; - if (key === "__proto__" || key === "constructor" || key === "prototype") { - return object; - } - if (index != lastIndex) { - var objValue = nested[key]; - newValue = customizer ? customizer(objValue, key, nested) : undefined2; - if (newValue === undefined2) { - newValue = isObject(objValue) ? objValue : isIndex(path[index + 1]) ? [] : {}; - } - } - assignValue(nested, key, newValue); - nested = nested[key]; - } - return object; - } - var baseSetData = !metaMap ? identity : function(func, data) { - metaMap.set(func, data); - return func; - }; - var baseSetToString = !defineProperty ? identity : function(func, string) { - return defineProperty(func, "toString", { - "configurable": true, - "enumerable": false, - "value": constant(string), - "writable": true - }); - }; - function baseShuffle(collection) { - return shuffleSelf(values(collection)); - } - function baseSlice(array, start, end) { - var index = -1, length = array.length; - if (start < 0) { - start = -start > length ? 0 : length + start; - } - end = end > length ? length : end; - if (end < 0) { - end += length; - } - length = start > end ? 0 : end - start >>> 0; - start >>>= 0; - var result2 = Array2(length); - while (++index < length) { - result2[index] = array[index + start]; - } - return result2; - } - function baseSome(collection, predicate) { - var result2; - baseEach(collection, function(value, index, collection2) { - result2 = predicate(value, index, collection2); - return !result2; - }); - return !!result2; - } - function baseSortedIndex(array, value, retHighest) { - var low = 0, high = array == null ? low : array.length; - if (typeof value == "number" && value === value && high <= HALF_MAX_ARRAY_LENGTH) { - while (low < high) { - var mid = low + high >>> 1, computed = array[mid]; - if (computed !== null && !isSymbol(computed) && (retHighest ? computed <= value : computed < value)) { - low = mid + 1; - } else { - high = mid; - } - } - return high; - } - return baseSortedIndexBy(array, value, identity, retHighest); - } - function baseSortedIndexBy(array, value, iteratee2, retHighest) { - var low = 0, high = array == null ? 0 : array.length; - if (high === 0) { - return 0; - } - value = iteratee2(value); - var valIsNaN = value !== value, valIsNull = value === null, valIsSymbol = isSymbol(value), valIsUndefined = value === undefined2; - while (low < high) { - var mid = nativeFloor((low + high) / 2), computed = iteratee2(array[mid]), othIsDefined = computed !== undefined2, othIsNull = computed === null, othIsReflexive = computed === computed, othIsSymbol = isSymbol(computed); - if (valIsNaN) { - var setLow = retHighest || othIsReflexive; - } else if (valIsUndefined) { - setLow = othIsReflexive && (retHighest || othIsDefined); - } else if (valIsNull) { - setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull); - } else if (valIsSymbol) { - setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol); - } else if (othIsNull || othIsSymbol) { - setLow = false; - } else { - setLow = retHighest ? computed <= value : computed < value; - } - if (setLow) { - low = mid + 1; - } else { - high = mid; - } - } - return nativeMin(high, MAX_ARRAY_INDEX); - } - function baseSortedUniq(array, iteratee2) { - var index = -1, length = array.length, resIndex = 0, result2 = []; - while (++index < length) { - var value = array[index], computed = iteratee2 ? iteratee2(value) : value; - if (!index || !eq(computed, seen)) { - var seen = computed; - result2[resIndex++] = value === 0 ? 0 : value; - } - } - return result2; - } - function baseToNumber(value) { - if (typeof value == "number") { - return value; - } - if (isSymbol(value)) { - return NAN; - } - return +value; - } - function baseToString(value) { - if (typeof value == "string") { - return value; - } - if (isArray(value)) { - return arrayMap(value, baseToString) + ""; - } - if (isSymbol(value)) { - return symbolToString ? symbolToString.call(value) : ""; - } - var result2 = value + ""; - return result2 == "0" && 1 / value == -INFINITY ? "-0" : result2; - } - function baseUniq(array, iteratee2, comparator) { - var index = -1, includes2 = arrayIncludes, length = array.length, isCommon = true, result2 = [], seen = result2; - if (comparator) { - isCommon = false; - includes2 = arrayIncludesWith; - } else if (length >= LARGE_ARRAY_SIZE) { - var set2 = iteratee2 ? null : createSet(array); - if (set2) { - return setToArray(set2); - } - isCommon = false; - includes2 = cacheHas; - seen = new SetCache(); - } else { - seen = iteratee2 ? [] : result2; - } - outer: - while (++index < length) { - var value = array[index], computed = iteratee2 ? iteratee2(value) : value; - value = comparator || value !== 0 ? value : 0; - if (isCommon && computed === computed) { - var seenIndex = seen.length; - while (seenIndex--) { - if (seen[seenIndex] === computed) { - continue outer; - } - } - if (iteratee2) { - seen.push(computed); - } - result2.push(value); - } else if (!includes2(seen, computed, comparator)) { - if (seen !== result2) { - seen.push(computed); - } - result2.push(value); - } - } - return result2; - } - function baseUnset(object, path) { - path = castPath(path, object); - object = parent(object, path); - return object == null || delete object[toKey(last3(path))]; - } - function baseUpdate(object, path, updater, customizer) { - return baseSet(object, path, updater(baseGet(object, path)), customizer); - } - function baseWhile(array, predicate, isDrop, fromRight) { - var length = array.length, index = fromRight ? length : -1; - while ((fromRight ? index-- : ++index < length) && predicate(array[index], index, array)) { - } - return isDrop ? baseSlice(array, fromRight ? 0 : index, fromRight ? index + 1 : length) : baseSlice(array, fromRight ? index + 1 : 0, fromRight ? length : index); - } - function baseWrapperValue(value, actions) { - var result2 = value; - if (result2 instanceof LazyWrapper) { - result2 = result2.value(); - } - return arrayReduce(actions, function(result3, action) { - return action.func.apply(action.thisArg, arrayPush([result3], action.args)); - }, result2); - } - function baseXor(arrays, iteratee2, comparator) { - var length = arrays.length; - if (length < 2) { - return length ? baseUniq(arrays[0]) : []; - } - var index = -1, result2 = Array2(length); - while (++index < length) { - var array = arrays[index], othIndex = -1; - while (++othIndex < length) { - if (othIndex != index) { - result2[index] = baseDifference(result2[index] || array, arrays[othIndex], iteratee2, comparator); - } - } - } - return baseUniq(baseFlatten(result2, 1), iteratee2, comparator); - } - function baseZipObject(props, values2, assignFunc) { - var index = -1, length = props.length, valsLength = values2.length, result2 = {}; - while (++index < length) { - var value = index < valsLength ? values2[index] : undefined2; - assignFunc(result2, props[index], value); - } - return result2; - } - function castArrayLikeObject(value) { - return isArrayLikeObject(value) ? value : []; - } - function castFunction(value) { - return typeof value == "function" ? value : identity; - } - function castPath(value, object) { - if (isArray(value)) { - return value; - } - return isKey(value, object) ? [value] : stringToPath(toString(value)); - } - var castRest = baseRest; - function castSlice(array, start, end) { - var length = array.length; - end = end === undefined2 ? length : end; - return !start && end >= length ? array : baseSlice(array, start, end); - } - var clearTimeout = ctxClearTimeout || function(id) { - return root.clearTimeout(id); - }; - function cloneBuffer(buffer, isDeep) { - if (isDeep) { - return buffer.slice(); - } - var length = buffer.length, result2 = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length); - buffer.copy(result2); - return result2; - } - function cloneArrayBuffer(arrayBuffer) { - var result2 = new arrayBuffer.constructor(arrayBuffer.byteLength); - new Uint8Array2(result2).set(new Uint8Array2(arrayBuffer)); - return result2; - } - function cloneDataView(dataView, isDeep) { - var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer; - return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength); - } - function cloneRegExp(regexp) { - var result2 = new regexp.constructor(regexp.source, reFlags.exec(regexp)); - result2.lastIndex = regexp.lastIndex; - return result2; - } - function cloneSymbol(symbol) { - return symbolValueOf ? Object2(symbolValueOf.call(symbol)) : {}; - } - function cloneTypedArray(typedArray, isDeep) { - var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer; - return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length); - } - function compareAscending(value, other) { - if (value !== other) { - var valIsDefined = value !== undefined2, valIsNull = value === null, valIsReflexive = value === value, valIsSymbol = isSymbol(value); - var othIsDefined = other !== undefined2, othIsNull = other === null, othIsReflexive = other === other, othIsSymbol = isSymbol(other); - if (!othIsNull && !othIsSymbol && !valIsSymbol && value > other || valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol || valIsNull && othIsDefined && othIsReflexive || !valIsDefined && othIsReflexive || !valIsReflexive) { - return 1; - } - if (!valIsNull && !valIsSymbol && !othIsSymbol && value < other || othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol || othIsNull && valIsDefined && valIsReflexive || !othIsDefined && valIsReflexive || !othIsReflexive) { - return -1; - } - } - return 0; - } - function compareMultiple(object, other, orders) { - var index = -1, objCriteria = object.criteria, othCriteria = other.criteria, length = objCriteria.length, ordersLength = orders.length; - while (++index < length) { - var result2 = compareAscending(objCriteria[index], othCriteria[index]); - if (result2) { - if (index >= ordersLength) { - return result2; - } - var order = orders[index]; - return result2 * (order == "desc" ? -1 : 1); - } - } - return object.index - other.index; - } - function composeArgs(args, partials, holders, isCurried) { - var argsIndex = -1, argsLength = args.length, holdersLength = holders.length, leftIndex = -1, leftLength = partials.length, rangeLength = nativeMax(argsLength - holdersLength, 0), result2 = Array2(leftLength + rangeLength), isUncurried = !isCurried; - while (++leftIndex < leftLength) { - result2[leftIndex] = partials[leftIndex]; - } - while (++argsIndex < holdersLength) { - if (isUncurried || argsIndex < argsLength) { - result2[holders[argsIndex]] = args[argsIndex]; - } - } - while (rangeLength--) { - result2[leftIndex++] = args[argsIndex++]; - } - return result2; - } - function composeArgsRight(args, partials, holders, isCurried) { - var argsIndex = -1, argsLength = args.length, holdersIndex = -1, holdersLength = holders.length, rightIndex = -1, rightLength = partials.length, rangeLength = nativeMax(argsLength - holdersLength, 0), result2 = Array2(rangeLength + rightLength), isUncurried = !isCurried; - while (++argsIndex < rangeLength) { - result2[argsIndex] = args[argsIndex]; - } - var offset = argsIndex; - while (++rightIndex < rightLength) { - result2[offset + rightIndex] = partials[rightIndex]; - } - while (++holdersIndex < holdersLength) { - if (isUncurried || argsIndex < argsLength) { - result2[offset + holders[holdersIndex]] = args[argsIndex++]; - } - } - return result2; - } - function copyArray(source, array) { - var index = -1, length = source.length; - array || (array = Array2(length)); - while (++index < length) { - array[index] = source[index]; - } - return array; - } - function copyObject(source, props, object, customizer) { - var isNew = !object; - object || (object = {}); - var index = -1, length = props.length; - while (++index < length) { - var key = props[index]; - var newValue = customizer ? customizer(object[key], source[key], key, object, source) : undefined2; - if (newValue === undefined2) { - newValue = source[key]; - } - if (isNew) { - baseAssignValue(object, key, newValue); - } else { - assignValue(object, key, newValue); - } - } - return object; - } - function copySymbols(source, object) { - return copyObject(source, getSymbols(source), object); - } - function copySymbolsIn(source, object) { - return copyObject(source, getSymbolsIn(source), object); - } - function createAggregator(setter, initializer) { - return function(collection, iteratee2) { - var func = isArray(collection) ? arrayAggregator : baseAggregator, accumulator = initializer ? initializer() : {}; - return func(collection, setter, getIteratee(iteratee2, 2), accumulator); - }; - } - function createAssigner(assigner) { - return baseRest(function(object, sources) { - var index = -1, length = sources.length, customizer = length > 1 ? sources[length - 1] : undefined2, guard = length > 2 ? sources[2] : undefined2; - customizer = assigner.length > 3 && typeof customizer == "function" ? (length--, customizer) : undefined2; - if (guard && isIterateeCall(sources[0], sources[1], guard)) { - customizer = length < 3 ? undefined2 : customizer; - length = 1; - } - object = Object2(object); - while (++index < length) { - var source = sources[index]; - if (source) { - assigner(object, source, index, customizer); - } - } - return object; - }); - } - function createBaseEach(eachFunc, fromRight) { - return function(collection, iteratee2) { - if (collection == null) { - return collection; - } - if (!isArrayLike(collection)) { - return eachFunc(collection, iteratee2); - } - var length = collection.length, index = fromRight ? length : -1, iterable = Object2(collection); - while (fromRight ? index-- : ++index < length) { - if (iteratee2(iterable[index], index, iterable) === false) { - break; - } - } - return collection; - }; - } - function createBaseFor(fromRight) { - return function(object, iteratee2, keysFunc) { - var index = -1, iterable = Object2(object), props = keysFunc(object), length = props.length; - while (length--) { - var key = props[fromRight ? length : ++index]; - if (iteratee2(iterable[key], key, iterable) === false) { - break; - } - } - return object; - }; - } - function createBind(func, bitmask, thisArg) { - var isBind = bitmask & WRAP_BIND_FLAG, Ctor = createCtor(func); - function wrapper() { - var fn = this && this !== root && this instanceof wrapper ? Ctor : func; - return fn.apply(isBind ? thisArg : this, arguments); - } - return wrapper; - } - function createCaseFirst(methodName) { - return function(string) { - string = toString(string); - var strSymbols = hasUnicode(string) ? stringToArray(string) : undefined2; - var chr = strSymbols ? strSymbols[0] : string.charAt(0); - var trailing = strSymbols ? castSlice(strSymbols, 1).join("") : string.slice(1); - return chr[methodName]() + trailing; - }; - } - function createCompounder(callback) { - return function(string) { - return arrayReduce(words(deburr(string).replace(reApos, "")), callback, ""); - }; - } - function createCtor(Ctor) { - return function() { - var args = arguments; - switch (args.length) { - case 0: - return new Ctor(); - case 1: - return new Ctor(args[0]); - case 2: - return new Ctor(args[0], args[1]); - case 3: - return new Ctor(args[0], args[1], args[2]); - case 4: - return new Ctor(args[0], args[1], args[2], args[3]); - case 5: - return new Ctor(args[0], args[1], args[2], args[3], args[4]); - case 6: - return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]); - case 7: - return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]); - } - var thisBinding = baseCreate(Ctor.prototype), result2 = Ctor.apply(thisBinding, args); - return isObject(result2) ? result2 : thisBinding; - }; - } - function createCurry(func, bitmask, arity) { - var Ctor = createCtor(func); - function wrapper() { - var length = arguments.length, args = Array2(length), index = length, placeholder = getHolder(wrapper); - while (index--) { - args[index] = arguments[index]; - } - var holders = length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder ? [] : replaceHolders(args, placeholder); - length -= holders.length; - if (length < arity) { - return createRecurry( - func, - bitmask, - createHybrid, - wrapper.placeholder, - undefined2, - args, - holders, - undefined2, - undefined2, - arity - length - ); - } - var fn = this && this !== root && this instanceof wrapper ? Ctor : func; - return apply(fn, this, args); - } - return wrapper; - } - function createFind(findIndexFunc) { - return function(collection, predicate, fromIndex) { - var iterable = Object2(collection); - if (!isArrayLike(collection)) { - var iteratee2 = getIteratee(predicate, 3); - collection = keys(collection); - predicate = function(key) { - return iteratee2(iterable[key], key, iterable); - }; - } - var index = findIndexFunc(collection, predicate, fromIndex); - return index > -1 ? iterable[iteratee2 ? collection[index] : index] : undefined2; - }; - } - function createFlow(fromRight) { - return flatRest(function(funcs) { - var length = funcs.length, index = length, prereq = LodashWrapper.prototype.thru; - if (fromRight) { - funcs.reverse(); - } - while (index--) { - var func = funcs[index]; - if (typeof func != "function") { - throw new TypeError2(FUNC_ERROR_TEXT); - } - if (prereq && !wrapper && getFuncName(func) == "wrapper") { - var wrapper = new LodashWrapper([], true); - } - } - index = wrapper ? index : length; - while (++index < length) { - func = funcs[index]; - var funcName = getFuncName(func), data = funcName == "wrapper" ? getData(func) : undefined2; - if (data && isLaziable(data[0]) && data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) && !data[4].length && data[9] == 1) { - wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]); - } else { - wrapper = func.length == 1 && isLaziable(func) ? wrapper[funcName]() : wrapper.thru(func); - } - } - return function() { - var args = arguments, value = args[0]; - if (wrapper && args.length == 1 && isArray(value)) { - return wrapper.plant(value).value(); - } - var index2 = 0, result2 = length ? funcs[index2].apply(this, args) : value; - while (++index2 < length) { - result2 = funcs[index2].call(this, result2); - } - return result2; - }; - }); - } - function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary2, arity) { - var isAry = bitmask & WRAP_ARY_FLAG, isBind = bitmask & WRAP_BIND_FLAG, isBindKey = bitmask & WRAP_BIND_KEY_FLAG, isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG), isFlip = bitmask & WRAP_FLIP_FLAG, Ctor = isBindKey ? undefined2 : createCtor(func); - function wrapper() { - var length = arguments.length, args = Array2(length), index = length; - while (index--) { - args[index] = arguments[index]; - } - if (isCurried) { - var placeholder = getHolder(wrapper), holdersCount = countHolders(args, placeholder); - } - if (partials) { - args = composeArgs(args, partials, holders, isCurried); - } - if (partialsRight) { - args = composeArgsRight(args, partialsRight, holdersRight, isCurried); - } - length -= holdersCount; - if (isCurried && length < arity) { - var newHolders = replaceHolders(args, placeholder); - return createRecurry( - func, - bitmask, - createHybrid, - wrapper.placeholder, - thisArg, - args, - newHolders, - argPos, - ary2, - arity - length - ); - } - var thisBinding = isBind ? thisArg : this, fn = isBindKey ? thisBinding[func] : func; - length = args.length; - if (argPos) { - args = reorder(args, argPos); - } else if (isFlip && length > 1) { - args.reverse(); - } - if (isAry && ary2 < length) { - args.length = ary2; - } - if (this && this !== root && this instanceof wrapper) { - fn = Ctor || createCtor(fn); - } - return fn.apply(thisBinding, args); - } - return wrapper; - } - function createInverter(setter, toIteratee) { - return function(object, iteratee2) { - return baseInverter(object, setter, toIteratee(iteratee2), {}); - }; - } - function createMathOperation(operator, defaultValue) { - return function(value, other) { - var result2; - if (value === undefined2 && other === undefined2) { - return defaultValue; - } - if (value !== undefined2) { - result2 = value; - } - if (other !== undefined2) { - if (result2 === undefined2) { - return other; - } - if (typeof value == "string" || typeof other == "string") { - value = baseToString(value); - other = baseToString(other); - } else { - value = baseToNumber(value); - other = baseToNumber(other); - } - result2 = operator(value, other); - } - return result2; - }; - } - function createOver(arrayFunc) { - return flatRest(function(iteratees) { - iteratees = arrayMap(iteratees, baseUnary(getIteratee())); - return baseRest(function(args) { - var thisArg = this; - return arrayFunc(iteratees, function(iteratee2) { - return apply(iteratee2, thisArg, args); - }); - }); - }); - } - function createPadding(length, chars) { - chars = chars === undefined2 ? " " : baseToString(chars); - var charsLength = chars.length; - if (charsLength < 2) { - return charsLength ? baseRepeat(chars, length) : chars; - } - var result2 = baseRepeat(chars, nativeCeil(length / stringSize(chars))); - return hasUnicode(chars) ? castSlice(stringToArray(result2), 0, length).join("") : result2.slice(0, length); - } - function createPartial(func, bitmask, thisArg, partials) { - var isBind = bitmask & WRAP_BIND_FLAG, Ctor = createCtor(func); - function wrapper() { - var argsIndex = -1, argsLength = arguments.length, leftIndex = -1, leftLength = partials.length, args = Array2(leftLength + argsLength), fn = this && this !== root && this instanceof wrapper ? Ctor : func; - while (++leftIndex < leftLength) { - args[leftIndex] = partials[leftIndex]; - } - while (argsLength--) { - args[leftIndex++] = arguments[++argsIndex]; - } - return apply(fn, isBind ? thisArg : this, args); - } - return wrapper; - } - function createRange(fromRight) { - return function(start, end, step) { - if (step && typeof step != "number" && isIterateeCall(start, end, step)) { - end = step = undefined2; - } - start = toFinite(start); - if (end === undefined2) { - end = start; - start = 0; - } else { - end = toFinite(end); - } - step = step === undefined2 ? start < end ? 1 : -1 : toFinite(step); - return baseRange(start, end, step, fromRight); - }; - } - function createRelationalOperation(operator) { - return function(value, other) { - if (!(typeof value == "string" && typeof other == "string")) { - value = toNumber(value); - other = toNumber(other); - } - return operator(value, other); - }; - } - function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary2, arity) { - var isCurry = bitmask & WRAP_CURRY_FLAG, newHolders = isCurry ? holders : undefined2, newHoldersRight = isCurry ? undefined2 : holders, newPartials = isCurry ? partials : undefined2, newPartialsRight = isCurry ? undefined2 : partials; - bitmask |= isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG; - bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG); - if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) { - bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG); - } - var newData = [ - func, - bitmask, - thisArg, - newPartials, - newHolders, - newPartialsRight, - newHoldersRight, - argPos, - ary2, - arity - ]; - var result2 = wrapFunc.apply(undefined2, newData); - if (isLaziable(func)) { - setData(result2, newData); - } - result2.placeholder = placeholder; - return setWrapToString(result2, func, bitmask); - } - function createRound(methodName) { - var func = Math2[methodName]; - return function(number, precision) { - number = toNumber(number); - precision = precision == null ? 0 : nativeMin(toInteger(precision), 292); - if (precision && nativeIsFinite(number)) { - var pair = (toString(number) + "e").split("e"), value = func(pair[0] + "e" + (+pair[1] + precision)); - pair = (toString(value) + "e").split("e"); - return +(pair[0] + "e" + (+pair[1] - precision)); - } - return func(number); - }; - } - var createSet = !(Set2 && 1 / setToArray(new Set2([, -0]))[1] == INFINITY) ? noop2 : function(values2) { - return new Set2(values2); - }; - function createToPairs(keysFunc) { - return function(object) { - var tag = getTag(object); - if (tag == mapTag) { - return mapToArray(object); - } - if (tag == setTag) { - return setToPairs(object); - } - return baseToPairs(object, keysFunc(object)); - }; - } - function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary2, arity) { - var isBindKey = bitmask & WRAP_BIND_KEY_FLAG; - if (!isBindKey && typeof func != "function") { - throw new TypeError2(FUNC_ERROR_TEXT); - } - var length = partials ? partials.length : 0; - if (!length) { - bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG); - partials = holders = undefined2; - } - ary2 = ary2 === undefined2 ? ary2 : nativeMax(toInteger(ary2), 0); - arity = arity === undefined2 ? arity : toInteger(arity); - length -= holders ? holders.length : 0; - if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) { - var partialsRight = partials, holdersRight = holders; - partials = holders = undefined2; - } - var data = isBindKey ? undefined2 : getData(func); - var newData = [ - func, - bitmask, - thisArg, - partials, - holders, - partialsRight, - holdersRight, - argPos, - ary2, - arity - ]; - if (data) { - mergeData(newData, data); - } - func = newData[0]; - bitmask = newData[1]; - thisArg = newData[2]; - partials = newData[3]; - holders = newData[4]; - arity = newData[9] = newData[9] === undefined2 ? isBindKey ? 0 : func.length : nativeMax(newData[9] - length, 0); - if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) { - bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG); - } - if (!bitmask || bitmask == WRAP_BIND_FLAG) { - var result2 = createBind(func, bitmask, thisArg); - } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) { - result2 = createCurry(func, bitmask, arity); - } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) { - result2 = createPartial(func, bitmask, thisArg, partials); - } else { - result2 = createHybrid.apply(undefined2, newData); - } - var setter = data ? baseSetData : setData; - return setWrapToString(setter(result2, newData), func, bitmask); - } - function customDefaultsAssignIn(objValue, srcValue, key, object) { - if (objValue === undefined2 || eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key)) { - return srcValue; - } - return objValue; - } - function customDefaultsMerge(objValue, srcValue, key, object, source, stack) { - if (isObject(objValue) && isObject(srcValue)) { - stack.set(srcValue, objValue); - baseMerge(objValue, srcValue, undefined2, customDefaultsMerge, stack); - stack["delete"](srcValue); - } - return objValue; - } - function customOmitClone(value) { - return isPlainObject(value) ? undefined2 : value; - } - function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { - var isPartial = bitmask & COMPARE_PARTIAL_FLAG, arrLength = array.length, othLength = other.length; - if (arrLength != othLength && !(isPartial && othLength > arrLength)) { - return false; - } - var arrStacked = stack.get(array); - var othStacked = stack.get(other); - if (arrStacked && othStacked) { - return arrStacked == other && othStacked == array; - } - var index = -1, result2 = true, seen = bitmask & COMPARE_UNORDERED_FLAG ? new SetCache() : undefined2; - stack.set(array, other); - stack.set(other, array); - while (++index < arrLength) { - var arrValue = array[index], othValue = other[index]; - if (customizer) { - var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack); - } - if (compared !== undefined2) { - if (compared) { - continue; - } - result2 = false; - break; - } - if (seen) { - if (!arraySome(other, function(othValue2, othIndex) { - if (!cacheHas(seen, othIndex) && (arrValue === othValue2 || equalFunc(arrValue, othValue2, bitmask, customizer, stack))) { - return seen.push(othIndex); - } - })) { - result2 = false; - break; - } - } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { - result2 = false; - break; - } - } - stack["delete"](array); - stack["delete"](other); - return result2; - } - function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { - switch (tag) { - case dataViewTag: - if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) { - return false; - } - object = object.buffer; - other = other.buffer; - case arrayBufferTag: - if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array2(object), new Uint8Array2(other))) { - return false; - } - return true; - case boolTag: - case dateTag: - case numberTag: - return eq(+object, +other); - case errorTag: - return object.name == other.name && object.message == other.message; - case regexpTag: - case stringTag: - return object == other + ""; - case mapTag: - var convert = mapToArray; - case setTag: - var isPartial = bitmask & COMPARE_PARTIAL_FLAG; - convert || (convert = setToArray); - if (object.size != other.size && !isPartial) { - return false; - } - var stacked = stack.get(object); - if (stacked) { - return stacked == other; - } - bitmask |= COMPARE_UNORDERED_FLAG; - stack.set(object, other); - var result2 = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); - stack["delete"](object); - return result2; - case symbolTag: - if (symbolValueOf) { - return symbolValueOf.call(object) == symbolValueOf.call(other); - } - } - return false; - } - function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { - var isPartial = bitmask & COMPARE_PARTIAL_FLAG, objProps = getAllKeys(object), objLength = objProps.length, othProps = getAllKeys(other), othLength = othProps.length; - if (objLength != othLength && !isPartial) { - return false; - } - var index = objLength; - while (index--) { - var key = objProps[index]; - if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) { - return false; - } - } - var objStacked = stack.get(object); - var othStacked = stack.get(other); - if (objStacked && othStacked) { - return objStacked == other && othStacked == object; - } - var result2 = true; - stack.set(object, other); - stack.set(other, object); - var skipCtor = isPartial; - while (++index < objLength) { - key = objProps[index]; - var objValue = object[key], othValue = other[key]; - if (customizer) { - var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack); - } - if (!(compared === undefined2 ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) { - result2 = false; - break; - } - skipCtor || (skipCtor = key == "constructor"); - } - if (result2 && !skipCtor) { - var objCtor = object.constructor, othCtor = other.constructor; - if (objCtor != othCtor && ("constructor" in object && "constructor" in other) && !(typeof objCtor == "function" && objCtor instanceof objCtor && typeof othCtor == "function" && othCtor instanceof othCtor)) { - result2 = false; - } - } - stack["delete"](object); - stack["delete"](other); - return result2; - } - function flatRest(func) { - return setToString(overRest(func, undefined2, flatten), func + ""); - } - function getAllKeys(object) { - return baseGetAllKeys(object, keys, getSymbols); - } - function getAllKeysIn(object) { - return baseGetAllKeys(object, keysIn, getSymbolsIn); - } - var getData = !metaMap ? noop2 : function(func) { - return metaMap.get(func); - }; - function getFuncName(func) { - var result2 = func.name + "", array = realNames[result2], length = hasOwnProperty.call(realNames, result2) ? array.length : 0; - while (length--) { - var data = array[length], otherFunc = data.func; - if (otherFunc == null || otherFunc == func) { - return data.name; - } - } - return result2; - } - function getHolder(func) { - var object = hasOwnProperty.call(lodash, "placeholder") ? lodash : func; - return object.placeholder; - } - function getIteratee() { - var result2 = lodash.iteratee || iteratee; - result2 = result2 === iteratee ? baseIteratee : result2; - return arguments.length ? result2(arguments[0], arguments[1]) : result2; - } - function getMapData(map2, key) { - var data = map2.__data__; - return isKeyable(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map; - } - function getMatchData(object) { - var result2 = keys(object), length = result2.length; - while (length--) { - var key = result2[length], value = object[key]; - result2[length] = [key, value, isStrictComparable(value)]; - } - return result2; - } - function getNative(object, key) { - var value = getValue(object, key); - return baseIsNative(value) ? value : undefined2; - } - function getRawTag(value) { - var isOwn = hasOwnProperty.call(value, symToStringTag), tag = value[symToStringTag]; - try { - value[symToStringTag] = undefined2; - var unmasked = true; - } catch (e) { - } - var result2 = nativeObjectToString.call(value); - if (unmasked) { - if (isOwn) { - value[symToStringTag] = tag; - } else { - delete value[symToStringTag]; - } - } - return result2; - } - var getSymbols = !nativeGetSymbols ? stubArray : function(object) { - if (object == null) { - return []; - } - object = Object2(object); - return arrayFilter(nativeGetSymbols(object), function(symbol) { - return propertyIsEnumerable.call(object, symbol); - }); - }; - var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) { - var result2 = []; - while (object) { - arrayPush(result2, getSymbols(object)); - object = getPrototype(object); - } - return result2; - }; - var getTag = baseGetTag; - if (DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag || Map2 && getTag(new Map2()) != mapTag || Promise2 && getTag(Promise2.resolve()) != promiseTag || Set2 && getTag(new Set2()) != setTag || WeakMap2 && getTag(new WeakMap2()) != weakMapTag) { - getTag = function(value) { - var result2 = baseGetTag(value), Ctor = result2 == objectTag ? value.constructor : undefined2, ctorString = Ctor ? toSource(Ctor) : ""; - if (ctorString) { - switch (ctorString) { - case dataViewCtorString: - return dataViewTag; - case mapCtorString: - return mapTag; - case promiseCtorString: - return promiseTag; - case setCtorString: - return setTag; - case weakMapCtorString: - return weakMapTag; - } - } - return result2; - }; - } - function getView(start, end, transforms) { - var index = -1, length = transforms.length; - while (++index < length) { - var data = transforms[index], size2 = data.size; - switch (data.type) { - case "drop": - start += size2; - break; - case "dropRight": - end -= size2; - break; - case "take": - end = nativeMin(end, start + size2); - break; - case "takeRight": - start = nativeMax(start, end - size2); - break; - } - } - return { "start": start, "end": end }; - } - function getWrapDetails(source) { - var match = source.match(reWrapDetails); - return match ? match[1].split(reSplitDetails) : []; - } - function hasPath(object, path, hasFunc) { - path = castPath(path, object); - var index = -1, length = path.length, result2 = false; - while (++index < length) { - var key = toKey(path[index]); - if (!(result2 = object != null && hasFunc(object, key))) { - break; - } - object = object[key]; - } - if (result2 || ++index != length) { - return result2; - } - length = object == null ? 0 : object.length; - return !!length && isLength(length) && isIndex(key, length) && (isArray(object) || isArguments(object)); - } - function initCloneArray(array) { - var length = array.length, result2 = new array.constructor(length); - if (length && typeof array[0] == "string" && hasOwnProperty.call(array, "index")) { - result2.index = array.index; - result2.input = array.input; - } - return result2; - } - function initCloneObject(object) { - return typeof object.constructor == "function" && !isPrototype(object) ? baseCreate(getPrototype(object)) : {}; - } - function initCloneByTag(object, tag, isDeep) { - var Ctor = object.constructor; - switch (tag) { - case arrayBufferTag: - return cloneArrayBuffer(object); - case boolTag: - case dateTag: - return new Ctor(+object); - case dataViewTag: - return cloneDataView(object, isDeep); - case float32Tag: - case float64Tag: - case int8Tag: - case int16Tag: - case int32Tag: - case uint8Tag: - case uint8ClampedTag: - case uint16Tag: - case uint32Tag: - return cloneTypedArray(object, isDeep); - case mapTag: - return new Ctor(); - case numberTag: - case stringTag: - return new Ctor(object); - case regexpTag: - return cloneRegExp(object); - case setTag: - return new Ctor(); - case symbolTag: - return cloneSymbol(object); - } - } - function insertWrapDetails(source, details) { - var length = details.length; - if (!length) { - return source; - } - var lastIndex = length - 1; - details[lastIndex] = (length > 1 ? "& " : "") + details[lastIndex]; - details = details.join(length > 2 ? ", " : " "); - return source.replace(reWrapComment, "{\n/* [wrapped with " + details + "] */\n"); - } - function isFlattenable(value) { - return isArray(value) || isArguments(value) || !!(spreadableSymbol && value && value[spreadableSymbol]); - } - function isIndex(value, length) { - var type = typeof value; - length = length == null ? MAX_SAFE_INTEGER : length; - return !!length && (type == "number" || type != "symbol" && reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length); - } - function isIterateeCall(value, index, object) { - if (!isObject(object)) { - return false; - } - var type = typeof index; - if (type == "number" ? isArrayLike(object) && isIndex(index, object.length) : type == "string" && index in object) { - return eq(object[index], value); - } - return false; - } - function isKey(value, object) { - if (isArray(value)) { - return false; - } - var type = typeof value; - if (type == "number" || type == "symbol" || type == "boolean" || value == null || isSymbol(value)) { - return true; - } - return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object2(object); - } - function isKeyable(value) { - var type = typeof value; - return type == "string" || type == "number" || type == "symbol" || type == "boolean" ? value !== "__proto__" : value === null; - } - function isLaziable(func) { - var funcName = getFuncName(func), other = lodash[funcName]; - if (typeof other != "function" || !(funcName in LazyWrapper.prototype)) { - return false; - } - if (func === other) { - return true; - } - var data = getData(other); - return !!data && func === data[0]; - } - function isMasked(func) { - return !!maskSrcKey && maskSrcKey in func; - } - var isMaskable = coreJsData ? isFunction : stubFalse; - function isPrototype(value) { - var Ctor = value && value.constructor, proto = typeof Ctor == "function" && Ctor.prototype || objectProto; - return value === proto; - } - function isStrictComparable(value) { - return value === value && !isObject(value); - } - function matchesStrictComparable(key, srcValue) { - return function(object) { - if (object == null) { - return false; - } - return object[key] === srcValue && (srcValue !== undefined2 || key in Object2(object)); - }; - } - function memoizeCapped(func) { - var result2 = memoize(func, function(key) { - if (cache.size === MAX_MEMOIZE_SIZE) { - cache.clear(); - } - return key; - }); - var cache = result2.cache; - return result2; - } - function mergeData(data, source) { - var bitmask = data[1], srcBitmask = source[1], newBitmask = bitmask | srcBitmask, isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG); - var isCombo = srcBitmask == WRAP_ARY_FLAG && bitmask == WRAP_CURRY_FLAG || srcBitmask == WRAP_ARY_FLAG && bitmask == WRAP_REARG_FLAG && data[7].length <= source[8] || srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG) && source[7].length <= source[8] && bitmask == WRAP_CURRY_FLAG; - if (!(isCommon || isCombo)) { - return data; - } - if (srcBitmask & WRAP_BIND_FLAG) { - data[2] = source[2]; - newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG; - } - var value = source[3]; - if (value) { - var partials = data[3]; - data[3] = partials ? composeArgs(partials, value, source[4]) : value; - data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4]; - } - value = source[5]; - if (value) { - partials = data[5]; - data[5] = partials ? composeArgsRight(partials, value, source[6]) : value; - data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6]; - } - value = source[7]; - if (value) { - data[7] = value; - } - if (srcBitmask & WRAP_ARY_FLAG) { - data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]); - } - if (data[9] == null) { - data[9] = source[9]; - } - data[0] = source[0]; - data[1] = newBitmask; - return data; - } - function nativeKeysIn(object) { - var result2 = []; - if (object != null) { - for (var key in Object2(object)) { - result2.push(key); - } - } - return result2; - } - function objectToString(value) { - return nativeObjectToString.call(value); - } - function overRest(func, start, transform3) { - start = nativeMax(start === undefined2 ? func.length - 1 : start, 0); - return function() { - var args = arguments, index = -1, length = nativeMax(args.length - start, 0), array = Array2(length); - while (++index < length) { - array[index] = args[start + index]; - } - index = -1; - var otherArgs = Array2(start + 1); - while (++index < start) { - otherArgs[index] = args[index]; - } - otherArgs[start] = transform3(array); - return apply(func, this, otherArgs); - }; - } - function parent(object, path) { - return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1)); - } - function reorder(array, indexes) { - var arrLength = array.length, length = nativeMin(indexes.length, arrLength), oldArray = copyArray(array); - while (length--) { - var index = indexes[length]; - array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined2; - } - return array; - } - function safeGet(object, key) { - if (key === "constructor" && typeof object[key] === "function") { - return; - } - if (key == "__proto__") { - return; - } - return object[key]; - } - var setData = shortOut(baseSetData); - var setTimeout = ctxSetTimeout || function(func, wait) { - return root.setTimeout(func, wait); - }; - var setToString = shortOut(baseSetToString); - function setWrapToString(wrapper, reference, bitmask) { - var source = reference + ""; - return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask))); - } - function shortOut(func) { - var count = 0, lastCalled = 0; - return function() { - var stamp = nativeNow(), remaining = HOT_SPAN - (stamp - lastCalled); - lastCalled = stamp; - if (remaining > 0) { - if (++count >= HOT_COUNT) { - return arguments[0]; - } - } else { - count = 0; - } - return func.apply(undefined2, arguments); - }; - } - function shuffleSelf(array, size2) { - var index = -1, length = array.length, lastIndex = length - 1; - size2 = size2 === undefined2 ? length : size2; - while (++index < size2) { - var rand = baseRandom(index, lastIndex), value = array[rand]; - array[rand] = array[index]; - array[index] = value; - } - array.length = size2; - return array; - } - var stringToPath = memoizeCapped(function(string) { - var result2 = []; - if (string.charCodeAt(0) === 46) { - result2.push(""); - } - string.replace(rePropName, function(match, number, quote, subString) { - result2.push(quote ? subString.replace(reEscapeChar, "$1") : number || match); - }); - return result2; - }); - function toKey(value) { - if (typeof value == "string" || isSymbol(value)) { - return value; - } - var result2 = value + ""; - return result2 == "0" && 1 / value == -INFINITY ? "-0" : result2; - } - function toSource(func) { - if (func != null) { - try { - return funcToString.call(func); - } catch (e) { - } - try { - return func + ""; - } catch (e) { - } - } - return ""; - } - function updateWrapDetails(details, bitmask) { - arrayEach(wrapFlags, function(pair) { - var value = "_." + pair[0]; - if (bitmask & pair[1] && !arrayIncludes(details, value)) { - details.push(value); - } - }); - return details.sort(); - } - function wrapperClone(wrapper) { - if (wrapper instanceof LazyWrapper) { - return wrapper.clone(); - } - var result2 = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__); - result2.__actions__ = copyArray(wrapper.__actions__); - result2.__index__ = wrapper.__index__; - result2.__values__ = wrapper.__values__; - return result2; - } - function chunk(array, size2, guard) { - if (guard ? isIterateeCall(array, size2, guard) : size2 === undefined2) { - size2 = 1; - } else { - size2 = nativeMax(toInteger(size2), 0); - } - var length = array == null ? 0 : array.length; - if (!length || size2 < 1) { - return []; - } - var index = 0, resIndex = 0, result2 = Array2(nativeCeil(length / size2)); - while (index < length) { - result2[resIndex++] = baseSlice(array, index, index += size2); - } - return result2; - } - function compact(array) { - var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result2 = []; - while (++index < length) { - var value = array[index]; - if (value) { - result2[resIndex++] = value; - } - } - return result2; - } - function concat() { - var length = arguments.length; - if (!length) { - return []; - } - var args = Array2(length - 1), array = arguments[0], index = length; - while (index--) { - args[index - 1] = arguments[index]; - } - return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1)); - } - var difference2 = baseRest(function(array, values2) { - return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values2, 1, isArrayLikeObject, true)) : []; - }); - var differenceBy = baseRest(function(array, values2) { - var iteratee2 = last3(values2); - if (isArrayLikeObject(iteratee2)) { - iteratee2 = undefined2; - } - return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values2, 1, isArrayLikeObject, true), getIteratee(iteratee2, 2)) : []; - }); - var differenceWith = baseRest(function(array, values2) { - var comparator = last3(values2); - if (isArrayLikeObject(comparator)) { - comparator = undefined2; - } - return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values2, 1, isArrayLikeObject, true), undefined2, comparator) : []; - }); - function drop(array, n, guard) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - n = guard || n === undefined2 ? 1 : toInteger(n); - return baseSlice(array, n < 0 ? 0 : n, length); - } - function dropRight(array, n, guard) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - n = guard || n === undefined2 ? 1 : toInteger(n); - n = length - n; - return baseSlice(array, 0, n < 0 ? 0 : n); - } - function dropRightWhile(array, predicate) { - return array && array.length ? baseWhile(array, getIteratee(predicate, 3), true, true) : []; - } - function dropWhile(array, predicate) { - return array && array.length ? baseWhile(array, getIteratee(predicate, 3), true) : []; - } - function fill(array, value, start, end) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - if (start && typeof start != "number" && isIterateeCall(array, value, start)) { - start = 0; - end = length; - } - return baseFill(array, value, start, end); - } - function findIndex(array, predicate, fromIndex) { - var length = array == null ? 0 : array.length; - if (!length) { - return -1; - } - var index = fromIndex == null ? 0 : toInteger(fromIndex); - if (index < 0) { - index = nativeMax(length + index, 0); - } - return baseFindIndex(array, getIteratee(predicate, 3), index); - } - function findLastIndex(array, predicate, fromIndex) { - var length = array == null ? 0 : array.length; - if (!length) { - return -1; - } - var index = length - 1; - if (fromIndex !== undefined2) { - index = toInteger(fromIndex); - index = fromIndex < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1); - } - return baseFindIndex(array, getIteratee(predicate, 3), index, true); - } - function flatten(array) { - var length = array == null ? 0 : array.length; - return length ? baseFlatten(array, 1) : []; - } - function flattenDeep(array) { - var length = array == null ? 0 : array.length; - return length ? baseFlatten(array, INFINITY) : []; - } - function flattenDepth(array, depth) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - depth = depth === undefined2 ? 1 : toInteger(depth); - return baseFlatten(array, depth); - } - function fromPairs(pairs) { - var index = -1, length = pairs == null ? 0 : pairs.length, result2 = {}; - while (++index < length) { - var pair = pairs[index]; - result2[pair[0]] = pair[1]; - } - return result2; - } - function head(array) { - return array && array.length ? array[0] : undefined2; - } - function indexOf(array, value, fromIndex) { - var length = array == null ? 0 : array.length; - if (!length) { - return -1; - } - var index = fromIndex == null ? 0 : toInteger(fromIndex); - if (index < 0) { - index = nativeMax(length + index, 0); - } - return baseIndexOf(array, value, index); - } - function initial(array) { - var length = array == null ? 0 : array.length; - return length ? baseSlice(array, 0, -1) : []; - } - var intersection = baseRest(function(arrays) { - var mapped = arrayMap(arrays, castArrayLikeObject); - return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped) : []; - }); - var intersectionBy = baseRest(function(arrays) { - var iteratee2 = last3(arrays), mapped = arrayMap(arrays, castArrayLikeObject); - if (iteratee2 === last3(mapped)) { - iteratee2 = undefined2; - } else { - mapped.pop(); - } - return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped, getIteratee(iteratee2, 2)) : []; - }); - var intersectionWith = baseRest(function(arrays) { - var comparator = last3(arrays), mapped = arrayMap(arrays, castArrayLikeObject); - comparator = typeof comparator == "function" ? comparator : undefined2; - if (comparator) { - mapped.pop(); - } - return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped, undefined2, comparator) : []; - }); - function join(array, separator) { - return array == null ? "" : nativeJoin.call(array, separator); - } - function last3(array) { - var length = array == null ? 0 : array.length; - return length ? array[length - 1] : undefined2; - } - function lastIndexOf(array, value, fromIndex) { - var length = array == null ? 0 : array.length; - if (!length) { - return -1; - } - var index = length; - if (fromIndex !== undefined2) { - index = toInteger(fromIndex); - index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1); - } - return value === value ? strictLastIndexOf(array, value, index) : baseFindIndex(array, baseIsNaN, index, true); - } - function nth(array, n) { - return array && array.length ? baseNth(array, toInteger(n)) : undefined2; - } - var pull = baseRest(pullAll); - function pullAll(array, values2) { - return array && array.length && values2 && values2.length ? basePullAll(array, values2) : array; - } - function pullAllBy(array, values2, iteratee2) { - return array && array.length && values2 && values2.length ? basePullAll(array, values2, getIteratee(iteratee2, 2)) : array; - } - function pullAllWith(array, values2, comparator) { - return array && array.length && values2 && values2.length ? basePullAll(array, values2, undefined2, comparator) : array; - } - var pullAt = flatRest(function(array, indexes) { - var length = array == null ? 0 : array.length, result2 = baseAt(array, indexes); - basePullAt(array, arrayMap(indexes, function(index) { - return isIndex(index, length) ? +index : index; - }).sort(compareAscending)); - return result2; - }); - function remove(array, predicate) { - var result2 = []; - if (!(array && array.length)) { - return result2; - } - var index = -1, indexes = [], length = array.length; - predicate = getIteratee(predicate, 3); - while (++index < length) { - var value = array[index]; - if (predicate(value, index, array)) { - result2.push(value); - indexes.push(index); - } - } - basePullAt(array, indexes); - return result2; - } - function reverse(array) { - return array == null ? array : nativeReverse.call(array); - } - function slice(array, start, end) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - if (end && typeof end != "number" && isIterateeCall(array, start, end)) { - start = 0; - end = length; - } else { - start = start == null ? 0 : toInteger(start); - end = end === undefined2 ? length : toInteger(end); - } - return baseSlice(array, start, end); - } - function sortedIndex(array, value) { - return baseSortedIndex(array, value); - } - function sortedIndexBy(array, value, iteratee2) { - return baseSortedIndexBy(array, value, getIteratee(iteratee2, 2)); - } - function sortedIndexOf(array, value) { - var length = array == null ? 0 : array.length; - if (length) { - var index = baseSortedIndex(array, value); - if (index < length && eq(array[index], value)) { - return index; - } - } - return -1; - } - function sortedLastIndex(array, value) { - return baseSortedIndex(array, value, true); - } - function sortedLastIndexBy(array, value, iteratee2) { - return baseSortedIndexBy(array, value, getIteratee(iteratee2, 2), true); - } - function sortedLastIndexOf(array, value) { - var length = array == null ? 0 : array.length; - if (length) { - var index = baseSortedIndex(array, value, true) - 1; - if (eq(array[index], value)) { - return index; - } - } - return -1; - } - function sortedUniq(array) { - return array && array.length ? baseSortedUniq(array) : []; - } - function sortedUniqBy(array, iteratee2) { - return array && array.length ? baseSortedUniq(array, getIteratee(iteratee2, 2)) : []; - } - function tail(array) { - var length = array == null ? 0 : array.length; - return length ? baseSlice(array, 1, length) : []; - } - function take(array, n, guard) { - if (!(array && array.length)) { - return []; - } - n = guard || n === undefined2 ? 1 : toInteger(n); - return baseSlice(array, 0, n < 0 ? 0 : n); - } - function takeRight(array, n, guard) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - n = guard || n === undefined2 ? 1 : toInteger(n); - n = length - n; - return baseSlice(array, n < 0 ? 0 : n, length); - } - function takeRightWhile(array, predicate) { - return array && array.length ? baseWhile(array, getIteratee(predicate, 3), false, true) : []; - } - function takeWhile(array, predicate) { - return array && array.length ? baseWhile(array, getIteratee(predicate, 3)) : []; - } - var union = baseRest(function(arrays) { - return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true)); - }); - var unionBy = baseRest(function(arrays) { - var iteratee2 = last3(arrays); - if (isArrayLikeObject(iteratee2)) { - iteratee2 = undefined2; - } - return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee2, 2)); - }); - var unionWith = baseRest(function(arrays) { - var comparator = last3(arrays); - comparator = typeof comparator == "function" ? comparator : undefined2; - return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined2, comparator); - }); - function uniq(array) { - return array && array.length ? baseUniq(array) : []; - } - function uniqBy(array, iteratee2) { - return array && array.length ? baseUniq(array, getIteratee(iteratee2, 2)) : []; - } - function uniqWith(array, comparator) { - comparator = typeof comparator == "function" ? comparator : undefined2; - return array && array.length ? baseUniq(array, undefined2, comparator) : []; - } - function unzip(array) { - if (!(array && array.length)) { - return []; - } - var length = 0; - array = arrayFilter(array, function(group) { - if (isArrayLikeObject(group)) { - length = nativeMax(group.length, length); - return true; - } - }); - return baseTimes(length, function(index) { - return arrayMap(array, baseProperty(index)); - }); - } - function unzipWith(array, iteratee2) { - if (!(array && array.length)) { - return []; - } - var result2 = unzip(array); - if (iteratee2 == null) { - return result2; - } - return arrayMap(result2, function(group) { - return apply(iteratee2, undefined2, group); - }); - } - var without = baseRest(function(array, values2) { - return isArrayLikeObject(array) ? baseDifference(array, values2) : []; - }); - var xor = baseRest(function(arrays) { - return baseXor(arrayFilter(arrays, isArrayLikeObject)); - }); - var xorBy = baseRest(function(arrays) { - var iteratee2 = last3(arrays); - if (isArrayLikeObject(iteratee2)) { - iteratee2 = undefined2; - } - return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee2, 2)); - }); - var xorWith = baseRest(function(arrays) { - var comparator = last3(arrays); - comparator = typeof comparator == "function" ? comparator : undefined2; - return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined2, comparator); - }); - var zip = baseRest(unzip); - function zipObject(props, values2) { - return baseZipObject(props || [], values2 || [], assignValue); - } - function zipObjectDeep(props, values2) { - return baseZipObject(props || [], values2 || [], baseSet); - } - var zipWith = baseRest(function(arrays) { - var length = arrays.length, iteratee2 = length > 1 ? arrays[length - 1] : undefined2; - iteratee2 = typeof iteratee2 == "function" ? (arrays.pop(), iteratee2) : undefined2; - return unzipWith(arrays, iteratee2); - }); - function chain(value) { - var result2 = lodash(value); - result2.__chain__ = true; - return result2; - } - function tap(value, interceptor) { - interceptor(value); - return value; - } - function thru(value, interceptor) { - return interceptor(value); - } - var wrapperAt = flatRest(function(paths) { - var length = paths.length, start = length ? paths[0] : 0, value = this.__wrapped__, interceptor = function(object) { - return baseAt(object, paths); - }; - if (length > 1 || this.__actions__.length || !(value instanceof LazyWrapper) || !isIndex(start)) { - return this.thru(interceptor); - } - value = value.slice(start, +start + (length ? 1 : 0)); - value.__actions__.push({ - "func": thru, - "args": [interceptor], - "thisArg": undefined2 - }); - return new LodashWrapper(value, this.__chain__).thru(function(array) { - if (length && !array.length) { - array.push(undefined2); - } - return array; - }); - }); - function wrapperChain() { - return chain(this); - } - function wrapperCommit() { - return new LodashWrapper(this.value(), this.__chain__); - } - function wrapperNext() { - if (this.__values__ === undefined2) { - this.__values__ = toArray(this.value()); - } - var done = this.__index__ >= this.__values__.length, value = done ? undefined2 : this.__values__[this.__index__++]; - return { "done": done, "value": value }; - } - function wrapperToIterator() { - return this; - } - function wrapperPlant(value) { - var result2, parent2 = this; - while (parent2 instanceof baseLodash) { - var clone2 = wrapperClone(parent2); - clone2.__index__ = 0; - clone2.__values__ = undefined2; - if (result2) { - previous.__wrapped__ = clone2; - } else { - result2 = clone2; - } - var previous = clone2; - parent2 = parent2.__wrapped__; - } - previous.__wrapped__ = value; - return result2; - } - function wrapperReverse() { - var value = this.__wrapped__; - if (value instanceof LazyWrapper) { - var wrapped = value; - if (this.__actions__.length) { - wrapped = new LazyWrapper(this); - } - wrapped = wrapped.reverse(); - wrapped.__actions__.push({ - "func": thru, - "args": [reverse], - "thisArg": undefined2 - }); - return new LodashWrapper(wrapped, this.__chain__); - } - return this.thru(reverse); - } - function wrapperValue() { - return baseWrapperValue(this.__wrapped__, this.__actions__); - } - var countBy = createAggregator(function(result2, value, key) { - if (hasOwnProperty.call(result2, key)) { - ++result2[key]; - } else { - baseAssignValue(result2, key, 1); - } - }); - function every(collection, predicate, guard) { - var func = isArray(collection) ? arrayEvery : baseEvery; - if (guard && isIterateeCall(collection, predicate, guard)) { - predicate = undefined2; - } - return func(collection, getIteratee(predicate, 3)); - } - function filter(collection, predicate) { - var func = isArray(collection) ? arrayFilter : baseFilter; - return func(collection, getIteratee(predicate, 3)); - } - var find = createFind(findIndex); - var findLast = createFind(findLastIndex); - function flatMap(collection, iteratee2) { - return baseFlatten(map(collection, iteratee2), 1); - } - function flatMapDeep(collection, iteratee2) { - return baseFlatten(map(collection, iteratee2), INFINITY); - } - function flatMapDepth(collection, iteratee2, depth) { - depth = depth === undefined2 ? 1 : toInteger(depth); - return baseFlatten(map(collection, iteratee2), depth); - } - function forEach(collection, iteratee2) { - var func = isArray(collection) ? arrayEach : baseEach; - return func(collection, getIteratee(iteratee2, 3)); - } - function forEachRight(collection, iteratee2) { - var func = isArray(collection) ? arrayEachRight : baseEachRight; - return func(collection, getIteratee(iteratee2, 3)); - } - var groupBy = createAggregator(function(result2, value, key) { - if (hasOwnProperty.call(result2, key)) { - result2[key].push(value); - } else { - baseAssignValue(result2, key, [value]); - } - }); - function includes(collection, value, fromIndex, guard) { - collection = isArrayLike(collection) ? collection : values(collection); - fromIndex = fromIndex && !guard ? toInteger(fromIndex) : 0; - var length = collection.length; - if (fromIndex < 0) { - fromIndex = nativeMax(length + fromIndex, 0); - } - return isString(collection) ? fromIndex <= length && collection.indexOf(value, fromIndex) > -1 : !!length && baseIndexOf(collection, value, fromIndex) > -1; - } - var invokeMap = baseRest(function(collection, path, args) { - var index = -1, isFunc = typeof path == "function", result2 = isArrayLike(collection) ? Array2(collection.length) : []; - baseEach(collection, function(value) { - result2[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args); - }); - return result2; - }); - var keyBy = createAggregator(function(result2, value, key) { - baseAssignValue(result2, key, value); - }); - function map(collection, iteratee2) { - var func = isArray(collection) ? arrayMap : baseMap; - return func(collection, getIteratee(iteratee2, 3)); - } - function orderBy(collection, iteratees, orders, guard) { - if (collection == null) { - return []; - } - if (!isArray(iteratees)) { - iteratees = iteratees == null ? [] : [iteratees]; - } - orders = guard ? undefined2 : orders; - if (!isArray(orders)) { - orders = orders == null ? [] : [orders]; - } - return baseOrderBy(collection, iteratees, orders); - } - var partition3 = createAggregator(function(result2, value, key) { - result2[key ? 0 : 1].push(value); - }, function() { - return [[], []]; - }); - function reduce(collection, iteratee2, accumulator) { - var func = isArray(collection) ? arrayReduce : baseReduce, initAccum = arguments.length < 3; - return func(collection, getIteratee(iteratee2, 4), accumulator, initAccum, baseEach); - } - function reduceRight(collection, iteratee2, accumulator) { - var func = isArray(collection) ? arrayReduceRight : baseReduce, initAccum = arguments.length < 3; - return func(collection, getIteratee(iteratee2, 4), accumulator, initAccum, baseEachRight); - } - function reject(collection, predicate) { - var func = isArray(collection) ? arrayFilter : baseFilter; - return func(collection, negate(getIteratee(predicate, 3))); - } - function sample(collection) { - var func = isArray(collection) ? arraySample : baseSample; - return func(collection); - } - function sampleSize(collection, n, guard) { - if (guard ? isIterateeCall(collection, n, guard) : n === undefined2) { - n = 1; - } else { - n = toInteger(n); - } - var func = isArray(collection) ? arraySampleSize : baseSampleSize; - return func(collection, n); - } - function shuffle(collection) { - var func = isArray(collection) ? arrayShuffle : baseShuffle; - return func(collection); - } - function size(collection) { - if (collection == null) { - return 0; - } - if (isArrayLike(collection)) { - return isString(collection) ? stringSize(collection) : collection.length; - } - var tag = getTag(collection); - if (tag == mapTag || tag == setTag) { - return collection.size; - } - return baseKeys(collection).length; - } - function some(collection, predicate, guard) { - var func = isArray(collection) ? arraySome : baseSome; - if (guard && isIterateeCall(collection, predicate, guard)) { - predicate = undefined2; - } - return func(collection, getIteratee(predicate, 3)); - } - var sortBy = baseRest(function(collection, iteratees) { - if (collection == null) { - return []; - } - var length = iteratees.length; - if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) { - iteratees = []; - } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) { - iteratees = [iteratees[0]]; - } - return baseOrderBy(collection, baseFlatten(iteratees, 1), []); - }); - var now = ctxNow || function() { - return root.Date.now(); - }; - function after(n, func) { - if (typeof func != "function") { - throw new TypeError2(FUNC_ERROR_TEXT); - } - n = toInteger(n); - return function() { - if (--n < 1) { - return func.apply(this, arguments); - } - }; - } - function ary(func, n, guard) { - n = guard ? undefined2 : n; - n = func && n == null ? func.length : n; - return createWrap(func, WRAP_ARY_FLAG, undefined2, undefined2, undefined2, undefined2, n); - } - function before(n, func) { - var result2; - if (typeof func != "function") { - throw new TypeError2(FUNC_ERROR_TEXT); - } - n = toInteger(n); - return function() { - if (--n > 0) { - result2 = func.apply(this, arguments); - } - if (n <= 1) { - func = undefined2; - } - return result2; - }; - } - var bind = baseRest(function(func, thisArg, partials) { - var bitmask = WRAP_BIND_FLAG; - if (partials.length) { - var holders = replaceHolders(partials, getHolder(bind)); - bitmask |= WRAP_PARTIAL_FLAG; - } - return createWrap(func, bitmask, thisArg, partials, holders); - }); - var bindKey = baseRest(function(object, key, partials) { - var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG; - if (partials.length) { - var holders = replaceHolders(partials, getHolder(bindKey)); - bitmask |= WRAP_PARTIAL_FLAG; - } - return createWrap(key, bitmask, object, partials, holders); - }); - function curry(func, arity, guard) { - arity = guard ? undefined2 : arity; - var result2 = createWrap(func, WRAP_CURRY_FLAG, undefined2, undefined2, undefined2, undefined2, undefined2, arity); - result2.placeholder = curry.placeholder; - return result2; - } - function curryRight(func, arity, guard) { - arity = guard ? undefined2 : arity; - var result2 = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined2, undefined2, undefined2, undefined2, undefined2, arity); - result2.placeholder = curryRight.placeholder; - return result2; - } - function debounce(func, wait, options) { - var lastArgs, lastThis, maxWait, result2, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true; - if (typeof func != "function") { - throw new TypeError2(FUNC_ERROR_TEXT); - } - wait = toNumber(wait) || 0; - if (isObject(options)) { - leading = !!options.leading; - maxing = "maxWait" in options; - maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait; - trailing = "trailing" in options ? !!options.trailing : trailing; - } - function invokeFunc(time2) { - var args = lastArgs, thisArg = lastThis; - lastArgs = lastThis = undefined2; - lastInvokeTime = time2; - result2 = func.apply(thisArg, args); - return result2; - } - function leadingEdge(time2) { - lastInvokeTime = time2; - timerId = setTimeout(timerExpired, wait); - return leading ? invokeFunc(time2) : result2; - } - function remainingWait(time2) { - var timeSinceLastCall = time2 - lastCallTime, timeSinceLastInvoke = time2 - lastInvokeTime, timeWaiting = wait - timeSinceLastCall; - return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting; - } - function shouldInvoke(time2) { - var timeSinceLastCall = time2 - lastCallTime, timeSinceLastInvoke = time2 - lastInvokeTime; - return lastCallTime === undefined2 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait; - } - function timerExpired() { - var time2 = now(); - if (shouldInvoke(time2)) { - return trailingEdge(time2); - } - timerId = setTimeout(timerExpired, remainingWait(time2)); - } - function trailingEdge(time2) { - timerId = undefined2; - if (trailing && lastArgs) { - return invokeFunc(time2); - } - lastArgs = lastThis = undefined2; - return result2; - } - function cancel() { - if (timerId !== undefined2) { - clearTimeout(timerId); - } - lastInvokeTime = 0; - lastArgs = lastCallTime = lastThis = timerId = undefined2; - } - function flush2() { - return timerId === undefined2 ? result2 : trailingEdge(now()); - } - function debounced() { - var time2 = now(), isInvoking = shouldInvoke(time2); - lastArgs = arguments; - lastThis = this; - lastCallTime = time2; - if (isInvoking) { - if (timerId === undefined2) { - return leadingEdge(lastCallTime); - } - if (maxing) { - clearTimeout(timerId); - timerId = setTimeout(timerExpired, wait); - return invokeFunc(lastCallTime); - } - } - if (timerId === undefined2) { - timerId = setTimeout(timerExpired, wait); - } - return result2; - } - debounced.cancel = cancel; - debounced.flush = flush2; - return debounced; - } - var defer = baseRest(function(func, args) { - return baseDelay(func, 1, args); - }); - var delay = baseRest(function(func, wait, args) { - return baseDelay(func, toNumber(wait) || 0, args); - }); - function flip(func) { - return createWrap(func, WRAP_FLIP_FLAG); - } - function memoize(func, resolver) { - if (typeof func != "function" || resolver != null && typeof resolver != "function") { - throw new TypeError2(FUNC_ERROR_TEXT); - } - var memoized = function() { - var args = arguments, key = resolver ? resolver.apply(this, args) : args[0], cache = memoized.cache; - if (cache.has(key)) { - return cache.get(key); - } - var result2 = func.apply(this, args); - memoized.cache = cache.set(key, result2) || cache; - return result2; - }; - memoized.cache = new (memoize.Cache || MapCache)(); - return memoized; - } - memoize.Cache = MapCache; - function negate(predicate) { - if (typeof predicate != "function") { - throw new TypeError2(FUNC_ERROR_TEXT); - } - return function() { - var args = arguments; - switch (args.length) { - case 0: - return !predicate.call(this); - case 1: - return !predicate.call(this, args[0]); - case 2: - return !predicate.call(this, args[0], args[1]); - case 3: - return !predicate.call(this, args[0], args[1], args[2]); - } - return !predicate.apply(this, args); - }; - } - function once(func) { - return before(2, func); - } - var overArgs = castRest(function(func, transforms) { - transforms = transforms.length == 1 && isArray(transforms[0]) ? arrayMap(transforms[0], baseUnary(getIteratee())) : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee())); - var funcsLength = transforms.length; - return baseRest(function(args) { - var index = -1, length = nativeMin(args.length, funcsLength); - while (++index < length) { - args[index] = transforms[index].call(this, args[index]); - } - return apply(func, this, args); - }); - }); - var partial = baseRest(function(func, partials) { - var holders = replaceHolders(partials, getHolder(partial)); - return createWrap(func, WRAP_PARTIAL_FLAG, undefined2, partials, holders); - }); - var partialRight = baseRest(function(func, partials) { - var holders = replaceHolders(partials, getHolder(partialRight)); - return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined2, partials, holders); - }); - var rearg = flatRest(function(func, indexes) { - return createWrap(func, WRAP_REARG_FLAG, undefined2, undefined2, undefined2, indexes); - }); - function rest(func, start) { - if (typeof func != "function") { - throw new TypeError2(FUNC_ERROR_TEXT); - } - start = start === undefined2 ? start : toInteger(start); - return baseRest(func, start); - } - function spread(func, start) { - if (typeof func != "function") { - throw new TypeError2(FUNC_ERROR_TEXT); - } - start = start == null ? 0 : nativeMax(toInteger(start), 0); - return baseRest(function(args) { - var array = args[start], otherArgs = castSlice(args, 0, start); - if (array) { - arrayPush(otherArgs, array); - } - return apply(func, this, otherArgs); - }); - } - function throttle(func, wait, options) { - var leading = true, trailing = true; - if (typeof func != "function") { - throw new TypeError2(FUNC_ERROR_TEXT); - } - if (isObject(options)) { - leading = "leading" in options ? !!options.leading : leading; - trailing = "trailing" in options ? !!options.trailing : trailing; - } - return debounce(func, wait, { - "leading": leading, - "maxWait": wait, - "trailing": trailing - }); - } - function unary(func) { - return ary(func, 1); - } - function wrap(value, wrapper) { - return partial(castFunction(wrapper), value); - } - function castArray() { - if (!arguments.length) { - return []; - } - var value = arguments[0]; - return isArray(value) ? value : [value]; - } - function clone(value) { - return baseClone(value, CLONE_SYMBOLS_FLAG); - } - function cloneWith(value, customizer) { - customizer = typeof customizer == "function" ? customizer : undefined2; - return baseClone(value, CLONE_SYMBOLS_FLAG, customizer); - } - function cloneDeep(value) { - return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG); - } - function cloneDeepWith(value, customizer) { - customizer = typeof customizer == "function" ? customizer : undefined2; - return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer); - } - function conformsTo(object, source) { - return source == null || baseConformsTo(object, source, keys(source)); - } - function eq(value, other) { - return value === other || value !== value && other !== other; - } - var gt = createRelationalOperation(baseGt); - var gte = createRelationalOperation(function(value, other) { - return value >= other; - }); - var isArguments = baseIsArguments(function() { - return arguments; - }()) ? baseIsArguments : function(value) { - return isObjectLike(value) && hasOwnProperty.call(value, "callee") && !propertyIsEnumerable.call(value, "callee"); - }; - var isArray = Array2.isArray; - var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer; - function isArrayLike(value) { - return value != null && isLength(value.length) && !isFunction(value); - } - function isArrayLikeObject(value) { - return isObjectLike(value) && isArrayLike(value); - } - function isBoolean(value) { - return value === true || value === false || isObjectLike(value) && baseGetTag(value) == boolTag; - } - var isBuffer = nativeIsBuffer || stubFalse; - var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate; - function isElement(value) { - return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value); - } - function isEmpty(value) { - if (value == null) { - return true; - } - if (isArrayLike(value) && (isArray(value) || typeof value == "string" || typeof value.splice == "function" || isBuffer(value) || isTypedArray(value) || isArguments(value))) { - return !value.length; - } - var tag = getTag(value); - if (tag == mapTag || tag == setTag) { - return !value.size; - } - if (isPrototype(value)) { - return !baseKeys(value).length; - } - for (var key in value) { - if (hasOwnProperty.call(value, key)) { - return false; - } - } - return true; - } - function isEqual(value, other) { - return baseIsEqual(value, other); - } - function isEqualWith(value, other, customizer) { - customizer = typeof customizer == "function" ? customizer : undefined2; - var result2 = customizer ? customizer(value, other) : undefined2; - return result2 === undefined2 ? baseIsEqual(value, other, undefined2, customizer) : !!result2; - } - function isError(value) { - if (!isObjectLike(value)) { - return false; - } - var tag = baseGetTag(value); - return tag == errorTag || tag == domExcTag || typeof value.message == "string" && typeof value.name == "string" && !isPlainObject(value); - } - function isFinite(value) { - return typeof value == "number" && nativeIsFinite(value); - } - function isFunction(value) { - if (!isObject(value)) { - return false; - } - var tag = baseGetTag(value); - return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; - } - function isInteger(value) { - return typeof value == "number" && value == toInteger(value); - } - function isLength(value) { - return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; - } - function isObject(value) { - var type = typeof value; - return value != null && (type == "object" || type == "function"); - } - function isObjectLike(value) { - return value != null && typeof value == "object"; - } - var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap; - function isMatch(object, source) { - return object === source || baseIsMatch(object, source, getMatchData(source)); - } - function isMatchWith(object, source, customizer) { - customizer = typeof customizer == "function" ? customizer : undefined2; - return baseIsMatch(object, source, getMatchData(source), customizer); - } - function isNaN2(value) { - return isNumber(value) && value != +value; - } - function isNative(value) { - if (isMaskable(value)) { - throw new Error2(CORE_ERROR_TEXT); - } - return baseIsNative(value); - } - function isNull(value) { - return value === null; - } - function isNil(value) { - return value == null; - } - function isNumber(value) { - return typeof value == "number" || isObjectLike(value) && baseGetTag(value) == numberTag; - } - function isPlainObject(value) { - if (!isObjectLike(value) || baseGetTag(value) != objectTag) { - return false; - } - var proto = getPrototype(value); - if (proto === null) { - return true; - } - var Ctor = hasOwnProperty.call(proto, "constructor") && proto.constructor; - return typeof Ctor == "function" && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString; - } - var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp; - function isSafeInteger(value) { - return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER; - } - var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet; - function isString(value) { - return typeof value == "string" || !isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag; - } - function isSymbol(value) { - return typeof value == "symbol" || isObjectLike(value) && baseGetTag(value) == symbolTag; - } - var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; - function isUndefined(value) { - return value === undefined2; - } - function isWeakMap(value) { - return isObjectLike(value) && getTag(value) == weakMapTag; - } - function isWeakSet(value) { - return isObjectLike(value) && baseGetTag(value) == weakSetTag; - } - var lt = createRelationalOperation(baseLt); - var lte = createRelationalOperation(function(value, other) { - return value <= other; - }); - function toArray(value) { - if (!value) { - return []; - } - if (isArrayLike(value)) { - return isString(value) ? stringToArray(value) : copyArray(value); - } - if (symIterator && value[symIterator]) { - return iteratorToArray(value[symIterator]()); - } - var tag = getTag(value), func = tag == mapTag ? mapToArray : tag == setTag ? setToArray : values; - return func(value); - } - function toFinite(value) { - if (!value) { - return value === 0 ? value : 0; - } - value = toNumber(value); - if (value === INFINITY || value === -INFINITY) { - var sign = value < 0 ? -1 : 1; - return sign * MAX_INTEGER; - } - return value === value ? value : 0; - } - function toInteger(value) { - var result2 = toFinite(value), remainder = result2 % 1; - return result2 === result2 ? remainder ? result2 - remainder : result2 : 0; - } - function toLength(value) { - return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0; - } - function toNumber(value) { - if (typeof value == "number") { - return value; - } - if (isSymbol(value)) { - return NAN; - } - if (isObject(value)) { - var other = typeof value.valueOf == "function" ? value.valueOf() : value; - value = isObject(other) ? other + "" : other; - } - if (typeof value != "string") { - return value === 0 ? value : +value; - } - value = baseTrim(value); - var isBinary = reIsBinary.test(value); - return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value; - } - function toPlainObject(value) { - return copyObject(value, keysIn(value)); - } - function toSafeInteger(value) { - return value ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER) : value === 0 ? value : 0; - } - function toString(value) { - return value == null ? "" : baseToString(value); - } - var assign2 = createAssigner(function(object, source) { - if (isPrototype(source) || isArrayLike(source)) { - copyObject(source, keys(source), object); - return; - } - for (var key in source) { - if (hasOwnProperty.call(source, key)) { - assignValue(object, key, source[key]); - } - } - }); - var assignIn = createAssigner(function(object, source) { - copyObject(source, keysIn(source), object); - }); - var assignInWith = createAssigner(function(object, source, srcIndex, customizer) { - copyObject(source, keysIn(source), object, customizer); - }); - var assignWith = createAssigner(function(object, source, srcIndex, customizer) { - copyObject(source, keys(source), object, customizer); - }); - var at = flatRest(baseAt); - function create2(prototype, properties) { - var result2 = baseCreate(prototype); - return properties == null ? result2 : baseAssign(result2, properties); - } - var defaults = baseRest(function(object, sources) { - object = Object2(object); - var index = -1; - var length = sources.length; - var guard = length > 2 ? sources[2] : undefined2; - if (guard && isIterateeCall(sources[0], sources[1], guard)) { - length = 1; - } - while (++index < length) { - var source = sources[index]; - var props = keysIn(source); - var propsIndex = -1; - var propsLength = props.length; - while (++propsIndex < propsLength) { - var key = props[propsIndex]; - var value = object[key]; - if (value === undefined2 || eq(value, objectProto[key]) && !hasOwnProperty.call(object, key)) { - object[key] = source[key]; - } - } - } - return object; - }); - var defaultsDeep = baseRest(function(args) { - args.push(undefined2, customDefaultsMerge); - return apply(mergeWith, undefined2, args); - }); - function findKey(object, predicate) { - return baseFindKey(object, getIteratee(predicate, 3), baseForOwn); - } - function findLastKey(object, predicate) { - return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight); - } - function forIn(object, iteratee2) { - return object == null ? object : baseFor(object, getIteratee(iteratee2, 3), keysIn); - } - function forInRight(object, iteratee2) { - return object == null ? object : baseForRight(object, getIteratee(iteratee2, 3), keysIn); - } - function forOwn(object, iteratee2) { - return object && baseForOwn(object, getIteratee(iteratee2, 3)); - } - function forOwnRight(object, iteratee2) { - return object && baseForOwnRight(object, getIteratee(iteratee2, 3)); - } - function functions(object) { - return object == null ? [] : baseFunctions(object, keys(object)); - } - function functionsIn(object) { - return object == null ? [] : baseFunctions(object, keysIn(object)); - } - function get(object, path, defaultValue) { - var result2 = object == null ? undefined2 : baseGet(object, path); - return result2 === undefined2 ? defaultValue : result2; - } - function has(object, path) { - return object != null && hasPath(object, path, baseHas); - } - function hasIn(object, path) { - return object != null && hasPath(object, path, baseHasIn); - } - var invert = createInverter(function(result2, value, key) { - if (value != null && typeof value.toString != "function") { - value = nativeObjectToString.call(value); - } - result2[value] = key; - }, constant(identity)); - var invertBy = createInverter(function(result2, value, key) { - if (value != null && typeof value.toString != "function") { - value = nativeObjectToString.call(value); - } - if (hasOwnProperty.call(result2, value)) { - result2[value].push(key); - } else { - result2[value] = [key]; - } - }, getIteratee); - var invoke = baseRest(baseInvoke); - function keys(object) { - return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); - } - function keysIn(object) { - return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); - } - function mapKeys(object, iteratee2) { - var result2 = {}; - iteratee2 = getIteratee(iteratee2, 3); - baseForOwn(object, function(value, key, object2) { - baseAssignValue(result2, iteratee2(value, key, object2), value); - }); - return result2; - } - function mapValues(object, iteratee2) { - var result2 = {}; - iteratee2 = getIteratee(iteratee2, 3); - baseForOwn(object, function(value, key, object2) { - baseAssignValue(result2, key, iteratee2(value, key, object2)); - }); - return result2; - } - var merge = createAssigner(function(object, source, srcIndex) { - baseMerge(object, source, srcIndex); - }); - var mergeWith = createAssigner(function(object, source, srcIndex, customizer) { - baseMerge(object, source, srcIndex, customizer); - }); - var omit = flatRest(function(object, paths) { - var result2 = {}; - if (object == null) { - return result2; - } - var isDeep = false; - paths = arrayMap(paths, function(path) { - path = castPath(path, object); - isDeep || (isDeep = path.length > 1); - return path; - }); - copyObject(object, getAllKeysIn(object), result2); - if (isDeep) { - result2 = baseClone(result2, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone); - } - var length = paths.length; - while (length--) { - baseUnset(result2, paths[length]); - } - return result2; - }); - function omitBy(object, predicate) { - return pickBy(object, negate(getIteratee(predicate))); - } - var pick = flatRest(function(object, paths) { - return object == null ? {} : basePick(object, paths); - }); - function pickBy(object, predicate) { - if (object == null) { - return {}; - } - var props = arrayMap(getAllKeysIn(object), function(prop) { - return [prop]; - }); - predicate = getIteratee(predicate); - return basePickBy(object, props, function(value, path) { - return predicate(value, path[0]); - }); - } - function result(object, path, defaultValue) { - path = castPath(path, object); - var index = -1, length = path.length; - if (!length) { - length = 1; - object = undefined2; - } - while (++index < length) { - var value = object == null ? undefined2 : object[toKey(path[index])]; - if (value === undefined2) { - index = length; - value = defaultValue; - } - object = isFunction(value) ? value.call(object) : value; - } - return object; - } - function set(object, path, value) { - return object == null ? object : baseSet(object, path, value); - } - function setWith(object, path, value, customizer) { - customizer = typeof customizer == "function" ? customizer : undefined2; - return object == null ? object : baseSet(object, path, value, customizer); - } - var toPairs = createToPairs(keys); - var toPairsIn = createToPairs(keysIn); - function transform2(object, iteratee2, accumulator) { - var isArr = isArray(object), isArrLike = isArr || isBuffer(object) || isTypedArray(object); - iteratee2 = getIteratee(iteratee2, 4); - if (accumulator == null) { - var Ctor = object && object.constructor; - if (isArrLike) { - accumulator = isArr ? new Ctor() : []; - } else if (isObject(object)) { - accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {}; - } else { - accumulator = {}; - } - } - (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object2) { - return iteratee2(accumulator, value, index, object2); - }); - return accumulator; - } - function unset(object, path) { - return object == null ? true : baseUnset(object, path); - } - function update2(object, path, updater) { - return object == null ? object : baseUpdate(object, path, castFunction(updater)); - } - function updateWith(object, path, updater, customizer) { - customizer = typeof customizer == "function" ? customizer : undefined2; - return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer); - } - function values(object) { - return object == null ? [] : baseValues(object, keys(object)); - } - function valuesIn(object) { - return object == null ? [] : baseValues(object, keysIn(object)); - } - function clamp(number, lower, upper) { - if (upper === undefined2) { - upper = lower; - lower = undefined2; - } - if (upper !== undefined2) { - upper = toNumber(upper); - upper = upper === upper ? upper : 0; - } - if (lower !== undefined2) { - lower = toNumber(lower); - lower = lower === lower ? lower : 0; - } - return baseClamp(toNumber(number), lower, upper); - } - function inRange(number, start, end) { - start = toFinite(start); - if (end === undefined2) { - end = start; - start = 0; - } else { - end = toFinite(end); - } - number = toNumber(number); - return baseInRange(number, start, end); - } - function random(lower, upper, floating) { - if (floating && typeof floating != "boolean" && isIterateeCall(lower, upper, floating)) { - upper = floating = undefined2; - } - if (floating === undefined2) { - if (typeof upper == "boolean") { - floating = upper; - upper = undefined2; - } else if (typeof lower == "boolean") { - floating = lower; - lower = undefined2; - } - } - if (lower === undefined2 && upper === undefined2) { - lower = 0; - upper = 1; - } else { - lower = toFinite(lower); - if (upper === undefined2) { - upper = lower; - lower = 0; - } else { - upper = toFinite(upper); - } - } - if (lower > upper) { - var temp = lower; - lower = upper; - upper = temp; - } - if (floating || lower % 1 || upper % 1) { - var rand = nativeRandom(); - return nativeMin(lower + rand * (upper - lower + freeParseFloat("1e-" + ((rand + "").length - 1))), upper); - } - return baseRandom(lower, upper); - } - var camelCase = createCompounder(function(result2, word, index) { - word = word.toLowerCase(); - return result2 + (index ? capitalize(word) : word); - }); - function capitalize(string) { - return upperFirst(toString(string).toLowerCase()); - } - function deburr(string) { - string = toString(string); - return string && string.replace(reLatin, deburrLetter).replace(reComboMark, ""); - } - function endsWith(string, target, position) { - string = toString(string); - target = baseToString(target); - var length = string.length; - position = position === undefined2 ? length : baseClamp(toInteger(position), 0, length); - var end = position; - position -= target.length; - return position >= 0 && string.slice(position, end) == target; - } - function escape(string) { - string = toString(string); - return string && reHasUnescapedHtml.test(string) ? string.replace(reUnescapedHtml, escapeHtmlChar) : string; - } - function escapeRegExp(string) { - string = toString(string); - return string && reHasRegExpChar.test(string) ? string.replace(reRegExpChar, "\\$&") : string; - } - var kebabCase = createCompounder(function(result2, word, index) { - return result2 + (index ? "-" : "") + word.toLowerCase(); - }); - var lowerCase = createCompounder(function(result2, word, index) { - return result2 + (index ? " " : "") + word.toLowerCase(); - }); - var lowerFirst = createCaseFirst("toLowerCase"); - function pad(string, length, chars) { - string = toString(string); - length = toInteger(length); - var strLength = length ? stringSize(string) : 0; - if (!length || strLength >= length) { - return string; - } - var mid = (length - strLength) / 2; - return createPadding(nativeFloor(mid), chars) + string + createPadding(nativeCeil(mid), chars); - } - function padEnd(string, length, chars) { - string = toString(string); - length = toInteger(length); - var strLength = length ? stringSize(string) : 0; - return length && strLength < length ? string + createPadding(length - strLength, chars) : string; - } - function padStart(string, length, chars) { - string = toString(string); - length = toInteger(length); - var strLength = length ? stringSize(string) : 0; - return length && strLength < length ? createPadding(length - strLength, chars) + string : string; - } - function parseInt2(string, radix, guard) { - if (guard || radix == null) { - radix = 0; - } else if (radix) { - radix = +radix; - } - return nativeParseInt(toString(string).replace(reTrimStart, ""), radix || 0); - } - function repeat(string, n, guard) { - if (guard ? isIterateeCall(string, n, guard) : n === undefined2) { - n = 1; - } else { - n = toInteger(n); - } - return baseRepeat(toString(string), n); - } - function replace() { - var args = arguments, string = toString(args[0]); - return args.length < 3 ? string : string.replace(args[1], args[2]); - } - var snakeCase = createCompounder(function(result2, word, index) { - return result2 + (index ? "_" : "") + word.toLowerCase(); - }); - function split(string, separator, limit) { - if (limit && typeof limit != "number" && isIterateeCall(string, separator, limit)) { - separator = limit = undefined2; - } - limit = limit === undefined2 ? MAX_ARRAY_LENGTH : limit >>> 0; - if (!limit) { - return []; - } - string = toString(string); - if (string && (typeof separator == "string" || separator != null && !isRegExp(separator))) { - separator = baseToString(separator); - if (!separator && hasUnicode(string)) { - return castSlice(stringToArray(string), 0, limit); - } - } - return string.split(separator, limit); - } - var startCase = createCompounder(function(result2, word, index) { - return result2 + (index ? " " : "") + upperFirst(word); - }); - function startsWith(string, target, position) { - string = toString(string); - position = position == null ? 0 : baseClamp(toInteger(position), 0, string.length); - target = baseToString(target); - return string.slice(position, position + target.length) == target; - } - function template(string, options, guard) { - var settings2 = lodash.templateSettings; - if (guard && isIterateeCall(string, options, guard)) { - options = undefined2; - } - string = toString(string); - options = assignInWith({}, options, settings2, customDefaultsAssignIn); - var imports = assignInWith({}, options.imports, settings2.imports, customDefaultsAssignIn), importsKeys = keys(imports), importsValues = baseValues(imports, importsKeys); - var isEscaping, isEvaluating, index = 0, interpolate = options.interpolate || reNoMatch, source = "__p += '"; - var reDelimiters = RegExp2( - (options.escape || reNoMatch).source + "|" + interpolate.source + "|" + (interpolate === reInterpolate ? reEsTemplate : reNoMatch).source + "|" + (options.evaluate || reNoMatch).source + "|$", - "g" - ); - var sourceURL = "//# sourceURL=" + (hasOwnProperty.call(options, "sourceURL") ? (options.sourceURL + "").replace(/\s/g, " ") : "lodash.templateSources[" + ++templateCounter + "]") + "\n"; - string.replace(reDelimiters, function(match, escapeValue, interpolateValue, esTemplateValue, evaluateValue, offset) { - interpolateValue || (interpolateValue = esTemplateValue); - source += string.slice(index, offset).replace(reUnescapedString, escapeStringChar); - if (escapeValue) { - isEscaping = true; - source += "' +\n__e(" + escapeValue + ") +\n'"; - } - if (evaluateValue) { - isEvaluating = true; - source += "';\n" + evaluateValue + ";\n__p += '"; - } - if (interpolateValue) { - source += "' +\n((__t = (" + interpolateValue + ")) == null ? '' : __t) +\n'"; - } - index = offset + match.length; - return match; - }); - source += "';\n"; - var variable = hasOwnProperty.call(options, "variable") && options.variable; - if (!variable) { - source = "with (obj) {\n" + source + "\n}\n"; - } else if (reForbiddenIdentifierChars.test(variable)) { - throw new Error2(INVALID_TEMPL_VAR_ERROR_TEXT); - } - source = (isEvaluating ? source.replace(reEmptyStringLeading, "") : source).replace(reEmptyStringMiddle, "$1").replace(reEmptyStringTrailing, "$1;"); - source = "function(" + (variable || "obj") + ") {\n" + (variable ? "" : "obj || (obj = {});\n") + "var __t, __p = ''" + (isEscaping ? ", __e = _.escape" : "") + (isEvaluating ? ", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n" : ";\n") + source + "return __p\n}"; - var result2 = attempt(function() { - return Function2(importsKeys, sourceURL + "return " + source).apply(undefined2, importsValues); - }); - result2.source = source; - if (isError(result2)) { - throw result2; - } - return result2; - } - function toLower(value) { - return toString(value).toLowerCase(); - } - function toUpper(value) { - return toString(value).toUpperCase(); - } - function trim(string, chars, guard) { - string = toString(string); - if (string && (guard || chars === undefined2)) { - return baseTrim(string); - } - if (!string || !(chars = baseToString(chars))) { - return string; - } - var strSymbols = stringToArray(string), chrSymbols = stringToArray(chars), start = charsStartIndex(strSymbols, chrSymbols), end = charsEndIndex(strSymbols, chrSymbols) + 1; - return castSlice(strSymbols, start, end).join(""); - } - function trimEnd(string, chars, guard) { - string = toString(string); - if (string && (guard || chars === undefined2)) { - return string.slice(0, trimmedEndIndex(string) + 1); - } - if (!string || !(chars = baseToString(chars))) { - return string; - } - var strSymbols = stringToArray(string), end = charsEndIndex(strSymbols, stringToArray(chars)) + 1; - return castSlice(strSymbols, 0, end).join(""); - } - function trimStart(string, chars, guard) { - string = toString(string); - if (string && (guard || chars === undefined2)) { - return string.replace(reTrimStart, ""); - } - if (!string || !(chars = baseToString(chars))) { - return string; - } - var strSymbols = stringToArray(string), start = charsStartIndex(strSymbols, stringToArray(chars)); - return castSlice(strSymbols, start).join(""); - } - function truncate(string, options) { - var length = DEFAULT_TRUNC_LENGTH, omission = DEFAULT_TRUNC_OMISSION; - if (isObject(options)) { - var separator = "separator" in options ? options.separator : separator; - length = "length" in options ? toInteger(options.length) : length; - omission = "omission" in options ? baseToString(options.omission) : omission; - } - string = toString(string); - var strLength = string.length; - if (hasUnicode(string)) { - var strSymbols = stringToArray(string); - strLength = strSymbols.length; - } - if (length >= strLength) { - return string; - } - var end = length - stringSize(omission); - if (end < 1) { - return omission; - } - var result2 = strSymbols ? castSlice(strSymbols, 0, end).join("") : string.slice(0, end); - if (separator === undefined2) { - return result2 + omission; - } - if (strSymbols) { - end += result2.length - end; - } - if (isRegExp(separator)) { - if (string.slice(end).search(separator)) { - var match, substring = result2; - if (!separator.global) { - separator = RegExp2(separator.source, toString(reFlags.exec(separator)) + "g"); - } - separator.lastIndex = 0; - while (match = separator.exec(substring)) { - var newEnd = match.index; - } - result2 = result2.slice(0, newEnd === undefined2 ? end : newEnd); - } - } else if (string.indexOf(baseToString(separator), end) != end) { - var index = result2.lastIndexOf(separator); - if (index > -1) { - result2 = result2.slice(0, index); - } - } - return result2 + omission; - } - function unescape(string) { - string = toString(string); - return string && reHasEscapedHtml.test(string) ? string.replace(reEscapedHtml, unescapeHtmlChar) : string; - } - var upperCase = createCompounder(function(result2, word, index) { - return result2 + (index ? " " : "") + word.toUpperCase(); - }); - var upperFirst = createCaseFirst("toUpperCase"); - function words(string, pattern, guard) { - string = toString(string); - pattern = guard ? undefined2 : pattern; - if (pattern === undefined2) { - return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string); - } - return string.match(pattern) || []; - } - var attempt = baseRest(function(func, args) { - try { - return apply(func, undefined2, args); - } catch (e) { - return isError(e) ? e : new Error2(e); - } - }); - var bindAll = flatRest(function(object, methodNames) { - arrayEach(methodNames, function(key) { - key = toKey(key); - baseAssignValue(object, key, bind(object[key], object)); - }); - return object; - }); - function cond(pairs) { - var length = pairs == null ? 0 : pairs.length, toIteratee = getIteratee(); - pairs = !length ? [] : arrayMap(pairs, function(pair) { - if (typeof pair[1] != "function") { - throw new TypeError2(FUNC_ERROR_TEXT); - } - return [toIteratee(pair[0]), pair[1]]; - }); - return baseRest(function(args) { - var index = -1; - while (++index < length) { - var pair = pairs[index]; - if (apply(pair[0], this, args)) { - return apply(pair[1], this, args); - } - } - }); - } - function conforms(source) { - return baseConforms(baseClone(source, CLONE_DEEP_FLAG)); - } - function constant(value) { - return function() { - return value; - }; - } - function defaultTo(value, defaultValue) { - return value == null || value !== value ? defaultValue : value; - } - var flow = createFlow(); - var flowRight = createFlow(true); - function identity(value) { - return value; - } - function iteratee(func) { - return baseIteratee(typeof func == "function" ? func : baseClone(func, CLONE_DEEP_FLAG)); - } - function matches(source) { - return baseMatches(baseClone(source, CLONE_DEEP_FLAG)); - } - function matchesProperty(path, srcValue) { - return baseMatchesProperty(path, baseClone(srcValue, CLONE_DEEP_FLAG)); - } - var method = baseRest(function(path, args) { - return function(object) { - return baseInvoke(object, path, args); - }; - }); - var methodOf = baseRest(function(object, args) { - return function(path) { - return baseInvoke(object, path, args); - }; - }); - function mixin(object, source, options) { - var props = keys(source), methodNames = baseFunctions(source, props); - if (options == null && !(isObject(source) && (methodNames.length || !props.length))) { - options = source; - source = object; - object = this; - methodNames = baseFunctions(source, keys(source)); - } - var chain2 = !(isObject(options) && "chain" in options) || !!options.chain, isFunc = isFunction(object); - arrayEach(methodNames, function(methodName) { - var func = source[methodName]; - object[methodName] = func; - if (isFunc) { - object.prototype[methodName] = function() { - var chainAll = this.__chain__; - if (chain2 || chainAll) { - var result2 = object(this.__wrapped__), actions = result2.__actions__ = copyArray(this.__actions__); - actions.push({ "func": func, "args": arguments, "thisArg": object }); - result2.__chain__ = chainAll; - return result2; - } - return func.apply(object, arrayPush([this.value()], arguments)); - }; - } - }); - return object; - } - function noConflict() { - if (root._ === this) { - root._ = oldDash; - } - return this; - } - function noop2() { - } - function nthArg(n) { - n = toInteger(n); - return baseRest(function(args) { - return baseNth(args, n); - }); - } - var over = createOver(arrayMap); - var overEvery = createOver(arrayEvery); - var overSome = createOver(arraySome); - function property(path) { - return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path); - } - function propertyOf(object) { - return function(path) { - return object == null ? undefined2 : baseGet(object, path); - }; - } - var range3 = createRange(); - var rangeRight = createRange(true); - function stubArray() { - return []; - } - function stubFalse() { - return false; - } - function stubObject() { - return {}; - } - function stubString() { - return ""; - } - function stubTrue() { - return true; - } - function times(n, iteratee2) { - n = toInteger(n); - if (n < 1 || n > MAX_SAFE_INTEGER) { - return []; - } - var index = MAX_ARRAY_LENGTH, length = nativeMin(n, MAX_ARRAY_LENGTH); - iteratee2 = getIteratee(iteratee2); - n -= MAX_ARRAY_LENGTH; - var result2 = baseTimes(length, iteratee2); - while (++index < n) { - iteratee2(index); - } - return result2; - } - function toPath(value) { - if (isArray(value)) { - return arrayMap(value, toKey); - } - return isSymbol(value) ? [value] : copyArray(stringToPath(toString(value))); - } - function uniqueId(prefix) { - var id = ++idCounter; - return toString(prefix) + id; - } - var add = createMathOperation(function(augend, addend) { - return augend + addend; - }, 0); - var ceil = createRound("ceil"); - var divide = createMathOperation(function(dividend, divisor) { - return dividend / divisor; - }, 1); - var floor = createRound("floor"); - function max(array) { - return array && array.length ? baseExtremum(array, identity, baseGt) : undefined2; - } - function maxBy(array, iteratee2) { - return array && array.length ? baseExtremum(array, getIteratee(iteratee2, 2), baseGt) : undefined2; - } - function mean(array) { - return baseMean(array, identity); - } - function meanBy(array, iteratee2) { - return baseMean(array, getIteratee(iteratee2, 2)); - } - function min(array) { - return array && array.length ? baseExtremum(array, identity, baseLt) : undefined2; - } - function minBy(array, iteratee2) { - return array && array.length ? baseExtremum(array, getIteratee(iteratee2, 2), baseLt) : undefined2; - } - var multiply = createMathOperation(function(multiplier, multiplicand) { - return multiplier * multiplicand; - }, 1); - var round = createRound("round"); - var subtract = createMathOperation(function(minuend, subtrahend) { - return minuend - subtrahend; - }, 0); - function sum(array) { - return array && array.length ? baseSum(array, identity) : 0; - } - function sumBy(array, iteratee2) { - return array && array.length ? baseSum(array, getIteratee(iteratee2, 2)) : 0; - } - lodash.after = after; - lodash.ary = ary; - lodash.assign = assign2; - lodash.assignIn = assignIn; - lodash.assignInWith = assignInWith; - lodash.assignWith = assignWith; - lodash.at = at; - lodash.before = before; - lodash.bind = bind; - lodash.bindAll = bindAll; - lodash.bindKey = bindKey; - lodash.castArray = castArray; - lodash.chain = chain; - lodash.chunk = chunk; - lodash.compact = compact; - lodash.concat = concat; - lodash.cond = cond; - lodash.conforms = conforms; - lodash.constant = constant; - lodash.countBy = countBy; - lodash.create = create2; - lodash.curry = curry; - lodash.curryRight = curryRight; - lodash.debounce = debounce; - lodash.defaults = defaults; - lodash.defaultsDeep = defaultsDeep; - lodash.defer = defer; - lodash.delay = delay; - lodash.difference = difference2; - lodash.differenceBy = differenceBy; - lodash.differenceWith = differenceWith; - lodash.drop = drop; - lodash.dropRight = dropRight; - lodash.dropRightWhile = dropRightWhile; - lodash.dropWhile = dropWhile; - lodash.fill = fill; - lodash.filter = filter; - lodash.flatMap = flatMap; - lodash.flatMapDeep = flatMapDeep; - lodash.flatMapDepth = flatMapDepth; - lodash.flatten = flatten; - lodash.flattenDeep = flattenDeep; - lodash.flattenDepth = flattenDepth; - lodash.flip = flip; - lodash.flow = flow; - lodash.flowRight = flowRight; - lodash.fromPairs = fromPairs; - lodash.functions = functions; - lodash.functionsIn = functionsIn; - lodash.groupBy = groupBy; - lodash.initial = initial; - lodash.intersection = intersection; - lodash.intersectionBy = intersectionBy; - lodash.intersectionWith = intersectionWith; - lodash.invert = invert; - lodash.invertBy = invertBy; - lodash.invokeMap = invokeMap; - lodash.iteratee = iteratee; - lodash.keyBy = keyBy; - lodash.keys = keys; - lodash.keysIn = keysIn; - lodash.map = map; - lodash.mapKeys = mapKeys; - lodash.mapValues = mapValues; - lodash.matches = matches; - lodash.matchesProperty = matchesProperty; - lodash.memoize = memoize; - lodash.merge = merge; - lodash.mergeWith = mergeWith; - lodash.method = method; - lodash.methodOf = methodOf; - lodash.mixin = mixin; - lodash.negate = negate; - lodash.nthArg = nthArg; - lodash.omit = omit; - lodash.omitBy = omitBy; - lodash.once = once; - lodash.orderBy = orderBy; - lodash.over = over; - lodash.overArgs = overArgs; - lodash.overEvery = overEvery; - lodash.overSome = overSome; - lodash.partial = partial; - lodash.partialRight = partialRight; - lodash.partition = partition3; - lodash.pick = pick; - lodash.pickBy = pickBy; - lodash.property = property; - lodash.propertyOf = propertyOf; - lodash.pull = pull; - lodash.pullAll = pullAll; - lodash.pullAllBy = pullAllBy; - lodash.pullAllWith = pullAllWith; - lodash.pullAt = pullAt; - lodash.range = range3; - lodash.rangeRight = rangeRight; - lodash.rearg = rearg; - lodash.reject = reject; - lodash.remove = remove; - lodash.rest = rest; - lodash.reverse = reverse; - lodash.sampleSize = sampleSize; - lodash.set = set; - lodash.setWith = setWith; - lodash.shuffle = shuffle; - lodash.slice = slice; - lodash.sortBy = sortBy; - lodash.sortedUniq = sortedUniq; - lodash.sortedUniqBy = sortedUniqBy; - lodash.split = split; - lodash.spread = spread; - lodash.tail = tail; - lodash.take = take; - lodash.takeRight = takeRight; - lodash.takeRightWhile = takeRightWhile; - lodash.takeWhile = takeWhile; - lodash.tap = tap; - lodash.throttle = throttle; - lodash.thru = thru; - lodash.toArray = toArray; - lodash.toPairs = toPairs; - lodash.toPairsIn = toPairsIn; - lodash.toPath = toPath; - lodash.toPlainObject = toPlainObject; - lodash.transform = transform2; - lodash.unary = unary; - lodash.union = union; - lodash.unionBy = unionBy; - lodash.unionWith = unionWith; - lodash.uniq = uniq; - lodash.uniqBy = uniqBy; - lodash.uniqWith = uniqWith; - lodash.unset = unset; - lodash.unzip = unzip; - lodash.unzipWith = unzipWith; - lodash.update = update2; - lodash.updateWith = updateWith; - lodash.values = values; - lodash.valuesIn = valuesIn; - lodash.without = without; - lodash.words = words; - lodash.wrap = wrap; - lodash.xor = xor; - lodash.xorBy = xorBy; - lodash.xorWith = xorWith; - lodash.zip = zip; - lodash.zipObject = zipObject; - lodash.zipObjectDeep = zipObjectDeep; - lodash.zipWith = zipWith; - lodash.entries = toPairs; - lodash.entriesIn = toPairsIn; - lodash.extend = assignIn; - lodash.extendWith = assignInWith; - mixin(lodash, lodash); - lodash.add = add; - lodash.attempt = attempt; - lodash.camelCase = camelCase; - lodash.capitalize = capitalize; - lodash.ceil = ceil; - lodash.clamp = clamp; - lodash.clone = clone; - lodash.cloneDeep = cloneDeep; - lodash.cloneDeepWith = cloneDeepWith; - lodash.cloneWith = cloneWith; - lodash.conformsTo = conformsTo; - lodash.deburr = deburr; - lodash.defaultTo = defaultTo; - lodash.divide = divide; - lodash.endsWith = endsWith; - lodash.eq = eq; - lodash.escape = escape; - lodash.escapeRegExp = escapeRegExp; - lodash.every = every; - lodash.find = find; - lodash.findIndex = findIndex; - lodash.findKey = findKey; - lodash.findLast = findLast; - lodash.findLastIndex = findLastIndex; - lodash.findLastKey = findLastKey; - lodash.floor = floor; - lodash.forEach = forEach; - lodash.forEachRight = forEachRight; - lodash.forIn = forIn; - lodash.forInRight = forInRight; - lodash.forOwn = forOwn; - lodash.forOwnRight = forOwnRight; - lodash.get = get; - lodash.gt = gt; - lodash.gte = gte; - lodash.has = has; - lodash.hasIn = hasIn; - lodash.head = head; - lodash.identity = identity; - lodash.includes = includes; - lodash.indexOf = indexOf; - lodash.inRange = inRange; - lodash.invoke = invoke; - lodash.isArguments = isArguments; - lodash.isArray = isArray; - lodash.isArrayBuffer = isArrayBuffer; - lodash.isArrayLike = isArrayLike; - lodash.isArrayLikeObject = isArrayLikeObject; - lodash.isBoolean = isBoolean; - lodash.isBuffer = isBuffer; - lodash.isDate = isDate; - lodash.isElement = isElement; - lodash.isEmpty = isEmpty; - lodash.isEqual = isEqual; - lodash.isEqualWith = isEqualWith; - lodash.isError = isError; - lodash.isFinite = isFinite; - lodash.isFunction = isFunction; - lodash.isInteger = isInteger; - lodash.isLength = isLength; - lodash.isMap = isMap; - lodash.isMatch = isMatch; - lodash.isMatchWith = isMatchWith; - lodash.isNaN = isNaN2; - lodash.isNative = isNative; - lodash.isNil = isNil; - lodash.isNull = isNull; - lodash.isNumber = isNumber; - lodash.isObject = isObject; - lodash.isObjectLike = isObjectLike; - lodash.isPlainObject = isPlainObject; - lodash.isRegExp = isRegExp; - lodash.isSafeInteger = isSafeInteger; - lodash.isSet = isSet; - lodash.isString = isString; - lodash.isSymbol = isSymbol; - lodash.isTypedArray = isTypedArray; - lodash.isUndefined = isUndefined; - lodash.isWeakMap = isWeakMap; - lodash.isWeakSet = isWeakSet; - lodash.join = join; - lodash.kebabCase = kebabCase; - lodash.last = last3; - lodash.lastIndexOf = lastIndexOf; - lodash.lowerCase = lowerCase; - lodash.lowerFirst = lowerFirst; - lodash.lt = lt; - lodash.lte = lte; - lodash.max = max; - lodash.maxBy = maxBy; - lodash.mean = mean; - lodash.meanBy = meanBy; - lodash.min = min; - lodash.minBy = minBy; - lodash.stubArray = stubArray; - lodash.stubFalse = stubFalse; - lodash.stubObject = stubObject; - lodash.stubString = stubString; - lodash.stubTrue = stubTrue; - lodash.multiply = multiply; - lodash.nth = nth; - lodash.noConflict = noConflict; - lodash.noop = noop2; - lodash.now = now; - lodash.pad = pad; - lodash.padEnd = padEnd; - lodash.padStart = padStart; - lodash.parseInt = parseInt2; - lodash.random = random; - lodash.reduce = reduce; - lodash.reduceRight = reduceRight; - lodash.repeat = repeat; - lodash.replace = replace; - lodash.result = result; - lodash.round = round; - lodash.runInContext = runInContext2; - lodash.sample = sample; - lodash.size = size; - lodash.snakeCase = snakeCase; - lodash.some = some; - lodash.sortedIndex = sortedIndex; - lodash.sortedIndexBy = sortedIndexBy; - lodash.sortedIndexOf = sortedIndexOf; - lodash.sortedLastIndex = sortedLastIndex; - lodash.sortedLastIndexBy = sortedLastIndexBy; - lodash.sortedLastIndexOf = sortedLastIndexOf; - lodash.startCase = startCase; - lodash.startsWith = startsWith; - lodash.subtract = subtract; - lodash.sum = sum; - lodash.sumBy = sumBy; - lodash.template = template; - lodash.times = times; - lodash.toFinite = toFinite; - lodash.toInteger = toInteger; - lodash.toLength = toLength; - lodash.toLower = toLower; - lodash.toNumber = toNumber; - lodash.toSafeInteger = toSafeInteger; - lodash.toString = toString; - lodash.toUpper = toUpper; - lodash.trim = trim; - lodash.trimEnd = trimEnd; - lodash.trimStart = trimStart; - lodash.truncate = truncate; - lodash.unescape = unescape; - lodash.uniqueId = uniqueId; - lodash.upperCase = upperCase; - lodash.upperFirst = upperFirst; - lodash.each = forEach; - lodash.eachRight = forEachRight; - lodash.first = head; - mixin(lodash, function() { - var source = {}; - baseForOwn(lodash, function(func, methodName) { - if (!hasOwnProperty.call(lodash.prototype, methodName)) { - source[methodName] = func; - } - }); - return source; - }(), { "chain": false }); - lodash.VERSION = VERSION; - arrayEach(["bind", "bindKey", "curry", "curryRight", "partial", "partialRight"], function(methodName) { - lodash[methodName].placeholder = lodash; - }); - arrayEach(["drop", "take"], function(methodName, index) { - LazyWrapper.prototype[methodName] = function(n) { - n = n === undefined2 ? 1 : nativeMax(toInteger(n), 0); - var result2 = this.__filtered__ && !index ? new LazyWrapper(this) : this.clone(); - if (result2.__filtered__) { - result2.__takeCount__ = nativeMin(n, result2.__takeCount__); - } else { - result2.__views__.push({ - "size": nativeMin(n, MAX_ARRAY_LENGTH), - "type": methodName + (result2.__dir__ < 0 ? "Right" : "") - }); - } - return result2; - }; - LazyWrapper.prototype[methodName + "Right"] = function(n) { - return this.reverse()[methodName](n).reverse(); - }; - }); - arrayEach(["filter", "map", "takeWhile"], function(methodName, index) { - var type = index + 1, isFilter = type == LAZY_FILTER_FLAG || type == LAZY_WHILE_FLAG; - LazyWrapper.prototype[methodName] = function(iteratee2) { - var result2 = this.clone(); - result2.__iteratees__.push({ - "iteratee": getIteratee(iteratee2, 3), - "type": type - }); - result2.__filtered__ = result2.__filtered__ || isFilter; - return result2; - }; - }); - arrayEach(["head", "last"], function(methodName, index) { - var takeName = "take" + (index ? "Right" : ""); - LazyWrapper.prototype[methodName] = function() { - return this[takeName](1).value()[0]; - }; - }); - arrayEach(["initial", "tail"], function(methodName, index) { - var dropName = "drop" + (index ? "" : "Right"); - LazyWrapper.prototype[methodName] = function() { - return this.__filtered__ ? new LazyWrapper(this) : this[dropName](1); - }; - }); - LazyWrapper.prototype.compact = function() { - return this.filter(identity); - }; - LazyWrapper.prototype.find = function(predicate) { - return this.filter(predicate).head(); - }; - LazyWrapper.prototype.findLast = function(predicate) { - return this.reverse().find(predicate); - }; - LazyWrapper.prototype.invokeMap = baseRest(function(path, args) { - if (typeof path == "function") { - return new LazyWrapper(this); - } - return this.map(function(value) { - return baseInvoke(value, path, args); - }); - }); - LazyWrapper.prototype.reject = function(predicate) { - return this.filter(negate(getIteratee(predicate))); - }; - LazyWrapper.prototype.slice = function(start, end) { - start = toInteger(start); - var result2 = this; - if (result2.__filtered__ && (start > 0 || end < 0)) { - return new LazyWrapper(result2); - } - if (start < 0) { - result2 = result2.takeRight(-start); - } else if (start) { - result2 = result2.drop(start); - } - if (end !== undefined2) { - end = toInteger(end); - result2 = end < 0 ? result2.dropRight(-end) : result2.take(end - start); - } - return result2; - }; - LazyWrapper.prototype.takeRightWhile = function(predicate) { - return this.reverse().takeWhile(predicate).reverse(); - }; - LazyWrapper.prototype.toArray = function() { - return this.take(MAX_ARRAY_LENGTH); - }; - baseForOwn(LazyWrapper.prototype, function(func, methodName) { - var checkIteratee = /^(?:filter|find|map|reject)|While$/.test(methodName), isTaker = /^(?:head|last)$/.test(methodName), lodashFunc = lodash[isTaker ? "take" + (methodName == "last" ? "Right" : "") : methodName], retUnwrapped = isTaker || /^find/.test(methodName); - if (!lodashFunc) { - return; - } - lodash.prototype[methodName] = function() { - var value = this.__wrapped__, args = isTaker ? [1] : arguments, isLazy = value instanceof LazyWrapper, iteratee2 = args[0], useLazy = isLazy || isArray(value); - var interceptor = function(value2) { - var result3 = lodashFunc.apply(lodash, arrayPush([value2], args)); - return isTaker && chainAll ? result3[0] : result3; - }; - if (useLazy && checkIteratee && typeof iteratee2 == "function" && iteratee2.length != 1) { - isLazy = useLazy = false; - } - var chainAll = this.__chain__, isHybrid = !!this.__actions__.length, isUnwrapped = retUnwrapped && !chainAll, onlyLazy = isLazy && !isHybrid; - if (!retUnwrapped && useLazy) { - value = onlyLazy ? value : new LazyWrapper(this); - var result2 = func.apply(value, args); - result2.__actions__.push({ "func": thru, "args": [interceptor], "thisArg": undefined2 }); - return new LodashWrapper(result2, chainAll); - } - if (isUnwrapped && onlyLazy) { - return func.apply(this, args); - } - result2 = this.thru(interceptor); - return isUnwrapped ? isTaker ? result2.value()[0] : result2.value() : result2; - }; - }); - arrayEach(["pop", "push", "shift", "sort", "splice", "unshift"], function(methodName) { - var func = arrayProto[methodName], chainName = /^(?:push|sort|unshift)$/.test(methodName) ? "tap" : "thru", retUnwrapped = /^(?:pop|shift)$/.test(methodName); - lodash.prototype[methodName] = function() { - var args = arguments; - if (retUnwrapped && !this.__chain__) { - var value = this.value(); - return func.apply(isArray(value) ? value : [], args); - } - return this[chainName](function(value2) { - return func.apply(isArray(value2) ? value2 : [], args); - }); - }; - }); - baseForOwn(LazyWrapper.prototype, function(func, methodName) { - var lodashFunc = lodash[methodName]; - if (lodashFunc) { - var key = lodashFunc.name + ""; - if (!hasOwnProperty.call(realNames, key)) { - realNames[key] = []; - } - realNames[key].push({ "name": methodName, "func": lodashFunc }); - } - }); - realNames[createHybrid(undefined2, WRAP_BIND_KEY_FLAG).name] = [{ - "name": "wrapper", - "func": undefined2 - }]; - LazyWrapper.prototype.clone = lazyClone; - LazyWrapper.prototype.reverse = lazyReverse; - LazyWrapper.prototype.value = lazyValue; - lodash.prototype.at = wrapperAt; - lodash.prototype.chain = wrapperChain; - lodash.prototype.commit = wrapperCommit; - lodash.prototype.next = wrapperNext; - lodash.prototype.plant = wrapperPlant; - lodash.prototype.reverse = wrapperReverse; - lodash.prototype.toJSON = lodash.prototype.valueOf = lodash.prototype.value = wrapperValue; - lodash.prototype.first = lodash.prototype.head; - if (symIterator) { - lodash.prototype[symIterator] = wrapperToIterator; - } - return lodash; - }; - var _ = runInContext(); - if (typeof define == "function" && typeof define.amd == "object" && define.amd) { - root._ = _; - define(function() { - return _; - }); - } else if (freeModule) { - (freeModule.exports = _)._ = _; - freeExports._ = _; - } else { - root._ = _; - } - }).call(exports); - } -}); - -// node_modules/chroma-js/chroma.js -var require_chroma = __commonJS({ - "node_modules/chroma-js/chroma.js"(exports, module2) { - (function(global2, factory) { - typeof exports === "object" && typeof module2 !== "undefined" ? module2.exports = factory() : typeof define === "function" && define.amd ? define(factory) : (global2 = typeof globalThis !== "undefined" ? globalThis : global2 || self, global2.chroma = factory()); - })(exports, function() { - "use strict"; - var limit$2 = function(x, min2, max2) { - if (min2 === void 0) - min2 = 0; - if (max2 === void 0) - max2 = 1; - return x < min2 ? min2 : x > max2 ? max2 : x; - }; - var limit$1 = limit$2; - var clip_rgb$3 = function(rgb2) { - rgb2._clipped = false; - rgb2._unclipped = rgb2.slice(0); - for (var i2 = 0; i2 <= 3; i2++) { - if (i2 < 3) { - if (rgb2[i2] < 0 || rgb2[i2] > 255) { - rgb2._clipped = true; - } - rgb2[i2] = limit$1(rgb2[i2], 0, 255); - } else if (i2 === 3) { - rgb2[i2] = limit$1(rgb2[i2], 0, 1); - } - } - return rgb2; - }; - var classToType = {}; - for (var i$1 = 0, list$1 = ["Boolean", "Number", "String", "Function", "Array", "Date", "RegExp", "Undefined", "Null"]; i$1 < list$1.length; i$1 += 1) { - var name = list$1[i$1]; - classToType["[object " + name + "]"] = name.toLowerCase(); - } - var type$p = function(obj) { - return classToType[Object.prototype.toString.call(obj)] || "object"; - }; - var type$o = type$p; - var unpack$B = function(args, keyOrder) { - if (keyOrder === void 0) - keyOrder = null; - if (args.length >= 3) { - return Array.prototype.slice.call(args); - } - if (type$o(args[0]) == "object" && keyOrder) { - return keyOrder.split("").filter(function(k) { - return args[0][k] !== void 0; - }).map(function(k) { - return args[0][k]; - }); - } - return args[0]; - }; - var type$n = type$p; - var last$4 = function(args) { - if (args.length < 2) { - return null; - } - var l = args.length - 1; - if (type$n(args[l]) == "string") { - return args[l].toLowerCase(); - } - return null; - }; - var PI$2 = Math.PI; - var utils = { - clip_rgb: clip_rgb$3, - limit: limit$2, - type: type$p, - unpack: unpack$B, - last: last$4, - PI: PI$2, - TWOPI: PI$2 * 2, - PITHIRD: PI$2 / 3, - DEG2RAD: PI$2 / 180, - RAD2DEG: 180 / PI$2 - }; - var input$h = { - format: {}, - autodetect: [] - }; - var last$3 = utils.last; - var clip_rgb$2 = utils.clip_rgb; - var type$m = utils.type; - var _input = input$h; - var Color$D = function Color2() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - var me = this; - if (type$m(args[0]) === "object" && args[0].constructor && args[0].constructor === this.constructor) { - return args[0]; - } - var mode = last$3(args); - var autodetect = false; - if (!mode) { - autodetect = true; - if (!_input.sorted) { - _input.autodetect = _input.autodetect.sort(function(a, b) { - return b.p - a.p; - }); - _input.sorted = true; - } - for (var i2 = 0, list2 = _input.autodetect; i2 < list2.length; i2 += 1) { - var chk = list2[i2]; - mode = chk.test.apply(chk, args); - if (mode) { - break; - } - } - } - if (_input.format[mode]) { - var rgb2 = _input.format[mode].apply(null, autodetect ? args : args.slice(0, -1)); - me._rgb = clip_rgb$2(rgb2); - } else { - throw new Error("unknown format: " + args); - } - if (me._rgb.length === 3) { - me._rgb.push(1); - } - }; - Color$D.prototype.toString = function toString() { - if (type$m(this.hex) == "function") { - return this.hex(); - } - return "[" + this._rgb.join(",") + "]"; - }; - var Color_1 = Color$D; - var chroma$k = function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - return new (Function.prototype.bind.apply(chroma$k.Color, [null].concat(args)))(); - }; - chroma$k.Color = Color_1; - chroma$k.version = "2.4.2"; - var chroma_1 = chroma$k; - var unpack$A = utils.unpack; - var max$2 = Math.max; - var rgb2cmyk$1 = function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - var ref = unpack$A(args, "rgb"); - var r = ref[0]; - var g = ref[1]; - var b = ref[2]; - r = r / 255; - g = g / 255; - b = b / 255; - var k = 1 - max$2(r, max$2(g, b)); - var f = k < 1 ? 1 / (1 - k) : 0; - var c = (1 - r - k) * f; - var m = (1 - g - k) * f; - var y = (1 - b - k) * f; - return [c, m, y, k]; - }; - var rgb2cmyk_1 = rgb2cmyk$1; - var unpack$z = utils.unpack; - var cmyk2rgb = function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - args = unpack$z(args, "cmyk"); - var c = args[0]; - var m = args[1]; - var y = args[2]; - var k = args[3]; - var alpha = args.length > 4 ? args[4] : 1; - if (k === 1) { - return [0, 0, 0, alpha]; - } - return [ - c >= 1 ? 0 : 255 * (1 - c) * (1 - k), - // r - m >= 1 ? 0 : 255 * (1 - m) * (1 - k), - // g - y >= 1 ? 0 : 255 * (1 - y) * (1 - k), - // b - alpha - ]; - }; - var cmyk2rgb_1 = cmyk2rgb; - var chroma$j = chroma_1; - var Color$C = Color_1; - var input$g = input$h; - var unpack$y = utils.unpack; - var type$l = utils.type; - var rgb2cmyk = rgb2cmyk_1; - Color$C.prototype.cmyk = function() { - return rgb2cmyk(this._rgb); - }; - chroma$j.cmyk = function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - return new (Function.prototype.bind.apply(Color$C, [null].concat(args, ["cmyk"])))(); - }; - input$g.format.cmyk = cmyk2rgb_1; - input$g.autodetect.push({ - p: 2, - test: function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - args = unpack$y(args, "cmyk"); - if (type$l(args) === "array" && args.length === 4) { - return "cmyk"; - } - } - }); - var unpack$x = utils.unpack; - var last$2 = utils.last; - var rnd = function(a) { - return Math.round(a * 100) / 100; - }; - var hsl2css$1 = function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - var hsla = unpack$x(args, "hsla"); - var mode = last$2(args) || "lsa"; - hsla[0] = rnd(hsla[0] || 0); - hsla[1] = rnd(hsla[1] * 100) + "%"; - hsla[2] = rnd(hsla[2] * 100) + "%"; - if (mode === "hsla" || hsla.length > 3 && hsla[3] < 1) { - hsla[3] = hsla.length > 3 ? hsla[3] : 1; - mode = "hsla"; - } else { - hsla.length = 3; - } - return mode + "(" + hsla.join(",") + ")"; - }; - var hsl2css_1 = hsl2css$1; - var unpack$w = utils.unpack; - var rgb2hsl$3 = function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - args = unpack$w(args, "rgba"); - var r = args[0]; - var g = args[1]; - var b = args[2]; - r /= 255; - g /= 255; - b /= 255; - var min2 = Math.min(r, g, b); - var max2 = Math.max(r, g, b); - var l = (max2 + min2) / 2; - var s, h; - if (max2 === min2) { - s = 0; - h = Number.NaN; - } else { - s = l < 0.5 ? (max2 - min2) / (max2 + min2) : (max2 - min2) / (2 - max2 - min2); - } - if (r == max2) { - h = (g - b) / (max2 - min2); - } else if (g == max2) { - h = 2 + (b - r) / (max2 - min2); - } else if (b == max2) { - h = 4 + (r - g) / (max2 - min2); - } - h *= 60; - if (h < 0) { - h += 360; - } - if (args.length > 3 && args[3] !== void 0) { - return [h, s, l, args[3]]; - } - return [h, s, l]; - }; - var rgb2hsl_1 = rgb2hsl$3; - var unpack$v = utils.unpack; - var last$1 = utils.last; - var hsl2css = hsl2css_1; - var rgb2hsl$2 = rgb2hsl_1; - var round$6 = Math.round; - var rgb2css$1 = function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - var rgba = unpack$v(args, "rgba"); - var mode = last$1(args) || "rgb"; - if (mode.substr(0, 3) == "hsl") { - return hsl2css(rgb2hsl$2(rgba), mode); - } - rgba[0] = round$6(rgba[0]); - rgba[1] = round$6(rgba[1]); - rgba[2] = round$6(rgba[2]); - if (mode === "rgba" || rgba.length > 3 && rgba[3] < 1) { - rgba[3] = rgba.length > 3 ? rgba[3] : 1; - mode = "rgba"; - } - return mode + "(" + rgba.slice(0, mode === "rgb" ? 3 : 4).join(",") + ")"; - }; - var rgb2css_1 = rgb2css$1; - var unpack$u = utils.unpack; - var round$5 = Math.round; - var hsl2rgb$1 = function() { - var assign2; - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - args = unpack$u(args, "hsl"); - var h = args[0]; - var s = args[1]; - var l = args[2]; - var r, g, b; - if (s === 0) { - r = g = b = l * 255; - } else { - var t3 = [0, 0, 0]; - var c = [0, 0, 0]; - var t2 = l < 0.5 ? l * (1 + s) : l + s - l * s; - var t1 = 2 * l - t2; - var h_ = h / 360; - t3[0] = h_ + 1 / 3; - t3[1] = h_; - t3[2] = h_ - 1 / 3; - for (var i2 = 0; i2 < 3; i2++) { - if (t3[i2] < 0) { - t3[i2] += 1; - } - if (t3[i2] > 1) { - t3[i2] -= 1; - } - if (6 * t3[i2] < 1) { - c[i2] = t1 + (t2 - t1) * 6 * t3[i2]; - } else if (2 * t3[i2] < 1) { - c[i2] = t2; - } else if (3 * t3[i2] < 2) { - c[i2] = t1 + (t2 - t1) * (2 / 3 - t3[i2]) * 6; - } else { - c[i2] = t1; - } - } - assign2 = [round$5(c[0] * 255), round$5(c[1] * 255), round$5(c[2] * 255)], r = assign2[0], g = assign2[1], b = assign2[2]; - } - if (args.length > 3) { - return [r, g, b, args[3]]; - } - return [r, g, b, 1]; - }; - var hsl2rgb_1 = hsl2rgb$1; - var hsl2rgb = hsl2rgb_1; - var input$f = input$h; - var RE_RGB = /^rgb\(\s*(-?\d+),\s*(-?\d+)\s*,\s*(-?\d+)\s*\)$/; - var RE_RGBA = /^rgba\(\s*(-?\d+),\s*(-?\d+)\s*,\s*(-?\d+)\s*,\s*([01]|[01]?\.\d+)\)$/; - var RE_RGB_PCT = /^rgb\(\s*(-?\d+(?:\.\d+)?)%,\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*\)$/; - var RE_RGBA_PCT = /^rgba\(\s*(-?\d+(?:\.\d+)?)%,\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/; - var RE_HSL = /^hsl\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*\)$/; - var RE_HSLA = /^hsla\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/; - var round$4 = Math.round; - var css2rgb$1 = function(css) { - css = css.toLowerCase().trim(); - var m; - if (input$f.format.named) { - try { - return input$f.format.named(css); - } catch (e) { - } - } - if (m = css.match(RE_RGB)) { - var rgb2 = m.slice(1, 4); - for (var i2 = 0; i2 < 3; i2++) { - rgb2[i2] = +rgb2[i2]; - } - rgb2[3] = 1; - return rgb2; - } - if (m = css.match(RE_RGBA)) { - var rgb$1 = m.slice(1, 5); - for (var i$12 = 0; i$12 < 4; i$12++) { - rgb$1[i$12] = +rgb$1[i$12]; - } - return rgb$1; - } - if (m = css.match(RE_RGB_PCT)) { - var rgb$2 = m.slice(1, 4); - for (var i$2 = 0; i$2 < 3; i$2++) { - rgb$2[i$2] = round$4(rgb$2[i$2] * 2.55); - } - rgb$2[3] = 1; - return rgb$2; - } - if (m = css.match(RE_RGBA_PCT)) { - var rgb$3 = m.slice(1, 5); - for (var i$3 = 0; i$3 < 3; i$3++) { - rgb$3[i$3] = round$4(rgb$3[i$3] * 2.55); - } - rgb$3[3] = +rgb$3[3]; - return rgb$3; - } - if (m = css.match(RE_HSL)) { - var hsl2 = m.slice(1, 4); - hsl2[1] *= 0.01; - hsl2[2] *= 0.01; - var rgb$4 = hsl2rgb(hsl2); - rgb$4[3] = 1; - return rgb$4; - } - if (m = css.match(RE_HSLA)) { - var hsl$1 = m.slice(1, 4); - hsl$1[1] *= 0.01; - hsl$1[2] *= 0.01; - var rgb$5 = hsl2rgb(hsl$1); - rgb$5[3] = +m[4]; - return rgb$5; - } - }; - css2rgb$1.test = function(s) { - return RE_RGB.test(s) || RE_RGBA.test(s) || RE_RGB_PCT.test(s) || RE_RGBA_PCT.test(s) || RE_HSL.test(s) || RE_HSLA.test(s); - }; - var css2rgb_1 = css2rgb$1; - var chroma$i = chroma_1; - var Color$B = Color_1; - var input$e = input$h; - var type$k = utils.type; - var rgb2css = rgb2css_1; - var css2rgb = css2rgb_1; - Color$B.prototype.css = function(mode) { - return rgb2css(this._rgb, mode); - }; - chroma$i.css = function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - return new (Function.prototype.bind.apply(Color$B, [null].concat(args, ["css"])))(); - }; - input$e.format.css = css2rgb; - input$e.autodetect.push({ - p: 5, - test: function(h) { - var rest = [], len = arguments.length - 1; - while (len-- > 0) - rest[len] = arguments[len + 1]; - if (!rest.length && type$k(h) === "string" && css2rgb.test(h)) { - return "css"; - } - } - }); - var Color$A = Color_1; - var chroma$h = chroma_1; - var input$d = input$h; - var unpack$t = utils.unpack; - input$d.format.gl = function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - var rgb2 = unpack$t(args, "rgba"); - rgb2[0] *= 255; - rgb2[1] *= 255; - rgb2[2] *= 255; - return rgb2; - }; - chroma$h.gl = function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - return new (Function.prototype.bind.apply(Color$A, [null].concat(args, ["gl"])))(); - }; - Color$A.prototype.gl = function() { - var rgb2 = this._rgb; - return [rgb2[0] / 255, rgb2[1] / 255, rgb2[2] / 255, rgb2[3]]; - }; - var unpack$s = utils.unpack; - var rgb2hcg$1 = function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - var ref = unpack$s(args, "rgb"); - var r = ref[0]; - var g = ref[1]; - var b = ref[2]; - var min2 = Math.min(r, g, b); - var max2 = Math.max(r, g, b); - var delta = max2 - min2; - var c = delta * 100 / 255; - var _g = min2 / (255 - delta) * 100; - var h; - if (delta === 0) { - h = Number.NaN; - } else { - if (r === max2) { - h = (g - b) / delta; - } - if (g === max2) { - h = 2 + (b - r) / delta; - } - if (b === max2) { - h = 4 + (r - g) / delta; - } - h *= 60; - if (h < 0) { - h += 360; - } - } - return [h, c, _g]; - }; - var rgb2hcg_1 = rgb2hcg$1; - var unpack$r = utils.unpack; - var floor$3 = Math.floor; - var hcg2rgb = function() { - var assign2, assign$1, assign$2, assign$3, assign$4, assign$5; - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - args = unpack$r(args, "hcg"); - var h = args[0]; - var c = args[1]; - var _g = args[2]; - var r, g, b; - _g = _g * 255; - var _c = c * 255; - if (c === 0) { - r = g = b = _g; - } else { - if (h === 360) { - h = 0; - } - if (h > 360) { - h -= 360; - } - if (h < 0) { - h += 360; - } - h /= 60; - var i2 = floor$3(h); - var f = h - i2; - var p = _g * (1 - c); - var q = p + _c * (1 - f); - var t = p + _c * f; - var v = p + _c; - switch (i2) { - case 0: - assign2 = [v, t, p], r = assign2[0], g = assign2[1], b = assign2[2]; - break; - case 1: - assign$1 = [q, v, p], r = assign$1[0], g = assign$1[1], b = assign$1[2]; - break; - case 2: - assign$2 = [p, v, t], r = assign$2[0], g = assign$2[1], b = assign$2[2]; - break; - case 3: - assign$3 = [p, q, v], r = assign$3[0], g = assign$3[1], b = assign$3[2]; - break; - case 4: - assign$4 = [t, p, v], r = assign$4[0], g = assign$4[1], b = assign$4[2]; - break; - case 5: - assign$5 = [v, p, q], r = assign$5[0], g = assign$5[1], b = assign$5[2]; - break; - } - } - return [r, g, b, args.length > 3 ? args[3] : 1]; - }; - var hcg2rgb_1 = hcg2rgb; - var unpack$q = utils.unpack; - var type$j = utils.type; - var chroma$g = chroma_1; - var Color$z = Color_1; - var input$c = input$h; - var rgb2hcg = rgb2hcg_1; - Color$z.prototype.hcg = function() { - return rgb2hcg(this._rgb); - }; - chroma$g.hcg = function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - return new (Function.prototype.bind.apply(Color$z, [null].concat(args, ["hcg"])))(); - }; - input$c.format.hcg = hcg2rgb_1; - input$c.autodetect.push({ - p: 1, - test: function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - args = unpack$q(args, "hcg"); - if (type$j(args) === "array" && args.length === 3) { - return "hcg"; - } - } - }); - var unpack$p = utils.unpack; - var last3 = utils.last; - var round$3 = Math.round; - var rgb2hex$2 = function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - var ref = unpack$p(args, "rgba"); - var r = ref[0]; - var g = ref[1]; - var b = ref[2]; - var a = ref[3]; - var mode = last3(args) || "auto"; - if (a === void 0) { - a = 1; - } - if (mode === "auto") { - mode = a < 1 ? "rgba" : "rgb"; - } - r = round$3(r); - g = round$3(g); - b = round$3(b); - var u = r << 16 | g << 8 | b; - var str = "000000" + u.toString(16); - str = str.substr(str.length - 6); - var hxa = "0" + round$3(a * 255).toString(16); - hxa = hxa.substr(hxa.length - 2); - switch (mode.toLowerCase()) { - case "rgba": - return "#" + str + hxa; - case "argb": - return "#" + hxa + str; - default: - return "#" + str; - } - }; - var rgb2hex_1 = rgb2hex$2; - var RE_HEX = /^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/; - var RE_HEXA = /^#?([A-Fa-f0-9]{8}|[A-Fa-f0-9]{4})$/; - var hex2rgb$1 = function(hex) { - if (hex.match(RE_HEX)) { - if (hex.length === 4 || hex.length === 7) { - hex = hex.substr(1); - } - if (hex.length === 3) { - hex = hex.split(""); - hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2]; - } - var u = parseInt(hex, 16); - var r = u >> 16; - var g = u >> 8 & 255; - var b = u & 255; - return [r, g, b, 1]; - } - if (hex.match(RE_HEXA)) { - if (hex.length === 5 || hex.length === 9) { - hex = hex.substr(1); - } - if (hex.length === 4) { - hex = hex.split(""); - hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2] + hex[3] + hex[3]; - } - var u$1 = parseInt(hex, 16); - var r$1 = u$1 >> 24 & 255; - var g$1 = u$1 >> 16 & 255; - var b$1 = u$1 >> 8 & 255; - var a = Math.round((u$1 & 255) / 255 * 100) / 100; - return [r$1, g$1, b$1, a]; - } - throw new Error("unknown hex color: " + hex); - }; - var hex2rgb_1 = hex2rgb$1; - var chroma$f = chroma_1; - var Color$y = Color_1; - var type$i = utils.type; - var input$b = input$h; - var rgb2hex$1 = rgb2hex_1; - Color$y.prototype.hex = function(mode) { - return rgb2hex$1(this._rgb, mode); - }; - chroma$f.hex = function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - return new (Function.prototype.bind.apply(Color$y, [null].concat(args, ["hex"])))(); - }; - input$b.format.hex = hex2rgb_1; - input$b.autodetect.push({ - p: 4, - test: function(h) { - var rest = [], len = arguments.length - 1; - while (len-- > 0) - rest[len] = arguments[len + 1]; - if (!rest.length && type$i(h) === "string" && [3, 4, 5, 6, 7, 8, 9].indexOf(h.length) >= 0) { - return "hex"; - } - } - }); - var unpack$o = utils.unpack; - var TWOPI$2 = utils.TWOPI; - var min$2 = Math.min; - var sqrt$4 = Math.sqrt; - var acos = Math.acos; - var rgb2hsi$1 = function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - var ref = unpack$o(args, "rgb"); - var r = ref[0]; - var g = ref[1]; - var b = ref[2]; - r /= 255; - g /= 255; - b /= 255; - var h; - var min_ = min$2(r, g, b); - var i2 = (r + g + b) / 3; - var s = i2 > 0 ? 1 - min_ / i2 : 0; - if (s === 0) { - h = NaN; - } else { - h = (r - g + (r - b)) / 2; - h /= sqrt$4((r - g) * (r - g) + (r - b) * (g - b)); - h = acos(h); - if (b > g) { - h = TWOPI$2 - h; - } - h /= TWOPI$2; - } - return [h * 360, s, i2]; - }; - var rgb2hsi_1 = rgb2hsi$1; - var unpack$n = utils.unpack; - var limit = utils.limit; - var TWOPI$1 = utils.TWOPI; - var PITHIRD = utils.PITHIRD; - var cos$4 = Math.cos; - var hsi2rgb = function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - args = unpack$n(args, "hsi"); - var h = args[0]; - var s = args[1]; - var i2 = args[2]; - var r, g, b; - if (isNaN(h)) { - h = 0; - } - if (isNaN(s)) { - s = 0; - } - if (h > 360) { - h -= 360; - } - if (h < 0) { - h += 360; - } - h /= 360; - if (h < 1 / 3) { - b = (1 - s) / 3; - r = (1 + s * cos$4(TWOPI$1 * h) / cos$4(PITHIRD - TWOPI$1 * h)) / 3; - g = 1 - (b + r); - } else if (h < 2 / 3) { - h -= 1 / 3; - r = (1 - s) / 3; - g = (1 + s * cos$4(TWOPI$1 * h) / cos$4(PITHIRD - TWOPI$1 * h)) / 3; - b = 1 - (r + g); - } else { - h -= 2 / 3; - g = (1 - s) / 3; - b = (1 + s * cos$4(TWOPI$1 * h) / cos$4(PITHIRD - TWOPI$1 * h)) / 3; - r = 1 - (g + b); - } - r = limit(i2 * r * 3); - g = limit(i2 * g * 3); - b = limit(i2 * b * 3); - return [r * 255, g * 255, b * 255, args.length > 3 ? args[3] : 1]; - }; - var hsi2rgb_1 = hsi2rgb; - var unpack$m = utils.unpack; - var type$h = utils.type; - var chroma$e = chroma_1; - var Color$x = Color_1; - var input$a = input$h; - var rgb2hsi = rgb2hsi_1; - Color$x.prototype.hsi = function() { - return rgb2hsi(this._rgb); - }; - chroma$e.hsi = function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - return new (Function.prototype.bind.apply(Color$x, [null].concat(args, ["hsi"])))(); - }; - input$a.format.hsi = hsi2rgb_1; - input$a.autodetect.push({ - p: 2, - test: function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - args = unpack$m(args, "hsi"); - if (type$h(args) === "array" && args.length === 3) { - return "hsi"; - } - } - }); - var unpack$l = utils.unpack; - var type$g = utils.type; - var chroma$d = chroma_1; - var Color$w = Color_1; - var input$9 = input$h; - var rgb2hsl$1 = rgb2hsl_1; - Color$w.prototype.hsl = function() { - return rgb2hsl$1(this._rgb); - }; - chroma$d.hsl = function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - return new (Function.prototype.bind.apply(Color$w, [null].concat(args, ["hsl"])))(); - }; - input$9.format.hsl = hsl2rgb_1; - input$9.autodetect.push({ - p: 2, - test: function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - args = unpack$l(args, "hsl"); - if (type$g(args) === "array" && args.length === 3) { - return "hsl"; - } - } - }); - var unpack$k = utils.unpack; - var min$1 = Math.min; - var max$1 = Math.max; - var rgb2hsl = function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - args = unpack$k(args, "rgb"); - var r = args[0]; - var g = args[1]; - var b = args[2]; - var min_ = min$1(r, g, b); - var max_ = max$1(r, g, b); - var delta = max_ - min_; - var h, s, v; - v = max_ / 255; - if (max_ === 0) { - h = Number.NaN; - s = 0; - } else { - s = delta / max_; - if (r === max_) { - h = (g - b) / delta; - } - if (g === max_) { - h = 2 + (b - r) / delta; - } - if (b === max_) { - h = 4 + (r - g) / delta; - } - h *= 60; - if (h < 0) { - h += 360; - } - } - return [h, s, v]; - }; - var rgb2hsv$1 = rgb2hsl; - var unpack$j = utils.unpack; - var floor$2 = Math.floor; - var hsv2rgb = function() { - var assign2, assign$1, assign$2, assign$3, assign$4, assign$5; - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - args = unpack$j(args, "hsv"); - var h = args[0]; - var s = args[1]; - var v = args[2]; - var r, g, b; - v *= 255; - if (s === 0) { - r = g = b = v; - } else { - if (h === 360) { - h = 0; - } - if (h > 360) { - h -= 360; - } - if (h < 0) { - h += 360; - } - h /= 60; - var i2 = floor$2(h); - var f = h - i2; - var p = v * (1 - s); - var q = v * (1 - s * f); - var t = v * (1 - s * (1 - f)); - switch (i2) { - case 0: - assign2 = [v, t, p], r = assign2[0], g = assign2[1], b = assign2[2]; - break; - case 1: - assign$1 = [q, v, p], r = assign$1[0], g = assign$1[1], b = assign$1[2]; - break; - case 2: - assign$2 = [p, v, t], r = assign$2[0], g = assign$2[1], b = assign$2[2]; - break; - case 3: - assign$3 = [p, q, v], r = assign$3[0], g = assign$3[1], b = assign$3[2]; - break; - case 4: - assign$4 = [t, p, v], r = assign$4[0], g = assign$4[1], b = assign$4[2]; - break; - case 5: - assign$5 = [v, p, q], r = assign$5[0], g = assign$5[1], b = assign$5[2]; - break; - } - } - return [r, g, b, args.length > 3 ? args[3] : 1]; - }; - var hsv2rgb_1 = hsv2rgb; - var unpack$i = utils.unpack; - var type$f = utils.type; - var chroma$c = chroma_1; - var Color$v = Color_1; - var input$8 = input$h; - var rgb2hsv = rgb2hsv$1; - Color$v.prototype.hsv = function() { - return rgb2hsv(this._rgb); - }; - chroma$c.hsv = function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - return new (Function.prototype.bind.apply(Color$v, [null].concat(args, ["hsv"])))(); - }; - input$8.format.hsv = hsv2rgb_1; - input$8.autodetect.push({ - p: 2, - test: function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - args = unpack$i(args, "hsv"); - if (type$f(args) === "array" && args.length === 3) { - return "hsv"; - } - } - }); - var labConstants = { - // Corresponds roughly to RGB brighter/darker - Kn: 18, - // D65 standard referent - Xn: 0.95047, - Yn: 1, - Zn: 1.08883, - t0: 0.137931034, - // 4 / 29 - t1: 0.206896552, - // 6 / 29 - t2: 0.12841855, - // 3 * t1 * t1 - t3: 8856452e-9 - // t1 * t1 * t1 - }; - var LAB_CONSTANTS$3 = labConstants; - var unpack$h = utils.unpack; - var pow$a = Math.pow; - var rgb2lab$2 = function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - var ref = unpack$h(args, "rgb"); - var r = ref[0]; - var g = ref[1]; - var b = ref[2]; - var ref$1 = rgb2xyz(r, g, b); - var x = ref$1[0]; - var y = ref$1[1]; - var z = ref$1[2]; - var l = 116 * y - 16; - return [l < 0 ? 0 : l, 500 * (x - y), 200 * (y - z)]; - }; - var rgb_xyz = function(r) { - if ((r /= 255) <= 0.04045) { - return r / 12.92; - } - return pow$a((r + 0.055) / 1.055, 2.4); - }; - var xyz_lab = function(t) { - if (t > LAB_CONSTANTS$3.t3) { - return pow$a(t, 1 / 3); - } - return t / LAB_CONSTANTS$3.t2 + LAB_CONSTANTS$3.t0; - }; - var rgb2xyz = function(r, g, b) { - r = rgb_xyz(r); - g = rgb_xyz(g); - b = rgb_xyz(b); - var x = xyz_lab((0.4124564 * r + 0.3575761 * g + 0.1804375 * b) / LAB_CONSTANTS$3.Xn); - var y = xyz_lab((0.2126729 * r + 0.7151522 * g + 0.072175 * b) / LAB_CONSTANTS$3.Yn); - var z = xyz_lab((0.0193339 * r + 0.119192 * g + 0.9503041 * b) / LAB_CONSTANTS$3.Zn); - return [x, y, z]; - }; - var rgb2lab_1 = rgb2lab$2; - var LAB_CONSTANTS$2 = labConstants; - var unpack$g = utils.unpack; - var pow$9 = Math.pow; - var lab2rgb$1 = function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - args = unpack$g(args, "lab"); - var l = args[0]; - var a = args[1]; - var b = args[2]; - var x, y, z, r, g, b_; - y = (l + 16) / 116; - x = isNaN(a) ? y : y + a / 500; - z = isNaN(b) ? y : y - b / 200; - y = LAB_CONSTANTS$2.Yn * lab_xyz(y); - x = LAB_CONSTANTS$2.Xn * lab_xyz(x); - z = LAB_CONSTANTS$2.Zn * lab_xyz(z); - r = xyz_rgb(3.2404542 * x - 1.5371385 * y - 0.4985314 * z); - g = xyz_rgb(-0.969266 * x + 1.8760108 * y + 0.041556 * z); - b_ = xyz_rgb(0.0556434 * x - 0.2040259 * y + 1.0572252 * z); - return [r, g, b_, args.length > 3 ? args[3] : 1]; - }; - var xyz_rgb = function(r) { - return 255 * (r <= 304e-5 ? 12.92 * r : 1.055 * pow$9(r, 1 / 2.4) - 0.055); - }; - var lab_xyz = function(t) { - return t > LAB_CONSTANTS$2.t1 ? t * t * t : LAB_CONSTANTS$2.t2 * (t - LAB_CONSTANTS$2.t0); - }; - var lab2rgb_1 = lab2rgb$1; - var unpack$f = utils.unpack; - var type$e = utils.type; - var chroma$b = chroma_1; - var Color$u = Color_1; - var input$7 = input$h; - var rgb2lab$1 = rgb2lab_1; - Color$u.prototype.lab = function() { - return rgb2lab$1(this._rgb); - }; - chroma$b.lab = function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - return new (Function.prototype.bind.apply(Color$u, [null].concat(args, ["lab"])))(); - }; - input$7.format.lab = lab2rgb_1; - input$7.autodetect.push({ - p: 2, - test: function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - args = unpack$f(args, "lab"); - if (type$e(args) === "array" && args.length === 3) { - return "lab"; - } - } - }); - var unpack$e = utils.unpack; - var RAD2DEG = utils.RAD2DEG; - var sqrt$3 = Math.sqrt; - var atan2$2 = Math.atan2; - var round$2 = Math.round; - var lab2lch$2 = function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - var ref = unpack$e(args, "lab"); - var l = ref[0]; - var a = ref[1]; - var b = ref[2]; - var c = sqrt$3(a * a + b * b); - var h = (atan2$2(b, a) * RAD2DEG + 360) % 360; - if (round$2(c * 1e4) === 0) { - h = Number.NaN; - } - return [l, c, h]; - }; - var lab2lch_1 = lab2lch$2; - var unpack$d = utils.unpack; - var rgb2lab = rgb2lab_1; - var lab2lch$1 = lab2lch_1; - var rgb2lch$1 = function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - var ref = unpack$d(args, "rgb"); - var r = ref[0]; - var g = ref[1]; - var b = ref[2]; - var ref$1 = rgb2lab(r, g, b); - var l = ref$1[0]; - var a = ref$1[1]; - var b_ = ref$1[2]; - return lab2lch$1(l, a, b_); - }; - var rgb2lch_1 = rgb2lch$1; - var unpack$c = utils.unpack; - var DEG2RAD = utils.DEG2RAD; - var sin$3 = Math.sin; - var cos$3 = Math.cos; - var lch2lab$2 = function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - var ref = unpack$c(args, "lch"); - var l = ref[0]; - var c = ref[1]; - var h = ref[2]; - if (isNaN(h)) { - h = 0; - } - h = h * DEG2RAD; - return [l, cos$3(h) * c, sin$3(h) * c]; - }; - var lch2lab_1 = lch2lab$2; - var unpack$b = utils.unpack; - var lch2lab$1 = lch2lab_1; - var lab2rgb = lab2rgb_1; - var lch2rgb$1 = function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - args = unpack$b(args, "lch"); - var l = args[0]; - var c = args[1]; - var h = args[2]; - var ref = lch2lab$1(l, c, h); - var L = ref[0]; - var a = ref[1]; - var b_ = ref[2]; - var ref$1 = lab2rgb(L, a, b_); - var r = ref$1[0]; - var g = ref$1[1]; - var b = ref$1[2]; - return [r, g, b, args.length > 3 ? args[3] : 1]; - }; - var lch2rgb_1 = lch2rgb$1; - var unpack$a = utils.unpack; - var lch2rgb = lch2rgb_1; - var hcl2rgb = function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - var hcl = unpack$a(args, "hcl").reverse(); - return lch2rgb.apply(void 0, hcl); - }; - var hcl2rgb_1 = hcl2rgb; - var unpack$9 = utils.unpack; - var type$d = utils.type; - var chroma$a = chroma_1; - var Color$t = Color_1; - var input$6 = input$h; - var rgb2lch = rgb2lch_1; - Color$t.prototype.lch = function() { - return rgb2lch(this._rgb); - }; - Color$t.prototype.hcl = function() { - return rgb2lch(this._rgb).reverse(); - }; - chroma$a.lch = function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - return new (Function.prototype.bind.apply(Color$t, [null].concat(args, ["lch"])))(); - }; - chroma$a.hcl = function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - return new (Function.prototype.bind.apply(Color$t, [null].concat(args, ["hcl"])))(); - }; - input$6.format.lch = lch2rgb_1; - input$6.format.hcl = hcl2rgb_1; - ["lch", "hcl"].forEach(function(m) { - return input$6.autodetect.push({ - p: 2, - test: function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - args = unpack$9(args, m); - if (type$d(args) === "array" && args.length === 3) { - return m; - } - } - }); - }); - var w3cx11$1 = { - aliceblue: "#f0f8ff", - antiquewhite: "#faebd7", - aqua: "#00ffff", - aquamarine: "#7fffd4", - azure: "#f0ffff", - beige: "#f5f5dc", - bisque: "#ffe4c4", - black: "#000000", - blanchedalmond: "#ffebcd", - blue: "#0000ff", - blueviolet: "#8a2be2", - brown: "#a52a2a", - burlywood: "#deb887", - cadetblue: "#5f9ea0", - chartreuse: "#7fff00", - chocolate: "#d2691e", - coral: "#ff7f50", - cornflower: "#6495ed", - cornflowerblue: "#6495ed", - cornsilk: "#fff8dc", - crimson: "#dc143c", - cyan: "#00ffff", - darkblue: "#00008b", - darkcyan: "#008b8b", - darkgoldenrod: "#b8860b", - darkgray: "#a9a9a9", - darkgreen: "#006400", - darkgrey: "#a9a9a9", - darkkhaki: "#bdb76b", - darkmagenta: "#8b008b", - darkolivegreen: "#556b2f", - darkorange: "#ff8c00", - darkorchid: "#9932cc", - darkred: "#8b0000", - darksalmon: "#e9967a", - darkseagreen: "#8fbc8f", - darkslateblue: "#483d8b", - darkslategray: "#2f4f4f", - darkslategrey: "#2f4f4f", - darkturquoise: "#00ced1", - darkviolet: "#9400d3", - deeppink: "#ff1493", - deepskyblue: "#00bfff", - dimgray: "#696969", - dimgrey: "#696969", - dodgerblue: "#1e90ff", - firebrick: "#b22222", - floralwhite: "#fffaf0", - forestgreen: "#228b22", - fuchsia: "#ff00ff", - gainsboro: "#dcdcdc", - ghostwhite: "#f8f8ff", - gold: "#ffd700", - goldenrod: "#daa520", - gray: "#808080", - green: "#008000", - greenyellow: "#adff2f", - grey: "#808080", - honeydew: "#f0fff0", - hotpink: "#ff69b4", - indianred: "#cd5c5c", - indigo: "#4b0082", - ivory: "#fffff0", - khaki: "#f0e68c", - laserlemon: "#ffff54", - lavender: "#e6e6fa", - lavenderblush: "#fff0f5", - lawngreen: "#7cfc00", - lemonchiffon: "#fffacd", - lightblue: "#add8e6", - lightcoral: "#f08080", - lightcyan: "#e0ffff", - lightgoldenrod: "#fafad2", - lightgoldenrodyellow: "#fafad2", - lightgray: "#d3d3d3", - lightgreen: "#90ee90", - lightgrey: "#d3d3d3", - lightpink: "#ffb6c1", - lightsalmon: "#ffa07a", - lightseagreen: "#20b2aa", - lightskyblue: "#87cefa", - lightslategray: "#778899", - lightslategrey: "#778899", - lightsteelblue: "#b0c4de", - lightyellow: "#ffffe0", - lime: "#00ff00", - limegreen: "#32cd32", - linen: "#faf0e6", - magenta: "#ff00ff", - maroon: "#800000", - maroon2: "#7f0000", - maroon3: "#b03060", - mediumaquamarine: "#66cdaa", - mediumblue: "#0000cd", - mediumorchid: "#ba55d3", - mediumpurple: "#9370db", - mediumseagreen: "#3cb371", - mediumslateblue: "#7b68ee", - mediumspringgreen: "#00fa9a", - mediumturquoise: "#48d1cc", - mediumvioletred: "#c71585", - midnightblue: "#191970", - mintcream: "#f5fffa", - mistyrose: "#ffe4e1", - moccasin: "#ffe4b5", - navajowhite: "#ffdead", - navy: "#000080", - oldlace: "#fdf5e6", - olive: "#808000", - olivedrab: "#6b8e23", - orange: "#ffa500", - orangered: "#ff4500", - orchid: "#da70d6", - palegoldenrod: "#eee8aa", - palegreen: "#98fb98", - paleturquoise: "#afeeee", - palevioletred: "#db7093", - papayawhip: "#ffefd5", - peachpuff: "#ffdab9", - peru: "#cd853f", - pink: "#ffc0cb", - plum: "#dda0dd", - powderblue: "#b0e0e6", - purple: "#800080", - purple2: "#7f007f", - purple3: "#a020f0", - rebeccapurple: "#663399", - red: "#ff0000", - rosybrown: "#bc8f8f", - royalblue: "#4169e1", - saddlebrown: "#8b4513", - salmon: "#fa8072", - sandybrown: "#f4a460", - seagreen: "#2e8b57", - seashell: "#fff5ee", - sienna: "#a0522d", - silver: "#c0c0c0", - skyblue: "#87ceeb", - slateblue: "#6a5acd", - slategray: "#708090", - slategrey: "#708090", - snow: "#fffafa", - springgreen: "#00ff7f", - steelblue: "#4682b4", - tan: "#d2b48c", - teal: "#008080", - thistle: "#d8bfd8", - tomato: "#ff6347", - turquoise: "#40e0d0", - violet: "#ee82ee", - wheat: "#f5deb3", - white: "#ffffff", - whitesmoke: "#f5f5f5", - yellow: "#ffff00", - yellowgreen: "#9acd32" - }; - var w3cx11_1 = w3cx11$1; - var Color$s = Color_1; - var input$5 = input$h; - var type$c = utils.type; - var w3cx11 = w3cx11_1; - var hex2rgb = hex2rgb_1; - var rgb2hex = rgb2hex_1; - Color$s.prototype.name = function() { - var hex = rgb2hex(this._rgb, "rgb"); - for (var i2 = 0, list2 = Object.keys(w3cx11); i2 < list2.length; i2 += 1) { - var n = list2[i2]; - if (w3cx11[n] === hex) { - return n.toLowerCase(); - } - } - return hex; - }; - input$5.format.named = function(name2) { - name2 = name2.toLowerCase(); - if (w3cx11[name2]) { - return hex2rgb(w3cx11[name2]); - } - throw new Error("unknown color name: " + name2); - }; - input$5.autodetect.push({ - p: 5, - test: function(h) { - var rest = [], len = arguments.length - 1; - while (len-- > 0) - rest[len] = arguments[len + 1]; - if (!rest.length && type$c(h) === "string" && w3cx11[h.toLowerCase()]) { - return "named"; - } - } - }); - var unpack$8 = utils.unpack; - var rgb2num$1 = function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - var ref = unpack$8(args, "rgb"); - var r = ref[0]; - var g = ref[1]; - var b = ref[2]; - return (r << 16) + (g << 8) + b; - }; - var rgb2num_1 = rgb2num$1; - var type$b = utils.type; - var num2rgb = function(num2) { - if (type$b(num2) == "number" && num2 >= 0 && num2 <= 16777215) { - var r = num2 >> 16; - var g = num2 >> 8 & 255; - var b = num2 & 255; - return [r, g, b, 1]; - } - throw new Error("unknown num color: " + num2); - }; - var num2rgb_1 = num2rgb; - var chroma$9 = chroma_1; - var Color$r = Color_1; - var input$4 = input$h; - var type$a = utils.type; - var rgb2num = rgb2num_1; - Color$r.prototype.num = function() { - return rgb2num(this._rgb); - }; - chroma$9.num = function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - return new (Function.prototype.bind.apply(Color$r, [null].concat(args, ["num"])))(); - }; - input$4.format.num = num2rgb_1; - input$4.autodetect.push({ - p: 5, - test: function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - if (args.length === 1 && type$a(args[0]) === "number" && args[0] >= 0 && args[0] <= 16777215) { - return "num"; - } - } - }); - var chroma$8 = chroma_1; - var Color$q = Color_1; - var input$3 = input$h; - var unpack$7 = utils.unpack; - var type$9 = utils.type; - var round$1 = Math.round; - Color$q.prototype.rgb = function(rnd2) { - if (rnd2 === void 0) - rnd2 = true; - if (rnd2 === false) { - return this._rgb.slice(0, 3); - } - return this._rgb.slice(0, 3).map(round$1); - }; - Color$q.prototype.rgba = function(rnd2) { - if (rnd2 === void 0) - rnd2 = true; - return this._rgb.slice(0, 4).map(function(v, i2) { - return i2 < 3 ? rnd2 === false ? v : round$1(v) : v; - }); - }; - chroma$8.rgb = function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - return new (Function.prototype.bind.apply(Color$q, [null].concat(args, ["rgb"])))(); - }; - input$3.format.rgb = function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - var rgba = unpack$7(args, "rgba"); - if (rgba[3] === void 0) { - rgba[3] = 1; - } - return rgba; - }; - input$3.autodetect.push({ - p: 3, - test: function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - args = unpack$7(args, "rgba"); - if (type$9(args) === "array" && (args.length === 3 || args.length === 4 && type$9(args[3]) == "number" && args[3] >= 0 && args[3] <= 1)) { - return "rgb"; - } - } - }); - var log$1 = Math.log; - var temperature2rgb$1 = function(kelvin) { - var temp = kelvin / 100; - var r, g, b; - if (temp < 66) { - r = 255; - g = temp < 6 ? 0 : -155.25485562709179 - 0.44596950469579133 * (g = temp - 2) + 104.49216199393888 * log$1(g); - b = temp < 20 ? 0 : -254.76935184120902 + 0.8274096064007395 * (b = temp - 10) + 115.67994401066147 * log$1(b); - } else { - r = 351.97690566805693 + 0.114206453784165 * (r = temp - 55) - 40.25366309332127 * log$1(r); - g = 325.4494125711974 + 0.07943456536662342 * (g = temp - 50) - 28.0852963507957 * log$1(g); - b = 255; - } - return [r, g, b, 1]; - }; - var temperature2rgb_1 = temperature2rgb$1; - var temperature2rgb = temperature2rgb_1; - var unpack$6 = utils.unpack; - var round = Math.round; - var rgb2temperature$1 = function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - var rgb2 = unpack$6(args, "rgb"); - var r = rgb2[0], b = rgb2[2]; - var minTemp = 1e3; - var maxTemp = 4e4; - var eps = 0.4; - var temp; - while (maxTemp - minTemp > eps) { - temp = (maxTemp + minTemp) * 0.5; - var rgb$1 = temperature2rgb(temp); - if (rgb$1[2] / rgb$1[0] >= b / r) { - maxTemp = temp; - } else { - minTemp = temp; - } - } - return round(temp); - }; - var rgb2temperature_1 = rgb2temperature$1; - var chroma$7 = chroma_1; - var Color$p = Color_1; - var input$2 = input$h; - var rgb2temperature = rgb2temperature_1; - Color$p.prototype.temp = Color$p.prototype.kelvin = Color$p.prototype.temperature = function() { - return rgb2temperature(this._rgb); - }; - chroma$7.temp = chroma$7.kelvin = chroma$7.temperature = function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - return new (Function.prototype.bind.apply(Color$p, [null].concat(args, ["temp"])))(); - }; - input$2.format.temp = input$2.format.kelvin = input$2.format.temperature = temperature2rgb_1; - var unpack$5 = utils.unpack; - var cbrt = Math.cbrt; - var pow$8 = Math.pow; - var sign$1 = Math.sign; - var rgb2oklab$2 = function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - var ref = unpack$5(args, "rgb"); - var r = ref[0]; - var g = ref[1]; - var b = ref[2]; - var ref$1 = [rgb2lrgb(r / 255), rgb2lrgb(g / 255), rgb2lrgb(b / 255)]; - var lr = ref$1[0]; - var lg = ref$1[1]; - var lb = ref$1[2]; - var l = cbrt(0.4122214708 * lr + 0.5363325363 * lg + 0.0514459929 * lb); - var m = cbrt(0.2119034982 * lr + 0.6806995451 * lg + 0.1073969566 * lb); - var s = cbrt(0.0883024619 * lr + 0.2817188376 * lg + 0.6299787005 * lb); - return [ - 0.2104542553 * l + 0.793617785 * m - 0.0040720468 * s, - 1.9779984951 * l - 2.428592205 * m + 0.4505937099 * s, - 0.0259040371 * l + 0.7827717662 * m - 0.808675766 * s - ]; - }; - var rgb2oklab_1 = rgb2oklab$2; - function rgb2lrgb(c) { - var abs2 = Math.abs(c); - if (abs2 < 0.04045) { - return c / 12.92; - } - return (sign$1(c) || 1) * pow$8((abs2 + 0.055) / 1.055, 2.4); - } - var unpack$4 = utils.unpack; - var pow$7 = Math.pow; - var sign = Math.sign; - var oklab2rgb$1 = function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - args = unpack$4(args, "lab"); - var L = args[0]; - var a = args[1]; - var b = args[2]; - var l = pow$7(L + 0.3963377774 * a + 0.2158037573 * b, 3); - var m = pow$7(L - 0.1055613458 * a - 0.0638541728 * b, 3); - var s = pow$7(L - 0.0894841775 * a - 1.291485548 * b, 3); - return [ - 255 * lrgb2rgb(4.0767416621 * l - 3.3077115913 * m + 0.2309699292 * s), - 255 * lrgb2rgb(-1.2684380046 * l + 2.6097574011 * m - 0.3413193965 * s), - 255 * lrgb2rgb(-0.0041960863 * l - 0.7034186147 * m + 1.707614701 * s), - args.length > 3 ? args[3] : 1 - ]; - }; - var oklab2rgb_1 = oklab2rgb$1; - function lrgb2rgb(c) { - var abs2 = Math.abs(c); - if (abs2 > 31308e-7) { - return (sign(c) || 1) * (1.055 * pow$7(abs2, 1 / 2.4) - 0.055); - } - return c * 12.92; - } - var unpack$3 = utils.unpack; - var type$8 = utils.type; - var chroma$6 = chroma_1; - var Color$o = Color_1; - var input$1 = input$h; - var rgb2oklab$1 = rgb2oklab_1; - Color$o.prototype.oklab = function() { - return rgb2oklab$1(this._rgb); - }; - chroma$6.oklab = function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - return new (Function.prototype.bind.apply(Color$o, [null].concat(args, ["oklab"])))(); - }; - input$1.format.oklab = oklab2rgb_1; - input$1.autodetect.push({ - p: 3, - test: function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - args = unpack$3(args, "oklab"); - if (type$8(args) === "array" && args.length === 3) { - return "oklab"; - } - } - }); - var unpack$2 = utils.unpack; - var rgb2oklab = rgb2oklab_1; - var lab2lch = lab2lch_1; - var rgb2oklch$1 = function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - var ref = unpack$2(args, "rgb"); - var r = ref[0]; - var g = ref[1]; - var b = ref[2]; - var ref$1 = rgb2oklab(r, g, b); - var l = ref$1[0]; - var a = ref$1[1]; - var b_ = ref$1[2]; - return lab2lch(l, a, b_); - }; - var rgb2oklch_1 = rgb2oklch$1; - var unpack$1 = utils.unpack; - var lch2lab = lch2lab_1; - var oklab2rgb = oklab2rgb_1; - var oklch2rgb = function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - args = unpack$1(args, "lch"); - var l = args[0]; - var c = args[1]; - var h = args[2]; - var ref = lch2lab(l, c, h); - var L = ref[0]; - var a = ref[1]; - var b_ = ref[2]; - var ref$1 = oklab2rgb(L, a, b_); - var r = ref$1[0]; - var g = ref$1[1]; - var b = ref$1[2]; - return [r, g, b, args.length > 3 ? args[3] : 1]; - }; - var oklch2rgb_1 = oklch2rgb; - var unpack = utils.unpack; - var type$7 = utils.type; - var chroma$5 = chroma_1; - var Color$n = Color_1; - var input = input$h; - var rgb2oklch = rgb2oklch_1; - Color$n.prototype.oklch = function() { - return rgb2oklch(this._rgb); - }; - chroma$5.oklch = function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - return new (Function.prototype.bind.apply(Color$n, [null].concat(args, ["oklch"])))(); - }; - input.format.oklch = oklch2rgb_1; - input.autodetect.push({ - p: 3, - test: function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - args = unpack(args, "oklch"); - if (type$7(args) === "array" && args.length === 3) { - return "oklch"; - } - } - }); - var Color$m = Color_1; - var type$6 = utils.type; - Color$m.prototype.alpha = function(a, mutate) { - if (mutate === void 0) - mutate = false; - if (a !== void 0 && type$6(a) === "number") { - if (mutate) { - this._rgb[3] = a; - return this; - } - return new Color$m([this._rgb[0], this._rgb[1], this._rgb[2], a], "rgb"); - } - return this._rgb[3]; - }; - var Color$l = Color_1; - Color$l.prototype.clipped = function() { - return this._rgb._clipped || false; - }; - var Color$k = Color_1; - var LAB_CONSTANTS$1 = labConstants; - Color$k.prototype.darken = function(amount) { - if (amount === void 0) - amount = 1; - var me = this; - var lab2 = me.lab(); - lab2[0] -= LAB_CONSTANTS$1.Kn * amount; - return new Color$k(lab2, "lab").alpha(me.alpha(), true); - }; - Color$k.prototype.brighten = function(amount) { - if (amount === void 0) - amount = 1; - return this.darken(-amount); - }; - Color$k.prototype.darker = Color$k.prototype.darken; - Color$k.prototype.brighter = Color$k.prototype.brighten; - var Color$j = Color_1; - Color$j.prototype.get = function(mc) { - var ref = mc.split("."); - var mode = ref[0]; - var channel = ref[1]; - var src = this[mode](); - if (channel) { - var i2 = mode.indexOf(channel) - (mode.substr(0, 2) === "ok" ? 2 : 0); - if (i2 > -1) { - return src[i2]; - } - throw new Error("unknown channel " + channel + " in mode " + mode); - } else { - return src; - } - }; - var Color$i = Color_1; - var type$5 = utils.type; - var pow$6 = Math.pow; - var EPS = 1e-7; - var MAX_ITER = 20; - Color$i.prototype.luminance = function(lum) { - if (lum !== void 0 && type$5(lum) === "number") { - if (lum === 0) { - return new Color$i([0, 0, 0, this._rgb[3]], "rgb"); - } - if (lum === 1) { - return new Color$i([255, 255, 255, this._rgb[3]], "rgb"); - } - var cur_lum = this.luminance(); - var mode = "rgb"; - var max_iter = MAX_ITER; - var test = function(low, high) { - var mid = low.interpolate(high, 0.5, mode); - var lm = mid.luminance(); - if (Math.abs(lum - lm) < EPS || !max_iter--) { - return mid; - } - return lm > lum ? test(low, mid) : test(mid, high); - }; - var rgb2 = (cur_lum > lum ? test(new Color$i([0, 0, 0]), this) : test(this, new Color$i([255, 255, 255]))).rgb(); - return new Color$i(rgb2.concat([this._rgb[3]])); - } - return rgb2luminance.apply(void 0, this._rgb.slice(0, 3)); - }; - var rgb2luminance = function(r, g, b) { - r = luminance_x(r); - g = luminance_x(g); - b = luminance_x(b); - return 0.2126 * r + 0.7152 * g + 0.0722 * b; - }; - var luminance_x = function(x) { - x /= 255; - return x <= 0.03928 ? x / 12.92 : pow$6((x + 0.055) / 1.055, 2.4); - }; - var interpolator$1 = {}; - var Color$h = Color_1; - var type$4 = utils.type; - var interpolator = interpolator$1; - var mix$1 = function(col1, col2, f) { - if (f === void 0) - f = 0.5; - var rest = [], len = arguments.length - 3; - while (len-- > 0) - rest[len] = arguments[len + 3]; - var mode = rest[0] || "lrgb"; - if (!interpolator[mode] && !rest.length) { - mode = Object.keys(interpolator)[0]; - } - if (!interpolator[mode]) { - throw new Error("interpolation mode " + mode + " is not defined"); - } - if (type$4(col1) !== "object") { - col1 = new Color$h(col1); - } - if (type$4(col2) !== "object") { - col2 = new Color$h(col2); - } - return interpolator[mode](col1, col2, f).alpha(col1.alpha() + f * (col2.alpha() - col1.alpha())); - }; - var Color$g = Color_1; - var mix = mix$1; - Color$g.prototype.mix = Color$g.prototype.interpolate = function(col2, f) { - if (f === void 0) - f = 0.5; - var rest = [], len = arguments.length - 2; - while (len-- > 0) - rest[len] = arguments[len + 2]; - return mix.apply(void 0, [this, col2, f].concat(rest)); - }; - var Color$f = Color_1; - Color$f.prototype.premultiply = function(mutate) { - if (mutate === void 0) - mutate = false; - var rgb2 = this._rgb; - var a = rgb2[3]; - if (mutate) { - this._rgb = [rgb2[0] * a, rgb2[1] * a, rgb2[2] * a, a]; - return this; - } else { - return new Color$f([rgb2[0] * a, rgb2[1] * a, rgb2[2] * a, a], "rgb"); - } - }; - var Color$e = Color_1; - var LAB_CONSTANTS = labConstants; - Color$e.prototype.saturate = function(amount) { - if (amount === void 0) - amount = 1; - var me = this; - var lch2 = me.lch(); - lch2[1] += LAB_CONSTANTS.Kn * amount; - if (lch2[1] < 0) { - lch2[1] = 0; - } - return new Color$e(lch2, "lch").alpha(me.alpha(), true); - }; - Color$e.prototype.desaturate = function(amount) { - if (amount === void 0) - amount = 1; - return this.saturate(-amount); - }; - var Color$d = Color_1; - var type$3 = utils.type; - Color$d.prototype.set = function(mc, value, mutate) { - if (mutate === void 0) - mutate = false; - var ref = mc.split("."); - var mode = ref[0]; - var channel = ref[1]; - var src = this[mode](); - if (channel) { - var i2 = mode.indexOf(channel) - (mode.substr(0, 2) === "ok" ? 2 : 0); - if (i2 > -1) { - if (type$3(value) == "string") { - switch (value.charAt(0)) { - case "+": - src[i2] += +value; - break; - case "-": - src[i2] += +value; - break; - case "*": - src[i2] *= +value.substr(1); - break; - case "/": - src[i2] /= +value.substr(1); - break; - default: - src[i2] = +value; - } - } else if (type$3(value) === "number") { - src[i2] = value; - } else { - throw new Error("unsupported value for Color.set"); - } - var out = new Color$d(src, mode); - if (mutate) { - this._rgb = out._rgb; - return this; - } - return out; - } - throw new Error("unknown channel " + channel + " in mode " + mode); - } else { - return src; - } - }; - var Color$c = Color_1; - var rgb = function(col1, col2, f) { - var xyz0 = col1._rgb; - var xyz1 = col2._rgb; - return new Color$c( - xyz0[0] + f * (xyz1[0] - xyz0[0]), - xyz0[1] + f * (xyz1[1] - xyz0[1]), - xyz0[2] + f * (xyz1[2] - xyz0[2]), - "rgb" - ); - }; - interpolator$1.rgb = rgb; - var Color$b = Color_1; - var sqrt$2 = Math.sqrt; - var pow$5 = Math.pow; - var lrgb = function(col1, col2, f) { - var ref = col1._rgb; - var x1 = ref[0]; - var y1 = ref[1]; - var z1 = ref[2]; - var ref$1 = col2._rgb; - var x2 = ref$1[0]; - var y2 = ref$1[1]; - var z2 = ref$1[2]; - return new Color$b( - sqrt$2(pow$5(x1, 2) * (1 - f) + pow$5(x2, 2) * f), - sqrt$2(pow$5(y1, 2) * (1 - f) + pow$5(y2, 2) * f), - sqrt$2(pow$5(z1, 2) * (1 - f) + pow$5(z2, 2) * f), - "rgb" - ); - }; - interpolator$1.lrgb = lrgb; - var Color$a = Color_1; - var lab = function(col1, col2, f) { - var xyz0 = col1.lab(); - var xyz1 = col2.lab(); - return new Color$a( - xyz0[0] + f * (xyz1[0] - xyz0[0]), - xyz0[1] + f * (xyz1[1] - xyz0[1]), - xyz0[2] + f * (xyz1[2] - xyz0[2]), - "lab" - ); - }; - interpolator$1.lab = lab; - var Color$9 = Color_1; - var _hsx = function(col1, col2, f, m) { - var assign2, assign$1; - var xyz0, xyz1; - if (m === "hsl") { - xyz0 = col1.hsl(); - xyz1 = col2.hsl(); - } else if (m === "hsv") { - xyz0 = col1.hsv(); - xyz1 = col2.hsv(); - } else if (m === "hcg") { - xyz0 = col1.hcg(); - xyz1 = col2.hcg(); - } else if (m === "hsi") { - xyz0 = col1.hsi(); - xyz1 = col2.hsi(); - } else if (m === "lch" || m === "hcl") { - m = "hcl"; - xyz0 = col1.hcl(); - xyz1 = col2.hcl(); - } else if (m === "oklch") { - xyz0 = col1.oklch().reverse(); - xyz1 = col2.oklch().reverse(); - } - var hue0, hue1, sat0, sat1, lbv0, lbv1; - if (m.substr(0, 1) === "h" || m === "oklch") { - assign2 = xyz0, hue0 = assign2[0], sat0 = assign2[1], lbv0 = assign2[2]; - assign$1 = xyz1, hue1 = assign$1[0], sat1 = assign$1[1], lbv1 = assign$1[2]; - } - var sat, hue, lbv, dh; - if (!isNaN(hue0) && !isNaN(hue1)) { - if (hue1 > hue0 && hue1 - hue0 > 180) { - dh = hue1 - (hue0 + 360); - } else if (hue1 < hue0 && hue0 - hue1 > 180) { - dh = hue1 + 360 - hue0; - } else { - dh = hue1 - hue0; - } - hue = hue0 + f * dh; - } else if (!isNaN(hue0)) { - hue = hue0; - if ((lbv1 == 1 || lbv1 == 0) && m != "hsv") { - sat = sat0; - } - } else if (!isNaN(hue1)) { - hue = hue1; - if ((lbv0 == 1 || lbv0 == 0) && m != "hsv") { - sat = sat1; - } - } else { - hue = Number.NaN; - } - if (sat === void 0) { - sat = sat0 + f * (sat1 - sat0); - } - lbv = lbv0 + f * (lbv1 - lbv0); - return m === "oklch" ? new Color$9([lbv, sat, hue], m) : new Color$9([hue, sat, lbv], m); - }; - var interpolate_hsx$5 = _hsx; - var lch = function(col1, col2, f) { - return interpolate_hsx$5(col1, col2, f, "lch"); - }; - interpolator$1.lch = lch; - interpolator$1.hcl = lch; - var Color$8 = Color_1; - var num = function(col1, col2, f) { - var c1 = col1.num(); - var c2 = col2.num(); - return new Color$8(c1 + f * (c2 - c1), "num"); - }; - interpolator$1.num = num; - var interpolate_hsx$4 = _hsx; - var hcg = function(col1, col2, f) { - return interpolate_hsx$4(col1, col2, f, "hcg"); - }; - interpolator$1.hcg = hcg; - var interpolate_hsx$3 = _hsx; - var hsi = function(col1, col2, f) { - return interpolate_hsx$3(col1, col2, f, "hsi"); - }; - interpolator$1.hsi = hsi; - var interpolate_hsx$2 = _hsx; - var hsl = function(col1, col2, f) { - return interpolate_hsx$2(col1, col2, f, "hsl"); - }; - interpolator$1.hsl = hsl; - var interpolate_hsx$1 = _hsx; - var hsv = function(col1, col2, f) { - return interpolate_hsx$1(col1, col2, f, "hsv"); - }; - interpolator$1.hsv = hsv; - var Color$7 = Color_1; - var oklab = function(col1, col2, f) { - var xyz0 = col1.oklab(); - var xyz1 = col2.oklab(); - return new Color$7( - xyz0[0] + f * (xyz1[0] - xyz0[0]), - xyz0[1] + f * (xyz1[1] - xyz0[1]), - xyz0[2] + f * (xyz1[2] - xyz0[2]), - "oklab" - ); - }; - interpolator$1.oklab = oklab; - var interpolate_hsx = _hsx; - var oklch = function(col1, col2, f) { - return interpolate_hsx(col1, col2, f, "oklch"); - }; - interpolator$1.oklch = oklch; - var Color$6 = Color_1; - var clip_rgb$1 = utils.clip_rgb; - var pow$4 = Math.pow; - var sqrt$1 = Math.sqrt; - var PI$1 = Math.PI; - var cos$2 = Math.cos; - var sin$2 = Math.sin; - var atan2$1 = Math.atan2; - var average = function(colors, mode, weights) { - if (mode === void 0) - mode = "lrgb"; - if (weights === void 0) - weights = null; - var l = colors.length; - if (!weights) { - weights = Array.from(new Array(l)).map(function() { - return 1; - }); - } - var k = l / weights.reduce(function(a, b) { - return a + b; - }); - weights.forEach(function(w, i3) { - weights[i3] *= k; - }); - colors = colors.map(function(c) { - return new Color$6(c); - }); - if (mode === "lrgb") { - return _average_lrgb(colors, weights); - } - var first = colors.shift(); - var xyz = first.get(mode); - var cnt = []; - var dx = 0; - var dy = 0; - for (var i2 = 0; i2 < xyz.length; i2++) { - xyz[i2] = (xyz[i2] || 0) * weights[0]; - cnt.push(isNaN(xyz[i2]) ? 0 : weights[0]); - if (mode.charAt(i2) === "h" && !isNaN(xyz[i2])) { - var A = xyz[i2] / 180 * PI$1; - dx += cos$2(A) * weights[0]; - dy += sin$2(A) * weights[0]; - } - } - var alpha = first.alpha() * weights[0]; - colors.forEach(function(c, ci) { - var xyz2 = c.get(mode); - alpha += c.alpha() * weights[ci + 1]; - for (var i3 = 0; i3 < xyz.length; i3++) { - if (!isNaN(xyz2[i3])) { - cnt[i3] += weights[ci + 1]; - if (mode.charAt(i3) === "h") { - var A2 = xyz2[i3] / 180 * PI$1; - dx += cos$2(A2) * weights[ci + 1]; - dy += sin$2(A2) * weights[ci + 1]; - } else { - xyz[i3] += xyz2[i3] * weights[ci + 1]; - } - } - } - }); - for (var i$12 = 0; i$12 < xyz.length; i$12++) { - if (mode.charAt(i$12) === "h") { - var A$1 = atan2$1(dy / cnt[i$12], dx / cnt[i$12]) / PI$1 * 180; - while (A$1 < 0) { - A$1 += 360; - } - while (A$1 >= 360) { - A$1 -= 360; - } - xyz[i$12] = A$1; - } else { - xyz[i$12] = xyz[i$12] / cnt[i$12]; - } - } - alpha /= l; - return new Color$6(xyz, mode).alpha(alpha > 0.99999 ? 1 : alpha, true); - }; - var _average_lrgb = function(colors, weights) { - var l = colors.length; - var xyz = [0, 0, 0, 0]; - for (var i2 = 0; i2 < colors.length; i2++) { - var col = colors[i2]; - var f = weights[i2] / l; - var rgb2 = col._rgb; - xyz[0] += pow$4(rgb2[0], 2) * f; - xyz[1] += pow$4(rgb2[1], 2) * f; - xyz[2] += pow$4(rgb2[2], 2) * f; - xyz[3] += rgb2[3] * f; - } - xyz[0] = sqrt$1(xyz[0]); - xyz[1] = sqrt$1(xyz[1]); - xyz[2] = sqrt$1(xyz[2]); - if (xyz[3] > 0.9999999) { - xyz[3] = 1; - } - return new Color$6(clip_rgb$1(xyz)); - }; - var chroma$4 = chroma_1; - var type$2 = utils.type; - var pow$3 = Math.pow; - var scale$2 = function(colors) { - var _mode = "rgb"; - var _nacol = chroma$4("#ccc"); - var _spread = 0; - var _domain = [0, 1]; - var _pos = []; - var _padding = [0, 0]; - var _classes = false; - var _colors = []; - var _out = false; - var _min = 0; - var _max = 1; - var _correctLightness = false; - var _colorCache = {}; - var _useCache = true; - var _gamma = 1; - var setColors = function(colors2) { - colors2 = colors2 || ["#fff", "#000"]; - if (colors2 && type$2(colors2) === "string" && chroma$4.brewer && chroma$4.brewer[colors2.toLowerCase()]) { - colors2 = chroma$4.brewer[colors2.toLowerCase()]; - } - if (type$2(colors2) === "array") { - if (colors2.length === 1) { - colors2 = [colors2[0], colors2[0]]; - } - colors2 = colors2.slice(0); - for (var c = 0; c < colors2.length; c++) { - colors2[c] = chroma$4(colors2[c]); - } - _pos.length = 0; - for (var c$1 = 0; c$1 < colors2.length; c$1++) { - _pos.push(c$1 / (colors2.length - 1)); - } - } - resetCache(); - return _colors = colors2; - }; - var getClass = function(value) { - if (_classes != null) { - var n = _classes.length - 1; - var i2 = 0; - while (i2 < n && value >= _classes[i2]) { - i2++; - } - return i2 - 1; - } - return 0; - }; - var tMapLightness = function(t) { - return t; - }; - var tMapDomain = function(t) { - return t; - }; - var getColor = function(val, bypassMap) { - var col, t; - if (bypassMap == null) { - bypassMap = false; - } - if (isNaN(val) || val === null) { - return _nacol; - } - if (!bypassMap) { - if (_classes && _classes.length > 2) { - var c = getClass(val); - t = c / (_classes.length - 2); - } else if (_max !== _min) { - t = (val - _min) / (_max - _min); - } else { - t = 1; - } - } else { - t = val; - } - t = tMapDomain(t); - if (!bypassMap) { - t = tMapLightness(t); - } - if (_gamma !== 1) { - t = pow$3(t, _gamma); - } - t = _padding[0] + t * (1 - _padding[0] - _padding[1]); - t = Math.min(1, Math.max(0, t)); - var k = Math.floor(t * 1e4); - if (_useCache && _colorCache[k]) { - col = _colorCache[k]; - } else { - if (type$2(_colors) === "array") { - for (var i2 = 0; i2 < _pos.length; i2++) { - var p = _pos[i2]; - if (t <= p) { - col = _colors[i2]; - break; - } - if (t >= p && i2 === _pos.length - 1) { - col = _colors[i2]; - break; - } - if (t > p && t < _pos[i2 + 1]) { - t = (t - p) / (_pos[i2 + 1] - p); - col = chroma$4.interpolate(_colors[i2], _colors[i2 + 1], t, _mode); - break; - } - } - } else if (type$2(_colors) === "function") { - col = _colors(t); - } - if (_useCache) { - _colorCache[k] = col; - } - } - return col; - }; - var resetCache = function() { - return _colorCache = {}; - }; - setColors(colors); - var f = function(v) { - var c = chroma$4(getColor(v)); - if (_out && c[_out]) { - return c[_out](); - } else { - return c; - } - }; - f.classes = function(classes) { - if (classes != null) { - if (type$2(classes) === "array") { - _classes = classes; - _domain = [classes[0], classes[classes.length - 1]]; - } else { - var d = chroma$4.analyze(_domain); - if (classes === 0) { - _classes = [d.min, d.max]; - } else { - _classes = chroma$4.limits(d, "e", classes); - } - } - return f; - } - return _classes; - }; - f.domain = function(domain) { - if (!arguments.length) { - return _domain; - } - _min = domain[0]; - _max = domain[domain.length - 1]; - _pos = []; - var k = _colors.length; - if (domain.length === k && _min !== _max) { - for (var i2 = 0, list2 = Array.from(domain); i2 < list2.length; i2 += 1) { - var d = list2[i2]; - _pos.push((d - _min) / (_max - _min)); - } - } else { - for (var c = 0; c < k; c++) { - _pos.push(c / (k - 1)); - } - if (domain.length > 2) { - var tOut = domain.map(function(d2, i3) { - return i3 / (domain.length - 1); - }); - var tBreaks = domain.map(function(d2) { - return (d2 - _min) / (_max - _min); - }); - if (!tBreaks.every(function(val, i3) { - return tOut[i3] === val; - })) { - tMapDomain = function(t) { - if (t <= 0 || t >= 1) { - return t; - } - var i3 = 0; - while (t >= tBreaks[i3 + 1]) { - i3++; - } - var f2 = (t - tBreaks[i3]) / (tBreaks[i3 + 1] - tBreaks[i3]); - var out = tOut[i3] + f2 * (tOut[i3 + 1] - tOut[i3]); - return out; - }; - } - } - } - _domain = [_min, _max]; - return f; - }; - f.mode = function(_m) { - if (!arguments.length) { - return _mode; - } - _mode = _m; - resetCache(); - return f; - }; - f.range = function(colors2, _pos2) { - setColors(colors2); - return f; - }; - f.out = function(_o) { - _out = _o; - return f; - }; - f.spread = function(val) { - if (!arguments.length) { - return _spread; - } - _spread = val; - return f; - }; - f.correctLightness = function(v) { - if (v == null) { - v = true; - } - _correctLightness = v; - resetCache(); - if (_correctLightness) { - tMapLightness = function(t) { - var L0 = getColor(0, true).lab()[0]; - var L1 = getColor(1, true).lab()[0]; - var pol = L0 > L1; - var L_actual = getColor(t, true).lab()[0]; - var L_ideal = L0 + (L1 - L0) * t; - var L_diff = L_actual - L_ideal; - var t0 = 0; - var t1 = 1; - var max_iter = 20; - while (Math.abs(L_diff) > 0.01 && max_iter-- > 0) { - (function() { - if (pol) { - L_diff *= -1; - } - if (L_diff < 0) { - t0 = t; - t += (t1 - t) * 0.5; - } else { - t1 = t; - t += (t0 - t) * 0.5; - } - L_actual = getColor(t, true).lab()[0]; - return L_diff = L_actual - L_ideal; - })(); - } - return t; - }; - } else { - tMapLightness = function(t) { - return t; - }; - } - return f; - }; - f.padding = function(p) { - if (p != null) { - if (type$2(p) === "number") { - p = [p, p]; - } - _padding = p; - return f; - } else { - return _padding; - } - }; - f.colors = function(numColors, out) { - if (arguments.length < 2) { - out = "hex"; - } - var result = []; - if (arguments.length === 0) { - result = _colors.slice(0); - } else if (numColors === 1) { - result = [f(0.5)]; - } else if (numColors > 1) { - var dm = _domain[0]; - var dd = _domain[1] - dm; - result = __range__(0, numColors, false).map(function(i3) { - return f(dm + i3 / (numColors - 1) * dd); - }); - } else { - colors = []; - var samples = []; - if (_classes && _classes.length > 2) { - for (var i2 = 1, end = _classes.length, asc = 1 <= end; asc ? i2 < end : i2 > end; asc ? i2++ : i2--) { - samples.push((_classes[i2 - 1] + _classes[i2]) * 0.5); - } - } else { - samples = _domain; - } - result = samples.map(function(v) { - return f(v); - }); - } - if (chroma$4[out]) { - result = result.map(function(c) { - return c[out](); - }); - } - return result; - }; - f.cache = function(c) { - if (c != null) { - _useCache = c; - return f; - } else { - return _useCache; - } - }; - f.gamma = function(g) { - if (g != null) { - _gamma = g; - return f; - } else { - return _gamma; - } - }; - f.nodata = function(d) { - if (d != null) { - _nacol = chroma$4(d); - return f; - } else { - return _nacol; - } - }; - return f; - }; - function __range__(left, right, inclusive) { - var range3 = []; - var ascending = left < right; - var end = !inclusive ? right : ascending ? right + 1 : right - 1; - for (var i2 = left; ascending ? i2 < end : i2 > end; ascending ? i2++ : i2--) { - range3.push(i2); - } - return range3; - } - var Color$5 = Color_1; - var scale$1 = scale$2; - var binom_row = function(n) { - var row = [1, 1]; - for (var i2 = 1; i2 < n; i2++) { - var newrow = [1]; - for (var j = 1; j <= row.length; j++) { - newrow[j] = (row[j] || 0) + row[j - 1]; - } - row = newrow; - } - return row; - }; - var bezier = function(colors) { - var assign2, assign$1, assign$2; - var I, lab0, lab1, lab2; - colors = colors.map(function(c) { - return new Color$5(c); - }); - if (colors.length === 2) { - assign2 = colors.map(function(c) { - return c.lab(); - }), lab0 = assign2[0], lab1 = assign2[1]; - I = function(t) { - var lab4 = [0, 1, 2].map(function(i2) { - return lab0[i2] + t * (lab1[i2] - lab0[i2]); - }); - return new Color$5(lab4, "lab"); - }; - } else if (colors.length === 3) { - assign$1 = colors.map(function(c) { - return c.lab(); - }), lab0 = assign$1[0], lab1 = assign$1[1], lab2 = assign$1[2]; - I = function(t) { - var lab4 = [0, 1, 2].map(function(i2) { - return (1 - t) * (1 - t) * lab0[i2] + 2 * (1 - t) * t * lab1[i2] + t * t * lab2[i2]; - }); - return new Color$5(lab4, "lab"); - }; - } else if (colors.length === 4) { - var lab3; - assign$2 = colors.map(function(c) { - return c.lab(); - }), lab0 = assign$2[0], lab1 = assign$2[1], lab2 = assign$2[2], lab3 = assign$2[3]; - I = function(t) { - var lab4 = [0, 1, 2].map(function(i2) { - return (1 - t) * (1 - t) * (1 - t) * lab0[i2] + 3 * (1 - t) * (1 - t) * t * lab1[i2] + 3 * (1 - t) * t * t * lab2[i2] + t * t * t * lab3[i2]; - }); - return new Color$5(lab4, "lab"); - }; - } else if (colors.length >= 5) { - var labs, row, n; - labs = colors.map(function(c) { - return c.lab(); - }); - n = colors.length - 1; - row = binom_row(n); - I = function(t) { - var u = 1 - t; - var lab4 = [0, 1, 2].map(function(i2) { - return labs.reduce(function(sum, el, j) { - return sum + row[j] * Math.pow(u, n - j) * Math.pow(t, j) * el[i2]; - }, 0); - }); - return new Color$5(lab4, "lab"); - }; - } else { - throw new RangeError("No point in running bezier with only one color."); - } - return I; - }; - var bezier_1 = function(colors) { - var f = bezier(colors); - f.scale = function() { - return scale$1(f); - }; - return f; - }; - var chroma$3 = chroma_1; - var blend = function(bottom, top, mode) { - if (!blend[mode]) { - throw new Error("unknown blend mode " + mode); - } - return blend[mode](bottom, top); - }; - var blend_f = function(f) { - return function(bottom, top) { - var c0 = chroma$3(top).rgb(); - var c1 = chroma$3(bottom).rgb(); - return chroma$3.rgb(f(c0, c1)); - }; - }; - var each = function(f) { - return function(c0, c1) { - var out = []; - out[0] = f(c0[0], c1[0]); - out[1] = f(c0[1], c1[1]); - out[2] = f(c0[2], c1[2]); - return out; - }; - }; - var normal = function(a) { - return a; - }; - var multiply = function(a, b) { - return a * b / 255; - }; - var darken = function(a, b) { - return a > b ? b : a; - }; - var lighten = function(a, b) { - return a > b ? a : b; - }; - var screen = function(a, b) { - return 255 * (1 - (1 - a / 255) * (1 - b / 255)); - }; - var overlay = function(a, b) { - return b < 128 ? 2 * a * b / 255 : 255 * (1 - 2 * (1 - a / 255) * (1 - b / 255)); - }; - var burn = function(a, b) { - return 255 * (1 - (1 - b / 255) / (a / 255)); - }; - var dodge = function(a, b) { - if (a === 255) { - return 255; - } - a = 255 * (b / 255) / (1 - a / 255); - return a > 255 ? 255 : a; - }; - blend.normal = blend_f(each(normal)); - blend.multiply = blend_f(each(multiply)); - blend.screen = blend_f(each(screen)); - blend.overlay = blend_f(each(overlay)); - blend.darken = blend_f(each(darken)); - blend.lighten = blend_f(each(lighten)); - blend.dodge = blend_f(each(dodge)); - blend.burn = blend_f(each(burn)); - var blend_1 = blend; - var type$1 = utils.type; - var clip_rgb = utils.clip_rgb; - var TWOPI = utils.TWOPI; - var pow$2 = Math.pow; - var sin$1 = Math.sin; - var cos$1 = Math.cos; - var chroma$2 = chroma_1; - var cubehelix = function(start, rotations, hue, gamma, lightness) { - if (start === void 0) - start = 300; - if (rotations === void 0) - rotations = -1.5; - if (hue === void 0) - hue = 1; - if (gamma === void 0) - gamma = 1; - if (lightness === void 0) - lightness = [0, 1]; - var dh = 0, dl; - if (type$1(lightness) === "array") { - dl = lightness[1] - lightness[0]; - } else { - dl = 0; - lightness = [lightness, lightness]; - } - var f = function(fract) { - var a = TWOPI * ((start + 120) / 360 + rotations * fract); - var l = pow$2(lightness[0] + dl * fract, gamma); - var h = dh !== 0 ? hue[0] + fract * dh : hue; - var amp = h * l * (1 - l) / 2; - var cos_a = cos$1(a); - var sin_a = sin$1(a); - var r = l + amp * (-0.14861 * cos_a + 1.78277 * sin_a); - var g = l + amp * (-0.29227 * cos_a - 0.90649 * sin_a); - var b = l + amp * (1.97294 * cos_a); - return chroma$2(clip_rgb([r * 255, g * 255, b * 255, 1])); - }; - f.start = function(s) { - if (s == null) { - return start; - } - start = s; - return f; - }; - f.rotations = function(r) { - if (r == null) { - return rotations; - } - rotations = r; - return f; - }; - f.gamma = function(g) { - if (g == null) { - return gamma; - } - gamma = g; - return f; - }; - f.hue = function(h) { - if (h == null) { - return hue; - } - hue = h; - if (type$1(hue) === "array") { - dh = hue[1] - hue[0]; - if (dh === 0) { - hue = hue[1]; - } - } else { - dh = 0; - } - return f; - }; - f.lightness = function(h) { - if (h == null) { - return lightness; - } - if (type$1(h) === "array") { - lightness = h; - dl = h[1] - h[0]; - } else { - lightness = [h, h]; - dl = 0; - } - return f; - }; - f.scale = function() { - return chroma$2.scale(f); - }; - f.hue(hue); - return f; - }; - var Color$4 = Color_1; - var digits = "0123456789abcdef"; - var floor$1 = Math.floor; - var random = Math.random; - var random_1 = function() { - var code = "#"; - for (var i2 = 0; i2 < 6; i2++) { - code += digits.charAt(floor$1(random() * 16)); - } - return new Color$4(code, "hex"); - }; - var type = type$p; - var log = Math.log; - var pow$1 = Math.pow; - var floor = Math.floor; - var abs$1 = Math.abs; - var analyze = function(data, key2) { - if (key2 === void 0) - key2 = null; - var r = { - min: Number.MAX_VALUE, - max: Number.MAX_VALUE * -1, - sum: 0, - values: [], - count: 0 - }; - if (type(data) === "object") { - data = Object.values(data); - } - data.forEach(function(val) { - if (key2 && type(val) === "object") { - val = val[key2]; - } - if (val !== void 0 && val !== null && !isNaN(val)) { - r.values.push(val); - r.sum += val; - if (val < r.min) { - r.min = val; - } - if (val > r.max) { - r.max = val; - } - r.count += 1; - } - }); - r.domain = [r.min, r.max]; - r.limits = function(mode, num2) { - return limits(r, mode, num2); - }; - return r; - }; - var limits = function(data, mode, num2) { - if (mode === void 0) - mode = "equal"; - if (num2 === void 0) - num2 = 7; - if (type(data) == "array") { - data = analyze(data); - } - var min2 = data.min; - var max2 = data.max; - var values = data.values.sort(function(a, b) { - return a - b; - }); - if (num2 === 1) { - return [min2, max2]; - } - var limits2 = []; - if (mode.substr(0, 1) === "c") { - limits2.push(min2); - limits2.push(max2); - } - if (mode.substr(0, 1) === "e") { - limits2.push(min2); - for (var i2 = 1; i2 < num2; i2++) { - limits2.push(min2 + i2 / num2 * (max2 - min2)); - } - limits2.push(max2); - } else if (mode.substr(0, 1) === "l") { - if (min2 <= 0) { - throw new Error("Logarithmic scales are only possible for values > 0"); - } - var min_log = Math.LOG10E * log(min2); - var max_log = Math.LOG10E * log(max2); - limits2.push(min2); - for (var i$12 = 1; i$12 < num2; i$12++) { - limits2.push(pow$1(10, min_log + i$12 / num2 * (max_log - min_log))); - } - limits2.push(max2); - } else if (mode.substr(0, 1) === "q") { - limits2.push(min2); - for (var i$2 = 1; i$2 < num2; i$2++) { - var p = (values.length - 1) * i$2 / num2; - var pb = floor(p); - if (pb === p) { - limits2.push(values[pb]); - } else { - var pr = p - pb; - limits2.push(values[pb] * (1 - pr) + values[pb + 1] * pr); - } - } - limits2.push(max2); - } else if (mode.substr(0, 1) === "k") { - var cluster; - var n = values.length; - var assignments = new Array(n); - var clusterSizes = new Array(num2); - var repeat = true; - var nb_iters = 0; - var centroids = null; - centroids = []; - centroids.push(min2); - for (var i$3 = 1; i$3 < num2; i$3++) { - centroids.push(min2 + i$3 / num2 * (max2 - min2)); - } - centroids.push(max2); - while (repeat) { - for (var j = 0; j < num2; j++) { - clusterSizes[j] = 0; - } - for (var i$4 = 0; i$4 < n; i$4++) { - var value = values[i$4]; - var mindist = Number.MAX_VALUE; - var best = void 0; - for (var j$1 = 0; j$1 < num2; j$1++) { - var dist = abs$1(centroids[j$1] - value); - if (dist < mindist) { - mindist = dist; - best = j$1; - } - clusterSizes[best]++; - assignments[i$4] = best; - } - } - var newCentroids = new Array(num2); - for (var j$2 = 0; j$2 < num2; j$2++) { - newCentroids[j$2] = null; - } - for (var i$5 = 0; i$5 < n; i$5++) { - cluster = assignments[i$5]; - if (newCentroids[cluster] === null) { - newCentroids[cluster] = values[i$5]; - } else { - newCentroids[cluster] += values[i$5]; - } - } - for (var j$3 = 0; j$3 < num2; j$3++) { - newCentroids[j$3] *= 1 / clusterSizes[j$3]; - } - repeat = false; - for (var j$4 = 0; j$4 < num2; j$4++) { - if (newCentroids[j$4] !== centroids[j$4]) { - repeat = true; - break; - } - } - centroids = newCentroids; - nb_iters++; - if (nb_iters > 200) { - repeat = false; - } - } - var kClusters = {}; - for (var j$5 = 0; j$5 < num2; j$5++) { - kClusters[j$5] = []; - } - for (var i$6 = 0; i$6 < n; i$6++) { - cluster = assignments[i$6]; - kClusters[cluster].push(values[i$6]); - } - var tmpKMeansBreaks = []; - for (var j$6 = 0; j$6 < num2; j$6++) { - tmpKMeansBreaks.push(kClusters[j$6][0]); - tmpKMeansBreaks.push(kClusters[j$6][kClusters[j$6].length - 1]); - } - tmpKMeansBreaks = tmpKMeansBreaks.sort(function(a, b) { - return a - b; - }); - limits2.push(tmpKMeansBreaks[0]); - for (var i$7 = 1; i$7 < tmpKMeansBreaks.length; i$7 += 2) { - var v = tmpKMeansBreaks[i$7]; - if (!isNaN(v) && limits2.indexOf(v) === -1) { - limits2.push(v); - } - } - } - return limits2; - }; - var analyze_1 = { analyze, limits }; - var Color$3 = Color_1; - var contrast = function(a, b) { - a = new Color$3(a); - b = new Color$3(b); - var l1 = a.luminance(); - var l2 = b.luminance(); - return l1 > l2 ? (l1 + 0.05) / (l2 + 0.05) : (l2 + 0.05) / (l1 + 0.05); - }; - var Color$2 = Color_1; - var sqrt = Math.sqrt; - var pow = Math.pow; - var min = Math.min; - var max = Math.max; - var atan2 = Math.atan2; - var abs = Math.abs; - var cos = Math.cos; - var sin = Math.sin; - var exp = Math.exp; - var PI = Math.PI; - var deltaE = function(a, b, Kl, Kc, Kh) { - if (Kl === void 0) - Kl = 1; - if (Kc === void 0) - Kc = 1; - if (Kh === void 0) - Kh = 1; - var rad2deg = function(rad) { - return 360 * rad / (2 * PI); - }; - var deg2rad = function(deg) { - return 2 * PI * deg / 360; - }; - a = new Color$2(a); - b = new Color$2(b); - var ref = Array.from(a.lab()); - var L1 = ref[0]; - var a1 = ref[1]; - var b1 = ref[2]; - var ref$1 = Array.from(b.lab()); - var L2 = ref$1[0]; - var a2 = ref$1[1]; - var b2 = ref$1[2]; - var avgL = (L1 + L2) / 2; - var C1 = sqrt(pow(a1, 2) + pow(b1, 2)); - var C2 = sqrt(pow(a2, 2) + pow(b2, 2)); - var avgC = (C1 + C2) / 2; - var G = 0.5 * (1 - sqrt(pow(avgC, 7) / (pow(avgC, 7) + pow(25, 7)))); - var a1p = a1 * (1 + G); - var a2p = a2 * (1 + G); - var C1p = sqrt(pow(a1p, 2) + pow(b1, 2)); - var C2p = sqrt(pow(a2p, 2) + pow(b2, 2)); - var avgCp = (C1p + C2p) / 2; - var arctan1 = rad2deg(atan2(b1, a1p)); - var arctan2 = rad2deg(atan2(b2, a2p)); - var h1p = arctan1 >= 0 ? arctan1 : arctan1 + 360; - var h2p = arctan2 >= 0 ? arctan2 : arctan2 + 360; - var avgHp = abs(h1p - h2p) > 180 ? (h1p + h2p + 360) / 2 : (h1p + h2p) / 2; - var T = 1 - 0.17 * cos(deg2rad(avgHp - 30)) + 0.24 * cos(deg2rad(2 * avgHp)) + 0.32 * cos(deg2rad(3 * avgHp + 6)) - 0.2 * cos(deg2rad(4 * avgHp - 63)); - var deltaHp = h2p - h1p; - deltaHp = abs(deltaHp) <= 180 ? deltaHp : h2p <= h1p ? deltaHp + 360 : deltaHp - 360; - deltaHp = 2 * sqrt(C1p * C2p) * sin(deg2rad(deltaHp) / 2); - var deltaL = L2 - L1; - var deltaCp = C2p - C1p; - var sl = 1 + 0.015 * pow(avgL - 50, 2) / sqrt(20 + pow(avgL - 50, 2)); - var sc = 1 + 0.045 * avgCp; - var sh = 1 + 0.015 * avgCp * T; - var deltaTheta = 30 * exp(-pow((avgHp - 275) / 25, 2)); - var Rc = 2 * sqrt(pow(avgCp, 7) / (pow(avgCp, 7) + pow(25, 7))); - var Rt = -Rc * sin(2 * deg2rad(deltaTheta)); - var result = sqrt(pow(deltaL / (Kl * sl), 2) + pow(deltaCp / (Kc * sc), 2) + pow(deltaHp / (Kh * sh), 2) + Rt * (deltaCp / (Kc * sc)) * (deltaHp / (Kh * sh))); - return max(0, min(100, result)); - }; - var Color$1 = Color_1; - var distance = function(a, b, mode) { - if (mode === void 0) - mode = "lab"; - a = new Color$1(a); - b = new Color$1(b); - var l1 = a.get(mode); - var l2 = b.get(mode); - var sum_sq = 0; - for (var i2 in l1) { - var d = (l1[i2] || 0) - (l2[i2] || 0); - sum_sq += d * d; - } - return Math.sqrt(sum_sq); - }; - var Color = Color_1; - var valid = function() { - var args = [], len = arguments.length; - while (len--) - args[len] = arguments[len]; - try { - new (Function.prototype.bind.apply(Color, [null].concat(args)))(); - return true; - } catch (e) { - return false; - } - }; - var chroma$1 = chroma_1; - var scale = scale$2; - var scales = { - cool: function cool() { - return scale([chroma$1.hsl(180, 1, 0.9), chroma$1.hsl(250, 0.7, 0.4)]); - }, - hot: function hot() { - return scale(["#000", "#f00", "#ff0", "#fff"]).mode("rgb"); - } - }; - var colorbrewer = { - // sequential - OrRd: ["#fff7ec", "#fee8c8", "#fdd49e", "#fdbb84", "#fc8d59", "#ef6548", "#d7301f", "#b30000", "#7f0000"], - PuBu: ["#fff7fb", "#ece7f2", "#d0d1e6", "#a6bddb", "#74a9cf", "#3690c0", "#0570b0", "#045a8d", "#023858"], - BuPu: ["#f7fcfd", "#e0ecf4", "#bfd3e6", "#9ebcda", "#8c96c6", "#8c6bb1", "#88419d", "#810f7c", "#4d004b"], - Oranges: ["#fff5eb", "#fee6ce", "#fdd0a2", "#fdae6b", "#fd8d3c", "#f16913", "#d94801", "#a63603", "#7f2704"], - BuGn: ["#f7fcfd", "#e5f5f9", "#ccece6", "#99d8c9", "#66c2a4", "#41ae76", "#238b45", "#006d2c", "#00441b"], - YlOrBr: ["#ffffe5", "#fff7bc", "#fee391", "#fec44f", "#fe9929", "#ec7014", "#cc4c02", "#993404", "#662506"], - YlGn: ["#ffffe5", "#f7fcb9", "#d9f0a3", "#addd8e", "#78c679", "#41ab5d", "#238443", "#006837", "#004529"], - Reds: ["#fff5f0", "#fee0d2", "#fcbba1", "#fc9272", "#fb6a4a", "#ef3b2c", "#cb181d", "#a50f15", "#67000d"], - RdPu: ["#fff7f3", "#fde0dd", "#fcc5c0", "#fa9fb5", "#f768a1", "#dd3497", "#ae017e", "#7a0177", "#49006a"], - Greens: ["#f7fcf5", "#e5f5e0", "#c7e9c0", "#a1d99b", "#74c476", "#41ab5d", "#238b45", "#006d2c", "#00441b"], - YlGnBu: ["#ffffd9", "#edf8b1", "#c7e9b4", "#7fcdbb", "#41b6c4", "#1d91c0", "#225ea8", "#253494", "#081d58"], - Purples: ["#fcfbfd", "#efedf5", "#dadaeb", "#bcbddc", "#9e9ac8", "#807dba", "#6a51a3", "#54278f", "#3f007d"], - GnBu: ["#f7fcf0", "#e0f3db", "#ccebc5", "#a8ddb5", "#7bccc4", "#4eb3d3", "#2b8cbe", "#0868ac", "#084081"], - Greys: ["#ffffff", "#f0f0f0", "#d9d9d9", "#bdbdbd", "#969696", "#737373", "#525252", "#252525", "#000000"], - YlOrRd: ["#ffffcc", "#ffeda0", "#fed976", "#feb24c", "#fd8d3c", "#fc4e2a", "#e31a1c", "#bd0026", "#800026"], - PuRd: ["#f7f4f9", "#e7e1ef", "#d4b9da", "#c994c7", "#df65b0", "#e7298a", "#ce1256", "#980043", "#67001f"], - Blues: ["#f7fbff", "#deebf7", "#c6dbef", "#9ecae1", "#6baed6", "#4292c6", "#2171b5", "#08519c", "#08306b"], - PuBuGn: ["#fff7fb", "#ece2f0", "#d0d1e6", "#a6bddb", "#67a9cf", "#3690c0", "#02818a", "#016c59", "#014636"], - Viridis: ["#440154", "#482777", "#3f4a8a", "#31678e", "#26838f", "#1f9d8a", "#6cce5a", "#b6de2b", "#fee825"], - // diverging - Spectral: ["#9e0142", "#d53e4f", "#f46d43", "#fdae61", "#fee08b", "#ffffbf", "#e6f598", "#abdda4", "#66c2a5", "#3288bd", "#5e4fa2"], - RdYlGn: ["#a50026", "#d73027", "#f46d43", "#fdae61", "#fee08b", "#ffffbf", "#d9ef8b", "#a6d96a", "#66bd63", "#1a9850", "#006837"], - RdBu: ["#67001f", "#b2182b", "#d6604d", "#f4a582", "#fddbc7", "#f7f7f7", "#d1e5f0", "#92c5de", "#4393c3", "#2166ac", "#053061"], - PiYG: ["#8e0152", "#c51b7d", "#de77ae", "#f1b6da", "#fde0ef", "#f7f7f7", "#e6f5d0", "#b8e186", "#7fbc41", "#4d9221", "#276419"], - PRGn: ["#40004b", "#762a83", "#9970ab", "#c2a5cf", "#e7d4e8", "#f7f7f7", "#d9f0d3", "#a6dba0", "#5aae61", "#1b7837", "#00441b"], - RdYlBu: ["#a50026", "#d73027", "#f46d43", "#fdae61", "#fee090", "#ffffbf", "#e0f3f8", "#abd9e9", "#74add1", "#4575b4", "#313695"], - BrBG: ["#543005", "#8c510a", "#bf812d", "#dfc27d", "#f6e8c3", "#f5f5f5", "#c7eae5", "#80cdc1", "#35978f", "#01665e", "#003c30"], - RdGy: ["#67001f", "#b2182b", "#d6604d", "#f4a582", "#fddbc7", "#ffffff", "#e0e0e0", "#bababa", "#878787", "#4d4d4d", "#1a1a1a"], - PuOr: ["#7f3b08", "#b35806", "#e08214", "#fdb863", "#fee0b6", "#f7f7f7", "#d8daeb", "#b2abd2", "#8073ac", "#542788", "#2d004b"], - // qualitative - Set2: ["#66c2a5", "#fc8d62", "#8da0cb", "#e78ac3", "#a6d854", "#ffd92f", "#e5c494", "#b3b3b3"], - Accent: ["#7fc97f", "#beaed4", "#fdc086", "#ffff99", "#386cb0", "#f0027f", "#bf5b17", "#666666"], - Set1: ["#e41a1c", "#377eb8", "#4daf4a", "#984ea3", "#ff7f00", "#ffff33", "#a65628", "#f781bf", "#999999"], - Set3: ["#8dd3c7", "#ffffb3", "#bebada", "#fb8072", "#80b1d3", "#fdb462", "#b3de69", "#fccde5", "#d9d9d9", "#bc80bd", "#ccebc5", "#ffed6f"], - Dark2: ["#1b9e77", "#d95f02", "#7570b3", "#e7298a", "#66a61e", "#e6ab02", "#a6761d", "#666666"], - Paired: ["#a6cee3", "#1f78b4", "#b2df8a", "#33a02c", "#fb9a99", "#e31a1c", "#fdbf6f", "#ff7f00", "#cab2d6", "#6a3d9a", "#ffff99", "#b15928"], - Pastel2: ["#b3e2cd", "#fdcdac", "#cbd5e8", "#f4cae4", "#e6f5c9", "#fff2ae", "#f1e2cc", "#cccccc"], - Pastel1: ["#fbb4ae", "#b3cde3", "#ccebc5", "#decbe4", "#fed9a6", "#ffffcc", "#e5d8bd", "#fddaec", "#f2f2f2"] - }; - for (var i = 0, list = Object.keys(colorbrewer); i < list.length; i += 1) { - var key = list[i]; - colorbrewer[key.toLowerCase()] = colorbrewer[key]; - } - var colorbrewer_1 = colorbrewer; - var chroma3 = chroma_1; - chroma3.average = average; - chroma3.bezier = bezier_1; - chroma3.blend = blend_1; - chroma3.cubehelix = cubehelix; - chroma3.mix = chroma3.interpolate = mix$1; - chroma3.random = random_1; - chroma3.scale = scale$2; - chroma3.analyze = analyze_1.analyze; - chroma3.contrast = contrast; - chroma3.deltaE = deltaE; - chroma3.distance = distance; - chroma3.limits = analyze_1.limits; - chroma3.valid = valid; - chroma3.scales = scales; - chroma3.colors = w3cx11_1; - chroma3.brewer = colorbrewer_1; - var chroma_js = chroma3; - return chroma_js; - }); - } -}); - -// src/main.ts -var main_exports = {}; -__export(main_exports, { - default: () => DayPlanner -}); -module.exports = __toCommonJS(main_exports); -var import_obsidian6 = require("obsidian"); -var import_obsidian_daily_notes_interface6 = __toESM(require_main()); - -// node_modules/svelte/internal/index.mjs -function noop() { -} -function assign(tar, src) { - for (const k in src) - tar[k] = src[k]; - return tar; -} -function is_promise(value) { - return !!value && (typeof value === "object" || typeof value === "function") && typeof value.then === "function"; -} -function run(fn) { - return fn(); -} -function blank_object() { - return /* @__PURE__ */ Object.create(null); -} -function run_all(fns) { - fns.forEach(run); -} -function is_function(thing) { - return typeof thing === "function"; -} -function safe_not_equal(a, b) { - return a != a ? b == b : a !== b || (a && typeof a === "object" || typeof a === "function"); -} -function is_empty(obj) { - return Object.keys(obj).length === 0; -} -function subscribe(store, ...callbacks) { - if (store == null) { - return noop; - } - const unsub = store.subscribe(...callbacks); - return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub; -} -function get_store_value(store) { - let value; - subscribe(store, (_) => value = _)(); - return value; -} -function component_subscribe(component, store, callback) { - component.$$.on_destroy.push(subscribe(store, callback)); -} -function create_slot(definition, ctx, $$scope, fn) { - if (definition) { - const slot_ctx = get_slot_context(definition, ctx, $$scope, fn); - return definition[0](slot_ctx); - } -} -function get_slot_context(definition, ctx, $$scope, fn) { - return definition[1] && fn ? assign($$scope.ctx.slice(), definition[1](fn(ctx))) : $$scope.ctx; -} -function get_slot_changes(definition, $$scope, dirty, fn) { - if (definition[2] && fn) { - const lets = definition[2](fn(dirty)); - if ($$scope.dirty === void 0) { - return lets; - } - if (typeof lets === "object") { - const merged = []; - const len = Math.max($$scope.dirty.length, lets.length); - for (let i = 0; i < len; i += 1) { - merged[i] = $$scope.dirty[i] | lets[i]; - } - return merged; - } - return $$scope.dirty | lets; - } - return $$scope.dirty; -} -function update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn) { - if (slot_changes) { - const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn); - slot.p(slot_context, slot_changes); - } -} -function get_all_dirty_from_scope($$scope) { - if ($$scope.ctx.length > 32) { - const dirty = []; - const length = $$scope.ctx.length / 32; - for (let i = 0; i < length; i++) { - dirty[i] = -1; - } - return dirty; - } - return -1; -} -function exclude_internal_props(props) { - const result = {}; - for (const k in props) - if (k[0] !== "$") - result[k] = props[k]; - return result; -} -function compute_rest_props(props, keys) { - const rest = {}; - keys = new Set(keys); - for (const k in props) - if (!keys.has(k) && k[0] !== "$") - rest[k] = props[k]; - return rest; -} -function set_store_value(store, ret, value) { - store.set(value); - return ret; -} -function action_destroyer(action_result) { - return action_result && is_function(action_result.destroy) ? action_result.destroy : noop; -} -var globals = typeof window !== "undefined" ? window : typeof globalThis !== "undefined" ? globalThis : global; -var ResizeObserverSingleton = class _ResizeObserverSingleton { - constructor(options) { - this.options = options; - this._listeners = "WeakMap" in globals ? /* @__PURE__ */ new WeakMap() : void 0; - } - observe(element2, listener) { - this._listeners.set(element2, listener); - this._getObserver().observe(element2, this.options); - return () => { - this._listeners.delete(element2); - this._observer.unobserve(element2); - }; - } - _getObserver() { - var _a; - return (_a = this._observer) !== null && _a !== void 0 ? _a : this._observer = new ResizeObserver((entries) => { - var _a2; - for (const entry of entries) { - _ResizeObserverSingleton.entries.set(entry.target, entry); - (_a2 = this._listeners.get(entry.target)) === null || _a2 === void 0 ? void 0 : _a2(entry); - } - }); - } -}; -ResizeObserverSingleton.entries = "WeakMap" in globals ? /* @__PURE__ */ new WeakMap() : void 0; -var is_hydrating = false; -function start_hydrating() { - is_hydrating = true; -} -function end_hydrating() { - is_hydrating = false; -} -function upper_bound(low, high, key, value) { - while (low < high) { - const mid = low + (high - low >> 1); - if (key(mid) <= value) { - low = mid + 1; - } else { - high = mid; - } - } - return low; -} -function init_hydrate(target) { - if (target.hydrate_init) - return; - target.hydrate_init = true; - let children2 = target.childNodes; - if (target.nodeName === "HEAD") { - const myChildren = []; - for (let i = 0; i < children2.length; i++) { - const node = children2[i]; - if (node.claim_order !== void 0) { - myChildren.push(node); - } - } - children2 = myChildren; - } - const m = new Int32Array(children2.length + 1); - const p = new Int32Array(children2.length); - m[0] = -1; - let longest = 0; - for (let i = 0; i < children2.length; i++) { - const current = children2[i].claim_order; - const seqLen = (longest > 0 && children2[m[longest]].claim_order <= current ? longest + 1 : upper_bound(1, longest, (idx) => children2[m[idx]].claim_order, current)) - 1; - p[i] = m[seqLen] + 1; - const newLen = seqLen + 1; - m[newLen] = i; - longest = Math.max(newLen, longest); - } - const lis = []; - const toMove = []; - let last3 = children2.length - 1; - for (let cur = m[longest] + 1; cur != 0; cur = p[cur - 1]) { - lis.push(children2[cur - 1]); - for (; last3 >= cur; last3--) { - toMove.push(children2[last3]); - } - last3--; - } - for (; last3 >= 0; last3--) { - toMove.push(children2[last3]); - } - lis.reverse(); - toMove.sort((a, b) => a.claim_order - b.claim_order); - for (let i = 0, j = 0; i < toMove.length; i++) { - while (j < lis.length && toMove[i].claim_order >= lis[j].claim_order) { - j++; - } - const anchor = j < lis.length ? lis[j] : null; - target.insertBefore(toMove[i], anchor); - } -} -function append(target, node) { - target.appendChild(node); -} -function append_styles(target, style_sheet_id, styles) { - const append_styles_to = get_root_for_style(target); - if (!append_styles_to.getElementById(style_sheet_id)) { - const style = element("style"); - style.id = style_sheet_id; - style.textContent = styles; - append_stylesheet(append_styles_to, style); - } -} -function get_root_for_style(node) { - if (!node) - return document; - const root = node.getRootNode ? node.getRootNode() : node.ownerDocument; - if (root && root.host) { - return root; - } - return node.ownerDocument; -} -function append_stylesheet(node, style) { - append(node.head || node, style); - return style.sheet; -} -function append_hydration(target, node) { - if (is_hydrating) { - init_hydrate(target); - if (target.actual_end_child === void 0 || target.actual_end_child !== null && target.actual_end_child.parentNode !== target) { - target.actual_end_child = target.firstChild; - } - while (target.actual_end_child !== null && target.actual_end_child.claim_order === void 0) { - target.actual_end_child = target.actual_end_child.nextSibling; - } - if (node !== target.actual_end_child) { - if (node.claim_order !== void 0 || node.parentNode !== target) { - target.insertBefore(node, target.actual_end_child); - } - } else { - target.actual_end_child = node.nextSibling; - } - } else if (node.parentNode !== target || node.nextSibling !== null) { - target.appendChild(node); - } -} -function insert(target, node, anchor) { - target.insertBefore(node, anchor || null); -} -function insert_hydration(target, node, anchor) { - if (is_hydrating && !anchor) { - append_hydration(target, node); - } else if (node.parentNode !== target || node.nextSibling != anchor) { - target.insertBefore(node, anchor || null); - } -} -function detach(node) { - if (node.parentNode) { - node.parentNode.removeChild(node); - } -} -function destroy_each(iterations, detaching) { - for (let i = 0; i < iterations.length; i += 1) { - if (iterations[i]) - iterations[i].d(detaching); - } -} -function element(name) { - return document.createElement(name); -} -function svg_element(name) { - return document.createElementNS("http://www.w3.org/2000/svg", name); -} -function text(data) { - return document.createTextNode(data); -} -function space() { - return text(" "); -} -function empty() { - return text(""); -} -function listen(node, event, handler, options) { - node.addEventListener(event, handler, options); - return () => node.removeEventListener(event, handler, options); -} -function stop_propagation(fn) { - return function(event) { - event.stopPropagation(); - return fn.call(this, event); - }; -} -function attr(node, attribute, value) { - if (value == null) - node.removeAttribute(attribute); - else if (node.getAttribute(attribute) !== value) - node.setAttribute(attribute, value); -} -function set_svg_attributes(node, attributes) { - for (const key in attributes) { - attr(node, key, attributes[key]); - } -} -function children(element2) { - return Array.from(element2.childNodes); -} -function init_claim_info(nodes) { - if (nodes.claim_info === void 0) { - nodes.claim_info = { last_index: 0, total_claimed: 0 }; - } -} -function claim_node(nodes, predicate, processNode, createNode, dontUpdateLastIndex = false) { - init_claim_info(nodes); - const resultNode = (() => { - for (let i = nodes.claim_info.last_index; i < nodes.length; i++) { - const node = nodes[i]; - if (predicate(node)) { - const replacement = processNode(node); - if (replacement === void 0) { - nodes.splice(i, 1); - } else { - nodes[i] = replacement; - } - if (!dontUpdateLastIndex) { - nodes.claim_info.last_index = i; - } - return node; - } - } - for (let i = nodes.claim_info.last_index - 1; i >= 0; i--) { - const node = nodes[i]; - if (predicate(node)) { - const replacement = processNode(node); - if (replacement === void 0) { - nodes.splice(i, 1); - } else { - nodes[i] = replacement; - } - if (!dontUpdateLastIndex) { - nodes.claim_info.last_index = i; - } else if (replacement === void 0) { - nodes.claim_info.last_index--; - } - return node; - } - } - return createNode(); - })(); - resultNode.claim_order = nodes.claim_info.total_claimed; - nodes.claim_info.total_claimed += 1; - return resultNode; -} -function claim_element_base(nodes, name, attributes, create_element) { - return claim_node(nodes, (node) => node.nodeName === name, (node) => { - const remove = []; - for (let j = 0; j < node.attributes.length; j++) { - const attribute = node.attributes[j]; - if (!attributes[attribute.name]) { - remove.push(attribute.name); - } - } - remove.forEach((v) => node.removeAttribute(v)); - return void 0; - }, () => create_element(name)); -} -function claim_svg_element(nodes, name, attributes) { - return claim_element_base(nodes, name, attributes, svg_element); -} -function set_data(text2, data) { - data = "" + data; - if (text2.data === data) - return; - text2.data = data; -} -function set_style(node, key, value, important) { - if (value == null) { - node.style.removeProperty(key); - } else { - node.style.setProperty(key, value, important ? "important" : ""); - } -} -function select_option(select, value, mounting) { - for (let i = 0; i < select.options.length; i += 1) { - const option = select.options[i]; - if (option.__value === value) { - option.selected = true; - return; - } - } - if (!mounting || value !== void 0) { - select.selectedIndex = -1; - } -} -function toggle_class(element2, name, toggle) { - element2.classList[toggle ? "add" : "remove"](name); -} -var current_component; -function set_current_component(component) { - current_component = component; -} -function get_current_component() { - if (!current_component) - throw new Error("Function called outside component initialization"); - return current_component; -} -function onDestroy(fn) { - get_current_component().$$.on_destroy.push(fn); -} -function bubble(component, event) { - const callbacks = component.$$.callbacks[event.type]; - if (callbacks) { - callbacks.slice().forEach((fn) => fn.call(this, event)); - } -} -var dirty_components = []; -var binding_callbacks = []; -var render_callbacks = []; -var flush_callbacks = []; -var resolved_promise = /* @__PURE__ */ Promise.resolve(); -var update_scheduled = false; -function schedule_update() { - if (!update_scheduled) { - update_scheduled = true; - resolved_promise.then(flush); - } -} -function add_render_callback(fn) { - render_callbacks.push(fn); -} -var seen_callbacks = /* @__PURE__ */ new Set(); -var flushidx = 0; -function flush() { - if (flushidx !== 0) { - return; - } - const saved_component = current_component; - do { - try { - while (flushidx < dirty_components.length) { - const component = dirty_components[flushidx]; - flushidx++; - set_current_component(component); - update(component.$$); - } - } catch (e) { - dirty_components.length = 0; - flushidx = 0; - throw e; - } - set_current_component(null); - dirty_components.length = 0; - flushidx = 0; - while (binding_callbacks.length) - binding_callbacks.pop()(); - for (let i = 0; i < render_callbacks.length; i += 1) { - const callback = render_callbacks[i]; - if (!seen_callbacks.has(callback)) { - seen_callbacks.add(callback); - callback(); - } - } - render_callbacks.length = 0; - } while (dirty_components.length); - while (flush_callbacks.length) { - flush_callbacks.pop()(); - } - update_scheduled = false; - seen_callbacks.clear(); - set_current_component(saved_component); -} -function update($$) { - if ($$.fragment !== null) { - $$.update(); - run_all($$.before_update); - const dirty = $$.dirty; - $$.dirty = [-1]; - $$.fragment && $$.fragment.p($$.ctx, dirty); - $$.after_update.forEach(add_render_callback); - } -} -function flush_render_callbacks(fns) { - const filtered = []; - const targets = []; - render_callbacks.forEach((c) => fns.indexOf(c) === -1 ? filtered.push(c) : targets.push(c)); - targets.forEach((c) => c()); - render_callbacks = filtered; -} -var outroing = /* @__PURE__ */ new Set(); -var outros; -function group_outros() { - outros = { - r: 0, - c: [], - p: outros - // parent group - }; -} -function check_outros() { - if (!outros.r) { - run_all(outros.c); - } - outros = outros.p; -} -function transition_in(block, local) { - if (block && block.i) { - outroing.delete(block); - block.i(local); - } -} -function transition_out(block, local, detach2, callback) { - if (block && block.o) { - if (outroing.has(block)) - return; - outroing.add(block); - outros.c.push(() => { - outroing.delete(block); - if (callback) { - if (detach2) - block.d(1); - callback(); - } - }); - block.o(local); - } else if (callback) { - callback(); - } -} -function handle_promise(promise, info) { - const token = info.token = {}; - function update2(type, index, key, value) { - if (info.token !== token) - return; - info.resolved = value; - let child_ctx = info.ctx; - if (key !== void 0) { - child_ctx = child_ctx.slice(); - child_ctx[key] = value; - } - const block = type && (info.current = type)(child_ctx); - let needs_flush = false; - if (info.block) { - if (info.blocks) { - info.blocks.forEach((block2, i) => { - if (i !== index && block2) { - group_outros(); - transition_out(block2, 1, 1, () => { - if (info.blocks[i] === block2) { - info.blocks[i] = null; - } - }); - check_outros(); - } - }); - } else { - info.block.d(1); - } - block.c(); - transition_in(block, 1); - block.m(info.mount(), info.anchor); - needs_flush = true; - } - info.block = block; - if (info.blocks) - info.blocks[index] = block; - if (needs_flush) { - flush(); - } - } - if (is_promise(promise)) { - const current_component2 = get_current_component(); - promise.then((value) => { - set_current_component(current_component2); - update2(info.then, 1, info.value, value); - set_current_component(null); - }, (error) => { - set_current_component(current_component2); - update2(info.catch, 2, info.error, error); - set_current_component(null); - if (!info.hasCatch) { - throw error; - } - }); - if (info.current !== info.pending) { - update2(info.pending, 0); - return true; - } - } else { - if (info.current !== info.then) { - update2(info.then, 1, info.value, promise); - return true; - } - info.resolved = promise; - } -} -function update_await_block_branch(info, ctx, dirty) { - const child_ctx = ctx.slice(); - const { resolved } = info; - if (info.current === info.then) { - child_ctx[info.value] = resolved; - } - if (info.current === info.catch) { - child_ctx[info.error] = resolved; - } - info.block.p(child_ctx, dirty); -} -function outro_and_destroy_block(block, lookup) { - transition_out(block, 1, 1, () => { - lookup.delete(block.key); - }); -} -function update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block7, next, get_context) { - let o = old_blocks.length; - let n = list.length; - let i = o; - const old_indexes = {}; - while (i--) - old_indexes[old_blocks[i].key] = i; - const new_blocks = []; - const new_lookup = /* @__PURE__ */ new Map(); - const deltas = /* @__PURE__ */ new Map(); - const updates = []; - i = n; - while (i--) { - const child_ctx = get_context(ctx, list, i); - const key = get_key(child_ctx); - let block = lookup.get(key); - if (!block) { - block = create_each_block7(key, child_ctx); - block.c(); - } else if (dynamic) { - updates.push(() => block.p(child_ctx, dirty)); - } - new_lookup.set(key, new_blocks[i] = block); - if (key in old_indexes) - deltas.set(key, Math.abs(i - old_indexes[key])); - } - const will_move = /* @__PURE__ */ new Set(); - const did_move = /* @__PURE__ */ new Set(); - function insert2(block) { - transition_in(block, 1); - block.m(node, next); - lookup.set(block.key, block); - next = block.first; - n--; - } - while (o && n) { - const new_block = new_blocks[n - 1]; - const old_block = old_blocks[o - 1]; - const new_key = new_block.key; - const old_key = old_block.key; - if (new_block === old_block) { - next = new_block.first; - o--; - n--; - } else if (!new_lookup.has(old_key)) { - destroy(old_block, lookup); - o--; - } else if (!lookup.has(new_key) || will_move.has(new_key)) { - insert2(new_block); - } else if (did_move.has(old_key)) { - o--; - } else if (deltas.get(new_key) > deltas.get(old_key)) { - did_move.add(new_key); - insert2(new_block); - } else { - will_move.add(old_key); - o--; - } - } - while (o--) { - const old_block = old_blocks[o]; - if (!new_lookup.has(old_block.key)) - destroy(old_block, lookup); - } - while (n) - insert2(new_blocks[n - 1]); - run_all(updates); - return new_blocks; -} -function get_spread_update(levels, updates) { - const update2 = {}; - const to_null_out = {}; - const accounted_for = { $$scope: 1 }; - let i = levels.length; - while (i--) { - const o = levels[i]; - const n = updates[i]; - if (n) { - for (const key in o) { - if (!(key in n)) - to_null_out[key] = 1; - } - for (const key in n) { - if (!accounted_for[key]) { - update2[key] = n[key]; - accounted_for[key] = 1; - } - } - levels[i] = n; - } else { - for (const key in o) { - accounted_for[key] = 1; - } - } - } - for (const key in to_null_out) { - if (!(key in update2)) - update2[key] = void 0; - } - return update2; -} -function get_spread_object(spread_props) { - return typeof spread_props === "object" && spread_props !== null ? spread_props : {}; -} -var _boolean_attributes = [ - "allowfullscreen", - "allowpaymentrequest", - "async", - "autofocus", - "autoplay", - "checked", - "controls", - "default", - "defer", - "disabled", - "formnovalidate", - "hidden", - "inert", - "ismap", - "loop", - "multiple", - "muted", - "nomodule", - "novalidate", - "open", - "playsinline", - "readonly", - "required", - "reversed", - "selected" -]; -var boolean_attributes = /* @__PURE__ */ new Set([..._boolean_attributes]); -function create_component(block) { - block && block.c(); -} -function claim_component(block, parent_nodes) { - block && block.l(parent_nodes); -} -function mount_component(component, target, anchor, customElement) { - const { fragment, after_update } = component.$$; - fragment && fragment.m(target, anchor); - if (!customElement) { - add_render_callback(() => { - const new_on_destroy = component.$$.on_mount.map(run).filter(is_function); - if (component.$$.on_destroy) { - component.$$.on_destroy.push(...new_on_destroy); - } else { - run_all(new_on_destroy); - } - component.$$.on_mount = []; - }); - } - after_update.forEach(add_render_callback); -} -function destroy_component(component, detaching) { - const $$ = component.$$; - if ($$.fragment !== null) { - flush_render_callbacks($$.after_update); - run_all($$.on_destroy); - $$.fragment && $$.fragment.d(detaching); - $$.on_destroy = $$.fragment = null; - $$.ctx = []; - } -} -function make_dirty(component, i) { - if (component.$$.dirty[0] === -1) { - dirty_components.push(component); - schedule_update(); - component.$$.dirty.fill(0); - } - component.$$.dirty[i / 31 | 0] |= 1 << i % 31; -} -function init(component, options, instance20, create_fragment24, not_equal, props, append_styles2, dirty = [-1]) { - const parent_component = current_component; - set_current_component(component); - const $$ = component.$$ = { - fragment: null, - ctx: [], - // state - props, - update: noop, - not_equal, - bound: blank_object(), - // lifecycle - on_mount: [], - on_destroy: [], - on_disconnect: [], - before_update: [], - after_update: [], - context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), - // everything else - callbacks: blank_object(), - dirty, - skip_bound: false, - root: options.target || parent_component.$$.root - }; - append_styles2 && append_styles2($$.root); - let ready = false; - $$.ctx = instance20 ? instance20(component, options.props || {}, (i, ret, ...rest) => { - const value = rest.length ? rest[0] : ret; - if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) { - if (!$$.skip_bound && $$.bound[i]) - $$.bound[i](value); - if (ready) - make_dirty(component, i); - } - return ret; - }) : []; - $$.update(); - ready = true; - run_all($$.before_update); - $$.fragment = create_fragment24 ? create_fragment24($$.ctx) : false; - if (options.target) { - if (options.hydrate) { - start_hydrating(); - const nodes = children(options.target); - $$.fragment && $$.fragment.l(nodes); - nodes.forEach(detach); - } else { - $$.fragment && $$.fragment.c(); - } - if (options.intro) - transition_in(component.$$.fragment); - mount_component(component, options.target, options.anchor, options.customElement); - end_hydrating(); - flush(); - } - set_current_component(parent_component); -} -var SvelteElement; -if (typeof HTMLElement === "function") { - SvelteElement = class extends HTMLElement { - constructor() { - super(); - this.attachShadow({ mode: "open" }); - } - connectedCallback() { - const { on_mount } = this.$$; - this.$$.on_disconnect = on_mount.map(run).filter(is_function); - for (const key in this.$$.slotted) { - this.appendChild(this.$$.slotted[key]); - } - } - attributeChangedCallback(attr2, _oldValue, newValue) { - this[attr2] = newValue; - } - disconnectedCallback() { - run_all(this.$$.on_disconnect); - } - $destroy() { - destroy_component(this, 1); - this.$destroy = noop; - } - $on(type, callback) { - if (!is_function(callback)) { - return noop; - } - const callbacks = this.$$.callbacks[type] || (this.$$.callbacks[type] = []); - callbacks.push(callback); - return () => { - const index = callbacks.indexOf(callback); - if (index !== -1) - callbacks.splice(index, 1); - }; - } - $set($$props) { - if (this.$$set && !is_empty($$props)) { - this.$$.skip_bound = true; - this.$$set($$props); - this.$$.skip_bound = false; - } - } - }; -} -var SvelteComponent = class { - $destroy() { - destroy_component(this, 1); - this.$destroy = noop; - } - $on(type, callback) { - if (!is_function(callback)) { - return noop; - } - const callbacks = this.$$.callbacks[type] || (this.$$.callbacks[type] = []); - callbacks.push(callback); - return () => { - const index = callbacks.indexOf(callback); - if (index !== -1) - callbacks.splice(index, 1); - }; - } - $set($$props) { - if (this.$$set && !is_empty($$props)) { - this.$$.skip_bound = true; - this.$$set($$props); - this.$$.skip_bound = false; - } - } -}; - -// node_modules/svelte/store/index.mjs -var subscriber_queue = []; -function readable(value, start) { - return { - subscribe: writable(value, start).subscribe - }; -} -function writable(value, start = noop) { - let stop; - const subscribers = /* @__PURE__ */ new Set(); - function set(new_value) { - if (safe_not_equal(value, new_value)) { - value = new_value; - if (stop) { - const run_queue = !subscriber_queue.length; - for (const subscriber of subscribers) { - subscriber[1](); - subscriber_queue.push(subscriber, value); - } - if (run_queue) { - for (let i = 0; i < subscriber_queue.length; i += 2) { - subscriber_queue[i][0](subscriber_queue[i + 1]); - } - subscriber_queue.length = 0; - } - } - } - } - function update2(fn) { - set(fn(value)); - } - function subscribe2(run2, invalidate = noop) { - const subscriber = [run2, invalidate]; - subscribers.add(subscriber); - if (subscribers.size === 1) { - stop = start(set) || noop; - } - run2(value); - return () => { - subscribers.delete(subscriber); - if (subscribers.size === 0 && stop) { - stop(); - stop = null; - } - }; - } - return { set, update: update2, subscribe: subscribe2 }; -} -function derived(stores, fn, initial_value) { - const single = !Array.isArray(stores); - const stores_array = single ? [stores] : stores; - const auto = fn.length < 2; - return readable(initial_value, (set) => { - let started = false; - const values = []; - let pending = 0; - let cleanup = noop; - const sync = () => { - if (pending) { - return; - } - cleanup(); - const result = fn(single ? values[0] : values, set); - if (auto) { - set(result); - } else { - cleanup = is_function(result) ? result : noop; - } - }; - const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => { - values[i] = value; - pending &= ~(1 << i); - if (started) { - sync(); - } - }, () => { - pending |= 1 << i; - })); - started = true; - sync(); - return function stop() { - run_all(unsubscribers); - cleanup(); - started = false; - }; - }); -} - -// src/constants.ts -var viewTypeTimeline = "timeline"; -var viewTypeWeekly = "weekly"; -var defaultDurationMinutes = 30; -var snapStepMinutes = 10; -var icons = [ - "any-key", - "audio-file", - "blocks", - "broken-link", - "bullet-list", - "calendar-with-checkmark", - "checkmark", - "create-new", - "cross", - "cross-in-box", - "crossed-star", - "dice", - "document", - "documents", - "dot-network", - "enter", - "expand-vertically", - "filled-pin", - "folder", - "gear", - "go-to-file", - "hashtag", - "help", - "horizontal-split", - "image-file", - "info", - "install", - "languages", - "left-arrow", - "left-arrow-with-tail", - "lines-of-text", - "link", - "logo-crystal", - "magnifying-glass", - "microphone", - "microphone-filled", - "open-vault", - "pane-layout", - "paper-plane", - "pdf-file", - "pencil", - "pin", - "popup-open", - "presentation", - "reset", - "right-arrow", - "right-arrow-with-tail", - "right-triangle", - "search", - "sheets-in-box", - "star", - "star-list", - "switch", - "three-horizontal-bars", - "trash", - "two-columns", - "up-and-down-arrows", - "uppercase-lowercase-a", - "vault", - "vertical-split", - "vertical-three-dots" -]; - -// src/global-store/app-store.ts -var appStore = writable(); - -// src/global-store/settings.ts -var settings = writable({ - zoomLevel: 1, - startHour: 0, - centerNeedle: true, - showHelp: true, - timelineDateFormat: "LLLL", - plannerHeading: "Day planner", - plannerHeadingLevel: 1, - timelineColored: false, - timelineStartColor: "#006466", - timelineEndColor: "#4d194d" -}); - -// src/global-store/visible-date-range.ts -var visibleDateRange = writable(); - -// src/global-store/visible-day-in-timeline.ts -var visibleDayInTimeline = writable(window.moment()); - -// src/service/obsidian-facade.ts -var import_obsidian = require("obsidian"); -var import_obsidian_daily_notes_interface = __toESM(require_main()); -var import_typed_assert = __toESM(require_build()); - -// node_modules/ts-dedent/esm/index.js -function dedent(templ) { - var values = []; - for (var _i = 1; _i < arguments.length; _i++) { - values[_i - 1] = arguments[_i]; - } - var strings = Array.from(typeof templ === "string" ? [templ] : templ); - strings[strings.length - 1] = strings[strings.length - 1].replace(/\r?\n([\t ]*)$/, ""); - var indentLengths = strings.reduce(function(arr, str) { - var matches = str.match(/\n([\t ]+|(?!\s).)/g); - if (matches) { - return arr.concat(matches.map(function(match) { - var _a, _b; - return (_b = (_a = match.match(/[\t ]/g)) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0; - })); - } - return arr; - }, []); - if (indentLengths.length) { - var pattern_1 = new RegExp("\n[ ]{" + Math.min.apply(Math, indentLengths) + "}", "g"); - strings = strings.map(function(str) { - return str.replace(pattern_1, "\n"); - }); - } - strings[0] = strings[0].replace(/^\r?\n/, ""); - var string = strings[0]; - values.forEach(function(value, i) { - var endentations = string.match(/(?:^|\n)( *)$/); - var endentation = endentations ? endentations[1] : ""; - var indentedValue = value; - if (typeof value === "string" && value.includes("\n")) { - indentedValue = String(value).split("\n").map(function(str, i2) { - return i2 === 0 ? str : "" + endentation + str; - }).join("\n"); - } - string += indentedValue + strings[i + 1]; - }); - return string; -} - -// obsidian-metadata-utils/src/position.ts -var getTextAtPosition = (textInput, pos) => textInput.substring(pos.start.offset, pos.end.offset); - -// obsidian-metadata-utils/src/list.ts -function isTopLevelListItem(listItem) { - return listItem.parent < 0; -} - -// src/regexp.ts -var ulToken = `[-*+]`; -var olToken = `\\d+\\.`; -var listToken = `(${ulToken}|${olToken})\\s+`; -var checkbox = `\\[(?[^\\]])]\\s+`; -var checkboxOrNothing = `(${checkbox})?`; -var durationSeparator = `\\s*-{1,2}\\s*`; -var hours = `\\d{1,2}`; -var minutes = `\\d{2}`; -var hourMinuteSeparator = `[:. ]`; -var time = `(${hours})(?:${hourMinuteSeparator}?(${minutes}))?\\s*([apAP][mM])?`; -var timeRegExp = new RegExp(time); -var timestampRegExp = new RegExp( - `^(?${listToken}${checkboxOrNothing})(?(?${time})(?:${durationSeparator}(?${time}))?)(?.+)$`, - "im" -); - -// src/util/id.ts -function getId() { - return String(Math.random()); -} - -// src/util/moment.ts -var import_fp = __toESM(require_fp()); -var moment = window.moment; -function getMinutesSinceMidnight(moment2) { - return moment2.diff(moment2.clone().startOf("day"), "minutes"); -} -function getMinutesSinceMidnightOfDayTo(day, moment2) { - return getDiffInMinutes(moment2, day.clone().startOf("day")); -} -function getDiffInMinutes(a, b) { - return Math.abs(a.diff(b, "minutes")); -} -function getDaysOfCurrentWeek() { - return getDaysOfWeek(window.moment()); -} -function getDaysOfWeek(moment2) { - const firstDay = moment2.clone().startOf("isoWeek"); - return (0, import_fp.range)(1, 7).reduce( - (result, dayIndex) => { - const nextDay = firstDay.clone().add(dayIndex, "day"); - return [...result, nextDay]; - }, - [firstDay] - ); -} -function minutesToMomentOfDay(minutesSinceMidnight, moment2) { - return moment2.clone().startOf("day").add(minutesSinceMidnight, "minutes"); -} -function minutesToMoment(minutesSinceMidnight) { - return moment().startOf("day").add(minutesSinceMidnight, "minutes"); -} -function addMinutes(moment2, minutes2) { - return moment2.clone().add(minutes2, "minutes"); -} -function getRelationToNow(now, start, end) { - if (end.isBefore(now)) { - return "past"; - } - if (start.isAfter(now)) { - return "future"; - } - return "present"; -} -function isToday(moment2) { - return moment2.isSame(window.moment(), "day"); -} - -// src/parser/calculate-default-duration.ts -function calculateDefaultDuration(item, next) { - if (item.endTime) { - return getDiffInMinutes(item.startTime, item.endTime); - } - if (next) { - const minutesUntilNext = getDiffInMinutes(next.startTime, item.startTime); - if (minutesUntilNext < defaultDurationMinutes) { - return minutesUntilNext; - } - } - return defaultDurationMinutes; -} - -// src/parser/timestamp/timestamp.ts -function parseTimestamp(asText, day) { - if (!asText) { - return null; - } - const result = timeRegExp.exec(asText); - if (result === null) { - throw new Error(`${asText} is not a valid timestamp`); - } - const [, hours2, minutes2, ampm] = result; - let parsedHours = parseInt(hours2); - if (isNaN(parsedHours)) { - throw new Error(`${asText} is not a valid timestamp`); - } - const parsedMinutes = parseInt(minutes2) || 0; - if ((ampm == null ? void 0 : ampm.toLowerCase()) === "pm" && parsedHours < 12) { - parsedHours += 12; - } - const timeOfDay = window.moment.duration({ - hours: parsedHours, - minutes: parsedMinutes - }); - return day.clone().startOf("day").add(timeOfDay); -} -function taskLineToString(planItem, { startMinutes, durationMinutes }) { - return `${planItem.listTokens}${createTimestamp( - startMinutes, - durationMinutes - )} ${planItem.firstLineText}`; -} -function createTimestamp(startMinutes, durationMinutes) { - const start = minutesToMoment(startMinutes); - const end = addMinutes(start, durationMinutes); - return `${formatTimestamp(start)} - ${formatTimestamp(end)}`; -} -function formatTimestamp(moment2) { - return moment2.format("HH:mm"); -} - -// src/parser/parser.ts -function parsePlanItems(content, metadata, planHeadingContent, path, day) { - const listItemsUnderPlan = getListItemsUnderHeading( - metadata, - planHeadingContent - ); - if (!listItemsUnderPlan) { - return []; - } - const listItemsWithContent = getListItemContent(content, listItemsUnderPlan); - return listItemsWithContent.map( - (li) => createPlanItem({ - line: li.listItemLineContent, - completeContent: li.listItemCompleteContent, - location: { path, line: li.line }, - day - }) - ).filter((item) => item !== null).map((item, index, items) => { - const next = items[index + 1]; - const durationMinutes = calculateDefaultDuration(item, next); - const endTime = item.endTime || item.startTime.clone().add(durationMinutes, "minutes"); - return { - ...item, - endTime, - startMinutes: getMinutesSinceMidnightOfDayTo(day, item.startTime), - endMinutes: getMinutesSinceMidnightOfDayTo(day, endTime), - durationMinutes - }; - }).sort((a, b) => a.startMinutes - b.startMinutes); -} -function getListItemsUnderHeading(metadata, heading) { - var _a; - const { headings } = metadata; - if (!headings) { - return []; - } - const planHeadingIndex = headings.findIndex((h) => h.heading === heading); - if (planHeadingIndex < 0) { - return []; - } - const planHeading = headings[planHeadingIndex]; - const nextHeadingOfSameLevel = headings.slice(planHeadingIndex + 1).find((heading2) => heading2.level <= planHeading.level); - return (_a = metadata.listItems) == null ? void 0 : _a.filter((li) => { - const isBelowPlan = li.position.start.line > planHeading.position.start.line; - const isAboveNextHeadingIfItExists = !nextHeadingOfSameLevel || li.position.start.line < nextHeadingOfSameLevel.position.start.line; - return isBelowPlan && isAboveNextHeadingIfItExists; - }); -} -function getHeadingByText(metadata, text2) { - const { headings = [] } = metadata; - return headings == null ? void 0 : headings.find((h) => h.heading === text2); -} -function createPlanItem({ - line, - completeContent, - location, - day -}) { - const match = timestampRegExp.exec(line.trim()); - if (!match) { - return null; - } - const { - groups: { listTokens, start, end, text: text2 } - } = match; - const startTime = parseTimestamp(start, day); - return { - listTokens, - startTime, - endTime: parseTimestamp(end, day), - rawStartTime: start, - rawEndTime: end, - text: getDisplayedText(match, completeContent), - firstLineText: text2, - location, - id: getId() - }; -} -function getDisplayedText({ groups: { text: text2, listTokens, completion } }, completeContent) { - const isTask = (completion == null ? void 0 : completion.length) > 0; - const indexOfFirstNewline = completeContent.indexOf("\n"); - const indexAfterFirstNewline = indexOfFirstNewline + 1; - const linesAfterFirst = completeContent.substring(indexAfterFirstNewline); - if (indexOfFirstNewline < 0) { - if (isTask) { - return `${listTokens}${text2}`; - } - return text2; - } - if (isTask) { - return `${listTokens}${text2} -${linesAfterFirst}`; - } - const formattedLinesAfterFirst = dedent(linesAfterFirst).trimStart(); - return `${text2} -${formattedLinesAfterFirst}`; -} -function groupTopListItemsWithDescendants(listItems) { - return listItems.reduce((result, current) => { - if (isTopLevelListItem(current)) { - result.push({ root: current, descendants: [] }); - } else { - const previousTopListItem = result[result.length - 1]; - previousTopListItem.descendants.push(current); - } - return result; - }, []); -} -function getListItemContent(content, listItems) { - return groupTopListItemsWithDescendants(listItems).map( - ({ root, descendants }) => { - var _a, _b; - const lastDescendantPosition = (_b = (_a = descendants == null ? void 0 : descendants[descendants.length - 1]) == null ? void 0 : _a.position) == null ? void 0 : _b.end; - const betweenRootAndLastDescendant = { - start: root.position.start, - end: lastDescendantPosition || root.position.end - }; - return { - line: root.position.start.line, - listItemLineContent: getTextAtPosition(content, root.position), - listItemCompleteContent: getTextAtPosition( - content, - betweenRootAndLastDescendant - ) - }; - } - ); -} - -// src/service/obsidian-facade.ts -var ObsidianFacade = class { - constructor(workspace, vault, metadataCache, settings2) { - this.workspace = workspace; - this.vault = vault; - this.metadataCache = metadataCache; - this.settings = settings2; - } - async openFileInEditor(file) { - var _a; - const leaf = this.workspace.getLeaf(false); - await leaf.openFile(file); - return (_a = this.workspace.activeEditor) == null ? void 0 : _a.editor; - } - // todo: this class should not know about daily notes - async openFileForDay(moment2) { - const dailyNote = (0, import_obsidian_daily_notes_interface.getDailyNote)(moment2, (0, import_obsidian_daily_notes_interface.getAllDailyNotes)()) || await (0, import_obsidian_daily_notes_interface.createDailyNote)(moment2); - return this.openFileInEditor(dailyNote); - } - getFileByPath(path) { - const file = this.vault.getAbstractFileByPath(path); - (0, import_typed_assert.isInstanceOf)(file, import_obsidian.TFile, `Unable to open file: ${path}`); - return file; - } - getMetadataForPath(path) { - const file = this.getFileByPath(path); - return this.metadataCache.getFileCache(file); - } - async revealLineInFile(path, line) { - var _a; - const file = this.getFileByPath(path); - const editor = await this.openFileInEditor(file); - (_a = this.workspace.getActiveViewOfType(import_obsidian.MarkdownView)) == null ? void 0 : _a.setEphemeralState({ line }); - editor.setCursor({ line, ch: 0 }); - } - async editFile(path, editFn) { - const file = this.vault.getAbstractFileByPath(path); - (0, import_typed_assert.isInstanceOf)(file, import_obsidian.TFile, `${path} is not a markdown file`); - const contents = await this.vault.read(file); - const newContents = editFn(contents); - await this.vault.modify(file, newContents); - } - // todo: move to plan-editor. it should be a wrapper for plans - async getPlanItemsFromFile(file) { - if (!file) { - return []; - } - const { plannerHeading } = this.settings; - const fileContents = await this.vault.read(file); - const metadata = this.metadataCache.getFileCache(file); - const fileDay = (0, import_obsidian_daily_notes_interface.getDateFromFile)(file, "day"); - (0, import_typed_assert.isNotVoid)( - fileDay, - `Tried to parse plan in file that is not a daily note: ${file.path}` - ); - return parsePlanItems( - fileContents, - metadata, - plannerHeading, - file.path, - fileDay - ); - } -}; - -// src/service/plan-editor.ts -var import_fp2 = __toESM(require_fp()); - -// src/util/task-utils.ts -function isEqualTask(a, b) { - return a.id === b.id && a.startMinutes === b.startMinutes && a.endMinutes === b.endMinutes && // todo: remove after endMinutes is replaced with a getter - a.durationMinutes === b.durationMinutes; -} - -// src/service/plan-editor.ts -var PlanEditor = class { - constructor(settings2, obsidianFacade) { - this.settings = settings2; - this.obsidianFacade = obsidianFacade; - this.syncTasksWithFile = async (baseline, updated) => { - const pristine = updated.filter( - (task) => baseline.find((baselineTask) => isEqualTask(task, baselineTask)) - ); - const dirty = (0, import_fp2.difference)(updated, pristine); - const [edited, created] = (0, import_fp2.partition)((task) => task.location.line, dirty); - const path = updated[0].location.path; - await this.obsidianFacade.editFile(path, (contents) => { - const withUpdatedEdited = edited.reduce( - (result2, current) => this.updateTaskInFileContents(result2, current), - contents - ); - const createdList = created.map( - (task) => taskLineToString(task, { ...task }) - ); - const metadata = this.obsidianFacade.getMetadataForPath(path) || {}; - const [planEndLine, splitContents] = this.getPlanEndLine( - withUpdatedEdited.split("\n"), - metadata - ); - const result = [...splitContents]; - result.splice(planEndLine + 1, 0, ...createdList); - return result.join("\n"); - }); - }; - } - createPlannerHeading() { - const { plannerHeading, plannerHeadingLevel } = this.settings; - const headingTokens = "#".repeat(plannerHeadingLevel); - return `${headingTokens} ${plannerHeading}`; - } - // todo: we might want to update not only duration. Better: syncTaskWithNote - updateTaskInFileContents(contents, task) { - return contents.split("\n").map((line, index) => { - var _a; - if (index === ((_a = task.location) == null ? void 0 : _a.line)) { - return taskLineToString(task, { - startMinutes: task.startMinutes, - durationMinutes: task.durationMinutes - }); - } - return line; - }).join("\n"); - } - getPlanEndLine(contents, metadata) { - const planHeading = getHeadingByText( - metadata, - this.settings.plannerHeading - ); - const planListItems = getListItemsUnderHeading( - metadata, - this.settings.plannerHeading - ); - if ((planListItems == null ? void 0 : planListItems.length) > 0) { - const lastListItem = planListItems[planListItems.length - 1]; - return [lastListItem.position.start.line, contents]; - } - if (planHeading) { - return [planHeading.position.start.line, contents]; - } - const withNewPlan = [...contents, "", this.createPlannerHeading(), ""]; - return [withNewPlan.length, withNewPlan]; - } -}; - -// src/settings.ts -var DayPlannerSettings = class { - constructor() { - this.circularProgress = false; - this.nowAndNextInStatusBar = false; - this.showTaskNotification = false; - this.zoomLevel = 2; - this.timelineIcon = "calendar-with-checkmark"; - this.endLabel = "All done"; - this.startHour = 6; - this.timelineDateFormat = "LLLL"; - this.centerNeedle = false; - this.showHelp = true; - this.plannerHeading = "Day planner"; - this.plannerHeadingLevel = 1; - this.timelineColored = false; - this.timelineStartColor = "#006466"; - this.timelineEndColor = "#4d194d"; - } -}; - -// src/ui/settings-tab.ts -var import_obsidian2 = require("obsidian"); -var DayPlannerSettingsTab = class extends import_obsidian2.PluginSettingTab { - constructor(app, plugin) { - super(app, plugin); - this.plugin = plugin; - } - display() { - const { containerEl } = this; - containerEl.empty(); - new import_obsidian2.Setting(containerEl).setName("Status Bar - Circular Progress").setDesc("Display a circular progress bar in the status bar").addToggle( - (toggle) => toggle.setValue(this.plugin.settings.circularProgress).onChange((value) => { - this.plugin.settings.circularProgress = value; - this.plugin.saveData(this.plugin.settings); - }) - ); - new import_obsidian2.Setting(containerEl).setName("Status Bar - Now and Next").setDesc("Display now and next tasks in the status bar").addToggle( - (toggle) => toggle.setValue(this.plugin.settings.nowAndNextInStatusBar).onChange((value) => { - this.plugin.settings.nowAndNextInStatusBar = value; - this.plugin.saveData(this.plugin.settings); - }) - ); - new import_obsidian2.Setting(containerEl).setName("Task Notification").setDesc("Display a notification when a new task is started").addToggle( - (toggle) => toggle.setValue(this.plugin.settings.showTaskNotification).onChange((value) => { - this.plugin.settings.showTaskNotification = value; - this.plugin.saveData(this.plugin.settings); - }) - ); - new import_obsidian2.Setting(containerEl).setName("Timeline Zoom Level").setDesc( - "The zoom level to display the timeline. The higher the number, the more vertical space each task will take up." - ).addSlider( - (slider) => { - var _a; - return slider.setLimits(1, 5, 1).setValue((_a = Number(this.plugin.settings.zoomLevel)) != null ? _a : 4).setDynamicTooltip().onChange(async (value) => { - settings.update((settings2) => ({ ...settings2, zoomLevel: value })); - this.plugin.settings.zoomLevel = value; - await this.plugin.saveData(this.plugin.settings); - }); - } - ); - new import_obsidian2.Setting(containerEl).setName("Timeline Icon").setDesc( - "The icon of the timeline pane. Reopen timeline pane or restart obsidian to see the change." - ).addDropdown((dropdown) => { - var _a; - icons.forEach((icon) => dropdown.addOption(icon, icon)); - return dropdown.setValue( - (_a = this.plugin.settings.timelineIcon) != null ? _a : "calendar-with-checkmark" - ).onChange((value) => { - this.plugin.settings.timelineIcon = value; - this.plugin.saveData(this.plugin.settings); - }); - }); - new import_obsidian2.Setting(containerEl).setName("Start Hour").setDesc("The planner is going to start at this hour each day").addDropdown( - (component) => component.addOptions({ - "0": "0", - "1": "1", - "2": "2", - "3": "3", - "4": "4", - "5": "5", - "6": "6", - "7": "7", - "8": "8", - "9": "9", - "10": "10", - "11": "11", - "12": "12" - }).setValue(String(this.plugin.settings.startHour)).onChange(async (value) => { - const asNumber = Number(value); - settings.update((previous) => ({ - ...previous, - startHour: asNumber - })); - this.plugin.settings.startHour = asNumber; - await this.plugin.saveData(this.plugin.settings); - }) - ); - new import_obsidian2.Setting(containerEl).setName("Date Format in Timeline Header").then((component) => { - component.setDesc( - createFragment((fragment) => { - fragment.appendText("Your current syntax looks like this: "); - component.addMomentFormat( - (momentFormat) => momentFormat.setValue(this.plugin.settings.timelineDateFormat).setSampleEl(fragment.createSpan()).onChange(async (value) => { - settings.update((previous) => ({ - ...previous, - timelineDateFormat: value - })); - this.plugin.settings.timelineDateFormat = value; - await this.plugin.saveData(this.plugin.settings); - }) - ); - fragment.append( - createEl("br"), - createEl( - "a", - { - text: "format reference", - href: "https://momentjs.com/docs/#/displaying/format/" - }, - (a) => { - a.setAttr("target", "_blank"); - } - ) - ); - }) - ); - }); - new import_obsidian2.Setting(containerEl).setName("Center the Pointer in the Timeline View").setDesc( - "Should the pointer continuously get scrolled to the center of the view" - ).addToggle((component) => { - component.setValue(this.plugin.settings.centerNeedle).onChange(async (value) => { - settings.update((previous) => ({ - ...previous, - centerNeedle: value - })); - this.plugin.settings.centerNeedle = value; - await this.plugin.saveData(this.plugin.settings); - }); - }); - new import_obsidian2.Setting(containerEl).setName("Planner Heading").setDesc( - `When you create a planner, this text is going to be in the heading. -When you open a file, the plugin will search for this heading to detect a day plan` - ).addText( - (component) => component.setValue(this.plugin.settings.plannerHeading).onChange(async (value) => { - settings.update((previous) => ({ - ...previous, - plannerHeading: value - })); - this.plugin.settings.plannerHeading = value; - await this.plugin.saveData(this.plugin.settings); - }) - ); - new import_obsidian2.Setting(containerEl).setName("Planner heading level").setDesc( - "When you create a planner in a file, this level of heading is going to be used" - ).addSlider( - (component) => component.setLimits(1, 6, 1).setDynamicTooltip().setValue(this.plugin.settings.plannerHeadingLevel).onChange(async (value) => { - settings.update((previous) => ({ - ...previous, - plannerHeadingLevel: value - })); - this.plugin.settings.plannerHeadingLevel = value; - await this.plugin.saveData(this.plugin.settings); - }) - ); - new import_obsidian2.Setting(containerEl).setName("Colorful Timeline").setDesc( - "If the planner timeline should be monochrome or color tasks based on time of day" - ).addToggle((component) => { - component.setValue(this.plugin.settings.timelineColored).onChange(async (value) => { - settings.update((previous) => ({ - ...previous, - timelineColored: value - })); - this.plugin.settings.timelineColored = value; - await this.plugin.saveData(this.plugin.settings); - }); - }); - new import_obsidian2.Setting(containerEl).setName("Colorful Timeline - Start Color").addColorPicker((component) => { - component.setValue(this.plugin.settings.timelineStartColor).onChange(async (value) => { - settings.update((previous) => ({ - ...previous, - timelineStartColor: value - })); - this.plugin.settings.timelineStartColor = value; - await this.plugin.saveData(this.plugin.settings); - }); - }); - new import_obsidian2.Setting(containerEl).setName("Colorful Timeline - End Color").addColorPicker((component) => { - component.setValue(this.plugin.settings.timelineEndColor).onChange(async (value) => { - settings.update((previous) => ({ - ...previous, - timelineEndColor: value - })); - this.plugin.settings.timelineEndColor = value; - await this.plugin.saveData(this.plugin.settings); - }); - }); - } - modeDescriptionContent() { - const descEl = document.createDocumentFragment(); - descEl.appendText("Choose between 3 modes to use the Day Planner plugin:"); - descEl.appendChild(document.createElement("br")); - descEl.appendChild(document.createElement("strong")).appendText("File mode"); - descEl.appendChild(document.createElement("br")); - descEl.appendText( - "Plugin automatically generates day planner notes for each day within a Day Planners folder." - ); - descEl.appendChild(document.createElement("br")); - descEl.appendChild(document.createElement("strong")).appendText("Command mode"); - descEl.appendChild(document.createElement("br")); - descEl.appendText( - "Command used to insert a Day Planner for today within the current note." - ); - descEl.appendChild(document.createElement("br")); - descEl.appendChild(document.createElement("strong")).appendText("Daily mode"); - descEl.appendChild(document.createElement("br")); - descEl.appendText( - "Plugin automatically links to the current daily note. Daily notes plugin must be enabled." - ); - descEl.appendChild(document.createElement("br")); - this.addDocsLink(descEl); - return descEl; - } - addDocsLink(descEl) { - const a = document.createElement("a"); - a.href = "https://github.com/lynchjames/obsidian-day-planner/blob/main/README.md"; - a.text = "plugin README"; - a.target = "_blank"; - descEl.appendChild(a); - descEl.appendChild(document.createElement("br")); - } -}; - -// src/ui/status-bar.ts -var StatusBar = class { - constructor(settings2, containerEl, workspace) { - this.settings = settings2; - this.containerEl = containerEl; - this.workspace = workspace; - this.containerEl.addClass("day-planner"); - this.setupCard(); - this.statusBarText = this.containerEl.createEl("span", { - cls: ["status-bar-item-segment", "day-planner-status-bar-text"] - }); - this.setupCircularProgressBar(); - this.setupHorizontalProgressBar(); - this.nextText = this.containerEl.createEl("span", { - cls: ["status-bar-item-segment", "day-planner-status-bar-text"] - }); - this.setupStatusBarEvents(); - } - async update(planItems) { - this.containerEl.show(); - if (planItems.length > 0) { - this.updateProgress(planItems); - } else { - this.setEmpty(); - } - } - setEmpty() { - this.setText("No plan for today"); - } - setText(text2) { - this.statusBarText.textContent = text2; - } - setupStatusBarEvents() { - this.containerEl.onClickEvent(async () => { - }); - this.containerEl.on("mouseenter", ".day-planner", () => { - this.card.show(); - }); - this.containerEl.on("mouseleave", ".day-planner", () => { - this.card.hide(); - }); - } - hideProgress() { - this.statusBarProgress.hide(); - this.circle.hide(); - this.nextText.hide(); - } - updateProgress(planItems) { - const now = window.moment(); - const currentItemIndex = planItems.findIndex( - (item) => item.startTime.isBefore(now) && item.endTime.isAfter(now) - ); - if (currentItemIndex < 0) { - this.hideProgress(); - this.statusBarText.innerText = this.settings.endLabel; - return; - } - const currentItem = planItems[currentItemIndex]; - const nextItem = planItems[currentItemIndex + 1]; - const minutesFromStart = getDiffInMinutes(currentItem.startTime, now); - const percentageComplete = minutesFromStart / (currentItem.durationMinutes / 100); - this.updateStatusBarText(currentItem, nextItem); - if (nextItem) { - this.setStatusText( - getDiffInMinutes(now, nextItem.startTime), - currentItem, - nextItem, - percentageComplete - ); - } - if (this.settings.circularProgress) { - this.statusBarProgress.hide(); - this.progressCircle(percentageComplete); - } else { - this.circle.hide(); - this.progressBar(percentageComplete); - } - } - progressBar(percentageComplete) { - this.statusBarCurrentProgress.style.width = `${percentageComplete}%`; - this.statusBarProgress.show(); - } - progressCircle(percentageComplete) { - this.circle.setAttr("data-value", percentageComplete.toFixed(0)); - this.circle.show(); - } - setStatusText(minsUntilNext, current, next, percentageComplete) { - const minsUntilNextText = minsUntilNext === 0 ? "1" : minsUntilNext; - const minsText = `${minsUntilNextText} min${minsUntilNextText === "1" ? "" : "s"}`; - const percent = percentageComplete.toFixed(0); - const currentTaskStatus = `Current Task (${percent}% complete)`; - const currentTaskTimeAndText = `${current.rawStartTime} ${current.text}`; - const nextTask = `Next Task (in ${minsText})`; - const nextTaskTimeAndText = `${next.rawStartTime} ${next.text}`; - this.cardCurrent.textContent = `${currentTaskStatus}: ${currentTaskTimeAndText}`; - this.cardNext.textContent = `${nextTask}: ${nextTaskTimeAndText}`; - this.taskNotification( - current, - currentTaskTimeAndText, - nextTask, - nextTaskTimeAndText - ); - } - updateStatusBarText(currentItem, nextItem) { - if (this.settings.nowAndNextInStatusBar) { - this.statusBarText.textContent = `Now: ${currentItem.rawStartTime} ${this.ellipsis(currentItem.text, 15)}`; - if (nextItem) { - this.nextText.textContent = `Next: ${nextItem.rawStartTime} ${this.ellipsis(nextItem.text, 15)}`; - this.nextText.show(); - } - this.nextText.hide(); - } else { - this.nextText.hide(); - const minutesLeft = getDiffInMinutes( - currentItem.endTime, - window.moment() - ); - this.statusBarText.textContent = `Minutes left: ${minutesLeft}`; - } - } - taskNotification(current, currentTaskTimeAndText, nextTask, nextTaskText) { - if (this.settings.showTaskNotification && this.currentTime !== void 0 && this.currentTime !== current.startTime.toString()) { - new Notification(`Task started, ${currentTaskTimeAndText}`, { - body: `${nextTask}: ${nextTaskText}`, - requireInteraction: true - }); - } - this.currentTime = current.startTime.toString(); - } - // todo: this doesn't belong to the class - ellipsis(input, limit) { - if (input.length <= limit) { - return input; - } - return input.substring(0, limit) + "..."; - } - setupHorizontalProgressBar() { - this.statusBarProgress = this.containerEl.createEl("div", { - cls: ["status-bar-item-segment", "day-planner-progress-bar"] - }); - this.statusBarProgress.hide(); - this.statusBarCurrentProgress = this.statusBarProgress.createEl("div", { - cls: "day-planner-progress-value" - }); - } - setupCircularProgressBar() { - this.circle = this.containerEl.createEl("div", { - cls: ["status-bar-item-segment", "progress-pie day-planner"] - }); - } - setupCard() { - this.card = this.containerEl.createEl("div", { - cls: "day-planner-status-card" - }); - this.cardCurrent = this.card.createEl("span"); - this.card.createEl("br"); - this.card.createEl("br"); - this.cardNext = this.card.createEl("span"); - this.card.createEl("div", { cls: "arrow-down" }); - } -}; - -// src/ui/timeline-view.ts -var import_obsidian4 = require("obsidian"); - -// src/ui/components/timeline.svelte -var import_obsidian_daily_notes_interface4 = __toESM(require_main()); - -// src/global-store/settings-utils.ts -var hourSize = derived( - settings, - ($settings) => $settings.zoomLevel * 60 -); -var visibleHours = derived( - settings, - ($settings) => [...Array(24).keys()].slice($settings.startHour) -); -var hiddenHoursSize = derived( - [settings, hourSize], - ([$settings, $hourSize]) => $settings.startHour * $hourSize -); -var timeToTimelineOffset = derived( - [settings, hiddenHoursSize], - ([$settings, $hiddenHoursSize]) => (minutes2) => minutes2 * $settings.zoomLevel - $hiddenHoursSize -); -function snap(coords, zoomLevel) { - return coords - coords % (snapStepMinutes * zoomLevel); -} -function getTimeFromYOffset(yCoords) { - const { zoomLevel } = get_store_value(settings); - return (yCoords + get_store_value(hiddenHoursSize)) / zoomLevel; -} -function sizeToDuration(size) { - const { zoomLevel } = get_store_value(settings); - return size / zoomLevel; -} -var durationToSize = derived(settings, ($settings) => { - return (duration) => { - const { zoomLevel } = $settings; - return duration * zoomLevel; - }; -}); - -// src/overlap/overlap.ts -var import_fraction = __toESM(require_fraction()); -var import_fp3 = __toESM(require_fp()); - -// src/overlap/horizontal-placing.ts -function getHorizontalPlacing(overlap) { - const widthPercent = overlap ? overlap.span / overlap.columns * 100 : 100; - const xOffsetPercent = overlap ? 100 / overlap.columns * overlap.start : 0; - return { - widthPercent, - xOffsetPercent - }; -} - -// src/overlap/overlap.ts -var empty2 = "empty"; -var taken = "taken"; -function computeOverlap(items) { - return items.reduce((overlapLookup, item) => { - const overlapGroup = getItemsOverlappingItemAndEachOther(item, items); - return computeOverlapForGroup(overlapGroup, overlapLookup); - }, /* @__PURE__ */ new Map()); -} -function getItemsOverlappingItemAndEachOther(item, items) { - return items.reduce( - (result, current) => { - if (current === item) { - return result; - } - const currentOverlapsWithPreviousItems = result.every( - (intersectingItem) => overlaps(intersectingItem, current) - ); - if (currentOverlapsWithPreviousItems) { - result.push(current); - } - return result; - }, - [item] - ).sort((a, b) => a.startMinutes - b.startMinutes); -} -function computeOverlapForGroup(overlapGroup, previousLookup) { - const newLookup = new Map([...previousLookup]); - const [itemsPlacedPreviously, itemsToBePlaced] = (0, import_fp3.partition)( - ({ id }) => newLookup.has(id), - overlapGroup - ); - if (itemsToBePlaced.length === 0) { - return newLookup; - } - const fractionOfPlacedItems = itemsPlacedPreviously.reduce((sum, current) => { - const { span, columns } = newLookup.get(current.id); - return new import_fraction.default(span, columns).add(sum); - }, new import_fraction.default(0)); - const fractionForNewItems = new import_fraction.default(1).sub(fractionOfPlacedItems); - const fractionForEachNewItem = fractionForNewItems.div( - itemsToBePlaced.length - ); - const columnsForNewGroup = fractionForEachNewItem.d; - const newItemInherentSpan = fractionForEachNewItem.n; - const slots = Array(columnsForNewGroup).fill(empty2); - itemsPlacedPreviously.forEach((item) => { - const { start, span, columns: previousColumns } = newLookup.get(item.id); - const scale = columnsForNewGroup / previousColumns; - const scaledStart = scale * start; - const scaledSpan = scale * span; - const scaledEnd = scaledStart + scaledSpan; - slots.fill(taken, scaledStart, scaledEnd); - }); - itemsToBePlaced.forEach((itemInGroup) => { - const firstFreeSlotIndex = slots.findIndex((slot) => slot === empty2); - const nextTakenSlotIndex = slots.findIndex( - (slot, i) => i > firstFreeSlotIndex && slot === taken - ); - const fromFreeToNextTakenSlot = nextTakenSlotIndex - firstFreeSlotIndex; - const onlyEmptySlotsLeft = nextTakenSlotIndex === -1; - const span = onlyEmptySlotsLeft ? newItemInherentSpan : Math.min(newItemInherentSpan, fromFreeToNextTakenSlot); - const fillEnd = firstFreeSlotIndex + span; - slots.fill(taken, firstFreeSlotIndex, fillEnd); - newLookup.set(itemInGroup.id, { - start: firstFreeSlotIndex, - span, - columns: columnsForNewGroup - }); - }); - return newLookup; -} -function overlaps(a, b) { - const [early, late] = a.startMinutes < b.startMinutes ? [a, b] : [b, a]; - return early.endMinutes > late.startMinutes; -} -function addPlacing(planItems) { - const overlapLookup = computeOverlap(planItems); - return planItems.map((planItem) => { - const overlap = overlapLookup.get(planItem.id); - return { - ...planItem, - placing: getHorizontalPlacing(overlap) - }; - }); -} - -// src/ui/components/column.svelte -function add_css(target) { - append_styles(target, "svelte-af5q45", ".task-grid.svelte-af5q45{position:relative;flex:1 0 0}.time-grid-block.svelte-af5q45{flex:1 0 0;border-bottom:1px solid var(--background-modifier-border)}.half-hour-separator.svelte-af5q45{border-bottom:1px dashed var(--background-modifier-border)}"); -} -function get_each_context(ctx, list, i) { - const child_ctx = ctx.slice(); - child_ctx[4] = list[i]; - return child_ctx; -} -function create_each_block(ctx) { - let div1; - let div0; - let style_height = `${/*$hourSize*/ - ctx[1] / 2}px`; - let t; - let style_height_1 = `${/*$hourSize*/ - ctx[1]}px`; - return { - c() { - div1 = element("div"); - div0 = element("div"); - t = space(); - attr(div0, "class", "half-hour-separator svelte-af5q45"); - set_style(div0, "height", style_height); - attr(div1, "class", "time-grid-block svelte-af5q45"); - set_style(div1, "height", style_height_1); - }, - m(target, anchor) { - insert(target, div1, anchor); - append(div1, div0); - append(div1, t); - }, - p(ctx2, dirty) { - if (dirty & /*$hourSize*/ - 2 && style_height !== (style_height = `${/*$hourSize*/ - ctx2[1] / 2}px`)) { - set_style(div0, "height", style_height); - } - if (dirty & /*$hourSize*/ - 2 && style_height_1 !== (style_height_1 = `${/*$hourSize*/ - ctx2[1]}px`)) { - set_style(div1, "height", style_height_1); - } - }, - d(detaching) { - if (detaching) - detach(div1); - } - }; -} -function create_fragment(ctx) { - let div; - let t; - let current; - const default_slot_template = ( - /*#slots*/ - ctx[3].default - ); - const default_slot = create_slot( - default_slot_template, - ctx, - /*$$scope*/ - ctx[2], - null - ); - let each_value = ( - /*visibleHours*/ - ctx[0] - ); - let each_blocks = []; - for (let i = 0; i < each_value.length; i += 1) { - each_blocks[i] = create_each_block(get_each_context(ctx, each_value, i)); - } - return { - c() { - div = element("div"); - if (default_slot) - default_slot.c(); - t = space(); - for (let i = 0; i < each_blocks.length; i += 1) { - each_blocks[i].c(); - } - attr(div, "class", "task-grid svelte-af5q45"); - }, - m(target, anchor) { - insert(target, div, anchor); - if (default_slot) { - default_slot.m(div, null); - } - append(div, t); - for (let i = 0; i < each_blocks.length; i += 1) { - if (each_blocks[i]) { - each_blocks[i].m(div, null); - } - } - current = true; - }, - p(ctx2, [dirty]) { - if (default_slot) { - if (default_slot.p && (!current || dirty & /*$$scope*/ - 4)) { - update_slot_base( - default_slot, - default_slot_template, - ctx2, - /*$$scope*/ - ctx2[2], - !current ? get_all_dirty_from_scope( - /*$$scope*/ - ctx2[2] - ) : get_slot_changes( - default_slot_template, - /*$$scope*/ - ctx2[2], - dirty, - null - ), - null - ); - } - } - if (dirty & /*$hourSize, visibleHours*/ - 3) { - each_value = /*visibleHours*/ - ctx2[0]; - let i; - for (i = 0; i < each_value.length; i += 1) { - const child_ctx = get_each_context(ctx2, each_value, i); - if (each_blocks[i]) { - each_blocks[i].p(child_ctx, dirty); - } else { - each_blocks[i] = create_each_block(child_ctx); - each_blocks[i].c(); - each_blocks[i].m(div, null); - } - } - for (; i < each_blocks.length; i += 1) { - each_blocks[i].d(1); - } - each_blocks.length = each_value.length; - } - }, - i(local) { - if (current) - return; - transition_in(default_slot, local); - current = true; - }, - o(local) { - transition_out(default_slot, local); - current = false; - }, - d(detaching) { - if (detaching) - detach(div); - if (default_slot) - default_slot.d(detaching); - destroy_each(each_blocks, detaching); - } - }; -} -function instance($$self, $$props, $$invalidate) { - let $hourSize; - component_subscribe($$self, hourSize, ($$value) => $$invalidate(1, $hourSize = $$value)); - let { $$slots: slots = {}, $$scope } = $$props; - let { visibleHours: visibleHours2 } = $$props; - $$self.$$set = ($$props2) => { - if ("visibleHours" in $$props2) - $$invalidate(0, visibleHours2 = $$props2.visibleHours); - if ("$$scope" in $$props2) - $$invalidate(2, $$scope = $$props2.$$scope); - }; - return [visibleHours2, $hourSize, $$scope, slots]; -} -var Column = class extends SvelteComponent { - constructor(options) { - super(); - init(this, options, instance, create_fragment, safe_not_equal, { visibleHours: 0 }, add_css); - } -}; -var column_default = Column; - -// node_modules/tslib/tslib.es6.mjs -function __awaiter(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -} - -// src/ui/components/controls.svelte -var import_fp4 = __toESM(require_fp()); - -// node_modules/lucide-svelte/dist/esm/defaultAttributes.js -var defaultAttributes = { - xmlns: "http://www.w3.org/2000/svg", - width: 24, - height: 24, - viewBox: "0 0 24 24", - fill: "none", - stroke: "currentColor", - "stroke-width": 2, - "stroke-linecap": "round", - "stroke-linejoin": "round" -}; - -// node_modules/lucide-svelte/dist/esm/Icon.svelte.js -function get_each_context2(ctx, list, i) { - const child_ctx = ctx.slice(); - child_ctx[10] = list[i][0]; - child_ctx[11] = list[i][1]; - return child_ctx; -} -function create_dynamic_element(ctx) { - let svelte_element; - let svelte_element_levels = [ - /*attrs*/ - ctx[11] - ]; - let svelte_element_data = {}; - for (let i = 0; i < svelte_element_levels.length; i += 1) { - svelte_element_data = assign(svelte_element_data, svelte_element_levels[i]); - } - return { - c() { - svelte_element = svg_element( - /*tag*/ - ctx[10] - ); - this.h(); - }, - l(nodes) { - svelte_element = claim_svg_element( - nodes, - /*tag*/ - ctx[10], - {} - ); - children(svelte_element).forEach(detach); - this.h(); - }, - h() { - set_svg_attributes(svelte_element, svelte_element_data); - }, - m(target, anchor) { - insert_hydration(target, svelte_element, anchor); - }, - p(ctx2, dirty) { - svelte_element_data = get_spread_update(svelte_element_levels, [dirty & /*iconNode*/ - 32 && /*attrs*/ - ctx2[11]]); - set_svg_attributes(svelte_element, svelte_element_data); - }, - d(detaching) { - if (detaching) - detach(svelte_element); - } - }; -} -function create_each_block2(ctx) { - let previous_tag = ( - /*tag*/ - ctx[10] - ); - let svelte_element_anchor; - let svelte_element = ( - /*tag*/ - ctx[10] && create_dynamic_element(ctx) - ); - return { - c() { - if (svelte_element) - svelte_element.c(); - svelte_element_anchor = empty(); - }, - l(nodes) { - if (svelte_element) - svelte_element.l(nodes); - svelte_element_anchor = empty(); - }, - m(target, anchor) { - if (svelte_element) - svelte_element.m(target, anchor); - insert_hydration(target, svelte_element_anchor, anchor); - }, - p(ctx2, dirty) { - if ( - /*tag*/ - ctx2[10] - ) { - if (!previous_tag) { - svelte_element = create_dynamic_element(ctx2); - svelte_element.c(); - svelte_element.m(svelte_element_anchor.parentNode, svelte_element_anchor); - } else if (safe_not_equal( - previous_tag, - /*tag*/ - ctx2[10] - )) { - svelte_element.d(1); - svelte_element = create_dynamic_element(ctx2); - svelte_element.c(); - svelte_element.m(svelte_element_anchor.parentNode, svelte_element_anchor); - } else { - svelte_element.p(ctx2, dirty); - } - } else if (previous_tag) { - svelte_element.d(1); - svelte_element = null; - } - previous_tag = /*tag*/ - ctx2[10]; - }, - d(detaching) { - if (detaching) - detach(svelte_element_anchor); - if (svelte_element) - svelte_element.d(detaching); - } - }; -} -function create_fragment2(ctx) { - var _a; - let svg; - let each_1_anchor; - let svg_stroke_width_value; - let svg_class_value; - let current; - let each_value = ( - /*iconNode*/ - ctx[5] - ); - let each_blocks = []; - for (let i = 0; i < each_value.length; i += 1) { - each_blocks[i] = create_each_block2(get_each_context2(ctx, each_value, i)); - } - const default_slot_template = ( - /*#slots*/ - ctx[9].default - ); - const default_slot = create_slot( - default_slot_template, - ctx, - /*$$scope*/ - ctx[8], - null - ); - let svg_levels = [ - defaultAttributes, - /*$$restProps*/ - ctx[6], - { width: ( - /*size*/ - ctx[2] - ) }, - { height: ( - /*size*/ - ctx[2] - ) }, - { stroke: ( - /*color*/ - ctx[1] - ) }, - { - "stroke-width": svg_stroke_width_value = /*absoluteStrokeWidth*/ - ctx[4] ? Number( - /*strokeWidth*/ - ctx[3] - ) * 24 / Number( - /*size*/ - ctx[2] - ) : ( - /*strokeWidth*/ - ctx[3] - ) - }, - { - class: svg_class_value = `lucide-icon lucide lucide-${/*name*/ - ctx[0]} ${/*$$props*/ - (_a = ctx[7].class) != null ? _a : ""}` - } - ]; - let svg_data = {}; - for (let i = 0; i < svg_levels.length; i += 1) { - svg_data = assign(svg_data, svg_levels[i]); - } - return { - c() { - svg = svg_element("svg"); - for (let i = 0; i < each_blocks.length; i += 1) { - each_blocks[i].c(); - } - each_1_anchor = empty(); - if (default_slot) - default_slot.c(); - this.h(); - }, - l(nodes) { - svg = claim_svg_element(nodes, "svg", { - width: true, - height: true, - stroke: true, - "stroke-width": true, - class: true - }); - var svg_nodes = children(svg); - for (let i = 0; i < each_blocks.length; i += 1) { - each_blocks[i].l(svg_nodes); - } - each_1_anchor = empty(); - if (default_slot) - default_slot.l(svg_nodes); - svg_nodes.forEach(detach); - this.h(); - }, - h() { - set_svg_attributes(svg, svg_data); - }, - m(target, anchor) { - insert_hydration(target, svg, anchor); - for (let i = 0; i < each_blocks.length; i += 1) { - each_blocks[i].m(svg, null); - } - append_hydration(svg, each_1_anchor); - if (default_slot) { - default_slot.m(svg, null); - } - current = true; - }, - p(ctx2, [dirty]) { - var _a2; - if (dirty & /*iconNode*/ - 32) { - each_value = /*iconNode*/ - ctx2[5]; - let i; - for (i = 0; i < each_value.length; i += 1) { - const child_ctx = get_each_context2(ctx2, each_value, i); - if (each_blocks[i]) { - each_blocks[i].p(child_ctx, dirty); - } else { - each_blocks[i] = create_each_block2(child_ctx); - each_blocks[i].c(); - each_blocks[i].m(svg, each_1_anchor); - } - } - for (; i < each_blocks.length; i += 1) { - each_blocks[i].d(1); - } - each_blocks.length = each_value.length; - } - if (default_slot) { - if (default_slot.p && (!current || dirty & /*$$scope*/ - 256)) { - update_slot_base( - default_slot, - default_slot_template, - ctx2, - /*$$scope*/ - ctx2[8], - !current ? get_all_dirty_from_scope( - /*$$scope*/ - ctx2[8] - ) : get_slot_changes( - default_slot_template, - /*$$scope*/ - ctx2[8], - dirty, - null - ), - null - ); - } - } - set_svg_attributes(svg, svg_data = get_spread_update(svg_levels, [ - defaultAttributes, - dirty & /*$$restProps*/ - 64 && /*$$restProps*/ - ctx2[6], - (!current || dirty & /*size*/ - 4) && { width: ( - /*size*/ - ctx2[2] - ) }, - (!current || dirty & /*size*/ - 4) && { height: ( - /*size*/ - ctx2[2] - ) }, - (!current || dirty & /*color*/ - 2) && { stroke: ( - /*color*/ - ctx2[1] - ) }, - (!current || dirty & /*absoluteStrokeWidth, strokeWidth, size*/ - 28 && svg_stroke_width_value !== (svg_stroke_width_value = /*absoluteStrokeWidth*/ - ctx2[4] ? Number( - /*strokeWidth*/ - ctx2[3] - ) * 24 / Number( - /*size*/ - ctx2[2] - ) : ( - /*strokeWidth*/ - ctx2[3] - ))) && { "stroke-width": svg_stroke_width_value }, - (!current || dirty & /*name, $$props*/ - 129 && svg_class_value !== (svg_class_value = `lucide-icon lucide lucide-${/*name*/ - ctx2[0]} ${/*$$props*/ - (_a2 = ctx2[7].class) != null ? _a2 : ""}`)) && { class: svg_class_value } - ])); - }, - i(local) { - if (current) - return; - transition_in(default_slot, local); - current = true; - }, - o(local) { - transition_out(default_slot, local); - current = false; - }, - d(detaching) { - if (detaching) - detach(svg); - destroy_each(each_blocks, detaching); - if (default_slot) - default_slot.d(detaching); - } - }; -} -function instance2($$self, $$props, $$invalidate) { - const omit_props_names = ["name", "color", "size", "strokeWidth", "absoluteStrokeWidth", "iconNode"]; - let $$restProps = compute_rest_props($$props, omit_props_names); - let { $$slots: slots = {}, $$scope } = $$props; - let { name } = $$props; - let { color = "currentColor" } = $$props; - let { size = 24 } = $$props; - let { strokeWidth = 2 } = $$props; - let { absoluteStrokeWidth = false } = $$props; - let { iconNode } = $$props; - $$self.$$set = ($$new_props) => { - $$invalidate(7, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props))); - $$invalidate(6, $$restProps = compute_rest_props($$props, omit_props_names)); - if ("name" in $$new_props) - $$invalidate(0, name = $$new_props.name); - if ("color" in $$new_props) - $$invalidate(1, color = $$new_props.color); - if ("size" in $$new_props) - $$invalidate(2, size = $$new_props.size); - if ("strokeWidth" in $$new_props) - $$invalidate(3, strokeWidth = $$new_props.strokeWidth); - if ("absoluteStrokeWidth" in $$new_props) - $$invalidate(4, absoluteStrokeWidth = $$new_props.absoluteStrokeWidth); - if ("iconNode" in $$new_props) - $$invalidate(5, iconNode = $$new_props.iconNode); - if ("$$scope" in $$new_props) - $$invalidate(8, $$scope = $$new_props.$$scope); - }; - $$props = exclude_internal_props($$props); - return [ - name, - color, - size, - strokeWidth, - absoluteStrokeWidth, - iconNode, - $$restProps, - $$props, - $$scope, - slots - ]; -} -var Icon = class extends SvelteComponent { - constructor(options) { - super(); - init(this, options, instance2, create_fragment2, safe_not_equal, { - name: 0, - color: 1, - size: 2, - strokeWidth: 3, - absoluteStrokeWidth: 4, - iconNode: 5 - }); - } -}; -var Icon$1 = Icon; - -// node_modules/lucide-svelte/dist/esm/icons/arrow-left-to-line.svelte.js -function create_default_slot(ctx) { - let current; - const default_slot_template = ( - /*#slots*/ - ctx[2].default - ); - const default_slot = create_slot( - default_slot_template, - ctx, - /*$$scope*/ - ctx[3], - null - ); - return { - c() { - if (default_slot) - default_slot.c(); - }, - l(nodes) { - if (default_slot) - default_slot.l(nodes); - }, - m(target, anchor) { - if (default_slot) { - default_slot.m(target, anchor); - } - current = true; - }, - p(ctx2, dirty) { - if (default_slot) { - if (default_slot.p && (!current || dirty & /*$$scope*/ - 8)) { - update_slot_base( - default_slot, - default_slot_template, - ctx2, - /*$$scope*/ - ctx2[3], - !current ? get_all_dirty_from_scope( - /*$$scope*/ - ctx2[3] - ) : get_slot_changes( - default_slot_template, - /*$$scope*/ - ctx2[3], - dirty, - null - ), - null - ); - } - } - }, - i(local) { - if (current) - return; - transition_in(default_slot, local); - current = true; - }, - o(local) { - transition_out(default_slot, local); - current = false; - }, - d(detaching) { - if (default_slot) - default_slot.d(detaching); - } - }; -} -function create_fragment3(ctx) { - let icon; - let current; - const icon_spread_levels = [ - { name: "arrow-left-to-line" }, - /*$$props*/ - ctx[1], - { iconNode: ( - /*iconNode*/ - ctx[0] - ) } - ]; - let icon_props = { - $$slots: { default: [create_default_slot] }, - $$scope: { ctx } - }; - for (let i = 0; i < icon_spread_levels.length; i += 1) { - icon_props = assign(icon_props, icon_spread_levels[i]); - } - icon = new Icon$1({ props: icon_props }); - return { - c() { - create_component(icon.$$.fragment); - }, - l(nodes) { - claim_component(icon.$$.fragment, nodes); - }, - m(target, anchor) { - mount_component(icon, target, anchor); - current = true; - }, - p(ctx2, [dirty]) { - const icon_changes = dirty & /*$$props, iconNode*/ - 3 ? get_spread_update(icon_spread_levels, [ - icon_spread_levels[0], - dirty & /*$$props*/ - 2 && get_spread_object( - /*$$props*/ - ctx2[1] - ), - dirty & /*iconNode*/ - 1 && { iconNode: ( - /*iconNode*/ - ctx2[0] - ) } - ]) : {}; - if (dirty & /*$$scope*/ - 8) { - icon_changes.$$scope = { dirty, ctx: ctx2 }; - } - icon.$set(icon_changes); - }, - i(local) { - if (current) - return; - transition_in(icon.$$.fragment, local); - current = true; - }, - o(local) { - transition_out(icon.$$.fragment, local); - current = false; - }, - d(detaching) { - destroy_component(icon, detaching); - } - }; -} -function instance3($$self, $$props, $$invalidate) { - let { $$slots: slots = {}, $$scope } = $$props; - const iconNode = [ - ["path", { "d": "M3 19V5" }], - ["path", { "d": "m13 6-6 6 6 6" }], - ["path", { "d": "M7 12h14" }] - ]; - $$self.$$set = ($$new_props) => { - $$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props))); - if ("$$scope" in $$new_props) - $$invalidate(3, $$scope = $$new_props.$$scope); - }; - $$props = exclude_internal_props($$props); - return [iconNode, $$props, slots, $$scope]; -} -var Arrow_left_to_line = class extends SvelteComponent { - constructor(options) { - super(); - init(this, options, instance3, create_fragment3, safe_not_equal, {}); - } -}; -var Arrow_left_to_line$1 = Arrow_left_to_line; - -// node_modules/lucide-svelte/dist/esm/icons/arrow-right-to-line.svelte.js -function create_default_slot2(ctx) { - let current; - const default_slot_template = ( - /*#slots*/ - ctx[2].default - ); - const default_slot = create_slot( - default_slot_template, - ctx, - /*$$scope*/ - ctx[3], - null - ); - return { - c() { - if (default_slot) - default_slot.c(); - }, - l(nodes) { - if (default_slot) - default_slot.l(nodes); - }, - m(target, anchor) { - if (default_slot) { - default_slot.m(target, anchor); - } - current = true; - }, - p(ctx2, dirty) { - if (default_slot) { - if (default_slot.p && (!current || dirty & /*$$scope*/ - 8)) { - update_slot_base( - default_slot, - default_slot_template, - ctx2, - /*$$scope*/ - ctx2[3], - !current ? get_all_dirty_from_scope( - /*$$scope*/ - ctx2[3] - ) : get_slot_changes( - default_slot_template, - /*$$scope*/ - ctx2[3], - dirty, - null - ), - null - ); - } - } - }, - i(local) { - if (current) - return; - transition_in(default_slot, local); - current = true; - }, - o(local) { - transition_out(default_slot, local); - current = false; - }, - d(detaching) { - if (default_slot) - default_slot.d(detaching); - } - }; -} -function create_fragment4(ctx) { - let icon; - let current; - const icon_spread_levels = [ - { name: "arrow-right-to-line" }, - /*$$props*/ - ctx[1], - { iconNode: ( - /*iconNode*/ - ctx[0] - ) } - ]; - let icon_props = { - $$slots: { default: [create_default_slot2] }, - $$scope: { ctx } - }; - for (let i = 0; i < icon_spread_levels.length; i += 1) { - icon_props = assign(icon_props, icon_spread_levels[i]); - } - icon = new Icon$1({ props: icon_props }); - return { - c() { - create_component(icon.$$.fragment); - }, - l(nodes) { - claim_component(icon.$$.fragment, nodes); - }, - m(target, anchor) { - mount_component(icon, target, anchor); - current = true; - }, - p(ctx2, [dirty]) { - const icon_changes = dirty & /*$$props, iconNode*/ - 3 ? get_spread_update(icon_spread_levels, [ - icon_spread_levels[0], - dirty & /*$$props*/ - 2 && get_spread_object( - /*$$props*/ - ctx2[1] - ), - dirty & /*iconNode*/ - 1 && { iconNode: ( - /*iconNode*/ - ctx2[0] - ) } - ]) : {}; - if (dirty & /*$$scope*/ - 8) { - icon_changes.$$scope = { dirty, ctx: ctx2 }; - } - icon.$set(icon_changes); - }, - i(local) { - if (current) - return; - transition_in(icon.$$.fragment, local); - current = true; - }, - o(local) { - transition_out(icon.$$.fragment, local); - current = false; - }, - d(detaching) { - destroy_component(icon, detaching); - } - }; -} -function instance4($$self, $$props, $$invalidate) { - let { $$slots: slots = {}, $$scope } = $$props; - const iconNode = [ - ["path", { "d": "M17 12H3" }], - ["path", { "d": "m11 18 6-6-6-6" }], - ["path", { "d": "M21 5v14" }] - ]; - $$self.$$set = ($$new_props) => { - $$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props))); - if ("$$scope" in $$new_props) - $$invalidate(3, $$scope = $$new_props.$$scope); - }; - $$props = exclude_internal_props($$props); - return [iconNode, $$props, slots, $$scope]; -} -var Arrow_right_to_line = class extends SvelteComponent { - constructor(options) { - super(); - init(this, options, instance4, create_fragment4, safe_not_equal, {}); - } -}; -var Arrow_right_to_line$1 = Arrow_right_to_line; - -// node_modules/lucide-svelte/dist/esm/icons/circle-dot.svelte.js -function create_default_slot3(ctx) { - let current; - const default_slot_template = ( - /*#slots*/ - ctx[2].default - ); - const default_slot = create_slot( - default_slot_template, - ctx, - /*$$scope*/ - ctx[3], - null - ); - return { - c() { - if (default_slot) - default_slot.c(); - }, - l(nodes) { - if (default_slot) - default_slot.l(nodes); - }, - m(target, anchor) { - if (default_slot) { - default_slot.m(target, anchor); - } - current = true; - }, - p(ctx2, dirty) { - if (default_slot) { - if (default_slot.p && (!current || dirty & /*$$scope*/ - 8)) { - update_slot_base( - default_slot, - default_slot_template, - ctx2, - /*$$scope*/ - ctx2[3], - !current ? get_all_dirty_from_scope( - /*$$scope*/ - ctx2[3] - ) : get_slot_changes( - default_slot_template, - /*$$scope*/ - ctx2[3], - dirty, - null - ), - null - ); - } - } - }, - i(local) { - if (current) - return; - transition_in(default_slot, local); - current = true; - }, - o(local) { - transition_out(default_slot, local); - current = false; - }, - d(detaching) { - if (default_slot) - default_slot.d(detaching); - } - }; -} -function create_fragment5(ctx) { - let icon; - let current; - const icon_spread_levels = [ - { name: "circle-dot" }, - /*$$props*/ - ctx[1], - { iconNode: ( - /*iconNode*/ - ctx[0] - ) } - ]; - let icon_props = { - $$slots: { default: [create_default_slot3] }, - $$scope: { ctx } - }; - for (let i = 0; i < icon_spread_levels.length; i += 1) { - icon_props = assign(icon_props, icon_spread_levels[i]); - } - icon = new Icon$1({ props: icon_props }); - return { - c() { - create_component(icon.$$.fragment); - }, - l(nodes) { - claim_component(icon.$$.fragment, nodes); - }, - m(target, anchor) { - mount_component(icon, target, anchor); - current = true; - }, - p(ctx2, [dirty]) { - const icon_changes = dirty & /*$$props, iconNode*/ - 3 ? get_spread_update(icon_spread_levels, [ - icon_spread_levels[0], - dirty & /*$$props*/ - 2 && get_spread_object( - /*$$props*/ - ctx2[1] - ), - dirty & /*iconNode*/ - 1 && { iconNode: ( - /*iconNode*/ - ctx2[0] - ) } - ]) : {}; - if (dirty & /*$$scope*/ - 8) { - icon_changes.$$scope = { dirty, ctx: ctx2 }; - } - icon.$set(icon_changes); - }, - i(local) { - if (current) - return; - transition_in(icon.$$.fragment, local); - current = true; - }, - o(local) { - transition_out(icon.$$.fragment, local); - current = false; - }, - d(detaching) { - destroy_component(icon, detaching); - } - }; -} -function instance5($$self, $$props, $$invalidate) { - let { $$slots: slots = {}, $$scope } = $$props; - const iconNode = [ - ["circle", { "cx": "12", "cy": "12", "r": "10" }], - ["circle", { "cx": "12", "cy": "12", "r": "1" }] - ]; - $$self.$$set = ($$new_props) => { - $$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props))); - if ("$$scope" in $$new_props) - $$invalidate(3, $$scope = $$new_props.$$scope); - }; - $$props = exclude_internal_props($$props); - return [iconNode, $$props, slots, $$scope]; -} -var Circle_dot = class extends SvelteComponent { - constructor(options) { - super(); - init(this, options, instance5, create_fragment5, safe_not_equal, {}); - } -}; -var Circle_dot$1 = Circle_dot; - -// node_modules/lucide-svelte/dist/esm/icons/copy.svelte.js -function create_default_slot4(ctx) { - let current; - const default_slot_template = ( - /*#slots*/ - ctx[2].default - ); - const default_slot = create_slot( - default_slot_template, - ctx, - /*$$scope*/ - ctx[3], - null - ); - return { - c() { - if (default_slot) - default_slot.c(); - }, - l(nodes) { - if (default_slot) - default_slot.l(nodes); - }, - m(target, anchor) { - if (default_slot) { - default_slot.m(target, anchor); - } - current = true; - }, - p(ctx2, dirty) { - if (default_slot) { - if (default_slot.p && (!current || dirty & /*$$scope*/ - 8)) { - update_slot_base( - default_slot, - default_slot_template, - ctx2, - /*$$scope*/ - ctx2[3], - !current ? get_all_dirty_from_scope( - /*$$scope*/ - ctx2[3] - ) : get_slot_changes( - default_slot_template, - /*$$scope*/ - ctx2[3], - dirty, - null - ), - null - ); - } - } - }, - i(local) { - if (current) - return; - transition_in(default_slot, local); - current = true; - }, - o(local) { - transition_out(default_slot, local); - current = false; - }, - d(detaching) { - if (default_slot) - default_slot.d(detaching); - } - }; -} -function create_fragment6(ctx) { - let icon; - let current; - const icon_spread_levels = [ - { name: "copy" }, - /*$$props*/ - ctx[1], - { iconNode: ( - /*iconNode*/ - ctx[0] - ) } - ]; - let icon_props = { - $$slots: { default: [create_default_slot4] }, - $$scope: { ctx } - }; - for (let i = 0; i < icon_spread_levels.length; i += 1) { - icon_props = assign(icon_props, icon_spread_levels[i]); - } - icon = new Icon$1({ props: icon_props }); - return { - c() { - create_component(icon.$$.fragment); - }, - l(nodes) { - claim_component(icon.$$.fragment, nodes); - }, - m(target, anchor) { - mount_component(icon, target, anchor); - current = true; - }, - p(ctx2, [dirty]) { - const icon_changes = dirty & /*$$props, iconNode*/ - 3 ? get_spread_update(icon_spread_levels, [ - icon_spread_levels[0], - dirty & /*$$props*/ - 2 && get_spread_object( - /*$$props*/ - ctx2[1] - ), - dirty & /*iconNode*/ - 1 && { iconNode: ( - /*iconNode*/ - ctx2[0] - ) } - ]) : {}; - if (dirty & /*$$scope*/ - 8) { - icon_changes.$$scope = { dirty, ctx: ctx2 }; - } - icon.$set(icon_changes); - }, - i(local) { - if (current) - return; - transition_in(icon.$$.fragment, local); - current = true; - }, - o(local) { - transition_out(icon.$$.fragment, local); - current = false; - }, - d(detaching) { - destroy_component(icon, detaching); - } - }; -} -function instance6($$self, $$props, $$invalidate) { - let { $$slots: slots = {}, $$scope } = $$props; - const iconNode = [ - [ - "rect", - { - "width": "14", - "height": "14", - "x": "8", - "y": "8", - "rx": "2", - "ry": "2" - } - ], - [ - "path", - { - "d": "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2" - } - ] - ]; - $$self.$$set = ($$new_props) => { - $$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props))); - if ("$$scope" in $$new_props) - $$invalidate(3, $$scope = $$new_props.$$scope); - }; - $$props = exclude_internal_props($$props); - return [iconNode, $$props, slots, $$scope]; -} -var Copy = class extends SvelteComponent { - constructor(options) { - super(); - init(this, options, instance6, create_fragment6, safe_not_equal, {}); - } -}; -var Copy$1 = Copy; - -// node_modules/lucide-svelte/dist/esm/icons/grip-vertical.svelte.js -function create_default_slot5(ctx) { - let current; - const default_slot_template = ( - /*#slots*/ - ctx[2].default - ); - const default_slot = create_slot( - default_slot_template, - ctx, - /*$$scope*/ - ctx[3], - null - ); - return { - c() { - if (default_slot) - default_slot.c(); - }, - l(nodes) { - if (default_slot) - default_slot.l(nodes); - }, - m(target, anchor) { - if (default_slot) { - default_slot.m(target, anchor); - } - current = true; - }, - p(ctx2, dirty) { - if (default_slot) { - if (default_slot.p && (!current || dirty & /*$$scope*/ - 8)) { - update_slot_base( - default_slot, - default_slot_template, - ctx2, - /*$$scope*/ - ctx2[3], - !current ? get_all_dirty_from_scope( - /*$$scope*/ - ctx2[3] - ) : get_slot_changes( - default_slot_template, - /*$$scope*/ - ctx2[3], - dirty, - null - ), - null - ); - } - } - }, - i(local) { - if (current) - return; - transition_in(default_slot, local); - current = true; - }, - o(local) { - transition_out(default_slot, local); - current = false; - }, - d(detaching) { - if (default_slot) - default_slot.d(detaching); - } - }; -} -function create_fragment7(ctx) { - let icon; - let current; - const icon_spread_levels = [ - { name: "grip-vertical" }, - /*$$props*/ - ctx[1], - { iconNode: ( - /*iconNode*/ - ctx[0] - ) } - ]; - let icon_props = { - $$slots: { default: [create_default_slot5] }, - $$scope: { ctx } - }; - for (let i = 0; i < icon_spread_levels.length; i += 1) { - icon_props = assign(icon_props, icon_spread_levels[i]); - } - icon = new Icon$1({ props: icon_props }); - return { - c() { - create_component(icon.$$.fragment); - }, - l(nodes) { - claim_component(icon.$$.fragment, nodes); - }, - m(target, anchor) { - mount_component(icon, target, anchor); - current = true; - }, - p(ctx2, [dirty]) { - const icon_changes = dirty & /*$$props, iconNode*/ - 3 ? get_spread_update(icon_spread_levels, [ - icon_spread_levels[0], - dirty & /*$$props*/ - 2 && get_spread_object( - /*$$props*/ - ctx2[1] - ), - dirty & /*iconNode*/ - 1 && { iconNode: ( - /*iconNode*/ - ctx2[0] - ) } - ]) : {}; - if (dirty & /*$$scope*/ - 8) { - icon_changes.$$scope = { dirty, ctx: ctx2 }; - } - icon.$set(icon_changes); - }, - i(local) { - if (current) - return; - transition_in(icon.$$.fragment, local); - current = true; - }, - o(local) { - transition_out(icon.$$.fragment, local); - current = false; - }, - d(detaching) { - destroy_component(icon, detaching); - } - }; -} -function instance7($$self, $$props, $$invalidate) { - let { $$slots: slots = {}, $$scope } = $$props; - const iconNode = [ - ["circle", { "cx": "9", "cy": "12", "r": "1" }], - ["circle", { "cx": "9", "cy": "5", "r": "1" }], - ["circle", { "cx": "9", "cy": "19", "r": "1" }], - ["circle", { "cx": "15", "cy": "12", "r": "1" }], - ["circle", { "cx": "15", "cy": "5", "r": "1" }], - ["circle", { "cx": "15", "cy": "19", "r": "1" }] - ]; - $$self.$$set = ($$new_props) => { - $$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props))); - if ("$$scope" in $$new_props) - $$invalidate(3, $$scope = $$new_props.$$scope); - }; - $$props = exclude_internal_props($$props); - return [iconNode, $$props, slots, $$scope]; -} -var Grip_vertical = class extends SvelteComponent { - constructor(options) { - super(); - init(this, options, instance7, create_fragment7, safe_not_equal, {}); - } -}; -var Grip_vertical$1 = Grip_vertical; - -// node_modules/lucide-svelte/dist/esm/icons/help-circle.svelte.js -function create_default_slot6(ctx) { - let current; - const default_slot_template = ( - /*#slots*/ - ctx[2].default - ); - const default_slot = create_slot( - default_slot_template, - ctx, - /*$$scope*/ - ctx[3], - null - ); - return { - c() { - if (default_slot) - default_slot.c(); - }, - l(nodes) { - if (default_slot) - default_slot.l(nodes); - }, - m(target, anchor) { - if (default_slot) { - default_slot.m(target, anchor); - } - current = true; - }, - p(ctx2, dirty) { - if (default_slot) { - if (default_slot.p && (!current || dirty & /*$$scope*/ - 8)) { - update_slot_base( - default_slot, - default_slot_template, - ctx2, - /*$$scope*/ - ctx2[3], - !current ? get_all_dirty_from_scope( - /*$$scope*/ - ctx2[3] - ) : get_slot_changes( - default_slot_template, - /*$$scope*/ - ctx2[3], - dirty, - null - ), - null - ); - } - } - }, - i(local) { - if (current) - return; - transition_in(default_slot, local); - current = true; - }, - o(local) { - transition_out(default_slot, local); - current = false; - }, - d(detaching) { - if (default_slot) - default_slot.d(detaching); - } - }; -} -function create_fragment8(ctx) { - let icon; - let current; - const icon_spread_levels = [ - { name: "help-circle" }, - /*$$props*/ - ctx[1], - { iconNode: ( - /*iconNode*/ - ctx[0] - ) } - ]; - let icon_props = { - $$slots: { default: [create_default_slot6] }, - $$scope: { ctx } - }; - for (let i = 0; i < icon_spread_levels.length; i += 1) { - icon_props = assign(icon_props, icon_spread_levels[i]); - } - icon = new Icon$1({ props: icon_props }); - return { - c() { - create_component(icon.$$.fragment); - }, - l(nodes) { - claim_component(icon.$$.fragment, nodes); - }, - m(target, anchor) { - mount_component(icon, target, anchor); - current = true; - }, - p(ctx2, [dirty]) { - const icon_changes = dirty & /*$$props, iconNode*/ - 3 ? get_spread_update(icon_spread_levels, [ - icon_spread_levels[0], - dirty & /*$$props*/ - 2 && get_spread_object( - /*$$props*/ - ctx2[1] - ), - dirty & /*iconNode*/ - 1 && { iconNode: ( - /*iconNode*/ - ctx2[0] - ) } - ]) : {}; - if (dirty & /*$$scope*/ - 8) { - icon_changes.$$scope = { dirty, ctx: ctx2 }; - } - icon.$set(icon_changes); - }, - i(local) { - if (current) - return; - transition_in(icon.$$.fragment, local); - current = true; - }, - o(local) { - transition_out(icon.$$.fragment, local); - current = false; - }, - d(detaching) { - destroy_component(icon, detaching); - } - }; -} -function instance8($$self, $$props, $$invalidate) { - let { $$slots: slots = {}, $$scope } = $$props; - const iconNode = [ - ["circle", { "cx": "12", "cy": "12", "r": "10" }], - [ - "path", - { - "d": "M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3" - } - ], - ["path", { "d": "M12 17h.01" }] - ]; - $$self.$$set = ($$new_props) => { - $$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props))); - if ("$$scope" in $$new_props) - $$invalidate(3, $$scope = $$new_props.$$scope); - }; - $$props = exclude_internal_props($$props); - return [iconNode, $$props, slots, $$scope]; -} -var Help_circle = class extends SvelteComponent { - constructor(options) { - super(); - init(this, options, instance8, create_fragment8, safe_not_equal, {}); - } -}; -var Help_circle$1 = Help_circle; - -// node_modules/lucide-svelte/dist/esm/icons/layers.svelte.js -function create_default_slot7(ctx) { - let current; - const default_slot_template = ( - /*#slots*/ - ctx[2].default - ); - const default_slot = create_slot( - default_slot_template, - ctx, - /*$$scope*/ - ctx[3], - null - ); - return { - c() { - if (default_slot) - default_slot.c(); - }, - l(nodes) { - if (default_slot) - default_slot.l(nodes); - }, - m(target, anchor) { - if (default_slot) { - default_slot.m(target, anchor); - } - current = true; - }, - p(ctx2, dirty) { - if (default_slot) { - if (default_slot.p && (!current || dirty & /*$$scope*/ - 8)) { - update_slot_base( - default_slot, - default_slot_template, - ctx2, - /*$$scope*/ - ctx2[3], - !current ? get_all_dirty_from_scope( - /*$$scope*/ - ctx2[3] - ) : get_slot_changes( - default_slot_template, - /*$$scope*/ - ctx2[3], - dirty, - null - ), - null - ); - } - } - }, - i(local) { - if (current) - return; - transition_in(default_slot, local); - current = true; - }, - o(local) { - transition_out(default_slot, local); - current = false; - }, - d(detaching) { - if (default_slot) - default_slot.d(detaching); - } - }; -} -function create_fragment9(ctx) { - let icon; - let current; - const icon_spread_levels = [ - { name: "layers" }, - /*$$props*/ - ctx[1], - { iconNode: ( - /*iconNode*/ - ctx[0] - ) } - ]; - let icon_props = { - $$slots: { default: [create_default_slot7] }, - $$scope: { ctx } - }; - for (let i = 0; i < icon_spread_levels.length; i += 1) { - icon_props = assign(icon_props, icon_spread_levels[i]); - } - icon = new Icon$1({ props: icon_props }); - return { - c() { - create_component(icon.$$.fragment); - }, - l(nodes) { - claim_component(icon.$$.fragment, nodes); - }, - m(target, anchor) { - mount_component(icon, target, anchor); - current = true; - }, - p(ctx2, [dirty]) { - const icon_changes = dirty & /*$$props, iconNode*/ - 3 ? get_spread_update(icon_spread_levels, [ - icon_spread_levels[0], - dirty & /*$$props*/ - 2 && get_spread_object( - /*$$props*/ - ctx2[1] - ), - dirty & /*iconNode*/ - 1 && { iconNode: ( - /*iconNode*/ - ctx2[0] - ) } - ]) : {}; - if (dirty & /*$$scope*/ - 8) { - icon_changes.$$scope = { dirty, ctx: ctx2 }; - } - icon.$set(icon_changes); - }, - i(local) { - if (current) - return; - transition_in(icon.$$.fragment, local); - current = true; - }, - o(local) { - transition_out(icon.$$.fragment, local); - current = false; - }, - d(detaching) { - destroy_component(icon, detaching); - } - }; -} -function instance9($$self, $$props, $$invalidate) { - let { $$slots: slots = {}, $$scope } = $$props; - const iconNode = [ - ["polygon", { "points": "12 2 2 7 12 12 22 7 12 2" }], - ["polyline", { "points": "2 17 12 22 22 17" }], - ["polyline", { "points": "2 12 12 17 22 12" }] - ]; - $$self.$$set = ($$new_props) => { - $$invalidate(1, $$props = assign(assign({}, $$props), exclude_internal_props($$new_props))); - if ("$$scope" in $$new_props) - $$invalidate(3, $$scope = $$new_props.$$scope); - }; - $$props = exclude_internal_props($$props); - return [iconNode, $$props, slots, $$scope]; -} -var Layers = class extends SvelteComponent { - constructor(options) { - super(); - init(this, options, instance9, create_fragment9, safe_not_equal, {}); - } -}; -var Layers$1 = Layers; - -// src/ui/components/controls.svelte -var import_obsidian_daily_notes_interface3 = __toESM(require_main()); - -// src/util/daily-notes.ts -var import_obsidian_daily_notes_interface2 = __toESM(require_main()); -async function createDailyNoteIfNeeded(moment2) { - return (0, import_obsidian_daily_notes_interface2.getDailyNote)(moment2, (0, import_obsidian_daily_notes_interface2.getAllDailyNotes)()) || (0, import_obsidian_daily_notes_interface2.createDailyNote)(moment2); -} -function dailyNoteExists() { - return Boolean((0, import_obsidian_daily_notes_interface2.getDailyNote)(window.moment(), (0, import_obsidian_daily_notes_interface2.getAllDailyNotes)())); -} - -// src/ui/components/control-button.svelte -function add_css2(target) { - append_styles(target, "svelte-3xb39a", ".clickable-icon.svelte-3xb39a{grid-column-start:var(--grid-column-start, auto);flex-basis:var(--input-height);align-self:center;justify-self:var(--justify-self, auto);color:var(--color, var(--icon-color));white-space:nowrap}"); -} -function create_fragment10(ctx) { - let div; - let div_class_value; - let current; - let mounted; - let dispose; - const default_slot_template = ( - /*#slots*/ - ctx[5].default - ); - const default_slot = create_slot( - default_slot_template, - ctx, - /*$$scope*/ - ctx[4], - null - ); - return { - c() { - div = element("div"); - if (default_slot) - default_slot.c(); - attr(div, "class", div_class_value = "clickable-icon " + /*classes*/ - ctx[3] + " svelte-3xb39a"); - attr( - div, - "aria-disabled", - /*disabled*/ - ctx[2] - ); - attr( - div, - "aria-label", - /*label*/ - ctx[0] - ); - toggle_class( - div, - "is-active", - /*isActive*/ - ctx[1] - ); - }, - m(target, anchor) { - insert(target, div, anchor); - if (default_slot) { - default_slot.m(div, null); - } - current = true; - if (!mounted) { - dispose = listen( - div, - "click", - /*click_handler*/ - ctx[6] - ); - mounted = true; - } - }, - p(ctx2, [dirty]) { - if (default_slot) { - if (default_slot.p && (!current || dirty & /*$$scope*/ - 16)) { - update_slot_base( - default_slot, - default_slot_template, - ctx2, - /*$$scope*/ - ctx2[4], - !current ? get_all_dirty_from_scope( - /*$$scope*/ - ctx2[4] - ) : get_slot_changes( - default_slot_template, - /*$$scope*/ - ctx2[4], - dirty, - null - ), - null - ); - } - } - if (!current || dirty & /*classes*/ - 8 && div_class_value !== (div_class_value = "clickable-icon " + /*classes*/ - ctx2[3] + " svelte-3xb39a")) { - attr(div, "class", div_class_value); - } - if (!current || dirty & /*disabled*/ - 4) { - attr( - div, - "aria-disabled", - /*disabled*/ - ctx2[2] - ); - } - if (!current || dirty & /*label*/ - 1) { - attr( - div, - "aria-label", - /*label*/ - ctx2[0] - ); - } - if (!current || dirty & /*classes, isActive*/ - 10) { - toggle_class( - div, - "is-active", - /*isActive*/ - ctx2[1] - ); - } - }, - i(local) { - if (current) - return; - transition_in(default_slot, local); - current = true; - }, - o(local) { - transition_out(default_slot, local); - current = false; - }, - d(detaching) { - if (detaching) - detach(div); - if (default_slot) - default_slot.d(detaching); - mounted = false; - dispose(); - } - }; -} -function instance10($$self, $$props, $$invalidate) { - let { $$slots: slots = {}, $$scope } = $$props; - let { label } = $$props; - let { isActive = false } = $$props; - let { disabled = false } = $$props; - let { classes = "" } = $$props; - function click_handler(event) { - bubble.call(this, $$self, event); - } - $$self.$$set = ($$props2) => { - if ("label" in $$props2) - $$invalidate(0, label = $$props2.label); - if ("isActive" in $$props2) - $$invalidate(1, isActive = $$props2.isActive); - if ("disabled" in $$props2) - $$invalidate(2, disabled = $$props2.disabled); - if ("classes" in $$props2) - $$invalidate(3, classes = $$props2.classes); - if ("$$scope" in $$props2) - $$invalidate(4, $$scope = $$props2.$$scope); - }; - return [label, isActive, disabled, classes, $$scope, slots, click_handler]; -} -var Control_button = class extends SvelteComponent { - constructor(options) { - super(); - init( - this, - options, - instance10, - create_fragment10, - safe_not_equal, - { - label: 0, - isActive: 1, - disabled: 2, - classes: 3 - }, - add_css2 - ); - } -}; -var control_button_default = Control_button; - -// src/ui/components/icons/arrow-left.svelte -function create_fragment11(ctx) { - let svg; - let path0; - let path1; - return { - c() { - svg = svg_element("svg"); - path0 = svg_element("path"); - path1 = svg_element("path"); - attr(path0, "d", "m12 19-7-7 7-7"); - attr(path1, "d", "M19 12H5"); - attr(svg, "class", "svg-icon lucide lucide-arrow-left"); - attr(svg, "fill", "none"); - attr(svg, "height", "24"); - attr(svg, "stroke", "currentColor"); - attr(svg, "stroke-linecap", "round"); - attr(svg, "stroke-linejoin", "round"); - attr(svg, "stroke-width", "2"); - attr(svg, "viewBox", "0 0 24 24"); - attr(svg, "width", "24"); - attr(svg, "xmlns", "http://www.w3.org/2000/svg"); - }, - m(target, anchor) { - insert(target, svg, anchor); - append(svg, path0); - append(svg, path1); - }, - p: noop, - i: noop, - o: noop, - d(detaching) { - if (detaching) - detach(svg); - } - }; -} -var Arrow_left = class extends SvelteComponent { - constructor(options) { - super(); - init(this, options, null, create_fragment11, safe_not_equal, {}); - } -}; -var arrow_left_default = Arrow_left; - -// src/ui/components/icons/arrow-right.svelte -function create_fragment12(ctx) { - let svg; - let path0; - let path1; - return { - c() { - svg = svg_element("svg"); - path0 = svg_element("path"); - path1 = svg_element("path"); - attr(path0, "d", "M5 12h14"); - attr(path1, "d", "m12 5 7 7-7 7"); - attr(svg, "class", "svg-icon lucide lucide-arrow-right"); - attr(svg, "fill", "none"); - attr(svg, "height", "24"); - attr(svg, "stroke", "currentColor"); - attr(svg, "stroke-linecap", "round"); - attr(svg, "stroke-linejoin", "round"); - attr(svg, "stroke-width", "2"); - attr(svg, "viewBox", "0 0 24 24"); - attr(svg, "width", "24"); - attr(svg, "xmlns", "http://www.w3.org/2000/svg"); - }, - m(target, anchor) { - insert(target, svg, anchor); - append(svg, path0); - append(svg, path1); - }, - p: noop, - i: noop, - o: noop, - d(detaching) { - if (detaching) - detach(svg); - } - }; -} -var Arrow_right = class extends SvelteComponent { - constructor(options) { - super(); - init(this, options, null, create_fragment12, safe_not_equal, {}); - } -}; -var arrow_right_default = Arrow_right; - -// src/ui/components/icons/go-to-file.svelte -function create_fragment13(ctx) { - let svg; - let path0; - let polyline; - let path1; - let path2; - return { - c() { - svg = svg_element("svg"); - path0 = svg_element("path"); - polyline = svg_element("polyline"); - path1 = svg_element("path"); - path2 = svg_element("path"); - attr(path0, "d", "M4 22h14a2 2 0 0 0 2-2V7.5L14.5 2H6a2 2 0 0 0-2 2v4"); - attr(polyline, "points", "14 2 14 8 20 8"); - attr(path1, "d", "M2 15h10"); - attr(path2, "d", "m9 18 3-3-3-3"); - attr(svg, "class", "svg-icon lucide lucide-file-input"); - attr(svg, "fill", "none"); - attr(svg, "height", "24"); - attr(svg, "stroke", "currentColor"); - attr(svg, "stroke-linecap", "round"); - attr(svg, "stroke-linejoin", "round"); - attr(svg, "stroke-width", "2"); - attr(svg, "viewBox", "0 0 24 24"); - attr(svg, "width", "24"); - attr(svg, "xmlns", "http://www.w3.org/2000/svg"); - }, - m(target, anchor) { - insert(target, svg, anchor); - append(svg, path0); - append(svg, polyline); - append(svg, path1); - append(svg, path2); - }, - p: noop, - i: noop, - o: noop, - d(detaching) { - if (detaching) - detach(svg); - } - }; -} -var Go_to_file = class extends SvelteComponent { - constructor(options) { - super(); - init(this, options, null, create_fragment13, safe_not_equal, {}); - } -}; -var go_to_file_default = Go_to_file; - -// src/ui/components/icons/settings.svelte -function create_fragment14(ctx) { - let svg; - let line0; - let line1; - let line2; - let line3; - let line4; - let line5; - let line6; - let line7; - let line8; - return { - c() { - svg = svg_element("svg"); - line0 = svg_element("line"); - line1 = svg_element("line"); - line2 = svg_element("line"); - line3 = svg_element("line"); - line4 = svg_element("line"); - line5 = svg_element("line"); - line6 = svg_element("line"); - line7 = svg_element("line"); - line8 = svg_element("line"); - attr(line0, "x1", "21"); - attr(line0, "x2", "14"); - attr(line0, "y1", "4"); - attr(line0, "y2", "4"); - attr(line1, "x1", "10"); - attr(line1, "x2", "3"); - attr(line1, "y1", "4"); - attr(line1, "y2", "4"); - attr(line2, "x1", "21"); - attr(line2, "x2", "12"); - attr(line2, "y1", "12"); - attr(line2, "y2", "12"); - attr(line3, "x1", "8"); - attr(line3, "x2", "3"); - attr(line3, "y1", "12"); - attr(line3, "y2", "12"); - attr(line4, "x1", "21"); - attr(line4, "x2", "16"); - attr(line4, "y1", "20"); - attr(line4, "y2", "20"); - attr(line5, "x1", "12"); - attr(line5, "x2", "3"); - attr(line5, "y1", "20"); - attr(line5, "y2", "20"); - attr(line6, "x1", "14"); - attr(line6, "x2", "14"); - attr(line6, "y1", "2"); - attr(line6, "y2", "6"); - attr(line7, "x1", "8"); - attr(line7, "x2", "8"); - attr(line7, "y1", "10"); - attr(line7, "y2", "14"); - attr(line8, "x1", "16"); - attr(line8, "x2", "16"); - attr(line8, "y1", "18"); - attr(line8, "y2", "22"); - attr(svg, "class", "svg-icon lucide-sliders-horizontal"); - attr(svg, "fill", "none"); - attr(svg, "height", "24"); - attr(svg, "stroke", "currentColor"); - attr(svg, "stroke-linecap", "round"); - attr(svg, "stroke-linejoin", "round"); - attr(svg, "stroke-width", "2"); - attr(svg, "viewBox", "0 0 24 24"); - attr(svg, "width", "24"); - attr(svg, "xmlns", "http://www.w3.org/2000/svg"); - }, - m(target, anchor) { - insert(target, svg, anchor); - append(svg, line0); - append(svg, line1); - append(svg, line2); - append(svg, line3); - append(svg, line4); - append(svg, line5); - append(svg, line6); - append(svg, line7); - append(svg, line8); - }, - p: noop, - i: noop, - o: noop, - d(detaching) { - if (detaching) - detach(svg); - } - }; -} -var Settings = class extends SvelteComponent { - constructor(options) { - super(); - init(this, options, null, create_fragment14, safe_not_equal, {}); - } -}; -var settings_default = Settings; - -// src/ui/components/controls.svelte -function add_css3(target) { - append_styles(target, "svelte-1rjga2i", ".help-item.svelte-1rjga2i{margin:var(--size-2-3) var(--size-4-4);font-size:var(--font-ui-small);color:var(--text-muted)}.date.svelte-1rjga2i{display:flex;align-items:center;justify-content:center;font-size:var(--font-ui-small);font-weight:var(--font-medium);color:var(--text-normal)}.settings.svelte-1rjga2i{margin:var(--size-4-1) var(--size-4-4)}.setting-item.svelte-1rjga2i{padding:var(--size-2-3) 0;border:none}.setting-item-name.svelte-1rjga2i{font-size:var(--font-ui-small)}.controls.svelte-1rjga2i{display:flex;flex-direction:column;border-bottom:1px solid var(--background-modifier-border)}.header.svelte-1rjga2i{display:grid;grid-template-columns:repeat(2, var(--size-4-8)) repeat(3, 1fr) repeat(\n 2,\n var(--size-4-8)\n );margin:var(--size-4-2)}"); -} -function get_each_context3(ctx, list, i) { - const child_ctx = ctx.slice(); - child_ctx[18] = list[i]; - return child_ctx; -} -function get_each_context_1(ctx, list, i) { - const child_ctx = ctx.slice(); - child_ctx[21] = list[i]; - return child_ctx; -} -function create_default_slot_5(ctx) { - let gotofileicon; - let current; - gotofileicon = new go_to_file_default({}); - return { - c() { - create_component(gotofileicon.$$.fragment); - }, - m(target, anchor) { - mount_component(gotofileicon, target, anchor); - current = true; - }, - i(local) { - if (current) - return; - transition_in(gotofileicon.$$.fragment, local); - current = true; - }, - o(local) { - transition_out(gotofileicon.$$.fragment, local); - current = false; - }, - d(detaching) { - destroy_component(gotofileicon, detaching); - } - }; -} -function create_default_slot_4(ctx) { - let arrowlefticon; - let current; - arrowlefticon = new arrow_left_default({}); - return { - c() { - create_component(arrowlefticon.$$.fragment); - }, - m(target, anchor) { - mount_component(arrowlefticon, target, anchor); - current = true; - }, - i(local) { - if (current) - return; - transition_in(arrowlefticon.$$.fragment, local); - current = true; - }, - o(local) { - transition_out(arrowlefticon.$$.fragment, local); - current = false; - }, - d(detaching) { - destroy_component(arrowlefticon, detaching); - } - }; -} -function create_default_slot_3(ctx) { - let span; - let t_value = ( - /*day*/ - ctx[0].format(import_obsidian_daily_notes_interface3.DEFAULT_DAILY_NOTE_FORMAT) + "" - ); - let t; - return { - c() { - span = element("span"); - t = text(t_value); - attr(span, "class", "date svelte-1rjga2i"); - }, - m(target, anchor) { - insert(target, span, anchor); - append(span, t); - }, - p(ctx2, dirty) { - if (dirty & /*day*/ - 1 && t_value !== (t_value = /*day*/ - ctx2[0].format(import_obsidian_daily_notes_interface3.DEFAULT_DAILY_NOTE_FORMAT) + "")) - set_data(t, t_value); - }, - d(detaching) { - if (detaching) - detach(span); - } - }; -} -function create_default_slot_2(ctx) { - let arrowrighticon; - let current; - arrowrighticon = new arrow_right_default({}); - return { - c() { - create_component(arrowrighticon.$$.fragment); - }, - m(target, anchor) { - mount_component(arrowrighticon, target, anchor); - current = true; - }, - i(local) { - if (current) - return; - transition_in(arrowrighticon.$$.fragment, local); - current = true; - }, - o(local) { - transition_out(arrowrighticon.$$.fragment, local); - current = false; - }, - d(detaching) { - destroy_component(arrowrighticon, detaching); - } - }; -} -function create_default_slot_1(ctx) { - let helpcircle; - let current; - helpcircle = new Help_circle$1({ props: { class: "svg-icon" } }); - return { - c() { - create_component(helpcircle.$$.fragment); - }, - m(target, anchor) { - mount_component(helpcircle, target, anchor); - current = true; - }, - p: noop, - i(local) { - if (current) - return; - transition_in(helpcircle.$$.fragment, local); - current = true; - }, - o(local) { - transition_out(helpcircle.$$.fragment, local); - current = false; - }, - d(detaching) { - destroy_component(helpcircle, detaching); - } - }; -} -function create_default_slot8(ctx) { - let settingsicon; - let current; - settingsicon = new settings_default({}); - return { - c() { - create_component(settingsicon.$$.fragment); - }, - m(target, anchor) { - mount_component(settingsicon, target, anchor); - current = true; - }, - i(local) { - if (current) - return; - transition_in(settingsicon.$$.fragment, local); - current = true; - }, - o(local) { - transition_out(settingsicon.$$.fragment, local); - current = false; - }, - d(detaching) { - destroy_component(settingsicon, detaching); - } - }; -} -function create_if_block_1(ctx) { - let p0; - let t1; - let p1; - let t5; - let p2; - return { - c() { - p0 = element("p"); - p0.innerHTML = `Advanced editing:`; - t1 = space(); - p1 = element("p"); - p1.innerHTML = `Hold Shift and drag to copy`; - t5 = space(); - p2 = element("p"); - p2.innerHTML = `Hold Control and drag/resize to push neighboring tasks`; - attr(p0, "class", "help-item svelte-1rjga2i"); - attr(p1, "class", "help-item svelte-1rjga2i"); - attr(p2, "class", "help-item svelte-1rjga2i"); - }, - m(target, anchor) { - insert(target, p0, anchor); - insert(target, t1, anchor); - insert(target, p1, anchor); - insert(target, t5, anchor); - insert(target, p2, anchor); - }, - d(detaching) { - if (detaching) - detach(p0); - if (detaching) - detach(t1); - if (detaching) - detach(p1); - if (detaching) - detach(t5); - if (detaching) - detach(p2); - } - }; -} -function create_if_block(ctx) { - let div18; - let div3; - let div1; - let t1; - let div2; - let select0; - let select0_value_value; - let t2; - let div7; - let div5; - let t4; - let div6; - let select1; - let select1_value_value; - let t5; - let div12; - let div9; - let t7; - let div11; - let div10; - let t8; - let div17; - let div14; - let t10; - let div16; - let div15; - let mounted; - let dispose; - let each_value_1 = ( - /*startHourOptions*/ - ctx[5] - ); - let each_blocks_1 = []; - for (let i = 0; i < each_value_1.length; i += 1) { - each_blocks_1[i] = create_each_block_1(get_each_context_1(ctx, each_value_1, i)); - } - let each_value = ( - /*zoomLevelOptions*/ - ctx[6] - ); - let each_blocks = []; - for (let i = 0; i < each_value.length; i += 1) { - each_blocks[i] = create_each_block3(get_each_context3(ctx, each_value, i)); - } - return { - c() { - div18 = element("div"); - div3 = element("div"); - div1 = element("div"); - div1.innerHTML = `
Start hour
`; - t1 = space(); - div2 = element("div"); - select0 = element("select"); - for (let i = 0; i < each_blocks_1.length; i += 1) { - each_blocks_1[i].c(); - } - t2 = space(); - div7 = element("div"); - div5 = element("div"); - div5.innerHTML = `
Zoom
`; - t4 = space(); - div6 = element("div"); - select1 = element("select"); - for (let i = 0; i < each_blocks.length; i += 1) { - each_blocks[i].c(); - } - t5 = space(); - div12 = element("div"); - div9 = element("div"); - div9.innerHTML = `
Auto-scroll to now
`; - t7 = space(); - div11 = element("div"); - div10 = element("div"); - div10.innerHTML = ``; - t8 = space(); - div17 = element("div"); - div14 = element("div"); - div14.innerHTML = `
Show help while dragging
`; - t10 = space(); - div16 = element("div"); - div15 = element("div"); - div15.innerHTML = ``; - attr(div1, "class", "setting-item-info"); - attr(select0, "class", "dropdown"); - attr(div2, "class", "setting-item-control"); - attr(div3, "class", "setting-item svelte-1rjga2i"); - attr(div5, "class", "setting-item-info"); - attr(select1, "class", "dropdown"); - attr(div6, "class", "setting-item-control"); - attr(div7, "class", "setting-item svelte-1rjga2i"); - attr(div9, "class", "setting-item-info"); - attr(div10, "class", "checkbox-container mod-small"); - toggle_class( - div10, - "is-enabled", - /*$settings*/ - ctx[4].centerNeedle - ); - attr(div11, "class", "setting-item-control"); - attr(div12, "class", "setting-item mod-toggle svelte-1rjga2i"); - attr(div14, "class", "setting-item-info"); - attr(div15, "class", "checkbox-container mod-small"); - toggle_class( - div15, - "is-enabled", - /*$settings*/ - ctx[4].showHelp - ); - attr(div16, "class", "setting-item-control"); - attr(div17, "class", "setting-item mod-toggle svelte-1rjga2i"); - attr(div18, "class", "settings svelte-1rjga2i"); - }, - m(target, anchor) { - insert(target, div18, anchor); - append(div18, div3); - append(div3, div1); - append(div3, t1); - append(div3, div2); - append(div2, select0); - for (let i = 0; i < each_blocks_1.length; i += 1) { - if (each_blocks_1[i]) { - each_blocks_1[i].m(select0, null); - } - } - select_option(select0, String( - /*$settings*/ - ctx[4].startHour - )); - append(div18, t2); - append(div18, div7); - append(div7, div5); - append(div7, t4); - append(div7, div6); - append(div6, select1); - for (let i = 0; i < each_blocks.length; i += 1) { - if (each_blocks[i]) { - each_blocks[i].m(select1, null); - } - } - select_option(select1, String( - /*$settings*/ - ctx[4].zoomLevel - )); - append(div18, t5); - append(div18, div12); - append(div12, div9); - append(div12, t7); - append(div12, div11); - append(div11, div10); - append(div18, t8); - append(div18, div17); - append(div17, div14); - append(div17, t10); - append(div17, div16); - append(div16, div15); - if (!mounted) { - dispose = [ - listen( - select0, - "input", - /*input_handler*/ - ctx[13] - ), - listen( - select1, - "input", - /*input_handler_1*/ - ctx[14] - ), - listen( - div10, - "click", - /*click_handler_1*/ - ctx[15] - ), - listen( - div15, - "click", - /*click_handler_2*/ - ctx[16] - ) - ]; - mounted = true; - } - }, - p(ctx2, dirty) { - if (dirty & /*startHourOptions*/ - 32) { - each_value_1 = /*startHourOptions*/ - ctx2[5]; - let i; - for (i = 0; i < each_value_1.length; i += 1) { - const child_ctx = get_each_context_1(ctx2, each_value_1, i); - if (each_blocks_1[i]) { - each_blocks_1[i].p(child_ctx, dirty); - } else { - each_blocks_1[i] = create_each_block_1(child_ctx); - each_blocks_1[i].c(); - each_blocks_1[i].m(select0, null); - } - } - for (; i < each_blocks_1.length; i += 1) { - each_blocks_1[i].d(1); - } - each_blocks_1.length = each_value_1.length; - } - if (dirty & /*$settings, startHourOptions*/ - 48 && select0_value_value !== (select0_value_value = String( - /*$settings*/ - ctx2[4].startHour - ))) { - select_option(select0, String( - /*$settings*/ - ctx2[4].startHour - )); - } - if (dirty & /*zoomLevelOptions*/ - 64) { - each_value = /*zoomLevelOptions*/ - ctx2[6]; - let i; - for (i = 0; i < each_value.length; i += 1) { - const child_ctx = get_each_context3(ctx2, each_value, i); - if (each_blocks[i]) { - each_blocks[i].p(child_ctx, dirty); - } else { - each_blocks[i] = create_each_block3(child_ctx); - each_blocks[i].c(); - each_blocks[i].m(select1, null); - } - } - for (; i < each_blocks.length; i += 1) { - each_blocks[i].d(1); - } - each_blocks.length = each_value.length; - } - if (dirty & /*$settings, startHourOptions*/ - 48 && select1_value_value !== (select1_value_value = String( - /*$settings*/ - ctx2[4].zoomLevel - ))) { - select_option(select1, String( - /*$settings*/ - ctx2[4].zoomLevel - )); - } - if (dirty & /*$settings*/ - 16) { - toggle_class( - div10, - "is-enabled", - /*$settings*/ - ctx2[4].centerNeedle - ); - } - if (dirty & /*$settings*/ - 16) { - toggle_class( - div15, - "is-enabled", - /*$settings*/ - ctx2[4].showHelp - ); - } - }, - d(detaching) { - if (detaching) - detach(div18); - destroy_each(each_blocks_1, detaching); - destroy_each(each_blocks, detaching); - mounted = false; - run_all(dispose); - } - }; -} -function create_each_block_1(ctx) { - let option; - let t_value = ( - /*hour*/ - ctx[21] + "" - ); - let t; - let option_value_value; - return { - c() { - option = element("option"); - t = text(t_value); - option.__value = option_value_value = /*hour*/ - ctx[21]; - option.value = option.__value; - }, - m(target, anchor) { - insert(target, option, anchor); - append(option, t); - }, - p: noop, - d(detaching) { - if (detaching) - detach(option); - } - }; -} -function create_each_block3(ctx) { - let option; - let t_value = ( - /*level*/ - ctx[18] + "" - ); - let t; - let option_value_value; - return { - c() { - option = element("option"); - t = text(t_value); - option.__value = option_value_value = /*level*/ - ctx[18]; - option.value = option.__value; - }, - m(target, anchor) { - insert(target, option, anchor); - append(option, t); - }, - p: noop, - d(detaching) { - if (detaching) - detach(option); - } - }; -} -function create_fragment15(ctx) { - let div1; - let div0; - let controlbutton0; - let t0; - let controlbutton1; - let div; - let t1; - let controlbutton2; - let t2; - let controlbutton3; - let div_1; - let t3; - let controlbutton4; - let t4; - let controlbutton5; - let t5; - let t6; - let current; - controlbutton0 = new control_button_default({ - props: { - label: "Open today's daily note", - $$slots: { default: [create_default_slot_5] }, - $$scope: { ctx } - } - }); - controlbutton0.$on( - "click", - /*goToToday*/ - ctx[11] - ); - controlbutton1 = new control_button_default({ - props: { - label: "Go to previous daily plan", - $$slots: { default: [create_default_slot_4] }, - $$scope: { ctx } - } - }); - controlbutton1.$on( - "click", - /*goBack*/ - ctx[9] - ); - controlbutton2 = new control_button_default({ - props: { - label: "Go to file", - $$slots: { default: [create_default_slot_3] }, - $$scope: { ctx } - } - }); - controlbutton2.$on( - "click", - /*click_handler*/ - ctx[12] - ); - controlbutton3 = new control_button_default({ - props: { - label: "Go to next daily plan", - $$slots: { default: [create_default_slot_2] }, - $$scope: { ctx } - } - }); - controlbutton3.$on( - "click", - /*goForward*/ - ctx[10] - ); - controlbutton4 = new control_button_default({ - props: { - isActive: ( - /*helpVisible*/ - ctx[3] - ), - label: "Help", - $$slots: { default: [create_default_slot_1] }, - $$scope: { ctx } - } - }); - controlbutton4.$on( - "click", - /*toggleHelp*/ - ctx[8] - ); - controlbutton5 = new control_button_default({ - props: { - isActive: ( - /*settingsVisible*/ - ctx[2] - ), - label: "Settings", - $$slots: { default: [create_default_slot8] }, - $$scope: { ctx } - } - }); - controlbutton5.$on( - "click", - /*toggleSettings*/ - ctx[7] - ); - let if_block0 = ( - /*helpVisible*/ - ctx[3] && create_if_block_1(ctx) - ); - let if_block1 = ( - /*settingsVisible*/ - ctx[2] && create_if_block(ctx) - ); - return { - c() { - div1 = element("div"); - div0 = element("div"); - create_component(controlbutton0.$$.fragment); - t0 = space(); - div = element("div"); - create_component(controlbutton1.$$.fragment); - t1 = space(); - create_component(controlbutton2.$$.fragment); - t2 = space(); - div_1 = element("div"); - create_component(controlbutton3.$$.fragment); - t3 = space(); - create_component(controlbutton4.$$.fragment); - t4 = space(); - create_component(controlbutton5.$$.fragment); - t5 = space(); - if (if_block0) - if_block0.c(); - t6 = space(); - if (if_block1) - if_block1.c(); - set_style(div, "display", "contents"); - set_style(div, "--grid-column-start", "3"); - set_style(div, "--justify-self", "flex-end"); - set_style(div_1, "display", "contents"); - set_style(div_1, "--justify-self", "flex-start"); - attr(div0, "class", "header svelte-1rjga2i"); - attr(div1, "class", "controls svelte-1rjga2i"); - }, - m(target, anchor) { - insert(target, div1, anchor); - append(div1, div0); - mount_component(controlbutton0, div0, null); - append(div0, t0); - append(div0, div); - mount_component(controlbutton1, div, null); - append(div0, t1); - mount_component(controlbutton2, div0, null); - append(div0, t2); - append(div0, div_1); - mount_component(controlbutton3, div_1, null); - append(div0, t3); - mount_component(controlbutton4, div0, null); - append(div0, t4); - mount_component(controlbutton5, div0, null); - append(div1, t5); - if (if_block0) - if_block0.m(div1, null); - append(div1, t6); - if (if_block1) - if_block1.m(div1, null); - current = true; - }, - p(ctx2, [dirty]) { - const controlbutton0_changes = {}; - if (dirty & /*$$scope*/ - 16777216) { - controlbutton0_changes.$$scope = { dirty, ctx: ctx2 }; - } - controlbutton0.$set(controlbutton0_changes); - const controlbutton1_changes = {}; - if (dirty & /*$$scope*/ - 16777216) { - controlbutton1_changes.$$scope = { dirty, ctx: ctx2 }; - } - controlbutton1.$set(controlbutton1_changes); - const controlbutton2_changes = {}; - if (dirty & /*$$scope, day*/ - 16777217) { - controlbutton2_changes.$$scope = { dirty, ctx: ctx2 }; - } - controlbutton2.$set(controlbutton2_changes); - const controlbutton3_changes = {}; - if (dirty & /*$$scope*/ - 16777216) { - controlbutton3_changes.$$scope = { dirty, ctx: ctx2 }; - } - controlbutton3.$set(controlbutton3_changes); - const controlbutton4_changes = {}; - if (dirty & /*helpVisible*/ - 8) - controlbutton4_changes.isActive = /*helpVisible*/ - ctx2[3]; - if (dirty & /*$$scope*/ - 16777216) { - controlbutton4_changes.$$scope = { dirty, ctx: ctx2 }; - } - controlbutton4.$set(controlbutton4_changes); - const controlbutton5_changes = {}; - if (dirty & /*settingsVisible*/ - 4) - controlbutton5_changes.isActive = /*settingsVisible*/ - ctx2[2]; - if (dirty & /*$$scope*/ - 16777216) { - controlbutton5_changes.$$scope = { dirty, ctx: ctx2 }; - } - controlbutton5.$set(controlbutton5_changes); - if ( - /*helpVisible*/ - ctx2[3] - ) { - if (if_block0) { - } else { - if_block0 = create_if_block_1(ctx2); - if_block0.c(); - if_block0.m(div1, t6); - } - } else if (if_block0) { - if_block0.d(1); - if_block0 = null; - } - if ( - /*settingsVisible*/ - ctx2[2] - ) { - if (if_block1) { - if_block1.p(ctx2, dirty); - } else { - if_block1 = create_if_block(ctx2); - if_block1.c(); - if_block1.m(div1, null); - } - } else if (if_block1) { - if_block1.d(1); - if_block1 = null; - } - }, - i(local) { - if (current) - return; - transition_in(controlbutton0.$$.fragment, local); - transition_in(controlbutton1.$$.fragment, local); - transition_in(controlbutton2.$$.fragment, local); - transition_in(controlbutton3.$$.fragment, local); - transition_in(controlbutton4.$$.fragment, local); - transition_in(controlbutton5.$$.fragment, local); - current = true; - }, - o(local) { - transition_out(controlbutton0.$$.fragment, local); - transition_out(controlbutton1.$$.fragment, local); - transition_out(controlbutton2.$$.fragment, local); - transition_out(controlbutton3.$$.fragment, local); - transition_out(controlbutton4.$$.fragment, local); - transition_out(controlbutton5.$$.fragment, local); - current = false; - }, - d(detaching) { - if (detaching) - detach(div1); - destroy_component(controlbutton0); - destroy_component(controlbutton1); - destroy_component(controlbutton2); - destroy_component(controlbutton3); - destroy_component(controlbutton4); - destroy_component(controlbutton5); - if (if_block0) - if_block0.d(); - if (if_block1) - if_block1.d(); - } - }; -} -function instance11($$self, $$props, $$invalidate) { - let $visibleDayInTimeline; - let $settings; - component_subscribe($$self, visibleDayInTimeline, ($$value) => $$invalidate(17, $visibleDayInTimeline = $$value)); - component_subscribe($$self, settings, ($$value) => $$invalidate(4, $settings = $$value)); - let { day } = $$props; - let { obsidianFacade } = $$props; - const startHourOptions = (0, import_fp4.range)(0, 13).map(String); - const zoomLevelOptions = (0, import_fp4.range)(1, 5).map(String); - let settingsVisible = false; - let helpVisible = false; - function toggleSettings() { - $$invalidate(2, settingsVisible = !settingsVisible); - } - function toggleHelp() { - $$invalidate(3, helpVisible = !helpVisible); - } - function goBack() { - return __awaiter(this, void 0, void 0, function* () { - const previousDay = $visibleDayInTimeline.clone().subtract(1, "day"); - const previousNote = yield createDailyNoteIfNeeded(previousDay); - yield obsidianFacade.openFileInEditor(previousNote); - set_store_value(visibleDayInTimeline, $visibleDayInTimeline = previousDay, $visibleDayInTimeline); - }); - } - function goForward() { - return __awaiter(this, void 0, void 0, function* () { - const nextDay = $visibleDayInTimeline.clone().add(1, "day"); - const nextNote = yield createDailyNoteIfNeeded(nextDay); - yield obsidianFacade.openFileInEditor(nextNote); - set_store_value(visibleDayInTimeline, $visibleDayInTimeline = nextDay, $visibleDayInTimeline); - }); - } - function goToToday() { - return __awaiter(this, void 0, void 0, function* () { - const noteForToday = yield createDailyNoteIfNeeded(window.moment()); - yield obsidianFacade.openFileInEditor(noteForToday); - }); - } - const click_handler = async () => { - const note = await createDailyNoteIfNeeded(day); - await obsidianFacade.openFileInEditor(note); - }; - const input_handler = (event) => { - set_store_value(settings, $settings.startHour = Number(event.currentTarget.value), $settings); - }; - const input_handler_1 = (event) => { - set_store_value(settings, $settings.zoomLevel = Number(event.currentTarget.value), $settings); - }; - const click_handler_1 = () => { - set_store_value(settings, $settings.centerNeedle = !$settings.centerNeedle, $settings); - }; - const click_handler_2 = () => { - set_store_value(settings, $settings.showHelp = !$settings.showHelp, $settings); - }; - $$self.$$set = ($$props2) => { - if ("day" in $$props2) - $$invalidate(0, day = $$props2.day); - if ("obsidianFacade" in $$props2) - $$invalidate(1, obsidianFacade = $$props2.obsidianFacade); - }; - return [ - day, - obsidianFacade, - settingsVisible, - helpVisible, - $settings, - startHourOptions, - zoomLevelOptions, - toggleSettings, - toggleHelp, - goBack, - goForward, - goToToday, - click_handler, - input_handler, - input_handler_1, - click_handler_1, - click_handler_2 - ]; -} -var Controls = class extends SvelteComponent { - constructor(options) { - super(); - init(this, options, instance11, create_fragment15, safe_not_equal, { day: 0, obsidianFacade: 1 }, add_css3); - } -}; -var controls_default = Controls; - -// src/global-store/current-time.ts -var currentTime = readable(window.moment(), (set) => { - const interval = setInterval(() => { - set(window.moment()); - }, 1e3); - return () => { - clearInterval(interval); - }; -}); - -// src/ui/components/needle.svelte -function add_css4(target) { - append_styles(target, "svelte-1rbwtw9", ".needle.svelte-1rbwtw9{height:2px;background-color:var(--color-accent)}"); -} -function create_fragment16(ctx) { - let div; - let style_transform = `translateY(${/*coords*/ - ctx[1]}px)`; - return { - c() { - div = element("div"); - attr(div, "class", "needle absolute-stretch-x svelte-1rbwtw9"); - set_style(div, "transform", style_transform); - }, - m(target, anchor) { - insert(target, div, anchor); - ctx[5](div); - }, - p(ctx2, [dirty]) { - if (dirty & /*coords*/ - 2 && style_transform !== (style_transform = `translateY(${/*coords*/ - ctx2[1]}px)`)) { - set_style(div, "transform", style_transform); - } - }, - i: noop, - o: noop, - d(detaching) { - if (detaching) - detach(div); - ctx[5](null); - } - }; -} -function instance12($$self, $$props, $$invalidate) { - let $currentTime; - let $timeToTimelineOffset; - let $visibleDayInTimeline; - let $settings; - component_subscribe($$self, currentTime, ($$value) => $$invalidate(3, $currentTime = $$value)); - component_subscribe($$self, timeToTimelineOffset, ($$value) => $$invalidate(4, $timeToTimelineOffset = $$value)); - component_subscribe($$self, visibleDayInTimeline, ($$value) => $$invalidate(6, $visibleDayInTimeline = $$value)); - component_subscribe($$self, settings, ($$value) => $$invalidate(7, $settings = $$value)); - let { autoScrollBlocked = false } = $$props; - let el; - let coords = $timeToTimelineOffset(getMinutesSinceMidnight($currentTime)); - function scrollIntoView() { - if ($settings.centerNeedle && !autoScrollBlocked && isToday($visibleDayInTimeline)) { - el === null || el === void 0 ? void 0 : el.scrollIntoView({ behavior: "smooth", block: "center" }); - } - } - function div_binding($$value) { - binding_callbacks[$$value ? "unshift" : "push"](() => { - el = $$value; - $$invalidate(0, el); - }); - } - $$self.$$set = ($$props2) => { - if ("autoScrollBlocked" in $$props2) - $$invalidate(2, autoScrollBlocked = $$props2.autoScrollBlocked); - }; - $$self.$$.update = () => { - if ($$self.$$.dirty & /*$timeToTimelineOffset, $currentTime*/ - 24) { - $: { - $$invalidate(1, coords = $timeToTimelineOffset(getMinutesSinceMidnight($currentTime))); - scrollIntoView(); - } - } - }; - return [ - el, - coords, - autoScrollBlocked, - $currentTime, - $timeToTimelineOffset, - div_binding - ]; -} -var Needle = class extends SvelteComponent { - constructor(options) { - super(); - init(this, options, instance12, create_fragment16, safe_not_equal, { autoScrollBlocked: 2 }, add_css4); - } -}; -var needle_default = Needle; - -// src/ui/components/ruler.svelte -function add_css5(target) { - append_styles(target, "svelte-y3mmrv", ".hours-container.svelte-y3mmrv{position:sticky;z-index:5;left:0;display:flex;flex:0 0 30px;flex-direction:column;background-color:var(--background-primary);border-right:1px solid var(--background-modifier-border)}.hour.svelte-y3mmrv{display:flex;flex:1 0 0;border-bottom:1px solid var(--background-modifier-border)}.hour-number-container.svelte-y3mmrv{display:flex;flex:0 0 30px;align-self:flex-start;justify-content:center;font-size:var(--nav-item-size);color:var(--text-muted)}"); -} -function get_each_context4(ctx, list, i) { - const child_ctx = ctx.slice(); - child_ctx[2] = list[i]; - return child_ctx; -} -function create_each_block4(ctx) { - let div1; - let div0; - let t0_value = ( - /*hour*/ - ctx[2] + "" - ); - let t0; - let t1; - let style_height = `${/*$hourSize*/ - ctx[1]}px`; - return { - c() { - div1 = element("div"); - div0 = element("div"); - t0 = text(t0_value); - t1 = space(); - attr(div0, "class", "hour-number-container svelte-y3mmrv"); - attr(div1, "class", "hour svelte-y3mmrv"); - set_style(div1, "height", style_height); - }, - m(target, anchor) { - insert(target, div1, anchor); - append(div1, div0); - append(div0, t0); - append(div1, t1); - }, - p(ctx2, dirty) { - if (dirty & /*visibleHours*/ - 1 && t0_value !== (t0_value = /*hour*/ - ctx2[2] + "")) - set_data(t0, t0_value); - if (dirty & /*$hourSize*/ - 2 && style_height !== (style_height = `${/*$hourSize*/ - ctx2[1]}px`)) { - set_style(div1, "height", style_height); - } - }, - d(detaching) { - if (detaching) - detach(div1); - } - }; -} -function create_fragment17(ctx) { - let div; - let each_value = ( - /*visibleHours*/ - ctx[0] - ); - let each_blocks = []; - for (let i = 0; i < each_value.length; i += 1) { - each_blocks[i] = create_each_block4(get_each_context4(ctx, each_value, i)); - } - return { - c() { - div = element("div"); - for (let i = 0; i < each_blocks.length; i += 1) { - each_blocks[i].c(); - } - attr(div, "class", "hours-container svelte-y3mmrv"); - }, - m(target, anchor) { - insert(target, div, anchor); - for (let i = 0; i < each_blocks.length; i += 1) { - if (each_blocks[i]) { - each_blocks[i].m(div, null); - } - } - }, - p(ctx2, [dirty]) { - if (dirty & /*$hourSize, visibleHours*/ - 3) { - each_value = /*visibleHours*/ - ctx2[0]; - let i; - for (i = 0; i < each_value.length; i += 1) { - const child_ctx = get_each_context4(ctx2, each_value, i); - if (each_blocks[i]) { - each_blocks[i].p(child_ctx, dirty); - } else { - each_blocks[i] = create_each_block4(child_ctx); - each_blocks[i].c(); - each_blocks[i].m(div, null); - } - } - for (; i < each_blocks.length; i += 1) { - each_blocks[i].d(1); - } - each_blocks.length = each_value.length; - } - }, - i: noop, - o: noop, - d(detaching) { - if (detaching) - detach(div); - destroy_each(each_blocks, detaching); - } - }; -} -function instance13($$self, $$props, $$invalidate) { - let $hourSize; - component_subscribe($$self, hourSize, ($$value) => $$invalidate(1, $hourSize = $$value)); - let { visibleHours: visibleHours2 } = $$props; - $$self.$$set = ($$props2) => { - if ("visibleHours" in $$props2) - $$invalidate(0, visibleHours2 = $$props2.visibleHours); - }; - return [visibleHours2, $hourSize]; -} -var Ruler = class extends SvelteComponent { - constructor(options) { - super(); - init(this, options, instance13, create_fragment17, safe_not_equal, { visibleHours: 0 }, add_css5); - } -}; -var ruler_default = Ruler; - -// src/util/create-watchable.ts -function createWatchable() { - const { subscribe: subscribe2, set } = writable(); - function trigger() { - set({}); - } - return { - subscribe: subscribe2, - trigger - }; -} - -// src/global-store/edit-events.ts -var editConfirmation = createWatchable(); -var editCancellation = createWatchable(); - -// src/ui/actions/styled-cursor.ts -function styledCursor(el, cursor) { - const initial = el.style.cursor; - el.style.cursor = cursor; - return { - update(newCursor) { - el.style.cursor = newCursor || initial; - }, - destroy() { - el.style.cursor = initial; - } - }; -} - -// src/ui/hooks/use-edit/transform/create.ts -function create(baseline, editTarget, cursorTime) { - const startMinutes = cursorTime; - const endMinutes = cursorTime + editTarget.durationMinutes; - const updated = { - ...editTarget, - startMinutes, - endMinutes - }; - return [...baseline, updated]; -} -async function createPlanItem2(day, startMinutes) { - const endMinutes = startMinutes + defaultDurationMinutes; - const { path } = await createDailyNoteIfNeeded(day); - return { - id: getId(), - startMinutes, - durationMinutes: defaultDurationMinutes, - endMinutes, - firstLineText: "New item", - text: "New item", - startTime: minutesToMomentOfDay(startMinutes, day), - endTime: minutesToMomentOfDay(endMinutes, day), - // todo: no hardcode, this should be configurable - listTokens: "- ", - // todo: fix this, do not check for newly created tasks using their location - // @ts-ignore - location: { - path - }, - placing: { - widthPercent: 100, - xOffsetPercent: 0 - } - }; -} - -// src/util/to-spliced.ts -function toSpliced(array, index, el) { - const copy = [...array]; - copy[index] = el; - return copy; -} - -// src/ui/hooks/use-edit/transform/drag.ts -function drag(baseline, editTarget, cursorTime) { - const index = baseline.findIndex((task) => task.id === editTarget.id); - const startMinutes = cursorTime; - const endMinutes = cursorTime + editTarget.durationMinutes; - const updated = { - ...editTarget, - startMinutes, - endMinutes - }; - return toSpliced(baseline, index, updated); -} - -// src/ui/hooks/use-edit/transform/drag-and-shift-others.ts -var import_lodash = __toESM(require_lodash()); -function dragAndShiftOthers(baseline, editTarget, cursorTime) { - const index = baseline.findIndex((task) => task.id === editTarget.id); - const preceding = baseline.slice(0, index); - const following = baseline.slice(index + 1); - const newStartMinutes = cursorTime; - const newEndMinutes = cursorTime + editTarget.durationMinutes; - const updated = { - ...editTarget, - startMinutes: newStartMinutes, - endMinutes: newEndMinutes - }; - const updatedFollowing = following.reduce((result, current) => { - const previous = (0, import_lodash.last)(result) || updated; - if (previous.endMinutes > current.startMinutes) { - return [ - ...result, - { - ...current, - startMinutes: previous.endMinutes, - endMinutes: previous.endMinutes + current.durationMinutes - } - ]; - } - return [...result, current]; - }, []); - const updatedPreceding = preceding.reverse().reduce((result, current) => { - const nextInTimeline = (0, import_lodash.last)(result) || updated; - if (nextInTimeline.startMinutes < current.endMinutes) { - return [ - ...result, - { - ...current, - startMinutes: nextInTimeline.startMinutes - current.durationMinutes, - endMinutes: nextInTimeline.startMinutes - } - ]; - } - return [...result, current]; - }, []).reverse(); - return [...updatedPreceding, updated, ...updatedFollowing]; -} - -// src/ui/hooks/use-edit/transform/resize.ts -function resize(baseline, editTarget, cursorTime) { - const index = baseline.findIndex((task) => task.id === editTarget.id); - const endMinutes = cursorTime; - const durationMinutes = cursorTime - editTarget.startMinutes; - const updated = { - ...editTarget, - durationMinutes, - endMinutes - }; - return toSpliced(baseline, index, updated); -} - -// src/ui/hooks/use-edit/transform/resize-and-shift-others.ts -var import_lodash2 = __toESM(require_lodash()); -function resizeAndShiftOthers(baseline, editTarget, cursorTime) { - const index = baseline.findIndex((task) => task.id === editTarget.id); - const preceding = baseline.slice(0, index); - const following = baseline.slice(index + 1); - const endMinutes = cursorTime; - const durationMinutes = endMinutes - editTarget.startMinutes; - const updated = { - ...editTarget, - durationMinutes, - endMinutes - }; - const updatedFollowing = following.reduce((result, current) => { - const previous = (0, import_lodash2.last)(result) || updated; - if (previous.endMinutes > current.startMinutes) { - return [ - ...result, - { - ...current, - startMinutes: previous.endMinutes, - endMinutes: previous.endMinutes + current.durationMinutes - } - ]; - } - return [...result, current]; - }, []); - return [...preceding, updated, ...updatedFollowing]; -} - -// src/ui/hooks/use-edit/transform/transform.ts -function transform(baseline, cursorTime, { task, mode }) { - switch (mode) { - case "DRAG" /* DRAG */: - return drag(baseline, task, cursorTime); - case "DRAG_AND_SHIFT_OTHERS" /* DRAG_AND_SHIFT_OTHERS */: - return dragAndShiftOthers(baseline, task, cursorTime); - case "CREATE" /* CREATE */: - return create(baseline, task, cursorTime); - case "RESIZE" /* RESIZE */: - return resize(baseline, task, cursorTime); - case "RESIZE_AND_SHIFT_OTHERS" /* RESIZE_AND_SHIFT_OTHERS */: - return resizeAndShiftOthers(baseline, task, cursorTime); - default: - throw new Error(`Unknown edit mode: ${mode}`); - } -} - -// src/ui/hooks/use-edit/use-edit.ts -function offsetYToMinutes_NEW(offsetY, zoomLevel, startHour) { - const hiddenHoursSize2 = startHour * 60 * zoomLevel; - return (offsetY + hiddenHoursSize2) / zoomLevel; -} -function useEdit({ - parsedTasks, - pointerOffsetY, - settings: settings2, - onUpdate -}) { - const baselineTasks = writable(parsedTasks); - const editOperation = writable(); - const displayedTasks = derived( - [editOperation, pointerOffsetY, baselineTasks, settings2], - ([$editOperation, $pointerOffsetY, $baselineTasks, $settings]) => { - if (!$editOperation) { - return $baselineTasks; - } - const cursorMinutes = offsetYToMinutes_NEW( - $pointerOffsetY, - $settings.zoomLevel, - $settings.startHour - ); - return transform($baselineTasks, cursorMinutes, $editOperation); - } - ); - const editStatus = derived( - editOperation, - ($editOperation) => $editOperation == null ? void 0 : $editOperation.mode - ); - function startEdit(operation) { - editOperation.set(operation); - } - async function confirmEdit() { - const currentTasks = get_store_value(displayedTasks); - baselineTasks.set(currentTasks.map((t) => ({ ...t, isGhost: false }))); - editOperation.set(void 0); - await onUpdate(parsedTasks, currentTasks); - } - function cancelEdit() { - editOperation.set(void 0); - } - return { - startEdit, - confirmEdit, - cancelEdit, - displayedTasks, - editStatus - }; -} - -// src/global-store/settings-with-utils.ts -var settingsWithUtils = { - settings, - hourSize, - hiddenHoursSize, - visibleHours, - sizeToDuration, - durationToSize, - getTimeFromYOffset -}; - -// src/ui/hooks/use-color.ts -var import_chroma_js2 = __toESM(require_chroma()); - -// src/util/color.ts -var import_chroma_js = __toESM(require_chroma()); -var lightThemeColors = { - normal: "#222222", - muted: "#5c5c5c", - faint: "#666666" -}; -var darkThemeColors = { - normal: "#dadada", - muted: "#b3b3b3", - faint: "#ababab" -}; -function getTextColorWithEnoughContrast(backgroundColor) { - return import_chroma_js.default.contrast(backgroundColor, darkThemeColors.normal) > import_chroma_js.default.contrast(backgroundColor, lightThemeColors.normal) ? darkThemeColors : lightThemeColors; -} - -// src/ui/hooks/use-color.ts -function useColor({ settings: settings2, task }) { - const colorScale = derived(settings2, ($settings) => { - return import_chroma_js2.default.scale([$settings.timelineStartColor, $settings.timelineEndColor]).mode("lab"); - }); - const backgroundColor = derived( - [settings2, colorScale], - ([$settings, $colorScale]) => { - const scaleKey = (task.startTime.hour() - $settings.startHour) / (24 - $settings.startHour); - return $settings.timelineColored && task.startTime ? $colorScale(scaleKey).hex() : "var(--background-primary)"; - } - ); - const properContrastColors = derived( - [settings2, backgroundColor], - ([$settings, $backgroundColor]) => { - return $settings.timelineColored && task.startTime ? getTextColorWithEnoughContrast($backgroundColor) : { - normal: "var(--text-normal)", - muted: "var(--text-muted)", - faint: "var(--text-faint)" - }; - } - ); - return { properContrastColors, backgroundColor }; -} - -// src/ui/hooks/use-task.ts -function useTask(task, { settings: settings2, currentTime: currentTime2 }) { - const useColorValues = useColor({ settings: settings2.settings, task }); - const offset = derived( - [settings2.settings, settings2.hiddenHoursSize], - ([$settings, $hiddenHoursSize]) => { - return task.startMinutes * $settings.zoomLevel - $hiddenHoursSize; - } - ); - const height = derived([settings2.settings], ([$settings]) => { - return task.durationMinutes * $settings.zoomLevel; - }); - const relationToNow = derived([currentTime2], ([$currentTime]) => { - return getRelationToNow($currentTime, task.startTime, task.endTime); - }); - return { - offset, - height, - relationToNow, - ...useColorValues - }; -} - -// src/ui/components/rendered-markdown.svelte -var import_obsidian3 = require("obsidian"); -function add_css6(target) { - append_styles(target, "svelte-13xlqzz", '.rendered-markdown.svelte-13xlqzz{--checkbox-size:var(--font-ui-small);flex:1 0 0;color:var(--text-normal)}.rendered-markdown.svelte-13xlqzz p,.rendered-markdown.svelte-13xlqzz ul{margin-block-start:0;margin-block-end:0}.rendered-markdown.svelte-13xlqzz ul,.rendered-markdown.svelte-13xlqzz ol{padding-inline-start:20px}.rendered-markdown.svelte-13xlqzz input[type="checkbox"]{top:2px;margin-inline-end:4px;border-color:var(--text-muted)}.rendered-markdown.svelte-13xlqzz li{color:var(--text-normal)}.rendered-markdown.svelte-13xlqzz li.task-list-item[data-task="x"],.rendered-markdown.svelte-13xlqzz li.task-list-item[data-task="X"]{color:var(--text-muted)}'); -} -function create_fragment18(ctx) { - let div; - return { - c() { - div = element("div"); - attr(div, "class", "rendered-markdown svelte-13xlqzz"); - }, - m(target, anchor) { - insert(target, div, anchor); - ctx[5](div); - }, - p: noop, - i: noop, - o: noop, - d(detaching) { - if (detaching) - detach(div); - ctx[5](null); - } - }; -} -function instance14($$self, $$props, $$invalidate) { - let $appStore; - component_subscribe($$self, appStore, ($$value) => $$invalidate(4, $appStore = $$value)); - var _a; - let { text: text2 } = $$props; - let markdownLifecycleManager = new import_obsidian3.Component(); - let el; - onDestroy(() => { - markdownLifecycleManager.unload(); - }); - function div_binding($$value) { - binding_callbacks[$$value ? "unshift" : "push"](() => { - el = $$value; - $$invalidate(0, el); - }); - } - $$self.$$set = ($$props2) => { - if ("text" in $$props2) - $$invalidate(1, text2 = $$props2.text); - }; - $$self.$$.update = () => { - if ($$self.$$.dirty & /*el, markdownLifecycleManager, $appStore, text, _a*/ - 31) { - $: - if (el) { - markdownLifecycleManager.unload(); - $$invalidate(3, markdownLifecycleManager = new import_obsidian3.Component()); - el.empty(); - import_obsidian3.MarkdownRenderer.render($appStore, text2, el, "", markdownLifecycleManager); - markdownLifecycleManager.load(); - $$invalidate(2, _a = el.querySelectorAll(`input[type="checkbox"]`)) === null || _a === void 0 ? void 0 : _a.forEach((checkbox2) => checkbox2.setAttribute("disabled", "true")); - } - } - }; - return [el, text2, _a, markdownLifecycleManager, $appStore, div_binding]; -} -var Rendered_markdown = class extends SvelteComponent { - constructor(options) { - super(); - init(this, options, instance14, create_fragment18, safe_not_equal, { text: 1 }, add_css6); - } -}; -var rendered_markdown_default = Rendered_markdown; - -// src/ui/components/task.svelte -function add_css7(target) { - append_styles(target, "svelte-1exzatw", ":not(#dummy).workspace-leaf-resize-handle.svelte-1exzatw{cursor:row-resize;right:0;bottom:0;left:0;display:block;height:calc(var(--divider-width-hover) * 2);border-bottom-style:solid;border-bottom-width:var(--divider-width)}.gap-box.svelte-1exzatw{display:flex;padding:0 1px 2px;transition:0.05s linear}.task.svelte-1exzatw{position:relative;overflow:hidden;display:flex;flex:1 0 0;padding:4px 6px 6px;font-size:var(--font-ui-small);text-align:left;overflow-wrap:anywhere;white-space:normal;border:1px solid var(--color-base-50);border-radius:var(--radius-s)}.past.svelte-1exzatw{background-color:var(--background-secondary)}.present.svelte-1exzatw{border-color:var(--color-accent)}.is-ghost.svelte-1exzatw{opacity:0.6}"); -} -function create_fragment19(ctx) { - let div1; - let div0; - let renderedmarkdown; - let div; - let __text_faint_last; - let __text_muted_last; - let __text_normal_last; - let t0; - let t1; - let hr; - let div0_class_value; - let style_height = `${/*$height*/ - ctx[7]}px`; - let style_transform = `translateY(${/*$offset*/ - ctx[8]}px)`; - let style_width = `${/*planItem*/ - ctx[0].placing.widthPercent || 100}%`; - let style_left = `${/*planItem*/ - ctx[0].placing.xOffsetPercent || 0}%`; - let current; - let mounted; - let dispose; - renderedmarkdown = new rendered_markdown_default({ - props: { text: ( - /*planItem*/ - ctx[0].text - ) } - }); - const default_slot_template = ( - /*#slots*/ - ctx[13].default - ); - const default_slot = create_slot( - default_slot_template, - ctx, - /*$$scope*/ - ctx[12], - null - ); - return { - c() { - div1 = element("div"); - div0 = element("div"); - div = element("div"); - create_component(renderedmarkdown.$$.fragment); - t0 = space(); - if (default_slot) - default_slot.c(); - t1 = space(); - hr = element("hr"); - set_style(div, "display", "contents"); - set_style(div, "--text-faint", __text_faint_last = /*$properContrastColors*/ - ctx[11].faint); - set_style(div, "--text-muted", __text_muted_last = /*$properContrastColors*/ - ctx[11].muted); - set_style(div, "--text-normal", __text_normal_last = /*$properContrastColors*/ - ctx[11].normal); - attr(hr, "class", "workspace-leaf-resize-handle svelte-1exzatw"); - attr(div0, "class", div0_class_value = "task " + /*$relationToNow*/ - ctx[10] + " svelte-1exzatw"); - toggle_class( - div0, - "is-ghost", - /*planItem*/ - ctx[0].isGhost - ); - set_style( - div0, - "background-color", - /*$backgroundColor*/ - ctx[9] - ); - attr(div1, "class", "gap-box absolute-stretch-x svelte-1exzatw"); - set_style(div1, "height", style_height); - set_style(div1, "transform", style_transform); - set_style(div1, "width", style_width); - set_style(div1, "left", style_left); - }, - m(target, anchor) { - insert(target, div1, anchor); - append(div1, div0); - append(div0, div); - mount_component(renderedmarkdown, div, null); - append(div0, t0); - if (default_slot) { - default_slot.m(div0, null); - } - append(div0, t1); - append(div0, hr); - current = true; - if (!mounted) { - dispose = [ - listen(hr, "mousedown", stop_propagation(function() { - if (is_function( - /*onResizeStart*/ - ctx[1] - )) - ctx[1].apply(this, arguments); - })), - listen(div0, "mousedown", mousedown_handler), - listen( - div0, - "mouseup", - /*mouseup_handler*/ - ctx[14] - ) - ]; - mounted = true; - } - }, - p(new_ctx, [dirty]) { - ctx = new_ctx; - if (dirty & /*$properContrastColors*/ - 2048 && __text_faint_last !== (__text_faint_last = /*$properContrastColors*/ - ctx[11].faint)) { - set_style(div, "--text-faint", __text_faint_last); - } - if (dirty & /*$properContrastColors*/ - 2048 && __text_muted_last !== (__text_muted_last = /*$properContrastColors*/ - ctx[11].muted)) { - set_style(div, "--text-muted", __text_muted_last); - } - if (dirty & /*$properContrastColors*/ - 2048 && __text_normal_last !== (__text_normal_last = /*$properContrastColors*/ - ctx[11].normal)) { - set_style(div, "--text-normal", __text_normal_last); - } - const renderedmarkdown_changes = {}; - if (dirty & /*planItem*/ - 1) - renderedmarkdown_changes.text = /*planItem*/ - ctx[0].text; - renderedmarkdown.$set(renderedmarkdown_changes); - if (default_slot) { - if (default_slot.p && (!current || dirty & /*$$scope*/ - 4096)) { - update_slot_base( - default_slot, - default_slot_template, - ctx, - /*$$scope*/ - ctx[12], - !current ? get_all_dirty_from_scope( - /*$$scope*/ - ctx[12] - ) : get_slot_changes( - default_slot_template, - /*$$scope*/ - ctx[12], - dirty, - null - ), - null - ); - } - } - if (!current || dirty & /*$relationToNow*/ - 1024 && div0_class_value !== (div0_class_value = "task " + /*$relationToNow*/ - ctx[10] + " svelte-1exzatw")) { - attr(div0, "class", div0_class_value); - } - if (!current || dirty & /*$relationToNow, planItem*/ - 1025) { - toggle_class( - div0, - "is-ghost", - /*planItem*/ - ctx[0].isGhost - ); - } - if (dirty & /*$backgroundColor*/ - 512) { - set_style( - div0, - "background-color", - /*$backgroundColor*/ - ctx[9] - ); - } - if (dirty & /*$height*/ - 128 && style_height !== (style_height = `${/*$height*/ - ctx[7]}px`)) { - set_style(div1, "height", style_height); - } - if (dirty & /*$offset*/ - 256 && style_transform !== (style_transform = `translateY(${/*$offset*/ - ctx[8]}px)`)) { - set_style(div1, "transform", style_transform); - } - if (dirty & /*planItem*/ - 1 && style_width !== (style_width = `${/*planItem*/ - ctx[0].placing.widthPercent || 100}%`)) { - set_style(div1, "width", style_width); - } - if (dirty & /*planItem*/ - 1 && style_left !== (style_left = `${/*planItem*/ - ctx[0].placing.xOffsetPercent || 0}%`)) { - set_style(div1, "left", style_left); - } - }, - i(local) { - if (current) - return; - transition_in(renderedmarkdown.$$.fragment, local); - transition_in(default_slot, local); - current = true; - }, - o(local) { - transition_out(renderedmarkdown.$$.fragment, local); - transition_out(default_slot, local); - current = false; - }, - d(detaching) { - if (detaching) - detach(div1); - destroy_component(renderedmarkdown); - if (default_slot) - default_slot.d(detaching); - mounted = false; - run_all(dispose); - } - }; -} -var mousedown_handler = (event) => event.stopPropagation(); -function instance15($$self, $$props, $$invalidate) { - let height; - let offset; - let relationToNow; - let backgroundColor; - let properContrastColors; - let $height, $$unsubscribe_height = noop, $$subscribe_height = () => ($$unsubscribe_height(), $$unsubscribe_height = subscribe(height, ($$value) => $$invalidate(7, $height = $$value)), height); - let $offset, $$unsubscribe_offset = noop, $$subscribe_offset = () => ($$unsubscribe_offset(), $$unsubscribe_offset = subscribe(offset, ($$value) => $$invalidate(8, $offset = $$value)), offset); - let $backgroundColor, $$unsubscribe_backgroundColor = noop, $$subscribe_backgroundColor = () => ($$unsubscribe_backgroundColor(), $$unsubscribe_backgroundColor = subscribe(backgroundColor, ($$value) => $$invalidate(9, $backgroundColor = $$value)), backgroundColor); - let $relationToNow, $$unsubscribe_relationToNow = noop, $$subscribe_relationToNow = () => ($$unsubscribe_relationToNow(), $$unsubscribe_relationToNow = subscribe(relationToNow, ($$value) => $$invalidate(10, $relationToNow = $$value)), relationToNow); - let $properContrastColors, $$unsubscribe_properContrastColors = noop, $$subscribe_properContrastColors = () => ($$unsubscribe_properContrastColors(), $$unsubscribe_properContrastColors = subscribe(properContrastColors, ($$value) => $$invalidate(11, $properContrastColors = $$value)), properContrastColors); - $$self.$$.on_destroy.push(() => $$unsubscribe_height()); - $$self.$$.on_destroy.push(() => $$unsubscribe_offset()); - $$self.$$.on_destroy.push(() => $$unsubscribe_backgroundColor()); - $$self.$$.on_destroy.push(() => $$unsubscribe_relationToNow()); - $$self.$$.on_destroy.push(() => $$unsubscribe_properContrastColors()); - let { $$slots: slots = {}, $$scope } = $$props; - let { planItem } = $$props; - let { onResizeStart } = $$props; - function mouseup_handler(event) { - bubble.call(this, $$self, event); - } - $$self.$$set = ($$props2) => { - if ("planItem" in $$props2) - $$invalidate(0, planItem = $$props2.planItem); - if ("onResizeStart" in $$props2) - $$invalidate(1, onResizeStart = $$props2.onResizeStart); - if ("$$scope" in $$props2) - $$invalidate(12, $$scope = $$props2.$$scope); - }; - $$self.$$.update = () => { - if ($$self.$$.dirty & /*planItem*/ - 1) { - $: - $$subscribe_height($$invalidate(6, { height, offset, relationToNow, backgroundColor, properContrastColors } = useTask(planItem, { settings: settingsWithUtils, currentTime }), height, $$subscribe_offset($$invalidate(5, offset)), $$subscribe_relationToNow($$invalidate(4, relationToNow)), $$subscribe_backgroundColor($$invalidate(3, backgroundColor)), $$subscribe_properContrastColors($$invalidate(2, properContrastColors)))); - } - }; - return [ - planItem, - onResizeStart, - properContrastColors, - backgroundColor, - relationToNow, - offset, - height, - $height, - $offset, - $backgroundColor, - $relationToNow, - $properContrastColors, - $$scope, - slots, - mouseup_handler - ]; -} -var Task = class extends SvelteComponent { - constructor(options) { - super(); - init(this, options, instance15, create_fragment19, safe_not_equal, { planItem: 0, onResizeStart: 1 }, add_css7); - } -}; -var task_default = Task; - -// src/ui/components/task-container.svelte -function add_css8(target) { - append_styles(target, "svelte-1o14c0z", "@keyframes svelte-1o14c0z-pulse{from{opacity:0.8}to{opacity:0.2}}.banner.svelte-1o14c0z{position:sticky;z-index:10;top:0;display:flex;align-items:center;justify-content:center;padding:var(--size-4-4);animation:svelte-1o14c0z-pulse 1s infinite alternate}.task-container.svelte-1o14c0z{top:0;bottom:0;display:flex;flex-direction:column;margin-right:10px;margin-left:10px}.grip.svelte-1o14c0z{position:relative;right:-4px;grid-column:2;align-self:flex-start;color:var(--text-faint)}.grip.svelte-1o14c0z:hover{color:var(--text-muted)}"); -} -function get_each_context5(ctx, list, i) { - const child_ctx = ctx.slice(); - child_ctx[29] = list[i]; - return child_ctx; -} -function create_if_block_3(ctx) { - let div; - return { - c() { - div = element("div"); - div.textContent = "Release outside this column to cancel edit"; - attr(div, "class", "banner svelte-1o14c0z"); - }, - m(target, anchor) { - insert(target, div, anchor); - }, - d(detaching) { - if (detaching) - detach(div); - } - }; -} -function create_if_block2(ctx) { - let div; - let current_block_type_index; - let if_block; - let current; - let mounted; - let dispose; - const if_block_creators = [create_if_block_12, create_if_block_2, create_else_block]; - const if_blocks = []; - function select_block_type(ctx2, dirty) { - if ( - /*shiftPressed*/ - ctx2[3] - ) - return 0; - if ( - /*controlPressed*/ - ctx2[4] - ) - return 1; - return 2; - } - current_block_type_index = select_block_type(ctx, [-1, -1]); - if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); - function mousedown_handler2() { - return ( - /*mousedown_handler*/ - ctx[23]( - /*planItem*/ - ctx[29] - ) - ); - } - return { - c() { - div = element("div"); - if_block.c(); - attr(div, "class", "grip svelte-1o14c0z"); - set_style( - div, - "cursor", - /*gripCursor*/ - ctx[7] - ); - }, - m(target, anchor) { - insert(target, div, anchor); - if_blocks[current_block_type_index].m(div, null); - current = true; - if (!mounted) { - dispose = listen(div, "mousedown", stop_propagation(mousedown_handler2)); - mounted = true; - } - }, - p(new_ctx, dirty) { - ctx = new_ctx; - let previous_block_index = current_block_type_index; - current_block_type_index = select_block_type(ctx, dirty); - if (current_block_type_index !== previous_block_index) { - group_outros(); - transition_out(if_blocks[previous_block_index], 1, 1, () => { - if_blocks[previous_block_index] = null; - }); - check_outros(); - if_block = if_blocks[current_block_type_index]; - if (!if_block) { - if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); - if_block.c(); - } else { - } - transition_in(if_block, 1); - if_block.m(div, null); - } - if (dirty[0] & /*gripCursor*/ - 128) { - set_style( - div, - "cursor", - /*gripCursor*/ - ctx[7] - ); - } - }, - i(local) { - if (current) - return; - transition_in(if_block); - current = true; - }, - o(local) { - transition_out(if_block); - current = false; - }, - d(detaching) { - if (detaching) - detach(div); - if_blocks[current_block_type_index].d(); - mounted = false; - dispose(); - } - }; -} -function create_else_block(ctx) { - let gripvertical; - let current; - gripvertical = new Grip_vertical$1({ props: { class: "svg-icon" } }); - return { - c() { - create_component(gripvertical.$$.fragment); - }, - m(target, anchor) { - mount_component(gripvertical, target, anchor); - current = true; - }, - i(local) { - if (current) - return; - transition_in(gripvertical.$$.fragment, local); - current = true; - }, - o(local) { - transition_out(gripvertical.$$.fragment, local); - current = false; - }, - d(detaching) { - destroy_component(gripvertical, detaching); - } - }; -} -function create_if_block_2(ctx) { - let layers; - let current; - layers = new Layers$1({ props: { class: "svg-icon" } }); - return { - c() { - create_component(layers.$$.fragment); - }, - m(target, anchor) { - mount_component(layers, target, anchor); - current = true; - }, - i(local) { - if (current) - return; - transition_in(layers.$$.fragment, local); - current = true; - }, - o(local) { - transition_out(layers.$$.fragment, local); - current = false; - }, - d(detaching) { - destroy_component(layers, detaching); - } - }; -} -function create_if_block_12(ctx) { - let copy; - let current; - copy = new Copy$1({ props: { class: "svg-icon" } }); - return { - c() { - create_component(copy.$$.fragment); - }, - m(target, anchor) { - mount_component(copy, target, anchor); - current = true; - }, - i(local) { - if (current) - return; - transition_in(copy.$$.fragment, local); - current = true; - }, - o(local) { - transition_out(copy.$$.fragment, local); - current = false; - }, - d(detaching) { - destroy_component(copy, detaching); - } - }; -} -function create_default_slot9(ctx) { - let t; - let current; - let if_block = !/*planItem*/ - ctx[29].isGhost && create_if_block2(ctx); - return { - c() { - if (if_block) - if_block.c(); - t = space(); - }, - m(target, anchor) { - if (if_block) - if_block.m(target, anchor); - insert(target, t, anchor); - current = true; - }, - p(ctx2, dirty) { - if (!/*planItem*/ - ctx2[29].isGhost) { - if (if_block) { - if_block.p(ctx2, dirty); - if (dirty[0] & /*$displayedTasks*/ - 16384) { - transition_in(if_block, 1); - } - } else { - if_block = create_if_block2(ctx2); - if_block.c(); - transition_in(if_block, 1); - if_block.m(t.parentNode, t); - } - } else if (if_block) { - group_outros(); - transition_out(if_block, 1, 1, () => { - if_block = null; - }); - check_outros(); - } - }, - i(local) { - if (current) - return; - transition_in(if_block); - current = true; - }, - o(local) { - transition_out(if_block); - current = false; - }, - d(detaching) { - if (if_block) - if_block.d(detaching); - if (detaching) - detach(t); - } - }; -} -function create_each_block5(key_1, ctx) { - let first; - let task_1; - let current; - function func() { - return ( - /*func*/ - ctx[24]( - /*planItem*/ - ctx[29] - ) - ); - } - function mouseup_handler() { - return ( - /*mouseup_handler*/ - ctx[25]( - /*planItem*/ - ctx[29] - ) - ); - } - task_1 = new task_default({ - props: { - onResizeStart: func, - planItem: ( - /*planItem*/ - ctx[29] - ), - $$slots: { default: [create_default_slot9] }, - $$scope: { ctx } - } - }); - task_1.$on("mouseup", mouseup_handler); - return { - key: key_1, - first: null, - c() { - first = empty(); - create_component(task_1.$$.fragment); - this.first = first; - }, - m(target, anchor) { - insert(target, first, anchor); - mount_component(task_1, target, anchor); - current = true; - }, - p(new_ctx, dirty) { - ctx = new_ctx; - const task_1_changes = {}; - if (dirty[0] & /*controlPressed, startEdit, $displayedTasks*/ - 18448) - task_1_changes.onResizeStart = func; - if (dirty[0] & /*$displayedTasks*/ - 16384) - task_1_changes.planItem = /*planItem*/ - ctx[29]; - if (dirty[0] & /*gripCursor, $displayedTasks, controlPressed, shiftPressed, startEdit*/ - 18584 | dirty[1] & /*$$scope*/ - 2) { - task_1_changes.$$scope = { dirty, ctx }; - } - task_1.$set(task_1_changes); - }, - i(local) { - if (current) - return; - transition_in(task_1.$$.fragment, local); - current = true; - }, - o(local) { - transition_out(task_1.$$.fragment, local); - current = false; - }, - d(detaching) { - if (detaching) - detach(first); - destroy_component(task_1, detaching); - } - }; -} -function create_fragment20(ctx) { - let styledCursor_action; - let t0; - let t1; - let div; - let t2; - let each_blocks = []; - let each_1_lookup = /* @__PURE__ */ new Map(); - let current; - let mounted; - let dispose; - let if_block = ( - /*$editStatus*/ - ctx[2] && /*$settings*/ - ctx[12].showHelp && create_if_block_3(ctx) - ); - let each_value = ( - /*$displayedTasks*/ - ctx[14] - ); - const get_key = (ctx2) => getKey( - /*planItem*/ - ctx2[29] - ); - for (let i = 0; i < each_value.length; i += 1) { - let child_ctx = get_each_context5(ctx, each_value, i); - let key = get_key(child_ctx); - each_1_lookup.set(key, each_blocks[i] = create_each_block5(key, child_ctx)); - } - return { - c() { - t0 = space(); - t1 = space(); - div = element("div"); - if (if_block) - if_block.c(); - t2 = space(); - for (let i = 0; i < each_blocks.length; i += 1) { - each_blocks[i].c(); - } - attr(div, "class", "task-container absolute-stretch-x svelte-1o14c0z"); - }, - m(target, anchor) { - insert(target, t0, anchor); - insert(target, t1, anchor); - insert(target, div, anchor); - if (if_block) - if_block.m(div, null); - append(div, t2); - for (let i = 0; i < each_blocks.length; i += 1) { - if (each_blocks[i]) { - each_blocks[i].m(div, null); - } - } - ctx[26](div); - current = true; - if (!mounted) { - dispose = [ - action_destroyer(styledCursor_action = styledCursor.call( - null, - document.body, - /*bodyCursor*/ - ctx[6] - )), - listen(document, "mouseup", editCancellation.trigger), - listen( - document, - "mousemove", - /*mousemove_handler*/ - ctx[20] - ), - listen( - document, - "keydown", - /*keydown_handler*/ - ctx[21] - ), - listen( - document, - "keyup", - /*keyup_handler*/ - ctx[22] - ), - listen( - div, - "mousedown", - /*mousedown_handler_1*/ - ctx[27] - ), - listen(div, "mouseup", stop_propagation( - /*mouseup_handler_1*/ - ctx[28] - )) - ]; - mounted = true; - } - }, - p(ctx2, dirty) { - if (styledCursor_action && is_function(styledCursor_action.update) && dirty[0] & /*bodyCursor*/ - 64) - styledCursor_action.update.call( - null, - /*bodyCursor*/ - ctx2[6] - ); - if ( - /*$editStatus*/ - ctx2[2] && /*$settings*/ - ctx2[12].showHelp - ) { - if (if_block) { - } else { - if_block = create_if_block_3(ctx2); - if_block.c(); - if_block.m(div, t2); - } - } else if (if_block) { - if_block.d(1); - if_block = null; - } - if (dirty[0] & /*controlPressed, startEdit, $displayedTasks, $editStatus, obsidianFacade, gripCursor, shiftPressed*/ - 18590) { - each_value = /*$displayedTasks*/ - ctx2[14]; - group_outros(); - each_blocks = update_keyed_each(each_blocks, dirty, get_key, 1, ctx2, each_value, each_1_lookup, div, outro_and_destroy_block, create_each_block5, null, get_each_context5); - check_outros(); - } - }, - i(local) { - if (current) - return; - for (let i = 0; i < each_value.length; i += 1) { - transition_in(each_blocks[i]); - } - current = true; - }, - o(local) { - for (let i = 0; i < each_blocks.length; i += 1) { - transition_out(each_blocks[i]); - } - current = false; - }, - d(detaching) { - if (detaching) - detach(t0); - if (detaching) - detach(t1); - if (detaching) - detach(div); - if (if_block) - if_block.d(); - for (let i = 0; i < each_blocks.length; i += 1) { - each_blocks[i].d(); - } - ctx[26](null); - mounted = false; - run_all(dispose); - } - }; -} -function getKey(task) { - var _a; - return `${task.startMinutes} ${task.endMinutes} ${task.text} ${(_a = task.isGhost) !== null && _a !== void 0 ? _a : ""}`; -} -function instance16($$self, $$props, $$invalidate) { - let startEdit; - let displayedTasks; - let cancelEdit; - let editStatus; - let confirmEdit; - let $editCancellation; - let $editStatus, $$unsubscribe_editStatus = noop, $$subscribe_editStatus = () => ($$unsubscribe_editStatus(), $$unsubscribe_editStatus = subscribe(editStatus, ($$value) => $$invalidate(2, $editStatus = $$value)), editStatus); - let $settings; - let $pointerOffsetY; - let $displayedTasks, $$unsubscribe_displayedTasks = noop, $$subscribe_displayedTasks = () => ($$unsubscribe_displayedTasks(), $$unsubscribe_displayedTasks = subscribe(displayedTasks, ($$value) => $$invalidate(14, $displayedTasks = $$value)), displayedTasks); - component_subscribe($$self, editCancellation, ($$value) => $$invalidate(19, $editCancellation = $$value)); - component_subscribe($$self, settings, ($$value) => $$invalidate(12, $settings = $$value)); - $$self.$$.on_destroy.push(() => $$unsubscribe_editStatus()); - $$self.$$.on_destroy.push(() => $$unsubscribe_displayedTasks()); - let { tasks } = $$props; - let { day } = $$props; - let { obsidianFacade } = $$props; - let { onUpdate } = $$props; - let shiftPressed = false; - let controlPressed = false; - let el; - let bodyCursor = void 0; - let gripCursor = "grab"; - const pointerOffsetY = writable(0); - component_subscribe($$self, pointerOffsetY, (value) => $$invalidate(13, $pointerOffsetY = value)); - const mousemove_handler = (event) => { - const viewportToElOffsetY = el.getBoundingClientRect().top; - const borderTopToPointerOffsetY = event.clientY - viewportToElOffsetY; - pointerOffsetY.set(snap(borderTopToPointerOffsetY, $settings.zoomLevel)); - }; - const keydown_handler = (event) => { - if (event.shiftKey) { - $$invalidate(3, shiftPressed = true); - } - if (event.ctrlKey) { - $$invalidate(4, controlPressed = true); - } - }; - const keyup_handler = (event) => { - if (!event.shiftKey) { - $$invalidate(3, shiftPressed = false); - } - if (!event.ctrlKey) { - $$invalidate(4, controlPressed = false); - } - }; - const mousedown_handler2 = (planItem) => { - let mode = "DRAG" /* DRAG */; - let task = planItem; - if (controlPressed) { - mode = "DRAG_AND_SHIFT_OTHERS" /* DRAG_AND_SHIFT_OTHERS */; - } else if (shiftPressed) { - mode = "CREATE" /* CREATE */; - task = { - ...planItem, - id: getId(), - isGhost: true, - location: { ...planItem.location, line: void 0 } - }; - } - startEdit({ task, mode }); - }; - const func = (planItem) => { - const mode = controlPressed ? "RESIZE_AND_SHIFT_OTHERS" /* RESIZE_AND_SHIFT_OTHERS */ : "RESIZE" /* RESIZE */; - startEdit({ task: planItem, mode }); - }; - const mouseup_handler = async (planItem) => { - if ($editStatus) { - return; - } - const { path, line } = planItem.location; - await obsidianFacade.revealLineInFile(path, line); - }; - function div_binding($$value) { - binding_callbacks[$$value ? "unshift" : "push"](() => { - el = $$value; - $$invalidate(5, el); - }); - } - const mousedown_handler_1 = async () => { - const newTask = await createPlanItem2(day, offsetYToMinutes_NEW($pointerOffsetY, $settings.zoomLevel, $settings.startHour)); - startEdit({ - task: { ...newTask, isGhost: true }, - mode: "CREATE" /* CREATE */ - }); - }; - const mouseup_handler_1 = async () => { - editConfirmation.trigger(); - await confirmEdit(); - }; - $$self.$$set = ($$props2) => { - if ("tasks" in $$props2) - $$invalidate(16, tasks = $$props2.tasks); - if ("day" in $$props2) - $$invalidate(0, day = $$props2.day); - if ("obsidianFacade" in $$props2) - $$invalidate(1, obsidianFacade = $$props2.obsidianFacade); - if ("onUpdate" in $$props2) - $$invalidate(17, onUpdate = $$props2.onUpdate); - }; - $$self.$$.update = () => { - if ($$self.$$.dirty[0] & /*tasks, onUpdate*/ - 196608) { - $: - $$invalidate( - 11, - { startEdit, displayedTasks, cancelEdit, editStatus, confirmEdit } = useEdit({ - parsedTasks: tasks, - settings, - pointerOffsetY, - onUpdate - }), - startEdit, - $$subscribe_displayedTasks($$invalidate(10, displayedTasks)), - ($$invalidate(18, cancelEdit), $$invalidate(16, tasks), $$invalidate(17, onUpdate)), - $$subscribe_editStatus($$invalidate(9, editStatus)), - ($$invalidate(8, confirmEdit), $$invalidate(16, tasks), $$invalidate(17, onUpdate)) - ); - } - if ($$self.$$.dirty[0] & /*$editStatus*/ - 4) { - $: - if ($editStatus === "CREATE" /* CREATE */ || $editStatus === "DRAG" /* DRAG */ || $editStatus === "DRAG_AND_SHIFT_OTHERS" /* DRAG_AND_SHIFT_OTHERS */) { - $$invalidate(6, bodyCursor = "grabbing"); - $$invalidate(7, gripCursor = "grabbing"); - } else if ($editStatus === "RESIZE" /* RESIZE */ || $editStatus === "RESIZE_AND_SHIFT_OTHERS" /* RESIZE_AND_SHIFT_OTHERS */) { - $$invalidate(6, bodyCursor = "row-resize"); - } else { - $$invalidate(6, bodyCursor = void 0); - $$invalidate(7, gripCursor = "grab"); - } - } - if ($$self.$$.dirty[0] & /*$editCancellation, cancelEdit*/ - 786432) { - $: { - $editCancellation; - cancelEdit(); - } - } - }; - return [ - day, - obsidianFacade, - $editStatus, - shiftPressed, - controlPressed, - el, - bodyCursor, - gripCursor, - confirmEdit, - editStatus, - displayedTasks, - startEdit, - $settings, - $pointerOffsetY, - $displayedTasks, - pointerOffsetY, - tasks, - onUpdate, - cancelEdit, - $editCancellation, - mousemove_handler, - keydown_handler, - keyup_handler, - mousedown_handler2, - func, - mouseup_handler, - div_binding, - mousedown_handler_1, - mouseup_handler_1 - ]; -} -var Task_container = class extends SvelteComponent { - constructor(options) { - super(); - init( - this, - options, - instance16, - create_fragment20, - safe_not_equal, - { - tasks: 16, - day: 0, - obsidianFacade: 1, - onUpdate: 17 - }, - add_css8, - [-1, -1] - ); - } -}; -var task_container_default = Task_container; - -// src/ui/components/timeline.svelte -function add_css9(target) { - append_styles(target, "svelte-1fzzjqj", ".vertical-scroller.svelte-1fzzjqj{overflow:auto;height:100%}.scale-with-days.svelte-1fzzjqj{display:flex}"); -} -function create_if_block3(ctx) { - let needle; - let current; - needle = new needle_default({ - props: { - autoScrollBlocked: ( - /*userHoversOverScroller*/ - ctx[2] - ) - } - }); - return { - c() { - create_component(needle.$$.fragment); - }, - m(target, anchor) { - mount_component(needle, target, anchor); - current = true; - }, - p(ctx2, dirty) { - const needle_changes = {}; - if (dirty & /*userHoversOverScroller*/ - 4) - needle_changes.autoScrollBlocked = /*userHoversOverScroller*/ - ctx2[2]; - needle.$set(needle_changes); - }, - i(local) { - if (current) - return; - transition_in(needle.$$.fragment, local); - current = true; - }, - o(local) { - transition_out(needle.$$.fragment, local); - current = false; - }, - d(detaching) { - destroy_component(needle, detaching); - } - }; -} -function create_default_slot10(ctx) { - let show_if = isToday( - /*$visibleDayInTimeline*/ - ctx[3] - ); - let t; - let taskcontainer; - let current; - let if_block = show_if && create_if_block3(ctx); - taskcontainer = new task_container_default({ - props: { - day: ( - /*$visibleDayInTimeline*/ - ctx[3] - ), - obsidianFacade: ( - /*obsidianFacade*/ - ctx[0] - ), - onUpdate: ( - /*onUpdate*/ - ctx[1] - ), - tasks: ( - /*$parsedTasks*/ - ctx[5] - ) - } - }); - return { - c() { - if (if_block) - if_block.c(); - t = space(); - create_component(taskcontainer.$$.fragment); - }, - m(target, anchor) { - if (if_block) - if_block.m(target, anchor); - insert(target, t, anchor); - mount_component(taskcontainer, target, anchor); - current = true; - }, - p(ctx2, dirty) { - if (dirty & /*$visibleDayInTimeline*/ - 8) - show_if = isToday( - /*$visibleDayInTimeline*/ - ctx2[3] - ); - if (show_if) { - if (if_block) { - if_block.p(ctx2, dirty); - if (dirty & /*$visibleDayInTimeline*/ - 8) { - transition_in(if_block, 1); - } - } else { - if_block = create_if_block3(ctx2); - if_block.c(); - transition_in(if_block, 1); - if_block.m(t.parentNode, t); - } - } else if (if_block) { - group_outros(); - transition_out(if_block, 1, 1, () => { - if_block = null; - }); - check_outros(); - } - const taskcontainer_changes = {}; - if (dirty & /*$visibleDayInTimeline*/ - 8) - taskcontainer_changes.day = /*$visibleDayInTimeline*/ - ctx2[3]; - if (dirty & /*obsidianFacade*/ - 1) - taskcontainer_changes.obsidianFacade = /*obsidianFacade*/ - ctx2[0]; - if (dirty & /*onUpdate*/ - 2) - taskcontainer_changes.onUpdate = /*onUpdate*/ - ctx2[1]; - if (dirty & /*$parsedTasks*/ - 32) - taskcontainer_changes.tasks = /*$parsedTasks*/ - ctx2[5]; - taskcontainer.$set(taskcontainer_changes); - }, - i(local) { - if (current) - return; - transition_in(if_block); - transition_in(taskcontainer.$$.fragment, local); - current = true; - }, - o(local) { - transition_out(if_block); - transition_out(taskcontainer.$$.fragment, local); - current = false; - }, - d(detaching) { - if (if_block) - if_block.d(detaching); - if (detaching) - detach(t); - destroy_component(taskcontainer, detaching); - } - }; -} -function create_fragment21(ctx) { - let controls; - let t0; - let div1; - let div0; - let ruler; - let t1; - let column; - let current; - let mounted; - let dispose; - controls = new controls_default({ - props: { - day: ( - /*$visibleDayInTimeline*/ - ctx[3] - ), - obsidianFacade: ( - /*obsidianFacade*/ - ctx[0] - ) - } - }); - ruler = new ruler_default({ - props: { visibleHours: ( - /*$visibleHours*/ - ctx[4] - ) } - }); - column = new column_default({ - props: { - visibleHours: ( - /*$visibleHours*/ - ctx[4] - ), - $$slots: { default: [create_default_slot10] }, - $$scope: { ctx } - } - }); - return { - c() { - create_component(controls.$$.fragment); - t0 = space(); - div1 = element("div"); - div0 = element("div"); - create_component(ruler.$$.fragment); - t1 = space(); - create_component(column.$$.fragment); - attr(div0, "class", "scale-with-days svelte-1fzzjqj"); - attr(div1, "class", "vertical-scroller svelte-1fzzjqj"); - }, - m(target, anchor) { - mount_component(controls, target, anchor); - insert(target, t0, anchor); - insert(target, div1, anchor); - append(div1, div0); - mount_component(ruler, div0, null); - append(div0, t1); - mount_component(column, div0, null); - current = true; - if (!mounted) { - dispose = [ - listen( - div1, - "mouseenter", - /*handleMouseEnter*/ - ctx[6] - ), - listen( - div1, - "mouseleave", - /*handleMouseLeave*/ - ctx[7] - ) - ]; - mounted = true; - } - }, - p(ctx2, [dirty]) { - const controls_changes = {}; - if (dirty & /*$visibleDayInTimeline*/ - 8) - controls_changes.day = /*$visibleDayInTimeline*/ - ctx2[3]; - if (dirty & /*obsidianFacade*/ - 1) - controls_changes.obsidianFacade = /*obsidianFacade*/ - ctx2[0]; - controls.$set(controls_changes); - const ruler_changes = {}; - if (dirty & /*$visibleHours*/ - 16) - ruler_changes.visibleHours = /*$visibleHours*/ - ctx2[4]; - ruler.$set(ruler_changes); - const column_changes = {}; - if (dirty & /*$visibleHours*/ - 16) - column_changes.visibleHours = /*$visibleHours*/ - ctx2[4]; - if (dirty & /*$$scope, $visibleDayInTimeline, obsidianFacade, onUpdate, $parsedTasks, userHoversOverScroller*/ - 559) { - column_changes.$$scope = { dirty, ctx: ctx2 }; - } - column.$set(column_changes); - }, - i(local) { - if (current) - return; - transition_in(controls.$$.fragment, local); - transition_in(ruler.$$.fragment, local); - transition_in(column.$$.fragment, local); - current = true; - }, - o(local) { - transition_out(controls.$$.fragment, local); - transition_out(ruler.$$.fragment, local); - transition_out(column.$$.fragment, local); - current = false; - }, - d(detaching) { - destroy_component(controls, detaching); - if (detaching) - detach(t0); - if (detaching) - detach(div1); - destroy_component(ruler); - destroy_component(column); - mounted = false; - run_all(dispose); - } - }; -} -function instance17($$self, $$props, $$invalidate) { - let $visibleDayInTimeline; - let $visibleHours; - let $parsedTasks; - component_subscribe($$self, visibleDayInTimeline, ($$value) => $$invalidate(3, $visibleDayInTimeline = $$value)); - component_subscribe($$self, visibleHours, ($$value) => $$invalidate(4, $visibleHours = $$value)); - let { obsidianFacade } = $$props; - let { onUpdate } = $$props; - let userHoversOverScroller = false; - function handleMouseEnter() { - $$invalidate(2, userHoversOverScroller = true); - } - function handleMouseLeave() { - $$invalidate(2, userHoversOverScroller = false); - } - const parsedTasks = derived( - visibleDayInTimeline, - (v, set) => { - const note = (0, import_obsidian_daily_notes_interface4.getDailyNote)(v, (0, import_obsidian_daily_notes_interface4.getAllDailyNotes)()); - obsidianFacade.getPlanItemsFromFile(note).then((v2) => set(addPlacing(v2))); - }, - [] - ); - component_subscribe($$self, parsedTasks, (value) => $$invalidate(5, $parsedTasks = value)); - $$self.$$set = ($$props2) => { - if ("obsidianFacade" in $$props2) - $$invalidate(0, obsidianFacade = $$props2.obsidianFacade); - if ("onUpdate" in $$props2) - $$invalidate(1, onUpdate = $$props2.onUpdate); - }; - return [ - obsidianFacade, - onUpdate, - userHoversOverScroller, - $visibleDayInTimeline, - $visibleHours, - $parsedTasks, - handleMouseEnter, - handleMouseLeave, - parsedTasks - ]; -} -var Timeline = class extends SvelteComponent { - constructor(options) { - super(); - init(this, options, instance17, create_fragment21, safe_not_equal, { obsidianFacade: 0, onUpdate: 1 }, add_css9); - } -}; -var timeline_default = Timeline; - -// src/ui/timeline-view.ts -var TimelineView = class extends import_obsidian4.ItemView { - constructor(leaf, settings2, obsidianFacade, planEditor) { - super(leaf); - this.settings = settings2; - this.obsidianFacade = obsidianFacade; - this.planEditor = planEditor; - } - getViewType() { - return viewTypeTimeline; - } - getDisplayText() { - return "Day Planner Timeline"; - } - getIcon() { - return this.settings.timelineIcon; - } - async onOpen() { - const contentEl = this.containerEl.children[1]; - this.timeline = new timeline_default({ - target: contentEl, - props: { - obsidianFacade: this.obsidianFacade, - onUpdate: this.planEditor.syncTasksWithFile - } - }); - } - async onClose() { - var _a; - (_a = this.timeline) == null ? void 0 : _a.$destroy(); - } -}; - -// src/ui/weekly-view.ts -var import_obsidian5 = require("obsidian"); - -// src/ui/components/week/header-actions.svelte -function add_css10(target) { - append_styles(target, "svelte-vfradk", ".range.svelte-vfradk{flex:1 0 0;margin-right:10px;white-space:nowrap}"); -} -function create_default_slot_22(ctx) { - let arrowlefttoline; - let current; - arrowlefttoline = new Arrow_left_to_line$1({ props: { class: "svg-icon" } }); - return { - c() { - create_component(arrowlefttoline.$$.fragment); - }, - m(target, anchor) { - mount_component(arrowlefttoline, target, anchor); - current = true; - }, - p: noop, - i(local) { - if (current) - return; - transition_in(arrowlefttoline.$$.fragment, local); - current = true; - }, - o(local) { - transition_out(arrowlefttoline.$$.fragment, local); - current = false; - }, - d(detaching) { - destroy_component(arrowlefttoline, detaching); - } - }; -} -function create_default_slot_12(ctx) { - let circledoticon; - let current; - circledoticon = new Circle_dot$1({ props: { class: "svg-icon" } }); - return { - c() { - create_component(circledoticon.$$.fragment); - }, - m(target, anchor) { - mount_component(circledoticon, target, anchor); - current = true; - }, - p: noop, - i(local) { - if (current) - return; - transition_in(circledoticon.$$.fragment, local); - current = true; - }, - o(local) { - transition_out(circledoticon.$$.fragment, local); - current = false; - }, - d(detaching) { - destroy_component(circledoticon, detaching); - } - }; -} -function create_default_slot11(ctx) { - let arrowrighttoline; - let current; - arrowrighttoline = new Arrow_right_to_line$1({ props: { class: "svg-icon" } }); - return { - c() { - create_component(arrowrighttoline.$$.fragment); - }, - m(target, anchor) { - mount_component(arrowrighttoline, target, anchor); - current = true; - }, - p: noop, - i(local) { - if (current) - return; - transition_in(arrowrighttoline.$$.fragment, local); - current = true; - }, - o(local) { - transition_out(arrowrighttoline.$$.fragment, local); - current = false; - }, - d(detaching) { - destroy_component(arrowrighttoline, detaching); - } - }; -} -function create_fragment22(ctx) { - let div1; - let div0; - let t0; - let t1; - let t2; - let t3; - let controlbutton0; - let t4; - let controlbutton1; - let t5; - let controlbutton2; - let current; - controlbutton0 = new control_button_default({ - props: { - label: "Show previous week", - $$slots: { default: [create_default_slot_22] }, - $$scope: { ctx } - } - }); - controlbutton0.$on( - "click", - /*handleShowPrevious*/ - ctx[2] - ); - controlbutton1 = new control_button_default({ - props: { - label: "Show current week", - $$slots: { default: [create_default_slot_12] }, - $$scope: { ctx } - } - }); - controlbutton1.$on( - "click", - /*handleShowCurrent*/ - ctx[3] - ); - controlbutton2 = new control_button_default({ - props: { - label: "Show next week", - $$slots: { default: [create_default_slot11] }, - $$scope: { ctx } - } - }); - controlbutton2.$on( - "click", - /*handleShowNext*/ - ctx[4] - ); - return { - c() { - div1 = element("div"); - div0 = element("div"); - t0 = text( - /*startOfRange*/ - ctx[1] - ); - t1 = text(" - "); - t2 = text( - /*endOfRange*/ - ctx[0] - ); - t3 = space(); - create_component(controlbutton0.$$.fragment); - t4 = space(); - create_component(controlbutton1.$$.fragment); - t5 = space(); - create_component(controlbutton2.$$.fragment); - attr(div0, "class", "range svelte-vfradk"); - attr(div1, "class", "view-header-nav-buttons"); - }, - m(target, anchor) { - insert(target, div1, anchor); - append(div1, div0); - append(div0, t0); - append(div0, t1); - append(div0, t2); - append(div1, t3); - mount_component(controlbutton0, div1, null); - append(div1, t4); - mount_component(controlbutton1, div1, null); - append(div1, t5); - mount_component(controlbutton2, div1, null); - current = true; - }, - p(ctx2, [dirty]) { - if (!current || dirty & /*startOfRange*/ - 2) - set_data( - t0, - /*startOfRange*/ - ctx2[1] - ); - if (!current || dirty & /*endOfRange*/ - 1) - set_data( - t2, - /*endOfRange*/ - ctx2[0] - ); - const controlbutton0_changes = {}; - if (dirty & /*$$scope*/ - 128) { - controlbutton0_changes.$$scope = { dirty, ctx: ctx2 }; - } - controlbutton0.$set(controlbutton0_changes); - const controlbutton1_changes = {}; - if (dirty & /*$$scope*/ - 128) { - controlbutton1_changes.$$scope = { dirty, ctx: ctx2 }; - } - controlbutton1.$set(controlbutton1_changes); - const controlbutton2_changes = {}; - if (dirty & /*$$scope*/ - 128) { - controlbutton2_changes.$$scope = { dirty, ctx: ctx2 }; - } - controlbutton2.$set(controlbutton2_changes); - }, - i(local) { - if (current) - return; - transition_in(controlbutton0.$$.fragment, local); - transition_in(controlbutton1.$$.fragment, local); - transition_in(controlbutton2.$$.fragment, local); - current = true; - }, - o(local) { - transition_out(controlbutton0.$$.fragment, local); - transition_out(controlbutton1.$$.fragment, local); - transition_out(controlbutton2.$$.fragment, local); - current = false; - }, - d(detaching) { - if (detaching) - detach(div1); - destroy_component(controlbutton0); - destroy_component(controlbutton1); - destroy_component(controlbutton2); - } - }; -} -function instance18($$self, $$props, $$invalidate) { - let firstDayOfShownWeek; - let startOfRange; - let endOfRange; - let $visibleDateRange; - component_subscribe($$self, visibleDateRange, ($$value) => $$invalidate(6, $visibleDateRange = $$value)); - function handleShowPrevious() { - const firstDayOfPreviousWeek = firstDayOfShownWeek.clone().subtract(1, "week"); - const daysOfPreviousWeek = getDaysOfWeek(firstDayOfPreviousWeek); - visibleDateRange.set(daysOfPreviousWeek); - } - function handleShowCurrent() { - visibleDateRange.set(getDaysOfCurrentWeek()); - } - function handleShowNext() { - const firstDayOfNextWeek = firstDayOfShownWeek.clone().add(1, "week"); - const daysOfNextWeek = getDaysOfWeek(firstDayOfNextWeek); - visibleDateRange.set(daysOfNextWeek); - } - $$self.$$.update = () => { - if ($$self.$$.dirty & /*$visibleDateRange*/ - 64) { - $: - $$invalidate(5, firstDayOfShownWeek = $visibleDateRange[0]); - } - if ($$self.$$.dirty & /*firstDayOfShownWeek*/ - 32) { - $: - $$invalidate(1, startOfRange = firstDayOfShownWeek.format("MMM, D")); - } - if ($$self.$$.dirty & /*$visibleDateRange*/ - 64) { - $: - $$invalidate(0, endOfRange = $visibleDateRange.at(-1).format("MMM, D")); - } - }; - return [ - endOfRange, - startOfRange, - handleShowPrevious, - handleShowCurrent, - handleShowNext, - firstDayOfShownWeek, - $visibleDateRange - ]; -} -var Header_actions = class extends SvelteComponent { - constructor(options) { - super(); - init(this, options, instance18, create_fragment22, safe_not_equal, {}, add_css10); - } -}; -var header_actions_default = Header_actions; - -// src/ui/components/week/week.svelte -var import_obsidian_daily_notes_interface5 = __toESM(require_main()); -function add_css11(target) { - append_styles(target, "svelte-8r78hm", ".corner.svelte-8r78hm{position:sticky;z-index:100;top:0;left:0;flex:0 0 var(--time-ruler-width);background-color:var(--background-primary);border:1px solid var(--background-modifier-border);border-top:none;border-left:none}.days.svelte-8r78hm{display:flex}.day-column.svelte-8r78hm{display:flex;flex:1 0 150px;flex-direction:column;background-color:var(--background-secondary);border-right:1px solid var(--background-modifier-border)}.week-header.svelte-8r78hm{position:sticky;z-index:10;top:0;display:flex}.day-header.svelte-8r78hm{flex:1 0 150px;padding:5px;background-color:var(--background-primary);border-right:1px solid var(--background-modifier-border);border-bottom:1px solid var(--background-modifier-border)}.today.svelte-8r78hm{color:white;background-color:var(--color-accent)}.scale-with-days.svelte-8r78hm{display:flex}"); -} -function get_each_context6(ctx, list, i) { - const child_ctx = ctx.slice(); - child_ctx[5] = list[i]; - return child_ctx; -} -function get_each_context_12(ctx, list, i) { - const child_ctx = ctx.slice(); - child_ctx[5] = list[i]; - return child_ctx; -} -function create_default_slot_13(ctx) { - let t_value = ( - /*day*/ - ctx[5].format("MMM D, ddd") + "" - ); - let t; - return { - c() { - t = text(t_value); - }, - m(target, anchor) { - insert(target, t, anchor); - }, - p(ctx2, dirty) { - if (dirty & /*$visibleDateRange*/ - 4 && t_value !== (t_value = /*day*/ - ctx2[5].format("MMM D, ddd") + "")) - set_data(t, t_value); - }, - d(detaching) { - if (detaching) - detach(t); - } - }; -} -function create_each_block_12(ctx) { - let div; - let controlbutton; - let div_1; - let __color_last; - let t; - let current; - function click_handler() { - return ( - /*click_handler*/ - ctx[4]( - /*day*/ - ctx[5] - ) - ); - } - controlbutton = new control_button_default({ - props: { - label: "Open note for day", - $$slots: { default: [create_default_slot_13] }, - $$scope: { ctx } - } - }); - controlbutton.$on("click", click_handler); - return { - c() { - div = element("div"); - div_1 = element("div"); - create_component(controlbutton.$$.fragment); - t = space(); - set_style(div_1, "display", "contents"); - set_style(div_1, "--color", __color_last = isToday( - /*day*/ - ctx[5] - ) ? "white" : "var(--icon-color)"); - attr(div, "class", "day-header svelte-8r78hm"); - toggle_class(div, "today", isToday( - /*day*/ - ctx[5] - )); - }, - m(target, anchor) { - insert(target, div, anchor); - append(div, div_1); - mount_component(controlbutton, div_1, null); - append(div, t); - current = true; - }, - p(new_ctx, dirty) { - ctx = new_ctx; - if (dirty & /*$visibleDateRange*/ - 4 && __color_last !== (__color_last = isToday( - /*day*/ - ctx[5] - ) ? "white" : "var(--icon-color)")) { - set_style(div_1, "--color", __color_last); - } - const controlbutton_changes = {}; - if (dirty & /*$$scope, $visibleDateRange*/ - 4100) { - controlbutton_changes.$$scope = { dirty, ctx }; - } - controlbutton.$set(controlbutton_changes); - if (!current || dirty & /*isToday, $visibleDateRange*/ - 4) { - toggle_class(div, "today", isToday( - /*day*/ - ctx[5] - )); - } - }, - i(local) { - if (current) - return; - transition_in(controlbutton.$$.fragment, local); - current = true; - }, - o(local) { - transition_out(controlbutton.$$.fragment, local); - current = false; - }, - d(detaching) { - if (detaching) - detach(div); - destroy_component(controlbutton); - } - }; -} -function create_if_block4(ctx) { - let needle; - let current; - needle = new needle_default({ props: { autoScrollBlocked: true } }); - return { - c() { - create_component(needle.$$.fragment); - }, - m(target, anchor) { - mount_component(needle, target, anchor); - current = true; - }, - i(local) { - if (current) - return; - transition_in(needle.$$.fragment, local); - current = true; - }, - o(local) { - transition_out(needle.$$.fragment, local); - current = false; - }, - d(detaching) { - destroy_component(needle, detaching); - } - }; -} -function create_catch_block(ctx) { - let pre; - let t0; - let t1_value = ( - /*error*/ - ctx[9] + "" - ); - let t1; - return { - c() { - pre = element("pre"); - t0 = text("Could not render tasks: "); - t1 = text(t1_value); - }, - m(target, anchor) { - insert(target, pre, anchor); - append(pre, t0); - append(pre, t1); - }, - p(ctx2, dirty) { - if (dirty & /*obsidianFacade, $visibleDateRange*/ - 5 && t1_value !== (t1_value = /*error*/ - ctx2[9] + "")) - set_data(t1, t1_value); - }, - i: noop, - o: noop, - d(detaching) { - if (detaching) - detach(pre); - } - }; -} -function create_then_block(ctx) { - let taskcontainer; - let current; - taskcontainer = new task_container_default({ - props: { - day: ( - /*day*/ - ctx[5] - ), - obsidianFacade: ( - /*obsidianFacade*/ - ctx[0] - ), - onUpdate: ( - /*onUpdate*/ - ctx[1] - ), - tasks: addPlacing( - /*tasks*/ - ctx[8] - ) - } - }); - return { - c() { - create_component(taskcontainer.$$.fragment); - }, - m(target, anchor) { - mount_component(taskcontainer, target, anchor); - current = true; - }, - p(ctx2, dirty) { - const taskcontainer_changes = {}; - if (dirty & /*$visibleDateRange*/ - 4) - taskcontainer_changes.day = /*day*/ - ctx2[5]; - if (dirty & /*obsidianFacade*/ - 1) - taskcontainer_changes.obsidianFacade = /*obsidianFacade*/ - ctx2[0]; - if (dirty & /*onUpdate*/ - 2) - taskcontainer_changes.onUpdate = /*onUpdate*/ - ctx2[1]; - if (dirty & /*obsidianFacade, $visibleDateRange*/ - 5) - taskcontainer_changes.tasks = addPlacing( - /*tasks*/ - ctx2[8] - ); - taskcontainer.$set(taskcontainer_changes); - }, - i(local) { - if (current) - return; - transition_in(taskcontainer.$$.fragment, local); - current = true; - }, - o(local) { - transition_out(taskcontainer.$$.fragment, local); - current = false; - }, - d(detaching) { - destroy_component(taskcontainer, detaching); - } - }; -} -function create_pending_block(ctx) { - return { - c: noop, - m: noop, - p: noop, - i: noop, - o: noop, - d: noop - }; -} -function create_default_slot12(ctx) { - let show_if = isToday( - /*day*/ - ctx[5] - ); - let t; - let await_block_anchor; - let promise; - let current; - let if_block = show_if && create_if_block4(ctx); - let info = { - ctx, - current: null, - token: null, - hasCatch: true, - pending: create_pending_block, - then: create_then_block, - catch: create_catch_block, - value: 8, - error: 9, - blocks: [, , ,] - }; - handle_promise(promise = /*obsidianFacade*/ - ctx[0].getPlanItemsFromFile((0, import_obsidian_daily_notes_interface5.getDailyNote)( - /*day*/ - ctx[5], - (0, import_obsidian_daily_notes_interface5.getAllDailyNotes)() - )), info); - return { - c() { - if (if_block) - if_block.c(); - t = space(); - await_block_anchor = empty(); - info.block.c(); - }, - m(target, anchor) { - if (if_block) - if_block.m(target, anchor); - insert(target, t, anchor); - insert(target, await_block_anchor, anchor); - info.block.m(target, info.anchor = anchor); - info.mount = () => await_block_anchor.parentNode; - info.anchor = await_block_anchor; - current = true; - }, - p(new_ctx, dirty) { - ctx = new_ctx; - if (dirty & /*$visibleDateRange*/ - 4) - show_if = isToday( - /*day*/ - ctx[5] - ); - if (show_if) { - if (if_block) { - if (dirty & /*$visibleDateRange*/ - 4) { - transition_in(if_block, 1); - } - } else { - if_block = create_if_block4(ctx); - if_block.c(); - transition_in(if_block, 1); - if_block.m(t.parentNode, t); - } - } else if (if_block) { - group_outros(); - transition_out(if_block, 1, 1, () => { - if_block = null; - }); - check_outros(); - } - info.ctx = ctx; - if (dirty & /*obsidianFacade, $visibleDateRange*/ - 5 && promise !== (promise = /*obsidianFacade*/ - ctx[0].getPlanItemsFromFile((0, import_obsidian_daily_notes_interface5.getDailyNote)( - /*day*/ - ctx[5], - (0, import_obsidian_daily_notes_interface5.getAllDailyNotes)() - ))) && handle_promise(promise, info)) { - } else { - update_await_block_branch(info, ctx, dirty); - } - }, - i(local) { - if (current) - return; - transition_in(if_block); - transition_in(info.block); - current = true; - }, - o(local) { - transition_out(if_block); - for (let i = 0; i < 3; i += 1) { - const block = info.blocks[i]; - transition_out(block); - } - current = false; - }, - d(detaching) { - if (if_block) - if_block.d(detaching); - if (detaching) - detach(t); - if (detaching) - detach(await_block_anchor); - info.block.d(detaching); - info.token = null; - info = null; - } - }; -} -function create_each_block6(ctx) { - let div1; - let div0; - let column; - let t; - let current; - column = new column_default({ - props: { - visibleHours: ( - /*$visibleHours*/ - ctx[3] - ), - $$slots: { default: [create_default_slot12] }, - $$scope: { ctx } - } - }); - return { - c() { - div1 = element("div"); - div0 = element("div"); - create_component(column.$$.fragment); - t = space(); - attr(div0, "class", "scale-with-days svelte-8r78hm"); - attr(div1, "class", "day-column svelte-8r78hm"); - }, - m(target, anchor) { - insert(target, div1, anchor); - append(div1, div0); - mount_component(column, div0, null); - append(div1, t); - current = true; - }, - p(ctx2, dirty) { - const column_changes = {}; - if (dirty & /*$visibleHours*/ - 8) - column_changes.visibleHours = /*$visibleHours*/ - ctx2[3]; - if (dirty & /*$$scope, obsidianFacade, $visibleDateRange, onUpdate*/ - 4103) { - column_changes.$$scope = { dirty, ctx: ctx2 }; - } - column.$set(column_changes); - }, - i(local) { - if (current) - return; - transition_in(column.$$.fragment, local); - current = true; - }, - o(local) { - transition_out(column.$$.fragment, local); - current = false; - }, - d(detaching) { - if (detaching) - detach(div1); - destroy_component(column); - } - }; -} -function create_fragment23(ctx) { - let div1; - let div0; - let t0; - let t1; - let div2; - let ruler; - let t2; - let current; - let each_value_1 = ( - /*$visibleDateRange*/ - ctx[2] - ); - let each_blocks_1 = []; - for (let i = 0; i < each_value_1.length; i += 1) { - each_blocks_1[i] = create_each_block_12(get_each_context_12(ctx, each_value_1, i)); - } - const out = (i) => transition_out(each_blocks_1[i], 1, 1, () => { - each_blocks_1[i] = null; - }); - ruler = new ruler_default({ - props: { visibleHours: ( - /*$visibleHours*/ - ctx[3] - ) } - }); - let each_value = ( - /*$visibleDateRange*/ - ctx[2] - ); - let each_blocks = []; - for (let i = 0; i < each_value.length; i += 1) { - each_blocks[i] = create_each_block6(get_each_context6(ctx, each_value, i)); - } - const out_1 = (i) => transition_out(each_blocks[i], 1, 1, () => { - each_blocks[i] = null; - }); - return { - c() { - div1 = element("div"); - div0 = element("div"); - t0 = space(); - for (let i = 0; i < each_blocks_1.length; i += 1) { - each_blocks_1[i].c(); - } - t1 = space(); - div2 = element("div"); - create_component(ruler.$$.fragment); - t2 = space(); - for (let i = 0; i < each_blocks.length; i += 1) { - each_blocks[i].c(); - } - attr(div0, "class", "corner svelte-8r78hm"); - attr(div1, "class", "week-header svelte-8r78hm"); - attr(div2, "class", "days svelte-8r78hm"); - }, - m(target, anchor) { - insert(target, div1, anchor); - append(div1, div0); - append(div1, t0); - for (let i = 0; i < each_blocks_1.length; i += 1) { - if (each_blocks_1[i]) { - each_blocks_1[i].m(div1, null); - } - } - insert(target, t1, anchor); - insert(target, div2, anchor); - mount_component(ruler, div2, null); - append(div2, t2); - for (let i = 0; i < each_blocks.length; i += 1) { - if (each_blocks[i]) { - each_blocks[i].m(div2, null); - } - } - current = true; - }, - p(ctx2, [dirty]) { - if (dirty & /*isToday, $visibleDateRange, obsidianFacade*/ - 5) { - each_value_1 = /*$visibleDateRange*/ - ctx2[2]; - let i; - for (i = 0; i < each_value_1.length; i += 1) { - const child_ctx = get_each_context_12(ctx2, each_value_1, i); - if (each_blocks_1[i]) { - each_blocks_1[i].p(child_ctx, dirty); - transition_in(each_blocks_1[i], 1); - } else { - each_blocks_1[i] = create_each_block_12(child_ctx); - each_blocks_1[i].c(); - transition_in(each_blocks_1[i], 1); - each_blocks_1[i].m(div1, null); - } - } - group_outros(); - for (i = each_value_1.length; i < each_blocks_1.length; i += 1) { - out(i); - } - check_outros(); - } - const ruler_changes = {}; - if (dirty & /*$visibleHours*/ - 8) - ruler_changes.visibleHours = /*$visibleHours*/ - ctx2[3]; - ruler.$set(ruler_changes); - if (dirty & /*$visibleHours, obsidianFacade, getDailyNote, $visibleDateRange, getAllDailyNotes, onUpdate, addPlacing, isToday*/ - 15) { - each_value = /*$visibleDateRange*/ - ctx2[2]; - let i; - for (i = 0; i < each_value.length; i += 1) { - const child_ctx = get_each_context6(ctx2, each_value, i); - if (each_blocks[i]) { - each_blocks[i].p(child_ctx, dirty); - transition_in(each_blocks[i], 1); - } else { - each_blocks[i] = create_each_block6(child_ctx); - each_blocks[i].c(); - transition_in(each_blocks[i], 1); - each_blocks[i].m(div2, null); - } - } - group_outros(); - for (i = each_value.length; i < each_blocks.length; i += 1) { - out_1(i); - } - check_outros(); - } - }, - i(local) { - if (current) - return; - for (let i = 0; i < each_value_1.length; i += 1) { - transition_in(each_blocks_1[i]); - } - transition_in(ruler.$$.fragment, local); - for (let i = 0; i < each_value.length; i += 1) { - transition_in(each_blocks[i]); - } - current = true; - }, - o(local) { - each_blocks_1 = each_blocks_1.filter(Boolean); - for (let i = 0; i < each_blocks_1.length; i += 1) { - transition_out(each_blocks_1[i]); - } - transition_out(ruler.$$.fragment, local); - each_blocks = each_blocks.filter(Boolean); - for (let i = 0; i < each_blocks.length; i += 1) { - transition_out(each_blocks[i]); - } - current = false; - }, - d(detaching) { - if (detaching) - detach(div1); - destroy_each(each_blocks_1, detaching); - if (detaching) - detach(t1); - if (detaching) - detach(div2); - destroy_component(ruler); - destroy_each(each_blocks, detaching); - } - }; -} -function instance19($$self, $$props, $$invalidate) { - let $visibleDateRange; - let $visibleHours; - component_subscribe($$self, visibleDateRange, ($$value) => $$invalidate(2, $visibleDateRange = $$value)); - component_subscribe($$self, visibleHours, ($$value) => $$invalidate(3, $visibleHours = $$value)); - let { obsidianFacade } = $$props; - let { onUpdate } = $$props; - const click_handler = async (day) => await obsidianFacade.openFileForDay(day); - $$self.$$set = ($$props2) => { - if ("obsidianFacade" in $$props2) - $$invalidate(0, obsidianFacade = $$props2.obsidianFacade); - if ("onUpdate" in $$props2) - $$invalidate(1, onUpdate = $$props2.onUpdate); - }; - return [obsidianFacade, onUpdate, $visibleDateRange, $visibleHours, click_handler]; -} -var Week = class extends SvelteComponent { - constructor(options) { - super(); - init(this, options, instance19, create_fragment23, safe_not_equal, { obsidianFacade: 0, onUpdate: 1 }, add_css11); - } -}; -var week_default = Week; - -// src/ui/weekly-view.ts -var WeeklyView = class extends import_obsidian5.ItemView { - constructor(leaf, settings2, obsidianFacade, planEditor) { - super(leaf); - this.settings = settings2; - this.obsidianFacade = obsidianFacade; - this.planEditor = planEditor; - } - getViewType() { - return viewTypeWeekly; - } - getDisplayText() { - return "Week Planner"; - } - getIcon() { - return this.settings.timelineIcon; - } - async onOpen() { - const headerEl = this.containerEl.children[0]; - const contentEl = this.containerEl.children[1]; - const viewActionsEl = headerEl.querySelector(".view-actions"); - const customActionsEl = createDiv(); - viewActionsEl.prepend(customActionsEl); - this.headerActionsComponent = new header_actions_default({ - target: customActionsEl - }); - this.weekComponent = new week_default({ - target: contentEl, - props: { - obsidianFacade: this.obsidianFacade, - onUpdate: this.planEditor.syncTasksWithFile - } - }); - } - async onClose() { - var _a, _b; - (_a = this.weekComponent) == null ? void 0 : _a.$destroy(); - (_b = this.headerActionsComponent) == null ? void 0 : _b.$destroy(); - } -}; - -// src/main.ts -var DayPlanner = class extends import_obsidian6.Plugin { - constructor() { - super(...arguments); - this.handleActiveLeafChanged = ({ view }) => { - if (!(view instanceof import_obsidian6.FileView) || !view.file) { - return; - } - const dayUserSwitchedTo = (0, import_obsidian_daily_notes_interface6.getDateFromFile)(view.file, "day"); - if (dayUserSwitchedTo.isSame(get_store_value(visibleDayInTimeline), "day")) { - return; - } - if (!dayUserSwitchedTo) { - if (isToday(get_store_value(visibleDayInTimeline))) { - visibleDayInTimeline.set(window.moment()); - } - return; - } - visibleDayInTimeline.set(dayUserSwitchedTo); - }; - this.handleLayoutReady = async () => { - visibleDateRange.set(getDaysOfCurrentWeek()); - }; - this.updateStatusBar = async () => { - if (dailyNoteExists()) { - const note = (0, import_obsidian_daily_notes_interface6.getDailyNote)(window.moment(), (0, import_obsidian_daily_notes_interface6.getAllDailyNotes)()); - const planItems = await this.obsidianFacade.getPlanItemsFromFile(note); - await this.statusBar.update(planItems); - } else { - this.statusBar.setEmpty(); - } - }; - } - async onload() { - this.settings = Object.assign( - new DayPlannerSettings(), - await this.loadData() - ); - this.statusBar = new StatusBar( - this.settings, - this.addStatusBarItem(), - this.app.workspace - ); - this.registerCommands(); - this.obsidianFacade = new ObsidianFacade( - this.app.workspace, - this.app.vault, - this.app.metadataCache, - this.settings - ); - this.planEditor = new PlanEditor(this.settings, this.obsidianFacade); - this.registerView( - viewTypeTimeline, - (leaf) => new TimelineView( - leaf, - this.settings, - this.obsidianFacade, - this.planEditor - ) - ); - this.registerView( - viewTypeWeekly, - (leaf) => new WeeklyView( - leaf, - this.settings, - this.obsidianFacade, - this.planEditor - ) - ); - this.addRibbonIcon( - "calendar-range", - "Week plan", - async () => await this.initWeeklyLeaf() - ); - this.addSettingTab(new DayPlannerSettingsTab(this.app, this)); - this.initAppAndSettingsStores(); - this.app.workspace.onLayoutReady(this.handleLayoutReady); - this.app.workspace.on("active-leaf-change", this.handleActiveLeafChanged); - this.app.metadataCache.on("changed", async (file) => { - visibleDateRange.update((prev) => [...prev]); - visibleDayInTimeline.update((prev) => prev.clone()); - }); - this.registerInterval( - window.setInterval( - () => this.updateStatusBarOnFailed(this.updateStatusBar), - 5e3 - ) - ); - } - registerCommands() { - this.addCommand({ - id: "show-day-planner-timeline", - name: "Show the Day Planner Timeline", - callback: async () => await this.initTimelineLeaf() - }); - this.addCommand({ - id: "show-weekly-view", - name: "Show the Week Planner", - callback: async () => await this.initWeeklyLeaf() - }); - this.addCommand({ - id: "show-day-planner-today-note", - name: "Open today's Day Planner", - callback: async () => this.app.workspace.getLeaf(false).openFile(await createDailyNoteIfNeeded(window.moment())) - }); - this.addCommand({ - id: "insert-planner-heading-at-cursor", - name: "Insert Planner Heading at Cursor", - editorCallback: (editor) => editor.replaceSelection(this.planEditor.createPlannerHeading()) - }); - } - initAppAndSettingsStores() { - appStore.set(this.app); - const { - zoomLevel, - centerNeedle, - startHour, - timelineDateFormat, - plannerHeading, - plannerHeadingLevel, - timelineColored, - timelineStartColor, - timelineEndColor, - showHelp - } = this.settings; - settings.set({ - zoomLevel, - centerNeedle, - startHour, - timelineDateFormat, - plannerHeading, - plannerHeadingLevel, - timelineColored, - timelineStartColor, - timelineEndColor, - showHelp - }); - settings.subscribe(async (newValue) => { - this.settings = { ...this.settings, ...newValue }; - await this.saveData(this.settings); - }); - } - onunload() { - this.detachLeavesOfType(viewTypeTimeline); - this.detachLeavesOfType(viewTypeWeekly); - } - async updateStatusBarOnFailed(fn) { - try { - await fn(); - } catch (error) { - this.statusBar.setText(`\u26A0\uFE0F Planner update failed (see console)`); - console.error(error); - } - } - async initWeeklyLeaf() { - this.detachLeavesOfType(viewTypeWeekly); - await this.app.workspace.getLeaf(false).setViewState({ - type: viewTypeWeekly, - active: true - }); - } - async initTimelineLeaf() { - this.detachLeavesOfType(viewTypeTimeline); - await this.app.workspace.getRightLeaf(false).setViewState({ - type: viewTypeTimeline, - active: true - }); - this.app.workspace.rightSplit.expand(); - } - detachLeavesOfType(type) { - this.app.workspace.getLeavesOfType(type).forEach((leaf) => leaf.detach()); - } -}; -/*! Bundled license information: - -lodash/lodash.min.js: - (** - * @license - * Lodash - * Copyright OpenJS Foundation and other contributors - * Released under MIT license - * Based on Underscore.js 1.8.3 - * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - *) - -fraction.js/fraction.js: - (** - * @license Fraction.js v4.1.1 23/05/2021 - * https://www.xarg.org/2014/03/rational-numbers-in-javascript/ - * - * Copyright (c) 2021, Robert Eisele (robert@xarg.org) - * Dual licensed under the MIT or GPL Version 2 licenses. - **) - -lodash/lodash.js: - (** - * @license - * Lodash - * Copyright OpenJS Foundation and other contributors - * Released under MIT license - * Based on Underscore.js 1.8.3 - * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - *) - -chroma-js/chroma.js: - (** - * chroma.js - JavaScript library for color conversions - * - * Copyright (c) 2011-2019, Gregor Aisch - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * 3. The name Gregor Aisch may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL GREGOR AISCH OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, - * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * ------------------------------------------------------- - * - * chroma.js includes colors from colorbrewer2.org, which are released under - * the following license: - * - * Copyright (c) 2002 Cynthia Brewer, Mark Harrower, - * and The Pennsylvania State University. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the License for the specific - * language governing permissions and limitations under the License. - * - * ------------------------------------------------------ - * - * Named colors are taken from X11 Color Names. - * http://www.w3.org/TR/css3-color/#svg-color - * - * @preserve - *) -*/ diff --git a/.obsidian/plugins/obsidian-day-planner/manifest.json b/.obsidian/plugins/obsidian-day-planner/manifest.json deleted file mode 100644 index 2a1e7f1..0000000 --- a/.obsidian/plugins/obsidian-day-planner/manifest.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "id": "obsidian-day-planner", - "name": "Day Planner", - "version": "0.10.1", - "minAppVersion": "0.16.0", - "description": "A day planner with clean UI and readable syntax", - "author": "James Lynch, continued by Ivan Lednev", - "authorUrl": "https://github.com/ivan-lednev", - "fundingUrl": "https://www.buymeacoffee.com/machineelf", - "isDesktopOnly": false -} diff --git a/.obsidian/plugins/obsidian-day-planner/styles.css b/.obsidian/plugins/obsidian-day-planner/styles.css deleted file mode 100644 index a47ec94..0000000 --- a/.obsidian/plugins/obsidian-day-planner/styles.css +++ /dev/null @@ -1,463 +0,0 @@ -/* src/styles.scss */ -.progress-pie { - width: 60px; - height: 60px; - border-radius: 50%; - background: #eee; - background-image: linear-gradient(to right, transparent 50%, #4CC9D8 0); - position: relative; - display: inline-block; -} -.progress-pie::before { - content: ""; - display: block; - margin-left: 50%; - height: 100%; - border-radius: 0 100% 100% 0/50%; - background-color: inherit; - transform-origin: left; -} -.progress-pie::after { - content: attr(data-value); - position: absolute; - width: 70%; - height: 70%; - margin: auto; - border-radius: 50%; - background-color: #fff; - left: 0; - right: 0; - top: 0; - bottom: 0; - text-align: center; - font: 900 20px/41px Tahoma; -} -.progress-pie[data-value="0"]:before { - transform: rotate(0turn); -} -.progress-pie[data-value="1"]:before { - transform: rotate(0.01turn); -} -.progress-pie[data-value="2"]:before { - transform: rotate(0.02turn); -} -.progress-pie[data-value="3"]:before { - transform: rotate(0.03turn); -} -.progress-pie[data-value="4"]:before { - transform: rotate(0.04turn); -} -.progress-pie[data-value="5"]:before { - transform: rotate(0.05turn); -} -.progress-pie[data-value="6"]:before { - transform: rotate(0.06turn); -} -.progress-pie[data-value="7"]:before { - transform: rotate(0.07turn); -} -.progress-pie[data-value="8"]:before { - transform: rotate(0.08turn); -} -.progress-pie[data-value="9"]:before { - transform: rotate(0.09turn); -} -.progress-pie[data-value="10"]:before { - transform: rotate(0.1turn); -} -.progress-pie[data-value="11"]:before { - transform: rotate(0.11turn); -} -.progress-pie[data-value="12"]:before { - transform: rotate(0.12turn); -} -.progress-pie[data-value="13"]:before { - transform: rotate(0.13turn); -} -.progress-pie[data-value="14"]:before { - transform: rotate(0.14turn); -} -.progress-pie[data-value="15"]:before { - transform: rotate(0.15turn); -} -.progress-pie[data-value="16"]:before { - transform: rotate(0.16turn); -} -.progress-pie[data-value="17"]:before { - transform: rotate(0.17turn); -} -.progress-pie[data-value="18"]:before { - transform: rotate(0.18turn); -} -.progress-pie[data-value="19"]:before { - transform: rotate(0.19turn); -} -.progress-pie[data-value="20"]:before { - transform: rotate(0.2turn); -} -.progress-pie[data-value="21"]:before { - transform: rotate(0.21turn); -} -.progress-pie[data-value="22"]:before { - transform: rotate(0.22turn); -} -.progress-pie[data-value="23"]:before { - transform: rotate(0.23turn); -} -.progress-pie[data-value="24"]:before { - transform: rotate(0.24turn); -} -.progress-pie[data-value="25"]:before { - transform: rotate(0.25turn); -} -.progress-pie[data-value="26"]:before { - transform: rotate(0.26turn); -} -.progress-pie[data-value="27"]:before { - transform: rotate(0.27turn); -} -.progress-pie[data-value="28"]:before { - transform: rotate(0.28turn); -} -.progress-pie[data-value="29"]:before { - transform: rotate(0.29turn); -} -.progress-pie[data-value="30"]:before { - transform: rotate(0.3turn); -} -.progress-pie[data-value="31"]:before { - transform: rotate(0.31turn); -} -.progress-pie[data-value="32"]:before { - transform: rotate(0.32turn); -} -.progress-pie[data-value="33"]:before { - transform: rotate(0.33turn); -} -.progress-pie[data-value="34"]:before { - transform: rotate(0.34turn); -} -.progress-pie[data-value="35"]:before { - transform: rotate(0.35turn); -} -.progress-pie[data-value="36"]:before { - transform: rotate(0.36turn); -} -.progress-pie[data-value="37"]:before { - transform: rotate(0.37turn); -} -.progress-pie[data-value="38"]:before { - transform: rotate(0.38turn); -} -.progress-pie[data-value="39"]:before { - transform: rotate(0.39turn); -} -.progress-pie[data-value="40"]:before { - transform: rotate(0.4turn); -} -.progress-pie[data-value="41"]:before { - transform: rotate(0.41turn); -} -.progress-pie[data-value="42"]:before { - transform: rotate(0.42turn); -} -.progress-pie[data-value="43"]:before { - transform: rotate(0.43turn); -} -.progress-pie[data-value="44"]:before { - transform: rotate(0.44turn); -} -.progress-pie[data-value="45"]:before { - transform: rotate(0.45turn); -} -.progress-pie[data-value="46"]:before { - transform: rotate(0.46turn); -} -.progress-pie[data-value="47"]:before { - transform: rotate(0.47turn); -} -.progress-pie[data-value="48"]:before { - transform: rotate(0.48turn); -} -.progress-pie[data-value="49"]:before { - transform: rotate(0.49turn); -} -.progress-pie[data-value="50"]:before { - transform: rotate(0.5turn); -} -.progress-pie[data-value="51"]:before { - background-color: #4CC9D8; - transform: rotate(0.01turn); -} -.progress-pie[data-value="52"]:before { - background-color: #4CC9D8; - transform: rotate(0.02turn); -} -.progress-pie[data-value="53"]:before { - background-color: #4CC9D8; - transform: rotate(0.03turn); -} -.progress-pie[data-value="54"]:before { - background-color: #4CC9D8; - transform: rotate(0.04turn); -} -.progress-pie[data-value="55"]:before { - background-color: #4CC9D8; - transform: rotate(0.05turn); -} -.progress-pie[data-value="56"]:before { - background-color: #4CC9D8; - transform: rotate(0.06turn); -} -.progress-pie[data-value="57"]:before { - background-color: #4CC9D8; - transform: rotate(0.07turn); -} -.progress-pie[data-value="58"]:before { - background-color: #4CC9D8; - transform: rotate(0.08turn); -} -.progress-pie[data-value="59"]:before { - background-color: #4CC9D8; - transform: rotate(0.09turn); -} -.progress-pie[data-value="60"]:before { - background-color: #4CC9D8; - transform: rotate(0.1turn); -} -.progress-pie[data-value="61"]:before { - background-color: #4CC9D8; - transform: rotate(0.11turn); -} -.progress-pie[data-value="62"]:before { - background-color: #4CC9D8; - transform: rotate(0.12turn); -} -.progress-pie[data-value="63"]:before { - background-color: #4CC9D8; - transform: rotate(0.13turn); -} -.progress-pie[data-value="64"]:before { - background-color: #4CC9D8; - transform: rotate(0.14turn); -} -.progress-pie[data-value="65"]:before { - background-color: #4CC9D8; - transform: rotate(0.15turn); -} -.progress-pie[data-value="66"]:before { - background-color: #4CC9D8; - transform: rotate(0.16turn); -} -.progress-pie[data-value="67"]:before { - background-color: #4CC9D8; - transform: rotate(0.17turn); -} -.progress-pie[data-value="68"]:before { - background-color: #4CC9D8; - transform: rotate(0.18turn); -} -.progress-pie[data-value="69"]:before { - background-color: #4CC9D8; - transform: rotate(0.19turn); -} -.progress-pie[data-value="70"]:before { - background-color: #4CC9D8; - transform: rotate(0.2turn); -} -.progress-pie[data-value="71"]:before { - background-color: #4CC9D8; - transform: rotate(0.21turn); -} -.progress-pie[data-value="72"]:before { - background-color: #4CC9D8; - transform: rotate(0.22turn); -} -.progress-pie[data-value="73"]:before { - background-color: #4CC9D8; - transform: rotate(0.23turn); -} -.progress-pie[data-value="74"]:before { - background-color: #4CC9D8; - transform: rotate(0.24turn); -} -.progress-pie[data-value="75"]:before { - background-color: #4CC9D8; - transform: rotate(0.25turn); -} -.progress-pie[data-value="76"]:before { - background-color: #4CC9D8; - transform: rotate(0.26turn); -} -.progress-pie[data-value="77"]:before { - background-color: #4CC9D8; - transform: rotate(0.27turn); -} -.progress-pie[data-value="78"]:before { - background-color: #4CC9D8; - transform: rotate(0.28turn); -} -.progress-pie[data-value="79"]:before { - background-color: #4CC9D8; - transform: rotate(0.29turn); -} -.progress-pie[data-value="80"]:before { - background-color: #4CC9D8; - transform: rotate(0.3turn); -} -.progress-pie[data-value="81"]:before { - background-color: #4CC9D8; - transform: rotate(0.31turn); -} -.progress-pie[data-value="82"]:before { - background-color: #4CC9D8; - transform: rotate(0.32turn); -} -.progress-pie[data-value="83"]:before { - background-color: #4CC9D8; - transform: rotate(0.33turn); -} -.progress-pie[data-value="84"]:before { - background-color: #4CC9D8; - transform: rotate(0.34turn); -} -.progress-pie[data-value="85"]:before { - background-color: #4CC9D8; - transform: rotate(0.35turn); -} -.progress-pie[data-value="86"]:before { - background-color: #4CC9D8; - transform: rotate(0.36turn); -} -.progress-pie[data-value="87"]:before { - background-color: #4CC9D8; - transform: rotate(0.37turn); -} -.progress-pie[data-value="88"]:before { - background-color: #4CC9D8; - transform: rotate(0.38turn); -} -.progress-pie[data-value="89"]:before { - background-color: #4CC9D8; - transform: rotate(0.39turn); -} -.progress-pie[data-value="90"]:before { - background-color: #4CC9D8; - transform: rotate(0.4turn); -} -.progress-pie[data-value="91"]:before { - background-color: #4CC9D8; - transform: rotate(0.41turn); -} -.progress-pie[data-value="92"]:before { - background-color: #4CC9D8; - transform: rotate(0.42turn); -} -.progress-pie[data-value="93"]:before { - background-color: #4CC9D8; - transform: rotate(0.43turn); -} -.progress-pie[data-value="94"]:before { - background-color: #4CC9D8; - transform: rotate(0.44turn); -} -.progress-pie[data-value="95"]:before { - background-color: #4CC9D8; - transform: rotate(0.45turn); -} -.progress-pie[data-value="96"]:before { - background-color: #4CC9D8; - transform: rotate(0.46turn); -} -.progress-pie[data-value="97"]:before { - background-color: #4CC9D8; - transform: rotate(0.47turn); -} -.progress-pie[data-value="98"]:before { - background-color: #4CC9D8; - transform: rotate(0.48turn); -} -.progress-pie[data-value="99"]:before { - background-color: #4CC9D8; - transform: rotate(0.49turn); -} -.progress-pie[data-value="100"]:before { - background-color: #4CC9D8; - transform: rotate(0.5turn); -} -.day-planner { - position: relative; -} -.day-planner .status-bar-item-segment:hover { - cursor: pointer; -} -.day-planner-progress-bar { - overflow: hidden; - display: flex; - align-items: stretch; - align-self: stretch; - min-width: 100px; - background-color: var(--text-faint); - border-radius: var(--radius-s); -} -.day-planner-progress-value { - background-color: var(--color-accent); -} -.day-planner-progress-value.green, -.day-planner .progress-pie.green::before { - background-color: #4caf50; -} -.day-planner .progress-pie.green { - background-image: linear-gradient(to right, transparent 50%, #4caf50 0); -} -.day-planner-status-bar-text { - float: left; - margin-right: 10px; -} -.day-planner-status-card { - position: absolute; - top: -140px; - display: none; - width: 300px; - padding: 8px; - background-color: var(--background-secondary-alt); - border-radius: 4px; -} -.day-planner-status-card .arrow-down { - position: absolute; - width: 20px; - border-top: 20px solid var(--background-secondary-alt); - border-right: 20px solid transparent; - border-left: 20px solid transparent; -} -.progress-pie.day-planner { - float: left; - display: none; - width: 20px; - height: 20px; - margin: 0.3px 10px 0.3px 0; - background-color: var(--text-muted); -} -.progress-pie.day-planner::after { - width: 80%; - height: 80%; -} -.progress-pie.day-planner::after { - font-size: 8px; - font-weight: 900; - line-height: 13px; - color: transparent; - background-color: transparent; -} -[data-type=timeline] .view-content, -[data-type=weekly] .view-content { - --time-ruler-width: 30px; - display: flex; - flex-direction: column; - padding: 0; -} -.absolute-stretch-x { - position: absolute; - right: 0; - left: 0; -} diff --git a/.obsidian/plugins/obsidian-full-calendar/data.json b/.obsidian/plugins/obsidian-full-calendar/data.json new file mode 100644 index 0000000..5e3cbb8 --- /dev/null +++ b/.obsidian/plugins/obsidian-full-calendar/data.json @@ -0,0 +1,29 @@ +{ + "calendarSources": [ + { + "type": "caldav", + "name": "Personal", + "url": "https://cloud.borishub.co.uk/remote.php/dav", + "homeUrl": "https://cloud.borishub.co.uk/remote.php/dav/calendars/boris/personal/", + "color": "#795AAB", + "username": "boris", + "password": "9PFNM-dwLnK-ZPAQq-ndZNa-H2YSa" + }, + { + "type": "caldav", + "name": "Contact birthdays", + "url": "https://cloud.borishub.co.uk/remote.php/dav", + "homeUrl": "https://cloud.borishub.co.uk/remote.php/dav/calendars/boris/contact_birthdays/", + "color": "#E9D859", + "username": "boris", + "password": "9PFNM-dwLnK-ZPAQq-ndZNa-H2YSa" + } + ], + "defaultCalendar": 0, + "firstDay": 0, + "initialView": { + "desktop": "timeGridWeek", + "mobile": "timeGrid3Days" + }, + "timeFormat24h": false +} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-full-calendar/main.js b/.obsidian/plugins/obsidian-full-calendar/main.js new file mode 100644 index 0000000..42607a8 --- /dev/null +++ b/.obsidian/plugins/obsidian-full-calendar/main.js @@ -0,0 +1,65473 @@ +/* +THIS IS A GENERATED/BUNDLED FILE BY ESBUILD +if you want to view the source, please visit the github repository of this plugin +*/ + +var __create = Object.create; +var __defProp = Object.defineProperty; +var __defProps = Object.defineProperties; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropDescs = Object.getOwnPropertyDescriptors; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getOwnPropSymbols = Object.getOwnPropertySymbols; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __propIsEnum = Object.prototype.propertyIsEnumerable; +var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __spreadValues = (a3, b3) => { + for (var prop in b3 || (b3 = {})) + if (__hasOwnProp.call(b3, prop)) + __defNormalProp(a3, prop, b3[prop]); + if (__getOwnPropSymbols) + for (var prop of __getOwnPropSymbols(b3)) { + if (__propIsEnum.call(b3, prop)) + __defNormalProp(a3, prop, b3[prop]); + } + return a3; +}; +var __spreadProps = (a3, b3) => __defProps(a3, __getOwnPropDescs(b3)); +var __markAsModule = (target) => __defProp(target, "__esModule", { value: true }); +var __objRest = (source, exclude) => { + var target = {}; + for (var prop in source) + if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0) + target[prop] = source[prop]; + if (source != null && __getOwnPropSymbols) + for (var prop of __getOwnPropSymbols(source)) { + if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop)) + target[prop] = source[prop]; + } + return target; +}; +var __commonJS = (cb, mod) => function __require() { + return mod || (0, cb[Object.keys(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; +}; +var __export = (target, all) => { + __markAsModule(target); + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __reExport = (target, module2, desc) => { + if (module2 && typeof module2 === "object" || typeof module2 === "function") { + for (let key of __getOwnPropNames(module2)) + if (!__hasOwnProp.call(target, key) && key !== "default") + __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable }); + } + return target; +}; +var __toModule = (module2) => { + return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2); +}; +var __async = (__this, __arguments, generator) => { + return new Promise((resolve, reject) => { + var fulfilled = (value) => { + try { + step(generator.next(value)); + } catch (e3) { + reject(e3); + } + }; + var rejected = (value) => { + try { + step(generator.throw(value)); + } catch (e3) { + reject(e3); + } + }; + var step = (x3) => x3.done ? resolve(x3.value) : Promise.resolve(x3.value).then(fulfilled, rejected); + step((generator = generator.apply(__this, __arguments)).next()); + }); +}; + +// node_modules/tslib/tslib.js +var require_tslib = __commonJS({ + "node_modules/tslib/tslib.js"(exports, module2) { + var __extends3; + var __assign3; + var __rest3; + var __decorate3; + var __param3; + var __metadata3; + var __awaiter3; + var __generator3; + var __exportStar3; + var __values3; + var __read3; + var __spread3; + var __spreadArrays3; + var __spreadArray3; + var __await3; + var __asyncGenerator3; + var __asyncDelegator3; + var __asyncValues3; + var __makeTemplateObject3; + var __importStar3; + var __importDefault3; + var __classPrivateFieldGet3; + var __classPrivateFieldSet3; + var __createBinding3; + (function(factory) { + var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : {}; + if (typeof define === "function" && define.amd) { + define("tslib", ["exports"], function(exports2) { + factory(createExporter(root, createExporter(exports2))); + }); + } else if (typeof module2 === "object" && typeof module2.exports === "object") { + factory(createExporter(root, createExporter(module2.exports))); + } else { + factory(createExporter(root)); + } + function createExporter(exports2, previous) { + if (exports2 !== root) { + if (typeof Object.create === "function") { + Object.defineProperty(exports2, "__esModule", { value: true }); + } else { + exports2.__esModule = true; + } + } + return function(id, v3) { + return exports2[id] = previous ? previous(id, v3) : v3; + }; + } + })(function(exporter) { + var extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b3) { + d2.__proto__ = b3; + } || function(d2, b3) { + for (var p3 in b3) + if (Object.prototype.hasOwnProperty.call(b3, p3)) + d2[p3] = b3[p3]; + }; + __extends3 = function(d2, b3) { + if (typeof b3 !== "function" && b3 !== null) + throw new TypeError("Class extends value " + String(b3) + " is not a constructor or null"); + extendStatics(d2, b3); + function __() { + this.constructor = d2; + } + d2.prototype = b3 === null ? Object.create(b3) : (__.prototype = b3.prototype, new __()); + }; + __assign3 = Object.assign || function(t3) { + for (var s4, i3 = 1, n3 = arguments.length; i3 < n3; i3++) { + s4 = arguments[i3]; + for (var p3 in s4) + if (Object.prototype.hasOwnProperty.call(s4, p3)) + t3[p3] = s4[p3]; + } + return t3; + }; + __rest3 = function(s4, e3) { + var t3 = {}; + for (var p3 in s4) + if (Object.prototype.hasOwnProperty.call(s4, p3) && e3.indexOf(p3) < 0) + t3[p3] = s4[p3]; + if (s4 != null && typeof Object.getOwnPropertySymbols === "function") + for (var i3 = 0, p3 = Object.getOwnPropertySymbols(s4); i3 < p3.length; i3++) { + if (e3.indexOf(p3[i3]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p3[i3])) + t3[p3[i3]] = s4[p3[i3]]; + } + return t3; + }; + __decorate3 = function(decorators, target, key, desc) { + var c3 = arguments.length, r3 = c3 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d2; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") + r3 = Reflect.decorate(decorators, target, key, desc); + else + for (var i3 = decorators.length - 1; i3 >= 0; i3--) + if (d2 = decorators[i3]) + r3 = (c3 < 3 ? d2(r3) : c3 > 3 ? d2(target, key, r3) : d2(target, key)) || r3; + return c3 > 3 && r3 && Object.defineProperty(target, key, r3), r3; + }; + __param3 = function(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; + }; + __metadata3 = function(metadataKey, metadataValue) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") + return Reflect.metadata(metadataKey, metadataValue); + }; + __awaiter3 = function(thisArg, _arguments, P3, generator) { + function adopt(value) { + return value instanceof P3 ? value : new P3(function(resolve) { + resolve(value); + }); + } + return new (P3 || (P3 = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e3) { + reject(e3); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e3) { + reject(e3); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + __generator3 = function(thisArg, body) { + var _3 = { label: 0, sent: function() { + if (t3[0] & 1) + throw t3[1]; + return t3[1]; + }, trys: [], ops: [] }, f3, y3, t3, g4; + return g4 = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g4[Symbol.iterator] = function() { + return this; + }), g4; + function verb(n3) { + return function(v3) { + return step([n3, v3]); + }; + } + function step(op) { + if (f3) + throw new TypeError("Generator is already executing."); + while (_3) + try { + if (f3 = 1, y3 && (t3 = op[0] & 2 ? y3["return"] : op[0] ? y3["throw"] || ((t3 = y3["return"]) && t3.call(y3), 0) : y3.next) && !(t3 = t3.call(y3, op[1])).done) + return t3; + if (y3 = 0, t3) + op = [op[0] & 2, t3.value]; + switch (op[0]) { + case 0: + case 1: + t3 = op; + break; + case 4: + _3.label++; + return { value: op[1], done: false }; + case 5: + _3.label++; + y3 = op[1]; + op = [0]; + continue; + case 7: + op = _3.ops.pop(); + _3.trys.pop(); + continue; + default: + if (!(t3 = _3.trys, t3 = t3.length > 0 && t3[t3.length - 1]) && (op[0] === 6 || op[0] === 2)) { + _3 = 0; + continue; + } + if (op[0] === 3 && (!t3 || op[1] > t3[0] && op[1] < t3[3])) { + _3.label = op[1]; + break; + } + if (op[0] === 6 && _3.label < t3[1]) { + _3.label = t3[1]; + t3 = op; + break; + } + if (t3 && _3.label < t3[2]) { + _3.label = t3[2]; + _3.ops.push(op); + break; + } + if (t3[2]) + _3.ops.pop(); + _3.trys.pop(); + continue; + } + op = body.call(thisArg, _3); + } catch (e3) { + op = [6, e3]; + y3 = 0; + } finally { + f3 = t3 = 0; + } + if (op[0] & 5) + throw op[1]; + return { value: op[0] ? op[1] : void 0, done: true }; + } + }; + __exportStar3 = function(m3, o2) { + for (var p3 in m3) + if (p3 !== "default" && !Object.prototype.hasOwnProperty.call(o2, p3)) + __createBinding3(o2, m3, p3); + }; + __createBinding3 = Object.create ? function(o2, m3, k3, k22) { + if (k22 === void 0) + k22 = k3; + Object.defineProperty(o2, k22, { enumerable: true, get: function() { + return m3[k3]; + } }); + } : function(o2, m3, k3, k22) { + if (k22 === void 0) + k22 = k3; + o2[k22] = m3[k3]; + }; + __values3 = function(o2) { + var s4 = typeof Symbol === "function" && Symbol.iterator, m3 = s4 && o2[s4], i3 = 0; + if (m3) + return m3.call(o2); + if (o2 && typeof o2.length === "number") + return { + next: function() { + if (o2 && i3 >= o2.length) + o2 = void 0; + return { value: o2 && o2[i3++], done: !o2 }; + } + }; + throw new TypeError(s4 ? "Object is not iterable." : "Symbol.iterator is not defined."); + }; + __read3 = function(o2, n3) { + var m3 = typeof Symbol === "function" && o2[Symbol.iterator]; + if (!m3) + return o2; + var i3 = m3.call(o2), r3, ar = [], e3; + try { + while ((n3 === void 0 || n3-- > 0) && !(r3 = i3.next()).done) + ar.push(r3.value); + } catch (error) { + e3 = { error }; + } finally { + try { + if (r3 && !r3.done && (m3 = i3["return"])) + m3.call(i3); + } finally { + if (e3) + throw e3.error; + } + } + return ar; + }; + __spread3 = function() { + for (var ar = [], i3 = 0; i3 < arguments.length; i3++) + ar = ar.concat(__read3(arguments[i3])); + return ar; + }; + __spreadArrays3 = function() { + for (var s4 = 0, i3 = 0, il = arguments.length; i3 < il; i3++) + s4 += arguments[i3].length; + for (var r3 = Array(s4), k3 = 0, i3 = 0; i3 < il; i3++) + for (var a3 = arguments[i3], j4 = 0, jl = a3.length; j4 < jl; j4++, k3++) + r3[k3] = a3[j4]; + return r3; + }; + __spreadArray3 = function(to, from, pack) { + if (pack || arguments.length === 2) + for (var i3 = 0, l4 = from.length, ar; i3 < l4; i3++) { + if (ar || !(i3 in from)) { + if (!ar) + ar = Array.prototype.slice.call(from, 0, i3); + ar[i3] = from[i3]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); + }; + __await3 = function(v3) { + return this instanceof __await3 ? (this.v = v3, this) : new __await3(v3); + }; + __asyncGenerator3 = function(thisArg, _arguments, generator) { + if (!Symbol.asyncIterator) + throw new TypeError("Symbol.asyncIterator is not defined."); + var g4 = generator.apply(thisArg, _arguments || []), i3, q3 = []; + return i3 = {}, verb("next"), verb("throw"), verb("return"), i3[Symbol.asyncIterator] = function() { + return this; + }, i3; + function verb(n3) { + if (g4[n3]) + i3[n3] = function(v3) { + return new Promise(function(a3, b3) { + q3.push([n3, v3, a3, b3]) > 1 || resume(n3, v3); + }); + }; + } + function resume(n3, v3) { + try { + step(g4[n3](v3)); + } catch (e3) { + settle(q3[0][3], e3); + } + } + function step(r3) { + r3.value instanceof __await3 ? Promise.resolve(r3.value.v).then(fulfill, reject) : settle(q3[0][2], r3); + } + function fulfill(value) { + resume("next", value); + } + function reject(value) { + resume("throw", value); + } + function settle(f3, v3) { + if (f3(v3), q3.shift(), q3.length) + resume(q3[0][0], q3[0][1]); + } + }; + __asyncDelegator3 = function(o2) { + var i3, p3; + return i3 = {}, verb("next"), verb("throw", function(e3) { + throw e3; + }), verb("return"), i3[Symbol.iterator] = function() { + return this; + }, i3; + function verb(n3, f3) { + i3[n3] = o2[n3] ? function(v3) { + return (p3 = !p3) ? { value: __await3(o2[n3](v3)), done: n3 === "return" } : f3 ? f3(v3) : v3; + } : f3; + } + }; + __asyncValues3 = function(o2) { + if (!Symbol.asyncIterator) + throw new TypeError("Symbol.asyncIterator is not defined."); + var m3 = o2[Symbol.asyncIterator], i3; + return m3 ? m3.call(o2) : (o2 = typeof __values3 === "function" ? __values3(o2) : o2[Symbol.iterator](), i3 = {}, verb("next"), verb("throw"), verb("return"), i3[Symbol.asyncIterator] = function() { + return this; + }, i3); + function verb(n3) { + i3[n3] = o2[n3] && function(v3) { + return new Promise(function(resolve, reject) { + v3 = o2[n3](v3), settle(resolve, reject, v3.done, v3.value); + }); + }; + } + function settle(resolve, reject, d2, v3) { + Promise.resolve(v3).then(function(v4) { + resolve({ value: v4, done: d2 }); + }, reject); + } + }; + __makeTemplateObject3 = function(cooked, raw) { + if (Object.defineProperty) { + Object.defineProperty(cooked, "raw", { value: raw }); + } else { + cooked.raw = raw; + } + return cooked; + }; + var __setModuleDefault = Object.create ? function(o2, v3) { + Object.defineProperty(o2, "default", { enumerable: true, value: v3 }); + } : function(o2, v3) { + o2["default"] = v3; + }; + __importStar3 = function(mod) { + if (mod && mod.__esModule) + return mod; + var result = {}; + if (mod != null) { + for (var k3 in mod) + if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod, k3)) + __createBinding3(result, mod, k3); + } + __setModuleDefault(result, mod); + return result; + }; + __importDefault3 = function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + __classPrivateFieldGet3 = function(receiver, state, kind, f3) { + if (kind === "a" && !f3) + throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f3 : !state.has(receiver)) + throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f3 : kind === "a" ? f3.call(receiver) : f3 ? f3.value : state.get(receiver); + }; + __classPrivateFieldSet3 = function(receiver, state, value, kind, f3) { + if (kind === "m") + throw new TypeError("Private method is not writable"); + if (kind === "a" && !f3) + throw new TypeError("Private accessor was defined without a setter"); + if (typeof state === "function" ? receiver !== state || !f3 : !state.has(receiver)) + throw new TypeError("Cannot write private member to an object whose class did not declare it"); + return kind === "a" ? f3.call(receiver, value) : f3 ? f3.value = value : state.set(receiver, value), value; + }; + exporter("__extends", __extends3); + exporter("__assign", __assign3); + exporter("__rest", __rest3); + exporter("__decorate", __decorate3); + exporter("__param", __param3); + exporter("__metadata", __metadata3); + exporter("__awaiter", __awaiter3); + exporter("__generator", __generator3); + exporter("__exportStar", __exportStar3); + exporter("__createBinding", __createBinding3); + exporter("__values", __values3); + exporter("__read", __read3); + exporter("__spread", __spread3); + exporter("__spreadArrays", __spreadArrays3); + exporter("__spreadArray", __spreadArray3); + exporter("__await", __await3); + exporter("__asyncGenerator", __asyncGenerator3); + exporter("__asyncDelegator", __asyncDelegator3); + exporter("__asyncValues", __asyncValues3); + exporter("__makeTemplateObject", __makeTemplateObject3); + exporter("__importStar", __importStar3); + exporter("__importDefault", __importDefault3); + exporter("__classPrivateFieldGet", __classPrivateFieldGet3); + exporter("__classPrivateFieldSet", __classPrivateFieldSet3); + }); + } +}); + +// node_modules/rrule/node_modules/tslib/tslib.js +var require_tslib2 = __commonJS({ + "node_modules/rrule/node_modules/tslib/tslib.js"(exports, module2) { + var __extends3; + var __assign3; + var __rest3; + var __decorate3; + var __param3; + var __esDecorate2; + var __runInitializers2; + var __propKey2; + var __setFunctionName2; + var __metadata3; + var __awaiter3; + var __generator3; + var __exportStar3; + var __values3; + var __read3; + var __spread3; + var __spreadArrays3; + var __spreadArray3; + var __await3; + var __asyncGenerator3; + var __asyncDelegator3; + var __asyncValues3; + var __makeTemplateObject3; + var __importStar3; + var __importDefault3; + var __classPrivateFieldGet3; + var __classPrivateFieldSet3; + var __classPrivateFieldIn2; + var __createBinding3; + (function(factory) { + var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : {}; + if (typeof define === "function" && define.amd) { + define("tslib", ["exports"], function(exports2) { + factory(createExporter(root, createExporter(exports2))); + }); + } else if (typeof module2 === "object" && typeof module2.exports === "object") { + factory(createExporter(root, createExporter(module2.exports))); + } else { + factory(createExporter(root)); + } + function createExporter(exports2, previous) { + if (exports2 !== root) { + if (typeof Object.create === "function") { + Object.defineProperty(exports2, "__esModule", { value: true }); + } else { + exports2.__esModule = true; + } + } + return function(id, v3) { + return exports2[id] = previous ? previous(id, v3) : v3; + }; + } + })(function(exporter) { + var extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b3) { + d2.__proto__ = b3; + } || function(d2, b3) { + for (var p3 in b3) + if (Object.prototype.hasOwnProperty.call(b3, p3)) + d2[p3] = b3[p3]; + }; + __extends3 = function(d2, b3) { + if (typeof b3 !== "function" && b3 !== null) + throw new TypeError("Class extends value " + String(b3) + " is not a constructor or null"); + extendStatics(d2, b3); + function __() { + this.constructor = d2; + } + d2.prototype = b3 === null ? Object.create(b3) : (__.prototype = b3.prototype, new __()); + }; + __assign3 = Object.assign || function(t3) { + for (var s4, i3 = 1, n3 = arguments.length; i3 < n3; i3++) { + s4 = arguments[i3]; + for (var p3 in s4) + if (Object.prototype.hasOwnProperty.call(s4, p3)) + t3[p3] = s4[p3]; + } + return t3; + }; + __rest3 = function(s4, e3) { + var t3 = {}; + for (var p3 in s4) + if (Object.prototype.hasOwnProperty.call(s4, p3) && e3.indexOf(p3) < 0) + t3[p3] = s4[p3]; + if (s4 != null && typeof Object.getOwnPropertySymbols === "function") + for (var i3 = 0, p3 = Object.getOwnPropertySymbols(s4); i3 < p3.length; i3++) { + if (e3.indexOf(p3[i3]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p3[i3])) + t3[p3[i3]] = s4[p3[i3]]; + } + return t3; + }; + __decorate3 = function(decorators, target, key, desc) { + var c3 = arguments.length, r3 = c3 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d2; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") + r3 = Reflect.decorate(decorators, target, key, desc); + else + for (var i3 = decorators.length - 1; i3 >= 0; i3--) + if (d2 = decorators[i3]) + r3 = (c3 < 3 ? d2(r3) : c3 > 3 ? d2(target, key, r3) : d2(target, key)) || r3; + return c3 > 3 && r3 && Object.defineProperty(target, key, r3), r3; + }; + __param3 = function(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; + }; + __esDecorate2 = function(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) { + function accept(f3) { + if (f3 !== void 0 && typeof f3 !== "function") + throw new TypeError("Function expected"); + return f3; + } + var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value"; + var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null; + var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {}); + var _3, done = false; + for (var i3 = decorators.length - 1; i3 >= 0; i3--) { + var context = {}; + for (var p3 in contextIn) + context[p3] = p3 === "access" ? {} : contextIn[p3]; + for (var p3 in contextIn.access) + context.access[p3] = contextIn.access[p3]; + context.addInitializer = function(f3) { + if (done) + throw new TypeError("Cannot add initializers after decoration has completed"); + extraInitializers.push(accept(f3 || null)); + }; + var result = (0, decorators[i3])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context); + if (kind === "accessor") { + if (result === void 0) + continue; + if (result === null || typeof result !== "object") + throw new TypeError("Object expected"); + if (_3 = accept(result.get)) + descriptor.get = _3; + if (_3 = accept(result.set)) + descriptor.set = _3; + if (_3 = accept(result.init)) + initializers.push(_3); + } else if (_3 = accept(result)) { + if (kind === "field") + initializers.push(_3); + else + descriptor[key] = _3; + } + } + if (target) + Object.defineProperty(target, contextIn.name, descriptor); + done = true; + }; + __runInitializers2 = function(thisArg, initializers, value) { + var useValue = arguments.length > 2; + for (var i3 = 0; i3 < initializers.length; i3++) { + value = useValue ? initializers[i3].call(thisArg, value) : initializers[i3].call(thisArg); + } + return useValue ? value : void 0; + }; + __propKey2 = function(x3) { + return typeof x3 === "symbol" ? x3 : "".concat(x3); + }; + __setFunctionName2 = function(f3, name, prefix) { + if (typeof name === "symbol") + name = name.description ? "[".concat(name.description, "]") : ""; + return Object.defineProperty(f3, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); + }; + __metadata3 = function(metadataKey, metadataValue) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") + return Reflect.metadata(metadataKey, metadataValue); + }; + __awaiter3 = function(thisArg, _arguments, P3, generator) { + function adopt(value) { + return value instanceof P3 ? value : new P3(function(resolve) { + resolve(value); + }); + } + return new (P3 || (P3 = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e3) { + reject(e3); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e3) { + reject(e3); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + __generator3 = function(thisArg, body) { + var _3 = { label: 0, sent: function() { + if (t3[0] & 1) + throw t3[1]; + return t3[1]; + }, trys: [], ops: [] }, f3, y3, t3, g4; + return g4 = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g4[Symbol.iterator] = function() { + return this; + }), g4; + function verb(n3) { + return function(v3) { + return step([n3, v3]); + }; + } + function step(op) { + if (f3) + throw new TypeError("Generator is already executing."); + while (g4 && (g4 = 0, op[0] && (_3 = 0)), _3) + try { + if (f3 = 1, y3 && (t3 = op[0] & 2 ? y3["return"] : op[0] ? y3["throw"] || ((t3 = y3["return"]) && t3.call(y3), 0) : y3.next) && !(t3 = t3.call(y3, op[1])).done) + return t3; + if (y3 = 0, t3) + op = [op[0] & 2, t3.value]; + switch (op[0]) { + case 0: + case 1: + t3 = op; + break; + case 4: + _3.label++; + return { value: op[1], done: false }; + case 5: + _3.label++; + y3 = op[1]; + op = [0]; + continue; + case 7: + op = _3.ops.pop(); + _3.trys.pop(); + continue; + default: + if (!(t3 = _3.trys, t3 = t3.length > 0 && t3[t3.length - 1]) && (op[0] === 6 || op[0] === 2)) { + _3 = 0; + continue; + } + if (op[0] === 3 && (!t3 || op[1] > t3[0] && op[1] < t3[3])) { + _3.label = op[1]; + break; + } + if (op[0] === 6 && _3.label < t3[1]) { + _3.label = t3[1]; + t3 = op; + break; + } + if (t3 && _3.label < t3[2]) { + _3.label = t3[2]; + _3.ops.push(op); + break; + } + if (t3[2]) + _3.ops.pop(); + _3.trys.pop(); + continue; + } + op = body.call(thisArg, _3); + } catch (e3) { + op = [6, e3]; + y3 = 0; + } finally { + f3 = t3 = 0; + } + if (op[0] & 5) + throw op[1]; + return { value: op[0] ? op[1] : void 0, done: true }; + } + }; + __exportStar3 = function(m3, o2) { + for (var p3 in m3) + if (p3 !== "default" && !Object.prototype.hasOwnProperty.call(o2, p3)) + __createBinding3(o2, m3, p3); + }; + __createBinding3 = Object.create ? function(o2, m3, k3, k22) { + if (k22 === void 0) + k22 = k3; + var desc = Object.getOwnPropertyDescriptor(m3, k3); + if (!desc || ("get" in desc ? !m3.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m3[k3]; + } }; + } + Object.defineProperty(o2, k22, desc); + } : function(o2, m3, k3, k22) { + if (k22 === void 0) + k22 = k3; + o2[k22] = m3[k3]; + }; + __values3 = function(o2) { + var s4 = typeof Symbol === "function" && Symbol.iterator, m3 = s4 && o2[s4], i3 = 0; + if (m3) + return m3.call(o2); + if (o2 && typeof o2.length === "number") + return { + next: function() { + if (o2 && i3 >= o2.length) + o2 = void 0; + return { value: o2 && o2[i3++], done: !o2 }; + } + }; + throw new TypeError(s4 ? "Object is not iterable." : "Symbol.iterator is not defined."); + }; + __read3 = function(o2, n3) { + var m3 = typeof Symbol === "function" && o2[Symbol.iterator]; + if (!m3) + return o2; + var i3 = m3.call(o2), r3, ar = [], e3; + try { + while ((n3 === void 0 || n3-- > 0) && !(r3 = i3.next()).done) + ar.push(r3.value); + } catch (error) { + e3 = { error }; + } finally { + try { + if (r3 && !r3.done && (m3 = i3["return"])) + m3.call(i3); + } finally { + if (e3) + throw e3.error; + } + } + return ar; + }; + __spread3 = function() { + for (var ar = [], i3 = 0; i3 < arguments.length; i3++) + ar = ar.concat(__read3(arguments[i3])); + return ar; + }; + __spreadArrays3 = function() { + for (var s4 = 0, i3 = 0, il = arguments.length; i3 < il; i3++) + s4 += arguments[i3].length; + for (var r3 = Array(s4), k3 = 0, i3 = 0; i3 < il; i3++) + for (var a3 = arguments[i3], j4 = 0, jl = a3.length; j4 < jl; j4++, k3++) + r3[k3] = a3[j4]; + return r3; + }; + __spreadArray3 = function(to, from, pack) { + if (pack || arguments.length === 2) + for (var i3 = 0, l4 = from.length, ar; i3 < l4; i3++) { + if (ar || !(i3 in from)) { + if (!ar) + ar = Array.prototype.slice.call(from, 0, i3); + ar[i3] = from[i3]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); + }; + __await3 = function(v3) { + return this instanceof __await3 ? (this.v = v3, this) : new __await3(v3); + }; + __asyncGenerator3 = function(thisArg, _arguments, generator) { + if (!Symbol.asyncIterator) + throw new TypeError("Symbol.asyncIterator is not defined."); + var g4 = generator.apply(thisArg, _arguments || []), i3, q3 = []; + return i3 = {}, verb("next"), verb("throw"), verb("return"), i3[Symbol.asyncIterator] = function() { + return this; + }, i3; + function verb(n3) { + if (g4[n3]) + i3[n3] = function(v3) { + return new Promise(function(a3, b3) { + q3.push([n3, v3, a3, b3]) > 1 || resume(n3, v3); + }); + }; + } + function resume(n3, v3) { + try { + step(g4[n3](v3)); + } catch (e3) { + settle(q3[0][3], e3); + } + } + function step(r3) { + r3.value instanceof __await3 ? Promise.resolve(r3.value.v).then(fulfill, reject) : settle(q3[0][2], r3); + } + function fulfill(value) { + resume("next", value); + } + function reject(value) { + resume("throw", value); + } + function settle(f3, v3) { + if (f3(v3), q3.shift(), q3.length) + resume(q3[0][0], q3[0][1]); + } + }; + __asyncDelegator3 = function(o2) { + var i3, p3; + return i3 = {}, verb("next"), verb("throw", function(e3) { + throw e3; + }), verb("return"), i3[Symbol.iterator] = function() { + return this; + }, i3; + function verb(n3, f3) { + i3[n3] = o2[n3] ? function(v3) { + return (p3 = !p3) ? { value: __await3(o2[n3](v3)), done: false } : f3 ? f3(v3) : v3; + } : f3; + } + }; + __asyncValues3 = function(o2) { + if (!Symbol.asyncIterator) + throw new TypeError("Symbol.asyncIterator is not defined."); + var m3 = o2[Symbol.asyncIterator], i3; + return m3 ? m3.call(o2) : (o2 = typeof __values3 === "function" ? __values3(o2) : o2[Symbol.iterator](), i3 = {}, verb("next"), verb("throw"), verb("return"), i3[Symbol.asyncIterator] = function() { + return this; + }, i3); + function verb(n3) { + i3[n3] = o2[n3] && function(v3) { + return new Promise(function(resolve, reject) { + v3 = o2[n3](v3), settle(resolve, reject, v3.done, v3.value); + }); + }; + } + function settle(resolve, reject, d2, v3) { + Promise.resolve(v3).then(function(v4) { + resolve({ value: v4, done: d2 }); + }, reject); + } + }; + __makeTemplateObject3 = function(cooked, raw) { + if (Object.defineProperty) { + Object.defineProperty(cooked, "raw", { value: raw }); + } else { + cooked.raw = raw; + } + return cooked; + }; + var __setModuleDefault = Object.create ? function(o2, v3) { + Object.defineProperty(o2, "default", { enumerable: true, value: v3 }); + } : function(o2, v3) { + o2["default"] = v3; + }; + __importStar3 = function(mod) { + if (mod && mod.__esModule) + return mod; + var result = {}; + if (mod != null) { + for (var k3 in mod) + if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod, k3)) + __createBinding3(result, mod, k3); + } + __setModuleDefault(result, mod); + return result; + }; + __importDefault3 = function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + __classPrivateFieldGet3 = function(receiver, state, kind, f3) { + if (kind === "a" && !f3) + throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f3 : !state.has(receiver)) + throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f3 : kind === "a" ? f3.call(receiver) : f3 ? f3.value : state.get(receiver); + }; + __classPrivateFieldSet3 = function(receiver, state, value, kind, f3) { + if (kind === "m") + throw new TypeError("Private method is not writable"); + if (kind === "a" && !f3) + throw new TypeError("Private accessor was defined without a setter"); + if (typeof state === "function" ? receiver !== state || !f3 : !state.has(receiver)) + throw new TypeError("Cannot write private member to an object whose class did not declare it"); + return kind === "a" ? f3.call(receiver, value) : f3 ? f3.value = value : state.set(receiver, value), value; + }; + __classPrivateFieldIn2 = function(state, receiver) { + if (receiver === null || typeof receiver !== "object" && typeof receiver !== "function") + throw new TypeError("Cannot use 'in' operator on non-object"); + return typeof state === "function" ? receiver === state : state.has(receiver); + }; + exporter("__extends", __extends3); + exporter("__assign", __assign3); + exporter("__rest", __rest3); + exporter("__decorate", __decorate3); + exporter("__param", __param3); + exporter("__esDecorate", __esDecorate2); + exporter("__runInitializers", __runInitializers2); + exporter("__propKey", __propKey2); + exporter("__setFunctionName", __setFunctionName2); + exporter("__metadata", __metadata3); + exporter("__awaiter", __awaiter3); + exporter("__generator", __generator3); + exporter("__exportStar", __exportStar3); + exporter("__createBinding", __createBinding3); + exporter("__values", __values3); + exporter("__read", __read3); + exporter("__spread", __spread3); + exporter("__spreadArrays", __spreadArrays3); + exporter("__spreadArray", __spreadArray3); + exporter("__await", __await3); + exporter("__asyncGenerator", __asyncGenerator3); + exporter("__asyncDelegator", __asyncDelegator3); + exporter("__asyncValues", __asyncValues3); + exporter("__makeTemplateObject", __makeTemplateObject3); + exporter("__importStar", __importStar3); + exporter("__importDefault", __importDefault3); + exporter("__classPrivateFieldGet", __classPrivateFieldGet3); + exporter("__classPrivateFieldSet", __classPrivateFieldSet3); + exporter("__classPrivateFieldIn", __classPrivateFieldIn2); + }); + } +}); + +// node_modules/ical.js/build/ical.js +var require_ical = __commonJS({ + "node_modules/ical.js/build/ical.js"(exports, module2) { + var ICAL2; + (function() { + if (typeof module2 === "object") { + ICAL2 = module2.exports; + } else if (typeof HTMLScriptElement !== "undefined" && "noModule" in HTMLScriptElement.prototype) { + window.ICAL = ICAL2 = {}; + } else if (typeof ICAL2 !== "object") { + ICAL2 = {}; + } + })(); + ICAL2.foldLength = 75; + ICAL2.newLineChar = "\r\n"; + ICAL2.helpers = { + updateTimezones: function(vcal) { + var allsubs, properties, vtimezones, reqTzid, i3, tzid; + if (!vcal || vcal.name !== "vcalendar") { + return vcal; + } + allsubs = vcal.getAllSubcomponents(); + properties = []; + vtimezones = {}; + for (i3 = 0; i3 < allsubs.length; i3++) { + if (allsubs[i3].name === "vtimezone") { + tzid = allsubs[i3].getFirstProperty("tzid").getFirstValue(); + vtimezones[tzid] = allsubs[i3]; + } else { + properties = properties.concat(allsubs[i3].getAllProperties()); + } + } + reqTzid = {}; + for (i3 = 0; i3 < properties.length; i3++) { + if (tzid = properties[i3].getParameter("tzid")) { + reqTzid[tzid] = true; + } + } + for (i3 in vtimezones) { + if (vtimezones.hasOwnProperty(i3) && !reqTzid[i3]) { + vcal.removeSubcomponent(vtimezones[i3]); + } + } + for (i3 in reqTzid) { + if (reqTzid.hasOwnProperty(i3) && !vtimezones[i3] && ICAL2.TimezoneService.has(i3)) { + vcal.addSubcomponent(ICAL2.TimezoneService.get(i3).component); + } + } + return vcal; + }, + isStrictlyNaN: function(number) { + return typeof number === "number" && isNaN(number); + }, + strictParseInt: function(string) { + var result = parseInt(string, 10); + if (ICAL2.helpers.isStrictlyNaN(result)) { + throw new Error('Could not extract integer from "' + string + '"'); + } + return result; + }, + formatClassType: function formatClassType(data, type) { + if (typeof data === "undefined") { + return void 0; + } + if (data instanceof type) { + return data; + } + return new type(data); + }, + unescapedIndexOf: function(buffer, search, pos) { + while ((pos = buffer.indexOf(search, pos)) !== -1) { + if (pos > 0 && buffer[pos - 1] === "\\") { + pos += 1; + } else { + return pos; + } + } + return -1; + }, + binsearchInsert: function(list, seekVal, cmpfunc) { + if (!list.length) + return 0; + var low = 0, high = list.length - 1, mid, cmpval; + while (low <= high) { + mid = low + Math.floor((high - low) / 2); + cmpval = cmpfunc(seekVal, list[mid]); + if (cmpval < 0) + high = mid - 1; + else if (cmpval > 0) + low = mid + 1; + else + break; + } + if (cmpval < 0) + return mid; + else if (cmpval > 0) + return mid + 1; + else + return mid; + }, + dumpn: function() { + if (!ICAL2.debug) { + return; + } + if (typeof console !== "undefined" && "log" in console) { + ICAL2.helpers.dumpn = function consoleDumpn(input) { + console.log(input); + }; + } else { + ICAL2.helpers.dumpn = function geckoDumpn(input) { + dump(input + "\n"); + }; + } + ICAL2.helpers.dumpn(arguments[0]); + }, + clone: function(aSrc, aDeep) { + if (!aSrc || typeof aSrc != "object") { + return aSrc; + } else if (aSrc instanceof Date) { + return new Date(aSrc.getTime()); + } else if ("clone" in aSrc) { + return aSrc.clone(); + } else if (Array.isArray(aSrc)) { + var arr = []; + for (var i3 = 0; i3 < aSrc.length; i3++) { + arr.push(aDeep ? ICAL2.helpers.clone(aSrc[i3], true) : aSrc[i3]); + } + return arr; + } else { + var obj = {}; + for (var name in aSrc) { + if (Object.prototype.hasOwnProperty.call(aSrc, name)) { + if (aDeep) { + obj[name] = ICAL2.helpers.clone(aSrc[name], true); + } else { + obj[name] = aSrc[name]; + } + } + } + return obj; + } + }, + foldline: function foldline(aLine) { + var result = ""; + var line = aLine || "", pos = 0, line_length = 0; + while (line.length) { + var cp = line.codePointAt(pos); + if (cp < 128) + ++line_length; + else if (cp < 2048) + line_length += 2; + else if (cp < 65536) + line_length += 3; + else + line_length += 4; + if (line_length < ICAL2.foldLength + 1) + pos += cp > 65535 ? 2 : 1; + else { + result += ICAL2.newLineChar + " " + line.substring(0, pos); + line = line.substring(pos); + pos = line_length = 0; + } + } + return result.substr(ICAL2.newLineChar.length + 1); + }, + pad2: function pad(data) { + if (typeof data !== "string") { + if (typeof data === "number") { + data = parseInt(data); + } + data = String(data); + } + var len = data.length; + switch (len) { + case 0: + return "00"; + case 1: + return "0" + data; + default: + return data; + } + }, + trunc: function trunc(number) { + return number < 0 ? Math.ceil(number) : Math.floor(number); + }, + inherits: function(base, child, extra) { + function F3() { + } + F3.prototype = base.prototype; + child.prototype = new F3(); + if (extra) { + ICAL2.helpers.extend(extra, child.prototype); + } + }, + extend: function(source, target) { + for (var key in source) { + var descr = Object.getOwnPropertyDescriptor(source, key); + if (descr && !Object.getOwnPropertyDescriptor(target, key)) { + Object.defineProperty(target, key, descr); + } + } + return target; + } + }; + ICAL2.design = function() { + "use strict"; + var FROM_ICAL_NEWLINE = /\\\\|\\;|\\,|\\[Nn]/g; + var TO_ICAL_NEWLINE = /\\|;|,|\n/g; + var FROM_VCARD_NEWLINE = /\\\\|\\,|\\[Nn]/g; + var TO_VCARD_NEWLINE = /\\|,|\n/g; + function createTextType(fromNewline, toNewline) { + var result = { + matches: /.*/, + fromICAL: function(aValue, structuredEscape) { + return replaceNewline(aValue, fromNewline, structuredEscape); + }, + toICAL: function(aValue, structuredEscape) { + var regEx = toNewline; + if (structuredEscape) + regEx = new RegExp(regEx.source + "|" + structuredEscape); + return aValue.replace(regEx, function(str) { + switch (str) { + case "\\": + return "\\\\"; + case ";": + return "\\;"; + case ",": + return "\\,"; + case "\n": + return "\\n"; + default: + return str; + } + }); + } + }; + return result; + } + var DEFAULT_TYPE_TEXT = { defaultType: "text" }; + var DEFAULT_TYPE_TEXT_MULTI = { defaultType: "text", multiValue: "," }; + var DEFAULT_TYPE_TEXT_STRUCTURED = { defaultType: "text", structuredValue: ";" }; + var DEFAULT_TYPE_INTEGER = { defaultType: "integer" }; + var DEFAULT_TYPE_DATETIME_DATE = { defaultType: "date-time", allowedTypes: ["date-time", "date"] }; + var DEFAULT_TYPE_DATETIME = { defaultType: "date-time" }; + var DEFAULT_TYPE_URI = { defaultType: "uri" }; + var DEFAULT_TYPE_UTCOFFSET = { defaultType: "utc-offset" }; + var DEFAULT_TYPE_RECUR = { defaultType: "recur" }; + var DEFAULT_TYPE_DATE_ANDOR_TIME = { defaultType: "date-and-or-time", allowedTypes: ["date-time", "date", "text"] }; + function replaceNewlineReplace(string) { + switch (string) { + case "\\\\": + return "\\"; + case "\\;": + return ";"; + case "\\,": + return ","; + case "\\n": + case "\\N": + return "\n"; + default: + return string; + } + } + function replaceNewline(value, newline, structuredEscape) { + if (value.indexOf("\\") === -1) { + return value; + } + if (structuredEscape) + newline = new RegExp(newline.source + "|\\\\" + structuredEscape); + return value.replace(newline, replaceNewlineReplace); + } + var commonProperties = { + "categories": DEFAULT_TYPE_TEXT_MULTI, + "url": DEFAULT_TYPE_URI, + "version": DEFAULT_TYPE_TEXT, + "uid": DEFAULT_TYPE_TEXT + }; + var commonValues = { + "boolean": { + values: ["TRUE", "FALSE"], + fromICAL: function(aValue) { + switch (aValue) { + case "TRUE": + return true; + case "FALSE": + return false; + default: + return false; + } + }, + toICAL: function(aValue) { + if (aValue) { + return "TRUE"; + } + return "FALSE"; + } + }, + float: { + matches: /^[+-]?\d+\.\d+$/, + fromICAL: function(aValue) { + var parsed = parseFloat(aValue); + if (ICAL2.helpers.isStrictlyNaN(parsed)) { + return 0; + } + return parsed; + }, + toICAL: function(aValue) { + return String(aValue); + } + }, + integer: { + fromICAL: function(aValue) { + var parsed = parseInt(aValue); + if (ICAL2.helpers.isStrictlyNaN(parsed)) { + return 0; + } + return parsed; + }, + toICAL: function(aValue) { + return String(aValue); + } + }, + "utc-offset": { + toICAL: function(aValue) { + if (aValue.length < 7) { + return aValue.substr(0, 3) + aValue.substr(4, 2); + } else { + return aValue.substr(0, 3) + aValue.substr(4, 2) + aValue.substr(7, 2); + } + }, + fromICAL: function(aValue) { + if (aValue.length < 6) { + return aValue.substr(0, 3) + ":" + aValue.substr(3, 2); + } else { + return aValue.substr(0, 3) + ":" + aValue.substr(3, 2) + ":" + aValue.substr(5, 2); + } + }, + decorate: function(aValue) { + return ICAL2.UtcOffset.fromString(aValue); + }, + undecorate: function(aValue) { + return aValue.toString(); + } + } + }; + var icalParams = { + "cutype": { + values: ["INDIVIDUAL", "GROUP", "RESOURCE", "ROOM", "UNKNOWN"], + allowXName: true, + allowIanaToken: true + }, + "delegated-from": { + valueType: "cal-address", + multiValue: ",", + multiValueSeparateDQuote: true + }, + "delegated-to": { + valueType: "cal-address", + multiValue: ",", + multiValueSeparateDQuote: true + }, + "encoding": { + values: ["8BIT", "BASE64"] + }, + "fbtype": { + values: ["FREE", "BUSY", "BUSY-UNAVAILABLE", "BUSY-TENTATIVE"], + allowXName: true, + allowIanaToken: true + }, + "member": { + valueType: "cal-address", + multiValue: ",", + multiValueSeparateDQuote: true + }, + "partstat": { + values: [ + "NEEDS-ACTION", + "ACCEPTED", + "DECLINED", + "TENTATIVE", + "DELEGATED", + "COMPLETED", + "IN-PROCESS" + ], + allowXName: true, + allowIanaToken: true + }, + "range": { + values: ["THISANDFUTURE"] + }, + "related": { + values: ["START", "END"] + }, + "reltype": { + values: ["PARENT", "CHILD", "SIBLING"], + allowXName: true, + allowIanaToken: true + }, + "role": { + values: [ + "REQ-PARTICIPANT", + "CHAIR", + "OPT-PARTICIPANT", + "NON-PARTICIPANT" + ], + allowXName: true, + allowIanaToken: true + }, + "rsvp": { + values: ["TRUE", "FALSE"] + }, + "sent-by": { + valueType: "cal-address" + }, + "tzid": { + matches: /^\// + }, + "value": { + values: [ + "binary", + "boolean", + "cal-address", + "date", + "date-time", + "duration", + "float", + "integer", + "period", + "recur", + "text", + "time", + "uri", + "utc-offset" + ], + allowXName: true, + allowIanaToken: true + } + }; + var icalValues = ICAL2.helpers.extend(commonValues, { + text: createTextType(FROM_ICAL_NEWLINE, TO_ICAL_NEWLINE), + uri: {}, + "binary": { + decorate: function(aString) { + return ICAL2.Binary.fromString(aString); + }, + undecorate: function(aBinary) { + return aBinary.toString(); + } + }, + "cal-address": {}, + "date": { + decorate: function(aValue, aProp) { + if (design.strict) { + return ICAL2.Time.fromDateString(aValue, aProp); + } else { + return ICAL2.Time.fromString(aValue, aProp); + } + }, + undecorate: function(aValue) { + return aValue.toString(); + }, + fromICAL: function(aValue) { + if (!design.strict && aValue.length >= 15) { + return icalValues["date-time"].fromICAL(aValue); + } else { + return aValue.substr(0, 4) + "-" + aValue.substr(4, 2) + "-" + aValue.substr(6, 2); + } + }, + toICAL: function(aValue) { + var len = aValue.length; + if (len == 10) { + return aValue.substr(0, 4) + aValue.substr(5, 2) + aValue.substr(8, 2); + } else if (len >= 19) { + return icalValues["date-time"].toICAL(aValue); + } else { + return aValue; + } + } + }, + "date-time": { + fromICAL: function(aValue) { + if (!design.strict && aValue.length == 8) { + return icalValues.date.fromICAL(aValue); + } else { + var result = aValue.substr(0, 4) + "-" + aValue.substr(4, 2) + "-" + aValue.substr(6, 2) + "T" + aValue.substr(9, 2) + ":" + aValue.substr(11, 2) + ":" + aValue.substr(13, 2); + if (aValue[15] && aValue[15] === "Z") { + result += "Z"; + } + return result; + } + }, + toICAL: function(aValue) { + var len = aValue.length; + if (len == 10 && !design.strict) { + return icalValues.date.toICAL(aValue); + } else if (len >= 19) { + var result = aValue.substr(0, 4) + aValue.substr(5, 2) + aValue.substr(8, 5) + aValue.substr(14, 2) + aValue.substr(17, 2); + if (aValue[19] && aValue[19] === "Z") { + result += "Z"; + } + return result; + } else { + return aValue; + } + }, + decorate: function(aValue, aProp) { + if (design.strict) { + return ICAL2.Time.fromDateTimeString(aValue, aProp); + } else { + return ICAL2.Time.fromString(aValue, aProp); + } + }, + undecorate: function(aValue) { + return aValue.toString(); + } + }, + duration: { + decorate: function(aValue) { + return ICAL2.Duration.fromString(aValue); + }, + undecorate: function(aValue) { + return aValue.toString(); + } + }, + period: { + fromICAL: function(string) { + var parts = string.split("/"); + parts[0] = icalValues["date-time"].fromICAL(parts[0]); + if (!ICAL2.Duration.isValueString(parts[1])) { + parts[1] = icalValues["date-time"].fromICAL(parts[1]); + } + return parts; + }, + toICAL: function(parts) { + if (!design.strict && parts[0].length == 10) { + parts[0] = icalValues.date.toICAL(parts[0]); + } else { + parts[0] = icalValues["date-time"].toICAL(parts[0]); + } + if (!ICAL2.Duration.isValueString(parts[1])) { + if (!design.strict && parts[1].length == 10) { + parts[1] = icalValues.date.toICAL(parts[1]); + } else { + parts[1] = icalValues["date-time"].toICAL(parts[1]); + } + } + return parts.join("/"); + }, + decorate: function(aValue, aProp) { + return ICAL2.Period.fromJSON(aValue, aProp, !design.strict); + }, + undecorate: function(aValue) { + return aValue.toJSON(); + } + }, + recur: { + fromICAL: function(string) { + return ICAL2.Recur._stringToData(string, true); + }, + toICAL: function(data) { + var str = ""; + for (var k3 in data) { + if (!Object.prototype.hasOwnProperty.call(data, k3)) { + continue; + } + var val = data[k3]; + if (k3 == "until") { + if (val.length > 10) { + val = icalValues["date-time"].toICAL(val); + } else { + val = icalValues.date.toICAL(val); + } + } else if (k3 == "wkst") { + if (typeof val === "number") { + val = ICAL2.Recur.numericDayToIcalDay(val); + } + } else if (Array.isArray(val)) { + val = val.join(","); + } + str += k3.toUpperCase() + "=" + val + ";"; + } + return str.substr(0, str.length - 1); + }, + decorate: function decorate(aValue) { + return ICAL2.Recur.fromData(aValue); + }, + undecorate: function(aRecur) { + return aRecur.toJSON(); + } + }, + time: { + fromICAL: function(aValue) { + if (aValue.length < 6) { + return aValue; + } + var result = aValue.substr(0, 2) + ":" + aValue.substr(2, 2) + ":" + aValue.substr(4, 2); + if (aValue[6] === "Z") { + result += "Z"; + } + return result; + }, + toICAL: function(aValue) { + if (aValue.length < 8) { + return aValue; + } + var result = aValue.substr(0, 2) + aValue.substr(3, 2) + aValue.substr(6, 2); + if (aValue[8] === "Z") { + result += "Z"; + } + return result; + } + } + }); + var icalProperties = ICAL2.helpers.extend(commonProperties, { + "action": DEFAULT_TYPE_TEXT, + "attach": { defaultType: "uri" }, + "attendee": { defaultType: "cal-address" }, + "calscale": DEFAULT_TYPE_TEXT, + "class": DEFAULT_TYPE_TEXT, + "comment": DEFAULT_TYPE_TEXT, + "completed": DEFAULT_TYPE_DATETIME, + "contact": DEFAULT_TYPE_TEXT, + "created": DEFAULT_TYPE_DATETIME, + "description": DEFAULT_TYPE_TEXT, + "dtend": DEFAULT_TYPE_DATETIME_DATE, + "dtstamp": DEFAULT_TYPE_DATETIME, + "dtstart": DEFAULT_TYPE_DATETIME_DATE, + "due": DEFAULT_TYPE_DATETIME_DATE, + "duration": { defaultType: "duration" }, + "exdate": { + defaultType: "date-time", + allowedTypes: ["date-time", "date"], + multiValue: "," + }, + "exrule": DEFAULT_TYPE_RECUR, + "freebusy": { defaultType: "period", multiValue: "," }, + "geo": { defaultType: "float", structuredValue: ";" }, + "last-modified": DEFAULT_TYPE_DATETIME, + "location": DEFAULT_TYPE_TEXT, + "method": DEFAULT_TYPE_TEXT, + "organizer": { defaultType: "cal-address" }, + "percent-complete": DEFAULT_TYPE_INTEGER, + "priority": DEFAULT_TYPE_INTEGER, + "prodid": DEFAULT_TYPE_TEXT, + "related-to": DEFAULT_TYPE_TEXT, + "repeat": DEFAULT_TYPE_INTEGER, + "rdate": { + defaultType: "date-time", + allowedTypes: ["date-time", "date", "period"], + multiValue: ",", + detectType: function(string) { + if (string.indexOf("/") !== -1) { + return "period"; + } + return string.indexOf("T") === -1 ? "date" : "date-time"; + } + }, + "recurrence-id": DEFAULT_TYPE_DATETIME_DATE, + "resources": DEFAULT_TYPE_TEXT_MULTI, + "request-status": DEFAULT_TYPE_TEXT_STRUCTURED, + "rrule": DEFAULT_TYPE_RECUR, + "sequence": DEFAULT_TYPE_INTEGER, + "status": DEFAULT_TYPE_TEXT, + "summary": DEFAULT_TYPE_TEXT, + "transp": DEFAULT_TYPE_TEXT, + "trigger": { defaultType: "duration", allowedTypes: ["duration", "date-time"] }, + "tzoffsetfrom": DEFAULT_TYPE_UTCOFFSET, + "tzoffsetto": DEFAULT_TYPE_UTCOFFSET, + "tzurl": DEFAULT_TYPE_URI, + "tzid": DEFAULT_TYPE_TEXT, + "tzname": DEFAULT_TYPE_TEXT + }); + var vcardValues = ICAL2.helpers.extend(commonValues, { + text: createTextType(FROM_VCARD_NEWLINE, TO_VCARD_NEWLINE), + uri: createTextType(FROM_VCARD_NEWLINE, TO_VCARD_NEWLINE), + date: { + decorate: function(aValue) { + return ICAL2.VCardTime.fromDateAndOrTimeString(aValue, "date"); + }, + undecorate: function(aValue) { + return aValue.toString(); + }, + fromICAL: function(aValue) { + if (aValue.length == 8) { + return icalValues.date.fromICAL(aValue); + } else if (aValue[0] == "-" && aValue.length == 6) { + return aValue.substr(0, 4) + "-" + aValue.substr(4); + } else { + return aValue; + } + }, + toICAL: function(aValue) { + if (aValue.length == 10) { + return icalValues.date.toICAL(aValue); + } else if (aValue[0] == "-" && aValue.length == 7) { + return aValue.substr(0, 4) + aValue.substr(5); + } else { + return aValue; + } + } + }, + time: { + decorate: function(aValue) { + return ICAL2.VCardTime.fromDateAndOrTimeString("T" + aValue, "time"); + }, + undecorate: function(aValue) { + return aValue.toString(); + }, + fromICAL: function(aValue) { + var splitzone = vcardValues.time._splitZone(aValue, true); + var zone = splitzone[0], value = splitzone[1]; + if (value.length == 6) { + value = value.substr(0, 2) + ":" + value.substr(2, 2) + ":" + value.substr(4, 2); + } else if (value.length == 4 && value[0] != "-") { + value = value.substr(0, 2) + ":" + value.substr(2, 2); + } else if (value.length == 5) { + value = value.substr(0, 3) + ":" + value.substr(3, 2); + } + if (zone.length == 5 && (zone[0] == "-" || zone[0] == "+")) { + zone = zone.substr(0, 3) + ":" + zone.substr(3); + } + return value + zone; + }, + toICAL: function(aValue) { + var splitzone = vcardValues.time._splitZone(aValue); + var zone = splitzone[0], value = splitzone[1]; + if (value.length == 8) { + value = value.substr(0, 2) + value.substr(3, 2) + value.substr(6, 2); + } else if (value.length == 5 && value[0] != "-") { + value = value.substr(0, 2) + value.substr(3, 2); + } else if (value.length == 6) { + value = value.substr(0, 3) + value.substr(4, 2); + } + if (zone.length == 6 && (zone[0] == "-" || zone[0] == "+")) { + zone = zone.substr(0, 3) + zone.substr(4); + } + return value + zone; + }, + _splitZone: function(aValue, isFromIcal) { + var lastChar = aValue.length - 1; + var signChar = aValue.length - (isFromIcal ? 5 : 6); + var sign = aValue[signChar]; + var zone, value; + if (aValue[lastChar] == "Z") { + zone = aValue[lastChar]; + value = aValue.substr(0, lastChar); + } else if (aValue.length > 6 && (sign == "-" || sign == "+")) { + zone = aValue.substr(signChar); + value = aValue.substr(0, signChar); + } else { + zone = ""; + value = aValue; + } + return [zone, value]; + } + }, + "date-time": { + decorate: function(aValue) { + return ICAL2.VCardTime.fromDateAndOrTimeString(aValue, "date-time"); + }, + undecorate: function(aValue) { + return aValue.toString(); + }, + fromICAL: function(aValue) { + return vcardValues["date-and-or-time"].fromICAL(aValue); + }, + toICAL: function(aValue) { + return vcardValues["date-and-or-time"].toICAL(aValue); + } + }, + "date-and-or-time": { + decorate: function(aValue) { + return ICAL2.VCardTime.fromDateAndOrTimeString(aValue, "date-and-or-time"); + }, + undecorate: function(aValue) { + return aValue.toString(); + }, + fromICAL: function(aValue) { + var parts = aValue.split("T"); + return (parts[0] ? vcardValues.date.fromICAL(parts[0]) : "") + (parts[1] ? "T" + vcardValues.time.fromICAL(parts[1]) : ""); + }, + toICAL: function(aValue) { + var parts = aValue.split("T"); + return vcardValues.date.toICAL(parts[0]) + (parts[1] ? "T" + vcardValues.time.toICAL(parts[1]) : ""); + } + }, + timestamp: icalValues["date-time"], + "language-tag": { + matches: /^[a-zA-Z0-9-]+$/ + } + }); + var vcardParams = { + "type": { + valueType: "text", + multiValue: "," + }, + "value": { + values: [ + "text", + "uri", + "date", + "time", + "date-time", + "date-and-or-time", + "timestamp", + "boolean", + "integer", + "float", + "utc-offset", + "language-tag" + ], + allowXName: true, + allowIanaToken: true + } + }; + var vcardProperties = ICAL2.helpers.extend(commonProperties, { + "adr": { defaultType: "text", structuredValue: ";", multiValue: "," }, + "anniversary": DEFAULT_TYPE_DATE_ANDOR_TIME, + "bday": DEFAULT_TYPE_DATE_ANDOR_TIME, + "caladruri": DEFAULT_TYPE_URI, + "caluri": DEFAULT_TYPE_URI, + "clientpidmap": DEFAULT_TYPE_TEXT_STRUCTURED, + "email": DEFAULT_TYPE_TEXT, + "fburl": DEFAULT_TYPE_URI, + "fn": DEFAULT_TYPE_TEXT, + "gender": DEFAULT_TYPE_TEXT_STRUCTURED, + "geo": DEFAULT_TYPE_URI, + "impp": DEFAULT_TYPE_URI, + "key": DEFAULT_TYPE_URI, + "kind": DEFAULT_TYPE_TEXT, + "lang": { defaultType: "language-tag" }, + "logo": DEFAULT_TYPE_URI, + "member": DEFAULT_TYPE_URI, + "n": { defaultType: "text", structuredValue: ";", multiValue: "," }, + "nickname": DEFAULT_TYPE_TEXT_MULTI, + "note": DEFAULT_TYPE_TEXT, + "org": { defaultType: "text", structuredValue: ";" }, + "photo": DEFAULT_TYPE_URI, + "related": DEFAULT_TYPE_URI, + "rev": { defaultType: "timestamp" }, + "role": DEFAULT_TYPE_TEXT, + "sound": DEFAULT_TYPE_URI, + "source": DEFAULT_TYPE_URI, + "tel": { defaultType: "uri", allowedTypes: ["uri", "text"] }, + "title": DEFAULT_TYPE_TEXT, + "tz": { defaultType: "text", allowedTypes: ["text", "utc-offset", "uri"] }, + "xml": DEFAULT_TYPE_TEXT + }); + var vcard3Values = ICAL2.helpers.extend(commonValues, { + binary: icalValues.binary, + date: vcardValues.date, + "date-time": vcardValues["date-time"], + "phone-number": {}, + uri: icalValues.uri, + text: icalValues.text, + time: icalValues.time, + vcard: icalValues.text, + "utc-offset": { + toICAL: function(aValue) { + return aValue.substr(0, 7); + }, + fromICAL: function(aValue) { + return aValue.substr(0, 7); + }, + decorate: function(aValue) { + return ICAL2.UtcOffset.fromString(aValue); + }, + undecorate: function(aValue) { + return aValue.toString(); + } + } + }); + var vcard3Params = { + "type": { + valueType: "text", + multiValue: "," + }, + "value": { + values: [ + "text", + "uri", + "date", + "date-time", + "phone-number", + "time", + "boolean", + "integer", + "float", + "utc-offset", + "vcard", + "binary" + ], + allowXName: true, + allowIanaToken: true + } + }; + var vcard3Properties = ICAL2.helpers.extend(commonProperties, { + fn: DEFAULT_TYPE_TEXT, + n: { defaultType: "text", structuredValue: ";", multiValue: "," }, + nickname: DEFAULT_TYPE_TEXT_MULTI, + photo: { defaultType: "binary", allowedTypes: ["binary", "uri"] }, + bday: { + defaultType: "date-time", + allowedTypes: ["date-time", "date"], + detectType: function(string) { + return string.indexOf("T") === -1 ? "date" : "date-time"; + } + }, + adr: { defaultType: "text", structuredValue: ";", multiValue: "," }, + label: DEFAULT_TYPE_TEXT, + tel: { defaultType: "phone-number" }, + email: DEFAULT_TYPE_TEXT, + mailer: DEFAULT_TYPE_TEXT, + tz: { defaultType: "utc-offset", allowedTypes: ["utc-offset", "text"] }, + geo: { defaultType: "float", structuredValue: ";" }, + title: DEFAULT_TYPE_TEXT, + role: DEFAULT_TYPE_TEXT, + logo: { defaultType: "binary", allowedTypes: ["binary", "uri"] }, + agent: { defaultType: "vcard", allowedTypes: ["vcard", "text", "uri"] }, + org: DEFAULT_TYPE_TEXT_STRUCTURED, + note: DEFAULT_TYPE_TEXT_MULTI, + prodid: DEFAULT_TYPE_TEXT, + rev: { + defaultType: "date-time", + allowedTypes: ["date-time", "date"], + detectType: function(string) { + return string.indexOf("T") === -1 ? "date" : "date-time"; + } + }, + "sort-string": DEFAULT_TYPE_TEXT, + sound: { defaultType: "binary", allowedTypes: ["binary", "uri"] }, + class: DEFAULT_TYPE_TEXT, + key: { defaultType: "binary", allowedTypes: ["binary", "text"] } + }); + var icalSet = { + value: icalValues, + param: icalParams, + property: icalProperties + }; + var vcardSet = { + value: vcardValues, + param: vcardParams, + property: vcardProperties + }; + var vcard3Set = { + value: vcard3Values, + param: vcard3Params, + property: vcard3Properties + }; + var design = { + strict: true, + defaultSet: icalSet, + defaultType: "unknown", + components: { + vcard: vcardSet, + vcard3: vcard3Set, + vevent: icalSet, + vtodo: icalSet, + vjournal: icalSet, + valarm: icalSet, + vtimezone: icalSet, + daylight: icalSet, + standard: icalSet + }, + icalendar: icalSet, + vcard: vcardSet, + vcard3: vcard3Set, + getDesignSet: function(componentName) { + var isInDesign = componentName && componentName in design.components; + return isInDesign ? design.components[componentName] : design.defaultSet; + } + }; + return design; + }(); + ICAL2.stringify = function() { + "use strict"; + var LINE_ENDING = "\r\n"; + var DEFAULT_VALUE_TYPE = "unknown"; + var design = ICAL2.design; + var helpers = ICAL2.helpers; + function stringify(jCal) { + if (typeof jCal[0] == "string") { + jCal = [jCal]; + } + var i3 = 0; + var len = jCal.length; + var result = ""; + for (; i3 < len; i3++) { + result += stringify.component(jCal[i3]) + LINE_ENDING; + } + return result; + } + stringify.component = function(component, designSet) { + var name = component[0].toUpperCase(); + var result = "BEGIN:" + name + LINE_ENDING; + var props = component[1]; + var propIdx = 0; + var propLen = props.length; + var designSetName = component[0]; + if (designSetName === "vcard" && component[1].length > 0 && !(component[1][0][0] === "version" && component[1][0][3] === "4.0")) { + designSetName = "vcard3"; + } + designSet = designSet || design.getDesignSet(designSetName); + for (; propIdx < propLen; propIdx++) { + result += stringify.property(props[propIdx], designSet) + LINE_ENDING; + } + var comps = component[2] || []; + var compIdx = 0; + var compLen = comps.length; + for (; compIdx < compLen; compIdx++) { + result += stringify.component(comps[compIdx], designSet) + LINE_ENDING; + } + result += "END:" + name; + return result; + }; + stringify.property = function(property, designSet, noFold) { + var name = property[0].toUpperCase(); + var jsName = property[0]; + var params = property[1]; + var line = name; + var paramName; + for (paramName in params) { + var value = params[paramName]; + if (params.hasOwnProperty(paramName)) { + var multiValue = paramName in designSet.param && designSet.param[paramName].multiValue; + if (multiValue && Array.isArray(value)) { + if (designSet.param[paramName].multiValueSeparateDQuote) { + multiValue = '"' + multiValue + '"'; + } + value = value.map(stringify._rfc6868Unescape); + value = stringify.multiValue(value, multiValue, "unknown", null, designSet); + } else { + value = stringify._rfc6868Unescape(value); + } + line += ";" + paramName.toUpperCase(); + line += "=" + stringify.propertyValue(value); + } + } + if (property.length === 3) { + return line + ":"; + } + var valueType = property[2]; + if (!designSet) { + designSet = design.defaultSet; + } + var propDetails; + var multiValue = false; + var structuredValue = false; + var isDefault = false; + if (jsName in designSet.property) { + propDetails = designSet.property[jsName]; + if ("multiValue" in propDetails) { + multiValue = propDetails.multiValue; + } + if ("structuredValue" in propDetails && Array.isArray(property[3])) { + structuredValue = propDetails.structuredValue; + } + if ("defaultType" in propDetails) { + if (valueType === propDetails.defaultType) { + isDefault = true; + } + } else { + if (valueType === DEFAULT_VALUE_TYPE) { + isDefault = true; + } + } + } else { + if (valueType === DEFAULT_VALUE_TYPE) { + isDefault = true; + } + } + if (!isDefault) { + line += ";VALUE=" + valueType.toUpperCase(); + } + line += ":"; + if (multiValue && structuredValue) { + line += stringify.multiValue(property[3], structuredValue, valueType, multiValue, designSet, structuredValue); + } else if (multiValue) { + line += stringify.multiValue(property.slice(3), multiValue, valueType, null, designSet, false); + } else if (structuredValue) { + line += stringify.multiValue(property[3], structuredValue, valueType, null, designSet, structuredValue); + } else { + line += stringify.value(property[3], valueType, designSet, false); + } + return noFold ? line : ICAL2.helpers.foldline(line); + }; + stringify.propertyValue = function(value) { + if (helpers.unescapedIndexOf(value, ",") === -1 && helpers.unescapedIndexOf(value, ":") === -1 && helpers.unescapedIndexOf(value, ";") === -1) { + return value; + } + return '"' + value + '"'; + }; + stringify.multiValue = function(values, delim, type, innerMulti, designSet, structuredValue) { + var result = ""; + var len = values.length; + var i3 = 0; + for (; i3 < len; i3++) { + if (innerMulti && Array.isArray(values[i3])) { + result += stringify.multiValue(values[i3], innerMulti, type, null, designSet, structuredValue); + } else { + result += stringify.value(values[i3], type, designSet, structuredValue); + } + if (i3 !== len - 1) { + result += delim; + } + } + return result; + }; + stringify.value = function(value, type, designSet, structuredValue) { + if (type in designSet.value && "toICAL" in designSet.value[type]) { + return designSet.value[type].toICAL(value, structuredValue); + } + return value; + }; + stringify._rfc6868Unescape = function(val) { + return val.replace(/[\n^"]/g, function(x3) { + return RFC6868_REPLACE_MAP[x3]; + }); + }; + var RFC6868_REPLACE_MAP = { '"': "^'", "\n": "^n", "^": "^^" }; + return stringify; + }(); + ICAL2.parse = function() { + "use strict"; + var CHAR = /[^ \t]/; + var MULTIVALUE_DELIMITER = ","; + var VALUE_DELIMITER = ":"; + var PARAM_DELIMITER = ";"; + var PARAM_NAME_DELIMITER = "="; + var DEFAULT_VALUE_TYPE = "unknown"; + var DEFAULT_PARAM_TYPE = "text"; + var design = ICAL2.design; + var helpers = ICAL2.helpers; + function ParserError(message) { + this.message = message; + this.name = "ParserError"; + try { + throw new Error(); + } catch (e3) { + if (e3.stack) { + var split2 = e3.stack.split("\n"); + split2.shift(); + this.stack = split2.join("\n"); + } + } + } + ParserError.prototype = Error.prototype; + function parser(input) { + var state = {}; + var root = state.component = []; + state.stack = [root]; + parser._eachLine(input, function(err, line) { + parser._handleContentLine(line, state); + }); + if (state.stack.length > 1) { + throw new ParserError("invalid ical body. component began but did not end"); + } + state = null; + return root.length == 1 ? root[0] : root; + } + parser.property = function(str, designSet) { + var state = { + component: [[], []], + designSet: designSet || design.defaultSet + }; + parser._handleContentLine(str, state); + return state.component[1][0]; + }; + parser.component = function(str) { + return parser(str); + }; + parser.ParserError = ParserError; + parser._handleContentLine = function(line, state) { + var valuePos = line.indexOf(VALUE_DELIMITER); + var paramPos = line.indexOf(PARAM_DELIMITER); + var lastParamIndex; + var lastValuePos; + var name; + var value; + var params = {}; + if (paramPos !== -1 && valuePos !== -1) { + if (paramPos > valuePos) { + paramPos = -1; + } + } + var parsedParams; + if (paramPos !== -1) { + name = line.substring(0, paramPos).toLowerCase(); + parsedParams = parser._parseParameters(line.substring(paramPos), 0, state.designSet); + if (parsedParams[2] == -1) { + throw new ParserError("Invalid parameters in '" + line + "'"); + } + params = parsedParams[0]; + lastParamIndex = parsedParams[1].length + parsedParams[2] + paramPos; + if ((lastValuePos = line.substring(lastParamIndex).indexOf(VALUE_DELIMITER)) !== -1) { + value = line.substring(lastParamIndex + lastValuePos + 1); + } else { + throw new ParserError("Missing parameter value in '" + line + "'"); + } + } else if (valuePos !== -1) { + name = line.substring(0, valuePos).toLowerCase(); + value = line.substring(valuePos + 1); + if (name === "begin") { + var newComponent = [value.toLowerCase(), [], []]; + if (state.stack.length === 1) { + state.component.push(newComponent); + } else { + state.component[2].push(newComponent); + } + state.stack.push(state.component); + state.component = newComponent; + if (!state.designSet) { + state.designSet = design.getDesignSet(state.component[0]); + } + return; + } else if (name === "end") { + state.component = state.stack.pop(); + return; + } + } else { + throw new ParserError('invalid line (no token ";" or ":") "' + line + '"'); + } + var valueType; + var multiValue = false; + var structuredValue = false; + var propertyDetails; + if (name in state.designSet.property) { + propertyDetails = state.designSet.property[name]; + if ("multiValue" in propertyDetails) { + multiValue = propertyDetails.multiValue; + } + if ("structuredValue" in propertyDetails) { + structuredValue = propertyDetails.structuredValue; + } + if (value && "detectType" in propertyDetails) { + valueType = propertyDetails.detectType(value); + } + } + if (!valueType) { + if (!("value" in params)) { + if (propertyDetails) { + valueType = propertyDetails.defaultType; + } else { + valueType = DEFAULT_VALUE_TYPE; + } + } else { + valueType = params.value.toLowerCase(); + } + } + delete params.value; + var result; + if (multiValue && structuredValue) { + value = parser._parseMultiValue(value, structuredValue, valueType, [], multiValue, state.designSet, structuredValue); + result = [name, params, valueType, value]; + } else if (multiValue) { + result = [name, params, valueType]; + parser._parseMultiValue(value, multiValue, valueType, result, null, state.designSet, false); + } else if (structuredValue) { + value = parser._parseMultiValue(value, structuredValue, valueType, [], null, state.designSet, structuredValue); + result = [name, params, valueType, value]; + } else { + value = parser._parseValue(value, valueType, state.designSet, false); + result = [name, params, valueType, value]; + } + if (state.component[0] === "vcard" && state.component[1].length === 0 && !(name === "version" && value === "4.0")) { + state.designSet = design.getDesignSet("vcard3"); + } + state.component[1].push(result); + }; + parser._parseValue = function(value, type, designSet, structuredValue) { + if (type in designSet.value && "fromICAL" in designSet.value[type]) { + return designSet.value[type].fromICAL(value, structuredValue); + } + return value; + }; + parser._parseParameters = function(line, start, designSet) { + var lastParam = start; + var pos = 0; + var delim = PARAM_NAME_DELIMITER; + var result = {}; + var name, lcname; + var value, valuePos = -1; + var type, multiValue, mvdelim; + while (pos !== false && (pos = helpers.unescapedIndexOf(line, delim, pos + 1)) !== -1) { + name = line.substr(lastParam + 1, pos - lastParam - 1); + if (name.length == 0) { + throw new ParserError("Empty parameter name in '" + line + "'"); + } + lcname = name.toLowerCase(); + mvdelim = false; + multiValue = false; + if (lcname in designSet.param && designSet.param[lcname].valueType) { + type = designSet.param[lcname].valueType; + } else { + type = DEFAULT_PARAM_TYPE; + } + if (lcname in designSet.param) { + multiValue = designSet.param[lcname].multiValue; + if (designSet.param[lcname].multiValueSeparateDQuote) { + mvdelim = parser._rfc6868Escape('"' + multiValue + '"'); + } + } + var nextChar = line[pos + 1]; + if (nextChar === '"') { + valuePos = pos + 2; + pos = helpers.unescapedIndexOf(line, '"', valuePos); + if (multiValue && pos != -1) { + var extendedValue = true; + while (extendedValue) { + if (line[pos + 1] == multiValue && line[pos + 2] == '"') { + pos = helpers.unescapedIndexOf(line, '"', pos + 3); + } else { + extendedValue = false; + } + } + } + if (pos === -1) { + throw new ParserError('invalid line (no matching double quote) "' + line + '"'); + } + value = line.substr(valuePos, pos - valuePos); + lastParam = helpers.unescapedIndexOf(line, PARAM_DELIMITER, pos); + if (lastParam === -1) { + pos = false; + } + } else { + valuePos = pos + 1; + var nextPos = helpers.unescapedIndexOf(line, PARAM_DELIMITER, valuePos); + var propValuePos = helpers.unescapedIndexOf(line, VALUE_DELIMITER, valuePos); + if (propValuePos !== -1 && nextPos > propValuePos) { + nextPos = propValuePos; + pos = false; + } else if (nextPos === -1) { + if (propValuePos === -1) { + nextPos = line.length; + } else { + nextPos = propValuePos; + } + pos = false; + } else { + lastParam = nextPos; + pos = nextPos; + } + value = line.substr(valuePos, nextPos - valuePos); + } + value = parser._rfc6868Escape(value); + if (multiValue) { + var delimiter = mvdelim || multiValue; + value = parser._parseMultiValue(value, delimiter, type, [], null, designSet); + } else { + value = parser._parseValue(value, type, designSet); + } + if (multiValue && lcname in result) { + if (Array.isArray(result[lcname])) { + result[lcname].push(value); + } else { + result[lcname] = [ + result[lcname], + value + ]; + } + } else { + result[lcname] = value; + } + } + return [result, value, valuePos]; + }; + parser._rfc6868Escape = function(val) { + return val.replace(/\^['n^]/g, function(x3) { + return RFC6868_REPLACE_MAP[x3]; + }); + }; + var RFC6868_REPLACE_MAP = { "^'": '"', "^n": "\n", "^^": "^" }; + parser._parseMultiValue = function(buffer, delim, type, result, innerMulti, designSet, structuredValue) { + var pos = 0; + var lastPos = 0; + var value; + if (delim.length === 0) { + return buffer; + } + while ((pos = helpers.unescapedIndexOf(buffer, delim, lastPos)) !== -1) { + value = buffer.substr(lastPos, pos - lastPos); + if (innerMulti) { + value = parser._parseMultiValue(value, innerMulti, type, [], null, designSet, structuredValue); + } else { + value = parser._parseValue(value, type, designSet, structuredValue); + } + result.push(value); + lastPos = pos + delim.length; + } + value = buffer.substr(lastPos); + if (innerMulti) { + value = parser._parseMultiValue(value, innerMulti, type, [], null, designSet, structuredValue); + } else { + value = parser._parseValue(value, type, designSet, structuredValue); + } + result.push(value); + return result.length == 1 ? result[0] : result; + }; + parser._eachLine = function(buffer, callback) { + var len = buffer.length; + var lastPos = buffer.search(CHAR); + var pos = lastPos; + var line; + var firstChar; + var newlineOffset; + do { + pos = buffer.indexOf("\n", lastPos) + 1; + if (pos > 1 && buffer[pos - 2] === "\r") { + newlineOffset = 2; + } else { + newlineOffset = 1; + } + if (pos === 0) { + pos = len; + newlineOffset = 0; + } + firstChar = buffer[lastPos]; + if (firstChar === " " || firstChar === " ") { + line += buffer.substr(lastPos + 1, pos - lastPos - (newlineOffset + 1)); + } else { + if (line) + callback(null, line); + line = buffer.substr(lastPos, pos - lastPos - newlineOffset); + } + lastPos = pos; + } while (pos !== len); + line = line.trim(); + if (line.length) + callback(null, line); + }; + return parser; + }(); + ICAL2.Component = function() { + "use strict"; + var PROPERTY_INDEX = 1; + var COMPONENT_INDEX = 2; + var NAME_INDEX = 0; + function Component4(jCal, parent) { + if (typeof jCal === "string") { + jCal = [jCal, [], []]; + } + this.jCal = jCal; + this.parent = parent || null; + } + Component4.prototype = { + _hydratedPropertyCount: 0, + _hydratedComponentCount: 0, + get name() { + return this.jCal[NAME_INDEX]; + }, + get _designSet() { + var parentDesign = this.parent && this.parent._designSet; + return parentDesign || ICAL2.design.getDesignSet(this.name); + }, + _hydrateComponent: function(index) { + if (!this._components) { + this._components = []; + this._hydratedComponentCount = 0; + } + if (this._components[index]) { + return this._components[index]; + } + var comp = new Component4(this.jCal[COMPONENT_INDEX][index], this); + this._hydratedComponentCount++; + return this._components[index] = comp; + }, + _hydrateProperty: function(index) { + if (!this._properties) { + this._properties = []; + this._hydratedPropertyCount = 0; + } + if (this._properties[index]) { + return this._properties[index]; + } + var prop = new ICAL2.Property(this.jCal[PROPERTY_INDEX][index], this); + this._hydratedPropertyCount++; + return this._properties[index] = prop; + }, + getFirstSubcomponent: function(name) { + if (name) { + var i3 = 0; + var comps = this.jCal[COMPONENT_INDEX]; + var len = comps.length; + for (; i3 < len; i3++) { + if (comps[i3][NAME_INDEX] === name) { + var result = this._hydrateComponent(i3); + return result; + } + } + } else { + if (this.jCal[COMPONENT_INDEX].length) { + return this._hydrateComponent(0); + } + } + return null; + }, + getAllSubcomponents: function(name) { + var jCalLen = this.jCal[COMPONENT_INDEX].length; + var i3 = 0; + if (name) { + var comps = this.jCal[COMPONENT_INDEX]; + var result = []; + for (; i3 < jCalLen; i3++) { + if (name === comps[i3][NAME_INDEX]) { + result.push(this._hydrateComponent(i3)); + } + } + return result; + } else { + if (!this._components || this._hydratedComponentCount !== jCalLen) { + for (; i3 < jCalLen; i3++) { + this._hydrateComponent(i3); + } + } + return this._components || []; + } + }, + hasProperty: function(name) { + var props = this.jCal[PROPERTY_INDEX]; + var len = props.length; + var i3 = 0; + for (; i3 < len; i3++) { + if (props[i3][NAME_INDEX] === name) { + return true; + } + } + return false; + }, + getFirstProperty: function(name) { + if (name) { + var i3 = 0; + var props = this.jCal[PROPERTY_INDEX]; + var len = props.length; + for (; i3 < len; i3++) { + if (props[i3][NAME_INDEX] === name) { + var result = this._hydrateProperty(i3); + return result; + } + } + } else { + if (this.jCal[PROPERTY_INDEX].length) { + return this._hydrateProperty(0); + } + } + return null; + }, + getFirstPropertyValue: function(name) { + var prop = this.getFirstProperty(name); + if (prop) { + return prop.getFirstValue(); + } + return null; + }, + getAllProperties: function(name) { + var jCalLen = this.jCal[PROPERTY_INDEX].length; + var i3 = 0; + if (name) { + var props = this.jCal[PROPERTY_INDEX]; + var result = []; + for (; i3 < jCalLen; i3++) { + if (name === props[i3][NAME_INDEX]) { + result.push(this._hydrateProperty(i3)); + } + } + return result; + } else { + if (!this._properties || this._hydratedPropertyCount !== jCalLen) { + for (; i3 < jCalLen; i3++) { + this._hydrateProperty(i3); + } + } + return this._properties || []; + } + }, + _removeObjectByIndex: function(jCalIndex, cache, index) { + cache = cache || []; + if (cache[index]) { + var obj = cache[index]; + if ("parent" in obj) { + obj.parent = null; + } + } + cache.splice(index, 1); + this.jCal[jCalIndex].splice(index, 1); + }, + _removeObject: function(jCalIndex, cache, nameOrObject) { + var i3 = 0; + var objects = this.jCal[jCalIndex]; + var len = objects.length; + var cached = this[cache]; + if (typeof nameOrObject === "string") { + for (; i3 < len; i3++) { + if (objects[i3][NAME_INDEX] === nameOrObject) { + this._removeObjectByIndex(jCalIndex, cached, i3); + return true; + } + } + } else if (cached) { + for (; i3 < len; i3++) { + if (cached[i3] && cached[i3] === nameOrObject) { + this._removeObjectByIndex(jCalIndex, cached, i3); + return true; + } + } + } + return false; + }, + _removeAllObjects: function(jCalIndex, cache, name) { + var cached = this[cache]; + var objects = this.jCal[jCalIndex]; + var i3 = objects.length - 1; + for (; i3 >= 0; i3--) { + if (!name || objects[i3][NAME_INDEX] === name) { + this._removeObjectByIndex(jCalIndex, cached, i3); + } + } + }, + addSubcomponent: function(component) { + if (!this._components) { + this._components = []; + this._hydratedComponentCount = 0; + } + if (component.parent) { + component.parent.removeSubcomponent(component); + } + var idx = this.jCal[COMPONENT_INDEX].push(component.jCal); + this._components[idx - 1] = component; + this._hydratedComponentCount++; + component.parent = this; + return component; + }, + removeSubcomponent: function(nameOrComp) { + var removed = this._removeObject(COMPONENT_INDEX, "_components", nameOrComp); + if (removed) { + this._hydratedComponentCount--; + } + return removed; + }, + removeAllSubcomponents: function(name) { + var removed = this._removeAllObjects(COMPONENT_INDEX, "_components", name); + this._hydratedComponentCount = 0; + return removed; + }, + addProperty: function(property) { + if (!(property instanceof ICAL2.Property)) { + throw new TypeError("must instance of ICAL.Property"); + } + if (!this._properties) { + this._properties = []; + this._hydratedPropertyCount = 0; + } + if (property.parent) { + property.parent.removeProperty(property); + } + var idx = this.jCal[PROPERTY_INDEX].push(property.jCal); + this._properties[idx - 1] = property; + this._hydratedPropertyCount++; + property.parent = this; + return property; + }, + addPropertyWithValue: function(name, value) { + var prop = new ICAL2.Property(name); + prop.setValue(value); + this.addProperty(prop); + return prop; + }, + updatePropertyWithValue: function(name, value) { + var prop = this.getFirstProperty(name); + if (prop) { + prop.setValue(value); + } else { + prop = this.addPropertyWithValue(name, value); + } + return prop; + }, + removeProperty: function(nameOrProp) { + var removed = this._removeObject(PROPERTY_INDEX, "_properties", nameOrProp); + if (removed) { + this._hydratedPropertyCount--; + } + return removed; + }, + removeAllProperties: function(name) { + var removed = this._removeAllObjects(PROPERTY_INDEX, "_properties", name); + this._hydratedPropertyCount = 0; + return removed; + }, + toJSON: function() { + return this.jCal; + }, + toString: function() { + return ICAL2.stringify.component(this.jCal, this._designSet); + } + }; + Component4.fromString = function(str) { + return new Component4(ICAL2.parse.component(str)); + }; + return Component4; + }(); + ICAL2.Property = function() { + "use strict"; + var NAME_INDEX = 0; + var PROP_INDEX = 1; + var TYPE_INDEX = 2; + var VALUE_INDEX = 3; + var design = ICAL2.design; + function Property(jCal, parent) { + this._parent = parent || null; + if (typeof jCal === "string") { + this.jCal = [jCal, {}, design.defaultType]; + this.jCal[TYPE_INDEX] = this.getDefaultType(); + } else { + this.jCal = jCal; + } + this._updateType(); + } + Property.prototype = { + get type() { + return this.jCal[TYPE_INDEX]; + }, + get name() { + return this.jCal[NAME_INDEX]; + }, + get parent() { + return this._parent; + }, + set parent(p3) { + var designSetChanged = !this._parent || p3 && p3._designSet != this._parent._designSet; + this._parent = p3; + if (this.type == design.defaultType && designSetChanged) { + this.jCal[TYPE_INDEX] = this.getDefaultType(); + this._updateType(); + } + return p3; + }, + get _designSet() { + return this.parent ? this.parent._designSet : design.defaultSet; + }, + _updateType: function() { + var designSet = this._designSet; + if (this.type in designSet.value) { + var designType = designSet.value[this.type]; + if ("decorate" in designSet.value[this.type]) { + this.isDecorated = true; + } else { + this.isDecorated = false; + } + if (this.name in designSet.property) { + this.isMultiValue = "multiValue" in designSet.property[this.name]; + this.isStructuredValue = "structuredValue" in designSet.property[this.name]; + } + } + }, + _hydrateValue: function(index) { + if (this._values && this._values[index]) { + return this._values[index]; + } + if (this.jCal.length <= VALUE_INDEX + index) { + return null; + } + if (this.isDecorated) { + if (!this._values) { + this._values = []; + } + return this._values[index] = this._decorate(this.jCal[VALUE_INDEX + index]); + } else { + return this.jCal[VALUE_INDEX + index]; + } + }, + _decorate: function(value) { + return this._designSet.value[this.type].decorate(value, this); + }, + _undecorate: function(value) { + return this._designSet.value[this.type].undecorate(value, this); + }, + _setDecoratedValue: function(value, index) { + if (!this._values) { + this._values = []; + } + if (typeof value === "object" && "icaltype" in value) { + this.jCal[VALUE_INDEX + index] = this._undecorate(value); + this._values[index] = value; + } else { + this.jCal[VALUE_INDEX + index] = value; + this._values[index] = this._decorate(value); + } + }, + getParameter: function(name) { + if (name in this.jCal[PROP_INDEX]) { + return this.jCal[PROP_INDEX][name]; + } else { + return void 0; + } + }, + getFirstParameter: function(name) { + var parameters = this.getParameter(name); + if (Array.isArray(parameters)) { + return parameters[0]; + } + return parameters; + }, + setParameter: function(name, value) { + var lcname = name.toLowerCase(); + if (typeof value === "string" && lcname in this._designSet.param && "multiValue" in this._designSet.param[lcname]) { + value = [value]; + } + this.jCal[PROP_INDEX][name] = value; + }, + removeParameter: function(name) { + delete this.jCal[PROP_INDEX][name]; + }, + getDefaultType: function() { + var name = this.jCal[NAME_INDEX]; + var designSet = this._designSet; + if (name in designSet.property) { + var details = designSet.property[name]; + if ("defaultType" in details) { + return details.defaultType; + } + } + return design.defaultType; + }, + resetType: function(type) { + this.removeAllValues(); + this.jCal[TYPE_INDEX] = type; + this._updateType(); + }, + getFirstValue: function() { + return this._hydrateValue(0); + }, + getValues: function() { + var len = this.jCal.length - VALUE_INDEX; + if (len < 1) { + return []; + } + var i3 = 0; + var result = []; + for (; i3 < len; i3++) { + result[i3] = this._hydrateValue(i3); + } + return result; + }, + removeAllValues: function() { + if (this._values) { + this._values.length = 0; + } + this.jCal.length = 3; + }, + setValues: function(values) { + if (!this.isMultiValue) { + throw new Error(this.name + ": does not not support mulitValue.\noverride isMultiValue"); + } + var len = values.length; + var i3 = 0; + this.removeAllValues(); + if (len > 0 && typeof values[0] === "object" && "icaltype" in values[0]) { + this.resetType(values[0].icaltype); + } + if (this.isDecorated) { + for (; i3 < len; i3++) { + this._setDecoratedValue(values[i3], i3); + } + } else { + for (; i3 < len; i3++) { + this.jCal[VALUE_INDEX + i3] = values[i3]; + } + } + }, + setValue: function(value) { + this.removeAllValues(); + if (typeof value === "object" && "icaltype" in value) { + this.resetType(value.icaltype); + } + if (this.isDecorated) { + this._setDecoratedValue(value, 0); + } else { + this.jCal[VALUE_INDEX] = value; + } + }, + toJSON: function() { + return this.jCal; + }, + toICALString: function() { + return ICAL2.stringify.property(this.jCal, this._designSet, true); + } + }; + Property.fromString = function(str, designSet) { + return new Property(ICAL2.parse.property(str, designSet)); + }; + return Property; + }(); + ICAL2.UtcOffset = function() { + function UtcOffset(aData) { + this.fromData(aData); + } + UtcOffset.prototype = { + hours: 0, + minutes: 0, + factor: 1, + icaltype: "utc-offset", + clone: function() { + return ICAL2.UtcOffset.fromSeconds(this.toSeconds()); + }, + fromData: function(aData) { + if (aData) { + for (var key in aData) { + if (aData.hasOwnProperty(key)) { + this[key] = aData[key]; + } + } + } + this._normalize(); + }, + fromSeconds: function(aSeconds) { + var secs = Math.abs(aSeconds); + this.factor = aSeconds < 0 ? -1 : 1; + this.hours = ICAL2.helpers.trunc(secs / 3600); + secs -= this.hours * 3600; + this.minutes = ICAL2.helpers.trunc(secs / 60); + return this; + }, + toSeconds: function() { + return this.factor * (60 * this.minutes + 3600 * this.hours); + }, + compare: function icaltime_compare(other) { + var a3 = this.toSeconds(); + var b3 = other.toSeconds(); + return (a3 > b3) - (b3 > a3); + }, + _normalize: function() { + var secs = this.toSeconds(); + var factor = this.factor; + while (secs < -43200) { + secs += 97200; + } + while (secs > 50400) { + secs -= 97200; + } + this.fromSeconds(secs); + if (secs == 0) { + this.factor = factor; + } + }, + toICALString: function() { + return ICAL2.design.icalendar.value["utc-offset"].toICAL(this.toString()); + }, + toString: function toString() { + return (this.factor == 1 ? "+" : "-") + ICAL2.helpers.pad2(this.hours) + ":" + ICAL2.helpers.pad2(this.minutes); + } + }; + UtcOffset.fromString = function(aString) { + var options = {}; + options.factor = aString[0] === "+" ? 1 : -1; + options.hours = ICAL2.helpers.strictParseInt(aString.substr(1, 2)); + options.minutes = ICAL2.helpers.strictParseInt(aString.substr(4, 2)); + return new ICAL2.UtcOffset(options); + }; + UtcOffset.fromSeconds = function(aSeconds) { + var instance = new UtcOffset(); + instance.fromSeconds(aSeconds); + return instance; + }; + return UtcOffset; + }(); + ICAL2.Binary = function() { + function Binary(aValue) { + this.value = aValue; + } + Binary.prototype = { + icaltype: "binary", + decodeValue: function decodeValue() { + return this._b64_decode(this.value); + }, + setEncodedValue: function setEncodedValue(aValue) { + this.value = this._b64_encode(aValue); + }, + _b64_encode: function base64_encode(data) { + var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; + var o1, o2, o3, h1, h22, h3, h4, bits, i3 = 0, ac = 0, enc = "", tmp_arr = []; + if (!data) { + return data; + } + do { + o1 = data.charCodeAt(i3++); + o2 = data.charCodeAt(i3++); + o3 = data.charCodeAt(i3++); + bits = o1 << 16 | o2 << 8 | o3; + h1 = bits >> 18 & 63; + h22 = bits >> 12 & 63; + h3 = bits >> 6 & 63; + h4 = bits & 63; + tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h22) + b64.charAt(h3) + b64.charAt(h4); + } while (i3 < data.length); + enc = tmp_arr.join(""); + var r3 = data.length % 3; + return (r3 ? enc.slice(0, r3 - 3) : enc) + "===".slice(r3 || 3); + }, + _b64_decode: function base64_decode(data) { + var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; + var o1, o2, o3, h1, h22, h3, h4, bits, i3 = 0, ac = 0, dec = "", tmp_arr = []; + if (!data) { + return data; + } + data += ""; + do { + h1 = b64.indexOf(data.charAt(i3++)); + h22 = b64.indexOf(data.charAt(i3++)); + h3 = b64.indexOf(data.charAt(i3++)); + h4 = b64.indexOf(data.charAt(i3++)); + bits = h1 << 18 | h22 << 12 | h3 << 6 | h4; + o1 = bits >> 16 & 255; + o2 = bits >> 8 & 255; + o3 = bits & 255; + if (h3 == 64) { + tmp_arr[ac++] = String.fromCharCode(o1); + } else if (h4 == 64) { + tmp_arr[ac++] = String.fromCharCode(o1, o2); + } else { + tmp_arr[ac++] = String.fromCharCode(o1, o2, o3); + } + } while (i3 < data.length); + dec = tmp_arr.join(""); + return dec; + }, + toString: function() { + return this.value; + } + }; + Binary.fromString = function(aString) { + return new Binary(aString); + }; + return Binary; + }(); + (function() { + ICAL2.Period = function icalperiod(aData) { + this.wrappedJSObject = this; + if (aData && "start" in aData) { + if (aData.start && !(aData.start instanceof ICAL2.Time)) { + throw new TypeError(".start must be an instance of ICAL.Time"); + } + this.start = aData.start; + } + if (aData && aData.end && aData.duration) { + throw new Error("cannot accept both end and duration"); + } + if (aData && "end" in aData) { + if (aData.end && !(aData.end instanceof ICAL2.Time)) { + throw new TypeError(".end must be an instance of ICAL.Time"); + } + this.end = aData.end; + } + if (aData && "duration" in aData) { + if (aData.duration && !(aData.duration instanceof ICAL2.Duration)) { + throw new TypeError(".duration must be an instance of ICAL.Duration"); + } + this.duration = aData.duration; + } + }; + ICAL2.Period.prototype = { + start: null, + end: null, + duration: null, + icalclass: "icalperiod", + icaltype: "period", + clone: function() { + return ICAL2.Period.fromData({ + start: this.start ? this.start.clone() : null, + end: this.end ? this.end.clone() : null, + duration: this.duration ? this.duration.clone() : null + }); + }, + getDuration: function duration() { + if (this.duration) { + return this.duration; + } else { + return this.end.subtractDate(this.start); + } + }, + getEnd: function() { + if (this.end) { + return this.end; + } else { + var end = this.start.clone(); + end.addDuration(this.duration); + return end; + } + }, + toString: function toString() { + return this.start + "/" + (this.end || this.duration); + }, + toJSON: function() { + return [this.start.toString(), (this.end || this.duration).toString()]; + }, + toICALString: function() { + return this.start.toICALString() + "/" + (this.end || this.duration).toICALString(); + } + }; + ICAL2.Period.fromString = function fromString(str, prop) { + var parts = str.split("/"); + if (parts.length !== 2) { + throw new Error('Invalid string value: "' + str + '" must contain a "/" char.'); + } + var options = { + start: ICAL2.Time.fromDateTimeString(parts[0], prop) + }; + var end = parts[1]; + if (ICAL2.Duration.isValueString(end)) { + options.duration = ICAL2.Duration.fromString(end); + } else { + options.end = ICAL2.Time.fromDateTimeString(end, prop); + } + return new ICAL2.Period(options); + }; + ICAL2.Period.fromData = function fromData(aData) { + return new ICAL2.Period(aData); + }; + ICAL2.Period.fromJSON = function(aData, aProp, aLenient) { + function fromDateOrDateTimeString(aValue, aProp2) { + if (aLenient) { + return ICAL2.Time.fromString(aValue, aProp2); + } else { + return ICAL2.Time.fromDateTimeString(aValue, aProp2); + } + } + if (ICAL2.Duration.isValueString(aData[1])) { + return ICAL2.Period.fromData({ + start: fromDateOrDateTimeString(aData[0], aProp), + duration: ICAL2.Duration.fromString(aData[1]) + }); + } else { + return ICAL2.Period.fromData({ + start: fromDateOrDateTimeString(aData[0], aProp), + end: fromDateOrDateTimeString(aData[1], aProp) + }); + } + }; + })(); + (function() { + var DURATION_LETTERS = /([PDWHMTS]{1,1})/; + ICAL2.Duration = function icalduration(data) { + this.wrappedJSObject = this; + this.fromData(data); + }; + ICAL2.Duration.prototype = { + weeks: 0, + days: 0, + hours: 0, + minutes: 0, + seconds: 0, + isNegative: false, + icalclass: "icalduration", + icaltype: "duration", + clone: function clone4() { + return ICAL2.Duration.fromData(this); + }, + toSeconds: function toSeconds() { + var seconds = this.seconds + 60 * this.minutes + 3600 * this.hours + 86400 * this.days + 7 * 86400 * this.weeks; + return this.isNegative ? -seconds : seconds; + }, + fromSeconds: function fromSeconds(aSeconds) { + var secs = Math.abs(aSeconds); + this.isNegative = aSeconds < 0; + this.days = ICAL2.helpers.trunc(secs / 86400); + if (this.days % 7 == 0) { + this.weeks = this.days / 7; + this.days = 0; + } else { + this.weeks = 0; + } + secs -= (this.days + 7 * this.weeks) * 86400; + this.hours = ICAL2.helpers.trunc(secs / 3600); + secs -= this.hours * 3600; + this.minutes = ICAL2.helpers.trunc(secs / 60); + secs -= this.minutes * 60; + this.seconds = secs; + return this; + }, + fromData: function fromData(aData) { + var propsToCopy = [ + "weeks", + "days", + "hours", + "minutes", + "seconds", + "isNegative" + ]; + for (var key in propsToCopy) { + if (!propsToCopy.hasOwnProperty(key)) { + continue; + } + var prop = propsToCopy[key]; + if (aData && prop in aData) { + this[prop] = aData[prop]; + } else { + this[prop] = 0; + } + } + }, + reset: function reset() { + this.isNegative = false; + this.weeks = 0; + this.days = 0; + this.hours = 0; + this.minutes = 0; + this.seconds = 0; + }, + compare: function compare(aOther) { + var thisSeconds = this.toSeconds(); + var otherSeconds = aOther.toSeconds(); + return (thisSeconds > otherSeconds) - (thisSeconds < otherSeconds); + }, + normalize: function normalize() { + this.fromSeconds(this.toSeconds()); + }, + toString: function toString() { + if (this.toSeconds() == 0) { + return "PT0S"; + } else { + var str = ""; + if (this.isNegative) + str += "-"; + str += "P"; + if (this.weeks) + str += this.weeks + "W"; + if (this.days) + str += this.days + "D"; + if (this.hours || this.minutes || this.seconds) { + str += "T"; + if (this.hours) + str += this.hours + "H"; + if (this.minutes) + str += this.minutes + "M"; + if (this.seconds) + str += this.seconds + "S"; + } + return str; + } + }, + toICALString: function() { + return this.toString(); + } + }; + ICAL2.Duration.fromSeconds = function icalduration_from_seconds(aSeconds) { + return new ICAL2.Duration().fromSeconds(aSeconds); + }; + function parseDurationChunk(letter, number, object) { + var type; + switch (letter) { + case "P": + if (number && number === "-") { + object.isNegative = true; + } else { + object.isNegative = false; + } + break; + case "D": + type = "days"; + break; + case "W": + type = "weeks"; + break; + case "H": + type = "hours"; + break; + case "M": + type = "minutes"; + break; + case "S": + type = "seconds"; + break; + default: + return 0; + } + if (type) { + if (!number && number !== 0) { + throw new Error('invalid duration value: Missing number before "' + letter + '"'); + } + var num = parseInt(number, 10); + if (ICAL2.helpers.isStrictlyNaN(num)) { + throw new Error('invalid duration value: Invalid number "' + number + '" before "' + letter + '"'); + } + object[type] = num; + } + return 1; + } + ICAL2.Duration.isValueString = function(string) { + return string[0] === "P" || string[1] === "P"; + }; + ICAL2.Duration.fromString = function icalduration_from_string(aStr) { + var pos = 0; + var dict = Object.create(null); + var chunks = 0; + while ((pos = aStr.search(DURATION_LETTERS)) !== -1) { + var type = aStr[pos]; + var numeric = aStr.substr(0, pos); + aStr = aStr.substr(pos + 1); + chunks += parseDurationChunk(type, numeric, dict); + } + if (chunks < 2) { + throw new Error('invalid duration value: Not enough duration components in "' + aStr + '"'); + } + return new ICAL2.Duration(dict); + }; + ICAL2.Duration.fromData = function icalduration_from_data(aData) { + return new ICAL2.Duration(aData); + }; + })(); + (function() { + var OPTIONS = [ + "tzid", + "location", + "tznames", + "latitude", + "longitude" + ]; + ICAL2.Timezone = function icaltimezone(data) { + this.wrappedJSObject = this; + this.fromData(data); + }; + ICAL2.Timezone.prototype = { + tzid: "", + location: "", + tznames: "", + latitude: 0, + longitude: 0, + component: null, + expandedUntilYear: 0, + icalclass: "icaltimezone", + fromData: function fromData(aData) { + this.expandedUntilYear = 0; + this.changes = []; + if (aData instanceof ICAL2.Component) { + this.component = aData; + } else { + if (aData && "component" in aData) { + if (typeof aData.component == "string") { + var jCal = ICAL2.parse(aData.component); + this.component = new ICAL2.Component(jCal); + } else if (aData.component instanceof ICAL2.Component) { + this.component = aData.component; + } else { + this.component = null; + } + } + for (var key in OPTIONS) { + if (OPTIONS.hasOwnProperty(key)) { + var prop = OPTIONS[key]; + if (aData && prop in aData) { + this[prop] = aData[prop]; + } + } + } + } + if (this.component instanceof ICAL2.Component && !this.tzid) { + this.tzid = this.component.getFirstPropertyValue("tzid"); + } + return this; + }, + utcOffset: function utcOffset(tt) { + if (this == ICAL2.Timezone.utcTimezone || this == ICAL2.Timezone.localTimezone) { + return 0; + } + this._ensureCoverage(tt.year); + if (!this.changes.length) { + return 0; + } + var tt_change = { + year: tt.year, + month: tt.month, + day: tt.day, + hour: tt.hour, + minute: tt.minute, + second: tt.second + }; + var change_num = this._findNearbyChange(tt_change); + var change_num_to_use = -1; + var step = 1; + for (; ; ) { + var change = ICAL2.helpers.clone(this.changes[change_num], true); + if (change.utcOffset < change.prevUtcOffset) { + ICAL2.Timezone.adjust_change(change, 0, 0, 0, change.utcOffset); + } else { + ICAL2.Timezone.adjust_change(change, 0, 0, 0, change.prevUtcOffset); + } + var cmp = ICAL2.Timezone._compare_change_fn(tt_change, change); + if (cmp >= 0) { + change_num_to_use = change_num; + } else { + step = -1; + } + if (step == -1 && change_num_to_use != -1) { + break; + } + change_num += step; + if (change_num < 0) { + return 0; + } + if (change_num >= this.changes.length) { + break; + } + } + var zone_change = this.changes[change_num_to_use]; + var utcOffset_change = zone_change.utcOffset - zone_change.prevUtcOffset; + if (utcOffset_change < 0 && change_num_to_use > 0) { + var tmp_change = ICAL2.helpers.clone(zone_change, true); + ICAL2.Timezone.adjust_change(tmp_change, 0, 0, 0, tmp_change.prevUtcOffset); + if (ICAL2.Timezone._compare_change_fn(tt_change, tmp_change) < 0) { + var prev_zone_change = this.changes[change_num_to_use - 1]; + var want_daylight = false; + if (zone_change.is_daylight != want_daylight && prev_zone_change.is_daylight == want_daylight) { + zone_change = prev_zone_change; + } + } + } + return zone_change.utcOffset; + }, + _findNearbyChange: function icaltimezone_find_nearby_change(change) { + var idx = ICAL2.helpers.binsearchInsert(this.changes, change, ICAL2.Timezone._compare_change_fn); + if (idx >= this.changes.length) { + return this.changes.length - 1; + } + return idx; + }, + _ensureCoverage: function(aYear) { + if (ICAL2.Timezone._minimumExpansionYear == -1) { + var today = ICAL2.Time.now(); + ICAL2.Timezone._minimumExpansionYear = today.year; + } + var changesEndYear = aYear; + if (changesEndYear < ICAL2.Timezone._minimumExpansionYear) { + changesEndYear = ICAL2.Timezone._minimumExpansionYear; + } + changesEndYear += ICAL2.Timezone.EXTRA_COVERAGE; + if (changesEndYear > ICAL2.Timezone.MAX_YEAR) { + changesEndYear = ICAL2.Timezone.MAX_YEAR; + } + if (!this.changes.length || this.expandedUntilYear < aYear) { + var subcomps = this.component.getAllSubcomponents(); + var compLen = subcomps.length; + var compIdx = 0; + for (; compIdx < compLen; compIdx++) { + this._expandComponent(subcomps[compIdx], changesEndYear, this.changes); + } + this.changes.sort(ICAL2.Timezone._compare_change_fn); + this.expandedUntilYear = changesEndYear; + } + }, + _expandComponent: function(aComponent, aYear, changes) { + if (!aComponent.hasProperty("dtstart") || !aComponent.hasProperty("tzoffsetto") || !aComponent.hasProperty("tzoffsetfrom")) { + return null; + } + var dtstart = aComponent.getFirstProperty("dtstart").getFirstValue(); + var change; + function convert_tzoffset(offset2) { + return offset2.factor * (offset2.hours * 3600 + offset2.minutes * 60); + } + function init_changes() { + var changebase = {}; + changebase.is_daylight = aComponent.name == "daylight"; + changebase.utcOffset = convert_tzoffset(aComponent.getFirstProperty("tzoffsetto").getFirstValue()); + changebase.prevUtcOffset = convert_tzoffset(aComponent.getFirstProperty("tzoffsetfrom").getFirstValue()); + return changebase; + } + if (!aComponent.hasProperty("rrule") && !aComponent.hasProperty("rdate")) { + change = init_changes(); + change.year = dtstart.year; + change.month = dtstart.month; + change.day = dtstart.day; + change.hour = dtstart.hour; + change.minute = dtstart.minute; + change.second = dtstart.second; + ICAL2.Timezone.adjust_change(change, 0, 0, 0, -change.prevUtcOffset); + changes.push(change); + } else { + var props = aComponent.getAllProperties("rdate"); + for (var rdatekey in props) { + if (!props.hasOwnProperty(rdatekey)) { + continue; + } + var rdate = props[rdatekey]; + var time = rdate.getFirstValue(); + change = init_changes(); + change.year = time.year; + change.month = time.month; + change.day = time.day; + if (time.isDate) { + change.hour = dtstart.hour; + change.minute = dtstart.minute; + change.second = dtstart.second; + if (dtstart.zone != ICAL2.Timezone.utcTimezone) { + ICAL2.Timezone.adjust_change(change, 0, 0, 0, -change.prevUtcOffset); + } + } else { + change.hour = time.hour; + change.minute = time.minute; + change.second = time.second; + if (time.zone != ICAL2.Timezone.utcTimezone) { + ICAL2.Timezone.adjust_change(change, 0, 0, 0, -change.prevUtcOffset); + } + } + changes.push(change); + } + var rrule = aComponent.getFirstProperty("rrule"); + if (rrule) { + rrule = rrule.getFirstValue(); + change = init_changes(); + if (rrule.until && rrule.until.zone == ICAL2.Timezone.utcTimezone) { + rrule.until.adjust(0, 0, 0, change.prevUtcOffset); + rrule.until.zone = ICAL2.Timezone.localTimezone; + } + var iterator = rrule.iterator(dtstart); + var occ; + while (occ = iterator.next()) { + change = init_changes(); + if (occ.year > aYear || !occ) { + break; + } + change.year = occ.year; + change.month = occ.month; + change.day = occ.day; + change.hour = occ.hour; + change.minute = occ.minute; + change.second = occ.second; + change.isDate = occ.isDate; + ICAL2.Timezone.adjust_change(change, 0, 0, 0, -change.prevUtcOffset); + changes.push(change); + } + } + } + return changes; + }, + toString: function toString() { + return this.tznames ? this.tznames : this.tzid; + } + }; + ICAL2.Timezone._compare_change_fn = function icaltimezone_compare_change_fn(a3, b3) { + if (a3.year < b3.year) + return -1; + else if (a3.year > b3.year) + return 1; + if (a3.month < b3.month) + return -1; + else if (a3.month > b3.month) + return 1; + if (a3.day < b3.day) + return -1; + else if (a3.day > b3.day) + return 1; + if (a3.hour < b3.hour) + return -1; + else if (a3.hour > b3.hour) + return 1; + if (a3.minute < b3.minute) + return -1; + else if (a3.minute > b3.minute) + return 1; + if (a3.second < b3.second) + return -1; + else if (a3.second > b3.second) + return 1; + return 0; + }; + ICAL2.Timezone.convert_time = function icaltimezone_convert_time(tt, from_zone, to_zone) { + if (tt.isDate || from_zone.tzid == to_zone.tzid || from_zone == ICAL2.Timezone.localTimezone || to_zone == ICAL2.Timezone.localTimezone) { + tt.zone = to_zone; + return tt; + } + var utcOffset = from_zone.utcOffset(tt); + tt.adjust(0, 0, 0, -utcOffset); + utcOffset = to_zone.utcOffset(tt); + tt.adjust(0, 0, 0, utcOffset); + return null; + }; + ICAL2.Timezone.fromData = function icaltimezone_fromData(aData) { + var tt = new ICAL2.Timezone(); + return tt.fromData(aData); + }; + ICAL2.Timezone.utcTimezone = ICAL2.Timezone.fromData({ + tzid: "UTC" + }); + ICAL2.Timezone.localTimezone = ICAL2.Timezone.fromData({ + tzid: "floating" + }); + ICAL2.Timezone.adjust_change = function icaltimezone_adjust_change(change, days, hours, minutes, seconds) { + return ICAL2.Time.prototype.adjust.call(change, days, hours, minutes, seconds, change); + }; + ICAL2.Timezone._minimumExpansionYear = -1; + ICAL2.Timezone.MAX_YEAR = 2035; + ICAL2.Timezone.EXTRA_COVERAGE = 5; + })(); + ICAL2.TimezoneService = function() { + var zones; + var TimezoneService = { + get count() { + return Object.keys(zones).length; + }, + reset: function() { + zones = Object.create(null); + var utc = ICAL2.Timezone.utcTimezone; + zones.Z = utc; + zones.UTC = utc; + zones.GMT = utc; + }, + has: function(tzid) { + return !!zones[tzid]; + }, + get: function(tzid) { + return zones[tzid]; + }, + register: function(name, timezone) { + if (name instanceof ICAL2.Component) { + if (name.name === "vtimezone") { + timezone = new ICAL2.Timezone(name); + name = timezone.tzid; + } + } + if (timezone instanceof ICAL2.Timezone) { + zones[name] = timezone; + } else { + throw new TypeError("timezone must be ICAL.Timezone or ICAL.Component"); + } + }, + remove: function(tzid) { + return delete zones[tzid]; + } + }; + TimezoneService.reset(); + return TimezoneService; + }(); + (function() { + ICAL2.Time = function icaltime(data, zone) { + this.wrappedJSObject = this; + var time = this._time = Object.create(null); + time.year = 0; + time.month = 1; + time.day = 1; + time.hour = 0; + time.minute = 0; + time.second = 0; + time.isDate = false; + this.fromData(data, zone); + }; + ICAL2.Time._dowCache = {}; + ICAL2.Time._wnCache = {}; + ICAL2.Time.prototype = { + icalclass: "icaltime", + _cachedUnixTime: null, + get icaltype() { + return this.isDate ? "date" : "date-time"; + }, + zone: null, + _pendingNormalization: false, + clone: function() { + return new ICAL2.Time(this._time, this.zone); + }, + reset: function icaltime_reset() { + this.fromData(ICAL2.Time.epochTime); + this.zone = ICAL2.Timezone.utcTimezone; + }, + resetTo: function icaltime_resetTo(year, month, day, hour, minute, second, timezone) { + this.fromData({ + year, + month, + day, + hour, + minute, + second, + zone: timezone + }); + }, + fromJSDate: function icaltime_fromJSDate(aDate, useUTC) { + if (!aDate) { + this.reset(); + } else { + if (useUTC) { + this.zone = ICAL2.Timezone.utcTimezone; + this.year = aDate.getUTCFullYear(); + this.month = aDate.getUTCMonth() + 1; + this.day = aDate.getUTCDate(); + this.hour = aDate.getUTCHours(); + this.minute = aDate.getUTCMinutes(); + this.second = aDate.getUTCSeconds(); + } else { + this.zone = ICAL2.Timezone.localTimezone; + this.year = aDate.getFullYear(); + this.month = aDate.getMonth() + 1; + this.day = aDate.getDate(); + this.hour = aDate.getHours(); + this.minute = aDate.getMinutes(); + this.second = aDate.getSeconds(); + } + } + this._cachedUnixTime = null; + return this; + }, + fromData: function fromData(aData, aZone) { + if (aData) { + for (var key in aData) { + if (Object.prototype.hasOwnProperty.call(aData, key)) { + if (key === "icaltype") + continue; + this[key] = aData[key]; + } + } + } + if (aZone) { + this.zone = aZone; + } + if (aData && !("isDate" in aData)) { + this.isDate = !("hour" in aData); + } else if (aData && "isDate" in aData) { + this.isDate = aData.isDate; + } + if (aData && "timezone" in aData) { + var zone = ICAL2.TimezoneService.get(aData.timezone); + this.zone = zone || ICAL2.Timezone.localTimezone; + } + if (aData && "zone" in aData) { + this.zone = aData.zone; + } + if (!this.zone) { + this.zone = ICAL2.Timezone.localTimezone; + } + this._cachedUnixTime = null; + return this; + }, + dayOfWeek: function icaltime_dayOfWeek(aWeekStart) { + var firstDow = aWeekStart || ICAL2.Time.SUNDAY; + var dowCacheKey = (this.year << 12) + (this.month << 8) + (this.day << 3) + firstDow; + if (dowCacheKey in ICAL2.Time._dowCache) { + return ICAL2.Time._dowCache[dowCacheKey]; + } + var q3 = this.day; + var m3 = this.month + (this.month < 3 ? 12 : 0); + var Y = this.year - (this.month < 3 ? 1 : 0); + var h3 = q3 + Y + ICAL2.helpers.trunc((m3 + 1) * 26 / 10) + ICAL2.helpers.trunc(Y / 4); + if (true) { + h3 += ICAL2.helpers.trunc(Y / 100) * 6 + ICAL2.helpers.trunc(Y / 400); + } else { + h3 += 5; + } + h3 = (h3 + 7 - firstDow) % 7 + 1; + ICAL2.Time._dowCache[dowCacheKey] = h3; + return h3; + }, + dayOfYear: function dayOfYear() { + var is_leap = ICAL2.Time.isLeapYear(this.year) ? 1 : 0; + var diypm = ICAL2.Time.daysInYearPassedMonth; + return diypm[is_leap][this.month - 1] + this.day; + }, + startOfWeek: function startOfWeek(aWeekStart) { + var firstDow = aWeekStart || ICAL2.Time.SUNDAY; + var result = this.clone(); + result.day -= (this.dayOfWeek() + 7 - firstDow) % 7; + result.isDate = true; + result.hour = 0; + result.minute = 0; + result.second = 0; + return result; + }, + endOfWeek: function endOfWeek(aWeekStart) { + var firstDow = aWeekStart || ICAL2.Time.SUNDAY; + var result = this.clone(); + result.day += (7 - this.dayOfWeek() + firstDow - ICAL2.Time.SUNDAY) % 7; + result.isDate = true; + result.hour = 0; + result.minute = 0; + result.second = 0; + return result; + }, + startOfMonth: function startOfMonth() { + var result = this.clone(); + result.day = 1; + result.isDate = true; + result.hour = 0; + result.minute = 0; + result.second = 0; + return result; + }, + endOfMonth: function endOfMonth() { + var result = this.clone(); + result.day = ICAL2.Time.daysInMonth(result.month, result.year); + result.isDate = true; + result.hour = 0; + result.minute = 0; + result.second = 0; + return result; + }, + startOfYear: function startOfYear() { + var result = this.clone(); + result.day = 1; + result.month = 1; + result.isDate = true; + result.hour = 0; + result.minute = 0; + result.second = 0; + return result; + }, + endOfYear: function endOfYear() { + var result = this.clone(); + result.day = 31; + result.month = 12; + result.isDate = true; + result.hour = 0; + result.minute = 0; + result.second = 0; + return result; + }, + startDoyWeek: function startDoyWeek(aFirstDayOfWeek) { + var firstDow = aFirstDayOfWeek || ICAL2.Time.SUNDAY; + var delta = this.dayOfWeek() - firstDow; + if (delta < 0) + delta += 7; + return this.dayOfYear() - delta; + }, + getDominicalLetter: function() { + return ICAL2.Time.getDominicalLetter(this.year); + }, + nthWeekDay: function icaltime_nthWeekDay(aDayOfWeek, aPos) { + var daysInMonth2 = ICAL2.Time.daysInMonth(this.month, this.year); + var weekday; + var pos = aPos; + var start = 0; + var otherDay = this.clone(); + if (pos >= 0) { + otherDay.day = 1; + if (pos != 0) { + pos--; + } + start = otherDay.day; + var startDow = otherDay.dayOfWeek(); + var offset2 = aDayOfWeek - startDow; + if (offset2 < 0) + offset2 += 7; + start += offset2; + start -= aDayOfWeek; + weekday = aDayOfWeek; + } else { + otherDay.day = daysInMonth2; + var endDow = otherDay.dayOfWeek(); + pos++; + weekday = endDow - aDayOfWeek; + if (weekday < 0) { + weekday += 7; + } + weekday = daysInMonth2 - weekday; + } + weekday += pos * 7; + return start + weekday; + }, + isNthWeekDay: function(aDayOfWeek, aPos) { + var dow = this.dayOfWeek(); + if (aPos === 0 && dow === aDayOfWeek) { + return true; + } + var day = this.nthWeekDay(aDayOfWeek, aPos); + if (day === this.day) { + return true; + } + return false; + }, + weekNumber: function weekNumber(aWeekStart) { + var wnCacheKey = (this.year << 12) + (this.month << 8) + (this.day << 3) + aWeekStart; + if (wnCacheKey in ICAL2.Time._wnCache) { + return ICAL2.Time._wnCache[wnCacheKey]; + } + var week1; + var dt = this.clone(); + dt.isDate = true; + var isoyear = this.year; + if (dt.month == 12 && dt.day > 25) { + week1 = ICAL2.Time.weekOneStarts(isoyear + 1, aWeekStart); + if (dt.compare(week1) < 0) { + week1 = ICAL2.Time.weekOneStarts(isoyear, aWeekStart); + } else { + isoyear++; + } + } else { + week1 = ICAL2.Time.weekOneStarts(isoyear, aWeekStart); + if (dt.compare(week1) < 0) { + week1 = ICAL2.Time.weekOneStarts(--isoyear, aWeekStart); + } + } + var daysBetween2 = dt.subtractDate(week1).toSeconds() / 86400; + var answer = ICAL2.helpers.trunc(daysBetween2 / 7) + 1; + ICAL2.Time._wnCache[wnCacheKey] = answer; + return answer; + }, + addDuration: function icaltime_add(aDuration) { + var mult = aDuration.isNegative ? -1 : 1; + var second = this.second; + var minute = this.minute; + var hour = this.hour; + var day = this.day; + second += mult * aDuration.seconds; + minute += mult * aDuration.minutes; + hour += mult * aDuration.hours; + day += mult * aDuration.days; + day += mult * 7 * aDuration.weeks; + this.second = second; + this.minute = minute; + this.hour = hour; + this.day = day; + this._cachedUnixTime = null; + }, + subtractDate: function icaltime_subtract(aDate) { + var unixTime = this.toUnixTime() + this.utcOffset(); + var other = aDate.toUnixTime() + aDate.utcOffset(); + return ICAL2.Duration.fromSeconds(unixTime - other); + }, + subtractDateTz: function icaltime_subtract_abs(aDate) { + var unixTime = this.toUnixTime(); + var other = aDate.toUnixTime(); + return ICAL2.Duration.fromSeconds(unixTime - other); + }, + compare: function icaltime_compare(other) { + var a3 = this.toUnixTime(); + var b3 = other.toUnixTime(); + if (a3 > b3) + return 1; + if (b3 > a3) + return -1; + return 0; + }, + compareDateOnlyTz: function icaltime_compareDateOnlyTz(other, tz) { + function cmp(attr) { + return ICAL2.Time._cmp_attr(a3, b3, attr); + } + var a3 = this.convertToZone(tz); + var b3 = other.convertToZone(tz); + var rc = 0; + if ((rc = cmp("year")) != 0) + return rc; + if ((rc = cmp("month")) != 0) + return rc; + if ((rc = cmp("day")) != 0) + return rc; + return rc; + }, + convertToZone: function convertToZone(zone) { + var copy = this.clone(); + var zone_equals = this.zone.tzid == zone.tzid; + if (!this.isDate && !zone_equals) { + ICAL2.Timezone.convert_time(copy, this.zone, zone); + } + copy.zone = zone; + return copy; + }, + utcOffset: function utc_offset() { + if (this.zone == ICAL2.Timezone.localTimezone || this.zone == ICAL2.Timezone.utcTimezone) { + return 0; + } else { + return this.zone.utcOffset(this); + } + }, + toICALString: function() { + var string = this.toString(); + if (string.length > 10) { + return ICAL2.design.icalendar.value["date-time"].toICAL(string); + } else { + return ICAL2.design.icalendar.value.date.toICAL(string); + } + }, + toString: function toString() { + var result = this.year + "-" + ICAL2.helpers.pad2(this.month) + "-" + ICAL2.helpers.pad2(this.day); + if (!this.isDate) { + result += "T" + ICAL2.helpers.pad2(this.hour) + ":" + ICAL2.helpers.pad2(this.minute) + ":" + ICAL2.helpers.pad2(this.second); + if (this.zone === ICAL2.Timezone.utcTimezone) { + result += "Z"; + } + } + return result; + }, + toJSDate: function toJSDate() { + if (this.zone == ICAL2.Timezone.localTimezone) { + if (this.isDate) { + return new Date(this.year, this.month - 1, this.day); + } else { + return new Date(this.year, this.month - 1, this.day, this.hour, this.minute, this.second, 0); + } + } else { + return new Date(this.toUnixTime() * 1e3); + } + }, + _normalize: function icaltime_normalize() { + var isDate3 = this._time.isDate; + if (this._time.isDate) { + this._time.hour = 0; + this._time.minute = 0; + this._time.second = 0; + } + this.adjust(0, 0, 0, 0); + return this; + }, + adjust: function icaltime_adjust(aExtraDays, aExtraHours, aExtraMinutes, aExtraSeconds, aTime) { + var minutesOverflow, hoursOverflow, daysOverflow = 0, yearsOverflow = 0; + var second, minute, hour, day; + var daysInMonth2; + var time = aTime || this._time; + if (!time.isDate) { + second = time.second + aExtraSeconds; + time.second = second % 60; + minutesOverflow = ICAL2.helpers.trunc(second / 60); + if (time.second < 0) { + time.second += 60; + minutesOverflow--; + } + minute = time.minute + aExtraMinutes + minutesOverflow; + time.minute = minute % 60; + hoursOverflow = ICAL2.helpers.trunc(minute / 60); + if (time.minute < 0) { + time.minute += 60; + hoursOverflow--; + } + hour = time.hour + aExtraHours + hoursOverflow; + time.hour = hour % 24; + daysOverflow = ICAL2.helpers.trunc(hour / 24); + if (time.hour < 0) { + time.hour += 24; + daysOverflow--; + } + } + if (time.month > 12) { + yearsOverflow = ICAL2.helpers.trunc((time.month - 1) / 12); + } else if (time.month < 1) { + yearsOverflow = ICAL2.helpers.trunc(time.month / 12) - 1; + } + time.year += yearsOverflow; + time.month -= 12 * yearsOverflow; + day = time.day + aExtraDays + daysOverflow; + if (day > 0) { + for (; ; ) { + daysInMonth2 = ICAL2.Time.daysInMonth(time.month, time.year); + if (day <= daysInMonth2) { + break; + } + time.month++; + if (time.month > 12) { + time.year++; + time.month = 1; + } + day -= daysInMonth2; + } + } else { + while (day <= 0) { + if (time.month == 1) { + time.year--; + time.month = 12; + } else { + time.month--; + } + day += ICAL2.Time.daysInMonth(time.month, time.year); + } + } + time.day = day; + this._cachedUnixTime = null; + return this; + }, + fromUnixTime: function fromUnixTime(seconds) { + this.zone = ICAL2.Timezone.utcTimezone; + var epoch = ICAL2.Time.epochTime.clone(); + epoch.adjust(0, 0, 0, seconds); + this.year = epoch.year; + this.month = epoch.month; + this.day = epoch.day; + this.hour = epoch.hour; + this.minute = epoch.minute; + this.second = Math.floor(epoch.second); + this._cachedUnixTime = null; + }, + toUnixTime: function toUnixTime() { + if (this._cachedUnixTime !== null) { + return this._cachedUnixTime; + } + var offset2 = this.utcOffset(); + var ms = Date.UTC(this.year, this.month - 1, this.day, this.hour, this.minute, this.second - offset2); + this._cachedUnixTime = ms / 1e3; + return this._cachedUnixTime; + }, + toJSON: function() { + var copy = [ + "year", + "month", + "day", + "hour", + "minute", + "second", + "isDate" + ]; + var result = Object.create(null); + var i3 = 0; + var len = copy.length; + var prop; + for (; i3 < len; i3++) { + prop = copy[i3]; + result[prop] = this[prop]; + } + if (this.zone) { + result.timezone = this.zone.tzid; + } + return result; + } + }; + (function setupNormalizeAttributes() { + function defineAttr(attr) { + Object.defineProperty(ICAL2.Time.prototype, attr, { + get: function getTimeAttr() { + if (this._pendingNormalization) { + this._normalize(); + this._pendingNormalization = false; + } + return this._time[attr]; + }, + set: function setTimeAttr(val) { + if (attr === "isDate" && val && !this._time.isDate) { + this.adjust(0, 0, 0, 0); + } + this._cachedUnixTime = null; + this._pendingNormalization = true; + this._time[attr] = val; + return val; + } + }); + } + if ("defineProperty" in Object) { + defineAttr("year"); + defineAttr("month"); + defineAttr("day"); + defineAttr("hour"); + defineAttr("minute"); + defineAttr("second"); + defineAttr("isDate"); + } + })(); + ICAL2.Time.daysInMonth = function icaltime_daysInMonth(month, year) { + var _daysInMonth = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; + var days = 30; + if (month < 1 || month > 12) + return days; + days = _daysInMonth[month]; + if (month == 2) { + days += ICAL2.Time.isLeapYear(year); + } + return days; + }; + ICAL2.Time.isLeapYear = function isLeapYear3(year) { + if (year <= 1752) { + return year % 4 == 0; + } else { + return year % 4 == 0 && year % 100 != 0 || year % 400 == 0; + } + }; + ICAL2.Time.fromDayOfYear = function icaltime_fromDayOfYear(aDayOfYear, aYear) { + var year = aYear; + var doy = aDayOfYear; + var tt = new ICAL2.Time(); + tt.auto_normalize = false; + var is_leap = ICAL2.Time.isLeapYear(year) ? 1 : 0; + if (doy < 1) { + year--; + is_leap = ICAL2.Time.isLeapYear(year) ? 1 : 0; + doy += ICAL2.Time.daysInYearPassedMonth[is_leap][12]; + return ICAL2.Time.fromDayOfYear(doy, year); + } else if (doy > ICAL2.Time.daysInYearPassedMonth[is_leap][12]) { + is_leap = ICAL2.Time.isLeapYear(year) ? 1 : 0; + doy -= ICAL2.Time.daysInYearPassedMonth[is_leap][12]; + year++; + return ICAL2.Time.fromDayOfYear(doy, year); + } + tt.year = year; + tt.isDate = true; + for (var month = 11; month >= 0; month--) { + if (doy > ICAL2.Time.daysInYearPassedMonth[is_leap][month]) { + tt.month = month + 1; + tt.day = doy - ICAL2.Time.daysInYearPassedMonth[is_leap][month]; + break; + } + } + tt.auto_normalize = true; + return tt; + }; + ICAL2.Time.fromStringv2 = function fromString(str) { + return new ICAL2.Time({ + year: parseInt(str.substr(0, 4), 10), + month: parseInt(str.substr(5, 2), 10), + day: parseInt(str.substr(8, 2), 10), + isDate: true + }); + }; + ICAL2.Time.fromDateString = function(aValue) { + return new ICAL2.Time({ + year: ICAL2.helpers.strictParseInt(aValue.substr(0, 4)), + month: ICAL2.helpers.strictParseInt(aValue.substr(5, 2)), + day: ICAL2.helpers.strictParseInt(aValue.substr(8, 2)), + isDate: true + }); + }; + ICAL2.Time.fromDateTimeString = function(aValue, prop) { + if (aValue.length < 19) { + throw new Error('invalid date-time value: "' + aValue + '"'); + } + var zone; + if (aValue[19] && aValue[19] === "Z") { + zone = "Z"; + } else if (prop) { + zone = prop.getParameter("tzid"); + } + var time = new ICAL2.Time({ + year: ICAL2.helpers.strictParseInt(aValue.substr(0, 4)), + month: ICAL2.helpers.strictParseInt(aValue.substr(5, 2)), + day: ICAL2.helpers.strictParseInt(aValue.substr(8, 2)), + hour: ICAL2.helpers.strictParseInt(aValue.substr(11, 2)), + minute: ICAL2.helpers.strictParseInt(aValue.substr(14, 2)), + second: ICAL2.helpers.strictParseInt(aValue.substr(17, 2)), + timezone: zone + }); + return time; + }; + ICAL2.Time.fromString = function fromString(aValue, aProperty) { + if (aValue.length > 10) { + return ICAL2.Time.fromDateTimeString(aValue, aProperty); + } else { + return ICAL2.Time.fromDateString(aValue); + } + }; + ICAL2.Time.fromJSDate = function fromJSDate(aDate, useUTC) { + var tt = new ICAL2.Time(); + return tt.fromJSDate(aDate, useUTC); + }; + ICAL2.Time.fromData = function fromData(aData, aZone) { + var t3 = new ICAL2.Time(); + return t3.fromData(aData, aZone); + }; + ICAL2.Time.now = function icaltime_now() { + return ICAL2.Time.fromJSDate(new Date(), false); + }; + ICAL2.Time.weekOneStarts = function weekOneStarts(aYear, aWeekStart) { + var t3 = ICAL2.Time.fromData({ + year: aYear, + month: 1, + day: 1, + isDate: true + }); + var dow = t3.dayOfWeek(); + var wkst = aWeekStart || ICAL2.Time.DEFAULT_WEEK_START; + if (dow > ICAL2.Time.THURSDAY) { + t3.day += 7; + } + if (wkst > ICAL2.Time.THURSDAY) { + t3.day -= 7; + } + t3.day -= dow - wkst; + return t3; + }; + ICAL2.Time.getDominicalLetter = function(yr) { + var LTRS = "GFEDCBA"; + var dom = (yr + (yr / 4 | 0) + (yr / 400 | 0) - (yr / 100 | 0) - 1) % 7; + var isLeap = ICAL2.Time.isLeapYear(yr); + if (isLeap) { + return LTRS[(dom + 6) % 7] + LTRS[dom]; + } else { + return LTRS[dom]; + } + }; + ICAL2.Time.epochTime = ICAL2.Time.fromData({ + year: 1970, + month: 1, + day: 1, + hour: 0, + minute: 0, + second: 0, + isDate: false, + timezone: "Z" + }); + ICAL2.Time._cmp_attr = function _cmp_attr(a3, b3, attr) { + if (a3[attr] > b3[attr]) + return 1; + if (a3[attr] < b3[attr]) + return -1; + return 0; + }; + ICAL2.Time.daysInYearPassedMonth = [ + [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365], + [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366] + ]; + ICAL2.Time.SUNDAY = 1; + ICAL2.Time.MONDAY = 2; + ICAL2.Time.TUESDAY = 3; + ICAL2.Time.WEDNESDAY = 4; + ICAL2.Time.THURSDAY = 5; + ICAL2.Time.FRIDAY = 6; + ICAL2.Time.SATURDAY = 7; + ICAL2.Time.DEFAULT_WEEK_START = ICAL2.Time.MONDAY; + })(); + (function() { + ICAL2.VCardTime = function(data, zone, icaltype) { + this.wrappedJSObject = this; + var time = this._time = Object.create(null); + time.year = null; + time.month = null; + time.day = null; + time.hour = null; + time.minute = null; + time.second = null; + this.icaltype = icaltype || "date-and-or-time"; + this.fromData(data, zone); + }; + ICAL2.helpers.inherits(ICAL2.Time, ICAL2.VCardTime, { + icalclass: "vcardtime", + icaltype: "date-and-or-time", + zone: null, + clone: function() { + return new ICAL2.VCardTime(this._time, this.zone, this.icaltype); + }, + _normalize: function() { + return this; + }, + utcOffset: function() { + if (this.zone instanceof ICAL2.UtcOffset) { + return this.zone.toSeconds(); + } else { + return ICAL2.Time.prototype.utcOffset.apply(this, arguments); + } + }, + toICALString: function() { + return ICAL2.design.vcard.value[this.icaltype].toICAL(this.toString()); + }, + toString: function toString() { + var p22 = ICAL2.helpers.pad2; + var y3 = this.year, m3 = this.month, d2 = this.day; + var h3 = this.hour, mm = this.minute, s4 = this.second; + var hasYear = y3 !== null, hasMonth = m3 !== null, hasDay = d2 !== null; + var hasHour = h3 !== null, hasMinute = mm !== null, hasSecond = s4 !== null; + var datepart = (hasYear ? p22(y3) + (hasMonth || hasDay ? "-" : "") : hasMonth || hasDay ? "--" : "") + (hasMonth ? p22(m3) : "") + (hasDay ? "-" + p22(d2) : ""); + var timepart = (hasHour ? p22(h3) : "-") + (hasHour && hasMinute ? ":" : "") + (hasMinute ? p22(mm) : "") + (!hasHour && !hasMinute ? "-" : "") + (hasMinute && hasSecond ? ":" : "") + (hasSecond ? p22(s4) : ""); + var zone; + if (this.zone === ICAL2.Timezone.utcTimezone) { + zone = "Z"; + } else if (this.zone instanceof ICAL2.UtcOffset) { + zone = this.zone.toString(); + } else if (this.zone === ICAL2.Timezone.localTimezone) { + zone = ""; + } else if (this.zone instanceof ICAL2.Timezone) { + var offset2 = ICAL2.UtcOffset.fromSeconds(this.zone.utcOffset(this)); + zone = offset2.toString(); + } else { + zone = ""; + } + switch (this.icaltype) { + case "time": + return timepart + zone; + case "date-and-or-time": + case "date-time": + return datepart + (timepart == "--" ? "" : "T" + timepart + zone); + case "date": + return datepart; + } + return null; + } + }); + ICAL2.VCardTime.fromDateAndOrTimeString = function(aValue, aIcalType) { + function part(v3, s4, e3) { + return v3 ? ICAL2.helpers.strictParseInt(v3.substr(s4, e3)) : null; + } + var parts = aValue.split("T"); + var dt = parts[0], tmz = parts[1]; + var splitzone = tmz ? ICAL2.design.vcard.value.time._splitZone(tmz) : []; + var zone = splitzone[0], tm = splitzone[1]; + var stoi = ICAL2.helpers.strictParseInt; + var dtlen = dt ? dt.length : 0; + var tmlen = tm ? tm.length : 0; + var hasDashDate = dt && dt[0] == "-" && dt[1] == "-"; + var hasDashTime = tm && tm[0] == "-"; + var o2 = { + year: hasDashDate ? null : part(dt, 0, 4), + month: hasDashDate && (dtlen == 4 || dtlen == 7) ? part(dt, 2, 2) : dtlen == 7 ? part(dt, 5, 2) : dtlen == 10 ? part(dt, 5, 2) : null, + day: dtlen == 5 ? part(dt, 3, 2) : dtlen == 7 && hasDashDate ? part(dt, 5, 2) : dtlen == 10 ? part(dt, 8, 2) : null, + hour: hasDashTime ? null : part(tm, 0, 2), + minute: hasDashTime && tmlen == 3 ? part(tm, 1, 2) : tmlen > 4 ? hasDashTime ? part(tm, 1, 2) : part(tm, 3, 2) : null, + second: tmlen == 4 ? part(tm, 2, 2) : tmlen == 6 ? part(tm, 4, 2) : tmlen == 8 ? part(tm, 6, 2) : null + }; + if (zone == "Z") { + zone = ICAL2.Timezone.utcTimezone; + } else if (zone && zone[3] == ":") { + zone = ICAL2.UtcOffset.fromString(zone); + } else { + zone = null; + } + return new ICAL2.VCardTime(o2, zone, aIcalType); + }; + })(); + (function() { + var DOW_MAP = { + SU: ICAL2.Time.SUNDAY, + MO: ICAL2.Time.MONDAY, + TU: ICAL2.Time.TUESDAY, + WE: ICAL2.Time.WEDNESDAY, + TH: ICAL2.Time.THURSDAY, + FR: ICAL2.Time.FRIDAY, + SA: ICAL2.Time.SATURDAY + }; + var REVERSE_DOW_MAP = {}; + for (var key in DOW_MAP) { + if (DOW_MAP.hasOwnProperty(key)) { + REVERSE_DOW_MAP[DOW_MAP[key]] = key; + } + } + var COPY_PARTS = [ + "BYSECOND", + "BYMINUTE", + "BYHOUR", + "BYDAY", + "BYMONTHDAY", + "BYYEARDAY", + "BYWEEKNO", + "BYMONTH", + "BYSETPOS" + ]; + ICAL2.Recur = function icalrecur(data) { + this.wrappedJSObject = this; + this.parts = {}; + if (data && typeof data === "object") { + this.fromData(data); + } + }; + ICAL2.Recur.prototype = { + parts: null, + interval: 1, + wkst: ICAL2.Time.MONDAY, + until: null, + count: null, + freq: null, + icalclass: "icalrecur", + icaltype: "recur", + iterator: function(aStart) { + return new ICAL2.RecurIterator({ + rule: this, + dtstart: aStart + }); + }, + clone: function clone4() { + return new ICAL2.Recur(this.toJSON()); + }, + isFinite: function isfinite() { + return !!(this.count || this.until); + }, + isByCount: function isbycount() { + return !!(this.count && !this.until); + }, + addComponent: function addPart(aType, aValue) { + var ucname = aType.toUpperCase(); + if (ucname in this.parts) { + this.parts[ucname].push(aValue); + } else { + this.parts[ucname] = [aValue]; + } + }, + setComponent: function setComponent(aType, aValues) { + this.parts[aType.toUpperCase()] = aValues.slice(); + }, + getComponent: function getComponent(aType) { + var ucname = aType.toUpperCase(); + return ucname in this.parts ? this.parts[ucname].slice() : []; + }, + getNextOccurrence: function getNextOccurrence(aStartTime, aRecurrenceId) { + var iter2 = this.iterator(aStartTime); + var next, cdt; + do { + next = iter2.next(); + } while (next && next.compare(aRecurrenceId) <= 0); + if (next && aRecurrenceId.zone) { + next.zone = aRecurrenceId.zone; + } + return next; + }, + fromData: function(data) { + for (var key2 in data) { + var uckey = key2.toUpperCase(); + if (uckey in partDesign) { + if (Array.isArray(data[key2])) { + this.parts[uckey] = data[key2]; + } else { + this.parts[uckey] = [data[key2]]; + } + } else { + this[key2] = data[key2]; + } + } + if (this.interval && typeof this.interval != "number") { + optionDesign.INTERVAL(this.interval, this); + } + if (this.wkst && typeof this.wkst != "number") { + this.wkst = ICAL2.Recur.icalDayToNumericDay(this.wkst); + } + if (this.until && !(this.until instanceof ICAL2.Time)) { + this.until = ICAL2.Time.fromString(this.until); + } + }, + toJSON: function() { + var res = Object.create(null); + res.freq = this.freq; + if (this.count) { + res.count = this.count; + } + if (this.interval > 1) { + res.interval = this.interval; + } + for (var k3 in this.parts) { + if (!this.parts.hasOwnProperty(k3)) { + continue; + } + var kparts = this.parts[k3]; + if (Array.isArray(kparts) && kparts.length == 1) { + res[k3.toLowerCase()] = kparts[0]; + } else { + res[k3.toLowerCase()] = ICAL2.helpers.clone(this.parts[k3]); + } + } + if (this.until) { + res.until = this.until.toString(); + } + if ("wkst" in this && this.wkst !== ICAL2.Time.DEFAULT_WEEK_START) { + res.wkst = ICAL2.Recur.numericDayToIcalDay(this.wkst); + } + return res; + }, + toString: function icalrecur_toString() { + var str = "FREQ=" + this.freq; + if (this.count) { + str += ";COUNT=" + this.count; + } + if (this.interval > 1) { + str += ";INTERVAL=" + this.interval; + } + for (var k3 in this.parts) { + if (this.parts.hasOwnProperty(k3)) { + str += ";" + k3 + "=" + this.parts[k3]; + } + } + if (this.until) { + str += ";UNTIL=" + this.until.toICALString(); + } + if ("wkst" in this && this.wkst !== ICAL2.Time.DEFAULT_WEEK_START) { + str += ";WKST=" + ICAL2.Recur.numericDayToIcalDay(this.wkst); + } + return str; + } + }; + function parseNumericValue(type, min, max, value) { + var result = value; + if (value[0] === "+") { + result = value.substr(1); + } + result = ICAL2.helpers.strictParseInt(result); + if (min !== void 0 && value < min) { + throw new Error(type + ': invalid value "' + value + '" must be > ' + min); + } + if (max !== void 0 && value > max) { + throw new Error(type + ': invalid value "' + value + '" must be < ' + min); + } + return result; + } + ICAL2.Recur.icalDayToNumericDay = function toNumericDay(string, aWeekStart) { + var firstDow = aWeekStart || ICAL2.Time.SUNDAY; + return (DOW_MAP[string] - firstDow + 7) % 7 + 1; + }; + ICAL2.Recur.numericDayToIcalDay = function toIcalDay(num, aWeekStart) { + var firstDow = aWeekStart || ICAL2.Time.SUNDAY; + var dow = num + firstDow - ICAL2.Time.SUNDAY; + if (dow > 7) { + dow -= 7; + } + return REVERSE_DOW_MAP[dow]; + }; + var VALID_DAY_NAMES = /^(SU|MO|TU|WE|TH|FR|SA)$/; + var VALID_BYDAY_PART = /^([+-])?(5[0-3]|[1-4][0-9]|[1-9])?(SU|MO|TU|WE|TH|FR|SA)$/; + var ALLOWED_FREQ = [ + "SECONDLY", + "MINUTELY", + "HOURLY", + "DAILY", + "WEEKLY", + "MONTHLY", + "YEARLY" + ]; + var optionDesign = { + FREQ: function(value, dict, fmtIcal) { + if (ALLOWED_FREQ.indexOf(value) !== -1) { + dict.freq = value; + } else { + throw new Error('invalid frequency "' + value + '" expected: "' + ALLOWED_FREQ.join(", ") + '"'); + } + }, + COUNT: function(value, dict, fmtIcal) { + dict.count = ICAL2.helpers.strictParseInt(value); + }, + INTERVAL: function(value, dict, fmtIcal) { + dict.interval = ICAL2.helpers.strictParseInt(value); + if (dict.interval < 1) { + dict.interval = 1; + } + }, + UNTIL: function(value, dict, fmtIcal) { + if (value.length > 10) { + dict.until = ICAL2.design.icalendar.value["date-time"].fromICAL(value); + } else { + dict.until = ICAL2.design.icalendar.value.date.fromICAL(value); + } + if (!fmtIcal) { + dict.until = ICAL2.Time.fromString(dict.until); + } + }, + WKST: function(value, dict, fmtIcal) { + if (VALID_DAY_NAMES.test(value)) { + dict.wkst = ICAL2.Recur.icalDayToNumericDay(value); + } else { + throw new Error('invalid WKST value "' + value + '"'); + } + } + }; + var partDesign = { + BYSECOND: parseNumericValue.bind(this, "BYSECOND", 0, 60), + BYMINUTE: parseNumericValue.bind(this, "BYMINUTE", 0, 59), + BYHOUR: parseNumericValue.bind(this, "BYHOUR", 0, 23), + BYDAY: function(value) { + if (VALID_BYDAY_PART.test(value)) { + return value; + } else { + throw new Error('invalid BYDAY value "' + value + '"'); + } + }, + BYMONTHDAY: parseNumericValue.bind(this, "BYMONTHDAY", -31, 31), + BYYEARDAY: parseNumericValue.bind(this, "BYYEARDAY", -366, 366), + BYWEEKNO: parseNumericValue.bind(this, "BYWEEKNO", -53, 53), + BYMONTH: parseNumericValue.bind(this, "BYMONTH", 1, 12), + BYSETPOS: parseNumericValue.bind(this, "BYSETPOS", -366, 366) + }; + ICAL2.Recur.fromString = function(string) { + var data = ICAL2.Recur._stringToData(string, false); + return new ICAL2.Recur(data); + }; + ICAL2.Recur.fromData = function(aData) { + return new ICAL2.Recur(aData); + }; + ICAL2.Recur._stringToData = function(string, fmtIcal) { + var dict = Object.create(null); + var values = string.split(";"); + var len = values.length; + for (var i3 = 0; i3 < len; i3++) { + var parts = values[i3].split("="); + var ucname = parts[0].toUpperCase(); + var lcname = parts[0].toLowerCase(); + var name = fmtIcal ? lcname : ucname; + var value = parts[1]; + if (ucname in partDesign) { + var partArr = value.split(","); + var partArrIdx = 0; + var partArrLen = partArr.length; + for (; partArrIdx < partArrLen; partArrIdx++) { + partArr[partArrIdx] = partDesign[ucname](partArr[partArrIdx]); + } + dict[name] = partArr.length == 1 ? partArr[0] : partArr; + } else if (ucname in optionDesign) { + optionDesign[ucname](value, dict, fmtIcal); + } else { + dict[lcname] = value; + } + } + return dict; + }; + })(); + ICAL2.RecurIterator = function() { + function icalrecur_iterator(options) { + this.fromData(options); + } + icalrecur_iterator.prototype = { + completed: false, + rule: null, + dtstart: null, + last: null, + occurrence_number: 0, + by_indices: null, + initialized: false, + by_data: null, + days: null, + days_index: 0, + fromData: function(options) { + this.rule = ICAL2.helpers.formatClassType(options.rule, ICAL2.Recur); + if (!this.rule) { + throw new Error("iterator requires a (ICAL.Recur) rule"); + } + this.dtstart = ICAL2.helpers.formatClassType(options.dtstart, ICAL2.Time); + if (!this.dtstart) { + throw new Error("iterator requires a (ICAL.Time) dtstart"); + } + if (options.by_data) { + this.by_data = options.by_data; + } else { + this.by_data = ICAL2.helpers.clone(this.rule.parts, true); + } + if (options.occurrence_number) + this.occurrence_number = options.occurrence_number; + this.days = options.days || []; + if (options.last) { + this.last = ICAL2.helpers.formatClassType(options.last, ICAL2.Time); + } + this.by_indices = options.by_indices; + if (!this.by_indices) { + this.by_indices = { + "BYSECOND": 0, + "BYMINUTE": 0, + "BYHOUR": 0, + "BYDAY": 0, + "BYMONTH": 0, + "BYWEEKNO": 0, + "BYMONTHDAY": 0 + }; + } + this.initialized = options.initialized || false; + if (!this.initialized) { + this.init(); + } + }, + init: function icalrecur_iterator_init() { + this.initialized = true; + this.last = this.dtstart.clone(); + var parts = this.by_data; + if ("BYDAY" in parts) { + this.sort_byday_rules(parts.BYDAY); + } + if ("BYYEARDAY" in parts) { + if ("BYMONTH" in parts || "BYWEEKNO" in parts || "BYMONTHDAY" in parts || "BYDAY" in parts) { + throw new Error("Invalid BYYEARDAY rule"); + } + } + if ("BYWEEKNO" in parts && "BYMONTHDAY" in parts) { + throw new Error("BYWEEKNO does not fit to BYMONTHDAY"); + } + if (this.rule.freq == "MONTHLY" && ("BYYEARDAY" in parts || "BYWEEKNO" in parts)) { + throw new Error("For MONTHLY recurrences neither BYYEARDAY nor BYWEEKNO may appear"); + } + if (this.rule.freq == "WEEKLY" && ("BYYEARDAY" in parts || "BYMONTHDAY" in parts)) { + throw new Error("For WEEKLY recurrences neither BYMONTHDAY nor BYYEARDAY may appear"); + } + if (this.rule.freq != "YEARLY" && "BYYEARDAY" in parts) { + throw new Error("BYYEARDAY may only appear in YEARLY rules"); + } + this.last.second = this.setup_defaults("BYSECOND", "SECONDLY", this.dtstart.second); + this.last.minute = this.setup_defaults("BYMINUTE", "MINUTELY", this.dtstart.minute); + this.last.hour = this.setup_defaults("BYHOUR", "HOURLY", this.dtstart.hour); + this.last.day = this.setup_defaults("BYMONTHDAY", "DAILY", this.dtstart.day); + this.last.month = this.setup_defaults("BYMONTH", "MONTHLY", this.dtstart.month); + if (this.rule.freq == "WEEKLY") { + if ("BYDAY" in parts) { + var bydayParts = this.ruleDayOfWeek(parts.BYDAY[0], this.rule.wkst); + var pos = bydayParts[0]; + var dow = bydayParts[1]; + var wkdy = dow - this.last.dayOfWeek(this.rule.wkst); + if (this.last.dayOfWeek(this.rule.wkst) < dow && wkdy >= 0 || wkdy < 0) { + this.last.day += wkdy; + } + } else { + var dayName = ICAL2.Recur.numericDayToIcalDay(this.dtstart.dayOfWeek()); + parts.BYDAY = [dayName]; + } + } + if (this.rule.freq == "YEARLY") { + for (; ; ) { + this.expand_year_days(this.last.year); + if (this.days.length > 0) { + break; + } + this.increment_year(this.rule.interval); + } + this._nextByYearDay(); + } + if (this.rule.freq == "MONTHLY" && this.has_by_data("BYDAY")) { + var tempLast = null; + var initLast = this.last.clone(); + var daysInMonth2 = ICAL2.Time.daysInMonth(this.last.month, this.last.year); + for (var i3 in this.by_data.BYDAY) { + if (!this.by_data.BYDAY.hasOwnProperty(i3)) { + continue; + } + this.last = initLast.clone(); + var bydayParts = this.ruleDayOfWeek(this.by_data.BYDAY[i3]); + var pos = bydayParts[0]; + var dow = bydayParts[1]; + var dayOfMonth = this.last.nthWeekDay(dow, pos); + if (pos >= 6 || pos <= -6) { + throw new Error("Malformed values in BYDAY part"); + } + if (dayOfMonth > daysInMonth2 || dayOfMonth <= 0) { + if (tempLast && tempLast.month == initLast.month) { + continue; + } + while (dayOfMonth > daysInMonth2 || dayOfMonth <= 0) { + this.increment_month(); + daysInMonth2 = ICAL2.Time.daysInMonth(this.last.month, this.last.year); + dayOfMonth = this.last.nthWeekDay(dow, pos); + } + } + this.last.day = dayOfMonth; + if (!tempLast || this.last.compare(tempLast) < 0) { + tempLast = this.last.clone(); + } + } + this.last = tempLast.clone(); + if (this.has_by_data("BYMONTHDAY")) { + this._byDayAndMonthDay(true); + } + if (this.last.day > daysInMonth2 || this.last.day == 0) { + throw new Error("Malformed values in BYDAY part"); + } + } else if (this.has_by_data("BYMONTHDAY")) { + if (this.last.day < 0) { + var daysInMonth2 = ICAL2.Time.daysInMonth(this.last.month, this.last.year); + this.last.day = daysInMonth2 + this.last.day + 1; + } + } + }, + next: function icalrecur_iterator_next() { + var before = this.last ? this.last.clone() : null; + if (this.rule.count && this.occurrence_number >= this.rule.count || this.rule.until && this.last.compare(this.rule.until) > 0) { + this.completed = true; + return null; + } + if (this.occurrence_number == 0 && this.last.compare(this.dtstart) >= 0) { + this.occurrence_number++; + return this.last; + } + var valid; + do { + valid = 1; + switch (this.rule.freq) { + case "SECONDLY": + this.next_second(); + break; + case "MINUTELY": + this.next_minute(); + break; + case "HOURLY": + this.next_hour(); + break; + case "DAILY": + this.next_day(); + break; + case "WEEKLY": + this.next_week(); + break; + case "MONTHLY": + valid = this.next_month(); + break; + case "YEARLY": + this.next_year(); + break; + default: + return null; + } + } while (!this.check_contracting_rules() || this.last.compare(this.dtstart) < 0 || !valid); + if (this.last.compare(before) == 0) { + throw new Error("Same occurrence found twice, protecting you from death by recursion"); + } + if (this.rule.until && this.last.compare(this.rule.until) > 0) { + this.completed = true; + return null; + } else { + this.occurrence_number++; + return this.last; + } + }, + next_second: function next_second() { + return this.next_generic("BYSECOND", "SECONDLY", "second", "minute"); + }, + increment_second: function increment_second(inc) { + return this.increment_generic(inc, "second", 60, "minute"); + }, + next_minute: function next_minute() { + return this.next_generic("BYMINUTE", "MINUTELY", "minute", "hour", "next_second"); + }, + increment_minute: function increment_minute(inc) { + return this.increment_generic(inc, "minute", 60, "hour"); + }, + next_hour: function next_hour() { + return this.next_generic("BYHOUR", "HOURLY", "hour", "monthday", "next_minute"); + }, + increment_hour: function increment_hour(inc) { + this.increment_generic(inc, "hour", 24, "monthday"); + }, + next_day: function next_day() { + var has_by_day = "BYDAY" in this.by_data; + var this_freq = this.rule.freq == "DAILY"; + if (this.next_hour() == 0) { + return 0; + } + if (this_freq) { + this.increment_monthday(this.rule.interval); + } else { + this.increment_monthday(1); + } + return 0; + }, + next_week: function next_week() { + var end_of_data = 0; + if (this.next_weekday_by_week() == 0) { + return end_of_data; + } + if (this.has_by_data("BYWEEKNO")) { + var idx = ++this.by_indices.BYWEEKNO; + if (this.by_indices.BYWEEKNO == this.by_data.BYWEEKNO.length) { + this.by_indices.BYWEEKNO = 0; + end_of_data = 1; + } + this.last.month = 1; + this.last.day = 1; + var week_no = this.by_data.BYWEEKNO[this.by_indices.BYWEEKNO]; + this.last.day += 7 * week_no; + if (end_of_data) { + this.increment_year(1); + } + } else { + this.increment_monthday(7 * this.rule.interval); + } + return end_of_data; + }, + normalizeByMonthDayRules: function(year, month, rules) { + var daysInMonth2 = ICAL2.Time.daysInMonth(month, year); + var newRules = []; + var ruleIdx = 0; + var len = rules.length; + var rule; + for (; ruleIdx < len; ruleIdx++) { + rule = rules[ruleIdx]; + if (Math.abs(rule) > daysInMonth2) { + continue; + } + if (rule < 0) { + rule = daysInMonth2 + (rule + 1); + } else if (rule === 0) { + continue; + } + if (newRules.indexOf(rule) === -1) { + newRules.push(rule); + } + } + return newRules.sort(function(a3, b3) { + return a3 - b3; + }); + }, + _byDayAndMonthDay: function(isInit) { + var byMonthDay; + var byDay = this.by_data.BYDAY; + var date; + var dateIdx = 0; + var dateLen; + var dayLen = byDay.length; + var dataIsValid = 0; + var daysInMonth2; + var self2 = this; + var lastDay = this.last.day; + function initMonth() { + daysInMonth2 = ICAL2.Time.daysInMonth(self2.last.month, self2.last.year); + byMonthDay = self2.normalizeByMonthDayRules(self2.last.year, self2.last.month, self2.by_data.BYMONTHDAY); + dateLen = byMonthDay.length; + while (byMonthDay[dateIdx] <= lastDay && !(isInit && byMonthDay[dateIdx] == lastDay) && dateIdx < dateLen - 1) { + dateIdx++; + } + } + function nextMonth() { + lastDay = 0; + self2.increment_month(); + dateIdx = 0; + initMonth(); + } + initMonth(); + if (isInit) { + lastDay -= 1; + } + var monthsCounter = 48; + while (!dataIsValid && monthsCounter) { + monthsCounter--; + date = lastDay + 1; + if (date > daysInMonth2) { + nextMonth(); + continue; + } + var next = byMonthDay[dateIdx++]; + if (next >= date) { + lastDay = next; + } else { + nextMonth(); + continue; + } + for (var dayIdx = 0; dayIdx < dayLen; dayIdx++) { + var parts = this.ruleDayOfWeek(byDay[dayIdx]); + var pos = parts[0]; + var dow = parts[1]; + this.last.day = lastDay; + if (this.last.isNthWeekDay(dow, pos)) { + dataIsValid = 1; + break; + } + } + if (!dataIsValid && dateIdx === dateLen) { + nextMonth(); + continue; + } + } + if (monthsCounter <= 0) { + throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts"); + } + return dataIsValid; + }, + next_month: function next_month() { + var this_freq = this.rule.freq == "MONTHLY"; + var data_valid = 1; + if (this.next_hour() == 0) { + return data_valid; + } + if (this.has_by_data("BYDAY") && this.has_by_data("BYMONTHDAY")) { + data_valid = this._byDayAndMonthDay(); + } else if (this.has_by_data("BYDAY")) { + var daysInMonth2 = ICAL2.Time.daysInMonth(this.last.month, this.last.year); + var setpos = 0; + var setpos_total = 0; + if (this.has_by_data("BYSETPOS")) { + var last_day = this.last.day; + for (var day = 1; day <= daysInMonth2; day++) { + this.last.day = day; + if (this.is_day_in_byday(this.last)) { + setpos_total++; + if (day <= last_day) { + setpos++; + } + } + } + this.last.day = last_day; + } + data_valid = 0; + for (var day = this.last.day + 1; day <= daysInMonth2; day++) { + this.last.day = day; + if (this.is_day_in_byday(this.last)) { + if (!this.has_by_data("BYSETPOS") || this.check_set_position(++setpos) || this.check_set_position(setpos - setpos_total - 1)) { + data_valid = 1; + break; + } + } + } + if (day > daysInMonth2) { + this.last.day = 1; + this.increment_month(); + if (this.is_day_in_byday(this.last)) { + if (!this.has_by_data("BYSETPOS") || this.check_set_position(1)) { + data_valid = 1; + } + } else { + data_valid = 0; + } + } + } else if (this.has_by_data("BYMONTHDAY")) { + this.by_indices.BYMONTHDAY++; + if (this.by_indices.BYMONTHDAY >= this.by_data.BYMONTHDAY.length) { + this.by_indices.BYMONTHDAY = 0; + this.increment_month(); + } + var daysInMonth2 = ICAL2.Time.daysInMonth(this.last.month, this.last.year); + var day = this.by_data.BYMONTHDAY[this.by_indices.BYMONTHDAY]; + if (day < 0) { + day = daysInMonth2 + day + 1; + } + if (day > daysInMonth2) { + this.last.day = 1; + data_valid = this.is_day_in_byday(this.last); + } else { + this.last.day = day; + } + } else { + this.increment_month(); + var daysInMonth2 = ICAL2.Time.daysInMonth(this.last.month, this.last.year); + if (this.by_data.BYMONTHDAY[0] > daysInMonth2) { + data_valid = 0; + } else { + this.last.day = this.by_data.BYMONTHDAY[0]; + } + } + return data_valid; + }, + next_weekday_by_week: function next_weekday_by_week() { + var end_of_data = 0; + if (this.next_hour() == 0) { + return end_of_data; + } + if (!this.has_by_data("BYDAY")) { + return 1; + } + for (; ; ) { + var tt = new ICAL2.Time(); + this.by_indices.BYDAY++; + if (this.by_indices.BYDAY == Object.keys(this.by_data.BYDAY).length) { + this.by_indices.BYDAY = 0; + end_of_data = 1; + } + var coded_day = this.by_data.BYDAY[this.by_indices.BYDAY]; + var parts = this.ruleDayOfWeek(coded_day); + var dow = parts[1]; + dow -= this.rule.wkst; + if (dow < 0) { + dow += 7; + } + tt.year = this.last.year; + tt.month = this.last.month; + tt.day = this.last.day; + var startOfWeek = tt.startDoyWeek(this.rule.wkst); + if (dow + startOfWeek < 1) { + if (!end_of_data) { + continue; + } + } + var next = ICAL2.Time.fromDayOfYear(startOfWeek + dow, this.last.year); + this.last.year = next.year; + this.last.month = next.month; + this.last.day = next.day; + return end_of_data; + } + }, + next_year: function next_year() { + if (this.next_hour() == 0) { + return 0; + } + if (++this.days_index == this.days.length) { + this.days_index = 0; + do { + this.increment_year(this.rule.interval); + this.expand_year_days(this.last.year); + } while (this.days.length == 0); + } + this._nextByYearDay(); + return 1; + }, + _nextByYearDay: function _nextByYearDay() { + var doy = this.days[this.days_index]; + var year = this.last.year; + if (doy < 1) { + doy += 1; + year += 1; + } + var next = ICAL2.Time.fromDayOfYear(doy, year); + this.last.day = next.day; + this.last.month = next.month; + }, + ruleDayOfWeek: function ruleDayOfWeek(dow, aWeekStart) { + var matches = dow.match(/([+-]?[0-9])?(MO|TU|WE|TH|FR|SA|SU)/); + if (matches) { + var pos = parseInt(matches[1] || 0, 10); + dow = ICAL2.Recur.icalDayToNumericDay(matches[2], aWeekStart); + return [pos, dow]; + } else { + return [0, 0]; + } + }, + next_generic: function next_generic(aRuleType, aInterval, aDateAttr, aFollowingAttr, aPreviousIncr) { + var has_by_rule = aRuleType in this.by_data; + var this_freq = this.rule.freq == aInterval; + var end_of_data = 0; + if (aPreviousIncr && this[aPreviousIncr]() == 0) { + return end_of_data; + } + if (has_by_rule) { + this.by_indices[aRuleType]++; + var idx = this.by_indices[aRuleType]; + var dta = this.by_data[aRuleType]; + if (this.by_indices[aRuleType] == dta.length) { + this.by_indices[aRuleType] = 0; + end_of_data = 1; + } + this.last[aDateAttr] = dta[this.by_indices[aRuleType]]; + } else if (this_freq) { + this["increment_" + aDateAttr](this.rule.interval); + } + if (has_by_rule && end_of_data && this_freq) { + this["increment_" + aFollowingAttr](1); + } + return end_of_data; + }, + increment_monthday: function increment_monthday(inc) { + for (var i3 = 0; i3 < inc; i3++) { + var daysInMonth2 = ICAL2.Time.daysInMonth(this.last.month, this.last.year); + this.last.day++; + if (this.last.day > daysInMonth2) { + this.last.day -= daysInMonth2; + this.increment_month(); + } + } + }, + increment_month: function increment_month() { + this.last.day = 1; + if (this.has_by_data("BYMONTH")) { + this.by_indices.BYMONTH++; + if (this.by_indices.BYMONTH == this.by_data.BYMONTH.length) { + this.by_indices.BYMONTH = 0; + this.increment_year(1); + } + this.last.month = this.by_data.BYMONTH[this.by_indices.BYMONTH]; + } else { + if (this.rule.freq == "MONTHLY") { + this.last.month += this.rule.interval; + } else { + this.last.month++; + } + this.last.month--; + var years = ICAL2.helpers.trunc(this.last.month / 12); + this.last.month %= 12; + this.last.month++; + if (years != 0) { + this.increment_year(years); + } + } + }, + increment_year: function increment_year(inc) { + this.last.year += inc; + }, + increment_generic: function increment_generic(inc, aDateAttr, aFactor, aNextIncrement) { + this.last[aDateAttr] += inc; + var nextunit = ICAL2.helpers.trunc(this.last[aDateAttr] / aFactor); + this.last[aDateAttr] %= aFactor; + if (nextunit != 0) { + this["increment_" + aNextIncrement](nextunit); + } + }, + has_by_data: function has_by_data(aRuleType) { + return aRuleType in this.rule.parts; + }, + expand_year_days: function expand_year_days(aYear) { + var t3 = new ICAL2.Time(); + this.days = []; + var parts = {}; + var rules = ["BYDAY", "BYWEEKNO", "BYMONTHDAY", "BYMONTH", "BYYEARDAY"]; + for (var p3 in rules) { + if (rules.hasOwnProperty(p3)) { + var part = rules[p3]; + if (part in this.rule.parts) { + parts[part] = this.rule.parts[part]; + } + } + } + if ("BYMONTH" in parts && "BYWEEKNO" in parts) { + var valid = 1; + var validWeeks = {}; + t3.year = aYear; + t3.isDate = true; + for (var monthIdx = 0; monthIdx < this.by_data.BYMONTH.length; monthIdx++) { + var month = this.by_data.BYMONTH[monthIdx]; + t3.month = month; + t3.day = 1; + var first_week = t3.weekNumber(this.rule.wkst); + t3.day = ICAL2.Time.daysInMonth(month, aYear); + var last_week = t3.weekNumber(this.rule.wkst); + for (monthIdx = first_week; monthIdx < last_week; monthIdx++) { + validWeeks[monthIdx] = 1; + } + } + for (var weekIdx = 0; weekIdx < this.by_data.BYWEEKNO.length && valid; weekIdx++) { + var weekno = this.by_data.BYWEEKNO[weekIdx]; + if (weekno < 52) { + valid &= validWeeks[weekIdx]; + } else { + valid = 0; + } + } + if (valid) { + delete parts.BYMONTH; + } else { + delete parts.BYWEEKNO; + } + } + var partCount = Object.keys(parts).length; + if (partCount == 0) { + var t1 = this.dtstart.clone(); + t1.year = this.last.year; + this.days.push(t1.dayOfYear()); + } else if (partCount == 1 && "BYMONTH" in parts) { + for (var monthkey in this.by_data.BYMONTH) { + if (!this.by_data.BYMONTH.hasOwnProperty(monthkey)) { + continue; + } + var t22 = this.dtstart.clone(); + t22.year = aYear; + t22.month = this.by_data.BYMONTH[monthkey]; + t22.isDate = true; + this.days.push(t22.dayOfYear()); + } + } else if (partCount == 1 && "BYMONTHDAY" in parts) { + for (var monthdaykey in this.by_data.BYMONTHDAY) { + if (!this.by_data.BYMONTHDAY.hasOwnProperty(monthdaykey)) { + continue; + } + var t32 = this.dtstart.clone(); + var day_ = this.by_data.BYMONTHDAY[monthdaykey]; + if (day_ < 0) { + var daysInMonth2 = ICAL2.Time.daysInMonth(t32.month, aYear); + day_ = day_ + daysInMonth2 + 1; + } + t32.day = day_; + t32.year = aYear; + t32.isDate = true; + this.days.push(t32.dayOfYear()); + } + } else if (partCount == 2 && "BYMONTHDAY" in parts && "BYMONTH" in parts) { + for (var monthkey in this.by_data.BYMONTH) { + if (!this.by_data.BYMONTH.hasOwnProperty(monthkey)) { + continue; + } + var month_ = this.by_data.BYMONTH[monthkey]; + var daysInMonth2 = ICAL2.Time.daysInMonth(month_, aYear); + for (var monthdaykey in this.by_data.BYMONTHDAY) { + if (!this.by_data.BYMONTHDAY.hasOwnProperty(monthdaykey)) { + continue; + } + var day_ = this.by_data.BYMONTHDAY[monthdaykey]; + if (day_ < 0) { + day_ = day_ + daysInMonth2 + 1; + } + t3.day = day_; + t3.month = month_; + t3.year = aYear; + t3.isDate = true; + this.days.push(t3.dayOfYear()); + } + } + } else if (partCount == 1 && "BYWEEKNO" in parts) { + } else if (partCount == 2 && "BYWEEKNO" in parts && "BYMONTHDAY" in parts) { + } else if (partCount == 1 && "BYDAY" in parts) { + this.days = this.days.concat(this.expand_by_day(aYear)); + } else if (partCount == 2 && "BYDAY" in parts && "BYMONTH" in parts) { + for (var monthkey in this.by_data.BYMONTH) { + if (!this.by_data.BYMONTH.hasOwnProperty(monthkey)) { + continue; + } + var month = this.by_data.BYMONTH[monthkey]; + var daysInMonth2 = ICAL2.Time.daysInMonth(month, aYear); + t3.year = aYear; + t3.month = this.by_data.BYMONTH[monthkey]; + t3.day = 1; + t3.isDate = true; + var first_dow = t3.dayOfWeek(); + var doy_offset = t3.dayOfYear() - 1; + t3.day = daysInMonth2; + var last_dow = t3.dayOfWeek(); + if (this.has_by_data("BYSETPOS")) { + var set_pos_counter = 0; + var by_month_day = []; + for (var day = 1; day <= daysInMonth2; day++) { + t3.day = day; + if (this.is_day_in_byday(t3)) { + by_month_day.push(day); + } + } + for (var spIndex = 0; spIndex < by_month_day.length; spIndex++) { + if (this.check_set_position(spIndex + 1) || this.check_set_position(spIndex - by_month_day.length)) { + this.days.push(doy_offset + by_month_day[spIndex]); + } + } + } else { + for (var daycodedkey in this.by_data.BYDAY) { + if (!this.by_data.BYDAY.hasOwnProperty(daycodedkey)) { + continue; + } + var coded_day = this.by_data.BYDAY[daycodedkey]; + var bydayParts = this.ruleDayOfWeek(coded_day); + var pos = bydayParts[0]; + var dow = bydayParts[1]; + var month_day; + var first_matching_day = (dow + 7 - first_dow) % 7 + 1; + var last_matching_day = daysInMonth2 - (last_dow + 7 - dow) % 7; + if (pos == 0) { + for (var day = first_matching_day; day <= daysInMonth2; day += 7) { + this.days.push(doy_offset + day); + } + } else if (pos > 0) { + month_day = first_matching_day + (pos - 1) * 7; + if (month_day <= daysInMonth2) { + this.days.push(doy_offset + month_day); + } + } else { + month_day = last_matching_day + (pos + 1) * 7; + if (month_day > 0) { + this.days.push(doy_offset + month_day); + } + } + } + } + } + this.days.sort(function(a3, b3) { + return a3 - b3; + }); + } else if (partCount == 2 && "BYDAY" in parts && "BYMONTHDAY" in parts) { + var expandedDays = this.expand_by_day(aYear); + for (var daykey in expandedDays) { + if (!expandedDays.hasOwnProperty(daykey)) { + continue; + } + var day = expandedDays[daykey]; + var tt = ICAL2.Time.fromDayOfYear(day, aYear); + if (this.by_data.BYMONTHDAY.indexOf(tt.day) >= 0) { + this.days.push(day); + } + } + } else if (partCount == 3 && "BYDAY" in parts && "BYMONTHDAY" in parts && "BYMONTH" in parts) { + var expandedDays = this.expand_by_day(aYear); + for (var daykey in expandedDays) { + if (!expandedDays.hasOwnProperty(daykey)) { + continue; + } + var day = expandedDays[daykey]; + var tt = ICAL2.Time.fromDayOfYear(day, aYear); + if (this.by_data.BYMONTH.indexOf(tt.month) >= 0 && this.by_data.BYMONTHDAY.indexOf(tt.day) >= 0) { + this.days.push(day); + } + } + } else if (partCount == 2 && "BYDAY" in parts && "BYWEEKNO" in parts) { + var expandedDays = this.expand_by_day(aYear); + for (var daykey in expandedDays) { + if (!expandedDays.hasOwnProperty(daykey)) { + continue; + } + var day = expandedDays[daykey]; + var tt = ICAL2.Time.fromDayOfYear(day, aYear); + var weekno = tt.weekNumber(this.rule.wkst); + if (this.by_data.BYWEEKNO.indexOf(weekno)) { + this.days.push(day); + } + } + } else if (partCount == 3 && "BYDAY" in parts && "BYWEEKNO" in parts && "BYMONTHDAY" in parts) { + } else if (partCount == 1 && "BYYEARDAY" in parts) { + this.days = this.days.concat(this.by_data.BYYEARDAY); + } else { + this.days = []; + } + return 0; + }, + expand_by_day: function expand_by_day(aYear) { + var days_list = []; + var tmp = this.last.clone(); + tmp.year = aYear; + tmp.month = 1; + tmp.day = 1; + tmp.isDate = true; + var start_dow = tmp.dayOfWeek(); + tmp.month = 12; + tmp.day = 31; + tmp.isDate = true; + var end_dow = tmp.dayOfWeek(); + var end_year_day = tmp.dayOfYear(); + for (var daykey in this.by_data.BYDAY) { + if (!this.by_data.BYDAY.hasOwnProperty(daykey)) { + continue; + } + var day = this.by_data.BYDAY[daykey]; + var parts = this.ruleDayOfWeek(day); + var pos = parts[0]; + var dow = parts[1]; + if (pos == 0) { + var tmp_start_doy = (dow + 7 - start_dow) % 7 + 1; + for (var doy = tmp_start_doy; doy <= end_year_day; doy += 7) { + days_list.push(doy); + } + } else if (pos > 0) { + var first; + if (dow >= start_dow) { + first = dow - start_dow + 1; + } else { + first = dow - start_dow + 8; + } + days_list.push(first + (pos - 1) * 7); + } else { + var last; + pos = -pos; + if (dow <= end_dow) { + last = end_year_day - end_dow + dow; + } else { + last = end_year_day - end_dow + dow - 7; + } + days_list.push(last - (pos - 1) * 7); + } + } + return days_list; + }, + is_day_in_byday: function is_day_in_byday(tt) { + for (var daykey in this.by_data.BYDAY) { + if (!this.by_data.BYDAY.hasOwnProperty(daykey)) { + continue; + } + var day = this.by_data.BYDAY[daykey]; + var parts = this.ruleDayOfWeek(day); + var pos = parts[0]; + var dow = parts[1]; + var this_dow = tt.dayOfWeek(); + if (pos == 0 && dow == this_dow || tt.nthWeekDay(dow, pos) == tt.day) { + return 1; + } + } + return 0; + }, + check_set_position: function check_set_position(aPos) { + if (this.has_by_data("BYSETPOS")) { + var idx = this.by_data.BYSETPOS.indexOf(aPos); + return idx !== -1; + } + return false; + }, + sort_byday_rules: function icalrecur_sort_byday_rules(aRules) { + for (var i3 = 0; i3 < aRules.length; i3++) { + for (var j4 = 0; j4 < i3; j4++) { + var one = this.ruleDayOfWeek(aRules[j4], this.rule.wkst)[1]; + var two = this.ruleDayOfWeek(aRules[i3], this.rule.wkst)[1]; + if (one > two) { + var tmp = aRules[i3]; + aRules[i3] = aRules[j4]; + aRules[j4] = tmp; + } + } + } + }, + check_contract_restriction: function check_contract_restriction(aRuleType, v3) { + var indexMapValue = icalrecur_iterator._indexMap[aRuleType]; + var ruleMapValue = icalrecur_iterator._expandMap[this.rule.freq][indexMapValue]; + var pass = false; + if (aRuleType in this.by_data && ruleMapValue == icalrecur_iterator.CONTRACT) { + var ruleType = this.by_data[aRuleType]; + for (var bydatakey in ruleType) { + if (ruleType.hasOwnProperty(bydatakey)) { + if (ruleType[bydatakey] == v3) { + pass = true; + break; + } + } + } + } else { + pass = true; + } + return pass; + }, + check_contracting_rules: function check_contracting_rules() { + var dow = this.last.dayOfWeek(); + var weekNo = this.last.weekNumber(this.rule.wkst); + var doy = this.last.dayOfYear(); + return this.check_contract_restriction("BYSECOND", this.last.second) && this.check_contract_restriction("BYMINUTE", this.last.minute) && this.check_contract_restriction("BYHOUR", this.last.hour) && this.check_contract_restriction("BYDAY", ICAL2.Recur.numericDayToIcalDay(dow)) && this.check_contract_restriction("BYWEEKNO", weekNo) && this.check_contract_restriction("BYMONTHDAY", this.last.day) && this.check_contract_restriction("BYMONTH", this.last.month) && this.check_contract_restriction("BYYEARDAY", doy); + }, + setup_defaults: function setup_defaults(aRuleType, req, deftime) { + var indexMapValue = icalrecur_iterator._indexMap[aRuleType]; + var ruleMapValue = icalrecur_iterator._expandMap[this.rule.freq][indexMapValue]; + if (ruleMapValue != icalrecur_iterator.CONTRACT) { + if (!(aRuleType in this.by_data)) { + this.by_data[aRuleType] = [deftime]; + } + if (this.rule.freq != req) { + return this.by_data[aRuleType][0]; + } + } + return deftime; + }, + toJSON: function() { + var result = Object.create(null); + result.initialized = this.initialized; + result.rule = this.rule.toJSON(); + result.dtstart = this.dtstart.toJSON(); + result.by_data = this.by_data; + result.days = this.days; + result.last = this.last.toJSON(); + result.by_indices = this.by_indices; + result.occurrence_number = this.occurrence_number; + return result; + } + }; + icalrecur_iterator._indexMap = { + "BYSECOND": 0, + "BYMINUTE": 1, + "BYHOUR": 2, + "BYDAY": 3, + "BYMONTHDAY": 4, + "BYYEARDAY": 5, + "BYWEEKNO": 6, + "BYMONTH": 7, + "BYSETPOS": 8 + }; + icalrecur_iterator._expandMap = { + "SECONDLY": [1, 1, 1, 1, 1, 1, 1, 1], + "MINUTELY": [2, 1, 1, 1, 1, 1, 1, 1], + "HOURLY": [2, 2, 1, 1, 1, 1, 1, 1], + "DAILY": [2, 2, 2, 1, 1, 1, 1, 1], + "WEEKLY": [2, 2, 2, 2, 3, 3, 1, 1], + "MONTHLY": [2, 2, 2, 2, 2, 3, 3, 1], + "YEARLY": [2, 2, 2, 2, 2, 2, 2, 2] + }; + icalrecur_iterator.UNKNOWN = 0; + icalrecur_iterator.CONTRACT = 1; + icalrecur_iterator.EXPAND = 2; + icalrecur_iterator.ILLEGAL = 3; + return icalrecur_iterator; + }(); + ICAL2.RecurExpansion = function() { + function formatTime(item) { + return ICAL2.helpers.formatClassType(item, ICAL2.Time); + } + function compareTime(a3, b3) { + return a3.compare(b3); + } + function isRecurringComponent(comp) { + return comp.hasProperty("rdate") || comp.hasProperty("rrule") || comp.hasProperty("recurrence-id"); + } + function RecurExpansion(options) { + this.ruleDates = []; + this.exDates = []; + this.fromData(options); + } + RecurExpansion.prototype = { + complete: false, + ruleIterators: null, + ruleDates: null, + exDates: null, + ruleDateInc: 0, + exDateInc: 0, + exDate: null, + ruleDate: null, + dtstart: null, + last: null, + fromData: function(options) { + var start = ICAL2.helpers.formatClassType(options.dtstart, ICAL2.Time); + if (!start) { + throw new Error(".dtstart (ICAL.Time) must be given"); + } else { + this.dtstart = start; + } + if (options.component) { + this._init(options.component); + } else { + this.last = formatTime(options.last) || start.clone(); + if (!options.ruleIterators) { + throw new Error(".ruleIterators or .component must be given"); + } + this.ruleIterators = options.ruleIterators.map(function(item) { + return ICAL2.helpers.formatClassType(item, ICAL2.RecurIterator); + }); + this.ruleDateInc = options.ruleDateInc; + this.exDateInc = options.exDateInc; + if (options.ruleDates) { + this.ruleDates = options.ruleDates.map(formatTime); + this.ruleDate = this.ruleDates[this.ruleDateInc]; + } + if (options.exDates) { + this.exDates = options.exDates.map(formatTime); + this.exDate = this.exDates[this.exDateInc]; + } + if (typeof options.complete !== "undefined") { + this.complete = options.complete; + } + } + }, + next: function() { + var iter2; + var ruleOfDay; + var next; + var compare; + var maxTries = 500; + var currentTry = 0; + while (true) { + if (currentTry++ > maxTries) { + throw new Error("max tries have occured, rule may be impossible to forfill."); + } + next = this.ruleDate; + iter2 = this._nextRecurrenceIter(this.last); + if (!next && !iter2) { + this.complete = true; + break; + } + if (!next || iter2 && next.compare(iter2.last) > 0) { + next = iter2.last.clone(); + iter2.next(); + } + if (this.ruleDate === next) { + this._nextRuleDay(); + } + this.last = next; + if (this.exDate) { + compare = this.exDate.compare(this.last); + if (compare < 0) { + this._nextExDay(); + } + if (compare === 0) { + this._nextExDay(); + continue; + } + } + return this.last; + } + }, + toJSON: function() { + function toJSON(item) { + return item.toJSON(); + } + var result = Object.create(null); + result.ruleIterators = this.ruleIterators.map(toJSON); + if (this.ruleDates) { + result.ruleDates = this.ruleDates.map(toJSON); + } + if (this.exDates) { + result.exDates = this.exDates.map(toJSON); + } + result.ruleDateInc = this.ruleDateInc; + result.exDateInc = this.exDateInc; + result.last = this.last.toJSON(); + result.dtstart = this.dtstart.toJSON(); + result.complete = this.complete; + return result; + }, + _extractDates: function(component, propertyName) { + function handleProp(prop2) { + idx = ICAL2.helpers.binsearchInsert(result, prop2, compareTime); + result.splice(idx, 0, prop2); + } + var result = []; + var props = component.getAllProperties(propertyName); + var len = props.length; + var i3 = 0; + var prop; + var idx; + for (; i3 < len; i3++) { + props[i3].getValues().forEach(handleProp); + } + return result; + }, + _init: function(component) { + this.ruleIterators = []; + this.last = this.dtstart.clone(); + if (!isRecurringComponent(component)) { + this.ruleDate = this.last.clone(); + this.complete = true; + return; + } + if (component.hasProperty("rdate")) { + this.ruleDates = this._extractDates(component, "rdate"); + if (this.ruleDates[0] && this.ruleDates[0].compare(this.dtstart) < 0) { + this.ruleDateInc = 0; + this.last = this.ruleDates[0].clone(); + } else { + this.ruleDateInc = ICAL2.helpers.binsearchInsert(this.ruleDates, this.last, compareTime); + } + this.ruleDate = this.ruleDates[this.ruleDateInc]; + } + if (component.hasProperty("rrule")) { + var rules = component.getAllProperties("rrule"); + var i3 = 0; + var len = rules.length; + var rule; + var iter2; + for (; i3 < len; i3++) { + rule = rules[i3].getFirstValue(); + iter2 = rule.iterator(this.dtstart); + this.ruleIterators.push(iter2); + iter2.next(); + } + } + if (component.hasProperty("exdate")) { + this.exDates = this._extractDates(component, "exdate"); + this.exDateInc = ICAL2.helpers.binsearchInsert(this.exDates, this.last, compareTime); + this.exDate = this.exDates[this.exDateInc]; + } + }, + _nextExDay: function() { + this.exDate = this.exDates[++this.exDateInc]; + }, + _nextRuleDay: function() { + this.ruleDate = this.ruleDates[++this.ruleDateInc]; + }, + _nextRecurrenceIter: function() { + var iters = this.ruleIterators; + if (iters.length === 0) { + return null; + } + var len = iters.length; + var iter2; + var iterTime; + var iterIdx = 0; + var chosenIter; + for (; iterIdx < len; iterIdx++) { + iter2 = iters[iterIdx]; + iterTime = iter2.last; + if (iter2.completed) { + len--; + if (iterIdx !== 0) { + iterIdx--; + } + iters.splice(iterIdx, 1); + continue; + } + if (!chosenIter || chosenIter.last.compare(iterTime) > 0) { + chosenIter = iter2; + } + } + return chosenIter; + } + }; + return RecurExpansion; + }(); + ICAL2.Event = function() { + function Event2(component, options) { + if (!(component instanceof ICAL2.Component)) { + options = component; + component = null; + } + if (component) { + this.component = component; + } else { + this.component = new ICAL2.Component("vevent"); + } + this._rangeExceptionCache = Object.create(null); + this.exceptions = Object.create(null); + this.rangeExceptions = []; + if (options && options.strictExceptions) { + this.strictExceptions = options.strictExceptions; + } + if (options && options.exceptions) { + options.exceptions.forEach(this.relateException, this); + } else if (this.component.parent && !this.isRecurrenceException()) { + this.component.parent.getAllSubcomponents("vevent").forEach(function(event) { + if (event.hasProperty("recurrence-id")) { + this.relateException(event); + } + }, this); + } + } + Event2.prototype = { + THISANDFUTURE: "THISANDFUTURE", + exceptions: null, + strictExceptions: false, + relateException: function(obj) { + if (this.isRecurrenceException()) { + throw new Error("cannot relate exception to exceptions"); + } + if (obj instanceof ICAL2.Component) { + obj = new ICAL2.Event(obj); + } + if (this.strictExceptions && obj.uid !== this.uid) { + throw new Error("attempted to relate unrelated exception"); + } + var id = obj.recurrenceId.toString(); + this.exceptions[id] = obj; + if (obj.modifiesFuture()) { + var item = [ + obj.recurrenceId.toUnixTime(), + id + ]; + var idx = ICAL2.helpers.binsearchInsert(this.rangeExceptions, item, compareRangeException); + this.rangeExceptions.splice(idx, 0, item); + } + }, + modifiesFuture: function() { + if (!this.component.hasProperty("recurrence-id")) { + return false; + } + var range2 = this.component.getFirstProperty("recurrence-id").getParameter("range"); + return range2 === this.THISANDFUTURE; + }, + findRangeException: function(time) { + if (!this.rangeExceptions.length) { + return null; + } + var utc = time.toUnixTime(); + var idx = ICAL2.helpers.binsearchInsert(this.rangeExceptions, [utc], compareRangeException); + idx -= 1; + if (idx < 0) { + return null; + } + var rangeItem = this.rangeExceptions[idx]; + if (utc < rangeItem[0]) { + return null; + } + return rangeItem[1]; + }, + getOccurrenceDetails: function(occurrence) { + var id = occurrence.toString(); + var utcId = occurrence.convertToZone(ICAL2.Timezone.utcTimezone).toString(); + var item; + var result = { + recurrenceId: occurrence + }; + if (id in this.exceptions) { + item = result.item = this.exceptions[id]; + result.startDate = item.startDate; + result.endDate = item.endDate; + result.item = item; + } else if (utcId in this.exceptions) { + item = this.exceptions[utcId]; + result.startDate = item.startDate; + result.endDate = item.endDate; + result.item = item; + } else { + var rangeExceptionId = this.findRangeException(occurrence); + var end; + if (rangeExceptionId) { + var exception = this.exceptions[rangeExceptionId]; + result.item = exception; + var startDiff = this._rangeExceptionCache[rangeExceptionId]; + if (!startDiff) { + var original = exception.recurrenceId.clone(); + var newStart = exception.startDate.clone(); + original.zone = newStart.zone; + startDiff = newStart.subtractDate(original); + this._rangeExceptionCache[rangeExceptionId] = startDiff; + } + var start = occurrence.clone(); + start.zone = exception.startDate.zone; + start.addDuration(startDiff); + end = start.clone(); + end.addDuration(exception.duration); + result.startDate = start; + result.endDate = end; + } else { + end = occurrence.clone(); + end.addDuration(this.duration); + result.endDate = end; + result.startDate = occurrence; + result.item = this; + } + } + return result; + }, + iterator: function(startTime) { + return new ICAL2.RecurExpansion({ + component: this.component, + dtstart: startTime || this.startDate + }); + }, + isRecurring: function() { + var comp = this.component; + return comp.hasProperty("rrule") || comp.hasProperty("rdate"); + }, + isRecurrenceException: function() { + return this.component.hasProperty("recurrence-id"); + }, + getRecurrenceTypes: function() { + var rules = this.component.getAllProperties("rrule"); + var i3 = 0; + var len = rules.length; + var result = Object.create(null); + for (; i3 < len; i3++) { + var value = rules[i3].getFirstValue(); + result[value.freq] = true; + } + return result; + }, + get uid() { + return this._firstProp("uid"); + }, + set uid(value) { + this._setProp("uid", value); + }, + get startDate() { + return this._firstProp("dtstart"); + }, + set startDate(value) { + this._setTime("dtstart", value); + }, + get endDate() { + var endDate = this._firstProp("dtend"); + if (!endDate) { + var duration = this._firstProp("duration"); + endDate = this.startDate.clone(); + if (duration) { + endDate.addDuration(duration); + } else if (endDate.isDate) { + endDate.day += 1; + } + } + return endDate; + }, + set endDate(value) { + if (this.component.hasProperty("duration")) { + this.component.removeProperty("duration"); + } + this._setTime("dtend", value); + }, + get duration() { + var duration = this._firstProp("duration"); + if (!duration) { + return this.endDate.subtractDateTz(this.startDate); + } + return duration; + }, + set duration(value) { + if (this.component.hasProperty("dtend")) { + this.component.removeProperty("dtend"); + } + this._setProp("duration", value); + }, + get location() { + return this._firstProp("location"); + }, + set location(value) { + return this._setProp("location", value); + }, + get attendees() { + return this.component.getAllProperties("attendee"); + }, + get summary() { + return this._firstProp("summary"); + }, + set summary(value) { + this._setProp("summary", value); + }, + get description() { + return this._firstProp("description"); + }, + set description(value) { + this._setProp("description", value); + }, + get color() { + return this._firstProp("color"); + }, + set color(value) { + this._setProp("color", value); + }, + get organizer() { + return this._firstProp("organizer"); + }, + set organizer(value) { + this._setProp("organizer", value); + }, + get sequence() { + return this._firstProp("sequence"); + }, + set sequence(value) { + this._setProp("sequence", value); + }, + get recurrenceId() { + return this._firstProp("recurrence-id"); + }, + set recurrenceId(value) { + this._setTime("recurrence-id", value); + }, + _setTime: function(propName, time) { + var prop = this.component.getFirstProperty(propName); + if (!prop) { + prop = new ICAL2.Property(propName); + this.component.addProperty(prop); + } + if (time.zone === ICAL2.Timezone.localTimezone || time.zone === ICAL2.Timezone.utcTimezone) { + prop.removeParameter("tzid"); + } else { + prop.setParameter("tzid", time.zone.tzid); + } + prop.setValue(time); + }, + _setProp: function(name, value) { + this.component.updatePropertyWithValue(name, value); + }, + _firstProp: function(name) { + return this.component.getFirstPropertyValue(name); + }, + toString: function() { + return this.component.toString(); + } + }; + function compareRangeException(a3, b3) { + if (a3[0] > b3[0]) + return 1; + if (b3[0] > a3[0]) + return -1; + return 0; + } + return Event2; + }(); + ICAL2.ComponentParser = function() { + function ComponentParser(options) { + if (typeof options === "undefined") { + options = {}; + } + var key; + for (key in options) { + if (options.hasOwnProperty(key)) { + this[key] = options[key]; + } + } + } + ComponentParser.prototype = { + parseEvent: true, + parseTimezone: true, + oncomplete: function() { + }, + onerror: function(err) { + }, + ontimezone: function(component) { + }, + onevent: function(component) { + }, + process: function(ical2) { + if (typeof ical2 === "string") { + ical2 = ICAL2.parse(ical2); + } + if (!(ical2 instanceof ICAL2.Component)) { + ical2 = new ICAL2.Component(ical2); + } + var components = ical2.getAllSubcomponents(); + var i3 = 0; + var len = components.length; + var component; + for (; i3 < len; i3++) { + component = components[i3]; + switch (component.name) { + case "vtimezone": + if (this.parseTimezone) { + var tzid = component.getFirstPropertyValue("tzid"); + if (tzid) { + this.ontimezone(new ICAL2.Timezone({ + tzid, + component + })); + } + } + break; + case "vevent": + if (this.parseEvent) { + this.onevent(new ICAL2.Event(component)); + } + break; + default: + continue; + } + } + this.oncomplete(); + } + }; + return ComponentParser; + }(); + } +}); + +// node_modules/object-assign/index.js +var require_object_assign = __commonJS({ + "node_modules/object-assign/index.js"(exports, module2) { + "use strict"; + var getOwnPropertySymbols = Object.getOwnPropertySymbols; + var hasOwnProperty3 = Object.prototype.hasOwnProperty; + var propIsEnumerable = Object.prototype.propertyIsEnumerable; + function toObject(val) { + if (val === null || val === void 0) { + throw new TypeError("Object.assign cannot be called with null or undefined"); + } + return Object(val); + } + function shouldUseNative() { + try { + if (!Object.assign) { + return false; + } + var test1 = new String("abc"); + test1[5] = "de"; + if (Object.getOwnPropertyNames(test1)[0] === "5") { + return false; + } + var test2 = {}; + for (var i3 = 0; i3 < 10; i3++) { + test2["_" + String.fromCharCode(i3)] = i3; + } + var order2 = Object.getOwnPropertyNames(test2).map(function(n3) { + return test2[n3]; + }); + if (order2.join("") !== "0123456789") { + return false; + } + var test3 = {}; + "abcdefghijklmnopqrst".split("").forEach(function(letter) { + test3[letter] = letter; + }); + if (Object.keys(Object.assign({}, test3)).join("") !== "abcdefghijklmnopqrst") { + return false; + } + return true; + } catch (err) { + return false; + } + } + module2.exports = shouldUseNative() ? Object.assign : function(target, source) { + var from; + var to = toObject(target); + var symbols; + for (var s4 = 1; s4 < arguments.length; s4++) { + from = Object(arguments[s4]); + for (var key in from) { + if (hasOwnProperty3.call(from, key)) { + to[key] = from[key]; + } + } + if (getOwnPropertySymbols) { + symbols = getOwnPropertySymbols(from); + for (var i3 = 0; i3 < symbols.length; i3++) { + if (propIsEnumerable.call(from, symbols[i3])) { + to[symbols[i3]] = from[symbols[i3]]; + } + } + } + } + return to; + }; + } +}); + +// node_modules/react/cjs/react.development.js +var require_react_development = __commonJS({ + "node_modules/react/cjs/react.development.js"(exports) { + "use strict"; + if (true) { + (function() { + "use strict"; + var _assign = require_object_assign(); + var ReactVersion = "17.0.2"; + var REACT_ELEMENT_TYPE = 60103; + var REACT_PORTAL_TYPE = 60106; + exports.Fragment = 60107; + exports.StrictMode = 60108; + exports.Profiler = 60114; + var REACT_PROVIDER_TYPE = 60109; + var REACT_CONTEXT_TYPE = 60110; + var REACT_FORWARD_REF_TYPE = 60112; + exports.Suspense = 60113; + var REACT_SUSPENSE_LIST_TYPE = 60120; + var REACT_MEMO_TYPE = 60115; + var REACT_LAZY_TYPE = 60116; + var REACT_BLOCK_TYPE = 60121; + var REACT_SERVER_BLOCK_TYPE = 60122; + var REACT_FUNDAMENTAL_TYPE = 60117; + var REACT_SCOPE_TYPE = 60119; + var REACT_OPAQUE_ID_TYPE = 60128; + var REACT_DEBUG_TRACING_MODE_TYPE = 60129; + var REACT_OFFSCREEN_TYPE = 60130; + var REACT_LEGACY_HIDDEN_TYPE = 60131; + if (typeof Symbol === "function" && Symbol.for) { + var symbolFor = Symbol.for; + REACT_ELEMENT_TYPE = symbolFor("react.element"); + REACT_PORTAL_TYPE = symbolFor("react.portal"); + exports.Fragment = symbolFor("react.fragment"); + exports.StrictMode = symbolFor("react.strict_mode"); + exports.Profiler = symbolFor("react.profiler"); + REACT_PROVIDER_TYPE = symbolFor("react.provider"); + REACT_CONTEXT_TYPE = symbolFor("react.context"); + REACT_FORWARD_REF_TYPE = symbolFor("react.forward_ref"); + exports.Suspense = symbolFor("react.suspense"); + REACT_SUSPENSE_LIST_TYPE = symbolFor("react.suspense_list"); + REACT_MEMO_TYPE = symbolFor("react.memo"); + REACT_LAZY_TYPE = symbolFor("react.lazy"); + REACT_BLOCK_TYPE = symbolFor("react.block"); + REACT_SERVER_BLOCK_TYPE = symbolFor("react.server.block"); + REACT_FUNDAMENTAL_TYPE = symbolFor("react.fundamental"); + REACT_SCOPE_TYPE = symbolFor("react.scope"); + REACT_OPAQUE_ID_TYPE = symbolFor("react.opaque.id"); + REACT_DEBUG_TRACING_MODE_TYPE = symbolFor("react.debug_trace_mode"); + REACT_OFFSCREEN_TYPE = symbolFor("react.offscreen"); + REACT_LEGACY_HIDDEN_TYPE = symbolFor("react.legacy_hidden"); + } + var MAYBE_ITERATOR_SYMBOL = typeof Symbol === "function" && Symbol.iterator; + var FAUX_ITERATOR_SYMBOL = "@@iterator"; + function getIteratorFn(maybeIterable) { + if (maybeIterable === null || typeof maybeIterable !== "object") { + return null; + } + var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]; + if (typeof maybeIterator === "function") { + return maybeIterator; + } + return null; + } + var ReactCurrentDispatcher = { + current: null + }; + var ReactCurrentBatchConfig = { + transition: 0 + }; + var ReactCurrentOwner = { + current: null + }; + var ReactDebugCurrentFrame = {}; + var currentExtraStackFrame = null; + function setExtraStackFrame(stack) { + { + currentExtraStackFrame = stack; + } + } + { + ReactDebugCurrentFrame.setExtraStackFrame = function(stack) { + { + currentExtraStackFrame = stack; + } + }; + ReactDebugCurrentFrame.getCurrentStack = null; + ReactDebugCurrentFrame.getStackAddendum = function() { + var stack = ""; + if (currentExtraStackFrame) { + stack += currentExtraStackFrame; + } + var impl = ReactDebugCurrentFrame.getCurrentStack; + if (impl) { + stack += impl() || ""; + } + return stack; + }; + } + var IsSomeRendererActing = { + current: false + }; + var ReactSharedInternals = { + ReactCurrentDispatcher, + ReactCurrentBatchConfig, + ReactCurrentOwner, + IsSomeRendererActing, + assign: _assign + }; + { + ReactSharedInternals.ReactDebugCurrentFrame = ReactDebugCurrentFrame; + } + function warn(format) { + { + for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + printWarning("warn", format, args); + } + } + function error(format) { + { + for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { + args[_key2 - 1] = arguments[_key2]; + } + printWarning("error", format, args); + } + } + function printWarning(level, format, args) { + { + var ReactDebugCurrentFrame2 = ReactSharedInternals.ReactDebugCurrentFrame; + var stack = ReactDebugCurrentFrame2.getStackAddendum(); + if (stack !== "") { + format += "%s"; + args = args.concat([stack]); + } + var argsWithFormat = args.map(function(item) { + return "" + item; + }); + argsWithFormat.unshift("Warning: " + format); + Function.prototype.apply.call(console[level], console, argsWithFormat); + } + } + var didWarnStateUpdateForUnmountedComponent = {}; + function warnNoop(publicInstance, callerName) { + { + var _constructor = publicInstance.constructor; + var componentName = _constructor && (_constructor.displayName || _constructor.name) || "ReactClass"; + var warningKey = componentName + "." + callerName; + if (didWarnStateUpdateForUnmountedComponent[warningKey]) { + return; + } + error("Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.", callerName, componentName); + didWarnStateUpdateForUnmountedComponent[warningKey] = true; + } + } + var ReactNoopUpdateQueue = { + isMounted: function(publicInstance) { + return false; + }, + enqueueForceUpdate: function(publicInstance, callback, callerName) { + warnNoop(publicInstance, "forceUpdate"); + }, + enqueueReplaceState: function(publicInstance, completeState, callback, callerName) { + warnNoop(publicInstance, "replaceState"); + }, + enqueueSetState: function(publicInstance, partialState, callback, callerName) { + warnNoop(publicInstance, "setState"); + } + }; + var emptyObject = {}; + { + Object.freeze(emptyObject); + } + function Component4(props, context, updater) { + this.props = props; + this.context = context; + this.refs = emptyObject; + this.updater = updater || ReactNoopUpdateQueue; + } + Component4.prototype.isReactComponent = {}; + Component4.prototype.setState = function(partialState, callback) { + if (!(typeof partialState === "object" || typeof partialState === "function" || partialState == null)) { + { + throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables."); + } + } + this.updater.enqueueSetState(this, partialState, callback, "setState"); + }; + Component4.prototype.forceUpdate = function(callback) { + this.updater.enqueueForceUpdate(this, callback, "forceUpdate"); + }; + { + var deprecatedAPIs = { + isMounted: ["isMounted", "Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks."], + replaceState: ["replaceState", "Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236)."] + }; + var defineDeprecationWarning = function(methodName, info) { + Object.defineProperty(Component4.prototype, methodName, { + get: function() { + warn("%s(...) is deprecated in plain JavaScript React classes. %s", info[0], info[1]); + return void 0; + } + }); + }; + for (var fnName in deprecatedAPIs) { + if (deprecatedAPIs.hasOwnProperty(fnName)) { + defineDeprecationWarning(fnName, deprecatedAPIs[fnName]); + } + } + } + function ComponentDummy() { + } + ComponentDummy.prototype = Component4.prototype; + function PureComponent2(props, context, updater) { + this.props = props; + this.context = context; + this.refs = emptyObject; + this.updater = updater || ReactNoopUpdateQueue; + } + var pureComponentPrototype = PureComponent2.prototype = new ComponentDummy(); + pureComponentPrototype.constructor = PureComponent2; + _assign(pureComponentPrototype, Component4.prototype); + pureComponentPrototype.isPureReactComponent = true; + function createRef2() { + var refObject = { + current: null + }; + { + Object.seal(refObject); + } + return refObject; + } + function getWrappedName(outerType, innerType, wrapperName) { + var functionName = innerType.displayName || innerType.name || ""; + return outerType.displayName || (functionName !== "" ? wrapperName + "(" + functionName + ")" : wrapperName); + } + function getContextName(type) { + return type.displayName || "Context"; + } + function getComponentName(type) { + if (type == null) { + return null; + } + { + if (typeof type.tag === "number") { + error("Received an unexpected object in getComponentName(). This is likely a bug in React. Please file an issue."); + } + } + if (typeof type === "function") { + return type.displayName || type.name || null; + } + if (typeof type === "string") { + return type; + } + switch (type) { + case exports.Fragment: + return "Fragment"; + case REACT_PORTAL_TYPE: + return "Portal"; + case exports.Profiler: + return "Profiler"; + case exports.StrictMode: + return "StrictMode"; + case exports.Suspense: + return "Suspense"; + case REACT_SUSPENSE_LIST_TYPE: + return "SuspenseList"; + } + if (typeof type === "object") { + switch (type.$$typeof) { + case REACT_CONTEXT_TYPE: + var context = type; + return getContextName(context) + ".Consumer"; + case REACT_PROVIDER_TYPE: + var provider = type; + return getContextName(provider._context) + ".Provider"; + case REACT_FORWARD_REF_TYPE: + return getWrappedName(type, type.render, "ForwardRef"); + case REACT_MEMO_TYPE: + return getComponentName(type.type); + case REACT_BLOCK_TYPE: + return getComponentName(type._render); + case REACT_LAZY_TYPE: { + var lazyComponent = type; + var payload = lazyComponent._payload; + var init = lazyComponent._init; + try { + return getComponentName(init(payload)); + } catch (x3) { + return null; + } + } + } + } + return null; + } + var hasOwnProperty3 = Object.prototype.hasOwnProperty; + var RESERVED_PROPS = { + key: true, + ref: true, + __self: true, + __source: true + }; + var specialPropKeyWarningShown, specialPropRefWarningShown, didWarnAboutStringRefs; + { + didWarnAboutStringRefs = {}; + } + function hasValidRef(config2) { + { + if (hasOwnProperty3.call(config2, "ref")) { + var getter = Object.getOwnPropertyDescriptor(config2, "ref").get; + if (getter && getter.isReactWarning) { + return false; + } + } + } + return config2.ref !== void 0; + } + function hasValidKey(config2) { + { + if (hasOwnProperty3.call(config2, "key")) { + var getter = Object.getOwnPropertyDescriptor(config2, "key").get; + if (getter && getter.isReactWarning) { + return false; + } + } + } + return config2.key !== void 0; + } + function defineKeyPropWarningGetter(props, displayName) { + var warnAboutAccessingKey = function() { + { + if (!specialPropKeyWarningShown) { + specialPropKeyWarningShown = true; + error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", displayName); + } + } + }; + warnAboutAccessingKey.isReactWarning = true; + Object.defineProperty(props, "key", { + get: warnAboutAccessingKey, + configurable: true + }); + } + function defineRefPropWarningGetter(props, displayName) { + var warnAboutAccessingRef = function() { + { + if (!specialPropRefWarningShown) { + specialPropRefWarningShown = true; + error("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", displayName); + } + } + }; + warnAboutAccessingRef.isReactWarning = true; + Object.defineProperty(props, "ref", { + get: warnAboutAccessingRef, + configurable: true + }); + } + function warnIfStringRefCannotBeAutoConverted(config2) { + { + if (typeof config2.ref === "string" && ReactCurrentOwner.current && config2.__self && ReactCurrentOwner.current.stateNode !== config2.__self) { + var componentName = getComponentName(ReactCurrentOwner.current.type); + if (!didWarnAboutStringRefs[componentName]) { + error('Component "%s" contains the string ref "%s". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref', componentName, config2.ref); + didWarnAboutStringRefs[componentName] = true; + } + } + } + } + var ReactElement = function(type, key, ref, self2, source, owner, props) { + var element = { + $$typeof: REACT_ELEMENT_TYPE, + type, + key, + ref, + props, + _owner: owner + }; + { + element._store = {}; + Object.defineProperty(element._store, "validated", { + configurable: false, + enumerable: false, + writable: true, + value: false + }); + Object.defineProperty(element, "_self", { + configurable: false, + enumerable: false, + writable: false, + value: self2 + }); + Object.defineProperty(element, "_source", { + configurable: false, + enumerable: false, + writable: false, + value: source + }); + if (Object.freeze) { + Object.freeze(element.props); + Object.freeze(element); + } + } + return element; + }; + function createElement7(type, config2, children) { + var propName; + var props = {}; + var key = null; + var ref = null; + var self2 = null; + var source = null; + if (config2 != null) { + if (hasValidRef(config2)) { + ref = config2.ref; + { + warnIfStringRefCannotBeAutoConverted(config2); + } + } + if (hasValidKey(config2)) { + key = "" + config2.key; + } + self2 = config2.__self === void 0 ? null : config2.__self; + source = config2.__source === void 0 ? null : config2.__source; + for (propName in config2) { + if (hasOwnProperty3.call(config2, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) { + props[propName] = config2[propName]; + } + } + } + var childrenLength = arguments.length - 2; + if (childrenLength === 1) { + props.children = children; + } else if (childrenLength > 1) { + var childArray = Array(childrenLength); + for (var i3 = 0; i3 < childrenLength; i3++) { + childArray[i3] = arguments[i3 + 2]; + } + { + if (Object.freeze) { + Object.freeze(childArray); + } + } + props.children = childArray; + } + if (type && type.defaultProps) { + var defaultProps = type.defaultProps; + for (propName in defaultProps) { + if (props[propName] === void 0) { + props[propName] = defaultProps[propName]; + } + } + } + { + if (key || ref) { + var displayName = typeof type === "function" ? type.displayName || type.name || "Unknown" : type; + if (key) { + defineKeyPropWarningGetter(props, displayName); + } + if (ref) { + defineRefPropWarningGetter(props, displayName); + } + } + } + return ReactElement(type, key, ref, self2, source, ReactCurrentOwner.current, props); + } + function cloneAndReplaceKey(oldElement, newKey) { + var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props); + return newElement; + } + function cloneElement(element, config2, children) { + if (!!(element === null || element === void 0)) { + { + throw Error("React.cloneElement(...): The argument must be a React element, but you passed " + element + "."); + } + } + var propName; + var props = _assign({}, element.props); + var key = element.key; + var ref = element.ref; + var self2 = element._self; + var source = element._source; + var owner = element._owner; + if (config2 != null) { + if (hasValidRef(config2)) { + ref = config2.ref; + owner = ReactCurrentOwner.current; + } + if (hasValidKey(config2)) { + key = "" + config2.key; + } + var defaultProps; + if (element.type && element.type.defaultProps) { + defaultProps = element.type.defaultProps; + } + for (propName in config2) { + if (hasOwnProperty3.call(config2, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) { + if (config2[propName] === void 0 && defaultProps !== void 0) { + props[propName] = defaultProps[propName]; + } else { + props[propName] = config2[propName]; + } + } + } + } + var childrenLength = arguments.length - 2; + if (childrenLength === 1) { + props.children = children; + } else if (childrenLength > 1) { + var childArray = Array(childrenLength); + for (var i3 = 0; i3 < childrenLength; i3++) { + childArray[i3] = arguments[i3 + 2]; + } + props.children = childArray; + } + return ReactElement(element.type, key, ref, self2, source, owner, props); + } + function isValidElement(object) { + return typeof object === "object" && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; + } + var SEPARATOR = "."; + var SUBSEPARATOR = ":"; + function escape2(key) { + var escapeRegex = /[=:]/g; + var escaperLookup = { + "=": "=0", + ":": "=2" + }; + var escapedString = key.replace(escapeRegex, function(match2) { + return escaperLookup[match2]; + }); + return "$" + escapedString; + } + var didWarnAboutMaps = false; + var userProvidedKeyEscapeRegex = /\/+/g; + function escapeUserProvidedKey(text) { + return text.replace(userProvidedKeyEscapeRegex, "$&/"); + } + function getElementKey(element, index) { + if (typeof element === "object" && element !== null && element.key != null) { + return escape2("" + element.key); + } + return index.toString(36); + } + function mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) { + var type = typeof children; + if (type === "undefined" || type === "boolean") { + children = null; + } + var invokeCallback = false; + if (children === null) { + invokeCallback = true; + } else { + switch (type) { + case "string": + case "number": + invokeCallback = true; + break; + case "object": + switch (children.$$typeof) { + case REACT_ELEMENT_TYPE: + case REACT_PORTAL_TYPE: + invokeCallback = true; + } + } + } + if (invokeCallback) { + var _child = children; + var mappedChild = callback(_child); + var childKey = nameSoFar === "" ? SEPARATOR + getElementKey(_child, 0) : nameSoFar; + if (Array.isArray(mappedChild)) { + var escapedChildKey = ""; + if (childKey != null) { + escapedChildKey = escapeUserProvidedKey(childKey) + "/"; + } + mapIntoArray(mappedChild, array, escapedChildKey, "", function(c3) { + return c3; + }); + } else if (mappedChild != null) { + if (isValidElement(mappedChild)) { + mappedChild = cloneAndReplaceKey(mappedChild, escapedPrefix + (mappedChild.key && (!_child || _child.key !== mappedChild.key) ? escapeUserProvidedKey("" + mappedChild.key) + "/" : "") + childKey); + } + array.push(mappedChild); + } + return 1; + } + var child; + var nextName; + var subtreeCount = 0; + var nextNamePrefix = nameSoFar === "" ? SEPARATOR : nameSoFar + SUBSEPARATOR; + if (Array.isArray(children)) { + for (var i3 = 0; i3 < children.length; i3++) { + child = children[i3]; + nextName = nextNamePrefix + getElementKey(child, i3); + subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback); + } + } else { + var iteratorFn = getIteratorFn(children); + if (typeof iteratorFn === "function") { + var iterableChildren = children; + { + if (iteratorFn === iterableChildren.entries) { + if (!didWarnAboutMaps) { + warn("Using Maps as children is not supported. Use an array of keyed ReactElements instead."); + } + didWarnAboutMaps = true; + } + } + var iterator = iteratorFn.call(iterableChildren); + var step; + var ii = 0; + while (!(step = iterator.next()).done) { + child = step.value; + nextName = nextNamePrefix + getElementKey(child, ii++); + subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback); + } + } else if (type === "object") { + var childrenString = "" + children; + { + { + throw Error("Objects are not valid as a React child (found: " + (childrenString === "[object Object]" ? "object with keys {" + Object.keys(children).join(", ") + "}" : childrenString) + "). If you meant to render a collection of children, use an array instead."); + } + } + } + } + return subtreeCount; + } + function mapChildren(children, func, context) { + if (children == null) { + return children; + } + var result = []; + var count = 0; + mapIntoArray(children, result, "", "", function(child) { + return func.call(context, child, count++); + }); + return result; + } + function countChildren(children) { + var n3 = 0; + mapChildren(children, function() { + n3++; + }); + return n3; + } + function forEachChildren(children, forEachFunc, forEachContext) { + mapChildren(children, function() { + forEachFunc.apply(this, arguments); + }, forEachContext); + } + function toArray2(children) { + return mapChildren(children, function(child) { + return child; + }) || []; + } + function onlyChild(children) { + if (!isValidElement(children)) { + { + throw Error("React.Children.only expected to receive a single React element child."); + } + } + return children; + } + function createContext3(defaultValue, calculateChangedBits) { + if (calculateChangedBits === void 0) { + calculateChangedBits = null; + } else { + { + if (calculateChangedBits !== null && typeof calculateChangedBits !== "function") { + error("createContext: Expected the optional second argument to be a function. Instead received: %s", calculateChangedBits); + } + } + } + var context = { + $$typeof: REACT_CONTEXT_TYPE, + _calculateChangedBits: calculateChangedBits, + _currentValue: defaultValue, + _currentValue2: defaultValue, + _threadCount: 0, + Provider: null, + Consumer: null + }; + context.Provider = { + $$typeof: REACT_PROVIDER_TYPE, + _context: context + }; + var hasWarnedAboutUsingNestedContextConsumers = false; + var hasWarnedAboutUsingConsumerProvider = false; + var hasWarnedAboutDisplayNameOnConsumer = false; + { + var Consumer = { + $$typeof: REACT_CONTEXT_TYPE, + _context: context, + _calculateChangedBits: context._calculateChangedBits + }; + Object.defineProperties(Consumer, { + Provider: { + get: function() { + if (!hasWarnedAboutUsingConsumerProvider) { + hasWarnedAboutUsingConsumerProvider = true; + error("Rendering is not supported and will be removed in a future major release. Did you mean to render instead?"); + } + return context.Provider; + }, + set: function(_Provider) { + context.Provider = _Provider; + } + }, + _currentValue: { + get: function() { + return context._currentValue; + }, + set: function(_currentValue) { + context._currentValue = _currentValue; + } + }, + _currentValue2: { + get: function() { + return context._currentValue2; + }, + set: function(_currentValue2) { + context._currentValue2 = _currentValue2; + } + }, + _threadCount: { + get: function() { + return context._threadCount; + }, + set: function(_threadCount) { + context._threadCount = _threadCount; + } + }, + Consumer: { + get: function() { + if (!hasWarnedAboutUsingNestedContextConsumers) { + hasWarnedAboutUsingNestedContextConsumers = true; + error("Rendering is not supported and will be removed in a future major release. Did you mean to render instead?"); + } + return context.Consumer; + } + }, + displayName: { + get: function() { + return context.displayName; + }, + set: function(displayName) { + if (!hasWarnedAboutDisplayNameOnConsumer) { + warn("Setting `displayName` on Context.Consumer has no effect. You should set it directly on the context with Context.displayName = '%s'.", displayName); + hasWarnedAboutDisplayNameOnConsumer = true; + } + } + } + }); + context.Consumer = Consumer; + } + { + context._currentRenderer = null; + context._currentRenderer2 = null; + } + return context; + } + var Uninitialized = -1; + var Pending = 0; + var Resolved = 1; + var Rejected = 2; + function lazyInitializer(payload) { + if (payload._status === Uninitialized) { + var ctor = payload._result; + var thenable = ctor(); + var pending = payload; + pending._status = Pending; + pending._result = thenable; + thenable.then(function(moduleObject) { + if (payload._status === Pending) { + var defaultExport = moduleObject.default; + { + if (defaultExport === void 0) { + error("lazy: Expected the result of a dynamic import() call. Instead received: %s\n\nYour code should look like: \n const MyComponent = lazy(() => import('./MyComponent'))", moduleObject); + } + } + var resolved = payload; + resolved._status = Resolved; + resolved._result = defaultExport; + } + }, function(error2) { + if (payload._status === Pending) { + var rejected = payload; + rejected._status = Rejected; + rejected._result = error2; + } + }); + } + if (payload._status === Resolved) { + return payload._result; + } else { + throw payload._result; + } + } + function lazy(ctor) { + var payload = { + _status: -1, + _result: ctor + }; + var lazyType = { + $$typeof: REACT_LAZY_TYPE, + _payload: payload, + _init: lazyInitializer + }; + { + var defaultProps; + var propTypes; + Object.defineProperties(lazyType, { + defaultProps: { + configurable: true, + get: function() { + return defaultProps; + }, + set: function(newDefaultProps) { + error("React.lazy(...): It is not supported to assign `defaultProps` to a lazy component import. Either specify them where the component is defined, or create a wrapping component around it."); + defaultProps = newDefaultProps; + Object.defineProperty(lazyType, "defaultProps", { + enumerable: true + }); + } + }, + propTypes: { + configurable: true, + get: function() { + return propTypes; + }, + set: function(newPropTypes) { + error("React.lazy(...): It is not supported to assign `propTypes` to a lazy component import. Either specify them where the component is defined, or create a wrapping component around it."); + propTypes = newPropTypes; + Object.defineProperty(lazyType, "propTypes", { + enumerable: true + }); + } + } + }); + } + return lazyType; + } + function forwardRef(render4) { + { + if (render4 != null && render4.$$typeof === REACT_MEMO_TYPE) { + error("forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...))."); + } else if (typeof render4 !== "function") { + error("forwardRef requires a render function but was given %s.", render4 === null ? "null" : typeof render4); + } else { + if (render4.length !== 0 && render4.length !== 2) { + error("forwardRef render functions accept exactly two parameters: props and ref. %s", render4.length === 1 ? "Did you forget to use the ref parameter?" : "Any additional parameter will be undefined."); + } + } + if (render4 != null) { + if (render4.defaultProps != null || render4.propTypes != null) { + error("forwardRef render functions do not support propTypes or defaultProps. Did you accidentally pass a React component?"); + } + } + } + var elementType = { + $$typeof: REACT_FORWARD_REF_TYPE, + render: render4 + }; + { + var ownName; + Object.defineProperty(elementType, "displayName", { + enumerable: false, + configurable: true, + get: function() { + return ownName; + }, + set: function(name) { + ownName = name; + if (render4.displayName == null) { + render4.displayName = name; + } + } + }); + } + return elementType; + } + var enableScopeAPI = false; + function isValidElementType(type) { + if (typeof type === "string" || typeof type === "function") { + return true; + } + if (type === exports.Fragment || type === exports.Profiler || type === REACT_DEBUG_TRACING_MODE_TYPE || type === exports.StrictMode || type === exports.Suspense || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_LEGACY_HIDDEN_TYPE || enableScopeAPI) { + return true; + } + if (typeof type === "object" && type !== null) { + if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_BLOCK_TYPE || type[0] === REACT_SERVER_BLOCK_TYPE) { + return true; + } + } + return false; + } + function memo(type, compare) { + { + if (!isValidElementType(type)) { + error("memo: The first argument must be a component. Instead received: %s", type === null ? "null" : typeof type); + } + } + var elementType = { + $$typeof: REACT_MEMO_TYPE, + type, + compare: compare === void 0 ? null : compare + }; + { + var ownName; + Object.defineProperty(elementType, "displayName", { + enumerable: false, + configurable: true, + get: function() { + return ownName; + }, + set: function(name) { + ownName = name; + if (type.displayName == null) { + type.displayName = name; + } + } + }); + } + return elementType; + } + function resolveDispatcher() { + var dispatcher = ReactCurrentDispatcher.current; + if (!(dispatcher !== null)) { + { + throw Error("Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem."); + } + } + return dispatcher; + } + function useContext(Context, unstable_observedBits) { + var dispatcher = resolveDispatcher(); + { + if (unstable_observedBits !== void 0) { + error("useContext() second argument is reserved for future use in React. Passing it is not supported. You passed: %s.%s", unstable_observedBits, typeof unstable_observedBits === "number" && Array.isArray(arguments[2]) ? "\n\nDid you call array.map(useContext)? Calling Hooks inside a loop is not supported. Learn more at https://reactjs.org/link/rules-of-hooks" : ""); + } + if (Context._context !== void 0) { + var realContext = Context._context; + if (realContext.Consumer === Context) { + error("Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be removed in a future major release. Did you mean to call useContext(Context) instead?"); + } else if (realContext.Provider === Context) { + error("Calling useContext(Context.Provider) is not supported. Did you mean to call useContext(Context) instead?"); + } + } + } + return dispatcher.useContext(Context, unstable_observedBits); + } + function useState3(initialState) { + var dispatcher = resolveDispatcher(); + return dispatcher.useState(initialState); + } + function useReducer(reducer, initialArg, init) { + var dispatcher = resolveDispatcher(); + return dispatcher.useReducer(reducer, initialArg, init); + } + function useRef2(initialValue) { + var dispatcher = resolveDispatcher(); + return dispatcher.useRef(initialValue); + } + function useEffect2(create, deps) { + var dispatcher = resolveDispatcher(); + return dispatcher.useEffect(create, deps); + } + function useLayoutEffect(create, deps) { + var dispatcher = resolveDispatcher(); + return dispatcher.useLayoutEffect(create, deps); + } + function useCallback(callback, deps) { + var dispatcher = resolveDispatcher(); + return dispatcher.useCallback(callback, deps); + } + function useMemo(create, deps) { + var dispatcher = resolveDispatcher(); + return dispatcher.useMemo(create, deps); + } + function useImperativeHandle(ref, create, deps) { + var dispatcher = resolveDispatcher(); + return dispatcher.useImperativeHandle(ref, create, deps); + } + function useDebugValue(value, formatterFn) { + { + var dispatcher = resolveDispatcher(); + return dispatcher.useDebugValue(value, formatterFn); + } + } + var disabledDepth = 0; + var prevLog; + var prevInfo; + var prevWarn; + var prevError; + var prevGroup; + var prevGroupCollapsed; + var prevGroupEnd; + function disabledLog() { + } + disabledLog.__reactDisabledLog = true; + function disableLogs() { + { + if (disabledDepth === 0) { + prevLog = console.log; + prevInfo = console.info; + prevWarn = console.warn; + prevError = console.error; + prevGroup = console.group; + prevGroupCollapsed = console.groupCollapsed; + prevGroupEnd = console.groupEnd; + var props = { + configurable: true, + enumerable: true, + value: disabledLog, + writable: true + }; + Object.defineProperties(console, { + info: props, + log: props, + warn: props, + error: props, + group: props, + groupCollapsed: props, + groupEnd: props + }); + } + disabledDepth++; + } + } + function reenableLogs() { + { + disabledDepth--; + if (disabledDepth === 0) { + var props = { + configurable: true, + enumerable: true, + writable: true + }; + Object.defineProperties(console, { + log: _assign({}, props, { + value: prevLog + }), + info: _assign({}, props, { + value: prevInfo + }), + warn: _assign({}, props, { + value: prevWarn + }), + error: _assign({}, props, { + value: prevError + }), + group: _assign({}, props, { + value: prevGroup + }), + groupCollapsed: _assign({}, props, { + value: prevGroupCollapsed + }), + groupEnd: _assign({}, props, { + value: prevGroupEnd + }) + }); + } + if (disabledDepth < 0) { + error("disabledDepth fell below zero. This is a bug in React. Please file an issue."); + } + } + } + var ReactCurrentDispatcher$1 = ReactSharedInternals.ReactCurrentDispatcher; + var prefix; + function describeBuiltInComponentFrame(name, source, ownerFn) { + { + if (prefix === void 0) { + try { + throw Error(); + } catch (x3) { + var match2 = x3.stack.trim().match(/\n( *(at )?)/); + prefix = match2 && match2[1] || ""; + } + } + return "\n" + prefix + name; + } + } + var reentry = false; + var componentFrameCache; + { + var PossiblyWeakMap = typeof WeakMap === "function" ? WeakMap : Map; + componentFrameCache = new PossiblyWeakMap(); + } + function describeNativeComponentFrame(fn, construct) { + if (!fn || reentry) { + return ""; + } + { + var frame = componentFrameCache.get(fn); + if (frame !== void 0) { + return frame; + } + } + var control; + reentry = true; + var previousPrepareStackTrace = Error.prepareStackTrace; + Error.prepareStackTrace = void 0; + var previousDispatcher; + { + previousDispatcher = ReactCurrentDispatcher$1.current; + ReactCurrentDispatcher$1.current = null; + disableLogs(); + } + try { + if (construct) { + var Fake = function() { + throw Error(); + }; + Object.defineProperty(Fake.prototype, "props", { + set: function() { + throw Error(); + } + }); + if (typeof Reflect === "object" && Reflect.construct) { + try { + Reflect.construct(Fake, []); + } catch (x3) { + control = x3; + } + Reflect.construct(fn, [], Fake); + } else { + try { + Fake.call(); + } catch (x3) { + control = x3; + } + fn.call(Fake.prototype); + } + } else { + try { + throw Error(); + } catch (x3) { + control = x3; + } + fn(); + } + } catch (sample) { + if (sample && control && typeof sample.stack === "string") { + var sampleLines = sample.stack.split("\n"); + var controlLines = control.stack.split("\n"); + var s4 = sampleLines.length - 1; + var c3 = controlLines.length - 1; + while (s4 >= 1 && c3 >= 0 && sampleLines[s4] !== controlLines[c3]) { + c3--; + } + for (; s4 >= 1 && c3 >= 0; s4--, c3--) { + if (sampleLines[s4] !== controlLines[c3]) { + if (s4 !== 1 || c3 !== 1) { + do { + s4--; + c3--; + if (c3 < 0 || sampleLines[s4] !== controlLines[c3]) { + var _frame = "\n" + sampleLines[s4].replace(" at new ", " at "); + { + if (typeof fn === "function") { + componentFrameCache.set(fn, _frame); + } + } + return _frame; + } + } while (s4 >= 1 && c3 >= 0); + } + break; + } + } + } + } finally { + reentry = false; + { + ReactCurrentDispatcher$1.current = previousDispatcher; + reenableLogs(); + } + Error.prepareStackTrace = previousPrepareStackTrace; + } + var name = fn ? fn.displayName || fn.name : ""; + var syntheticFrame = name ? describeBuiltInComponentFrame(name) : ""; + { + if (typeof fn === "function") { + componentFrameCache.set(fn, syntheticFrame); + } + } + return syntheticFrame; + } + function describeFunctionComponentFrame(fn, source, ownerFn) { + { + return describeNativeComponentFrame(fn, false); + } + } + function shouldConstruct(Component5) { + var prototype = Component5.prototype; + return !!(prototype && prototype.isReactComponent); + } + function describeUnknownElementTypeFrameInDEV(type, source, ownerFn) { + if (type == null) { + return ""; + } + if (typeof type === "function") { + { + return describeNativeComponentFrame(type, shouldConstruct(type)); + } + } + if (typeof type === "string") { + return describeBuiltInComponentFrame(type); + } + switch (type) { + case exports.Suspense: + return describeBuiltInComponentFrame("Suspense"); + case REACT_SUSPENSE_LIST_TYPE: + return describeBuiltInComponentFrame("SuspenseList"); + } + if (typeof type === "object") { + switch (type.$$typeof) { + case REACT_FORWARD_REF_TYPE: + return describeFunctionComponentFrame(type.render); + case REACT_MEMO_TYPE: + return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn); + case REACT_BLOCK_TYPE: + return describeFunctionComponentFrame(type._render); + case REACT_LAZY_TYPE: { + var lazyComponent = type; + var payload = lazyComponent._payload; + var init = lazyComponent._init; + try { + return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn); + } catch (x3) { + } + } + } + } + return ""; + } + var loggedTypeFailures = {}; + var ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame; + function setCurrentlyValidatingElement(element) { + { + if (element) { + var owner = element._owner; + var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null); + ReactDebugCurrentFrame$1.setExtraStackFrame(stack); + } else { + ReactDebugCurrentFrame$1.setExtraStackFrame(null); + } + } + } + function checkPropTypes(typeSpecs, values, location, componentName, element) { + { + var has = Function.call.bind(Object.prototype.hasOwnProperty); + for (var typeSpecName in typeSpecs) { + if (has(typeSpecs, typeSpecName)) { + var error$1 = void 0; + try { + if (typeof typeSpecs[typeSpecName] !== "function") { + var err = Error((componentName || "React class") + ": " + location + " type `" + typeSpecName + "` is invalid; it must be a function, usually from the `prop-types` package, but received `" + typeof typeSpecs[typeSpecName] + "`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`."); + err.name = "Invariant Violation"; + throw err; + } + error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"); + } catch (ex) { + error$1 = ex; + } + if (error$1 && !(error$1 instanceof Error)) { + setCurrentlyValidatingElement(element); + error("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).", componentName || "React class", location, typeSpecName, typeof error$1); + setCurrentlyValidatingElement(null); + } + if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) { + loggedTypeFailures[error$1.message] = true; + setCurrentlyValidatingElement(element); + error("Failed %s type: %s", location, error$1.message); + setCurrentlyValidatingElement(null); + } + } + } + } + } + function setCurrentlyValidatingElement$1(element) { + { + if (element) { + var owner = element._owner; + var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null); + setExtraStackFrame(stack); + } else { + setExtraStackFrame(null); + } + } + } + var propTypesMisspellWarningShown; + { + propTypesMisspellWarningShown = false; + } + function getDeclarationErrorAddendum() { + if (ReactCurrentOwner.current) { + var name = getComponentName(ReactCurrentOwner.current.type); + if (name) { + return "\n\nCheck the render method of `" + name + "`."; + } + } + return ""; + } + function getSourceInfoErrorAddendum(source) { + if (source !== void 0) { + var fileName = source.fileName.replace(/^.*[\\\/]/, ""); + var lineNumber = source.lineNumber; + return "\n\nCheck your code at " + fileName + ":" + lineNumber + "."; + } + return ""; + } + function getSourceInfoErrorAddendumForProps(elementProps) { + if (elementProps !== null && elementProps !== void 0) { + return getSourceInfoErrorAddendum(elementProps.__source); + } + return ""; + } + var ownerHasKeyUseWarning = {}; + function getCurrentComponentErrorInfo(parentType) { + var info = getDeclarationErrorAddendum(); + if (!info) { + var parentName = typeof parentType === "string" ? parentType : parentType.displayName || parentType.name; + if (parentName) { + info = "\n\nCheck the top-level render call using <" + parentName + ">."; + } + } + return info; + } + function validateExplicitKey(element, parentType) { + if (!element._store || element._store.validated || element.key != null) { + return; + } + element._store.validated = true; + var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType); + if (ownerHasKeyUseWarning[currentComponentErrorInfo]) { + return; + } + ownerHasKeyUseWarning[currentComponentErrorInfo] = true; + var childOwner = ""; + if (element && element._owner && element._owner !== ReactCurrentOwner.current) { + childOwner = " It was passed a child from " + getComponentName(element._owner.type) + "."; + } + { + setCurrentlyValidatingElement$1(element); + error('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner); + setCurrentlyValidatingElement$1(null); + } + } + function validateChildKeys(node, parentType) { + if (typeof node !== "object") { + return; + } + if (Array.isArray(node)) { + for (var i3 = 0; i3 < node.length; i3++) { + var child = node[i3]; + if (isValidElement(child)) { + validateExplicitKey(child, parentType); + } + } + } else if (isValidElement(node)) { + if (node._store) { + node._store.validated = true; + } + } else if (node) { + var iteratorFn = getIteratorFn(node); + if (typeof iteratorFn === "function") { + if (iteratorFn !== node.entries) { + var iterator = iteratorFn.call(node); + var step; + while (!(step = iterator.next()).done) { + if (isValidElement(step.value)) { + validateExplicitKey(step.value, parentType); + } + } + } + } + } + } + function validatePropTypes(element) { + { + var type = element.type; + if (type === null || type === void 0 || typeof type === "string") { + return; + } + var propTypes; + if (typeof type === "function") { + propTypes = type.propTypes; + } else if (typeof type === "object" && (type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_MEMO_TYPE)) { + propTypes = type.propTypes; + } else { + return; + } + if (propTypes) { + var name = getComponentName(type); + checkPropTypes(propTypes, element.props, "prop", name, element); + } else if (type.PropTypes !== void 0 && !propTypesMisspellWarningShown) { + propTypesMisspellWarningShown = true; + var _name = getComponentName(type); + error("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?", _name || "Unknown"); + } + if (typeof type.getDefaultProps === "function" && !type.getDefaultProps.isReactClassApproved) { + error("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead."); + } + } + } + function validateFragmentProps(fragment) { + { + var keys = Object.keys(fragment.props); + for (var i3 = 0; i3 < keys.length; i3++) { + var key = keys[i3]; + if (key !== "children" && key !== "key") { + setCurrentlyValidatingElement$1(fragment); + error("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.", key); + setCurrentlyValidatingElement$1(null); + break; + } + } + if (fragment.ref !== null) { + setCurrentlyValidatingElement$1(fragment); + error("Invalid attribute `ref` supplied to `React.Fragment`."); + setCurrentlyValidatingElement$1(null); + } + } + } + function createElementWithValidation(type, props, children) { + var validType = isValidElementType(type); + if (!validType) { + var info = ""; + if (type === void 0 || typeof type === "object" && type !== null && Object.keys(type).length === 0) { + info += " You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports."; + } + var sourceInfo = getSourceInfoErrorAddendumForProps(props); + if (sourceInfo) { + info += sourceInfo; + } else { + info += getDeclarationErrorAddendum(); + } + var typeString; + if (type === null) { + typeString = "null"; + } else if (Array.isArray(type)) { + typeString = "array"; + } else if (type !== void 0 && type.$$typeof === REACT_ELEMENT_TYPE) { + typeString = "<" + (getComponentName(type.type) || "Unknown") + " />"; + info = " Did you accidentally export a JSX literal instead of a component?"; + } else { + typeString = typeof type; + } + { + error("React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s", typeString, info); + } + } + var element = createElement7.apply(this, arguments); + if (element == null) { + return element; + } + if (validType) { + for (var i3 = 2; i3 < arguments.length; i3++) { + validateChildKeys(arguments[i3], type); + } + } + if (type === exports.Fragment) { + validateFragmentProps(element); + } else { + validatePropTypes(element); + } + return element; + } + var didWarnAboutDeprecatedCreateFactory = false; + function createFactoryWithValidation(type) { + var validatedFactory = createElementWithValidation.bind(null, type); + validatedFactory.type = type; + { + if (!didWarnAboutDeprecatedCreateFactory) { + didWarnAboutDeprecatedCreateFactory = true; + warn("React.createFactory() is deprecated and will be removed in a future major release. Consider using JSX or use React.createElement() directly instead."); + } + Object.defineProperty(validatedFactory, "type", { + enumerable: false, + get: function() { + warn("Factory.type is deprecated. Access the class directly before passing it to createFactory."); + Object.defineProperty(this, "type", { + value: type + }); + return type; + } + }); + } + return validatedFactory; + } + function cloneElementWithValidation(element, props, children) { + var newElement = cloneElement.apply(this, arguments); + for (var i3 = 2; i3 < arguments.length; i3++) { + validateChildKeys(arguments[i3], newElement.type); + } + validatePropTypes(newElement); + return newElement; + } + { + try { + var frozenObject = Object.freeze({}); + new Map([[frozenObject, null]]); + new Set([frozenObject]); + } catch (e3) { + } + } + var createElement$1 = createElementWithValidation; + var cloneElement$1 = cloneElementWithValidation; + var createFactory = createFactoryWithValidation; + var Children = { + map: mapChildren, + forEach: forEachChildren, + count: countChildren, + toArray: toArray2, + only: onlyChild + }; + exports.Children = Children; + exports.Component = Component4; + exports.PureComponent = PureComponent2; + exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ReactSharedInternals; + exports.cloneElement = cloneElement$1; + exports.createContext = createContext3; + exports.createElement = createElement$1; + exports.createFactory = createFactory; + exports.createRef = createRef2; + exports.forwardRef = forwardRef; + exports.isValidElement = isValidElement; + exports.lazy = lazy; + exports.memo = memo; + exports.useCallback = useCallback; + exports.useContext = useContext; + exports.useDebugValue = useDebugValue; + exports.useEffect = useEffect2; + exports.useImperativeHandle = useImperativeHandle; + exports.useLayoutEffect = useLayoutEffect; + exports.useMemo = useMemo; + exports.useReducer = useReducer; + exports.useRef = useRef2; + exports.useState = useState3; + exports.version = ReactVersion; + })(); + } + } +}); + +// node_modules/react/index.js +var require_react = __commonJS({ + "node_modules/react/index.js"(exports, module2) { + "use strict"; + if (false) { + module2.exports = null; + } else { + module2.exports = require_react_development(); + } + } +}); + +// node_modules/scheduler/cjs/scheduler.development.js +var require_scheduler_development = __commonJS({ + "node_modules/scheduler/cjs/scheduler.development.js"(exports) { + "use strict"; + if (true) { + (function() { + "use strict"; + var enableSchedulerDebugging = false; + var enableProfiling = false; + var requestHostCallback; + var requestHostTimeout; + var cancelHostTimeout; + var requestPaint; + var hasPerformanceNow = typeof performance === "object" && typeof performance.now === "function"; + if (hasPerformanceNow) { + var localPerformance = performance; + exports.unstable_now = function() { + return localPerformance.now(); + }; + } else { + var localDate = Date; + var initialTime = localDate.now(); + exports.unstable_now = function() { + return localDate.now() - initialTime; + }; + } + if (typeof window === "undefined" || typeof MessageChannel !== "function") { + var _callback = null; + var _timeoutID = null; + var _flushCallback = function() { + if (_callback !== null) { + try { + var currentTime = exports.unstable_now(); + var hasRemainingTime = true; + _callback(hasRemainingTime, currentTime); + _callback = null; + } catch (e3) { + setTimeout(_flushCallback, 0); + throw e3; + } + } + }; + requestHostCallback = function(cb) { + if (_callback !== null) { + setTimeout(requestHostCallback, 0, cb); + } else { + _callback = cb; + setTimeout(_flushCallback, 0); + } + }; + requestHostTimeout = function(cb, ms) { + _timeoutID = setTimeout(cb, ms); + }; + cancelHostTimeout = function() { + clearTimeout(_timeoutID); + }; + exports.unstable_shouldYield = function() { + return false; + }; + requestPaint = exports.unstable_forceFrameRate = function() { + }; + } else { + var _setTimeout = window.setTimeout; + var _clearTimeout = window.clearTimeout; + if (typeof console !== "undefined") { + var requestAnimationFrame2 = window.requestAnimationFrame; + var cancelAnimationFrame2 = window.cancelAnimationFrame; + if (typeof requestAnimationFrame2 !== "function") { + console["error"]("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"); + } + if (typeof cancelAnimationFrame2 !== "function") { + console["error"]("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"); + } + } + var isMessageLoopRunning = false; + var scheduledHostCallback = null; + var taskTimeoutID = -1; + var yieldInterval = 5; + var deadline = 0; + { + exports.unstable_shouldYield = function() { + return exports.unstable_now() >= deadline; + }; + requestPaint = function() { + }; + } + exports.unstable_forceFrameRate = function(fps) { + if (fps < 0 || fps > 125) { + console["error"]("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"); + return; + } + if (fps > 0) { + yieldInterval = Math.floor(1e3 / fps); + } else { + yieldInterval = 5; + } + }; + var performWorkUntilDeadline = function() { + if (scheduledHostCallback !== null) { + var currentTime = exports.unstable_now(); + deadline = currentTime + yieldInterval; + var hasTimeRemaining = true; + try { + var hasMoreWork = scheduledHostCallback(hasTimeRemaining, currentTime); + if (!hasMoreWork) { + isMessageLoopRunning = false; + scheduledHostCallback = null; + } else { + port.postMessage(null); + } + } catch (error) { + port.postMessage(null); + throw error; + } + } else { + isMessageLoopRunning = false; + } + }; + var channel = new MessageChannel(); + var port = channel.port2; + channel.port1.onmessage = performWorkUntilDeadline; + requestHostCallback = function(callback) { + scheduledHostCallback = callback; + if (!isMessageLoopRunning) { + isMessageLoopRunning = true; + port.postMessage(null); + } + }; + requestHostTimeout = function(callback, ms) { + taskTimeoutID = _setTimeout(function() { + callback(exports.unstable_now()); + }, ms); + }; + cancelHostTimeout = function() { + _clearTimeout(taskTimeoutID); + taskTimeoutID = -1; + }; + } + function push(heap, node) { + var index = heap.length; + heap.push(node); + siftUp(heap, node, index); + } + function peek(heap) { + var first = heap[0]; + return first === void 0 ? null : first; + } + function pop(heap) { + var first = heap[0]; + if (first !== void 0) { + var last = heap.pop(); + if (last !== first) { + heap[0] = last; + siftDown(heap, last, 0); + } + return first; + } else { + return null; + } + } + function siftUp(heap, node, i3) { + var index = i3; + while (true) { + var parentIndex = index - 1 >>> 1; + var parent = heap[parentIndex]; + if (parent !== void 0 && compare(parent, node) > 0) { + heap[parentIndex] = node; + heap[index] = parent; + index = parentIndex; + } else { + return; + } + } + } + function siftDown(heap, node, i3) { + var index = i3; + var length = heap.length; + while (index < length) { + var leftIndex = (index + 1) * 2 - 1; + var left = heap[leftIndex]; + var rightIndex = leftIndex + 1; + var right = heap[rightIndex]; + if (left !== void 0 && compare(left, node) < 0) { + if (right !== void 0 && compare(right, left) < 0) { + heap[index] = right; + heap[rightIndex] = node; + index = rightIndex; + } else { + heap[index] = left; + heap[leftIndex] = node; + index = leftIndex; + } + } else if (right !== void 0 && compare(right, node) < 0) { + heap[index] = right; + heap[rightIndex] = node; + index = rightIndex; + } else { + return; + } + } + } + function compare(a3, b3) { + var diff = a3.sortIndex - b3.sortIndex; + return diff !== 0 ? diff : a3.id - b3.id; + } + var ImmediatePriority = 1; + var UserBlockingPriority = 2; + var NormalPriority = 3; + var LowPriority = 4; + var IdlePriority = 5; + function markTaskErrored(task, ms) { + } + var maxSigned31BitInt = 1073741823; + var IMMEDIATE_PRIORITY_TIMEOUT = -1; + var USER_BLOCKING_PRIORITY_TIMEOUT = 250; + var NORMAL_PRIORITY_TIMEOUT = 5e3; + var LOW_PRIORITY_TIMEOUT = 1e4; + var IDLE_PRIORITY_TIMEOUT = maxSigned31BitInt; + var taskQueue = []; + var timerQueue = []; + var taskIdCounter = 1; + var currentTask = null; + var currentPriorityLevel = NormalPriority; + var isPerformingWork = false; + var isHostCallbackScheduled = false; + var isHostTimeoutScheduled = false; + function advanceTimers(currentTime) { + var timer = peek(timerQueue); + while (timer !== null) { + if (timer.callback === null) { + pop(timerQueue); + } else if (timer.startTime <= currentTime) { + pop(timerQueue); + timer.sortIndex = timer.expirationTime; + push(taskQueue, timer); + } else { + return; + } + timer = peek(timerQueue); + } + } + function handleTimeout(currentTime) { + isHostTimeoutScheduled = false; + advanceTimers(currentTime); + if (!isHostCallbackScheduled) { + if (peek(taskQueue) !== null) { + isHostCallbackScheduled = true; + requestHostCallback(flushWork); + } else { + var firstTimer = peek(timerQueue); + if (firstTimer !== null) { + requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime); + } + } + } + } + function flushWork(hasTimeRemaining, initialTime2) { + isHostCallbackScheduled = false; + if (isHostTimeoutScheduled) { + isHostTimeoutScheduled = false; + cancelHostTimeout(); + } + isPerformingWork = true; + var previousPriorityLevel = currentPriorityLevel; + try { + if (enableProfiling) { + try { + return workLoop(hasTimeRemaining, initialTime2); + } catch (error) { + if (currentTask !== null) { + var currentTime = exports.unstable_now(); + markTaskErrored(currentTask, currentTime); + currentTask.isQueued = false; + } + throw error; + } + } else { + return workLoop(hasTimeRemaining, initialTime2); + } + } finally { + currentTask = null; + currentPriorityLevel = previousPriorityLevel; + isPerformingWork = false; + } + } + function workLoop(hasTimeRemaining, initialTime2) { + var currentTime = initialTime2; + advanceTimers(currentTime); + currentTask = peek(taskQueue); + while (currentTask !== null && !enableSchedulerDebugging) { + if (currentTask.expirationTime > currentTime && (!hasTimeRemaining || exports.unstable_shouldYield())) { + break; + } + var callback = currentTask.callback; + if (typeof callback === "function") { + currentTask.callback = null; + currentPriorityLevel = currentTask.priorityLevel; + var didUserCallbackTimeout = currentTask.expirationTime <= currentTime; + var continuationCallback = callback(didUserCallbackTimeout); + currentTime = exports.unstable_now(); + if (typeof continuationCallback === "function") { + currentTask.callback = continuationCallback; + } else { + if (currentTask === peek(taskQueue)) { + pop(taskQueue); + } + } + advanceTimers(currentTime); + } else { + pop(taskQueue); + } + currentTask = peek(taskQueue); + } + if (currentTask !== null) { + return true; + } else { + var firstTimer = peek(timerQueue); + if (firstTimer !== null) { + requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime); + } + return false; + } + } + function unstable_runWithPriority(priorityLevel, eventHandler) { + switch (priorityLevel) { + case ImmediatePriority: + case UserBlockingPriority: + case NormalPriority: + case LowPriority: + case IdlePriority: + break; + default: + priorityLevel = NormalPriority; + } + var previousPriorityLevel = currentPriorityLevel; + currentPriorityLevel = priorityLevel; + try { + return eventHandler(); + } finally { + currentPriorityLevel = previousPriorityLevel; + } + } + function unstable_next(eventHandler) { + var priorityLevel; + switch (currentPriorityLevel) { + case ImmediatePriority: + case UserBlockingPriority: + case NormalPriority: + priorityLevel = NormalPriority; + break; + default: + priorityLevel = currentPriorityLevel; + break; + } + var previousPriorityLevel = currentPriorityLevel; + currentPriorityLevel = priorityLevel; + try { + return eventHandler(); + } finally { + currentPriorityLevel = previousPriorityLevel; + } + } + function unstable_wrapCallback(callback) { + var parentPriorityLevel = currentPriorityLevel; + return function() { + var previousPriorityLevel = currentPriorityLevel; + currentPriorityLevel = parentPriorityLevel; + try { + return callback.apply(this, arguments); + } finally { + currentPriorityLevel = previousPriorityLevel; + } + }; + } + function unstable_scheduleCallback(priorityLevel, callback, options) { + var currentTime = exports.unstable_now(); + var startTime; + if (typeof options === "object" && options !== null) { + var delay = options.delay; + if (typeof delay === "number" && delay > 0) { + startTime = currentTime + delay; + } else { + startTime = currentTime; + } + } else { + startTime = currentTime; + } + var timeout; + switch (priorityLevel) { + case ImmediatePriority: + timeout = IMMEDIATE_PRIORITY_TIMEOUT; + break; + case UserBlockingPriority: + timeout = USER_BLOCKING_PRIORITY_TIMEOUT; + break; + case IdlePriority: + timeout = IDLE_PRIORITY_TIMEOUT; + break; + case LowPriority: + timeout = LOW_PRIORITY_TIMEOUT; + break; + case NormalPriority: + default: + timeout = NORMAL_PRIORITY_TIMEOUT; + break; + } + var expirationTime = startTime + timeout; + var newTask = { + id: taskIdCounter++, + callback, + priorityLevel, + startTime, + expirationTime, + sortIndex: -1 + }; + if (startTime > currentTime) { + newTask.sortIndex = startTime; + push(timerQueue, newTask); + if (peek(taskQueue) === null && newTask === peek(timerQueue)) { + if (isHostTimeoutScheduled) { + cancelHostTimeout(); + } else { + isHostTimeoutScheduled = true; + } + requestHostTimeout(handleTimeout, startTime - currentTime); + } + } else { + newTask.sortIndex = expirationTime; + push(taskQueue, newTask); + if (!isHostCallbackScheduled && !isPerformingWork) { + isHostCallbackScheduled = true; + requestHostCallback(flushWork); + } + } + return newTask; + } + function unstable_pauseExecution() { + } + function unstable_continueExecution() { + if (!isHostCallbackScheduled && !isPerformingWork) { + isHostCallbackScheduled = true; + requestHostCallback(flushWork); + } + } + function unstable_getFirstCallbackNode() { + return peek(taskQueue); + } + function unstable_cancelCallback(task) { + task.callback = null; + } + function unstable_getCurrentPriorityLevel() { + return currentPriorityLevel; + } + var unstable_requestPaint = requestPaint; + var unstable_Profiling = null; + exports.unstable_IdlePriority = IdlePriority; + exports.unstable_ImmediatePriority = ImmediatePriority; + exports.unstable_LowPriority = LowPriority; + exports.unstable_NormalPriority = NormalPriority; + exports.unstable_Profiling = unstable_Profiling; + exports.unstable_UserBlockingPriority = UserBlockingPriority; + exports.unstable_cancelCallback = unstable_cancelCallback; + exports.unstable_continueExecution = unstable_continueExecution; + exports.unstable_getCurrentPriorityLevel = unstable_getCurrentPriorityLevel; + exports.unstable_getFirstCallbackNode = unstable_getFirstCallbackNode; + exports.unstable_next = unstable_next; + exports.unstable_pauseExecution = unstable_pauseExecution; + exports.unstable_requestPaint = unstable_requestPaint; + exports.unstable_runWithPriority = unstable_runWithPriority; + exports.unstable_scheduleCallback = unstable_scheduleCallback; + exports.unstable_wrapCallback = unstable_wrapCallback; + })(); + } + } +}); + +// node_modules/scheduler/index.js +var require_scheduler = __commonJS({ + "node_modules/scheduler/index.js"(exports, module2) { + "use strict"; + if (false) { + module2.exports = null; + } else { + module2.exports = require_scheduler_development(); + } + } +}); + +// node_modules/scheduler/cjs/scheduler-tracing.development.js +var require_scheduler_tracing_development = __commonJS({ + "node_modules/scheduler/cjs/scheduler-tracing.development.js"(exports) { + "use strict"; + if (true) { + (function() { + "use strict"; + var DEFAULT_THREAD_ID = 0; + var interactionIDCounter = 0; + var threadIDCounter = 0; + exports.__interactionsRef = null; + exports.__subscriberRef = null; + { + exports.__interactionsRef = { + current: new Set() + }; + exports.__subscriberRef = { + current: null + }; + } + function unstable_clear(callback) { + var prevInteractions = exports.__interactionsRef.current; + exports.__interactionsRef.current = new Set(); + try { + return callback(); + } finally { + exports.__interactionsRef.current = prevInteractions; + } + } + function unstable_getCurrent() { + { + return exports.__interactionsRef.current; + } + } + function unstable_getThreadID() { + return ++threadIDCounter; + } + function unstable_trace(name, timestamp, callback) { + var threadID = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : DEFAULT_THREAD_ID; + var interaction = { + __count: 1, + id: interactionIDCounter++, + name, + timestamp + }; + var prevInteractions = exports.__interactionsRef.current; + var interactions = new Set(prevInteractions); + interactions.add(interaction); + exports.__interactionsRef.current = interactions; + var subscriber = exports.__subscriberRef.current; + var returnValue; + try { + if (subscriber !== null) { + subscriber.onInteractionTraced(interaction); + } + } finally { + try { + if (subscriber !== null) { + subscriber.onWorkStarted(interactions, threadID); + } + } finally { + try { + returnValue = callback(); + } finally { + exports.__interactionsRef.current = prevInteractions; + try { + if (subscriber !== null) { + subscriber.onWorkStopped(interactions, threadID); + } + } finally { + interaction.__count--; + if (subscriber !== null && interaction.__count === 0) { + subscriber.onInteractionScheduledWorkCompleted(interaction); + } + } + } + } + } + return returnValue; + } + function unstable_wrap(callback) { + var threadID = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : DEFAULT_THREAD_ID; + var wrappedInteractions = exports.__interactionsRef.current; + var subscriber = exports.__subscriberRef.current; + if (subscriber !== null) { + subscriber.onWorkScheduled(wrappedInteractions, threadID); + } + wrappedInteractions.forEach(function(interaction) { + interaction.__count++; + }); + var hasRun = false; + function wrapped() { + var prevInteractions = exports.__interactionsRef.current; + exports.__interactionsRef.current = wrappedInteractions; + subscriber = exports.__subscriberRef.current; + try { + var returnValue; + try { + if (subscriber !== null) { + subscriber.onWorkStarted(wrappedInteractions, threadID); + } + } finally { + try { + returnValue = callback.apply(void 0, arguments); + } finally { + exports.__interactionsRef.current = prevInteractions; + if (subscriber !== null) { + subscriber.onWorkStopped(wrappedInteractions, threadID); + } + } + } + return returnValue; + } finally { + if (!hasRun) { + hasRun = true; + wrappedInteractions.forEach(function(interaction) { + interaction.__count--; + if (subscriber !== null && interaction.__count === 0) { + subscriber.onInteractionScheduledWorkCompleted(interaction); + } + }); + } + } + } + wrapped.cancel = function cancel() { + subscriber = exports.__subscriberRef.current; + try { + if (subscriber !== null) { + subscriber.onWorkCanceled(wrappedInteractions, threadID); + } + } finally { + wrappedInteractions.forEach(function(interaction) { + interaction.__count--; + if (subscriber && interaction.__count === 0) { + subscriber.onInteractionScheduledWorkCompleted(interaction); + } + }); + } + }; + return wrapped; + } + var subscribers = null; + { + subscribers = new Set(); + } + function unstable_subscribe(subscriber) { + { + subscribers.add(subscriber); + if (subscribers.size === 1) { + exports.__subscriberRef.current = { + onInteractionScheduledWorkCompleted, + onInteractionTraced, + onWorkCanceled, + onWorkScheduled, + onWorkStarted, + onWorkStopped + }; + } + } + } + function unstable_unsubscribe(subscriber) { + { + subscribers.delete(subscriber); + if (subscribers.size === 0) { + exports.__subscriberRef.current = null; + } + } + } + function onInteractionTraced(interaction) { + var didCatchError = false; + var caughtError = null; + subscribers.forEach(function(subscriber) { + try { + subscriber.onInteractionTraced(interaction); + } catch (error) { + if (!didCatchError) { + didCatchError = true; + caughtError = error; + } + } + }); + if (didCatchError) { + throw caughtError; + } + } + function onInteractionScheduledWorkCompleted(interaction) { + var didCatchError = false; + var caughtError = null; + subscribers.forEach(function(subscriber) { + try { + subscriber.onInteractionScheduledWorkCompleted(interaction); + } catch (error) { + if (!didCatchError) { + didCatchError = true; + caughtError = error; + } + } + }); + if (didCatchError) { + throw caughtError; + } + } + function onWorkScheduled(interactions, threadID) { + var didCatchError = false; + var caughtError = null; + subscribers.forEach(function(subscriber) { + try { + subscriber.onWorkScheduled(interactions, threadID); + } catch (error) { + if (!didCatchError) { + didCatchError = true; + caughtError = error; + } + } + }); + if (didCatchError) { + throw caughtError; + } + } + function onWorkStarted(interactions, threadID) { + var didCatchError = false; + var caughtError = null; + subscribers.forEach(function(subscriber) { + try { + subscriber.onWorkStarted(interactions, threadID); + } catch (error) { + if (!didCatchError) { + didCatchError = true; + caughtError = error; + } + } + }); + if (didCatchError) { + throw caughtError; + } + } + function onWorkStopped(interactions, threadID) { + var didCatchError = false; + var caughtError = null; + subscribers.forEach(function(subscriber) { + try { + subscriber.onWorkStopped(interactions, threadID); + } catch (error) { + if (!didCatchError) { + didCatchError = true; + caughtError = error; + } + } + }); + if (didCatchError) { + throw caughtError; + } + } + function onWorkCanceled(interactions, threadID) { + var didCatchError = false; + var caughtError = null; + subscribers.forEach(function(subscriber) { + try { + subscriber.onWorkCanceled(interactions, threadID); + } catch (error) { + if (!didCatchError) { + didCatchError = true; + caughtError = error; + } + } + }); + if (didCatchError) { + throw caughtError; + } + } + exports.unstable_clear = unstable_clear; + exports.unstable_getCurrent = unstable_getCurrent; + exports.unstable_getThreadID = unstable_getThreadID; + exports.unstable_subscribe = unstable_subscribe; + exports.unstable_trace = unstable_trace; + exports.unstable_unsubscribe = unstable_unsubscribe; + exports.unstable_wrap = unstable_wrap; + })(); + } + } +}); + +// node_modules/scheduler/tracing.js +var require_tracing = __commonJS({ + "node_modules/scheduler/tracing.js"(exports, module2) { + "use strict"; + if (false) { + module2.exports = null; + } else { + module2.exports = require_scheduler_tracing_development(); + } + } +}); + +// node_modules/react-dom/cjs/react-dom.development.js +var require_react_dom_development = __commonJS({ + "node_modules/react-dom/cjs/react-dom.development.js"(exports) { + "use strict"; + if (true) { + (function() { + "use strict"; + var React5 = require_react(); + var _assign = require_object_assign(); + var Scheduler = require_scheduler(); + var tracing = require_tracing(); + var ReactSharedInternals = React5.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED; + function warn(format) { + { + for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + printWarning("warn", format, args); + } + } + function error(format) { + { + for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { + args[_key2 - 1] = arguments[_key2]; + } + printWarning("error", format, args); + } + } + function printWarning(level, format, args) { + { + var ReactDebugCurrentFrame2 = ReactSharedInternals.ReactDebugCurrentFrame; + var stack = ReactDebugCurrentFrame2.getStackAddendum(); + if (stack !== "") { + format += "%s"; + args = args.concat([stack]); + } + var argsWithFormat = args.map(function(item) { + return "" + item; + }); + argsWithFormat.unshift("Warning: " + format); + Function.prototype.apply.call(console[level], console, argsWithFormat); + } + } + if (!React5) { + { + throw Error("ReactDOM was loaded before React. Make sure you load the React package before loading ReactDOM."); + } + } + var FunctionComponent = 0; + var ClassComponent = 1; + var IndeterminateComponent = 2; + var HostRoot = 3; + var HostPortal = 4; + var HostComponent = 5; + var HostText = 6; + var Fragment3 = 7; + var Mode = 8; + var ContextConsumer = 9; + var ContextProvider = 10; + var ForwardRef = 11; + var Profiler = 12; + var SuspenseComponent = 13; + var MemoComponent = 14; + var SimpleMemoComponent = 15; + var LazyComponent = 16; + var IncompleteClassComponent = 17; + var DehydratedFragment = 18; + var SuspenseListComponent = 19; + var FundamentalComponent = 20; + var ScopeComponent = 21; + var Block = 22; + var OffscreenComponent = 23; + var LegacyHiddenComponent = 24; + var enableProfilerTimer = true; + var enableFundamentalAPI = false; + var enableNewReconciler = false; + var warnAboutStringRefs = false; + var allNativeEvents = new Set(); + var registrationNameDependencies = {}; + var possibleRegistrationNames = {}; + function registerTwoPhaseEvent(registrationName, dependencies) { + registerDirectEvent(registrationName, dependencies); + registerDirectEvent(registrationName + "Capture", dependencies); + } + function registerDirectEvent(registrationName, dependencies) { + { + if (registrationNameDependencies[registrationName]) { + error("EventRegistry: More than one plugin attempted to publish the same registration name, `%s`.", registrationName); + } + } + registrationNameDependencies[registrationName] = dependencies; + { + var lowerCasedName = registrationName.toLowerCase(); + possibleRegistrationNames[lowerCasedName] = registrationName; + if (registrationName === "onDoubleClick") { + possibleRegistrationNames.ondblclick = registrationName; + } + } + for (var i3 = 0; i3 < dependencies.length; i3++) { + allNativeEvents.add(dependencies[i3]); + } + } + var canUseDOM = !!(typeof window !== "undefined" && typeof window.document !== "undefined" && typeof window.document.createElement !== "undefined"); + var RESERVED = 0; + var STRING = 1; + var BOOLEANISH_STRING = 2; + var BOOLEAN = 3; + var OVERLOADED_BOOLEAN = 4; + var NUMERIC = 5; + var POSITIVE_NUMERIC = 6; + var ATTRIBUTE_NAME_START_CHAR = ":A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD"; + var ATTRIBUTE_NAME_CHAR = ATTRIBUTE_NAME_START_CHAR + "\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040"; + var ROOT_ATTRIBUTE_NAME = "data-reactroot"; + var VALID_ATTRIBUTE_NAME_REGEX = new RegExp("^[" + ATTRIBUTE_NAME_START_CHAR + "][" + ATTRIBUTE_NAME_CHAR + "]*$"); + var hasOwnProperty3 = Object.prototype.hasOwnProperty; + var illegalAttributeNameCache = {}; + var validatedAttributeNameCache = {}; + function isAttributeNameSafe(attributeName) { + if (hasOwnProperty3.call(validatedAttributeNameCache, attributeName)) { + return true; + } + if (hasOwnProperty3.call(illegalAttributeNameCache, attributeName)) { + return false; + } + if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) { + validatedAttributeNameCache[attributeName] = true; + return true; + } + illegalAttributeNameCache[attributeName] = true; + { + error("Invalid attribute name: `%s`", attributeName); + } + return false; + } + function shouldIgnoreAttribute(name, propertyInfo, isCustomComponentTag) { + if (propertyInfo !== null) { + return propertyInfo.type === RESERVED; + } + if (isCustomComponentTag) { + return false; + } + if (name.length > 2 && (name[0] === "o" || name[0] === "O") && (name[1] === "n" || name[1] === "N")) { + return true; + } + return false; + } + function shouldRemoveAttributeWithWarning(name, value, propertyInfo, isCustomComponentTag) { + if (propertyInfo !== null && propertyInfo.type === RESERVED) { + return false; + } + switch (typeof value) { + case "function": + case "symbol": + return true; + case "boolean": { + if (isCustomComponentTag) { + return false; + } + if (propertyInfo !== null) { + return !propertyInfo.acceptsBooleans; + } else { + var prefix2 = name.toLowerCase().slice(0, 5); + return prefix2 !== "data-" && prefix2 !== "aria-"; + } + } + default: + return false; + } + } + function shouldRemoveAttribute(name, value, propertyInfo, isCustomComponentTag) { + if (value === null || typeof value === "undefined") { + return true; + } + if (shouldRemoveAttributeWithWarning(name, value, propertyInfo, isCustomComponentTag)) { + return true; + } + if (isCustomComponentTag) { + return false; + } + if (propertyInfo !== null) { + switch (propertyInfo.type) { + case BOOLEAN: + return !value; + case OVERLOADED_BOOLEAN: + return value === false; + case NUMERIC: + return isNaN(value); + case POSITIVE_NUMERIC: + return isNaN(value) || value < 1; + } + } + return false; + } + function getPropertyInfo(name) { + return properties.hasOwnProperty(name) ? properties[name] : null; + } + function PropertyInfoRecord(name, type, mustUseProperty, attributeName, attributeNamespace, sanitizeURL2, removeEmptyString) { + this.acceptsBooleans = type === BOOLEANISH_STRING || type === BOOLEAN || type === OVERLOADED_BOOLEAN; + this.attributeName = attributeName; + this.attributeNamespace = attributeNamespace; + this.mustUseProperty = mustUseProperty; + this.propertyName = name; + this.type = type; + this.sanitizeURL = sanitizeURL2; + this.removeEmptyString = removeEmptyString; + } + var properties = {}; + var reservedProps = [ + "children", + "dangerouslySetInnerHTML", + "defaultValue", + "defaultChecked", + "innerHTML", + "suppressContentEditableWarning", + "suppressHydrationWarning", + "style" + ]; + reservedProps.forEach(function(name) { + properties[name] = new PropertyInfoRecord(name, RESERVED, false, name, null, false, false); + }); + [["acceptCharset", "accept-charset"], ["className", "class"], ["htmlFor", "for"], ["httpEquiv", "http-equiv"]].forEach(function(_ref) { + var name = _ref[0], attributeName = _ref[1]; + properties[name] = new PropertyInfoRecord(name, STRING, false, attributeName, null, false, false); + }); + ["contentEditable", "draggable", "spellCheck", "value"].forEach(function(name) { + properties[name] = new PropertyInfoRecord(name, BOOLEANISH_STRING, false, name.toLowerCase(), null, false, false); + }); + ["autoReverse", "externalResourcesRequired", "focusable", "preserveAlpha"].forEach(function(name) { + properties[name] = new PropertyInfoRecord(name, BOOLEANISH_STRING, false, name, null, false, false); + }); + [ + "allowFullScreen", + "async", + "autoFocus", + "autoPlay", + "controls", + "default", + "defer", + "disabled", + "disablePictureInPicture", + "disableRemotePlayback", + "formNoValidate", + "hidden", + "loop", + "noModule", + "noValidate", + "open", + "playsInline", + "readOnly", + "required", + "reversed", + "scoped", + "seamless", + "itemScope" + ].forEach(function(name) { + properties[name] = new PropertyInfoRecord(name, BOOLEAN, false, name.toLowerCase(), null, false, false); + }); + [ + "checked", + "multiple", + "muted", + "selected" + ].forEach(function(name) { + properties[name] = new PropertyInfoRecord(name, BOOLEAN, true, name, null, false, false); + }); + [ + "capture", + "download" + ].forEach(function(name) { + properties[name] = new PropertyInfoRecord(name, OVERLOADED_BOOLEAN, false, name, null, false, false); + }); + [ + "cols", + "rows", + "size", + "span" + ].forEach(function(name) { + properties[name] = new PropertyInfoRecord(name, POSITIVE_NUMERIC, false, name, null, false, false); + }); + ["rowSpan", "start"].forEach(function(name) { + properties[name] = new PropertyInfoRecord(name, NUMERIC, false, name.toLowerCase(), null, false, false); + }); + var CAMELIZE = /[\-\:]([a-z])/g; + var capitalize = function(token) { + return token[1].toUpperCase(); + }; + [ + "accent-height", + "alignment-baseline", + "arabic-form", + "baseline-shift", + "cap-height", + "clip-path", + "clip-rule", + "color-interpolation", + "color-interpolation-filters", + "color-profile", + "color-rendering", + "dominant-baseline", + "enable-background", + "fill-opacity", + "fill-rule", + "flood-color", + "flood-opacity", + "font-family", + "font-size", + "font-size-adjust", + "font-stretch", + "font-style", + "font-variant", + "font-weight", + "glyph-name", + "glyph-orientation-horizontal", + "glyph-orientation-vertical", + "horiz-adv-x", + "horiz-origin-x", + "image-rendering", + "letter-spacing", + "lighting-color", + "marker-end", + "marker-mid", + "marker-start", + "overline-position", + "overline-thickness", + "paint-order", + "panose-1", + "pointer-events", + "rendering-intent", + "shape-rendering", + "stop-color", + "stop-opacity", + "strikethrough-position", + "strikethrough-thickness", + "stroke-dasharray", + "stroke-dashoffset", + "stroke-linecap", + "stroke-linejoin", + "stroke-miterlimit", + "stroke-opacity", + "stroke-width", + "text-anchor", + "text-decoration", + "text-rendering", + "underline-position", + "underline-thickness", + "unicode-bidi", + "unicode-range", + "units-per-em", + "v-alphabetic", + "v-hanging", + "v-ideographic", + "v-mathematical", + "vector-effect", + "vert-adv-y", + "vert-origin-x", + "vert-origin-y", + "word-spacing", + "writing-mode", + "xmlns:xlink", + "x-height" + ].forEach(function(attributeName) { + var name = attributeName.replace(CAMELIZE, capitalize); + properties[name] = new PropertyInfoRecord(name, STRING, false, attributeName, null, false, false); + }); + [ + "xlink:actuate", + "xlink:arcrole", + "xlink:role", + "xlink:show", + "xlink:title", + "xlink:type" + ].forEach(function(attributeName) { + var name = attributeName.replace(CAMELIZE, capitalize); + properties[name] = new PropertyInfoRecord(name, STRING, false, attributeName, "http://www.w3.org/1999/xlink", false, false); + }); + [ + "xml:base", + "xml:lang", + "xml:space" + ].forEach(function(attributeName) { + var name = attributeName.replace(CAMELIZE, capitalize); + properties[name] = new PropertyInfoRecord(name, STRING, false, attributeName, "http://www.w3.org/XML/1998/namespace", false, false); + }); + ["tabIndex", "crossOrigin"].forEach(function(attributeName) { + properties[attributeName] = new PropertyInfoRecord(attributeName, STRING, false, attributeName.toLowerCase(), null, false, false); + }); + var xlinkHref = "xlinkHref"; + properties[xlinkHref] = new PropertyInfoRecord("xlinkHref", STRING, false, "xlink:href", "http://www.w3.org/1999/xlink", true, false); + ["src", "href", "action", "formAction"].forEach(function(attributeName) { + properties[attributeName] = new PropertyInfoRecord(attributeName, STRING, false, attributeName.toLowerCase(), null, true, true); + }); + var isJavaScriptProtocol = /^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*\:/i; + var didWarn = false; + function sanitizeURL(url) { + { + if (!didWarn && isJavaScriptProtocol.test(url)) { + didWarn = true; + error("A future version of React will block javascript: URLs as a security precaution. Use event handlers instead if you can. If you need to generate unsafe HTML try using dangerouslySetInnerHTML instead. React was passed %s.", JSON.stringify(url)); + } + } + } + function getValueForProperty(node, name, expected, propertyInfo) { + { + if (propertyInfo.mustUseProperty) { + var propertyName = propertyInfo.propertyName; + return node[propertyName]; + } else { + if (propertyInfo.sanitizeURL) { + sanitizeURL("" + expected); + } + var attributeName = propertyInfo.attributeName; + var stringValue = null; + if (propertyInfo.type === OVERLOADED_BOOLEAN) { + if (node.hasAttribute(attributeName)) { + var value = node.getAttribute(attributeName); + if (value === "") { + return true; + } + if (shouldRemoveAttribute(name, expected, propertyInfo, false)) { + return value; + } + if (value === "" + expected) { + return expected; + } + return value; + } + } else if (node.hasAttribute(attributeName)) { + if (shouldRemoveAttribute(name, expected, propertyInfo, false)) { + return node.getAttribute(attributeName); + } + if (propertyInfo.type === BOOLEAN) { + return expected; + } + stringValue = node.getAttribute(attributeName); + } + if (shouldRemoveAttribute(name, expected, propertyInfo, false)) { + return stringValue === null ? expected : stringValue; + } else if (stringValue === "" + expected) { + return expected; + } else { + return stringValue; + } + } + } + } + function getValueForAttribute(node, name, expected) { + { + if (!isAttributeNameSafe(name)) { + return; + } + if (isOpaqueHydratingObject(expected)) { + return expected; + } + if (!node.hasAttribute(name)) { + return expected === void 0 ? void 0 : null; + } + var value = node.getAttribute(name); + if (value === "" + expected) { + return expected; + } + return value; + } + } + function setValueForProperty(node, name, value, isCustomComponentTag) { + var propertyInfo = getPropertyInfo(name); + if (shouldIgnoreAttribute(name, propertyInfo, isCustomComponentTag)) { + return; + } + if (shouldRemoveAttribute(name, value, propertyInfo, isCustomComponentTag)) { + value = null; + } + if (isCustomComponentTag || propertyInfo === null) { + if (isAttributeNameSafe(name)) { + var _attributeName = name; + if (value === null) { + node.removeAttribute(_attributeName); + } else { + node.setAttribute(_attributeName, "" + value); + } + } + return; + } + var mustUseProperty = propertyInfo.mustUseProperty; + if (mustUseProperty) { + var propertyName = propertyInfo.propertyName; + if (value === null) { + var type = propertyInfo.type; + node[propertyName] = type === BOOLEAN ? false : ""; + } else { + node[propertyName] = value; + } + return; + } + var attributeName = propertyInfo.attributeName, attributeNamespace = propertyInfo.attributeNamespace; + if (value === null) { + node.removeAttribute(attributeName); + } else { + var _type = propertyInfo.type; + var attributeValue; + if (_type === BOOLEAN || _type === OVERLOADED_BOOLEAN && value === true) { + attributeValue = ""; + } else { + { + attributeValue = "" + value; + } + if (propertyInfo.sanitizeURL) { + sanitizeURL(attributeValue.toString()); + } + } + if (attributeNamespace) { + node.setAttributeNS(attributeNamespace, attributeName, attributeValue); + } else { + node.setAttribute(attributeName, attributeValue); + } + } + } + var REACT_ELEMENT_TYPE = 60103; + var REACT_PORTAL_TYPE = 60106; + var REACT_FRAGMENT_TYPE = 60107; + var REACT_STRICT_MODE_TYPE = 60108; + var REACT_PROFILER_TYPE = 60114; + var REACT_PROVIDER_TYPE = 60109; + var REACT_CONTEXT_TYPE = 60110; + var REACT_FORWARD_REF_TYPE = 60112; + var REACT_SUSPENSE_TYPE = 60113; + var REACT_SUSPENSE_LIST_TYPE = 60120; + var REACT_MEMO_TYPE = 60115; + var REACT_LAZY_TYPE = 60116; + var REACT_BLOCK_TYPE = 60121; + var REACT_SERVER_BLOCK_TYPE = 60122; + var REACT_FUNDAMENTAL_TYPE = 60117; + var REACT_SCOPE_TYPE = 60119; + var REACT_OPAQUE_ID_TYPE = 60128; + var REACT_DEBUG_TRACING_MODE_TYPE = 60129; + var REACT_OFFSCREEN_TYPE = 60130; + var REACT_LEGACY_HIDDEN_TYPE = 60131; + if (typeof Symbol === "function" && Symbol.for) { + var symbolFor = Symbol.for; + REACT_ELEMENT_TYPE = symbolFor("react.element"); + REACT_PORTAL_TYPE = symbolFor("react.portal"); + REACT_FRAGMENT_TYPE = symbolFor("react.fragment"); + REACT_STRICT_MODE_TYPE = symbolFor("react.strict_mode"); + REACT_PROFILER_TYPE = symbolFor("react.profiler"); + REACT_PROVIDER_TYPE = symbolFor("react.provider"); + REACT_CONTEXT_TYPE = symbolFor("react.context"); + REACT_FORWARD_REF_TYPE = symbolFor("react.forward_ref"); + REACT_SUSPENSE_TYPE = symbolFor("react.suspense"); + REACT_SUSPENSE_LIST_TYPE = symbolFor("react.suspense_list"); + REACT_MEMO_TYPE = symbolFor("react.memo"); + REACT_LAZY_TYPE = symbolFor("react.lazy"); + REACT_BLOCK_TYPE = symbolFor("react.block"); + REACT_SERVER_BLOCK_TYPE = symbolFor("react.server.block"); + REACT_FUNDAMENTAL_TYPE = symbolFor("react.fundamental"); + REACT_SCOPE_TYPE = symbolFor("react.scope"); + REACT_OPAQUE_ID_TYPE = symbolFor("react.opaque.id"); + REACT_DEBUG_TRACING_MODE_TYPE = symbolFor("react.debug_trace_mode"); + REACT_OFFSCREEN_TYPE = symbolFor("react.offscreen"); + REACT_LEGACY_HIDDEN_TYPE = symbolFor("react.legacy_hidden"); + } + var MAYBE_ITERATOR_SYMBOL = typeof Symbol === "function" && Symbol.iterator; + var FAUX_ITERATOR_SYMBOL = "@@iterator"; + function getIteratorFn(maybeIterable) { + if (maybeIterable === null || typeof maybeIterable !== "object") { + return null; + } + var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]; + if (typeof maybeIterator === "function") { + return maybeIterator; + } + return null; + } + var disabledDepth = 0; + var prevLog; + var prevInfo; + var prevWarn; + var prevError; + var prevGroup; + var prevGroupCollapsed; + var prevGroupEnd; + function disabledLog() { + } + disabledLog.__reactDisabledLog = true; + function disableLogs() { + { + if (disabledDepth === 0) { + prevLog = console.log; + prevInfo = console.info; + prevWarn = console.warn; + prevError = console.error; + prevGroup = console.group; + prevGroupCollapsed = console.groupCollapsed; + prevGroupEnd = console.groupEnd; + var props = { + configurable: true, + enumerable: true, + value: disabledLog, + writable: true + }; + Object.defineProperties(console, { + info: props, + log: props, + warn: props, + error: props, + group: props, + groupCollapsed: props, + groupEnd: props + }); + } + disabledDepth++; + } + } + function reenableLogs() { + { + disabledDepth--; + if (disabledDepth === 0) { + var props = { + configurable: true, + enumerable: true, + writable: true + }; + Object.defineProperties(console, { + log: _assign({}, props, { + value: prevLog + }), + info: _assign({}, props, { + value: prevInfo + }), + warn: _assign({}, props, { + value: prevWarn + }), + error: _assign({}, props, { + value: prevError + }), + group: _assign({}, props, { + value: prevGroup + }), + groupCollapsed: _assign({}, props, { + value: prevGroupCollapsed + }), + groupEnd: _assign({}, props, { + value: prevGroupEnd + }) + }); + } + if (disabledDepth < 0) { + error("disabledDepth fell below zero. This is a bug in React. Please file an issue."); + } + } + } + var ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher; + var prefix; + function describeBuiltInComponentFrame(name, source, ownerFn) { + { + if (prefix === void 0) { + try { + throw Error(); + } catch (x3) { + var match2 = x3.stack.trim().match(/\n( *(at )?)/); + prefix = match2 && match2[1] || ""; + } + } + return "\n" + prefix + name; + } + } + var reentry = false; + var componentFrameCache; + { + var PossiblyWeakMap = typeof WeakMap === "function" ? WeakMap : Map; + componentFrameCache = new PossiblyWeakMap(); + } + function describeNativeComponentFrame(fn, construct) { + if (!fn || reentry) { + return ""; + } + { + var frame = componentFrameCache.get(fn); + if (frame !== void 0) { + return frame; + } + } + var control; + reentry = true; + var previousPrepareStackTrace = Error.prepareStackTrace; + Error.prepareStackTrace = void 0; + var previousDispatcher; + { + previousDispatcher = ReactCurrentDispatcher.current; + ReactCurrentDispatcher.current = null; + disableLogs(); + } + try { + if (construct) { + var Fake = function() { + throw Error(); + }; + Object.defineProperty(Fake.prototype, "props", { + set: function() { + throw Error(); + } + }); + if (typeof Reflect === "object" && Reflect.construct) { + try { + Reflect.construct(Fake, []); + } catch (x3) { + control = x3; + } + Reflect.construct(fn, [], Fake); + } else { + try { + Fake.call(); + } catch (x3) { + control = x3; + } + fn.call(Fake.prototype); + } + } else { + try { + throw Error(); + } catch (x3) { + control = x3; + } + fn(); + } + } catch (sample) { + if (sample && control && typeof sample.stack === "string") { + var sampleLines = sample.stack.split("\n"); + var controlLines = control.stack.split("\n"); + var s4 = sampleLines.length - 1; + var c3 = controlLines.length - 1; + while (s4 >= 1 && c3 >= 0 && sampleLines[s4] !== controlLines[c3]) { + c3--; + } + for (; s4 >= 1 && c3 >= 0; s4--, c3--) { + if (sampleLines[s4] !== controlLines[c3]) { + if (s4 !== 1 || c3 !== 1) { + do { + s4--; + c3--; + if (c3 < 0 || sampleLines[s4] !== controlLines[c3]) { + var _frame = "\n" + sampleLines[s4].replace(" at new ", " at "); + { + if (typeof fn === "function") { + componentFrameCache.set(fn, _frame); + } + } + return _frame; + } + } while (s4 >= 1 && c3 >= 0); + } + break; + } + } + } + } finally { + reentry = false; + { + ReactCurrentDispatcher.current = previousDispatcher; + reenableLogs(); + } + Error.prepareStackTrace = previousPrepareStackTrace; + } + var name = fn ? fn.displayName || fn.name : ""; + var syntheticFrame = name ? describeBuiltInComponentFrame(name) : ""; + { + if (typeof fn === "function") { + componentFrameCache.set(fn, syntheticFrame); + } + } + return syntheticFrame; + } + function describeClassComponentFrame(ctor, source, ownerFn) { + { + return describeNativeComponentFrame(ctor, true); + } + } + function describeFunctionComponentFrame(fn, source, ownerFn) { + { + return describeNativeComponentFrame(fn, false); + } + } + function shouldConstruct(Component4) { + var prototype = Component4.prototype; + return !!(prototype && prototype.isReactComponent); + } + function describeUnknownElementTypeFrameInDEV(type, source, ownerFn) { + if (type == null) { + return ""; + } + if (typeof type === "function") { + { + return describeNativeComponentFrame(type, shouldConstruct(type)); + } + } + if (typeof type === "string") { + return describeBuiltInComponentFrame(type); + } + switch (type) { + case REACT_SUSPENSE_TYPE: + return describeBuiltInComponentFrame("Suspense"); + case REACT_SUSPENSE_LIST_TYPE: + return describeBuiltInComponentFrame("SuspenseList"); + } + if (typeof type === "object") { + switch (type.$$typeof) { + case REACT_FORWARD_REF_TYPE: + return describeFunctionComponentFrame(type.render); + case REACT_MEMO_TYPE: + return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn); + case REACT_BLOCK_TYPE: + return describeFunctionComponentFrame(type._render); + case REACT_LAZY_TYPE: { + var lazyComponent = type; + var payload = lazyComponent._payload; + var init = lazyComponent._init; + try { + return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn); + } catch (x3) { + } + } + } + } + return ""; + } + function describeFiber(fiber) { + var owner = fiber._debugOwner ? fiber._debugOwner.type : null; + var source = fiber._debugSource; + switch (fiber.tag) { + case HostComponent: + return describeBuiltInComponentFrame(fiber.type); + case LazyComponent: + return describeBuiltInComponentFrame("Lazy"); + case SuspenseComponent: + return describeBuiltInComponentFrame("Suspense"); + case SuspenseListComponent: + return describeBuiltInComponentFrame("SuspenseList"); + case FunctionComponent: + case IndeterminateComponent: + case SimpleMemoComponent: + return describeFunctionComponentFrame(fiber.type); + case ForwardRef: + return describeFunctionComponentFrame(fiber.type.render); + case Block: + return describeFunctionComponentFrame(fiber.type._render); + case ClassComponent: + return describeClassComponentFrame(fiber.type); + default: + return ""; + } + } + function getStackByFiberInDevAndProd(workInProgress2) { + try { + var info = ""; + var node = workInProgress2; + do { + info += describeFiber(node); + node = node.return; + } while (node); + return info; + } catch (x3) { + return "\nError generating stack: " + x3.message + "\n" + x3.stack; + } + } + function getWrappedName(outerType, innerType, wrapperName) { + var functionName = innerType.displayName || innerType.name || ""; + return outerType.displayName || (functionName !== "" ? wrapperName + "(" + functionName + ")" : wrapperName); + } + function getContextName(type) { + return type.displayName || "Context"; + } + function getComponentName(type) { + if (type == null) { + return null; + } + { + if (typeof type.tag === "number") { + error("Received an unexpected object in getComponentName(). This is likely a bug in React. Please file an issue."); + } + } + if (typeof type === "function") { + return type.displayName || type.name || null; + } + if (typeof type === "string") { + return type; + } + switch (type) { + case REACT_FRAGMENT_TYPE: + return "Fragment"; + case REACT_PORTAL_TYPE: + return "Portal"; + case REACT_PROFILER_TYPE: + return "Profiler"; + case REACT_STRICT_MODE_TYPE: + return "StrictMode"; + case REACT_SUSPENSE_TYPE: + return "Suspense"; + case REACT_SUSPENSE_LIST_TYPE: + return "SuspenseList"; + } + if (typeof type === "object") { + switch (type.$$typeof) { + case REACT_CONTEXT_TYPE: + var context = type; + return getContextName(context) + ".Consumer"; + case REACT_PROVIDER_TYPE: + var provider = type; + return getContextName(provider._context) + ".Provider"; + case REACT_FORWARD_REF_TYPE: + return getWrappedName(type, type.render, "ForwardRef"); + case REACT_MEMO_TYPE: + return getComponentName(type.type); + case REACT_BLOCK_TYPE: + return getComponentName(type._render); + case REACT_LAZY_TYPE: { + var lazyComponent = type; + var payload = lazyComponent._payload; + var init = lazyComponent._init; + try { + return getComponentName(init(payload)); + } catch (x3) { + return null; + } + } + } + } + return null; + } + var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame; + var current = null; + var isRendering = false; + function getCurrentFiberOwnerNameInDevOrNull() { + { + if (current === null) { + return null; + } + var owner = current._debugOwner; + if (owner !== null && typeof owner !== "undefined") { + return getComponentName(owner.type); + } + } + return null; + } + function getCurrentFiberStackInDev() { + { + if (current === null) { + return ""; + } + return getStackByFiberInDevAndProd(current); + } + } + function resetCurrentFiber() { + { + ReactDebugCurrentFrame.getCurrentStack = null; + current = null; + isRendering = false; + } + } + function setCurrentFiber(fiber) { + { + ReactDebugCurrentFrame.getCurrentStack = getCurrentFiberStackInDev; + current = fiber; + isRendering = false; + } + } + function setIsRendering(rendering) { + { + isRendering = rendering; + } + } + function getIsRendering() { + { + return isRendering; + } + } + function toString(value) { + return "" + value; + } + function getToStringValue(value) { + switch (typeof value) { + case "boolean": + case "number": + case "object": + case "string": + case "undefined": + return value; + default: + return ""; + } + } + var hasReadOnlyValue = { + button: true, + checkbox: true, + image: true, + hidden: true, + radio: true, + reset: true, + submit: true + }; + function checkControlledValueProps(tagName, props) { + { + if (!(hasReadOnlyValue[props.type] || props.onChange || props.onInput || props.readOnly || props.disabled || props.value == null)) { + error("You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`."); + } + if (!(props.onChange || props.readOnly || props.disabled || props.checked == null)) { + error("You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`."); + } + } + } + function isCheckable(elem) { + var type = elem.type; + var nodeName = elem.nodeName; + return nodeName && nodeName.toLowerCase() === "input" && (type === "checkbox" || type === "radio"); + } + function getTracker(node) { + return node._valueTracker; + } + function detachTracker(node) { + node._valueTracker = null; + } + function getValueFromNode(node) { + var value = ""; + if (!node) { + return value; + } + if (isCheckable(node)) { + value = node.checked ? "true" : "false"; + } else { + value = node.value; + } + return value; + } + function trackValueOnNode(node) { + var valueField = isCheckable(node) ? "checked" : "value"; + var descriptor = Object.getOwnPropertyDescriptor(node.constructor.prototype, valueField); + var currentValue = "" + node[valueField]; + if (node.hasOwnProperty(valueField) || typeof descriptor === "undefined" || typeof descriptor.get !== "function" || typeof descriptor.set !== "function") { + return; + } + var get2 = descriptor.get, set2 = descriptor.set; + Object.defineProperty(node, valueField, { + configurable: true, + get: function() { + return get2.call(this); + }, + set: function(value) { + currentValue = "" + value; + set2.call(this, value); + } + }); + Object.defineProperty(node, valueField, { + enumerable: descriptor.enumerable + }); + var tracker = { + getValue: function() { + return currentValue; + }, + setValue: function(value) { + currentValue = "" + value; + }, + stopTracking: function() { + detachTracker(node); + delete node[valueField]; + } + }; + return tracker; + } + function track(node) { + if (getTracker(node)) { + return; + } + node._valueTracker = trackValueOnNode(node); + } + function updateValueIfChanged(node) { + if (!node) { + return false; + } + var tracker = getTracker(node); + if (!tracker) { + return true; + } + var lastValue = tracker.getValue(); + var nextValue = getValueFromNode(node); + if (nextValue !== lastValue) { + tracker.setValue(nextValue); + return true; + } + return false; + } + function getActiveElement(doc) { + doc = doc || (typeof document !== "undefined" ? document : void 0); + if (typeof doc === "undefined") { + return null; + } + try { + return doc.activeElement || doc.body; + } catch (e3) { + return doc.body; + } + } + var didWarnValueDefaultValue = false; + var didWarnCheckedDefaultChecked = false; + var didWarnControlledToUncontrolled = false; + var didWarnUncontrolledToControlled = false; + function isControlled(props) { + var usesChecked = props.type === "checkbox" || props.type === "radio"; + return usesChecked ? props.checked != null : props.value != null; + } + function getHostProps(element, props) { + var node = element; + var checked = props.checked; + var hostProps = _assign({}, props, { + defaultChecked: void 0, + defaultValue: void 0, + value: void 0, + checked: checked != null ? checked : node._wrapperState.initialChecked + }); + return hostProps; + } + function initWrapperState(element, props) { + { + checkControlledValueProps("input", props); + if (props.checked !== void 0 && props.defaultChecked !== void 0 && !didWarnCheckedDefaultChecked) { + error("%s contains an input of type %s with both checked and defaultChecked props. Input elements must be either controlled or uncontrolled (specify either the checked prop, or the defaultChecked prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://reactjs.org/link/controlled-components", getCurrentFiberOwnerNameInDevOrNull() || "A component", props.type); + didWarnCheckedDefaultChecked = true; + } + if (props.value !== void 0 && props.defaultValue !== void 0 && !didWarnValueDefaultValue) { + error("%s contains an input of type %s with both value and defaultValue props. Input elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://reactjs.org/link/controlled-components", getCurrentFiberOwnerNameInDevOrNull() || "A component", props.type); + didWarnValueDefaultValue = true; + } + } + var node = element; + var defaultValue = props.defaultValue == null ? "" : props.defaultValue; + node._wrapperState = { + initialChecked: props.checked != null ? props.checked : props.defaultChecked, + initialValue: getToStringValue(props.value != null ? props.value : defaultValue), + controlled: isControlled(props) + }; + } + function updateChecked(element, props) { + var node = element; + var checked = props.checked; + if (checked != null) { + setValueForProperty(node, "checked", checked, false); + } + } + function updateWrapper(element, props) { + var node = element; + { + var controlled = isControlled(props); + if (!node._wrapperState.controlled && controlled && !didWarnUncontrolledToControlled) { + error("A component is changing an uncontrolled input to be controlled. This is likely caused by the value changing from undefined to a defined value, which should not happen. Decide between using a controlled or uncontrolled input element for the lifetime of the component. More info: https://reactjs.org/link/controlled-components"); + didWarnUncontrolledToControlled = true; + } + if (node._wrapperState.controlled && !controlled && !didWarnControlledToUncontrolled) { + error("A component is changing a controlled input to be uncontrolled. This is likely caused by the value changing from a defined to undefined, which should not happen. Decide between using a controlled or uncontrolled input element for the lifetime of the component. More info: https://reactjs.org/link/controlled-components"); + didWarnControlledToUncontrolled = true; + } + } + updateChecked(element, props); + var value = getToStringValue(props.value); + var type = props.type; + if (value != null) { + if (type === "number") { + if (value === 0 && node.value === "" || node.value != value) { + node.value = toString(value); + } + } else if (node.value !== toString(value)) { + node.value = toString(value); + } + } else if (type === "submit" || type === "reset") { + node.removeAttribute("value"); + return; + } + { + if (props.hasOwnProperty("value")) { + setDefaultValue(node, props.type, value); + } else if (props.hasOwnProperty("defaultValue")) { + setDefaultValue(node, props.type, getToStringValue(props.defaultValue)); + } + } + { + if (props.checked == null && props.defaultChecked != null) { + node.defaultChecked = !!props.defaultChecked; + } + } + } + function postMountWrapper(element, props, isHydrating2) { + var node = element; + if (props.hasOwnProperty("value") || props.hasOwnProperty("defaultValue")) { + var type = props.type; + var isButton = type === "submit" || type === "reset"; + if (isButton && (props.value === void 0 || props.value === null)) { + return; + } + var initialValue = toString(node._wrapperState.initialValue); + if (!isHydrating2) { + { + if (initialValue !== node.value) { + node.value = initialValue; + } + } + } + { + node.defaultValue = initialValue; + } + } + var name = node.name; + if (name !== "") { + node.name = ""; + } + { + node.defaultChecked = !node.defaultChecked; + node.defaultChecked = !!node._wrapperState.initialChecked; + } + if (name !== "") { + node.name = name; + } + } + function restoreControlledState(element, props) { + var node = element; + updateWrapper(node, props); + updateNamedCousins(node, props); + } + function updateNamedCousins(rootNode, props) { + var name = props.name; + if (props.type === "radio" && name != null) { + var queryRoot = rootNode; + while (queryRoot.parentNode) { + queryRoot = queryRoot.parentNode; + } + var group = queryRoot.querySelectorAll("input[name=" + JSON.stringify("" + name) + '][type="radio"]'); + for (var i3 = 0; i3 < group.length; i3++) { + var otherNode = group[i3]; + if (otherNode === rootNode || otherNode.form !== rootNode.form) { + continue; + } + var otherProps = getFiberCurrentPropsFromNode(otherNode); + if (!otherProps) { + { + throw Error("ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported."); + } + } + updateValueIfChanged(otherNode); + updateWrapper(otherNode, otherProps); + } + } + } + function setDefaultValue(node, type, value) { + if (type !== "number" || getActiveElement(node.ownerDocument) !== node) { + if (value == null) { + node.defaultValue = toString(node._wrapperState.initialValue); + } else if (node.defaultValue !== toString(value)) { + node.defaultValue = toString(value); + } + } + } + var didWarnSelectedSetOnOption = false; + var didWarnInvalidChild = false; + function flattenChildren(children) { + var content = ""; + React5.Children.forEach(children, function(child) { + if (child == null) { + return; + } + content += child; + }); + return content; + } + function validateProps(element, props) { + { + if (typeof props.children === "object" && props.children !== null) { + React5.Children.forEach(props.children, function(child) { + if (child == null) { + return; + } + if (typeof child === "string" || typeof child === "number") { + return; + } + if (typeof child.type !== "string") { + return; + } + if (!didWarnInvalidChild) { + didWarnInvalidChild = true; + error("Only strings and numbers are supported as