wg-backend-django/dell-env/lib/python3.11/site-packages/dash/dash_table/bundle.js.map
2023-10-30 14:40:43 +07:00

1 line
293 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"version":3,"file":"bundle.js","mappings":"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","sources":["webpack://dash_table/webpack/runtime/create fake namespace object","webpack://dash_table/webpack/runtime/load script","webpack://dash_table/./node_modules/@plotly/dash-component-plugins/dist/index.js","webpack://dash_table/./src/core/Logger/DebugLevel.ts","webpack://dash_table/./src/core/Logger/LogLevel.ts","webpack://dash_table/./src/core/Logger/index.ts","webpack://dash_table/./src/core/storage/Cookie.ts","webpack://dash_table/./src/core/environment/index.ts","webpack://dash_table/./src/dash-table/LazyLoader.ts","webpack://dash_table/./src/dash-table/dash/DataTable.js","webpack://dash_table/./node_modules/css.escape/css.escape.js","webpack://dash_table/external window \"PropTypes\"","webpack://dash_table/external window \"React\"","webpack://dash_table/external window \"ReactDOM\"","webpack://dash_table/./node_modules/ramda/es/internal/_concat.js","webpack://dash_table/./node_modules/ramda/es/internal/_arity.js","webpack://dash_table/./node_modules/ramda/es/internal/_curryN.js","webpack://dash_table/./node_modules/ramda/es/curryN.js","webpack://dash_table/./node_modules/ramda/es/addIndex.js","webpack://dash_table/./node_modules/ramda/es/internal/_isArray.js","webpack://dash_table/./node_modules/ramda/es/internal/_dispatchable.js","webpack://dash_table/./node_modules/ramda/es/internal/_isTransformer.js","webpack://dash_table/./node_modules/ramda/es/internal/_reduced.js","webpack://dash_table/./node_modules/ramda/es/internal/_xfBase.js","webpack://dash_table/./node_modules/ramda/es/internal/_xall.js","webpack://dash_table/./node_modules/ramda/es/all.js","webpack://dash_table/./node_modules/ramda/es/internal/_arrayFromIterator.js","webpack://dash_table/./node_modules/ramda/es/internal/_includesWith.js","webpack://dash_table/./node_modules/ramda/es/internal/_has.js","webpack://dash_table/./node_modules/ramda/es/internal/_objectIs.js","webpack://dash_table/./node_modules/ramda/es/internal/_isArguments.js","webpack://dash_table/./node_modules/ramda/es/keys.js","webpack://dash_table/./node_modules/ramda/es/type.js","webpack://dash_table/./node_modules/ramda/es/internal/_equals.js","webpack://dash_table/./node_modules/ramda/es/internal/_functionName.js","webpack://dash_table/./node_modules/ramda/es/equals.js","webpack://dash_table/./node_modules/ramda/es/internal/_indexOf.js","webpack://dash_table/./node_modules/ramda/es/internal/_includes.js","webpack://dash_table/./node_modules/ramda/es/internal/_map.js","webpack://dash_table/./node_modules/ramda/es/internal/_quote.js","webpack://dash_table/./node_modules/ramda/es/internal/_toISOString.js","webpack://dash_table/./node_modules/ramda/es/internal/_arrayReduce.js","webpack://dash_table/./node_modules/ramda/es/internal/_filter.js","webpack://dash_table/./node_modules/ramda/es/internal/_xfilter.js","webpack://dash_table/./node_modules/ramda/es/filter.js","webpack://dash_table/./node_modules/ramda/es/internal/_isObject.js","webpack://dash_table/./node_modules/ramda/es/reject.js","webpack://dash_table/./node_modules/ramda/es/internal/_complement.js","webpack://dash_table/./node_modules/ramda/es/internal/_toString.js","webpack://dash_table/./node_modules/ramda/es/toString.js","webpack://dash_table/./node_modules/ramda/es/max.js","webpack://dash_table/./node_modules/ramda/es/internal/_xmap.js","webpack://dash_table/./node_modules/ramda/es/map.js","webpack://dash_table/./node_modules/ramda/es/internal/_isInteger.js","webpack://dash_table/./node_modules/ramda/es/internal/_isString.js","webpack://dash_table/./node_modules/ramda/es/nth.js","webpack://dash_table/./node_modules/ramda/es/prop.js","webpack://dash_table/./node_modules/ramda/es/pluck.js","webpack://dash_table/./node_modules/ramda/es/internal/_isArrayLike.js","webpack://dash_table/./node_modules/ramda/es/internal/_createReduce.js","webpack://dash_table/./node_modules/ramda/es/internal/_xArrayReduce.js","webpack://dash_table/./node_modules/ramda/es/bind.js","webpack://dash_table/./node_modules/ramda/es/internal/_xReduce.js","webpack://dash_table/./node_modules/ramda/es/internal/_xwrap.js","webpack://dash_table/./node_modules/ramda/es/reduce.js","webpack://dash_table/./node_modules/ramda/es/internal/_xany.js","webpack://dash_table/./node_modules/ramda/es/any.js","webpack://dash_table/./node_modules/ramda/es/append.js","webpack://dash_table/./node_modules/ramda/es/values.js","webpack://dash_table/./node_modules/ramda/es/isNil.js","webpack://dash_table/./node_modules/ramda/es/assocPath.js","webpack://dash_table/./node_modules/ramda/es/internal/_assoc.js","webpack://dash_table/./node_modules/ramda/es/assoc.js","webpack://dash_table/./node_modules/ramda/es/internal/_flatCat.js","webpack://dash_table/./node_modules/ramda/es/internal/_forceReduced.js","webpack://dash_table/./node_modules/ramda/es/internal/_xchain.js","webpack://dash_table/./node_modules/ramda/es/chain.js","webpack://dash_table/./node_modules/ramda/es/internal/_makeFlat.js","webpack://dash_table/./node_modules/ramda/es/internal/_clone.js","webpack://dash_table/./node_modules/ramda/es/internal/_cloneRegExp.js","webpack://dash_table/./node_modules/ramda/es/clone.js","webpack://dash_table/./node_modules/ramda/es/comparator.js","webpack://dash_table/./node_modules/ramda/es/internal/_pipe.js","webpack://dash_table/./node_modules/ramda/es/internal/_checkForMethod.js","webpack://dash_table/./node_modules/ramda/es/slice.js","webpack://dash_table/./node_modules/ramda/es/tail.js","webpack://dash_table/./node_modules/ramda/es/pipe.js","webpack://dash_table/./node_modules/ramda/es/reverse.js","webpack://dash_table/./node_modules/ramda/es/compose.js","webpack://dash_table/./node_modules/ramda/es/internal/_isFunction.js","webpack://dash_table/./node_modules/ramda/es/concat.js","webpack://dash_table/./node_modules/ramda/es/internal/_Set.js","webpack://dash_table/./node_modules/ramda/es/internal/_xfind.js","webpack://dash_table/./node_modules/ramda/es/find.js","webpack://dash_table/./node_modules/ramda/es/internal/_xfindIndex.js","webpack://dash_table/./node_modules/ramda/es/findIndex.js","webpack://dash_table/./node_modules/ramda/es/internal/_xfindLast.js","webpack://dash_table/./node_modules/ramda/es/findLast.js","webpack://dash_table/./node_modules/ramda/es/forEach.js","webpack://dash_table/./node_modules/ramda/es/hasPath.js","webpack://dash_table/./node_modules/ramda/es/has.js","webpack://dash_table/./node_modules/ramda/es/head.js","webpack://dash_table/./node_modules/ramda/es/ifElse.js","webpack://dash_table/./node_modules/ramda/es/includes.js","webpack://dash_table/./node_modules/ramda/es/indexOf.js","webpack://dash_table/./node_modules/ramda/es/insertAll.js","webpack://dash_table/./node_modules/ramda/es/internal/_identity.js","webpack://dash_table/./node_modules/ramda/es/identity.js","webpack://dash_table/./node_modules/ramda/es/internal/_xuniqBy.js","webpack://dash_table/./node_modules/ramda/es/uniqBy.js","webpack://dash_table/./node_modules/ramda/es/uniq.js","webpack://dash_table/./node_modules/ramda/es/intersection.js","webpack://dash_table/./node_modules/ramda/es/internal/_objectAssign.js","webpack://dash_table/./node_modules/ramda/es/is.js","webpack://dash_table/./node_modules/ramda/es/keysIn.js","webpack://dash_table/./node_modules/ramda/es/last.js","webpack://dash_table/./node_modules/ramda/es/lens.js","webpack://dash_table/./node_modules/ramda/es/paths.js","webpack://dash_table/./node_modules/ramda/es/path.js","webpack://dash_table/./node_modules/ramda/es/lensPath.js","webpack://dash_table/./node_modules/ramda/es/sum.js","webpack://dash_table/./node_modules/ramda/es/add.js","webpack://dash_table/./node_modules/ramda/es/mergeAll.js","webpack://dash_table/./node_modules/ramda/es/mergeRight.js","webpack://dash_table/./node_modules/ramda/es/min.js","webpack://dash_table/./node_modules/ramda/es/omit.js","webpack://dash_table/./node_modules/ramda/es/once.js","webpack://dash_table/./node_modules/ramda/es/pick.js","webpack://dash_table/./node_modules/ramda/es/props.js","webpack://dash_table/./node_modules/ramda/es/internal/_isNumber.js","webpack://dash_table/./node_modules/ramda/es/range.js","webpack://dash_table/./node_modules/ramda/es/reduceWhile.js","webpack://dash_table/./node_modules/ramda/es/always.js","webpack://dash_table/./node_modules/ramda/es/times.js","webpack://dash_table/./node_modules/ramda/es/repeat.js","webpack://dash_table/./node_modules/ramda/es/over.js","webpack://dash_table/./node_modules/ramda/es/set.js","webpack://dash_table/./node_modules/ramda/es/sortWith.js","webpack://dash_table/./node_modules/ramda/es/toPairs.js","webpack://dash_table/./node_modules/ramda/es/transpose.js","webpack://dash_table/./node_modules/ramda/es/union.js","webpack://dash_table/./node_modules/ramda/es/trim.js","webpack://dash_table/./node_modules/ramda/es/unnest.js","webpack://dash_table/./node_modules/ramda/es/without.js","webpack://dash_table/./node_modules/ramda/es/xprod.js","webpack://dash_table/./node_modules/ramda/es/zip.js","webpack://dash_table/./node_modules/ramda/es/zipWith.js","webpack://dash_table/./node_modules/ramda/es/internal/_curry1.js","webpack://dash_table/./node_modules/ramda/es/internal/_curry2.js","webpack://dash_table/./node_modules/ramda/es/internal/_curry3.js","webpack://dash_table/./node_modules/ramda/es/internal/_isPlaceholder.js","webpack://dash_table/./node_modules/ramda/es/remove.js","webpack://dash_table/webpack/bootstrap","webpack://dash_table/webpack/runtime/compat get default export","webpack://dash_table/webpack/runtime/define property getters","webpack://dash_table/webpack/runtime/ensure chunk","webpack://dash_table/webpack/runtime/get javascript chunk filename","webpack://dash_table/webpack/runtime/global","webpack://dash_table/webpack/runtime/hasOwnProperty shorthand","webpack://dash_table/webpack/runtime/make namespace object","webpack://dash_table/webpack/runtime/publicPath","webpack://dash_table/webpack/runtime/compat","webpack://dash_table/webpack/runtime/jsonp chunk loading","webpack://dash_table/webpack/runtime/nonce","webpack://dash_table/./src/dash-table/index.ts"],"sourcesContent":["var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"dash_table:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","!function(e,n){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=n(require(\"react\")):\"function\"==typeof define&&define.amd?define([\"react\"],n):\"object\"==typeof exports?exports[\"dash-component-plugins\"]=n(require(\"react\")):e[\"dash-component-plugins\"]=n(e.React)}(window,(function(e){return function(e){var n={};function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:r})},t.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},t.t=function(e,n){if(1&n&&(e=t(e)),8&n)return e;if(4&n&&\"object\"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:e}),2&n&&\"string\"!=typeof e)for(var o in e)t.d(r,o,function(n){return e[n]}.bind(null,o));return r},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,\"a\",n),n},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.p=\"\",t(t.s=1)}([function(n,t){n.exports=e},function(e,n,t){\"use strict\";t.r(n),t.d(n,\"asyncDecorator\",(function(){return u})),t.d(n,\"inheritAsyncDecorator\",(function(){return a})),t.d(n,\"isReady\",(function(){return c})),t.d(n,\"History\",(function(){return d}));var r=t(0);function o(e,n,t,r,o,i,u){try{var a=e[i](u),c=a.value}catch(e){return void t(e)}a.done?n(c):Promise.resolve(c).then(r,o)}function i(e){return function(){var n=this,t=arguments;return new Promise((function(r,i){var u=e.apply(n,t);function a(e){o(u,r,i,a,c,\"next\",e)}function c(e){o(u,r,i,a,c,\"throw\",e)}a(void 0)}))}}var u=function(e,n){var t,o={isReady:new Promise((function(e){t=e})),get:Object(r.lazy)((function(){return Promise.resolve(n()).then((function(e){return setTimeout(i(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t(!0);case 2:o.isReady=!0;case 3:case\"end\":return e.stop()}}),e)}))),0),e}))}))};return Object.defineProperty(e,\"_dashprivate_isLazyComponentReady\",{get:function(){return o.isReady}}),o.get},a=function(e,n){Object.defineProperty(e,\"_dashprivate_isLazyComponentReady\",{get:function(){return c(n)}})},c=function(e){return e&&e._dashprivate_isLazyComponentReady};function f(e,n){for(var t=0;t<n.length;t++){var r=n[t];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var s=\"_dashprivate_historychange\",d=function(){function e(){!function(e,n){if(!(e instanceof n))throw new TypeError(\"Cannot call a class as a function\")}(this,e)}var n,t,r;return n=e,r=[{key:\"dispatchChangeEvent\",value:function(){window.dispatchEvent(new CustomEvent(s))}},{key:\"onChange\",value:function(e){return window.addEventListener(s,e),function(){return window.removeEventListener(s,e)}}}],(t=null)&&f(n.prototype,t),r&&f(n,r),Object.defineProperty(n,\"prototype\",{writable:!1}),e}()}])}));","var DebugLevel;\n(function (DebugLevel) {\n DebugLevel[DebugLevel[\"DEBUG\"] = 6] = \"DEBUG\";\n DebugLevel[DebugLevel[\"NONE\"] = 7] = \"NONE\";\n})(DebugLevel || (DebugLevel = {}));\nexport default DebugLevel;\n","var LogLevel;\n(function (LogLevel) {\n LogLevel[LogLevel[\"TRACE\"] = 0] = \"TRACE\";\n LogLevel[LogLevel[\"INFO\"] = 1] = \"INFO\";\n LogLevel[LogLevel[\"WARNING\"] = 2] = \"WARNING\";\n LogLevel[LogLevel[\"ERROR\"] = 3] = \"ERROR\";\n LogLevel[LogLevel[\"FATAL\"] = 4] = \"FATAL\";\n LogLevel[LogLevel[\"NONE\"] = 5] = \"NONE\";\n})(LogLevel || (LogLevel = {}));\nexport default LogLevel;\n","import DebugLevel from './DebugLevel';\nimport LogLevel from './LogLevel';\nconst LogString = [];\nLogString[LogLevel.TRACE] = 'trace';\nLogString[LogLevel.INFO] = 'info';\nLogString[LogLevel.WARNING] = 'warning';\nLogString[LogLevel.ERROR] = 'error';\nLogString[LogLevel.FATAL] = 'fatal';\nLogString[LogLevel.NONE] = 'none';\nLogString[DebugLevel.DEBUG] = 'debug';\nLogString[DebugLevel.NONE] = 'trace';\nlet __logLevel = LogLevel.NONE;\nlet __debugLevel = DebugLevel.NONE;\nlet __highlightPrefix;\n__highlightPrefix = false;\nfunction logFn(level, currentLevel) {\n if (level < currentLevel) {\n return () => { };\n }\n let fn;\n let fnStyle = '';\n switch (level) {\n case LogLevel.TRACE:\n case LogLevel.INFO:\n fn = window.console.log;\n fnStyle = 'color: white; background-color: #3166A2;';\n break;\n case DebugLevel.DEBUG:\n case LogLevel.WARNING:\n fn = window.console.warn;\n fnStyle = 'color: white; background-color: #E9B606;';\n break;\n case LogLevel.ERROR:\n case LogLevel.FATAL:\n fn = window.console.error;\n fnStyle = 'color: white; background-color: #FF0000;';\n break;\n default:\n throw new Error(`Unknown log ${level}`);\n }\n const prefix = `${fnStyle && __highlightPrefix ? '%c' : ''}[${LogString[level].toUpperCase()}]`;\n if (fnStyle && __highlightPrefix) {\n return fn.bind(window.console, prefix, fnStyle);\n }\n else {\n return fn.bind(window.console, prefix);\n }\n}\nconst logger = {\n setDebugLevel(level) {\n __debugLevel = level;\n },\n setLogLevel(level) {\n __logLevel = level;\n }\n};\nObject.defineProperties(logger, {\n trace: {\n get: () => {\n return logFn(LogLevel.TRACE, __logLevel);\n },\n configurable: false,\n enumerable: false\n },\n info: {\n get: () => {\n return logFn(LogLevel.INFO, __logLevel);\n },\n configurable: false,\n enumerable: false\n },\n warning: {\n get: () => {\n return logFn(LogLevel.WARNING, __logLevel);\n },\n configurable: false,\n enumerable: false\n },\n error: {\n get: () => {\n return logFn(LogLevel.ERROR, __logLevel);\n },\n configurable: false,\n enumerable: false\n },\n fatal: {\n get: () => {\n return logFn(LogLevel.FATAL, __logLevel);\n },\n configurable: false,\n enumerable: false\n },\n debug: {\n get: () => {\n return logFn(DebugLevel.DEBUG, __debugLevel);\n },\n configurable: false,\n enumerable: false\n }\n});\nObject.freeze(logger);\nexport default logger;\nexport { DebugLevel, LogLevel };\n","import * as R from 'ramda';\nconst __1day = 86400 * 1000;\nconst __20years = 86400 * 1000 * 365 * 20;\nclass CookieStorage {\n // From https://github.com/Modernizr/Modernizr/blob/f4d3aa0b3c9eeb7338e8d89ed77929a8e969c502/feature-detects/cookies.js#L1\n // try..catch because some in situations `document.cookie` is exposed but throws a\n // SecurityError if you try to access it; e.g. documents created from data URIs\n // or in sandboxed iframes (depending on flags/context)\n static enabled = R.once(() => {\n try {\n // Create cookie\n document.cookie = 'cookietest=1';\n const ret = document.cookie.indexOf('cookietest=') !== -1;\n // Delete cookie\n document.cookie =\n 'cookietest=1; expires=Thu, 01-Jan-1970 00:00:01 GMT';\n return ret;\n }\n catch (e) {\n return false;\n }\n });\n static delete(id, domain = '', path = '/') {\n if (!CookieStorage.enabled()) {\n return;\n }\n const expires = new Date(Date.now() - __1day).toUTCString();\n document.cookie = `${id}=;expires=${expires};domain=${domain};path=${path}`;\n }\n static get(id) {\n if (!id.length) {\n return;\n }\n if (!CookieStorage.enabled()) {\n return;\n }\n id = id.toLowerCase();\n const cookies = document.cookie.split(';').map(cookie => {\n const fragments = cookie.split('=');\n return {\n id: fragments[0].trim(),\n value: fragments[1]\n };\n });\n return (cookies.find(cookie => id === cookie.id.toLocaleLowerCase()) ||\n {}).value;\n }\n static set(id, value, domain = '', path = '/') {\n if (!CookieStorage.enabled()) {\n return;\n }\n const expires = new Date(Date.now() + __20years).toUTCString();\n const entry = `${id}=${value};expires=${expires};domain=${domain};path=${path}`;\n if (CookieStorage.get(id)) {\n CookieStorage.delete(id, domain, path);\n }\n document.cookie = entry;\n }\n}\nexport default CookieStorage;\n","import CookieStorage from 'core/storage/Cookie';\nimport { DebugLevel, LogLevel } from 'core/Logger';\nconst DASH_DEBUG = 'dash_debug';\nconst DASH_LOG = 'dash_log';\nclass Environment {\n static _supportsCssVariables = Boolean(window.CSS?.supports?.('.some-selector', 'var(--some-var)'));\n static _activeEdge = Environment._supportsCssVariables\n ? '1px solid var(--accent)'\n : '1px solid hotpink';\n static get searchParams() {\n return ((typeof URL !== 'undefined' &&\n URL.prototype &&\n URL.prototype.constructor &&\n new URL(window.location.href).searchParams) || { get: () => null });\n }\n static get debugLevel() {\n const debug = this.searchParams.get(DASH_DEBUG) || CookieStorage.get(DASH_DEBUG);\n return debug\n ? DebugLevel[debug] || DebugLevel.NONE\n : DebugLevel.NONE;\n }\n static get logLevel() {\n const log = this.searchParams.get(DASH_LOG) || CookieStorage.get(DASH_LOG);\n return log ? LogLevel[log] || LogLevel.ERROR : LogLevel.ERROR;\n }\n static get defaultEdge() {\n return '1px solid #d3d3d3';\n }\n static get activeEdge() {\n return Environment._activeEdge;\n }\n static get supportsCssVariables() {\n return Environment._supportsCssVariables;\n }\n}\nexport default Environment;\n","export default class LazyLoader {\n static get xlsx() {\n return import(\n /* webpackChunkName: \"export\", webpackMode: \"lazy\" */ 'xlsx');\n }\n static get hljs() {\n return Promise.resolve(window.hljs ||\n import(\n /* webpackChunkName: \"highlight\", webpackMode: \"lazy\" */ '../third-party/highlight.js').then(result => result.default));\n }\n static table() {\n return import(\n /* webpackChunkName: \"table\", webpackMode: \"lazy\" */ 'dash-table/dash/fragments/DataTable');\n }\n}\n","\nimport * as R from 'ramda';\nimport React, {Component, Suspense} from 'react';\nimport PropTypes from 'prop-types';\nimport {asyncDecorator} from '@plotly/dash-component-plugins';\nimport LazyLoader from 'dash-table/LazyLoader';\n/**\n * Dash DataTable is an interactive table component designed for\n * viewing, editing, and exploring large datasets.\n * DataTable is rendered with standard, semantic HTML <table/> markup,\n * which makes it accessible, responsive, and easy to style. This\n * component was written from scratch in React.js specifically for the\n * Dash community. Its API was designed to be ergonomic and its behavior\n * is completely customizable through its properties.\n */\nexport default class DataTable extends Component {\n render() {\n return (\n <Suspense fallback={null}>\n <RealDataTable {...this.props} />\n </Suspense>\n );\n }\n}\nconst RealDataTable = asyncDecorator(DataTable, LazyLoader.table);\nexport const defaultProps = {\n page_action: 'native',\n page_current: 0,\n page_size: 250,\n css: [],\n filter_query: '',\n filter_action: 'none',\n sort_as_null: [],\n sort_action: 'none',\n sort_mode: 'single',\n sort_by: [],\n style_as_list_view: false,\n derived_viewport_data: [],\n derived_viewport_indices: [],\n derived_viewport_row_ids: [],\n derived_viewport_selected_rows: [],\n derived_viewport_selected_row_ids: [],\n derived_virtual_data: [],\n derived_virtual_indices: [],\n derived_virtual_row_ids: [],\n derived_virtual_selected_rows: [],\n derived_virtual_selected_row_ids: [],\n dropdown: {},\n dropdown_conditional: [],\n dropdown_data: [],\n fill_width: true,\n filter_options: {},\n fixed_columns: {\n headers: false,\n data: 0\n },\n fixed_rows: {\n headers: false,\n data: 0\n },\n markdown_options: {\n link_target: '_blank',\n html: false\n },\n tooltip: {},\n tooltip_conditional: [],\n tooltip_data: [],\n tooltip_header: {},\n tooltip_delay: 350,\n tooltip_duration: 2000,\n column_selectable: false,\n editable: false,\n export_columns: 'visible',\n export_format: 'none',\n include_headers_on_copy_paste: false,\n selected_cells: [],\n selected_columns: [],\n selected_rows: [],\n selected_row_ids: [],\n cell_selectable: true,\n row_selectable: false,\n style_table: {},\n style_cell_conditional: [],\n style_data_conditional: [],\n style_filter_conditional: [],\n style_header_conditional: [],\n virtualization: false,\n persisted_props: [\n 'columns.name',\n 'filter_query',\n 'hidden_columns',\n 'page_current',\n 'selected_columns',\n 'selected_rows',\n 'sort_by'\n ],\n persistence_type: 'local'\n};\nexport const propTypes = {\n /**\n * The contents of the table.\n * The keys of each item in data should match the column IDs.\n * Each item can also have an 'id' key, whose value is its row ID. If there\n * is a column with ID='id' this will display the row ID, otherwise it is\n * just used to reference the row for selections, filtering, etc.\n * Example:\n * [\n * {'column-1': 4.5, 'column-2': 'montreal', 'column-3': 'canada'},\n * {'column-1': 8, 'column-2': 'boston', 'column-3': 'america'}\n * ]\n */\n data: PropTypes.arrayOf(\n PropTypes.objectOf(\n PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool\n ])\n )\n ),\n /**\n * Columns describes various aspects about each individual column.\n * `name` and `id` are the only required parameters.\n */\n columns: PropTypes.arrayOf(\n PropTypes.exact({\n /**\n * The `id` of the column.\n * The column `id` is used to match cells in data with particular columns.\n * The `id` is not visible in the table.\n */\n id: PropTypes.string.isRequired,\n /**\n * The `name` of the column, as it appears in the column header.\n * If `name` is a list of strings, then the columns\n * will render with multiple headers rows.\n */\n name: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]).isRequired,\n /**\n * The data-type provides support for per column typing and allows for data\n * validation and coercion.\n * 'numeric': represents both floats and ints.\n * 'text': represents a string.\n * 'datetime': a string representing a date or date-time, in the form:\n * 'YYYY-MM-DD HH:MM:SS.ssssss' or some truncation thereof. Years must\n * have 4 digits, unless you use `validation.allow_YY: true`. Also\n * accepts 'T' or 't' between date and time, and allows timezone info\n * at the end. To convert these strings to Python `datetime` objects,\n * use `dateutil.parser.isoparse`. In R use `parse_iso_8601` from the\n * `parsedate` library.\n * WARNING: these parsers do not work with 2-digit years, if you use\n * `validation.allow_YY: true` and do not coerce to 4-digit years.\n * And parsers that do work with 2-digit years may make a different\n * guess about the century than we make on the front end.\n * 'any': represents any type of data.\n * Defaults to 'any' if undefined.\n *\n *\n */\n type: PropTypes.oneOf(['any', 'numeric', 'text', 'datetime']),\n /**\n * The `presentation` to use to display data. Markdown can be used on\n * columns with type 'text'. See 'dropdown' for more info.\n * Defaults to 'input' for ['datetime', 'numeric', 'text', 'any'].\n */\n presentation: PropTypes.oneOf(['input', 'dropdown', 'markdown']),\n /**\n * If true, the user can select the column by clicking on the checkbox or radio button\n * in the column. If there are multiple header rows, true will display the input\n * on each row.\n * If `last`, the input will only appear on the last header row. If `first` it will only\n * appear on the first header row. These are respectively shortcut equivalents to\n * `[false, ..., false, true]` and `[true, false, ..., false]`.\n * If there are merged, multi-header columns then you can choose which column header\n * row to display the input in by supplying an array of booleans.\n * For example, `[true, false]` will display the `selectable` input on the first row,\n * but now on the second row.\n * If the `selectable` input appears on a merged columns, then clicking on that input\n * will select *all* of the merged columns associated with it.\n * The table-level prop `column_selectable` is used to determine the type of column\n * selection to use.\n *\n */\n selectable: PropTypes.oneOfType([\n PropTypes.oneOf(['first', 'last']),\n PropTypes.bool,\n PropTypes.arrayOf(PropTypes.bool)\n ]),\n /**\n * If true, the user can clear the column by clicking on the `clear`\n * action button on the column. If there are multiple header rows, true\n * will display the action button on each row.\n * If `last`, the `clear` action button will only appear on the last header\n * row. If `first` it will only appear on the first header row. These\n * are respectively shortcut equivalents to `[false, ..., false, true]` and\n * `[true, false, ..., false]`.\n * If there are merged, multi-header columns then you can choose\n * which column header row to display the `clear` action button in by\n * supplying an array of booleans.\n * For example, `[true, false]` will display the `clear` action button\n * on the first row, but not the second row.\n * If the `clear` action button appears on a merged column, then clicking\n * on that button will clear *all* of the merged columns associated with it.\n * Unlike `column.deletable`, this action does not remove the column(s)\n * from the table. It only removed the associated entries from `data`.\n */\n clearable: PropTypes.oneOfType([\n PropTypes.oneOf(['first', 'last']),\n PropTypes.bool,\n PropTypes.arrayOf(PropTypes.bool)\n ]),\n /**\n * If true, the user can remove the column by clicking on the `delete`\n * action button on the column. If there are multiple header rows, true\n * will display the action button on each row.\n * If `last`, the `delete` action button will only appear on the last header\n * row. If `first` it will only appear on the first header row. These\n * are respectively shortcut equivalents to `[false, ..., false, true]` and\n * `[true, false, ..., false]`.\n * If there are merged, multi-header columns then you can choose\n * which column header row to display the `delete` action button in by\n * supplying an array of booleans.\n * For example, `[true, false]` will display the `delete` action button\n * on the first row, but not the second row.\n * If the `delete` action button appears on a merged column, then clicking\n * on that button will remove *all* of the merged columns associated with it.\n */\n deletable: PropTypes.oneOfType([\n PropTypes.oneOf(['first', 'last']),\n PropTypes.bool,\n PropTypes.arrayOf(PropTypes.bool)\n ]),\n /**\n * There are two `editable` flags in the table.\n * This is the column-level editable flag and there is\n * also the table-level `editable` flag.\n * These flags determine whether the contents of the table\n * are editable or not.\n * If the column-level `editable` flag is set it overrides\n * the table-level `editable` flag for that column.\n */\n editable: PropTypes.bool,\n /**\n * If true, the user can hide the column by clicking on the `hide`\n * action button on the column. If there are multiple header rows, true\n * will display the action button on each row.\n * If `last`, the `hide` action button will only appear on the last header\n * row. If `first` it will only appear on the first header row. These\n * are respectively shortcut equivalents to `[false, ..., false, true]` and\n * `[true, false, ..., false]`.\n * If there are merged, multi-header columns then you can choose\n * which column header row to display the `hide` action button in by\n * supplying an array of booleans.\n * For example, `[true, false]` will display the `hide` action button\n * on the first row, but not the second row.\n * If the `hide` action button appears on a merged column, then clicking\n * on that button will hide *all* of the merged columns associated with it.\n */\n hideable: PropTypes.oneOfType([\n PropTypes.oneOf(['first', 'last']),\n PropTypes.bool,\n PropTypes.arrayOf(PropTypes.bool)\n ]),\n /**\n * If true, the user can rename the column by clicking on the `rename`\n * action button on the column. If there are multiple header rows, true\n * will display the action button on each row.\n * If `last`, the `rename` action button will only appear on the last header\n * row. If `first` it will only appear on the first header row. These\n * are respectively shortcut equivalents to `[false, ..., false, true]` and\n * `[true, false, ..., false]`.\n * If there are merged, multi-header columns then you can choose\n * which column header row to display the `rename` action button in by\n * supplying an array of booleans.\n * For example, `[true, false]` will display the `rename` action button\n * on the first row, but not the second row.\n * If the `rename` action button appears on a merged column, then clicking\n * on that button will rename *all* of the merged columns associated with it.\n */\n renamable: PropTypes.oneOfType([\n PropTypes.oneOf(['first', 'last']),\n PropTypes.bool,\n PropTypes.arrayOf(PropTypes.bool)\n ]),\n /**\n * There are two `filter_options` props in the table.\n * This is the column-level filter_options prop and there is\n * also the table-level `filter_options` prop.\n * If the column-level `filter_options` prop is set it overrides\n * the table-level `filter_options` prop for that column.\n */\n filter_options: PropTypes.shape({\n /**\n * (default: 'sensitive') Determine whether the applicable filter relational operators will default to `sensitive` or `insensitive` comparison.\n */\n case: PropTypes.oneOf(['sensitive', 'insensitive']),\n /**\n * (default: 'filter data...') The filter cell placeholder text.\n */\n placeholder_text: PropTypes.string\n }),\n /**\n * The formatting applied to the column's data.\n * This prop is derived from the [d3-format](https://github.com/d3/d3-format) library specification. Apart from\n * being structured slightly differently (under a single prop), the usage is the same.\n * See also dash_table.FormatTemplate. It contains helper functions for typical number formats.\n */\n format: PropTypes.exact({\n /**\n * Represents localization specific formatting information.\n * When left unspecified, will use the default value provided by d3-format.\n */\n locale: PropTypes.exact({\n /**\n * (default: ['$', '']). A list of two strings representing the\n * prefix and suffix symbols. Typically used for currency, and implemented using d3's\n * currency format, but you can use this for other symbols such as measurement units\n */\n symbol: PropTypes.arrayOf(PropTypes.string),\n /**\n * (default: '.'). The string used for the decimal separator\n */\n decimal: PropTypes.string,\n /**\n * (default: ','). The string used for the groups separator\n */\n group: PropTypes.string,\n /**\n * (default: [3]). A list of integers representing the grouping pattern. The default is\n * 3 for thousands.\n */\n grouping: PropTypes.arrayOf(PropTypes.number),\n /**\n * A list of ten strings used as replacements for numbers 0-9\n */\n numerals: PropTypes.arrayOf(PropTypes.string),\n /**\n * (default: '%'). The string used for the percentage symbol\n */\n percent: PropTypes.string,\n /**\n * (default: True). Separates integers with 4-digits or less\n */\n separate_4digits: PropTypes.bool\n }),\n /**\n * A value that will be used in place of the nully value during formatting.\n * If the value type matches the column type, it will be formatted normally.\n */\n nully: PropTypes.any,\n /**\n * A number representing the SI unit to use during formatting.\n * See `dash_table.Format.Prefix` enumeration for the list of valid values\n */\n prefix: PropTypes.number,\n /**\n * (default: ''). Represents the d3 rules to apply when formatting the number.\n */\n specifier: PropTypes.string\n }),\n /**\n * The `on_change` behavior of the column for user-initiated modifications.\n */\n on_change: PropTypes.exact({\n /**\n * (default 'coerce'): 'none': do not validate data;\n * 'coerce': check if the data corresponds to the destination type and\n * attempts to coerce it into the destination type if not;\n * 'validate': check if the data corresponds to the destination type (no coercion).\n */\n action: PropTypes.oneOf(['coerce', 'none', 'validate']),\n /**\n * (default 'reject'): What to do with the value if the action fails.\n * 'accept': use the invalid value;\n * 'default': replace the provided value with `validation.default`;\n * 'reject': do not modify the existing value.\n */\n failure: PropTypes.oneOf(['accept', 'default', 'reject'])\n }),\n /**\n * An array of string, number and boolean values that are treated as `null`\n * (i.e. ignored and always displayed last) when sorting.\n * This value overrides the table-level `sort_as_null`.\n */\n sort_as_null: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool\n ])\n ),\n /**\n * The `validation` options for user input processing that can accept, reject or apply a\n * default value.\n */\n validation: PropTypes.exact({\n /**\n * Allow the use of nully values. (undefined, null, NaN) (default: False)\n */\n allow_null: PropTypes.bool,\n /**\n * The default value to apply with on_change.failure = 'default'. (default: None)\n */\n default: PropTypes.any,\n /**\n * This is for `datetime` columns only. Allow 2-digit years (default: False).\n * If True, we interpret years as ranging from now-70 to now+29 - in 2019\n * this is 1949 to 2048 but in 2020 it will be different. If used with\n * `action: 'coerce'`, will convert user input to a 4-digit year.\n */\n allow_YY: PropTypes.bool\n })\n })\n ),\n /**\n * If True, then the data in all of the cells is editable.\n * When `editable` is True, particular columns can be made\n * uneditable by setting `editable` to `False` inside the `columns`\n * property.\n * If False, then the data in all of the cells is uneditable.\n * When `editable` is False, particular columns can be made\n * editable by setting `editable` to `True` inside the `columns`\n * property.\n */\n editable: PropTypes.bool,\n /**\n * `fixed_columns` will \"fix\" the set of columns so that\n * they remain visible when scrolling horizontally across\n * the unfixed columns. `fixed_columns` fixes columns\n * from left-to-right.\n * If `headers` is False, no columns are fixed.\n * If `headers` is True, all operation columns (see `row_deletable` and `row_selectable`)\n * are fixed. Additional data columns can be fixed by\n * assigning a number to `data`.\n *\n * Note that fixing columns introduces some changes to the\n * underlying markup of the table and may impact the\n * way that your columns are rendered or sized.\n * View the documentation examples to learn more.\n *\n */\n fixed_columns: PropTypes.oneOfType([\n PropTypes.exact({\n /**\n * Example `{'headers':False, 'data':0}` No columns are fixed (the default)\n */\n data: PropTypes.oneOf([0]),\n headers: PropTypes.oneOf([false])\n }),\n PropTypes.exact({\n /**\n * Example `{'headers':True, 'data':1}` one column is fixed.\n */\n data: PropTypes.number,\n headers: PropTypes.oneOf([true]).isRequired\n })\n ]),\n /**\n * `fixed_rows` will \"fix\" the set of rows so that\n * they remain visible when scrolling vertically down\n * the table. `fixed_rows` fixes rows\n * from top-to-bottom, starting from the headers.\n * If `headers` is False, no rows are fixed.\n * If `headers` is True, all header and filter rows (see `filter_action`) are\n * fixed. Additional data rows can be fixed by assigning\n * a number to `data`. Note that fixing rows introduces some changes to the\n * underlying markup of the table and may impact the\n * way that your columns are rendered or sized.\n * View the documentation examples to learn more.\n */\n fixed_rows: PropTypes.oneOfType([\n PropTypes.exact({\n /**\n * Example `{'headers':False, 'data':0}` No rows are fixed (the default)\n */\n data: PropTypes.oneOf([0]),\n headers: PropTypes.oneOf([false])\n }),\n PropTypes.exact({\n /**\n * Example `{'headers':True, 'data':1}` one row is fixed.\n */\n data: PropTypes.number,\n headers: PropTypes.oneOf([true]).isRequired\n })\n ]),\n /**\n * If `single`, then the user can select a single column or group\n * of merged columns via the radio button that will appear in the\n * header rows.\n * If `multi`, then the user can select multiple columns or groups\n * of merged columns via the checkbox that will appear in the header\n * rows.\n * If false, then the user will not be able to select columns and no\n * input will appear in the header rows.\n * When a column is selected, its id will be contained in `selected_columns`\n * and `derived_viewport_selected_columns`.\n */\n column_selectable: PropTypes.oneOf(['single', 'multi', false]),\n /**\n * If True (default), then it is possible to click and navigate\n * table cells.\n */\n cell_selectable: PropTypes.bool,\n /**\n * If `single`, then the user can select a single row\n * via a radio button that will appear next to each row.\n * If `multi`, then the user can select multiple rows\n * via a checkbox that will appear next to each row.\n * If false, then the user will not be able to select rows\n * and no additional UI elements will appear.\n * When a row is selected, its index will be contained\n * in `selected_rows`.\n */\n row_selectable: PropTypes.oneOf(['single', 'multi', false]),\n /**\n * If True, then a `x` will appear next to each `row`\n * and the user can delete the row.\n */\n row_deletable: PropTypes.bool,\n /**\n * The row and column indices and IDs of the currently active cell.\n * `row_id` is only returned if the data rows have an `id` key.\n */\n active_cell: PropTypes.exact({\n row: PropTypes.number,\n column: PropTypes.number,\n row_id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n column_id: PropTypes.string\n }),\n /**\n * `selected_cells` represents the set of cells that are selected,\n * as an array of objects, each item similar to `active_cell`.\n * Multiple cells can be selected by holding down shift and\n * clicking on a different cell or holding down shift and navigating\n * with the arrow keys.\n */\n selected_cells: PropTypes.arrayOf(\n PropTypes.exact({\n row: PropTypes.number,\n column: PropTypes.number,\n row_id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n column_id: PropTypes.string\n })\n ),\n /**\n * `selected_rows` contains the indices of rows that\n * are selected via the UI elements that appear when\n * `row_selectable` is `'single'` or `'multi'`.\n */\n selected_rows: PropTypes.arrayOf(PropTypes.number),\n /**\n * `selected_columns` contains the ids of columns that\n * are selected via the UI elements that appear when\n * `column_selectable` is `'single' or 'multi'`.\n */\n selected_columns: PropTypes.arrayOf(PropTypes.string),\n /**\n * `selected_row_ids` contains the ids of rows that\n * are selected via the UI elements that appear when\n * `row_selectable` is `'single'` or `'multi'`.\n */\n selected_row_ids: PropTypes.arrayOf(\n PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n ),\n /**\n * When selecting multiple cells\n * (via clicking on a cell and then shift-clicking on another cell),\n * `start_cell` represents the [row, column] coordinates of the cell\n * in one of the corners of the region.\n * `end_cell` represents the coordinates of the other corner.\n */\n start_cell: PropTypes.exact({\n row: PropTypes.number,\n column: PropTypes.number,\n row_id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n column_id: PropTypes.string\n }),\n /**\n * When selecting multiple cells\n * (via clicking on a cell and then shift-clicking on another cell),\n * `end_cell` represents the row / column coordinates and IDs of the cell\n * in one of the corners of the region.\n * `start_cell` represents the coordinates of the other corner.\n */\n end_cell: PropTypes.exact({\n row: PropTypes.number,\n column: PropTypes.number,\n row_id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n column_id: PropTypes.string\n }),\n /**\n * The previous state of `data`. `data_previous`\n * has the same structure as `data` and it will be updated\n * whenever `data` changes, either through a callback or\n * by editing the table.\n * This is a read-only property: setting this property will not\n * have any impact on the table.\n */\n data_previous: PropTypes.arrayOf(PropTypes.object),\n /**\n * List of columns ids of the columns that are currently hidden.\n * See the associated nested prop `columns.hideable`.\n */\n hidden_columns: PropTypes.arrayOf(PropTypes.string),\n /**\n * If True, then the `active_cell` is in a focused state.\n */\n is_focused: PropTypes.bool,\n /**\n * If True, then column headers that have neighbors with duplicate names\n * will be merged into a single cell.\n * This will be applied for single column headers and multi-column\n * headers.\n */\n merge_duplicate_headers: PropTypes.bool,\n /**\n * The unix timestamp when the data was last edited.\n * Use this property with other timestamp properties\n * (such as `n_clicks_timestamp` in `dash_html_components`)\n * to determine which property has changed within a callback.\n */\n data_timestamp: PropTypes.number,\n /**\n * If true, headers are included when copying from the table to different\n * tabs and elsewhere. Note that headers are ignored when copying from the table onto itself and\n * between two tables within the same tab.\n */\n include_headers_on_copy_paste: PropTypes.bool,\n /**\n * Denotes the columns that will be used in the export data file.\n * If `all`, all columns will be used (visible + hidden). If `visible`,\n * only the visible columns will be used. Defaults to `visible`.\n */\n export_columns: PropTypes.oneOf(['all', 'visible']),\n /**\n * Denotes the type of the export data file,\n * Defaults to `'none'`\n */\n export_format: PropTypes.oneOf(['csv', 'xlsx', 'none']),\n /**\n * Denotes the format of the headers in the export data file.\n * If `'none'`, there will be no header. If `'display'`, then the header\n * of the data file will be be how it is currently displayed. Note that\n * `'display'` is only supported for `'xlsx'` export_format and will behave\n * like `'names'` for `'csv'` export format. If `'ids'` or `'names'`,\n * then the headers of data file will be the column id or the column\n * names, respectively\n */\n export_headers: PropTypes.oneOf(['none', 'ids', 'names', 'display']),\n /**\n * `page_action` refers to a mode of the table where\n * not all of the rows are displayed at once: only a subset\n * are displayed (a \"page\") and the next subset of rows\n * can viewed by clicking \"Next\" or \"Previous\" buttons\n * at the bottom of the page.\n * Pagination is used to improve performance: instead of\n * rendering all of the rows at once (which can be expensive),\n * we only display a subset of them.\n * With pagination, we can either page through data that exists\n * in the table (e.g. page through `10,000` rows in `data` `100` rows at a time)\n * or we can update the data on-the-fly with callbacks\n * when the user clicks on the \"Previous\" or \"Next\" buttons.\n * These modes can be toggled with this `page_action` parameter:\n * `'native'`: all data is passed to the table up-front, paging logic is\n * handled by the table;\n * `'custom'`: data is passed to the table one page at a time, paging logic\n * is handled via callbacks;\n * `'none'`: disables paging, render all of the data at once.\n */\n page_action: PropTypes.oneOf(['custom', 'native', 'none']),\n /**\n * `page_current` represents which page the user is on.\n * Use this property to index through data in your callbacks with\n * backend paging.\n */\n page_current: PropTypes.number,\n /**\n * `page_count` represents the number of the pages in the\n * paginated table. This is really only useful when performing\n * backend pagination, since the front end is able to use the\n * full size of the table to calculate the number of pages.\n */\n page_count: PropTypes.number,\n /**\n * `page_size` represents the number of rows that will be\n * displayed on a particular page when `page_action` is `'custom'` or `'native'`\n */\n page_size: PropTypes.number,\n /**\n * If `filter_action` is enabled, then the current filtering\n * string is represented in this `filter_query`\n * property.\n */\n filter_query: PropTypes.string,\n /**\n * The `filter_action` property controls the behavior of the `filtering` UI.\n * If `'none'`, then the filtering UI is not displayed.\n * If `'native'`, then the filtering UI is displayed and the filtering\n * logic is handled by the table. That is, it is performed on the data\n * that exists in the `data` property.\n * If `'custom'`, then the filtering UI is displayed but it is the\n * responsibility of the developer to program the filtering\n * through a callback (where `filter_query` or `derived_filter_query_structure` would be the input\n * and `data` would be the output).\n */\n filter_action: PropTypes.oneOfType([\n PropTypes.oneOf(['custom', 'native', 'none']),\n PropTypes.shape({\n type: PropTypes.oneOf(['custom', 'native']).isRequired,\n operator: PropTypes.oneOf(['and', 'or'])\n })\n ]),\n /**\n * There are two `filter_options` props in the table.\n * This is the table-level filter_options prop and there is\n * also the column-level `filter_options` prop.\n * If the column-level `filter_options` prop is set it overrides\n * the table-level `filter_options` prop for that column.\n */\n filter_options: PropTypes.shape({\n /**\n * (default: 'sensitive') Determine whether the applicable filter relational operators will default to `sensitive` or `insensitive` comparison.\n */\n case: PropTypes.oneOf(['sensitive', 'insensitive']),\n /**\n * (default: 'filter data...') The filter cell placeholder text.\n */\n placeholder_text: PropTypes.string\n }),\n /**\n * The `sort_action` property enables data to be\n * sorted on a per-column basis.\n * If `'none'`, then the sorting UI is not displayed.\n * If `'native'`, then the sorting UI is displayed and the sorting\n * logic is handled by the table. That is, it is performed on the data\n * that exists in the `data` property.\n * If `'custom'`, the the sorting UI is displayed but it is the\n * responsibility of the developer to program the sorting\n * through a callback (where `sort_by` would be the input and `data`\n * would be the output).\n * Clicking on the sort arrows will update the\n * `sort_by` property.\n */\n sort_action: PropTypes.oneOf(['custom', 'native', 'none']),\n /**\n * Sorting can be performed across multiple columns\n * (e.g. sort by country, sort within each country,\n * sort by year) or by a single column.\n * NOTE - With multi-column sort, it's currently\n * not possible to determine the order in which\n * the columns were sorted through the UI.\n * See [https://github.com/plotly/dash-table/issues/170](https://github.com/plotly/dash-table/issues/170)\n */\n sort_mode: PropTypes.oneOf(['single', 'multi']),\n /**\n * `sort_by` describes the current state\n * of the sorting UI.\n * That is, if the user clicked on the sort arrow\n * of a column, then this property will be updated\n * with the column ID and the direction\n * (`asc` or `desc`) of the sort.\n * For multi-column sorting, this will be a list of\n * sorting parameters, in the order in which they were\n * clicked.\n */\n sort_by: PropTypes.arrayOf(\n PropTypes.exact({\n column_id: PropTypes.string.isRequired,\n direction: PropTypes.oneOf(['asc', 'desc']).isRequired\n })\n ),\n /**\n * An array of string, number and boolean values that are treated as `None`\n * (i.e. ignored and always displayed last) when sorting.\n * This value will be used by columns without `sort_as_null`.\n * Defaults to `[]`.\n */\n sort_as_null: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool\n ])\n ),\n /**\n * `dropdown` specifies dropdown options for different columns.\n * Each entry refers to the column ID.\n * The `clearable` property defines whether the value can be deleted.\n * The `options` property refers to the `options` of the dropdown.\n */\n dropdown: PropTypes.objectOf(\n PropTypes.exact({\n clearable: PropTypes.bool,\n options: PropTypes.arrayOf(\n PropTypes.exact({\n label: PropTypes.string.isRequired,\n value: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n PropTypes.bool\n ]).isRequired\n })\n ).isRequired\n })\n ),\n /**\n * `dropdown_conditional` specifies dropdown options in various columns and cells.\n * This property allows you to specify different dropdowns\n * depending on certain conditions. For example, you may\n * render different \"city\" dropdowns in a row depending on the\n * current value in the \"state\" column.\n */\n dropdown_conditional: PropTypes.arrayOf(\n PropTypes.exact({\n clearable: PropTypes.bool,\n if: PropTypes.exact({\n column_id: PropTypes.string,\n filter_query: PropTypes.string\n }),\n options: PropTypes.arrayOf(\n PropTypes.exact({\n label: PropTypes.string.isRequired,\n value: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n PropTypes.bool\n ]).isRequired\n })\n ).isRequired\n })\n ),\n /**\n * `dropdown_data` specifies dropdown options on a row-by-row, column-by-column basis.\n * Each item in the array corresponds to the corresponding dropdowns for the `data` item\n * at the same index. Each entry in the item refers to the Column ID.\n */\n dropdown_data: PropTypes.arrayOf(\n PropTypes.objectOf(\n PropTypes.exact({\n clearable: PropTypes.bool,\n options: PropTypes.arrayOf(\n PropTypes.exact({\n label: PropTypes.string.isRequired,\n value: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n PropTypes.bool\n ]).isRequired\n })\n ).isRequired\n })\n )\n ),\n /**\n * `tooltip` is the column based tooltip configuration applied to all rows. The key is the column\n * id and the value is a tooltip configuration.\n * Example: {i: {'value': i, 'use_with: 'both'} for i in df.columns}\n */\n tooltip: PropTypes.objectOf(\n PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.exact({\n /**\n * Represents the delay in milliseconds before\n * the tooltip is shown when hovering a cell. This overrides\n * the table's `tooltip_delay` property. If set to `None`,\n * the tooltip will be shown immediately.\n */\n delay: PropTypes.number,\n /**\n * represents the duration in milliseconds\n * during which the tooltip is shown when hovering a cell.\n * This overrides the table's `tooltip_duration` property.\n * If set to `None`, the tooltip will not disappear.\n */\n duration: PropTypes.number,\n /**\n * refers to the type of tooltip syntax used\n * for the tooltip generation. Can either be `markdown`\n * or `text`. Defaults to `text`.\n */\n type: PropTypes.oneOf(['text', 'markdown']),\n /**\n * Refers to whether the tooltip will be shown\n * only on data or headers. Can be `both`, `data`, `header`.\n * Defaults to `both`.\n */\n use_with: PropTypes.oneOf(['both', 'data', 'header']),\n /**\n * refers to the syntax-based content of\n * the tooltip. This value is required. Alternatively, the value of the\n * property can also be a plain string. The `text` syntax will be used in\n * that case.\n */\n value: PropTypes.string.isRequired\n })\n ])\n ),\n /**\n * `tooltip_conditional` represents the tooltip shown\n * for different columns and cells.\n * This property allows you to specify different tooltips\n * depending on certain conditions. For example, you may have\n * different tooltips in the same column based on the value\n * of a certain data property.\n * Priority is from first to last defined conditional tooltip\n * in the list. Higher priority (more specific) conditional\n * tooltips should be put at the beginning of the list.\n */\n tooltip_conditional: PropTypes.arrayOf(\n PropTypes.exact({\n /**\n * The `delay` represents the delay in milliseconds before\n * the tooltip is shown when hovering a cell. This overrides\n * the table's `tooltip_delay` property. If set to `None`,\n * the tooltip will be shown immediately.\n */\n delay: PropTypes.number,\n /**\n * The `duration` represents the duration in milliseconds\n * during which the tooltip is shown when hovering a cell.\n * This overrides the table's `tooltip_duration` property.\n * If set to `None`, the tooltip will not disappear.\n */\n duration: PropTypes.number,\n /**\n * The `if` refers to the condition that needs to be fulfilled\n * in order for the associated tooltip configuration to be\n * used. If multiple conditions are defined, all conditions\n * must be met for the tooltip to be used by a cell.\n */\n if: PropTypes.exact({\n /**\n * `column_id` refers to the column ID that must be matched.\n */\n column_id: PropTypes.string,\n /**\n * `filter_query` refers to the query that must evaluate to True.\n */\n filter_query: PropTypes.string,\n /**\n * `row_index` refers to the index of the row in the source `data`.\n */\n row_index: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.oneOf(['odd', 'even'])\n ])\n }).isRequired,\n /**\n * The `type` refers to the type of tooltip syntax used\n * for the tooltip generation. Can either be `markdown`\n * or `text`. Defaults to `text`.\n */\n type: PropTypes.oneOf(['text', 'markdown']),\n /**\n * The `value` refers to the syntax-based content of the tooltip. This value is required.\n */\n value: PropTypes.string.isRequired\n })\n ),\n /**\n * `tooltip_data` represents the tooltip shown\n * for different columns and cells.\n * A list of dicts for which each key is\n * a column id and the value is a tooltip configuration.\n */\n tooltip_data: PropTypes.arrayOf(\n PropTypes.objectOf(\n PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.exact({\n /**\n * The `delay` represents the delay in milliseconds before\n * the tooltip is shown when hovering a cell. This overrides\n * the table's `tooltip_delay` property. If set to `None`,\n * the tooltip will be shown immediately.\n */\n delay: PropTypes.number,\n /**\n * The `duration` represents the duration in milliseconds\n * during which the tooltip is shown when hovering a cell.\n * This overrides the table's `tooltip_duration` property.\n * If set to `None`, the tooltip will not disappear.\n * Alternatively, the value of the property can also be\n * a plain string. The `text` syntax will be used in\n * that case.\n */\n duration: PropTypes.number,\n /**\n * For each tooltip configuration,\n * The `type` refers to the type of tooltip syntax used\n * for the tooltip generation. Can either be `markdown`\n * or `text`. Defaults to `text`.\n */\n type: PropTypes.oneOf(['text', 'markdown']),\n /**\n * The `value` refers to the syntax-based content of the tooltip. This value is required.\n */\n value: PropTypes.string.isRequired\n })\n ])\n )\n ),\n /**\n * `tooltip_header` represents the tooltip shown\n * for each header column and optionally each header row.\n * Example to show long column names in a tooltip: {i: i for i in df.columns}.\n * Example to show different column names in a tooltip: {'Rep': 'Republican', 'Dem': 'Democrat'}.\n * If the table has multiple rows of headers, then use a list as the value of the\n * `tooltip_header` items.\n *\n *\n */\n tooltip_header: PropTypes.objectOf(\n PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.exact({\n /**\n * The `delay` represents the delay in milliseconds before\n * the tooltip is shown when hovering a cell. This overrides\n * the table's `tooltip_delay` property. If set to `None`,\n * the tooltip will be shown immediately.\n */\n delay: PropTypes.number,\n /**\n * The `duration` represents the duration in milliseconds\n * during which the tooltip is shown when hovering a cell.\n * This overrides the table's `tooltip_duration` property.\n * If set to `None`, the tooltip will not disappear.\n * Alternatively, the value of the property can also be\n * a plain string. The `text` syntax will be used in\n * that case.\n */\n duration: PropTypes.number,\n /**\n * For each tooltip configuration,\n * The `type` refers to the type of tooltip syntax used\n * for the tooltip generation. Can either be `markdown`\n * or `text`. Defaults to `text`.\n */\n type: PropTypes.oneOf(['text', 'markdown']),\n /**\n * The `value` refers to the syntax-based content of the tooltip. This value is required.\n */\n value: PropTypes.string.isRequired\n }),\n PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.oneOf([null]),\n PropTypes.string,\n PropTypes.exact({\n delay: PropTypes.number,\n duration: PropTypes.number,\n type: PropTypes.oneOf(['text', 'markdown']),\n value: PropTypes.string.isRequired\n })\n ])\n )\n ])\n ),\n /**\n * `tooltip_delay` represents the table-wide delay in milliseconds before\n * the tooltip is shown when hovering a cell. If set to `None`, the tooltip\n * will be shown immediately.\n * Defaults to 350.\n */\n tooltip_delay: PropTypes.number,\n /**\n * `tooltip_duration` represents the table-wide duration in milliseconds\n * during which the tooltip will be displayed when hovering a cell. If\n * set to `None`, the tooltip will not disappear.\n * Defaults to 2000.\n */\n tooltip_duration: PropTypes.number,\n /**\n * The localization specific formatting information applied to all columns in the table.\n * This prop is derived from the [d3.formatLocale](https://github.com/d3/d3-format#formatLocale) data structure specification.\n * When left unspecified, each individual nested prop will default to a pre-determined value.\n */\n locale_format: PropTypes.exact({\n /**\n * (default: ['$', '']). A list of two strings representing the\n * prefix and suffix symbols. Typically used for currency, and implemented using d3's\n * currency format, but you can use this for other symbols such as measurement units.\n */\n symbol: PropTypes.arrayOf(PropTypes.string),\n /**\n * (default: '.'). The string used for the decimal separator.\n */\n decimal: PropTypes.string,\n /**\n * (default: ','). The string used for the groups separator.\n */\n group: PropTypes.string,\n /**\n * (default: [3]). A list of integers representing the grouping pattern.\n */\n grouping: PropTypes.arrayOf(PropTypes.number),\n /**\n * A list of ten strings used as replacements for numbers 0-9.\n */\n numerals: PropTypes.arrayOf(PropTypes.string),\n /**\n * (default: '%'). The string used for the percentage symbol.\n */\n percent: PropTypes.string,\n /**\n * (default: True). Separate integers with 4-digits or less.\n */\n separate_4digits: PropTypes.bool\n }),\n /**\n * If True, then the table will be styled like a list view\n * and not have borders between the columns.\n */\n style_as_list_view: PropTypes.bool,\n /**\n * `fill_width` toggles between a set of CSS for two common behaviors:\n * True: The table container's width will grow to fill the available space;\n * False: The table container's width will equal the width of its content.\n */\n fill_width: PropTypes.bool,\n /**\n * The `markdown_options` property allows customization of the markdown cells behavior.\n */\n markdown_options: PropTypes.exact({\n /**\n * (default: '_blank'). The link's behavior (_blank opens the link in a\n * new tab, _parent opens the link in the parent frame, _self opens the link in the\n * current tab, and _top opens the link in the top frame) or a string\n */\n link_target: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.oneOf(['_blank', '_parent', '_self', '_top'])\n ]),\n /**\n * (default: False) If True, html may be used in markdown cells\n * Be careful enabling html if the content being rendered can come\n * from an untrusted user, as this may create an XSS vulnerability.\n */\n html: PropTypes.bool\n }),\n /**\n * The `css` property is a way to embed CSS selectors and rules\n * onto the page.\n * We recommend starting with the `style_*` properties\n * before using this `css` property.\n * Example:\n * [\n * {\"selector\": \".dash-spreadsheet\", \"rule\": 'font-family: \"monospace\"'}\n * ]\n */\n css: PropTypes.arrayOf(\n PropTypes.exact({\n selector: PropTypes.string.isRequired,\n rule: PropTypes.string.isRequired\n })\n ),\n /**\n * CSS styles to be applied to the outer `table` container.\n * This is commonly used for setting properties like the\n * width or the height of the table.\n */\n style_table: PropTypes.object,\n /**\n * CSS styles to be applied to each individual cell of the table.\n * This includes the header cells, the `data` cells, and the filter\n * cells.\n */\n style_cell: PropTypes.object,\n /**\n * CSS styles to be applied to each individual data cell.\n * That is, unlike `style_cell`, it excludes the header and filter cells.\n */\n style_data: PropTypes.object,\n /**\n * CSS styles to be applied to the filter cells.\n * Note that this may change in the future as we build out a\n * more complex filtering UI.\n */\n style_filter: PropTypes.object,\n /**\n * CSS styles to be applied to each individual header cell.\n * That is, unlike `style_cell`, it excludes the `data` and filter cells.\n */\n style_header: PropTypes.object,\n /**\n * Conditional CSS styles for the cells.\n * This can be used to apply styles to cells on a per-column basis.\n */\n style_cell_conditional: PropTypes.arrayOf(\n PropTypes.shape({\n if: PropTypes.exact({\n column_id: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n column_type: PropTypes.oneOf([\n 'any',\n 'numeric',\n 'text',\n 'datetime'\n ])\n })\n })\n ),\n /**\n * Conditional CSS styles for the data cells.\n * This can be used to apply styles to data cells on a per-column basis.\n */\n style_data_conditional: PropTypes.arrayOf(\n PropTypes.shape({\n if: PropTypes.exact({\n column_id: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n column_type: PropTypes.oneOf([\n 'any',\n 'numeric',\n 'text',\n 'datetime'\n ]),\n filter_query: PropTypes.string,\n state: PropTypes.oneOf(['active', 'selected']),\n row_index: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.oneOf(['odd', 'even']),\n PropTypes.arrayOf(PropTypes.number)\n ]),\n column_editable: PropTypes.bool\n })\n })\n ),\n /**\n * Conditional CSS styles for the filter cells.\n * This can be used to apply styles to filter cells on a per-column basis.\n */\n style_filter_conditional: PropTypes.arrayOf(\n PropTypes.shape({\n if: PropTypes.exact({\n column_id: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n column_type: PropTypes.oneOf([\n 'any',\n 'numeric',\n 'text',\n 'datetime'\n ]),\n column_editable: PropTypes.bool\n })\n })\n ),\n /**\n * Conditional CSS styles for the header cells.\n * This can be used to apply styles to header cells on a per-column basis.\n */\n style_header_conditional: PropTypes.arrayOf(\n PropTypes.shape({\n if: PropTypes.exact({\n column_id: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n column_type: PropTypes.oneOf([\n 'any',\n 'numeric',\n 'text',\n 'datetime'\n ]),\n header_index: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.arrayOf(PropTypes.number),\n PropTypes.oneOf(['odd', 'even'])\n ]),\n column_editable: PropTypes.bool\n })\n })\n ),\n /**\n * This property tells the table to use virtualization when rendering.\n * Assumptions are that:\n * the width of the columns is fixed;\n * the height of the rows is always the same; and\n * runtime styling changes will not affect width and height vs. first rendering\n */\n virtualization: PropTypes.bool,\n /**\n * This property represents the current structure of\n * `filter_query` as a tree structure. Each node of the\n * query structure has:\n * type (string; required):\n * 'open-block',\n * 'logical-operator',\n * 'relational-operator',\n * 'unary-operator', or\n * 'expression';\n * subType (string; optional):\n * 'open-block': '()',\n * 'logical-operator': '&&', '||',\n * 'relational-operator': '=', '>=', '>', '<=', '<', '!=', 'contains',\n * 'unary-operator': '!', 'is bool', 'is even', 'is nil', 'is num', 'is object', 'is odd', 'is prime', 'is str',\n * 'expression': 'value', 'field';\n * value (any):\n * 'expression, value': passed value,\n * 'expression, field': the field/prop name.\n * block (nested query structure; optional).\n * left (nested query structure; optional).\n * right (nested query structure; optional).\n * If the query is invalid or empty, the `derived_filter_query_structure` will\n * be `None`.\n */\n derived_filter_query_structure: PropTypes.object,\n /**\n * This property represents the current state of `data`\n * on the current page. This property will be updated\n * on paging, sorting, and filtering.\n */\n derived_viewport_data: PropTypes.arrayOf(PropTypes.object),\n /**\n * `derived_viewport_indices` indicates the order in which the original\n * rows appear after being filtered, sorted, and/or paged.\n * `derived_viewport_indices` contains indices for the current page,\n * while `derived_virtual_indices` contains indices across all pages.\n */\n derived_viewport_indices: PropTypes.arrayOf(PropTypes.number),\n /**\n * `derived_viewport_row_ids` lists row IDs in the order they appear\n * after being filtered, sorted, and/or paged.\n * `derived_viewport_row_ids` contains IDs for the current page,\n * while `derived_virtual_row_ids` contains IDs across all pages.\n */\n derived_viewport_row_ids: PropTypes.arrayOf(\n PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n ),\n /**\n * `derived_viewport_selected_columns` contains the ids of the\n * `selected_columns` that are not currently hidden.\n */\n derived_viewport_selected_columns: PropTypes.arrayOf(PropTypes.string),\n /**\n * `derived_viewport_selected_rows` represents the indices of the\n * `selected_rows` from the perspective of the `derived_viewport_indices`.\n */\n derived_viewport_selected_rows: PropTypes.arrayOf(PropTypes.number),\n /**\n * `derived_viewport_selected_row_ids` represents the IDs of the\n * `selected_rows` on the currently visible page.\n */\n derived_viewport_selected_row_ids: PropTypes.arrayOf(\n PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n ),\n /**\n * This property represents the visible state of `data`\n * across all pages after the front-end sorting and filtering\n * as been applied.\n */\n derived_virtual_data: PropTypes.arrayOf(PropTypes.object),\n /**\n * `derived_virtual_indices` indicates the order in which the original\n * rows appear after being filtered and sorted.\n * `derived_viewport_indices` contains indices for the current page,\n * while `derived_virtual_indices` contains indices across all pages.\n */\n derived_virtual_indices: PropTypes.arrayOf(PropTypes.number),\n /**\n * `derived_virtual_row_ids` indicates the row IDs in the order in which\n * they appear after being filtered and sorted.\n * `derived_viewport_row_ids` contains IDs for the current page,\n * while `derived_virtual_row_ids` contains IDs across all pages.\n */\n derived_virtual_row_ids: PropTypes.arrayOf(\n PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n ),\n /**\n * `derived_virtual_selected_rows` represents the indices of the\n * `selected_rows` from the perspective of the `derived_virtual_indices`.\n */\n derived_virtual_selected_rows: PropTypes.arrayOf(PropTypes.number),\n /**\n * `derived_virtual_selected_row_ids` represents the IDs of the\n * `selected_rows` as they appear after filtering and sorting,\n * across all pages.\n */\n derived_virtual_selected_row_ids: PropTypes.arrayOf(\n PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n ),\n /**\n * The ID of the table.\n */\n id: PropTypes.string,\n /**\n * Dash-assigned callback that gets fired when the user makes changes.\n */\n setProps: PropTypes.func,\n /**\n * Object that holds the loading state object coming from dash-renderer\n */\n loading_state: PropTypes.shape({\n /**\n * Determines if the component is loading or not\n */\n is_loading: PropTypes.bool,\n /**\n * Holds which property is loading\n */\n prop_name: PropTypes.string,\n /**\n * Holds the name of the component that is loading\n */\n component_name: PropTypes.string\n }),\n /**\n * Used to allow user interactions in this component to be persisted when\n * the component - or the page - is refreshed. If `persisted` is truthy and\n * hasn't changed from its previous value, any `persisted_props` that the\n * user has changed while using the app will keep those changes, as long as\n * the new prop value also matches what was given originally.\n * Used in conjunction with `persistence_type` and `persisted_props`.\n */\n persistence: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.string,\n PropTypes.number\n ]),\n /**\n * Properties whose user interactions will persist after refreshing the\n * component or the page.\n */\n persisted_props: PropTypes.arrayOf(\n PropTypes.oneOf([\n 'columns.name',\n 'data',\n 'filter_query',\n 'hidden_columns',\n 'page_current',\n 'selected_columns',\n 'selected_rows',\n 'sort_by'\n ])\n ),\n /**\n * Where persisted user changes will be stored:\n * memory: only kept in memory, reset on page refresh.\n * local: window.localStorage, data is kept after the browser quit.\n * session: window.sessionStorage, data is cleared once the browser quit.\n */\n persistence_type: PropTypes.oneOf(['local', 'session', 'memory'])\n};\nDataTable.persistenceTransforms = {\n columns: {\n name: {\n extract: propValue => R.pluck('name', propValue),\n apply: (storedValue, propValue) =>\n R.zipWith(R.assoc('name'), storedValue, propValue)\n }\n }\n};\nDataTable.defaultProps = defaultProps;\nDataTable.propTypes = propTypes;\n","/*! https://mths.be/cssescape v1.5.1 by @mathias | MIT license */\n;(function(root, factory) {\n\t// https://github.com/umdjs/umd/blob/master/returnExports.js\n\tif (typeof exports == 'object') {\n\t\t// For Node.js.\n\t\tmodule.exports = factory(root);\n\t} else if (typeof define == 'function' && define.amd) {\n\t\t// For AMD. Register as an anonymous module.\n\t\tdefine([], factory.bind(root, root));\n\t} else {\n\t\t// For browser globals (not exposing the function separately).\n\t\tfactory(root);\n\t}\n}(typeof global != 'undefined' ? global : this, function(root) {\n\n\tif (root.CSS && root.CSS.escape) {\n\t\treturn root.CSS.escape;\n\t}\n\n\t// https://drafts.csswg.org/cssom/#serialize-an-identifier\n\tvar cssEscape = function(value) {\n\t\tif (arguments.length == 0) {\n\t\t\tthrow new TypeError('`CSS.escape` requires an argument.');\n\t\t}\n\t\tvar string = String(value);\n\t\tvar length = string.length;\n\t\tvar index = -1;\n\t\tvar codeUnit;\n\t\tvar result = '';\n\t\tvar firstCodeUnit = string.charCodeAt(0);\n\t\twhile (++index < length) {\n\t\t\tcodeUnit = string.charCodeAt(index);\n\t\t\t// Note: theres no need to special-case astral symbols, surrogate\n\t\t\t// pairs, or lone surrogates.\n\n\t\t\t// If the character is NULL (U+0000), then the REPLACEMENT CHARACTER\n\t\t\t// (U+FFFD).\n\t\t\tif (codeUnit == 0x0000) {\n\t\t\t\tresult += '\\uFFFD';\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t// If the character is in the range [\\1-\\1F] (U+0001 to U+001F) or is\n\t\t\t\t// U+007F, […]\n\t\t\t\t(codeUnit >= 0x0001 && codeUnit <= 0x001F) || codeUnit == 0x007F ||\n\t\t\t\t// If the character is the first character and is in the range [0-9]\n\t\t\t\t// (U+0030 to U+0039), […]\n\t\t\t\t(index == 0 && codeUnit >= 0x0030 && codeUnit <= 0x0039) ||\n\t\t\t\t// If the character is the second character and is in the range [0-9]\n\t\t\t\t// (U+0030 to U+0039) and the first character is a `-` (U+002D), […]\n\t\t\t\t(\n\t\t\t\t\tindex == 1 &&\n\t\t\t\t\tcodeUnit >= 0x0030 && codeUnit <= 0x0039 &&\n\t\t\t\t\tfirstCodeUnit == 0x002D\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\t// https://drafts.csswg.org/cssom/#escape-a-character-as-code-point\n\t\t\t\tresult += '\\\\' + codeUnit.toString(16) + ' ';\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t// If the character is the first character and is a `-` (U+002D), and\n\t\t\t\t// there is no second character, […]\n\t\t\t\tindex == 0 &&\n\t\t\t\tlength == 1 &&\n\t\t\t\tcodeUnit == 0x002D\n\t\t\t) {\n\t\t\t\tresult += '\\\\' + string.charAt(index);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If the character is not handled by one of the above rules and is\n\t\t\t// greater than or equal to U+0080, is `-` (U+002D) or `_` (U+005F), or\n\t\t\t// is in one of the ranges [0-9] (U+0030 to U+0039), [A-Z] (U+0041 to\n\t\t\t// U+005A), or [a-z] (U+0061 to U+007A), […]\n\t\t\tif (\n\t\t\t\tcodeUnit >= 0x0080 ||\n\t\t\t\tcodeUnit == 0x002D ||\n\t\t\t\tcodeUnit == 0x005F ||\n\t\t\t\tcodeUnit >= 0x0030 && codeUnit <= 0x0039 ||\n\t\t\t\tcodeUnit >= 0x0041 && codeUnit <= 0x005A ||\n\t\t\t\tcodeUnit >= 0x0061 && codeUnit <= 0x007A\n\t\t\t) {\n\t\t\t\t// the character itself\n\t\t\t\tresult += string.charAt(index);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Otherwise, the escaped character.\n\t\t\t// https://drafts.csswg.org/cssom/#escape-a-character\n\t\t\tresult += '\\\\' + string.charAt(index);\n\n\t\t}\n\t\treturn result;\n\t};\n\n\tif (!root.CSS) {\n\t\troot.CSS = {};\n\t}\n\n\troot.CSS.escape = cssEscape;\n\treturn cssEscape;\n\n}));\n","module.exports = window[\"PropTypes\"];","module.exports = window[\"React\"];","module.exports = window[\"ReactDOM\"];","/**\n * Private `concat` function to merge two array-like objects.\n *\n * @private\n * @param {Array|Arguments} [set1=[]] An array-like object.\n * @param {Array|Arguments} [set2=[]] An array-like object.\n * @return {Array} A new, merged array.\n * @example\n *\n * _concat([4, 5, 6], [1, 2, 3]); //=> [4, 5, 6, 1, 2, 3]\n */\nexport default function _concat(set1, set2) {\n set1 = set1 || [];\n set2 = set2 || [];\n var idx;\n var len1 = set1.length;\n var len2 = set2.length;\n var result = [];\n idx = 0;\n\n while (idx < len1) {\n result[result.length] = set1[idx];\n idx += 1;\n }\n\n idx = 0;\n\n while (idx < len2) {\n result[result.length] = set2[idx];\n idx += 1;\n }\n\n return result;\n}","export default function _arity(n, fn) {\n /* eslint-disable no-unused-vars */\n switch (n) {\n case 0:\n return function () {\n return fn.apply(this, arguments);\n };\n\n case 1:\n return function (a0) {\n return fn.apply(this, arguments);\n };\n\n case 2:\n return function (a0, a1) {\n return fn.apply(this, arguments);\n };\n\n case 3:\n return function (a0, a1, a2) {\n return fn.apply(this, arguments);\n };\n\n case 4:\n return function (a0, a1, a2, a3) {\n return fn.apply(this, arguments);\n };\n\n case 5:\n return function (a0, a1, a2, a3, a4) {\n return fn.apply(this, arguments);\n };\n\n case 6:\n return function (a0, a1, a2, a3, a4, a5) {\n return fn.apply(this, arguments);\n };\n\n case 7:\n return function (a0, a1, a2, a3, a4, a5, a6) {\n return fn.apply(this, arguments);\n };\n\n case 8:\n return function (a0, a1, a2, a3, a4, a5, a6, a7) {\n return fn.apply(this, arguments);\n };\n\n case 9:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {\n return fn.apply(this, arguments);\n };\n\n case 10:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {\n return fn.apply(this, arguments);\n };\n\n default:\n throw new Error('First argument to _arity must be a non-negative integer no greater than ten');\n }\n}","import _arity from \"./_arity.js\";\nimport _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Internal curryN function.\n *\n * @private\n * @category Function\n * @param {Number} length The arity of the curried function.\n * @param {Array} received An array of arguments received thus far.\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curryN(length, received, fn) {\n return function () {\n var combined = [];\n var argsIdx = 0;\n var left = length;\n var combinedIdx = 0;\n\n while (combinedIdx < received.length || argsIdx < arguments.length) {\n var result;\n\n if (combinedIdx < received.length && (!_isPlaceholder(received[combinedIdx]) || argsIdx >= arguments.length)) {\n result = received[combinedIdx];\n } else {\n result = arguments[argsIdx];\n argsIdx += 1;\n }\n\n combined[combinedIdx] = result;\n\n if (!_isPlaceholder(result)) {\n left -= 1;\n }\n\n combinedIdx += 1;\n }\n\n return left <= 0 ? fn.apply(this, combined) : _arity(left, _curryN(length, combined, fn));\n };\n}","import _arity from \"./internal/_arity.js\";\nimport _curry1 from \"./internal/_curry1.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport _curryN from \"./internal/_curryN.js\";\n/**\n * Returns a curried equivalent of the provided function, with the specified\n * arity. The curried function has two unusual capabilities. First, its\n * arguments needn't be provided one at a time. If `g` is `R.curryN(3, f)`, the\n * following are equivalent:\n *\n * - `g(1)(2)(3)`\n * - `g(1)(2, 3)`\n * - `g(1, 2)(3)`\n * - `g(1, 2, 3)`\n *\n * Secondly, the special placeholder value [`R.__`](#__) may be used to specify\n * \"gaps\", allowing partial application of any combination of arguments,\n * regardless of their positions. If `g` is as above and `_` is [`R.__`](#__),\n * the following are equivalent:\n *\n * - `g(1, 2, 3)`\n * - `g(_, 2, 3)(1)`\n * - `g(_, _, 3)(1)(2)`\n * - `g(_, _, 3)(1, 2)`\n * - `g(_, 2)(1)(3)`\n * - `g(_, 2)(1, 3)`\n * - `g(_, 2)(_, 3)(1)`\n *\n * @func\n * @memberOf R\n * @since v0.5.0\n * @category Function\n * @sig Number -> (* -> a) -> (* -> a)\n * @param {Number} length The arity for the returned function.\n * @param {Function} fn The function to curry.\n * @return {Function} A new, curried function.\n * @see R.curry\n * @example\n *\n * const sumArgs = (...args) => R.sum(args);\n *\n * const curriedAddFourNumbers = R.curryN(4, sumArgs);\n * const f = curriedAddFourNumbers(1, 2);\n * const g = f(3);\n * g(4); //=> 10\n */\n\nvar curryN =\n/*#__PURE__*/\n_curry2(function curryN(length, fn) {\n if (length === 1) {\n return _curry1(fn);\n }\n\n return _arity(length, _curryN(length, [], fn));\n});\n\nexport default curryN;","import _concat from \"./internal/_concat.js\";\nimport _curry1 from \"./internal/_curry1.js\";\nimport curryN from \"./curryN.js\";\n/**\n * Creates a new list iteration function from an existing one by adding two new\n * parameters to its callback function: the current index, and the entire list.\n *\n * This would turn, for instance, [`R.map`](#map) function into one that\n * more closely resembles `Array.prototype.map`. Note that this will only work\n * for functions in which the iteration callback function is the first\n * parameter, and where the list is the last parameter. (This latter might be\n * unimportant if the list parameter is not used.)\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Function\n * @category List\n * @sig (((a ...) -> b) ... -> [a] -> *) -> (((a ..., Int, [a]) -> b) ... -> [a] -> *)\n * @param {Function} fn A list iteration function that does not pass index or list to its callback\n * @return {Function} An altered list iteration function that passes (item, index, list) to its callback\n * @example\n *\n * const mapIndexed = R.addIndex(R.map);\n * mapIndexed((val, idx) => idx + '-' + val, ['f', 'o', 'o', 'b', 'a', 'r']);\n * //=> ['0-f', '1-o', '2-o', '3-b', '4-a', '5-r']\n */\n\nvar addIndex =\n/*#__PURE__*/\n_curry1(function addIndex(fn) {\n return curryN(fn.length, function () {\n var idx = 0;\n var origFn = arguments[0];\n var list = arguments[arguments.length - 1];\n var args = Array.prototype.slice.call(arguments, 0);\n\n args[0] = function () {\n var result = origFn.apply(this, _concat(arguments, [idx, list]));\n idx += 1;\n return result;\n };\n\n return fn.apply(this, args);\n });\n});\n\nexport default addIndex;","/**\n * Tests whether or not an object is an array.\n *\n * @private\n * @param {*} val The object to test.\n * @return {Boolean} `true` if `val` is an array, `false` otherwise.\n * @example\n *\n * _isArray([]); //=> true\n * _isArray(null); //=> false\n * _isArray({}); //=> false\n */\nexport default Array.isArray || function _isArray(val) {\n return val != null && val.length >= 0 && Object.prototype.toString.call(val) === '[object Array]';\n};","import _isArray from \"./_isArray.js\";\nimport _isTransformer from \"./_isTransformer.js\";\n/**\n * Returns a function that dispatches with different strategies based on the\n * object in list position (last argument). If it is an array, executes [fn].\n * Otherwise, if it has a function with one of the given method names, it will\n * execute that function (functor case). Otherwise, if it is a transformer,\n * uses transducer created by [transducerCreator] to return a new transformer\n * (transducer case).\n * Otherwise, it will default to executing [fn].\n *\n * @private\n * @param {Array} methodNames properties to check for a custom implementation\n * @param {Function} transducerCreator transducer factory if object is transformer\n * @param {Function} fn default ramda implementation\n * @return {Function} A function that dispatches on object in list position\n */\n\nexport default function _dispatchable(methodNames, transducerCreator, fn) {\n return function () {\n if (arguments.length === 0) {\n return fn();\n }\n\n var obj = arguments[arguments.length - 1];\n\n if (!_isArray(obj)) {\n var idx = 0;\n\n while (idx < methodNames.length) {\n if (typeof obj[methodNames[idx]] === 'function') {\n return obj[methodNames[idx]].apply(obj, Array.prototype.slice.call(arguments, 0, -1));\n }\n\n idx += 1;\n }\n\n if (_isTransformer(obj)) {\n var transducer = transducerCreator.apply(null, Array.prototype.slice.call(arguments, 0, -1));\n return transducer(obj);\n }\n }\n\n return fn.apply(this, arguments);\n };\n}","export default function _isTransformer(obj) {\n return obj != null && typeof obj['@@transducer/step'] === 'function';\n}","export default function _reduced(x) {\n return x && x['@@transducer/reduced'] ? x : {\n '@@transducer/value': x,\n '@@transducer/reduced': true\n };\n}","export default {\n init: function () {\n return this.xf['@@transducer/init']();\n },\n result: function (result) {\n return this.xf['@@transducer/result'](result);\n }\n};","import _reduced from \"./_reduced.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XAll =\n/*#__PURE__*/\nfunction () {\n function XAll(f, xf) {\n this.xf = xf;\n this.f = f;\n this.all = true;\n }\n\n XAll.prototype['@@transducer/init'] = _xfBase.init;\n\n XAll.prototype['@@transducer/result'] = function (result) {\n if (this.all) {\n result = this.xf['@@transducer/step'](result, true);\n }\n\n return this.xf['@@transducer/result'](result);\n };\n\n XAll.prototype['@@transducer/step'] = function (result, input) {\n if (!this.f(input)) {\n this.all = false;\n result = _reduced(this.xf['@@transducer/step'](result, false));\n }\n\n return result;\n };\n\n return XAll;\n}();\n\nexport default function _xall(f) {\n return function (xf) {\n return new XAll(f, xf);\n };\n}","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xall from \"./internal/_xall.js\";\n/**\n * Returns `true` if all elements of the list match the predicate, `false` if\n * there are any that don't.\n *\n * Dispatches to the `all` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> Boolean\n * @param {Function} fn The predicate function.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if the predicate is satisfied by every element, `false`\n * otherwise.\n * @see R.any, R.none, R.transduce\n * @example\n *\n * const equals3 = R.equals(3);\n * R.all(equals3)([3, 3, 3, 3]); //=> true\n * R.all(equals3)([3, 3, 1, 3]); //=> false\n */\n\nvar all =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['all'], _xall, function all(fn, list) {\n var idx = 0;\n\n while (idx < list.length) {\n if (!fn(list[idx])) {\n return false;\n }\n\n idx += 1;\n }\n\n return true;\n}));\n\nexport default all;","export default function _arrayFromIterator(iter) {\n var list = [];\n var next;\n\n while (!(next = iter.next()).done) {\n list.push(next.value);\n }\n\n return list;\n}","export default function _includesWith(pred, x, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n if (pred(x, list[idx])) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n}","export default function _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}","// Based on https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction _objectIs(a, b) {\n // SameValue algorithm\n if (a === b) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return a !== 0 || 1 / a === 1 / b;\n } else {\n // Step 6.a: NaN == NaN\n return a !== a && b !== b;\n }\n}\n\nexport default typeof Object.is === 'function' ? Object.is : _objectIs;","import _has from \"./_has.js\";\nvar toString = Object.prototype.toString;\n\nvar _isArguments =\n/*#__PURE__*/\nfunction () {\n return toString.call(arguments) === '[object Arguments]' ? function _isArguments(x) {\n return toString.call(x) === '[object Arguments]';\n } : function _isArguments(x) {\n return _has('callee', x);\n };\n}();\n\nexport default _isArguments;","import _curry1 from \"./internal/_curry1.js\";\nimport _has from \"./internal/_has.js\";\nimport _isArguments from \"./internal/_isArguments.js\"; // cover IE < 9 keys issues\n\nvar hasEnumBug = !\n/*#__PURE__*/\n{\n toString: null\n}.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString']; // Safari bug\n\nvar hasArgsEnumBug =\n/*#__PURE__*/\nfunction () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\n\nvar contains = function contains(list, item) {\n var idx = 0;\n\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n};\n/**\n * Returns a list containing the names of all the enumerable own properties of\n * the supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own properties.\n * @see R.keysIn, R.values, R.toPairs\n * @example\n *\n * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']\n */\n\n\nvar keys = typeof Object.keys === 'function' && !hasArgsEnumBug ?\n/*#__PURE__*/\n_curry1(function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n}) :\n/*#__PURE__*/\n_curry1(function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n\n var prop, nIdx;\n var ks = [];\n\n var checkArgsLength = hasArgsEnumBug && _isArguments(obj);\n\n for (prop in obj) {\n if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n\n if (_has(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n\n nIdx -= 1;\n }\n }\n\n return ks;\n});\nexport default keys;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Gives a single-word string description of the (native) type of a value,\n * returning such answers as 'Object', 'Number', 'Array', or 'Null'. Does not\n * attempt to distinguish user Object types any further, reporting them all as\n * 'Object'.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Type\n * @sig * -> String\n * @param {*} val The value to test\n * @return {String}\n * @example\n *\n * R.type({}); //=> \"Object\"\n * R.type(1); //=> \"Number\"\n * R.type(false); //=> \"Boolean\"\n * R.type('s'); //=> \"String\"\n * R.type(null); //=> \"Null\"\n * R.type([]); //=> \"Array\"\n * R.type(/[A-z]/); //=> \"RegExp\"\n * R.type(() => {}); //=> \"Function\"\n * R.type(undefined); //=> \"Undefined\"\n */\n\nvar type =\n/*#__PURE__*/\n_curry1(function type(val) {\n return val === null ? 'Null' : val === undefined ? 'Undefined' : Object.prototype.toString.call(val).slice(8, -1);\n});\n\nexport default type;","import _arrayFromIterator from \"./_arrayFromIterator.js\";\nimport _includesWith from \"./_includesWith.js\";\nimport _functionName from \"./_functionName.js\";\nimport _has from \"./_has.js\";\nimport _objectIs from \"./_objectIs.js\";\nimport keys from \"../keys.js\";\nimport type from \"../type.js\";\n/**\n * private _uniqContentEquals function.\n * That function is checking equality of 2 iterator contents with 2 assumptions\n * - iterators lengths are the same\n * - iterators values are unique\n *\n * false-positive result will be returned for comparison of, e.g.\n * - [1,2,3] and [1,2,3,4]\n * - [1,1,1] and [1,2,3]\n * */\n\nfunction _uniqContentEquals(aIterator, bIterator, stackA, stackB) {\n var a = _arrayFromIterator(aIterator);\n\n var b = _arrayFromIterator(bIterator);\n\n function eq(_a, _b) {\n return _equals(_a, _b, stackA.slice(), stackB.slice());\n } // if *a* array contains any element that is not included in *b*\n\n\n return !_includesWith(function (b, aItem) {\n return !_includesWith(eq, aItem, b);\n }, b, a);\n}\n\nexport default function _equals(a, b, stackA, stackB) {\n if (_objectIs(a, b)) {\n return true;\n }\n\n var typeA = type(a);\n\n if (typeA !== type(b)) {\n return false;\n }\n\n if (typeof a['fantasy-land/equals'] === 'function' || typeof b['fantasy-land/equals'] === 'function') {\n return typeof a['fantasy-land/equals'] === 'function' && a['fantasy-land/equals'](b) && typeof b['fantasy-land/equals'] === 'function' && b['fantasy-land/equals'](a);\n }\n\n if (typeof a.equals === 'function' || typeof b.equals === 'function') {\n return typeof a.equals === 'function' && a.equals(b) && typeof b.equals === 'function' && b.equals(a);\n }\n\n switch (typeA) {\n case 'Arguments':\n case 'Array':\n case 'Object':\n if (typeof a.constructor === 'function' && _functionName(a.constructor) === 'Promise') {\n return a === b;\n }\n\n break;\n\n case 'Boolean':\n case 'Number':\n case 'String':\n if (!(typeof a === typeof b && _objectIs(a.valueOf(), b.valueOf()))) {\n return false;\n }\n\n break;\n\n case 'Date':\n if (!_objectIs(a.valueOf(), b.valueOf())) {\n return false;\n }\n\n break;\n\n case 'Error':\n return a.name === b.name && a.message === b.message;\n\n case 'RegExp':\n if (!(a.source === b.source && a.global === b.global && a.ignoreCase === b.ignoreCase && a.multiline === b.multiline && a.sticky === b.sticky && a.unicode === b.unicode)) {\n return false;\n }\n\n break;\n }\n\n var idx = stackA.length - 1;\n\n while (idx >= 0) {\n if (stackA[idx] === a) {\n return stackB[idx] === b;\n }\n\n idx -= 1;\n }\n\n switch (typeA) {\n case 'Map':\n if (a.size !== b.size) {\n return false;\n }\n\n return _uniqContentEquals(a.entries(), b.entries(), stackA.concat([a]), stackB.concat([b]));\n\n case 'Set':\n if (a.size !== b.size) {\n return false;\n }\n\n return _uniqContentEquals(a.values(), b.values(), stackA.concat([a]), stackB.concat([b]));\n\n case 'Arguments':\n case 'Array':\n case 'Object':\n case 'Boolean':\n case 'Number':\n case 'String':\n case 'Date':\n case 'Error':\n case 'RegExp':\n case 'Int8Array':\n case 'Uint8Array':\n case 'Uint8ClampedArray':\n case 'Int16Array':\n case 'Uint16Array':\n case 'Int32Array':\n case 'Uint32Array':\n case 'Float32Array':\n case 'Float64Array':\n case 'ArrayBuffer':\n break;\n\n default:\n // Values of other types are only equal if identical.\n return false;\n }\n\n var keysA = keys(a);\n\n if (keysA.length !== keys(b).length) {\n return false;\n }\n\n var extendedStackA = stackA.concat([a]);\n var extendedStackB = stackB.concat([b]);\n idx = keysA.length - 1;\n\n while (idx >= 0) {\n var key = keysA[idx];\n\n if (!(_has(key, b) && _equals(b[key], a[key], extendedStackA, extendedStackB))) {\n return false;\n }\n\n idx -= 1;\n }\n\n return true;\n}","export default function _functionName(f) {\n // String(x => x) evaluates to \"x => x\", so the pattern may not match.\n var match = String(f).match(/^function (\\w*)/);\n return match == null ? '' : match[1];\n}","import _curry2 from \"./internal/_curry2.js\";\nimport _equals from \"./internal/_equals.js\";\n/**\n * Returns `true` if its arguments are equivalent, `false` otherwise. Handles\n * cyclical data structures.\n *\n * Dispatches symmetrically to the `equals` methods of both arguments, if\n * present.\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Relation\n * @sig a -> b -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @example\n *\n * R.equals(1, 1); //=> true\n * R.equals(1, '1'); //=> false\n * R.equals([1, 2, 3], [1, 2, 3]); //=> true\n *\n * const a = {}; a.v = a;\n * const b = {}; b.v = b;\n * R.equals(a, b); //=> true\n */\n\nvar equals =\n/*#__PURE__*/\n_curry2(function equals(a, b) {\n return _equals(a, b, [], []);\n});\n\nexport default equals;","import equals from \"../equals.js\";\nexport default function _indexOf(list, a, idx) {\n var inf, item; // Array.prototype.indexOf doesn't exist below IE9\n\n if (typeof list.indexOf === 'function') {\n switch (typeof a) {\n case 'number':\n if (a === 0) {\n // manually crawl the list to distinguish between +0 and -0\n inf = 1 / a;\n\n while (idx < list.length) {\n item = list[idx];\n\n if (item === 0 && 1 / item === inf) {\n return idx;\n }\n\n idx += 1;\n }\n\n return -1;\n } else if (a !== a) {\n // NaN\n while (idx < list.length) {\n item = list[idx];\n\n if (typeof item === 'number' && item !== item) {\n return idx;\n }\n\n idx += 1;\n }\n\n return -1;\n } // non-zero numbers can utilise Set\n\n\n return list.indexOf(a, idx);\n // all these types can utilise Set\n\n case 'string':\n case 'boolean':\n case 'function':\n case 'undefined':\n return list.indexOf(a, idx);\n\n case 'object':\n if (a === null) {\n // null can utilise Set\n return list.indexOf(a, idx);\n }\n\n }\n } // anything else not covered above, defer to R.equals\n\n\n while (idx < list.length) {\n if (equals(list[idx], a)) {\n return idx;\n }\n\n idx += 1;\n }\n\n return -1;\n}","import _indexOf from \"./_indexOf.js\";\nexport default function _includes(a, list) {\n return _indexOf(list, a, 0) >= 0;\n}","export default function _map(fn, functor) {\n var idx = 0;\n var len = functor.length;\n var result = Array(len);\n\n while (idx < len) {\n result[idx] = fn(functor[idx]);\n idx += 1;\n }\n\n return result;\n}","export default function _quote(s) {\n var escaped = s.replace(/\\\\/g, '\\\\\\\\').replace(/[\\b]/g, '\\\\b') // \\b matches word boundary; [\\b] matches backspace\n .replace(/\\f/g, '\\\\f').replace(/\\n/g, '\\\\n').replace(/\\r/g, '\\\\r').replace(/\\t/g, '\\\\t').replace(/\\v/g, '\\\\v').replace(/\\0/g, '\\\\0');\n return '\"' + escaped.replace(/\"/g, '\\\\\"') + '\"';\n}","/**\n * Polyfill from <https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString>.\n */\nvar pad = function pad(n) {\n return (n < 10 ? '0' : '') + n;\n};\n\nvar _toISOString = typeof Date.prototype.toISOString === 'function' ? function _toISOString(d) {\n return d.toISOString();\n} : function _toISOString(d) {\n return d.getUTCFullYear() + '-' + pad(d.getUTCMonth() + 1) + '-' + pad(d.getUTCDate()) + 'T' + pad(d.getUTCHours()) + ':' + pad(d.getUTCMinutes()) + ':' + pad(d.getUTCSeconds()) + '.' + (d.getUTCMilliseconds() / 1000).toFixed(3).slice(2, 5) + 'Z';\n};\n\nexport default _toISOString;","export default function _arrayReduce(reducer, acc, list) {\n var index = 0;\n var length = list.length;\n\n while (index < length) {\n acc = reducer(acc, list[index]);\n index += 1;\n }\n\n return acc;\n}","export default function _filter(fn, list) {\n var idx = 0;\n var len = list.length;\n var result = [];\n\n while (idx < len) {\n if (fn(list[idx])) {\n result[result.length] = list[idx];\n }\n\n idx += 1;\n }\n\n return result;\n}","import _xfBase from \"./_xfBase.js\";\n\nvar XFilter =\n/*#__PURE__*/\nfunction () {\n function XFilter(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XFilter.prototype['@@transducer/init'] = _xfBase.init;\n XFilter.prototype['@@transducer/result'] = _xfBase.result;\n\n XFilter.prototype['@@transducer/step'] = function (result, input) {\n return this.f(input) ? this.xf['@@transducer/step'](result, input) : result;\n };\n\n return XFilter;\n}();\n\nexport default function _xfilter(f) {\n return function (xf) {\n return new XFilter(f, xf);\n };\n}","import _arrayReduce from \"./internal/_arrayReduce.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _filter from \"./internal/_filter.js\";\nimport _isObject from \"./internal/_isObject.js\";\nimport _xfilter from \"./internal/_xfilter.js\";\nimport keys from \"./keys.js\";\n/**\n * Takes a predicate and a `Filterable`, and returns a new filterable of the\n * same type containing the members of the given filterable which satisfy the\n * given predicate. Filterable objects include plain objects or any object\n * that has a filter method such as `Array`.\n *\n * Dispatches to the `filter` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @category Object\n * @sig Filterable f => (a -> Boolean) -> f a -> f a\n * @param {Function} pred\n * @param {Array} filterable\n * @return {Array} Filterable\n * @see R.reject, R.transduce, R.addIndex\n * @example\n *\n * const isEven = n => n % 2 === 0;\n *\n * R.filter(isEven, [1, 2, 3, 4]); //=> [2, 4]\n *\n * R.filter(isEven, {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, d: 4}\n */\n\nvar filter =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['fantasy-land/filter', 'filter'], _xfilter, function (pred, filterable) {\n return _isObject(filterable) ? _arrayReduce(function (acc, key) {\n if (pred(filterable[key])) {\n acc[key] = filterable[key];\n }\n\n return acc;\n }, {}, keys(filterable)) : // else\n _filter(pred, filterable);\n}));\n\nexport default filter;","export default function _isObject(x) {\n return Object.prototype.toString.call(x) === '[object Object]';\n}","import _complement from \"./internal/_complement.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport filter from \"./filter.js\";\n/**\n * The complement of [`filter`](#filter).\n *\n * Acts as a transducer if a transformer is given in list position. Filterable\n * objects include plain objects or any object that has a filter method such\n * as `Array`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Filterable f => (a -> Boolean) -> f a -> f a\n * @param {Function} pred\n * @param {Array} filterable\n * @return {Array}\n * @see R.filter, R.transduce, R.addIndex\n * @example\n *\n * const isOdd = (n) => n % 2 !== 0;\n *\n * R.reject(isOdd, [1, 2, 3, 4]); //=> [2, 4]\n *\n * R.reject(isOdd, {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, d: 4}\n */\n\nvar reject =\n/*#__PURE__*/\n_curry2(function reject(pred, filterable) {\n return filter(_complement(pred), filterable);\n});\n\nexport default reject;","export default function _complement(f) {\n return function () {\n return !f.apply(this, arguments);\n };\n}","import _includes from \"./_includes.js\";\nimport _map from \"./_map.js\";\nimport _quote from \"./_quote.js\";\nimport _toISOString from \"./_toISOString.js\";\nimport keys from \"../keys.js\";\nimport reject from \"../reject.js\";\nexport default function _toString(x, seen) {\n var recur = function recur(y) {\n var xs = seen.concat([x]);\n return _includes(y, xs) ? '<Circular>' : _toString(y, xs);\n }; // mapPairs :: (Object, [String]) -> [String]\n\n\n var mapPairs = function (obj, keys) {\n return _map(function (k) {\n return _quote(k) + ': ' + recur(obj[k]);\n }, keys.slice().sort());\n };\n\n switch (Object.prototype.toString.call(x)) {\n case '[object Arguments]':\n return '(function() { return arguments; }(' + _map(recur, x).join(', ') + '))';\n\n case '[object Array]':\n return '[' + _map(recur, x).concat(mapPairs(x, reject(function (k) {\n return /^\\d+$/.test(k);\n }, keys(x)))).join(', ') + ']';\n\n case '[object Boolean]':\n return typeof x === 'object' ? 'new Boolean(' + recur(x.valueOf()) + ')' : x.toString();\n\n case '[object Date]':\n return 'new Date(' + (isNaN(x.valueOf()) ? recur(NaN) : _quote(_toISOString(x))) + ')';\n\n case '[object Map]':\n return 'new Map(' + recur(Array.from(x)) + ')';\n\n case '[object Null]':\n return 'null';\n\n case '[object Number]':\n return typeof x === 'object' ? 'new Number(' + recur(x.valueOf()) + ')' : 1 / x === -Infinity ? '-0' : x.toString(10);\n\n case '[object Set]':\n return 'new Set(' + recur(Array.from(x).sort()) + ')';\n\n case '[object String]':\n return typeof x === 'object' ? 'new String(' + recur(x.valueOf()) + ')' : _quote(x);\n\n case '[object Undefined]':\n return 'undefined';\n\n default:\n if (typeof x.toString === 'function') {\n var repr = x.toString();\n\n if (repr !== '[object Object]') {\n return repr;\n }\n }\n\n return '{' + mapPairs(x, keys(x)).join(', ') + '}';\n }\n}","import _curry1 from \"./internal/_curry1.js\";\nimport _toString from \"./internal/_toString.js\";\n/**\n * Returns the string representation of the given value. `eval`'ing the output\n * should result in a value equivalent to the input value. Many of the built-in\n * `toString` methods do not satisfy this requirement.\n *\n * If the given value is an `[object Object]` with a `toString` method other\n * than `Object.prototype.toString`, this method is invoked with no arguments\n * to produce the return value. This means user-defined constructor functions\n * can provide a suitable `toString` method. For example:\n *\n * function Point(x, y) {\n * this.x = x;\n * this.y = y;\n * }\n *\n * Point.prototype.toString = function() {\n * return 'new Point(' + this.x + ', ' + this.y + ')';\n * };\n *\n * R.toString(new Point(1, 2)); //=> 'new Point(1, 2)'\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category String\n * @sig * -> String\n * @param {*} val\n * @return {String}\n * @example\n *\n * R.toString(42); //=> '42'\n * R.toString('abc'); //=> '\"abc\"'\n * R.toString([1, 2, 3]); //=> '[1, 2, 3]'\n * R.toString({foo: 1, bar: 2, baz: 3}); //=> '{\"bar\": 2, \"baz\": 3, \"foo\": 1}'\n * R.toString(new Date('2001-02-03T04:05:06Z')); //=> 'new Date(\"2001-02-03T04:05:06.000Z\")'\n */\n\nvar toString =\n/*#__PURE__*/\n_curry1(function toString(val) {\n return _toString(val, []);\n});\n\nexport default toString;","import _curry2 from \"./internal/_curry2.js\";\nimport toString from \"./toString.js\";\n/**\n * Returns the larger of its two arguments.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> a\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.maxBy, R.min\n * @example\n *\n * R.max(789, 123); //=> 789\n * R.max('a', 'b'); //=> 'b'\n */\n\nvar max =\n/*#__PURE__*/\n_curry2(function max(a, b) {\n if (a === b) {\n return b;\n }\n\n function safeMax(x, y) {\n if (x > y !== y > x) {\n return y > x ? y : x;\n }\n\n return undefined;\n }\n\n var maxByValue = safeMax(a, b);\n\n if (maxByValue !== undefined) {\n return maxByValue;\n }\n\n var maxByType = safeMax(typeof a, typeof b);\n\n if (maxByType !== undefined) {\n return maxByType === typeof a ? a : b;\n }\n\n var stringA = toString(a);\n var maxByStringValue = safeMax(stringA, toString(b));\n\n if (maxByStringValue !== undefined) {\n return maxByStringValue === stringA ? a : b;\n }\n\n return b;\n});\n\nexport default max;","import _xfBase from \"./_xfBase.js\";\n\nvar XMap =\n/*#__PURE__*/\nfunction () {\n function XMap(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XMap.prototype['@@transducer/init'] = _xfBase.init;\n XMap.prototype['@@transducer/result'] = _xfBase.result;\n\n XMap.prototype['@@transducer/step'] = function (result, input) {\n return this.xf['@@transducer/step'](result, this.f(input));\n };\n\n return XMap;\n}();\n\nvar _xmap = function _xmap(f) {\n return function (xf) {\n return new XMap(f, xf);\n };\n};\n\nexport default _xmap;","import _arrayReduce from \"./internal/_arrayReduce.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _map from \"./internal/_map.js\";\nimport _xmap from \"./internal/_xmap.js\";\nimport curryN from \"./curryN.js\";\nimport keys from \"./keys.js\";\n/**\n * Takes a function and\n * a [functor](https://github.com/fantasyland/fantasy-land#functor),\n * applies the function to each of the functor's values, and returns\n * a functor of the same shape.\n *\n * Ramda provides suitable `map` implementations for `Array` and `Object`,\n * so this function may be applied to `[1, 2, 3]` or `{x: 1, y: 2, z: 3}`.\n *\n * Dispatches to the `map` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * Also treats functions as functors and will compose them together.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Functor f => (a -> b) -> f a -> f b\n * @param {Function} fn The function to be called on every element of the input `list`.\n * @param {Array} list The list to be iterated over.\n * @return {Array} The new list.\n * @see R.transduce, R.addIndex, R.pluck, R.project\n * @example\n *\n * const double = x => x * 2;\n *\n * R.map(double, [1, 2, 3]); //=> [2, 4, 6]\n *\n * R.map(double, {x: 1, y: 2, z: 3}); //=> {x: 2, y: 4, z: 6}\n * @symb R.map(f, [a, b]) = [f(a), f(b)]\n * @symb R.map(f, { x: a, y: b }) = { x: f(a), y: f(b) }\n * @symb R.map(f, functor_o) = functor_o.map(f)\n */\n\nvar map =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['fantasy-land/map', 'map'], _xmap, function map(fn, functor) {\n switch (Object.prototype.toString.call(functor)) {\n case '[object Function]':\n return curryN(functor.length, function () {\n return fn.call(this, functor.apply(this, arguments));\n });\n\n case '[object Object]':\n return _arrayReduce(function (acc, key) {\n acc[key] = fn(functor[key]);\n return acc;\n }, {}, keys(functor));\n\n default:\n return _map(fn, functor);\n }\n}));\n\nexport default map;","/**\n * Determine if the passed argument is an integer.\n *\n * @private\n * @param {*} n\n * @category Type\n * @return {Boolean}\n */\nexport default Number.isInteger || function _isInteger(n) {\n return n << 0 === n;\n};","export default function _isString(x) {\n return Object.prototype.toString.call(x) === '[object String]';\n}","import _curry2 from \"./internal/_curry2.js\";\nimport _isString from \"./internal/_isString.js\";\n/**\n * Returns the nth element of the given list or string. If n is negative the\n * element at index length + n is returned.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> [a] -> a | Undefined\n * @sig Number -> String -> String\n * @param {Number} offset\n * @param {*} list\n * @return {*}\n * @example\n *\n * const list = ['foo', 'bar', 'baz', 'quux'];\n * R.nth(1, list); //=> 'bar'\n * R.nth(-1, list); //=> 'quux'\n * R.nth(-99, list); //=> undefined\n *\n * R.nth(2, 'abc'); //=> 'c'\n * R.nth(3, 'abc'); //=> ''\n * @symb R.nth(-1, [a, b, c]) = c\n * @symb R.nth(0, [a, b, c]) = a\n * @symb R.nth(1, [a, b, c]) = b\n */\n\nvar nth =\n/*#__PURE__*/\n_curry2(function nth(offset, list) {\n var idx = offset < 0 ? list.length + offset : offset;\n return _isString(list) ? list.charAt(idx) : list[idx];\n});\n\nexport default nth;","import _curry2 from \"./internal/_curry2.js\";\nimport _isInteger from \"./internal/_isInteger.js\";\nimport nth from \"./nth.js\";\n/**\n * Returns a function that when supplied an object returns the indicated\n * property of that object, if it exists.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @typedefn Idx = String | Int | Symbol\n * @sig Idx -> {s: a} -> a | Undefined\n * @param {String|Number} p The property name or array index\n * @param {Object} obj The object to query\n * @return {*} The value at `obj.p`.\n * @see R.path, R.props, R.pluck, R.project, R.nth\n * @example\n *\n * R.prop('x', {x: 100}); //=> 100\n * R.prop('x', {}); //=> undefined\n * R.prop(0, [100]); //=> 100\n * R.compose(R.inc, R.prop('x'))({ x: 3 }) //=> 4\n */\n\nvar prop =\n/*#__PURE__*/\n_curry2(function prop(p, obj) {\n if (obj == null) {\n return;\n }\n\n return _isInteger(p) ? nth(p, obj) : obj[p];\n});\n\nexport default prop;","import _curry2 from \"./internal/_curry2.js\";\nimport map from \"./map.js\";\nimport prop from \"./prop.js\";\n/**\n * Returns a new list by plucking the same named property off all objects in\n * the list supplied.\n *\n * `pluck` will work on\n * any [functor](https://github.com/fantasyland/fantasy-land#functor) in\n * addition to arrays, as it is equivalent to `R.map(R.prop(k), f)`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Functor f => k -> f {k: v} -> f v\n * @param {Number|String} key The key name to pluck off of each object.\n * @param {Array} f The array or functor to consider.\n * @return {Array} The list of values for the given key.\n * @see R.project, R.prop, R.props\n * @example\n *\n * var getAges = R.pluck('age');\n * getAges([{name: 'fred', age: 29}, {name: 'wilma', age: 27}]); //=> [29, 27]\n *\n * R.pluck(0, [[1, 2], [3, 4]]); //=> [1, 3]\n * R.pluck('val', {a: {val: 3}, b: {val: 5}}); //=> {a: 3, b: 5}\n * @symb R.pluck('x', [{x: 1, y: 2}, {x: 3, y: 4}, {x: 5, y: 6}]) = [1, 3, 5]\n * @symb R.pluck(0, [[1, 2], [3, 4], [5, 6]]) = [1, 3, 5]\n */\n\nvar pluck =\n/*#__PURE__*/\n_curry2(function pluck(p, list) {\n return map(prop(p), list);\n});\n\nexport default pluck;","import _curry1 from \"./_curry1.js\";\nimport _isArray from \"./_isArray.js\";\nimport _isString from \"./_isString.js\";\n/**\n * Tests whether or not an object is similar to an array.\n *\n * @private\n * @category Type\n * @category List\n * @sig * -> Boolean\n * @param {*} x The object to test.\n * @return {Boolean} `true` if `x` has a numeric length property and extreme indices defined; `false` otherwise.\n * @example\n *\n * _isArrayLike([]); //=> true\n * _isArrayLike(true); //=> false\n * _isArrayLike({}); //=> false\n * _isArrayLike({length: 10}); //=> false\n * _isArrayLike({0: 'zero', 9: 'nine', length: 10}); //=> true\n * _isArrayLike({nodeType: 1, length: 1}) // => false\n */\n\nvar _isArrayLike =\n/*#__PURE__*/\n_curry1(function isArrayLike(x) {\n if (_isArray(x)) {\n return true;\n }\n\n if (!x) {\n return false;\n }\n\n if (typeof x !== 'object') {\n return false;\n }\n\n if (_isString(x)) {\n return false;\n }\n\n if (x.length === 0) {\n return true;\n }\n\n if (x.length > 0) {\n return x.hasOwnProperty(0) && x.hasOwnProperty(x.length - 1);\n }\n\n return false;\n});\n\nexport default _isArrayLike;","import _isArrayLike from \"./_isArrayLike.js\";\nvar symIterator = typeof Symbol !== 'undefined' ? Symbol.iterator : '@@iterator';\nexport default function _createReduce(arrayReduce, methodReduce, iterableReduce) {\n return function _reduce(xf, acc, list) {\n if (_isArrayLike(list)) {\n return arrayReduce(xf, acc, list);\n }\n\n if (list == null) {\n return acc;\n }\n\n if (typeof list['fantasy-land/reduce'] === 'function') {\n return methodReduce(xf, acc, list, 'fantasy-land/reduce');\n }\n\n if (list[symIterator] != null) {\n return iterableReduce(xf, acc, list[symIterator]());\n }\n\n if (typeof list.next === 'function') {\n return iterableReduce(xf, acc, list);\n }\n\n if (typeof list.reduce === 'function') {\n return methodReduce(xf, acc, list, 'reduce');\n }\n\n throw new TypeError('reduce: list must be array or iterable');\n };\n}","export default function _xArrayReduce(xf, acc, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n acc = xf['@@transducer/step'](acc, list[idx]);\n\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n\n idx += 1;\n }\n\n return xf['@@transducer/result'](acc);\n}","import _arity from \"./internal/_arity.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Creates a function that is bound to a context.\n * Note: `R.bind` does not provide the additional argument-binding capabilities of\n * [Function.prototype.bind](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Function\n * @category Object\n * @sig (* -> *) -> {*} -> (* -> *)\n * @param {Function} fn The function to bind to context\n * @param {Object} thisObj The context to bind `fn` to\n * @return {Function} A function that will execute in the context of `thisObj`.\n * @see R.partial\n * @example\n *\n * const log = R.bind(console.log, console);\n * R.pipe(R.assoc('a', 2), R.tap(log), R.assoc('a', 3))({a: 1}); //=> {a: 3}\n * // logs {a: 2}\n * @symb R.bind(f, o)(a, b) = f.call(o, a, b)\n */\n\nvar bind =\n/*#__PURE__*/\n_curry2(function bind(fn, thisObj) {\n return _arity(fn.length, function () {\n return fn.apply(thisObj, arguments);\n });\n});\n\nexport default bind;","import _createReduce from \"./_createReduce.js\";\nimport _xArrayReduce from \"./_xArrayReduce.js\";\nimport bind from \"../bind.js\";\n\nfunction _xIterableReduce(xf, acc, iter) {\n var step = iter.next();\n\n while (!step.done) {\n acc = xf['@@transducer/step'](acc, step.value);\n\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n\n step = iter.next();\n }\n\n return xf['@@transducer/result'](acc);\n}\n\nfunction _xMethodReduce(xf, acc, obj, methodName) {\n return xf['@@transducer/result'](obj[methodName](bind(xf['@@transducer/step'], xf), acc));\n}\n\nvar _xReduce =\n/*#__PURE__*/\n_createReduce(_xArrayReduce, _xMethodReduce, _xIterableReduce);\n\nexport default _xReduce;","var XWrap =\n/*#__PURE__*/\nfunction () {\n function XWrap(fn) {\n this.f = fn;\n }\n\n XWrap.prototype['@@transducer/init'] = function () {\n throw new Error('init not implemented on XWrap');\n };\n\n XWrap.prototype['@@transducer/result'] = function (acc) {\n return acc;\n };\n\n XWrap.prototype['@@transducer/step'] = function (acc, x) {\n return this.f(acc, x);\n };\n\n return XWrap;\n}();\n\nexport default function _xwrap(fn) {\n return new XWrap(fn);\n}","import _curry3 from \"./internal/_curry3.js\";\nimport _xReduce from \"./internal/_xReduce.js\";\nimport _xwrap from \"./internal/_xwrap.js\";\n/**\n * Returns a single item by iterating through the list, successively calling\n * the iterator function and passing it an accumulator value and the current\n * value from the array, and then passing the result to the next call.\n *\n * The iterator function receives two values: *(acc, value)*. It may use\n * [`R.reduced`](#reduced) to shortcut the iteration.\n *\n * The arguments' order of [`reduceRight`](#reduceRight)'s iterator function\n * is *(value, acc)*.\n *\n * Note: `R.reduce` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.reduce` method. For more details\n * on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce#Description\n *\n * Be cautious of mutating and returning the accumulator. If you reuse it across\n * invocations, it will continue to accumulate onto the same value. The general\n * recommendation is to always return a new value. If you can't do so for\n * performance reasons, then be sure to reinitialize the accumulator on each\n * invocation.\n *\n * Dispatches to the `reduce` method of the third argument, if present. When\n * doing so, it is up to the user to handle the [`R.reduced`](#reduced)\n * shortcuting, as this is not implemented by `reduce`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the\n * current element from the array.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduced, R.addIndex, R.reduceRight\n * @example\n *\n * R.reduce(R.subtract, 0, [1, 2, 3, 4]) // => ((((0 - 1) - 2) - 3) - 4) = -10\n * // - -10\n * // / \\ / \\\n * // - 4 -6 4\n * // / \\ / \\\n * // - 3 ==> -3 3\n * // / \\ / \\\n * // - 2 -1 2\n * // / \\ / \\\n * // 0 1 0 1\n *\n * @symb R.reduce(f, a, [b, c, d]) = f(f(f(a, b), c), d)\n */\n\nvar reduce =\n/*#__PURE__*/\n_curry3(function (xf, acc, list) {\n return _xReduce(typeof xf === 'function' ? _xwrap(xf) : xf, acc, list);\n});\n\nexport default reduce;","import _reduced from \"./_reduced.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XAny =\n/*#__PURE__*/\nfunction () {\n function XAny(f, xf) {\n this.xf = xf;\n this.f = f;\n this.any = false;\n }\n\n XAny.prototype['@@transducer/init'] = _xfBase.init;\n\n XAny.prototype['@@transducer/result'] = function (result) {\n if (!this.any) {\n result = this.xf['@@transducer/step'](result, false);\n }\n\n return this.xf['@@transducer/result'](result);\n };\n\n XAny.prototype['@@transducer/step'] = function (result, input) {\n if (this.f(input)) {\n this.any = true;\n result = _reduced(this.xf['@@transducer/step'](result, true));\n }\n\n return result;\n };\n\n return XAny;\n}();\n\nexport default function _xany(f) {\n return function (xf) {\n return new XAny(f, xf);\n };\n}","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xany from \"./internal/_xany.js\";\n/**\n * Returns `true` if at least one of the elements of the list match the predicate,\n * `false` otherwise.\n *\n * Dispatches to the `any` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> Boolean\n * @param {Function} fn The predicate function.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if the predicate is satisfied by at least one element, `false`\n * otherwise.\n * @see R.all, R.none, R.transduce\n * @example\n *\n * const lessThan0 = R.flip(R.lt)(0);\n * const lessThan2 = R.flip(R.lt)(2);\n * R.any(lessThan0)([1, 2]); //=> false\n * R.any(lessThan2)([1, 2]); //=> true\n */\n\nvar any =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['any'], _xany, function any(fn, list) {\n var idx = 0;\n\n while (idx < list.length) {\n if (fn(list[idx])) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n}));\n\nexport default any;","import _concat from \"./internal/_concat.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns a new list containing the contents of the given list, followed by\n * the given element.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> [a]\n * @param {*} el The element to add to the end of the new list.\n * @param {Array} list The list of elements to add a new item to.\n * list.\n * @return {Array} A new list containing the elements of the old list followed by `el`.\n * @see R.prepend\n * @example\n *\n * R.append('tests', ['write', 'more']); //=> ['write', 'more', 'tests']\n * R.append('tests', []); //=> ['tests']\n * R.append(['tests'], ['write', 'more']); //=> ['write', 'more', ['tests']]\n */\n\nvar append =\n/*#__PURE__*/\n_curry2(function append(el, list) {\n return _concat(list, [el]);\n});\n\nexport default append;","import _curry1 from \"./internal/_curry1.js\";\nimport keys from \"./keys.js\";\n/**\n * Returns a list of all the enumerable own properties of the supplied object.\n * Note that the order of the output array is not guaranteed across different\n * JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [v]\n * @param {Object} obj The object to extract values from\n * @return {Array} An array of the values of the object's own properties.\n * @see R.valuesIn, R.keys, R.toPairs\n * @example\n *\n * R.values({a: 1, b: 2, c: 3}); //=> [1, 2, 3]\n */\n\nvar values =\n/*#__PURE__*/\n_curry1(function values(obj) {\n var props = keys(obj);\n var len = props.length;\n var vals = [];\n var idx = 0;\n\n while (idx < len) {\n vals[idx] = obj[props[idx]];\n idx += 1;\n }\n\n return vals;\n});\n\nexport default values;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Checks if the input value is `null` or `undefined`.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Type\n * @sig * -> Boolean\n * @param {*} x The value to test.\n * @return {Boolean} `true` if `x` is `undefined` or `null`, otherwise `false`.\n * @example\n *\n * R.isNil(null); //=> true\n * R.isNil(undefined); //=> true\n * R.isNil(0); //=> false\n * R.isNil([]); //=> false\n */\n\nvar isNil =\n/*#__PURE__*/\n_curry1(function isNil(x) {\n return x == null;\n});\n\nexport default isNil;","import _curry3 from \"./internal/_curry3.js\";\nimport _has from \"./internal/_has.js\";\nimport _isInteger from \"./internal/_isInteger.js\";\nimport _assoc from \"./internal/_assoc.js\";\nimport isNil from \"./isNil.js\";\n/**\n * Makes a shallow clone of an object, setting or overriding the nodes required\n * to create the given path, and placing the specific value at the tail end of\n * that path. Note that this copies and flattens prototype properties onto the\n * new object as well. All non-primitive properties are copied by reference.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @typedefn Idx = String | Int | Symbol\n * @sig [Idx] -> a -> {a} -> {a}\n * @param {Array} path the path to set\n * @param {*} val The new value\n * @param {Object} obj The object to clone\n * @return {Object} A new object equivalent to the original except along the specified path.\n * @see R.dissocPath\n * @example\n *\n * R.assocPath(['a', 'b', 'c'], 42, {a: {b: {c: 0}}}); //=> {a: {b: {c: 42}}}\n *\n * // Any missing or non-object keys in path will be overridden\n * R.assocPath(['a', 'b', 'c'], 42, {a: 5}); //=> {a: {b: {c: 42}}}\n */\n\nvar assocPath =\n/*#__PURE__*/\n_curry3(function assocPath(path, val, obj) {\n if (path.length === 0) {\n return val;\n }\n\n var idx = path[0];\n\n if (path.length > 1) {\n var nextObj = !isNil(obj) && _has(idx, obj) && typeof obj[idx] === 'object' ? obj[idx] : _isInteger(path[1]) ? [] : {};\n val = assocPath(Array.prototype.slice.call(path, 1), val, nextObj);\n }\n\n return _assoc(idx, val, obj);\n});\n\nexport default assocPath;","import _isArray from \"./_isArray.js\";\nimport _isInteger from \"./_isInteger.js\";\n/**\n * Makes a shallow clone of an object, setting or overriding the specified\n * property with the given value. Note that this copies and flattens prototype\n * properties onto the new object as well. All non-primitive properties are\n * copied by reference.\n *\n * @private\n * @param {String|Number} prop The property name to set\n * @param {*} val The new value\n * @param {Object|Array} obj The object to clone\n * @return {Object|Array} A new object equivalent to the original except for the changed property.\n */\n\nexport default function _assoc(prop, val, obj) {\n if (_isInteger(prop) && _isArray(obj)) {\n var arr = [].concat(obj);\n arr[prop] = val;\n return arr;\n }\n\n var result = {};\n\n for (var p in obj) {\n result[p] = obj[p];\n }\n\n result[prop] = val;\n return result;\n}","import _curry3 from \"./internal/_curry3.js\";\nimport assocPath from \"./assocPath.js\";\n/**\n * Makes a shallow clone of an object, setting or overriding the specified\n * property with the given value. Note that this copies and flattens prototype\n * properties onto the new object as well. All non-primitive properties are\n * copied by reference.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig Idx -> a -> {k: v} -> {k: v}\n * @param {String|Number} prop The property name to set\n * @param {*} val The new value\n * @param {Object} obj The object to clone\n * @return {Object} A new object equivalent to the original except for the changed property.\n * @see R.dissoc, R.pick\n * @example\n *\n * R.assoc('c', 3, {a: 1, b: 2}); //=> {a: 1, b: 2, c: 3}\n */\n\nvar assoc =\n/*#__PURE__*/\n_curry3(function assoc(prop, val, obj) {\n return assocPath([prop], val, obj);\n});\n\nexport default assoc;","import _forceReduced from \"./_forceReduced.js\";\nimport _isArrayLike from \"./_isArrayLike.js\";\nimport _xArrayReduce from \"./_xArrayReduce.js\";\nimport _xReduce from \"./_xReduce.js\";\nimport _xfBase from \"./_xfBase.js\";\nvar tInit = '@@transducer/init';\nvar tStep = '@@transducer/step';\nvar tResult = '@@transducer/result';\n\nvar XPreservingReduced =\n/*#__PURE__*/\nfunction () {\n function XPreservingReduced(xf) {\n this.xf = xf;\n }\n\n XPreservingReduced.prototype[tInit] = _xfBase.init;\n XPreservingReduced.prototype[tResult] = _xfBase.result;\n\n XPreservingReduced.prototype[tStep] = function (result, input) {\n var ret = this.xf[tStep](result, input);\n return ret['@@transducer/reduced'] ? _forceReduced(ret) : ret;\n };\n\n return XPreservingReduced;\n}();\n\nvar XFlatCat =\n/*#__PURE__*/\nfunction () {\n function XFlatCat(xf) {\n this.xf = new XPreservingReduced(xf);\n }\n\n XFlatCat.prototype[tInit] = _xfBase.init;\n XFlatCat.prototype[tResult] = _xfBase.result;\n\n XFlatCat.prototype[tStep] = function (result, input) {\n return !_isArrayLike(input) ? _xArrayReduce(this.xf, result, [input]) : _xReduce(this.xf, result, input);\n };\n\n return XFlatCat;\n}();\n\nvar _flatCat = function _xcat(xf) {\n return new XFlatCat(xf);\n};\n\nexport default _flatCat;","export default function _forceReduced(x) {\n return {\n '@@transducer/value': x,\n '@@transducer/reduced': true\n };\n}","import _flatCat from \"./_flatCat.js\";\nimport _xmap from \"./_xmap.js\";\nexport default function _xchain(f) {\n return function (xf) {\n return _xmap(f)(_flatCat(xf));\n };\n}","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _makeFlat from \"./internal/_makeFlat.js\";\nimport _xchain from \"./internal/_xchain.js\";\nimport map from \"./map.js\";\n/**\n * `chain` maps a function over a list and concatenates the results. `chain`\n * is also known as `flatMap` in some libraries.\n *\n * Dispatches to the `chain` method of the second argument, if present,\n * according to the [FantasyLand Chain spec](https://github.com/fantasyland/fantasy-land#chain).\n *\n * If second argument is a function, `chain(f, g)(x)` is equivalent to `f(g(x), x)`.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig Chain m => (a -> m b) -> m a -> m b\n * @param {Function} fn The function to map with\n * @param {Array} list The list to map over\n * @return {Array} The result of flat-mapping `list` with `fn`\n * @example\n *\n * const duplicate = n => [n, n];\n * R.chain(duplicate, [1, 2, 3]); //=> [1, 1, 2, 2, 3, 3]\n *\n * R.chain(R.append, R.head)([1, 2, 3]); //=> [1, 2, 3, 1]\n */\n\nvar chain =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['fantasy-land/chain', 'chain'], _xchain, function chain(fn, monad) {\n if (typeof monad === 'function') {\n return function (x) {\n return fn(monad(x))(x);\n };\n }\n\n return _makeFlat(false)(map(fn, monad));\n}));\n\nexport default chain;","import _isArrayLike from \"./_isArrayLike.js\";\n/**\n * `_makeFlat` is a helper function that returns a one-level or fully recursive\n * function based on the flag passed in.\n *\n * @private\n */\n\nexport default function _makeFlat(recursive) {\n return function flatt(list) {\n var value, jlen, j;\n var result = [];\n var idx = 0;\n var ilen = list.length;\n\n while (idx < ilen) {\n if (_isArrayLike(list[idx])) {\n value = recursive ? flatt(list[idx]) : list[idx];\n j = 0;\n jlen = value.length;\n\n while (j < jlen) {\n result[result.length] = value[j];\n j += 1;\n }\n } else {\n result[result.length] = list[idx];\n }\n\n idx += 1;\n }\n\n return result;\n };\n}","import _cloneRegExp from \"./_cloneRegExp.js\";\nimport type from \"../type.js\";\n/**\n * Copies an object.\n *\n * @private\n * @param {*} value The value to be copied\n * @param {Boolean} deep Whether or not to perform deep cloning.\n * @return {*} The copied value.\n */\n\nexport default function _clone(value, deep, map) {\n map || (map = new _ObjectMap()); // this avoids the slower switch with a quick if decision removing some milliseconds in each run.\n\n if (_isPrimitive(value)) {\n return value;\n }\n\n var copy = function copy(copiedValue) {\n // Check for circular and same references on the object graph and return its corresponding clone.\n var cachedCopy = map.get(value);\n\n if (cachedCopy) {\n return cachedCopy;\n }\n\n map.set(value, copiedValue);\n\n for (var key in value) {\n if (Object.prototype.hasOwnProperty.call(value, key)) {\n copiedValue[key] = deep ? _clone(value[key], true, map) : value[key];\n }\n }\n\n return copiedValue;\n };\n\n switch (type(value)) {\n case 'Object':\n return copy(Object.create(Object.getPrototypeOf(value)));\n\n case 'Array':\n return copy([]);\n\n case 'Date':\n return new Date(value.valueOf());\n\n case 'RegExp':\n return _cloneRegExp(value);\n\n case 'Int8Array':\n case 'Uint8Array':\n case 'Uint8ClampedArray':\n case 'Int16Array':\n case 'Uint16Array':\n case 'Int32Array':\n case 'Uint32Array':\n case 'Float32Array':\n case 'Float64Array':\n case 'BigInt64Array':\n case 'BigUint64Array':\n return value.slice();\n\n default:\n return value;\n }\n}\n\nfunction _isPrimitive(param) {\n var type = typeof param;\n return param == null || type != 'object' && type != 'function';\n}\n\nvar _ObjectMap =\n/*#__PURE__*/\nfunction () {\n function _ObjectMap() {\n this.map = {};\n this.length = 0;\n }\n\n _ObjectMap.prototype.set = function (key, value) {\n const hashedKey = this.hash(key);\n let bucket = this.map[hashedKey];\n\n if (!bucket) {\n this.map[hashedKey] = bucket = [];\n }\n\n bucket.push([key, value]);\n this.length += 1;\n };\n\n _ObjectMap.prototype.hash = function (key) {\n let hashedKey = [];\n\n for (var value in key) {\n hashedKey.push(Object.prototype.toString.call(key[value]));\n }\n\n return hashedKey.join();\n };\n\n _ObjectMap.prototype.get = function (key) {\n /**\n * depending on the number of objects to be cloned is faster to just iterate over the items in the map just because the hash function is so costly,\n * on my tests this number is 180, anything above that using the hash function is faster.\n */\n if (this.length <= 180) {\n for (const p in this.map) {\n const bucket = this.map[p];\n\n for (let i = 0; i < bucket.length; i += 1) {\n const element = bucket[i];\n\n if (element[0] === key) {\n return element[1];\n }\n }\n }\n\n return;\n }\n\n const hashedKey = this.hash(key);\n const bucket = this.map[hashedKey];\n\n if (!bucket) {\n return;\n }\n\n for (let i = 0; i < bucket.length; i += 1) {\n const element = bucket[i];\n\n if (element[0] === key) {\n return element[1];\n }\n }\n };\n\n return _ObjectMap;\n}();","export default function _cloneRegExp(pattern) {\n return new RegExp(pattern.source, pattern.flags ? pattern.flags : (pattern.global ? 'g' : '') + (pattern.ignoreCase ? 'i' : '') + (pattern.multiline ? 'm' : '') + (pattern.sticky ? 'y' : '') + (pattern.unicode ? 'u' : '') + (pattern.dotAll ? 's' : ''));\n}","import _clone from \"./internal/_clone.js\";\nimport _curry1 from \"./internal/_curry1.js\";\n/**\n * Creates a deep copy of the source that can be used in place of the source\n * object without retaining any references to it.\n * The source object may contain (nested) `Array`s and `Object`s,\n * `Number`s, `String`s, `Boolean`s and `Date`s.\n * `Function`s are assigned by reference rather than copied.\n *\n * Dispatches to a `clone` method if present.\n *\n * Note that if the source object has multiple nodes that share a reference,\n * the returned object will have the same structure, but the references will\n * be pointed to the location within the cloned value.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {*} -> {*}\n * @param {*} value The object or array to clone\n * @return {*} A deeply cloned copy of `val`\n * @example\n *\n * const objects = [{}, {}, {}];\n * const objectsClone = R.clone(objects);\n * objects === objectsClone; //=> false\n * objects[0] === objectsClone[0]; //=> false\n */\n\nvar clone =\n/*#__PURE__*/\n_curry1(function clone(value) {\n return value != null && typeof value.clone === 'function' ? value.clone() : _clone(value, true);\n});\n\nexport default clone;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Makes a comparator function out of a function that reports whether the first\n * element is less than the second.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((a, b) -> Boolean) -> ((a, b) -> Number)\n * @param {Function} pred A predicate function of arity two which will return `true` if the first argument\n * is less than the second, `false` otherwise\n * @return {Function} A Function :: a -> b -> Int that returns `-1` if a < b, `1` if b < a, otherwise `0`\n * @example\n *\n * const byAge = R.comparator((a, b) => a.age < b.age);\n * const people = [\n * { name: 'Emma', age: 70 },\n * { name: 'Peter', age: 78 },\n * { name: 'Mikhail', age: 62 },\n * ];\n * const peopleByIncreasingAge = R.sort(byAge, people);\n * //=> [{ name: 'Mikhail', age: 62 },{ name: 'Emma', age: 70 }, { name: 'Peter', age: 78 }]\n */\n\nvar comparator =\n/*#__PURE__*/\n_curry1(function comparator(pred) {\n return function (a, b) {\n return pred(a, b) ? -1 : pred(b, a) ? 1 : 0;\n };\n});\n\nexport default comparator;","export default function _pipe(f, g) {\n return function () {\n return g.call(this, f.apply(this, arguments));\n };\n}","import _isArray from \"./_isArray.js\";\n/**\n * This checks whether a function has a [methodname] function. If it isn't an\n * array it will execute that function otherwise it will default to the ramda\n * implementation.\n *\n * @private\n * @param {Function} fn ramda implementation\n * @param {String} methodname property to check for a custom implementation\n * @return {Object} Whatever the return value of the method is.\n */\n\nexport default function _checkForMethod(methodname, fn) {\n return function () {\n var length = arguments.length;\n\n if (length === 0) {\n return fn();\n }\n\n var obj = arguments[length - 1];\n return _isArray(obj) || typeof obj[methodname] !== 'function' ? fn.apply(this, arguments) : obj[methodname].apply(obj, Array.prototype.slice.call(arguments, 0, length - 1));\n };\n}","import _checkForMethod from \"./internal/_checkForMethod.js\";\nimport _curry3 from \"./internal/_curry3.js\";\n/**\n * Returns the elements of the given list or string (or object with a `slice`\n * method) from `fromIndex` (inclusive) to `toIndex` (exclusive).\n *\n * Dispatches to the `slice` method of the third argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.4\n * @category List\n * @sig Number -> Number -> [a] -> [a]\n * @sig Number -> Number -> String -> String\n * @param {Number} fromIndex The start index (inclusive).\n * @param {Number} toIndex The end index (exclusive).\n * @param {*} list\n * @return {*}\n * @example\n *\n * R.slice(1, 3, ['a', 'b', 'c', 'd']); //=> ['b', 'c']\n * R.slice(1, Infinity, ['a', 'b', 'c', 'd']); //=> ['b', 'c', 'd']\n * R.slice(0, -1, ['a', 'b', 'c', 'd']); //=> ['a', 'b', 'c']\n * R.slice(-3, -1, ['a', 'b', 'c', 'd']); //=> ['b', 'c']\n * R.slice(0, 3, 'ramda'); //=> 'ram'\n */\n\nvar slice =\n/*#__PURE__*/\n_curry3(\n/*#__PURE__*/\n_checkForMethod('slice', function slice(fromIndex, toIndex, list) {\n return Array.prototype.slice.call(list, fromIndex, toIndex);\n}));\n\nexport default slice;","import _checkForMethod from \"./internal/_checkForMethod.js\";\nimport _curry1 from \"./internal/_curry1.js\";\nimport slice from \"./slice.js\";\n/**\n * Returns all but the first element of the given list or string (or object\n * with a `tail` method).\n *\n * Dispatches to the `slice` method of the first argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {*} list\n * @return {*}\n * @see R.head, R.init, R.last\n * @example\n *\n * R.tail([1, 2, 3]); //=> [2, 3]\n * R.tail([1, 2]); //=> [2]\n * R.tail([1]); //=> []\n * R.tail([]); //=> []\n *\n * R.tail('abc'); //=> 'bc'\n * R.tail('ab'); //=> 'b'\n * R.tail('a'); //=> ''\n * R.tail(''); //=> ''\n */\n\nvar tail =\n/*#__PURE__*/\n_curry1(\n/*#__PURE__*/\n_checkForMethod('tail',\n/*#__PURE__*/\nslice(1, Infinity)));\n\nexport default tail;","import _arity from \"./internal/_arity.js\";\nimport _pipe from \"./internal/_pipe.js\";\nimport reduce from \"./reduce.js\";\nimport tail from \"./tail.js\";\n/**\n * Performs left-to-right function composition. The first argument may have\n * any arity; the remaining arguments must be unary.\n *\n * In some libraries this function is named `sequence`.\n *\n * **Note:** The result of pipe is not automatically curried.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (((a, b, ..., n) -> o), (o -> p), ..., (x -> y), (y -> z)) -> ((a, b, ..., n) -> z)\n * @param {...Function} functions\n * @return {Function}\n * @see R.compose\n * @example\n *\n * const f = R.pipe(Math.pow, R.negate, R.inc);\n *\n * f(3, 4); // -(3^4) + 1\n * @symb R.pipe(f, g, h)(a, b) = h(g(f(a, b)))\n * @symb R.pipe(f, g, h)(a)(b) = h(g(f(a)))(b)\n */\n\nexport default function pipe() {\n if (arguments.length === 0) {\n throw new Error('pipe requires at least one argument');\n }\n\n return _arity(arguments[0].length, reduce(_pipe, arguments[0], tail(arguments)));\n}","import _curry1 from \"./internal/_curry1.js\";\nimport _isString from \"./internal/_isString.js\";\n/**\n * Returns a new list or string with the elements or characters in reverse\n * order.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {Array|String} list\n * @return {Array|String}\n * @example\n *\n * R.reverse([1, 2, 3]); //=> [3, 2, 1]\n * R.reverse([1, 2]); //=> [2, 1]\n * R.reverse([1]); //=> [1]\n * R.reverse([]); //=> []\n *\n * R.reverse('abc'); //=> 'cba'\n * R.reverse('ab'); //=> 'ba'\n * R.reverse('a'); //=> 'a'\n * R.reverse(''); //=> ''\n */\n\nvar reverse =\n/*#__PURE__*/\n_curry1(function reverse(list) {\n return _isString(list) ? list.split('').reverse().join('') : Array.prototype.slice.call(list, 0).reverse();\n});\n\nexport default reverse;","import pipe from \"./pipe.js\";\nimport reverse from \"./reverse.js\";\n/**\n * Performs right-to-left function composition. The last argument may have\n * any arity; the remaining arguments must be unary.\n *\n * **Note:** The result of compose is not automatically curried.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((y -> z), (x -> y), ..., (o -> p), ((a, b, ..., n) -> o)) -> ((a, b, ..., n) -> z)\n * @param {...Function} ...functions The functions to compose\n * @return {Function}\n * @see R.pipe\n * @example\n *\n * const classyGreeting = (firstName, lastName) => \"The name's \" + lastName + \", \" + firstName + \" \" + lastName\n * const yellGreeting = R.compose(R.toUpper, classyGreeting);\n * yellGreeting('James', 'Bond'); //=> \"THE NAME'S BOND, JAMES BOND\"\n *\n * R.compose(Math.abs, R.add(1), R.multiply(2))(-4) //=> 7\n *\n * @symb R.compose(f, g, h)(a, b) = f(g(h(a, b)))\n * @symb R.compose(f, g, h)(a)(b) = f(g(h(a)))(b)\n */\n\nexport default function compose() {\n if (arguments.length === 0) {\n throw new Error('compose requires at least one argument');\n }\n\n return pipe.apply(this, reverse(arguments));\n}","export default function _isFunction(x) {\n var type = Object.prototype.toString.call(x);\n return type === '[object Function]' || type === '[object AsyncFunction]' || type === '[object GeneratorFunction]' || type === '[object AsyncGeneratorFunction]';\n}","import _curry2 from \"./internal/_curry2.js\";\nimport _isArray from \"./internal/_isArray.js\";\nimport _isFunction from \"./internal/_isFunction.js\";\nimport _isString from \"./internal/_isString.js\";\nimport toString from \"./toString.js\";\n/**\n * Returns the result of concatenating the given lists or strings.\n *\n * Note: `R.concat` expects both arguments to be of the same type,\n * unlike the native `Array.prototype.concat` method. It will throw\n * an error if you `concat` an Array with a non-Array value.\n *\n * Dispatches to the `concat` method of the first argument, if present.\n * Can also concatenate two members of a [fantasy-land\n * compatible semigroup](https://github.com/fantasyland/fantasy-land#semigroup).\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a] -> [a]\n * @sig String -> String -> String\n * @param {Array|String} firstList The first list\n * @param {Array|String} secondList The second list\n * @return {Array|String} A list consisting of the elements of `firstList` followed by the elements of\n * `secondList`.\n *\n * @example\n *\n * R.concat('ABC', 'DEF'); // 'ABCDEF'\n * R.concat([4, 5, 6], [1, 2, 3]); //=> [4, 5, 6, 1, 2, 3]\n * R.concat([], []); //=> []\n */\n\nvar concat =\n/*#__PURE__*/\n_curry2(function concat(a, b) {\n if (_isArray(a)) {\n if (_isArray(b)) {\n return a.concat(b);\n }\n\n throw new TypeError(toString(b) + ' is not an array');\n }\n\n if (_isString(a)) {\n if (_isString(b)) {\n return a + b;\n }\n\n throw new TypeError(toString(b) + ' is not a string');\n }\n\n if (a != null && _isFunction(a['fantasy-land/concat'])) {\n return a['fantasy-land/concat'](b);\n }\n\n if (a != null && _isFunction(a.concat)) {\n return a.concat(b);\n }\n\n throw new TypeError(toString(a) + ' does not have a method named \"concat\" or \"fantasy-land/concat\"');\n});\n\nexport default concat;","import _includes from \"./_includes.js\";\n\nvar _Set =\n/*#__PURE__*/\nfunction () {\n function _Set() {\n /* globals Set */\n this._nativeSet = typeof Set === 'function' ? new Set() : null;\n this._items = {};\n }\n\n // until we figure out why jsdoc chokes on this\n // @param item The item to add to the Set\n // @returns {boolean} true if the item did not exist prior, otherwise false\n //\n _Set.prototype.add = function (item) {\n return !hasOrAdd(item, true, this);\n }; //\n // @param item The item to check for existence in the Set\n // @returns {boolean} true if the item exists in the Set, otherwise false\n //\n\n\n _Set.prototype.has = function (item) {\n return hasOrAdd(item, false, this);\n }; //\n // Combines the logic for checking whether an item is a member of the set and\n // for adding a new item to the set.\n //\n // @param item The item to check or add to the Set instance.\n // @param shouldAdd If true, the item will be added to the set if it doesn't\n // already exist.\n // @param set The set instance to check or add to.\n // @return {boolean} true if the item already existed, otherwise false.\n //\n\n\n return _Set;\n}();\n\nfunction hasOrAdd(item, shouldAdd, set) {\n var type = typeof item;\n var prevSize, newSize;\n\n switch (type) {\n case 'string':\n case 'number':\n // distinguish between +0 and -0\n if (item === 0 && 1 / item === -Infinity) {\n if (set._items['-0']) {\n return true;\n } else {\n if (shouldAdd) {\n set._items['-0'] = true;\n }\n\n return false;\n }\n } // these types can all utilise the native Set\n\n\n if (set._nativeSet !== null) {\n if (shouldAdd) {\n prevSize = set._nativeSet.size;\n\n set._nativeSet.add(item);\n\n newSize = set._nativeSet.size;\n return newSize === prevSize;\n } else {\n return set._nativeSet.has(item);\n }\n } else {\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = {};\n set._items[type][item] = true;\n }\n\n return false;\n } else if (item in set._items[type]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type][item] = true;\n }\n\n return false;\n }\n }\n\n case 'boolean':\n // set._items['boolean'] holds a two element array\n // representing [ falseExists, trueExists ]\n if (type in set._items) {\n var bIdx = item ? 1 : 0;\n\n if (set._items[type][bIdx]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type][bIdx] = true;\n }\n\n return false;\n }\n } else {\n if (shouldAdd) {\n set._items[type] = item ? [false, true] : [true, false];\n }\n\n return false;\n }\n\n case 'function':\n // compare functions for reference equality\n if (set._nativeSet !== null) {\n if (shouldAdd) {\n prevSize = set._nativeSet.size;\n\n set._nativeSet.add(item);\n\n newSize = set._nativeSet.size;\n return newSize === prevSize;\n } else {\n return set._nativeSet.has(item);\n }\n } else {\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = [item];\n }\n\n return false;\n }\n\n if (!_includes(item, set._items[type])) {\n if (shouldAdd) {\n set._items[type].push(item);\n }\n\n return false;\n }\n\n return true;\n }\n\n case 'undefined':\n if (set._items[type]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type] = true;\n }\n\n return false;\n }\n\n case 'object':\n if (item === null) {\n if (!set._items['null']) {\n if (shouldAdd) {\n set._items['null'] = true;\n }\n\n return false;\n }\n\n return true;\n }\n\n /* falls through */\n\n default:\n // reduce the search size of heterogeneous sets by creating buckets\n // for each type.\n type = Object.prototype.toString.call(item);\n\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = [item];\n }\n\n return false;\n } // scan through all previously applied items\n\n\n if (!_includes(item, set._items[type])) {\n if (shouldAdd) {\n set._items[type].push(item);\n }\n\n return false;\n }\n\n return true;\n }\n} // A simple Set type that honours R.equals semantics\n\n\nexport default _Set;","import _reduced from \"./_reduced.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XFind =\n/*#__PURE__*/\nfunction () {\n function XFind(f, xf) {\n this.xf = xf;\n this.f = f;\n this.found = false;\n }\n\n XFind.prototype['@@transducer/init'] = _xfBase.init;\n\n XFind.prototype['@@transducer/result'] = function (result) {\n if (!this.found) {\n result = this.xf['@@transducer/step'](result, void 0);\n }\n\n return this.xf['@@transducer/result'](result);\n };\n\n XFind.prototype['@@transducer/step'] = function (result, input) {\n if (this.f(input)) {\n this.found = true;\n result = _reduced(this.xf['@@transducer/step'](result, input));\n }\n\n return result;\n };\n\n return XFind;\n}();\n\nexport default function _xfind(f) {\n return function (xf) {\n return new XFind(f, xf);\n };\n}","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xfind from \"./internal/_xfind.js\";\n/**\n * Returns the first element of the list which matches the predicate, or\n * `undefined` if no element matches.\n *\n * Dispatches to the `find` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> a | undefined\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Object} The element found, or `undefined`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1}, {a: 2}, {a: 3}];\n * R.find(R.propEq('a', 2))(xs); //=> {a: 2}\n * R.find(R.propEq('a', 4))(xs); //=> undefined\n */\n\nvar find =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['find'], _xfind, function find(fn, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n if (fn(list[idx])) {\n return list[idx];\n }\n\n idx += 1;\n }\n}));\n\nexport default find;","import _reduced from \"./_reduced.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XFindIndex =\n/*#__PURE__*/\nfunction () {\n function XFindIndex(f, xf) {\n this.xf = xf;\n this.f = f;\n this.idx = -1;\n this.found = false;\n }\n\n XFindIndex.prototype['@@transducer/init'] = _xfBase.init;\n\n XFindIndex.prototype['@@transducer/result'] = function (result) {\n if (!this.found) {\n result = this.xf['@@transducer/step'](result, -1);\n }\n\n return this.xf['@@transducer/result'](result);\n };\n\n XFindIndex.prototype['@@transducer/step'] = function (result, input) {\n this.idx += 1;\n\n if (this.f(input)) {\n this.found = true;\n result = _reduced(this.xf['@@transducer/step'](result, this.idx));\n }\n\n return result;\n };\n\n return XFindIndex;\n}();\n\nexport default function _xfindIndex(f) {\n return function (xf) {\n return new XFindIndex(f, xf);\n };\n}","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xfindIndex from \"./internal/_xfindIndex.js\";\n/**\n * Returns the index of the first element of the list which matches the\n * predicate, or `-1` if no element matches.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> Boolean) -> [a] -> Number\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Number} The index of the element found, or `-1`.\n * @see R.transduce, R.indexOf\n * @example\n *\n * const xs = [{a: 1}, {a: 2}, {a: 3}];\n * R.findIndex(R.propEq('a', 2))(xs); //=> 1\n * R.findIndex(R.propEq('a', 4))(xs); //=> -1\n */\n\nvar findIndex =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable([], _xfindIndex, function findIndex(fn, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n if (fn(list[idx])) {\n return idx;\n }\n\n idx += 1;\n }\n\n return -1;\n}));\n\nexport default findIndex;","import _xfBase from \"./_xfBase.js\";\n\nvar XFindLast =\n/*#__PURE__*/\nfunction () {\n function XFindLast(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XFindLast.prototype['@@transducer/init'] = _xfBase.init;\n\n XFindLast.prototype['@@transducer/result'] = function (result) {\n return this.xf['@@transducer/result'](this.xf['@@transducer/step'](result, this.last));\n };\n\n XFindLast.prototype['@@transducer/step'] = function (result, input) {\n if (this.f(input)) {\n this.last = input;\n }\n\n return result;\n };\n\n return XFindLast;\n}();\n\nexport default function _xfindLast(f) {\n return function (xf) {\n return new XFindLast(f, xf);\n };\n}","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xfindLast from \"./internal/_xfindLast.js\";\n/**\n * Returns the last element of the list which matches the predicate, or\n * `undefined` if no element matches.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> Boolean) -> [a] -> a | undefined\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Object} The element found, or `undefined`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1, b: 0}, {a:1, b: 1}];\n * R.findLast(R.propEq('a', 1))(xs); //=> {a: 1, b: 1}\n * R.findLast(R.propEq('a', 4))(xs); //=> undefined\n */\n\nvar findLast =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable([], _xfindLast, function findLast(fn, list) {\n var idx = list.length - 1;\n\n while (idx >= 0) {\n if (fn(list[idx])) {\n return list[idx];\n }\n\n idx -= 1;\n }\n}));\n\nexport default findLast;","import _checkForMethod from \"./internal/_checkForMethod.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Iterate over an input `list`, calling a provided function `fn` for each\n * element in the list.\n *\n * `fn` receives one argument: *(value)*.\n *\n * Note: `R.forEach` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.forEach` method. For more\n * details on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach#Description\n *\n * Also note that, unlike `Array.prototype.forEach`, Ramda's `forEach` returns\n * the original array. In some libraries this function is named `each`.\n *\n * Dispatches to the `forEach` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> *) -> [a] -> [a]\n * @param {Function} fn The function to invoke. Receives one argument, `value`.\n * @param {Array} list The list to iterate over.\n * @return {Array} The original list.\n * @see R.addIndex\n * @example\n *\n * const printXPlusFive = x => console.log(x + 5);\n * R.forEach(printXPlusFive, [1, 2, 3]); //=> [1, 2, 3]\n * // logs 6\n * // logs 7\n * // logs 8\n * @symb R.forEach(f, [a, b, c]) = [a, b, c]\n */\n\nvar forEach =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_checkForMethod('forEach', function forEach(fn, list) {\n var len = list.length;\n var idx = 0;\n\n while (idx < len) {\n fn(list[idx]);\n idx += 1;\n }\n\n return list;\n}));\n\nexport default forEach;","import _curry2 from \"./internal/_curry2.js\";\nimport _has from \"./internal/_has.js\";\nimport isNil from \"./isNil.js\";\n/**\n * Returns whether or not a path exists in an object. Only the object's\n * own properties are checked.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Object\n * @typedefn Idx = String | Int | Symbol\n * @sig [Idx] -> {a} -> Boolean\n * @param {Array} path The path to use.\n * @param {Object} obj The object to check the path in.\n * @return {Boolean} Whether the path exists.\n * @see R.has\n * @example\n *\n * R.hasPath(['a', 'b'], {a: {b: 2}}); // => true\n * R.hasPath(['a', 'b'], {a: {b: undefined}}); // => true\n * R.hasPath(['a', 'b'], {a: {c: 2}}); // => false\n * R.hasPath(['a', 'b'], {}); // => false\n */\n\nvar hasPath =\n/*#__PURE__*/\n_curry2(function hasPath(_path, obj) {\n if (_path.length === 0 || isNil(obj)) {\n return false;\n }\n\n var val = obj;\n var idx = 0;\n\n while (idx < _path.length) {\n if (!isNil(val) && _has(_path[idx], val)) {\n val = val[_path[idx]];\n idx += 1;\n } else {\n return false;\n }\n }\n\n return true;\n});\n\nexport default hasPath;","import _curry2 from \"./internal/_curry2.js\";\nimport hasPath from \"./hasPath.js\";\n/**\n * Returns whether or not an object has an own property with the specified name\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Object\n * @sig s -> {s: x} -> Boolean\n * @param {String} prop The name of the property to check for.\n * @param {Object} obj The object to query.\n * @return {Boolean} Whether the property exists.\n * @example\n *\n * const hasName = R.has('name');\n * hasName({name: 'alice'}); //=> true\n * hasName({name: 'bob'}); //=> true\n * hasName({}); //=> false\n *\n * const point = {x: 0, y: 0};\n * const pointHas = R.has(R.__, point);\n * pointHas('x'); //=> true\n * pointHas('y'); //=> true\n * pointHas('z'); //=> false\n */\n\nvar has =\n/*#__PURE__*/\n_curry2(function has(prop, obj) {\n return hasPath([prop], obj);\n});\n\nexport default has;","import nth from \"./nth.js\";\n/**\n * Returns the first element of the given list or string. In some libraries\n * this function is named `first`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> a | Undefined\n * @sig String -> String\n * @param {Array|String} list\n * @return {*}\n * @see R.tail, R.init, R.last\n * @example\n *\n * R.head(['fi', 'fo', 'fum']); //=> 'fi'\n * R.head([]); //=> undefined\n *\n * R.head('abc'); //=> 'a'\n * R.head(''); //=> ''\n */\n\nvar head =\n/*#__PURE__*/\nnth(0);\nexport default head;","import _curry3 from \"./internal/_curry3.js\";\nimport curryN from \"./curryN.js\";\n/**\n * Creates a function that will process either the `onTrue` or the `onFalse`\n * function depending upon the result of the `condition` predicate.\n *\n * Note that `ifElse` takes its arity from the longest of the three functions passed to it.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Logic\n * @sig (*... -> Boolean) -> (*... -> *) -> (*... -> *) -> (*... -> *)\n * @param {Function} condition A predicate function\n * @param {Function} onTrue A function to invoke when the `condition` evaluates to a truthy value.\n * @param {Function} onFalse A function to invoke when the `condition` evaluates to a falsy value.\n * @return {Function} A new function that will process either the `onTrue` or the `onFalse`\n * function depending upon the result of the `condition` predicate.\n * @see R.unless, R.when, R.cond\n * @example\n *\n * const incCount = R.ifElse(\n * R.has('count'),\n * R.over(R.lensProp('count'), R.inc),\n * R.assoc('count', 1)\n * );\n * incCount({ count: 1 }); //=> { count: 2 }\n * incCount({}); //=> { count: 1 }\n */\n\nvar ifElse =\n/*#__PURE__*/\n_curry3(function ifElse(condition, onTrue, onFalse) {\n return curryN(Math.max(condition.length, onTrue.length, onFalse.length), function _ifElse() {\n return condition.apply(this, arguments) ? onTrue.apply(this, arguments) : onFalse.apply(this, arguments);\n });\n});\n\nexport default ifElse;","import _includes from \"./internal/_includes.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns `true` if the specified value is equal, in [`R.equals`](#equals)\n * terms, to at least one element of the given list; `false` otherwise.\n * Also works with strings.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category List\n * @sig a -> [a] -> Boolean\n * @param {Object} a The item to compare against.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if an equivalent item is in the list, `false` otherwise.\n * @see R.any\n * @example\n *\n * R.includes(3, [1, 2, 3]); //=> true\n * R.includes(4, [1, 2, 3]); //=> false\n * R.includes({ name: 'Fred' }, [{ name: 'Fred' }]); //=> true\n * R.includes([42], [[42]]); //=> true\n * R.includes('ba', 'banana'); //=>true\n */\n\nvar includes =\n/*#__PURE__*/\n_curry2(_includes);\n\nexport default includes;","import _curry2 from \"./internal/_curry2.js\";\nimport _indexOf from \"./internal/_indexOf.js\";\nimport _isArray from \"./internal/_isArray.js\";\n/**\n * Returns the position of the first occurrence of an item in an array, or -1\n * if the item is not included in the array. [`R.equals`](#equals) is used to\n * determine equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> Number\n * @param {*} target The item to find.\n * @param {Array} xs The array to search in.\n * @return {Number} the index of the target, or -1 if the target is not found.\n * @see R.lastIndexOf, R.findIndex\n * @example\n *\n * R.indexOf(3, [1,2,3,4]); //=> 2\n * R.indexOf(10, [1,2,3,4]); //=> -1\n */\n\nvar indexOf =\n/*#__PURE__*/\n_curry2(function indexOf(target, xs) {\n return typeof xs.indexOf === 'function' && !_isArray(xs) ? xs.indexOf(target) : _indexOf(xs, target, 0);\n});\n\nexport default indexOf;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Inserts the sub-list into the list, at the specified `index`. _Note that this is not\n * destructive_: it returns a copy of the list with the changes.\n * <small>No lists have been harmed in the application of this function.</small>\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category List\n * @sig Number -> [a] -> [a] -> [a]\n * @param {Number} index The position to insert the sub-list\n * @param {Array} elts The sub-list to insert into the Array\n * @param {Array} list The list to insert the sub-list into\n * @return {Array} A new Array with `elts` inserted starting at `index`.\n * @example\n *\n * R.insertAll(2, ['x','y','z'], [1,2,3,4]); //=> [1,2,'x','y','z',3,4]\n */\n\nvar insertAll =\n/*#__PURE__*/\n_curry3(function insertAll(idx, elts, list) {\n idx = idx < list.length && idx >= 0 ? idx : list.length;\n return [].concat(Array.prototype.slice.call(list, 0, idx), elts, Array.prototype.slice.call(list, idx));\n});\n\nexport default insertAll;","export default function _identity(x) {\n return x;\n}","import _curry1 from \"./internal/_curry1.js\";\nimport _identity from \"./internal/_identity.js\";\n/**\n * A function that does nothing but return the parameter supplied to it. Good\n * as a default or placeholder function.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig a -> a\n * @param {*} x The value to return.\n * @return {*} The input value, `x`.\n * @example\n *\n * R.identity(1); //=> 1\n *\n * const obj = {};\n * R.identity(obj) === obj; //=> true\n * @symb R.identity(a) = a\n */\n\nvar identity =\n/*#__PURE__*/\n_curry1(_identity);\n\nexport default identity;","import _Set from \"./_Set.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XUniqBy =\n/*#__PURE__*/\nfunction () {\n function XUniqBy(f, xf) {\n this.xf = xf;\n this.f = f;\n this.set = new _Set();\n }\n\n XUniqBy.prototype['@@transducer/init'] = _xfBase.init;\n XUniqBy.prototype['@@transducer/result'] = _xfBase.result;\n\n XUniqBy.prototype['@@transducer/step'] = function (result, input) {\n return this.set.add(this.f(input)) ? this.xf['@@transducer/step'](result, input) : result;\n };\n\n return XUniqBy;\n}();\n\nexport default function _xuniqBy(f) {\n return function (xf) {\n return new XUniqBy(f, xf);\n };\n}","import _Set from \"./internal/_Set.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xuniqBy from \"./internal/_xuniqBy.js\";\n/**\n * Returns a new list containing only one copy of each element in the original\n * list, based upon the value returned by applying the supplied function to\n * each list element. Prefers the first item if the supplied function produces\n * the same value on two items. [`R.equals`](#equals) is used for comparison.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig (a -> b) -> [a] -> [a]\n * @param {Function} fn A function used to produce a value to use during comparisons.\n * @param {Array} list The array to consider.\n * @return {Array} The list of unique items.\n * @example\n *\n * R.uniqBy(Math.abs, [-1, -5, 2, 10, 1, 2]); //=> [-1, -5, 2, 10]\n */\n\nvar uniqBy =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable([], _xuniqBy, function (fn, list) {\n var set = new _Set();\n var result = [];\n var idx = 0;\n var appliedItem, item;\n\n while (idx < list.length) {\n item = list[idx];\n appliedItem = fn(item);\n\n if (set.add(appliedItem)) {\n result.push(item);\n }\n\n idx += 1;\n }\n\n return result;\n}));\n\nexport default uniqBy;","import identity from \"./identity.js\";\nimport uniqBy from \"./uniqBy.js\";\n/**\n * Returns a new list containing only one copy of each element in the original\n * list. [`R.equals`](#equals) is used to determine equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @param {Array} list The array to consider.\n * @return {Array} The list of unique items.\n * @example\n *\n * R.uniq([1, 1, 2, 1]); //=> [1, 2]\n * R.uniq([1, '1']); //=> [1, '1']\n * R.uniq([[42], [42]]); //=> [[42]]\n */\n\nvar uniq =\n/*#__PURE__*/\nuniqBy(identity);\nexport default uniq;","import _curry2 from \"./internal/_curry2.js\";\nimport _filter from \"./internal/_filter.js\";\nimport _Set from \"./internal/_Set.js\";\nimport uniq from \"./uniq.js\";\n/**\n * Combines two lists into a set (i.e. no duplicates) composed of those\n * elements common to both lists.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The list of elements found in both `list1` and `list2`.\n * @see R.innerJoin\n * @example\n *\n * R.intersection([1,2,3,4], [7,6,5,4,3]); //=> [4, 3]\n */\n\nvar intersection =\n/*#__PURE__*/\n_curry2(function intersection(list1, list2) {\n var toKeep = new _Set();\n\n for (var i = 0; i < list1.length; i += 1) {\n toKeep.add(list1[i]);\n }\n\n return uniq(_filter(toKeep.has.bind(toKeep), list2));\n});\n\nexport default intersection;","import _has from \"./_has.js\"; // Based on https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n\nfunction _objectAssign(target) {\n if (target == null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n var idx = 1;\n var length = arguments.length;\n\n while (idx < length) {\n var source = arguments[idx];\n\n if (source != null) {\n for (var nextKey in source) {\n if (_has(nextKey, source)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n\n idx += 1;\n }\n\n return output;\n}\n\nexport default typeof Object.assign === 'function' ? Object.assign : _objectAssign;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * See if an object (i.e. `val`) is an instance of the supplied constructor. This\n * function will check up the inheritance chain, if any.\n * If `val` was created using `Object.create`, `R.is(Object, val) === true`.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Type\n * @sig (* -> {*}) -> a -> Boolean\n * @param {Object} ctor A constructor\n * @param {*} val The value to test\n * @return {Boolean}\n * @example\n *\n * R.is(Object, {}); //=> true\n * R.is(Number, 1); //=> true\n * R.is(Object, 1); //=> false\n * R.is(String, 's'); //=> true\n * R.is(String, new String('')); //=> true\n * R.is(Object, new String('')); //=> true\n * R.is(Object, 's'); //=> false\n * R.is(Number, {}); //=> false\n */\n\nvar is =\n/*#__PURE__*/\n_curry2(function is(Ctor, val) {\n return val instanceof Ctor || val != null && (val.constructor === Ctor || Ctor.name === 'Object' && typeof val === 'object');\n});\n\nexport default is;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Returns a list containing the names of all the properties of the supplied\n * object, including prototype properties.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own and prototype properties.\n * @see R.keys, R.valuesIn\n * @example\n *\n * const F = function() { this.x = 'X'; };\n * F.prototype.y = 'Y';\n * const f = new F();\n * R.keysIn(f); //=> ['x', 'y']\n */\n\nvar keysIn =\n/*#__PURE__*/\n_curry1(function keysIn(obj) {\n var prop;\n var ks = [];\n\n for (prop in obj) {\n ks[ks.length] = prop;\n }\n\n return ks;\n});\n\nexport default keysIn;","import nth from \"./nth.js\";\n/**\n * Returns the last element of the given list or string.\n *\n * @func\n * @memberOf R\n * @since v0.1.4\n * @category List\n * @sig [a] -> a | Undefined\n * @sig String -> String\n * @param {*} list\n * @return {*}\n * @see R.init, R.head, R.tail\n * @example\n *\n * R.last(['fi', 'fo', 'fum']); //=> 'fum'\n * R.last([]); //=> undefined\n *\n * R.last('abc'); //=> 'c'\n * R.last(''); //=> ''\n */\n\nvar last =\n/*#__PURE__*/\nnth(-1);\nexport default last;","import _curry2 from \"./internal/_curry2.js\";\nimport map from \"./map.js\";\n/**\n * Returns a lens for the given getter and setter functions. The getter \"gets\"\n * the value of the focus; the setter \"sets\" the value of the focus. The setter\n * should not mutate the data structure.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig (s -> a) -> ((a, s) -> s) -> Lens s a\n * @param {Function} getter\n * @param {Function} setter\n * @return {Lens}\n * @see R.view, R.set, R.over, R.lensIndex, R.lensProp\n * @example\n *\n * const xLens = R.lens(R.prop('x'), R.assoc('x'));\n *\n * R.view(xLens, {x: 1, y: 2}); //=> 1\n * R.set(xLens, 4, {x: 1, y: 2}); //=> {x: 4, y: 2}\n * R.over(xLens, R.negate, {x: 1, y: 2}); //=> {x: -1, y: 2}\n */\n\nvar lens =\n/*#__PURE__*/\n_curry2(function lens(getter, setter) {\n return function (toFunctorFn) {\n return function (target) {\n return map(function (focus) {\n return setter(focus, target);\n }, toFunctorFn(getter(target)));\n };\n };\n});\n\nexport default lens;","import _curry2 from \"./internal/_curry2.js\";\nimport _isInteger from \"./internal/_isInteger.js\";\nimport nth from \"./nth.js\";\n/**\n * Retrieves the values at given paths of an object.\n *\n * @func\n * @memberOf R\n * @since v0.27.1\n * @category Object\n * @typedefn Idx = [String | Int | Symbol]\n * @sig [Idx] -> {a} -> [a | Undefined]\n * @param {Array} pathsArray The array of paths to be fetched.\n * @param {Object} obj The object to retrieve the nested properties from.\n * @return {Array} A list consisting of values at paths specified by \"pathsArray\".\n * @see R.path\n * @example\n *\n * R.paths([['a', 'b'], ['p', 0, 'q']], {a: {b: 2}, p: [{q: 3}]}); //=> [2, 3]\n * R.paths([['a', 'b'], ['p', 'r']], {a: {b: 2}, p: [{q: 3}]}); //=> [2, undefined]\n */\n\nvar paths =\n/*#__PURE__*/\n_curry2(function paths(pathsArray, obj) {\n return pathsArray.map(function (paths) {\n var val = obj;\n var idx = 0;\n var p;\n\n while (idx < paths.length) {\n if (val == null) {\n return;\n }\n\n p = paths[idx];\n val = _isInteger(p) ? nth(p, val) : val[p];\n idx += 1;\n }\n\n return val;\n });\n});\n\nexport default paths;","import _curry2 from \"./internal/_curry2.js\";\nimport paths from \"./paths.js\";\n/**\n * Retrieves the value at a given path. The nodes of the path can be arbitrary strings or non-negative integers.\n * For anything else, the value is unspecified. Integer paths are meant to index arrays, strings are meant for objects.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Object\n * @typedefn Idx = String | Int | Symbol\n * @sig [Idx] -> {a} -> a | Undefined\n * @sig Idx = String | NonNegativeInt\n * @param {Array} path The path to use.\n * @param {Object} obj The object or array to retrieve the nested property from.\n * @return {*} The data at `path`.\n * @see R.prop, R.nth, R.assocPath, R.dissocPath\n * @example\n *\n * R.path(['a', 'b'], {a: {b: 2}}); //=> 2\n * R.path(['a', 'b'], {c: {b: 2}}); //=> undefined\n * R.path(['a', 'b', 0], {a: {b: [1, 2, 3]}}); //=> 1\n * R.path(['a', 'b', -2], {a: {b: [1, 2, 3]}}); //=> 2\n * R.path([2], {'2': 2}); //=> 2\n * R.path([-2], {'-2': 'a'}); //=> undefined\n */\n\nvar path =\n/*#__PURE__*/\n_curry2(function path(pathAr, obj) {\n return paths([pathAr], obj)[0];\n});\n\nexport default path;","import _curry1 from \"./internal/_curry1.js\";\nimport assocPath from \"./assocPath.js\";\nimport lens from \"./lens.js\";\nimport path from \"./path.js\";\n/**\n * Returns a lens whose focus is the specified path.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Object\n * @typedefn Idx = String | Int | Symbol\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig [Idx] -> Lens s a\n * @param {Array} path The path to use.\n * @return {Lens}\n * @see R.view, R.set, R.over\n * @example\n *\n * const xHeadYLens = R.lensPath(['x', 0, 'y']);\n *\n * R.view(xHeadYLens, {x: [{y: 2, z: 3}, {y: 4, z: 5}]});\n * //=> 2\n * R.set(xHeadYLens, 1, {x: [{y: 2, z: 3}, {y: 4, z: 5}]});\n * //=> {x: [{y: 1, z: 3}, {y: 4, z: 5}]}\n * R.over(xHeadYLens, R.negate, {x: [{y: 2, z: 3}, {y: 4, z: 5}]});\n * //=> {x: [{y: -2, z: 3}, {y: 4, z: 5}]}\n */\n\nvar lensPath =\n/*#__PURE__*/\n_curry1(function lensPath(p) {\n return lens(path(p), assocPath(p));\n});\n\nexport default lensPath;","import add from \"./add.js\";\nimport reduce from \"./reduce.js\";\n/**\n * Adds together all the elements of a list.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig [Number] -> Number\n * @param {Array} list An array of numbers\n * @return {Number} The sum of all the numbers in the list.\n * @see R.reduce\n * @example\n *\n * R.sum([2,4,6,8,100,1]); //=> 121\n */\n\nvar sum =\n/*#__PURE__*/\nreduce(add, 0);\nexport default sum;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Adds two values.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a\n * @param {Number} b\n * @return {Number}\n * @see R.subtract\n * @example\n *\n * R.add(2, 3); //=> 5\n * R.add(7)(10); //=> 17\n */\n\nvar add =\n/*#__PURE__*/\n_curry2(function add(a, b) {\n return Number(a) + Number(b);\n});\n\nexport default add;","import _objectAssign from \"./internal/_objectAssign.js\";\nimport _curry1 from \"./internal/_curry1.js\";\n/**\n * Creates one new object with the own properties from a list of objects.\n * If a key exists in more than one object, the value from the last\n * object it exists in will be used.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig [{k: v}] -> {k: v}\n * @param {Array} list An array of objects\n * @return {Object} A merged object.\n * @see R.reduce\n * @example\n *\n * R.mergeAll([{foo:1},{bar:2},{baz:3}]); //=> {foo:1,bar:2,baz:3}\n * R.mergeAll([{foo:1},{foo:2},{bar:2}]); //=> {foo:2,bar:2}\n * @symb R.mergeAll([{ x: 1 }, { y: 2 }, { z: 3 }]) = { x: 1, y: 2, z: 3 }\n */\n\nvar mergeAll =\n/*#__PURE__*/\n_curry1(function mergeAll(list) {\n return _objectAssign.apply(null, [{}].concat(list));\n});\n\nexport default mergeAll;","import _objectAssign from \"./internal/_objectAssign.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Create a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects,\n * the value from the second object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Object\n * @sig {k: v} -> {k: v} -> {k: v}\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeLeft, R.mergeDeepRight, R.mergeWith, R.mergeWithKey\n * @example\n *\n * R.mergeRight({ 'name': 'fred', 'age': 10 }, { 'age': 40 });\n * //=> { 'name': 'fred', 'age': 40 }\n *\n * const withDefaults = R.mergeRight({x: 0, y: 0});\n * withDefaults({y: 2}); //=> {x: 0, y: 2}\n * @symb R.mergeRight(a, b) = {...a, ...b}\n */\n\nvar mergeRight =\n/*#__PURE__*/\n_curry2(function mergeRight(l, r) {\n return _objectAssign({}, l, r);\n});\n\nexport default mergeRight;","import _curry2 from \"./internal/_curry2.js\";\nimport toString from \"./toString.js\";\n/**\n * Returns the smaller of its two arguments.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> a\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.minBy, R.max\n * @example\n *\n * R.min(789, 123); //=> 123\n * R.min('a', 'b'); //=> 'a'\n */\n\nvar min =\n/*#__PURE__*/\n_curry2(function min(a, b) {\n if (a === b) {\n return a;\n }\n\n function safeMin(x, y) {\n if (x < y !== y < x) {\n return y < x ? y : x;\n }\n\n return undefined;\n }\n\n var minByValue = safeMin(a, b);\n\n if (minByValue !== undefined) {\n return minByValue;\n }\n\n var minByType = safeMin(typeof a, typeof b);\n\n if (minByType !== undefined) {\n return minByType === typeof a ? a : b;\n }\n\n var stringA = toString(a);\n var minByStringValue = safeMin(stringA, toString(b));\n\n if (minByStringValue !== undefined) {\n return minByStringValue === stringA ? a : b;\n }\n\n return a;\n});\n\nexport default min;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns a partial copy of an object omitting the keys specified.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [String] -> {String: *} -> {String: *}\n * @param {Array} names an array of String property names to omit from the new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with properties from `names` not on it.\n * @see R.pick\n * @example\n *\n * R.omit(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, c: 3}\n */\n\nvar omit =\n/*#__PURE__*/\n_curry2(function omit(names, obj) {\n var result = {};\n var index = {};\n var idx = 0;\n var len = names.length;\n\n while (idx < len) {\n index[names[idx]] = 1;\n idx += 1;\n }\n\n for (var prop in obj) {\n if (!index.hasOwnProperty(prop)) {\n result[prop] = obj[prop];\n }\n }\n\n return result;\n});\n\nexport default omit;","import _arity from \"./internal/_arity.js\";\nimport _curry1 from \"./internal/_curry1.js\";\n/**\n * Accepts a function `fn` and returns a function that guards invocation of\n * `fn` such that `fn` can only ever be called once, no matter how many times\n * the returned function is invoked. The first value calculated is returned in\n * subsequent invocations.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (a... -> b) -> (a... -> b)\n * @param {Function} fn The function to wrap in a call-only-once wrapper.\n * @return {Function} The wrapped function.\n * @example\n *\n * const addOneOnce = R.once(x => x + 1);\n * addOneOnce(10); //=> 11\n * addOneOnce(addOneOnce(50)); //=> 11\n */\n\nvar once =\n/*#__PURE__*/\n_curry1(function once(fn) {\n var called = false;\n var result;\n return _arity(fn.length, function () {\n if (called) {\n return result;\n }\n\n called = true;\n result = fn.apply(this, arguments);\n return result;\n });\n});\n\nexport default once;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns a partial copy of an object containing only the keys specified. If\n * the key does not exist, the property is ignored.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [k] -> {k: v} -> {k: v}\n * @param {Array} names an array of String property names to copy onto a new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with only properties from `names` on it.\n * @see R.omit, R.props\n * @example\n *\n * R.pick(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1, d: 4}\n * R.pick(['a', 'e', 'f'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1}\n */\n\nvar pick =\n/*#__PURE__*/\n_curry2(function pick(names, obj) {\n var result = {};\n var idx = 0;\n\n while (idx < names.length) {\n if (names[idx] in obj) {\n result[names[idx]] = obj[names[idx]];\n }\n\n idx += 1;\n }\n\n return result;\n});\n\nexport default pick;","import _curry2 from \"./internal/_curry2.js\";\nimport path from \"./path.js\";\n/**\n * Acts as multiple `prop`: array of keys in, array of values out. Preserves\n * order.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [k] -> {k: v} -> [v]\n * @param {Array} ps The property names to fetch\n * @param {Object} obj The object to query\n * @return {Array} The corresponding values or partially applied function.\n * @see R.prop, R.pluck, R.project\n * @example\n *\n * R.props(['x', 'y'], {x: 1, y: 2}); //=> [1, 2]\n * R.props(['c', 'a', 'b'], {b: 2, a: 1}); //=> [undefined, 1, 2]\n *\n * const fullName = R.compose(R.join(' '), R.props(['first', 'last']));\n * fullName({last: 'Bullet-Tooth', age: 33, first: 'Tony'}); //=> 'Tony Bullet-Tooth'\n */\n\nvar props =\n/*#__PURE__*/\n_curry2(function props(ps, obj) {\n return ps.map(function (p) {\n return path([p], obj);\n });\n});\n\nexport default props;","export default function _isNumber(x) {\n return Object.prototype.toString.call(x) === '[object Number]';\n}","import _curry2 from \"./internal/_curry2.js\";\nimport _isNumber from \"./internal/_isNumber.js\";\n/**\n * Returns a list of numbers from `from` (inclusive) to `to` (exclusive).\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> Number -> [Number]\n * @param {Number} from The first number in the list.\n * @param {Number} to One more than the last number in the list.\n * @return {Array} The list of numbers in the set `[a, b)`.\n * @example\n *\n * R.range(1, 5); //=> [1, 2, 3, 4]\n * R.range(50, 53); //=> [50, 51, 52]\n */\n\nvar range =\n/*#__PURE__*/\n_curry2(function range(from, to) {\n if (!(_isNumber(from) && _isNumber(to))) {\n throw new TypeError('Both arguments to range must be numbers');\n }\n\n var result = [];\n var n = from;\n\n while (n < to) {\n result.push(n);\n n += 1;\n }\n\n return result;\n});\n\nexport default range;","import _curryN from \"./internal/_curryN.js\";\nimport _xReduce from \"./internal/_xReduce.js\";\nimport _xwrap from \"./internal/_xwrap.js\";\nimport _reduced from \"./internal/_reduced.js\";\n/**\n * Like [`reduce`](#reduce), `reduceWhile` returns a single item by iterating\n * through the list, successively calling the iterator function. `reduceWhile`\n * also takes a predicate that is evaluated before each step. If the predicate\n * returns `false`, it \"short-circuits\" the iteration and returns the current\n * value of the accumulator. `reduceWhile` may alternatively be short-circuited\n * via [`reduced`](#reduced).\n *\n * @func\n * @memberOf R\n * @since v0.22.0\n * @category List\n * @sig ((a, b) -> Boolean) -> ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} pred The predicate. It is passed the accumulator and the\n * current element.\n * @param {Function} fn The iterator function. Receives two values, the\n * accumulator and the current element.\n * @param {*} a The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduce, R.reduced\n * @example\n *\n * const isOdd = (acc, x) => x % 2 !== 0;\n * const xs = [1, 3, 5, 60, 777, 800];\n * R.reduceWhile(isOdd, R.add, 0, xs); //=> 9\n *\n * const ys = [2, 4, 6]\n * R.reduceWhile(isOdd, R.add, 111, ys); //=> 111\n */\n\nvar reduceWhile =\n/*#__PURE__*/\n_curryN(4, [], function _reduceWhile(pred, fn, a, list) {\n var xf = _xwrap(function (acc, x) {\n return pred(acc, x) ? fn(acc, x) : _reduced(acc);\n });\n\n return _xReduce(xf, a, list);\n});\n\nexport default reduceWhile;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Returns a function that always returns the given value. Note that for\n * non-primitives the value returned is a reference to the original value.\n *\n * This function is known as `const`, `constant`, or `K` (for K combinator) in\n * other languages and libraries.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig a -> (* -> a)\n * @param {*} val The value to wrap in a function\n * @return {Function} A Function :: * -> val.\n * @example\n *\n * const t = R.always('Tee');\n * t(); //=> 'Tee'\n */\n\nvar always =\n/*#__PURE__*/\n_curry1(function always(val) {\n return function () {\n return val;\n };\n});\n\nexport default always;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Calls an input function `n` times, returning an array containing the results\n * of those function calls.\n *\n * `fn` is passed one argument: The current value of `n`, which begins at `0`\n * and is gradually incremented to `n - 1`.\n *\n * @func\n * @memberOf R\n * @since v0.2.3\n * @category List\n * @sig (Number -> a) -> Number -> [a]\n * @param {Function} fn The function to invoke. Passed one argument, the current value of `n`.\n * @param {Number} n A value between `0` and `n - 1`. Increments after each function call.\n * @return {Array} An array containing the return values of all calls to `fn`.\n * @see R.repeat\n * @example\n *\n * R.times(R.identity, 5); //=> [0, 1, 2, 3, 4]\n * @symb R.times(f, 0) = []\n * @symb R.times(f, 1) = [f(0)]\n * @symb R.times(f, 2) = [f(0), f(1)]\n */\n\nvar times =\n/*#__PURE__*/\n_curry2(function times(fn, n) {\n var len = Number(n);\n var idx = 0;\n var list;\n\n if (len < 0 || isNaN(len)) {\n throw new RangeError('n must be a non-negative number');\n }\n\n list = [];\n\n while (idx < len) {\n list.push(fn(idx));\n idx += 1;\n }\n\n return list;\n});\n\nexport default times;","import _curry2 from \"./internal/_curry2.js\";\nimport always from \"./always.js\";\nimport times from \"./times.js\";\n/**\n * Returns a fixed list of size `n` containing a specified identical value.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig a -> n -> [a]\n * @param {*} value The value to repeat.\n * @param {Number} n The desired size of the output list.\n * @return {Array} A new array containing `n` `value`s.\n * @see R.times\n * @example\n *\n * R.repeat('hi', 5); //=> ['hi', 'hi', 'hi', 'hi', 'hi']\n *\n * const obj = {};\n * const repeatedObjs = R.repeat(obj, 5); //=> [{}, {}, {}, {}, {}]\n * repeatedObjs[0] === repeatedObjs[1]; //=> true\n * @symb R.repeat(a, 0) = []\n * @symb R.repeat(a, 1) = [a]\n * @symb R.repeat(a, 2) = [a, a]\n */\n\nvar repeat =\n/*#__PURE__*/\n_curry2(function repeat(value, n) {\n return times(always(value), n);\n});\n\nexport default repeat;","import _curry3 from \"./internal/_curry3.js\"; // `Identity` is a functor that holds a single value, where `map` simply\n// transforms the held value with the provided function.\n\nvar Identity = function (x) {\n return {\n value: x,\n map: function (f) {\n return Identity(f(x));\n }\n };\n};\n/**\n * Returns the result of \"setting\" the portion of the given data structure\n * focused by the given lens to the result of applying the given function to\n * the focused value.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Lens s a -> (a -> a) -> s -> s\n * @param {Lens} lens\n * @param {*} v\n * @param {*} x\n * @return {*}\n * @see R.view, R.set, R.lens, R.lensIndex, R.lensProp, R.lensPath\n * @example\n *\n * const headLens = R.lensIndex(0);\n *\n * R.over(headLens, R.toUpper, ['foo', 'bar', 'baz']); //=> ['FOO', 'bar', 'baz']\n */\n\n\nvar over =\n/*#__PURE__*/\n_curry3(function over(lens, f, x) {\n // The value returned by the getter function is first transformed with `f`,\n // then set as the value of an `Identity`. This is then mapped over with the\n // setter function of the lens.\n return lens(function (y) {\n return Identity(f(y));\n })(x).value;\n});\n\nexport default over;","import _curry3 from \"./internal/_curry3.js\";\nimport always from \"./always.js\";\nimport over from \"./over.js\";\n/**\n * Returns the result of \"setting\" the portion of the given data structure\n * focused by the given lens to the given value.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Lens s a -> a -> s -> s\n * @param {Lens} lens\n * @param {*} v\n * @param {*} x\n * @return {*}\n * @see R.view, R.over, R.lens, R.lensIndex, R.lensProp, R.lensPath\n * @example\n *\n * const xLens = R.lensProp('x');\n *\n * R.set(xLens, 4, {x: 1, y: 2}); //=> {x: 4, y: 2}\n * R.set(xLens, 8, {x: 1, y: 2}); //=> {x: 8, y: 2}\n */\n\nvar set =\n/*#__PURE__*/\n_curry3(function set(lens, v, x) {\n return over(lens, always(v), x);\n});\n\nexport default set;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Sorts a list according to a list of comparators.\n *\n * @func\n * @memberOf R\n * @since v0.23.0\n * @category Relation\n * @sig [(a, a) -> Number] -> [a] -> [a]\n * @param {Array} functions A list of comparator functions.\n * @param {Array} list The list to sort.\n * @return {Array} A new list sorted according to the comarator functions.\n * @see R.ascend, R.descend\n * @example\n *\n * const alice = {\n * name: 'alice',\n * age: 40\n * };\n * const bob = {\n * name: 'bob',\n * age: 30\n * };\n * const clara = {\n * name: 'clara',\n * age: 40\n * };\n * const people = [clara, bob, alice];\n * const ageNameSort = R.sortWith([\n * R.descend(R.prop('age')),\n * R.ascend(R.prop('name'))\n * ]);\n * ageNameSort(people); //=> [alice, clara, bob]\n */\n\nvar sortWith =\n/*#__PURE__*/\n_curry2(function sortWith(fns, list) {\n return Array.prototype.slice.call(list, 0).sort(function (a, b) {\n var result = 0;\n var i = 0;\n\n while (result === 0 && i < fns.length) {\n result = fns[i](a, b);\n i += 1;\n }\n\n return result;\n });\n});\n\nexport default sortWith;","import _curry1 from \"./internal/_curry1.js\";\nimport _has from \"./internal/_has.js\";\n/**\n * Converts an object into an array of key, value arrays. Only the object's\n * own properties are used.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.4.0\n * @category Object\n * @sig {String: *} -> [[String,*]]\n * @param {Object} obj The object to extract from\n * @return {Array} An array of key, value arrays from the object's own properties.\n * @see R.fromPairs, R.keys, R.values\n * @example\n *\n * R.toPairs({a: 1, b: 2, c: 3}); //=> [['a', 1], ['b', 2], ['c', 3]]\n */\n\nvar toPairs =\n/*#__PURE__*/\n_curry1(function toPairs(obj) {\n var pairs = [];\n\n for (var prop in obj) {\n if (_has(prop, obj)) {\n pairs[pairs.length] = [prop, obj[prop]];\n }\n }\n\n return pairs;\n});\n\nexport default toPairs;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Transposes the rows and columns of a 2D list.\n * When passed a list of `n` lists of length `x`,\n * returns a list of `x` lists of length `n`.\n *\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig [[a]] -> [[a]]\n * @param {Array} list A 2D list\n * @return {Array} A 2D list\n * @example\n *\n * R.transpose([[1, 'a'], [2, 'b'], [3, 'c']]) //=> [[1, 2, 3], ['a', 'b', 'c']]\n * R.transpose([[1, 2, 3], ['a', 'b', 'c']]) //=> [[1, 'a'], [2, 'b'], [3, 'c']]\n *\n * // If some of the rows are shorter than the following rows, their elements are skipped:\n * R.transpose([[10, 11], [20], [], [30, 31, 32]]) //=> [[10, 20, 30], [11, 31], [32]]\n * @symb R.transpose([[a], [b], [c]]) = [a, b, c]\n * @symb R.transpose([[a, b], [c, d]]) = [[a, c], [b, d]]\n * @symb R.transpose([[a, b], [c]]) = [[a, c], [b]]\n */\n\nvar transpose =\n/*#__PURE__*/\n_curry1(function transpose(outerlist) {\n var i = 0;\n var result = [];\n\n while (i < outerlist.length) {\n var innerlist = outerlist[i];\n var j = 0;\n\n while (j < innerlist.length) {\n if (typeof result[j] === 'undefined') {\n result[j] = [];\n }\n\n result[j].push(innerlist[j]);\n j += 1;\n }\n\n i += 1;\n }\n\n return result;\n});\n\nexport default transpose;","import _concat from \"./internal/_concat.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport compose from \"./compose.js\";\nimport uniq from \"./uniq.js\";\n/**\n * Combines two lists into a set (i.e. no duplicates) composed of the elements\n * of each list.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} as The first list.\n * @param {Array} bs The second list.\n * @return {Array} The first and second lists concatenated, with\n * duplicates removed.\n * @example\n *\n * R.union([1, 2, 3], [2, 3, 4]); //=> [1, 2, 3, 4]\n */\n\nvar union =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\ncompose(uniq, _concat));\n\nexport default union;","import _curry1 from \"./internal/_curry1.js\";\nvar ws = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u2000\\u2001\\u2002\\u2003' + '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028' + '\\u2029\\uFEFF';\nvar zeroWidth = '\\u200b';\nvar hasProtoTrim = typeof String.prototype.trim === 'function';\n/**\n * Removes (strips) whitespace from both ends of the string.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to trim.\n * @return {String} Trimmed version of `str`.\n * @example\n *\n * R.trim(' xyz '); //=> 'xyz'\n * R.map(R.trim, R.split(',', 'x, y, z')); //=> ['x', 'y', 'z']\n */\n\nvar trim = !hasProtoTrim ||\n/*#__PURE__*/\nws.trim() || !\n/*#__PURE__*/\nzeroWidth.trim() ?\n/*#__PURE__*/\n_curry1(function trim(str) {\n var beginRx = new RegExp('^[' + ws + '][' + ws + ']*');\n var endRx = new RegExp('[' + ws + '][' + ws + ']*$');\n return str.replace(beginRx, '').replace(endRx, '');\n}) :\n/*#__PURE__*/\n_curry1(function trim(str) {\n return str.trim();\n});\nexport default trim;","import _identity from \"./internal/_identity.js\";\nimport chain from \"./chain.js\";\n/**\n * Shorthand for `R.chain(R.identity)`, which removes one level of nesting from\n * any [Chain](https://github.com/fantasyland/fantasy-land#chain).\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig Chain c => c (c a) -> c a\n * @param {*} list\n * @return {*}\n * @see R.flatten, R.chain\n * @example\n *\n * R.unnest([1, [2], [[3]]]); //=> [1, 2, [3]]\n * R.unnest([[1, 2], [3, 4], [5, 6]]); //=> [1, 2, 3, 4, 5, 6]\n */\n\nvar unnest =\n/*#__PURE__*/\nchain(_identity);\nexport default unnest;","import _curry2 from \"./internal/_curry2.js\";\nimport _Set from \"./internal/_Set.js\";\nimport reject from \"./reject.js\";\n/**\n * Returns a new list without values in the first argument.\n * [`R.equals`](#equals) is used to determine equality.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig [a] -> [a] -> [a]\n * @param {Array} list1 The values to be removed from `list2`.\n * @param {Array} list2 The array to remove values from.\n * @return {Array} The new array without values in `list1`.\n * @see R.transduce, R.difference, R.remove\n * @example\n *\n * R.without([1, 2], [1, 2, 1, 3, 4]); //=> [3, 4]\n */\n\nvar without =\n/*#__PURE__*/\n_curry2(function without(xs, list) {\n var toRemove = new _Set();\n\n for (var i = 0; i < xs.length; i += 1) {\n toRemove.add(xs[i]);\n }\n\n return reject(toRemove.has.bind(toRemove), list);\n});\n\nexport default without;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Creates a new list out of the two supplied by creating each possible pair\n * from the lists.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [b] -> [[a,b]]\n * @param {Array} as The first list.\n * @param {Array} bs The second list.\n * @return {Array} The list made by combining each possible pair from\n * `as` and `bs` into pairs (`[a, b]`).\n * @example\n *\n * R.xprod([1, 2], ['a', 'b']); //=> [[1, 'a'], [1, 'b'], [2, 'a'], [2, 'b']]\n * @symb R.xprod([a, b], [c, d]) = [[a, c], [a, d], [b, c], [b, d]]\n */\n\nvar xprod =\n/*#__PURE__*/\n_curry2(function xprod(a, b) {\n // = xprodWith(prepend); (takes about 3 times as long...)\n var idx = 0;\n var ilen = a.length;\n var j;\n var jlen = b.length;\n var result = [];\n\n while (idx < ilen) {\n j = 0;\n\n while (j < jlen) {\n result[result.length] = [a[idx], b[j]];\n j += 1;\n }\n\n idx += 1;\n }\n\n return result;\n});\n\nexport default xprod;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Creates a new list out of the two supplied by pairing up equally-positioned\n * items from both lists. The returned list is truncated to the length of the\n * shorter of the two input lists.\n * Note: `zip` is equivalent to `zipWith(function(a, b) { return [a, b] })`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [b] -> [[a,b]]\n * @param {Array} list1 The first array to consider.\n * @param {Array} list2 The second array to consider.\n * @return {Array} The list made by pairing up same-indexed elements of `list1` and `list2`.\n * @example\n *\n * R.zip([1, 2, 3], ['a', 'b', 'c']); //=> [[1, 'a'], [2, 'b'], [3, 'c']]\n * @symb R.zip([a, b, c], [d, e, f]) = [[a, d], [b, e], [c, f]]\n */\n\nvar zip =\n/*#__PURE__*/\n_curry2(function zip(a, b) {\n var rv = [];\n var idx = 0;\n var len = Math.min(a.length, b.length);\n\n while (idx < len) {\n rv[idx] = [a[idx], b[idx]];\n idx += 1;\n }\n\n return rv;\n});\n\nexport default zip;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Creates a new list out of the two supplied by applying the function to each\n * equally-positioned pair in the lists. The returned list is truncated to the\n * length of the shorter of the two input lists.\n *\n * @function\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> c) -> [a] -> [b] -> [c]\n * @param {Function} fn The function used to combine the two elements into one value.\n * @param {Array} list1 The first array to consider.\n * @param {Array} list2 The second array to consider.\n * @return {Array} The list made by combining same-indexed elements of `list1` and `list2`\n * using `fn`.\n * @example\n *\n * const f = (x, y) => {\n * // ...\n * };\n * R.zipWith(f, [1, 2, 3], ['a', 'b', 'c']);\n * //=> [f(1, 'a'), f(2, 'b'), f(3, 'c')]\n * @symb R.zipWith(fn, [a, b, c], [d, e, f]) = [fn(a, d), fn(b, e), fn(c, f)]\n */\n\nvar zipWith =\n/*#__PURE__*/\n_curry3(function zipWith(fn, a, b) {\n var rv = [];\n var idx = 0;\n var len = Math.min(a.length, b.length);\n\n while (idx < len) {\n rv[idx] = fn(a[idx], b[idx]);\n idx += 1;\n }\n\n return rv;\n});\n\nexport default zipWith;","import _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}","import _curry1 from \"./_curry1.js\";\nimport _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n\n case 1:\n return _isPlaceholder(a) ? f2 : _curry1(function (_b) {\n return fn(a, _b);\n });\n\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f2 : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n}","import _curry1 from \"./_curry1.js\";\nimport _curry2 from \"./_curry2.js\";\nimport _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Optimized internal three-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curry3(fn) {\n return function f3(a, b, c) {\n switch (arguments.length) {\n case 0:\n return f3;\n\n case 1:\n return _isPlaceholder(a) ? f3 : _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n });\n\n case 2:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f3 : _isPlaceholder(a) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _curry1(function (_c) {\n return fn(a, b, _c);\n });\n\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) && _isPlaceholder(c) ? f3 : _isPlaceholder(a) && _isPlaceholder(b) ? _curry2(function (_a, _b) {\n return fn(_a, _b, c);\n }) : _isPlaceholder(a) && _isPlaceholder(c) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) && _isPlaceholder(c) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b, c);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b, c);\n }) : _isPlaceholder(c) ? _curry1(function (_c) {\n return fn(a, b, _c);\n }) : fn(a, b, c);\n }\n };\n}","export default function _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Removes the sub-list of `list` starting at index `start` and containing\n * `count` elements. _Note that this is not destructive_: it returns a copy of\n * the list with the changes.\n * <small>No lists have been harmed in the application of this function.</small>\n *\n * @func\n * @memberOf R\n * @since v0.2.2\n * @category List\n * @sig Number -> Number -> [a] -> [a]\n * @param {Number} start The position to start removing elements\n * @param {Number} count The number of elements to remove\n * @param {Array} list The list to remove from\n * @return {Array} A new Array with `count` elements from `start` removed.\n * @see R.without\n * @example\n *\n * R.remove(2, 3, [1,2,3,4,5,6,7,8]); //=> [1,2,6,7,8]\n */\n\nvar remove =\n/*#__PURE__*/\n_curry3(function remove(start, count, list) {\n var result = Array.prototype.slice.call(list, 0);\n result.splice(start, count);\n return result;\n});\n\nexport default remove;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"\" + {\"108\":\"async-table\",\"471\":\"async-export\",\"790\":\"async-highlight\"}[chunkId] + \".js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && !scriptUrl) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","var getCurrentScript = function() {\n var script = document.currentScript;\n if (!script) {\n /* Shim for IE11 and below */\n /* Do not take into account async scripts and inline scripts */\n\n var doc_scripts = document.getElementsByTagName('script');\n var scripts = [];\n\n for (var i = 0; i < doc_scripts.length; i++) {\n scripts.push(doc_scripts[i]);\n }\n\n scripts = scripts.filter(function(s) { return !s.async && !s.text && !s.textContent; });\n script = scripts.slice(-1)[0];\n }\n\n return script;\n};\n\nvar isLocalScript = function(script) {\n return /\\/_dash-component-suites\\//.test(script.src);\n};\n\nObject.defineProperty(__webpack_require__, 'p', {\n get: (function () {\n var script = getCurrentScript();\n\n var url = script.src.split('/').slice(0, -1).join('/') + '/';\n\n return function() {\n return url;\n };\n })()\n});\n\nif (typeof jsonpScriptSrc !== 'undefined') {\n var __jsonpScriptSrc__ = jsonpScriptSrc;\n jsonpScriptSrc = function(chunkId) {\n var script = getCurrentScript();\n var isLocal = isLocalScript(script);\n\n var src = __jsonpScriptSrc__(chunkId);\n\n if(!isLocal) {\n return src;\n }\n\n var srcFragments = src.split('/');\n var fileFragments = srcFragments.slice(-1)[0].split('.');\n\n fileFragments.splice(1, 0, \"v5_2_8m1697034003\");\n srcFragments.splice(-1, 1, fileFragments.join('.'))\n\n return srcFragments.join('/');\n };\n}\n","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t296: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkdash_table\"] = self[\"webpackChunkdash_table\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","import 'css.escape'; // polyfill\nimport Environment from 'core/environment';\nimport Logger from 'core/Logger';\nimport DataTable from 'dash-table/dash/DataTable';\nLogger.setDebugLevel(Environment.debugLevel);\nLogger.setLogLevel(Environment.logLevel);\nexport { DataTable };\n"],"names":["leafPrototypes","getProto","inProgress","dataWebpackPrefix","e","window","module","exports","n","t","r","o","i","l","call","m","c","d","Object","defineProperty","enumerable","get","Symbol","toStringTag","value","__esModule","create","bind","default","prototype","hasOwnProperty","p","s","u","a","done","Promise","resolve","then","this","arguments","apply","isReady","lazy","setTimeout","regeneratorRuntime","mark","wrap","prev","next","stop","_dashprivate_isLazyComponentReady","f","length","configurable","writable","key","TypeError","dispatchEvent","CustomEvent","addEventListener","removeEventListener","DebugLevel","LogLevel","LogString","TRACE","INFO","WARNING","ERROR","FATAL","NONE","DEBUG","__logLevel","__debugLevel","logFn","level","currentLevel","fn","console","log","warn","error","Error","concat","prefix","toUpperCase","logger","setDebugLevel","setLogLevel","defineProperties","trace","info","warning","fatal","debug","freeze","CookieStorage","_classCallCheck","id","domain","undefined","path","enabled","expires","Date","now","toUTCString","document","cookie","toLowerCase","split","map","fragments","trim","find","toLocaleLowerCase","entry","delete","R","ret","indexOf","DASH_DEBUG","DASH_LOG","Environment","URL","constructor","location","href","searchParams","_activeEdge","_supportsCssVariables","_class","_defineProperty","Boolean","_window$CSS","CSS","_window$CSS$supports","supports","LazyLoader","hljs","result","DataTable","_Component","_inherits","_super","React","Suspense","fallback","RealDataTable","props","Component","asyncDecorator","table","defaultProps","page_action","page_current","page_size","css","filter_query","filter_action","sort_as_null","sort_action","sort_mode","sort_by","style_as_list_view","derived_viewport_data","derived_viewport_indices","derived_viewport_row_ids","derived_viewport_selected_rows","derived_viewport_selected_row_ids","derived_virtual_data","derived_virtual_indices","derived_virtual_row_ids","derived_virtual_selected_rows","derived_virtual_selected_row_ids","dropdown","dropdown_conditional","dropdown_data","fill_width","filter_options","fixed_columns","headers","data","fixed_rows","markdown_options","link_target","html","tooltip","tooltip_conditional","tooltip_data","tooltip_header","tooltip_delay","tooltip_duration","column_selectable","editable","export_columns","export_format","include_headers_on_copy_paste","selected_cells","selected_columns","selected_rows","selected_row_ids","cell_selectable","row_selectable","style_table","style_cell_conditional","style_data_conditional","style_filter_conditional","style_header_conditional","virtualization","persisted_props","persistence_type","propTypes","PropTypes","columns","isRequired","name","type","presentation","selectable","clearable","deletable","hideable","renamable","case","placeholder_text","format","locale","symbol","decimal","group","grouping","numerals","percent","separate_4digits","nully","specifier","on_change","action","failure","validation","allow_null","allow_YY","row_deletable","active_cell","row","column","row_id","column_id","start_cell","end_cell","data_previous","hidden_columns","is_focused","merge_duplicate_headers","data_timestamp","export_headers","page_count","operator","direction","options","label","if","delay","duration","use_with","row_index","locale_format","selector","rule","style_cell","style_data","style_filter","style_header","column_type","state","column_editable","header_index","derived_filter_query_structure","derived_viewport_selected_columns","setProps","loading_state","is_loading","prop_name","component_name","persistence","persistenceTransforms","extract","propValue","storedValue","root","g","escape","cssEscape","codeUnit","string","String","index","firstCodeUnit","charCodeAt","toString","charAt","factory","set1","set2","idx","len1","len2","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","received","combined","argsIdx","left","combinedIdx","_isPlaceholder","addIndex","origFn","list","args","Array","slice","isArray","val","methodNames","transducerCreator","obj","transducer","x","xf","XAll","all","input","_xall","_arrayFromIterator","iter","push","pred","len","prop","is","b","hasEnumBug","propertyIsEnumerable","nonEnumerableProps","hasArgsEnumBug","contains","item","keys","nIdx","ks","checkArgsLength","_uniqContentEquals","aIterator","bIterator","stackA","stackB","eq","_a","_b","_equals","aItem","match","typeA","equals","valueOf","message","source","global","ignoreCase","multiline","sticky","unicode","size","entries","values","keysA","extendedStackA","extendedStackB","_indexOf","inf","_includes","functor","_quote","replace","pad","toISOString","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","toFixed","reducer","acc","_filter","XFilter","_xfilter","filterable","reject","seen","recur","y","xs","mapPairs","k","sort","join","test","isNaN","NaN","from","repr","safeMax","maxByValue","maxByType","stringA","maxByStringValue","XMap","Number","isInteger","offset","symIterator","iterator","arrayReduce","methodReduce","iterableReduce","reduce","_xArrayReduce","thisObj","_xIterableReduce","step","_xMethodReduce","methodName","XWrap","XAny","any","_xany","el","vals","assocPath","nextObj","arr","tInit","tStep","tResult","XPreservingReduced","XFlatCat","_xchain","monad","jlen","j","ilen","deep","_ObjectMap","param","pattern","copy","copiedValue","cachedCopy","set","getPrototypeOf","RegExp","flags","dotAll","hashedKey","hash","bucket","element","clone","_pipe","methodname","fromIndex","toIndex","Infinity","pipe","reverse","compose","hasOrAdd","shouldAdd","prevSize","_items","_nativeSet","add","has","bIdx","_Set","Set","XFind","found","_xfind","XFindIndex","_xfindIndex","XFindLast","last","_xfindLast","_path","ifElse","condition","onTrue","onFalse","Math","max","target","elts","_identity","XUniqBy","_xuniqBy","appliedItem","list1","list2","toKeep","assign","output","nextKey","Ctor","getter","setter","toFunctorFn","focus","pathsArray","paths","pathAr","safeMin","minByValue","minByType","minByStringValue","names","once","called","ps","_isNumber","to","RangeError","Identity","lens","v","fns","pairs","outerlist","innerlist","toRemove","rv","min","_curry1","f1","_curry2","f2","_curry3","f3","_c","remove","start","count","splice","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","__proto__","mode","ns","def","current","getOwnPropertyNames","forEach","definition","chunkId","promises","globalThis","Function","url","script","needAttach","scripts","getElementsByTagName","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","head","appendChild","scriptUrl","importScripts","currentScript","getCurrentScript","doc_scripts","filter","async","text","textContent","jsonpScriptSrc","__jsonpScriptSrc__","isLocal","srcFragments","fileFragments","installedChunks","installedChunkData","promise","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","some","chunkLoadingGlobal","self","Logger","debugLevel","logLevel"],"sourceRoot":""}