/* THIS IS A GENERATED/BUNDLED FILE BY ESBUILD if you want to view the source, please visit the github repository of this plugin https://github.com/joethei/obisidian-rss */ 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 = (a, b) => { for (var prop in b || (b = {})) if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]); if (__getOwnPropSymbols) for (var prop of __getOwnPropSymbols(b)) { if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]); } return a; }; var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); var __markAsModule = (target) => __defProp(target, "__esModule", { value: true }); 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 (e) { reject(e); } }; var rejected = (value) => { try { step(generator.throw(value)); } catch (e) { reject(e); } }; var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected); step((generator = generator.apply(__this, __arguments)).next()); }); }; // node_modules/ts-md5/dist/md5.js var require_md5 = __commonJS({ "node_modules/ts-md5/dist/md5.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var Md54 = function() { function Md55() { this._dataLength = 0; this._bufferLength = 0; this._state = new Int32Array(4); this._buffer = new ArrayBuffer(68); this._buffer8 = new Uint8Array(this._buffer, 0, 68); this._buffer32 = new Uint32Array(this._buffer, 0, 17); this.start(); } Md55.hashStr = function(str, raw) { if (raw === void 0) { raw = false; } return this.onePassHasher.start().appendStr(str).end(raw); }; Md55.hashAsciiStr = function(str, raw) { if (raw === void 0) { raw = false; } return this.onePassHasher.start().appendAsciiStr(str).end(raw); }; Md55._hex = function(x) { var hc = Md55.hexChars; var ho = Md55.hexOut; var n; var offset2; var j; var i; for (i = 0; i < 4; i += 1) { offset2 = i * 8; n = x[i]; for (j = 0; j < 8; j += 2) { ho[offset2 + 1 + j] = hc.charAt(n & 15); n >>>= 4; ho[offset2 + 0 + j] = hc.charAt(n & 15); n >>>= 4; } } return ho.join(""); }; Md55._md5cycle = function(x, k) { var a = x[0]; var b = x[1]; var c = x[2]; var d = x[3]; a += (b & c | ~b & d) + k[0] - 680876936 | 0; a = (a << 7 | a >>> 25) + b | 0; d += (a & b | ~a & c) + k[1] - 389564586 | 0; d = (d << 12 | d >>> 20) + a | 0; c += (d & a | ~d & b) + k[2] + 606105819 | 0; c = (c << 17 | c >>> 15) + d | 0; b += (c & d | ~c & a) + k[3] - 1044525330 | 0; b = (b << 22 | b >>> 10) + c | 0; a += (b & c | ~b & d) + k[4] - 176418897 | 0; a = (a << 7 | a >>> 25) + b | 0; d += (a & b | ~a & c) + k[5] + 1200080426 | 0; d = (d << 12 | d >>> 20) + a | 0; c += (d & a | ~d & b) + k[6] - 1473231341 | 0; c = (c << 17 | c >>> 15) + d | 0; b += (c & d | ~c & a) + k[7] - 45705983 | 0; b = (b << 22 | b >>> 10) + c | 0; a += (b & c | ~b & d) + k[8] + 1770035416 | 0; a = (a << 7 | a >>> 25) + b | 0; d += (a & b | ~a & c) + k[9] - 1958414417 | 0; d = (d << 12 | d >>> 20) + a | 0; c += (d & a | ~d & b) + k[10] - 42063 | 0; c = (c << 17 | c >>> 15) + d | 0; b += (c & d | ~c & a) + k[11] - 1990404162 | 0; b = (b << 22 | b >>> 10) + c | 0; a += (b & c | ~b & d) + k[12] + 1804603682 | 0; a = (a << 7 | a >>> 25) + b | 0; d += (a & b | ~a & c) + k[13] - 40341101 | 0; d = (d << 12 | d >>> 20) + a | 0; c += (d & a | ~d & b) + k[14] - 1502002290 | 0; c = (c << 17 | c >>> 15) + d | 0; b += (c & d | ~c & a) + k[15] + 1236535329 | 0; b = (b << 22 | b >>> 10) + c | 0; a += (b & d | c & ~d) + k[1] - 165796510 | 0; a = (a << 5 | a >>> 27) + b | 0; d += (a & c | b & ~c) + k[6] - 1069501632 | 0; d = (d << 9 | d >>> 23) + a | 0; c += (d & b | a & ~b) + k[11] + 643717713 | 0; c = (c << 14 | c >>> 18) + d | 0; b += (c & a | d & ~a) + k[0] - 373897302 | 0; b = (b << 20 | b >>> 12) + c | 0; a += (b & d | c & ~d) + k[5] - 701558691 | 0; a = (a << 5 | a >>> 27) + b | 0; d += (a & c | b & ~c) + k[10] + 38016083 | 0; d = (d << 9 | d >>> 23) + a | 0; c += (d & b | a & ~b) + k[15] - 660478335 | 0; c = (c << 14 | c >>> 18) + d | 0; b += (c & a | d & ~a) + k[4] - 405537848 | 0; b = (b << 20 | b >>> 12) + c | 0; a += (b & d | c & ~d) + k[9] + 568446438 | 0; a = (a << 5 | a >>> 27) + b | 0; d += (a & c | b & ~c) + k[14] - 1019803690 | 0; d = (d << 9 | d >>> 23) + a | 0; c += (d & b | a & ~b) + k[3] - 187363961 | 0; c = (c << 14 | c >>> 18) + d | 0; b += (c & a | d & ~a) + k[8] + 1163531501 | 0; b = (b << 20 | b >>> 12) + c | 0; a += (b & d | c & ~d) + k[13] - 1444681467 | 0; a = (a << 5 | a >>> 27) + b | 0; d += (a & c | b & ~c) + k[2] - 51403784 | 0; d = (d << 9 | d >>> 23) + a | 0; c += (d & b | a & ~b) + k[7] + 1735328473 | 0; c = (c << 14 | c >>> 18) + d | 0; b += (c & a | d & ~a) + k[12] - 1926607734 | 0; b = (b << 20 | b >>> 12) + c | 0; a += (b ^ c ^ d) + k[5] - 378558 | 0; a = (a << 4 | a >>> 28) + b | 0; d += (a ^ b ^ c) + k[8] - 2022574463 | 0; d = (d << 11 | d >>> 21) + a | 0; c += (d ^ a ^ b) + k[11] + 1839030562 | 0; c = (c << 16 | c >>> 16) + d | 0; b += (c ^ d ^ a) + k[14] - 35309556 | 0; b = (b << 23 | b >>> 9) + c | 0; a += (b ^ c ^ d) + k[1] - 1530992060 | 0; a = (a << 4 | a >>> 28) + b | 0; d += (a ^ b ^ c) + k[4] + 1272893353 | 0; d = (d << 11 | d >>> 21) + a | 0; c += (d ^ a ^ b) + k[7] - 155497632 | 0; c = (c << 16 | c >>> 16) + d | 0; b += (c ^ d ^ a) + k[10] - 1094730640 | 0; b = (b << 23 | b >>> 9) + c | 0; a += (b ^ c ^ d) + k[13] + 681279174 | 0; a = (a << 4 | a >>> 28) + b | 0; d += (a ^ b ^ c) + k[0] - 358537222 | 0; d = (d << 11 | d >>> 21) + a | 0; c += (d ^ a ^ b) + k[3] - 722521979 | 0; c = (c << 16 | c >>> 16) + d | 0; b += (c ^ d ^ a) + k[6] + 76029189 | 0; b = (b << 23 | b >>> 9) + c | 0; a += (b ^ c ^ d) + k[9] - 640364487 | 0; a = (a << 4 | a >>> 28) + b | 0; d += (a ^ b ^ c) + k[12] - 421815835 | 0; d = (d << 11 | d >>> 21) + a | 0; c += (d ^ a ^ b) + k[15] + 530742520 | 0; c = (c << 16 | c >>> 16) + d | 0; b += (c ^ d ^ a) + k[2] - 995338651 | 0; b = (b << 23 | b >>> 9) + c | 0; a += (c ^ (b | ~d)) + k[0] - 198630844 | 0; a = (a << 6 | a >>> 26) + b | 0; d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0; d = (d << 10 | d >>> 22) + a | 0; c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0; c = (c << 15 | c >>> 17) + d | 0; b += (d ^ (c | ~a)) + k[5] - 57434055 | 0; b = (b << 21 | b >>> 11) + c | 0; a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0; a = (a << 6 | a >>> 26) + b | 0; d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0; d = (d << 10 | d >>> 22) + a | 0; c += (a ^ (d | ~b)) + k[10] - 1051523 | 0; c = (c << 15 | c >>> 17) + d | 0; b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0; b = (b << 21 | b >>> 11) + c | 0; a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0; a = (a << 6 | a >>> 26) + b | 0; d += (b ^ (a | ~c)) + k[15] - 30611744 | 0; d = (d << 10 | d >>> 22) + a | 0; c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0; c = (c << 15 | c >>> 17) + d | 0; b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0; b = (b << 21 | b >>> 11) + c | 0; a += (c ^ (b | ~d)) + k[4] - 145523070 | 0; a = (a << 6 | a >>> 26) + b | 0; d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0; d = (d << 10 | d >>> 22) + a | 0; c += (a ^ (d | ~b)) + k[2] + 718787259 | 0; c = (c << 15 | c >>> 17) + d | 0; b += (d ^ (c | ~a)) + k[9] - 343485551 | 0; b = (b << 21 | b >>> 11) + c | 0; x[0] = a + x[0] | 0; x[1] = b + x[1] | 0; x[2] = c + x[2] | 0; x[3] = d + x[3] | 0; }; Md55.prototype.start = function() { this._dataLength = 0; this._bufferLength = 0; this._state.set(Md55.stateIdentity); return this; }; Md55.prototype.appendStr = function(str) { var buf8 = this._buffer8; var buf32 = this._buffer32; var bufLen = this._bufferLength; var code; var i; for (i = 0; i < str.length; i += 1) { code = str.charCodeAt(i); if (code < 128) { buf8[bufLen++] = code; } else if (code < 2048) { buf8[bufLen++] = (code >>> 6) + 192; buf8[bufLen++] = code & 63 | 128; } else if (code < 55296 || code > 56319) { buf8[bufLen++] = (code >>> 12) + 224; buf8[bufLen++] = code >>> 6 & 63 | 128; buf8[bufLen++] = code & 63 | 128; } else { code = (code - 55296) * 1024 + (str.charCodeAt(++i) - 56320) + 65536; if (code > 1114111) { throw new Error("Unicode standard supports code points up to U+10FFFF"); } buf8[bufLen++] = (code >>> 18) + 240; buf8[bufLen++] = code >>> 12 & 63 | 128; buf8[bufLen++] = code >>> 6 & 63 | 128; buf8[bufLen++] = code & 63 | 128; } if (bufLen >= 64) { this._dataLength += 64; Md55._md5cycle(this._state, buf32); bufLen -= 64; buf32[0] = buf32[16]; } } this._bufferLength = bufLen; return this; }; Md55.prototype.appendAsciiStr = function(str) { var buf8 = this._buffer8; var buf32 = this._buffer32; var bufLen = this._bufferLength; var i; var j = 0; for (; ; ) { i = Math.min(str.length - j, 64 - bufLen); while (i--) { buf8[bufLen++] = str.charCodeAt(j++); } if (bufLen < 64) { break; } this._dataLength += 64; Md55._md5cycle(this._state, buf32); bufLen = 0; } this._bufferLength = bufLen; return this; }; Md55.prototype.appendByteArray = function(input) { var buf8 = this._buffer8; var buf32 = this._buffer32; var bufLen = this._bufferLength; var i; var j = 0; for (; ; ) { i = Math.min(input.length - j, 64 - bufLen); while (i--) { buf8[bufLen++] = input[j++]; } if (bufLen < 64) { break; } this._dataLength += 64; Md55._md5cycle(this._state, buf32); bufLen = 0; } this._bufferLength = bufLen; return this; }; Md55.prototype.getState = function() { var s = this._state; return { buffer: String.fromCharCode.apply(null, Array.from(this._buffer8)), buflen: this._bufferLength, length: this._dataLength, state: [s[0], s[1], s[2], s[3]] }; }; Md55.prototype.setState = function(state) { var buf = state.buffer; var x = state.state; var s = this._state; var i; this._dataLength = state.length; this._bufferLength = state.buflen; s[0] = x[0]; s[1] = x[1]; s[2] = x[2]; s[3] = x[3]; for (i = 0; i < buf.length; i += 1) { this._buffer8[i] = buf.charCodeAt(i); } }; Md55.prototype.end = function(raw) { if (raw === void 0) { raw = false; } var bufLen = this._bufferLength; var buf8 = this._buffer8; var buf32 = this._buffer32; var i = (bufLen >> 2) + 1; this._dataLength += bufLen; var dataBitsLen = this._dataLength * 8; buf8[bufLen] = 128; buf8[bufLen + 1] = buf8[bufLen + 2] = buf8[bufLen + 3] = 0; buf32.set(Md55.buffer32Identity.subarray(i), i); if (bufLen > 55) { Md55._md5cycle(this._state, buf32); buf32.set(Md55.buffer32Identity); } if (dataBitsLen <= 4294967295) { buf32[14] = dataBitsLen; } else { var matches = dataBitsLen.toString(16).match(/(.*?)(.{0,8})$/); if (matches === null) { return; } var lo = parseInt(matches[2], 16); var hi = parseInt(matches[1], 16) || 0; buf32[14] = lo; buf32[15] = hi; } Md55._md5cycle(this._state, buf32); return raw ? this._state : Md55._hex(this._state); }; Md55.stateIdentity = new Int32Array([1732584193, -271733879, -1732584194, 271733878]); Md55.buffer32Identity = new Int32Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]); Md55.hexChars = "0123456789abcdef"; Md55.hexOut = []; Md55.onePassHasher = new Md55(); return Md55; }(); exports.Md5 = Md54; if (Md54.hashStr("hello") !== "5d41402abc4b2a76b9719d911017c592") { throw new Error("Md5 self test failed."); } } }); // node_modules/feather-icons/dist/feather.js var require_feather = __commonJS({ "node_modules/feather-icons/dist/feather.js"(exports, module2) { (function webpackUniversalModuleDefinition(root, factory) { if (typeof exports === "object" && typeof module2 === "object") module2.exports = factory(); else if (typeof define === "function" && define.amd) define([], factory); else if (typeof exports === "object") exports["feather"] = factory(); else root["feather"] = factory(); })(typeof self !== "undefined" ? self : exports, function() { return function(modules) { var installedModules = {}; function __webpack_require__(moduleId) { if (installedModules[moduleId]) { return installedModules[moduleId].exports; } var module3 = installedModules[moduleId] = { i: moduleId, l: false, exports: {} }; modules[moduleId].call(module3.exports, module3, module3.exports, __webpack_require__); module3.l = true; return module3.exports; } __webpack_require__.m = modules; __webpack_require__.c = installedModules; __webpack_require__.d = function(exports2, name, getter) { if (!__webpack_require__.o(exports2, name)) { Object.defineProperty(exports2, name, { configurable: false, enumerable: true, get: getter }); } }; __webpack_require__.r = function(exports2) { Object.defineProperty(exports2, "__esModule", { value: true }); }; __webpack_require__.n = function(module3) { var getter = module3 && module3.__esModule ? function getDefault() { return module3["default"]; } : function getModuleExports() { return module3; }; __webpack_require__.d(getter, "a", getter); return getter; }; __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; __webpack_require__.p = ""; return __webpack_require__(__webpack_require__.s = 0); }({ "./dist/icons.json": function(module3) { module3.exports = { "activity": '', "airplay": '', "alert-circle": '', "alert-octagon": '', "alert-triangle": '', "align-center": '', "align-justify": '', "align-left": '', "align-right": '', "anchor": '', "aperture": '', "archive": '', "arrow-down-circle": '', "arrow-down-left": '', "arrow-down-right": '', "arrow-down": '', "arrow-left-circle": '', "arrow-left": '', "arrow-right-circle": '', "arrow-right": '', "arrow-up-circle": '', "arrow-up-left": '', "arrow-up-right": '', "arrow-up": '', "at-sign": '', "award": '', "bar-chart-2": '', "bar-chart": '', "battery-charging": '', "battery": '', "bell-off": '', "bell": '', "bluetooth": '', "bold": '', "book-open": '', "book": '', "bookmark": '', "box": '', "briefcase": '', "calendar": '', "camera-off": '', "camera": '', "cast": '', "check-circle": '', "check-square": '', "check": '', "chevron-down": '', "chevron-left": '', "chevron-right": '', "chevron-up": '', "chevrons-down": '', "chevrons-left": '', "chevrons-right": '', "chevrons-up": '', "chrome": '', "circle": '', "clipboard": '', "clock": '', "cloud-drizzle": '', "cloud-lightning": '', "cloud-off": '', "cloud-rain": '', "cloud-snow": '', "cloud": '', "code": '', "codepen": '', "codesandbox": '', "coffee": '', "columns": '', "command": '', "compass": '', "copy": '', "corner-down-left": '', "corner-down-right": '', "corner-left-down": '', "corner-left-up": '', "corner-right-down": '', "corner-right-up": '', "corner-up-left": '', "corner-up-right": '', "cpu": '', "credit-card": '', "crop": '', "crosshair": '', "database": '', "delete": '', "disc": '', "divide-circle": '', "divide-square": '', "divide": '', "dollar-sign": '', "download-cloud": '', "download": '', "dribbble": '', "droplet": '', "edit-2": '', "edit-3": '', "edit": '', "external-link": '', "eye-off": '', "eye": '', "facebook": '', "fast-forward": '', "feather": '', "figma": '', "file-minus": '', "file-plus": '', "file-text": '', "file": '', "film": '', "filter": '', "flag": '', "folder-minus": '', "folder-plus": '', "folder": '', "framer": '', "frown": '', "gift": '', "git-branch": '', "git-commit": '', "git-merge": '', "git-pull-request": '', "github": '', "gitlab": '', "globe": '', "grid": '', "hard-drive": '', "hash": '', "headphones": '', "heart": '', "help-circle": '', "hexagon": '', "home": '', "image": '', "inbox": '', "info": '', "instagram": '', "italic": '', "key": '', "layers": '', "layout": '', "life-buoy": '', "link-2": '', "link": '', "linkedin": '', "list": '', "loader": '', "lock": '', "log-in": '', "log-out": '', "mail": '', "map-pin": '', "map": '', "maximize-2": '', "maximize": '', "meh": '', "menu": '', "message-circle": '', "message-square": '', "mic-off": '', "mic": '', "minimize-2": '', "minimize": '', "minus-circle": '', "minus-square": '', "minus": '', "monitor": '', "moon": '', "more-horizontal": '', "more-vertical": '', "mouse-pointer": '', "move": '', "music": '', "navigation-2": '', "navigation": '', "octagon": '', "package": '', "paperclip": '', "pause-circle": '', "pause": '', "pen-tool": '', "percent": '', "phone-call": '', "phone-forwarded": '', "phone-incoming": '', "phone-missed": '', "phone-off": '', "phone-outgoing": '', "phone": '', "pie-chart": '', "play-circle": '', "play": '', "plus-circle": '', "plus-square": '', "plus": '', "pocket": '', "power": '', "printer": '', "radio": '', "refresh-ccw": '', "refresh-cw": '', "repeat": '', "rewind": '', "rotate-ccw": '', "rotate-cw": '', "rss": '', "save": '', "scissors": '', "search": '', "send": '', "server": '', "settings": '', "share-2": '', "share": '', "shield-off": '', "shield": '', "shopping-bag": '', "shopping-cart": '', "shuffle": '', "sidebar": '', "skip-back": '', "skip-forward": '', "slack": '', "slash": '', "sliders": '', "smartphone": '', "smile": '', "speaker": '', "square": '', "star": '', "stop-circle": '', "sun": '', "sunrise": '', "sunset": '', "table": '', "tablet": '', "tag": '', "target": '', "terminal": '', "thermometer": '', "thumbs-down": '', "thumbs-up": '', "toggle-left": '', "toggle-right": '', "tool": '', "trash-2": '', "trash": '', "trello": '', "trending-down": '', "trending-up": '', "triangle": '', "truck": '', "tv": '', "twitch": '', "twitter": '', "type": '', "umbrella": '', "underline": '', "unlock": '', "upload-cloud": '', "upload": '', "user-check": '', "user-minus": '', "user-plus": '', "user-x": '', "user": '', "users": '', "video-off": '', "video": '', "voicemail": '', "volume-1": '', "volume-2": '', "volume-x": '', "volume": '', "watch": '', "wifi-off": '', "wifi": '', "wind": '', "x-circle": '', "x-octagon": '', "x-square": '', "x": '', "youtube": '', "zap-off": '', "zap": '', "zoom-in": '', "zoom-out": '' }; }, "./node_modules/classnames/dedupe.js": function(module3, exports2, __webpack_require__) { var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__; (function() { "use strict"; var classNames = function() { function StorageObject() { } StorageObject.prototype = Object.create(null); function _parseArray(resultSet, array) { var length = array.length; for (var i = 0; i < length; ++i) { _parse(resultSet, array[i]); } } var hasOwn = {}.hasOwnProperty; function _parseNumber(resultSet, num) { resultSet[num] = true; } function _parseObject(resultSet, object) { for (var k in object) { if (hasOwn.call(object, k)) { resultSet[k] = !!object[k]; } } } var SPACE = /\s+/; function _parseString(resultSet, str) { var array = str.split(SPACE); var length = array.length; for (var i = 0; i < length; ++i) { resultSet[array[i]] = true; } } function _parse(resultSet, arg) { if (!arg) return; var argType = typeof arg; if (argType === "string") { _parseString(resultSet, arg); } else if (Array.isArray(arg)) { _parseArray(resultSet, arg); } else if (argType === "object") { _parseObject(resultSet, arg); } else if (argType === "number") { _parseNumber(resultSet, arg); } } function _classNames() { var len = arguments.length; var args = Array(len); for (var i = 0; i < len; i++) { args[i] = arguments[i]; } var classSet = new StorageObject(); _parseArray(classSet, args); var list = []; for (var k in classSet) { if (classSet[k]) { list.push(k); } } return list.join(" "); } return _classNames; }(); if (typeof module3 !== "undefined" && module3.exports) { module3.exports = classNames; } else if (true) { !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function() { return classNames; }.apply(exports2, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module3.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else { } })(); }, "./node_modules/core-js/es/array/from.js": function(module3, exports2, __webpack_require__) { __webpack_require__("./node_modules/core-js/modules/es.string.iterator.js"); __webpack_require__("./node_modules/core-js/modules/es.array.from.js"); var path = __webpack_require__("./node_modules/core-js/internals/path.js"); module3.exports = path.Array.from; }, "./node_modules/core-js/internals/a-function.js": function(module3, exports2) { module3.exports = function(it) { if (typeof it != "function") { throw TypeError(String(it) + " is not a function"); } return it; }; }, "./node_modules/core-js/internals/an-object.js": function(module3, exports2, __webpack_require__) { var isObject = __webpack_require__("./node_modules/core-js/internals/is-object.js"); module3.exports = function(it) { if (!isObject(it)) { throw TypeError(String(it) + " is not an object"); } return it; }; }, "./node_modules/core-js/internals/array-from.js": function(module3, exports2, __webpack_require__) { "use strict"; var bind = __webpack_require__("./node_modules/core-js/internals/bind-context.js"); var toObject = __webpack_require__("./node_modules/core-js/internals/to-object.js"); var callWithSafeIterationClosing = __webpack_require__("./node_modules/core-js/internals/call-with-safe-iteration-closing.js"); var isArrayIteratorMethod = __webpack_require__("./node_modules/core-js/internals/is-array-iterator-method.js"); var toLength = __webpack_require__("./node_modules/core-js/internals/to-length.js"); var createProperty = __webpack_require__("./node_modules/core-js/internals/create-property.js"); var getIteratorMethod = __webpack_require__("./node_modules/core-js/internals/get-iterator-method.js"); module3.exports = function from(arrayLike) { var O = toObject(arrayLike); var C = typeof this == "function" ? this : Array; var argumentsLength = arguments.length; var mapfn = argumentsLength > 1 ? arguments[1] : void 0; var mapping = mapfn !== void 0; var index = 0; var iteratorMethod = getIteratorMethod(O); var length, result, step, iterator; if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : void 0, 2); if (iteratorMethod != void 0 && !(C == Array && isArrayIteratorMethod(iteratorMethod))) { iterator = iteratorMethod.call(O); result = new C(); for (; !(step = iterator.next()).done; index++) { createProperty(result, index, mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value); } } else { length = toLength(O.length); result = new C(length); for (; length > index; index++) { createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]); } } result.length = index; return result; }; }, "./node_modules/core-js/internals/array-includes.js": function(module3, exports2, __webpack_require__) { var toIndexedObject = __webpack_require__("./node_modules/core-js/internals/to-indexed-object.js"); var toLength = __webpack_require__("./node_modules/core-js/internals/to-length.js"); var toAbsoluteIndex = __webpack_require__("./node_modules/core-js/internals/to-absolute-index.js"); module3.exports = function(IS_INCLUDES) { return function($this, el, fromIndex) { var O = toIndexedObject($this); var length = toLength(O.length); var index = toAbsoluteIndex(fromIndex, length); var value; if (IS_INCLUDES && el != el) while (length > index) { value = O[index++]; if (value != value) return true; } else for (; length > index; index++) if (IS_INCLUDES || index in O) { if (O[index] === el) return IS_INCLUDES || index || 0; } return !IS_INCLUDES && -1; }; }; }, "./node_modules/core-js/internals/bind-context.js": function(module3, exports2, __webpack_require__) { var aFunction = __webpack_require__("./node_modules/core-js/internals/a-function.js"); module3.exports = function(fn2, that, length) { aFunction(fn2); if (that === void 0) return fn2; switch (length) { case 0: return function() { return fn2.call(that); }; case 1: return function(a) { return fn2.call(that, a); }; case 2: return function(a, b) { return fn2.call(that, a, b); }; case 3: return function(a, b, c) { return fn2.call(that, a, b, c); }; } return function() { return fn2.apply(that, arguments); }; }; }, "./node_modules/core-js/internals/call-with-safe-iteration-closing.js": function(module3, exports2, __webpack_require__) { var anObject = __webpack_require__("./node_modules/core-js/internals/an-object.js"); module3.exports = function(iterator, fn2, value, ENTRIES) { try { return ENTRIES ? fn2(anObject(value)[0], value[1]) : fn2(value); } catch (error) { var returnMethod = iterator["return"]; if (returnMethod !== void 0) anObject(returnMethod.call(iterator)); throw error; } }; }, "./node_modules/core-js/internals/check-correctness-of-iteration.js": function(module3, exports2, __webpack_require__) { var wellKnownSymbol = __webpack_require__("./node_modules/core-js/internals/well-known-symbol.js"); var ITERATOR = wellKnownSymbol("iterator"); var SAFE_CLOSING = false; try { var called = 0; var iteratorWithReturn = { next: function() { return { done: !!called++ }; }, "return": function() { SAFE_CLOSING = true; } }; iteratorWithReturn[ITERATOR] = function() { return this; }; Array.from(iteratorWithReturn, function() { throw 2; }); } catch (error) { } module3.exports = function(exec, SKIP_CLOSING) { if (!SKIP_CLOSING && !SAFE_CLOSING) return false; var ITERATION_SUPPORT = false; try { var object = {}; object[ITERATOR] = function() { return { next: function() { return { done: ITERATION_SUPPORT = true }; } }; }; exec(object); } catch (error) { } return ITERATION_SUPPORT; }; }, "./node_modules/core-js/internals/classof-raw.js": function(module3, exports2) { var toString = {}.toString; module3.exports = function(it) { return toString.call(it).slice(8, -1); }; }, "./node_modules/core-js/internals/classof.js": function(module3, exports2, __webpack_require__) { var classofRaw = __webpack_require__("./node_modules/core-js/internals/classof-raw.js"); var wellKnownSymbol = __webpack_require__("./node_modules/core-js/internals/well-known-symbol.js"); var TO_STRING_TAG = wellKnownSymbol("toStringTag"); var CORRECT_ARGUMENTS = classofRaw(function() { return arguments; }()) == "Arguments"; var tryGet = function(it, key) { try { return it[key]; } catch (error) { } }; module3.exports = function(it) { var O, tag, result; return it === void 0 ? "Undefined" : it === null ? "Null" : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == "string" ? tag : CORRECT_ARGUMENTS ? classofRaw(O) : (result = classofRaw(O)) == "Object" && typeof O.callee == "function" ? "Arguments" : result; }; }, "./node_modules/core-js/internals/copy-constructor-properties.js": function(module3, exports2, __webpack_require__) { var has = __webpack_require__("./node_modules/core-js/internals/has.js"); var ownKeys = __webpack_require__("./node_modules/core-js/internals/own-keys.js"); var getOwnPropertyDescriptorModule = __webpack_require__("./node_modules/core-js/internals/object-get-own-property-descriptor.js"); var definePropertyModule = __webpack_require__("./node_modules/core-js/internals/object-define-property.js"); module3.exports = function(target, source) { var keys = ownKeys(source); var defineProperty = definePropertyModule.f; var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; for (var i = 0; i < keys.length; i++) { var key = keys[i]; if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key)); } }; }, "./node_modules/core-js/internals/correct-prototype-getter.js": function(module3, exports2, __webpack_require__) { var fails = __webpack_require__("./node_modules/core-js/internals/fails.js"); module3.exports = !fails(function() { function F() { } F.prototype.constructor = null; return Object.getPrototypeOf(new F()) !== F.prototype; }); }, "./node_modules/core-js/internals/create-iterator-constructor.js": function(module3, exports2, __webpack_require__) { "use strict"; var IteratorPrototype = __webpack_require__("./node_modules/core-js/internals/iterators-core.js").IteratorPrototype; var create = __webpack_require__("./node_modules/core-js/internals/object-create.js"); var createPropertyDescriptor = __webpack_require__("./node_modules/core-js/internals/create-property-descriptor.js"); var setToStringTag = __webpack_require__("./node_modules/core-js/internals/set-to-string-tag.js"); var Iterators = __webpack_require__("./node_modules/core-js/internals/iterators.js"); var returnThis = function() { return this; }; module3.exports = function(IteratorConstructor, NAME, next) { var TO_STRING_TAG = NAME + " Iterator"; IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) }); setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true); Iterators[TO_STRING_TAG] = returnThis; return IteratorConstructor; }; }, "./node_modules/core-js/internals/create-property-descriptor.js": function(module3, exports2) { module3.exports = function(bitmap, value) { return { enumerable: !(bitmap & 1), configurable: !(bitmap & 2), writable: !(bitmap & 4), value }; }; }, "./node_modules/core-js/internals/create-property.js": function(module3, exports2, __webpack_require__) { "use strict"; var toPrimitive = __webpack_require__("./node_modules/core-js/internals/to-primitive.js"); var definePropertyModule = __webpack_require__("./node_modules/core-js/internals/object-define-property.js"); var createPropertyDescriptor = __webpack_require__("./node_modules/core-js/internals/create-property-descriptor.js"); module3.exports = function(object, key, value) { var propertyKey = toPrimitive(key); if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value)); else object[propertyKey] = value; }; }, "./node_modules/core-js/internals/define-iterator.js": function(module3, exports2, __webpack_require__) { "use strict"; var $ = __webpack_require__("./node_modules/core-js/internals/export.js"); var createIteratorConstructor = __webpack_require__("./node_modules/core-js/internals/create-iterator-constructor.js"); var getPrototypeOf = __webpack_require__("./node_modules/core-js/internals/object-get-prototype-of.js"); var setPrototypeOf = __webpack_require__("./node_modules/core-js/internals/object-set-prototype-of.js"); var setToStringTag = __webpack_require__("./node_modules/core-js/internals/set-to-string-tag.js"); var hide2 = __webpack_require__("./node_modules/core-js/internals/hide.js"); var redefine = __webpack_require__("./node_modules/core-js/internals/redefine.js"); var wellKnownSymbol = __webpack_require__("./node_modules/core-js/internals/well-known-symbol.js"); var IS_PURE = __webpack_require__("./node_modules/core-js/internals/is-pure.js"); var Iterators = __webpack_require__("./node_modules/core-js/internals/iterators.js"); var IteratorsCore = __webpack_require__("./node_modules/core-js/internals/iterators-core.js"); var IteratorPrototype = IteratorsCore.IteratorPrototype; var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS; var ITERATOR = wellKnownSymbol("iterator"); var KEYS = "keys"; var VALUES = "values"; var ENTRIES = "entries"; var returnThis = function() { return this; }; module3.exports = function(Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) { createIteratorConstructor(IteratorConstructor, NAME, next); var getIterationMethod = function(KIND) { if (KIND === DEFAULT && defaultIterator) return defaultIterator; if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND]; switch (KIND) { case KEYS: return function keys() { return new IteratorConstructor(this, KIND); }; case VALUES: return function values2() { return new IteratorConstructor(this, KIND); }; case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); }; } return function() { return new IteratorConstructor(this); }; }; var TO_STRING_TAG = NAME + " Iterator"; var INCORRECT_VALUES_NAME = false; var IterablePrototype = Iterable.prototype; var nativeIterator = IterablePrototype[ITERATOR] || IterablePrototype["@@iterator"] || DEFAULT && IterablePrototype[DEFAULT]; var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT); var anyNativeIterator = NAME == "Array" ? IterablePrototype.entries || nativeIterator : nativeIterator; var CurrentIteratorPrototype, methods, KEY; if (anyNativeIterator) { CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable())); if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) { if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) { if (setPrototypeOf) { setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype); } else if (typeof CurrentIteratorPrototype[ITERATOR] != "function") { hide2(CurrentIteratorPrototype, ITERATOR, returnThis); } } setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true); if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis; } } if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) { INCORRECT_VALUES_NAME = true; defaultIterator = function values2() { return nativeIterator.call(this); }; } if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) { hide2(IterablePrototype, ITERATOR, defaultIterator); } Iterators[NAME] = defaultIterator; if (DEFAULT) { methods = { values: getIterationMethod(VALUES), keys: IS_SET ? defaultIterator : getIterationMethod(KEYS), entries: getIterationMethod(ENTRIES) }; if (FORCED) for (KEY in methods) { if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) { redefine(IterablePrototype, KEY, methods[KEY]); } } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods); } return methods; }; }, "./node_modules/core-js/internals/descriptors.js": function(module3, exports2, __webpack_require__) { var fails = __webpack_require__("./node_modules/core-js/internals/fails.js"); module3.exports = !fails(function() { return Object.defineProperty({}, "a", { get: function() { return 7; } }).a != 7; }); }, "./node_modules/core-js/internals/document-create-element.js": function(module3, exports2, __webpack_require__) { var global2 = __webpack_require__("./node_modules/core-js/internals/global.js"); var isObject = __webpack_require__("./node_modules/core-js/internals/is-object.js"); var document2 = global2.document; var exist = isObject(document2) && isObject(document2.createElement); module3.exports = function(it) { return exist ? document2.createElement(it) : {}; }; }, "./node_modules/core-js/internals/enum-bug-keys.js": function(module3, exports2) { module3.exports = [ "constructor", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "toLocaleString", "toString", "valueOf" ]; }, "./node_modules/core-js/internals/export.js": function(module3, exports2, __webpack_require__) { var global2 = __webpack_require__("./node_modules/core-js/internals/global.js"); var getOwnPropertyDescriptor = __webpack_require__("./node_modules/core-js/internals/object-get-own-property-descriptor.js").f; var hide2 = __webpack_require__("./node_modules/core-js/internals/hide.js"); var redefine = __webpack_require__("./node_modules/core-js/internals/redefine.js"); var setGlobal = __webpack_require__("./node_modules/core-js/internals/set-global.js"); var copyConstructorProperties = __webpack_require__("./node_modules/core-js/internals/copy-constructor-properties.js"); var isForced = __webpack_require__("./node_modules/core-js/internals/is-forced.js"); module3.exports = function(options, source) { var TARGET = options.target; var GLOBAL = options.global; var STATIC = options.stat; var FORCED, target, key, targetProperty, sourceProperty, descriptor; if (GLOBAL) { target = global2; } else if (STATIC) { target = global2[TARGET] || setGlobal(TARGET, {}); } else { target = (global2[TARGET] || {}).prototype; } if (target) for (key in source) { sourceProperty = source[key]; if (options.noTargetGet) { descriptor = getOwnPropertyDescriptor(target, key); targetProperty = descriptor && descriptor.value; } else targetProperty = target[key]; FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? "." : "#") + key, options.forced); if (!FORCED && targetProperty !== void 0) { if (typeof sourceProperty === typeof targetProperty) continue; copyConstructorProperties(sourceProperty, targetProperty); } if (options.sham || targetProperty && targetProperty.sham) { hide2(sourceProperty, "sham", true); } redefine(target, key, sourceProperty, options); } }; }, "./node_modules/core-js/internals/fails.js": function(module3, exports2) { module3.exports = function(exec) { try { return !!exec(); } catch (error) { return true; } }; }, "./node_modules/core-js/internals/function-to-string.js": function(module3, exports2, __webpack_require__) { var shared = __webpack_require__("./node_modules/core-js/internals/shared.js"); module3.exports = shared("native-function-to-string", Function.toString); }, "./node_modules/core-js/internals/get-iterator-method.js": function(module3, exports2, __webpack_require__) { var classof = __webpack_require__("./node_modules/core-js/internals/classof.js"); var Iterators = __webpack_require__("./node_modules/core-js/internals/iterators.js"); var wellKnownSymbol = __webpack_require__("./node_modules/core-js/internals/well-known-symbol.js"); var ITERATOR = wellKnownSymbol("iterator"); module3.exports = function(it) { if (it != void 0) return it[ITERATOR] || it["@@iterator"] || Iterators[classof(it)]; }; }, "./node_modules/core-js/internals/global.js": function(module3, exports2, __webpack_require__) { (function(global2) { var O = "object"; var check = function(it) { return it && it.Math == Math && it; }; module3.exports = check(typeof globalThis == O && globalThis) || check(typeof window == O && window) || check(typeof self == O && self) || check(typeof global2 == O && global2) || Function("return this")(); }).call(this, __webpack_require__("./node_modules/webpack/buildin/global.js")); }, "./node_modules/core-js/internals/has.js": function(module3, exports2) { var hasOwnProperty = {}.hasOwnProperty; module3.exports = function(it, key) { return hasOwnProperty.call(it, key); }; }, "./node_modules/core-js/internals/hidden-keys.js": function(module3, exports2) { module3.exports = {}; }, "./node_modules/core-js/internals/hide.js": function(module3, exports2, __webpack_require__) { var DESCRIPTORS = __webpack_require__("./node_modules/core-js/internals/descriptors.js"); var definePropertyModule = __webpack_require__("./node_modules/core-js/internals/object-define-property.js"); var createPropertyDescriptor = __webpack_require__("./node_modules/core-js/internals/create-property-descriptor.js"); module3.exports = DESCRIPTORS ? function(object, key, value) { return definePropertyModule.f(object, key, createPropertyDescriptor(1, value)); } : function(object, key, value) { object[key] = value; return object; }; }, "./node_modules/core-js/internals/html.js": function(module3, exports2, __webpack_require__) { var global2 = __webpack_require__("./node_modules/core-js/internals/global.js"); var document2 = global2.document; module3.exports = document2 && document2.documentElement; }, "./node_modules/core-js/internals/ie8-dom-define.js": function(module3, exports2, __webpack_require__) { var DESCRIPTORS = __webpack_require__("./node_modules/core-js/internals/descriptors.js"); var fails = __webpack_require__("./node_modules/core-js/internals/fails.js"); var createElement = __webpack_require__("./node_modules/core-js/internals/document-create-element.js"); module3.exports = !DESCRIPTORS && !fails(function() { return Object.defineProperty(createElement("div"), "a", { get: function() { return 7; } }).a != 7; }); }, "./node_modules/core-js/internals/indexed-object.js": function(module3, exports2, __webpack_require__) { var fails = __webpack_require__("./node_modules/core-js/internals/fails.js"); var classof = __webpack_require__("./node_modules/core-js/internals/classof-raw.js"); var split = "".split; module3.exports = fails(function() { return !Object("z").propertyIsEnumerable(0); }) ? function(it) { return classof(it) == "String" ? split.call(it, "") : Object(it); } : Object; }, "./node_modules/core-js/internals/internal-state.js": function(module3, exports2, __webpack_require__) { var NATIVE_WEAK_MAP = __webpack_require__("./node_modules/core-js/internals/native-weak-map.js"); var global2 = __webpack_require__("./node_modules/core-js/internals/global.js"); var isObject = __webpack_require__("./node_modules/core-js/internals/is-object.js"); var hide2 = __webpack_require__("./node_modules/core-js/internals/hide.js"); var objectHas = __webpack_require__("./node_modules/core-js/internals/has.js"); var sharedKey = __webpack_require__("./node_modules/core-js/internals/shared-key.js"); var hiddenKeys = __webpack_require__("./node_modules/core-js/internals/hidden-keys.js"); var WeakMap = global2.WeakMap; var set, get, has; var enforce = function(it) { return has(it) ? get(it) : set(it, {}); }; var getterFor = function(TYPE) { return function(it) { var state; if (!isObject(it) || (state = get(it)).type !== TYPE) { throw TypeError("Incompatible receiver, " + TYPE + " required"); } return state; }; }; if (NATIVE_WEAK_MAP) { var store = new WeakMap(); var wmget = store.get; var wmhas = store.has; var wmset = store.set; set = function(it, metadata) { wmset.call(store, it, metadata); return metadata; }; get = function(it) { return wmget.call(store, it) || {}; }; has = function(it) { return wmhas.call(store, it); }; } else { var STATE = sharedKey("state"); hiddenKeys[STATE] = true; set = function(it, metadata) { hide2(it, STATE, metadata); return metadata; }; get = function(it) { return objectHas(it, STATE) ? it[STATE] : {}; }; has = function(it) { return objectHas(it, STATE); }; } module3.exports = { set, get, has, enforce, getterFor }; }, "./node_modules/core-js/internals/is-array-iterator-method.js": function(module3, exports2, __webpack_require__) { var wellKnownSymbol = __webpack_require__("./node_modules/core-js/internals/well-known-symbol.js"); var Iterators = __webpack_require__("./node_modules/core-js/internals/iterators.js"); var ITERATOR = wellKnownSymbol("iterator"); var ArrayPrototype = Array.prototype; module3.exports = function(it) { return it !== void 0 && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it); }; }, "./node_modules/core-js/internals/is-forced.js": function(module3, exports2, __webpack_require__) { var fails = __webpack_require__("./node_modules/core-js/internals/fails.js"); var replacement = /#|\.prototype\./; var isForced = function(feature, detection) { var value = data[normalize(feature)]; return value == POLYFILL ? true : value == NATIVE ? false : typeof detection == "function" ? fails(detection) : !!detection; }; var normalize = isForced.normalize = function(string) { return String(string).replace(replacement, ".").toLowerCase(); }; var data = isForced.data = {}; var NATIVE = isForced.NATIVE = "N"; var POLYFILL = isForced.POLYFILL = "P"; module3.exports = isForced; }, "./node_modules/core-js/internals/is-object.js": function(module3, exports2) { module3.exports = function(it) { return typeof it === "object" ? it !== null : typeof it === "function"; }; }, "./node_modules/core-js/internals/is-pure.js": function(module3, exports2) { module3.exports = false; }, "./node_modules/core-js/internals/iterators-core.js": function(module3, exports2, __webpack_require__) { "use strict"; var getPrototypeOf = __webpack_require__("./node_modules/core-js/internals/object-get-prototype-of.js"); var hide2 = __webpack_require__("./node_modules/core-js/internals/hide.js"); var has = __webpack_require__("./node_modules/core-js/internals/has.js"); var wellKnownSymbol = __webpack_require__("./node_modules/core-js/internals/well-known-symbol.js"); var IS_PURE = __webpack_require__("./node_modules/core-js/internals/is-pure.js"); var ITERATOR = wellKnownSymbol("iterator"); var BUGGY_SAFARI_ITERATORS = false; var returnThis = function() { return this; }; var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator; if ([].keys) { arrayIterator = [].keys(); if (!("next" in arrayIterator)) BUGGY_SAFARI_ITERATORS = true; else { PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator)); if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype; } } if (IteratorPrototype == void 0) IteratorPrototype = {}; if (!IS_PURE && !has(IteratorPrototype, ITERATOR)) hide2(IteratorPrototype, ITERATOR, returnThis); module3.exports = { IteratorPrototype, BUGGY_SAFARI_ITERATORS }; }, "./node_modules/core-js/internals/iterators.js": function(module3, exports2) { module3.exports = {}; }, "./node_modules/core-js/internals/native-symbol.js": function(module3, exports2, __webpack_require__) { var fails = __webpack_require__("./node_modules/core-js/internals/fails.js"); module3.exports = !!Object.getOwnPropertySymbols && !fails(function() { return !String(Symbol()); }); }, "./node_modules/core-js/internals/native-weak-map.js": function(module3, exports2, __webpack_require__) { var global2 = __webpack_require__("./node_modules/core-js/internals/global.js"); var nativeFunctionToString = __webpack_require__("./node_modules/core-js/internals/function-to-string.js"); var WeakMap = global2.WeakMap; module3.exports = typeof WeakMap === "function" && /native code/.test(nativeFunctionToString.call(WeakMap)); }, "./node_modules/core-js/internals/object-create.js": function(module3, exports2, __webpack_require__) { var anObject = __webpack_require__("./node_modules/core-js/internals/an-object.js"); var defineProperties = __webpack_require__("./node_modules/core-js/internals/object-define-properties.js"); var enumBugKeys = __webpack_require__("./node_modules/core-js/internals/enum-bug-keys.js"); var hiddenKeys = __webpack_require__("./node_modules/core-js/internals/hidden-keys.js"); var html = __webpack_require__("./node_modules/core-js/internals/html.js"); var documentCreateElement = __webpack_require__("./node_modules/core-js/internals/document-create-element.js"); var sharedKey = __webpack_require__("./node_modules/core-js/internals/shared-key.js"); var IE_PROTO = sharedKey("IE_PROTO"); var PROTOTYPE = "prototype"; var Empty = function() { }; var createDict = function() { var iframe = documentCreateElement("iframe"); var length = enumBugKeys.length; var lt = "<"; var script = "script"; var gt = ">"; var js = "java" + script + ":"; var iframeDocument; iframe.style.display = "none"; html.appendChild(iframe); iframe.src = String(js); iframeDocument = iframe.contentWindow.document; iframeDocument.open(); iframeDocument.write(lt + script + gt + "document.F=Object" + lt + "/" + script + gt); iframeDocument.close(); createDict = iframeDocument.F; while (length--) delete createDict[PROTOTYPE][enumBugKeys[length]]; return createDict(); }; module3.exports = Object.create || function create(O, Properties) { var result; if (O !== null) { Empty[PROTOTYPE] = anObject(O); result = new Empty(); Empty[PROTOTYPE] = null; result[IE_PROTO] = O; } else result = createDict(); return Properties === void 0 ? result : defineProperties(result, Properties); }; hiddenKeys[IE_PROTO] = true; }, "./node_modules/core-js/internals/object-define-properties.js": function(module3, exports2, __webpack_require__) { var DESCRIPTORS = __webpack_require__("./node_modules/core-js/internals/descriptors.js"); var definePropertyModule = __webpack_require__("./node_modules/core-js/internals/object-define-property.js"); var anObject = __webpack_require__("./node_modules/core-js/internals/an-object.js"); var objectKeys = __webpack_require__("./node_modules/core-js/internals/object-keys.js"); module3.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) { anObject(O); var keys = objectKeys(Properties); var length = keys.length; var i = 0; var key; while (length > i) definePropertyModule.f(O, key = keys[i++], Properties[key]); return O; }; }, "./node_modules/core-js/internals/object-define-property.js": function(module3, exports2, __webpack_require__) { var DESCRIPTORS = __webpack_require__("./node_modules/core-js/internals/descriptors.js"); var IE8_DOM_DEFINE = __webpack_require__("./node_modules/core-js/internals/ie8-dom-define.js"); var anObject = __webpack_require__("./node_modules/core-js/internals/an-object.js"); var toPrimitive = __webpack_require__("./node_modules/core-js/internals/to-primitive.js"); var nativeDefineProperty = Object.defineProperty; exports2.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) { anObject(O); P = toPrimitive(P, true); anObject(Attributes); if (IE8_DOM_DEFINE) try { return nativeDefineProperty(O, P, Attributes); } catch (error) { } if ("get" in Attributes || "set" in Attributes) throw TypeError("Accessors not supported"); if ("value" in Attributes) O[P] = Attributes.value; return O; }; }, "./node_modules/core-js/internals/object-get-own-property-descriptor.js": function(module3, exports2, __webpack_require__) { var DESCRIPTORS = __webpack_require__("./node_modules/core-js/internals/descriptors.js"); var propertyIsEnumerableModule = __webpack_require__("./node_modules/core-js/internals/object-property-is-enumerable.js"); var createPropertyDescriptor = __webpack_require__("./node_modules/core-js/internals/create-property-descriptor.js"); var toIndexedObject = __webpack_require__("./node_modules/core-js/internals/to-indexed-object.js"); var toPrimitive = __webpack_require__("./node_modules/core-js/internals/to-primitive.js"); var has = __webpack_require__("./node_modules/core-js/internals/has.js"); var IE8_DOM_DEFINE = __webpack_require__("./node_modules/core-js/internals/ie8-dom-define.js"); var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; exports2.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { O = toIndexedObject(O); P = toPrimitive(P, true); if (IE8_DOM_DEFINE) try { return nativeGetOwnPropertyDescriptor(O, P); } catch (error) { } if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]); }; }, "./node_modules/core-js/internals/object-get-own-property-names.js": function(module3, exports2, __webpack_require__) { var internalObjectKeys = __webpack_require__("./node_modules/core-js/internals/object-keys-internal.js"); var enumBugKeys = __webpack_require__("./node_modules/core-js/internals/enum-bug-keys.js"); var hiddenKeys = enumBugKeys.concat("length", "prototype"); exports2.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { return internalObjectKeys(O, hiddenKeys); }; }, "./node_modules/core-js/internals/object-get-own-property-symbols.js": function(module3, exports2) { exports2.f = Object.getOwnPropertySymbols; }, "./node_modules/core-js/internals/object-get-prototype-of.js": function(module3, exports2, __webpack_require__) { var has = __webpack_require__("./node_modules/core-js/internals/has.js"); var toObject = __webpack_require__("./node_modules/core-js/internals/to-object.js"); var sharedKey = __webpack_require__("./node_modules/core-js/internals/shared-key.js"); var CORRECT_PROTOTYPE_GETTER = __webpack_require__("./node_modules/core-js/internals/correct-prototype-getter.js"); var IE_PROTO = sharedKey("IE_PROTO"); var ObjectPrototype = Object.prototype; module3.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function(O) { O = toObject(O); if (has(O, IE_PROTO)) return O[IE_PROTO]; if (typeof O.constructor == "function" && O instanceof O.constructor) { return O.constructor.prototype; } return O instanceof Object ? ObjectPrototype : null; }; }, "./node_modules/core-js/internals/object-keys-internal.js": function(module3, exports2, __webpack_require__) { var has = __webpack_require__("./node_modules/core-js/internals/has.js"); var toIndexedObject = __webpack_require__("./node_modules/core-js/internals/to-indexed-object.js"); var arrayIncludes = __webpack_require__("./node_modules/core-js/internals/array-includes.js"); var hiddenKeys = __webpack_require__("./node_modules/core-js/internals/hidden-keys.js"); var arrayIndexOf = arrayIncludes(false); module3.exports = function(object, names) { var O = toIndexedObject(object); var i = 0; var result = []; var key; for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key); while (names.length > i) if (has(O, key = names[i++])) { ~arrayIndexOf(result, key) || result.push(key); } return result; }; }, "./node_modules/core-js/internals/object-keys.js": function(module3, exports2, __webpack_require__) { var internalObjectKeys = __webpack_require__("./node_modules/core-js/internals/object-keys-internal.js"); var enumBugKeys = __webpack_require__("./node_modules/core-js/internals/enum-bug-keys.js"); module3.exports = Object.keys || function keys(O) { return internalObjectKeys(O, enumBugKeys); }; }, "./node_modules/core-js/internals/object-property-is-enumerable.js": function(module3, exports2, __webpack_require__) { "use strict"; var nativePropertyIsEnumerable = {}.propertyIsEnumerable; var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; var NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1); exports2.f = NASHORN_BUG ? function propertyIsEnumerable(V) { var descriptor = getOwnPropertyDescriptor(this, V); return !!descriptor && descriptor.enumerable; } : nativePropertyIsEnumerable; }, "./node_modules/core-js/internals/object-set-prototype-of.js": function(module3, exports2, __webpack_require__) { var validateSetPrototypeOfArguments = __webpack_require__("./node_modules/core-js/internals/validate-set-prototype-of-arguments.js"); module3.exports = Object.setPrototypeOf || ("__proto__" in {} ? function() { var correctSetter = false; var test = {}; var setter; try { setter = Object.getOwnPropertyDescriptor(Object.prototype, "__proto__").set; setter.call(test, []); correctSetter = test instanceof Array; } catch (error) { } return function setPrototypeOf(O, proto) { validateSetPrototypeOfArguments(O, proto); if (correctSetter) setter.call(O, proto); else O.__proto__ = proto; return O; }; }() : void 0); }, "./node_modules/core-js/internals/own-keys.js": function(module3, exports2, __webpack_require__) { var global2 = __webpack_require__("./node_modules/core-js/internals/global.js"); var getOwnPropertyNamesModule = __webpack_require__("./node_modules/core-js/internals/object-get-own-property-names.js"); var getOwnPropertySymbolsModule = __webpack_require__("./node_modules/core-js/internals/object-get-own-property-symbols.js"); var anObject = __webpack_require__("./node_modules/core-js/internals/an-object.js"); var Reflect2 = global2.Reflect; module3.exports = Reflect2 && Reflect2.ownKeys || function ownKeys(it) { var keys = getOwnPropertyNamesModule.f(anObject(it)); var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys; }; }, "./node_modules/core-js/internals/path.js": function(module3, exports2, __webpack_require__) { module3.exports = __webpack_require__("./node_modules/core-js/internals/global.js"); }, "./node_modules/core-js/internals/redefine.js": function(module3, exports2, __webpack_require__) { var global2 = __webpack_require__("./node_modules/core-js/internals/global.js"); var shared = __webpack_require__("./node_modules/core-js/internals/shared.js"); var hide2 = __webpack_require__("./node_modules/core-js/internals/hide.js"); var has = __webpack_require__("./node_modules/core-js/internals/has.js"); var setGlobal = __webpack_require__("./node_modules/core-js/internals/set-global.js"); var nativeFunctionToString = __webpack_require__("./node_modules/core-js/internals/function-to-string.js"); var InternalStateModule = __webpack_require__("./node_modules/core-js/internals/internal-state.js"); var getInternalState = InternalStateModule.get; var enforceInternalState = InternalStateModule.enforce; var TEMPLATE = String(nativeFunctionToString).split("toString"); shared("inspectSource", function(it) { return nativeFunctionToString.call(it); }); (module3.exports = function(O, key, value, options) { var unsafe = options ? !!options.unsafe : false; var simple = options ? !!options.enumerable : false; var noTargetGet = options ? !!options.noTargetGet : false; if (typeof value == "function") { if (typeof key == "string" && !has(value, "name")) hide2(value, "name", key); enforceInternalState(value).source = TEMPLATE.join(typeof key == "string" ? key : ""); } if (O === global2) { if (simple) O[key] = value; else setGlobal(key, value); return; } else if (!unsafe) { delete O[key]; } else if (!noTargetGet && O[key]) { simple = true; } if (simple) O[key] = value; else hide2(O, key, value); })(Function.prototype, "toString", function toString() { return typeof this == "function" && getInternalState(this).source || nativeFunctionToString.call(this); }); }, "./node_modules/core-js/internals/require-object-coercible.js": function(module3, exports2) { module3.exports = function(it) { if (it == void 0) throw TypeError("Can't call method on " + it); return it; }; }, "./node_modules/core-js/internals/set-global.js": function(module3, exports2, __webpack_require__) { var global2 = __webpack_require__("./node_modules/core-js/internals/global.js"); var hide2 = __webpack_require__("./node_modules/core-js/internals/hide.js"); module3.exports = function(key, value) { try { hide2(global2, key, value); } catch (error) { global2[key] = value; } return value; }; }, "./node_modules/core-js/internals/set-to-string-tag.js": function(module3, exports2, __webpack_require__) { var defineProperty = __webpack_require__("./node_modules/core-js/internals/object-define-property.js").f; var has = __webpack_require__("./node_modules/core-js/internals/has.js"); var wellKnownSymbol = __webpack_require__("./node_modules/core-js/internals/well-known-symbol.js"); var TO_STRING_TAG = wellKnownSymbol("toStringTag"); module3.exports = function(it, TAG, STATIC) { if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) { defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG }); } }; }, "./node_modules/core-js/internals/shared-key.js": function(module3, exports2, __webpack_require__) { var shared = __webpack_require__("./node_modules/core-js/internals/shared.js"); var uid = __webpack_require__("./node_modules/core-js/internals/uid.js"); var keys = shared("keys"); module3.exports = function(key) { return keys[key] || (keys[key] = uid(key)); }; }, "./node_modules/core-js/internals/shared.js": function(module3, exports2, __webpack_require__) { var global2 = __webpack_require__("./node_modules/core-js/internals/global.js"); var setGlobal = __webpack_require__("./node_modules/core-js/internals/set-global.js"); var IS_PURE = __webpack_require__("./node_modules/core-js/internals/is-pure.js"); var SHARED = "__core-js_shared__"; var store = global2[SHARED] || setGlobal(SHARED, {}); (module3.exports = function(key, value) { return store[key] || (store[key] = value !== void 0 ? value : {}); })("versions", []).push({ version: "3.1.3", mode: IS_PURE ? "pure" : "global", copyright: "\xA9 2019 Denis Pushkarev (zloirock.ru)" }); }, "./node_modules/core-js/internals/string-at.js": function(module3, exports2, __webpack_require__) { var toInteger = __webpack_require__("./node_modules/core-js/internals/to-integer.js"); var requireObjectCoercible = __webpack_require__("./node_modules/core-js/internals/require-object-coercible.js"); module3.exports = function(that, pos, CONVERT_TO_STRING) { var S = String(requireObjectCoercible(that)); var position = toInteger(pos); var size = S.length; var first, second; if (position < 0 || position >= size) return CONVERT_TO_STRING ? "" : void 0; first = S.charCodeAt(position); return first < 55296 || first > 56319 || position + 1 === size || (second = S.charCodeAt(position + 1)) < 56320 || second > 57343 ? CONVERT_TO_STRING ? S.charAt(position) : first : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 55296 << 10) + (second - 56320) + 65536; }; }, "./node_modules/core-js/internals/to-absolute-index.js": function(module3, exports2, __webpack_require__) { var toInteger = __webpack_require__("./node_modules/core-js/internals/to-integer.js"); var max2 = Math.max; var min2 = Math.min; module3.exports = function(index, length) { var integer = toInteger(index); return integer < 0 ? max2(integer + length, 0) : min2(integer, length); }; }, "./node_modules/core-js/internals/to-indexed-object.js": function(module3, exports2, __webpack_require__) { var IndexedObject = __webpack_require__("./node_modules/core-js/internals/indexed-object.js"); var requireObjectCoercible = __webpack_require__("./node_modules/core-js/internals/require-object-coercible.js"); module3.exports = function(it) { return IndexedObject(requireObjectCoercible(it)); }; }, "./node_modules/core-js/internals/to-integer.js": function(module3, exports2) { var ceil = Math.ceil; var floor = Math.floor; module3.exports = function(argument) { return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument); }; }, "./node_modules/core-js/internals/to-length.js": function(module3, exports2, __webpack_require__) { var toInteger = __webpack_require__("./node_modules/core-js/internals/to-integer.js"); var min2 = Math.min; module3.exports = function(argument) { return argument > 0 ? min2(toInteger(argument), 9007199254740991) : 0; }; }, "./node_modules/core-js/internals/to-object.js": function(module3, exports2, __webpack_require__) { var requireObjectCoercible = __webpack_require__("./node_modules/core-js/internals/require-object-coercible.js"); module3.exports = function(argument) { return Object(requireObjectCoercible(argument)); }; }, "./node_modules/core-js/internals/to-primitive.js": function(module3, exports2, __webpack_require__) { var isObject = __webpack_require__("./node_modules/core-js/internals/is-object.js"); module3.exports = function(it, S) { if (!isObject(it)) return it; var fn2, val; if (S && typeof (fn2 = it.toString) == "function" && !isObject(val = fn2.call(it))) return val; if (typeof (fn2 = it.valueOf) == "function" && !isObject(val = fn2.call(it))) return val; if (!S && typeof (fn2 = it.toString) == "function" && !isObject(val = fn2.call(it))) return val; throw TypeError("Can't convert object to primitive value"); }; }, "./node_modules/core-js/internals/uid.js": function(module3, exports2) { var id = 0; var postfix = Math.random(); module3.exports = function(key) { return "Symbol(".concat(key === void 0 ? "" : key, ")_", (++id + postfix).toString(36)); }; }, "./node_modules/core-js/internals/validate-set-prototype-of-arguments.js": function(module3, exports2, __webpack_require__) { var isObject = __webpack_require__("./node_modules/core-js/internals/is-object.js"); var anObject = __webpack_require__("./node_modules/core-js/internals/an-object.js"); module3.exports = function(O, proto) { anObject(O); if (!isObject(proto) && proto !== null) { throw TypeError("Can't set " + String(proto) + " as a prototype"); } }; }, "./node_modules/core-js/internals/well-known-symbol.js": function(module3, exports2, __webpack_require__) { var global2 = __webpack_require__("./node_modules/core-js/internals/global.js"); var shared = __webpack_require__("./node_modules/core-js/internals/shared.js"); var uid = __webpack_require__("./node_modules/core-js/internals/uid.js"); var NATIVE_SYMBOL = __webpack_require__("./node_modules/core-js/internals/native-symbol.js"); var Symbol2 = global2.Symbol; var store = shared("wks"); module3.exports = function(name) { return store[name] || (store[name] = NATIVE_SYMBOL && Symbol2[name] || (NATIVE_SYMBOL ? Symbol2 : uid)("Symbol." + name)); }; }, "./node_modules/core-js/modules/es.array.from.js": function(module3, exports2, __webpack_require__) { var $ = __webpack_require__("./node_modules/core-js/internals/export.js"); var from = __webpack_require__("./node_modules/core-js/internals/array-from.js"); var checkCorrectnessOfIteration = __webpack_require__("./node_modules/core-js/internals/check-correctness-of-iteration.js"); var INCORRECT_ITERATION = !checkCorrectnessOfIteration(function(iterable) { Array.from(iterable); }); $({ target: "Array", stat: true, forced: INCORRECT_ITERATION }, { from }); }, "./node_modules/core-js/modules/es.string.iterator.js": function(module3, exports2, __webpack_require__) { "use strict"; var codePointAt = __webpack_require__("./node_modules/core-js/internals/string-at.js"); var InternalStateModule = __webpack_require__("./node_modules/core-js/internals/internal-state.js"); var defineIterator = __webpack_require__("./node_modules/core-js/internals/define-iterator.js"); var STRING_ITERATOR = "String Iterator"; var setInternalState = InternalStateModule.set; var getInternalState = InternalStateModule.getterFor(STRING_ITERATOR); defineIterator(String, "String", function(iterated) { setInternalState(this, { type: STRING_ITERATOR, string: String(iterated), index: 0 }); }, function next() { var state = getInternalState(this); var string = state.string; var index = state.index; var point; if (index >= string.length) return { value: void 0, done: true }; point = codePointAt(string, index, true); state.index += point.length; return { value: point, done: false }; }); }, "./node_modules/webpack/buildin/global.js": function(module3, exports2) { var g; g = function() { return this; }(); try { g = g || Function("return this")() || (1, eval)("this"); } catch (e) { if (typeof window === "object") g = window; } module3.exports = g; }, "./src/default-attrs.json": function(module3) { module3.exports = { "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" }; }, "./src/icon.js": function(module3, exports2, __webpack_require__) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); var _extends = Object.assign || function(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function() { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function(Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _dedupe = __webpack_require__("./node_modules/classnames/dedupe.js"); var _dedupe2 = _interopRequireDefault(_dedupe); var _defaultAttrs = __webpack_require__("./src/default-attrs.json"); var _defaultAttrs2 = _interopRequireDefault(_defaultAttrs); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance9, Constructor) { if (!(instance9 instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var Icon = function() { function Icon2(name, contents) { var tags = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : []; _classCallCheck(this, Icon2); this.name = name; this.contents = contents; this.tags = tags; this.attrs = _extends({}, _defaultAttrs2.default, { class: "feather feather-" + name }); } _createClass(Icon2, [{ key: "toSvg", value: function toSvg() { var attrs = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; var combinedAttrs = _extends({}, this.attrs, attrs, { class: (0, _dedupe2.default)(this.attrs.class, attrs.class) }); return "" + this.contents + ""; } }, { key: "toString", value: function toString() { return this.contents; } }]); return Icon2; }(); function attrsToString(attrs) { return Object.keys(attrs).map(function(key) { return key + '="' + attrs[key] + '"'; }).join(" "); } exports2.default = Icon; }, "./src/icons.js": function(module3, exports2, __webpack_require__) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); var _icon = __webpack_require__("./src/icon.js"); var _icon2 = _interopRequireDefault(_icon); var _icons = __webpack_require__("./dist/icons.json"); var _icons2 = _interopRequireDefault(_icons); var _tags = __webpack_require__("./src/tags.json"); var _tags2 = _interopRequireDefault(_tags); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } exports2.default = Object.keys(_icons2.default).map(function(key) { return new _icon2.default(key, _icons2.default[key], _tags2.default[key]); }).reduce(function(object, icon) { object[icon.name] = icon; return object; }, {}); }, "./src/index.js": function(module3, exports2, __webpack_require__) { "use strict"; var _icons = __webpack_require__("./src/icons.js"); var _icons2 = _interopRequireDefault(_icons); var _toSvg = __webpack_require__("./src/to-svg.js"); var _toSvg2 = _interopRequireDefault(_toSvg); var _replace = __webpack_require__("./src/replace.js"); var _replace2 = _interopRequireDefault(_replace); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } module3.exports = { icons: _icons2.default, toSvg: _toSvg2.default, replace: _replace2.default }; }, "./src/replace.js": function(module3, exports2, __webpack_require__) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); var _extends = Object.assign || function(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _dedupe = __webpack_require__("./node_modules/classnames/dedupe.js"); var _dedupe2 = _interopRequireDefault(_dedupe); var _icons = __webpack_require__("./src/icons.js"); var _icons2 = _interopRequireDefault(_icons); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function replace() { var attrs = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; if (typeof document === "undefined") { throw new Error("`feather.replace()` only works in a browser environment."); } var elementsToReplace = document.querySelectorAll("[data-feather]"); Array.from(elementsToReplace).forEach(function(element2) { return replaceElement(element2, attrs); }); } function replaceElement(element2) { var attrs = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; var elementAttrs = getAttrs(element2); var name = elementAttrs["data-feather"]; delete elementAttrs["data-feather"]; var svgString = _icons2.default[name].toSvg(_extends({}, attrs, elementAttrs, { class: (0, _dedupe2.default)(attrs.class, elementAttrs.class) })); var svgDocument = new DOMParser().parseFromString(svgString, "image/svg+xml"); var svgElement = svgDocument.querySelector("svg"); element2.parentNode.replaceChild(svgElement, element2); } function getAttrs(element2) { return Array.from(element2.attributes).reduce(function(attrs, attr2) { attrs[attr2.name] = attr2.value; return attrs; }, {}); } exports2.default = replace; }, "./src/tags.json": function(module3) { module3.exports = { "activity": ["pulse", "health", "action", "motion"], "airplay": ["stream", "cast", "mirroring"], "alert-circle": ["warning", "alert", "danger"], "alert-octagon": ["warning", "alert", "danger"], "alert-triangle": ["warning", "alert", "danger"], "align-center": ["text alignment", "center"], "align-justify": ["text alignment", "justified"], "align-left": ["text alignment", "left"], "align-right": ["text alignment", "right"], "anchor": [], "archive": ["index", "box"], "at-sign": ["mention", "at", "email", "message"], "award": ["achievement", "badge"], "aperture": ["camera", "photo"], "bar-chart": ["statistics", "diagram", "graph"], "bar-chart-2": ["statistics", "diagram", "graph"], "battery": ["power", "electricity"], "battery-charging": ["power", "electricity"], "bell": ["alarm", "notification", "sound"], "bell-off": ["alarm", "notification", "silent"], "bluetooth": ["wireless"], "book-open": ["read", "library"], "book": ["read", "dictionary", "booklet", "magazine", "library"], "bookmark": ["read", "clip", "marker", "tag"], "box": ["cube"], "briefcase": ["work", "bag", "baggage", "folder"], "calendar": ["date"], "camera": ["photo"], "cast": ["chromecast", "airplay"], "chevron-down": ["expand"], "chevron-up": ["collapse"], "circle": ["off", "zero", "record"], "clipboard": ["copy"], "clock": ["time", "watch", "alarm"], "cloud-drizzle": ["weather", "shower"], "cloud-lightning": ["weather", "bolt"], "cloud-rain": ["weather"], "cloud-snow": ["weather", "blizzard"], "cloud": ["weather"], "codepen": ["logo"], "codesandbox": ["logo"], "code": ["source", "programming"], "coffee": ["drink", "cup", "mug", "tea", "cafe", "hot", "beverage"], "columns": ["layout"], "command": ["keyboard", "cmd", "terminal", "prompt"], "compass": ["navigation", "safari", "travel", "direction"], "copy": ["clone", "duplicate"], "corner-down-left": ["arrow", "return"], "corner-down-right": ["arrow"], "corner-left-down": ["arrow"], "corner-left-up": ["arrow"], "corner-right-down": ["arrow"], "corner-right-up": ["arrow"], "corner-up-left": ["arrow"], "corner-up-right": ["arrow"], "cpu": ["processor", "technology"], "credit-card": ["purchase", "payment", "cc"], "crop": ["photo", "image"], "crosshair": ["aim", "target"], "database": ["storage", "memory"], "delete": ["remove"], "disc": ["album", "cd", "dvd", "music"], "dollar-sign": ["currency", "money", "payment"], "droplet": ["water"], "edit": ["pencil", "change"], "edit-2": ["pencil", "change"], "edit-3": ["pencil", "change"], "eye": ["view", "watch"], "eye-off": ["view", "watch", "hide", "hidden"], "external-link": ["outbound"], "facebook": ["logo", "social"], "fast-forward": ["music"], "figma": ["logo", "design", "tool"], "file-minus": ["delete", "remove", "erase"], "file-plus": ["add", "create", "new"], "file-text": ["data", "txt", "pdf"], "film": ["movie", "video"], "filter": ["funnel", "hopper"], "flag": ["report"], "folder-minus": ["directory"], "folder-plus": ["directory"], "folder": ["directory"], "framer": ["logo", "design", "tool"], "frown": ["emoji", "face", "bad", "sad", "emotion"], "gift": ["present", "box", "birthday", "party"], "git-branch": ["code", "version control"], "git-commit": ["code", "version control"], "git-merge": ["code", "version control"], "git-pull-request": ["code", "version control"], "github": ["logo", "version control"], "gitlab": ["logo", "version control"], "globe": ["world", "browser", "language", "translate"], "hard-drive": ["computer", "server", "memory", "data"], "hash": ["hashtag", "number", "pound"], "headphones": ["music", "audio", "sound"], "heart": ["like", "love", "emotion"], "help-circle": ["question mark"], "hexagon": ["shape", "node.js", "logo"], "home": ["house", "living"], "image": ["picture"], "inbox": ["email"], "instagram": ["logo", "camera"], "key": ["password", "login", "authentication", "secure"], "layers": ["stack"], "layout": ["window", "webpage"], "life-bouy": ["help", "life ring", "support"], "link": ["chain", "url"], "link-2": ["chain", "url"], "linkedin": ["logo", "social media"], "list": ["options"], "lock": ["security", "password", "secure"], "log-in": ["sign in", "arrow", "enter"], "log-out": ["sign out", "arrow", "exit"], "mail": ["email", "message"], "map-pin": ["location", "navigation", "travel", "marker"], "map": ["location", "navigation", "travel"], "maximize": ["fullscreen"], "maximize-2": ["fullscreen", "arrows", "expand"], "meh": ["emoji", "face", "neutral", "emotion"], "menu": ["bars", "navigation", "hamburger"], "message-circle": ["comment", "chat"], "message-square": ["comment", "chat"], "mic-off": ["record", "sound", "mute"], "mic": ["record", "sound", "listen"], "minimize": ["exit fullscreen", "close"], "minimize-2": ["exit fullscreen", "arrows", "close"], "minus": ["subtract"], "monitor": ["tv", "screen", "display"], "moon": ["dark", "night"], "more-horizontal": ["ellipsis"], "more-vertical": ["ellipsis"], "mouse-pointer": ["arrow", "cursor"], "move": ["arrows"], "music": ["note"], "navigation": ["location", "travel"], "navigation-2": ["location", "travel"], "octagon": ["stop"], "package": ["box", "container"], "paperclip": ["attachment"], "pause": ["music", "stop"], "pause-circle": ["music", "audio", "stop"], "pen-tool": ["vector", "drawing"], "percent": ["discount"], "phone-call": ["ring"], "phone-forwarded": ["call"], "phone-incoming": ["call"], "phone-missed": ["call"], "phone-off": ["call", "mute"], "phone-outgoing": ["call"], "phone": ["call"], "play": ["music", "start"], "pie-chart": ["statistics", "diagram"], "play-circle": ["music", "start"], "plus": ["add", "new"], "plus-circle": ["add", "new"], "plus-square": ["add", "new"], "pocket": ["logo", "save"], "power": ["on", "off"], "printer": ["fax", "office", "device"], "radio": ["signal"], "refresh-cw": ["synchronise", "arrows"], "refresh-ccw": ["arrows"], "repeat": ["loop", "arrows"], "rewind": ["music"], "rotate-ccw": ["arrow"], "rotate-cw": ["arrow"], "rss": ["feed", "subscribe"], "save": ["floppy disk"], "scissors": ["cut"], "search": ["find", "magnifier", "magnifying glass"], "send": ["message", "mail", "email", "paper airplane", "paper aeroplane"], "settings": ["cog", "edit", "gear", "preferences"], "share-2": ["network", "connections"], "shield": ["security", "secure"], "shield-off": ["security", "insecure"], "shopping-bag": ["ecommerce", "cart", "purchase", "store"], "shopping-cart": ["ecommerce", "cart", "purchase", "store"], "shuffle": ["music"], "skip-back": ["music"], "skip-forward": ["music"], "slack": ["logo"], "slash": ["ban", "no"], "sliders": ["settings", "controls"], "smartphone": ["cellphone", "device"], "smile": ["emoji", "face", "happy", "good", "emotion"], "speaker": ["audio", "music"], "star": ["bookmark", "favorite", "like"], "stop-circle": ["media", "music"], "sun": ["brightness", "weather", "light"], "sunrise": ["weather", "time", "morning", "day"], "sunset": ["weather", "time", "evening", "night"], "tablet": ["device"], "tag": ["label"], "target": ["logo", "bullseye"], "terminal": ["code", "command line", "prompt"], "thermometer": ["temperature", "celsius", "fahrenheit", "weather"], "thumbs-down": ["dislike", "bad", "emotion"], "thumbs-up": ["like", "good", "emotion"], "toggle-left": ["on", "off", "switch"], "toggle-right": ["on", "off", "switch"], "tool": ["settings", "spanner"], "trash": ["garbage", "delete", "remove", "bin"], "trash-2": ["garbage", "delete", "remove", "bin"], "triangle": ["delta"], "truck": ["delivery", "van", "shipping", "transport", "lorry"], "tv": ["television", "stream"], "twitch": ["logo"], "twitter": ["logo", "social"], "type": ["text"], "umbrella": ["rain", "weather"], "unlock": ["security"], "user-check": ["followed", "subscribed"], "user-minus": ["delete", "remove", "unfollow", "unsubscribe"], "user-plus": ["new", "add", "create", "follow", "subscribe"], "user-x": ["delete", "remove", "unfollow", "unsubscribe", "unavailable"], "user": ["person", "account"], "users": ["group"], "video-off": ["camera", "movie", "film"], "video": ["camera", "movie", "film"], "voicemail": ["phone"], "volume": ["music", "sound", "mute"], "volume-1": ["music", "sound"], "volume-2": ["music", "sound"], "volume-x": ["music", "sound", "mute"], "watch": ["clock", "time"], "wifi-off": ["disabled"], "wifi": ["connection", "signal", "wireless"], "wind": ["weather", "air"], "x-circle": ["cancel", "close", "delete", "remove", "times", "clear"], "x-octagon": ["delete", "stop", "alert", "warning", "times", "clear"], "x-square": ["cancel", "close", "delete", "remove", "times", "clear"], "x": ["cancel", "close", "delete", "remove", "times", "clear"], "youtube": ["logo", "video", "play"], "zap-off": ["flash", "camera", "lightning"], "zap": ["flash", "camera", "lightning"], "zoom-in": ["magnifying glass"], "zoom-out": ["magnifying glass"] }; }, "./src/to-svg.js": function(module3, exports2, __webpack_require__) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); var _icons = __webpack_require__("./src/icons.js"); var _icons2 = _interopRequireDefault(_icons); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function toSvg(name) { var attrs = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; console.warn("feather.toSvg() is deprecated. Please use feather.icons[name].toSvg() instead."); if (!name) { throw new Error("The required `key` (icon name) parameter is missing."); } if (!_icons2.default[name]) { throw new Error("No icon matching '" + name + "'. See the complete list of icons at https://feathericons.com"); } return _icons2.default[name].toSvg(attrs); } exports2.default = toSvg; }, 0: function(module3, exports2, __webpack_require__) { __webpack_require__("./node_modules/core-js/es/array/from.js"); module3.exports = __webpack_require__("./src/index.js"); } }); }); } }); // node_modules/lodash.groupby/index.js var require_lodash = __commonJS({ "node_modules/lodash.groupby/index.js"(exports, module2) { var LARGE_ARRAY_SIZE = 200; var FUNC_ERROR_TEXT = "Expected a function"; var HASH_UNDEFINED = "__lodash_hash_undefined__"; var UNORDERED_COMPARE_FLAG = 1; var PARTIAL_COMPARE_FLAG = 2; var INFINITY = 1 / 0; var MAX_SAFE_INTEGER = 9007199254740991; var argsTag = "[object Arguments]"; var arrayTag = "[object Array]"; var boolTag = "[object Boolean]"; var dateTag = "[object Date]"; var errorTag = "[object Error]"; var funcTag = "[object Function]"; var genTag = "[object GeneratorFunction]"; var mapTag = "[object Map]"; var numberTag = "[object Number]"; var objectTag = "[object Object]"; var promiseTag = "[object Promise]"; var regexpTag = "[object RegExp]"; var setTag = "[object Set]"; var stringTag = "[object String]"; var symbolTag = "[object Symbol]"; var weakMapTag = "[object WeakMap]"; var arrayBufferTag = "[object ArrayBuffer]"; var dataViewTag = "[object DataView]"; var float32Tag = "[object Float32Array]"; var float64Tag = "[object Float64Array]"; var int8Tag = "[object Int8Array]"; var int16Tag = "[object Int16Array]"; var int32Tag = "[object Int32Array]"; var uint8Tag = "[object Uint8Array]"; var uint8ClampedTag = "[object Uint8ClampedArray]"; var uint16Tag = "[object Uint16Array]"; var uint32Tag = "[object Uint32Array]"; var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/; var reIsPlainProp = /^\w*$/; var reLeadingDot = /^\./; var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; var reEscapeChar = /\\(\\)?/g; var reIsHostCtor = /^\[object .+?Constructor\]$/; var reIsUint = /^(?:0|[1-9]\d*)$/; 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 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 { return freeProcess && freeProcess.binding("util"); } catch (e) { } }(); var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; function arrayAggregator(array, setter, iteratee, accumulator) { var index = -1, length = array ? array.length : 0; while (++index < length) { var value = array[index]; setter(accumulator, value, iteratee(value), array); } return accumulator; } function arraySome(array, predicate) { var index = -1, length = array ? array.length : 0; while (++index < length) { if (predicate(array[index], index, array)) { return true; } } return false; } function baseProperty(key) { return function(object) { return object == null ? void 0 : object[key]; }; } function baseTimes(n, iteratee) { var index = -1, result = Array(n); while (++index < n) { result[index] = iteratee(index); } return result; } function baseUnary(func2) { return function(value) { return func2(value); }; } function getValue(object, key) { return object == null ? void 0 : object[key]; } function isHostObject(value) { var result = false; if (value != null && typeof value.toString != "function") { try { result = !!(value + ""); } catch (e) { } } 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(func2, transform) { return function(arg) { return func2(transform(arg)); }; } function setToArray(set) { var index = -1, result = Array(set.size); set.forEach(function(value) { result[++index] = value; }); return result; } var arrayProto = Array.prototype; var funcProto = Function.prototype; var objectProto = Object.prototype; var coreJsData = root["__core-js_shared__"]; var maskSrcKey = function() { var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ""); return uid ? "Symbol(src)_1." + uid : ""; }(); var funcToString = funcProto.toString; var hasOwnProperty = objectProto.hasOwnProperty; var objectToString = objectProto.toString; var reIsNative = RegExp("^" + funcToString.call(hasOwnProperty).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"); var Symbol2 = root.Symbol; var Uint8Array2 = root.Uint8Array; var propertyIsEnumerable = objectProto.propertyIsEnumerable; var splice = arrayProto.splice; var nativeKeys = overArg(Object.keys, Object); var DataView = getNative(root, "DataView"); var Map2 = getNative(root, "Map"); var Promise2 = getNative(root, "Promise"); var Set2 = getNative(root, "Set"); var WeakMap = getNative(root, "WeakMap"); var nativeCreate = getNative(Object, "create"); var dataViewCtorString = toSource(DataView); var mapCtorString = toSource(Map2); var promiseCtorString = toSource(Promise2); var setCtorString = toSource(Set2); var weakMapCtorString = toSource(WeakMap); var symbolProto = Symbol2 ? Symbol2.prototype : void 0; var symbolValueOf = symbolProto ? symbolProto.valueOf : void 0; var symbolToString = symbolProto ? symbolProto.toString : void 0; function Hash(entries) { var index = -1, length = entries ? entries.length : 0; this.clear(); while (++index < length) { var entry = entries[index]; this.set(entry[0], entry[1]); } } function hashClear() { this.__data__ = nativeCreate ? nativeCreate(null) : {}; } function hashDelete(key) { return this.has(key) && delete this.__data__[key]; } function hashGet(key) { var data = this.__data__; if (nativeCreate) { var result = data[key]; return result === HASH_UNDEFINED ? void 0 : result; } return hasOwnProperty.call(data, key) ? data[key] : void 0; } function hashHas(key) { var data = this.__data__; return nativeCreate ? data[key] !== void 0 : hasOwnProperty.call(data, key); } function hashSet(key, value) { var data = this.__data__; data[key] = nativeCreate && value === void 0 ? 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 ? entries.length : 0; this.clear(); while (++index < length) { var entry = entries[index]; this.set(entry[0], entry[1]); } } function listCacheClear() { this.__data__ = []; } 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); } return true; } function listCacheGet(key) { var data = this.__data__, index = assocIndexOf(data, key); return index < 0 ? void 0 : 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) { 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 ? entries.length : 0; this.clear(); while (++index < length) { var entry = entries[index]; this.set(entry[0], entry[1]); } } function mapCacheClear() { this.__data__ = { "hash": new Hash(), "map": new (Map2 || ListCache)(), "string": new Hash() }; } function mapCacheDelete(key) { return getMapData(this, key)["delete"](key); } function mapCacheGet(key) { return getMapData(this, key).get(key); } function mapCacheHas(key) { return getMapData(this, key).has(key); } function mapCacheSet(key, value) { getMapData(this, key).set(key, value); 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 ? values2.length : 0; 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) { this.__data__ = new ListCache(entries); } function stackClear() { this.__data__ = new ListCache(); } function stackDelete(key) { return this.__data__["delete"](key); } function stackGet(key) { return this.__data__.get(key); } function stackHas(key) { return this.__data__.has(key); } function stackSet(key, value) { var cache = this.__data__; if (cache instanceof ListCache) { var pairs = cache.__data__; if (!Map2 || pairs.length < LARGE_ARRAY_SIZE - 1) { pairs.push([key, value]); return this; } cache = this.__data__ = new MapCache(pairs); } cache.set(key, value); 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 result = isArray(value) || isArguments(value) ? baseTimes(value.length, String) : []; var length = result.length, skipIndexes = !!length; for (var key in value) { if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && (key == "length" || isIndex(key, length)))) { result.push(key); } } return result; } function assocIndexOf(array, key) { var length = array.length; while (length--) { if (eq(array[length][0], key)) { return length; } } return -1; } function baseAggregator(collection, setter, iteratee, accumulator) { baseEach(collection, function(value, key, collection2) { setter(accumulator, value, iteratee(value), collection2); }); return accumulator; } var baseEach = createBaseEach(baseForOwn); var baseFor = createBaseFor(); function baseForOwn(object, iteratee) { return object && baseFor(object, iteratee, keys); } function baseGet(object, path) { path = isKey(path, object) ? [path] : castPath(path); var index = 0, length = path.length; while (object != null && index < length) { object = object[toKey(path[index++])]; } return index && index == length ? object : void 0; } function baseGetTag(value) { return objectToString.call(value); } function baseHasIn(object, key) { return object != null && key in Object(object); } function baseIsEqual(value, other, customizer, bitmask, stack) { if (value === other) { return true; } if (value == null || other == null || !isObject(value) && !isObjectLike(other)) { return value !== value && other !== other; } return baseIsEqualDeep(value, other, baseIsEqual, customizer, bitmask, stack); } function baseIsEqualDeep(object, other, equalFunc, customizer, bitmask, stack) { var objIsArr = isArray(object), othIsArr = isArray(other), objTag = arrayTag, othTag = arrayTag; if (!objIsArr) { objTag = getTag(object); objTag = objTag == argsTag ? objectTag : objTag; } if (!othIsArr) { othTag = getTag(other); othTag = othTag == argsTag ? objectTag : othTag; } var objIsObj = objTag == objectTag && !isHostObject(object), othIsObj = othTag == objectTag && !isHostObject(other), isSameTag = objTag == othTag; if (isSameTag && !objIsObj) { stack || (stack = new Stack()); return objIsArr || isTypedArray(object) ? equalArrays(object, other, equalFunc, customizer, bitmask, stack) : equalByTag(object, other, objTag, equalFunc, customizer, bitmask, stack); } if (!(bitmask & PARTIAL_COMPARE_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, customizer, bitmask, stack); } } if (!isSameTag) { return false; } stack || (stack = new Stack()); return equalObjects(object, other, equalFunc, customizer, bitmask, stack); } function baseIsMatch(object, source, matchData, customizer) { var index = matchData.length, length = index, noCustomizer = !customizer; if (object == null) { return !length; } object = Object(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 === void 0 && !(key in object)) { return false; } } else { var stack = new Stack(); if (customizer) { var result = customizer(objValue, srcValue, key, object, source, stack); } if (!(result === void 0 ? baseIsEqual(srcValue, objValue, customizer, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG, stack) : result)) { return false; } } } return true; } function baseIsNative(value) { if (!isObject(value) || isMasked(value)) { return false; } var pattern = isFunction(value) || isHostObject(value) ? reIsNative : reIsHostCtor; return pattern.test(toSource(value)); } function baseIsTypedArray(value) { return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[objectToString.call(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 result = []; for (var key in Object(object)) { if (hasOwnProperty.call(object, key) && key != "constructor") { result.push(key); } } return result; } 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 === void 0 && objValue === srcValue ? hasIn(object, path) : baseIsEqual(srcValue, objValue, void 0, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG); }; } function basePropertyDeep(path) { return function(object) { return baseGet(object, path); }; } function baseToString(value) { if (typeof value == "string") { return value; } if (isSymbol(value)) { return symbolToString ? symbolToString.call(value) : ""; } var result = value + ""; return result == "0" && 1 / value == -INFINITY ? "-0" : result; } function castPath(value) { return isArray(value) ? value : stringToPath(value); } function createAggregator(setter, initializer) { return function(collection, iteratee) { var func2 = isArray(collection) ? arrayAggregator : baseAggregator, accumulator = initializer ? initializer() : {}; return func2(collection, setter, baseIteratee(iteratee, 2), accumulator); }; } function createBaseEach(eachFunc, fromRight) { return function(collection, iteratee) { if (collection == null) { return collection; } if (!isArrayLike(collection)) { return eachFunc(collection, iteratee); } var length = collection.length, index = fromRight ? length : -1, iterable = Object(collection); while (fromRight ? index-- : ++index < length) { if (iteratee(iterable[index], index, iterable) === false) { break; } } return collection; }; } function createBaseFor(fromRight) { return function(object, iteratee, keysFunc) { var index = -1, iterable = Object(object), props = keysFunc(object), length = props.length; while (length--) { var key = props[fromRight ? length : ++index]; if (iteratee(iterable[key], key, iterable) === false) { break; } } return object; }; } function equalArrays(array, other, equalFunc, customizer, bitmask, stack) { var isPartial = bitmask & PARTIAL_COMPARE_FLAG, arrLength = array.length, othLength = other.length; if (arrLength != othLength && !(isPartial && othLength > arrLength)) { return false; } var stacked = stack.get(array); if (stacked && stack.get(other)) { return stacked == other; } var index = -1, result = true, seen = bitmask & UNORDERED_COMPARE_FLAG ? new SetCache() : void 0; 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 !== void 0) { if (compared) { continue; } result = false; break; } if (seen) { if (!arraySome(other, function(othValue2, othIndex) { if (!seen.has(othIndex) && (arrValue === othValue2 || equalFunc(arrValue, othValue2, customizer, bitmask, stack))) { return seen.add(othIndex); } })) { result = false; break; } } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, customizer, bitmask, stack))) { result = false; break; } } stack["delete"](array); stack["delete"](other); return result; } function equalByTag(object, other, tag, equalFunc, customizer, bitmask, 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 & PARTIAL_COMPARE_FLAG; convert || (convert = setToArray); if (object.size != other.size && !isPartial) { return false; } var stacked = stack.get(object); if (stacked) { return stacked == other; } bitmask |= UNORDERED_COMPARE_FLAG; stack.set(object, other); var result = equalArrays(convert(object), convert(other), equalFunc, customizer, bitmask, stack); stack["delete"](object); return result; case symbolTag: if (symbolValueOf) { return symbolValueOf.call(object) == symbolValueOf.call(other); } } return false; } function equalObjects(object, other, equalFunc, customizer, bitmask, stack) { var isPartial = bitmask & PARTIAL_COMPARE_FLAG, objProps = keys(object), objLength = objProps.length, othProps = keys(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 stacked = stack.get(object); if (stacked && stack.get(other)) { return stacked == other; } var result = 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 === void 0 ? objValue === othValue || equalFunc(objValue, othValue, customizer, bitmask, stack) : compared)) { result = false; break; } skipCtor || (skipCtor = key == "constructor"); } if (result && !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)) { result = false; } } stack["delete"](object); stack["delete"](other); return result; } function getMapData(map, key) { var data = map.__data__; return isKeyable(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map; } function getMatchData(object) { var result = keys(object), length = result.length; while (length--) { var key = result[length], value = object[key]; result[length] = [key, value, isStrictComparable(value)]; } return result; } function getNative(object, key) { var value = getValue(object, key); return baseIsNative(value) ? value : void 0; } 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 || WeakMap && getTag(new WeakMap()) != weakMapTag) { getTag = function(value) { var result = objectToString.call(value), Ctor = result == objectTag ? value.constructor : void 0, ctorString = Ctor ? toSource(Ctor) : void 0; 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 result; }; } function hasPath(object, path, hasFunc) { path = isKey(path, object) ? [path] : castPath(path); var result, index = -1, length = path.length; while (++index < length) { var key = toKey(path[index]); if (!(result = object != null && hasFunc(object, key))) { break; } object = object[key]; } if (result) { return result; } var length = object ? object.length : 0; return !!length && isLength(length) && isIndex(key, length) && (isArray(object) || isArguments(object)); } function isIndex(value, length) { length = length == null ? MAX_SAFE_INTEGER : length; return !!length && (typeof value == "number" || reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length); } 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 Object(object); } function isKeyable(value) { var type = typeof value; return type == "string" || type == "number" || type == "symbol" || type == "boolean" ? value !== "__proto__" : value === null; } function isMasked(func2) { return !!maskSrcKey && maskSrcKey in func2; } 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 !== void 0 || key in Object(object)); }; } var stringToPath = memoize(function(string) { string = toString(string); var result = []; if (reLeadingDot.test(string)) { result.push(""); } string.replace(rePropName, function(match, number, quote, string2) { result.push(quote ? string2.replace(reEscapeChar, "$1") : number || match); }); return result; }); function toKey(value) { if (typeof value == "string" || isSymbol(value)) { return value; } var result = value + ""; return result == "0" && 1 / value == -INFINITY ? "-0" : result; } function toSource(func2) { if (func2 != null) { try { return funcToString.call(func2); } catch (e) { } try { return func2 + ""; } catch (e) { } } return ""; } var groupBy5 = createAggregator(function(result, value, key) { if (hasOwnProperty.call(result, key)) { result[key].push(value); } else { result[key] = [value]; } }); function memoize(func2, resolver) { if (typeof func2 != "function" || resolver && typeof resolver != "function") { throw new TypeError(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 result = func2.apply(this, args); memoized.cache = cache.set(key, result); return result; }; memoized.cache = new (memoize.Cache || MapCache)(); return memoized; } memoize.Cache = MapCache; function eq(value, other) { return value === other || value !== value && other !== other; } function isArguments(value) { return isArrayLikeObject(value) && hasOwnProperty.call(value, "callee") && (!propertyIsEnumerable.call(value, "callee") || objectToString.call(value) == argsTag); } var isArray = Array.isArray; function isArrayLike(value) { return value != null && isLength(value.length) && !isFunction(value); } function isArrayLikeObject(value) { return isObjectLike(value) && isArrayLike(value); } function isFunction(value) { var tag = isObject(value) ? objectToString.call(value) : ""; return tag == funcTag || tag == genTag; } 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 && (type == "object" || type == "function"); } function isObjectLike(value) { return !!value && typeof value == "object"; } function isSymbol(value) { return typeof value == "symbol" || isObjectLike(value) && objectToString.call(value) == symbolTag; } var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; function toString(value) { return value == null ? "" : baseToString(value); } function get(object, path, defaultValue) { var result = object == null ? void 0 : baseGet(object, path); return result === void 0 ? defaultValue : result; } function hasIn(object, path) { return object != null && hasPath(object, path, baseHasIn); } function keys(object) { return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); } function identity(value) { return value; } function property(path) { return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path); } module2.exports = groupBy5; } }); // node_modules/lodash.mergewith/index.js var require_lodash2 = __commonJS({ "node_modules/lodash.mergewith/index.js"(exports, module2) { var LARGE_ARRAY_SIZE = 200; var HASH_UNDEFINED = "__lodash_hash_undefined__"; var HOT_COUNT = 800; var HOT_SPAN = 16; var MAX_SAFE_INTEGER = 9007199254740991; var argsTag = "[object Arguments]"; var arrayTag = "[object Array]"; var asyncTag = "[object AsyncFunction]"; var boolTag = "[object Boolean]"; var dateTag = "[object Date]"; var errorTag = "[object Error]"; var funcTag = "[object Function]"; var genTag = "[object GeneratorFunction]"; var mapTag = "[object Map]"; var numberTag = "[object Number]"; var nullTag = "[object Null]"; var objectTag = "[object Object]"; var proxyTag = "[object Proxy]"; var regexpTag = "[object RegExp]"; var setTag = "[object Set]"; var stringTag = "[object String]"; var undefinedTag = "[object Undefined]"; var weakMapTag = "[object WeakMap]"; var arrayBufferTag = "[object ArrayBuffer]"; var dataViewTag = "[object DataView]"; var float32Tag = "[object Float32Array]"; var float64Tag = "[object Float64Array]"; var int8Tag = "[object Int8Array]"; var int16Tag = "[object Int16Array]"; var int32Tag = "[object Int32Array]"; var uint8Tag = "[object Uint8Array]"; var uint8ClampedTag = "[object Uint8ClampedArray]"; var uint16Tag = "[object Uint16Array]"; var uint32Tag = "[object Uint32Array]"; var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; var reIsHostCtor = /^\[object .+?Constructor\]$/; var reIsUint = /^(?:0|[1-9]\d*)$/; 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 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 nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; function apply(func2, thisArg, args) { switch (args.length) { case 0: return func2.call(thisArg); case 1: return func2.call(thisArg, args[0]); case 2: return func2.call(thisArg, args[0], args[1]); case 3: return func2.call(thisArg, args[0], args[1], args[2]); } return func2.apply(thisArg, args); } function baseTimes(n, iteratee) { var index = -1, result = Array(n); while (++index < n) { result[index] = iteratee(index); } return result; } function baseUnary(func2) { return function(value) { return func2(value); }; } function getValue(object, key) { return object == null ? void 0 : object[key]; } function overArg(func2, transform) { return function(arg) { return func2(transform(arg)); }; } var arrayProto = Array.prototype; var funcProto = Function.prototype; var objectProto = Object.prototype; var coreJsData = root["__core-js_shared__"]; var funcToString = funcProto.toString; var hasOwnProperty = objectProto.hasOwnProperty; 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(Object); var reIsNative = RegExp("^" + funcToString.call(hasOwnProperty).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"); var Buffer2 = moduleExports ? root.Buffer : void 0; var Symbol2 = root.Symbol; var Uint8Array2 = root.Uint8Array; var allocUnsafe = Buffer2 ? Buffer2.allocUnsafe : void 0; var getPrototype = overArg(Object.getPrototypeOf, Object); var objectCreate = Object.create; var propertyIsEnumerable = objectProto.propertyIsEnumerable; var splice = arrayProto.splice; var symToStringTag = Symbol2 ? Symbol2.toStringTag : void 0; var defineProperty = function() { try { var func2 = getNative(Object, "defineProperty"); func2({}, "", {}); return func2; } catch (e) { } }(); var nativeIsBuffer = Buffer2 ? Buffer2.isBuffer : void 0; var nativeMax = Math.max; var nativeNow = Date.now; var Map2 = getNative(root, "Map"); var nativeCreate = getNative(Object, "create"); var baseCreate = function() { function object() { } return function(proto) { if (!isObject(proto)) { return {}; } if (objectCreate) { return objectCreate(proto); } object.prototype = proto; var result = new object(); object.prototype = void 0; return result; }; }(); 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 result = this.has(key) && delete this.__data__[key]; this.size -= result ? 1 : 0; return result; } function hashGet(key) { var data = this.__data__; if (nativeCreate) { var result = data[key]; return result === HASH_UNDEFINED ? void 0 : result; } return hasOwnProperty.call(data, key) ? data[key] : void 0; } function hashHas(key) { var data = this.__data__; return nativeCreate ? data[key] !== void 0 : hasOwnProperty.call(data, key); } function hashSet(key, value) { var data = this.__data__; this.size += this.has(key) ? 0 : 1; data[key] = nativeCreate && value === void 0 ? 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 ? void 0 : 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 result = getMapData(this, key)["delete"](key); this.size -= result ? 1 : 0; return result; } 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), size = data.size; data.set(key, value); this.size += data.size == size ? 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 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__, result = data["delete"](key); this.size = data.size; return result; } 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, result = skipIndexes ? baseTimes(value.length, String) : [], length = result.length; for (var key in value) { if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && (key == "length" || isBuff && (key == "offset" || key == "parent") || isType && (key == "buffer" || key == "byteLength" || key == "byteOffset") || isIndex(key, length)))) { result.push(key); } } return result; } function assignMergeValue(object, key, value) { if (value !== void 0 && !eq(object[key], value) || value === void 0 && !(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 === void 0 && !(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 baseAssignValue(object, key, value) { if (key == "__proto__" && defineProperty) { defineProperty(object, key, { "configurable": true, "enumerable": true, "value": value, "writable": true }); } else { object[key] = value; } } var baseFor = createBaseFor(); function baseGetTag(value) { if (value == null) { return value === void 0 ? undefinedTag : nullTag; } return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value); } function baseIsArguments(value) { return isObjectLike(value) && baseGetTag(value) == argsTag; } function baseIsNative(value) { if (!isObject(value) || isMasked(value)) { return false; } var pattern = isFunction(value) ? reIsNative : reIsHostCtor; return pattern.test(toSource(value)); } function baseIsTypedArray(value) { return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; } function baseKeysIn(object) { if (!isObject(object)) { return nativeKeysIn(object); } var isProto = isPrototype(object), result = []; for (var key in object) { if (!(key == "constructor" && (isProto || !hasOwnProperty.call(object, key)))) { result.push(key); } } return result; } 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) : void 0; if (newValue === void 0) { 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) : void 0; var isCommon = newValue === void 0; 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 baseRest(func2, start2) { return setToString(overRest(func2, start2, identity), func2 + ""); } var baseSetToString = !defineProperty ? identity : function(func2, string) { return defineProperty(func2, "toString", { "configurable": true, "enumerable": false, "value": constant(string), "writable": true }); }; function cloneBuffer(buffer, isDeep) { if (isDeep) { return buffer.slice(); } var length = buffer.length, result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length); buffer.copy(result); return result; } function cloneArrayBuffer(arrayBuffer) { var result = new arrayBuffer.constructor(arrayBuffer.byteLength); new Uint8Array2(result).set(new Uint8Array2(arrayBuffer)); return result; } function cloneTypedArray(typedArray, isDeep) { var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer; return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length); } function copyArray(source, array) { var index = -1, length = source.length; array || (array = Array(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) : void 0; if (newValue === void 0) { newValue = source[key]; } if (isNew) { baseAssignValue(object, key, newValue); } else { assignValue(object, key, newValue); } } return object; } function createAssigner(assigner) { return baseRest(function(object, sources) { var index = -1, length = sources.length, customizer = length > 1 ? sources[length - 1] : void 0, guard = length > 2 ? sources[2] : void 0; customizer = assigner.length > 3 && typeof customizer == "function" ? (length--, customizer) : void 0; if (guard && isIterateeCall(sources[0], sources[1], guard)) { customizer = length < 3 ? void 0 : customizer; length = 1; } object = Object(object); while (++index < length) { var source = sources[index]; if (source) { assigner(object, source, index, customizer); } } return object; }); } function createBaseFor(fromRight) { return function(object, iteratee, keysFunc) { var index = -1, iterable = Object(object), props = keysFunc(object), length = props.length; while (length--) { var key = props[fromRight ? length : ++index]; if (iteratee(iterable[key], key, iterable) === false) { break; } } return object; }; } function getMapData(map, key) { var data = map.__data__; return isKeyable(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map; } function getNative(object, key) { var value = getValue(object, key); return baseIsNative(value) ? value : void 0; } function getRawTag(value) { var isOwn = hasOwnProperty.call(value, symToStringTag), tag = value[symToStringTag]; try { value[symToStringTag] = void 0; var unmasked = true; } catch (e) { } var result = nativeObjectToString.call(value); if (unmasked) { if (isOwn) { value[symToStringTag] = tag; } else { delete value[symToStringTag]; } } return result; } function initCloneObject(object) { return typeof object.constructor == "function" && !isPrototype(object) ? baseCreate(getPrototype(object)) : {}; } 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 isKeyable(value) { var type = typeof value; return type == "string" || type == "number" || type == "symbol" || type == "boolean" ? value !== "__proto__" : value === null; } function isMasked(func2) { return !!maskSrcKey && maskSrcKey in func2; } function isPrototype(value) { var Ctor = value && value.constructor, proto = typeof Ctor == "function" && Ctor.prototype || objectProto; return value === proto; } function nativeKeysIn(object) { var result = []; if (object != null) { for (var key in Object(object)) { result.push(key); } } return result; } function objectToString(value) { return nativeObjectToString.call(value); } function overRest(func2, start2, transform) { start2 = nativeMax(start2 === void 0 ? func2.length - 1 : start2, 0); return function() { var args = arguments, index = -1, length = nativeMax(args.length - start2, 0), array = Array(length); while (++index < length) { array[index] = args[start2 + index]; } index = -1; var otherArgs = Array(start2 + 1); while (++index < start2) { otherArgs[index] = args[index]; } otherArgs[start2] = transform(array); return apply(func2, this, otherArgs); }; } function safeGet(object, key) { if (key === "constructor" && typeof object[key] === "function") { return; } if (key == "__proto__") { return; } return object[key]; } var setToString = shortOut(baseSetToString); function shortOut(func2) { 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 func2.apply(void 0, arguments); }; } function toSource(func2) { if (func2 != null) { try { return funcToString.call(func2); } catch (e) { } try { return func2 + ""; } catch (e) { } } return ""; } function eq(value, other) { return value === other || value !== value && other !== other; } var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { return isObjectLike(value) && hasOwnProperty.call(value, "callee") && !propertyIsEnumerable.call(value, "callee"); }; var isArray = Array.isArray; function isArrayLike(value) { return value != null && isLength(value.length) && !isFunction(value); } function isArrayLikeObject(value) { return isObjectLike(value) && isArrayLike(value); } var isBuffer = nativeIsBuffer || stubFalse; function isFunction(value) { if (!isObject(value)) { return false; } var tag = baseGetTag(value); return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; } 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"; } 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 isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; function toPlainObject(value) { return copyObject(value, keysIn(value)); } function keysIn(object) { return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); } var mergeWith2 = createAssigner(function(object, source, srcIndex, customizer) { baseMerge(object, source, srcIndex, customizer); }); function constant(value) { return function() { return value; }; } function identity(value) { return value; } function stubFalse() { return false; } module2.exports = mergeWith2; } }); // node_modules/lodash.keyby/index.js var require_lodash3 = __commonJS({ "node_modules/lodash.keyby/index.js"(exports, module2) { var LARGE_ARRAY_SIZE = 200; var FUNC_ERROR_TEXT = "Expected a function"; var HASH_UNDEFINED = "__lodash_hash_undefined__"; var UNORDERED_COMPARE_FLAG = 1; var PARTIAL_COMPARE_FLAG = 2; var INFINITY = 1 / 0; var MAX_SAFE_INTEGER = 9007199254740991; var argsTag = "[object Arguments]"; var arrayTag = "[object Array]"; var boolTag = "[object Boolean]"; var dateTag = "[object Date]"; var errorTag = "[object Error]"; var funcTag = "[object Function]"; var genTag = "[object GeneratorFunction]"; var mapTag = "[object Map]"; var numberTag = "[object Number]"; var objectTag = "[object Object]"; var promiseTag = "[object Promise]"; var regexpTag = "[object RegExp]"; var setTag = "[object Set]"; var stringTag = "[object String]"; var symbolTag = "[object Symbol]"; var weakMapTag = "[object WeakMap]"; var arrayBufferTag = "[object ArrayBuffer]"; var dataViewTag = "[object DataView]"; var float32Tag = "[object Float32Array]"; var float64Tag = "[object Float64Array]"; var int8Tag = "[object Int8Array]"; var int16Tag = "[object Int16Array]"; var int32Tag = "[object Int32Array]"; var uint8Tag = "[object Uint8Array]"; var uint8ClampedTag = "[object Uint8ClampedArray]"; var uint16Tag = "[object Uint16Array]"; var uint32Tag = "[object Uint32Array]"; var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/; var reIsPlainProp = /^\w*$/; var reLeadingDot = /^\./; var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; var reEscapeChar = /\\(\\)?/g; var reIsHostCtor = /^\[object .+?Constructor\]$/; var reIsUint = /^(?:0|[1-9]\d*)$/; 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 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 { return freeProcess && freeProcess.binding("util"); } catch (e) { } }(); var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; function arrayAggregator(array, setter, iteratee, accumulator) { var index = -1, length = array ? array.length : 0; while (++index < length) { var value = array[index]; setter(accumulator, value, iteratee(value), array); } return accumulator; } function arraySome(array, predicate) { var index = -1, length = array ? array.length : 0; while (++index < length) { if (predicate(array[index], index, array)) { return true; } } return false; } function baseProperty(key) { return function(object) { return object == null ? void 0 : object[key]; }; } function baseTimes(n, iteratee) { var index = -1, result = Array(n); while (++index < n) { result[index] = iteratee(index); } return result; } function baseUnary(func2) { return function(value) { return func2(value); }; } function getValue(object, key) { return object == null ? void 0 : object[key]; } function isHostObject(value) { var result = false; if (value != null && typeof value.toString != "function") { try { result = !!(value + ""); } catch (e) { } } 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(func2, transform) { return function(arg) { return func2(transform(arg)); }; } function setToArray(set) { var index = -1, result = Array(set.size); set.forEach(function(value) { result[++index] = value; }); return result; } var arrayProto = Array.prototype; var funcProto = Function.prototype; var objectProto = Object.prototype; var coreJsData = root["__core-js_shared__"]; var maskSrcKey = function() { var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ""); return uid ? "Symbol(src)_1." + uid : ""; }(); var funcToString = funcProto.toString; var hasOwnProperty = objectProto.hasOwnProperty; var objectToString = objectProto.toString; var reIsNative = RegExp("^" + funcToString.call(hasOwnProperty).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"); var Symbol2 = root.Symbol; var Uint8Array2 = root.Uint8Array; var propertyIsEnumerable = objectProto.propertyIsEnumerable; var splice = arrayProto.splice; var nativeKeys = overArg(Object.keys, Object); var DataView = getNative(root, "DataView"); var Map2 = getNative(root, "Map"); var Promise2 = getNative(root, "Promise"); var Set2 = getNative(root, "Set"); var WeakMap = getNative(root, "WeakMap"); var nativeCreate = getNative(Object, "create"); var dataViewCtorString = toSource(DataView); var mapCtorString = toSource(Map2); var promiseCtorString = toSource(Promise2); var setCtorString = toSource(Set2); var weakMapCtorString = toSource(WeakMap); var symbolProto = Symbol2 ? Symbol2.prototype : void 0; var symbolValueOf = symbolProto ? symbolProto.valueOf : void 0; var symbolToString = symbolProto ? symbolProto.toString : void 0; function Hash(entries) { var index = -1, length = entries ? entries.length : 0; this.clear(); while (++index < length) { var entry = entries[index]; this.set(entry[0], entry[1]); } } function hashClear() { this.__data__ = nativeCreate ? nativeCreate(null) : {}; } function hashDelete(key) { return this.has(key) && delete this.__data__[key]; } function hashGet(key) { var data = this.__data__; if (nativeCreate) { var result = data[key]; return result === HASH_UNDEFINED ? void 0 : result; } return hasOwnProperty.call(data, key) ? data[key] : void 0; } function hashHas(key) { var data = this.__data__; return nativeCreate ? data[key] !== void 0 : hasOwnProperty.call(data, key); } function hashSet(key, value) { var data = this.__data__; data[key] = nativeCreate && value === void 0 ? 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 ? entries.length : 0; this.clear(); while (++index < length) { var entry = entries[index]; this.set(entry[0], entry[1]); } } function listCacheClear() { this.__data__ = []; } 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); } return true; } function listCacheGet(key) { var data = this.__data__, index = assocIndexOf(data, key); return index < 0 ? void 0 : 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) { 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 ? entries.length : 0; this.clear(); while (++index < length) { var entry = entries[index]; this.set(entry[0], entry[1]); } } function mapCacheClear() { this.__data__ = { "hash": new Hash(), "map": new (Map2 || ListCache)(), "string": new Hash() }; } function mapCacheDelete(key) { return getMapData(this, key)["delete"](key); } function mapCacheGet(key) { return getMapData(this, key).get(key); } function mapCacheHas(key) { return getMapData(this, key).has(key); } function mapCacheSet(key, value) { getMapData(this, key).set(key, value); 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 ? values2.length : 0; 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) { this.__data__ = new ListCache(entries); } function stackClear() { this.__data__ = new ListCache(); } function stackDelete(key) { return this.__data__["delete"](key); } function stackGet(key) { return this.__data__.get(key); } function stackHas(key) { return this.__data__.has(key); } function stackSet(key, value) { var cache = this.__data__; if (cache instanceof ListCache) { var pairs = cache.__data__; if (!Map2 || pairs.length < LARGE_ARRAY_SIZE - 1) { pairs.push([key, value]); return this; } cache = this.__data__ = new MapCache(pairs); } cache.set(key, value); 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 result = isArray(value) || isArguments(value) ? baseTimes(value.length, String) : []; var length = result.length, skipIndexes = !!length; for (var key in value) { if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && (key == "length" || isIndex(key, length)))) { result.push(key); } } return result; } function assocIndexOf(array, key) { var length = array.length; while (length--) { if (eq(array[length][0], key)) { return length; } } return -1; } function baseAggregator(collection, setter, iteratee, accumulator) { baseEach(collection, function(value, key, collection2) { setter(accumulator, value, iteratee(value), collection2); }); return accumulator; } var baseEach = createBaseEach(baseForOwn); var baseFor = createBaseFor(); function baseForOwn(object, iteratee) { return object && baseFor(object, iteratee, keys); } function baseGet(object, path) { path = isKey(path, object) ? [path] : castPath(path); var index = 0, length = path.length; while (object != null && index < length) { object = object[toKey(path[index++])]; } return index && index == length ? object : void 0; } function baseGetTag(value) { return objectToString.call(value); } function baseHasIn(object, key) { return object != null && key in Object(object); } function baseIsEqual(value, other, customizer, bitmask, stack) { if (value === other) { return true; } if (value == null || other == null || !isObject(value) && !isObjectLike(other)) { return value !== value && other !== other; } return baseIsEqualDeep(value, other, baseIsEqual, customizer, bitmask, stack); } function baseIsEqualDeep(object, other, equalFunc, customizer, bitmask, stack) { var objIsArr = isArray(object), othIsArr = isArray(other), objTag = arrayTag, othTag = arrayTag; if (!objIsArr) { objTag = getTag(object); objTag = objTag == argsTag ? objectTag : objTag; } if (!othIsArr) { othTag = getTag(other); othTag = othTag == argsTag ? objectTag : othTag; } var objIsObj = objTag == objectTag && !isHostObject(object), othIsObj = othTag == objectTag && !isHostObject(other), isSameTag = objTag == othTag; if (isSameTag && !objIsObj) { stack || (stack = new Stack()); return objIsArr || isTypedArray(object) ? equalArrays(object, other, equalFunc, customizer, bitmask, stack) : equalByTag(object, other, objTag, equalFunc, customizer, bitmask, stack); } if (!(bitmask & PARTIAL_COMPARE_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, customizer, bitmask, stack); } } if (!isSameTag) { return false; } stack || (stack = new Stack()); return equalObjects(object, other, equalFunc, customizer, bitmask, stack); } function baseIsMatch(object, source, matchData, customizer) { var index = matchData.length, length = index, noCustomizer = !customizer; if (object == null) { return !length; } object = Object(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 === void 0 && !(key in object)) { return false; } } else { var stack = new Stack(); if (customizer) { var result = customizer(objValue, srcValue, key, object, source, stack); } if (!(result === void 0 ? baseIsEqual(srcValue, objValue, customizer, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG, stack) : result)) { return false; } } } return true; } function baseIsNative(value) { if (!isObject(value) || isMasked(value)) { return false; } var pattern = isFunction(value) || isHostObject(value) ? reIsNative : reIsHostCtor; return pattern.test(toSource(value)); } function baseIsTypedArray(value) { return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[objectToString.call(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 result = []; for (var key in Object(object)) { if (hasOwnProperty.call(object, key) && key != "constructor") { result.push(key); } } return result; } 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 === void 0 && objValue === srcValue ? hasIn(object, path) : baseIsEqual(srcValue, objValue, void 0, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG); }; } function basePropertyDeep(path) { return function(object) { return baseGet(object, path); }; } function baseToString(value) { if (typeof value == "string") { return value; } if (isSymbol(value)) { return symbolToString ? symbolToString.call(value) : ""; } var result = value + ""; return result == "0" && 1 / value == -INFINITY ? "-0" : result; } function castPath(value) { return isArray(value) ? value : stringToPath(value); } function createAggregator(setter, initializer) { return function(collection, iteratee) { var func2 = isArray(collection) ? arrayAggregator : baseAggregator, accumulator = initializer ? initializer() : {}; return func2(collection, setter, baseIteratee(iteratee, 2), accumulator); }; } function createBaseEach(eachFunc, fromRight) { return function(collection, iteratee) { if (collection == null) { return collection; } if (!isArrayLike(collection)) { return eachFunc(collection, iteratee); } var length = collection.length, index = fromRight ? length : -1, iterable = Object(collection); while (fromRight ? index-- : ++index < length) { if (iteratee(iterable[index], index, iterable) === false) { break; } } return collection; }; } function createBaseFor(fromRight) { return function(object, iteratee, keysFunc) { var index = -1, iterable = Object(object), props = keysFunc(object), length = props.length; while (length--) { var key = props[fromRight ? length : ++index]; if (iteratee(iterable[key], key, iterable) === false) { break; } } return object; }; } function equalArrays(array, other, equalFunc, customizer, bitmask, stack) { var isPartial = bitmask & PARTIAL_COMPARE_FLAG, arrLength = array.length, othLength = other.length; if (arrLength != othLength && !(isPartial && othLength > arrLength)) { return false; } var stacked = stack.get(array); if (stacked && stack.get(other)) { return stacked == other; } var index = -1, result = true, seen = bitmask & UNORDERED_COMPARE_FLAG ? new SetCache() : void 0; 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 !== void 0) { if (compared) { continue; } result = false; break; } if (seen) { if (!arraySome(other, function(othValue2, othIndex) { if (!seen.has(othIndex) && (arrValue === othValue2 || equalFunc(arrValue, othValue2, customizer, bitmask, stack))) { return seen.add(othIndex); } })) { result = false; break; } } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, customizer, bitmask, stack))) { result = false; break; } } stack["delete"](array); stack["delete"](other); return result; } function equalByTag(object, other, tag, equalFunc, customizer, bitmask, 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 & PARTIAL_COMPARE_FLAG; convert || (convert = setToArray); if (object.size != other.size && !isPartial) { return false; } var stacked = stack.get(object); if (stacked) { return stacked == other; } bitmask |= UNORDERED_COMPARE_FLAG; stack.set(object, other); var result = equalArrays(convert(object), convert(other), equalFunc, customizer, bitmask, stack); stack["delete"](object); return result; case symbolTag: if (symbolValueOf) { return symbolValueOf.call(object) == symbolValueOf.call(other); } } return false; } function equalObjects(object, other, equalFunc, customizer, bitmask, stack) { var isPartial = bitmask & PARTIAL_COMPARE_FLAG, objProps = keys(object), objLength = objProps.length, othProps = keys(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 stacked = stack.get(object); if (stacked && stack.get(other)) { return stacked == other; } var result = 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 === void 0 ? objValue === othValue || equalFunc(objValue, othValue, customizer, bitmask, stack) : compared)) { result = false; break; } skipCtor || (skipCtor = key == "constructor"); } if (result && !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)) { result = false; } } stack["delete"](object); stack["delete"](other); return result; } function getMapData(map, key) { var data = map.__data__; return isKeyable(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map; } function getMatchData(object) { var result = keys(object), length = result.length; while (length--) { var key = result[length], value = object[key]; result[length] = [key, value, isStrictComparable(value)]; } return result; } function getNative(object, key) { var value = getValue(object, key); return baseIsNative(value) ? value : void 0; } 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 || WeakMap && getTag(new WeakMap()) != weakMapTag) { getTag = function(value) { var result = objectToString.call(value), Ctor = result == objectTag ? value.constructor : void 0, ctorString = Ctor ? toSource(Ctor) : void 0; 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 result; }; } function hasPath(object, path, hasFunc) { path = isKey(path, object) ? [path] : castPath(path); var result, index = -1, length = path.length; while (++index < length) { var key = toKey(path[index]); if (!(result = object != null && hasFunc(object, key))) { break; } object = object[key]; } if (result) { return result; } var length = object ? object.length : 0; return !!length && isLength(length) && isIndex(key, length) && (isArray(object) || isArguments(object)); } function isIndex(value, length) { length = length == null ? MAX_SAFE_INTEGER : length; return !!length && (typeof value == "number" || reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length); } 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 Object(object); } function isKeyable(value) { var type = typeof value; return type == "string" || type == "number" || type == "symbol" || type == "boolean" ? value !== "__proto__" : value === null; } function isMasked(func2) { return !!maskSrcKey && maskSrcKey in func2; } 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 !== void 0 || key in Object(object)); }; } var stringToPath = memoize(function(string) { string = toString(string); var result = []; if (reLeadingDot.test(string)) { result.push(""); } string.replace(rePropName, function(match, number, quote, string2) { result.push(quote ? string2.replace(reEscapeChar, "$1") : number || match); }); return result; }); function toKey(value) { if (typeof value == "string" || isSymbol(value)) { return value; } var result = value + ""; return result == "0" && 1 / value == -INFINITY ? "-0" : result; } function toSource(func2) { if (func2 != null) { try { return funcToString.call(func2); } catch (e) { } try { return func2 + ""; } catch (e) { } } return ""; } var keyBy2 = createAggregator(function(result, value, key) { result[key] = value; }); function memoize(func2, resolver) { if (typeof func2 != "function" || resolver && typeof resolver != "function") { throw new TypeError(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 result = func2.apply(this, args); memoized.cache = cache.set(key, result); return result; }; memoized.cache = new (memoize.Cache || MapCache)(); return memoized; } memoize.Cache = MapCache; function eq(value, other) { return value === other || value !== value && other !== other; } function isArguments(value) { return isArrayLikeObject(value) && hasOwnProperty.call(value, "callee") && (!propertyIsEnumerable.call(value, "callee") || objectToString.call(value) == argsTag); } var isArray = Array.isArray; function isArrayLike(value) { return value != null && isLength(value.length) && !isFunction(value); } function isArrayLikeObject(value) { return isObjectLike(value) && isArrayLike(value); } function isFunction(value) { var tag = isObject(value) ? objectToString.call(value) : ""; return tag == funcTag || tag == genTag; } 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 && (type == "object" || type == "function"); } function isObjectLike(value) { return !!value && typeof value == "object"; } function isSymbol(value) { return typeof value == "symbol" || isObjectLike(value) && objectToString.call(value) == symbolTag; } var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; function toString(value) { return value == null ? "" : baseToString(value); } function get(object, path, defaultValue) { var result = object == null ? void 0 : baseGet(object, path); return result === void 0 ? defaultValue : result; } function hasIn(object, path) { return object != null && hasPath(object, path, baseHasIn); } function keys(object) { return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); } function identity(value) { return value; } function property(path) { return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path); } module2.exports = keyBy2; } }); // node_modules/lodash.values/index.js var require_lodash4 = __commonJS({ "node_modules/lodash.values/index.js"(exports, module2) { var MAX_SAFE_INTEGER = 9007199254740991; var argsTag = "[object Arguments]"; var funcTag = "[object Function]"; var genTag = "[object GeneratorFunction]"; var reIsUint = /^(?:0|[1-9]\d*)$/; function arrayMap(array, iteratee) { var index = -1, length = array ? array.length : 0, result = Array(length); while (++index < length) { result[index] = iteratee(array[index], index, array); } return result; } function baseTimes(n, iteratee) { var index = -1, result = Array(n); while (++index < n) { result[index] = iteratee(index); } return result; } function baseValues(object, props) { return arrayMap(props, function(key) { return object[key]; }); } function overArg(func2, transform) { return function(arg) { return func2(transform(arg)); }; } var objectProto = Object.prototype; var hasOwnProperty = objectProto.hasOwnProperty; var objectToString = objectProto.toString; var propertyIsEnumerable = objectProto.propertyIsEnumerable; var nativeKeys = overArg(Object.keys, Object); function arrayLikeKeys(value, inherited) { var result = isArray(value) || isArguments(value) ? baseTimes(value.length, String) : []; var length = result.length, skipIndexes = !!length; for (var key in value) { if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && (key == "length" || isIndex(key, length)))) { result.push(key); } } return result; } function baseKeys(object) { if (!isPrototype(object)) { return nativeKeys(object); } var result = []; for (var key in Object(object)) { if (hasOwnProperty.call(object, key) && key != "constructor") { result.push(key); } } return result; } function isIndex(value, length) { length = length == null ? MAX_SAFE_INTEGER : length; return !!length && (typeof value == "number" || reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length); } function isPrototype(value) { var Ctor = value && value.constructor, proto = typeof Ctor == "function" && Ctor.prototype || objectProto; return value === proto; } function isArguments(value) { return isArrayLikeObject(value) && hasOwnProperty.call(value, "callee") && (!propertyIsEnumerable.call(value, "callee") || objectToString.call(value) == argsTag); } var isArray = Array.isArray; function isArrayLike(value) { return value != null && isLength(value.length) && !isFunction(value); } function isArrayLikeObject(value) { return isObjectLike(value) && isArrayLike(value); } function isFunction(value) { var tag = isObject(value) ? objectToString.call(value) : ""; return tag == funcTag || tag == genTag; } 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 && (type == "object" || type == "function"); } function isObjectLike(value) { return !!value && typeof value == "object"; } function keys(object) { return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); } function values2(object) { return object ? baseValues(object, keys(object)) : []; } module2.exports = values2; } }); // node_modules/lodash.sortby/index.js var require_lodash5 = __commonJS({ "node_modules/lodash.sortby/index.js"(exports, module2) { var LARGE_ARRAY_SIZE = 200; var FUNC_ERROR_TEXT = "Expected a function"; var HASH_UNDEFINED = "__lodash_hash_undefined__"; var UNORDERED_COMPARE_FLAG = 1; var PARTIAL_COMPARE_FLAG = 2; var INFINITY = 1 / 0; var MAX_SAFE_INTEGER = 9007199254740991; var argsTag = "[object Arguments]"; var arrayTag = "[object Array]"; var boolTag = "[object Boolean]"; var dateTag = "[object Date]"; var errorTag = "[object Error]"; var funcTag = "[object Function]"; var genTag = "[object GeneratorFunction]"; var mapTag = "[object Map]"; var numberTag = "[object Number]"; var objectTag = "[object Object]"; var promiseTag = "[object Promise]"; var regexpTag = "[object RegExp]"; var setTag = "[object Set]"; var stringTag = "[object String]"; var symbolTag = "[object Symbol]"; var weakMapTag = "[object WeakMap]"; var arrayBufferTag = "[object ArrayBuffer]"; var dataViewTag = "[object DataView]"; var float32Tag = "[object Float32Array]"; var float64Tag = "[object Float64Array]"; var int8Tag = "[object Int8Array]"; var int16Tag = "[object Int16Array]"; var int32Tag = "[object Int32Array]"; var uint8Tag = "[object Uint8Array]"; var uint8ClampedTag = "[object Uint8ClampedArray]"; var uint16Tag = "[object Uint16Array]"; var uint32Tag = "[object Uint32Array]"; var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/; var reIsPlainProp = /^\w*$/; var reLeadingDot = /^\./; var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; var reEscapeChar = /\\(\\)?/g; var reIsHostCtor = /^\[object .+?Constructor\]$/; var reIsUint = /^(?:0|[1-9]\d*)$/; 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 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 { return freeProcess && freeProcess.binding("util"); } catch (e) { } }(); var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; function apply(func2, thisArg, args) { switch (args.length) { case 0: return func2.call(thisArg); case 1: return func2.call(thisArg, args[0]); case 2: return func2.call(thisArg, args[0], args[1]); case 3: return func2.call(thisArg, args[0], args[1], args[2]); } return func2.apply(thisArg, args); } function arrayMap(array, iteratee) { var index = -1, length = array ? array.length : 0, result = Array(length); while (++index < length) { result[index] = iteratee(array[index], index, array); } return result; } function arrayPush(array, values2) { var index = -1, length = values2.length, offset2 = array.length; while (++index < length) { array[offset2 + index] = values2[index]; } return array; } function arraySome(array, predicate) { var index = -1, length = array ? array.length : 0; while (++index < length) { if (predicate(array[index], index, array)) { return true; } } return false; } function baseProperty(key) { return function(object) { return object == null ? void 0 : object[key]; }; } function baseSortBy(array, comparer) { var length = array.length; array.sort(comparer); while (length--) { array[length] = array[length].value; } return array; } function baseTimes(n, iteratee) { var index = -1, result = Array(n); while (++index < n) { result[index] = iteratee(index); } return result; } function baseUnary(func2) { return function(value) { return func2(value); }; } function getValue(object, key) { return object == null ? void 0 : object[key]; } function isHostObject(value) { var result = false; if (value != null && typeof value.toString != "function") { try { result = !!(value + ""); } catch (e) { } } 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(func2, transform) { return function(arg) { return func2(transform(arg)); }; } function setToArray(set) { var index = -1, result = Array(set.size); set.forEach(function(value) { result[++index] = value; }); return result; } var arrayProto = Array.prototype; var funcProto = Function.prototype; var objectProto = Object.prototype; var coreJsData = root["__core-js_shared__"]; var maskSrcKey = function() { var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ""); return uid ? "Symbol(src)_1." + uid : ""; }(); var funcToString = funcProto.toString; var hasOwnProperty = objectProto.hasOwnProperty; var objectToString = objectProto.toString; var reIsNative = RegExp("^" + funcToString.call(hasOwnProperty).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"); var Symbol2 = root.Symbol; var Uint8Array2 = root.Uint8Array; var propertyIsEnumerable = objectProto.propertyIsEnumerable; var splice = arrayProto.splice; var spreadableSymbol = Symbol2 ? Symbol2.isConcatSpreadable : void 0; var nativeKeys = overArg(Object.keys, Object); var nativeMax = Math.max; var DataView = getNative(root, "DataView"); var Map2 = getNative(root, "Map"); var Promise2 = getNative(root, "Promise"); var Set2 = getNative(root, "Set"); var WeakMap = getNative(root, "WeakMap"); var nativeCreate = getNative(Object, "create"); var dataViewCtorString = toSource(DataView); var mapCtorString = toSource(Map2); var promiseCtorString = toSource(Promise2); var setCtorString = toSource(Set2); var weakMapCtorString = toSource(WeakMap); var symbolProto = Symbol2 ? Symbol2.prototype : void 0; var symbolValueOf = symbolProto ? symbolProto.valueOf : void 0; var symbolToString = symbolProto ? symbolProto.toString : void 0; function Hash(entries) { var index = -1, length = entries ? entries.length : 0; this.clear(); while (++index < length) { var entry = entries[index]; this.set(entry[0], entry[1]); } } function hashClear() { this.__data__ = nativeCreate ? nativeCreate(null) : {}; } function hashDelete(key) { return this.has(key) && delete this.__data__[key]; } function hashGet(key) { var data = this.__data__; if (nativeCreate) { var result = data[key]; return result === HASH_UNDEFINED ? void 0 : result; } return hasOwnProperty.call(data, key) ? data[key] : void 0; } function hashHas(key) { var data = this.__data__; return nativeCreate ? data[key] !== void 0 : hasOwnProperty.call(data, key); } function hashSet(key, value) { var data = this.__data__; data[key] = nativeCreate && value === void 0 ? 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 ? entries.length : 0; this.clear(); while (++index < length) { var entry = entries[index]; this.set(entry[0], entry[1]); } } function listCacheClear() { this.__data__ = []; } 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); } return true; } function listCacheGet(key) { var data = this.__data__, index = assocIndexOf(data, key); return index < 0 ? void 0 : 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) { 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 ? entries.length : 0; this.clear(); while (++index < length) { var entry = entries[index]; this.set(entry[0], entry[1]); } } function mapCacheClear() { this.__data__ = { "hash": new Hash(), "map": new (Map2 || ListCache)(), "string": new Hash() }; } function mapCacheDelete(key) { return getMapData(this, key)["delete"](key); } function mapCacheGet(key) { return getMapData(this, key).get(key); } function mapCacheHas(key) { return getMapData(this, key).has(key); } function mapCacheSet(key, value) { getMapData(this, key).set(key, value); 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 ? values2.length : 0; 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) { this.__data__ = new ListCache(entries); } function stackClear() { this.__data__ = new ListCache(); } function stackDelete(key) { return this.__data__["delete"](key); } function stackGet(key) { return this.__data__.get(key); } function stackHas(key) { return this.__data__.has(key); } function stackSet(key, value) { var cache = this.__data__; if (cache instanceof ListCache) { var pairs = cache.__data__; if (!Map2 || pairs.length < LARGE_ARRAY_SIZE - 1) { pairs.push([key, value]); return this; } cache = this.__data__ = new MapCache(pairs); } cache.set(key, value); 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 result = isArray(value) || isArguments(value) ? baseTimes(value.length, String) : []; var length = result.length, skipIndexes = !!length; for (var key in value) { if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && (key == "length" || isIndex(key, length)))) { result.push(key); } } return result; } function assocIndexOf(array, key) { var length = array.length; while (length--) { if (eq(array[length][0], key)) { return length; } } return -1; } var baseEach = createBaseEach(baseForOwn); function baseFlatten(array, depth, predicate, isStrict, result) { var index = -1, length = array.length; predicate || (predicate = isFlattenable); result || (result = []); while (++index < length) { var value = array[index]; if (depth > 0 && predicate(value)) { if (depth > 1) { baseFlatten(value, depth - 1, predicate, isStrict, result); } else { arrayPush(result, value); } } else if (!isStrict) { result[result.length] = value; } } return result; } var baseFor = createBaseFor(); function baseForOwn(object, iteratee) { return object && baseFor(object, iteratee, keys); } function baseGet(object, path) { path = isKey(path, object) ? [path] : castPath(path); var index = 0, length = path.length; while (object != null && index < length) { object = object[toKey(path[index++])]; } return index && index == length ? object : void 0; } function baseGetTag(value) { return objectToString.call(value); } function baseHasIn(object, key) { return object != null && key in Object(object); } function baseIsEqual(value, other, customizer, bitmask, stack) { if (value === other) { return true; } if (value == null || other == null || !isObject(value) && !isObjectLike(other)) { return value !== value && other !== other; } return baseIsEqualDeep(value, other, baseIsEqual, customizer, bitmask, stack); } function baseIsEqualDeep(object, other, equalFunc, customizer, bitmask, stack) { var objIsArr = isArray(object), othIsArr = isArray(other), objTag = arrayTag, othTag = arrayTag; if (!objIsArr) { objTag = getTag(object); objTag = objTag == argsTag ? objectTag : objTag; } if (!othIsArr) { othTag = getTag(other); othTag = othTag == argsTag ? objectTag : othTag; } var objIsObj = objTag == objectTag && !isHostObject(object), othIsObj = othTag == objectTag && !isHostObject(other), isSameTag = objTag == othTag; if (isSameTag && !objIsObj) { stack || (stack = new Stack()); return objIsArr || isTypedArray(object) ? equalArrays(object, other, equalFunc, customizer, bitmask, stack) : equalByTag(object, other, objTag, equalFunc, customizer, bitmask, stack); } if (!(bitmask & PARTIAL_COMPARE_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, customizer, bitmask, stack); } } if (!isSameTag) { return false; } stack || (stack = new Stack()); return equalObjects(object, other, equalFunc, customizer, bitmask, stack); } function baseIsMatch(object, source, matchData, customizer) { var index = matchData.length, length = index, noCustomizer = !customizer; if (object == null) { return !length; } object = Object(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 === void 0 && !(key in object)) { return false; } } else { var stack = new Stack(); if (customizer) { var result = customizer(objValue, srcValue, key, object, source, stack); } if (!(result === void 0 ? baseIsEqual(srcValue, objValue, customizer, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG, stack) : result)) { return false; } } } return true; } function baseIsNative(value) { if (!isObject(value) || isMasked(value)) { return false; } var pattern = isFunction(value) || isHostObject(value) ? reIsNative : reIsHostCtor; return pattern.test(toSource(value)); } function baseIsTypedArray(value) { return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[objectToString.call(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 result = []; for (var key in Object(object)) { if (hasOwnProperty.call(object, key) && key != "constructor") { result.push(key); } } return result; } function baseMap(collection, iteratee) { var index = -1, result = isArrayLike(collection) ? Array(collection.length) : []; baseEach(collection, function(value, key, collection2) { result[++index] = iteratee(value, key, collection2); }); return result; } 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 === void 0 && objValue === srcValue ? hasIn(object, path) : baseIsEqual(srcValue, objValue, void 0, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG); }; } function baseOrderBy(collection, iteratees, orders) { var index = -1; iteratees = arrayMap(iteratees.length ? iteratees : [identity], baseUnary(baseIteratee)); var result = baseMap(collection, function(value, key, collection2) { var criteria = arrayMap(iteratees, function(iteratee) { return iteratee(value); }); return { "criteria": criteria, "index": ++index, "value": value }; }); return baseSortBy(result, function(object, other) { return compareMultiple(object, other, orders); }); } function basePropertyDeep(path) { return function(object) { return baseGet(object, path); }; } function baseRest(func2, start2) { start2 = nativeMax(start2 === void 0 ? func2.length - 1 : start2, 0); return function() { var args = arguments, index = -1, length = nativeMax(args.length - start2, 0), array = Array(length); while (++index < length) { array[index] = args[start2 + index]; } index = -1; var otherArgs = Array(start2 + 1); while (++index < start2) { otherArgs[index] = args[index]; } otherArgs[start2] = array; return apply(func2, this, otherArgs); }; } function baseToString(value) { if (typeof value == "string") { return value; } if (isSymbol(value)) { return symbolToString ? symbolToString.call(value) : ""; } var result = value + ""; return result == "0" && 1 / value == -INFINITY ? "-0" : result; } function castPath(value) { return isArray(value) ? value : stringToPath(value); } function compareAscending(value, other) { if (value !== other) { var valIsDefined = value !== void 0, valIsNull = value === null, valIsReflexive = value === value, valIsSymbol = isSymbol(value); var othIsDefined = other !== void 0, 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 result = compareAscending(objCriteria[index], othCriteria[index]); if (result) { if (index >= ordersLength) { return result; } var order2 = orders[index]; return result * (order2 == "desc" ? -1 : 1); } } return object.index - other.index; } function createBaseEach(eachFunc, fromRight) { return function(collection, iteratee) { if (collection == null) { return collection; } if (!isArrayLike(collection)) { return eachFunc(collection, iteratee); } var length = collection.length, index = fromRight ? length : -1, iterable = Object(collection); while (fromRight ? index-- : ++index < length) { if (iteratee(iterable[index], index, iterable) === false) { break; } } return collection; }; } function createBaseFor(fromRight) { return function(object, iteratee, keysFunc) { var index = -1, iterable = Object(object), props = keysFunc(object), length = props.length; while (length--) { var key = props[fromRight ? length : ++index]; if (iteratee(iterable[key], key, iterable) === false) { break; } } return object; }; } function equalArrays(array, other, equalFunc, customizer, bitmask, stack) { var isPartial = bitmask & PARTIAL_COMPARE_FLAG, arrLength = array.length, othLength = other.length; if (arrLength != othLength && !(isPartial && othLength > arrLength)) { return false; } var stacked = stack.get(array); if (stacked && stack.get(other)) { return stacked == other; } var index = -1, result = true, seen = bitmask & UNORDERED_COMPARE_FLAG ? new SetCache() : void 0; 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 !== void 0) { if (compared) { continue; } result = false; break; } if (seen) { if (!arraySome(other, function(othValue2, othIndex) { if (!seen.has(othIndex) && (arrValue === othValue2 || equalFunc(arrValue, othValue2, customizer, bitmask, stack))) { return seen.add(othIndex); } })) { result = false; break; } } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, customizer, bitmask, stack))) { result = false; break; } } stack["delete"](array); stack["delete"](other); return result; } function equalByTag(object, other, tag, equalFunc, customizer, bitmask, 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 & PARTIAL_COMPARE_FLAG; convert || (convert = setToArray); if (object.size != other.size && !isPartial) { return false; } var stacked = stack.get(object); if (stacked) { return stacked == other; } bitmask |= UNORDERED_COMPARE_FLAG; stack.set(object, other); var result = equalArrays(convert(object), convert(other), equalFunc, customizer, bitmask, stack); stack["delete"](object); return result; case symbolTag: if (symbolValueOf) { return symbolValueOf.call(object) == symbolValueOf.call(other); } } return false; } function equalObjects(object, other, equalFunc, customizer, bitmask, stack) { var isPartial = bitmask & PARTIAL_COMPARE_FLAG, objProps = keys(object), objLength = objProps.length, othProps = keys(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 stacked = stack.get(object); if (stacked && stack.get(other)) { return stacked == other; } var result = 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 === void 0 ? objValue === othValue || equalFunc(objValue, othValue, customizer, bitmask, stack) : compared)) { result = false; break; } skipCtor || (skipCtor = key == "constructor"); } if (result && !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)) { result = false; } } stack["delete"](object); stack["delete"](other); return result; } function getMapData(map, key) { var data = map.__data__; return isKeyable(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map; } function getMatchData(object) { var result = keys(object), length = result.length; while (length--) { var key = result[length], value = object[key]; result[length] = [key, value, isStrictComparable(value)]; } return result; } function getNative(object, key) { var value = getValue(object, key); return baseIsNative(value) ? value : void 0; } 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 || WeakMap && getTag(new WeakMap()) != weakMapTag) { getTag = function(value) { var result = objectToString.call(value), Ctor = result == objectTag ? value.constructor : void 0, ctorString = Ctor ? toSource(Ctor) : void 0; 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 result; }; } function hasPath(object, path, hasFunc) { path = isKey(path, object) ? [path] : castPath(path); var result, index = -1, length = path.length; while (++index < length) { var key = toKey(path[index]); if (!(result = object != null && hasFunc(object, key))) { break; } object = object[key]; } if (result) { return result; } var length = object ? object.length : 0; return !!length && isLength(length) && isIndex(key, length) && (isArray(object) || isArguments(object)); } function isFlattenable(value) { return isArray(value) || isArguments(value) || !!(spreadableSymbol && value && value[spreadableSymbol]); } function isIndex(value, length) { length = length == null ? MAX_SAFE_INTEGER : length; return !!length && (typeof value == "number" || 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 Object(object); } function isKeyable(value) { var type = typeof value; return type == "string" || type == "number" || type == "symbol" || type == "boolean" ? value !== "__proto__" : value === null; } function isMasked(func2) { return !!maskSrcKey && maskSrcKey in func2; } 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 !== void 0 || key in Object(object)); }; } var stringToPath = memoize(function(string) { string = toString(string); var result = []; if (reLeadingDot.test(string)) { result.push(""); } string.replace(rePropName, function(match, number, quote, string2) { result.push(quote ? string2.replace(reEscapeChar, "$1") : number || match); }); return result; }); function toKey(value) { if (typeof value == "string" || isSymbol(value)) { return value; } var result = value + ""; return result == "0" && 1 / value == -INFINITY ? "-0" : result; } function toSource(func2) { if (func2 != null) { try { return funcToString.call(func2); } catch (e) { } try { return func2 + ""; } catch (e) { } } return ""; } var sortBy3 = 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), []); }); function memoize(func2, resolver) { if (typeof func2 != "function" || resolver && typeof resolver != "function") { throw new TypeError(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 result = func2.apply(this, args); memoized.cache = cache.set(key, result); return result; }; memoized.cache = new (memoize.Cache || MapCache)(); return memoized; } memoize.Cache = MapCache; function eq(value, other) { return value === other || value !== value && other !== other; } function isArguments(value) { return isArrayLikeObject(value) && hasOwnProperty.call(value, "callee") && (!propertyIsEnumerable.call(value, "callee") || objectToString.call(value) == argsTag); } var isArray = Array.isArray; function isArrayLike(value) { return value != null && isLength(value.length) && !isFunction(value); } function isArrayLikeObject(value) { return isObjectLike(value) && isArrayLike(value); } function isFunction(value) { var tag = isObject(value) ? objectToString.call(value) : ""; return tag == funcTag || tag == genTag; } 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 && (type == "object" || type == "function"); } function isObjectLike(value) { return !!value && typeof value == "object"; } function isSymbol(value) { return typeof value == "symbol" || isObjectLike(value) && objectToString.call(value) == symbolTag; } var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; function toString(value) { return value == null ? "" : baseToString(value); } function get(object, path, defaultValue) { var result = object == null ? void 0 : baseGet(object, path); return result === void 0 ? defaultValue : result; } function hasIn(object, path) { return object != null && hasPath(object, path, baseHasIn); } function keys(object) { return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); } function identity(value) { return value; } function property(path) { return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path); } module2.exports = sortBy3; } }); // src/main.ts __export(exports, { default: () => RssReaderPlugin }); var import_obsidian28 = __toModule(require("obsidian")); // src/settings/settings.ts var DEFAULT_SETTINGS = Object.freeze({ feeds: [], updateTime: 60, filtered: [{ name: "Favorites", read: true, unread: true, filterTags: [], filterFolders: [], filterFeeds: [], ignoreTags: [], ignoreFeeds: [], ignoreFolders: [], favorites: true, sortOrder: "ALPHABET_NORMAL" }], saveLocation: "default", displayStyle: "cards", saveLocationFolder: "", items: [], dateFormat: "YYYY-MM-DDTHH:mm:SS", template: "---\nlink: {{link}}\nauthor: {{author}}\npublished: {{published}}\ntags: [{{tags:,}}]\n---\n# Highlights\n{{highlights}}\n\n---\n# {{title}}\n{{content}}", pasteTemplate: "## {{title}}\n{{content}}", askForFilename: true, defaultFilename: "{{title}}", autoSync: false, hotkeys: { create: "n", paste: "v", copy: "c", favorite: "f", read: "r", tags: "t", open: "o", tts: "s", previous: "ArrowLeft", next: "ArrowRight" }, folded: [], renamedText: { filtered_folders: "", folders: "", no_folder: "" }, displayMedia: true }); // src/view/ViewLoader.ts var import_obsidian16 = __toModule(require("obsidian")); // node_modules/svelte/internal/index.mjs function noop() { } function run(fn2) { return fn2(); } function blank_object() { return 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"); } var src_url_equal_anchor; function src_url_equal(element_src, url) { if (!src_url_equal_anchor) { src_url_equal_anchor = document.createElement("a"); } src_url_equal_anchor.href = url; return element_src === src_url_equal_anchor.href; } 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 action_destroyer(action_result) { return action_result && is_function(action_result.destroy) ? action_result.destroy : noop; } var tasks = new Set(); var is_hydrating = false; function start_hydrating() { is_hydrating = true; } function end_hydrating() { is_hydrating = false; } function append(target, node) { target.appendChild(node); } function insert(target, node, anchor) { target.insertBefore(node, anchor || null); } function detach(node) { 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 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 attr(node, attribute, value) { if (value == null) node.removeAttribute(attribute); else if (node.getAttribute(attribute) !== value) node.setAttribute(attribute, value); } function children(element2) { return Array.from(element2.childNodes); } function set_data(text2, data) { data = "" + data; if (text2.wholeText !== data) 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" : ""); } } var managed_styles = new Map(); var current_component; function set_current_component(component) { current_component = component; } var dirty_components = []; var binding_callbacks = []; var render_callbacks = []; var flush_callbacks = []; var resolved_promise = Promise.resolve(); var update_scheduled = false; function schedule_update() { if (!update_scheduled) { update_scheduled = true; resolved_promise.then(flush); } } function add_render_callback(fn2) { render_callbacks.push(fn2); } var seen_callbacks = new Set(); var flushidx = 0; function flush() { const saved_component = current_component; do { while (flushidx < dirty_components.length) { const component = dirty_components[flushidx]; flushidx++; set_current_component(component); update(component.$$); } 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); } } var outroing = new Set(); var outros; function group_outros() { outros = { r: 0, c: [], p: outros }; } 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); } } var globals = typeof window !== "undefined" ? window : typeof globalThis !== "undefined" ? globalThis : global; var boolean_attributes = new Set([ "allowfullscreen", "allowpaymentrequest", "async", "autofocus", "autoplay", "checked", "controls", "default", "defer", "disabled", "formnovalidate", "hidden", "ismap", "loop", "multiple", "muted", "nomodule", "novalidate", "open", "playsinline", "readonly", "required", "reversed", "selected" ]); function create_component(block) { block && block.c(); } function mount_component(component, target, anchor, customElement) { const { fragment, on_mount, on_destroy, after_update } = component.$$; fragment && fragment.m(target, anchor); if (!customElement) { add_render_callback(() => { const new_on_destroy = on_mount.map(run).filter(is_function); if (on_destroy) { 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) { 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, instance9, create_fragment9, not_equal, props, append_styles, dirty = [-1]) { const parent_component = current_component; set_current_component(component); const $$ = component.$$ = { fragment: null, ctx: null, props, update: noop, not_equal, bound: blank_object(), on_mount: [], on_destroy: [], on_disconnect: [], before_update: [], after_update: [], context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), callbacks: blank_object(), dirty, skip_bound: false, root: options.target || parent_component.$$.root }; append_styles && append_styles($$.root); let ready = false; $$.ctx = instance9 ? instance9(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_fragment9 ? create_fragment9($$.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) { 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) { 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 writable(value, start2 = noop) { let stop; const subscribers = 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(fn2) { set(fn2(value)); } function subscribe2(run2, invalidate = noop) { const subscriber = [run2, invalidate]; subscribers.add(subscriber); if (subscribers.size === 1) { stop = start2(set) || noop; } run2(value); return () => { subscribers.delete(subscriber); if (subscribers.size === 0) { stop(); stop = null; } }; } return { set, update: update2, subscribe: subscribe2 }; } // src/stores.ts var configuredFeedsStore = writable([]); var filteredStore = writable([]); var settingsStore = writable(DEFAULT_SETTINGS); var feedsStore = writable([]); var sortedFeedsStore = writable(); var filteredItemsStore = writable(); var foldedState = writable(); var tagsStore = writable(); var folderStore = writable(); // src/view/IconComponent.svelte var import_obsidian = __toModule(require("obsidian")); function create_if_block(ctx) { let span; let icon_action; let mounted; let dispose; return { c() { span = element("span"); }, m(target, anchor) { insert(target, span, anchor); if (!mounted) { dispose = action_destroyer(icon_action = ctx[1].call(null, span, ctx[0])); mounted = true; } }, p(ctx2, dirty) { if (icon_action && is_function(icon_action.update) && dirty & 1) icon_action.update.call(null, ctx2[0]); }, d(detaching) { if (detaching) detach(span); mounted = false; dispose(); } }; } function create_fragment(ctx) { let if_block_anchor; let if_block = ctx[0].length > 0 && create_if_block(ctx); return { c() { if (if_block) if_block.c(); if_block_anchor = empty(); }, m(target, anchor) { if (if_block) if_block.m(target, anchor); insert(target, if_block_anchor, anchor); }, p(ctx2, [dirty]) { if (ctx2[0].length > 0) { if (if_block) { if_block.p(ctx2, dirty); } else { if_block = create_if_block(ctx2); if_block.c(); if_block.m(if_block_anchor.parentNode, if_block_anchor); } } else if (if_block) { if_block.d(1); if_block = null; } }, i: noop, o: noop, d(detaching) { if (if_block) if_block.d(detaching); if (detaching) detach(if_block_anchor); } }; } function instance($$self, $$props, $$invalidate) { let { iconName = "" } = $$props; const icon = (node, icon2) => { (0, import_obsidian.setIcon)(node, icon2); }; $$self.$$set = ($$props2) => { if ("iconName" in $$props2) $$invalidate(0, iconName = $$props2.iconName); }; return [iconName, icon]; } var IconComponent = class extends SvelteComponent { constructor(options) { super(); init(this, options, instance, create_fragment, safe_not_equal, { iconName: 0 }); } }; var IconComponent_default = IconComponent; // src/parser/rssParser.ts var import_obsidian2 = __toModule(require("obsidian")); var import_ts_md5 = __toModule(require_md5()); function getElementByName(element2, name) { let value; if (typeof element2.getElementsByTagName !== "function" && typeof element2.getElementsByTagNameNS !== "function") { return; } if (name.includes(":")) { const [namespace, tag] = name.split(":"); const namespaceUri = element2.lookupNamespaceURI(namespace); const byNamespace = element2.getElementsByTagNameNS(namespaceUri, tag); if (byNamespace.length > 0) { value = byNamespace[0].childNodes[0]; } else { const tmp = element2.getElementsByTagName(name); if (tmp.length > 0) { if (tmp[0].childNodes.length === 0) { value = tmp[0]; } else { const node = tmp[0].childNodes[0]; if (node !== void 0) { value = node; } } } } } else if (name.includes(".")) { const [prefix, tag] = name.split("."); if (element2.getElementsByTagName(prefix).length > 0) { const nodes = Array.from(element2.getElementsByTagName(prefix)[0].childNodes); nodes.forEach((node) => { if (node.nodeName == tag) { value = node; } }); } } else if (element2.getElementsByTagName(name).length > 0) { if (element2.getElementsByTagName(name)[0].childNodes.length == 0) { value = element2.getElementsByTagName(name)[0]; } else { const node = element2.getElementsByTagName(name)[0].childNodes[0]; if (node !== void 0) value = node; } } return value; } function getContent(element2, names) { let value; for (const name of names) { if (name.includes("#")) { const [elementName, attr2] = name.split("#"); const data = getElementByName(element2, elementName); if (data) { if (data.nodeName === elementName) { const tmp = data.getAttribute(attr2); if (tmp.length > 0) { value = tmp; } } } } else { const data = getElementByName(element2, name); if (data) { if (data.wholeText && data.wholeText.length > 0) { value = data.wholeText; } if (!value && data.nodeValue && data.nodeValue.length > 0) { value = data.nodeValue; } if (!value && data.innerHTML && data.innerHTML.length > 0) { value = data.innerHTML; } } } } if (value === void 0) { return ""; } return value; } function buildItem(element2) { return { title: getContent(element2, ["title"]), description: getContent(element2, ["content", "content:encoded", "itunes:summary", "description", "summary", "media:description"]), content: getContent(element2, ["itunes:summary", "description", "summary", "media:description", "content", "content:encoded", "ns0:encoded"]), category: getContent(element2, ["category"]), link: getContent(element2, ["link", "link#href"]), creator: getContent(element2, ["creator", "dc:creator", "author", "author.name"]), pubDate: getContent(element2, ["pubDate", "published", "updated", "dc:date"]), enclosure: getContent(element2, ["enclosure#url", "yt:videoId"]), enclosureType: getContent(element2, ["enclosure#type"]), image: getContent(element2, ["enclosure#url", "media:content#url", "itunes:image#href", "media:thumbnail#url"]), id: getContent(element2, ["id"]), language: null, folder: null, feed: null, read: null, favorite: null, created: null, tags: [], hash: null, highlights: [] }; } function getAllItems(doc) { const items = []; if (doc.getElementsByTagName("item")) { for (const elementsByTagNameKey in doc.getElementsByTagName("item")) { const entry = doc.getElementsByTagName("item")[elementsByTagNameKey]; items.push(entry); } } if (doc.getElementsByTagName("entry")) { for (const elementsByTagNameKey in doc.getElementsByTagName("entry")) { const entry = doc.getElementsByTagName("entry")[elementsByTagNameKey]; items.push(entry); } } return items; } function requestFeed(feed) { return __async(this, null, function* () { return yield (0, import_obsidian2.request)({ url: feed.url }); }); } function getFeedItems(feed) { return __async(this, null, function* () { let data; try { const rawData = yield requestFeed(feed); data = new window.DOMParser().parseFromString(rawData, "text/xml"); } catch (e) { console.error(e); return Promise.resolve(void 0); } const items = []; const rawItems = getAllItems(data); const language = getContent(data, ["language"]).substr(0, 2); rawItems.forEach((rawItem) => { const item = buildItem(rawItem); if (item.title !== void 0 && item.title.length !== 0) { item.folder = feed.folder; item.feed = feed.name; item.read = false; item.favorite = false; item.created = false; item.language = language; item.hash = new import_ts_md5.Md5().appendStr(item.title).appendStr(item.folder).appendStr(item.link).end(); if (!item.image && feed.url.includes("youtube.com/feeds")) { item.image = "https://i3.ytimg.com/vi/" + item.id.split(":")[2] + "/hqdefault.jpg"; } items.push(item); } }); const image = getContent(data, ["image", "image.url", "icon"]); const content = { title: getContent(data, ["title"]), subtitle: getContent(data, ["subtitle"]), link: getContent(data, ["link"]), image: image ? image.replace(/^\/|\/$/g, "") : null, description: getContent(data, ["description"]), items, folder: feed.folder, name: feed.name, language, hash: "" }; return Promise.resolve(content); }); } // src/consts.ts var VIEW_ID = "RSS_FEED"; var FILE_NAME_REGEX = /["\/<>:|?]/gm; var TAG_REGEX = /([\p{Letter}\p{Emoji_Presentation}\p{Number}\/_-]+)/u; var NUMBER_REGEX = /^[0-9]*$/gm; function sanitizeHTMLToDom(html) { return window.DOMPurify.sanitize(html, { ALLOW_UNKNOWN_PROTOCOLS: true, RETURN_DOM_FRAGMENT: true, RETURN_DOM_IMPORT: true, FORBID_TAGS: ["style"], ADD_TAGS: ["iframe"], ADD_ATTR: ["frameborder", "allowfullscreen", "allow", "aria-label-position"] }); } function isValidHttpUrl(string) { let url; try { url = new URL(string); } catch (_) { return false; } return url.protocol === "http:" || url.protocol === "https:"; } // src/view/HtmlTooltip.svelte function create_if_block2(ctx) { let p; let html_action; let mounted; let dispose; return { c() { p = element("p"); attr(p, "class", "tooltiptext"); }, m(target, anchor) { insert(target, p, anchor); if (!mounted) { dispose = action_destroyer(html_action = ctx[1].call(null, p, ctx[0])); mounted = true; } }, p(ctx2, dirty) { if (html_action && is_function(html_action.update) && dirty & 1) html_action.update.call(null, ctx2[0]); }, d(detaching) { if (detaching) detach(p); mounted = false; dispose(); } }; } function create_fragment2(ctx) { let if_block_anchor; let if_block = ctx[0].length > 0 && create_if_block2(ctx); return { c() { if (if_block) if_block.c(); if_block_anchor = empty(); }, m(target, anchor) { if (if_block) if_block.m(target, anchor); insert(target, if_block_anchor, anchor); }, p(ctx2, [dirty]) { if (ctx2[0].length > 0) { if (if_block) { if_block.p(ctx2, dirty); } else { if_block = create_if_block2(ctx2); if_block.c(); if_block.m(if_block_anchor.parentNode, if_block_anchor); } } else if (if_block) { if_block.d(1); if_block = null; } }, i: noop, o: noop, d(detaching) { if (if_block) if_block.d(detaching); if (detaching) detach(if_block_anchor); } }; } function instance2($$self, $$props, $$invalidate) { let { content = "" } = $$props; const html = (node, content2) => { node.append(sanitizeHTMLToDom(content2)); }; $$self.$$set = ($$props2) => { if ("content" in $$props2) $$invalidate(0, content = $$props2.content); }; return [content, html]; } var HtmlTooltip = class extends SvelteComponent { constructor(options) { super(); init(this, options, instance2, create_fragment2, safe_not_equal, { content: 0 }); } }; var HtmlTooltip_default = HtmlTooltip; // src/modals/ItemModal.ts var import_obsidian10 = __toModule(require("obsidian")); // src/functions.ts var import_obsidian6 = __toModule(require("obsidian")); // src/modals/TextInputPrompt.ts var import_obsidian4 = __toModule(require("obsidian")); // src/modals/BaseModal.ts var import_obsidian3 = __toModule(require("obsidian")); var BaseModal = class extends import_obsidian3.Modal { setValidationError(input, message) { input.inputEl.addClass("is-invalid"); if (message) { input.inputEl.parentElement.addClasses([ "has-invalid-message", "unset-align-items" ]); input.inputEl.parentElement.parentElement.addClass(".unset-align-items"); let mDiv = input.inputEl.parentElement.querySelector(".invalid-feedback"); if (!mDiv) { mDiv = createDiv({ cls: "invalid-feedback" }); } mDiv.innerText = message; mDiv.insertAfter(input.inputEl); } } removeValidationError(input) { input.inputEl.removeClass("is-invalid"); input.inputEl.parentElement.removeClasses([ "has-invalid-message", "unset-align-items" ]); input.inputEl.parentElement.parentElement.removeClass(".unset-align-items"); if (input.inputEl.parentElement.querySelector(".invalid-feedback")) { input.inputEl.parentElement.removeChild(input.inputEl.parentElement.querySelector(".invalid-feedback")); } } }; // src/l10n/locales/en.ts var en_default = { testingValue: "", testingInserts: "", RSS_Reader: "RSS Reader", RSS_Feeds: "RSS Feeds", open: "Open", refresh_feeds: "Refresh feeds", create_all: "Create all", mark_all_as_read: "Mark all as read", add_tags_to_all: "Add tags to all entries", filtered_folders: "Filtered Folders", folders: "Folders", folder: "Folder", feeds: "Feeds", create_note: "create new note", paste_to_note: "paste to current note", copy_to_clipboard: "copy to clipboard", open_browser: "open in browser", edit_tags: "edit tags", mark_as_read: "Mark as read", mark_as_unread: "Mark as unread", mark_as_favorite: "mark as favorite", remove_from_favorites: "remove from favorites", read_article_tts: "read article with TTS", next: "next", previous: "previous", mark_as_read_unread: "mark as read/unread", mark_as_favorite_remove: "mark as favorite/remove from favorites", marked_as_read: "marked item as read", marked_as_unread: "marked item as unread", removed_from_favorites: "removed item from favorites", added_to_favorites: "marked item as favorite", read: "read", unread: "unread", favorites: "Favorites", favorite: "Favorite", tags: "Tags", tag: "Tag", save: "Save", cancel: "Cancel", delete: "Delete", edit: "Edit", reset: "restore default", fix_errors: "Please fix errors before saving.", add_new: "Add new", add_new_feed: "Add new feed", feed_already_configured: "you already have a feed configured with that url", no_folder: "No folder", name: "Name", name_help: "What do you want this feed to show up as?", url_help: "What is the URL to the feed?", folder_help: "What do you categorize this feed as?", invalid_name: "you need to specify a name", invalid_url: "this url is not valid", invalid_feed: "This feed does not have any entries", filter_tags: "All articles with tags", filter_unread: "All unread articles(from folders)", filter_read: "All read articles(from folders)", filter_favorites: "Favorites(from folders)", sort_date_newest: "Publication date (new to old)", sort_date_oldest: "Publication date (old to new)", sort_alphabet_normal: "Name (A to Z)", sort_alphabet_inverted: "Name (Z to A)", sort: "Order by", filter_name_help: "What do you want this filter to show up as?", filter_type: "Type", filter_type_help: "Type of filter", filter: "Filter", filter_help: "Folders/Tags to filter on, split by ,", only_favorites: "Show only favorites", show_read: "Show read", show_unread: "Show unread", filter_folder_help: "Only show articles from the following folders", filter_feed_help: "Only show articles from the following feeds", filter_tags_help: "Only show articles with the following tags", from_folders: "from folders: ", from_feeds: "from feeds: ", with_tags: "with tags: ", no_feed_with_name: "There is no feed with this name", invalid_tag: "This is not a valid tag", note_exists: "there is already a note with that name", invalid_filename: "that filename is not valid", specify_name: "Please specify a filename", cannot_contain: "cannot contain:", created_note: "Created note from article", inserted_article: "inserted article into note", no_file_active: "no file active", settings: "Settings", file_creation: "File creation", template_new: "new file template", template_new_help: "When creating a note from a article this gets processed.", template_paste: "paste article template", template_paste_help: "When pasting/copying an article this gets processed.", available_variables: "Available variables are:", file_location: "Default location for new notes", file_location_help: "Where newly created notes are placed", file_location_default: "In the default folder", file_location_custom: "In the folder specified below", file_location_folder: "Folder to create new articles in", file_location_folder_help: "newly created articles will appear in this folder", date_format: "Date format", syntax_reference: "Syntax Reference", syntax_looks: "Your current syntax looks like this: ", ask_filename: "Ask for filename", ask_filename_help: "Disable to apply the template below automatically(with invalid symbols removed)", refresh_time: "Refresh time", refresh_time_help: "How often should the feeds be refreshed, in minutes, use 0 to disable", specify_positive_number: "please specify a positive number", multi_device_usage: "Multi device usage", multi_device_usage_help: "Keep article status synced when using multiple devices at the same time\n(Requires a restart to become effective)", add_new_filter: "Add new filtered folder", filter_exists: "you already have a filter configured with that name", hotkeys: "Hotkeys", hotkeys_reading: "when reading a article", press_key: "press a key", customize_hotkey: "customize this hotkey", refreshed_feeds: "Feeds refreshed", import: "Import", import_opml: "Import from OPML", imported_x_feeds: "Imported %1 feeds", choose_file: "Choose file", choose_file_help: "Choose file to import", export_opml: "Export as OPML", default_filename: "Template for filename", default_filename_help: "All variables from the paste template are available", cleanup: "Cleanup articles", cleanup_help: "Removes entries which fit the criteria specified below.", cleanup_help2: "Keep in mind that articles that still exist in the feed will reappear on the next refresh", perform_cleanup: "Perform cleanup", all: "all", from_feed: "from feed", older_than: "older than X Days", older_than_help: "keep empty for all, will be ignored if there is no publishing date associated with entry", advanced: "Advanced", remove_wrong_feed: "Remove all articles that are in the incorrect feed", remove_wrong_feed_help: "This might have happened due to a bug in versions pre 0.8", scanning_items: "Scanning Articles (%1 / %2)", created_export: "Created OPML file in your Vaults root folder", add: "Add", from_archive: "Get old articles from archive.org", reading_archive: "Reading data from archive", scanning_duplicates: "Scanning for duplicates", do_not_close: "Please do not close this window", display_style: "Display Style", list: "List", cards: "Cards", customize_terms: "Customize Terms", content: "Content", highlight: "Highlight", highlight_remove: "remove highlight", filter_folder_ignore_help: "ignore the following folders", filter_feed_ignore_help: "ignore the following feeds", filter_tags_ignore_help: "ignore the following tags", loading: "Loading", article_title: "Title", article_link: "Link to article", article_author: "Author of article", article_published: "Date published", article_description: "Short article description", article_content: "article content", article_tags: "Tags split by comma", article_media: "Link to video/audio file", feed_folder: "Folder of feed", feed_title: "Title of feed", highlights: "Highlights", note_created: "Note creation date", filename: "Filename", display_media: "Include Media", base_folder: "Base folder" }; // src/l10n/locales/de.ts var de_default = { RSS_Reader: "RSS Reader", RSS_Feeds: "RSS Feeds", open: "\xD6ffnen", refresh_feeds: "Feeds neu laden", create_all: "Alle erstellen", mark_all_as_read: "Alle als gelesen markieren", add_tags_to_all: "Tags zu allen hinzuf\xFCgen", filtered_folders: "Gefilterte Ordner", folders: "Ordner", folder: "Ordner", feeds: "Feeds", create_note: "Neue Notiz erstellen", paste_to_note: "In aktuelle Notiz einf\xFCgen", copy_to_clipboard: "In die Zwischenablage kopieren", open_browser: "Im Webbrowser \xF6ffnen", edit_tags: "Tags bearbeiten", mark_as_read: "Als gelesen markieren", mark_as_unread: "Als ungelesen markieren", mark_as_favorite: "As Favorit markieren", remove_from_favorites: "Aus den Favoriten entfernen", read_article_tts: "Vorlesen", next: "n\xE4chster", previous: "vorheriger", mark_as_read_unread: "Als gelesen/ungelesen markieren", mark_as_favorite_remove: "Als Favorit markieren/Aus den Favoriten entfernen", marked_as_read: "Als gelesen markiert", marked_as_unread: "Als ungelesen markiert", removed_from_favorites: "Von den Favoriten entfernt", added_to_favorites: "Als Favorit markiert", read: "gelesen", unread: "ungelesen", favorites: "Favoriten", favorite: "Favorit", tags: "Tags", tag: "Tag", save: "Speichern", cancel: "Abbrechen", delete: "L\xF6schen", edit: "Bearbeiten", reset: "zur\xFCcksetzen", fix_errors: "Bitte behebe die Fehler vor dem speichern.", add_new: "neu hinzuf\xFCgen", add_new_feed: "neuen Feed hinzuf\xFCgen", feed_already_configured: "Es existiert bereits ein Feed mit dieser URL", no_folder: "Kein Ordner", name: "Name", name_help: "Unter welchem Namen soll dieser Feed angezeigt werden?", url_help: "Wie lautet die URL zu diesem Feed?", folder_help: "Als was kategorisierst du diesen Feed?", invalid_name: "Du must einen g\xFCltigen Namen vergeben", invalid_url: "diese URL ist nicht g\xFCltig", invalid_feed: "Dieser Feed hat keine Eintr\xE4ge", filter_tags: "Alle Artikel mit Tags", filter_unread: "Alle ungelesenen Artikel(aus Ordnern)", filter_read: "Alle gelesenen Artikel(aus Ordnern)", filter_favorites: "Favoriten(aus Ordnern)", sort_date_newest: "Ver\xF6ffentlichungsdatum (neu - alt)", sort_date_oldest: "Ver\xF6ffentlichungsdatum (alt - neu)", sort_alphabet_normal: "Name (A - Z)", sort_alphabet_inverted: "Name (Z - A)", sort: "Ordnen nach", filter_name_help: "Wie soll der Filter angezeigt werden?", filter_type: "Typ", filter_type_help: "Typ des Filters", filter: "Filter", filter_help: "Order/Tags die gefiltert werden sollen, getrennt durch ,", only_favorites: "Zeige nur Favoriten", show_read: "Zeige gelesene", show_unread: "Zeige ungelesene", filter_folder_help: "Zeige nur Artikel aus den folgenden Ordnern", filter_feed_help: "Zeige nur Artikel aus den folgenden Feeds", filter_tags_help: "Zeige nur Artikel mit den folgenden Tags", from_folders: "Aus Ordnern: ", from_feeds: "Aus Feeds: ", with_tags: "Mit Tags: ", no_feed_with_name: "Es existiert kein Feed mit diesem Namen", invalid_tag: "Dieser Tag ist nicht g\xFCltig", note_exists: "Es existiert bereits eine Notiz mit diesem Namen", invalid_filename: "Der Dateiname ist nicht g\xFCltig", specify_name: "Bitte einen Dateinamen angeben", cannot_contain: "kann nicht enhalten:", created_note: "Notiz erstellt", inserted_article: "in Notiz eingef\xFCgt", no_file_active: "Keine Datei ge\xF6ffnet", settings: "Einstellungen", file_creation: "Dateierstellung", template_new: "Vorlage f\xFCr neue Dateien", template_new_help: "Beim erstellen einer Notiz wird dies verarbeitet.", template_paste: "Vorlage beim Einf\xFCgen in eine Datei", template_paste_help: "Beim einf\xFCgen/in die Zwischenablage kopieren wird dies verarbeitet.", available_variables: "M\xF6gliche Variablen sind:", file_location: "Speicherort f\xFCr neue Notizen", file_location_help: "Wo sollen neue Notizen gespeichert werden?", file_location_default: "In Standardordner", file_location_custom: "Eigenen Ordner festlegen", file_location_folder: "Ordner f\xFCr neue Notizen", file_location_folder_help: "Speichert neue Notizen an diesem Ort", date_format: "Datumsformat", syntax_reference: "Syntax Referenz", syntax_looks: "So wird es aussehen: ", ask_filename: "Nach Dateiname fragen", ask_filename_help: "Deaktivieren um die Vorlage automatisch anzuwenden(ohne ung\xFCltige Zeichen)", refresh_time: "Aktualisierungsintervall", refresh_time_help: "Wie h\xE4ufig soll auf neue Eintr\xE4ge \xFCberpr\xFCft werden(in Minuten), 0 zu deaktivieren", specify_positive_number: "Bitte eine positive Zahl angeben", multi_device_usage: "Mit mehreren Ger\xE4ten nutzen", multi_device_usage_help: "Syncronisiere Lesestatus & Tags zwischen mehreren gleichzeitig genutzten Ger\xE4ten\n(Ben\xF6tigt einen Neustart der App)", add_new_filter: "Neuen gefilterten Ordner erstellen", filter_exists: "Es exisitiert bereits ein Feed mit diesem Namen", hotkeys: "Tastenk\xFCrzel", hotkeys_reading: "in der Leseansicht", press_key: "dr\xFCcke eine Taste", customize_hotkey: "dieses Tastenk\xFCrzel anpassen", refreshed_feeds: "Feeds aktualisiert", import: "Importieren", import_opml: "Aus OPML importieren", imported_x_feeds: "%1 Feeds importiert", choose_file: "Datei ausw\xE4hlen", choose_file_help: "W\xE4hle eine Datei aus der importiert werden soll", export_opml: "Als OPML exportieren", default_filename: "Vorlage f\xFCr Dateinamen", default_filename_help: "Alle Variablen aus der einf\xFCgen Vorlage k\xF6nnen verwendet werden", cleanup: "Artikel aufr\xE4umen", cleanup_help: "Entfernt alle Artikel auf die folgende Kriterien zutreffen", cleanup_help2: "Alle Artikel die noch im Feed vorhanden sind werden beim n\xE4chsten aktualisieren wieder erscheinen", perform_cleanup: "ausf\xFChren", all: "Alle", from_feed: "von Feed", older_than: "\xE4lter als X Tage", older_than_help: "Leerlassen f\xFCr alle, wird ignoriert wenn Artikel kein Ver\xF6ffentlichungsdatum hat", advanced: "Erweitert", remove_wrong_feed: "Alle Artikel entfernen die im falschen Feed gelandet sind", remove_wrong_feed_help: "Aufgrund eines Fehlers in Versionen vor 0.8 k\xF6nnte dies passiert sein", scanning_items: "Verarbeite Artikel (%1 / %2)", created_export: "OPML Export in Vault erstellt", add: "Hinzuf\xFCgen", from_archive: "Alte Artikel von archive.org lesen", reading_archive: "Daten werden aus Archiv geladen", scanning_duplicates: "Entferne Duplikate", do_not_close: "Bitte dieses Fenster nicht schliesen", display_style: "Anzeige", list: "List", cards: "Karten", customize_terms: "Begriffe anpassen", content: "Inhalt", highlight: "Markieren", highlight_remove: "Markierung entfernen", filter_folder_ignore_help: "diese Ordner ignorieren", filter_feed_ignore_help: "diese Feeds ignorieren", filter_tags_ignore_help: "diese Tags ignorieren", loading: "L\xE4dt", article_title: "Titel", article_link: "Link zum Artikel", article_author: "Autor", article_published: "Ver\xF6ffentlichungsdatum", article_description: "Kurze Beschreibung des Artikels", article_content: "Inhalt des Artikels", article_tags: "Tags getrennt durch Komma", article_media: "Link zu Video/Audio Datei", feed_folder: "Ordner des Feeds", feed_title: "Feed Titel", highlights: "Highlights", note_created: "Erstelldatum der Notiz", filename: "Dateiname" }; // src/l10n/locales/zh.ts var zh_default = { RSS_Reader: "RSS Reader", RSS_Feeds: "\u8BA2\u9605\u6E90", open: "\u6253\u5F00", refresh_feeds: "\u66F4\u65B0\u8BA2\u9605", create_all: "\u521B\u5EFA\u5168\u90E8", mark_all_as_read: "\u5168\u90E8\u6807\u8BB0\u4E3A\u5DF2\u8BFB", add_tags_to_all: "\u4E3A\u6240\u6709\u6761\u76EE\u6DFB\u52A0\u6807\u7B7E", filtered_folders: "\u7B5B\u9009\u5206\u7C7B", folders: "\u5206\u7C7B", folder: "\u5206\u7C7B", feeds: "\u8BA2\u9605\u6E90", create_note: "\u65B0\u5EFA\u7B14\u8BB0", paste_to_note: "\u7C98\u8D34\u5230\u5F53\u524D\u7B14\u8BB0", copy_to_clipboard: "\u590D\u5236\u5230\u526A\u5207\u677F", open_browser: "\u7528\u6D4F\u89C8\u5668\u6253\u5F00", edit_tags: "\u7F16\u8F91\u6807\u7B7E", mark_as_read: "\u6807\u8BB0\u4E3A\u5DF2\u8BFB", mark_as_unread: "\u6807\u8BB0\u4E3A\u672A\u8BFB", mark_as_favorite: "\u6DFB\u52A0\u5230\u6536\u85CF\u5939", remove_from_favorites: "\u4ECE\u6536\u85CF\u5939\u4E2D\u5220\u9664", read_article_tts: "\u8BED\u97F3(TTS)\u9605\u8BFB\u6587\u7AE0", next: "\u4E0B\u4E00\u7BC7", previous: "\u4E0A\u4E00\u7BC7", mark_as_read_unread: "\u6807\u8BB0\u4E3A\u5DF2\u8BFB/\u672A\u8BFB", mark_as_favorite_remove: "\u6DFB\u52A0\u5230\u6536\u85CF\u5939/\u4ECE\u6536\u85CF\u5939\u4E2D\u5220\u9664", marked_as_read: "\u5DF2\u6807\u8BB0\u4E3A\u5DF2\u8BFB", marked_as_unread: "\u5DF2\u6807\u8BB0\u4E3A\u672A\u8BFB", removed_from_favorites: "\u5DF2\u4ECE\u6536\u85CF\u5939\u4E2D\u5220\u9664", added_to_favorites: "\u5DF2\u6DFB\u52A0\u5230\u6536\u85CF\u5939", read: "\u5DF2\u8BFB", unread: "\u672A\u8BFB", favorites: "\u6536\u85CF\u5939", favorite: "\u6536\u85CF", tags: "\u6807\u7B7E", tag: "\u6807\u7B7E", save: "\u4FDD\u5B58", cancel: "\u53D6\u6D88", delete: "\u5220\u9664", edit: "\u7F16\u8F91", reset: "\u6062\u590D\u9ED8\u8BA4\u503C", fix_errors: "\u8BF7\u5728\u4FDD\u5B58\u524D\u4FEE\u590D\u9519\u8BEF\u3002", add_new: "\u6DFB\u52A0", add_new_feed: "\u6DFB\u52A0\u65B0\u8BA2\u9605\u6E90", feed_already_configured: "\u60A8\u5DF2\u7ECF\u6DFB\u52A0\u4E86\u8BE5 URL \u5730\u5740\u7684\u8BA2\u9605\u6E90", no_folder: "\u672A\u5206\u7C7B", name: "\u540D\u79F0", name_help: "\u8BBE\u7F6E\u8BA2\u9605\u6E90\u540D\u79F0", url_help: "\u8F93\u5165\u8BA2\u9605\u6E90\u7684 URL \u5730\u5740", folder_help: "\u8BBE\u7F6E\u8BA2\u9605\u6E90\u5206\u7C7B", invalid_name: "\u8BF7\u8F93\u5165\u8BA2\u9605\u6E90\u540D\u79F0", invalid_url: "\u8BF7\u8F93\u5165\u6709\u6548\u7684\u8BA2\u9605\u6E90 URL \u5730\u5740", invalid_feed: "\u6B64\u8BA2\u9605\u6E90\u6CA1\u6709\u4EFB\u4F55\u5185\u5BB9", filter_tags: "\u5DF2\u6253\u6807\u7B7E\u7684\u6587\u7AE0", filter_unread: "\u5168\u90E8\u672A\u8BFB\u6587\u7AE0(\u6765\u81EA\u5206\u7C7B)", filter_read: "\u5168\u90E8\u5DF2\u8BFB\u6587\u7AE0(\u6765\u81EA\u5206\u7C7B)", filter_favorites: "\u6536\u85CF\u5939(\u6765\u81EA\u5206\u7C7B)", sort_date_newest: "\u53D1\u5E03\u65E5\u671F (\u65B0 \u2192 \u65E7)", sort_date_oldest: "\u53D1\u5E03\u65E5\u671F (\u65E7 to \u65B0)", sort_alphabet_normal: "\u540D\u79F0 (A \u2192 Z)", sort_alphabet_inverted: "\u540D\u79F0 (Z \u2192 A)", sort: "\u6392\u5E8F", filter_name_help: "\u8BBE\u7F6E\u7B5B\u9009\u5668\u540D\u79F0", filter_type: "\u7C7B\u578B", filter_type_help: "\u7B5B\u9009\u5668\u7C7B\u578B", filter: "\u7B5B\u9009\u5668", filter_help: "\u8981\u7B5B\u9009\u7684\u5206\u7C7B/\u6807\u7B7E,", only_favorites: "\u4EC5\u663E\u793A\u5DF2\u6536\u85CF", show_read: "\u663E\u793A\u5DF2\u8BFB", show_unread: "\u663E\u793A\u672A\u8BFB", filter_folder_help: "\u4EC5\u663E\u793A\u4EE5\u4E0B\u5206\u7C7B\u4E2D\u7684\u6587\u7AE0", filter_feed_help: "\u4EC5\u663E\u793A\u4EE5\u4E0B\u8BA2\u9605\u6E90\u4E2D\u7684\u6587\u7AE0", filter_tags_help: "\u4EC5\u663E\u793A\u4EE5\u4E0B\u6807\u7B7E\u4E2D\u7684\u6587\u7AE0", from_folders: "\u6765\u81EA\u5206\u7C7B: ", from_feeds: "\u6765\u81EA\u8BA2\u9605\u6E90: ", with_tags: "\u6765\u81EA\u6807\u7B7E: ", invalid_tag: "\u6B64\u6807\u7B7E\u65E0\u6548", note_exists: "\u5DF2\u5B58\u5728\u540C\u540D\u7B14\u8BB0", invalid_filename: "\u6587\u4EF6\u540D\u65E0\u6548", specify_name: "\u8BF7\u8F93\u5165\u6587\u4EF6\u540D", cannot_contain: "\u4E0D\u80FD\u5305\u542B: ", created_note: "\u5DF2\u5C06\u8BE5\u6587\u7AE0\u590D\u5236\u4E3A\u7B14\u8BB0", inserted_article: "\u5DF2\u5C06\u8BE5\u6587\u7AE0\u590D\u5236\u5230\u5F53\u524D\u7B14\u8BB0", no_file_active: "\u6CA1\u6709\u6587\u4EF6\u5904\u4E8E\u6D3B\u52A8\u72B6\u6001", settings: "\u8BBE\u7F6E", file_creation: "\u65B0\u5EFA\u7B14\u8BB0", template_new: "\u7B14\u8BB0\u6A21\u677F", template_new_help: "\u4F7F\u7528\u8BA2\u9605\u6587\u7AE0\u521B\u5EFA\u7B14\u8BB0\u65F6\uFF0C\u4F1A\u6839\u636E\u5DF2\u8BBE\u7F6E\u7684\u6A21\u677F\u53D8\u91CF\u8FDB\u884C\u5904\u7406\u3002", template_paste: "\u590D\u5236/\u7C98\u8D34\u6A21\u677F", template_paste_help: "\u5C06\u8BA2\u9605\u6587\u7AE0\u590D\u5236/\u7C98\u8D34\u4E3A\u7B14\u8BB0\u65F6\uFF0C\u4F1A\u6839\u636E\u5DF2\u8BBE\u7F6E\u7684\u6A21\u677F\u53D8\u91CF\u8FDB\u884C\u5904\u7406\u3002", available_variables: "\u53EF\u7528\u6A21\u677F\u53D8\u91CF: ", file_location: "\u4FDD\u5B58\u4F4D\u7F6E", file_location_help: "\u8BF7\u9009\u62E9\u8981\u4FDD\u5B58\u65B0\u5EFA\u7B14\u8BB0\u7684\u4F4D\u7F6E", file_location_default: "\u9ED8\u8BA4\u76EE\u5F55", file_location_custom: "\u81EA\u5B9A\u4E49\u76EE\u5F55", file_location_folder: "\u8BF7\u9009\u62E9\u8981\u4FDD\u5B58\u65B0\u5EFA\u7B14\u8BB0\u7684\u76EE\u5F55", file_location_folder_help: "\u65B0\u521B\u5EFA\u7684\u7B14\u8BB0\u5C06\u4FDD\u5B58\u5728\u8BE5\u76EE\u5F55\u4E2D", date_format: "\u65E5\u671F\u683C\u5F0F", syntax_reference: "\u65E5\u671F\u683C\u5F0F\u8BED\u6CD5\u53C2\u8003", syntax_looks: "\u5F53\u524D\u65E5\u671F\u683C\u5F0F: ", ask_filename: "\u786E\u8BA4\u6587\u4EF6\u540D", ask_filename_help: "\u7981\u7528\u5219\u81EA\u52A8\u4F7F\u7528\u4E0B\u9762\u7684\u6587\u4EF6\u540D\u6A21\u677F\u521B\u5EFA\u6587\u4EF6\uFF08\u81EA\u52A8\u5220\u9664\u65E0\u6548\u7684\u6587\u4EF6\u540D\u5B57\u7B26\uFF09", refresh_time: "\u66F4\u65B0\u9891\u7387", refresh_time_help: "\u591A\u4E45\u66F4\u65B0\u4E00\u6B21\u8BA2\u9605\u6E90\uFF08\u5355\u4F4D: \u5206\u949F\uFF09\uFF0C\u8BBE\u7F6E\u4E3A0\u5219\u7981\u7528\u3002", specify_positive_number: "\u8BF7\u8F93\u5165\u6B63\u6570", multi_device_usage: "\u591A\u8BBE\u5907\u4F7F\u7528", multi_device_usage_help: "\u540C\u65F6\u4F7F\u7528\u591A\u4E2A\u8BBE\u5907\u65F6\u4FDD\u6301\u6587\u7AE0\u72B6\u6001\u540C\u6B65\n(\u9700\u8981\u91CD\u65B0\u542F\u52A8\u624D\u80FD\u751F\u6548)", add_new_filter: "\u6DFB\u52A0\u65B0\u7B5B\u9009\u5668", filter_exists: "\u5DF2\u5B58\u5728\u540C\u540D\u7B5B\u9009\u5668", hotkeys: "\u5FEB\u6377\u952E", hotkeys_reading: "\u9605\u8BFB\u6587\u7AE0\u65F6", press_key: "\u6309\u4E0B\u5FEB\u6377\u952E", customize_hotkey: "\u5206\u914D\u5FEB\u6377\u952E", refreshed_feeds: "\u5DF2\u66F4\u65B0 RSS \u8BA2\u9605\u6E90", import: "\u5BFC\u5165", import_opml: "\u901A\u8FC7 OPML \u5BFC\u5165", imported_x_feeds: "\u5DF2\u5BFC\u5165 %1 \u6761\u8BA2\u9605\u6E90", choose_file: "\u9009\u62E9\u6587\u4EF6", choose_file_help: "\u8BF7\u9009\u62E9\u8981\u5BFC\u5165\u7684\u6587\u4EF6", export_opml: "\u5BFC\u51FA OPML \u6587\u4EF6", default_filename: "\u6587\u4EF6\u540D\u6A21\u677F", default_filename_help: "\u4E0A\u9762\u521B\u5EFA\u7B14\u8BB0\u7684\u6240\u6709\u6A21\u677F\u53D8\u91CF\u90FD\u53EF\u7528", cleanup: "\u6E05\u9664\u6587\u7AE0", cleanup_help: "\u6E05\u9664\u7B26\u5408\u4EE5\u4E0B\u89C4\u5219\u7684\u6587\u7AE0", cleanup_help2: "\u6CE8\u610F\uFF0C\u8BA2\u9605\u6E90\u4E2D\u4ECD\u5B58\u5728\u7684\u6587\u7AE0\u5C06\u5728\u4E0B\u6B21\u5237\u65B0\u65F6\u91CD\u65B0\u51FA\u73B0", perform_cleanup: "\u6E05\u9664\u6587\u7AE0", all: "\u5168\u90E8", from_feed: "\u6765\u81EA\u8BA2\u9605\u6E90", older_than: "\u591A\u5C11\u5929\u4E4B\u524D\u53D1\u5E03\u7684\u6587\u7AE0", older_than_help: "\u5982\u679C\u6CA1\u6709\u7B26\u5408\u7684\u6587\u7AE0\uFF0C\u5219\u5FFD\u7565\u8BE5\u6761\u89C4\u5219\uFF08\u4E3A\u7A7A\u5219\u4FDD\u7559\u6240\u6709\u65E5\u671F\u7684\u6587\u7AE0\uFF09", advanced: "\u9AD8\u7EA7\u8BBE\u7F6E", remove_wrong_feed: "\u6E05\u9664\u6240\u6709\u4E0D\u6B63\u786E\u8BA2\u9605\u6E90\u4E2D\u7684\u6587\u7AE0", remove_wrong_feed_help: "\u8FD9\u53EF\u80FD\u662F\u7531\u4E8E0.8\u4E4B\u524D\u7248\u672C\u4E2D\u7684\u9519\u8BEF\u9020\u6210\u7684", scanning_items: "\u626B\u63CF\u6587\u7AE0 (%1 / %2))", created_export: "\u5DF2\u5728\u7B14\u8BB0\u4ED3\u5E93\u6839\u76EE\u5F55\u521B\u5EFA OPML \u6587\u4EF6", add: "\u6DFB\u52A0", from_archive: "\u4ECE\u4E92\u8054\u7F51\u6863\u6848\u9986(archive.org)\u83B7\u53D6\u65E7\u6587\u7AE0", reading_archive: "\u6B63\u5728\u4ECE\u5B58\u6863\u4E2D\u8BFB\u53D6\u6570\u636E", scanning_duplicates: "\u626B\u63CF\u91CD\u590D\u6587\u7AE0", do_not_close: "\u8BF7\u52FF\u5173\u95ED\u6B64\u7A97\u53E3", display_style: "\u663E\u793A\u98CE\u683C", list: "\u5217\u8868", cards: "\u5361\u7247", customize_terms: "\u81EA\u5B9A\u4E49\u672F\u8BED", content: "\u5185\u5BB9\u8BBE\u7F6E", highlight: "\u9AD8\u4EAE", highlight_remove: "\u5220\u9664\u9AD8\u4EAE", filter_folder_ignore_help: "\u5FFD\u7565\u4EE5\u4E0B\u5206\u7C7B", filter_feed_ignore_help: "\u5FFD\u7565\u4EE5\u4E0B\u8BA2\u9605\u6E90", filter_tags_ignore_help: "\u5FFD\u7565\u4EE5\u4E0B\u6807\u7B7E", loading: "\u6B63\u5728\u52A0\u8F7D" }; // src/l10n/locales/test.ts var test_default = { "testingValue": "Hello World", testingInserts: "Hello %1 %2" }; // src/l10n/locale.ts var locale = window.moment ? window.moment.locale() : "test"; var localeMap = { en: en_default, de: de_default, "zh-cn": zh_default, test: test_default }; var userLocale = localeMap[locale]; function t(str, ...inserts) { var _a; let localeStr = (_a = userLocale && userLocale[str]) != null ? _a : en_default[str]; for (let i = 0; i < inserts.length; i++) { localeStr = localeStr.replace(`%${i + 1}`, inserts[i]); } return localeStr; } // src/modals/TextInputPrompt.ts var TextInputPrompt = class extends BaseModal { constructor(app, promptText, hint, defaultValue, placeholder, buttonText = t("save")) { super(app); this.promptText = promptText; this.hint = hint; this.defaultValue = defaultValue; this.placeholder = placeholder; this.buttonText = buttonText; } onOpen() { this.titleEl.setText(this.promptText); this.createForm(); } onClose() { this.contentEl.empty(); } createForm() { const div = this.contentEl.createDiv(); const text2 = new import_obsidian4.Setting(div).setName(this.promptText).setDesc(this.hint).addText((textComponent) => { textComponent.setValue(this.defaultValue).setPlaceholder(this.placeholder).onChange(() => { this.removeValidationError(textComponent); }).inputEl.setAttribute("size", "50"); this.textComponent = textComponent; }); text2.controlEl.addClass("rss-setting-input"); new import_obsidian4.Setting(div).addButton((b) => { b.setButtonText(this.buttonText).onClick(() => __async(this, null, function* () { this.resolve(this.textComponent); })); return b; }); } openAndGetValue(resolve) { return __async(this, null, function* () { this.resolve = resolve; yield this.open(); }); } }; // node_modules/obsidian-community-lib/dist/utils.js var feather = __toModule(require_feather()); var import_obsidian5 = __toModule(require("obsidian")); function copy(content, success = () => new import_obsidian5.Notice("Copied to clipboard"), failure = (reason) => { new import_obsidian5.Notice("Could not copy to clipboard"); console.log({ reason }); }) { return __async(this, null, function* () { yield navigator.clipboard.writeText(content).then(success, failure); }); } var isInVault = (app, noteName, sourcePath = "") => !!app.metadataCache.getFirstLinkpathDest(noteName, sourcePath); // src/functions.ts function createNewNote(plugin, item) { return __async(this, null, function* () { const activeFile = plugin.app.workspace.getActiveFile(); let dir = plugin.app.fileManager.getNewFileParent(activeFile ? activeFile.path : "").path; if (plugin.settings.saveLocation === "custom") { dir = plugin.settings.saveLocationFolder; } let filename = applyTemplate(plugin, item, plugin.settings.defaultFilename); filename = filename.replace(/[\/\\:]/g, " "); if (plugin.settings.askForFilename) { const inputPrompt = new TextInputPrompt(plugin.app, t("specify_name"), t("cannot_contain") + ' * " \\ / < > : | ?', filename, filename); yield inputPrompt.openAndGetValue((text2) => __async(this, null, function* () { const value = text2.getValue(); if (value.match(FILE_NAME_REGEX)) { inputPrompt.setValidationError(text2, t("invalid_filename")); return; } const filePath = (0, import_obsidian6.normalizePath)([dir, `${value}.md`].join("/")); if (isInVault(plugin.app, filePath, "")) { inputPrompt.setValidationError(text2, t("note_exists")); return; } inputPrompt.close(); yield createNewFile(plugin, item, filePath, value); })); } else { const replacedTitle = filename.replace(FILE_NAME_REGEX, ""); const filePath = (0, import_obsidian6.normalizePath)([dir, `${replacedTitle}.md`].join("/")); yield createNewFile(plugin, item, filePath, item.title); } }); } function createNewFile(plugin, item, path, title) { return __async(this, null, function* () { if (isInVault(plugin.app, path, "")) { new import_obsidian6.Notice(t("note_exists")); return; } const appliedTemplate = applyTemplate(plugin, item, plugin.settings.template, title); const file = yield plugin.app.vault.create(path, appliedTemplate); yield plugin.app.workspace.activeLeaf.openFile(file, { state: { mode: "edit" } }); item.created = true; const items = plugin.settings.items; yield plugin.writeFeedContent(() => { return items; }); new import_obsidian6.Notice(t("created_note")); }); } function pasteToNote(plugin, item) { return __async(this, null, function* () { const file = plugin.app.workspace.getActiveFile(); if (file === null) { new import_obsidian6.Notice(t("no_file_active")); return; } const view = plugin.app.workspace.getActiveViewOfType(import_obsidian6.MarkdownView); if (view) { const appliedTemplate = applyTemplate(plugin, item, plugin.settings.pasteTemplate); const editor = view.editor; editor.replaceRange(appliedTemplate, editor.getCursor()); item.created = true; const items = plugin.settings.items; yield plugin.writeFeedContent(() => { return items; }); new import_obsidian6.Notice(t("RSS_Reader") + t("inserted_article")); } }); } function applyTemplate(plugin, item, template, filename) { let result = template.replace(/{{title}}/g, item.title); result = result.replace(/{{link}}/g, item.link); result = result.replace(/{{author}}/g, item.creator); result = result.replace(/{{published}}/g, (0, import_obsidian6.moment)(item.pubDate).format(plugin.settings.dateFormat)); result = result.replace(/{{created}}/g, (0, import_obsidian6.moment)().format(plugin.settings.dateFormat)); result = result.replace(/{{date}}/g, (0, import_obsidian6.moment)().format(plugin.settings.dateFormat)); result = result.replace(/{{feed}}/g, item.feed); result = result.replace(/{{folder}}/g, item.folder); result = result.replace(/{{description}}/g, item.description); result = result.replace(/{{media}}/g, item.enclosure); result = result.replace(/({{published:).*(}})/g, function(k) { const value = k.split(":")[1]; const format2 = value.substring(0, value.indexOf("}")); return (0, import_obsidian6.moment)(item.pubDate).format(format2); }); result = result.replace(/({{created:).*(}})/g, function(k) { const value = k.split(":")[1]; const format2 = value.substring(0, value.indexOf("}")); return (0, import_obsidian6.moment)().format(format2); }); result = result.replace(/({{tags:).*(}})/g, function(k) { const value = k.split(":")[1]; const separator = value.substring(0, value.indexOf("}")); return item.tags.join(separator); }); result = result.replace(/({{#tags:).*(}})/g, function(k) { const value = k.split(":")[1]; const separator = value.substring(0, value.indexOf("}")); return item.tags.map((i) => "#" + i).join(separator); }); result = result.replace(/{{tags}}/g, item.tags.join(", ")); result = result.replace(/{{#tags}}/g, item.tags.map((i) => "#" + i).join(", ")); result = result.replace(/{{highlights}}/g, item.highlights.map((value) => { return "- " + rssToMd(plugin, removeFormatting(value).replace(/^(-+)/, "")); }).join("\n")); result = result.replace(/({{highlights:)[\s\S][^}]*(}})/g, function(k) { const value = k.split(/(:[\s\S]?)/); const tmp = value.slice(1).join(""); const template2 = tmp.substring(1, tmp.indexOf("}")); return item.highlights.map((i) => { return template2.replace(/%%highlight%%/g, rssToMd(plugin, removeFormatting(i)).replace(/^(-+)/, "")); }).join(""); }); if (filename) { result = result.replace(/{{filename}}/g, filename); } let content = rssToMd(plugin, item.content); item.highlights.forEach((highlight) => { const mdHighlight = (0, import_obsidian6.htmlToMarkdown)(highlight); content = content.replace(mdHighlight, "==" + mdHighlight + "=="); }); content = content.replace(/\$/g, "$$$"); result = result.replace(/{{content}}/g, content); return result; } function removeFormatting(html) { const doc = new DOMParser().parseFromString(html, "text/html"); const elements = doc.querySelectorAll("html body a"); for (let i = 0; i < elements.length; i++) { const el = elements.item(i); if (el.dataset) { Object.keys(el.dataset).forEach((key) => { delete el.dataset[key]; }); } } const objects = doc.querySelectorAll("object"); for (let i = 0; i < objects.length; i++) { const object = objects.item(i); object.remove(); } return doc.documentElement.innerHTML; } function openInBrowser(item) { if (typeof item.link === "string") { window.open(item.link, "_blank"); } } function rssToMd(plugin, content) { let markdown = (0, import_obsidian6.htmlToMarkdown)(content); if (plugin.app.plugins.plugins["dataview"]) { const { inlineQueryPrefix, inlineJsQueryPrefix } = plugin.app.plugins.plugins.dataview.api.settings; markdown = markdown.replace(RegExp(`\`${escapeRegExp(inlineQueryPrefix)}.*\``, "g"), "
$&
"); markdown = markdown.replace(RegExp(`\`${escapeRegExp(inlineJsQueryPrefix)}.*\``, "g"), "
$&
"); } if (plugin.app.plugins.plugins["templater-obsidian"]) { markdown = markdown.replace(/<%([\s\S]*?)%>/g, "```javascript\n$&\n```"); } if (import_obsidian6.MarkdownPreviewRenderer.codeBlockPostProcessors) { const codeblockProcessors = Object.keys(import_obsidian6.MarkdownPreviewRenderer.codeBlockPostProcessors); for (const codeblockProcessor of codeblockProcessors) { const regex = RegExp("^```" + codeblockProcessor + "[\\s\\S]*?```$", "gm"); markdown = markdown.replace(regex, "
$&
"); } } else { markdown = markdown.replace(/^```.*\n([\s\S]*?)```$/gm, "
$&
"); } if (!plugin.settings.displayMedia) { markdown = markdown.replace(/!?\[(.*)\]\(.+\)/gm, "$1"); } return markdown; } function escapeRegExp(string) { return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); } // src/actions/Action.ts var import_obsidian9 = __toModule(require("obsidian")); // src/modals/TagModal.ts var import_obsidian8 = __toModule(require("obsidian")); // src/settings/suggest.ts var import_obsidian7 = __toModule(require("obsidian")); // node_modules/@popperjs/core/lib/enums.js var top = "top"; var bottom = "bottom"; var right = "right"; var left = "left"; var auto = "auto"; var basePlacements = [top, bottom, right, left]; var start = "start"; var end = "end"; var clippingParents = "clippingParents"; var viewport = "viewport"; var popper = "popper"; var reference = "reference"; var variationPlacements = /* @__PURE__ */ basePlacements.reduce(function(acc, placement) { return acc.concat([placement + "-" + start, placement + "-" + end]); }, []); var placements = /* @__PURE__ */ [].concat(basePlacements, [auto]).reduce(function(acc, placement) { return acc.concat([placement, placement + "-" + start, placement + "-" + end]); }, []); var beforeRead = "beforeRead"; var read = "read"; var afterRead = "afterRead"; var beforeMain = "beforeMain"; var main = "main"; var afterMain = "afterMain"; var beforeWrite = "beforeWrite"; var write = "write"; var afterWrite = "afterWrite"; var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite]; // node_modules/@popperjs/core/lib/dom-utils/getNodeName.js function getNodeName(element2) { return element2 ? (element2.nodeName || "").toLowerCase() : null; } // node_modules/@popperjs/core/lib/dom-utils/getWindow.js function getWindow(node) { if (node == null) { return window; } if (node.toString() !== "[object Window]") { var ownerDocument = node.ownerDocument; return ownerDocument ? ownerDocument.defaultView || window : window; } return node; } // node_modules/@popperjs/core/lib/dom-utils/instanceOf.js function isElement(node) { var OwnElement = getWindow(node).Element; return node instanceof OwnElement || node instanceof Element; } function isHTMLElement(node) { var OwnElement = getWindow(node).HTMLElement; return node instanceof OwnElement || node instanceof HTMLElement; } function isShadowRoot(node) { if (typeof ShadowRoot === "undefined") { return false; } var OwnElement = getWindow(node).ShadowRoot; return node instanceof OwnElement || node instanceof ShadowRoot; } // node_modules/@popperjs/core/lib/modifiers/applyStyles.js function applyStyles(_ref) { var state = _ref.state; Object.keys(state.elements).forEach(function(name) { var style = state.styles[name] || {}; var attributes = state.attributes[name] || {}; var element2 = state.elements[name]; if (!isHTMLElement(element2) || !getNodeName(element2)) { return; } Object.assign(element2.style, style); Object.keys(attributes).forEach(function(name2) { var value = attributes[name2]; if (value === false) { element2.removeAttribute(name2); } else { element2.setAttribute(name2, value === true ? "" : value); } }); }); } function effect(_ref2) { var state = _ref2.state; var initialStyles = { popper: { position: state.options.strategy, left: "0", top: "0", margin: "0" }, arrow: { position: "absolute" }, reference: {} }; Object.assign(state.elements.popper.style, initialStyles.popper); state.styles = initialStyles; if (state.elements.arrow) { Object.assign(state.elements.arrow.style, initialStyles.arrow); } return function() { Object.keys(state.elements).forEach(function(name) { var element2 = state.elements[name]; var attributes = state.attributes[name] || {}; var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); var style = styleProperties.reduce(function(style2, property) { style2[property] = ""; return style2; }, {}); if (!isHTMLElement(element2) || !getNodeName(element2)) { return; } Object.assign(element2.style, style); Object.keys(attributes).forEach(function(attribute) { element2.removeAttribute(attribute); }); }); }; } var applyStyles_default = { name: "applyStyles", enabled: true, phase: "write", fn: applyStyles, effect, requires: ["computeStyles"] }; // node_modules/@popperjs/core/lib/utils/getBasePlacement.js function getBasePlacement(placement) { return placement.split("-")[0]; } // node_modules/@popperjs/core/lib/utils/math.js var max = Math.max; var min = Math.min; var round = Math.round; // node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js function getBoundingClientRect(element2, includeScale) { if (includeScale === void 0) { includeScale = false; } var rect = element2.getBoundingClientRect(); var scaleX = 1; var scaleY = 1; if (isHTMLElement(element2) && includeScale) { var offsetHeight = element2.offsetHeight; var offsetWidth = element2.offsetWidth; if (offsetWidth > 0) { scaleX = round(rect.width) / offsetWidth || 1; } if (offsetHeight > 0) { scaleY = round(rect.height) / offsetHeight || 1; } } return { width: rect.width / scaleX, height: rect.height / scaleY, top: rect.top / scaleY, right: rect.right / scaleX, bottom: rect.bottom / scaleY, left: rect.left / scaleX, x: rect.left / scaleX, y: rect.top / scaleY }; } // node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js function getLayoutRect(element2) { var clientRect = getBoundingClientRect(element2); var width = element2.offsetWidth; var height = element2.offsetHeight; if (Math.abs(clientRect.width - width) <= 1) { width = clientRect.width; } if (Math.abs(clientRect.height - height) <= 1) { height = clientRect.height; } return { x: element2.offsetLeft, y: element2.offsetTop, width, height }; } // node_modules/@popperjs/core/lib/dom-utils/contains.js function contains(parent, child) { var rootNode = child.getRootNode && child.getRootNode(); if (parent.contains(child)) { return true; } else if (rootNode && isShadowRoot(rootNode)) { var next = child; do { if (next && parent.isSameNode(next)) { return true; } next = next.parentNode || next.host; } while (next); } return false; } // node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js function getComputedStyle2(element2) { return getWindow(element2).getComputedStyle(element2); } // node_modules/@popperjs/core/lib/dom-utils/isTableElement.js function isTableElement(element2) { return ["table", "td", "th"].indexOf(getNodeName(element2)) >= 0; } // node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js function getDocumentElement(element2) { return ((isElement(element2) ? element2.ownerDocument : element2.document) || window.document).documentElement; } // node_modules/@popperjs/core/lib/dom-utils/getParentNode.js function getParentNode(element2) { if (getNodeName(element2) === "html") { return element2; } return element2.assignedSlot || element2.parentNode || (isShadowRoot(element2) ? element2.host : null) || getDocumentElement(element2); } // node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js function getTrueOffsetParent(element2) { if (!isHTMLElement(element2) || getComputedStyle2(element2).position === "fixed") { return null; } return element2.offsetParent; } function getContainingBlock(element2) { var isFirefox = navigator.userAgent.toLowerCase().indexOf("firefox") !== -1; var isIE = navigator.userAgent.indexOf("Trident") !== -1; if (isIE && isHTMLElement(element2)) { var elementCss = getComputedStyle2(element2); if (elementCss.position === "fixed") { return null; } } var currentNode = getParentNode(element2); if (isShadowRoot(currentNode)) { currentNode = currentNode.host; } while (isHTMLElement(currentNode) && ["html", "body"].indexOf(getNodeName(currentNode)) < 0) { var css = getComputedStyle2(currentNode); if (css.transform !== "none" || css.perspective !== "none" || css.contain === "paint" || ["transform", "perspective"].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === "filter" || isFirefox && css.filter && css.filter !== "none") { return currentNode; } else { currentNode = currentNode.parentNode; } } return null; } function getOffsetParent(element2) { var window2 = getWindow(element2); var offsetParent = getTrueOffsetParent(element2); while (offsetParent && isTableElement(offsetParent) && getComputedStyle2(offsetParent).position === "static") { offsetParent = getTrueOffsetParent(offsetParent); } if (offsetParent && (getNodeName(offsetParent) === "html" || getNodeName(offsetParent) === "body" && getComputedStyle2(offsetParent).position === "static")) { return window2; } return offsetParent || getContainingBlock(element2) || window2; } // node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js function getMainAxisFromPlacement(placement) { return ["top", "bottom"].indexOf(placement) >= 0 ? "x" : "y"; } // node_modules/@popperjs/core/lib/utils/within.js function within(min2, value, max2) { return max(min2, min(value, max2)); } function withinMaxClamp(min2, value, max2) { var v = within(min2, value, max2); return v > max2 ? max2 : v; } // node_modules/@popperjs/core/lib/utils/getFreshSideObject.js function getFreshSideObject() { return { top: 0, right: 0, bottom: 0, left: 0 }; } // node_modules/@popperjs/core/lib/utils/mergePaddingObject.js function mergePaddingObject(paddingObject) { return Object.assign({}, getFreshSideObject(), paddingObject); } // node_modules/@popperjs/core/lib/utils/expandToHashMap.js function expandToHashMap(value, keys) { return keys.reduce(function(hashMap, key) { hashMap[key] = value; return hashMap; }, {}); } // node_modules/@popperjs/core/lib/modifiers/arrow.js var toPaddingObject = function toPaddingObject2(padding, state) { padding = typeof padding === "function" ? padding(Object.assign({}, state.rects, { placement: state.placement })) : padding; return mergePaddingObject(typeof padding !== "number" ? padding : expandToHashMap(padding, basePlacements)); }; function arrow(_ref) { var _state$modifiersData$; var state = _ref.state, name = _ref.name, options = _ref.options; var arrowElement = state.elements.arrow; var popperOffsets2 = state.modifiersData.popperOffsets; var basePlacement = getBasePlacement(state.placement); var axis = getMainAxisFromPlacement(basePlacement); var isVertical = [left, right].indexOf(basePlacement) >= 0; var len = isVertical ? "height" : "width"; if (!arrowElement || !popperOffsets2) { return; } var paddingObject = toPaddingObject(options.padding, state); var arrowRect = getLayoutRect(arrowElement); var minProp = axis === "y" ? top : left; var maxProp = axis === "y" ? bottom : right; var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets2[axis] - state.rects.popper[len]; var startDiff = popperOffsets2[axis] - state.rects.reference[axis]; var arrowOffsetParent = getOffsetParent(arrowElement); var clientSize = arrowOffsetParent ? axis === "y" ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0; var centerToReference = endDiff / 2 - startDiff / 2; var min2 = paddingObject[minProp]; var max2 = clientSize - arrowRect[len] - paddingObject[maxProp]; var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference; var offset2 = within(min2, center, max2); var axisProp = axis; state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset2, _state$modifiersData$.centerOffset = offset2 - center, _state$modifiersData$); } function effect2(_ref2) { var state = _ref2.state, options = _ref2.options; var _options$element = options.element, arrowElement = _options$element === void 0 ? "[data-popper-arrow]" : _options$element; if (arrowElement == null) { return; } if (typeof arrowElement === "string") { arrowElement = state.elements.popper.querySelector(arrowElement); if (!arrowElement) { return; } } if (true) { if (!isHTMLElement(arrowElement)) { console.error(['Popper: "arrow" element must be an HTMLElement (not an SVGElement).', "To use an SVG arrow, wrap it in an HTMLElement that will be used as", "the arrow."].join(" ")); } } if (!contains(state.elements.popper, arrowElement)) { if (true) { console.error(['Popper: "arrow" modifier\'s `element` must be a child of the popper', "element."].join(" ")); } return; } state.elements.arrow = arrowElement; } var arrow_default = { name: "arrow", enabled: true, phase: "main", fn: arrow, effect: effect2, requires: ["popperOffsets"], requiresIfExists: ["preventOverflow"] }; // node_modules/@popperjs/core/lib/utils/getVariation.js function getVariation(placement) { return placement.split("-")[1]; } // node_modules/@popperjs/core/lib/modifiers/computeStyles.js var unsetSides = { top: "auto", right: "auto", bottom: "auto", left: "auto" }; function roundOffsetsByDPR(_ref) { var x = _ref.x, y = _ref.y; var win = window; var dpr = win.devicePixelRatio || 1; return { x: round(x * dpr) / dpr || 0, y: round(y * dpr) / dpr || 0 }; } function mapToStyles(_ref2) { var _Object$assign2; var popper2 = _ref2.popper, popperRect = _ref2.popperRect, placement = _ref2.placement, variation = _ref2.variation, offsets = _ref2.offsets, position = _ref2.position, gpuAcceleration = _ref2.gpuAcceleration, adaptive = _ref2.adaptive, roundOffsets = _ref2.roundOffsets, isFixed = _ref2.isFixed; var _offsets$x = offsets.x, x = _offsets$x === void 0 ? 0 : _offsets$x, _offsets$y = offsets.y, y = _offsets$y === void 0 ? 0 : _offsets$y; var _ref3 = typeof roundOffsets === "function" ? roundOffsets({ x, y }) : { x, y }; x = _ref3.x; y = _ref3.y; var hasX = offsets.hasOwnProperty("x"); var hasY = offsets.hasOwnProperty("y"); var sideX = left; var sideY = top; var win = window; if (adaptive) { var offsetParent = getOffsetParent(popper2); var heightProp = "clientHeight"; var widthProp = "clientWidth"; if (offsetParent === getWindow(popper2)) { offsetParent = getDocumentElement(popper2); if (getComputedStyle2(offsetParent).position !== "static" && position === "absolute") { heightProp = "scrollHeight"; widthProp = "scrollWidth"; } } offsetParent = offsetParent; if (placement === top || (placement === left || placement === right) && variation === end) { sideY = bottom; var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : offsetParent[heightProp]; y -= offsetY - popperRect.height; y *= gpuAcceleration ? 1 : -1; } if (placement === left || (placement === top || placement === bottom) && variation === end) { sideX = right; var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : offsetParent[widthProp]; x -= offsetX - popperRect.width; x *= gpuAcceleration ? 1 : -1; } } var commonStyles = Object.assign({ position }, adaptive && unsetSides); var _ref4 = roundOffsets === true ? roundOffsetsByDPR({ x, y }) : { x, y }; x = _ref4.x; y = _ref4.y; if (gpuAcceleration) { var _Object$assign; return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? "0" : "", _Object$assign[sideX] = hasX ? "0" : "", _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? "translate(" + x + "px, " + y + "px)" : "translate3d(" + x + "px, " + y + "px, 0)", _Object$assign)); } return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + "px" : "", _Object$assign2[sideX] = hasX ? x + "px" : "", _Object$assign2.transform = "", _Object$assign2)); } function computeStyles(_ref5) { var state = _ref5.state, options = _ref5.options; var _options$gpuAccelerat = options.gpuAcceleration, gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat, _options$adaptive = options.adaptive, adaptive = _options$adaptive === void 0 ? true : _options$adaptive, _options$roundOffsets = options.roundOffsets, roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets; if (true) { var transitionProperty = getComputedStyle2(state.elements.popper).transitionProperty || ""; if (adaptive && ["transform", "top", "right", "bottom", "left"].some(function(property) { return transitionProperty.indexOf(property) >= 0; })) { console.warn(["Popper: Detected CSS transitions on at least one of the following", 'CSS properties: "transform", "top", "right", "bottom", "left".', "\n\n", 'Disable the "computeStyles" modifier\'s `adaptive` option to allow', "for smooth transitions, or remove these properties from the CSS", "transition declaration on the popper element if only transitioning", "opacity or background-color for example.", "\n\n", "We recommend using the popper element as a wrapper around an inner", "element that can have any CSS property transitioned for animations."].join(" ")); } } var commonStyles = { placement: getBasePlacement(state.placement), variation: getVariation(state.placement), popper: state.elements.popper, popperRect: state.rects.popper, gpuAcceleration, isFixed: state.options.strategy === "fixed" }; if (state.modifiersData.popperOffsets != null) { state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, { offsets: state.modifiersData.popperOffsets, position: state.options.strategy, adaptive, roundOffsets }))); } if (state.modifiersData.arrow != null) { state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, { offsets: state.modifiersData.arrow, position: "absolute", adaptive: false, roundOffsets }))); } state.attributes.popper = Object.assign({}, state.attributes.popper, { "data-popper-placement": state.placement }); } var computeStyles_default = { name: "computeStyles", enabled: true, phase: "beforeWrite", fn: computeStyles, data: {} }; // node_modules/@popperjs/core/lib/modifiers/eventListeners.js var passive = { passive: true }; function effect3(_ref) { var state = _ref.state, instance9 = _ref.instance, options = _ref.options; var _options$scroll = options.scroll, scroll = _options$scroll === void 0 ? true : _options$scroll, _options$resize = options.resize, resize = _options$resize === void 0 ? true : _options$resize; var window2 = getWindow(state.elements.popper); var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper); if (scroll) { scrollParents.forEach(function(scrollParent) { scrollParent.addEventListener("scroll", instance9.update, passive); }); } if (resize) { window2.addEventListener("resize", instance9.update, passive); } return function() { if (scroll) { scrollParents.forEach(function(scrollParent) { scrollParent.removeEventListener("scroll", instance9.update, passive); }); } if (resize) { window2.removeEventListener("resize", instance9.update, passive); } }; } var eventListeners_default = { name: "eventListeners", enabled: true, phase: "write", fn: function fn() { }, effect: effect3, data: {} }; // node_modules/@popperjs/core/lib/utils/getOppositePlacement.js var hash = { left: "right", right: "left", bottom: "top", top: "bottom" }; function getOppositePlacement(placement) { return placement.replace(/left|right|bottom|top/g, function(matched) { return hash[matched]; }); } // node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js var hash2 = { start: "end", end: "start" }; function getOppositeVariationPlacement(placement) { return placement.replace(/start|end/g, function(matched) { return hash2[matched]; }); } // node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js function getWindowScroll(node) { var win = getWindow(node); var scrollLeft = win.pageXOffset; var scrollTop = win.pageYOffset; return { scrollLeft, scrollTop }; } // node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js function getWindowScrollBarX(element2) { return getBoundingClientRect(getDocumentElement(element2)).left + getWindowScroll(element2).scrollLeft; } // node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js function getViewportRect(element2) { var win = getWindow(element2); var html = getDocumentElement(element2); var visualViewport = win.visualViewport; var width = html.clientWidth; var height = html.clientHeight; var x = 0; var y = 0; if (visualViewport) { width = visualViewport.width; height = visualViewport.height; if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) { x = visualViewport.offsetLeft; y = visualViewport.offsetTop; } } return { width, height, x: x + getWindowScrollBarX(element2), y }; } // node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js function getDocumentRect(element2) { var _element$ownerDocumen; var html = getDocumentElement(element2); var winScroll = getWindowScroll(element2); var body = (_element$ownerDocumen = element2.ownerDocument) == null ? void 0 : _element$ownerDocumen.body; var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0); var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0); var x = -winScroll.scrollLeft + getWindowScrollBarX(element2); var y = -winScroll.scrollTop; if (getComputedStyle2(body || html).direction === "rtl") { x += max(html.clientWidth, body ? body.clientWidth : 0) - width; } return { width, height, x, y }; } // node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js function isScrollParent(element2) { var _getComputedStyle = getComputedStyle2(element2), overflow = _getComputedStyle.overflow, overflowX = _getComputedStyle.overflowX, overflowY = _getComputedStyle.overflowY; return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX); } // node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js function getScrollParent(node) { if (["html", "body", "#document"].indexOf(getNodeName(node)) >= 0) { return node.ownerDocument.body; } if (isHTMLElement(node) && isScrollParent(node)) { return node; } return getScrollParent(getParentNode(node)); } // node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js function listScrollParents(element2, list) { var _element$ownerDocumen; if (list === void 0) { list = []; } var scrollParent = getScrollParent(element2); var isBody = scrollParent === ((_element$ownerDocumen = element2.ownerDocument) == null ? void 0 : _element$ownerDocumen.body); var win = getWindow(scrollParent); var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent; var updatedList = list.concat(target); return isBody ? updatedList : updatedList.concat(listScrollParents(getParentNode(target))); } // node_modules/@popperjs/core/lib/utils/rectToClientRect.js function rectToClientRect(rect) { return Object.assign({}, rect, { left: rect.x, top: rect.y, right: rect.x + rect.width, bottom: rect.y + rect.height }); } // node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js function getInnerBoundingClientRect(element2) { var rect = getBoundingClientRect(element2); rect.top = rect.top + element2.clientTop; rect.left = rect.left + element2.clientLeft; rect.bottom = rect.top + element2.clientHeight; rect.right = rect.left + element2.clientWidth; rect.width = element2.clientWidth; rect.height = element2.clientHeight; rect.x = rect.left; rect.y = rect.top; return rect; } function getClientRectFromMixedType(element2, clippingParent) { return clippingParent === viewport ? rectToClientRect(getViewportRect(element2)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element2))); } function getClippingParents(element2) { var clippingParents2 = listScrollParents(getParentNode(element2)); var canEscapeClipping = ["absolute", "fixed"].indexOf(getComputedStyle2(element2).position) >= 0; var clipperElement = canEscapeClipping && isHTMLElement(element2) ? getOffsetParent(element2) : element2; if (!isElement(clipperElement)) { return []; } return clippingParents2.filter(function(clippingParent) { return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== "body"; }); } function getClippingRect(element2, boundary, rootBoundary) { var mainClippingParents = boundary === "clippingParents" ? getClippingParents(element2) : [].concat(boundary); var clippingParents2 = [].concat(mainClippingParents, [rootBoundary]); var firstClippingParent = clippingParents2[0]; var clippingRect = clippingParents2.reduce(function(accRect, clippingParent) { var rect = getClientRectFromMixedType(element2, clippingParent); accRect.top = max(rect.top, accRect.top); accRect.right = min(rect.right, accRect.right); accRect.bottom = min(rect.bottom, accRect.bottom); accRect.left = max(rect.left, accRect.left); return accRect; }, getClientRectFromMixedType(element2, firstClippingParent)); clippingRect.width = clippingRect.right - clippingRect.left; clippingRect.height = clippingRect.bottom - clippingRect.top; clippingRect.x = clippingRect.left; clippingRect.y = clippingRect.top; return clippingRect; } // node_modules/@popperjs/core/lib/utils/computeOffsets.js function computeOffsets(_ref) { var reference2 = _ref.reference, element2 = _ref.element, placement = _ref.placement; var basePlacement = placement ? getBasePlacement(placement) : null; var variation = placement ? getVariation(placement) : null; var commonX = reference2.x + reference2.width / 2 - element2.width / 2; var commonY = reference2.y + reference2.height / 2 - element2.height / 2; var offsets; switch (basePlacement) { case top: offsets = { x: commonX, y: reference2.y - element2.height }; break; case bottom: offsets = { x: commonX, y: reference2.y + reference2.height }; break; case right: offsets = { x: reference2.x + reference2.width, y: commonY }; break; case left: offsets = { x: reference2.x - element2.width, y: commonY }; break; default: offsets = { x: reference2.x, y: reference2.y }; } var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null; if (mainAxis != null) { var len = mainAxis === "y" ? "height" : "width"; switch (variation) { case start: offsets[mainAxis] = offsets[mainAxis] - (reference2[len] / 2 - element2[len] / 2); break; case end: offsets[mainAxis] = offsets[mainAxis] + (reference2[len] / 2 - element2[len] / 2); break; default: } } return offsets; } // node_modules/@popperjs/core/lib/utils/detectOverflow.js function detectOverflow(state, options) { if (options === void 0) { options = {}; } var _options = options, _options$placement = _options.placement, placement = _options$placement === void 0 ? state.placement : _options$placement, _options$boundary = _options.boundary, boundary = _options$boundary === void 0 ? clippingParents : _options$boundary, _options$rootBoundary = _options.rootBoundary, rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary, _options$elementConte = _options.elementContext, elementContext = _options$elementConte === void 0 ? popper : _options$elementConte, _options$altBoundary = _options.altBoundary, altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary, _options$padding = _options.padding, padding = _options$padding === void 0 ? 0 : _options$padding; var paddingObject = mergePaddingObject(typeof padding !== "number" ? padding : expandToHashMap(padding, basePlacements)); var altContext = elementContext === popper ? reference : popper; var popperRect = state.rects.popper; var element2 = state.elements[altBoundary ? altContext : elementContext]; var clippingClientRect = getClippingRect(isElement(element2) ? element2 : element2.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary); var referenceClientRect = getBoundingClientRect(state.elements.reference); var popperOffsets2 = computeOffsets({ reference: referenceClientRect, element: popperRect, strategy: "absolute", placement }); var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets2)); var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; var overflowOffsets = { top: clippingClientRect.top - elementClientRect.top + paddingObject.top, bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom, left: clippingClientRect.left - elementClientRect.left + paddingObject.left, right: elementClientRect.right - clippingClientRect.right + paddingObject.right }; var offsetData = state.modifiersData.offset; if (elementContext === popper && offsetData) { var offset2 = offsetData[placement]; Object.keys(overflowOffsets).forEach(function(key) { var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1; var axis = [top, bottom].indexOf(key) >= 0 ? "y" : "x"; overflowOffsets[key] += offset2[axis] * multiply; }); } return overflowOffsets; } // node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js function computeAutoPlacement(state, options) { if (options === void 0) { options = {}; } var _options = options, placement = _options.placement, boundary = _options.boundary, rootBoundary = _options.rootBoundary, padding = _options.padding, flipVariations = _options.flipVariations, _options$allowedAutoP = _options.allowedAutoPlacements, allowedAutoPlacements = _options$allowedAutoP === void 0 ? placements : _options$allowedAutoP; var variation = getVariation(placement); var placements2 = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function(placement2) { return getVariation(placement2) === variation; }) : basePlacements; var allowedPlacements = placements2.filter(function(placement2) { return allowedAutoPlacements.indexOf(placement2) >= 0; }); if (allowedPlacements.length === 0) { allowedPlacements = placements2; if (true) { console.error(["Popper: The `allowedAutoPlacements` option did not allow any", "placements. Ensure the `placement` option matches the variation", "of the allowed placements.", 'For example, "auto" cannot be used to allow "bottom-start".', 'Use "auto-start" instead.'].join(" ")); } } var overflows = allowedPlacements.reduce(function(acc, placement2) { acc[placement2] = detectOverflow(state, { placement: placement2, boundary, rootBoundary, padding })[getBasePlacement(placement2)]; return acc; }, {}); return Object.keys(overflows).sort(function(a, b) { return overflows[a] - overflows[b]; }); } // node_modules/@popperjs/core/lib/modifiers/flip.js function getExpandedFallbackPlacements(placement) { if (getBasePlacement(placement) === auto) { return []; } var oppositePlacement = getOppositePlacement(placement); return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)]; } function flip(_ref) { var state = _ref.state, options = _ref.options, name = _ref.name; if (state.modifiersData[name]._skip) { return; } var _options$mainAxis = options.mainAxis, checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, _options$altAxis = options.altAxis, checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis, specifiedFallbackPlacements = options.fallbackPlacements, padding = options.padding, boundary = options.boundary, rootBoundary = options.rootBoundary, altBoundary = options.altBoundary, _options$flipVariatio = options.flipVariations, flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio, allowedAutoPlacements = options.allowedAutoPlacements; var preferredPlacement = state.options.placement; var basePlacement = getBasePlacement(preferredPlacement); var isBasePlacement = basePlacement === preferredPlacement; var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement)); var placements2 = [preferredPlacement].concat(fallbackPlacements).reduce(function(acc, placement2) { return acc.concat(getBasePlacement(placement2) === auto ? computeAutoPlacement(state, { placement: placement2, boundary, rootBoundary, padding, flipVariations, allowedAutoPlacements }) : placement2); }, []); var referenceRect = state.rects.reference; var popperRect = state.rects.popper; var checksMap = new Map(); var makeFallbackChecks = true; var firstFittingPlacement = placements2[0]; for (var i = 0; i < placements2.length; i++) { var placement = placements2[i]; var _basePlacement = getBasePlacement(placement); var isStartVariation = getVariation(placement) === start; var isVertical = [top, bottom].indexOf(_basePlacement) >= 0; var len = isVertical ? "width" : "height"; var overflow = detectOverflow(state, { placement, boundary, rootBoundary, altBoundary, padding }); var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top; if (referenceRect[len] > popperRect[len]) { mainVariationSide = getOppositePlacement(mainVariationSide); } var altVariationSide = getOppositePlacement(mainVariationSide); var checks = []; if (checkMainAxis) { checks.push(overflow[_basePlacement] <= 0); } if (checkAltAxis) { checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0); } if (checks.every(function(check) { return check; })) { firstFittingPlacement = placement; makeFallbackChecks = false; break; } checksMap.set(placement, checks); } if (makeFallbackChecks) { var numberOfChecks = flipVariations ? 3 : 1; var _loop = function _loop2(_i2) { var fittingPlacement = placements2.find(function(placement2) { var checks2 = checksMap.get(placement2); if (checks2) { return checks2.slice(0, _i2).every(function(check) { return check; }); } }); if (fittingPlacement) { firstFittingPlacement = fittingPlacement; return "break"; } }; for (var _i = numberOfChecks; _i > 0; _i--) { var _ret = _loop(_i); if (_ret === "break") break; } } if (state.placement !== firstFittingPlacement) { state.modifiersData[name]._skip = true; state.placement = firstFittingPlacement; state.reset = true; } } var flip_default = { name: "flip", enabled: true, phase: "main", fn: flip, requiresIfExists: ["offset"], data: { _skip: false } }; // node_modules/@popperjs/core/lib/modifiers/hide.js function getSideOffsets(overflow, rect, preventedOffsets) { if (preventedOffsets === void 0) { preventedOffsets = { x: 0, y: 0 }; } return { top: overflow.top - rect.height - preventedOffsets.y, right: overflow.right - rect.width + preventedOffsets.x, bottom: overflow.bottom - rect.height + preventedOffsets.y, left: overflow.left - rect.width - preventedOffsets.x }; } function isAnySideFullyClipped(overflow) { return [top, right, bottom, left].some(function(side) { return overflow[side] >= 0; }); } function hide(_ref) { var state = _ref.state, name = _ref.name; var referenceRect = state.rects.reference; var popperRect = state.rects.popper; var preventedOffsets = state.modifiersData.preventOverflow; var referenceOverflow = detectOverflow(state, { elementContext: "reference" }); var popperAltOverflow = detectOverflow(state, { altBoundary: true }); var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect); var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets); var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets); var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets); state.modifiersData[name] = { referenceClippingOffsets, popperEscapeOffsets, isReferenceHidden, hasPopperEscaped }; state.attributes.popper = Object.assign({}, state.attributes.popper, { "data-popper-reference-hidden": isReferenceHidden, "data-popper-escaped": hasPopperEscaped }); } var hide_default = { name: "hide", enabled: true, phase: "main", requiresIfExists: ["preventOverflow"], fn: hide }; // node_modules/@popperjs/core/lib/modifiers/offset.js function distanceAndSkiddingToXY(placement, rects, offset2) { var basePlacement = getBasePlacement(placement); var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1; var _ref = typeof offset2 === "function" ? offset2(Object.assign({}, rects, { placement })) : offset2, skidding = _ref[0], distance = _ref[1]; skidding = skidding || 0; distance = (distance || 0) * invertDistance; return [left, right].indexOf(basePlacement) >= 0 ? { x: distance, y: skidding } : { x: skidding, y: distance }; } function offset(_ref2) { var state = _ref2.state, options = _ref2.options, name = _ref2.name; var _options$offset = options.offset, offset2 = _options$offset === void 0 ? [0, 0] : _options$offset; var data = placements.reduce(function(acc, placement) { acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset2); return acc; }, {}); var _data$state$placement = data[state.placement], x = _data$state$placement.x, y = _data$state$placement.y; if (state.modifiersData.popperOffsets != null) { state.modifiersData.popperOffsets.x += x; state.modifiersData.popperOffsets.y += y; } state.modifiersData[name] = data; } var offset_default = { name: "offset", enabled: true, phase: "main", requires: ["popperOffsets"], fn: offset }; // node_modules/@popperjs/core/lib/modifiers/popperOffsets.js function popperOffsets(_ref) { var state = _ref.state, name = _ref.name; state.modifiersData[name] = computeOffsets({ reference: state.rects.reference, element: state.rects.popper, strategy: "absolute", placement: state.placement }); } var popperOffsets_default = { name: "popperOffsets", enabled: true, phase: "read", fn: popperOffsets, data: {} }; // node_modules/@popperjs/core/lib/utils/getAltAxis.js function getAltAxis(axis) { return axis === "x" ? "y" : "x"; } // node_modules/@popperjs/core/lib/modifiers/preventOverflow.js function preventOverflow(_ref) { var state = _ref.state, options = _ref.options, name = _ref.name; var _options$mainAxis = options.mainAxis, checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, _options$altAxis = options.altAxis, checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis, boundary = options.boundary, rootBoundary = options.rootBoundary, altBoundary = options.altBoundary, padding = options.padding, _options$tether = options.tether, tether = _options$tether === void 0 ? true : _options$tether, _options$tetherOffset = options.tetherOffset, tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset; var overflow = detectOverflow(state, { boundary, rootBoundary, padding, altBoundary }); var basePlacement = getBasePlacement(state.placement); var variation = getVariation(state.placement); var isBasePlacement = !variation; var mainAxis = getMainAxisFromPlacement(basePlacement); var altAxis = getAltAxis(mainAxis); var popperOffsets2 = state.modifiersData.popperOffsets; var referenceRect = state.rects.reference; var popperRect = state.rects.popper; var tetherOffsetValue = typeof tetherOffset === "function" ? tetherOffset(Object.assign({}, state.rects, { placement: state.placement })) : tetherOffset; var normalizedTetherOffsetValue = typeof tetherOffsetValue === "number" ? { mainAxis: tetherOffsetValue, altAxis: tetherOffsetValue } : Object.assign({ mainAxis: 0, altAxis: 0 }, tetherOffsetValue); var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null; var data = { x: 0, y: 0 }; if (!popperOffsets2) { return; } if (checkMainAxis) { var _offsetModifierState$; var mainSide = mainAxis === "y" ? top : left; var altSide = mainAxis === "y" ? bottom : right; var len = mainAxis === "y" ? "height" : "width"; var offset2 = popperOffsets2[mainAxis]; var min2 = offset2 + overflow[mainSide]; var max2 = offset2 - overflow[altSide]; var additive = tether ? -popperRect[len] / 2 : 0; var minLen = variation === start ? referenceRect[len] : popperRect[len]; var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; var arrowElement = state.elements.arrow; var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : { width: 0, height: 0 }; var arrowPaddingObject = state.modifiersData["arrow#persistent"] ? state.modifiersData["arrow#persistent"].padding : getFreshSideObject(); var arrowPaddingMin = arrowPaddingObject[mainSide]; var arrowPaddingMax = arrowPaddingObject[altSide]; var arrowLen = within(0, referenceRect[len], arrowRect[len]); var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis; var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis; var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow); var clientOffset = arrowOffsetParent ? mainAxis === "y" ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0; var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0; var tetherMin = offset2 + minOffset - offsetModifierValue - clientOffset; var tetherMax = offset2 + maxOffset - offsetModifierValue; var preventedOffset = within(tether ? min(min2, tetherMin) : min2, offset2, tether ? max(max2, tetherMax) : max2); popperOffsets2[mainAxis] = preventedOffset; data[mainAxis] = preventedOffset - offset2; } if (checkAltAxis) { var _offsetModifierState$2; var _mainSide = mainAxis === "x" ? top : left; var _altSide = mainAxis === "x" ? bottom : right; var _offset = popperOffsets2[altAxis]; var _len = altAxis === "y" ? "height" : "width"; var _min = _offset + overflow[_mainSide]; var _max = _offset - overflow[_altSide]; var isOriginSide = [top, left].indexOf(basePlacement) !== -1; var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0; var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis; var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max; var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max); popperOffsets2[altAxis] = _preventedOffset; data[altAxis] = _preventedOffset - _offset; } state.modifiersData[name] = data; } var preventOverflow_default = { name: "preventOverflow", enabled: true, phase: "main", fn: preventOverflow, requiresIfExists: ["offset"] }; // node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js function getHTMLElementScroll(element2) { return { scrollLeft: element2.scrollLeft, scrollTop: element2.scrollTop }; } // node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js function getNodeScroll(node) { if (node === getWindow(node) || !isHTMLElement(node)) { return getWindowScroll(node); } else { return getHTMLElementScroll(node); } } // node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js function isElementScaled(element2) { var rect = element2.getBoundingClientRect(); var scaleX = round(rect.width) / element2.offsetWidth || 1; var scaleY = round(rect.height) / element2.offsetHeight || 1; return scaleX !== 1 || scaleY !== 1; } function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) { if (isFixed === void 0) { isFixed = false; } var isOffsetParentAnElement = isHTMLElement(offsetParent); var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent); var documentElement = getDocumentElement(offsetParent); var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled); var scroll = { scrollLeft: 0, scrollTop: 0 }; var offsets = { x: 0, y: 0 }; if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) { if (getNodeName(offsetParent) !== "body" || isScrollParent(documentElement)) { scroll = getNodeScroll(offsetParent); } if (isHTMLElement(offsetParent)) { offsets = getBoundingClientRect(offsetParent, true); offsets.x += offsetParent.clientLeft; offsets.y += offsetParent.clientTop; } else if (documentElement) { offsets.x = getWindowScrollBarX(documentElement); } } return { x: rect.left + scroll.scrollLeft - offsets.x, y: rect.top + scroll.scrollTop - offsets.y, width: rect.width, height: rect.height }; } // node_modules/@popperjs/core/lib/utils/orderModifiers.js function order(modifiers) { var map = new Map(); var visited = new Set(); var result = []; modifiers.forEach(function(modifier) { map.set(modifier.name, modifier); }); function sort(modifier) { visited.add(modifier.name); var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []); requires.forEach(function(dep) { if (!visited.has(dep)) { var depModifier = map.get(dep); if (depModifier) { sort(depModifier); } } }); result.push(modifier); } modifiers.forEach(function(modifier) { if (!visited.has(modifier.name)) { sort(modifier); } }); return result; } function orderModifiers(modifiers) { var orderedModifiers = order(modifiers); return modifierPhases.reduce(function(acc, phase) { return acc.concat(orderedModifiers.filter(function(modifier) { return modifier.phase === phase; })); }, []); } // node_modules/@popperjs/core/lib/utils/debounce.js function debounce(fn2) { var pending; return function() { if (!pending) { pending = new Promise(function(resolve) { Promise.resolve().then(function() { pending = void 0; resolve(fn2()); }); }); } return pending; }; } // node_modules/@popperjs/core/lib/utils/format.js function format(str) { for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { args[_key - 1] = arguments[_key]; } return [].concat(args).reduce(function(p, c) { return p.replace(/%s/, c); }, str); } // node_modules/@popperjs/core/lib/utils/validateModifiers.js var INVALID_MODIFIER_ERROR = 'Popper: modifier "%s" provided an invalid %s property, expected %s but got %s'; var MISSING_DEPENDENCY_ERROR = 'Popper: modifier "%s" requires "%s", but "%s" modifier is not available'; var VALID_PROPERTIES = ["name", "enabled", "phase", "fn", "effect", "requires", "options"]; function validateModifiers(modifiers) { modifiers.forEach(function(modifier) { [].concat(Object.keys(modifier), VALID_PROPERTIES).filter(function(value, index, self2) { return self2.indexOf(value) === index; }).forEach(function(key) { switch (key) { case "name": if (typeof modifier.name !== "string") { console.error(format(INVALID_MODIFIER_ERROR, String(modifier.name), '"name"', '"string"', '"' + String(modifier.name) + '"')); } break; case "enabled": if (typeof modifier.enabled !== "boolean") { console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"enabled"', '"boolean"', '"' + String(modifier.enabled) + '"')); } break; case "phase": if (modifierPhases.indexOf(modifier.phase) < 0) { console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"phase"', "either " + modifierPhases.join(", "), '"' + String(modifier.phase) + '"')); } break; case "fn": if (typeof modifier.fn !== "function") { console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"fn"', '"function"', '"' + String(modifier.fn) + '"')); } break; case "effect": if (modifier.effect != null && typeof modifier.effect !== "function") { console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"effect"', '"function"', '"' + String(modifier.fn) + '"')); } break; case "requires": if (modifier.requires != null && !Array.isArray(modifier.requires)) { console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"requires"', '"array"', '"' + String(modifier.requires) + '"')); } break; case "requiresIfExists": if (!Array.isArray(modifier.requiresIfExists)) { console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"requiresIfExists"', '"array"', '"' + String(modifier.requiresIfExists) + '"')); } break; case "options": case "data": break; default: console.error('PopperJS: an invalid property has been provided to the "' + modifier.name + '" modifier, valid properties are ' + VALID_PROPERTIES.map(function(s) { return '"' + s + '"'; }).join(", ") + '; but "' + key + '" was provided.'); } modifier.requires && modifier.requires.forEach(function(requirement) { if (modifiers.find(function(mod) { return mod.name === requirement; }) == null) { console.error(format(MISSING_DEPENDENCY_ERROR, String(modifier.name), requirement, requirement)); } }); }); }); } // node_modules/@popperjs/core/lib/utils/uniqueBy.js function uniqueBy(arr, fn2) { var identifiers = new Set(); return arr.filter(function(item) { var identifier = fn2(item); if (!identifiers.has(identifier)) { identifiers.add(identifier); return true; } }); } // node_modules/@popperjs/core/lib/utils/mergeByName.js function mergeByName(modifiers) { var merged = modifiers.reduce(function(merged2, current) { var existing = merged2[current.name]; merged2[current.name] = existing ? Object.assign({}, existing, current, { options: Object.assign({}, existing.options, current.options), data: Object.assign({}, existing.data, current.data) }) : current; return merged2; }, {}); return Object.keys(merged).map(function(key) { return merged[key]; }); } // node_modules/@popperjs/core/lib/createPopper.js var INVALID_ELEMENT_ERROR = "Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element."; var INFINITE_LOOP_ERROR = "Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash."; var DEFAULT_OPTIONS = { placement: "bottom", modifiers: [], strategy: "absolute" }; function areValidElements() { for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } return !args.some(function(element2) { return !(element2 && typeof element2.getBoundingClientRect === "function"); }); } function popperGenerator(generatorOptions) { if (generatorOptions === void 0) { generatorOptions = {}; } var _generatorOptions = generatorOptions, _generatorOptions$def = _generatorOptions.defaultModifiers, defaultModifiers2 = _generatorOptions$def === void 0 ? [] : _generatorOptions$def, _generatorOptions$def2 = _generatorOptions.defaultOptions, defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2; return function createPopper2(reference2, popper2, options) { if (options === void 0) { options = defaultOptions; } var state = { placement: "bottom", orderedModifiers: [], options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions), modifiersData: {}, elements: { reference: reference2, popper: popper2 }, attributes: {}, styles: {} }; var effectCleanupFns = []; var isDestroyed = false; var instance9 = { state, setOptions: function setOptions(setOptionsAction) { var options2 = typeof setOptionsAction === "function" ? setOptionsAction(state.options) : setOptionsAction; cleanupModifierEffects(); state.options = Object.assign({}, defaultOptions, state.options, options2); state.scrollParents = { reference: isElement(reference2) ? listScrollParents(reference2) : reference2.contextElement ? listScrollParents(reference2.contextElement) : [], popper: listScrollParents(popper2) }; var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers2, state.options.modifiers))); state.orderedModifiers = orderedModifiers.filter(function(m) { return m.enabled; }); if (true) { var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function(_ref) { var name = _ref.name; return name; }); validateModifiers(modifiers); if (getBasePlacement(state.options.placement) === auto) { var flipModifier = state.orderedModifiers.find(function(_ref2) { var name = _ref2.name; return name === "flip"; }); if (!flipModifier) { console.error(['Popper: "auto" placements require the "flip" modifier be', "present and enabled to work."].join(" ")); } } var _getComputedStyle = getComputedStyle2(popper2), marginTop = _getComputedStyle.marginTop, marginRight = _getComputedStyle.marginRight, marginBottom = _getComputedStyle.marginBottom, marginLeft = _getComputedStyle.marginLeft; if ([marginTop, marginRight, marginBottom, marginLeft].some(function(margin) { return parseFloat(margin); })) { console.warn(['Popper: CSS "margin" styles cannot be used to apply padding', "between the popper and its reference element or boundary.", "To replicate margin, use the `offset` modifier, as well as", "the `padding` option in the `preventOverflow` and `flip`", "modifiers."].join(" ")); } } runModifierEffects(); return instance9.update(); }, forceUpdate: function forceUpdate() { if (isDestroyed) { return; } var _state$elements = state.elements, reference3 = _state$elements.reference, popper3 = _state$elements.popper; if (!areValidElements(reference3, popper3)) { if (true) { console.error(INVALID_ELEMENT_ERROR); } return; } state.rects = { reference: getCompositeRect(reference3, getOffsetParent(popper3), state.options.strategy === "fixed"), popper: getLayoutRect(popper3) }; state.reset = false; state.placement = state.options.placement; state.orderedModifiers.forEach(function(modifier) { return state.modifiersData[modifier.name] = Object.assign({}, modifier.data); }); var __debug_loops__ = 0; for (var index = 0; index < state.orderedModifiers.length; index++) { if (true) { __debug_loops__ += 1; if (__debug_loops__ > 100) { console.error(INFINITE_LOOP_ERROR); break; } } if (state.reset === true) { state.reset = false; index = -1; continue; } var _state$orderedModifie = state.orderedModifiers[index], fn2 = _state$orderedModifie.fn, _state$orderedModifie2 = _state$orderedModifie.options, _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2, name = _state$orderedModifie.name; if (typeof fn2 === "function") { state = fn2({ state, options: _options, name, instance: instance9 }) || state; } } }, update: debounce(function() { return new Promise(function(resolve) { instance9.forceUpdate(); resolve(state); }); }), destroy: function destroy() { cleanupModifierEffects(); isDestroyed = true; } }; if (!areValidElements(reference2, popper2)) { if (true) { console.error(INVALID_ELEMENT_ERROR); } return instance9; } instance9.setOptions(options).then(function(state2) { if (!isDestroyed && options.onFirstUpdate) { options.onFirstUpdate(state2); } }); function runModifierEffects() { state.orderedModifiers.forEach(function(_ref3) { var name = _ref3.name, _ref3$options = _ref3.options, options2 = _ref3$options === void 0 ? {} : _ref3$options, effect4 = _ref3.effect; if (typeof effect4 === "function") { var cleanupFn = effect4({ state, name, instance: instance9, options: options2 }); var noopFn = function noopFn2() { }; effectCleanupFns.push(cleanupFn || noopFn); } }); } function cleanupModifierEffects() { effectCleanupFns.forEach(function(fn2) { return fn2(); }); effectCleanupFns = []; } return instance9; }; } // node_modules/@popperjs/core/lib/popper.js var defaultModifiers = [eventListeners_default, popperOffsets_default, computeStyles_default, applyStyles_default, offset_default, flip_default, preventOverflow_default, arrow_default, hide_default]; var createPopper = /* @__PURE__ */ popperGenerator({ defaultModifiers }); // src/settings/suggest.ts var wrapAround = (value, size) => { return (value % size + size) % size; }; var Suggest = class { constructor(owner, containerEl, scope) { this.owner = owner; this.containerEl = containerEl; containerEl.on("click", ".suggestion-item", this.onSuggestionClick.bind(this)); containerEl.on("mousemove", ".suggestion-item", this.onSuggestionMouseover.bind(this)); scope.register([], "ArrowUp", (event) => { if (!event.isComposing) { this.setSelectedItem(this.selectedItem - 1, true); return false; } }); scope.register([], "ArrowDown", (event) => { if (!event.isComposing) { this.setSelectedItem(this.selectedItem + 1, true); return false; } }); scope.register([], "Enter", (event) => { if (!event.isComposing) { this.useSelectedItem(event); return false; } }); } onSuggestionClick(event, el) { event.preventDefault(); const item = this.suggestions.indexOf(el); this.setSelectedItem(item, false); this.useSelectedItem(event); } onSuggestionMouseover(_event, el) { const item = this.suggestions.indexOf(el); this.setSelectedItem(item, false); } setSuggestions(values2) { this.containerEl.empty(); const suggestionEls = []; values2.forEach((value) => { const suggestionEl = this.containerEl.createDiv("suggestion-item"); this.owner.renderSuggestion(value, suggestionEl); suggestionEls.push(suggestionEl); }); this.values = values2; this.suggestions = suggestionEls; this.setSelectedItem(0, false); } useSelectedItem(event) { const currentValue = this.values[this.selectedItem]; if (currentValue) { this.owner.selectSuggestion(currentValue, event); } } setSelectedItem(selectedIndex, scrollIntoView) { const normalizedIndex = wrapAround(selectedIndex, this.suggestions.length); const prevSelectedSuggestion = this.suggestions[this.selectedItem]; const selectedSuggestion = this.suggestions[normalizedIndex]; prevSelectedSuggestion == null ? void 0 : prevSelectedSuggestion.removeClass("is-selected"); selectedSuggestion == null ? void 0 : selectedSuggestion.addClass("is-selected"); this.selectedItem = normalizedIndex; if (scrollIntoView) { selectedSuggestion.scrollIntoView(false); } } }; var TextInputSuggest = class { constructor(app, inputEl) { this.app = app; this.inputEl = inputEl; this.scope = new import_obsidian7.Scope(); this.suggestEl = createDiv("suggestion-container"); const suggestion = this.suggestEl.createDiv("suggestion"); this.suggest = new Suggest(this, suggestion, this.scope); this.scope.register([], "Escape", this.close.bind(this)); this.inputEl.addEventListener("input", this.onInputChanged.bind(this)); this.inputEl.addEventListener("focus", this.onInputChanged.bind(this)); this.inputEl.addEventListener("blur", this.close.bind(this)); this.suggestEl.on("mousedown", ".suggestion-container", (event) => { event.preventDefault(); }); } onInputChanged() { const inputStr = this.inputEl.value; const suggestions = this.getSuggestions(inputStr); if (!suggestions) { this.close(); return; } if (suggestions.length > 0) { this.suggest.setSuggestions(suggestions); this.open(this.app.dom.appContainerEl, this.inputEl); } else { this.close(); } } open(container, inputEl) { this.app.keymap.pushScope(this.scope); container.appendChild(this.suggestEl); this.popper = createPopper(inputEl, this.suggestEl, { placement: "bottom-start", modifiers: [ { name: "sameWidth", enabled: true, fn: ({ state, instance: instance9 }) => { const targetWidth = `${state.rects.reference.width}px`; if (state.styles.popper.width === targetWidth) { return; } state.styles.popper.width = targetWidth; instance9.update(); }, phase: "beforeWrite", requires: ["computeStyles"] } ] }); } close() { this.app.keymap.popScope(this.scope); this.suggest.setSuggestions([]); if (this.popper) this.popper.destroy(); this.suggestEl.detach(); } }; // src/view/ArraySuggest.ts var ArraySuggest = class extends TextInputSuggest { constructor(app, input, content) { super(app, input); this.content = content; } getSuggestions(inputStr) { const lowerCaseInputStr = inputStr.toLowerCase(); return [...this.content].filter((content) => content.contains(lowerCaseInputStr)); } renderSuggestion(content, el) { el.setText(content); } selectSuggestion(content) { this.inputEl.value = content; this.inputEl.trigger("input"); this.close(); } }; // src/modals/TagModal.ts var TagModal = class extends BaseModal { constructor(plugin, tags) { super(plugin.app); this.plugin = plugin; this.tags = tags; } display() { const { contentEl } = this; contentEl.empty(); contentEl.createEl("h1", { text: t("edit_tags") }); const tagDiv = contentEl.createDiv("tags"); for (const tag in this.tags) { new import_obsidian8.Setting(tagDiv).addSearch((search) => __async(this, null, function* () { new ArraySuggest(this.app, search.inputEl, get_store_value(tagsStore)); search.setValue(this.tags[tag]).onChange((value) => __async(this, null, function* () { this.removeValidationError(search); if (!value.match(TAG_REGEX) || value.match(NUMBER_REGEX) || value.contains(" ") || value.contains("#")) { this.setValidationError(search, t("invalid_tag")); return; } this.tags = this.tags.filter((e) => e !== this.tags[tag]); this.tags.push(value); })); })).addExtraButton((button) => { button.setTooltip(t("delete")).setIcon("trash").onClick(() => { this.tags = this.tags.filter((e) => e !== this.tags[tag]); this.display(); }); }); } let tagValue = ""; let tagComponent; const newTag = new import_obsidian8.Setting(tagDiv).addSearch((search) => __async(this, null, function* () { tagComponent = search; new ArraySuggest(this.app, search.inputEl, get_store_value(tagsStore)); search.onChange((value) => __async(this, null, function* () { if (!value.match(TAG_REGEX) || value.match(NUMBER_REGEX) || value.contains(" ") || value.contains("#")) { this.setValidationError(search, t("invalid_tag")); return; } tagValue = value; })); })).addExtraButton((button) => { button.setTooltip(t("add")).setIcon("plus").onClick(() => { if (!tagValue.match(TAG_REGEX) || tagValue.match(NUMBER_REGEX) || tagValue.contains(" ") || tagValue.contains("#")) { this.setValidationError(tagComponent, t("invalid_tag")); return; } this.tags.push(tagValue); this.display(); }); }); newTag.controlEl.addClass("rss-setting-input"); const buttonEl = contentEl.createSpan("actionButtons"); new import_obsidian8.Setting(buttonEl).addExtraButton((btn) => btn.setTooltip(t("save")).setIcon("checkmark").onClick(() => __async(this, null, function* () { this.close(); }))); } onClose() { const { contentEl } = this; contentEl.empty(); } onOpen() { return __async(this, null, function* () { yield this.display(); }); } }; // src/actions/Action.ts var _Action = class { constructor(name, icon, processor) { this.name = name; this.icon = icon; this.processor = processor; } }; var Action = _Action; Action.CREATE_NOTE = new _Action(t("create_note"), "create-new", (plugin, item) => { return createNewNote(plugin, item); }); Action.PASTE = new _Action(t("paste_to_note"), "paste", (plugin, item) => { return pasteToNote(plugin, item); }); Action.COPY = new _Action(t("copy_to_clipboard"), "documents", (_, item) => { return copy((0, import_obsidian9.htmlToMarkdown)(item.content)); }); Action.OPEN = new _Action(t("open_browser"), "open-elsewhere-glyph", (_, item) => { openInBrowser(item); return Promise.resolve(); }); Action.TAGS = new _Action(t("edit_tags"), "tag-glyph", (plugin, item) => { const modal = new TagModal(plugin, item.tags); modal.onClose = () => __async(_Action, null, function* () { item.tags = modal.tags; const items = plugin.settings.items; yield plugin.writeFeedContent(() => { return items; }); }); modal.open(); return Promise.resolve(); }); Action.READ = new _Action(t("mark_as_read_unread"), "eye", (plugin, item) => __async(_Action, null, function* () { if (item.read) { item.read = false; new import_obsidian9.Notice(t("marked_as_unread")); } else { item.read = true; new import_obsidian9.Notice(t("marked_as_read")); } const items = plugin.settings.items; yield plugin.writeFeedContent(() => { return items; }); return Promise.resolve(); })); Action.FAVORITE = new _Action(t("mark_as_favorite_remove"), "star", (plugin, item) => __async(_Action, null, function* () { if (item.favorite) { item.favorite = false; new import_obsidian9.Notice(t("removed_from_favorites")); } else { item.favorite = true; new import_obsidian9.Notice(t("added_to_favorites")); } const items = plugin.settings.items; yield plugin.writeFeedContent(() => { return items; }); return Promise.resolve(); })); Action.actions = Array.of(_Action.FAVORITE, _Action.READ, _Action.TAGS, _Action.CREATE_NOTE, _Action.PASTE, _Action.COPY, _Action.OPEN); // src/modals/ItemModal.ts var ItemModal = class extends import_obsidian10.Modal { constructor(plugin, item, items, save = true) { super(plugin.app); this.plugin = plugin; this.items = items; this.item = item; this.save = save; if (this.save) { this.item.read = true; const feedContents = this.plugin.settings.items; this.plugin.writeFeedContent(() => { return feedContents; }); if (!this.plugin.settings) { return; } if (this.plugin.settings.hotkeys.read) { this.scope.register([], this.plugin.settings.hotkeys.read, () => { this.markAsRead(); }); } if (this.plugin.settings.hotkeys.favorite) { this.scope.register([], this.plugin.settings.hotkeys.favorite, () => { this.markAsFavorite(); }); } if (this.plugin.settings.hotkeys.tags) { this.scope.register([], this.plugin.settings.hotkeys.tags, () => { Action.TAGS.processor(this.plugin, this.item); }); } } if (this.plugin.settings.hotkeys.create) { this.scope.register([], this.plugin.settings.hotkeys.create, () => { Action.CREATE_NOTE.processor(this.plugin, this.item); }); } if (this.plugin.settings.hotkeys.paste) { this.scope.register([], this.plugin.settings.hotkeys.paste, () => { Action.PASTE.processor(this.plugin, this.item); }); } if (this.plugin.settings.hotkeys.copy) { this.scope.register([], this.plugin.settings.hotkeys.copy, () => { Action.COPY.processor(this.plugin, this.item); }); } if (this.plugin.settings.hotkeys.open) { this.scope.register([], this.plugin.settings.hotkeys.open, () => { Action.OPEN.processor(this.plugin, this.item); }); } if (this.plugin.settings.hotkeys.next) { this.scope.register([], this.plugin.settings.hotkeys.next, () => { this.next(); }); } if (this.plugin.settings.hotkeys.previous) { this.scope.register([], this.plugin.settings.hotkeys.previous, () => { this.previous(); }); } if (this.app.plugins.plugins["obsidian-tts"] && this.plugin.settings.hotkeys.tts) { this.scope.register([], this.plugin.settings.hotkeys.tts, () => { const tts = this.app.plugins.plugins["obsidian-tts"].ttsService; if (tts.isSpeaking()) { if (tts.isPaused()) { tts.resume(); } else { tts.pause(); } return; } const content = (0, import_obsidian10.htmlToMarkdown)(this.item.content); tts.say(this.item.title, content, this.item.language); }); } } previous() { let index = this.items.findIndex((item2) => { return item2 === this.item; }); index++; const item = this.items[index]; if (item !== void 0) { this.close(); new ItemModal(this.plugin, item, this.items, this.save).open(); } } next() { let index = this.items.findIndex((item2) => { return item2 === this.item; }); index--; const item = this.items[index]; if (item !== void 0) { this.close(); new ItemModal(this.plugin, item, this.items, this.save).open(); } } markAsFavorite() { return __async(this, null, function* () { yield Action.FAVORITE.processor(this.plugin, this.item); this.favoriteButton.setIcon(this.item.favorite ? "star-glyph" : "star"); this.favoriteButton.setTooltip(this.item.favorite ? t("remove_from_favorites") : t("mark_as_favorite")); }); } markAsRead() { return __async(this, null, function* () { yield Action.READ.processor(this.plugin, this.item); this.readButton.setIcon(this.item.read ? "eye-off" : "eye"); this.readButton.setTooltip(this.item.read ? t("mark_as_unread") : t("mark_as_unread")); }); } display() { return __async(this, null, function* () { this.modalEl.addClass("rss-modal"); const { contentEl } = this; contentEl.empty(); contentEl.style.height = "100%"; contentEl.style.overflowY = "hidden"; const topButtons = contentEl.createDiv("topButtons"); let actions = Array.of(Action.CREATE_NOTE, Action.PASTE, Action.COPY, Action.OPEN); if (this.save) { this.readButton = new import_obsidian10.ButtonComponent(topButtons).setIcon(this.item.read ? "eye-off" : "eye").setTooltip(this.item.read ? t("mark_as_unread") : t("mark_as_read")).onClick(() => __async(this, null, function* () { yield this.markAsRead(); })); this.readButton.buttonEl.setAttribute("tabindex", "-1"); this.readButton.buttonEl.addClass("rss-button"); this.favoriteButton = new import_obsidian10.ButtonComponent(topButtons).setIcon(this.item.favorite ? "star-glyph" : "star").setTooltip(this.item.favorite ? t("remove_from_favorites") : t("mark_as_favorite")).onClick(() => __async(this, null, function* () { yield this.markAsFavorite(); })); this.favoriteButton.buttonEl.setAttribute("tabindex", "-1"); this.favoriteButton.buttonEl.addClass("rss-button"); actions = Array.of(Action.TAGS, ...actions); } actions.forEach((action) => { const button = new import_obsidian10.ButtonComponent(topButtons).setIcon(action.icon).setTooltip(action.name).onClick(() => __async(this, null, function* () { yield action.processor(this.plugin, this.item); })); button.buttonEl.setAttribute("tabindex", "-1"); button.buttonEl.addClass("rss-button"); }); if (this.app.plugins.plugins["obsidian-tts"]) { const ttsButton = new import_obsidian10.ButtonComponent(topButtons).setIcon("headphones").setTooltip(t("read_article_tts")).onClick(() => __async(this, null, function* () { const content2 = (0, import_obsidian10.htmlToMarkdown)(this.item.content); yield this.app.plugins.plugins["obsidian-tts"].ttsService.say(this.item.title, content2, this.item.language); })); ttsButton.buttonEl.addClass("rss-button"); } const prevButton = new import_obsidian10.ButtonComponent(topButtons).setIcon("left-arrow-with-tail").setTooltip(t("previous")).onClick(() => { this.previous(); }); prevButton.buttonEl.addClass("rss-button"); const nextButton = new import_obsidian10.ButtonComponent(topButtons).setIcon("right-arrow-with-tail").setTooltip(t("next")).onClick(() => { this.next(); }); nextButton.buttonEl.addClass("rss-button"); const title = contentEl.createEl("h1", "rss-title"); title.addClass("rss-selectable"); title.setText(this.item.title); const subtitle = contentEl.createEl("h3", "rss-subtitle"); subtitle.addClass("rss-selectable"); if (this.item.creator) { subtitle.appendText(this.item.creator); } if (this.item.pubDate) { subtitle.appendText(" - " + window.moment(this.item.pubDate).format(this.plugin.settings.dateFormat)); } const tagEl = contentEl.createSpan("tags"); this.item.tags.forEach((tag) => { const tagA = tagEl.createEl("a"); tagA.setText(tag); tagA.addClass("tag", "rss-tag"); }); const content = contentEl.createDiv("rss-content"); content.addClass("rss-scrollable-content", "rss-selectable"); if (this.item.enclosure && this.plugin.settings.displayMedia) { if (this.item.enclosureType.toLowerCase().contains("audio")) { const audio = content.createEl("audio", { attr: { controls: "controls" } }); audio.createEl("source", { attr: { src: this.item.enclosure, type: this.item.enclosureType } }); } if (this.item.enclosureType.toLowerCase().contains("video")) { const video = content.createEl("video", { attr: { controls: "controls", width: "100%", height: "100%" } }); video.createEl("source", { attr: { src: this.item.enclosure, type: this.item.enclosureType } }); } if (this.item.enclosure && this.item.id.startsWith("yt:")) { content.createEl("iframe", { attr: { type: "text/html", src: "https://www.youtube.com/embed/" + this.item.enclosure, width: "100%", height: "100%", allowFullscreen: "true" } }); } } if (this.item.content) { const markdown = "---\n---" + rssToMd(this.plugin, this.item.content); yield import_obsidian10.MarkdownRenderer.renderMarkdown(markdown, content, "", this.plugin); this.item.highlights.forEach((highlight) => { if (content.innerHTML.includes(highlight)) { const newNode = contentEl.createEl("mark"); newNode.innerHTML = highlight; content.innerHTML = content.innerHTML.replace(highlight, newNode.outerHTML); newNode.remove(); } else { console.log("Highlight not included"); console.log(highlight); } }); content.addEventListener("contextmenu", (event) => { event.preventDefault(); const selection = document.getSelection(); const range = selection.getRangeAt(0); const div = contentEl.createDiv(); const htmlContent = range.cloneContents(); const html = htmlContent.cloneNode(true); div.appendChild(html); const selected = div.innerHTML; div.remove(); const menu = new import_obsidian10.Menu(this.app); let previousHighlight; if (this.item.highlights.includes(range.startContainer.parentElement.innerHTML)) { previousHighlight = range.startContainer.parentElement; } if (this.item.highlights.includes(range.startContainer.parentElement.parentElement.innerHTML)) { previousHighlight = range.startContainer.parentElement.parentElement; } if (previousHighlight) { menu.addItem((item) => { item.setIcon("highlight-glyph").setTitle(t("highlight_remove")).onClick(() => __async(this, null, function* () { const replacement = contentEl.createSpan(); replacement.innerHTML = previousHighlight.innerHTML; previousHighlight.replaceWith(replacement); this.item.highlights.remove(previousHighlight.innerHTML); const feedContents = this.plugin.settings.items; yield this.plugin.writeFeedContent(() => { return feedContents; }); })); }); } else if (!this.item.highlights.includes(selected) && selected.length > 0) { menu.addItem((item) => { item.setIcon("highlight-glyph").setTitle(t("highlight")).onClick(() => __async(this, null, function* () { const newNode = contentEl.createEl("mark"); newNode.innerHTML = selected; range.deleteContents(); range.insertNode(newNode); this.item.highlights.push(selected); const feedContents = this.plugin.settings.items; yield this.plugin.writeFeedContent(() => { return feedContents; }); this.removeDanglingElements(contentEl); this.removeDanglingElements(contentEl); })); }); } if (selected.length > 0) { menu.addItem((item) => { item.setIcon("documents").setTitle(t("copy_to_clipboard")).onClick(() => __async(this, null, function* () { yield copy(selection.toString()); })); }); if (this.app.plugins.plugins["obsidian-tts"]) { menu.addItem((item) => { item.setIcon("headphones").setTitle(t("read_article_tts")).onClick(() => { const tts = this.app.plugins.plugins["obsidian-tts"].ttsService; tts.say("", selection.toString()); }); }); } } menu.showAtMouseEvent(event); }); } }); } onClose() { return __async(this, null, function* () { const { contentEl } = this; contentEl.empty(); const feedContents = this.plugin.settings.items; yield this.plugin.writeFeedContent(() => { return feedContents; }); }); } onOpen() { return __async(this, null, function* () { yield this.display(); }); } removeDanglingElements(el) { const lists = el.querySelectorAll("li, a, div, p, span"); for (let i = 0; i < lists.length; i++) { const listEL = lists.item(i); if (listEL.innerHTML === "") { listEL.remove(); } } } }; // src/view/ItemTitle.svelte var import_obsidian11 = __toModule(require("obsidian")); function create_if_block_1(ctx) { let iconcomponent; let current; iconcomponent = new IconComponent_default({ props: { iconName: "star" } }); return { c() { create_component(iconcomponent.$$.fragment); }, m(target, anchor) { mount_component(iconcomponent, target, anchor); current = true; }, i(local) { if (current) return; transition_in(iconcomponent.$$.fragment, local); current = true; }, o(local) { transition_out(iconcomponent.$$.fragment, local); current = false; }, d(detaching) { destroy_component(iconcomponent, detaching); } }; } function create_if_block3(ctx) { let iconcomponent; let current; iconcomponent = new IconComponent_default({ props: { iconName: "document" } }); return { c() { create_component(iconcomponent.$$.fragment); }, m(target, anchor) { mount_component(iconcomponent, target, anchor); current = true; }, i(local) { if (current) return; transition_in(iconcomponent.$$.fragment, local); current = true; }, o(local) { transition_out(iconcomponent.$$.fragment, local); current = false; }, d(detaching) { destroy_component(iconcomponent, detaching); } }; } function create_fragment3(ctx) { let t0; let t1; let a; let t2_value = ctx[1].title + ""; let t2; let current; let mounted; let dispose; let if_block0 = ctx[1].favorite && create_if_block_1(ctx); let if_block1 = ctx[1].created && create_if_block3(ctx); return { c() { if (if_block0) if_block0.c(); t0 = space(); if (if_block1) if_block1.c(); t1 = space(); a = element("a"); t2 = text(t2_value); }, m(target, anchor) { if (if_block0) if_block0.m(target, anchor); insert(target, t0, anchor); if (if_block1) if_block1.m(target, anchor); insert(target, t1, anchor); insert(target, a, anchor); append(a, t2); current = true; if (!mounted) { dispose = [ listen(a, "click", ctx[4]), listen(a, "contextmenu", ctx[3]) ]; mounted = true; } }, p(ctx2, [dirty]) { if (ctx2[1].favorite) { if (if_block0) { if (dirty & 2) { transition_in(if_block0, 1); } } else { if_block0 = create_if_block_1(ctx2); if_block0.c(); transition_in(if_block0, 1); if_block0.m(t0.parentNode, t0); } } else if (if_block0) { group_outros(); transition_out(if_block0, 1, 1, () => { if_block0 = null; }); check_outros(); } if (ctx2[1].created) { if (if_block1) { if (dirty & 2) { transition_in(if_block1, 1); } } else { if_block1 = create_if_block3(ctx2); if_block1.c(); transition_in(if_block1, 1); if_block1.m(t1.parentNode, t1); } } else if (if_block1) { group_outros(); transition_out(if_block1, 1, 1, () => { if_block1 = null; }); check_outros(); } if ((!current || dirty & 2) && t2_value !== (t2_value = ctx2[1].title + "")) set_data(t2, t2_value); }, i(local) { if (current) return; transition_in(if_block0); transition_in(if_block1); current = true; }, o(local) { transition_out(if_block0); transition_out(if_block1); current = false; }, d(detaching) { if (if_block0) if_block0.d(detaching); if (detaching) detach(t0); if (if_block1) if_block1.d(detaching); if (detaching) detach(t1); if (detaching) detach(a); mounted = false; run_all(dispose); } }; } function instance3($$self, $$props, $$invalidate) { let { plugin = null } = $$props; let { item = null } = $$props; let { items = null } = $$props; function openMenu(e) { return __async(this, null, function* () { if (e.ctrlKey && e.altKey) { openInBrowser(item); return; } if (e.ctrlKey) { yield createNewNote(plugin, item); return; } if (e.altKey) { yield pasteToNote(plugin, item); return; } const menu = new import_obsidian11.Menu(plugin.app); Action.actions.forEach((action) => { menu.addItem((menuItem) => { menuItem.setIcon(action.icon).setTitle(action.name).onClick(() => __async(this, null, function* () { yield action.processor(plugin, item); })); }); }); menu.showAtPosition({ x: e.x, y: e.y }); }); } const click_handler = () => { new ItemModal(plugin, item, items).open(); }; $$self.$$set = ($$props2) => { if ("plugin" in $$props2) $$invalidate(0, plugin = $$props2.plugin); if ("item" in $$props2) $$invalidate(1, item = $$props2.item); if ("items" in $$props2) $$invalidate(2, items = $$props2.items); }; return [plugin, item, items, openMenu, click_handler]; } var ItemTitle = class extends SvelteComponent { constructor(options) { super(); init(this, options, instance3, create_fragment3, safe_not_equal, { plugin: 0, item: 1, items: 2 }); } }; var ItemTitle_default = ItemTitle; // src/view/MarkdownContent.svelte var import_obsidian12 = __toModule(require("obsidian")); function create_if_block4(ctx) { let p; let html_action; let mounted; let dispose; return { c() { p = element("p"); }, m(target, anchor) { insert(target, p, anchor); if (!mounted) { dispose = action_destroyer(html_action = ctx[1].call(null, p, ctx[0])); mounted = true; } }, p(ctx2, dirty) { if (html_action && is_function(html_action.update) && dirty & 1) html_action.update.call(null, ctx2[0]); }, d(detaching) { if (detaching) detach(p); mounted = false; dispose(); } }; } function create_fragment4(ctx) { let if_block_anchor; let if_block = ctx[0].length > 0 && create_if_block4(ctx); return { c() { if (if_block) if_block.c(); if_block_anchor = empty(); }, m(target, anchor) { if (if_block) if_block.m(target, anchor); insert(target, if_block_anchor, anchor); }, p(ctx2, [dirty]) { if (ctx2[0].length > 0) { if (if_block) { if_block.p(ctx2, dirty); } else { if_block = create_if_block4(ctx2); if_block.c(); if_block.m(if_block_anchor.parentNode, if_block_anchor); } } else if (if_block) { if_block.d(1); if_block = null; } }, i: noop, o: noop, d(detaching) { if (if_block) if_block.d(detaching); if (detaching) detach(if_block_anchor); } }; } function instance4($$self, $$props, $$invalidate) { let { content = "" } = $$props; let { plugin } = $$props; const html = (node, content2) => { import_obsidian12.MarkdownRenderer.renderMarkdown((0, import_obsidian12.htmlToMarkdown)(content2), node, "", plugin); }; $$self.$$set = ($$props2) => { if ("content" in $$props2) $$invalidate(0, content = $$props2.content); if ("plugin" in $$props2) $$invalidate(2, plugin = $$props2.plugin); }; return [content, html, plugin]; } var MarkdownContent = class extends SvelteComponent { constructor(options) { super(); init(this, options, instance4, create_fragment4, safe_not_equal, { content: 0, plugin: 2 }); } }; var MarkdownContent_default = MarkdownContent; // src/view/ItemView.svelte function get_each_context_1(ctx, list, i) { const child_ctx = ctx.slice(); child_ctx[6] = list[i]; return child_ctx; } function get_each_context(ctx, list, i) { const child_ctx = ctx.slice(); child_ctx[6] = list[i]; return child_ctx; } function create_if_block5(ctx) { let div; let current_block_type_index; let if_block; let div_class_value; let current; const if_block_creators = [create_if_block_12, create_if_block_5]; const if_blocks = []; function select_block_type(ctx2, dirty) { if (ctx2[4].displayStyle === "list") return 0; if (ctx2[4].displayStyle === "cards") return 1; return -1; } if (~(current_block_type_index = select_block_type(ctx, -1))) { if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); } return { c() { div = element("div"); if (if_block) if_block.c(); attr(div, "class", div_class_value = "is-clickable rss-tooltip rss-feed-item " + (ctx[1].read ? "rss-read" : "rss-not-read")); }, m(target, anchor) { insert(target, div, anchor); if (~current_block_type_index) { if_blocks[current_block_type_index].m(div, null); } current = true; }, p(ctx2, dirty) { let previous_block_index = current_block_type_index; current_block_type_index = select_block_type(ctx2, dirty); if (current_block_type_index === previous_block_index) { if (~current_block_type_index) { if_blocks[current_block_type_index].p(ctx2, dirty); } } else { if (if_block) { group_outros(); transition_out(if_blocks[previous_block_index], 1, 1, () => { if_blocks[previous_block_index] = null; }); check_outros(); } if (~current_block_type_index) { 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](ctx2); if_block.c(); } else { if_block.p(ctx2, dirty); } transition_in(if_block, 1); if_block.m(div, null); } else { if_block = null; } } if (!current || dirty & 2 && div_class_value !== (div_class_value = "is-clickable rss-tooltip rss-feed-item " + (ctx2[1].read ? "rss-read" : "rss-not-read"))) { attr(div, "class", div_class_value); } }, 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 (~current_block_type_index) { if_blocks[current_block_type_index].d(); } } }; } function create_if_block_5(ctx) { let div3; let span; let itemtitle; let t0; let t1; let div2; let div0; let show_if = ctx[1].image && !ctx[1].image.includes(".mp3"); let t2; let div1; let current; itemtitle = new ItemTitle_default({ props: { plugin: ctx[0], item: ctx[1], items: ctx[2] } }); itemtitle.$on("mouseover", ctx[5]); itemtitle.$on("mouseleave", ctx[5]); itemtitle.$on("focus", ctx[5]); let if_block0 = ctx[1].tags.length > 0 && create_if_block_8(ctx); let if_block1 = show_if && create_if_block_7(ctx); let if_block2 = ctx[1].description && create_if_block_6(ctx); return { c() { div3 = element("div"); span = element("span"); create_component(itemtitle.$$.fragment); t0 = space(); if (if_block0) if_block0.c(); t1 = space(); div2 = element("div"); div0 = element("div"); if (if_block1) if_block1.c(); t2 = space(); div1 = element("div"); if (if_block2) if_block2.c(); attr(span, "class", "rss-item-title"); attr(div0, "class", "rss-item-image"); attr(div1, "class", "rss-item-text"); attr(div2, "class", "rss-card-items"); attr(div3, "class", "rss-card is-clickable"); }, m(target, anchor) { insert(target, div3, anchor); append(div3, span); mount_component(itemtitle, span, null); append(span, t0); if (if_block0) if_block0.m(span, null); append(div3, t1); append(div3, div2); append(div2, div0); if (if_block1) if_block1.m(div0, null); append(div2, t2); append(div2, div1); if (if_block2) if_block2.m(div1, null); current = true; }, p(ctx2, dirty) { const itemtitle_changes = {}; if (dirty & 1) itemtitle_changes.plugin = ctx2[0]; if (dirty & 2) itemtitle_changes.item = ctx2[1]; if (dirty & 4) itemtitle_changes.items = ctx2[2]; itemtitle.$set(itemtitle_changes); if (ctx2[1].tags.length > 0) { if (if_block0) { if_block0.p(ctx2, dirty); } else { if_block0 = create_if_block_8(ctx2); if_block0.c(); if_block0.m(span, null); } } else if (if_block0) { if_block0.d(1); if_block0 = null; } if (dirty & 2) show_if = ctx2[1].image && !ctx2[1].image.includes(".mp3"); if (show_if) { if (if_block1) { if_block1.p(ctx2, dirty); } else { if_block1 = create_if_block_7(ctx2); if_block1.c(); if_block1.m(div0, null); } } else if (if_block1) { if_block1.d(1); if_block1 = null; } if (ctx2[1].description) { if (if_block2) { if_block2.p(ctx2, dirty); if (dirty & 2) { transition_in(if_block2, 1); } } else { if_block2 = create_if_block_6(ctx2); if_block2.c(); transition_in(if_block2, 1); if_block2.m(div1, null); } } else if (if_block2) { group_outros(); transition_out(if_block2, 1, 1, () => { if_block2 = null; }); check_outros(); } }, i(local) { if (current) return; transition_in(itemtitle.$$.fragment, local); transition_in(if_block2); current = true; }, o(local) { transition_out(itemtitle.$$.fragment, local); transition_out(if_block2); current = false; }, d(detaching) { if (detaching) detach(div3); destroy_component(itemtitle); if (if_block0) if_block0.d(); if (if_block1) if_block1.d(); if (if_block2) if_block2.d(); } }; } function create_if_block_12(ctx) { let itemtitle; let t0; let t1; let if_block1_anchor; let current; itemtitle = new ItemTitle_default({ props: { plugin: ctx[0], item: ctx[1], items: ctx[2] } }); itemtitle.$on("mouseover", ctx[5]); itemtitle.$on("mouseleave", ctx[5]); itemtitle.$on("focus", ctx[5]); let if_block0 = ctx[1].tags.length > 0 && create_if_block_4(ctx); let if_block1 = ctx[3] && create_if_block_2(ctx); return { c() { create_component(itemtitle.$$.fragment); t0 = space(); if (if_block0) if_block0.c(); t1 = space(); if (if_block1) if_block1.c(); if_block1_anchor = empty(); }, m(target, anchor) { mount_component(itemtitle, target, anchor); insert(target, t0, anchor); if (if_block0) if_block0.m(target, anchor); insert(target, t1, anchor); if (if_block1) if_block1.m(target, anchor); insert(target, if_block1_anchor, anchor); current = true; }, p(ctx2, dirty) { const itemtitle_changes = {}; if (dirty & 1) itemtitle_changes.plugin = ctx2[0]; if (dirty & 2) itemtitle_changes.item = ctx2[1]; if (dirty & 4) itemtitle_changes.items = ctx2[2]; itemtitle.$set(itemtitle_changes); if (ctx2[1].tags.length > 0) { if (if_block0) { if_block0.p(ctx2, dirty); } else { if_block0 = create_if_block_4(ctx2); if_block0.c(); if_block0.m(t1.parentNode, t1); } } else if (if_block0) { if_block0.d(1); if_block0 = null; } if (ctx2[3]) { if (if_block1) { if_block1.p(ctx2, dirty); if (dirty & 8) { transition_in(if_block1, 1); } } else { if_block1 = create_if_block_2(ctx2); if_block1.c(); transition_in(if_block1, 1); if_block1.m(if_block1_anchor.parentNode, if_block1_anchor); } } else if (if_block1) { group_outros(); transition_out(if_block1, 1, 1, () => { if_block1 = null; }); check_outros(); } }, i(local) { if (current) return; transition_in(itemtitle.$$.fragment, local); transition_in(if_block1); current = true; }, o(local) { transition_out(itemtitle.$$.fragment, local); transition_out(if_block1); current = false; }, d(detaching) { destroy_component(itemtitle, detaching); if (detaching) detach(t0); if (if_block0) if_block0.d(detaching); if (detaching) detach(t1); if (if_block1) if_block1.d(detaching); if (detaching) detach(if_block1_anchor); } }; } function create_if_block_8(ctx) { let span; let each_value_1 = ctx[1].tags; let each_blocks = []; for (let i = 0; i < each_value_1.length; i += 1) { each_blocks[i] = create_each_block_1(get_each_context_1(ctx, each_value_1, i)); } return { c() { span = element("span"); for (let i = 0; i < each_blocks.length; i += 1) { each_blocks[i].c(); } }, m(target, anchor) { insert(target, span, anchor); for (let i = 0; i < each_blocks.length; i += 1) { each_blocks[i].m(span, null); } }, p(ctx2, dirty) { if (dirty & 2) { each_value_1 = ctx2[1].tags; 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[i]) { each_blocks[i].p(child_ctx, dirty); } else { each_blocks[i] = create_each_block_1(child_ctx); each_blocks[i].c(); each_blocks[i].m(span, null); } } for (; i < each_blocks.length; i += 1) { each_blocks[i].d(1); } each_blocks.length = each_value_1.length; } }, d(detaching) { if (detaching) detach(span); destroy_each(each_blocks, detaching); } }; } function create_each_block_1(ctx) { let t0; let a; let t1_value = ctx[6] + ""; let t1; let a_href_value; return { c() { t0 = text("\xA0"); a = element("a"); t1 = text(t1_value); attr(a, "class", "tag rss-tag"); attr(a, "href", a_href_value = "#" + ctx[6]); }, m(target, anchor) { insert(target, t0, anchor); insert(target, a, anchor); append(a, t1); }, p(ctx2, dirty) { if (dirty & 2 && t1_value !== (t1_value = ctx2[6] + "")) set_data(t1, t1_value); if (dirty & 2 && a_href_value !== (a_href_value = "#" + ctx2[6])) { attr(a, "href", a_href_value); } }, d(detaching) { if (detaching) detach(t0); if (detaching) detach(a); } }; } function create_if_block_7(ctx) { let img; let img_src_value; return { c() { img = element("img"); if (!src_url_equal(img.src, img_src_value = ctx[1].image)) attr(img, "src", img_src_value); attr(img, "width", "250em"); attr(img, "alt", "Article"); }, m(target, anchor) { insert(target, img, anchor); }, p(ctx2, dirty) { if (dirty & 2 && !src_url_equal(img.src, img_src_value = ctx2[1].image)) { attr(img, "src", img_src_value); } }, d(detaching) { if (detaching) detach(img); } }; } function create_if_block_6(ctx) { let markdowncontent; let current; markdowncontent = new MarkdownContent_default({ props: { content: ctx[1].description } }); return { c() { create_component(markdowncontent.$$.fragment); }, m(target, anchor) { mount_component(markdowncontent, target, anchor); current = true; }, p(ctx2, dirty) { const markdowncontent_changes = {}; if (dirty & 2) markdowncontent_changes.content = ctx2[1].description; markdowncontent.$set(markdowncontent_changes); }, i(local) { if (current) return; transition_in(markdowncontent.$$.fragment, local); current = true; }, o(local) { transition_out(markdowncontent.$$.fragment, local); current = false; }, d(detaching) { destroy_component(markdowncontent, detaching); } }; } function create_if_block_4(ctx) { let span; let each_value = ctx[1].tags; 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() { span = element("span"); for (let i = 0; i < each_blocks.length; i += 1) { each_blocks[i].c(); } }, m(target, anchor) { insert(target, span, anchor); for (let i = 0; i < each_blocks.length; i += 1) { each_blocks[i].m(span, null); } }, p(ctx2, dirty) { if (dirty & 2) { each_value = ctx2[1].tags; 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(span, null); } } for (; i < each_blocks.length; i += 1) { each_blocks[i].d(1); } each_blocks.length = each_value.length; } }, d(detaching) { if (detaching) detach(span); destroy_each(each_blocks, detaching); } }; } function create_each_block(ctx) { let t0; let a; let t1_value = ctx[6] + ""; let t1; let a_href_value; return { c() { t0 = text("\xA0"); a = element("a"); t1 = text(t1_value); attr(a, "class", "tag rss-tag"); attr(a, "href", a_href_value = "#" + ctx[6]); }, m(target, anchor) { insert(target, t0, anchor); insert(target, a, anchor); append(a, t1); }, p(ctx2, dirty) { if (dirty & 2 && t1_value !== (t1_value = ctx2[6] + "")) set_data(t1, t1_value); if (dirty & 2 && a_href_value !== (a_href_value = "#" + ctx2[6])) { attr(a, "href", a_href_value); } }, d(detaching) { if (detaching) detach(t0); if (detaching) detach(a); } }; } function create_if_block_2(ctx) { let if_block_anchor; let current; let if_block = ctx[1].description !== ctx[1].content && create_if_block_3(ctx); return { c() { if (if_block) if_block.c(); if_block_anchor = empty(); }, m(target, anchor) { if (if_block) if_block.m(target, anchor); insert(target, if_block_anchor, anchor); current = true; }, p(ctx2, dirty) { if (ctx2[1].description !== ctx2[1].content) { if (if_block) { if_block.p(ctx2, dirty); if (dirty & 2) { transition_in(if_block, 1); } } else { if_block = create_if_block_3(ctx2); if_block.c(); transition_in(if_block, 1); if_block.m(if_block_anchor.parentNode, if_block_anchor); } } 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(if_block_anchor); } }; } function create_if_block_3(ctx) { let htmltooltip; let current; htmltooltip = new HtmlTooltip_default({ props: { content: ctx[1].description } }); return { c() { create_component(htmltooltip.$$.fragment); }, m(target, anchor) { mount_component(htmltooltip, target, anchor); current = true; }, p(ctx2, dirty) { const htmltooltip_changes = {}; if (dirty & 2) htmltooltip_changes.content = ctx2[1].description; htmltooltip.$set(htmltooltip_changes); }, i(local) { if (current) return; transition_in(htmltooltip.$$.fragment, local); current = true; }, o(local) { transition_out(htmltooltip.$$.fragment, local); current = false; }, d(detaching) { destroy_component(htmltooltip, detaching); } }; } function create_fragment5(ctx) { let if_block_anchor; let current; let if_block = ctx[1] && create_if_block5(ctx); return { c() { if (if_block) if_block.c(); if_block_anchor = empty(); }, m(target, anchor) { if (if_block) if_block.m(target, anchor); insert(target, if_block_anchor, anchor); current = true; }, p(ctx2, [dirty]) { if (ctx2[1]) { if (if_block) { if_block.p(ctx2, dirty); if (dirty & 2) { transition_in(if_block, 1); } } else { if_block = create_if_block5(ctx2); if_block.c(); transition_in(if_block, 1); if_block.m(if_block_anchor.parentNode, if_block_anchor); } } 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(if_block_anchor); } }; } function instance5($$self, $$props, $$invalidate) { let $settingsStore; component_subscribe($$self, settingsStore, ($$value) => $$invalidate(4, $settingsStore = $$value)); let { plugin = null } = $$props; let { item = null } = $$props; let { items = null } = $$props; let hover = false; function toggleHover() { $$invalidate(3, hover = !hover); } $$self.$$set = ($$props2) => { if ("plugin" in $$props2) $$invalidate(0, plugin = $$props2.plugin); if ("item" in $$props2) $$invalidate(1, item = $$props2.item); if ("items" in $$props2) $$invalidate(2, items = $$props2.items); }; return [plugin, item, items, hover, $settingsStore, toggleHover]; } var ItemView = class extends SvelteComponent { constructor(options) { super(); init(this, options, instance5, create_fragment5, safe_not_equal, { plugin: 0, item: 1, items: 2 }); } }; var ItemView_default = ItemView; // src/view/FeedView.svelte var import_obsidian13 = __toModule(require("obsidian")); function get_each_context2(ctx, list, i) { const child_ctx = ctx.slice(); child_ctx[6] = list[i]; return child_ctx; } function create_else_block(ctx) { let div3; let div1; let div0; let show_if_1; let current_block_type_index; let if_block0; let t0; let span0; let t1_value = ctx[0].name + ""; let t1; let t2; let t3; let span1; let t4_value = ctx[0].items.filter(func).length + ""; let t4; let div1_class_value; let t5; let div2; let show_if = !ctx[2].contains(ctx[0].name); let current; let mounted; let dispose; const if_block_creators = [create_if_block_32, create_else_block_1]; const if_blocks = []; function select_block_type_1(ctx2, dirty) { if (dirty & 5) show_if_1 = null; if (show_if_1 == null) show_if_1 = !!ctx2[2].contains(ctx2[0].name); if (show_if_1) return 0; return 1; } current_block_type_index = select_block_type_1(ctx, -1); if_block0 = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); let if_block1 = ctx[0].image && create_if_block_22(ctx); let if_block2 = show_if && create_if_block_13(ctx); return { c() { div3 = element("div"); div1 = element("div"); div0 = element("div"); if_block0.c(); t0 = space(); span0 = element("span"); t1 = text(t1_value); t2 = space(); if (if_block1) if_block1.c(); t3 = space(); span1 = element("span"); t4 = text(t4_value); t5 = space(); div2 = element("div"); if (if_block2) if_block2.c(); attr(div0, "class", "rss-feed-title"); set_style(div0, "overflow", "hidden"); attr(span1, "class", "rss-item-count"); attr(div1, "class", div1_class_value = "" + ((ctx[2].contains(ctx[0].name) ? "is-collapsed" : "") + " tree-item-self is-clickable")); attr(div2, "class", "rss-feed-items"); attr(div3, "class", "rss-feed"); }, m(target, anchor) { insert(target, div3, anchor); append(div3, div1); append(div1, div0); if_blocks[current_block_type_index].m(div0, null); append(div0, t0); append(div0, span0); append(span0, t1); append(span0, t2); if (if_block1) if_block1.m(span0, null); append(div1, t3); append(div1, span1); append(span1, t4); append(div3, t5); append(div3, div2); if (if_block2) if_block2.m(div2, null); current = true; if (!mounted) { dispose = [ listen(div1, "click", ctx[5]), listen(div1, "contextmenu", ctx[4]) ]; mounted = true; } }, p(ctx2, dirty) { let previous_block_index = current_block_type_index; current_block_type_index = select_block_type_1(ctx2, 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_block0 = if_blocks[current_block_type_index]; if (!if_block0) { if_block0 = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx2); if_block0.c(); } else { } transition_in(if_block0, 1); if_block0.m(div0, t0); } if ((!current || dirty & 1) && t1_value !== (t1_value = ctx2[0].name + "")) set_data(t1, t1_value); if (ctx2[0].image) { if (if_block1) { if_block1.p(ctx2, dirty); } else { if_block1 = create_if_block_22(ctx2); if_block1.c(); if_block1.m(span0, null); } } else if (if_block1) { if_block1.d(1); if_block1 = null; } if ((!current || dirty & 1) && t4_value !== (t4_value = ctx2[0].items.filter(func).length + "")) set_data(t4, t4_value); if (!current || dirty & 5 && div1_class_value !== (div1_class_value = "" + ((ctx2[2].contains(ctx2[0].name) ? "is-collapsed" : "") + " tree-item-self is-clickable"))) { attr(div1, "class", div1_class_value); } if (dirty & 5) show_if = !ctx2[2].contains(ctx2[0].name); if (show_if) { if (if_block2) { if_block2.p(ctx2, dirty); if (dirty & 5) { transition_in(if_block2, 1); } } else { if_block2 = create_if_block_13(ctx2); if_block2.c(); transition_in(if_block2, 1); if_block2.m(div2, null); } } else if (if_block2) { group_outros(); transition_out(if_block2, 1, 1, () => { if_block2 = null; }); check_outros(); } }, i(local) { if (current) return; transition_in(if_block0); transition_in(if_block2); current = true; }, o(local) { transition_out(if_block0); transition_out(if_block2); current = false; }, d(detaching) { if (detaching) detach(div3); if_blocks[current_block_type_index].d(); if (if_block1) if_block1.d(); if (if_block2) if_block2.d(); mounted = false; run_all(dispose); } }; } function create_if_block6(ctx) { let p; return { c() { p = element("p"); p.textContent = "...loading"; }, m(target, anchor) { insert(target, p, anchor); }, p: noop, i: noop, o: noop, d(detaching) { if (detaching) detach(p); } }; } function create_else_block_1(ctx) { let iconcomponent; let current; iconcomponent = new IconComponent_default({ props: { iconName: "down-chevron-glyph" } }); return { c() { create_component(iconcomponent.$$.fragment); }, m(target, anchor) { mount_component(iconcomponent, target, anchor); current = true; }, i(local) { if (current) return; transition_in(iconcomponent.$$.fragment, local); current = true; }, o(local) { transition_out(iconcomponent.$$.fragment, local); current = false; }, d(detaching) { destroy_component(iconcomponent, detaching); } }; } function create_if_block_32(ctx) { let iconcomponent; let current; iconcomponent = new IconComponent_default({ props: { iconName: "right-chevron-glyph" } }); return { c() { create_component(iconcomponent.$$.fragment); }, m(target, anchor) { mount_component(iconcomponent, target, anchor); current = true; }, i(local) { if (current) return; transition_in(iconcomponent.$$.fragment, local); current = true; }, o(local) { transition_out(iconcomponent.$$.fragment, local); current = false; }, d(detaching) { destroy_component(iconcomponent, detaching); } }; } function create_if_block_22(ctx) { let img; let img_src_value; let img_alt_value; return { c() { img = element("img"); if (!src_url_equal(img.src, img_src_value = ctx[0].image)) attr(img, "src", img_src_value); attr(img, "alt", img_alt_value = ctx[0].title); set_style(img, "height", "1em"); }, m(target, anchor) { insert(target, img, anchor); }, p(ctx2, dirty) { if (dirty & 1 && !src_url_equal(img.src, img_src_value = ctx2[0].image)) { attr(img, "src", img_src_value); } if (dirty & 1 && img_alt_value !== (img_alt_value = ctx2[0].title)) { attr(img, "alt", img_alt_value); } }, d(detaching) { if (detaching) detach(img); } }; } function create_if_block_13(ctx) { let div; let current; let each_value = ctx[0].items; 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 out = (i) => transition_out(each_blocks[i], 1, 1, () => { each_blocks[i] = null; }); return { c() { div = element("div"); for (let i = 0; i < each_blocks.length; i += 1) { each_blocks[i].c(); } attr(div, "class", "tree-item-children"); }, m(target, anchor) { insert(target, div, anchor); for (let i = 0; i < each_blocks.length; i += 1) { each_blocks[i].m(div, null); } current = true; }, p(ctx2, dirty) { if (dirty & 3) { each_value = ctx2[0].items; 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); transition_in(each_blocks[i], 1); } else { each_blocks[i] = create_each_block2(child_ctx); each_blocks[i].c(); transition_in(each_blocks[i], 1); each_blocks[i].m(div, null); } } group_outros(); for (i = each_value.length; i < each_blocks.length; i += 1) { out(i); } 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) { 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(div); destroy_each(each_blocks, detaching); } }; } function create_each_block2(ctx) { let div1; let div0; let itemview; let t_1; let current; itemview = new ItemView_default({ props: { item: ctx[6], plugin: ctx[1], items: ctx[0].items } }); return { c() { div1 = element("div"); div0 = element("div"); create_component(itemview.$$.fragment); t_1 = space(); attr(div0, "class", "tree-item-self"); attr(div1, "class", "tree-item"); }, m(target, anchor) { insert(target, div1, anchor); append(div1, div0); mount_component(itemview, div0, null); append(div1, t_1); current = true; }, p(ctx2, dirty) { const itemview_changes = {}; if (dirty & 1) itemview_changes.item = ctx2[6]; if (dirty & 2) itemview_changes.plugin = ctx2[1]; if (dirty & 1) itemview_changes.items = ctx2[0].items; itemview.$set(itemview_changes); }, i(local) { if (current) return; transition_in(itemview.$$.fragment, local); current = true; }, o(local) { transition_out(itemview.$$.fragment, local); current = false; }, d(detaching) { if (detaching) detach(div1); destroy_component(itemview); } }; } function create_fragment6(ctx) { let current_block_type_index; let if_block; let if_block_anchor; let current; const if_block_creators = [create_if_block6, create_else_block]; const if_blocks = []; function select_block_type(ctx2, dirty) { if (!ctx2[0]) return 0; return 1; } current_block_type_index = select_block_type(ctx, -1); if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); return { c() { if_block.c(); if_block_anchor = empty(); }, m(target, anchor) { if_blocks[current_block_type_index].m(target, anchor); insert(target, if_block_anchor, anchor); current = true; }, p(ctx2, [dirty]) { let previous_block_index = current_block_type_index; current_block_type_index = select_block_type(ctx2, dirty); if (current_block_type_index === previous_block_index) { if_blocks[current_block_type_index].p(ctx2, dirty); } else { 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](ctx2); if_block.c(); } else { if_block.p(ctx2, dirty); } transition_in(if_block, 1); if_block.m(if_block_anchor.parentNode, if_block_anchor); } }, i(local) { if (current) return; transition_in(if_block); current = true; }, o(local) { transition_out(if_block); current = false; }, d(detaching) { if_blocks[current_block_type_index].d(detaching); if (detaching) detach(if_block_anchor); } }; } var func = (item) => !item.read; function instance6($$self, $$props, $$invalidate) { let { feed = null } = $$props; let { plugin } = $$props; let folded = []; foldedState.subscribe((value) => { $$invalidate(2, folded = value); }); function toggleFold(feed2) { if (!folded) { $$invalidate(2, folded = []); } if (folded.contains(feed2)) { folded.remove(feed2); } else folded.push(feed2); plugin.writeFolded(folded); } function openMenu(e) { return __async(this, null, function* () { const menu = new import_obsidian13.Menu(plugin.app); menu.addItem((menuItem) => { menuItem.setIcon("create-new").setTitle(t("create_all")).onClick(() => __async(this, null, function* () { for (let item of feed.items) { yield Action.CREATE_NOTE.processor(plugin, item); } })); }); menu.addItem((menuItem) => { menuItem.setIcon("feather-eye").setTitle(t("mark_all_as_read")).onClick(() => __async(this, null, function* () { for (let item of feed.items) { item.read = true; } const items = plugin.settings.items; yield plugin.writeFeedContent(() => { return items; }); })); }); menu.addItem((menuItem) => { menuItem.setIcon("tag-glyph").setTitle(t("add_tags_to_all")).onClick(() => __async(this, null, function* () { const tagModal = new TagModal(plugin, []); tagModal.onClose = () => __async(this, null, function* () { for (let item of feed.items) { item.tags.push(...tagModal.tags); } const items = plugin.settings.items; yield plugin.writeFeedContent(() => { return items; }); }); tagModal.open(); })); }); menu.showAtPosition({ x: e.x, y: e.y }); }); } const click_handler = () => toggleFold(feed.name); $$self.$$set = ($$props2) => { if ("feed" in $$props2) $$invalidate(0, feed = $$props2.feed); if ("plugin" in $$props2) $$invalidate(1, plugin = $$props2.plugin); }; return [feed, plugin, folded, toggleFold, openMenu, click_handler]; } var FeedView = class extends SvelteComponent { constructor(options) { super(); init(this, options, instance6, create_fragment6, safe_not_equal, { feed: 0, plugin: 1 }); } }; var FeedView_default = FeedView; // src/view/FolderView.svelte var import_obsidian15 = __toModule(require("obsidian")); // src/view/TopRowButtons.svelte var import_obsidian14 = __toModule(require("obsidian")); function create_fragment7(ctx) { let span; let buttons_action; let mounted; let dispose; return { c() { span = element("span"); }, m(target, anchor) { insert(target, span, anchor); if (!mounted) { dispose = action_destroyer(buttons_action = ctx[1].call(null, span, ctx[0])); mounted = true; } }, p(ctx2, [dirty]) { if (buttons_action && is_function(buttons_action.update) && dirty & 1) buttons_action.update.call(null, ctx2[0]); }, i: noop, o: noop, d(detaching) { if (detaching) detach(span); mounted = false; dispose(); } }; } function instance7($$self, $$props, $$invalidate) { let { plugin } = $$props; const buttons = (node, plugin2) => { new import_obsidian14.Setting(node).addExtraButton((button) => { button.setIcon("refresh-cw").setTooltip(t("refresh_feeds")).onClick(() => __async(this, null, function* () { yield plugin2.updateFeeds(); })); }); }; $$self.$$set = ($$props2) => { if ("plugin" in $$props2) $$invalidate(0, plugin = $$props2.plugin); }; return [plugin, buttons]; } var TopRowButtons = class extends SvelteComponent { constructor(options) { super(); init(this, options, instance7, create_fragment7, safe_not_equal, { plugin: 0 }); } }; var TopRowButtons_default = TopRowButtons; // src/view/FolderView.svelte function get_each_context3(ctx, list, i) { const child_ctx = ctx.slice(); child_ctx[15] = list[i]; return child_ctx; } function get_each_context_12(ctx, list, i) { const child_ctx = ctx.slice(); child_ctx[18] = list[i]; return child_ctx; } function get_each_context_2(ctx, list, i) { const child_ctx = ctx.slice(); child_ctx[15] = list[i]; return child_ctx; } function get_each_context_3(ctx, list, i) { const child_ctx = ctx.slice(); child_ctx[23] = list[i]; return child_ctx; } function get_each_context_4(ctx, list, i) { const child_ctx = ctx.slice(); child_ctx[26] = list[i]; return child_ctx; } function get_each_context_5(ctx, list, i) { const child_ctx = ctx.slice(); child_ctx[26] = list[i]; return child_ctx; } function create_else_block2(ctx) { let div; let t0; let t1; let current; let if_block0 = ctx[3] && create_if_block_9(ctx); let if_block1 = !ctx[2] && create_if_block_82(ctx); let if_block2 = ctx[2] && create_if_block_110(ctx); return { c() { div = element("div"); if (if_block0) if_block0.c(); t0 = space(); if (if_block1) if_block1.c(); t1 = space(); if (if_block2) if_block2.c(); attr(div, "class", "rss-view"); }, m(target, anchor) { insert(target, div, anchor); if (if_block0) if_block0.m(div, null); append(div, t0); if (if_block1) if_block1.m(div, null); append(div, t1); if (if_block2) if_block2.m(div, null); current = true; }, p(ctx2, dirty) { if (ctx2[3]) { if (if_block0) { if_block0.p(ctx2, dirty); if (dirty & 8) { transition_in(if_block0, 1); } } else { if_block0 = create_if_block_9(ctx2); if_block0.c(); transition_in(if_block0, 1); if_block0.m(div, t0); } } else if (if_block0) { group_outros(); transition_out(if_block0, 1, 1, () => { if_block0 = null; }); check_outros(); } if (!ctx2[2]) { if (if_block1) { if_block1.p(ctx2, dirty); } else { if_block1 = create_if_block_82(ctx2); if_block1.c(); if_block1.m(div, t1); } } else if (if_block1) { if_block1.d(1); if_block1 = null; } if (ctx2[2]) { if (if_block2) { if_block2.p(ctx2, dirty); if (dirty & 4) { transition_in(if_block2, 1); } } else { if_block2 = create_if_block_110(ctx2); if_block2.c(); transition_in(if_block2, 1); if_block2.m(div, null); } } else if (if_block2) { group_outros(); transition_out(if_block2, 1, 1, () => { if_block2 = null; }); check_outros(); } }, i(local) { if (current) return; transition_in(if_block0); transition_in(if_block2); current = true; }, o(local) { transition_out(if_block0); transition_out(if_block2); current = false; }, d(detaching) { if (detaching) detach(div); if (if_block0) if_block0.d(); if (if_block1) if_block1.d(); if (if_block2) if_block2.d(); } }; } function create_if_block7(ctx) { let h1; return { c() { h1 = element("h1"); h1.textContent = `${t("loading")}`; }, m(target, anchor) { insert(target, h1, anchor); }, p: noop, i: noop, o: noop, d(detaching) { if (detaching) detach(h1); } }; } function create_if_block_9(ctx) { let div1; let div0; let span; let show_if_1; let current_block_type_index; let if_block0; let t0; let div0_class_value; let t1; let show_if = !ctx[1].contains("rss-filters"); let current; let mounted; let dispose; const if_block_creators = [create_if_block_20, create_else_block_8]; const if_blocks = []; function select_block_type_1(ctx2, dirty) { if (dirty & 2) show_if_1 = null; if (show_if_1 == null) show_if_1 = !!ctx2[1].contains("rss-filters"); if (show_if_1) return 0; return 1; } current_block_type_index = select_block_type_1(ctx, -1); if_block0 = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); function select_block_type_2(ctx2, dirty) { if (ctx2[4].renamedText.filtered_folders !== "") return create_if_block_19; return create_else_block_7; } let current_block_type = select_block_type_2(ctx, -1); let if_block1 = current_block_type(ctx); let if_block2 = show_if && create_if_block_10(ctx); return { c() { div1 = element("div"); div0 = element("div"); span = element("span"); if_block0.c(); t0 = space(); if_block1.c(); t1 = space(); if (if_block2) if_block2.c(); attr(span, "class", "tree-item-self is-clickable"); attr(div0, "class", div0_class_value = "" + ((ctx[1].contains("rss-filters") ? "is-collapsed" : "") + " tree-item is-clickable")); attr(div1, "class", "rss-filtered-folders"); }, m(target, anchor) { insert(target, div1, anchor); append(div1, div0); append(div0, span); if_blocks[current_block_type_index].m(span, null); append(span, t0); if_block1.m(span, null); append(div1, t1); if (if_block2) if_block2.m(div1, null); current = true; if (!mounted) { dispose = listen(div0, "click", ctx[8]); mounted = true; } }, p(ctx2, dirty) { let previous_block_index = current_block_type_index; current_block_type_index = select_block_type_1(ctx2, 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_block0 = if_blocks[current_block_type_index]; if (!if_block0) { if_block0 = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx2); if_block0.c(); } else { } transition_in(if_block0, 1); if_block0.m(span, t0); } if (current_block_type === (current_block_type = select_block_type_2(ctx2, dirty)) && if_block1) { if_block1.p(ctx2, dirty); } else { if_block1.d(1); if_block1 = current_block_type(ctx2); if (if_block1) { if_block1.c(); if_block1.m(span, null); } } if (!current || dirty & 2 && div0_class_value !== (div0_class_value = "" + ((ctx2[1].contains("rss-filters") ? "is-collapsed" : "") + " tree-item is-clickable"))) { attr(div0, "class", div0_class_value); } if (dirty & 2) show_if = !ctx2[1].contains("rss-filters"); if (show_if) { if (if_block2) { if_block2.p(ctx2, dirty); if (dirty & 2) { transition_in(if_block2, 1); } } else { if_block2 = create_if_block_10(ctx2); if_block2.c(); transition_in(if_block2, 1); if_block2.m(div1, null); } } else if (if_block2) { group_outros(); transition_out(if_block2, 1, 1, () => { if_block2 = null; }); check_outros(); } }, i(local) { if (current) return; transition_in(if_block0); transition_in(if_block2); current = true; }, o(local) { transition_out(if_block0); transition_out(if_block2); current = false; }, d(detaching) { if (detaching) detach(div1); if_blocks[current_block_type_index].d(); if_block1.d(); if (if_block2) if_block2.d(); mounted = false; dispose(); } }; } function create_else_block_8(ctx) { let iconcomponent; let current; iconcomponent = new IconComponent_default({ props: { iconName: "down-chevron-glyph" } }); return { c() { create_component(iconcomponent.$$.fragment); }, m(target, anchor) { mount_component(iconcomponent, target, anchor); current = true; }, i(local) { if (current) return; transition_in(iconcomponent.$$.fragment, local); current = true; }, o(local) { transition_out(iconcomponent.$$.fragment, local); current = false; }, d(detaching) { destroy_component(iconcomponent, detaching); } }; } function create_if_block_20(ctx) { let iconcomponent; let current; iconcomponent = new IconComponent_default({ props: { iconName: "right-chevron-glyph" } }); return { c() { create_component(iconcomponent.$$.fragment); }, m(target, anchor) { mount_component(iconcomponent, target, anchor); current = true; }, i(local) { if (current) return; transition_in(iconcomponent.$$.fragment, local); current = true; }, o(local) { transition_out(iconcomponent.$$.fragment, local); current = false; }, d(detaching) { destroy_component(iconcomponent, detaching); } }; } function create_else_block_7(ctx) { let span; return { c() { span = element("span"); span.textContent = `${t("filtered_folders")}`; }, m(target, anchor) { insert(target, span, anchor); }, p: noop, d(detaching) { if (detaching) detach(span); } }; } function create_if_block_19(ctx) { let span; let t_1_value = ctx[4].renamedText.filtered_folders + ""; let t_1; return { c() { span = element("span"); t_1 = text(t_1_value); }, m(target, anchor) { insert(target, span, anchor); append(span, t_1); }, p(ctx2, dirty) { if (dirty & 16 && t_1_value !== (t_1_value = ctx2[4].renamedText.filtered_folders + "")) set_data(t_1, t_1_value); }, d(detaching) { if (detaching) detach(span); } }; } function create_if_block_10(ctx) { let span; let current; let each_value_2 = buildTreeStructure(ctx[3]); let each_blocks = []; for (let i = 0; i < each_value_2.length; i += 1) { each_blocks[i] = create_each_block_2(get_each_context_2(ctx, each_value_2, i)); } const out = (i) => transition_out(each_blocks[i], 1, 1, () => { each_blocks[i] = null; }); return { c() { span = element("span"); for (let i = 0; i < each_blocks.length; i += 1) { each_blocks[i].c(); } }, m(target, anchor) { insert(target, span, anchor); for (let i = 0; i < each_blocks.length; i += 1) { each_blocks[i].m(span, null); } current = true; }, p(ctx2, dirty) { if (dirty & 171) { each_value_2 = buildTreeStructure(ctx2[3]); let i; for (i = 0; i < each_value_2.length; i += 1) { const child_ctx = get_each_context_2(ctx2, each_value_2, i); if (each_blocks[i]) { each_blocks[i].p(child_ctx, dirty); transition_in(each_blocks[i], 1); } else { each_blocks[i] = create_each_block_2(child_ctx); each_blocks[i].c(); transition_in(each_blocks[i], 1); each_blocks[i].m(span, null); } } group_outros(); for (i = each_value_2.length; i < each_blocks.length; i += 1) { out(i); } check_outros(); } }, i(local) { if (current) return; for (let i = 0; i < each_value_2.length; i += 1) { transition_in(each_blocks[i]); } current = true; }, o(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(span); destroy_each(each_blocks, detaching); } }; } function create_else_block_6(ctx) { let iconcomponent; let current; iconcomponent = new IconComponent_default({ props: { iconName: "down-chevron-glyph" } }); return { c() { create_component(iconcomponent.$$.fragment); }, m(target, anchor) { mount_component(iconcomponent, target, anchor); current = true; }, i(local) { if (current) return; transition_in(iconcomponent.$$.fragment, local); current = true; }, o(local) { transition_out(iconcomponent.$$.fragment, local); current = false; }, d(detaching) { destroy_component(iconcomponent, detaching); } }; } function create_if_block_18(ctx) { let iconcomponent; let current; iconcomponent = new IconComponent_default({ props: { iconName: "right-chevron-glyph" } }); return { c() { create_component(iconcomponent.$$.fragment); }, m(target, anchor) { mount_component(iconcomponent, target, anchor); current = true; }, i(local) { if (current) return; transition_in(iconcomponent.$$.fragment, local); current = true; }, o(local) { transition_out(iconcomponent.$$.fragment, local); current = false; }, d(detaching) { destroy_component(iconcomponent, detaching); } }; } function create_if_block_16(ctx) { let show_if = !ctx[1].contains("rss-filters-" + ctx[15].name); let if_block_anchor; let current; let if_block = show_if && create_if_block_17(ctx); return { c() { if (if_block) if_block.c(); if_block_anchor = empty(); }, m(target, anchor) { if (if_block) if_block.m(target, anchor); insert(target, if_block_anchor, anchor); current = true; }, p(ctx2, dirty) { if (dirty & 10) show_if = !ctx2[1].contains("rss-filters-" + ctx2[15].name); if (show_if) { if (if_block) { if_block.p(ctx2, dirty); if (dirty & 10) { transition_in(if_block, 1); } } else { if_block = create_if_block_17(ctx2); if_block.c(); transition_in(if_block, 1); if_block.m(if_block_anchor.parentNode, if_block_anchor); } } 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(if_block_anchor); } }; } function create_if_block_17(ctx) { let div; let current; let each_value_5 = ctx[15].filter.items.items; let each_blocks = []; for (let i = 0; i < each_value_5.length; i += 1) { each_blocks[i] = create_each_block_5(get_each_context_5(ctx, each_value_5, i)); } const out = (i) => transition_out(each_blocks[i], 1, 1, () => { each_blocks[i] = null; }); return { c() { div = element("div"); for (let i = 0; i < each_blocks.length; i += 1) { each_blocks[i].c(); } attr(div, "class", "tree-item-children"); }, m(target, anchor) { insert(target, div, anchor); for (let i = 0; i < each_blocks.length; i += 1) { each_blocks[i].m(div, null); } current = true; }, p(ctx2, dirty) { if (dirty & 9) { each_value_5 = ctx2[15].filter.items.items; let i; for (i = 0; i < each_value_5.length; i += 1) { const child_ctx = get_each_context_5(ctx2, each_value_5, i); if (each_blocks[i]) { each_blocks[i].p(child_ctx, dirty); transition_in(each_blocks[i], 1); } else { each_blocks[i] = create_each_block_5(child_ctx); each_blocks[i].c(); transition_in(each_blocks[i], 1); each_blocks[i].m(div, null); } } group_outros(); for (i = each_value_5.length; i < each_blocks.length; i += 1) { out(i); } check_outros(); } }, i(local) { if (current) return; for (let i = 0; i < each_value_5.length; i += 1) { transition_in(each_blocks[i]); } current = true; }, o(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(div); destroy_each(each_blocks, detaching); } }; } function create_each_block_5(ctx) { let div1; let div0; let itemview; let t_1; let current; itemview = new ItemView_default({ props: { item: ctx[26], plugin: ctx[0], items: ctx[15].filter.items.items } }); return { c() { div1 = element("div"); div0 = element("div"); create_component(itemview.$$.fragment); t_1 = space(); attr(div0, "class", "tree-item-self"); attr(div1, "class", "tree-item"); }, m(target, anchor) { insert(target, div1, anchor); append(div1, div0); mount_component(itemview, div0, null); append(div1, t_1); current = true; }, p(ctx2, dirty) { const itemview_changes = {}; if (dirty & 8) itemview_changes.item = ctx2[26]; if (dirty & 1) itemview_changes.plugin = ctx2[0]; if (dirty & 8) itemview_changes.items = ctx2[15].filter.items.items; itemview.$set(itemview_changes); }, i(local) { if (current) return; transition_in(itemview.$$.fragment, local); current = true; }, o(local) { transition_out(itemview.$$.fragment, local); current = false; }, d(detaching) { if (detaching) detach(div1); destroy_component(itemview); } }; } function create_if_block_11(ctx) { let show_if = !ctx[1].contains("rss-filters-" + ctx[15].name); let if_block_anchor; let current; let if_block = show_if && create_if_block_122(ctx); return { c() { if (if_block) if_block.c(); if_block_anchor = empty(); }, m(target, anchor) { if (if_block) if_block.m(target, anchor); insert(target, if_block_anchor, anchor); current = true; }, p(ctx2, dirty) { if (dirty & 10) show_if = !ctx2[1].contains("rss-filters-" + ctx2[15].name); if (show_if) { if (if_block) { if_block.p(ctx2, dirty); if (dirty & 10) { transition_in(if_block, 1); } } else { if_block = create_if_block_122(ctx2); if_block.c(); transition_in(if_block, 1); if_block.m(if_block_anchor.parentNode, if_block_anchor); } } 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(if_block_anchor); } }; } function create_if_block_122(ctx) { let each_1_anchor; let current; let each_value_3 = ctx[15].children; let each_blocks = []; for (let i = 0; i < each_value_3.length; i += 1) { each_blocks[i] = create_each_block_3(get_each_context_3(ctx, each_value_3, i)); } const out = (i) => transition_out(each_blocks[i], 1, 1, () => { each_blocks[i] = null; }); return { c() { for (let i = 0; i < each_blocks.length; i += 1) { each_blocks[i].c(); } each_1_anchor = empty(); }, m(target, anchor) { for (let i = 0; i < each_blocks.length; i += 1) { each_blocks[i].m(target, anchor); } insert(target, each_1_anchor, anchor); current = true; }, p(ctx2, dirty) { if (dirty & 43) { each_value_3 = ctx2[15].children; let i; for (i = 0; i < each_value_3.length; i += 1) { const child_ctx = get_each_context_3(ctx2, each_value_3, i); if (each_blocks[i]) { each_blocks[i].p(child_ctx, dirty); transition_in(each_blocks[i], 1); } else { each_blocks[i] = create_each_block_3(child_ctx); each_blocks[i].c(); transition_in(each_blocks[i], 1); each_blocks[i].m(each_1_anchor.parentNode, each_1_anchor); } } group_outros(); for (i = each_value_3.length; i < each_blocks.length; i += 1) { out(i); } check_outros(); } }, i(local) { if (current) return; for (let i = 0; i < each_value_3.length; i += 1) { transition_in(each_blocks[i]); } current = true; }, o(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) { destroy_each(each_blocks, detaching); if (detaching) detach(each_1_anchor); } }; } function create_else_block_5(ctx) { let iconcomponent; let current; iconcomponent = new IconComponent_default({ props: { iconName: "down-chevron-glyph" } }); return { c() { create_component(iconcomponent.$$.fragment); }, m(target, anchor) { mount_component(iconcomponent, target, anchor); current = true; }, i(local) { if (current) return; transition_in(iconcomponent.$$.fragment, local); current = true; }, o(local) { transition_out(iconcomponent.$$.fragment, local); current = false; }, d(detaching) { destroy_component(iconcomponent, detaching); } }; } function create_if_block_15(ctx) { let iconcomponent; let current; iconcomponent = new IconComponent_default({ props: { iconName: "right-chevron-glyph" } }); return { c() { create_component(iconcomponent.$$.fragment); }, m(target, anchor) { mount_component(iconcomponent, target, anchor); current = true; }, i(local) { if (current) return; transition_in(iconcomponent.$$.fragment, local); current = true; }, o(local) { transition_out(iconcomponent.$$.fragment, local); current = false; }, d(detaching) { destroy_component(iconcomponent, detaching); } }; } function create_if_block_132(ctx) { let show_if = !ctx[1].contains("rss-filters-" + ctx[23].filter.filter.name); let if_block_anchor; let current; let if_block = show_if && create_if_block_14(ctx); return { c() { if (if_block) if_block.c(); if_block_anchor = empty(); }, m(target, anchor) { if (if_block) if_block.m(target, anchor); insert(target, if_block_anchor, anchor); current = true; }, p(ctx2, dirty) { if (dirty & 10) show_if = !ctx2[1].contains("rss-filters-" + ctx2[23].filter.filter.name); if (show_if) { if (if_block) { if_block.p(ctx2, dirty); if (dirty & 10) { transition_in(if_block, 1); } } else { if_block = create_if_block_14(ctx2); if_block.c(); transition_in(if_block, 1); if_block.m(if_block_anchor.parentNode, if_block_anchor); } } 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(if_block_anchor); } }; } function create_if_block_14(ctx) { let div; let current; let each_value_4 = ctx[23].filter.items.items; let each_blocks = []; for (let i = 0; i < each_value_4.length; i += 1) { each_blocks[i] = create_each_block_4(get_each_context_4(ctx, each_value_4, i)); } const out = (i) => transition_out(each_blocks[i], 1, 1, () => { each_blocks[i] = null; }); return { c() { div = element("div"); for (let i = 0; i < each_blocks.length; i += 1) { each_blocks[i].c(); } attr(div, "class", "tree-item-children"); }, m(target, anchor) { insert(target, div, anchor); for (let i = 0; i < each_blocks.length; i += 1) { each_blocks[i].m(div, null); } current = true; }, p(ctx2, dirty) { if (dirty & 9) { each_value_4 = ctx2[23].filter.items.items; let i; for (i = 0; i < each_value_4.length; i += 1) { const child_ctx = get_each_context_4(ctx2, each_value_4, i); if (each_blocks[i]) { each_blocks[i].p(child_ctx, dirty); transition_in(each_blocks[i], 1); } else { each_blocks[i] = create_each_block_4(child_ctx); each_blocks[i].c(); transition_in(each_blocks[i], 1); each_blocks[i].m(div, null); } } group_outros(); for (i = each_value_4.length; i < each_blocks.length; i += 1) { out(i); } check_outros(); } }, i(local) { if (current) return; for (let i = 0; i < each_value_4.length; i += 1) { transition_in(each_blocks[i]); } current = true; }, o(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(div); destroy_each(each_blocks, detaching); } }; } function create_each_block_4(ctx) { let div1; let div0; let itemview; let t_1; let current; itemview = new ItemView_default({ props: { item: ctx[26], plugin: ctx[0], items: ctx[23].filter.items.items } }); return { c() { div1 = element("div"); div0 = element("div"); create_component(itemview.$$.fragment); t_1 = space(); attr(div0, "class", "tree-item-self"); attr(div1, "class", "tree-item"); }, m(target, anchor) { insert(target, div1, anchor); append(div1, div0); mount_component(itemview, div0, null); append(div1, t_1); current = true; }, p(ctx2, dirty) { const itemview_changes = {}; if (dirty & 8) itemview_changes.item = ctx2[26]; if (dirty & 1) itemview_changes.plugin = ctx2[0]; if (dirty & 8) itemview_changes.items = ctx2[23].filter.items.items; itemview.$set(itemview_changes); }, i(local) { if (current) return; transition_in(itemview.$$.fragment, local); current = true; }, o(local) { transition_out(itemview.$$.fragment, local); current = false; }, d(detaching) { if (detaching) detach(div1); destroy_component(itemview); } }; } function create_each_block_3(ctx) { var _a; let div1; let div0; let show_if; let current_block_type_index; let if_block0; let t0; let span0; let t1_value = ctx[23].name + ""; let t1; let t2; let span1; let t3_value = ((_a = ctx[23].filter) == null ? void 0 : _a.items.items.length) + ""; let t3; let div0_class_value; let t4; let t5; let current; let mounted; let dispose; const if_block_creators = [create_if_block_15, create_else_block_5]; const if_blocks = []; function select_block_type_4(ctx2, dirty) { if (dirty & 10) show_if = null; if (show_if == null) show_if = !!ctx2[1].contains("rss-filters-" + ctx2[23].filter.filter.name); if (show_if) return 0; return 1; } current_block_type_index = select_block_type_4(ctx, -1); if_block0 = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); function click_handler_2() { return ctx[11](ctx[23]); } let if_block1 = ctx[23].filter !== void 0 && create_if_block_132(ctx); return { c() { div1 = element("div"); div0 = element("div"); if_block0.c(); t0 = space(); span0 = element("span"); t1 = text(t1_value); t2 = space(); span1 = element("span"); t3 = text(t3_value); t4 = space(); if (if_block1) if_block1.c(); t5 = space(); attr(span1, "class", "rss-item-count"); attr(div0, "class", div0_class_value = "" + ((ctx[1].contains("rss-filters-" + ctx[23].filter.filter.name) ? "is-collapsed" : "") + " tree-item-self is-clickable")); attr(div1, "class", "tree-item-children"); }, m(target, anchor) { insert(target, div1, anchor); append(div1, div0); if_blocks[current_block_type_index].m(div0, null); append(div0, t0); append(div0, span0); append(span0, t1); append(div0, t2); append(div0, span1); append(span1, t3); append(div1, t4); if (if_block1) if_block1.m(div1, null); append(div1, t5); current = true; if (!mounted) { dispose = listen(div0, "click", click_handler_2); mounted = true; } }, p(new_ctx, dirty) { var _a2; ctx = new_ctx; let previous_block_index = current_block_type_index; current_block_type_index = select_block_type_4(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_block0 = if_blocks[current_block_type_index]; if (!if_block0) { if_block0 = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); if_block0.c(); } else { } transition_in(if_block0, 1); if_block0.m(div0, t0); } if ((!current || dirty & 8) && t1_value !== (t1_value = ctx[23].name + "")) set_data(t1, t1_value); if ((!current || dirty & 8) && t3_value !== (t3_value = ((_a2 = ctx[23].filter) == null ? void 0 : _a2.items.items.length) + "")) set_data(t3, t3_value); if (!current || dirty & 10 && div0_class_value !== (div0_class_value = "" + ((ctx[1].contains("rss-filters-" + ctx[23].filter.filter.name) ? "is-collapsed" : "") + " tree-item-self is-clickable"))) { attr(div0, "class", div0_class_value); } if (ctx[23].filter !== void 0) { if (if_block1) { if_block1.p(ctx, dirty); if (dirty & 8) { transition_in(if_block1, 1); } } else { if_block1 = create_if_block_132(ctx); if_block1.c(); transition_in(if_block1, 1); if_block1.m(div1, t5); } } else if (if_block1) { group_outros(); transition_out(if_block1, 1, 1, () => { if_block1 = null; }); check_outros(); } }, i(local) { if (current) return; transition_in(if_block0); transition_in(if_block1); current = true; }, o(local) { transition_out(if_block0); transition_out(if_block1); current = false; }, d(detaching) { if (detaching) detach(div1); if_blocks[current_block_type_index].d(); if (if_block1) if_block1.d(); mounted = false; dispose(); } }; } function create_each_block_2(ctx) { var _a; let div1; let div0; let span2; let show_if; let current_block_type_index; let if_block0; let t0; let span0; let t1_value = ctx[15].name + ""; let t1; let t2; let span1; let t3_value = ((_a = ctx[15].filter) == null ? void 0 : _a.items.items.length) + ""; let t3; let div0_class_value; let t4; let t5; let t6; let current; let mounted; let dispose; const if_block_creators = [create_if_block_18, create_else_block_6]; const if_blocks = []; function select_block_type_3(ctx2, dirty) { if (dirty & 10) show_if = null; if (show_if == null) show_if = !!ctx2[1].contains("rss-filters-" + ctx2[15].name); if (show_if) return 0; return 1; } current_block_type_index = select_block_type_3(ctx, -1); if_block0 = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); function contextmenu_handler(...args) { return ctx[9](ctx[15], ...args); } function click_handler_1() { return ctx[10](ctx[15]); } let if_block1 = ctx[15].filter !== void 0 && create_if_block_16(ctx); let if_block2 = ctx[15].children && create_if_block_11(ctx); return { c() { div1 = element("div"); div0 = element("div"); span2 = element("span"); if_block0.c(); t0 = space(); span0 = element("span"); t1 = text(t1_value); t2 = space(); span1 = element("span"); t3 = text(t3_value); t4 = space(); if (if_block1) if_block1.c(); t5 = space(); if (if_block2) if_block2.c(); t6 = space(); attr(span1, "class", "rss-item-count"); attr(span2, "class", "tree-item-self is-clickable"); attr(div0, "class", div0_class_value = "" + ((ctx[1].contains("rss-filters-" + ctx[15].name) ? "is-collapsed" : "") + " tree-item is-clickable")); attr(div1, "class", "tree-item-children"); }, m(target, anchor) { insert(target, div1, anchor); append(div1, div0); append(div0, span2); if_blocks[current_block_type_index].m(span2, null); append(span2, t0); append(span2, span0); append(span0, t1); append(span2, t2); append(span2, span1); append(span1, t3); append(div1, t4); if (if_block1) if_block1.m(div1, null); append(div1, t5); if (if_block2) if_block2.m(div1, null); append(div1, t6); current = true; if (!mounted) { dispose = [ listen(span2, "contextmenu", contextmenu_handler), listen(div0, "click", click_handler_1) ]; mounted = true; } }, p(new_ctx, dirty) { var _a2; ctx = new_ctx; let previous_block_index = current_block_type_index; current_block_type_index = select_block_type_3(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_block0 = if_blocks[current_block_type_index]; if (!if_block0) { if_block0 = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); if_block0.c(); } else { } transition_in(if_block0, 1); if_block0.m(span2, t0); } if ((!current || dirty & 8) && t1_value !== (t1_value = ctx[15].name + "")) set_data(t1, t1_value); if ((!current || dirty & 8) && t3_value !== (t3_value = ((_a2 = ctx[15].filter) == null ? void 0 : _a2.items.items.length) + "")) set_data(t3, t3_value); if (!current || dirty & 10 && div0_class_value !== (div0_class_value = "" + ((ctx[1].contains("rss-filters-" + ctx[15].name) ? "is-collapsed" : "") + " tree-item is-clickable"))) { attr(div0, "class", div0_class_value); } if (ctx[15].filter !== void 0) { if (if_block1) { if_block1.p(ctx, dirty); if (dirty & 8) { transition_in(if_block1, 1); } } else { if_block1 = create_if_block_16(ctx); if_block1.c(); transition_in(if_block1, 1); if_block1.m(div1, t5); } } else if (if_block1) { group_outros(); transition_out(if_block1, 1, 1, () => { if_block1 = null; }); check_outros(); } if (ctx[15].children) { if (if_block2) { if_block2.p(ctx, dirty); if (dirty & 8) { transition_in(if_block2, 1); } } else { if_block2 = create_if_block_11(ctx); if_block2.c(); transition_in(if_block2, 1); if_block2.m(div1, t6); } } else if (if_block2) { group_outros(); transition_out(if_block2, 1, 1, () => { if_block2 = null; }); check_outros(); } }, i(local) { if (current) return; transition_in(if_block0); transition_in(if_block1); transition_in(if_block2); current = true; }, o(local) { transition_out(if_block0); transition_out(if_block1); transition_out(if_block2); current = false; }, d(detaching) { if (detaching) detach(div1); if_blocks[current_block_type_index].d(); if (if_block1) if_block1.d(); if (if_block2) if_block2.d(); mounted = false; run_all(dispose); } }; } function create_if_block_82(ctx) { let h1; return { c() { h1 = element("h1"); h1.textContent = `${t("loading")}`; }, m(target, anchor) { insert(target, h1, anchor); }, p: noop, d(detaching) { if (detaching) detach(h1); } }; } function create_if_block_110(ctx) { let div1; let div0; let span; let show_if_1; let current_block_type_index; let if_block0; let t0; let div0_class_value; let t1; let show_if = !ctx[1].contains("rss-folders"); let current; let mounted; let dispose; const if_block_creators = [create_if_block_72, create_else_block_4]; const if_blocks = []; function select_block_type_5(ctx2, dirty) { if (dirty & 2) show_if_1 = null; if (show_if_1 == null) show_if_1 = !!ctx2[1].contains("rss-folders"); if (show_if_1) return 0; return 1; } current_block_type_index = select_block_type_5(ctx, -1); if_block0 = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); function select_block_type_6(ctx2, dirty) { if (ctx2[4].renamedText.folders !== "") return create_if_block_62; return create_else_block_3; } let current_block_type = select_block_type_6(ctx, -1); let if_block1 = current_block_type(ctx); let if_block2 = show_if && create_if_block_23(ctx); return { c() { div1 = element("div"); div0 = element("div"); span = element("span"); if_block0.c(); t0 = space(); if_block1.c(); t1 = space(); if (if_block2) if_block2.c(); attr(span, "class", "tree-item-self is-clickable"); attr(div0, "class", div0_class_value = "" + ((ctx[1].contains("rss-folders") ? "is-collapsed" : "") + " tree-item is-clickable")); attr(div1, "class", "rss-feeds-folders"); }, m(target, anchor) { insert(target, div1, anchor); append(div1, div0); append(div0, span); if_blocks[current_block_type_index].m(span, null); append(span, t0); if_block1.m(span, null); append(div1, t1); if (if_block2) if_block2.m(div1, null); current = true; if (!mounted) { dispose = listen(div0, "click", ctx[12]); mounted = true; } }, p(ctx2, dirty) { let previous_block_index = current_block_type_index; current_block_type_index = select_block_type_5(ctx2, 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_block0 = if_blocks[current_block_type_index]; if (!if_block0) { if_block0 = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx2); if_block0.c(); } else { } transition_in(if_block0, 1); if_block0.m(span, t0); } if (current_block_type === (current_block_type = select_block_type_6(ctx2, dirty)) && if_block1) { if_block1.p(ctx2, dirty); } else { if_block1.d(1); if_block1 = current_block_type(ctx2); if (if_block1) { if_block1.c(); if_block1.m(span, null); } } if (!current || dirty & 2 && div0_class_value !== (div0_class_value = "" + ((ctx2[1].contains("rss-folders") ? "is-collapsed" : "") + " tree-item is-clickable"))) { attr(div0, "class", div0_class_value); } if (dirty & 2) show_if = !ctx2[1].contains("rss-folders"); if (show_if) { if (if_block2) { if_block2.p(ctx2, dirty); if (dirty & 2) { transition_in(if_block2, 1); } } else { if_block2 = create_if_block_23(ctx2); if_block2.c(); transition_in(if_block2, 1); if_block2.m(div1, null); } } else if (if_block2) { group_outros(); transition_out(if_block2, 1, 1, () => { if_block2 = null; }); check_outros(); } }, i(local) { if (current) return; transition_in(if_block0); transition_in(if_block2); current = true; }, o(local) { transition_out(if_block0); transition_out(if_block2); current = false; }, d(detaching) { if (detaching) detach(div1); if_blocks[current_block_type_index].d(); if_block1.d(); if (if_block2) if_block2.d(); mounted = false; dispose(); } }; } function create_else_block_4(ctx) { let iconcomponent; let current; iconcomponent = new IconComponent_default({ props: { iconName: "down-chevron-glyph" } }); return { c() { create_component(iconcomponent.$$.fragment); }, m(target, anchor) { mount_component(iconcomponent, target, anchor); current = true; }, i(local) { if (current) return; transition_in(iconcomponent.$$.fragment, local); current = true; }, o(local) { transition_out(iconcomponent.$$.fragment, local); current = false; }, d(detaching) { destroy_component(iconcomponent, detaching); } }; } function create_if_block_72(ctx) { let iconcomponent; let current; iconcomponent = new IconComponent_default({ props: { iconName: "right-chevron-glyph" } }); return { c() { create_component(iconcomponent.$$.fragment); }, m(target, anchor) { mount_component(iconcomponent, target, anchor); current = true; }, i(local) { if (current) return; transition_in(iconcomponent.$$.fragment, local); current = true; }, o(local) { transition_out(iconcomponent.$$.fragment, local); current = false; }, d(detaching) { destroy_component(iconcomponent, detaching); } }; } function create_else_block_3(ctx) { let span; return { c() { span = element("span"); span.textContent = `${t("folders")}`; }, m(target, anchor) { insert(target, span, anchor); }, p: noop, d(detaching) { if (detaching) detach(span); } }; } function create_if_block_62(ctx) { let span; let t_1_value = ctx[4].renamedText.folders + ""; let t_1; return { c() { span = element("span"); t_1 = text(t_1_value); }, m(target, anchor) { insert(target, span, anchor); append(span, t_1); }, p(ctx2, dirty) { if (dirty & 16 && t_1_value !== (t_1_value = ctx2[4].renamedText.folders + "")) set_data(t_1, t_1_value); }, d(detaching) { if (detaching) detach(span); } }; } function create_if_block_23(ctx) { let div; let current; let each_value = Object.keys(ctx[2]); 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)); } const out = (i) => transition_out(each_blocks[i], 1, 1, () => { each_blocks[i] = null; }); return { c() { div = element("div"); for (let i = 0; i < each_blocks.length; i += 1) { each_blocks[i].c(); } attr(div, "class", "tree-item-children"); }, m(target, anchor) { insert(target, div, anchor); for (let i = 0; i < each_blocks.length; i += 1) { each_blocks[i].m(div, null); } current = true; }, p(ctx2, dirty) { if (dirty & 119) { each_value = Object.keys(ctx2[2]); 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); transition_in(each_blocks[i], 1); } else { each_blocks[i] = create_each_block3(child_ctx); each_blocks[i].c(); transition_in(each_blocks[i], 1); each_blocks[i].m(div, null); } } group_outros(); for (i = each_value.length; i < each_blocks.length; i += 1) { out(i); } 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) { 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(div); destroy_each(each_blocks, detaching); } }; } function create_else_block_2(ctx) { let iconcomponent; let current; iconcomponent = new IconComponent_default({ props: { iconName: "down-chevron-glyph" } }); return { c() { create_component(iconcomponent.$$.fragment); }, m(target, anchor) { mount_component(iconcomponent, target, anchor); current = true; }, i(local) { if (current) return; transition_in(iconcomponent.$$.fragment, local); current = true; }, o(local) { transition_out(iconcomponent.$$.fragment, local); current = false; }, d(detaching) { destroy_component(iconcomponent, detaching); } }; } function create_if_block_52(ctx) { let iconcomponent; let current; iconcomponent = new IconComponent_default({ props: { iconName: "right-chevron-glyph" } }); return { c() { create_component(iconcomponent.$$.fragment); }, m(target, anchor) { mount_component(iconcomponent, target, anchor); current = true; }, i(local) { if (current) return; transition_in(iconcomponent.$$.fragment, local); current = true; }, o(local) { transition_out(iconcomponent.$$.fragment, local); current = false; }, d(detaching) { destroy_component(iconcomponent, detaching); } }; } function create_else_block_12(ctx) { let span; let t_1_value = (ctx[4].renamedText.no_folder !== "" ? ctx[4].renamedText.no_folder : t("no_folder")) + ""; let t_1; return { c() { span = element("span"); t_1 = text(t_1_value); }, m(target, anchor) { insert(target, span, anchor); append(span, t_1); }, p(ctx2, dirty) { if (dirty & 16 && t_1_value !== (t_1_value = (ctx2[4].renamedText.no_folder !== "" ? ctx2[4].renamedText.no_folder : t("no_folder")) + "")) set_data(t_1, t_1_value); }, d(detaching) { if (detaching) detach(span); } }; } function create_if_block_42(ctx) { let span; let t_1_value = ctx[15] + ""; let t_1; return { c() { span = element("span"); t_1 = text(t_1_value); }, m(target, anchor) { insert(target, span, anchor); append(span, t_1); }, p(ctx2, dirty) { if (dirty & 4 && t_1_value !== (t_1_value = ctx2[15] + "")) set_data(t_1, t_1_value); }, d(detaching) { if (detaching) detach(span); } }; } function create_if_block_33(ctx) { let each_1_anchor; let current; let each_value_1 = ctx[2][ctx[15]]; let each_blocks = []; for (let i = 0; i < each_value_1.length; i += 1) { each_blocks[i] = create_each_block_12(get_each_context_12(ctx, each_value_1, i)); } const out = (i) => transition_out(each_blocks[i], 1, 1, () => { each_blocks[i] = null; }); return { c() { for (let i = 0; i < each_blocks.length; i += 1) { each_blocks[i].c(); } each_1_anchor = empty(); }, m(target, anchor) { for (let i = 0; i < each_blocks.length; i += 1) { each_blocks[i].m(target, anchor); } insert(target, each_1_anchor, anchor); current = true; }, p(ctx2, dirty) { if (dirty & 5) { each_value_1 = ctx2[2][ctx2[15]]; 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[i]) { each_blocks[i].p(child_ctx, dirty); transition_in(each_blocks[i], 1); } else { each_blocks[i] = create_each_block_12(child_ctx); each_blocks[i].c(); transition_in(each_blocks[i], 1); each_blocks[i].m(each_1_anchor.parentNode, each_1_anchor); } } group_outros(); for (i = each_value_1.length; i < each_blocks.length; i += 1) { out(i); } check_outros(); } }, i(local) { if (current) return; for (let i = 0; i < each_value_1.length; i += 1) { transition_in(each_blocks[i]); } current = true; }, o(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) { destroy_each(each_blocks, detaching); if (detaching) detach(each_1_anchor); } }; } function create_each_block_12(ctx) { let feedview; let current; feedview = new FeedView_default({ props: { feed: ctx[18], plugin: ctx[0] } }); return { c() { create_component(feedview.$$.fragment); }, m(target, anchor) { mount_component(feedview, target, anchor); current = true; }, p(ctx2, dirty) { const feedview_changes = {}; if (dirty & 4) feedview_changes.feed = ctx2[18]; if (dirty & 1) feedview_changes.plugin = ctx2[0]; feedview.$set(feedview_changes); }, i(local) { if (current) return; transition_in(feedview.$$.fragment, local); current = true; }, o(local) { transition_out(feedview.$$.fragment, local); current = false; }, d(detaching) { destroy_component(feedview, detaching); } }; } function create_each_block3(ctx) { let div1; let span; let show_if_1; let current_block_type_index; let if_block0; let t0; let span_class_value; let t1; let div0; let show_if = !ctx[1].contains(ctx[15]); let t2; let current; let mounted; let dispose; const if_block_creators = [create_if_block_52, create_else_block_2]; const if_blocks = []; function select_block_type_7(ctx2, dirty) { if (dirty & 6) show_if_1 = null; if (show_if_1 == null) show_if_1 = !!ctx2[1].contains(ctx2[15]); if (show_if_1) return 0; return 1; } current_block_type_index = select_block_type_7(ctx, -1); if_block0 = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); function select_block_type_8(ctx2, dirty) { if (ctx2[15]) return create_if_block_42; return create_else_block_12; } let current_block_type = select_block_type_8(ctx, -1); let if_block1 = current_block_type(ctx); function click_handler_4() { return ctx[13](ctx[15]); } function contextmenu_handler_1(...args) { return ctx[14](ctx[15], ...args); } let if_block2 = show_if && create_if_block_33(ctx); return { c() { div1 = element("div"); span = element("span"); if_block0.c(); t0 = space(); if_block1.c(); t1 = space(); div0 = element("div"); if (if_block2) if_block2.c(); t2 = space(); attr(span, "class", span_class_value = "" + ((ctx[1].contains(ctx[15]) ? "is-collapsed" : "") + " tree-item-self is-clickable")); attr(div0, "class", "tree-item-children"); attr(div1, "class", "rss-folder tree-item"); }, m(target, anchor) { insert(target, div1, anchor); append(div1, span); if_blocks[current_block_type_index].m(span, null); append(span, t0); if_block1.m(span, null); append(div1, t1); append(div1, div0); if (if_block2) if_block2.m(div0, null); append(div1, t2); current = true; if (!mounted) { dispose = [ listen(span, "click", click_handler_4), listen(span, "contextmenu", contextmenu_handler_1) ]; mounted = true; } }, p(new_ctx, dirty) { ctx = new_ctx; let previous_block_index = current_block_type_index; current_block_type_index = select_block_type_7(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_block0 = if_blocks[current_block_type_index]; if (!if_block0) { if_block0 = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); if_block0.c(); } else { } transition_in(if_block0, 1); if_block0.m(span, t0); } if (current_block_type === (current_block_type = select_block_type_8(ctx, dirty)) && if_block1) { if_block1.p(ctx, dirty); } else { if_block1.d(1); if_block1 = current_block_type(ctx); if (if_block1) { if_block1.c(); if_block1.m(span, null); } } if (!current || dirty & 6 && span_class_value !== (span_class_value = "" + ((ctx[1].contains(ctx[15]) ? "is-collapsed" : "") + " tree-item-self is-clickable"))) { attr(span, "class", span_class_value); } if (dirty & 6) show_if = !ctx[1].contains(ctx[15]); if (show_if) { if (if_block2) { if_block2.p(ctx, dirty); if (dirty & 6) { transition_in(if_block2, 1); } } else { if_block2 = create_if_block_33(ctx); if_block2.c(); transition_in(if_block2, 1); if_block2.m(div0, null); } } else if (if_block2) { group_outros(); transition_out(if_block2, 1, 1, () => { if_block2 = null; }); check_outros(); } }, i(local) { if (current) return; transition_in(if_block0); transition_in(if_block2); current = true; }, o(local) { transition_out(if_block0); transition_out(if_block2); current = false; }, d(detaching) { if (detaching) detach(div1); if_blocks[current_block_type_index].d(); if_block1.d(); if (if_block2) if_block2.d(); mounted = false; run_all(dispose); } }; } function create_fragment8(ctx) { let toprowbuttons; let t_1; let current_block_type_index; let if_block; let if_block_anchor; let current; toprowbuttons = new TopRowButtons_default({ props: { plugin: ctx[0] } }); const if_block_creators = [create_if_block7, create_else_block2]; const if_blocks = []; function select_block_type(ctx2, dirty) { if (!ctx2[1]) return 0; return 1; } current_block_type_index = select_block_type(ctx, -1); if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); return { c() { create_component(toprowbuttons.$$.fragment); t_1 = space(); if_block.c(); if_block_anchor = empty(); }, m(target, anchor) { mount_component(toprowbuttons, target, anchor); insert(target, t_1, anchor); if_blocks[current_block_type_index].m(target, anchor); insert(target, if_block_anchor, anchor); current = true; }, p(ctx2, [dirty]) { const toprowbuttons_changes = {}; if (dirty & 1) toprowbuttons_changes.plugin = ctx2[0]; toprowbuttons.$set(toprowbuttons_changes); let previous_block_index = current_block_type_index; current_block_type_index = select_block_type(ctx2, dirty); if (current_block_type_index === previous_block_index) { if_blocks[current_block_type_index].p(ctx2, dirty); } else { 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](ctx2); if_block.c(); } else { if_block.p(ctx2, dirty); } transition_in(if_block, 1); if_block.m(if_block_anchor.parentNode, if_block_anchor); } }, i(local) { if (current) return; transition_in(toprowbuttons.$$.fragment, local); transition_in(if_block); current = true; }, o(local) { transition_out(toprowbuttons.$$.fragment, local); transition_out(if_block); current = false; }, d(detaching) { destroy_component(toprowbuttons, detaching); if (detaching) detach(t_1); if_blocks[current_block_type_index].d(detaching); if (detaching) detach(if_block_anchor); } }; } function buildTreeStructure(filteredContent) { let result = []; let level = { result }; filteredContent.forEach((filter) => { filter.filter.name.split("/").reduce((r, name) => { if (!r[name]) { r[name] = { result: [] }; if (filter.filter.name.endsWith(name)) { r.result.push({ name, children: r[name].result, filter }); } else { r.result.push({ name, children: r[name].result }); } } return r[name]; }, level); }); return result; } function instance8($$self, $$props, $$invalidate) { let $sortedFeedsStore; let $filteredItemsStore; let $settingsStore; component_subscribe($$self, sortedFeedsStore, ($$value) => $$invalidate(2, $sortedFeedsStore = $$value)); component_subscribe($$self, filteredItemsStore, ($$value) => $$invalidate(3, $filteredItemsStore = $$value)); component_subscribe($$self, settingsStore, ($$value) => $$invalidate(4, $settingsStore = $$value)); let { plugin } = $$props; let folded = []; foldedState.subscribe((value) => { $$invalidate(1, folded = value); }); function toggleFold(folder) { if (!folded) { $$invalidate(1, folded = []); } if (folded.contains(folder)) { folded.remove(folder); } else folded.push(folder); plugin.writeFolded(folded); } function openMenuForFolder(e, folder) { return __async(this, null, function* () { const items = []; for (const feed of $sortedFeedsStore[folder]) { for (let item of feed.items) { items.push(item); } } yield openMenu(e, items); }); } function openMenu(e, feedItems) { return __async(this, null, function* () { const menu = new import_obsidian15.Menu(plugin.app); menu.addItem((menuItem) => { menuItem.setIcon("create-new").setTitle(t("create_all")).onClick(() => __async(this, null, function* () { for (const item of feedItems) { yield Action.CREATE_NOTE.processor(plugin, item); } })); }); menu.addItem((menuItem) => { menuItem.setIcon("feather-eye").setTitle(t("mark_all_as_read")).onClick(() => __async(this, null, function* () { for (const item of feedItems) { item.read = true; } const items = plugin.settings.items; yield plugin.writeFeedContent(() => { return items; }); })); }); menu.showAtPosition({ x: e.x, y: e.y }); }); } const click_handler = () => toggleFold("rss-filters"); const contextmenu_handler = (folder, e) => openMenu(e, folder.filter.items.items); const click_handler_1 = (folder) => toggleFold("rss-filters-" + folder.name); const click_handler_2 = (child) => toggleFold("rss-filters-" + child.filter.filter.name); const click_handler_3 = () => toggleFold("rss-folders"); const click_handler_4 = (folder) => toggleFold(folder); const contextmenu_handler_1 = (folder, e) => openMenuForFolder(e, folder); $$self.$$set = ($$props2) => { if ("plugin" in $$props2) $$invalidate(0, plugin = $$props2.plugin); }; return [ plugin, folded, $sortedFeedsStore, $filteredItemsStore, $settingsStore, toggleFold, openMenuForFolder, openMenu, click_handler, contextmenu_handler, click_handler_1, click_handler_2, click_handler_3, click_handler_4, contextmenu_handler_1 ]; } var FolderView = class extends SvelteComponent { constructor(options) { super(); init(this, options, instance8, create_fragment8, safe_not_equal, { plugin: 0 }); } }; var FolderView_default = FolderView; // src/view/ViewLoader.ts var ViewLoader = class extends import_obsidian16.ItemView { constructor(leaf, plugin) { super(leaf); this.plugin = plugin; } getDisplayText() { return t("RSS_Feeds"); } getViewType() { return VIEW_ID; } getIcon() { return "rss"; } onOpen() { return __async(this, null, function* () { this.feed = new FolderView_default({ target: this.contentEl, props: { plugin: this.plugin } }); }); } onClose() { if (this.feed) { this.feed.$destroy(); } return Promise.resolve(); } }; // src/main.ts var import_lodash6 = __toModule(require_lodash()); var import_lodash7 = __toModule(require_lodash2()); var import_lodash8 = __toModule(require_lodash3()); var import_lodash9 = __toModule(require_lodash4()); // src/modals/FilteredFolderModal.ts var import_obsidian17 = __toModule(require("obsidian")); var FilterType; (function(FilterType2) { FilterType2[FilterType2["UNREAD"] = 0] = "UNREAD"; FilterType2[FilterType2["READ"] = 1] = "READ"; FilterType2[FilterType2["FAVORITES"] = 2] = "FAVORITES"; })(FilterType || (FilterType = {})); var SortOrder; (function(SortOrder2) { SortOrder2[SortOrder2["DATE_NEWEST"] = 0] = "DATE_NEWEST"; SortOrder2[SortOrder2["DATE_OLDEST"] = 1] = "DATE_OLDEST"; SortOrder2[SortOrder2["ALPHABET_NORMAL"] = 2] = "ALPHABET_NORMAL"; SortOrder2[SortOrder2["ALPHABET_INVERTED"] = 3] = "ALPHABET_INVERTED"; })(SortOrder || (SortOrder = {})); var FilteredFolderModal = class extends BaseModal { constructor(plugin, folder) { super(plugin.app); this.filterTags = []; this.ignoreTags = []; this.filterFolders = []; this.ignoreFolders = []; this.filterFeeds = []; this.ignoreFeeds = []; this.saved = false; this.plugin = plugin; if (folder) { this.name = folder.name; this.sortOrder = folder.sortOrder; this.filterTags = folder.filterTags; this.ignoreTags = folder.ignoreTags; this.filterFolders = folder.filterFolders; this.ignoreFolders = folder.ignoreFolders; this.filterFeeds = folder.filterFeeds; this.ignoreFeeds = folder.ignoreFeeds; this.read = folder.read; this.unread = folder.unread; this.favorites = folder.favorites; } } display() { return __async(this, null, function* () { const { contentEl } = this; contentEl.empty(); let nameText; const name = new import_obsidian17.Setting(contentEl).setName(t("name")).setDesc(t("filter_name_help")).addText((text2) => { nameText = text2; text2.setValue(this.name).onChange((value) => { this.removeValidationError(text2); this.name = value; }); }); name.controlEl.addClass("rss-setting-input"); new import_obsidian17.Setting(contentEl).setName(t("only_favorites")).addToggle((toggle) => { toggle.setValue(this.favorites).onChange((value) => { this.favorites = value; }); }); new import_obsidian17.Setting(contentEl).setName(t("show_read")).addToggle((toggle) => { toggle.setValue(this.read).onChange((value) => { this.read = value; }); }); new import_obsidian17.Setting(contentEl).setName(t("show_unread")).addToggle((toggle) => { toggle.setValue(this.unread).onChange((value) => { this.unread = value; }); }); const sorting = new import_obsidian17.Setting(contentEl).setName(t("sort")).addDropdown((dropdown) => { for (const order2 in SortOrder) { if (order2.length > 1) { dropdown.addOption(order2, t("sort_" + order2.toLowerCase())); } } dropdown.setValue(this.sortOrder).onChange((value) => __async(this, null, function* () { this.sortOrder = value; })); }); sorting.controlEl.addClass("rss-setting-input"); const foldersDiv = contentEl.createDiv("folders"); foldersDiv.createEl("h2", { text: t("folders") }); foldersDiv.createEl("p", { text: t("filter_folder_help") }); for (const folder in this.filterFolders) { new import_obsidian17.Setting(foldersDiv).addSearch((search) => __async(this, null, function* () { new ArraySuggest(this.app, search.inputEl, get_store_value(folderStore)); search.setValue(this.filterFolders[folder]).onChange((value) => __async(this, null, function* () { this.removeValidationError(search); this.filterFolders = this.filterFolders.filter((e) => e !== this.filterFolders[folder]); this.filterFolders.push(value); })); })).addExtraButton((button) => { button.setTooltip(t("delete")).setIcon("trash").onClick(() => { this.filterFolders = this.filterFolders.filter((e) => e !== this.filterFolders[folder]); this.display(); }); }); } let folderValue = ""; const newFolder = new import_obsidian17.Setting(foldersDiv).addSearch((search) => __async(this, null, function* () { new ArraySuggest(this.app, search.inputEl, get_store_value(folderStore)); search.onChange((value) => __async(this, null, function* () { folderValue = value; })); })).addExtraButton((button) => { button.setTooltip(t("add")).setIcon("plus").onClick(() => { this.filterFolders.push(folderValue); this.display(); }); }); newFolder.controlEl.addClass("rss-setting-input"); foldersDiv.createEl("p", { text: t("filter_folder_ignore_help") }); for (const folder in this.ignoreFolders) { new import_obsidian17.Setting(foldersDiv).addSearch((search) => __async(this, null, function* () { new ArraySuggest(this.app, search.inputEl, get_store_value(folderStore)); search.setValue(this.ignoreFolders[folder]).onChange((value) => __async(this, null, function* () { this.removeValidationError(search); this.ignoreFolders = this.ignoreFolders.filter((e) => e !== this.ignoreFolders[folder]); this.ignoreFolders.push(value); })); })).addExtraButton((button) => { button.setTooltip(t("delete")).setIcon("trash").onClick(() => { this.ignoreFolders = this.ignoreFolders.filter((e) => e !== this.ignoreFolders[folder]); this.display(); }); }); } let folderIgnoreValue = ""; const newIgnoreFolder = new import_obsidian17.Setting(foldersDiv).addSearch((search) => __async(this, null, function* () { new ArraySuggest(this.app, search.inputEl, get_store_value(folderStore)); search.onChange((value) => __async(this, null, function* () { folderIgnoreValue = value; })); })).addExtraButton((button) => { button.setTooltip(t("add")).setIcon("plus").onClick(() => { this.ignoreFolders.push(folderIgnoreValue); this.display(); }); }); newIgnoreFolder.controlEl.addClass("rss-setting-input"); const feedsDiv = contentEl.createDiv("feeds"); feedsDiv.createEl("h2", { text: t("feeds") }); feedsDiv.createEl("p", { text: t("filter_feed_help") }); const feeds = this.plugin.settings.feeds.filter((feed) => { if (this.filterFolders.length === 0) return true; return this.filterFolders.contains(feed.folder); }).map((feed) => feed.name); for (const feed in this.filterFeeds) { new import_obsidian17.Setting(feedsDiv).addText((text2) => { text2.setDisabled(true).setValue(this.filterFeeds[feed]); }).addExtraButton((button) => { button.setTooltip(t("delete")).setIcon("trash").onClick(() => { this.filterFeeds = this.filterFeeds.filter((e) => e !== this.filterFeeds[feed]); this.display(); }); }); } let feedValue = ""; const newFeed = new import_obsidian17.Setting(feedsDiv).addSearch((search) => __async(this, null, function* () { new ArraySuggest(this.app, search.inputEl, new Set(feeds)); search.onChange((value) => __async(this, null, function* () { const feeds2 = this.plugin.settings.feeds.filter((feed) => feed.name === feedIgnoreValue).length; if (feeds2 !== 1) { this.setValidationError(search, t("no_feed_with_name")); return; } feedValue = value; })); })).addExtraButton((button) => { button.setTooltip(t("add")).setIcon("plus").onClick(() => { const feeds2 = this.plugin.settings.feeds.filter((feed) => feed.name === feedIgnoreValue).length; if (feeds2 !== 1) return; this.filterFeeds.push(feedValue); this.display(); }); }); newFeed.controlEl.addClass("rss-setting-input"); feedsDiv.createEl("p", { text: t("filter_feed_ignore_help") }); for (const feed in this.ignoreFeeds) { new import_obsidian17.Setting(feedsDiv).addText((text2) => { text2.setDisabled(true).setValue(this.ignoreFeeds[feed]); }).addExtraButton((button) => { button.setTooltip(t("delete")).setIcon("trash").onClick(() => { this.ignoreFeeds = this.ignoreFeeds.filter((e) => e !== this.ignoreFeeds[feed]); this.display(); }); }); } let feedIgnoreValue = ""; const newIgnoreFeed = new import_obsidian17.Setting(feedsDiv).addSearch((search) => __async(this, null, function* () { new ArraySuggest(this.app, search.inputEl, new Set(feeds)); search.onChange((value) => __async(this, null, function* () { const feeds2 = this.plugin.settings.feeds.filter((feed) => feed.name === feedIgnoreValue).length; if (feeds2 !== 1) { this.setValidationError(search, t("no_feed_with_name")); return; } feedIgnoreValue = value; })); })).addExtraButton((button) => { button.setTooltip(t("add")).setIcon("plus").onClick(() => { const feeds2 = this.plugin.settings.feeds.filter((feed) => feed.name === feedIgnoreValue).length; if (feeds2 !== 1) return; this.ignoreFeeds.push(feedIgnoreValue); this.display(); }); }); newIgnoreFeed.controlEl.addClass("rss-setting-input"); const tagDiv = contentEl.createDiv("tags"); tagDiv.createEl("h2", { text: t("tags") }); tagDiv.createEl("p", { text: t("filter_tags_help") }); for (const tag in this.filterTags) { new import_obsidian17.Setting(tagDiv).addText((text2) => { text2.setDisabled(true).setValue(this.filterTags[tag]); }).addExtraButton((button) => { button.setTooltip(t("delete")).setIcon("trash").onClick(() => { this.filterTags = this.filterTags.filter((e) => e !== this.filterTags[tag]); this.display(); }); }); } let tagValue = ""; let tagComponent; const newTag = new import_obsidian17.Setting(tagDiv).addSearch((search) => __async(this, null, function* () { tagComponent = search; new ArraySuggest(this.app, search.inputEl, get_store_value(tagsStore)); search.onChange((value) => __async(this, null, function* () { if (!value.match(TAG_REGEX) || value.match(NUMBER_REGEX) || value.contains(" ") || value.contains("#")) { this.setValidationError(search, t("invalid_tag")); return; } tagValue = value; })); })).addExtraButton((button) => { button.setTooltip(t("add")).setIcon("plus").onClick(() => { if (!tagValue.match(TAG_REGEX) || tagValue.match(NUMBER_REGEX) || tagValue.contains(" ") || tagValue.contains("#")) { this.setValidationError(tagComponent, t("invalid_tag")); return; } this.filterTags.push(tagValue); this.display(); }); }); newTag.controlEl.addClass("rss-setting-input"); tagDiv.createEl("p", { text: t("filter_tags_ignore_help") }); for (const tag in this.ignoreTags) { new import_obsidian17.Setting(tagDiv).addSearch((search) => __async(this, null, function* () { new ArraySuggest(this.app, search.inputEl, get_store_value(tagsStore)); search.setValue(this.ignoreTags[tag]).onChange((value) => __async(this, null, function* () { this.removeValidationError(search); if (!value.match(TAG_REGEX) || value.match(NUMBER_REGEX) || value.contains(" ") || value.contains("#")) { this.setValidationError(search, t("invalid_tag")); return; } this.ignoreTags = this.ignoreTags.filter((e) => e !== this.ignoreTags[tag]); this.ignoreTags.push(value); })); })).addExtraButton((button) => { button.setTooltip(t("delete")).setIcon("trash").onClick(() => { this.ignoreTags = this.ignoreTags.filter((e) => e !== this.ignoreTags[tag]); this.display(); }); }); } let ignoreTagValue = ""; let ignoreTagComponent; const newTagIgnore = new import_obsidian17.Setting(tagDiv).addSearch((search) => __async(this, null, function* () { ignoreTagComponent = search; new ArraySuggest(this.app, search.inputEl, get_store_value(tagsStore)); search.onChange((value) => __async(this, null, function* () { if (!value.match(TAG_REGEX) || value.match(NUMBER_REGEX) || value.contains(" ") || value.contains("#")) { this.setValidationError(search, t("invalid_tag")); return; } ignoreTagValue = value; })); })).addExtraButton((button) => { button.setTooltip(t("add")).setIcon("plus").onClick(() => { if (!ignoreTagValue.match(TAG_REGEX) || ignoreTagValue.match(NUMBER_REGEX) || ignoreTagValue.contains(" ") || ignoreTagValue.contains("#")) { this.setValidationError(ignoreTagComponent, t("invalid_tag")); return; } this.ignoreTags.push(ignoreTagValue); this.display(); }); }); newTagIgnore.controlEl.addClass("rss-setting-input"); const footerEl = contentEl.createDiv(); const footerButtons = new import_obsidian17.Setting(footerEl); footerButtons.addButton((b) => { b.setTooltip(t("save")).setIcon("checkmark").onClick(() => __async(this, null, function* () { let error = false; if (!nameText.getValue().length) { this.setValidationError(nameText, t("invalid_name")); error = true; } if (error) { new import_obsidian17.Notice(t("fix_errors")); return; } this.saved = true; this.close(); })); return b; }); footerButtons.addExtraButton((b) => { b.setIcon("cross").setTooltip(t("cancel")).onClick(() => { this.saved = false; this.close(); }); return b; }); }); } onOpen() { return __async(this, null, function* () { yield this.display(); }); } }; // src/main.ts var import_ts_md53 = __toModule(require_md5()); // src/settings/SettingsTab.ts var import_obsidian26 = __toModule(require("obsidian")); // src/settings/FolderSuggestor.ts var import_obsidian18 = __toModule(require("obsidian")); var FolderSuggest = class extends TextInputSuggest { getSuggestions(inputStr) { const abstractFiles = this.app.vault.getAllLoadedFiles(); const folders = []; const lowerCaseInputStr = inputStr.toLowerCase(); abstractFiles.forEach((folder) => { if (folder instanceof import_obsidian18.TFolder && folder.path.toLowerCase().contains(lowerCaseInputStr)) { folders.push(folder); } }); return folders; } renderSuggestion(file, el) { el.setText(file.path); } selectSuggestion(file) { this.inputEl.value = file.path; this.inputEl.trigger("input"); this.close(); } }; // src/settings/FeedSettings.ts var import_lodash4 = __toModule(require_lodash5()); var import_lodash5 = __toModule(require_lodash()); var import_obsidian23 = __toModule(require("obsidian")); // src/modals/FeedModal.ts var import_obsidian19 = __toModule(require("obsidian")); // src/view/FeedFolderSuggest.ts var FeedFolderSuggest = class extends TextInputSuggest { getSuggestions(inputStr) { const folders = get_store_value(folderStore); const lowerCaseInputStr = inputStr.toLowerCase(); return [...folders].filter((folder) => folder.contains(lowerCaseInputStr)); } renderSuggestion(folder, el) { el.setText(folder); } selectSuggestion(folder) { this.inputEl.value = folder; this.inputEl.trigger("input"); this.close(); } }; // src/modals/FeedModal.ts var FeedModal = class extends BaseModal { constructor(plugin, feed) { super(plugin.app); this.saved = false; if (feed) { this.name = feed.name; this.url = feed.url; this.folder = feed.folder; } } display() { return __async(this, null, function* () { const { contentEl } = this; contentEl.empty(); let nameText; const name = new import_obsidian19.Setting(contentEl).setName(t("name")).setDesc(t("name_help")).addText((text2) => { nameText = text2; text2.setValue(this.name).onChange((value) => { this.removeValidationError(text2); this.name = value; }); }); name.controlEl.addClass("rss-setting-input"); let urlText; const url = new import_obsidian19.Setting(contentEl).setName("URL").setDesc(t("url_help")).addText((text2) => { urlText = text2; text2.setValue(this.url).onChange((value) => __async(this, null, function* () { this.removeValidationError(text2); this.url = value; })); }); url.controlEl.addClass("rss-setting-input"); new import_obsidian19.Setting(contentEl).setName(t("folder")).setDesc(t("folder_help")).addSearch((search) => __async(this, null, function* () { new FeedFolderSuggest(this.app, search.inputEl); search.setValue(this.folder).setPlaceholder(t("no_folder")).onChange((value) => __async(this, null, function* () { this.folder = value; })); })); const footerEl = contentEl.createDiv(); const footerButtons = new import_obsidian19.Setting(footerEl); footerButtons.addButton((b) => { b.setTooltip(t("save")).setIcon("checkmark").onClick(() => __async(this, null, function* () { let error = false; if (!nameText.getValue().length) { this.setValidationError(nameText, t("invalid_name")); error = true; } if (!urlText.getValue().length) { this.setValidationError(urlText, t("invalid_url")); error = true; } if (!isValidHttpUrl(urlText.getValue())) { this.setValidationError(urlText, t("invalid_url")); error = true; } else { const items = yield getFeedItems({ name: "test", url: urlText.getValue(), folder: "" }); if (items.items.length == 0) { this.setValidationError(urlText, t("invalid_feed")); error = true; } } if (error) { new import_obsidian19.Notice(t("fix_errors")); return; } this.saved = true; this.close(); })); return b; }); footerButtons.addExtraButton((b) => { b.setIcon("cross").setTooltip(t("cancel")).onClick(() => { this.saved = false; this.close(); }); return b; }); }); } onOpen() { return __async(this, null, function* () { yield this.display(); }); } }; // src/modals/ImportModal.ts var import_obsidian20 = __toModule(require("obsidian")); // src/parser/opmlParser.ts function loadFeedsFromString(importData, defaultFolder) { return __async(this, null, function* () { const rawData = new window.DOMParser().parseFromString(importData, "text/xml"); const feeds = []; const outlines = rawData.getElementsByTagName("outline"); for (let i = 0, max2 = outlines.length; i < max2; i++) { const current = outlines[i]; if (!current.hasChildNodes()) { const title = current.getAttribute("title"); const xmlUrl = current.getAttribute("xmlUrl"); if (current.parentElement.hasAttribute("title")) { feeds.push({ name: title, url: xmlUrl, folder: defaultFolder + (defaultFolder ? "/" : "") + current.parentElement.getAttribute("title") }); } else { feeds.push({ name: title, url: xmlUrl, folder: defaultFolder + "" }); } } } return feeds; }); } // src/modals/ImportModal.ts var ImportModal = class extends import_obsidian20.Modal { constructor(plugin) { super(plugin.app); this.importData = ""; this.defaultFolder = ""; this.plugin = plugin; } onOpen() { return __async(this, null, function* () { const setting = new import_obsidian20.Setting(this.contentEl).setName(t("choose_file")).setDesc(t("choose_file_help")); const input = setting.controlEl.createEl("input", { attr: { type: "file", accept: ".xml,.opml" } }); input.onchange = () => __async(this, null, function* () { const { files } = input; if (!files.length) return; for (const id in files) { const file = files[id]; const reader = new FileReader(); reader.onload = () => { this.importData = reader.result; }; reader.readAsText(file); } }); new import_obsidian20.Setting(this.contentEl).setName(t("base_folder")).addSearch((search) => { new FeedFolderSuggest(this.app, search.inputEl); search.setValue(this.defaultFolder).onChange((value) => { this.defaultFolder = value; }); }); new import_obsidian20.Setting(this.contentEl).addButton((button) => { button.setIcon("import-glyph").setTooltip(t("import")).onClick(() => __async(this, null, function* () { if (this.importData) { const feeds = yield loadFeedsFromString(this.importData, this.defaultFolder); yield this.plugin.writeFeeds(() => this.plugin.settings.feeds.concat(feeds)); new import_obsidian20.Notice(t("imported_x_feeds", String(feeds.length))); this.close(); } else { new import_obsidian20.Notice(t("fix_errors")); } })); }).addExtraButton((button) => { button.setIcon("cross").setTooltip(t("cancel")).onClick(() => { this.close(); }); }); }); } }; // src/settings/FeedSettings.ts var import_ts_md52 = __toModule(require_md5()); // src/modals/CleanupModal.ts var import_obsidian21 = __toModule(require("obsidian")); var import_lodash = __toModule(require_lodash5()); var import_lodash2 = __toModule(require_lodash()); var CleanupModal = class extends BaseModal { constructor(plugin) { super(plugin.app); this.tag = ""; this.feed = "wallabag.xml-option-id"; this.plugin = plugin; } onOpen() { return __async(this, null, function* () { const { contentEl } = this; contentEl.empty(); contentEl.createEl("h1", { text: t("cleanup") }); contentEl.createEl("p", { text: t("cleanup_help") }); contentEl.createEl("p", { text: t("cleanup_help2") }); new import_obsidian21.Setting(contentEl).setName(t("unread")).addToggle((toggle) => { toggle.onChange((value) => { this.unread = value; }); }); new import_obsidian21.Setting(contentEl).setName(t("read")).addToggle((toggle) => { toggle.onChange((value) => { this.read = value; }); }); new import_obsidian21.Setting(contentEl).setName(t("favorite")).addToggle((toggle) => { toggle.onChange((value) => { this.favorite = value; }); }); new import_obsidian21.Setting(contentEl).setName(t("tag")).addSearch((search) => { const tags = []; for (const feed of this.plugin.settings.items) { for (const item of feed.items) { if (item !== void 0) tags.push(...item.tags); } } new ArraySuggest(this.app, search.inputEl, new Set(tags)); search.onChange((value) => __async(this, null, function* () { this.tag = value; })); }); let older_than_setting; new import_obsidian21.Setting(contentEl).setName(t("older_than")).setDesc(t("older_than_help")).addText((text2) => { older_than_setting = text2; text2.setPlaceholder("5").onChange((value) => { this.removeValidationError(text2); if (Number(value)) { this.older_than = Number(value); } }); }).controlEl.addClass("rss-setting-input"); older_than_setting.inputEl.setAttr("onkeypress", "return event.charCode >= 48 && event.charCode <= 57"); new import_obsidian21.Setting(contentEl).setName(t("from_feed")).addDropdown((dropdown) => { dropdown.addOption("wallabag.xml-option-id", t("all")); const sorted = (0, import_lodash.default)((0, import_lodash2.default)(this.plugin.settings.feeds, "folder"), function(o) { return o[0].folder; }); for (const [, feeds] of Object.entries(sorted)) { for (const id in feeds) { const feed = feeds[id]; dropdown.addOption(feed.folder + "-" + feed.name, feed.folder + " - " + feed.name); } dropdown.setValue(this.feed); } dropdown.onChange((value) => { this.feed = value; }); }); const details = contentEl.createEl("details"); const summary = details.createEl("summary"); summary.setText(t("advanced")); const advanced = details.createDiv("advanced"); new import_obsidian21.Setting(advanced).setName(t("remove_wrong_feed")).setDesc(t("remove_wrong_feed_help")).addToggle((toggle) => { toggle.onChange((value) => { this.wrong_feed = value; }); }); new import_obsidian21.Setting(contentEl).addButton((button) => { button.setIcon("feather-trash").setTooltip(t("perform_cleanup")).onClick(() => __async(this, null, function* () { let items = this.plugin.settings.items; let date = (0, import_obsidian21.moment)(); if (this.older_than) { date = (0, import_obsidian21.moment)().subtract(this.older_than, "days"); } let count = 0; const itemsCount = items.reduce((count2, current) => count2 + current.items.length, 0); const notice = new import_obsidian21.Notice(t("scanning_items", "0", itemsCount.toString())); for (const feed of items) { for (const item of feed.items) { if (item !== void 0) { let toRemove = 0; if (item.pubDate === void 0 || (0, import_obsidian21.moment)(item.pubDate).isBefore(date)) { if (this.feed === "wallabag.xml-option-id" || this.feed === item.folder + "-" + item.feed) { if (this.read && item.read || !this.read && !item.read || this.read && !item.read) { toRemove++; } if (this.unread && !item.read || !this.unread && item.read) { toRemove++; } if (this.favorite && item.favorite || !this.favorite && !item.favorite || this.favorite && !item.favorite) { toRemove++; } if (this.tag === "" || item.tags.includes(this.tag)) { toRemove++; } } } if (toRemove == 4) { feed.items = feed.items.filter((value) => value.hash !== item.hash); } } count++; notice.setMessage(t("scanning_items", count.toString(), itemsCount.toString())); } } if (this.wrong_feed) { console.log("removing invalid feeds"); const feeds = this.plugin.settings.feeds.map((feed) => { return feed.name; }); items = items.filter((item) => { return feeds.includes(item.name); }); const folders = get_store_value(folderStore); items = items.filter((item) => { return folders.has(item.folder); }); items.forEach((feed) => { feed.items = feed.items.filter((item) => { return feed.name === item.feed && feed.folder === item.folder; }); }); } yield this.plugin.writeFeedContent(() => { return items; }); this.close(); })); }).addExtraButton((button) => { button.setIcon("cross").setTooltip(t("cancel")).onClick(() => { this.close(); }); }); }); } }; // src/parser/opmlExport.ts var import_lodash3 = __toModule(require_lodash()); function generateOPML(feeds) { const doc = document.implementation.createDocument("", "opml"); const head = doc.createElement("head"); const title = doc.createElement("title"); head.appendChild(title); title.setText("Obsidian RSS Export"); doc.documentElement.appendChild(head); const body = doc.createElement("body"); doc.documentElement.appendChild(body); const sorted = (0, import_lodash3.default)(feeds, "folder"); for (const id of Object.keys(sorted)) { const folder = sorted[id]; const outline = doc.createElement("outline"); body.appendChild(outline); outline.setAttribute("title", folder[0].folder); for (const feed of folder) { const exportFeed = doc.createElement("outline"); exportFeed.setAttribute("title", feed.name); exportFeed.setAttribute("xmlUrl", feed.url); outline.append(exportFeed); } } return new XMLSerializer().serializeToString(doc.documentElement); } // src/modals/MessageModal.ts var import_obsidian22 = __toModule(require("obsidian")); var MessageModal = class extends import_obsidian22.Modal { constructor(plugin, message) { super(plugin.app); this.message = message; } onOpen() { this.display(); } display() { const { contentEl } = this; contentEl.empty(); contentEl.createEl("h1", { text: this.message }); contentEl.createEl("p", { text: t("do_not_close") }); } setMessage(message) { this.message = message; this.display(); } }; // src/settings/FeedSettings.ts function displayFeedSettings(plugin, container) { container.empty(); container.createEl("h3", { text: t("feeds") }); new import_obsidian23.Setting(container).setName(t("add_new")).setDesc(t("add_new_feed")).addButton((button) => { return button.setTooltip(t("add_new_feed")).setIcon("plus").onClick(() => __async(this, null, function* () { const modal = new FeedModal(plugin); modal.onClose = () => __async(this, null, function* () { if (modal.saved) { if (plugin.settings.feeds.some((item) => item.url === modal.url)) { new import_obsidian23.Notice(t("feed_already_configured")); return; } yield plugin.writeFeeds(() => plugin.settings.feeds.concat({ name: modal.name, url: modal.url, folder: modal.folder ? modal.folder : "" })); displayFeedSettings(plugin, container); } }); modal.open(); })); }).addExtraButton((button) => __async(this, null, function* () { button.setTooltip(t("import_opml")).setIcon("download").onClick(() => { const modal = new ImportModal(plugin); modal.onClose = () => { displayFeedSettings(plugin, container); }; modal.open(); }); })).addExtraButton((button) => __async(this, null, function* () { button.setTooltip(t("export_opml")).setIcon("upload").onClick(() => { if (plugin.app.vault.adapter.exists("rss-feeds-export.opml")) { plugin.app.vault.adapter.remove("rss-feeds-export.opml"); } plugin.app.vault.create("rss-feeds-export.opml", generateOPML(plugin.settings.feeds)); new import_obsidian23.Notice(t("created_export")); }); })).addExtraButton((button) => __async(this, null, function* () { button.setTooltip(t("perform_cleanup")).setIcon("lucide-trash").onClick(() => { new CleanupModal(plugin).open(); }); })); const feedsDiv = container.createDiv("feeds"); displayFeedList(plugin, feedsDiv); } function displayFeedList(plugin, container, disabled = false) { container.empty(); const sorted = (0, import_lodash4.default)((0, import_lodash5.default)(plugin.settings.feeds, "folder"), function(o) { return o[0].folder; }); for (const [, feeds] of Object.entries(sorted)) { for (const id in feeds) { const feed = feeds[id]; const setting = new import_obsidian23.Setting(container); setting.setName((feed.folder ? feed.folder : t("no_folder")) + " - " + feed.name); setting.setDesc(feed.url); setting.addExtraButton((b) => { b.setDisabled(disabled).setIcon("edit").setTooltip(t("edit")).onClick(() => { const modal = new FeedModal(plugin, feed); const oldFeed = feed; modal.onClose = () => __async(this, null, function* () { if (modal.saved) { const feeds2 = plugin.settings.feeds; feeds2.remove(oldFeed); feeds2.push({ name: modal.name, url: modal.url, folder: modal.folder ? modal.folder : "" }); let items = plugin.settings.items; items = items.filter((content) => { return content.name === oldFeed.name && content.folder === oldFeed.folder; }); items.forEach((content) => { content.name = modal.name; content.folder = modal.folder; content.hash = new import_ts_md52.Md5().appendStr(modal.name).appendStr(modal.folder).end(); content.items.forEach((item) => { item.feed = modal.name; item.folder = modal.folder ? modal.folder : ""; item.hash = new import_ts_md52.Md5().appendStr(item.title).appendStr(item.folder).appendStr(item.link).end(); }); }); yield plugin.writeFeedContent(() => { return items; }); yield plugin.writeFeeds(() => feeds2); displayFeedList(plugin, container); } }); modal.open(); }); }).addExtraButton((button) => { button.setDisabled(disabled).setTooltip(t("from_archive")).setIcon("archive").onClick(() => __async(this, null, function* () { const modal = new MessageModal(plugin, t("reading_archive")); modal.open(); displayFeedList(plugin, container, true); const timemap = yield (0, import_obsidian23.request)({ method: "GET", url: "https://web.archive.org/web/timemap/link/" + feed.url }); const items = []; const lines = timemap.split("\n"); for (const line of lines) { if (line.contains("memento")) { const link = line.slice(1, line.indexOf(">")); const first = link.substring(0, 41); const second = link.substring(42); items.push(yield getFeedItems({ name: feed.name, url: first + "id_" + second, folder: feed.folder })); } } modal.setMessage(t("scanning_duplicates")); for (const feed2 of plugin.settings.items) { for (const content of items) { if (feed2.folder === content.folder && feed2.name === content.name) { const sortedItems = content.items.sort((a, b) => { return (0, import_obsidian23.moment)(b.pubDate).diff((0, import_obsidian23.moment)(a.pubDate)); }); for (const item of sortedItems) { const filter = feed2.items.filter((filterItem) => { return filterItem.folder === item.folder && filterItem.title === item.title; }); if (filter.length === 0) { feed2.items.push(item); } } } } } yield plugin.writeFeedContent(() => { return plugin.settings.items; }); displayFeedList(plugin, container, false); modal.setMessage(t("refreshed_feeds")); modal.close(); })); }).addExtraButton((b) => { b.setDisabled(disabled).setIcon("lucide-trash").setTooltip(t("delete")).onClick(() => __async(this, null, function* () { const feeds2 = plugin.settings.feeds; feeds2.remove(feed); yield plugin.writeFeeds(() => feeds2); let content = plugin.settings.items; content = content.filter((content2) => { return content2.name !== feed.name; }); yield plugin.writeFeedContent(() => content); displayFeedList(plugin, container); })); }); } } } // src/settings/HotkeySettings.ts var import_obsidian24 = __toModule(require("obsidian")); function displayHotkeys(plugin, containerEl) { containerEl.empty(); containerEl.createEl("h2", { text: t("hotkeys") }); containerEl.createEl("h3", { text: t("hotkeys_reading") }); new import_obsidian24.Setting(containerEl).setName(t("create_note")).addButton((button) => { button.setButtonText(plugin.settings.hotkeys.create).setTooltip(t("customize_hotkey")).onClick(() => { button.setButtonText(t("press_key")); const listener = (e) => __async(this, null, function* () { window.removeEventListener("keyup", listener); yield plugin.writeSettings(() => ({ hotkeys: __spreadProps(__spreadValues({}, plugin.settings.hotkeys), { create: e.key }) })); displayHotkeys(plugin, containerEl); }); window.addEventListener("keyup", listener); }); }); new import_obsidian24.Setting(containerEl).setName(t("paste_to_note")).addButton((button) => { button.setButtonText(plugin.settings.hotkeys.paste).setTooltip(t("customize_hotkey")).onClick(() => { button.setButtonText(t("press_key")); const listener = (e) => __async(this, null, function* () { window.removeEventListener("keyup", listener); yield plugin.writeSettings(() => ({ hotkeys: __spreadProps(__spreadValues({}, plugin.settings.hotkeys), { paste: e.key }) })); displayHotkeys(plugin, containerEl); }); window.addEventListener("keyup", listener); }); }); new import_obsidian24.Setting(containerEl).setName(t("open_browser")).addButton((button) => { button.setButtonText(plugin.settings.hotkeys.open).setTooltip(t("customize_hotkey")).onClick(() => { button.setButtonText(t("press_key")); const listener = (e) => __async(this, null, function* () { window.removeEventListener("keyup", listener); yield plugin.writeSettings(() => ({ hotkeys: __spreadProps(__spreadValues({}, plugin.settings.hotkeys), { open: e.key }) })); displayHotkeys(plugin, containerEl); }); window.addEventListener("keyup", listener); }); }); new import_obsidian24.Setting(containerEl).setName(t("copy_to_clipboard")).addButton((button) => { button.setButtonText(plugin.settings.hotkeys.copy).setTooltip(t("customize_hotkey")).onClick(() => { button.setButtonText(t("press_key")); const listener = (e) => __async(this, null, function* () { window.removeEventListener("keyup", listener); yield plugin.writeSettings(() => ({ hotkeys: __spreadProps(__spreadValues({}, plugin.settings.hotkeys), { copy: e.key }) })); displayHotkeys(plugin, containerEl); }); window.addEventListener("keyup", listener); }); }); new import_obsidian24.Setting(containerEl).setName(t("mark_as_favorite_remove")).addButton((button) => { button.setButtonText(plugin.settings.hotkeys.favorite).setTooltip(t("customize_hotkey")).onClick(() => { button.setButtonText(t("press_key")); const listener = (e) => __async(this, null, function* () { window.removeEventListener("keyup", listener); yield plugin.writeSettings(() => ({ hotkeys: __spreadProps(__spreadValues({}, plugin.settings.hotkeys), { favorite: e.key }) })); displayHotkeys(plugin, containerEl); }); window.addEventListener("keyup", listener); }); }); new import_obsidian24.Setting(containerEl).setName(t("mark_as_read_unread")).addButton((button) => { button.setButtonText(plugin.settings.hotkeys.read).setTooltip(t("customize_hotkey")).onClick(() => { button.setButtonText(t("press_key")); const listener = (e) => __async(this, null, function* () { window.removeEventListener("keyup", listener); yield plugin.writeSettings(() => ({ hotkeys: __spreadProps(__spreadValues({}, this.plugin.settings.hotkeys), { read: e.key }) })); displayHotkeys(plugin, containerEl); }); window.addEventListener("keyup", listener); }); }); new import_obsidian24.Setting(containerEl).setName(t("edit_tags")).addButton((button) => { button.setButtonText(plugin.settings.hotkeys.tags).setTooltip(t("customize_hotkey")).onClick(() => { button.setButtonText(t("press_key")); const listener = (e) => __async(this, null, function* () { window.removeEventListener("keyup", listener); yield plugin.writeSettings(() => ({ hotkeys: __spreadProps(__spreadValues({}, plugin.settings.hotkeys), { tags: e.key }) })); displayHotkeys(plugin, containerEl); }); window.addEventListener("keyup", listener); }); }); new import_obsidian24.Setting(containerEl).setName(t("next")).addButton((button) => { button.setButtonText(plugin.settings.hotkeys.next).setTooltip(t("customize_hotkey")).onClick(() => { button.setButtonText(t("press_key")); const listener = (e) => __async(this, null, function* () { window.removeEventListener("keyup", listener); yield plugin.writeSettings(() => ({ hotkeys: __spreadProps(__spreadValues({}, plugin.settings.hotkeys), { next: e.key }) })); displayHotkeys(plugin, containerEl); }); window.addEventListener("keyup", listener); }); }); new import_obsidian24.Setting(containerEl).setName(t("previous")).addButton((button) => { button.setButtonText(plugin.settings.hotkeys.previous).setTooltip(t("customize_hotkey")).onClick(() => { button.setButtonText(t("press_key")); const listener = (e) => __async(this, null, function* () { window.removeEventListener("keyup", listener); yield plugin.writeSettings(() => ({ hotkeys: __spreadProps(__spreadValues({}, plugin.settings.hotkeys), { previous: e.key }) })); displayHotkeys(plugin, containerEl); }); window.addEventListener("keyup", listener); }); }); if (plugin.app.plugins.plugins["obsidian-tts"]) { new import_obsidian24.Setting(containerEl).setName(t("read_article_tts")).setTooltip(t("customize_hotkey")).addButton((button) => { button.setButtonText(plugin.settings.hotkeys.tts).onClick(() => { button.setButtonText(t("press_key")); const listener = (e) => __async(this, null, function* () { window.removeEventListener("keyup", listener); yield plugin.writeSettings(() => ({ hotkeys: __spreadProps(__spreadValues({}, plugin.settings.hotkeys), { tts: e.key }) })); displayHotkeys(plugin, containerEl); }); window.addEventListener("keyup", listener); }); }); } } // src/settings/FilterSettings.ts var import_obsidian25 = __toModule(require("obsidian")); function displayFilterSettings(plugin, containerEl) { containerEl.empty(); containerEl.createEl("hr", { attr: { style: "border-top: 5px solid var(--background-modifier-border);" } }); containerEl.createEl("h3", { text: t("filtered_folders") }); new import_obsidian25.Setting(containerEl).setName(t("add_new")).setDesc(t("add_new_filter")).addButton((button) => { return button.setTooltip(t("add_new_filter")).setIcon("plus").onClick(() => __async(this, null, function* () { const modal = new FilteredFolderModal(plugin); modal.onClose = () => __async(this, null, function* () { if (modal.saved) { if (plugin.settings.filtered.some((folder) => folder.name === modal.name)) { new import_obsidian25.Notice(t("filter_exists")); return; } yield plugin.writeFiltered(() => plugin.settings.filtered.concat({ name: modal.name, sortOrder: modal.sortOrder, filterFeeds: modal.filterFeeds, filterFolders: modal.filterFolders, filterTags: modal.filterTags, favorites: modal.favorites, ignoreFolders: modal.ignoreFolders, ignoreFeeds: modal.ignoreFeeds, ignoreTags: modal.ignoreTags, read: modal.read, unread: modal.unread })); displayFilterSettings(plugin, containerEl); } }); modal.open(); })); }); const filterContainer = containerEl.createDiv("filter-container"); const filtersDiv = filterContainer.createDiv("filters"); for (const id in plugin.settings.filtered.sort((a, b) => a.name.localeCompare(b.name))) { const filter = plugin.settings.filtered[id]; if (filter === void 0) { continue; } const setting = new import_obsidian25.Setting(filtersDiv); setting.setName(filter.name); const description = []; if (filter.read) description.push(t("read")); if (filter.unread) description.push(t("unread")); if (filter.favorites) description.push(t("favorites")); let message = ""; if (filter.filterFolders !== void 0 && filter.filterFolders.length > 0) { const folders = filter.filterFolders.join(","); message += "; " + t("from_folders") + folders; } if (filter.filterFeeds !== void 0 && filter.filterFeeds.length > 0) { const feeds = filter.filterFeeds.join(","); message += "; " + t("from_feeds") + feeds; } if (filter.filterTags !== void 0 && filter.filterTags.length > 0) { const tags = filter.filterTags.join(","); message += "; " + t("with_tags") + tags; } setting.setDesc(description.join(",") + message); setting.addExtraButton((b) => { b.setIcon("edit").setTooltip(t("edit")).onClick(() => { const modal = new FilteredFolderModal(plugin, filter); const oldFilter = filter; modal.onClose = () => __async(this, null, function* () { if (modal.saved) { const filters = plugin.settings.filtered; filters.remove(oldFilter); filters.push({ name: modal.name, sortOrder: modal.sortOrder, filterFeeds: modal.filterFeeds, filterFolders: modal.filterFolders, filterTags: modal.filterTags, ignoreFolders: modal.ignoreFolders, ignoreFeeds: modal.ignoreFeeds, ignoreTags: modal.ignoreTags, favorites: modal.favorites, read: modal.read, unread: modal.unread }); yield plugin.writeFiltered(() => filters); displayFilterSettings(plugin, containerEl); } }); modal.open(); }); }).addExtraButton((b) => { b.setIcon("lucide-trash").setTooltip(t("delete")).onClick(() => __async(this, null, function* () { const filters = plugin.settings.filtered; filters.remove(filter); yield plugin.writeFiltered(() => filters); displayFilterSettings(plugin, containerEl); })); }); } } // src/settings/SettingsTab.ts var RSSReaderSettingsTab = class extends import_obsidian26.PluginSettingTab { constructor(app, plugin) { super(app, plugin); this.plugin = plugin; } display() { const { containerEl } = this; containerEl.empty(); containerEl.createEl("h2", { text: t("RSS_Reader") + " " + t("settings") }); containerEl.createEl("h3", { text: t("file_creation") }); const templateDesc = new DocumentFragment(); templateDesc.createDiv().innerHTML = t("template_new_help") + "
" + t("available_variables") + `
{{title}} \u2192 ${t("article_title")}
{{link}} \u2192 ${t("article_link")}
{{author}} \u2192 ${t("article_author")}
{{published}} \u2192 ${t("article_published")}
{{created}} \u2192 ${t("note_created")}
{{description}} \u2192 ${t("article_description")}
{{content}} \u2192 ${t("article_content")}
{{folder}} \u2192 ${t("feed_folder")}
{{feed}} \u2192 ${t("feed_title")}
{{filename}} \u2192 ${t("filename")}
{{tags}} \u2192 ${t("article_tags")}
{{media}} \u2192 ${t("article_media")}
{{highlights}} \u2192 ${t("highlights")}`; new import_obsidian26.Setting(containerEl).setName(t("template_new")).setDesc(templateDesc).addTextArea((textArea) => { textArea.setValue(this.plugin.settings.template).setPlaceholder(DEFAULT_SETTINGS.template).onChange((value) => __async(this, null, function* () { yield this.plugin.writeSettings(() => ({ template: value })); })); textArea.inputEl.setAttr("rows", 15); textArea.inputEl.setAttr("cols", 50); }); const pasteTemplateDesc = new DocumentFragment(); pasteTemplateDesc.createDiv().innerHTML = t("template_new_help") + "
" + t("available_variables") + `
{{title}} \u2192 ${t("article_title")}
{{link}} \u2192 ${t("article_link")}
{{author}} \u2192 ${t("article_author")}
{{published}} \u2192 ${t("article_published")}
{{created}} \u2192 ${t("note_created")}
{{description}} \u2192 ${t("article_description")}
{{content}} \u2192 ${t("article_content")}
{{folder}} \u2192 ${t("feed_folder")}
{{feed}} \u2192 ${t("feed_title")}
{{tags}} \u2192 ${t("article_tags")}
{{media}} \u2192 ${t("article_media")}
{{highlights}} \u2192 ${t("highlights")}`; new import_obsidian26.Setting(containerEl).setName(t("template_paste")).setDesc(pasteTemplateDesc).addTextArea((textArea) => { textArea.setValue(this.plugin.settings.pasteTemplate).setPlaceholder(DEFAULT_SETTINGS.pasteTemplate).onChange((value) => __async(this, null, function* () { yield this.plugin.writeSettings(() => ({ pasteTemplate: value })); })); textArea.inputEl.setAttr("rows", 15); textArea.inputEl.setAttr("cols", 50); }); new import_obsidian26.Setting(containerEl).setName(t("file_location")).setDesc(t("file_location_help")).addDropdown((dropdown) => __async(this, null, function* () { dropdown.addOption("default", t("file_location_default")).addOption("custom", t("file_location_custom")).setValue(this.plugin.settings.saveLocation).onChange((value) => __async(this, null, function* () { yield this.plugin.writeSettings(() => ({ saveLocation: value })); this.display(); })); })); if (this.plugin.settings.saveLocation == "custom") { new import_obsidian26.Setting(containerEl).setName(t("file_location_folder")).setDesc(t("file_location_folder_help")).addSearch((search) => __async(this, null, function* () { new FolderSuggest(this.app, search.inputEl); search.setValue(this.plugin.settings.saveLocationFolder).setPlaceholder(DEFAULT_SETTINGS.saveLocationFolder).onChange((value) => __async(this, null, function* () { yield this.plugin.writeSettings(() => ({ saveLocationFolder: value })); })); })); } let dateFormatSampleEl; const dateFormat = new import_obsidian26.Setting(containerEl).setName(t("date_format")).addMomentFormat((format2) => { dateFormatSampleEl = format2.setDefaultFormat(DEFAULT_SETTINGS.dateFormat).setPlaceholder(DEFAULT_SETTINGS.dateFormat).setValue(this.plugin.settings.dateFormat).onChange((value) => __async(this, null, function* () { yield this.plugin.writeSettings(() => ({ dateFormat: value })); })); }); const referenceLink = dateFormat.descEl.createEl("a"); referenceLink.setAttr("href", "https://momentjs.com/docs/#/displaying/format/"); referenceLink.setText(t("syntax_reference")); const text2 = dateFormat.descEl.createDiv("text"); text2.setText(t("syntax_looks")); const sampleEl = text2.createSpan("sample"); dateFormatSampleEl.setSampleEl(sampleEl); dateFormat.addExtraButton((button) => { button.setIcon("reset").setTooltip(t("reset")).onClick(() => __async(this, null, function* () { yield this.plugin.writeSettings(() => ({ dateFormat: DEFAULT_SETTINGS.dateFormat })); this.display(); })); }); new import_obsidian26.Setting(containerEl).setName(t("ask_filename")).setDesc(t("ask_filename_help")).addToggle((toggle) => { toggle.setValue(this.plugin.settings.askForFilename).onChange((value) => __async(this, null, function* () { yield this.plugin.writeSettings(() => ({ askForFilename: value })); })); }); new import_obsidian26.Setting(containerEl).setName(t("default_filename")).setDesc(t("default_filename_help")).addText((text3) => { text3.setPlaceholder(DEFAULT_SETTINGS.defaultFilename).setValue(this.plugin.settings.defaultFilename).onChange((value) => __async(this, null, function* () { if (value.length > 0) { yield this.plugin.writeSettings(() => ({ defaultFilename: value })); } else { new import_obsidian26.Notice(t("fix_errors")); } })); }); containerEl.createEl("hr", { attr: { style: "border-top: 5px solid var(--background-modifier-border);" } }); containerEl.createEl("h3", { text: "Misc" }); const refresh = new import_obsidian26.Setting(containerEl).setName(t("refresh_time")).setDesc(t("refresh_time_help")).addText((text3) => { text3.setPlaceholder(String(DEFAULT_SETTINGS.updateTime)).setValue(String(this.plugin.settings.updateTime)).onChange((value) => __async(this, null, function* () { if (value.length === 0) { new import_obsidian26.Notice(t("specify_positive_number")); return; } if (Number(value) < 0) { new import_obsidian26.Notice(t("specify_positive_number")); return; } yield this.plugin.writeSettings(() => ({ updateTime: Number(value) })); })); text3.inputEl.setAttr("type", "number"); text3.inputEl.setAttr("min", "1"); text3.inputEl.setAttr("onkeypress", "return event.charCode >= 48 && event.charCode <= 57"); }); refresh.addExtraButton((button) => { button.setIcon("reset").setTooltip("restore default").onClick(() => __async(this, null, function* () { yield this.plugin.writeSettings(() => ({ updateTime: DEFAULT_SETTINGS.updateTime })); this.display(); })); }); new import_obsidian26.Setting(containerEl).setName(t("multi_device_usage")).setDesc(t("multi_device_usage_help")).addToggle((toggle) => { return toggle.setValue(this.plugin.settings.autoSync).onChange((value) => __async(this, null, function* () { yield this.plugin.writeSettings(() => ({ autoSync: value })); })); }); new import_obsidian26.Setting(containerEl).setName(t("display_style")).addDropdown((dropdown) => { return dropdown.addOption("list", t("list")).addOption("cards", t("cards")).setValue(this.plugin.settings.displayStyle).onChange((value) => __async(this, null, function* () { yield this.plugin.writeSettings(() => ({ displayStyle: value })); })); }); containerEl.createEl("h2", { text: t("content") }); const filterContainer = containerEl.createDiv("filter-container"); displayFilterSettings(this.plugin, filterContainer); const feedsContainer = containerEl.createDiv("feed-container"); displayFeedSettings(this.plugin, feedsContainer); containerEl.createEl("hr", { attr: { style: "border-top: 5px solid var(--background-modifier-border);" } }); const hotkeyContainer = containerEl.createDiv("hotkey-container"); displayHotkeys(this.plugin, hotkeyContainer); containerEl.createEl("hr", { attr: { style: "border-top: 5px solid var(--background-modifier-border);" } }); const details = containerEl.createEl("details"); const summary = details.createEl("summary"); summary.setText(t("advanced")); const advanced = details.createDiv("advanced"); advanced.createEl("h3", { text: t("customize_terms") }); advanced.createSpan({ text: "Change a few selected terms here. You can help translating the plugin " }); advanced.createEl("a", { text: "here", href: "https://github.com/joethei/obsidian-rss/tree/master/src/l10n" }); new import_obsidian26.Setting(advanced).setName(t("folders")).addText((text3) => { text3.setPlaceholder(t("folders")).setValue(this.plugin.settings.renamedText.folders).onChange((value) => __async(this, null, function* () { yield this.plugin.writeSettings(() => ({ renamedText: __spreadProps(__spreadValues({}, this.plugin.settings.renamedText), { folders: value }) })); })); }); new import_obsidian26.Setting(advanced).setName(t("filtered_folders")).addText((text3) => { text3.setPlaceholder(t("filtered_folders")).setValue(this.plugin.settings.renamedText.filtered_folders).onChange((value) => __async(this, null, function* () { yield this.plugin.writeSettings(() => ({ renamedText: __spreadProps(__spreadValues({}, this.plugin.settings.renamedText), { filtered_folders: value }) })); })); }); new import_obsidian26.Setting(advanced).setName(t("no_folder")).addText((text3) => { text3.setPlaceholder(t("no_folder")).setValue(this.plugin.settings.renamedText.no_folder).onChange((value) => __async(this, null, function* () { yield this.plugin.writeSettings(() => ({ renamedText: __spreadProps(__spreadValues({}, this.plugin.settings.renamedText), { no_folder: value }) })); })); }); advanced.createEl("hr", { attr: { style: "border-top: 5px solid var(--background-modifier-border);" } }); new import_obsidian26.Setting(advanced).setName(t("display_media")).addToggle((toggle) => { toggle.setValue(this.plugin.settings.displayMedia).onChange((value) => __async(this, null, function* () { yield this.plugin.writeSettings(() => ({ displayMedia: value })); })); }); } }; // src/modals/ArticleSuggestModal.ts var import_obsidian27 = __toModule(require("obsidian")); var ArticleSuggestModal = class extends import_obsidian27.SuggestModal { constructor(plugin, items) { super(plugin.app); this.plugin = plugin; this.items = items; } getItems() { return this.items; } onChooseSuggestion(item, _) { this.close(); new ItemModal(this.plugin, item, this.items, false).open(); } getSuggestions(query) { return this.items.filter((item) => { return item.title.toLowerCase().includes(query.toLowerCase()) || item.content.toLowerCase().includes(query.toLowerCase()); }); } renderSuggestion(item, el) { el.createEl("div", { text: item.title }); el.createEl("small", { text: (0, import_obsidian27.moment)(item.pubDate).format(this.plugin.settings.dateFormat) + " " + item.creator }); } }; // src/main.ts var RssReaderPlugin = class extends import_obsidian28.Plugin { onload() { return __async(this, null, function* () { console.log("loading plugin rss reader"); this.register(settingsStore.subscribe((value) => { this.settings = value; })); yield this.loadSettings(); this.addCommand({ id: "rss-open", name: t("open"), checkCallback: (checking) => { if (checking) { return this.app.workspace.getLeavesOfType(VIEW_ID).length === 0; } this.initLeaf(); } }); this.addCommand({ id: "rss-refresh", name: t("refresh_feeds"), callback: () => __async(this, null, function* () { yield this.updateFeeds(); }) }); this.addCommand({ id: "rss-cleanup", name: t("cleanup"), callback: () => __async(this, null, function* () { new CleanupModal(this).open(); }) }); this.addCommand({ id: "rss-open-feed", name: "Open Feed from URL", callback: () => __async(this, null, function* () { const input = new TextInputPrompt(this.app, "URL", "URL", "", "", t("open")); yield input.openAndGetValue((text2) => __async(this, null, function* () { const items = yield getFeedItems({ name: "", folder: "", url: text2.getValue() }); if (!items || items.items.length === 0) { input.setValidationError(text2, t("invalid_feed")); return; } input.close(); new ArticleSuggestModal(this, items.items).open(); })); }) }); this.registerView(VIEW_ID, (leaf) => new ViewLoader(leaf, this)); this.addSettingTab(new RSSReaderSettingsTab(this.app, this)); let interval; if (this.settings.updateTime !== 0) { interval = window.setInterval(() => __async(this, null, function* () { yield this.updateFeeds(); }), this.settings.updateTime * 60 * 1e3); this.registerInterval(interval); } if (this.settings.autoSync) { this.registerInterval(window.setInterval(() => __async(this, null, function* () { yield this.loadSettings(); }), 1e3 * 60)); } settingsStore.subscribe((settings) => { if (interval !== void 0) clearInterval(interval); if (settings.updateTime != 0) { interval = window.setInterval(() => __async(this, null, function* () { yield this.updateFeeds(); }), settings.updateTime * 60 * 1e3); this.registerInterval(interval); } this.settings = settings; this.saveSettings(); }); this.app.workspace.onLayoutReady(() => __async(this, null, function* () { yield this.migrateData(); yield this.initLeaf(); yield this.updateFeeds(); feedsStore.subscribe((feeds) => { const sorted = (0, import_lodash6.default)(feeds, "folder"); sortedFeedsStore.update(() => sorted); let items = []; for (const feed in Object.keys(feeds)) { const feedItems = feeds[feed].items; items = items.concat(feedItems); } const tags = []; for (const item of items) { if (item !== void 0) tags.push(...item.tags); } const fileTags = this.app.metadataCache.getTags(); for (const tag of Object.keys(fileTags)) { tags.push(tag.replace("#", "")); } tagsStore.update(() => new Set(tags.filter((tag) => tag.length > 0))); const folders = []; for (const item of items) { if (item !== void 0) folders.push(item.folder); } folderStore.update(() => new Set(folders.filter((folder) => folder !== void 0 && folder.length > 0))); this.filterItems(items); }); })); }); } filterItems(items) { const filtered = new Array(); for (const filter of this.settings.filtered) { const sortOrder = SortOrder[filter.sortOrder]; let filteredItems; if (filter.read && filter.unread) { filteredItems = items.filter((item) => { return item.read === filter.read || item.read !== filter.unread; }); } else if (filter.read) { filteredItems = items.filter((item) => { return item.read; }); } else if (filter.unread) { filteredItems = items.filter((item) => { return !item.read; }); } if (filter.favorites) { filteredItems = filteredItems.filter((item) => { return item.favorite === filter.favorites; }); } if (filter.filterFolders.length > 0) { filteredItems = filteredItems.filter((item) => { return filter.filterFolders.includes(item.folder); }); } if (filter.ignoreFolders.length > 0) { filteredItems = filteredItems.filter((item) => { return !filter.ignoreFolders.includes(item.folder); }); } if (filter.filterFeeds.length > 0) { filteredItems = filteredItems.filter((item) => { return filter.filterFeeds.includes(item.feed); }); } if (filter.ignoreFeeds.length > 0) { filteredItems = filteredItems.filter((item) => { return !filter.ignoreFeeds.includes(item.feed); }); } if (filter.filterTags.length > 0) { filteredItems = filteredItems.filter((item) => { for (const tag of filter.filterTags) { if (!item.tags.contains(tag)) return false; } return true; }); } if (filter.ignoreTags.length > 0) { filteredItems = filteredItems.filter((item) => { for (const tag of filter.ignoreTags) { if (item.tags.contains(tag)) return false; } return true; }); } const sortedItems = this.sortItems(filteredItems, sortOrder); filtered.push({ filter, items: { items: sortedItems } }); } filteredItemsStore.update(() => filtered); } sortItems(items, sortOrder) { if (!items) return items; if (sortOrder === SortOrder.ALPHABET_NORMAL) { return items.sort((a, b) => a.title.localeCompare(b.title)); } if (sortOrder === SortOrder.ALPHABET_INVERTED) { return items.sort((a, b) => b.title.localeCompare(a.title)); } if (sortOrder === SortOrder.DATE_NEWEST) { return items.sort((a, b) => window.moment(b.pubDate) - window.moment(a.pubDate)); } if (sortOrder === SortOrder.DATE_OLDEST) { return items.sort((a, b) => window.moment(a.pubDate) - window.moment(b.pubDate)); } return items; } updateFeeds() { return __async(this, null, function* () { console.log("updating feeds"); function mergeArrayById(array1, array2) { const mergedObjectMap = (0, import_lodash8.default)(array1, "hash"); const finalArray = []; for (const object of array2) { mergedObjectMap[object.hash] = __spreadValues(__spreadValues({}, mergedObjectMap[object.hash]), object); } (0, import_lodash9.default)(mergedObjectMap).forEach((object) => { finalArray.push(object); }); return finalArray; } function customizer(objValue, srcValue) { if (Array.isArray(objValue)) { return mergeArrayById(objValue, srcValue); } } let result = []; for (const feed of this.settings.feeds) { const items2 = yield getFeedItems(feed); if (items2) result.push(items2); } const items = this.settings.items; for (const feed of items) { if (feed.hash === void 0 || feed.hash === "") { feed.hash = new import_ts_md53.Md5().appendStr(feed.name).appendStr(feed.folder ? feed.folder : "no-folder").end(); } for (const item of feed.items) { if (item.folder !== feed.folder || item.feed !== feed.name) { feed.items.remove(item); } if (item.hash === void 0) { item.hash = new import_ts_md53.Md5().appendStr(item.title).appendStr(item.folder).appendStr(item.link).end(); } } } result = (0, import_lodash7.default)(result, items, customizer); new import_obsidian28.Notice(t("refreshed_feeds")); yield this.writeFeedContent(() => result); }); } onunload() { console.log("unloading plugin rss reader"); this.app.workspace.getLeavesOfType(VIEW_ID).forEach((leaf) => leaf.detach()); } initLeaf() { return __async(this, null, function* () { if (this.app.workspace.getLeavesOfType(VIEW_ID).length > 0) { return; } yield this.app.workspace.getRightLeaf(false).setViewState({ type: VIEW_ID }); }); } migrateData() { return __async(this, null, function* () { const configPath = this.app.vault.configDir + "/plugins/rss-reader/data.json"; const config = JSON.parse(yield this.app.vault.adapter.read(configPath)); for (const feed of config.feeds) { if (feed.folder === void 0) { feed.folder = ""; } } for (const feed of config.items) { if (feed.folder === void 0) { feed.folder = ""; } } yield this.app.vault.adapter.write(configPath, JSON.stringify(config)); if (config.filtered.length === 0) return; if (config.filtered[0].ignoreFolders === void 0) { new import_obsidian28.Notice("RSS Reader: migrating data"); console.log("RSS Reader: adding ignored fields to filters"); for (const filter of config.filtered) { filter.ignoreTags = []; filter.ignoreFolders = []; filter.ignoreFeeds = []; } yield this.app.vault.adapter.write(configPath, JSON.stringify(config)); yield this.loadSettings(); new import_obsidian28.Notice("RSS Reader: data has been migrated"); } if (config.filtered[0].filterType === void 0) return; new import_obsidian28.Notice("RSS Reader: migrating data"); for (const filter of config.filtered) { const newFilter = { filterFolders: [], filterTags: [], filterFeeds: [], favorites: false, read: false, unread: false, sortOrder: filter.sortOrder, name: filter.name, ignoreFolders: [], ignoreFeeds: [], ignoreTags: [] }; if (filter.filterType === "FAVORITES") newFilter.favorites = true; if (filter.filterType === "READ") newFilter.read = true; if (filter.filterType === "UNREAD") newFilter.unread = true; if (filter.filterType === "TAGS") { if (filter.filterContent !== "") { newFilter.filterTags = filter.filterContent.split(","); } } else { if (filter.filterContent !== "") { newFilter.filterFolders = filter.filterContent.split(","); } } newFilter.read = true; newFilter.unread = true; config.filtered = config.filtered.filter((item) => item.name !== filter.name); config.filtered.push(newFilter); } yield this.app.vault.adapter.write(configPath, JSON.stringify(config)); yield this.loadSettings(); new import_obsidian28.Notice("RSS Reader: data has been migrated"); if (config.read === void 0) return; new import_obsidian28.Notice("RSS Reader: migrating data"); for (const content of Object.values(config.items)) { for (const item of content.items) { if (config.read.items.some((readItem) => { return item.title == readItem.title && item.link == readItem.link && item.content == readItem.content; })) { item.read = true; } } for (const item of content.items) { if (config.favorites.items.some((favItem) => { return item.title == favItem.title && item.link == favItem.link && item.content == favItem.content; })) { item.favorite = true; } } } delete config.read; delete config.favorites; yield this.app.vault.adapter.write(configPath, JSON.stringify(config)); yield this.loadSettings(); new import_obsidian28.Notice("RSS Reader: data has been migrated"); }); } loadSettings() { return __async(this, null, function* () { const configPath = this.app.vault.configDir + "/plugins/rss-reader/data.json"; let file; try { file = yield this.app.vault.adapter.read(configPath); } catch (e) { console.error(e); } if (file !== void 0) { try { JSON.parse(file); } catch (e) { console.log(t("RSS_Reader") + " could not parse json, check if the plugins data.json is valid."); console.error(e); new import_obsidian28.Notice(t("RSS_Reader") + " could not parse plugin data. If this message keeps showing up, check the console"); return Promise.resolve(); } } const data = yield this.loadData(); this.settings = Object.assign({}, DEFAULT_SETTINGS, data); if (data !== void 0 && data !== null) { this.settings.hotkeys = Object.assign({}, DEFAULT_SETTINGS.hotkeys, data.hotkeys); } settingsStore.set(this.settings); configuredFeedsStore.set(this.settings.feeds); feedsStore.set(this.settings.items); foldedState.set(this.settings.folded); }); } saveSettings() { return __async(this, null, function* () { yield this.saveData(this.settings); }); } writeFeeds(changeOpts) { return __async(this, null, function* () { yield configuredFeedsStore.update((old) => __spreadValues(__spreadValues({}, old), changeOpts(old))); yield this.writeSettings((old) => ({ feeds: changeOpts(old.feeds) })); yield this.updateFeeds(); }); } writeFeedContent(changeOpts) { return __async(this, null, function* () { yield feedsStore.update((old) => __spreadValues({}, changeOpts(old))); yield this.writeSettings((old) => ({ items: changeOpts(old.items) })); }); } writeFiltered(changeOpts) { return __async(this, null, function* () { yield filteredStore.update((old) => __spreadValues(__spreadValues({}, old), changeOpts(old))); yield this.writeSettings((old) => ({ filtered: changeOpts(old.filtered) })); yield this.updateFeeds(); }); } writeFolded(folded) { return __async(this, null, function* () { yield foldedState.update(() => folded); yield this.writeSettings(() => ({ folded })); }); } writeSettings(changeOpts) { return __async(this, null, function* () { yield settingsStore.update((old) => __spreadValues(__spreadValues({}, old), changeOpts(old))); }); } }; /*! Copyright (c) 2016 Jed Watson. Licensed under the MIT License (MIT), see http://jedwatson.github.io/classnames */