pristine-charts 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/funnel-chart/index.cjs +1725 -0
- package/dist/funnel-chart/index.cjs.map +1 -0
- package/dist/funnel-chart/index.d.cts +62 -0
- package/dist/funnel-chart/index.d.ts +62 -0
- package/dist/funnel-chart/index.js +1718 -0
- package/dist/funnel-chart/index.js.map +1 -0
- package/dist/gauge-chart/index.cjs +1675 -0
- package/dist/gauge-chart/index.cjs.map +1 -0
- package/dist/gauge-chart/index.d.cts +74 -0
- package/dist/gauge-chart/index.d.ts +74 -0
- package/dist/gauge-chart/index.js +1669 -0
- package/dist/gauge-chart/index.js.map +1 -0
- package/dist/index.cjs +4855 -3086
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +4836 -3088
- package/dist/index.js.map +1 -1
- package/dist/variance-chart/index.cjs +1855 -0
- package/dist/variance-chart/index.cjs.map +1 -0
- package/dist/variance-chart/index.d.cts +80 -0
- package/dist/variance-chart/index.d.ts +80 -0
- package/dist/variance-chart/index.js +1844 -0
- package/dist/variance-chart/index.js.map +1 -0
- package/package.json +16 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_isPlaceholder.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_curry1.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_curry2.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_isArray.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_isTransformer.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_dispatchable.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_reduced.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_xfBase.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_xall.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/all.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_arity.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_curryN.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/curryN.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_arrayFromIterator.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_includesWith.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_functionName.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_has.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_objectIs.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_isArguments.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/keys.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/type.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_equals.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/equals.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_indexOf.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_includes.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_map.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_quote.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_toISOString.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_complement.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_arrayReduce.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_filter.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_isObject.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_xfilter.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/filter.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/reject.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_toString.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/toString.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/max.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_xmap.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/map.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_isInteger.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_isString.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_nth.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/prop.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/pluck.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_curry3.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_isArrayLike.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_createReduce.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_xArrayReduce.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/bind.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_xReduce.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_xwrap.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/reduce.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/allPass.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/always.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/anyPass.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_concat.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_reduce.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/ap.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/liftN.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/lift.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/not.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/complement.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/cond.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/defaultTo.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_xfindIndex.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/findIndex.js","../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/ifElse.js","../../src/shared/className.ts","../../src/shared/option.ts","../../src/shared/result.ts","../../src/chart-error/ChartError.tsx","../../src/gauge-chart/GaugeChart.domain.ts","../../src/gauge-chart/GaugeChart.model.ts","../../src/gauge-chart/components/GaugeChartCaption.tsx","../../src/gauge-chart/components/GaugeChartAxis.tsx","../../src/gauge-chart/components/GaugeChartNeedle.tsx","../../src/gauge-chart/components/GaugeChartValueLabels.tsx","../../src/gauge-chart/components/GaugeChartZones.tsx","../../src/gauge-chart/components/GaugeChartSvg.tsx","../../src/gauge-chart/components/GaugeChartFigure.tsx","../../src/gauge-chart/GaugeChart.tsx","../../src/gauge-chart/GaugeChart.defaults.ts"],"names":["XAll","all","curryN","prop","_isArguments","contains","keys","type","b","equals","pad","_toISOString","XFilter","reject","recur","toString","max","XMap","_xmap","map","pluck","_reduce","bind","XWrap","allPass","always","anyPass","reduce_default","ap","liftN","lift","not","cond","defaultTo","XFindIndex","findIndex","ifElse","jsxs","jsx","createArc","useMemo"],"mappings":"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","file":"index.cjs","sourcesContent":["export default function _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}","import _isPlaceholder from \"./_isPlaceholder.js\";\n\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 */\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/**\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 */\nexport default function _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n case 1:\n return _isPlaceholder(a) ? f2 : _curry1(function (_b) {\n return fn(a, _b);\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}","/**\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};","export default function _isTransformer(obj) {\n return obj != null && typeof obj['@@transducer/step'] === 'function';\n}","import _isArray from \"./_isArray.js\";\nimport _isTransformer from \"./_isTransformer.js\";\n\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 */\nexport default function _dispatchable(methodNames, transducerCreator, fn) {\n return function () {\n if (arguments.length === 0) {\n return fn();\n }\n var obj = arguments[arguments.length - 1];\n if (!_isArray(obj)) {\n var idx = 0;\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 idx += 1;\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 return fn.apply(this, arguments);\n };\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\";\nvar XAll = /*#__PURE__*/function () {\n function XAll(f, xf) {\n this.xf = xf;\n this.f = f;\n this.all = true;\n }\n XAll.prototype['@@transducer/init'] = _xfBase.init;\n XAll.prototype['@@transducer/result'] = function (result) {\n if (this.all) {\n result = this.xf['@@transducer/step'](result, true);\n }\n return this.xf['@@transducer/result'](result);\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 return result;\n };\n return XAll;\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/**\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 */\nvar all = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable(['all'], _xall, function all(fn, list) {\n var idx = 0;\n while (idx < list.length) {\n if (!fn(list[idx])) {\n return false;\n }\n idx += 1;\n }\n return true;\n}));\nexport default all;","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 case 1:\n return function (a0) {\n return fn.apply(this, arguments);\n };\n case 2:\n return function (a0, a1) {\n return fn.apply(this, arguments);\n };\n case 3:\n return function (a0, a1, a2) {\n return fn.apply(this, arguments);\n };\n case 4:\n return function (a0, a1, a2, a3) {\n return fn.apply(this, arguments);\n };\n case 5:\n return function (a0, a1, a2, a3, a4) {\n return fn.apply(this, arguments);\n };\n case 6:\n return function (a0, a1, a2, a3, a4, a5) {\n return fn.apply(this, arguments);\n };\n case 7:\n return function (a0, a1, a2, a3, a4, a5, a6) {\n return fn.apply(this, arguments);\n };\n case 8:\n return function (a0, a1, a2, a3, a4, a5, a6, a7) {\n return fn.apply(this, arguments);\n };\n case 9:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {\n return fn.apply(this, arguments);\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 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/**\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 */\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 var hasPlaceholder = false;\n while (combinedIdx < received.length || argsIdx < arguments.length) {\n var result;\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 combined[combinedIdx] = result;\n if (!_isPlaceholder(result)) {\n left -= 1;\n } else {\n hasPlaceholder = true;\n }\n combinedIdx += 1;\n }\n return !hasPlaceholder && left <= 0 ? fn.apply(this, combined) : _arity(Math.max(0, 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/**\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 */\nvar curryN = /*#__PURE__*/_curry2(function curryN(length, fn) {\n if (length === 1) {\n return _curry1(fn);\n }\n return _arity(length, _curryN(length, [], fn));\n});\nexport default curryN;","export default function _arrayFromIterator(iter) {\n var list = [];\n var next;\n while (!(next = iter.next()).done) {\n list.push(next.value);\n }\n return list;\n}","export default function _includesWith(pred, x, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n if (pred(x, list[idx])) {\n return true;\n }\n idx += 1;\n }\n return false;\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}","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}\nexport default typeof Object.is === 'function' ? Object.is : _objectIs;","import _has from \"./_has.js\";\nvar toString = Object.prototype.toString;\nvar _isArguments = /*#__PURE__*/function () {\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}();\nexport default _isArguments;","import _curry1 from \"./internal/_curry1.js\";\nimport _has from \"./internal/_has.js\";\nimport _isArguments from \"./internal/_isArguments.js\";\n\n// cover IE < 9 keys issues\nvar hasEnumBug = ! /*#__PURE__*/{\n toString: null\n}.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n// Safari bug\nvar hasArgsEnumBug = /*#__PURE__*/function () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\nvar contains = function contains(list, item) {\n var idx = 0;\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n idx += 1;\n }\n return false;\n};\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 */\nvar keys = typeof Object.keys === 'function' && !hasArgsEnumBug ? /*#__PURE__*/_curry1(function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n}) : /*#__PURE__*/_curry1(function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n var prop, nIdx;\n var ks = [];\n var checkArgsLength = hasArgsEnumBug && _isArguments(obj);\n for (prop in obj) {\n if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n if (_has(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n nIdx -= 1;\n }\n }\n return ks;\n});\nexport default keys;","import _curry1 from \"./internal/_curry1.js\";\n\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(async () => {}); //=> \"AsyncFunction\"\n * R.type(undefined); //=> \"Undefined\"\n * R.type(BigInt(123)); //=> \"BigInt\"\n */\nvar type = /*#__PURE__*/_curry1(function type(val) {\n return val === null ? 'Null' : val === undefined ? 'Undefined' : Object.prototype.toString.call(val).slice(8, -1);\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/**\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 var b = _arrayFromIterator(bIterator);\n function eq(_a, _b) {\n return _equals(_a, _b, stackA.slice(), stackB.slice());\n }\n\n // if *a* array contains any element that is not included in *b*\n return !_includesWith(function (b, aItem) {\n return !_includesWith(eq, aItem, b);\n }, b, a);\n}\nexport default function _equals(a, b, stackA, stackB) {\n if (_objectIs(a, b)) {\n return true;\n }\n var typeA = type(a);\n if (typeA !== type(b)) {\n return false;\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 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 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 break;\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 break;\n case 'Date':\n if (!_objectIs(a.valueOf(), b.valueOf())) {\n return false;\n }\n break;\n case 'Error':\n return a.name === b.name && a.message === b.message;\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 break;\n }\n var idx = stackA.length - 1;\n while (idx >= 0) {\n if (stackA[idx] === a) {\n return stackB[idx] === b;\n }\n idx -= 1;\n }\n switch (typeA) {\n case 'Map':\n if (a.size !== b.size) {\n return false;\n }\n return _uniqContentEquals(a.entries(), b.entries(), stackA.concat([a]), stackB.concat([b]));\n case 'Set':\n if (a.size !== b.size) {\n return false;\n }\n return _uniqContentEquals(a.values(), b.values(), stackA.concat([a]), stackB.concat([b]));\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 default:\n // Values of other types are only equal if identical.\n return false;\n }\n var keysA = keys(a);\n if (keysA.length !== keys(b).length) {\n return false;\n }\n var extendedStackA = stackA.concat([a]);\n var extendedStackB = stackB.concat([b]);\n idx = keysA.length - 1;\n while (idx >= 0) {\n var key = keysA[idx];\n if (!(_has(key, b) && _equals(b[key], a[key], extendedStackA, extendedStackB))) {\n return false;\n }\n idx -= 1;\n }\n return true;\n}","import _curry2 from \"./internal/_curry2.js\";\nimport _equals from \"./internal/_equals.js\";\n\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 */\nvar equals = /*#__PURE__*/_curry2(function equals(a, b) {\n return _equals(a, b, [], []);\n});\nexport default equals;","import equals from \"../equals.js\";\nexport default function _indexOf(list, a, idx) {\n var inf, item;\n // Array.prototype.indexOf doesn't exist below IE9\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 while (idx < list.length) {\n item = list[idx];\n if (item === 0 && 1 / item === inf) {\n return idx;\n }\n idx += 1;\n }\n return -1;\n } else if (a !== a) {\n // NaN\n while (idx < list.length) {\n item = list[idx];\n if (typeof item === 'number' && item !== item) {\n return idx;\n }\n idx += 1;\n }\n return -1;\n }\n // non-zero numbers can utilise Set\n return list.indexOf(a, idx);\n\n // all these types can utilise Set\n case 'string':\n case 'boolean':\n case 'function':\n case 'undefined':\n return list.indexOf(a, idx);\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 while (idx < list.length) {\n if (equals(list[idx], a)) {\n return idx;\n }\n idx += 1;\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 while (idx < len) {\n result[idx] = fn(functor[idx]);\n idx += 1;\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};\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};\nexport default _toISOString;","export default function _complement(f) {\n return function () {\n return !f.apply(this, arguments);\n };\n}","export default function _arrayReduce(reducer, acc, list) {\n var index = 0;\n var length = list.length;\n while (index < length) {\n acc = reducer(acc, list[index]);\n index += 1;\n }\n return acc;\n}","export default function _filter(fn, list) {\n var idx = 0;\n var len = list.length;\n var result = [];\n while (idx < len) {\n if (fn(list[idx])) {\n result[result.length] = list[idx];\n }\n idx += 1;\n }\n return result;\n}","export default function _isObject(x) {\n return Object.prototype.toString.call(x) === '[object Object]';\n}","import _xfBase from \"./_xfBase.js\";\nvar XFilter = /*#__PURE__*/function () {\n function XFilter(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n XFilter.prototype['@@transducer/init'] = _xfBase.init;\n XFilter.prototype['@@transducer/result'] = _xfBase.result;\n XFilter.prototype['@@transducer/step'] = function (result, input) {\n return this.f(input) ? this.xf['@@transducer/step'](result, input) : result;\n };\n return XFilter;\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/**\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 */\nvar filter = /*#__PURE__*/_curry2( /*#__PURE__*/_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 return acc;\n }, {}, keys(filterable)) :\n // else\n _filter(pred, filterable);\n}));\nexport default filter;","import _complement from \"./internal/_complement.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport filter from \"./filter.js\";\n\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 */\nvar reject = /*#__PURE__*/_curry2(function reject(pred, filterable) {\n return filter(_complement(pred), filterable);\n});\nexport default reject;","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 };\n\n // mapPairs :: (Object, [String]) -> [String]\n var mapPairs = function (obj, keys) {\n return _map(function (k) {\n return _quote(k) + ': ' + recur(obj[k]);\n }, keys.slice().sort());\n };\n switch (Object.prototype.toString.call(x)) {\n case '[object Arguments]':\n return '(function() { return arguments; }(' + _map(recur, x).join(', ') + '))';\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 case '[object Boolean]':\n return typeof x === 'object' ? 'new Boolean(' + recur(x.valueOf()) + ')' : x.toString();\n case '[object Date]':\n return 'new Date(' + (isNaN(x.valueOf()) ? recur(NaN) : _quote(_toISOString(x))) + ')';\n case '[object Map]':\n return 'new Map(' + recur(Array.from(x)) + ')';\n case '[object Null]':\n return 'null';\n case '[object Number]':\n return typeof x === 'object' ? 'new Number(' + recur(x.valueOf()) + ')' : 1 / x === -Infinity ? '-0' : x.toString(10);\n case '[object Set]':\n return 'new Set(' + recur(Array.from(x).sort()) + ')';\n case '[object String]':\n return typeof x === 'object' ? 'new String(' + recur(x.valueOf()) + ')' : _quote(x);\n case '[object Undefined]':\n return 'undefined';\n default:\n if (typeof x.toString === 'function') {\n var repr = x.toString();\n if (repr !== '[object Object]') {\n return repr;\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/**\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 */\nvar toString = /*#__PURE__*/_curry1(function toString(val) {\n return _toString(val, []);\n});\nexport default toString;","import _curry2 from \"./internal/_curry2.js\";\nimport toString from \"./toString.js\";\n\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 */\nvar max = /*#__PURE__*/_curry2(function max(a, b) {\n if (a === b) {\n return b;\n }\n function safeMax(x, y) {\n if (x > y !== y > x) {\n return y > x ? y : x;\n }\n return undefined;\n }\n var maxByValue = safeMax(a, b);\n if (maxByValue !== undefined) {\n return maxByValue;\n }\n var maxByType = safeMax(typeof a, typeof b);\n if (maxByType !== undefined) {\n return maxByType === typeof a ? a : b;\n }\n var stringA = toString(a);\n var maxByStringValue = safeMax(stringA, toString(b));\n if (maxByStringValue !== undefined) {\n return maxByStringValue === stringA ? a : b;\n }\n return b;\n});\nexport default max;","import _xfBase from \"./_xfBase.js\";\nvar XMap = /*#__PURE__*/function () {\n function XMap(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n XMap.prototype['@@transducer/init'] = _xfBase.init;\n XMap.prototype['@@transducer/result'] = _xfBase.result;\n XMap.prototype['@@transducer/step'] = function (result, input) {\n return this.xf['@@transducer/step'](result, this.f(input));\n };\n return XMap;\n}();\nvar _xmap = function _xmap(f) {\n return function (xf) {\n return new XMap(f, xf);\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/**\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 */\nvar map = /*#__PURE__*/_curry2( /*#__PURE__*/_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 case '[object Object]':\n return _arrayReduce(function (acc, key) {\n acc[key] = fn(functor[key]);\n return acc;\n }, {}, keys(functor));\n default:\n return _map(fn, functor);\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 _isString from \"./_isString.js\";\nexport default function _nth(offset, list) {\n var idx = offset < 0 ? list.length + offset : offset;\n return _isString(list) ? list.charAt(idx) : list[idx];\n}","import _curry2 from \"./internal/_curry2.js\";\nimport _isInteger from \"./internal/_isInteger.js\";\nimport _nth from \"./internal/_nth.js\";\n\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 = /*#__PURE__*/_curry2(function prop(p, obj) {\n if (obj == null) {\n return;\n }\n return _isInteger(p) ? _nth(p, obj) : obj[p];\n});\nexport default prop;","import _curry2 from \"./internal/_curry2.js\";\nimport map from \"./map.js\";\nimport prop from \"./prop.js\";\n\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 */\nvar pluck = /*#__PURE__*/_curry2(function pluck(p, list) {\n return map(prop(p), list);\n});\nexport default pluck;","import _curry1 from \"./_curry1.js\";\nimport _curry2 from \"./_curry2.js\";\nimport _isPlaceholder from \"./_isPlaceholder.js\";\n\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 */\nexport default function _curry3(fn) {\n return function f3(a, b, c) {\n switch (arguments.length) {\n case 0:\n return f3;\n case 1:\n return _isPlaceholder(a) ? f3 : _curry2(function (_b, _c) {\n return fn(a, _b, _c);\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 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}","import _curry1 from \"./_curry1.js\";\nimport _isArray from \"./_isArray.js\";\nimport _isString from \"./_isString.js\";\n\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 */\nvar _isArrayLike = /*#__PURE__*/_curry1(function isArrayLike(x) {\n if (_isArray(x)) {\n return true;\n }\n if (!x) {\n return false;\n }\n if (typeof x !== 'object') {\n return false;\n }\n if (_isString(x)) {\n return false;\n }\n if (x.length === 0) {\n return true;\n }\n if (x.length > 0) {\n return x.hasOwnProperty(0) && x.hasOwnProperty(x.length - 1);\n }\n return false;\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 if (list == null) {\n return acc;\n }\n if (typeof list['fantasy-land/reduce'] === 'function') {\n return methodReduce(xf, acc, list, 'fantasy-land/reduce');\n }\n if (list[symIterator] != null) {\n return iterableReduce(xf, acc, list[symIterator]());\n }\n if (typeof list.next === 'function') {\n return iterableReduce(xf, acc, list);\n }\n if (typeof list.reduce === 'function') {\n return methodReduce(xf, acc, list, 'reduce');\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 while (idx < len) {\n acc = xf['@@transducer/step'](acc, list[idx]);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n idx += 1;\n }\n return xf['@@transducer/result'](acc);\n}","import _arity from \"./internal/_arity.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n\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 */\nvar bind = /*#__PURE__*/_curry2(function bind(fn, thisObj) {\n return _arity(fn.length, function () {\n return fn.apply(thisObj, arguments);\n });\n});\nexport default bind;","import _createReduce from \"./_createReduce.js\";\nimport _xArrayReduce from \"./_xArrayReduce.js\";\nimport bind from \"../bind.js\";\nfunction _xIterableReduce(xf, acc, iter) {\n var step = iter.next();\n while (!step.done) {\n acc = xf['@@transducer/step'](acc, step.value);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n step = iter.next();\n }\n return xf['@@transducer/result'](acc);\n}\nfunction _xMethodReduce(xf, acc, obj, methodName) {\n return xf['@@transducer/result'](obj[methodName](bind(xf['@@transducer/step'], xf), acc));\n}\nvar _xReduce = /*#__PURE__*/_createReduce(_xArrayReduce, _xMethodReduce, _xIterableReduce);\nexport default _xReduce;","var XWrap = /*#__PURE__*/function () {\n function XWrap(fn) {\n this.f = fn;\n }\n XWrap.prototype['@@transducer/init'] = function () {\n throw new Error('init not implemented on XWrap');\n };\n XWrap.prototype['@@transducer/result'] = function (acc) {\n return acc;\n };\n XWrap.prototype['@@transducer/step'] = function (acc, x) {\n return this.f(acc, x);\n };\n return XWrap;\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/**\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 */\nvar reduce = /*#__PURE__*/_curry3(function (xf, acc, list) {\n return _xReduce(typeof xf === 'function' ? _xwrap(xf) : xf, acc, list);\n});\nexport default reduce;","import _curry1 from \"./internal/_curry1.js\";\nimport curryN from \"./curryN.js\";\nimport max from \"./max.js\";\nimport pluck from \"./pluck.js\";\nimport reduce from \"./reduce.js\";\n\n/**\n * Takes a list of predicates and returns a predicate that returns true for a\n * given list of arguments if every one of the provided predicates is satisfied\n * by those arguments.\n *\n * The function returned is a curried function whose arity matches that of the\n * highest-arity predicate.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Logic\n * @sig [(*... -> Boolean)] -> (*... -> Boolean)\n * @param {Array} predicates An array of predicates to check\n * @return {Function} The combined predicate\n * @see R.anyPass, R.both\n * @example\n *\n * const isQueen = R.propEq('Q', 'rank');\n * const isSpade = R.propEq('♠︎', 'suit');\n * const isQueenOfSpades = R.allPass([isQueen, isSpade]);\n *\n * isQueenOfSpades({rank: 'Q', suit: '♣︎'}); //=> false\n * isQueenOfSpades({rank: 'Q', suit: '♠︎'}); //=> true\n */\nvar allPass = /*#__PURE__*/_curry1(function allPass(preds) {\n return curryN(reduce(max, 0, pluck('length', preds)), function () {\n var idx = 0;\n var len = preds.length;\n while (idx < len) {\n if (!preds[idx].apply(this, arguments)) {\n return false;\n }\n idx += 1;\n }\n return true;\n });\n});\nexport default allPass;","import _curry1 from \"./internal/_curry1.js\";\n\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 */\nvar always = /*#__PURE__*/_curry1(function always(val) {\n return function () {\n return val;\n };\n});\nexport default always;","import _curry1 from \"./internal/_curry1.js\";\nimport curryN from \"./curryN.js\";\nimport max from \"./max.js\";\nimport pluck from \"./pluck.js\";\nimport reduce from \"./reduce.js\";\n\n/**\n * Takes a list of predicates and returns a predicate that returns true for a\n * given list of arguments if at least one of the provided predicates is\n * satisfied by those arguments.\n *\n * The function returned is a curried function whose arity matches that of the\n * highest-arity predicate.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Logic\n * @sig [(*... -> Boolean)] -> (*... -> Boolean)\n * @param {Array} predicates An array of predicates to check\n * @return {Function} The combined predicate\n * @see R.allPass, R.either\n * @example\n *\n * const isClub = R.propEq('♣', 'suit');\n * const isSpade = R.propEq('♠', 'suit');\n * const isBlackCard = R.anyPass([isClub, isSpade]);\n *\n * isBlackCard({rank: '10', suit: '♣'}); //=> true\n * isBlackCard({rank: 'Q', suit: '♠'}); //=> true\n * isBlackCard({rank: 'Q', suit: '♦'}); //=> false\n */\nvar anyPass = /*#__PURE__*/_curry1(function anyPass(preds) {\n return curryN(reduce(max, 0, pluck('length', preds)), function () {\n var idx = 0;\n var len = preds.length;\n while (idx < len) {\n if (preds[idx].apply(this, arguments)) {\n return true;\n }\n idx += 1;\n }\n return false;\n });\n});\nexport default anyPass;","/**\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 while (idx < len1) {\n result[result.length] = set1[idx];\n idx += 1;\n }\n idx = 0;\n while (idx < len2) {\n result[result.length] = set2[idx];\n idx += 1;\n }\n return result;\n}","import _arrayReduce from \"./_arrayReduce.js\";\nimport _createReduce from \"./_createReduce.js\";\nfunction _iterableReduce(reducer, acc, iter) {\n var step = iter.next();\n while (!step.done) {\n acc = reducer(acc, step.value);\n step = iter.next();\n }\n return acc;\n}\nfunction _methodReduce(reducer, acc, obj, methodName) {\n return obj[methodName](reducer, acc);\n}\nvar _reduce = /*#__PURE__*/_createReduce(_arrayReduce, _methodReduce, _iterableReduce);\nexport default _reduce;","import _concat from \"./internal/_concat.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport map from \"./map.js\";\n\n/**\n * ap applies a list of functions to a list of values.\n *\n * Dispatches to the `ap` method of the first argument, if present. Also\n * treats curried functions as applicatives.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig [a -> b] -> [a] -> [b]\n * @sig Apply f => f (a -> b) -> f a -> f b\n * @sig (r -> a -> b) -> (r -> a) -> (r -> b)\n * @param {*} applyF\n * @param {*} applyX\n * @return {*}\n * @example\n *\n * R.ap([R.multiply(2), R.add(3)], [1,2,3]); //=> [2, 4, 6, 4, 5, 6]\n * R.ap([R.concat('tasty '), R.toUpper], ['pizza', 'salad']); //=> [\"tasty pizza\", \"tasty salad\", \"PIZZA\", \"SALAD\"]\n *\n * // R.ap can also be used as S combinator\n * // when only two functions are passed\n * R.ap(R.concat, R.toUpper)('Ramda') //=> 'RamdaRAMDA'\n * @symb R.ap([f, g], [a, b]) = [f(a), f(b), g(a), g(b)]\n */\nvar ap = /*#__PURE__*/_curry2(function ap(applyF, applyX) {\n return typeof applyX['fantasy-land/ap'] === 'function' ? applyX['fantasy-land/ap'](applyF) : typeof applyF.ap === 'function' ? applyF.ap(applyX) : typeof applyF === 'function' ? function (x) {\n return applyF(x)(applyX(x));\n } : _reduce(function (acc, f) {\n return _concat(acc, map(f, applyX));\n }, [], applyF);\n});\nexport default ap;","import _curry2 from \"./internal/_curry2.js\";\nimport _arrayReduce from \"./internal/_arrayReduce.js\";\nimport ap from \"./ap.js\";\nimport curryN from \"./curryN.js\";\nimport map from \"./map.js\";\n\n/**\n * \"lifts\" a function to be the specified arity, so that it may \"map over\" that\n * many lists, Functions or other objects that satisfy the [FantasyLand Apply spec](https://github.com/fantasyland/fantasy-land#apply).\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Function\n * @sig Number -> (*... -> *) -> ([*]... -> [*])\n * @param {Function} fn The function to lift into higher context\n * @return {Function} The lifted function.\n * @see R.lift, R.ap\n * @example\n *\n * const madd3 = R.liftN(3, (...args) => R.sum(args));\n * madd3([1,2,3], [1,2,3], [1]); //=> [3, 4, 5, 4, 5, 6, 5, 6, 7]\n */\nvar liftN = /*#__PURE__*/_curry2(function liftN(arity, fn) {\n var lifted = curryN(arity, fn);\n return curryN(arity, function () {\n return _arrayReduce(ap, map(lifted, arguments[0]), Array.prototype.slice.call(arguments, 1));\n });\n});\nexport default liftN;","import _curry1 from \"./internal/_curry1.js\";\nimport liftN from \"./liftN.js\";\n\n/**\n * \"lifts\" a function of arity >= 1 so that it may \"map over\" a list, Function or other\n * object that satisfies the [FantasyLand Apply spec](https://github.com/fantasyland/fantasy-land#apply).\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Function\n * @sig (*... -> *) -> ([*]... -> [*])\n * @param {Function} fn The function to lift into higher context\n * @return {Function} The lifted function.\n * @see R.liftN\n * @example\n *\n * const madd3 = R.lift((a, b, c) => a + b + c);\n *\n * madd3([100, 200], [30, 40], [5, 6, 7]); //=> [135, 136, 137, 145, 146, 147, 235, 236, 237, 245, 246, 247]\n *\n * const madd5 = R.lift((a, b, c, d, e) => a + b + c + d + e);\n *\n * madd5([10, 20], [1], [2, 3], [4], [100, 200]); //=> [117, 217, 118, 218, 127, 227, 128, 228]\n */\nvar lift = /*#__PURE__*/_curry1(function lift(fn) {\n return liftN(fn.length, fn);\n});\nexport default lift;","import _curry1 from \"./internal/_curry1.js\";\n\n/**\n * A function that returns the `!` of its argument. It will return `true` when\n * passed false-y value, and `false` when passed a truth-y one.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig * -> Boolean\n * @param {*} a any value\n * @return {Boolean} the logical inverse of passed argument.\n * @see R.complement\n * @example\n *\n * R.not(true); //=> false\n * R.not(false); //=> true\n * R.not(0); //=> true\n * R.not(1); //=> false\n */\nvar not = /*#__PURE__*/_curry1(function not(a) {\n return !a;\n});\nexport default not;","import lift from \"./lift.js\";\nimport not from \"./not.js\";\n\n/**\n * Takes a function `f` and returns a function `g` such that if called with the same arguments\n * when `f` returns a \"truthy\" value, `g` returns `false` and when `f` returns a \"falsy\" value `g` returns `true`.\n *\n * `R.complement` may be applied to any functor\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category Logic\n * @sig (*... -> *) -> (*... -> Boolean)\n * @param {Function} f\n * @return {Function}\n * @see R.not\n * @example\n *\n * const isNotNil = R.complement(R.isNil);\n * R.isNil(null); //=> true\n * isNotNil(null); //=> false\n * R.isNil(7); //=> false\n * isNotNil(7); //=> true\n */\nvar complement = /*#__PURE__*/lift(not);\nexport default complement;","import _arity from \"./internal/_arity.js\";\nimport _curry1 from \"./internal/_curry1.js\";\nimport map from \"./map.js\";\nimport max from \"./max.js\";\nimport reduce from \"./reduce.js\";\n\n/**\n * Returns a function, `fn`, which encapsulates `if/else, if/else, ...` logic.\n * `R.cond` takes a list of [predicate, transformer] pairs. All of the arguments\n * to `fn` are applied to each of the predicates in turn until one returns a\n * \"truthy\" value, at which point `fn` returns the result of applying its\n * arguments to the corresponding transformer. If none of the predicates\n * matches, `fn` returns undefined.\n *\n * **Please note**: This is not a direct substitute for a `switch` statement.\n * Remember that both elements of every pair passed to `cond` are *functions*,\n * and `cond` returns a function.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Logic\n * @sig [[(*... -> Boolean),(*... -> *)]] -> (*... -> *)\n * @param {Array} pairs A list of [predicate, transformer]\n * @return {Function}\n * @see R.ifElse, R.unless, R.when\n * @example\n *\n * const fn = R.cond([\n * [R.equals(0), R.always('water freezes at 0°C')],\n * [R.equals(100), R.always('water boils at 100°C')],\n * [R.T, temp => 'nothing special happens at ' + temp + '°C']\n * ]);\n * fn(0); //=> 'water freezes at 0°C'\n * fn(50); //=> 'nothing special happens at 50°C'\n * fn(100); //=> 'water boils at 100°C'\n */\nvar cond = /*#__PURE__*/_curry1(function cond(pairs) {\n var arity = reduce(max, 0, map(function (pair) {\n return pair[0].length;\n }, pairs));\n return _arity(arity, function () {\n var idx = 0;\n while (idx < pairs.length) {\n if (pairs[idx][0].apply(this, arguments)) {\n return pairs[idx][1].apply(this, arguments);\n }\n idx += 1;\n }\n });\n});\nexport default cond;","import _curry2 from \"./internal/_curry2.js\";\n\n/**\n * Returns the second argument if it is not `null`, `undefined` or `NaN`;\n * otherwise the first argument is returned.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Logic\n * @sig a -> b -> a | b\n * @param {a} default The default value.\n * @param {b} val `val` will be returned instead of `default` unless `val` is `null`, `undefined` or `NaN`.\n * @return {*} The second value if it is not `null`, `undefined` or `NaN`, otherwise the default value\n * @example\n *\n * const defaultTo42 = R.defaultTo(42);\n *\n * defaultTo42(null); //=> 42\n * defaultTo42(undefined); //=> 42\n * defaultTo42(false); //=> false\n * defaultTo42('Ramda'); //=> 'Ramda'\n * // parseInt('string') results in NaN\n * defaultTo42(parseInt('string')); //=> 42\n */\nvar defaultTo = /*#__PURE__*/_curry2(function defaultTo(d, v) {\n return v == null || v !== v ? d : v;\n});\nexport default defaultTo;","import _reduced from \"./_reduced.js\";\nimport _xfBase from \"./_xfBase.js\";\nvar XFindIndex = /*#__PURE__*/function () {\n function XFindIndex(f, xf) {\n this.xf = xf;\n this.f = f;\n this.idx = -1;\n this.found = false;\n }\n XFindIndex.prototype['@@transducer/init'] = _xfBase.init;\n XFindIndex.prototype['@@transducer/result'] = function (result) {\n if (!this.found) {\n result = this.xf['@@transducer/step'](result, -1);\n }\n return this.xf['@@transducer/result'](result);\n };\n XFindIndex.prototype['@@transducer/step'] = function (result, input) {\n this.idx += 1;\n if (this.f(input)) {\n this.found = true;\n result = _reduced(this.xf['@@transducer/step'](result, this.idx));\n }\n return result;\n };\n return XFindIndex;\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/**\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(2, 'a'))(xs); //=> 1\n * R.findIndex(R.propEq(4, 'a'))(xs); //=> -1\n */\nvar findIndex = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable([], _xfindIndex, function findIndex(fn, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n if (fn(list[idx])) {\n return idx;\n }\n idx += 1;\n }\n return -1;\n}));\nexport default findIndex;","import _curry3 from \"./internal/_curry3.js\";\nimport curryN from \"./curryN.js\";\n\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 */\nvar ifElse = /*#__PURE__*/_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});\nexport default ifElse;","import { filter } from './fp'\n\nconst isPresentClassName = (value: string) => value.trim().length > 0\n\nexport const classNames = (values: readonly string[]) =>\n filter(isPresentClassName, [...values]).join(' ')\n","import { always, ifElse, isNil } from './fp'\n\nexport type Some<TValue> = {\n readonly status: 'some'\n readonly value: TValue\n}\n\nexport type None = {\n readonly status: 'none'\n}\n\nexport type Option<TValue> = Some<TValue> | None\n\nexport type OptionMatcher<TValue, TOutput> = {\n readonly some: (value: TValue) => TOutput\n readonly none: () => TOutput\n}\n\nexport const none: None = { status: 'none' }\n\nexport function some<TValue>(value: TValue): Some<TValue> {\n return { status: 'some', value }\n}\n\nexport const isSome = <TValue>(option: Option<TValue>): option is Some<TValue> =>\n option.status === 'some'\n\nexport const isNone = <TValue>(option: Option<TValue>): option is None =>\n option.status === 'none'\n\nexport const fromNullable = <TValue>(value: TValue): Option<TValue> =>\n ifElse(\n isNil,\n always(none),\n some<TValue>,\n )(value)\n\nexport const getOrElse = <TValue>(fallback: TValue) => (option: Option<TValue>): TValue =>\n ifElse(\n isSome<TValue>,\n (someOption: Some<TValue>) => someOption.value,\n always(fallback),\n )(option)\n\nexport function matchOption<TValue, TOutput>(\n option: Option<TValue>,\n matcher: OptionMatcher<TValue, TOutput>,\n) {\n return ifElse(\n isSome<TValue>,\n (someOption: Some<TValue>) => matcher.some(someOption.value),\n matcher.none,\n )(option)\n}\n","import { ifElse } from './fp'\n\nexport type Ok<TValue> = {\n readonly status: 'ok'\n readonly value: TValue\n}\n\nexport type Err<TError> = {\n readonly status: 'error'\n readonly error: TError\n}\n\nexport type Result<TValue, TError> = Ok<TValue> | Err<TError>\n\nexport type ResultMatcher<TValue, TError, TOutput> = {\n readonly ok: (value: TValue) => TOutput\n readonly error: (error: TError) => TOutput\n}\n\nexport function ok<TValue>(value: TValue): Ok<TValue> {\n return { status: 'ok', value }\n}\n\nexport function err<TError>(error: TError): Err<TError> {\n return { status: 'error', error }\n}\n\nexport const isOk = <TValue, TError>(\n result: Result<TValue, TError>,\n): result is Ok<TValue> => result.status === 'ok'\n\nexport const andThenResult =\n <TValue, TNextValue, TError>(\n transform: (value: TValue) => Result<TNextValue, TError>,\n ) =>\n (result: Result<TValue, TError>): Result<TNextValue, TError> =>\n matchResult(result, {\n error: err<TError>,\n ok: transform,\n })\n\nexport const mapResult =\n <TValue, TNextValue, TError>(transform: (value: TValue) => TNextValue) =>\n (result: Result<TValue, TError>): Result<TNextValue, TError> =>\n andThenResult<TValue, TNextValue, TError>((value) => ok(transform(value)))(result)\n\nexport const bindResult =\n <TContext extends object, TValue, TNextContext extends object, TError>(\n transform: (context: TContext) => Result<TValue, TError>,\n merge: (context: TContext, value: TValue) => TNextContext,\n ) =>\n (result: Result<TContext, TError>): Result<TNextContext, TError> =>\n andThenResult<TContext, TNextContext, TError>(\n (context) =>\n mapResult<TValue, TNextContext, TError>((value) => merge(context, value))(\n transform(context),\n ),\n )(result)\n\nexport function matchResult<TValue, TError, TOutput>(\n result: Result<TValue, TError>,\n matcher: ResultMatcher<TValue, TError, TOutput>,\n) {\n return ifElse(\n isOk<TValue, TError>,\n (okResult: Ok<TValue>) => matcher.ok(okResult.value),\n (errorResult: Err<TError>) => matcher.error(errorResult.error),\n )(result)\n}\n","import { classNames, matchOption } from '../shared'\nimport type { ChartErrorInputProps } from './ChartError.types'\n\nconst renderDetails = (details: ChartErrorInputProps['details']) =>\n matchOption(details, {\n none: () => null,\n some: (value) => <p className=\"pristine-chart-error__details\">{value}</p>,\n })\n\nexport function ChartError({\n title,\n message,\n details,\n className,\n role,\n}: ChartErrorInputProps) {\n return (\n <div className={classNames(['pristine-chart-error', className])} role={role}>\n <p className=\"pristine-chart-error__title\">{title}</p>\n <p className=\"pristine-chart-error__message\">{message}</p>\n {renderDetails(details)}\n </div>\n )\n}\n","import { err, mapResult, none, ok, some } from '../shared'\nimport type { Result } from '../shared'\nimport {\n all,\n allPass,\n always,\n anyPass,\n complement,\n cond,\n defaultTo,\n findIndex,\n} from '../shared/fp'\n\nimport type {\n GaugeChartError,\n GaugeChartInput,\n GaugeChartResult,\n GaugeChartSummary,\n PerformanceZone,\n ScaleRange,\n ValidatedGaugeChartInput,\n ValidatedPerformanceZone,\n} from './GaugeChart.types'\n\ntype GaugeChartInputResult = Result<ValidatedGaugeChartInput, GaugeChartError>\ntype GaugeChartInputValidator = [\n (input: GaugeChartInput) => boolean,\n (input: GaugeChartInput) => GaugeChartInputResult,\n]\ntype ZonePair = readonly [PerformanceZone, PerformanceZone]\n\nconst gaugeChartRules = {\n invalidScaleMinimum: (minimum: unknown): GaugeChartError => ({\n type: 'InvalidScaleMinimum',\n message: 'Gauge chart minimum must be a finite number.',\n details: some(`Invalid minimum: ${String(minimum)}.`),\n }),\n invalidScaleMaximum: (maximum: unknown, minimum: unknown): GaugeChartError => ({\n type: 'InvalidScaleMaximum',\n message: 'Gauge chart maximum must be a finite number greater than the minimum.',\n details: some(`Invalid maximum: ${String(maximum)} for minimum ${String(minimum)}.`),\n }),\n currentValueOutOfRange: (value: unknown, scaleRange: ScaleRange): GaugeChartError => ({\n type: 'CurrentValueOutOfRange',\n message: 'Gauge chart current value must be a finite number within the scale range.',\n details: some(\n `Current value ${String(value)} is outside ${String(scaleRange.minimum)} to ${String(\n scaleRange.maximum,\n )}.`,\n ),\n }),\n noZonesProvided: (): GaugeChartError => ({\n type: 'NoZonesProvided',\n message: 'A gauge chart needs at least one performance zone.',\n details: none,\n }),\n emptyZoneLabel: (index: number): GaugeChartError => ({\n type: 'EmptyZoneLabel',\n message: 'Every gauge chart performance zone needs a non-empty label.',\n details: some(`Empty zone label at index ${String(index)}.`),\n }),\n invalidZoneBounds: (index: number): GaugeChartError => ({\n type: 'InvalidZoneBounds',\n message: 'Every gauge chart zone lower bound must be less than its upper bound.',\n details: some(`Invalid zone bounds at index ${String(index)}.`),\n }),\n zonesDoNotCoverScale: (scaleRange: ScaleRange): GaugeChartError => ({\n type: 'ZonesDoNotCoverScale',\n message: 'Gauge chart zones must exactly cover the scale with no gaps or overlaps.',\n details: some(\n `Expected zones to cover ${String(scaleRange.minimum)} to ${String(\n scaleRange.maximum,\n )}.`,\n ),\n }),\n}\n\nconst isFiniteNumber = (value: unknown) =>\n allPass([\n (candidate: unknown) => typeof candidate === 'number',\n (candidate: unknown) => Number.isFinite(candidate),\n ])(value)\n\nconst hasValidScaleMinimum = (input: GaugeChartInput) => isFiniteNumber(input.minimum)\n\nconst hasValidScaleMaximum = (input: GaugeChartInput) =>\n allPass([\n (candidate: GaugeChartInput) => isFiniteNumber(candidate.maximum),\n (candidate: GaugeChartInput) => Number(candidate.maximum) > Number(candidate.minimum),\n ])(input)\n\nconst toScaleRange = (input: GaugeChartInput): ScaleRange => ({\n minimum: Number(input.minimum),\n maximum: Number(input.maximum),\n})\n\nconst isWithinScaleRange = (scaleRange: ScaleRange) =>\n allPass([\n (value: number) => value >= scaleRange.minimum,\n (value: number) => value <= scaleRange.maximum,\n ])\n\nconst currentValueIsWithinScale = (input: GaugeChartInput) =>\n allPass([\n (candidate: GaugeChartInput) => isFiniteNumber(candidate.currentValue),\n (candidate: GaugeChartInput) =>\n isWithinScaleRange(toScaleRange(candidate))(Number(candidate.currentValue)),\n ])(input)\n\nconst hasZones = (input: GaugeChartInput) => input.zones.length > 0\n\nconst hasNonEmptyLabel = (zone: PerformanceZone) => zone.label.trim().length > 0\n\nconst hasOnlyNonEmptyLabels = (input: GaugeChartInput) =>\n all(hasNonEmptyLabel, [...input.zones])\n\nconst findEmptyZoneLabelIndex = (zones: readonly PerformanceZone[]) =>\n findIndex(complement(hasNonEmptyLabel), [...zones])\n\nconst hasValidZoneBounds = (zone: PerformanceZone) =>\n allPass([\n (candidate: PerformanceZone) => isFiniteNumber(candidate.lowerBound),\n (candidate: PerformanceZone) => isFiniteNumber(candidate.upperBound),\n (candidate: PerformanceZone) => candidate.lowerBound < candidate.upperBound,\n ])(zone)\n\nconst hasOnlyValidZoneBounds = (input: GaugeChartInput) =>\n all(hasValidZoneBounds, [...input.zones])\n\nconst findInvalidZoneBoundsIndex = (zones: readonly PerformanceZone[]) =>\n findIndex(complement(hasValidZoneBounds), [...zones])\n\nconst toZonePair = (zones: readonly PerformanceZone[]) =>\n (rightZone: PerformanceZone, index: number): ZonePair => [zones[index], rightZone]\n\nconst getZonePairs = (zones: readonly PerformanceZone[]): readonly ZonePair[] =>\n zones.slice(1).map(toZonePair(zones))\n\nconst zonesAreContiguous = ([left, right]: ZonePair) =>\n left.upperBound === right.lowerBound\n\nconst hasContiguousZones = (zones: readonly PerformanceZone[]) =>\n all(zonesAreContiguous, getZonePairs(zones))\n\nconst zonesCoverScale = (input: GaugeChartInput) =>\n allPass([\n (candidate: GaugeChartInput) => candidate.zones[0].lowerBound === Number(candidate.minimum),\n (candidate: GaugeChartInput) =>\n candidate.zones[candidate.zones.length - 1].upperBound === Number(candidate.maximum),\n (candidate: GaugeChartInput) => hasContiguousZones(candidate.zones),\n ])(input)\n\nconst toValidatedInput = (input: GaugeChartInput): ValidatedGaugeChartInput => ({\n currentValue: Number(input.currentValue),\n minimum: Number(input.minimum),\n maximum: Number(input.maximum),\n zones: input.zones,\n})\n\nconst inputValidators: GaugeChartInputValidator[] = [\n [\n complement(hasValidScaleMinimum),\n (input: GaugeChartInput) => err(gaugeChartRules.invalidScaleMinimum(input.minimum)),\n ],\n [\n complement(hasValidScaleMaximum),\n (input: GaugeChartInput) =>\n err(gaugeChartRules.invalidScaleMaximum(input.maximum, input.minimum)),\n ],\n [\n complement(currentValueIsWithinScale),\n (input: GaugeChartInput) =>\n err(gaugeChartRules.currentValueOutOfRange(input.currentValue, toScaleRange(input))),\n ],\n [complement(hasZones), () => err(gaugeChartRules.noZonesProvided())],\n [\n complement(hasOnlyNonEmptyLabels),\n (input: GaugeChartInput) =>\n err(gaugeChartRules.emptyZoneLabel(findEmptyZoneLabelIndex(input.zones))),\n ],\n [\n complement(hasOnlyValidZoneBounds),\n (input: GaugeChartInput) =>\n err(gaugeChartRules.invalidZoneBounds(findInvalidZoneBoundsIndex(input.zones))),\n ],\n [\n complement(zonesCoverScale),\n (input: GaugeChartInput) => err(gaugeChartRules.zonesDoNotCoverScale(toScaleRange(input))),\n ],\n [always(true), (input: GaugeChartInput) => ok(toValidatedInput(input))],\n]\n\nexport const validateGaugeChartInput: (\n input: GaugeChartInput\n) => GaugeChartInputResult = cond(inputValidators)\n\nconst toNeedlePosition = (currentValue: number, scaleRange: ScaleRange) =>\n (currentValue - scaleRange.minimum) / (scaleRange.maximum - scaleRange.minimum)\n\nconst containsCurrentValue =\n (currentValue: number, scaleRange: ScaleRange) => (zone: ValidatedPerformanceZone) =>\n allPass([\n (candidate: ValidatedPerformanceZone) => currentValue >= candidate.lowerBound,\n anyPass([\n (candidate: ValidatedPerformanceZone) => currentValue < candidate.upperBound,\n (candidate: ValidatedPerformanceZone) => candidate.upperBound === scaleRange.maximum,\n ]),\n ])(zone)\n\nconst getActiveZone = (\n currentValue: number,\n zones: readonly ValidatedPerformanceZone[],\n scaleRange: ScaleRange,\n) =>\n defaultTo(\n zones[zones.length - 1],\n zones.find(containsCurrentValue(currentValue, scaleRange)),\n )\n\nconst summarizeGaugeChart = (input: ValidatedGaugeChartInput): GaugeChartSummary => {\n const scaleRange = {\n minimum: input.minimum,\n maximum: input.maximum,\n }\n\n return {\n ...input,\n scaleRange,\n activeZone: getActiveZone(input.currentValue, input.zones, scaleRange),\n needlePosition: toNeedlePosition(input.currentValue, scaleRange),\n }\n}\n\nexport function computeGaugeChart(input: GaugeChartInput): GaugeChartResult {\n return mapResult<ValidatedGaugeChartInput, GaugeChartSummary, GaugeChartError>(\n summarizeGaugeChart,\n )(validateGaugeChartInput(input))\n}\n","import { arc as createArc } from 'd3'\n\nimport { always, cond, defaultTo } from '../shared/fp'\n\nimport type {\n GaugeChartSummary,\n PerformanceZone,\n ScaleRange,\n} from './GaugeChart.types'\n\nexport const GAUGE_CHART_MARGIN = {\n top: 34,\n right: 42,\n bottom: 54,\n left: 42,\n}\n\nexport type GaugeChartTextAnchor = 'start' | 'middle' | 'end'\n\nexport type RenderedGaugeChartZone = PerformanceZone & {\n readonly colorIndex: number\n readonly startAngle: number\n readonly endAngle: number\n readonly path: string\n readonly labelX: number\n readonly labelY: number\n readonly labelAnchor: GaugeChartTextAnchor\n}\n\nexport type RenderedGaugeChartTick = {\n readonly value: number\n readonly x: number\n readonly y: number\n readonly textAnchor: GaugeChartTextAnchor\n}\n\nexport type GaugeChartModel = {\n readonly currentValue: number\n readonly scaleRange: ScaleRange\n readonly activeZone: PerformanceZone\n readonly needlePosition: number\n readonly zones: readonly RenderedGaugeChartZone[]\n readonly ticks: readonly RenderedGaugeChartTick[]\n readonly centerX: number\n readonly centerY: number\n readonly innerRadius: number\n readonly outerRadius: number\n readonly needleAngle: number\n readonly needleX: number\n readonly needleY: number\n readonly valueLabelX: number\n readonly valueLabelY: number\n readonly zoneLabelX: number\n readonly zoneLabelY: number\n readonly currentLabel: string\n readonly activeZoneLabel: string\n}\n\nconst START_ANGLE = -Math.PI / 2\nconst END_ANGLE = Math.PI / 2\nconst ARC_THICKNESS_RATIO = 0.25\nconst MINIMUM_ARC_THICKNESS = 20 \nconst MAXIMUM_ARC_THICKNESS = 30\nconst NEEDLE_INSET = 18\nconst ZONE_LABEL_OFFSET = 22\nconst TICK_LABEL_OFFSET = 18\nconst END_TICK_LABEL_GUTTER = 18\n\nconst clamp = (minimum: number, maximum: number, value: number) =>\n Math.min(Math.max(value, minimum), maximum)\n\nconst getPlotWidth = (width: number) =>\n Math.max(0, width - GAUGE_CHART_MARGIN.left - GAUGE_CHART_MARGIN.right)\n\nconst getCenterY = (height: number) => height - GAUGE_CHART_MARGIN.bottom\n\nconst getOuterRadius = (width: number, height: number) =>\n Math.max(\n 0,\n Math.min(\n getPlotWidth(width) / 2 - END_TICK_LABEL_GUTTER,\n getCenterY(height) - GAUGE_CHART_MARGIN.top,\n ),\n )\n\nconst getArcThickness = (outerRadius: number) =>\n clamp(MINIMUM_ARC_THICKNESS, MAXIMUM_ARC_THICKNESS, outerRadius * ARC_THICKNESS_RATIO)\n\nconst getAngle = (position: number) =>\n START_ANGLE + position * (END_ANGLE - START_ANGLE)\n\nconst toPosition = (scaleRange: ScaleRange) => (value: number) =>\n (value - scaleRange.minimum) / (scaleRange.maximum - scaleRange.minimum)\n\nconst getPolarPoint = (\n centerX: number,\n centerY: number,\n radius: number,\n angle: number,\n) => ({\n x: centerX + Math.sin(angle) * radius,\n y: centerY - Math.cos(angle) * radius,\n})\n\nconst getScaleMidpoint = (scaleRange: ScaleRange) =>\n scaleRange.minimum + (scaleRange.maximum - scaleRange.minimum) / 2\n\nconst getScaleTicks = (scaleRange: ScaleRange) => [\n scaleRange.minimum,\n getScaleMidpoint(scaleRange),\n scaleRange.maximum,\n]\n\nconst getLabelAnchor: (x: number, centerX: number) => GaugeChartTextAnchor = cond([\n [\n (x: number, centerX: number) => Math.abs(x - centerX) < 8,\n always('middle'),\n ],\n [(x: number, centerX: number) => x > centerX, always('start')],\n [always(true), always('end')],\n])\n\nconst renderZonePath = (innerRadius: number, outerRadius: number) =>\n (zone: Pick<RenderedGaugeChartZone, 'startAngle' | 'endAngle'>) =>\n defaultTo(\n '',\n createArc<typeof zone>()\n .innerRadius(innerRadius)\n .outerRadius(outerRadius)\n .startAngle((candidate) => candidate.startAngle)\n .endAngle((candidate) => candidate.endAngle)\n .cornerRadius(2)(zone),\n )\n\nexport const buildGaugeChartModel = (\n summary: GaugeChartSummary,\n width: number,\n height: number,\n formatValue: (value: number) => string,\n): GaugeChartModel => {\n const centerX = width / 2\n const centerY = getCenterY(height)\n const outerRadius = getOuterRadius(width, height)\n const innerRadius = Math.max(0, outerRadius - getArcThickness(outerRadius))\n const toScalePosition = toPosition(summary.scaleRange)\n const toAngle = (value: number) => getAngle(toScalePosition(value))\n const zonePath = renderZonePath(innerRadius, outerRadius)\n const needleAngle = getAngle(summary.needlePosition)\n const needlePoint = getPolarPoint(\n centerX,\n centerY,\n Math.max(0, outerRadius - NEEDLE_INSET),\n needleAngle,\n )\n const toRenderedZone = (\n zone: PerformanceZone,\n index: number,\n ): RenderedGaugeChartZone => {\n const startAngle = toAngle(zone.lowerBound)\n const endAngle = toAngle(zone.upperBound)\n const labelPoint = getPolarPoint(\n 0,\n 0,\n outerRadius + ZONE_LABEL_OFFSET,\n (startAngle + endAngle) / 2,\n )\n const renderedZone = {\n ...zone,\n colorIndex: index % 8,\n startAngle,\n endAngle,\n path: '',\n labelX: labelPoint.x,\n labelY: labelPoint.y,\n labelAnchor: getLabelAnchor(labelPoint.x, 0),\n }\n\n return {\n ...renderedZone,\n path: zonePath(renderedZone),\n }\n }\n\n return {\n currentValue: summary.currentValue,\n scaleRange: summary.scaleRange,\n activeZone: summary.activeZone,\n needlePosition: summary.needlePosition,\n zones: summary.zones.map(toRenderedZone),\n ticks: getScaleTicks(summary.scaleRange).map((tick) => {\n const point = getPolarPoint(centerX, centerY, outerRadius + TICK_LABEL_OFFSET, toAngle(tick))\n\n return {\n value: tick,\n x: point.x,\n y: point.y,\n textAnchor: getLabelAnchor(point.x, centerX),\n }\n }),\n centerX,\n centerY,\n innerRadius,\n outerRadius,\n needleAngle,\n needleX: needlePoint.x,\n needleY: needlePoint.y,\n valueLabelX: centerX,\n valueLabelY: centerY - outerRadius * 0.36,\n zoneLabelX: centerX,\n zoneLabelY: centerY - outerRadius * 0.18,\n currentLabel: formatValue(summary.currentValue),\n activeZoneLabel: summary.activeZone.label,\n }\n}\n","import { matchOption } from '@/shared'\n\nimport type { GaugeChartProps } from '../GaugeChart.types'\n\ntype GaugeChartCaptionProps = Pick<GaugeChartProps, 'caption'>\n\nexport function GaugeChartCaption({ caption }: GaugeChartCaptionProps) {\n return matchOption(caption, {\n none: () => null,\n some: (text) => <figcaption className=\"pristine-gauge-chart__caption\">{text}</figcaption>,\n })\n}\n","import type { GaugeChartModel } from '../GaugeChart.model'\n\ntype GaugeChartAxisProps = {\n readonly chart: GaugeChartModel\n readonly formatValue: (value: number) => string\n}\n\nexport function GaugeChartAxis({ chart, formatValue }: GaugeChartAxisProps) {\n return (\n <g className=\"pristine-gauge-chart__axis\" aria-hidden=\"true\">\n {chart.ticks.map((tick) => (\n <text\n className=\"pristine-gauge-chart__tick\"\n key={tick.value}\n x={tick.x}\n y={tick.y}\n textAnchor={tick.textAnchor}\n >\n {formatValue(tick.value)}\n </text>\n ))}\n </g>\n )\n}\n","import type { GaugeChartModel } from '../GaugeChart.model'\n\ntype GaugeChartNeedleProps = {\n readonly chart: GaugeChartModel\n}\n\nexport function GaugeChartNeedle({ chart }: GaugeChartNeedleProps) {\n return (\n <g className=\"pristine-gauge-chart__needle\" aria-hidden=\"true\">\n <line\n className=\"pristine-gauge-chart__needle-halo\"\n x1={chart.centerX}\n x2={chart.needleX}\n y1={chart.centerY}\n y2={chart.needleY}\n />\n <line\n className=\"pristine-gauge-chart__needle-line\"\n x1={chart.centerX}\n x2={chart.needleX}\n y1={chart.centerY}\n y2={chart.needleY}\n />\n <circle\n className=\"pristine-gauge-chart__needle-cap-halo\"\n cx={chart.centerX}\n cy={chart.centerY}\n r=\"8\"\n />\n <circle\n className=\"pristine-gauge-chart__needle-cap\"\n cx={chart.centerX}\n cy={chart.centerY}\n r=\"5\"\n />\n </g>\n )\n}\n","import type { GaugeChartModel } from '../GaugeChart.model'\n\ntype GaugeChartValueLabelsProps = {\n readonly chart: GaugeChartModel\n}\n\nexport function GaugeChartValueLabels({ chart }: GaugeChartValueLabelsProps) {\n return (\n <g className=\"pristine-gauge-chart__value-labels\" aria-hidden=\"true\">\n <text\n className=\"pristine-gauge-chart__value-label\"\n x={chart.valueLabelX}\n y={chart.valueLabelY}\n textAnchor=\"middle\"\n >\n {chart.currentLabel}\n </text>\n <text\n className=\"pristine-gauge-chart__active-zone-label\"\n x={chart.zoneLabelX}\n y={chart.zoneLabelY}\n textAnchor=\"middle\"\n >\n {chart.activeZoneLabel}\n </text>\n </g>\n )\n}\n","import { classNames } from '@/shared'\nimport { ifElse } from '@/shared/fp'\n\nimport type { GaugeChartModel } from '../GaugeChart.model'\n\ntype GaugeChartZonesProps = {\n readonly chart: GaugeChartModel\n readonly showLabels: boolean\n}\n\nconst isActiveZone = (\n chart: GaugeChartModel,\n zone: GaugeChartModel['zones'][number],\n) =>\n chart.activeZone.label === zone.label\n\nconst toActiveZoneClassName = ifElse(\n (candidate: boolean) => candidate,\n () => 'pristine-gauge-chart__zone-group--active',\n () => '',\n)\n\nconst toZoneGroupClassName = (\n chart: GaugeChartModel,\n zone: GaugeChartModel['zones'][number],\n) =>\n classNames([\n 'pristine-gauge-chart__zone-group',\n toActiveZoneClassName(isActiveZone(chart, zone)),\n ])\n\nconst toZoneClassName = (index: number) =>\n `pristine-gauge-chart__zone pristine-gauge-chart__zone--tone-${String(index)}`\n\nconst renderLabel = (zone: GaugeChartModel['zones'][number]) =>\n ifElse(\n (candidate: boolean) => candidate,\n () => (\n <text\n className=\"pristine-gauge-chart__zone-label\"\n x={zone.labelX}\n y={zone.labelY}\n textAnchor={zone.labelAnchor}\n aria-hidden=\"true\"\n >\n {zone.label}\n </text>\n ),\n () => null,\n )\n\nexport function GaugeChartZones({ chart, showLabels }: GaugeChartZonesProps) {\n return (\n <g className=\"pristine-gauge-chart__zones\">\n {chart.zones.map((zone) => (\n <g className={toZoneGroupClassName(chart, zone)} key={zone.label}>\n <path className={toZoneClassName(zone.colorIndex)} d={zone.path} />\n {renderLabel(zone)(showLabels)}\n </g>\n ))}\n </g>\n )\n}\n","import type { GaugeChartModel } from '../GaugeChart.model'\nimport type { GaugeChartProps } from '../GaugeChart.types'\n\nimport { GaugeChartAxis } from './GaugeChartAxis'\nimport { GaugeChartNeedle } from './GaugeChartNeedle'\nimport { GaugeChartValueLabels } from './GaugeChartValueLabels'\nimport { GaugeChartZones } from './GaugeChartZones'\n\ntype GaugeChartSvgProps = Pick<\n GaugeChartProps,\n 'ariaLabel' | 'formatValue' | 'height' | 'showLabels' | 'width'\n> & {\n readonly chart: GaugeChartModel\n}\n\nexport function GaugeChartSvg({\n ariaLabel,\n chart,\n formatValue,\n height,\n showLabels,\n width,\n}: GaugeChartSvgProps) {\n const valueText = `${chart.currentLabel}, ${chart.activeZoneLabel}`\n\n return (\n <svg\n className=\"pristine-gauge-chart__svg\"\n viewBox={`0 0 ${width} ${height}`}\n role=\"img\"\n aria-label={ariaLabel}\n >\n <g\n className=\"pristine-gauge-chart__meter\"\n role=\"meter\"\n aria-label={ariaLabel}\n aria-valuemin={chart.scaleRange.minimum}\n aria-valuemax={chart.scaleRange.maximum}\n aria-valuenow={chart.currentValue}\n aria-valuetext={valueText}\n >\n <g transform={`translate(${chart.centerX} ${chart.centerY})`}>\n <GaugeChartZones chart={chart} showLabels={showLabels} />\n </g>\n <GaugeChartNeedle chart={chart} />\n <GaugeChartValueLabels chart={chart} />\n </g>\n <GaugeChartAxis chart={chart} formatValue={formatValue} />\n </svg>\n )\n}\n","import { classNames } from '@/shared'\n\nimport type { GaugeChartModel } from '../GaugeChart.model'\nimport type { GaugeChartProps } from '../GaugeChart.types'\n\nimport { GaugeChartCaption } from './GaugeChartCaption'\nimport { GaugeChartSvg } from './GaugeChartSvg'\n\ntype GaugeChartFigureProps = Pick<\n GaugeChartProps,\n 'ariaLabel' | 'caption' | 'className' | 'formatValue' | 'height' | 'showLabels' | 'width'\n> & {\n readonly chart: GaugeChartModel\n}\n\nexport function GaugeChartFigure({\n ariaLabel,\n caption,\n chart,\n className,\n formatValue,\n height,\n showLabels,\n width,\n}: GaugeChartFigureProps) {\n return (\n <figure className={classNames(['pristine-gauge-chart', className])} aria-label={ariaLabel}>\n <GaugeChartSvg\n ariaLabel={ariaLabel}\n chart={chart}\n formatValue={formatValue}\n height={height}\n showLabels={showLabels}\n width={width}\n />\n <GaugeChartCaption caption={caption} />\n </figure>\n )\n}\n","import { useMemo } from 'react'\n\nimport { ChartError } from '../chart-error'\nimport { classNames, matchResult } from '../shared'\n\nimport { computeGaugeChart } from './GaugeChart.domain'\nimport { buildGaugeChartModel } from './GaugeChart.model'\nimport type { GaugeChartProps } from './GaugeChart.types'\nimport { GaugeChartFigure } from './components/GaugeChartFigure'\n\nexport function GaugeChart({\n currentValue,\n minimum,\n maximum,\n zones,\n width,\n height,\n ariaLabel,\n className,\n caption,\n showLabels,\n formatValue,\n}: GaugeChartProps) {\n const result = useMemo(\n () => computeGaugeChart({ currentValue, minimum, maximum, zones }),\n [currentValue, minimum, maximum, zones],\n )\n\n return matchResult(result, {\n error: (error) => (\n <ChartError\n className={classNames(['pristine-gauge-chart__error', className])}\n title=\"Gauge chart unavailable\"\n message={error.message}\n details={error.details}\n role=\"alert\"\n />\n ),\n ok: (summary) => {\n const chart = buildGaugeChartModel(summary, width, height, formatValue)\n\n return (\n <GaugeChartFigure\n ariaLabel={ariaLabel}\n caption={caption}\n chart={chart}\n className={className}\n formatValue={formatValue}\n height={height}\n showLabels={showLabels}\n width={width}\n />\n )\n },\n })\n}\n","import { none } from '../shared'\nimport { ifElse } from '../shared/fp'\n\nimport type { GaugeChartProps } from './GaugeChart.types'\n\nexport const formatGaugeChartNumber = ifElse(\n Number.isInteger,\n String,\n (value: number) => value.toFixed(2).replace(/\\.?0+$/, ''),\n)\n\nexport const DEFAULT_GAUGE_CHART_VIEW_PROPS = {\n width: 420,\n height: 260,\n ariaLabel: 'Gauge chart',\n className: '',\n caption: none,\n showLabels: true,\n formatValue: formatGaugeChartNumber,\n} satisfies Omit<GaugeChartProps, 'currentValue' | 'minimum' | 'maximum' | 'zones'>\n"]}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import { O as Option, R as Result, N as None } from '../result-C2epnG6V.cjs';
|
|
3
|
+
|
|
4
|
+
type CurrentValue = number;
|
|
5
|
+
type ScaleMinimum = number;
|
|
6
|
+
type ScaleMaximum = number;
|
|
7
|
+
type ZoneLabel = string;
|
|
8
|
+
type PerformanceZone = {
|
|
9
|
+
readonly label: ZoneLabel;
|
|
10
|
+
readonly lowerBound: number;
|
|
11
|
+
readonly upperBound: number;
|
|
12
|
+
};
|
|
13
|
+
type ValidatedPerformanceZone = PerformanceZone;
|
|
14
|
+
type ScaleRange = {
|
|
15
|
+
readonly minimum: ScaleMinimum;
|
|
16
|
+
readonly maximum: ScaleMaximum;
|
|
17
|
+
};
|
|
18
|
+
type NeedlePosition = number;
|
|
19
|
+
type GaugeChartInput = {
|
|
20
|
+
readonly currentValue: unknown;
|
|
21
|
+
readonly minimum: unknown;
|
|
22
|
+
readonly maximum: unknown;
|
|
23
|
+
readonly zones: readonly PerformanceZone[];
|
|
24
|
+
};
|
|
25
|
+
type ValidatedGaugeChartInput = {
|
|
26
|
+
readonly currentValue: CurrentValue;
|
|
27
|
+
readonly minimum: ScaleMinimum;
|
|
28
|
+
readonly maximum: ScaleMaximum;
|
|
29
|
+
readonly zones: readonly ValidatedPerformanceZone[];
|
|
30
|
+
};
|
|
31
|
+
type GaugeChartSummary = ValidatedGaugeChartInput & {
|
|
32
|
+
readonly scaleRange: ScaleRange;
|
|
33
|
+
readonly activeZone: ValidatedPerformanceZone;
|
|
34
|
+
readonly needlePosition: NeedlePosition;
|
|
35
|
+
};
|
|
36
|
+
type GaugeChartErrorType = 'InvalidScaleMinimum' | 'InvalidScaleMaximum' | 'CurrentValueOutOfRange' | 'NoZonesProvided' | 'ZonesDoNotCoverScale' | 'InvalidZoneBounds' | 'EmptyZoneLabel';
|
|
37
|
+
type GaugeChartError = {
|
|
38
|
+
readonly type: GaugeChartErrorType;
|
|
39
|
+
readonly message: string;
|
|
40
|
+
readonly details: Option<string>;
|
|
41
|
+
};
|
|
42
|
+
type GaugeChartResult = Result<GaugeChartSummary, GaugeChartError>;
|
|
43
|
+
type GaugeChartProps = {
|
|
44
|
+
readonly currentValue: number;
|
|
45
|
+
readonly minimum: number;
|
|
46
|
+
readonly maximum: number;
|
|
47
|
+
readonly zones: readonly PerformanceZone[];
|
|
48
|
+
readonly width: number;
|
|
49
|
+
readonly height: number;
|
|
50
|
+
readonly ariaLabel: string;
|
|
51
|
+
readonly className: string;
|
|
52
|
+
readonly caption: Option<string>;
|
|
53
|
+
readonly showLabels: boolean;
|
|
54
|
+
readonly formatValue: (value: number) => string;
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
declare function GaugeChart({ currentValue, minimum, maximum, zones, width, height, ariaLabel, className, caption, showLabels, formatValue, }: GaugeChartProps): react.JSX.Element;
|
|
58
|
+
|
|
59
|
+
declare const formatGaugeChartNumber: (value: number) => string;
|
|
60
|
+
declare const DEFAULT_GAUGE_CHART_VIEW_PROPS: {
|
|
61
|
+
width: number;
|
|
62
|
+
height: number;
|
|
63
|
+
ariaLabel: string;
|
|
64
|
+
className: string;
|
|
65
|
+
caption: None;
|
|
66
|
+
showLabels: true;
|
|
67
|
+
formatValue: (value: number) => string;
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
type GaugeChartInputResult = Result<ValidatedGaugeChartInput, GaugeChartError>;
|
|
71
|
+
declare const validateGaugeChartInput: (input: GaugeChartInput) => GaugeChartInputResult;
|
|
72
|
+
declare function computeGaugeChart(input: GaugeChartInput): GaugeChartResult;
|
|
73
|
+
|
|
74
|
+
export { type CurrentValue, DEFAULT_GAUGE_CHART_VIEW_PROPS, GaugeChart, type GaugeChartError, type GaugeChartErrorType, type GaugeChartInput, type GaugeChartProps, type GaugeChartResult, type GaugeChartSummary, type NeedlePosition, type PerformanceZone, type ScaleMaximum, type ScaleMinimum, type ScaleRange, type ValidatedGaugeChartInput, type ValidatedPerformanceZone, type ZoneLabel, computeGaugeChart, formatGaugeChartNumber, validateGaugeChartInput };
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import { O as Option, R as Result, N as None } from '../result-C2epnG6V.js';
|
|
3
|
+
|
|
4
|
+
type CurrentValue = number;
|
|
5
|
+
type ScaleMinimum = number;
|
|
6
|
+
type ScaleMaximum = number;
|
|
7
|
+
type ZoneLabel = string;
|
|
8
|
+
type PerformanceZone = {
|
|
9
|
+
readonly label: ZoneLabel;
|
|
10
|
+
readonly lowerBound: number;
|
|
11
|
+
readonly upperBound: number;
|
|
12
|
+
};
|
|
13
|
+
type ValidatedPerformanceZone = PerformanceZone;
|
|
14
|
+
type ScaleRange = {
|
|
15
|
+
readonly minimum: ScaleMinimum;
|
|
16
|
+
readonly maximum: ScaleMaximum;
|
|
17
|
+
};
|
|
18
|
+
type NeedlePosition = number;
|
|
19
|
+
type GaugeChartInput = {
|
|
20
|
+
readonly currentValue: unknown;
|
|
21
|
+
readonly minimum: unknown;
|
|
22
|
+
readonly maximum: unknown;
|
|
23
|
+
readonly zones: readonly PerformanceZone[];
|
|
24
|
+
};
|
|
25
|
+
type ValidatedGaugeChartInput = {
|
|
26
|
+
readonly currentValue: CurrentValue;
|
|
27
|
+
readonly minimum: ScaleMinimum;
|
|
28
|
+
readonly maximum: ScaleMaximum;
|
|
29
|
+
readonly zones: readonly ValidatedPerformanceZone[];
|
|
30
|
+
};
|
|
31
|
+
type GaugeChartSummary = ValidatedGaugeChartInput & {
|
|
32
|
+
readonly scaleRange: ScaleRange;
|
|
33
|
+
readonly activeZone: ValidatedPerformanceZone;
|
|
34
|
+
readonly needlePosition: NeedlePosition;
|
|
35
|
+
};
|
|
36
|
+
type GaugeChartErrorType = 'InvalidScaleMinimum' | 'InvalidScaleMaximum' | 'CurrentValueOutOfRange' | 'NoZonesProvided' | 'ZonesDoNotCoverScale' | 'InvalidZoneBounds' | 'EmptyZoneLabel';
|
|
37
|
+
type GaugeChartError = {
|
|
38
|
+
readonly type: GaugeChartErrorType;
|
|
39
|
+
readonly message: string;
|
|
40
|
+
readonly details: Option<string>;
|
|
41
|
+
};
|
|
42
|
+
type GaugeChartResult = Result<GaugeChartSummary, GaugeChartError>;
|
|
43
|
+
type GaugeChartProps = {
|
|
44
|
+
readonly currentValue: number;
|
|
45
|
+
readonly minimum: number;
|
|
46
|
+
readonly maximum: number;
|
|
47
|
+
readonly zones: readonly PerformanceZone[];
|
|
48
|
+
readonly width: number;
|
|
49
|
+
readonly height: number;
|
|
50
|
+
readonly ariaLabel: string;
|
|
51
|
+
readonly className: string;
|
|
52
|
+
readonly caption: Option<string>;
|
|
53
|
+
readonly showLabels: boolean;
|
|
54
|
+
readonly formatValue: (value: number) => string;
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
declare function GaugeChart({ currentValue, minimum, maximum, zones, width, height, ariaLabel, className, caption, showLabels, formatValue, }: GaugeChartProps): react.JSX.Element;
|
|
58
|
+
|
|
59
|
+
declare const formatGaugeChartNumber: (value: number) => string;
|
|
60
|
+
declare const DEFAULT_GAUGE_CHART_VIEW_PROPS: {
|
|
61
|
+
width: number;
|
|
62
|
+
height: number;
|
|
63
|
+
ariaLabel: string;
|
|
64
|
+
className: string;
|
|
65
|
+
caption: None;
|
|
66
|
+
showLabels: true;
|
|
67
|
+
formatValue: (value: number) => string;
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
type GaugeChartInputResult = Result<ValidatedGaugeChartInput, GaugeChartError>;
|
|
71
|
+
declare const validateGaugeChartInput: (input: GaugeChartInput) => GaugeChartInputResult;
|
|
72
|
+
declare function computeGaugeChart(input: GaugeChartInput): GaugeChartResult;
|
|
73
|
+
|
|
74
|
+
export { type CurrentValue, DEFAULT_GAUGE_CHART_VIEW_PROPS, GaugeChart, type GaugeChartError, type GaugeChartErrorType, type GaugeChartInput, type GaugeChartProps, type GaugeChartResult, type GaugeChartSummary, type NeedlePosition, type PerformanceZone, type ScaleMaximum, type ScaleMinimum, type ScaleRange, type ValidatedGaugeChartInput, type ValidatedPerformanceZone, type ZoneLabel, computeGaugeChart, formatGaugeChartNumber, validateGaugeChartInput };
|