From e93ab52435a45958517491c57c333696cafd952e Mon Sep 17 00:00:00 2001 From: junhuanchen Date: Thu, 15 Sep 2022 11:50:41 +0800 Subject: [PATCH] [home] update --- .github/workflows/test_build.yml | 42 + .../hardware/assets/maixface/mf0/mf0_back.jpg | Bin 0 -> 98913 bytes .../assets/maixface/mf0/mf0_front.jpg | Bin 0 -> 82092 bytes docs/hardware/assets/maixface/mf1/mf1.jpg | Bin 0 -> 25555 bytes .../assets/maixface/mf1/mf1_front.jpg | Bin 0 -> 62180 bytes .../assets/maixface/mf1/mf1_front_led.jpg | Bin 0 -> 83593 bytes docs/hardware/assets/maixface/mf5/mf5.jpg | Bin 0 -> 359496 bytes .../maixface/mf5/mf5_black_background.jpg.jpg | Bin 0 -> 135317 bytes .../maixface/mf5/mf5_white_background.jpg | Bin 0 -> 153577 bytes layout/home.html | 1501 +- static/home/maixpy.jpeg | Bin 0 -> 14049 bytes static/home/maixpy3.jpeg | Bin 0 -> 82691 bytes static/home/maixpy_scripts.png | Bin 0 -> 25618 bytes static/js/naive-ui.js | 104102 +++++++++++++++ static/js/naive-ui.prod.js | 9 + static/js/vue.global.js | 15934 +++ static/js/vue.global.prod.js | 1 + 17 files changed, 121037 insertions(+), 552 deletions(-) create mode 100644 .github/workflows/test_build.yml create mode 100644 docs/hardware/assets/maixface/mf0/mf0_back.jpg create mode 100644 docs/hardware/assets/maixface/mf0/mf0_front.jpg create mode 100644 docs/hardware/assets/maixface/mf1/mf1.jpg create mode 100644 docs/hardware/assets/maixface/mf1/mf1_front.jpg create mode 100644 docs/hardware/assets/maixface/mf1/mf1_front_led.jpg create mode 100644 docs/hardware/assets/maixface/mf5/mf5.jpg create mode 100644 docs/hardware/assets/maixface/mf5/mf5_black_background.jpg.jpg create mode 100644 docs/hardware/assets/maixface/mf5/mf5_white_background.jpg create mode 100644 static/home/maixpy.jpeg create mode 100644 static/home/maixpy3.jpeg create mode 100644 static/home/maixpy_scripts.png create mode 100644 static/js/naive-ui.js create mode 100644 static/js/naive-ui.prod.js create mode 100644 static/js/vue.global.js create mode 100644 static/js/vue.global.prod.js diff --git a/.github/workflows/test_build.yml b/.github/workflows/test_build.yml new file mode 100644 index 00000000..2241c6c8 --- /dev/null +++ b/.github/workflows/test_build.yml @@ -0,0 +1,42 @@ +# This is a basic workflow to help you get started with Actions + +name: test_build + +# Controls when the action will run. +on: + # Triggers the workflow on push or pull request events but only for the main branch + push: + branches: [dev, develop ] + # pull_request: + # branches: [ main ] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # This workflow contains a single job called "build" + build: + # The type of runner that the job will run on + runs-on: ubuntu-latest + strategy: + matrix: + python-version: ["3.8", "3.9", "3.10"] + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v2 + + # Runs a set of commands using the runners shell + - name: build doc test + run: | + pip3 install setuptools + pip3 install teedoc + ls -al ~/.local/bin/ + export PATH=~/.local/bin/:$PATH + teedoc install + teedoc build + out_dir=out`python3 -c 'import json; f=open("site_config.json");config=json.load(f);print(config["site_root_url"])'` + echo "out dir: ${out_dir}" + echo "test build complte" diff --git a/docs/hardware/assets/maixface/mf0/mf0_back.jpg b/docs/hardware/assets/maixface/mf0/mf0_back.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9d48b1bfb73f949889a213a6099e90cf52e84a8c GIT binary patch literal 98913 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]SF0erT6=%e4gmV@r$@DwD1XVZgQi#Ut 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�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%0Ah$=WbQ@)mhkfN1g84v4Tj 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

mll-DmhFuh1Uom7tc4wO#?YB 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

YT2@)qE4cygl&1h%iN~jZb56p<1 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 literal 0 HcmV?d00001 diff --git a/layout/home.html b/layout/home.html index f31de176..bf4c7661 100644 --- a/layout/home.html +++ b/layout/home.html @@ -1,562 +1,959 @@ - + {% extends "page_base.html" %} -{% extends "page_base.html" %} + {% block content %} + + + + + + + + +

+ + -{% block content %} - - + {{ body|safe }} -
-

{[ $t("Sipeed Wiki") ]}

-
-
-
-
x
-
-
-
-
-
- - -{{ body|safe }} - -{% endblock%} + {% endblock%} \ No newline at end of file diff --git a/static/home/maixpy.jpeg b/static/home/maixpy.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..54fd0e33bf2f8d94e72a777f65321906144dbdd1 GIT binary patch literal 14049 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

aJhUF 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 cb(...paramsMap.get(cb))); + onceCbs = []; + } + + function beforeNextFrameOnce(cb) { + for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + params[_key - 1] = arguments[_key]; + } + + paramsMap.set(cb, params); + if (onceCbs.includes(cb)) return; + onceCbs.push(cb) === 1 && requestAnimationFrame(flushOnceCallbacks); + } + + function getParentNode$1(node) { + // document type + if (node.nodeType === 9) { + return null; + } + + return node.parentNode; + } + + function getScrollParent$1(node) { + if (node === null) return null; + const parentNode = getParentNode$1(node); + + if (parentNode === null) { + return null; + } // Document + + + if (parentNode.nodeType === 9) { + return document.documentElement; + } // Element + + + if (parentNode.nodeType === 1) { + // Firefox want us to check `-x` and `-y` variations as well + const { + overflow, + overflowX, + overflowY + } = getComputedStyle(parentNode); + + if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) { + return parentNode; + } + } + + return getScrollParent$1(parentNode); + } + + function unwrapElement(target) { + if (typeof target === 'string') return document.querySelector(target); + if (typeof target === 'function') return target(); + return target; + } + + function happensIn(e, dataSetPropName) { + let { + target + } = e; + + while (target) { + if (target.dataset) { + if (target.dataset[dataSetPropName] !== undefined) return true; + } + + target = target.parentElement; + } + + return false; + } + + function getPreciseEventTarget(event) { + return event.composedPath()[0] || null; + } + + function parseResponsiveProp(reponsiveProp) { + if (typeof reponsiveProp === "number") { + return { + '': reponsiveProp.toString() + }; + } + + const params = {}; + reponsiveProp.split(/ +/).forEach(pairLiteral => { + if (pairLiteral === '') return; + const [prefix, value] = pairLiteral.split(':'); + + if (value === undefined) { + params[''] = prefix; + } else { + params[prefix] = value; + } + }); + return params; + } + + function parseResponsivePropValue(reponsiveProp, activeKeyOrSize) { + var _a; + + if (reponsiveProp === undefined || reponsiveProp === null) return undefined; + const classObj = parseResponsiveProp(reponsiveProp); + if (activeKeyOrSize === undefined) return classObj['']; + + if (typeof activeKeyOrSize === 'string') { + return (_a = classObj[activeKeyOrSize]) !== null && _a !== void 0 ? _a : classObj['']; + } else if (Array.isArray(activeKeyOrSize)) { + for (let i = activeKeyOrSize.length - 1; i >= 0; --i) { + const key = activeKeyOrSize[i]; + if (key in classObj) return classObj[key]; + } + + return classObj['']; + } else { + // Here we suppose all the keys are number formatted + let activeValue = undefined; + let activeKey = -1; + Object.keys(classObj).forEach(key => { + const keyAsNum = Number(key); + + if (!Number.isNaN(keyAsNum) && activeKeyOrSize >= keyAsNum && keyAsNum >= activeKey) { + activeKey = keyAsNum; + activeValue = classObj[key]; + } + }); + return activeValue; + } + } + + function depx(value) { + if (typeof value === 'string') { + if (value.endsWith('px')) { + return Number(value.slice(0, value.length - 2)); + } + + return Number(value); + } + + return value; + } + + function pxfy(value) { + if (value === undefined || value === null) return undefined; + if (typeof value === 'number') return `${value}px`; + if (value.endsWith('px')) return value; + return `${value}px`; + } + + function getMargin(value, position) { + const parts = value.trim().split(/\s+/g); + const margin = { + top: parts[0] + }; + + switch (parts.length) { + case 1: + margin.right = parts[0]; + margin.bottom = parts[0]; + margin.left = parts[0]; + break; + + case 2: + margin.right = parts[1]; + margin.left = parts[1]; + margin.bottom = parts[0]; + break; + + case 3: + margin.right = parts[1]; + margin.bottom = parts[2]; + margin.left = parts[1]; + break; + + case 4: + margin.right = parts[1]; + margin.bottom = parts[2]; + margin.left = parts[3]; + break; + + default: + throw new Error('[seemly/getMargin]:' + value + ' is not a valid value.'); + } + + if (position === undefined) return margin; + return margin[position]; + } + + function getGap(value, orient) { + const [rowGap, colGap] = value.split(' '); + if (!orient) return { + row: rowGap, + col: colGap || rowGap + }; + return orient === 'row' ? rowGap : colGap; + } + + var colors = { + black: '#000', + silver: '#C0C0C0', + gray: '#808080', + white: '#FFF', + maroon: '#800000', + red: '#F00', + purple: '#800080', + fuchsia: '#F0F', + green: '#008000', + lime: '#0F0', + olive: '#808000', + yellow: '#FF0', + navy: '#000080', + blue: '#00F', + teal: '#008080', + aqua: '#0FF', + transparent: '#0000' + }; + + // All the algorithms credit to https://stackoverflow.com/questions/36721830/convert-hsl-to-rgb-and-hex/54014428#54014428 + // original author: Kamil Kiełczewski + + /** + * @param h 360 + * @param s 100 + * @param l 100 + * @returns [h, s, v] 360, 100, 100 + */ + function hsl2hsv(h, s, l) { + s /= 100; + l /= 100; + const v = s * Math.min(l, 1 - l) + l; + return [h, v ? (2 - 2 * l / v) * 100 : 0, v * 100]; + } + /** + * @param h 360 + * @param s 100 + * @param v 100 + * @returns [h, s, l] 360, 100, 100 + */ + + function hsv2hsl(h, s, v) { + s /= 100; + v /= 100; + const l = v - v * s / 2; + const m = Math.min(l, 1 - l); + return [h, m ? (v - l) / m * 100 : 0, l * 100]; + } + /** + * @param h 360 + * @param s 100 + * @param v 100 + * @returns [r, g, b] 255, 255, 255 + */ + + function hsv2rgb(h, s, v) { + s /= 100; + v /= 100; + + let f = function (n) { + let k = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (n + h / 60) % 6; + return v - v * s * Math.max(Math.min(k, 4 - k, 1), 0); + }; + + return [f(5) * 255, f(3) * 255, f(1) * 255]; + } + /** + * @param r 255 + * @param g 255 + * @param b 255 + * @returns [360, 100, 100] + */ + + function rgb2hsv(r, g, b) { + r /= 255; + g /= 255; + b /= 255; + let v = Math.max(r, g, b), + c = v - Math.min(r, g, b); + let h = c && (v == r ? (g - b) / c : v == g ? 2 + (b - r) / c : 4 + (r - g) / c); + return [60 * (h < 0 ? h + 6 : h), v && c / v * 100, v * 100]; + } + /** + * @param r 255 + * @param g 255 + * @param b 255 + * @returns [360, 100, 100] + */ + + function rgb2hsl(r, g, b) { + r /= 255; + g /= 255; + b /= 255; + let v = Math.max(r, g, b), + c = v - Math.min(r, g, b), + f = 1 - Math.abs(v + v - c - 1); + let h = c && (v == r ? (g - b) / c : v == g ? 2 + (b - r) / c : 4 + (r - g) / c); + return [60 * (h < 0 ? h + 6 : h), f ? c / f * 100 : 0, (v + v - c) * 50]; + } + /** + * @param h 360 + * @param s 100 + * @param l 100 + * @returns [255, 255, 255] + */ + + function hsl2rgb(h, s, l) { + s /= 100; + l /= 100; + let a = s * Math.min(l, 1 - l); + + let f = function (n) { + let k = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (n + h / 30) % 12; + return l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1); + }; + + return [f(0) * 255, f(8) * 255, f(4) * 255]; + } + + const prefix$1 = '^\\s*'; + const suffix = '\\s*$'; + const percent = '\\s*((\\.\\d+)|(\\d+(\\.\\d*)?))%\\s*'; // 4 offset + + const float = '\\s*((\\.\\d+)|(\\d+(\\.\\d*)?))\\s*'; // 4 offset + + const hex = '([0-9A-Fa-f])'; + const dhex = '([0-9A-Fa-f]{2})'; + const hslRegex = new RegExp(`${prefix$1}hsl\\s*\\(${float},${percent},${percent}\\)${suffix}`); + const hsvRegex = new RegExp(`${prefix$1}hsv\\s*\\(${float},${percent},${percent}\\)${suffix}`); + const hslaRegex = new RegExp(`${prefix$1}hsla\\s*\\(${float},${percent},${percent},${float}\\)${suffix}`); + const hsvaRegex = new RegExp(`${prefix$1}hsva\\s*\\(${float},${percent},${percent},${float}\\)${suffix}`); + const rgbRegex = new RegExp(`${prefix$1}rgb\\s*\\(${float},${float},${float}\\)${suffix}`); + const rgbaRegex = new RegExp(`${prefix$1}rgba\\s*\\(${float},${float},${float},${float}\\)${suffix}`); + const sHexRegex = new RegExp(`${prefix$1}#${hex}${hex}${hex}${suffix}`); + const hexRegex = new RegExp(`${prefix$1}#${dhex}${dhex}${dhex}${suffix}`); + const sHexaRegex = new RegExp(`${prefix$1}#${hex}${hex}${hex}${hex}${suffix}`); + const hexaRegex = new RegExp(`${prefix$1}#${dhex}${dhex}${dhex}${dhex}${suffix}`); + + function parseHex(value) { + return parseInt(value, 16); + } + /** + * Convert color string to hsla array + * @param color format like hsl(180, 100%, 100%), hsla(180, 100%, 100%, 1) + * @returns + */ + + + function hsla(color) { + try { + let i; + + if (i = hslaRegex.exec(color)) { + return [roundDeg(i[1]), roundPercent(i[5]), roundPercent(i[9]), roundAlpha(i[13])]; + } else if (i = hslRegex.exec(color)) { + return [roundDeg(i[1]), roundPercent(i[5]), roundPercent(i[9]), 1]; + } + + throw new Error(`[seemly/hsla]: Invalid color value ${color}.`); + } catch (e) { + throw e; + } + } + /** + * Convert color string to hsva array + * @param color format like hsv(180, 100%, 100%), hsva(180, 100%, 100%, 1) + * @returns + */ + + function hsva(color) { + try { + let i; + + if (i = hsvaRegex.exec(color)) { + return [roundDeg(i[1]), roundPercent(i[5]), roundPercent(i[9]), roundAlpha(i[13])]; + } else if (i = hsvRegex.exec(color)) { + return [roundDeg(i[1]), roundPercent(i[5]), roundPercent(i[9]), 1]; + } + + throw new Error(`[seemly/hsva]: Invalid color value ${color}.`); + } catch (e) { + throw e; + } + } + /** + * Convert color string to rgba array. + * @param color format like #000[0], #000000[00], rgb(0, 0, 0), rgba(0, 0, 0, 0) and basic color keywords https://www.w3.org/TR/css-color-3/#html4 and transparent + * @returns + */ + + function rgba(color) { + try { + let i; + + if (i = hexRegex.exec(color)) { + return [parseHex(i[1]), parseHex(i[2]), parseHex(i[3]), 1]; + } else if (i = rgbRegex.exec(color)) { + return [roundChannel(i[1]), roundChannel(i[5]), roundChannel(i[9]), 1]; + } else if (i = rgbaRegex.exec(color)) { + return [roundChannel(i[1]), roundChannel(i[5]), roundChannel(i[9]), roundAlpha(i[13])]; + } else if (i = sHexRegex.exec(color)) { + return [parseHex(i[1] + i[1]), parseHex(i[2] + i[2]), parseHex(i[3] + i[3]), 1]; + } else if (i = hexaRegex.exec(color)) { + return [parseHex(i[1]), parseHex(i[2]), parseHex(i[3]), roundAlpha(parseHex(i[4]) / 255)]; + } else if (i = sHexaRegex.exec(color)) { + return [parseHex(i[1] + i[1]), parseHex(i[2] + i[2]), parseHex(i[3] + i[3]), roundAlpha(parseHex(i[4] + i[4]) / 255)]; + } else if (color in colors) { + return rgba(colors[color]); + } + + throw new Error(`[seemly/rgba]: Invalid color value ${color}.`); + } catch (e) { + throw e; + } + } + + function normalizeAlpha$1(alphaValue) { + return alphaValue > 1 ? 1 : alphaValue < 0 ? 0 : alphaValue; + } + + function stringifyRgb(r, g, b) { + return `rgb(${roundChannel(r)}, ${roundChannel(g)}, ${roundChannel(b)})`; + } + + function stringifyRgba(r, g, b, a) { + return `rgba(${roundChannel(r)}, ${roundChannel(g)}, ${roundChannel(b)}, ${normalizeAlpha$1(a)})`; + } + + function compositeChannel(v1, a1, v2, a2, a) { + return roundChannel((v1 * a1 * (1 - a2) + v2 * a2) / a); + } + + function composite(background, overlay) { + if (!Array.isArray(background)) background = rgba(background); + if (!Array.isArray(overlay)) overlay = rgba(overlay); + const a1 = background[3]; + const a2 = overlay[3]; + const alpha = roundAlpha(a1 + a2 - a1 * a2); + return stringifyRgba(compositeChannel(background[0], a1, overlay[0], a2, alpha), compositeChannel(background[1], a1, overlay[1], a2, alpha), compositeChannel(background[2], a1, overlay[2], a2, alpha), alpha); + } + function changeColor(base, options) { + const [r, g, b, a = 1] = Array.isArray(base) ? base : rgba(base); + + if (options.alpha) { + return stringifyRgba(r, g, b, options.alpha); + } + + return stringifyRgba(r, g, b, a); + } + function scaleColor(base, options) { + const [r, g, b, a = 1] = Array.isArray(base) ? base : rgba(base); + const { + lightness = 1, + alpha = 1 + } = options; + return toRgbaString([r * lightness, g * lightness, b * lightness, a * alpha]); + } + function roundAlpha(value) { + const v = Math.round(Number(value) * 100) / 100; + if (v > 1) return 1; + if (v < 0) return 0; + return v; + } + function roundDeg(value) { + const v = Math.round(Number(value)); + if (v >= 360) return 0; + if (v < 0) return 0; + return v; + } + function roundChannel(value) { + const v = Math.round(Number(value)); + if (v > 255) return 255; + if (v < 0) return 0; + return v; + } + function roundPercent(value) { + const v = Math.round(Number(value)); + if (v > 100) return 100; + if (v < 0) return 0; + return v; + } + function toRgbString(base) { + const [r, g, b] = Array.isArray(base) ? base : rgba(base); + return stringifyRgb(r, g, b); + } + function toRgbaString(base) { + const [r, g, b] = base; + + if (3 in base) { + return `rgba(${roundChannel(r)}, ${roundChannel(g)}, ${roundChannel(b)}, ${roundAlpha(base[3])})`; + } + + return `rgba(${roundChannel(r)}, ${roundChannel(g)}, ${roundChannel(b)}, 1)`; + } + function toHsvString(base) { + return `hsv(${roundDeg(base[0])}, ${roundPercent(base[1])}%, ${roundPercent(base[2])}%)`; + } + function toHsvaString(base) { + const [h, s, v] = base; + + if (3 in base) { + return `hsva(${roundDeg(h)}, ${roundPercent(s)}%, ${roundPercent(v)}%, ${roundAlpha(base[3])})`; + } + + return `hsva(${roundDeg(h)}, ${roundPercent(s)}%, ${roundPercent(v)}%, 1)`; + } + function toHslString(base) { + return `hsl(${roundDeg(base[0])}, ${roundPercent(base[1])}%, ${roundPercent(base[2])}%)`; + } + function toHslaString(base) { + const [h, s, l] = base; + + if (3 in base) { + return `hsla(${roundDeg(h)}, ${roundPercent(s)}%, ${roundPercent(l)}%, ${roundAlpha(base[3])})`; + } + + return `hsla(${roundDeg(h)}, ${roundPercent(s)}%, ${roundPercent(l)}%, 1)`; + } + /** + * + * @param base [255, 255, 255, 255], [255, 255, 255], any hex string + * @returns + */ + + function toHexaString(base) { + if (typeof base === 'string') { + let i; + + if (i = hexRegex.exec(base)) { + return `${i[0]}FF`; + } else if (i = hexaRegex.exec(base)) { + return i[0]; + } else if (i = sHexRegex.exec(base)) { + return `#${i[1]}${i[1]}${i[2]}${i[2]}${i[3]}${i[3]}FF`; + } else if (i = sHexaRegex.exec(base)) { + return `#${i[1]}${i[1]}${i[2]}${i[2]}${i[3]}${i[3]}${i[4]}${i[4]}`; + } + + throw new Error(`[seemly/toHexString]: Invalid hex value ${base}.`); + } + + const hex = `#${base.slice(0, 3).map(unit => roundChannel(unit).toString(16).toUpperCase().padStart(2, '0')).join('')}`; + const a = base.length === 3 ? 'FF' : roundChannel(base[3] * 255).toString(16).padStart(2, '0').toUpperCase(); + return hex + a; + } + /** + * + * @param base [255, 255, 255, 255], [255, 255, 255], any hex string + * @returns + */ + + function toHexString(base) { + if (typeof base === 'string') { + let i; + + if (i = hexRegex.exec(base)) { + return i[0]; + } else if (i = hexaRegex.exec(base)) { + return i[0].slice(0, 7); + } else if (i = sHexRegex.exec(base) || sHexaRegex.exec(base)) { + return `#${i[1]}${i[1]}${i[2]}${i[2]}${i[3]}${i[3]}`; + } + + throw new Error(`[seemly/toHexString]: Invalid hex value ${base}.`); + } + + return `#${base.slice(0, 3).map(unit => roundChannel(unit).toString(16).toUpperCase().padStart(2, '0')).join('')}`; + } + + function createId() { + let length = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 8; + return Math.random().toString(16).slice(2, 2 + length); + } + function repeat(count, v) { + const ret = []; + + for (let i = 0; i < count; ++i) { + ret.push(v); + } + + return ret; + } + + function indexMap(count, createValue) { + const ret = []; + + if (!createValue) { + for (let i = 0; i < count; ++i) { + ret.push(i); + } + + return ret; + } + + for (let i = 0; i < count; ++i) { + ret.push(createValue(i)); + } + + return ret; + } + + function getSlot$1(instance) { + let slotName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "default"; + let fallback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : []; + const slots = instance.$slots; + const slot = slots[slotName]; + if (slot === void 0) return fallback; + return slot(); + } + + function getVNodeChildren(vNode) { + let slotName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "default"; + let fallback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : []; + const { + children + } = vNode; + + if (children !== null && typeof children === "object" && !Array.isArray(children)) { + const slot = children[slotName]; + + if (typeof slot === "function") { + return slot(); + } + } + + return fallback; + } + + function keep(object) { + let keys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; + let rest = arguments.length > 2 ? arguments[2] : undefined; + const keepedObject = {}; + keys.forEach(key => { + keepedObject[key] = object[key]; + }); + return Object.assign(keepedObject, rest); + } + + function omit(object) { + let keys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; + let rest = arguments.length > 2 ? arguments[2] : undefined; + const omitedObject = {}; + const originalKeys = Object.getOwnPropertyNames(object); + originalKeys.forEach(originalKey => { + if (!keys.includes(originalKey)) { + omitedObject[originalKey] = object[originalKey]; + } + }); + return Object.assign(omitedObject, rest); + } + + function flatten$3(vNodes) { + let filterCommentNode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + let result = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : []; + vNodes.forEach(vNode => { + if (vNode === null) return; + + if (typeof vNode !== "object") { + if (typeof vNode === "string" || typeof vNode === "number") { + result.push(vue.createTextVNode(String(vNode))); + } + + return; + } + + if (Array.isArray(vNode)) { + flatten$3(vNode, filterCommentNode, result); + return; + } + + if (vNode.type === vue.Fragment) { + if (vNode.children === null) return; + + if (Array.isArray(vNode.children)) { + flatten$3(vNode.children, filterCommentNode, result); + } + } else if (vNode.type !== vue.Comment) { + result.push(vNode); + } + }); + return result; + } + + function call(funcs) { + for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + if (Array.isArray(funcs)) { + funcs.forEach(func => call(func, ...args)); + } else return funcs(...args); + } + + function keysOf(obj) { + return Object.keys(obj); + } + + const render$1 = function (r) { + if (typeof r === "function") { + for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + return r(...args); + } else if (typeof r === "string") { + return vue.createTextVNode(r); + } else if (typeof r === "number") { + return vue.createTextVNode(String(r)); + } else { + return null; + } + }; + + const warnedMessages = /* @__PURE__ */new Set(); + function warnOnce(location, message) { + const mergedMessage = `[naive/${location}]: ${message}`; + if (warnedMessages.has(mergedMessage)) return; + warnedMessages.add(mergedMessage); + console.error(mergedMessage); + } + function warn$2(location, message) { + console.error(`[naive/${location}]: ${message}`); + } + function throwError(location, message) { + throw new Error(`[naive/${location}]: ${message}`); + } + + function smallerSize(size) { + switch (size) { + case "tiny": + return "mini"; + + case "small": + return "tiny"; + + case "medium": + return "small"; + + case "large": + return "medium"; + + case "huge": + return "large"; + } + + throw Error(`${size} has no smaller size.`); + } + + function getTitleAttribute(value) { + switch (typeof value) { + case "string": + return value || void 0; + + case "number": + return String(value); + + default: + return void 0; + } + } + + function getFirstSlotVNode(slots) { + let slotName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "default"; + let props = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : void 0; + const slot = slots[slotName]; + + if (!slot) { + warn$2("getFirstSlotVNode", `slot[${slotName}] is empty`); + return null; + } + + const slotContent = flatten$3(slot(props)); + + if (slotContent.length === 1) { + return slotContent[0]; + } else { + warn$2("getFirstSlotVNode", `slot[${slotName}] should have exactly one child`); + return null; + } + } + + function createDataKey(key) { + return typeof key === "string" ? `s-${key}` : `n-${key}`; + } + + function createRefSetter(ref) { + return inst => { + if (inst) { + ref.value = inst.$el; + } else { + ref.value = null; + } + }; + } + + function createInjectionKey(key) { + return key; + } + + function ensureValidVNode(vnodes) { + return vnodes.some(child => { + if (!vue.isVNode(child)) { + return true; + } + + if (child.type === vue.Comment) { + return false; + } + + if (child.type === vue.Fragment && !ensureValidVNode(child.children)) { + return false; + } + + return true; + }) ? vnodes : null; + } + + function resolveSlot(slot, fallback) { + return slot && ensureValidVNode(slot()) || fallback(); + } + function resolveSlotWithProps(slot, props, fallback) { + return slot && ensureValidVNode(slot(props)) || fallback(props); + } + function resolveWrappedSlot(slot, wrapper) { + const children = slot && ensureValidVNode(slot()); + return wrapper(children || null); + } + function isSlotEmpty(slot) { + return !(slot && ensureValidVNode(slot())); + } + + function mergeEventHandlers(handlers) { + const filteredHandlers = handlers.filter(handler => handler !== void 0); + if (filteredHandlers.length === 0) return void 0; + if (filteredHandlers.length === 1) return filteredHandlers[0]; + return e => { + handlers.forEach(handler => { + if (handler) { + handler(e); + } + }); + }; + } + + function isNodeVShowFalse(vNode) { + var _vNode$dirs; + + const showDir = (_vNode$dirs = vNode.dirs) === null || _vNode$dirs === void 0 ? void 0 : _vNode$dirs.find(_ref => { + let { + dir + } = _ref; + return dir === vue.vShow; + }); + return !!(showDir && showDir.value === false); + } + + const Wrapper = vue.defineComponent({ + render() { + return this.$slots.default?.(); + } + }); + + const pureNumberRegex = /^(\d|\.)+$/; + const numberRegex = /(\d|\.)+/; + function formatLength(length) { + let { + c = 1, + offset = 0, + attachPx = true + } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + if (typeof length === "number") { + const result = (length + offset) * c; + if (result === 0) return "0"; + return `${result}px`; + } else if (typeof length === "string") { + if (pureNumberRegex.test(length)) { + const result = (Number(length) + offset) * c; + + if (attachPx) { + if (result === 0) return "0"; + return `${result}px`; + } else { + return `${result}`; + } + } else { + const result = numberRegex.exec(length); + if (!result) return length; + return length.replace(numberRegex, String((Number(result[0]) + offset) * c)); + } + } + + return length; + } + + function color2Class(color) { + return color.replace(/#|\(|\)|,|\s/g, "_"); + } + + function ampCount(selector) { + let cnt = 0; + + for (let i = 0; i < selector.length; ++i) { + if (selector[i] === '&') ++cnt; + } + + return cnt; + } + /** + * Don't just use ',' to separate css selector. For example: + * x:(a, b) {} will be split into 'x:(a' and 'b)', which is not expected. + * Make sure comma doesn't exist inside parentheses. + */ + + + const separatorRegex = /\s*,(?![^(]*\))\s*/g; + const extraSpaceRegex = /\s+/g; + /** + * selector must includes '&' + * selector is trimmed + * every part of amp is trimmed + */ + + function resolveSelectorWithAmp(amp, selector) { + const nextAmp = []; + selector.split(separatorRegex).forEach(partialSelector => { + let round = ampCount(partialSelector); // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions + + if (!round) { + amp.forEach(partialAmp => { + nextAmp.push( // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions + (partialAmp && partialAmp + ' ') + partialSelector); + }); + return; + } else if (round === 1) { + amp.forEach(partialAmp => { + nextAmp.push(partialSelector.replace('&', partialAmp)); + }); + return; + } + + let partialNextAmp = [partialSelector]; // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions + + while (round--) { + const nextPartialNextAmp = []; + partialNextAmp.forEach(selectorItr => { + amp.forEach(partialAmp => { + nextPartialNextAmp.push(selectorItr.replace('&', partialAmp)); + }); + }); + partialNextAmp = nextPartialNextAmp; + } + + partialNextAmp.forEach(part => nextAmp.push(part)); + }); + return nextAmp; + } + /** + * selector mustn't includes '&' + * selector is trimmed + */ + + + function resolveSelector(amp, selector) { + const nextAmp = []; + selector.split(separatorRegex).forEach(partialSelector => { + amp.forEach(partialAmp => { + // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions + nextAmp.push((partialAmp && partialAmp + ' ') + partialSelector); + }); + }); + return nextAmp; + } + + function parseSelectorPath(selectorPaths) { + let amp = ['']; + selectorPaths.forEach(selector => { + // eslint-disable-next-line + selector = selector && selector.trim(); + + if ( // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions + !selector) { + /** + * if it's a empty selector, do nothing + */ + return; + } // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions + + + if (selector.includes('&')) { + amp = resolveSelectorWithAmp(amp, selector); + } else { + amp = resolveSelector(amp, selector); + } + }); + return amp.join(', ').replace(extraSpaceRegex, ' '); + } + + function removeElement(el) { + /* istanbul ignore if */ + // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions + if (!el) return; + const parentElement = el.parentElement; + /* istanbul ignore else */ + // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions + + if (parentElement) parentElement.removeChild(el); + } + function queryElement(id) { + return document.querySelector(`style[cssr-id="${id}"]`); + } + function createElement(id) { + const el = document.createElement('style'); + el.setAttribute('cssr-id', id); + return el; + } + function isMediaOrSupports(selector) { + // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions + if (!selector) return false; + return /^\s*@(s|m)/.test(selector); + } + + const kebabRegex = /[A-Z]/g; + + function kebabCase(pattern) { + return pattern.replace(kebabRegex, match => '-' + match.toLowerCase()); + } + /** TODO: refine it to solve nested object */ + + + function unwrapProperty(prop) { + let indent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ' '; + + if (typeof prop === 'object' && prop !== null) { + return ' {\n' + Object.entries(prop).map(v => { + return indent + ` ${kebabCase(v[0])}: ${v[1]};`; + }).join('\n') + '\n' + indent + '}'; + } + + return `: ${prop};`; + } + /** unwrap properties */ + + + function unwrapProperties(props, instance, params) { + if (typeof props === 'function') { + return props({ + context: instance.context, + props: params + }); + } + + return props; + } + + function createStyle(selector, props, instance, params) { + if (!props) return ''; // eslint-disable-next-line + + const unwrappedProps = unwrapProperties(props, instance, params); + if (!unwrappedProps) return ''; + + if (typeof unwrappedProps === 'string') { + return `${selector} {\n${unwrappedProps}\n}`; + } + + const propertyNames = Object.keys(unwrappedProps); + + if (propertyNames.length === 0) { + if (instance.config.keepEmptyBlock) return selector + ' {\n}'; + return ''; + } + + const statements = selector ? [selector + ' {'] : []; + propertyNames.forEach(propertyName => { + const property = unwrappedProps[propertyName]; + + if (propertyName === 'raw') { + statements.push('\n' + property + '\n'); + return; + } + + propertyName = kebabCase(propertyName); + + if (property !== null && property !== undefined) { + statements.push(` ${propertyName}${unwrapProperty(property)}`); + } + }); + + if (selector) { + statements.push('}'); + } + + return statements.join('\n'); + } + + function loopCNodeListWithCallback(children, options, callback) { + /* istanbul ignore if */ + if (!children) return; + children.forEach(child => { + if (Array.isArray(child)) { + loopCNodeListWithCallback(child, options, callback); + } else if (typeof child === 'function') { + const grandChildren = child(options); + + if (Array.isArray(grandChildren)) { + loopCNodeListWithCallback(grandChildren, options, callback); + } else if (grandChildren) { + callback(grandChildren); + } + } else if (child) { + callback(child); + } + }); + } + + function traverseCNode(node, selectorPaths, styles, instance, params, styleSheet) { + const $ = node.$; + let blockSelector = ''; + + if (!$ || typeof $ === 'string') { + if (isMediaOrSupports($)) { + blockSelector = $; + } else { + // as a string selector + selectorPaths.push($); + } + } else if (typeof $ === 'function') { + const selector = $({ + context: instance.context, + props: params + }); + + if (isMediaOrSupports(selector)) { + blockSelector = selector; + } else { + // as a lazy selector + selectorPaths.push(selector); + } + } else { + // as a option selector + if ($.before) $.before(instance.context); + + if (!$.$ || typeof $.$ === 'string') { + if (isMediaOrSupports($.$)) { + blockSelector = $.$; + } else { + // as a string selector + selectorPaths.push($.$); + } + } else + /* istanbul ignore else */ + if ($.$) { + const selector = $.$({ + context: instance.context, + props: params + }); + + if (isMediaOrSupports(selector)) { + blockSelector = selector; + } else { + // as a lazy selector + selectorPaths.push(selector); + } + } + } + + const selector = parseSelectorPath(selectorPaths); + const style = createStyle(selector, node.props, instance, params); + + if (blockSelector) { + styles.push(`${blockSelector} {`); + + if (styleSheet && style) { + styleSheet.insertRule(`${blockSelector} {\n${style}\n}\n`); + } + } else { + if (styleSheet && style) { + styleSheet.insertRule(style); + } + + if (!styleSheet && style.length) styles.push(style); + } + + if (node.children) { + loopCNodeListWithCallback(node.children, { + context: instance.context, + props: params + }, childNode => { + if (typeof childNode === 'string') { + const style = createStyle(selector, { + raw: childNode + }, instance, params); + + if (styleSheet) { + styleSheet.insertRule(style); + } else { + styles.push(style); + } + } else { + traverseCNode(childNode, selectorPaths, styles, instance, params, styleSheet); + } + }); + } + + selectorPaths.pop(); + + if (blockSelector) { + styles.push('}'); + } + + if ($ && $.after) $.after(instance.context); + } + + function render(node, instance, props) { + let insertRule = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; + const styles = []; + traverseCNode(node, [], styles, instance, props, insertRule ? node.instance.__styleSheet : undefined); + if (insertRule) return ''; + return styles.join('\n\n'); + } + + /* eslint-disable */ + // Inspired by https://github.com/garycourt/murmurhash-js + // Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86 + function murmur2(str) { + // 'm' and 'r' are mixing constants generated offline. + // They're not really 'magic', they just happen to work well. + // const m = 0x5bd1e995; + // const r = 24; + // Initialize the hash + var h = 0; // Mix 4 bytes at a time into the hash + + var k, + i = 0, + len = str.length; + + for (; len >= 4; ++i, len -= 4) { + k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24; + k = + /* Math.imul(k, m): */ + (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16); + k ^= + /* k >>> r: */ + k >>> 24; + h = + /* Math.imul(k, m): */ + (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^ + /* Math.imul(h, m): */ + (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16); + } // Handle the last few bytes of the input array + + + switch (len) { + case 3: + h ^= (str.charCodeAt(i + 2) & 0xff) << 16; + + case 2: + h ^= (str.charCodeAt(i + 1) & 0xff) << 8; + + case 1: + h ^= str.charCodeAt(i) & 0xff; + h = + /* Math.imul(h, m): */ + (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16); + } // Do a few final mixes of the hash to ensure the last few + // bytes are well-incorporated. + + + h ^= h >>> 13; + h = + /* Math.imul(h, m): */ + (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16); + return ((h ^ h >>> 15) >>> 0).toString(36); + } + + /* eslint-disable @typescript-eslint/prefer-ts-expect-error */ + + if (typeof window !== 'undefined') { + window.__cssrContext = {}; + } + + function unmount(intance, node, id) { + const { + els + } = node; // If id is undefined, unmount all styles + + if (id === undefined) { + els.forEach(removeElement); + node.els = []; + } else { + const target = queryElement(id); // eslint-disable-next-line + + if (target && els.includes(target)) { + removeElement(target); + node.els = els.filter(el => el !== target); + } + } + } + + function addElementToList(els, target) { + els.push(target); + } + + function mount(instance, node, id, props, head, silent, force, anchorMetaName, ssrAdapter // eslint-disable-next-line @typescript-eslint/no-invalid-void-type + ) { + if (silent && !ssrAdapter) { + if (id === undefined) { + // it is possible to use hash to get rid of the requirements of id + // if you are interested in it, please create a pr + // i have no time to impl it + console.error('[css-render/mount]: `id` is required in `silent` mode.'); + return; + } + + const cssrContext = window.__cssrContext; + + if (!cssrContext[id]) { + cssrContext[id] = true; + render(node, instance, props, silent); + } + + return; + } + + let style; + + if (id === undefined) { + style = node.render(props); + id = murmur2(style); + } + + if (ssrAdapter) { + ssrAdapter.adapter(id, style !== null && style !== void 0 ? style : node.render(props)); + return; + } + + const queriedTarget = queryElement(id); + + if (queriedTarget !== null && !force) { + return queriedTarget; + } + + const target = queriedTarget !== null && queriedTarget !== void 0 ? queriedTarget : createElement(id); + if (style === undefined) style = node.render(props); + target.textContent = style; + if (queriedTarget !== null) return queriedTarget; + + if (anchorMetaName) { + const anchorMetaEl = document.head.querySelector(`meta[name="${anchorMetaName}"]`); + + if (anchorMetaEl) { + document.head.insertBefore(target, anchorMetaEl); + addElementToList(node.els, target); + return target; + } + } + + if (head) { + document.head.insertBefore(target, document.head.querySelector('style, link')); + } else { + document.head.appendChild(target); + } + + addElementToList(node.els, target); + return target; + } + + function wrappedRender(props) { + return render(this, this.instance, props); + } // do not guard node calling, it should throw an error. + + + function wrappedMount() { + let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + const { + id, + ssr, + props, + head = false, + silent = false, + force = false, + anchorMetaName + } = options; + const targetElement = mount(this.instance, this, id, props, head, silent, force, anchorMetaName, ssr); + return targetElement; + } + + function wrappedUnmount() { + let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + /* istanbul ignore next */ + // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions + const { + id + } = options; + unmount(this.instance, this, id); + } + + const createCNode = function (instance, $, props, children) { + return { + instance, + $, + props, + children, + els: [], + render: wrappedRender, + mount: wrappedMount, + unmount: wrappedUnmount + }; + }; + + const c$2 = function (instance, $, props, children) { + if (Array.isArray($)) { + return createCNode(instance, { + $: null + }, null, $); + } else if (Array.isArray(props)) { + return createCNode(instance, $, null, props); + } else if (Array.isArray(children)) { + return createCNode(instance, $, props, children); + } else { + return createCNode(instance, $, props, null); + } + }; + + function CssRender() { + let config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + let styleSheet = null; + const cssr = { + c: function () { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return c$2(cssr, ...args); + }, + use: function (plugin) { + for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { + args[_key2 - 1] = arguments[_key2]; + } + + return plugin.install(cssr, ...args); + }, + find: queryElement, + context: {}, + config, + + get __styleSheet() { + // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions + if (!styleSheet) { + const style = document.createElement('style'); + document.head.appendChild(style); + styleSheet = document.styleSheets[document.styleSheets.length - 1]; + return styleSheet; + } + + return styleSheet; + } + + }; + return cssr; + } + + function exists(id, ssr) { + if (id === undefined) return false; + + if (ssr) { + const { + context: { + ids + } + } = ssr; + return ids.has(id); + } + + return queryElement(id) !== null; + } + + /* eslint-disable @typescript-eslint/restrict-template-expressions */ + + /* eslint-disable @typescript-eslint/strict-boolean-expressions */ + function plugin$1(options) { + let _bPrefix = '.'; + let _ePrefix = '__'; + let _mPrefix = '--'; + let c; + + if (options) { + let t = options.blockPrefix; + + if (t) { + _bPrefix = t; + } + + t = options.elementPrefix; + + if (t) { + _ePrefix = t; + } + + t = options.modifierPrefix; + + if (t) { + _mPrefix = t; + } + } + + const _plugin = { + install(instance) { + c = instance.c; + const ctx = instance.context; + ctx.bem = {}; + ctx.bem.b = null; + ctx.bem.els = null; + } + + }; + + function b(arg) { + let memorizedB; + let memorizedE; + return { + before(ctx) { + memorizedB = ctx.bem.b; + memorizedE = ctx.bem.els; + ctx.bem.els = null; + }, + + after(ctx) { + ctx.bem.b = memorizedB; + ctx.bem.els = memorizedE; + }, + + $(_ref) { + let { + context, + props + } = _ref; + arg = typeof arg === 'string' ? arg : arg({ + context, + props + }); + context.bem.b = arg; + return `${(props === null || props === void 0 ? void 0 : props.bPrefix) || _bPrefix}${context.bem.b}`; + } + + }; + } + + function e(arg) { + let memorizedE; + return { + before(ctx) { + memorizedE = ctx.bem.els; + }, + + after(ctx) { + ctx.bem.els = memorizedE; + }, + + $(_ref2) { + let { + context, + props + } = _ref2; + arg = typeof arg === 'string' ? arg : arg({ + context, + props + }); + context.bem.els = arg.split(',').map(v => v.trim()); + return context.bem.els.map(el => `${(props === null || props === void 0 ? void 0 : props.bPrefix) || _bPrefix}${context.bem.b}${_ePrefix}${el}`).join(', '); + } + + }; + } + + function m(arg) { + return { + $(_ref3) { + let { + context, + props + } = _ref3; + arg = typeof arg === 'string' ? arg : arg({ + context, + props + }); + const modifiers = arg.split(',').map(v => v.trim()); + + function elementToSelector(el) { + return modifiers.map(modifier => `&${(props === null || props === void 0 ? void 0 : props.bPrefix) || _bPrefix}${context.bem.b}${el !== undefined ? `${_ePrefix}${el}` : ''}${_mPrefix}${modifier}`).join(', '); + } + + const els = context.bem.els; + + if (els !== null) { + if (els.length >= 2) { + throw Error(`[css-render/plugin-bem]: m(${arg}) is invalid, using modifier inside multiple elements is not allowed`); + } + + return elementToSelector(els[0]); + } else { + return elementToSelector(); + } + } + + }; + } + + function notM(arg) { + return { + $(_ref4) { + let { + context, + props + } = _ref4; + arg = typeof arg === 'string' ? arg : arg({ + context, + props + }); + const els = context.bem.els; + + if (els !== null && els.length >= 2) { + throw Error(`[css-render/plugin-bem]: notM(${arg}) is invalid, using modifier inside multiple elements is not allowed`); + } + + return `&:not(${(props === null || props === void 0 ? void 0 : props.bPrefix) || _bPrefix}${context.bem.b}${els !== null && els.length > 0 ? `${_ePrefix}${els[0]}` : ''}${_mPrefix}${arg})`; + } + + }; + } + + const cB = function () { + return c(b(arguments.length <= 0 ? undefined : arguments[0]), arguments.length <= 1 ? undefined : arguments[1], arguments.length <= 2 ? undefined : arguments[2]); + }; + + const cE = function () { + return c(e(arguments.length <= 0 ? undefined : arguments[0]), arguments.length <= 1 ? undefined : arguments[1], arguments.length <= 2 ? undefined : arguments[2]); + }; + + const cM = function () { + return c(m(arguments.length <= 0 ? undefined : arguments[0]), arguments.length <= 1 ? undefined : arguments[1], arguments.length <= 2 ? undefined : arguments[2]); + }; + + const cNotM = function () { + return c(notM(arguments.length <= 0 ? undefined : arguments[0]), arguments.length <= 1 ? undefined : arguments[1], arguments.length <= 2 ? undefined : arguments[2]); + }; + + Object.assign(_plugin, { + cB, + cE, + cM, + cNotM + }); + return _plugin; + } + + function createKey(prefix, suffix) { + return prefix + (suffix === "default" ? "" : suffix.replace(/^[a-z]/, startChar => startChar.toUpperCase())); + } + createKey("abc", "def"); + + const namespace = "n"; + const prefix = `.${namespace}-`; + const elementPrefix = "__"; + const modifierPrefix = "--"; + const cssr = CssRender(); + const plugin = plugin$1({ + blockPrefix: prefix, + elementPrefix, + modifierPrefix + }); + cssr.use(plugin); + const { + c: c$1, + find + } = cssr; + const { + cB, + cE, + cM, + cNotM + } = plugin; + + function insideModal(style) { + return c$1(_ref => { + let { + props: { + bPrefix + } + } = _ref; + return `${bPrefix || prefix}modal, ${bPrefix || prefix}drawer`; + }, [style]); + } + + function insidePopover(style) { + return c$1(_ref2 => { + let { + props: { + bPrefix + } + } = _ref2; + return `${bPrefix || prefix}popover`; + }, [style]); + } + + function asModal(style) { + return c$1(_ref3 => { + let { + props: { + bPrefix + } + } = _ref3; + return `&${bPrefix || prefix}modal`; + }, style); + } + + const cCB = function () { + return c$1(">", [cB(...arguments)]); + }; + + let _isJsdom; + + function isJsdom() { + if (_isJsdom === void 0) { + _isJsdom = navigator.userAgent.includes("Node.js") || navigator.userAgent.includes("jsdom"); + } + + return _isJsdom; + } + + const isBrowser$2 = typeof document !== "undefined" && typeof window !== "undefined"; + + const eventSet = /* @__PURE__ */new WeakSet(); + function markEventEffectPerformed(event) { + eventSet.add(event); + } + function eventEffectNotPerformed(event) { + return !eventSet.has(event); + } + + function useInjectionInstanceCollection(injectionName, collectionKey, registerKeyRef) { + var _getCurrentInstance; + + const injection = vue.inject(injectionName, null); + if (injection === null) return; + const vm = (_getCurrentInstance = vue.getCurrentInstance()) === null || _getCurrentInstance === void 0 ? void 0 : _getCurrentInstance.proxy; + vue.watch(registerKeyRef, registerInstance); + registerInstance(registerKeyRef.value); + vue.onBeforeUnmount(() => { + registerInstance(void 0, registerKeyRef.value); + }); + + function registerInstance(key, oldKey) { + const collection = injection[collectionKey]; + if (oldKey !== void 0) removeInstance(collection, oldKey); + if (key !== void 0) addInstance(collection, key); + } + + function removeInstance(collection, key) { + if (!collection[key]) collection[key] = []; + collection[key].splice(collection[key].findIndex(instance => instance === vm), 1); + } + + function addInstance(collection, key) { + if (!collection[key]) collection[key] = []; + + if (!~collection[key].findIndex(instance => instance === vm)) { + collection[key].push(vm); + } + } + } + function useInjectionCollection(injectionName, collectionKey, valueRef) { + const injection = vue.inject(injectionName, null); + if (injection === null) return; + + if (!(collectionKey in injection)) { + injection[collectionKey] = []; + } + + injection[collectionKey].push(valueRef.value); + vue.watch(valueRef, (value, prevValue) => { + const collectionArray = injection[collectionKey]; + const index = collectionArray.findIndex(collectionValue => collectionValue === prevValue); + if (~index) collectionArray.splice(index, 1); + collectionArray.push(value); + }); + vue.onBeforeUnmount(() => { + const collectionArray = injection[collectionKey]; + const index = collectionArray.findIndex(collectionValue => collectionValue === valueRef.value); + if (~index) collectionArray.splice(index, 1); + }); + } + function useInjectionElementCollection(injectionName, collectionKey, getElement) { + const injection = vue.inject(injectionName, null); + if (injection === null) return; + + if (!(collectionKey in injection)) { + injection[collectionKey] = []; + } + + vue.onMounted(() => { + const el = getElement(); + if (!el) return; + injection[collectionKey].push(el); + }); + vue.onBeforeUnmount(() => { + const collectionArray = injection[collectionKey]; + const element = getElement(); + const index = collectionArray.findIndex(collectionElement => collectionElement === element); + if (~index) collectionArray.splice(index, 1); + }); + } + + function useDeferredTrue(valueRef, delay, shouldDelayRef) { + if (!delay) return valueRef; + const delayedRef = vue.ref(valueRef.value); + let timerId = null; + vue.watch(valueRef, value => { + if (timerId !== null) window.clearTimeout(timerId); + + if (value === true) { + if (shouldDelayRef && !shouldDelayRef.value) { + delayedRef.value = true; + } else { + timerId = window.setTimeout(() => { + delayedRef.value = true; + }, delay); + } + } else { + delayedRef.value = false; + } + }); + return delayedRef; + } + + function useFalseUntilTruthy(originalRef) { + const currentRef = vue.ref(!!originalRef.value); + if (currentRef.value) return vue.readonly(currentRef); + const stop = vue.watch(originalRef, value => { + if (value) { + currentRef.value = true; + stop(); + } + }); + return vue.readonly(currentRef); + } + + function useMemo(getterOrOptions) { + const computedValueRef = vue.computed(getterOrOptions); // Maybe it's not possible to lazy evaluate the value, since we can't make + // render phase capture the deps behind useMemo + + const valueRef = vue.ref(computedValueRef.value); + vue.watch(computedValueRef, value => { + valueRef.value = value; + }); + + if (typeof getterOrOptions === 'function') { + return valueRef; + } else { + return { + __v_isRef: true, + + get value() { + return valueRef.value; + }, + + set value(v) { + getterOrOptions.set(v); + } + + }; + } + } + + function hasInstance() { + return vue.getCurrentInstance() !== null; + } + const isBrowser$1 = typeof window !== 'undefined'; + + let fontsReady; + let isFontReady; + + const init$1 = () => { + var _a, _b; + + fontsReady = isBrowser$1 ? (_b = (_a = document) === null || _a === void 0 ? void 0 : _a.fonts) === null || _b === void 0 ? void 0 : _b.ready : undefined; + isFontReady = false; + /* istanbul ignore if */ + + if (fontsReady !== undefined) { + void fontsReady.then(() => { + isFontReady = true; + }); + } else { + isFontReady = true; + } + }; + + init$1(); // For testing + /** + * Call callback on fontsReady is resolved. If fontsReady is already resolved, + * callback won't be called. + */ + + function onFontsReady(cb) { + /* istanbul ignore next */ + if (isFontReady) return; + let deactivated = false; + vue.onMounted(() => { + /* istanbul ignore next */ + if (!isFontReady) { + fontsReady === null || fontsReady === void 0 ? void 0 : fontsReady.then(() => { + if (deactivated) return; + cb(); + }); + } + }); + vue.onBeforeUnmount(() => { + deactivated = true; + }); + } + + function getEventTarget(e) { + const path = e.composedPath(); + return path[0]; + } + + const traps = { + mousemoveoutside: new WeakMap(), + clickoutside: new WeakMap() + }; + + function createTrapHandler(name, el, originalHandler) { + if (name === 'mousemoveoutside') { + const moveHandler = e => { + if (el.contains(getEventTarget(e))) return; + originalHandler(e); + }; + + return { + mousemove: moveHandler, + touchstart: moveHandler + }; + } else if (name === 'clickoutside') { + let mouseDownOutside = false; + + const downHandler = e => { + mouseDownOutside = !el.contains(getEventTarget(e)); + }; + + const upHanlder = e => { + if (!mouseDownOutside) return; + if (el.contains(getEventTarget(e))) return; + originalHandler(e); + }; + + return { + mousedown: downHandler, + mouseup: upHanlder, + touchstart: downHandler, + touchend: upHanlder + }; + } + + console.error( // eslint-disable-next-line @typescript-eslint/restrict-template-expressions + `[evtd/create-trap-handler]: name \`${name}\` is invalid. This could be a bug of evtd.`); + return {}; + } + + function ensureTrapHandlers(name, el, handler) { + const handlers = traps[name]; + let elHandlers = handlers.get(el); + + if (elHandlers === undefined) { + handlers.set(el, elHandlers = new WeakMap()); + } + + let trapHandler = elHandlers.get(handler); + + if (trapHandler === undefined) { + elHandlers.set(handler, trapHandler = createTrapHandler(name, el, handler)); + } + + return trapHandler; + } + + function trapOn(name, el, handler, options) { + if (name === 'mousemoveoutside' || name === 'clickoutside') { + const trapHandlers = ensureTrapHandlers(name, el, handler); + Object.keys(trapHandlers).forEach(key => { + on(key, document, trapHandlers[key], options); + }); + return true; + } + + return false; + } + + function trapOff(name, el, handler, options) { + if (name === 'mousemoveoutside' || name === 'clickoutside') { + const trapHandlers = ensureTrapHandlers(name, el, handler); + Object.keys(trapHandlers).forEach(key => { + off(key, document, trapHandlers[key], options); + }); + return true; + } + + return false; + } + + function createDelegate() { + if (typeof window === 'undefined') { + return { + on: () => {}, + off: () => {} + }; + } + + const propagationStopped = new WeakMap(); + const immediatePropagationStopped = new WeakMap(); + + function trackPropagation() { + propagationStopped.set(this, true); + } + + function trackImmediate() { + propagationStopped.set(this, true); + immediatePropagationStopped.set(this, true); + } + + function spy(event, propName, fn) { + const source = event[propName]; + + event[propName] = function () { + fn.apply(event, arguments); + return source.apply(event, arguments); + }; + + return event; + } + + function unspy(event, propName) { + event[propName] = Event.prototype[propName]; + } + + const currentTargets = new WeakMap(); + const currentTargetDescriptor = Object.getOwnPropertyDescriptor(Event.prototype, 'currentTarget'); + + function getCurrentTarget() { + var _a; + + return (_a = currentTargets.get(this)) !== null && _a !== void 0 ? _a : null; + } + + function defineCurrentTarget(event, getter) { + if (currentTargetDescriptor === undefined) return; + Object.defineProperty(event, 'currentTarget', { + configurable: true, + enumerable: true, + get: getter !== null && getter !== void 0 ? getter : currentTargetDescriptor.get + }); + } + + const phaseToTypeToElToHandlers = { + bubble: {}, + capture: {} + }; + const typeToWindowEventHandlers = {}; + + function createUnifiedHandler() { + const delegeteHandler = function (e) { + const { + type, + eventPhase, + bubbles + } = e; + const target = getEventTarget(e); + if (eventPhase === 2) return; + const phase = eventPhase === 1 ? 'capture' : 'bubble'; + let cursor = target; + const path = []; // collecting bubble path + + while (true) { + if (cursor === null) cursor = window; + path.push(cursor); + + if (cursor === window) { + break; + } // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions + + + cursor = cursor.parentNode || null; + } + + const captureElToHandlers = phaseToTypeToElToHandlers.capture[type]; + const bubbleElToHandlers = phaseToTypeToElToHandlers.bubble[type]; + spy(e, 'stopPropagation', trackPropagation); + spy(e, 'stopImmediatePropagation', trackImmediate); + defineCurrentTarget(e, getCurrentTarget); + + if (phase === 'capture') { + if (captureElToHandlers === undefined) return; // capture + + for (let i = path.length - 1; i >= 0; --i) { + if (propagationStopped.has(e)) break; + const target = path[i]; + const handlers = captureElToHandlers.get(target); + + if (handlers !== undefined) { + currentTargets.set(e, target); + + for (const handler of handlers) { + if (immediatePropagationStopped.has(e)) break; + handler(e); + } + } + + if (i === 0 && !bubbles && bubbleElToHandlers !== undefined) { + const bubbleHandlers = bubbleElToHandlers.get(target); + + if (bubbleHandlers !== undefined) { + for (const handler of bubbleHandlers) { + if (immediatePropagationStopped.has(e)) break; + handler(e); + } + } + } + } + } else if (phase === 'bubble') { + if (bubbleElToHandlers === undefined) return; // bubble + + for (let i = 0; i < path.length; ++i) { + if (propagationStopped.has(e)) break; + const target = path[i]; + const handlers = bubbleElToHandlers.get(target); + + if (handlers !== undefined) { + currentTargets.set(e, target); + + for (const handler of handlers) { + if (immediatePropagationStopped.has(e)) break; + handler(e); + } + } + } + } + + unspy(e, 'stopPropagation'); + unspy(e, 'stopImmediatePropagation'); + defineCurrentTarget(e); + }; + + delegeteHandler.displayName = 'evtdUnifiedHandler'; + return delegeteHandler; + } + + function createUnifiedWindowEventHandler() { + const delegateHandler = function (e) { + const { + type, + eventPhase + } = e; + if (eventPhase !== 2) return; + const handlers = typeToWindowEventHandlers[type]; + if (handlers === undefined) return; + handlers.forEach(handler => handler(e)); + }; + + delegateHandler.displayName = 'evtdUnifiedWindowEventHandler'; + return delegateHandler; + } + + const unifiedHandler = createUnifiedHandler(); + const unfiendWindowEventHandler = createUnifiedWindowEventHandler(); + + function ensureElToHandlers(phase, type) { + const phaseHandlers = phaseToTypeToElToHandlers[phase]; + + if (phaseHandlers[type] === undefined) { + phaseHandlers[type] = new Map(); + window.addEventListener(type, unifiedHandler, phase === 'capture'); + } + + return phaseHandlers[type]; + } + + function ensureWindowEventHandlers(type) { + const windowEventHandlers = typeToWindowEventHandlers[type]; + + if (windowEventHandlers === undefined) { + typeToWindowEventHandlers[type] = new Set(); + window.addEventListener(type, unfiendWindowEventHandler); + } + + return typeToWindowEventHandlers[type]; + } + + function ensureHandlers(elToHandlers, el) { + let elHandlers = elToHandlers.get(el); + + if (elHandlers === undefined) { + elToHandlers.set(el, elHandlers = new Set()); + } + + return elHandlers; + } + + function handlerExist(el, phase, type, handler) { + const elToHandlers = phaseToTypeToElToHandlers[phase][type]; // phase ${type} event has handlers + + if (elToHandlers !== undefined) { + const handlers = elToHandlers.get(el); // phase using el with ${type} event has handlers + + if (handlers !== undefined) { + if (handlers.has(handler)) return true; + } + } + + return false; + } + + function windowEventHandlerExist(type, handler) { + const handlers = typeToWindowEventHandlers[type]; + + if (handlers !== undefined) { + if (handlers.has(handler)) { + return true; + } + } + + return false; + } + + function on(type, el, handler, options) { + let mergedHandler; + + if (typeof options === 'object' && options.once === true) { + mergedHandler = e => { + off(type, el, mergedHandler, options); + handler(e); + }; + } else { + mergedHandler = handler; + } + + const trapped = trapOn(type, el, mergedHandler, options); + if (trapped) return; + const phase = options === true || typeof options === 'object' && options.capture === true ? 'capture' : 'bubble'; + const elToHandlers = ensureElToHandlers(phase, type); + const handlers = ensureHandlers(elToHandlers, el); + if (!handlers.has(mergedHandler)) handlers.add(mergedHandler); + + if (el === window) { + const windowEventHandlers = ensureWindowEventHandlers(type); + + if (!windowEventHandlers.has(mergedHandler)) { + windowEventHandlers.add(mergedHandler); + } + } + } + + function off(type, el, handler, options) { + const trapped = trapOff(type, el, handler, options); + if (trapped) return; + const capture = options === true || typeof options === 'object' && options.capture === true; + const phase = capture ? 'capture' : 'bubble'; + const elToHandlers = ensureElToHandlers(phase, type); + const handlers = ensureHandlers(elToHandlers, el); + + if (el === window) { + const mirrorPhase = capture ? 'bubble' : 'capture'; + + if (!handlerExist(el, mirrorPhase, type, handler) && windowEventHandlerExist(type, handler)) { + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + const windowEventHandlers = typeToWindowEventHandlers[type]; + windowEventHandlers.delete(handler); + + if (windowEventHandlers.size === 0) { + window.removeEventListener(type, unfiendWindowEventHandler); + typeToWindowEventHandlers[type] = undefined; + } + } + } + + if (handlers.has(handler)) handlers.delete(handler); + + if (handlers.size === 0) { + elToHandlers.delete(el); + } + + if (elToHandlers.size === 0) { + window.removeEventListener(type, unifiedHandler, phase === 'capture'); + phaseToTypeToElToHandlers[phase][type] = undefined; + } + } + + return { + on: on, + off: off + }; + } + + const { + on, + off + } = createDelegate(); + + const mousePositionRef = vue.ref(null); + + function clickHandler(e) { + if (e.clientX > 0 || e.clientY > 0) { + mousePositionRef.value = { + x: e.clientX, + y: e.clientY + }; + } else { + // x = 0 & y = 0 + const { + target + } = e; + + if (target instanceof Element) { + const { + left, + top, + width, + height + } = target.getBoundingClientRect(); + + if (left > 0 || top > 0) { + // impossible to be triggered by real click + mousePositionRef.value = { + x: left + width / 2, + y: top + height / 2 + }; + } else { + mousePositionRef.value = { + x: 0, + y: 0 + }; + } + } else { + mousePositionRef.value = null; + } + } + } + + let usedCount$2 = 0; + let managable$2 = true; + function useClickPosition() { + if (!isBrowser$1) return vue.readonly(vue.ref(null)); + if (usedCount$2 === 0) on('click', document, clickHandler, true); + + const setup = () => { + usedCount$2 += 1; + }; + + if (managable$2 && (managable$2 = hasInstance())) { + vue.onBeforeMount(setup); + vue.onBeforeUnmount(() => { + usedCount$2 -= 1; + if (usedCount$2 === 0) off('click', document, clickHandler, true); + }); + } else { + setup(); + } + + return vue.readonly(mousePositionRef); + } + + const clickedTimeRef = vue.ref(undefined); + let usedCount$1 = 0; + + function handleClick() { + clickedTimeRef.value = Date.now(); + } + + let managable$1 = true; + function useClicked(timeout) { + if (!isBrowser$1) return vue.readonly(vue.ref(false)); + const clickedRef = vue.ref(false); + let timerId = null; + + function clearTimer() { + if (timerId !== null) window.clearTimeout(timerId); + } + + function clickedHandler() { + clearTimer(); + clickedRef.value = true; + timerId = window.setTimeout(() => { + clickedRef.value = false; + }, timeout); + } + + if (usedCount$1 === 0) { + on('click', window, handleClick, true); + } + + const setup = () => { + usedCount$1 += 1; + on('click', window, clickedHandler, true); + }; + + if (managable$1 && (managable$1 = hasInstance())) { + vue.onBeforeMount(setup); + vue.onBeforeUnmount(() => { + usedCount$1 -= 1; + + if (usedCount$1 === 0) { + off('click', window, handleClick, true); + } + + off('click', window, clickedHandler, true); + clearTimer(); + }); + } else { + setup(); + } + + return vue.readonly(clickedRef); + } + + /* eslint-disable @typescript-eslint/strict-boolean-expressions */ + let usedCount = 0; // Mql means media query list + + const supportMatchMedia = typeof window !== 'undefined' && window.matchMedia !== undefined; + const osTheme = vue.ref(null); + let darkMql; + let lightMql; + + function handleDarkMqlChange(e) { + if (e.matches) { + osTheme.value = 'dark'; + } + } + + function handleLightMqlChange(e) { + if (e.matches) { + osTheme.value = 'light'; + } + } + + function init() { + darkMql = window.matchMedia('(prefers-color-scheme: dark)'); + lightMql = window.matchMedia('(prefers-color-scheme: light)'); + + if (darkMql.matches) { + osTheme.value = 'dark'; + } else if (lightMql.matches) { + osTheme.value = 'light'; + } else { + osTheme.value = null; + } + + if (darkMql.addEventListener) { + darkMql.addEventListener('change', handleDarkMqlChange); + lightMql.addEventListener('change', handleLightMqlChange); + } else if (darkMql.addListener) { + darkMql.addListener(handleDarkMqlChange); + lightMql.addListener(handleLightMqlChange); + } + } + + function clean() { + if ('removeEventListener' in darkMql) { + darkMql.removeEventListener('change', handleDarkMqlChange); + lightMql.removeEventListener('change', handleLightMqlChange); + } else if ('removeListener' in darkMql) { + darkMql.removeListener(handleDarkMqlChange); + lightMql.removeListener(handleLightMqlChange); + } + + darkMql = undefined; + lightMql = undefined; + } + + let managable = true; + function useOsTheme() { + /* istanbul ignore next */ + if (!supportMatchMedia) { + return vue.readonly(osTheme); + } + + if (usedCount === 0) init(); + + if (managable && (managable = hasInstance())) { + vue.onBeforeMount(() => { + usedCount += 1; + }); + vue.onBeforeUnmount(() => { + usedCount -= 1; + if (usedCount === 0) clean(); + }); + } + + return vue.readonly(osTheme); + } + + function useMergedState(controlledStateRef, uncontrolledStateRef) { + vue.watch(controlledStateRef, value => { + if (value !== undefined) { + uncontrolledStateRef.value = value; + } + }); + return vue.computed(() => { + if (controlledStateRef.value === undefined) { + return uncontrolledStateRef.value; + } + + return controlledStateRef.value; + }); + } + + function isMounted() { + const isMounted = vue.ref(false); + vue.onMounted(() => { + isMounted.value = true; + }); + return vue.readonly(isMounted); + } + + function useCompitable(reactive, keys) { + // @ts-expect-error + return vue.computed(() => { + for (const key of keys) { + if (reactive[key] !== undefined) return reactive[key]; + } + + return reactive[keys[keys.length - 1]]; + }); + } + + const isIos = (typeof window === 'undefined' ? false : /iPad|iPhone|iPod/.test(navigator.platform) || navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1) && // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions + !window.MSStream; + function useIsIos() { + return isIos; + } + + /* eslint-disable @typescript-eslint/consistent-type-assertions */ + const defaultBreakpointOptions = { + // mobile + // 0 ~ 640 doesn't mean it should display well in all the range, + // but means you should treat it like a mobile phone.) + xs: 0, + s: 640, + m: 1024, + l: 1280, + xl: 1536, + '2xl': 1920 // normal desktop display + + }; + + function createMediaQuery(screenWidth) { + return `(min-width: ${screenWidth}px)`; + } + + const mqlMap = {}; + + function useBreakpoints() { + let screens = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultBreakpointOptions; + if (!isBrowser$1) return vue.computed(() => []); // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions + + if (typeof window.matchMedia !== 'function') return vue.computed(() => []); + const breakpointStatusRef = vue.ref({}); + const breakpoints = Object.keys(screens); + + const updateBreakpoints = (e, breakpointName) => { + if (e.matches) breakpointStatusRef.value[breakpointName] = true;else breakpointStatusRef.value[breakpointName] = false; + }; + + breakpoints.forEach(key => { + const breakpointValue = screens[key]; + let mql; + let cbs; + + if (mqlMap[breakpointValue] === undefined) { + mql = window.matchMedia(createMediaQuery(breakpointValue)); // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions + + if (mql.addEventListener) { + mql.addEventListener('change', e => { + cbs.forEach(cb => { + cb(e, key); + }); + }); // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions + } else if (mql.addListener) { + mql.addListener(e => { + cbs.forEach(cb => { + cb(e, key); + }); + }); + } + + cbs = new Set(); + mqlMap[breakpointValue] = { + mql, + cbs + }; + } else { + mql = mqlMap[breakpointValue].mql; + cbs = mqlMap[breakpointValue].cbs; + } + + cbs.add(updateBreakpoints); + + if (mql.matches) { + cbs.forEach(cb => { + cb(mql, key); + }); + } + }); + vue.onBeforeUnmount(() => { + breakpoints.forEach(breakpoint => { + const { + cbs + } = mqlMap[screens[breakpoint]]; + + if (cbs.has(updateBreakpoints)) { + cbs.delete(updateBreakpoints); + } + }); + }); + return vue.computed(() => { + const { + value + } = breakpointStatusRef; + return breakpoints.filter(key => value[key]); + }); + } + + function useKeyboard$1() { + let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + let enabledRef = arguments.length > 1 ? arguments[1] : undefined; + const state = vue.reactive({ + ctrl: false, + command: false, + win: false, + shift: false, + tab: false + }); + const { + keydown, + keyup + } = options; + + const keydownHandler = e => { + switch (e.key) { + case 'Control': + state.ctrl = true; + break; + + case 'Meta': + state.command = true; + state.win = true; + break; + + case 'Shift': + state.shift = true; + break; + + case 'Tab': + state.tab = true; + break; + } + + if (keydown !== undefined) { + Object.keys(keydown).forEach(key => { + if (key !== e.key) return; + const handler = keydown[key]; + + if (typeof handler === 'function') { + handler(e); + } else { + const { + stop = false, + prevent = false + } = handler; + if (stop) e.stopPropagation(); + if (prevent) e.preventDefault(); + handler.handler(e); + } + }); + } + }; + + const keyupHandler = e => { + switch (e.key) { + case 'Control': + state.ctrl = false; + break; + + case 'Meta': + state.command = false; + state.win = false; + break; + + case 'Shift': + state.shift = false; + break; + + case 'Tab': + state.tab = false; + break; + } + + if (keyup !== undefined) { + Object.keys(keyup).forEach(key => { + if (key !== e.key) return; + const handler = keyup[key]; + + if (typeof handler === 'function') { + handler(e); + } else { + const { + stop = false, + prevent = false + } = handler; + if (stop) e.stopPropagation(); + if (prevent) e.preventDefault(); + handler.handler(e); + } + }); + } + }; + + const setup = () => { + if (enabledRef === undefined || enabledRef.value) { + on('keydown', document, keydownHandler); + on('keyup', document, keyupHandler); + } + + if (enabledRef !== undefined) { + vue.watch(enabledRef, value => { + if (value) { + on('keydown', document, keydownHandler); + on('keyup', document, keyupHandler); + } else { + off('keydown', document, keydownHandler); + off('keyup', document, keyupHandler); + } + }); + } + }; + + if (hasInstance()) { + vue.onBeforeMount(setup); + vue.onBeforeUnmount(() => { + if (enabledRef === undefined || enabledRef.value) { + off('keydown', document, keydownHandler); + off('keyup', document, keyupHandler); + } + }); + } else { + setup(); + } + + return vue.readonly(state); + } + + const internalSelectionMenuInjectionKey = createInjectionKey("n-internal-select-menu"); + const internalSelectionMenuBodyInjectionKey = createInjectionKey("n-internal-select-menu-body"); + + const modalBodyInjectionKey = createInjectionKey("n-modal-body"); + const modalInjectionKey = createInjectionKey("n-modal"); + + const drawerBodyInjectionKey = createInjectionKey("n-drawer-body"); + const drawerInjectionKey = createInjectionKey("n-drawer"); + + const popoverBodyInjectionKey = createInjectionKey("n-popover-body"); + + const teleportDisabled = "__disabled__"; + + function useAdjustedTo(props) { + const modal = vue.inject(modalBodyInjectionKey, null); + const drawer = vue.inject(drawerBodyInjectionKey, null); + const popover = vue.inject(popoverBodyInjectionKey, null); + const selectMenu = vue.inject(internalSelectionMenuBodyInjectionKey, null); + const fullscreenElementRef = vue.ref(); + + if (typeof document !== "undefined") { + fullscreenElementRef.value = document.fullscreenElement; + + const handleFullscreenChange = () => { + fullscreenElementRef.value = document.fullscreenElement; + }; + + vue.onMounted(() => { + on("fullscreenchange", document, handleFullscreenChange); + }); + vue.onBeforeUnmount(() => { + off("fullscreenchange", document, handleFullscreenChange); + }); + } + + return useMemo(() => { + const { + to + } = props; + + if (to !== void 0) { + if (to === false) return teleportDisabled; + if (to === true) return fullscreenElementRef.value || "body"; + return to; + } + + if (modal !== null && modal !== void 0 && modal.value) { + return modal.value.$el ?? modal.value; + } + + if (drawer !== null && drawer !== void 0 && drawer.value) return drawer.value; + if (popover !== null && popover !== void 0 && popover.value) return popover.value; + if (selectMenu !== null && selectMenu !== void 0 && selectMenu.value) return selectMenu.value; + return to ?? (fullscreenElementRef.value || "body"); + }); + } + + useAdjustedTo.tdkey = teleportDisabled; + useAdjustedTo.propTo = { + type: [String, Object, Boolean], + default: void 0 + }; + + let houdiniRegistered = false; + function useHoudini() { + if (!isBrowser$2) return; + if (!window.CSS) return; + + if (!houdiniRegistered) { + var _window; + + houdiniRegistered = true; + + if ("registerProperty" in ((_window = window) === null || _window === void 0 ? void 0 : _window.CSS)) { + try { + ; + CSS.registerProperty({ + name: "--n-color-start", + syntax: "", + inherits: false, + initialValue: "#0000" + }); + CSS.registerProperty({ + name: "--n-color-end", + syntax: "", + inherits: false, + initialValue: "#0000" + }); + } catch (e) {} + } + } + } + + function getSlot(scope, slots) { + let slotName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'default'; + const slot = slots[slotName]; + + if (slot === undefined) { + throw new Error(`[vueuc/${scope}]: slot[${slotName}] is empty.`); + } + + return slot(); + } // o(n) flatten + + function flatten$2(vNodes) { + let filterCommentNode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + let result = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : []; + vNodes.forEach(vNode => { + if (vNode === null) return; + + if (typeof vNode !== 'object') { + if (typeof vNode === 'string' || typeof vNode === 'number') { + result.push(vue.createTextVNode(String(vNode))); + } + + return; + } + + if (Array.isArray(vNode)) { + flatten$2(vNode, filterCommentNode, result); + return; + } + + if (vNode.type === vue.Fragment) { + if (vNode.children === null) return; + + if (Array.isArray(vNode.children)) { + flatten$2(vNode.children, filterCommentNode, result); + } // rawSlot + + } else if (vNode.type !== vue.Comment) { + result.push(vNode); + } + }); + return result; + } + function getFirstVNode(scope, slots) { + let slotName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'default'; + const slot = slots[slotName]; + + if (slot === undefined) { + throw new Error(`[vueuc/${scope}]: slot[${slotName}] is empty.`); + } + + const content = flatten$2(slot()); // vue will normalize the slot, so slot must be an array + + if (content.length === 1) { + return content[0]; + } else { + throw new Error(`[vueuc/${scope}]: slot[${slotName}] should have exactly one child.`); + } + } + + let viewMeasurer = null; + function ensureViewBoundingRect() { + if (viewMeasurer === null) { + viewMeasurer = document.getElementById('v-binder-view-measurer'); + + if (viewMeasurer === null) { + viewMeasurer = document.createElement('div'); + viewMeasurer.id = 'v-binder-view-measurer'; + const { + style + } = viewMeasurer; + style.position = 'fixed'; + style.left = '0'; + style.right = '0'; + style.top = '0'; + style.bottom = '0'; + style.pointerEvents = 'none'; + style.visibility = 'hidden'; + document.body.appendChild(viewMeasurer); + } + } + + return viewMeasurer.getBoundingClientRect(); + } + function getPointRect(x, y) { + const viewRect = ensureViewBoundingRect(); + return { + top: y, + left: x, + height: 0, + width: 0, + right: viewRect.width - x, + bottom: viewRect.height - y + }; + } + function getRect$1(el) { + const elRect = el.getBoundingClientRect(); + const viewRect = ensureViewBoundingRect(); + return { + left: elRect.left - viewRect.left, + top: elRect.top - viewRect.top, + bottom: viewRect.height + viewRect.top - elRect.bottom, + right: viewRect.width + viewRect.left - elRect.right, + width: elRect.width, + height: elRect.height + }; + } + function getParentNode(node) { + // document type + if (node.nodeType === 9) { + return null; + } + + return node.parentNode; + } + function getScrollParent(node) { + if (node === null) return null; + const parentNode = getParentNode(node); + + if (parentNode === null) { + return null; + } // Document + + + if (parentNode.nodeType === 9) { + return document; + } // Element + + + if (parentNode.nodeType === 1) { + // Firefox want us to check `-x` and `-y` variations as well + const { + overflow, + overflowX, + overflowY + } = getComputedStyle(parentNode); + + if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) { + return parentNode; + } + } + + return getScrollParent(parentNode); + } + + /* eslint-disable @typescript-eslint/no-non-null-assertion */ + const Binder = vue.defineComponent({ + name: 'Binder', + props: { + syncTargetWithParent: Boolean, + syncTarget: { + type: Boolean, + default: true + } + }, + + setup(props) { + var _a; + + vue.provide('VBinder', (_a = vue.getCurrentInstance()) === null || _a === void 0 ? void 0 : _a.proxy); + const VBinder = vue.inject('VBinder', null); + const targetRef = vue.ref(null); + /** + * If there's no nested vbinder, we can simply set the target ref. + * + * However, when it comes to: + * <- syncTarget = false + * + * Should hold target DOM ref, but can't get it directly from + * its VTarget. So if there are nested VBinder, we should: + * 1. Stop setting target DOM from level-1 VTarget + * 2. Set target DOM from level-2 VTarget + * For (1), we need `syncTarget` to `false` + * For (2), we need to set `syncTargetWithParent` to `true` on + * level-2 VBinder + * + * <- syncTargetWithParent = true + * target + * + * + * content1 + * + * + * + * content2 + * + * + */ + + const setTargetRef = el => { + targetRef.value = el; // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions + + if (VBinder && props.syncTargetWithParent) { + VBinder.setTargetRef(el); + } + }; // scroll related + + + let scrollableNodes = []; + + const ensureScrollListener = () => { + let cursor = targetRef.value; + + while (true) { + cursor = getScrollParent(cursor); + if (cursor === null) break; + scrollableNodes.push(cursor); + } + + for (const el of scrollableNodes) { + on('scroll', el, onScroll, true); + } + }; + + const removeScrollListeners = () => { + for (const el of scrollableNodes) { + off('scroll', el, onScroll, true); + } + + scrollableNodes = []; + }; + + const followerScrollListeners = new Set(); + + const addScrollListener = listener => { + if (followerScrollListeners.size === 0) { + ensureScrollListener(); + } + + if (!followerScrollListeners.has(listener)) { + followerScrollListeners.add(listener); + } + }; + + const removeScrollListener = listener => { + if (followerScrollListeners.has(listener)) { + followerScrollListeners.delete(listener); + } + + if (followerScrollListeners.size === 0) { + removeScrollListeners(); + } + }; + + const onScroll = () => { + beforeNextFrameOnce(onScrollRaf); + }; + + const onScrollRaf = () => { + followerScrollListeners.forEach(listener => listener()); + }; // resize related + + + const followerResizeListeners = new Set(); + + const addResizeListener = listener => { + if (followerResizeListeners.size === 0) { + on('resize', window, onResize); + } + + if (!followerResizeListeners.has(listener)) { + followerResizeListeners.add(listener); + } + }; + + const removeResizeListener = listener => { + if (followerResizeListeners.has(listener)) { + followerResizeListeners.delete(listener); + } + + if (followerResizeListeners.size === 0) { + off('resize', window, onResize); + } + }; + + const onResize = () => { + followerResizeListeners.forEach(listener => listener()); + }; + + vue.onBeforeUnmount(() => { + off('resize', window, onResize); + removeScrollListeners(); + }); + return { + targetRef, + setTargetRef, + addScrollListener, + removeScrollListener, + addResizeListener, + removeResizeListener + }; + }, + + render() { + return getSlot('binder', this.$slots); + } + + }); + var VBinder = Binder; + + /* eslint-disable @typescript-eslint/no-non-null-assertion */ + var VTarget = vue.defineComponent({ + name: 'Target', + + setup() { + const { + setTargetRef, + syncTarget + } = vue.inject('VBinder'); + const setTargetDirective = { + mounted: setTargetRef, + updated: setTargetRef + }; + return { + syncTarget, + setTargetDirective + }; + }, + + render() { + const { + syncTarget, + setTargetDirective + } = this; + /** + * If you are using VBinder as a child of VBinder, the children wouldn't be + * a valid DOM or component that can be attached to by directive. + * So we won't sync target on those kind of situation and control the + * target sync logic manually. + */ + + if (syncTarget) { + return vue.withDirectives(getFirstVNode('follower', this.$slots), [[setTargetDirective]]); + } + + return getFirstVNode('follower', this.$slots); + } + + }); + + const ctxKey$1 = '@@mmoContext'; + const mousemoveoutside = { + mounted(el, _ref) { + let { + value + } = _ref; + el[ctxKey$1] = { + handler: undefined + }; + + if (typeof value === 'function') { + el[ctxKey$1].handler = value; + on('mousemoveoutside', el, value); + } + }, + + updated(el, _ref2) { + let { + value + } = _ref2; + const ctx = el[ctxKey$1]; + + if (typeof value === 'function') { + if (ctx.handler) { + if (ctx.handler !== value) { + off('mousemoveoutside', el, ctx.handler); + ctx.handler = value; + on('mousemoveoutside', el, value); + } + } else { + el[ctxKey$1].handler = value; + on('mousemoveoutside', el, value); + } + } else { + if (ctx.handler) { + off('mousemoveoutside', el, ctx.handler); + ctx.handler = undefined; + } + } + }, + + unmounted(el) { + const { + handler + } = el[ctxKey$1]; + + if (handler) { + off('mousemoveoutside', el, handler); + } + + el[ctxKey$1].handler = undefined; + } + + }; + var mousemoveoutside$1 = mousemoveoutside; + + const ctxKey = '@@coContext'; + const clickoutside = { + mounted(el, _ref) { + let { + value, + modifiers + } = _ref; + el[ctxKey] = { + handler: undefined + }; + + if (typeof value === 'function') { + el[ctxKey].handler = value; + on('clickoutside', el, value, { + capture: modifiers.capture + }); + } + }, + + updated(el, _ref2) { + let { + value, + modifiers + } = _ref2; + const ctx = el[ctxKey]; + + if (typeof value === 'function') { + if (ctx.handler) { + if (ctx.handler !== value) { + off('clickoutside', el, ctx.handler, { + capture: modifiers.capture + }); + ctx.handler = value; + on('clickoutside', el, value, { + capture: modifiers.capture + }); + } + } else { + el[ctxKey].handler = value; + on('clickoutside', el, value, { + capture: modifiers.capture + }); + } + } else { + if (ctx.handler) { + off('clickoutside', el, ctx.handler, { + capture: modifiers.capture + }); + ctx.handler = undefined; + } + } + }, + + unmounted(el, _ref3) { + let { + modifiers + } = _ref3; + const { + handler + } = el[ctxKey]; + + if (handler) { + off('clickoutside', el, handler, { + capture: modifiers.capture + }); + } + + el[ctxKey].handler = undefined; + } + + }; + var clickoutside$1 = clickoutside; + + function warn$1(location, message) { + console.error(`[vdirs/${location}]: ${message}`); + } + + class ZIndexManager { + constructor() { + this.elementZIndex = new Map(); + this.nextZIndex = 2000; + } + + get elementCount() { + return this.elementZIndex.size; + } + + ensureZIndex(el, zIndex) { + const { + elementZIndex + } = this; + + if (zIndex !== undefined) { + el.style.zIndex = `${zIndex}`; + elementZIndex.delete(el); + return; + } + + const { + nextZIndex + } = this; + + if (elementZIndex.has(el)) { + const currentZIndex = elementZIndex.get(el); + if (currentZIndex + 1 === this.nextZIndex) return; + } + + el.style.zIndex = `${nextZIndex}`; + elementZIndex.set(el, nextZIndex); + this.nextZIndex = nextZIndex + 1; + this.squashState(); + } + + unregister(el, zIndex) { + const { + elementZIndex + } = this; + + if (elementZIndex.has(el)) { + elementZIndex.delete(el); + } else if (zIndex === undefined) { + warn$1('z-index-manager/unregister-element', 'Element not found when unregistering.'); + } + + this.squashState(); + } + + squashState() { + const { + elementCount + } = this; + + if (!elementCount) { + this.nextZIndex = 2000; + } + + if (this.nextZIndex - elementCount > 2500) this.rearrange(); + } + + rearrange() { + const elementZIndexPair = Array.from(this.elementZIndex.entries()); + elementZIndexPair.sort((pair1, pair2) => { + return pair1[1] - pair2[1]; + }); + this.nextZIndex = 2000; + elementZIndexPair.forEach(pair => { + const el = pair[0]; + const zIndex = this.nextZIndex++; + if (`${zIndex}` !== el.style.zIndex) el.style.zIndex = `${zIndex}`; + }); + } + + } + + var zIndexManager = new ZIndexManager(); + + const ctx = '@@ziContext'; // We don't expect manually bound zindex should be changed + + const zindexable = { + mounted(el, bindings) { + const { + value = {} + } = bindings; + const { + zIndex, + enabled + } = value; + el[ctx] = { + enabled: !!enabled, + initialized: false + }; + + if (enabled) { + zIndexManager.ensureZIndex(el, zIndex); + el[ctx].initialized = true; + } + }, + + updated(el, bindings) { + const { + value = {} + } = bindings; + const { + zIndex, + enabled + } = value; + const cachedEnabled = el[ctx].enabled; + + if (enabled && !cachedEnabled) { + zIndexManager.ensureZIndex(el, zIndex); + el[ctx].initialized = true; + } + + el[ctx].enabled = !!enabled; + }, + + unmounted(el, bindings) { + if (!el[ctx].initialized) return; + const { + value = {} + } = bindings; + const { + zIndex + } = value; + zIndexManager.unregister(el, zIndex); + } + + }; + var zindexable$1 = zindexable; + + const ssrContextKey = Symbol('@css-render/vue3-ssr'); + + function createStyleString(id, style) { + return ``; + } + + function ssrAdapter(id, style) { + const ssrContext = vue.inject(ssrContextKey, null); + + if (ssrContext === null) { + console.error('[css-render/vue3-ssr]: no ssr context found.'); + return; + } + + const { + styles, + ids + } = ssrContext; // we need to impl other options to make it behaves the same as the client side + + if (ids.has(id)) return; + + if (styles !== null) { + ids.add(id); + styles.push(createStyleString(id, style)); + } + } + + const isBrowser = typeof document !== 'undefined'; + function useSsrAdapter() { + if (isBrowser) return undefined; + const context = vue.inject(ssrContextKey, null); + if (context === null) return undefined; + return { + adapter: ssrAdapter, + context + }; + } + + function warn(location, message) { + console.error(`[vueuc/${location}]: ${message}`); + } + + const { + c + } = CssRender(); + const cssrAnchorMetaName$1 = 'vueuc-style'; + + function lowBit(n) { + return n & -n; + } + + class FinweckTree { + /** + * @param l length of the array + * @param min min value of the array + */ + constructor(l, min) { + this.l = l; + this.min = min; + const ft = new Array(l + 1); + + for (let i = 0; i < l + 1; ++i) { + ft[i] = 0; + } + + this.ft = ft; + } + /** + * Add arr[i] by n, start from 0 + * @param i the index of the element to be added + * @param n the value to be added + */ + + + add(i, n) { + if (n === 0) return; + const { + l, + ft + } = this; + i += 1; + + while (i <= l) { + ft[i] += n; + i += lowBit(i); + } + } + /** + * Get the value of index i + * @param i index + * @returns value of the index + */ + + + get(i) { + return this.sum(i + 1) - this.sum(i); + } + /** + * Get the sum of first i elements + * @param i count of head elements to be added + * @returns the sum of first i elements + */ + + + sum(i) { + if (i === undefined) i = this.l; + if (i <= 0) return 0; + const { + ft, + min, + l + } = this; + if (i > l) throw new Error('[FinweckTree.sum]: `i` is larger than length.'); + let ret = i * min; + + while (i > 0) { + ret += ft[i]; + i -= lowBit(i); + } + + return ret; + } + /** + * Get the largest count of head elements whose sum are <= threshold + * @param threshold + * @returns the largest count of head elements whose sum are <= threshold + */ + + + getBound(threshold) { + let l = 0; + let r = this.l; + + while (r > l) { + const m = Math.floor((l + r) / 2); + const sumM = this.sum(m); + + if (sumM > threshold) { + r = m; + continue; + } else if (sumM < threshold) { + if (l === m) { + if (this.sum(l + 1) <= threshold) return l + 1; + return m; + } + + l = m; + } else { + return m; + } + } + + return l; + } + + } + + function resolveTo(selector) { + if (typeof selector === 'string') { + return document.querySelector(selector); + } + + return selector(); + } + + var LazyTeleport = vue.defineComponent({ + name: 'LazyTeleport', + props: { + to: { + type: [String, Object], + default: undefined + }, + disabled: Boolean, + show: { + type: Boolean, + required: true + } + }, + + setup(props) { + return { + showTeleport: useFalseUntilTruthy(vue.toRef(props, 'show')), + mergedTo: vue.computed(() => { + const { + to + } = props; + return to !== null && to !== void 0 ? to : 'body'; + }) + }; + }, + + render() { + return this.showTeleport ? this.disabled ? getSlot('lazy-teleport', this.$slots) : vue.h(vue.Teleport, { + disabled: this.disabled, + to: this.mergedTo + }, getSlot('lazy-teleport', this.$slots)) : null; + } + + }); + + const oppositionPositions = { + top: 'bottom', + bottom: 'top', + left: 'right', + right: 'left' + }; + const oppositeAligns = { + start: 'end', + center: 'center', + end: 'start' + }; + const propToCompare = { + top: 'height', + bottom: 'height', + left: 'width', + right: 'width' + }; + const transformOrigins = { + 'bottom-start': 'top left', + bottom: 'top center', + 'bottom-end': 'top right', + 'top-start': 'bottom left', + top: 'bottom center', + 'top-end': 'bottom right', + 'right-start': 'top left', + right: 'center left', + 'right-end': 'bottom left', + 'left-start': 'top right', + left: 'center right', + 'left-end': 'bottom right' + }; + const overlapTransformOrigin = { + 'bottom-start': 'bottom left', + bottom: 'bottom center', + 'bottom-end': 'bottom right', + 'top-start': 'top left', + top: 'top center', + 'top-end': 'top right', + 'right-start': 'top right', + right: 'center right', + 'right-end': 'bottom right', + 'left-start': 'top left', + left: 'center left', + 'left-end': 'bottom left' + }; + const oppositeAlignCssPositionProps = { + 'bottom-start': 'right', + 'bottom-end': 'left', + 'top-start': 'right', + 'top-end': 'left', + 'right-start': 'bottom', + 'right-end': 'top', + 'left-start': 'bottom', + 'left-end': 'top' + }; + const keepOffsetDirection = { + top: true, + bottom: false, + left: true, + right: false // left-- + + }; + const cssPositionToOppositeAlign = { + top: 'end', + bottom: 'start', + left: 'end', + right: 'start' + }; + function getPlacementAndOffsetOfFollower(placement, targetRect, followerRect, shift, flip, overlap) { + if (!flip || overlap) { + return { + placement: placement, + top: 0, + left: 0 + }; + } + + const [position, align] = placement.split('-'); + let properAlign = align !== null && align !== void 0 ? align : 'center'; + let properOffset = { + top: 0, + left: 0 + }; + + const deriveOffset = (oppositeAlignCssSizeProp, alignCssPositionProp, offsetVertically) => { + let left = 0; + let top = 0; + const diff = followerRect[oppositeAlignCssSizeProp] - targetRect[alignCssPositionProp] - targetRect[oppositeAlignCssSizeProp]; + + if (diff > 0 && shift) { + if (offsetVertically) { + // screen border + // |-----------------------------------------| + // | | f | | + // | | o | | + // | | l | | + // | | l |---- | + // | | o |tar | | + // | | w |get | | + // | | e | | | + // | | r |---- | + // | ---- | + // |-----------------------------------------| + top = keepOffsetDirection[alignCssPositionProp] ? diff : -diff; + } else { + // screen border + // |----------------------------------------| + // | | + // | ---------- | + // | | target | | + // | ---------------------------------- + // | | follower | + // | ---------------------------------- + // | | + // |----------------------------------------| + left = keepOffsetDirection[alignCssPositionProp] ? diff : -diff; + } + } + + return { + left, + top + }; + }; + + const offsetVertically = position === 'left' || position === 'right'; // choose proper placement for non-center align + + if (properAlign !== 'center') { + const oppositeAlignCssPositionProp = oppositeAlignCssPositionProps[placement]; + const currentAlignCssPositionProp = oppositionPositions[oppositeAlignCssPositionProp]; + const oppositeAlignCssSizeProp = propToCompare[oppositeAlignCssPositionProp]; // if follower rect is larger than target rect in align direction + // ----------[ target ]---------| + // ----------[ follower ] + + if (followerRect[oppositeAlignCssSizeProp] > targetRect[oppositeAlignCssSizeProp]) { + if ( // current space is not enough + // ----------[ target ]---------| + // -------[ follower ] + targetRect[oppositeAlignCssPositionProp] + targetRect[oppositeAlignCssSizeProp] < followerRect[oppositeAlignCssSizeProp]) { + const followerOverTargetSize = (followerRect[oppositeAlignCssSizeProp] - targetRect[oppositeAlignCssSizeProp]) / 2; + + if (targetRect[oppositeAlignCssPositionProp] < followerOverTargetSize || targetRect[currentAlignCssPositionProp] < followerOverTargetSize) { + // opposite align has larger space + // -------[ target ]-----------| + // -------[ follower ]-| + if (targetRect[oppositeAlignCssPositionProp] < targetRect[currentAlignCssPositionProp]) { + properAlign = oppositeAligns[align]; + properOffset = deriveOffset(oppositeAlignCssSizeProp, currentAlignCssPositionProp, offsetVertically); + } else { + // ----------------[ target ]----| + // --------[ follower ]----| + properOffset = deriveOffset(oppositeAlignCssSizeProp, oppositeAlignCssPositionProp, offsetVertically); + } + } else { + // 'center' align is better + // ------------[ target ]--------| + // -------[ follower ]--| + properAlign = 'center'; + } + } + } else if (followerRect[oppositeAlignCssSizeProp] < targetRect[oppositeAlignCssSizeProp]) { + // TODO: maybe center is better + if (targetRect[currentAlignCssPositionProp] < 0 && // opposite align has larger space + // ------------[ target ] + // ----------------[follower] + targetRect[oppositeAlignCssPositionProp] > targetRect[currentAlignCssPositionProp]) { + properAlign = oppositeAligns[align]; + } + } + } else { + const possibleAlternativeAlignCssPositionProp1 = position === 'bottom' || position === 'top' ? 'left' : 'top'; + const possibleAlternativeAlignCssPositionProp2 = oppositionPositions[possibleAlternativeAlignCssPositionProp1]; + const alternativeAlignCssSizeProp = propToCompare[possibleAlternativeAlignCssPositionProp1]; + const followerOverTargetSize = (followerRect[alternativeAlignCssSizeProp] - targetRect[alternativeAlignCssSizeProp]) / 2; + + if ( // center is not enough + // ----------- [ target ]--| + // -------[ follower ] + targetRect[possibleAlternativeAlignCssPositionProp1] < followerOverTargetSize || targetRect[possibleAlternativeAlignCssPositionProp2] < followerOverTargetSize) { + // alternative 2 position's space is larger + if (targetRect[possibleAlternativeAlignCssPositionProp1] > targetRect[possibleAlternativeAlignCssPositionProp2]) { + properAlign = cssPositionToOppositeAlign[possibleAlternativeAlignCssPositionProp1]; + properOffset = deriveOffset(alternativeAlignCssSizeProp, possibleAlternativeAlignCssPositionProp1, offsetVertically); + } else { + // alternative 1 position's space is larger + properAlign = cssPositionToOppositeAlign[possibleAlternativeAlignCssPositionProp2]; + properOffset = deriveOffset(alternativeAlignCssSizeProp, possibleAlternativeAlignCssPositionProp2, offsetVertically); + } + } + } + + let properPosition = position; + + if ( // space is not enough + targetRect[position] < followerRect[propToCompare[position]] && // opposite position's space is larger + targetRect[position] < targetRect[oppositionPositions[position]]) { + properPosition = oppositionPositions[position]; + } + + return { + placement: properAlign !== 'center' ? `${properPosition}-${properAlign}` : properPosition, + left: properOffset.left, + top: properOffset.top + }; + } + function getProperTransformOrigin(placement, overlap) { + if (overlap) return overlapTransformOrigin[placement]; + return transformOrigins[placement]; + } // ------------ + // | offset | + // | | + // | [target] | + // | | + // ------------ + // TODO: refactor it to remove dup logic + + function getOffset$1(placement, offsetRect, targetRect, offsetTopToStandardPlacement, offsetLeftToStandardPlacement, overlap) { + if (overlap) { + switch (placement) { + case 'bottom-start': + return { + top: `${Math.round(targetRect.top - offsetRect.top + targetRect.height)}px`, + left: `${Math.round(targetRect.left - offsetRect.left)}px`, + transform: 'translateY(-100%)' + }; + + case 'bottom-end': + return { + top: `${Math.round(targetRect.top - offsetRect.top + targetRect.height)}px`, + left: `${Math.round(targetRect.left - offsetRect.left + targetRect.width)}px`, + transform: 'translateX(-100%) translateY(-100%)' + }; + + case 'top-start': + return { + top: `${Math.round(targetRect.top - offsetRect.top)}px`, + left: `${Math.round(targetRect.left - offsetRect.left)}px`, + transform: '' + }; + + case 'top-end': + return { + top: `${Math.round(targetRect.top - offsetRect.top)}px`, + left: `${Math.round(targetRect.left - offsetRect.left + targetRect.width)}px`, + transform: 'translateX(-100%)' + }; + + case 'right-start': + return { + top: `${Math.round(targetRect.top - offsetRect.top)}px`, + left: `${Math.round(targetRect.left - offsetRect.left + targetRect.width)}px`, + transform: 'translateX(-100%)' + }; + + case 'right-end': + return { + top: `${Math.round(targetRect.top - offsetRect.top + targetRect.height)}px`, + left: `${Math.round(targetRect.left - offsetRect.left + targetRect.width)}px`, + transform: 'translateX(-100%) translateY(-100%)' + }; + + case 'left-start': + return { + top: `${Math.round(targetRect.top - offsetRect.top)}px`, + left: `${Math.round(targetRect.left - offsetRect.left)}px`, + transform: '' + }; + + case 'left-end': + return { + top: `${Math.round(targetRect.top - offsetRect.top + targetRect.height)}px`, + left: `${Math.round(targetRect.left - offsetRect.left)}px`, + transform: 'translateY(-100%)' + }; + + case 'top': + return { + top: `${Math.round(targetRect.top - offsetRect.top)}px`, + left: `${Math.round(targetRect.left - offsetRect.left + targetRect.width / 2)}px`, + transform: 'translateX(-50%)' + }; + + case 'right': + return { + top: `${Math.round(targetRect.top - offsetRect.top + targetRect.height / 2)}px`, + left: `${Math.round(targetRect.left - offsetRect.left + targetRect.width)}px`, + transform: 'translateX(-100%) translateY(-50%)' + }; + + case 'left': + return { + top: `${Math.round(targetRect.top - offsetRect.top + targetRect.height / 2)}px`, + left: `${Math.round(targetRect.left - offsetRect.left)}px`, + transform: 'translateY(-50%)' + }; + + case 'bottom': + default: + return { + top: `${Math.round(targetRect.top - offsetRect.top + targetRect.height)}px`, + left: `${Math.round(targetRect.left - offsetRect.left + targetRect.width / 2)}px`, + transform: 'translateX(-50%) translateY(-100%)' + }; + } + } + + switch (placement) { + case 'bottom-start': + return { + top: `${Math.round(targetRect.top - offsetRect.top + targetRect.height + offsetTopToStandardPlacement)}px`, + left: `${Math.round(targetRect.left - offsetRect.left + offsetLeftToStandardPlacement)}px`, + transform: '' + }; + + case 'bottom-end': + return { + top: `${Math.round(targetRect.top - offsetRect.top + targetRect.height + offsetTopToStandardPlacement)}px`, + left: `${Math.round(targetRect.left - offsetRect.left + targetRect.width + offsetLeftToStandardPlacement)}px`, + transform: 'translateX(-100%)' + }; + + case 'top-start': + return { + top: `${Math.round(targetRect.top - offsetRect.top + offsetTopToStandardPlacement)}px`, + left: `${Math.round(targetRect.left - offsetRect.left + offsetLeftToStandardPlacement)}px`, + transform: 'translateY(-100%)' + }; + + case 'top-end': + return { + top: `${Math.round(targetRect.top - offsetRect.top + offsetTopToStandardPlacement)}px`, + left: `${Math.round(targetRect.left - offsetRect.left + targetRect.width + offsetLeftToStandardPlacement)}px`, + transform: 'translateX(-100%) translateY(-100%)' + }; + + case 'right-start': + return { + top: `${Math.round(targetRect.top - offsetRect.top + offsetTopToStandardPlacement)}px`, + left: `${Math.round(targetRect.left - offsetRect.left + targetRect.width + offsetLeftToStandardPlacement)}px`, + transform: '' + }; + + case 'right-end': + return { + top: `${Math.round(targetRect.top - offsetRect.top + targetRect.height + offsetTopToStandardPlacement)}px`, + left: `${Math.round(targetRect.left - offsetRect.left + targetRect.width + offsetLeftToStandardPlacement)}px`, + transform: 'translateY(-100%)' + }; + + case 'left-start': + return { + top: `${Math.round(targetRect.top - offsetRect.top + offsetTopToStandardPlacement)}px`, + left: `${Math.round(targetRect.left - offsetRect.left + offsetLeftToStandardPlacement)}px`, + transform: 'translateX(-100%)' + }; + + case 'left-end': + return { + top: `${Math.round(targetRect.top - offsetRect.top + targetRect.height + offsetTopToStandardPlacement)}px`, + left: `${Math.round(targetRect.left - offsetRect.left + offsetLeftToStandardPlacement)}px`, + transform: 'translateX(-100%) translateY(-100%)' + }; + + case 'top': + return { + top: `${Math.round(targetRect.top - offsetRect.top + offsetTopToStandardPlacement)}px`, + left: `${Math.round(targetRect.left - offsetRect.left + targetRect.width / 2 + offsetLeftToStandardPlacement)}px`, + transform: 'translateY(-100%) translateX(-50%)' + }; + + case 'right': + return { + top: `${Math.round(targetRect.top - offsetRect.top + targetRect.height / 2 + offsetTopToStandardPlacement)}px`, + left: `${Math.round(targetRect.left - offsetRect.left + targetRect.width + offsetLeftToStandardPlacement)}px`, + transform: 'translateY(-50%)' + }; + + case 'left': + return { + top: `${Math.round(targetRect.top - offsetRect.top + targetRect.height / 2 + offsetTopToStandardPlacement)}px`, + left: `${Math.round(targetRect.left - offsetRect.left + offsetLeftToStandardPlacement)}px`, + transform: 'translateY(-50%) translateX(-100%)' + }; + + case 'bottom': + default: + return { + top: `${Math.round(targetRect.top - offsetRect.top + targetRect.height + offsetTopToStandardPlacement)}px`, + left: `${Math.round(targetRect.left - offsetRect.left + targetRect.width / 2 + offsetLeftToStandardPlacement)}px`, + transform: 'translateX(-50%)' + }; + } + } + + /* eslint-disable @typescript-eslint/no-non-null-assertion */ + const style$1B = c([c('.v-binder-follower-container', { + position: 'absolute', + left: '0', + right: '0', + top: '0', + height: '0', + pointerEvents: 'none', + zIndex: 'auto' + }), c('.v-binder-follower-content', { + position: 'absolute', + zIndex: 'auto' + }, [c('> *', { + pointerEvents: 'all' + })])]); + var VFollower = vue.defineComponent({ + name: 'Follower', + inheritAttrs: false, + props: { + show: Boolean, + enabled: { + type: Boolean, + default: undefined + }, + placement: { + type: String, + default: 'bottom' + }, + syncTrigger: { + type: Array, + default: ['resize', 'scroll'] + }, + to: [String, Object], + flip: { + type: Boolean, + default: true + }, + internalShift: Boolean, + x: Number, + y: Number, + width: String, + minWidth: String, + containerClass: String, + teleportDisabled: Boolean, + zindexable: { + type: Boolean, + default: true + }, + zIndex: Number, + overlap: Boolean + }, + + setup(props) { + const VBinder = vue.inject('VBinder'); + const mergedEnabledRef = useMemo(() => { + return props.enabled !== undefined ? props.enabled : props.show; + }); + const followerRef = vue.ref(null); + const offsetContainerRef = vue.ref(null); + + const ensureListeners = () => { + const { + syncTrigger + } = props; + + if (syncTrigger.includes('scroll')) { + VBinder.addScrollListener(syncPosition); + } + + if (syncTrigger.includes('resize')) { + VBinder.addResizeListener(syncPosition); + } + }; + + const removeListeners = () => { + VBinder.removeScrollListener(syncPosition); + VBinder.removeResizeListener(syncPosition); + }; + + vue.onMounted(() => { + if (mergedEnabledRef.value) { + syncPosition(); + ensureListeners(); + } + }); + const ssrAdapter = useSsrAdapter(); + style$1B.mount({ + id: 'vueuc/binder', + head: true, + anchorMetaName: cssrAnchorMetaName$1, + ssr: ssrAdapter + }); + vue.onBeforeUnmount(() => { + removeListeners(); + }); + onFontsReady(() => { + if (mergedEnabledRef.value) { + syncPosition(); + } + }); + + const syncPosition = () => { + if (!mergedEnabledRef.value) { + return; + } + + const follower = followerRef.value; // sometimes watched props change before its dom is ready + // for example: show=false, x=undefined, y=undefined + // show=true, x=0, y=0 + // will cause error + // I may optimize the watch start point later + + if (follower === null) return; + const target = VBinder.targetRef; + const { + x, + y, + overlap + } = props; + const targetRect = x !== undefined && y !== undefined ? getPointRect(x, y) : getRect$1(target); + follower.style.setProperty('--v-target-width', `${Math.round(targetRect.width)}px`); + follower.style.setProperty('--v-target-height', `${Math.round(targetRect.height)}px`); + const { + width, + minWidth, + placement, + internalShift, + flip + } = props; + follower.setAttribute('v-placement', placement); + + if (overlap) { + follower.setAttribute('v-overlap', ''); + } else { + follower.removeAttribute('v-overlap'); + } + + const { + style + } = follower; + + if (width === 'target') { + style.width = `${targetRect.width}px`; + } else if (width !== undefined) { + style.width = width; + } else { + style.width = ''; + } + + if (minWidth === 'target') { + style.minWidth = `${targetRect.width}px`; + } else if (minWidth !== undefined) { + style.minWidth = minWidth; + } else { + style.minWidth = ''; + } + + const followerRect = getRect$1(follower); + const offsetContainerRect = getRect$1(offsetContainerRef.value); + const { + left: offsetLeftToStandardPlacement, + top: offsetTopToStandardPlacement, + placement: properPlacement + } = getPlacementAndOffsetOfFollower(placement, targetRect, followerRect, internalShift, flip, overlap); + const properTransformOrigin = getProperTransformOrigin(properPlacement, overlap); + const { + left, + top, + transform + } = getOffset$1(properPlacement, offsetContainerRect, targetRect, offsetTopToStandardPlacement, offsetLeftToStandardPlacement, overlap); // we assume that the content size doesn't change after flip, + // nor we need to make sync logic more complex + + follower.setAttribute('v-placement', properPlacement); + follower.style.setProperty('--v-offset-left', `${Math.round(offsetLeftToStandardPlacement)}px`); + follower.style.setProperty('--v-offset-top', `${Math.round(offsetTopToStandardPlacement)}px`); + follower.style.transform = `translateX(${left}) translateY(${top}) ${transform}`; + follower.style.setProperty('--v-transform-origin', properTransformOrigin); + follower.style.transformOrigin = properTransformOrigin; + }; + + vue.watch(mergedEnabledRef, value => { + if (value) { + ensureListeners(); + syncOnNextTick(); + } else { + removeListeners(); + } + }); + + const syncOnNextTick = () => { + vue.nextTick().then(syncPosition).catch(e => console.error(e)); + }; + + ['placement', 'x', 'y', 'internalShift', 'flip', 'width', 'overlap', 'minWidth'].forEach(prop => { + vue.watch(vue.toRef(props, prop), syncPosition); + }); + ['teleportDisabled'].forEach(prop => { + vue.watch(vue.toRef(props, prop), syncOnNextTick); + }); + vue.watch(vue.toRef(props, 'syncTrigger'), value => { + if (!value.includes('resize')) { + VBinder.removeResizeListener(syncPosition); + } else { + VBinder.addResizeListener(syncPosition); + } + + if (!value.includes('scroll')) { + VBinder.removeScrollListener(syncPosition); + } else { + VBinder.addScrollListener(syncPosition); + } + }); + const isMountedRef = isMounted(); + const mergedToRef = useMemo(() => { + const { + to + } = props; + if (to !== undefined) return to; + + if (isMountedRef.value) { + // TODO: find proper container + return undefined; + } + + return undefined; + }); + return { + VBinder, + mergedEnabled: mergedEnabledRef, + offsetContainerRef, + followerRef, + mergedTo: mergedToRef, + syncPosition + }; + }, + + render() { + return vue.h(LazyTeleport, { + show: this.show, + to: this.mergedTo, + disabled: this.teleportDisabled + }, { + default: () => { + var _a, _b; + + const vNode = vue.h('div', { + class: ['v-binder-follower-container', this.containerClass], + ref: 'offsetContainerRef' + }, [vue.h('div', { + class: 'v-binder-follower-content', + ref: 'followerRef' + }, (_b = (_a = this.$slots).default) === null || _b === void 0 ? void 0 : _b.call(_a))]); + + if (this.zindexable) { + return vue.withDirectives(vNode, [[zindexable$1, { + enabled: this.mergedEnabled, + zIndex: this.zIndex + }]]); + } + + return vNode; + } + }); + } + + }); + + var resizeObservers = []; + + var hasActiveObservations = function () { + return resizeObservers.some(function (ro) { + return ro.activeTargets.length > 0; + }); + }; + + var hasSkippedObservations = function () { + return resizeObservers.some(function (ro) { + return ro.skippedTargets.length > 0; + }); + }; + + var msg = 'ResizeObserver loop completed with undelivered notifications.'; + + var deliverResizeLoopError = function () { + var event; + + if (typeof ErrorEvent === 'function') { + event = new ErrorEvent('error', { + message: msg + }); + } else { + event = document.createEvent('Event'); + event.initEvent('error', false, false); + event.message = msg; + } + + window.dispatchEvent(event); + }; + + var ResizeObserverBoxOptions; + + (function (ResizeObserverBoxOptions) { + ResizeObserverBoxOptions["BORDER_BOX"] = "border-box"; + ResizeObserverBoxOptions["CONTENT_BOX"] = "content-box"; + ResizeObserverBoxOptions["DEVICE_PIXEL_CONTENT_BOX"] = "device-pixel-content-box"; + })(ResizeObserverBoxOptions || (ResizeObserverBoxOptions = {})); + + var freeze = function (obj) { + return Object.freeze(obj); + }; + + var ResizeObserverSize = function () { + function ResizeObserverSize(inlineSize, blockSize) { + this.inlineSize = inlineSize; + this.blockSize = blockSize; + freeze(this); + } + + return ResizeObserverSize; + }(); + + var DOMRectReadOnly = function () { + function DOMRectReadOnly(x, y, width, height) { + this.x = x; + this.y = y; + this.width = width; + this.height = height; + this.top = this.y; + this.left = this.x; + this.bottom = this.top + this.height; + this.right = this.left + this.width; + return freeze(this); + } + + DOMRectReadOnly.prototype.toJSON = function () { + var _a = this, + x = _a.x, + y = _a.y, + top = _a.top, + right = _a.right, + bottom = _a.bottom, + left = _a.left, + width = _a.width, + height = _a.height; + + return { + x: x, + y: y, + top: top, + right: right, + bottom: bottom, + left: left, + width: width, + height: height + }; + }; + + DOMRectReadOnly.fromRect = function (rectangle) { + return new DOMRectReadOnly(rectangle.x, rectangle.y, rectangle.width, rectangle.height); + }; + + return DOMRectReadOnly; + }(); + + var isSVG = function (target) { + return target instanceof SVGElement && 'getBBox' in target; + }; + + var isHidden = function (target) { + if (isSVG(target)) { + var _a = target.getBBox(), + width = _a.width, + height = _a.height; + + return !width && !height; + } + + var _b = target, + offsetWidth = _b.offsetWidth, + offsetHeight = _b.offsetHeight; + return !(offsetWidth || offsetHeight || target.getClientRects().length); + }; + + var isElement = function (obj) { + var _a, _b; + + if (obj instanceof Element) { + return true; + } + + var scope = (_b = (_a = obj) === null || _a === void 0 ? void 0 : _a.ownerDocument) === null || _b === void 0 ? void 0 : _b.defaultView; + return !!(scope && obj instanceof scope.Element); + }; + + var isReplacedElement = function (target) { + switch (target.tagName) { + case 'INPUT': + if (target.type !== 'image') { + break; + } + + case 'VIDEO': + case 'AUDIO': + case 'EMBED': + case 'OBJECT': + case 'CANVAS': + case 'IFRAME': + case 'IMG': + return true; + } + + return false; + }; + + var global$1 = typeof window !== 'undefined' ? window : {}; + + var cache = new WeakMap(); + var scrollRegexp = /auto|scroll/; + var verticalRegexp = /^tb|vertical/; + var IE = /msie|trident/i.test(global$1.navigator && global$1.navigator.userAgent); + + var parseDimension = function (pixel) { + return parseFloat(pixel || '0'); + }; + + var size = function (inlineSize, blockSize, switchSizes) { + if (inlineSize === void 0) { + inlineSize = 0; + } + + if (blockSize === void 0) { + blockSize = 0; + } + + if (switchSizes === void 0) { + switchSizes = false; + } + + return new ResizeObserverSize((switchSizes ? blockSize : inlineSize) || 0, (switchSizes ? inlineSize : blockSize) || 0); + }; + + var zeroBoxes = freeze({ + devicePixelContentBoxSize: size(), + borderBoxSize: size(), + contentBoxSize: size(), + contentRect: new DOMRectReadOnly(0, 0, 0, 0) + }); + + var calculateBoxSizes = function (target, forceRecalculation) { + if (forceRecalculation === void 0) { + forceRecalculation = false; + } + + if (cache.has(target) && !forceRecalculation) { + return cache.get(target); + } + + if (isHidden(target)) { + cache.set(target, zeroBoxes); + return zeroBoxes; + } + + var cs = getComputedStyle(target); + var svg = isSVG(target) && target.ownerSVGElement && target.getBBox(); + var removePadding = !IE && cs.boxSizing === 'border-box'; + var switchSizes = verticalRegexp.test(cs.writingMode || ''); + var canScrollVertically = !svg && scrollRegexp.test(cs.overflowY || ''); + var canScrollHorizontally = !svg && scrollRegexp.test(cs.overflowX || ''); + var paddingTop = svg ? 0 : parseDimension(cs.paddingTop); + var paddingRight = svg ? 0 : parseDimension(cs.paddingRight); + var paddingBottom = svg ? 0 : parseDimension(cs.paddingBottom); + var paddingLeft = svg ? 0 : parseDimension(cs.paddingLeft); + var borderTop = svg ? 0 : parseDimension(cs.borderTopWidth); + var borderRight = svg ? 0 : parseDimension(cs.borderRightWidth); + var borderBottom = svg ? 0 : parseDimension(cs.borderBottomWidth); + var borderLeft = svg ? 0 : parseDimension(cs.borderLeftWidth); + var horizontalPadding = paddingLeft + paddingRight; + var verticalPadding = paddingTop + paddingBottom; + var horizontalBorderArea = borderLeft + borderRight; + var verticalBorderArea = borderTop + borderBottom; + var horizontalScrollbarThickness = !canScrollHorizontally ? 0 : target.offsetHeight - verticalBorderArea - target.clientHeight; + var verticalScrollbarThickness = !canScrollVertically ? 0 : target.offsetWidth - horizontalBorderArea - target.clientWidth; + var widthReduction = removePadding ? horizontalPadding + horizontalBorderArea : 0; + var heightReduction = removePadding ? verticalPadding + verticalBorderArea : 0; + var contentWidth = svg ? svg.width : parseDimension(cs.width) - widthReduction - verticalScrollbarThickness; + var contentHeight = svg ? svg.height : parseDimension(cs.height) - heightReduction - horizontalScrollbarThickness; + var borderBoxWidth = contentWidth + horizontalPadding + verticalScrollbarThickness + horizontalBorderArea; + var borderBoxHeight = contentHeight + verticalPadding + horizontalScrollbarThickness + verticalBorderArea; + var boxes = freeze({ + devicePixelContentBoxSize: size(Math.round(contentWidth * devicePixelRatio), Math.round(contentHeight * devicePixelRatio), switchSizes), + borderBoxSize: size(borderBoxWidth, borderBoxHeight, switchSizes), + contentBoxSize: size(contentWidth, contentHeight, switchSizes), + contentRect: new DOMRectReadOnly(paddingLeft, paddingTop, contentWidth, contentHeight) + }); + cache.set(target, boxes); + return boxes; + }; + + var calculateBoxSize = function (target, observedBox, forceRecalculation) { + var _a = calculateBoxSizes(target, forceRecalculation), + borderBoxSize = _a.borderBoxSize, + contentBoxSize = _a.contentBoxSize, + devicePixelContentBoxSize = _a.devicePixelContentBoxSize; + + switch (observedBox) { + case ResizeObserverBoxOptions.DEVICE_PIXEL_CONTENT_BOX: + return devicePixelContentBoxSize; + + case ResizeObserverBoxOptions.BORDER_BOX: + return borderBoxSize; + + default: + return contentBoxSize; + } + }; + + var ResizeObserverEntry = function () { + function ResizeObserverEntry(target) { + var boxes = calculateBoxSizes(target); + this.target = target; + this.contentRect = boxes.contentRect; + this.borderBoxSize = freeze([boxes.borderBoxSize]); + this.contentBoxSize = freeze([boxes.contentBoxSize]); + this.devicePixelContentBoxSize = freeze([boxes.devicePixelContentBoxSize]); + } + + return ResizeObserverEntry; + }(); + + var calculateDepthForNode = function (node) { + if (isHidden(node)) { + return Infinity; + } + + var depth = 0; + var parent = node.parentNode; + + while (parent) { + depth += 1; + parent = parent.parentNode; + } + + return depth; + }; + + var broadcastActiveObservations = function () { + var shallowestDepth = Infinity; + var callbacks = []; + resizeObservers.forEach(function processObserver(ro) { + if (ro.activeTargets.length === 0) { + return; + } + + var entries = []; + ro.activeTargets.forEach(function processTarget(ot) { + var entry = new ResizeObserverEntry(ot.target); + var targetDepth = calculateDepthForNode(ot.target); + entries.push(entry); + ot.lastReportedSize = calculateBoxSize(ot.target, ot.observedBox); + + if (targetDepth < shallowestDepth) { + shallowestDepth = targetDepth; + } + }); + callbacks.push(function resizeObserverCallback() { + ro.callback.call(ro.observer, entries, ro.observer); + }); + ro.activeTargets.splice(0, ro.activeTargets.length); + }); + + for (var _i = 0, callbacks_1 = callbacks; _i < callbacks_1.length; _i++) { + var callback = callbacks_1[_i]; + callback(); + } + + return shallowestDepth; + }; + + var gatherActiveObservationsAtDepth = function (depth) { + resizeObservers.forEach(function processObserver(ro) { + ro.activeTargets.splice(0, ro.activeTargets.length); + ro.skippedTargets.splice(0, ro.skippedTargets.length); + ro.observationTargets.forEach(function processTarget(ot) { + if (ot.isActive()) { + if (calculateDepthForNode(ot.target) > depth) { + ro.activeTargets.push(ot); + } else { + ro.skippedTargets.push(ot); + } + } + }); + }); + }; + + var process$1 = function () { + var depth = 0; + gatherActiveObservationsAtDepth(depth); + + while (hasActiveObservations()) { + depth = broadcastActiveObservations(); + gatherActiveObservationsAtDepth(depth); + } + + if (hasSkippedObservations()) { + deliverResizeLoopError(); + } + + return depth > 0; + }; + + var trigger; + var callbacks = []; + + var notify = function () { + return callbacks.splice(0).forEach(function (cb) { + return cb(); + }); + }; + + var queueMicroTask = function (callback) { + if (!trigger) { + var toggle_1 = 0; + var el_1 = document.createTextNode(''); + var config = { + characterData: true + }; + new MutationObserver(function () { + return notify(); + }).observe(el_1, config); + + trigger = function () { + el_1.textContent = "" + (toggle_1 ? toggle_1-- : toggle_1++); + }; + } + + callbacks.push(callback); + trigger(); + }; + + var queueResizeObserver = function (cb) { + queueMicroTask(function ResizeObserver() { + requestAnimationFrame(cb); + }); + }; + + var watching = 0; + + var isWatching = function () { + return !!watching; + }; + + var CATCH_PERIOD = 250; + var observerConfig = { + attributes: true, + characterData: true, + childList: true, + subtree: true + }; + var events = ['resize', 'load', 'transitionend', 'animationend', 'animationstart', 'animationiteration', 'keyup', 'keydown', 'mouseup', 'mousedown', 'mouseover', 'mouseout', 'blur', 'focus']; + + var time$1 = function (timeout) { + if (timeout === void 0) { + timeout = 0; + } + + return Date.now() + timeout; + }; + + var scheduled = false; + + var Scheduler = function () { + function Scheduler() { + var _this = this; + + this.stopped = true; + + this.listener = function () { + return _this.schedule(); + }; + } + + Scheduler.prototype.run = function (timeout) { + var _this = this; + + if (timeout === void 0) { + timeout = CATCH_PERIOD; + } + + if (scheduled) { + return; + } + + scheduled = true; + var until = time$1(timeout); + queueResizeObserver(function () { + var elementsHaveResized = false; + + try { + elementsHaveResized = process$1(); + } finally { + scheduled = false; + timeout = until - time$1(); + + if (!isWatching()) { + return; + } + + if (elementsHaveResized) { + _this.run(1000); + } else if (timeout > 0) { + _this.run(timeout); + } else { + _this.start(); + } + } + }); + }; + + Scheduler.prototype.schedule = function () { + this.stop(); + this.run(); + }; + + Scheduler.prototype.observe = function () { + var _this = this; + + var cb = function () { + return _this.observer && _this.observer.observe(document.body, observerConfig); + }; + + document.body ? cb() : global$1.addEventListener('DOMContentLoaded', cb); + }; + + Scheduler.prototype.start = function () { + var _this = this; + + if (this.stopped) { + this.stopped = false; + this.observer = new MutationObserver(this.listener); + this.observe(); + events.forEach(function (name) { + return global$1.addEventListener(name, _this.listener, true); + }); + } + }; + + Scheduler.prototype.stop = function () { + var _this = this; + + if (!this.stopped) { + this.observer && this.observer.disconnect(); + events.forEach(function (name) { + return global$1.removeEventListener(name, _this.listener, true); + }); + this.stopped = true; + } + }; + + return Scheduler; + }(); + + var scheduler = new Scheduler(); + + var updateCount = function (n) { + !watching && n > 0 && scheduler.start(); + watching += n; + !watching && scheduler.stop(); + }; + + var skipNotifyOnElement = function (target) { + return !isSVG(target) && !isReplacedElement(target) && getComputedStyle(target).display === 'inline'; + }; + + var ResizeObservation = function () { + function ResizeObservation(target, observedBox) { + this.target = target; + this.observedBox = observedBox || ResizeObserverBoxOptions.CONTENT_BOX; + this.lastReportedSize = { + inlineSize: 0, + blockSize: 0 + }; + } + + ResizeObservation.prototype.isActive = function () { + var size = calculateBoxSize(this.target, this.observedBox, true); + + if (skipNotifyOnElement(this.target)) { + this.lastReportedSize = size; + } + + if (this.lastReportedSize.inlineSize !== size.inlineSize || this.lastReportedSize.blockSize !== size.blockSize) { + return true; + } + + return false; + }; + + return ResizeObservation; + }(); + + var ResizeObserverDetail = function () { + function ResizeObserverDetail(resizeObserver, callback) { + this.activeTargets = []; + this.skippedTargets = []; + this.observationTargets = []; + this.observer = resizeObserver; + this.callback = callback; + } + + return ResizeObserverDetail; + }(); + + var observerMap = new WeakMap(); + + var getObservationIndex = function (observationTargets, target) { + for (var i = 0; i < observationTargets.length; i += 1) { + if (observationTargets[i].target === target) { + return i; + } + } + + return -1; + }; + + var ResizeObserverController = function () { + function ResizeObserverController() {} + + ResizeObserverController.connect = function (resizeObserver, callback) { + var detail = new ResizeObserverDetail(resizeObserver, callback); + observerMap.set(resizeObserver, detail); + }; + + ResizeObserverController.observe = function (resizeObserver, target, options) { + var detail = observerMap.get(resizeObserver); + var firstObservation = detail.observationTargets.length === 0; + + if (getObservationIndex(detail.observationTargets, target) < 0) { + firstObservation && resizeObservers.push(detail); + detail.observationTargets.push(new ResizeObservation(target, options && options.box)); + updateCount(1); + scheduler.schedule(); + } + }; + + ResizeObserverController.unobserve = function (resizeObserver, target) { + var detail = observerMap.get(resizeObserver); + var index = getObservationIndex(detail.observationTargets, target); + var lastObservation = detail.observationTargets.length === 1; + + if (index >= 0) { + lastObservation && resizeObservers.splice(resizeObservers.indexOf(detail), 1); + detail.observationTargets.splice(index, 1); + updateCount(-1); + } + }; + + ResizeObserverController.disconnect = function (resizeObserver) { + var _this = this; + + var detail = observerMap.get(resizeObserver); + detail.observationTargets.slice().forEach(function (ot) { + return _this.unobserve(resizeObserver, ot.target); + }); + detail.activeTargets.splice(0, detail.activeTargets.length); + }; + + return ResizeObserverController; + }(); + + var ResizeObserver = function () { + function ResizeObserver(callback) { + if (arguments.length === 0) { + throw new TypeError("Failed to construct 'ResizeObserver': 1 argument required, but only 0 present."); + } + + if (typeof callback !== 'function') { + throw new TypeError("Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function."); + } + + ResizeObserverController.connect(this, callback); + } + + ResizeObserver.prototype.observe = function (target, options) { + if (arguments.length === 0) { + throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present."); + } + + if (!isElement(target)) { + throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element"); + } + + ResizeObserverController.observe(this, target, options); + }; + + ResizeObserver.prototype.unobserve = function (target) { + if (arguments.length === 0) { + throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present."); + } + + if (!isElement(target)) { + throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element"); + } + + ResizeObserverController.unobserve(this, target); + }; + + ResizeObserver.prototype.disconnect = function () { + ResizeObserverController.disconnect(this); + }; + + ResizeObserver.toString = function () { + return 'function ResizeObserver () { [polyfill code] }'; + }; + + return ResizeObserver; + }(); + + class ResizeObserverDelegate { + constructor() { + this.handleResize = this.handleResize.bind(this); + this.observer = new ResizeObserver(this.handleResize); + this.elHandlersMap = new Map(); + } + + handleResize(entries) { + for (const entry of entries) { + const handler = this.elHandlersMap.get(entry.target); + + if (handler !== undefined) { + handler(entry); + } + } + } + + registerHandler(el, handler) { + this.elHandlersMap.set(el, handler); + this.observer.observe(el); + } + + unregisterHandler(el) { + if (!this.elHandlersMap.has(el)) { + return; + } + + this.elHandlersMap.delete(el); + this.observer.unobserve(el); + } + + } + + var resizeObserverManager = new ResizeObserverDelegate(); + + var VResizeObserver = vue.defineComponent({ + name: 'ResizeObserver', + props: { + onResize: Function + }, + + setup(props) { + let registered = false; // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + + const proxy = vue.getCurrentInstance().proxy; + + function handleResize(entry) { + const { + onResize + } = props; + if (onResize !== undefined) onResize(entry); + } + + vue.onMounted(() => { + const el = proxy.$el; + + if (el === undefined) { + warn('resize-observer', '$el does not exist.'); + return; + } + + if (el.nextElementSibling !== el.nextSibling) { + if (el.nodeType === 3 && el.nodeValue !== '') { + warn('resize-observer', '$el can not be observed (it may be a text node).'); + return; + } + } + + if (el.nextElementSibling !== null) { + resizeObserverManager.registerHandler(el.nextElementSibling, handleResize); + registered = true; + } + }); + vue.onBeforeUnmount(() => { + if (registered) { + resizeObserverManager.unregisterHandler(proxy.$el.nextElementSibling); + } + }); + }, + + render() { + return vue.renderSlot(this.$slots, 'default'); + } + + }); + + let maybeTouch; + function ensureMaybeTouch() { + if (maybeTouch === undefined) { + if ('matchMedia' in window) { + maybeTouch = window.matchMedia('(pointer:coarse)').matches; + } else { + maybeTouch = false; + } + } + + return maybeTouch; + } + let wheelScale; + function ensureWheelScale() { + if (wheelScale === undefined) { + wheelScale = 'chrome' in window ? window.devicePixelRatio : 1; + } + + return wheelScale; + } + + /* eslint-disable no-void */ + const styles$1 = c('.v-vl', { + maxHeight: 'inherit', + height: '100%', + overflow: 'auto', + minWidth: '1px' // a zero width container won't be scrollable + + }, [c('&:not(.v-vl--show-scrollbar)', { + scrollbarWidth: 'none' + }, [c('&::-webkit-scrollbar, &::-webkit-scrollbar-track-piece, &::-webkit-scrollbar-thumb', { + width: 0, + height: 0, + display: 'none' + })])]); + var VVirtualList = vue.defineComponent({ + name: 'VirtualList', + inheritAttrs: false, + props: { + showScrollbar: { + type: Boolean, + default: true + }, + items: { + type: Array, + default: () => [] + }, + // it is suppose to be the min height + itemSize: { + type: Number, + required: true + }, + itemResizable: Boolean, + itemsStyle: [String, Object], + visibleItemsTag: { + type: [String, Object], + default: 'div' + }, + visibleItemsProps: Object, + ignoreItemResize: Boolean, + onScroll: Function, + onWheel: Function, + onResize: Function, + defaultScrollKey: [Number, String], + defaultScrollIndex: Number, + keyField: { + type: String, + default: 'key' + }, + // Whether it is a good API? + // ResizeObserver + footer & header is not enough. + // Too complex for simple case + paddingTop: { + type: [Number, String], + default: 0 + }, + paddingBottom: { + type: [Number, String], + default: 0 + } + }, + + setup(props) { + const ssrAdapter = useSsrAdapter(); + styles$1.mount({ + id: 'vueuc/virtual-list', + head: true, + anchorMetaName: cssrAnchorMetaName$1, + ssr: ssrAdapter + }); + vue.onMounted(() => { + const { + defaultScrollIndex, + defaultScrollKey + } = props; + + if (defaultScrollIndex !== undefined && defaultScrollIndex !== null) { + scrollTo({ + index: defaultScrollIndex + }); + } else if (defaultScrollKey !== undefined && defaultScrollKey !== null) { + scrollTo({ + key: defaultScrollKey + }); + } + }); + let isDeactivated = false; + let activateStateInitialized = false; + vue.onActivated(() => { + isDeactivated = false; + + if (!activateStateInitialized) { + activateStateInitialized = true; + return; + } // remount + + + scrollTo({ + top: scrollTopRef.value, + left: scrollLeft + }); + }); + vue.onDeactivated(() => { + isDeactivated = true; + + if (!activateStateInitialized) { + activateStateInitialized = true; + } + }); + const keyIndexMapRef = vue.computed(() => { + const map = new Map(); + const { + keyField + } = props; + props.items.forEach((item, index) => { + map.set(item[keyField], index); + }); + return map; + }); + const listElRef = vue.ref(null); + const listHeightRef = vue.ref(undefined); + const keyToHeightOffset = new Map(); + const finweckTreeRef = vue.computed(() => { + const { + items, + itemSize, + keyField + } = props; + const ft = new FinweckTree(items.length, itemSize); + items.forEach((item, index) => { + const key = item[keyField]; + const heightOffset = keyToHeightOffset.get(key); + + if (heightOffset !== undefined) { + ft.add(index, heightOffset); + } + }); + return ft; + }); + const finweckTreeUpdateTrigger = vue.ref(0); + let scrollLeft = 0; + const scrollTopRef = vue.ref(0); + const startIndexRef = useMemo(() => { + return Math.max(finweckTreeRef.value.getBound(scrollTopRef.value - depx(props.paddingTop)) - 1, 0); + }); + const viewportItemsRef = vue.computed(() => { + const { + value: listHeight + } = listHeightRef; + if (listHeight === undefined) return []; + const { + items, + itemSize + } = props; + const startIndex = startIndexRef.value; + const endIndex = Math.min(startIndex + Math.ceil(listHeight / itemSize + 1), items.length - 1); + const viewportItems = []; + + for (let i = startIndex; i <= endIndex; ++i) { + viewportItems.push(items[i]); + } + + return viewportItems; + }); + + const scrollTo = (options, y) => { + if (typeof options === 'number') { + scrollToPosition(options, y, 'auto'); + return; + } + + const { + left, + top, + index, + key, + position, + behavior, + debounce = true + } = options; + + if (left !== undefined || top !== undefined) { + scrollToPosition(left, top, behavior); + } else if (index !== undefined) { + scrollToIndex(index, behavior, debounce); + } else if (key !== undefined) { + const toIndex = keyIndexMapRef.value.get(key); + if (toIndex !== undefined) scrollToIndex(toIndex, behavior, debounce); + } else if (position === 'bottom') { + scrollToPosition(0, Number.MAX_SAFE_INTEGER, behavior); + } else if (position === 'top') { + scrollToPosition(0, 0, behavior); + } + }; + + let anchorIndex; + let anchorTimerId = null; + + function scrollToIndex(index, behavior, debounce) { + const { + value: ft + } = finweckTreeRef; + const targetTop = ft.sum(index) + depx(props.paddingTop); + + if (!debounce) { + listElRef.value.scrollTo({ + left: 0, + top: targetTop, + behavior + }); + } else { + anchorIndex = index; + + if (anchorTimerId !== null) { + window.clearTimeout(anchorTimerId); + } + + anchorTimerId = window.setTimeout(() => { + anchorIndex = undefined; + anchorTimerId = null; + }, 16); // use 0 ms may be ealier than resize callback... + + const { + scrollTop, + offsetHeight + } = listElRef.value; + + if (targetTop > scrollTop) { + const itemSize = ft.get(index); + + if (targetTop + itemSize <= scrollTop + offsetHeight) ; else { + listElRef.value.scrollTo({ + left: 0, + top: targetTop + itemSize - offsetHeight, + behavior + }); + } + } else { + listElRef.value.scrollTo({ + left: 0, + top: targetTop, + behavior + }); + } + } + } + + function scrollToPosition(left, top, behavior) { + listElRef.value.scrollTo({ + left, + top, + behavior + }); + } + + function handleItemResize(key, entry) { + var _a, _b, _c; + + if (isDeactivated) return; + if (props.ignoreItemResize) return; + if (isHideByVShow(entry.target)) return; + const { + value: ft + } = finweckTreeRef; + const index = keyIndexMapRef.value.get(key); + const previousHeight = ft.get(index); + const height = (_c = (_b = (_a = entry.borderBoxSize) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.blockSize) !== null && _c !== void 0 ? _c : entry.contentRect.height; + if (height === previousHeight) return; // height offset based on itemSize + // used when rebuild the finweck tree + + const offset = height - props.itemSize; + + if (offset === 0) { + keyToHeightOffset.delete(key); + } else { + keyToHeightOffset.set(key, height - props.itemSize); + } // delta height based on finweck tree data + + + const delta = height - previousHeight; + if (delta === 0) return; + ft.add(index, delta); + const listEl = listElRef.value; + + if (listEl != null) { + if (anchorIndex === undefined) { + const previousHeightSum = ft.sum(index); + + if (listEl.scrollTop > previousHeightSum) { + listEl.scrollBy(0, delta); + } + } else { + if (index < anchorIndex) { + listEl.scrollBy(0, delta); + } else if (index === anchorIndex) { + const previousHeightSum = ft.sum(index); + + if (height + previousHeightSum > // Note, listEl shouldn't have border, nor offsetHeight won't be + // correct + listEl.scrollTop + listEl.offsetHeight) { + listEl.scrollBy(0, delta); + } + } + } + + syncViewport(); + } + + finweckTreeUpdateTrigger.value++; + } + + const mayUseWheel = !ensureMaybeTouch(); + let wheelCatched = false; + + function handleListScroll(e) { + var _a; + + (_a = props.onScroll) === null || _a === void 0 ? void 0 : _a.call(props, e); + + if (!mayUseWheel || !wheelCatched) { + syncViewport(); + } + } + + function handleListWheel(e) { + var _a; + + (_a = props.onWheel) === null || _a === void 0 ? void 0 : _a.call(props, e); + + if (mayUseWheel) { + const listEl = listElRef.value; + + if (listEl != null) { + if (e.deltaX === 0) { + if (listEl.scrollTop === 0 && e.deltaY <= 0) { + return; + } + + if (listEl.scrollTop + listEl.offsetHeight >= listEl.scrollHeight && e.deltaY >= 0) { + return; + } + } + + e.preventDefault(); + listEl.scrollTop += e.deltaY / ensureWheelScale(); + listEl.scrollLeft += e.deltaX / ensureWheelScale(); + syncViewport(); + wheelCatched = true; + beforeNextFrameOnce(() => { + wheelCatched = false; + }); + } + } + } + + function handleListResize(entry) { + if (isDeactivated) return; // List is HTMLElement + + if (isHideByVShow(entry.target)) return; // If height is same, return + + if (entry.contentRect.height === listHeightRef.value) return; + listHeightRef.value = entry.contentRect.height; + const { + onResize + } = props; + if (onResize !== undefined) onResize(entry); + } + + function syncViewport() { + const { + value: listEl + } = listElRef; // sometime ref el can be null + // https://github.com/TuSimple/naive-ui/issues/811 + + if (listEl == null) return; + scrollTopRef.value = listEl.scrollTop; + scrollLeft = listEl.scrollLeft; + } + + function isHideByVShow(el) { + let cursor = el; + + while (cursor !== null) { + if (cursor.style.display === 'none') return true; + cursor = cursor.parentElement; + } + + return false; + } + + return { + listHeight: listHeightRef, + listStyle: { + overflow: 'auto' + }, + keyToIndex: keyIndexMapRef, + itemsStyle: vue.computed(() => { + const { + itemResizable + } = props; + const height = pxfy(finweckTreeRef.value.sum()); // eslint-disable-next-line @typescript-eslint/no-unused-expressions + + finweckTreeUpdateTrigger.value; + return [props.itemsStyle, { + boxSizing: 'content-box', + height: itemResizable ? '' : height, + minHeight: itemResizable ? height : '', + paddingTop: pxfy(props.paddingTop), + paddingBottom: pxfy(props.paddingBottom) + }]; + }), + visibleItemsStyle: vue.computed(() => { + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + finweckTreeUpdateTrigger.value; + return { + transform: `translateY(${pxfy(finweckTreeRef.value.sum(startIndexRef.value))})` + }; + }), + viewportItems: viewportItemsRef, + listElRef, + itemsElRef: vue.ref(null), + scrollTo, + handleListResize, + handleListScroll, + handleListWheel, + handleItemResize + }; + }, + + render() { + const { + itemResizable, + keyField, + keyToIndex, + visibleItemsTag + } = this; + return vue.h(VResizeObserver, { + onResize: this.handleListResize + }, { + default: () => { + var _a, _b; + + return vue.h('div', vue.mergeProps(this.$attrs, { + class: ['v-vl', this.showScrollbar && 'v-vl--show-scrollbar'], + onScroll: this.handleListScroll, + onWheel: this.handleListWheel, + ref: 'listElRef' + }), [this.items.length !== 0 ? vue.h('div', { + ref: 'itemsElRef', + class: 'v-vl-items', + style: this.itemsStyle + }, [vue.h(visibleItemsTag, Object.assign({ + class: 'v-vl-visible-items', + style: this.visibleItemsStyle + }, this.visibleItemsProps), { + default: () => this.viewportItems.map(item => { + const key = item[keyField]; + const index = keyToIndex.get(key); + const itemVNode = this.$slots.default({ + item, + index + })[0]; + + if (itemResizable) { + return vue.h(VResizeObserver, { + key, + onResize: entry => this.handleItemResize(key, entry) + }, { + default: () => itemVNode + }); + } + + itemVNode.key = key; + return itemVNode; + }) + })]) : (_b = (_a = this.$slots).empty) === null || _b === void 0 ? void 0 : _b.call(_a)]); + } + }); + } + + }); + + const styles = c('.v-x-scroll', { + overflow: 'auto', + scrollbarWidth: 'none' + }, [c('&::-webkit-scrollbar', { + width: 0, + height: 0 + })]); + var VXScroll = vue.defineComponent({ + name: 'XScroll', + props: { + disabled: Boolean, + onScroll: Function + }, + + setup() { + const selfRef = vue.ref(null); + + function handleWheel(e) { + const preventYWheel = e.currentTarget.offsetWidth < e.currentTarget.scrollWidth; + if (!preventYWheel || e.deltaY === 0) return; + e.currentTarget.scrollLeft += e.deltaY + e.deltaX; + e.preventDefault(); + } + + const ssrAdapter = useSsrAdapter(); + styles.mount({ + id: 'vueuc/x-scroll', + head: true, + anchorMetaName: cssrAnchorMetaName$1, + ssr: ssrAdapter + }); + const exposedMethods = { + scrollTo() { + var _a; + + (_a = selfRef.value) === null || _a === void 0 ? void 0 : _a.scrollTo(...arguments); + } + + }; + return Object.assign({ + selfRef, + handleWheel + }, exposedMethods); + }, + + render() { + return vue.h('div', { + ref: 'selfRef', + onScroll: this.onScroll, + onWheel: this.disabled ? undefined : this.handleWheel, + class: 'v-x-scroll' + }, this.$slots); + } + + }); + + /* eslint-disable @typescript-eslint/strict-boolean-expressions */ + const hiddenAttr = 'v-hidden'; + const style$1A = c('[v-hidden]', { + display: 'none!important' + }); + var VOverflow = vue.defineComponent({ + name: 'Overflow', + props: { + getCounter: Function, + getTail: Function, + updateCounter: Function, + onUpdateOverflow: Function + }, + + setup(props, _ref) { + let { + slots + } = _ref; + const selfRef = vue.ref(null); + const counterRef = vue.ref(null); + + function deriveCounter() { + const { + value: self + } = selfRef; + const { + getCounter, + getTail + } = props; + let counter; + if (getCounter !== undefined) counter = getCounter();else { + counter = counterRef.value; + } + if (!self || !counter) return; + + if (counter.hasAttribute(hiddenAttr)) { + counter.removeAttribute(hiddenAttr); + } + + const { + children + } = self; + const containerWidth = self.offsetWidth; + const childWidths = []; + const tail = slots.tail ? getTail === null || getTail === void 0 ? void 0 : getTail() : null; + let childWidthSum = tail ? tail.offsetWidth : 0; + let overflow = false; + const len = self.children.length - (slots.tail ? 1 : 0); + + for (let i = 0; i < len - 1; ++i) { + if (i < 0) continue; + const child = children[i]; + + if (overflow) { + if (!child.hasAttribute(hiddenAttr)) { + child.setAttribute(hiddenAttr, ''); + } + + continue; + } else if (child.hasAttribute(hiddenAttr)) { + child.removeAttribute(hiddenAttr); + } + + const childWidth = child.offsetWidth; + childWidthSum += childWidth; + childWidths[i] = childWidth; + + if (childWidthSum > containerWidth) { + const { + updateCounter + } = props; + + for (let j = i; j >= 0; --j) { + const restCount = len - 1 - j; + + if (updateCounter !== undefined) { + updateCounter(restCount); + } else { + counter.textContent = `${restCount}`; + } + + const counterWidth = counter.offsetWidth; + childWidthSum -= childWidths[j]; + + if (childWidthSum + counterWidth <= containerWidth || j === 0) { + overflow = true; + i = j - 1; + + if (tail) { + // tail too long or 1st element too long + // we only consider tail now + if (i === -1) { + tail.style.maxWidth = `${containerWidth - counterWidth}px`; + tail.style.boxSizing = 'border-box'; + } else { + tail.style.maxWidth = ''; + } + } + + break; + } + } + } + } + + const { + onUpdateOverflow + } = props; + + if (!overflow) { + if (onUpdateOverflow !== undefined) { + onUpdateOverflow(false); + } + + counter.setAttribute(hiddenAttr, ''); + } else { + if (onUpdateOverflow !== undefined) { + onUpdateOverflow(true); + } + } + } + + const ssrAdapter = useSsrAdapter(); + style$1A.mount({ + id: 'vueuc/overflow', + head: true, + anchorMetaName: cssrAnchorMetaName$1, + ssr: ssrAdapter + }); + vue.onMounted(deriveCounter); // besides onMounted, other case should be manually triggered, or we shoud watch items + + return { + selfRef, + counterRef, + sync: deriveCounter + }; + }, + + render() { + const { + $slots + } = this; // eslint-disable-next-line @typescript-eslint/no-floating-promises + + vue.nextTick(this.sync); // It shouldn't have border + + return vue.h('div', { + class: 'v-overflow', + ref: 'selfRef' + }, [vue.renderSlot($slots, 'default'), // $slots.counter should only has 1 element + $slots.counter ? $slots.counter() : vue.h('span', { + style: { + display: 'inline-block' + }, + ref: 'counterRef' + }), // $slots.tail should only has 1 element + $slots.tail ? $slots.tail() : null]); + } + + }); + + /* eslint-disable @typescript-eslint/strict-boolean-expressions */ + // ref https://www.w3.org/TR/wai-aria-practices-1.1/examples/dialog-modal/js/dialog.js + function isHTMLElement(node) { + return node instanceof HTMLElement; + } + + function focusFirstDescendant(node) { + for (let i = 0; i < node.childNodes.length; i++) { + const child = node.childNodes[i]; + + if (isHTMLElement(child)) { + if (attemptFocus(child) || focusFirstDescendant(child)) { + return true; + } + } + } + + return false; + } + function focusLastDescendant(element) { + for (let i = element.childNodes.length - 1; i >= 0; i--) { + const child = element.childNodes[i]; + + if (isHTMLElement(child)) { + if (attemptFocus(child) || focusLastDescendant(child)) { + return true; + } + } + } + + return false; + } + + function attemptFocus(element) { + if (!isFocusable(element)) { + return false; + } + + try { + element.focus({ + preventScroll: true + }); + } catch (e) {} + + return document.activeElement === element; + } + + function isFocusable(element) { + if (element.tabIndex > 0 || element.tabIndex === 0 && element.getAttribute('tabIndex') !== null) { + return true; + } + + if (element.getAttribute('disabled')) { + return false; + } + + switch (element.nodeName) { + case 'A': + return !!element.href && element.rel !== 'ignore'; + + case 'INPUT': + return element.type !== 'hidden' && element.type !== 'file'; + + case 'BUTTON': + case 'SELECT': + case 'TEXTAREA': + return true; + + default: + return false; + } + } + + let stack = []; + const FocusTrap = vue.defineComponent({ + name: 'FocusTrap', + props: { + disabled: Boolean, + active: Boolean, + autoFocus: { + type: Boolean, + default: true + }, + onEsc: Function, + initialFocusTo: String, + finalFocusTo: String, + returnFocusOnDeactivated: { + type: Boolean, + default: true + } + }, + + setup(props) { + const id = createId(); + const focusableStartRef = vue.ref(null); + const focusableEndRef = vue.ref(null); + let activated = false; + let ignoreInternalFocusChange = false; + const lastFocusedElement = document.activeElement; + + function isCurrentActive() { + const currentActiveId = stack[stack.length - 1]; + return currentActiveId === id; + } + + function handleDocumentKeydown(e) { + var _a; + + if (e.code === 'Escape') { + if (isCurrentActive()) { + (_a = props.onEsc) === null || _a === void 0 ? void 0 : _a.call(props, e); + } + } + } + + vue.onMounted(() => { + vue.watch(() => props.active, value => { + if (value) { + activate(); + on('keydown', document, handleDocumentKeydown); + } else { + off('keydown', document, handleDocumentKeydown); + + if (activated) { + deactivate(); + } + } + }, { + immediate: true + }); + }); + vue.onBeforeUnmount(() => { + off('keydown', document, handleDocumentKeydown); + if (activated) deactivate(); + }); + + function handleDocumentFocus(e) { + if (ignoreInternalFocusChange) return; + + if (isCurrentActive()) { + const mainEl = getMainEl(); + if (mainEl === null) return; + if (mainEl.contains(getPreciseEventTarget(e))) return; // I don't handle shift + tab status since it's too tricky to handle + // Not impossible but I need to sleep + + resetFocusTo('first'); + } + } + + function getMainEl() { + const focusableStartEl = focusableStartRef.value; + if (focusableStartEl === null) return null; + let mainEl = focusableStartEl; + + while (true) { + mainEl = mainEl.nextSibling; + if (mainEl === null) break; + + if (mainEl instanceof Element && mainEl.tagName === 'DIV') { + break; + } + } + + return mainEl; + } + + function activate() { + var _a; + + if (props.disabled) return; + stack.push(id); + + if (props.autoFocus) { + const { + initialFocusTo + } = props; + + if (initialFocusTo === undefined) { + resetFocusTo('first'); + } else { + (_a = resolveTo(initialFocusTo)) === null || _a === void 0 ? void 0 : _a.focus({ + preventScroll: true + }); + } + } + + activated = true; + document.addEventListener('focus', handleDocumentFocus, true); + } + + function deactivate() { + var _a; + + if (props.disabled) return; + document.removeEventListener('focus', handleDocumentFocus, true); + stack = stack.filter(idInStack => idInStack !== id); + if (isCurrentActive()) return; + const { + finalFocusTo + } = props; + + if (finalFocusTo !== undefined) { + (_a = resolveTo(finalFocusTo)) === null || _a === void 0 ? void 0 : _a.focus({ + preventScroll: true + }); + } else if (props.returnFocusOnDeactivated) { + if (lastFocusedElement instanceof HTMLElement) { + ignoreInternalFocusChange = true; + lastFocusedElement.focus({ + preventScroll: true + }); + ignoreInternalFocusChange = false; + } + } + } + + function resetFocusTo(target) { + if (!isCurrentActive()) return; + + if (props.active) { + const focusableStartEl = focusableStartRef.value; + const focusableEndEl = focusableEndRef.value; + + if (focusableStartEl !== null && focusableEndEl !== null) { + const mainEl = getMainEl(); + + if (mainEl == null || mainEl === focusableEndEl) { + ignoreInternalFocusChange = true; + focusableStartEl.focus({ + preventScroll: true + }); + ignoreInternalFocusChange = false; + return; + } + + ignoreInternalFocusChange = true; + const focused = target === 'first' ? focusFirstDescendant(mainEl) : focusLastDescendant(mainEl); + ignoreInternalFocusChange = false; + + if (!focused) { + ignoreInternalFocusChange = true; + focusableStartEl.focus({ + preventScroll: true + }); + ignoreInternalFocusChange = false; + } + } + } + } + + function handleStartFocus(e) { + if (ignoreInternalFocusChange) return; + const mainEl = getMainEl(); + if (mainEl === null) return; + + if (e.relatedTarget !== null && mainEl.contains(e.relatedTarget)) { + // if it comes from inner, focus last + resetFocusTo('last'); + } else { + // otherwise focus first + resetFocusTo('first'); + } + } + + function handleEndFocus(e) { + if (ignoreInternalFocusChange) return; + + if (e.relatedTarget !== null && e.relatedTarget === focusableStartRef.value) { + // if it comes from first, focus last + resetFocusTo('last'); + } else { + // otherwise focus first + resetFocusTo('first'); + } + } + + return { + focusableStartRef, + focusableEndRef, + focusableStyle: 'position: absolute; height: 0; width: 0;', + handleStartFocus, + handleEndFocus + }; + }, + + render() { + const { + default: defaultSlot + } = this.$slots; + if (defaultSlot === undefined) return null; + if (this.disabled) return defaultSlot(); + const { + active, + focusableStyle + } = this; + return vue.h(vue.Fragment, null, [vue.h('div', { + 'aria-hidden': 'true', + tabindex: active ? '0' : '-1', + ref: 'focusableStartRef', + style: focusableStyle, + onFocus: this.handleStartFocus + }), defaultSlot(), vue.h('div', { + 'aria-hidden': 'true', + style: focusableStyle, + ref: 'focusableEndRef', + tabindex: active ? '0' : '-1', + onFocus: this.handleEndFocus + })]); + } + + }); + + function useOnResize(elRef, onResize) { + if (onResize) { + vue.onMounted(() => { + const { + value: el + } = elRef; + + if (el) { + resizeObserverManager.registerHandler(el, onResize); + } + }); + vue.onBeforeUnmount(() => { + const { + value: el + } = elRef; + + if (el) { + resizeObserverManager.unregisterHandler(el); + } + }); + } + } + + let lockCount = 0; + let originalMarginRight = ""; + let originalOverflow = ""; + let originalOverflowX = ""; + let originalOverflowY = ""; + const lockHtmlScrollRightCompensationRef = vue.ref("0px"); + function useLockHtmlScroll(lockRef) { + if (typeof document === "undefined") return; + const el = document.documentElement; + let watchStopHandle; + let activated = false; + + const unlock = () => { + el.style.marginRight = originalMarginRight; + el.style.overflow = originalOverflow; + el.style.overflowX = originalOverflowX; + el.style.overflowY = originalOverflowY; + lockHtmlScrollRightCompensationRef.value = "0px"; + }; + + vue.onMounted(() => { + watchStopHandle = vue.watch(lockRef, value => { + if (value) { + if (!lockCount) { + const scrollbarWidth = window.innerWidth - el.offsetWidth; + + if (scrollbarWidth > 0) { + originalMarginRight = el.style.marginRight; + el.style.marginRight = `${scrollbarWidth}px`; + lockHtmlScrollRightCompensationRef.value = `${scrollbarWidth}px`; + } + + originalOverflow = el.style.overflow; + originalOverflowX = el.style.overflowX; + originalOverflowY = el.style.overflowY; + el.style.overflow = "hidden"; + el.style.overflowX = "hidden"; + el.style.overflowY = "hidden"; + } + + activated = true; + lockCount++; + } else { + lockCount--; + + if (!lockCount) { + unlock(); + } + + activated = false; + } + }, { + immediate: true + }); + }); + vue.onBeforeUnmount(() => { + var _watchStopHandle; + + (_watchStopHandle = watchStopHandle) === null || _watchStopHandle === void 0 ? void 0 : _watchStopHandle(); + + if (activated) { + lockCount--; + + if (!lockCount) { + unlock(); + } + + activated = false; + } + }); + } + + const isComposingRef = vue.ref(false); + + const compositionStartHandler = () => { + isComposingRef.value = true; + }; + + const compositionEndHandler = () => { + isComposingRef.value = false; + }; + + let mountedCount = 0; + const useIsComposing = () => { + if (isBrowser$2) { + vue.onBeforeMount(() => { + if (!mountedCount) { + window.addEventListener("compositionstart", compositionStartHandler); + window.addEventListener("compositionend", compositionEndHandler); + } + + mountedCount++; + }); + vue.onBeforeUnmount(() => { + if (mountedCount <= 1) { + window.removeEventListener("compositionstart", compositionStartHandler); + window.removeEventListener("compositionend", compositionEndHandler); + mountedCount = 0; + } else { + mountedCount--; + } + }); + } + + return isComposingRef; + }; + + function useReactivated(callback) { + const isDeactivatedRef = { + isDeactivated: false + }; + let activateStateInitialized = false; + vue.onActivated(() => { + isDeactivatedRef.isDeactivated = false; + + if (!activateStateInitialized) { + activateStateInitialized = true; + return; + } + + callback(); + }); + vue.onDeactivated(() => { + isDeactivatedRef.isDeactivated = true; + + if (!activateStateInitialized) { + activateStateInitialized = true; + } + }); + return isDeactivatedRef; + } + + function isDocument(node) { + return node.nodeName === "#document"; + } + + const formItemInjectionKey = createInjectionKey("n-form-item"); + function useFormItem(props) { + let { + defaultSize = "medium", + mergedSize, + mergedDisabled + } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + const NFormItem = vue.inject(formItemInjectionKey, null); + vue.provide(formItemInjectionKey, null); + const mergedSizeRef = vue.computed(mergedSize ? () => mergedSize(NFormItem) : () => { + const { + size + } = props; + if (size) return size; + + if (NFormItem) { + const { + mergedSize: mergedSize2 + } = NFormItem; + + if (mergedSize2.value !== void 0) { + return mergedSize2.value; + } + } + + return defaultSize; + }); + const mergedDisabledRef = vue.computed(mergedDisabled ? () => mergedDisabled(NFormItem) : () => { + const { + disabled + } = props; + + if (disabled !== void 0) { + return disabled; + } + + if (NFormItem) { + return NFormItem.disabled.value; + } + + return false; + }); + const mergedStatusRef = vue.computed(() => { + const { + status + } = props; + if (status) return status; + return NFormItem === null || NFormItem === void 0 ? void 0 : NFormItem.mergedValidationStatus.value; + }); + vue.onBeforeUnmount(() => { + if (NFormItem) { + NFormItem.restoreValidation(); + } + }); + return { + mergedSizeRef, + mergedDisabledRef, + mergedStatusRef, + + nTriggerFormBlur() { + if (NFormItem) { + NFormItem.handleContentBlur(); + } + }, + + nTriggerFormChange() { + if (NFormItem) { + NFormItem.handleContentChange(); + } + }, + + nTriggerFormFocus() { + if (NFormItem) { + NFormItem.handleContentFocus(); + } + }, + + nTriggerFormInput() { + if (NFormItem) { + NFormItem.handleContentInput(); + } + } + + }; + } + + var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + + function getDefaultExportFromCjs (x) { + return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; + } + + var lodash = {exports: {}}; + + /** + * @license + * Lodash + * Copyright OpenJS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */ + + (function (module, exports) { + (function(){/** Used as a safe reference for `undefined` in pre-ES5 environments. */var undefined$1;/** Used as the semantic version number. */var VERSION='4.17.21';/** Used as the size to enable large array optimizations. */var LARGE_ARRAY_SIZE=200;/** Error message constants. */var CORE_ERROR_TEXT='Unsupported core-js use. Try https://npms.io/search?q=ponyfill.',FUNC_ERROR_TEXT='Expected a function',INVALID_TEMPL_VAR_ERROR_TEXT='Invalid `variable` option passed into `_.template`';/** Used to stand-in for `undefined` hash values. */var HASH_UNDEFINED='__lodash_hash_undefined__';/** Used as the maximum memoize cache size. */var MAX_MEMOIZE_SIZE=500;/** Used as the internal argument placeholder. */var PLACEHOLDER='__lodash_placeholder__';/** Used to compose bitmasks for cloning. */var CLONE_DEEP_FLAG=1,CLONE_FLAT_FLAG=2,CLONE_SYMBOLS_FLAG=4;/** Used to compose bitmasks for value comparisons. */var COMPARE_PARTIAL_FLAG=1,COMPARE_UNORDERED_FLAG=2;/** Used to compose bitmasks for function metadata. */var WRAP_BIND_FLAG=1,WRAP_BIND_KEY_FLAG=2,WRAP_CURRY_BOUND_FLAG=4,WRAP_CURRY_FLAG=8,WRAP_CURRY_RIGHT_FLAG=16,WRAP_PARTIAL_FLAG=32,WRAP_PARTIAL_RIGHT_FLAG=64,WRAP_ARY_FLAG=128,WRAP_REARG_FLAG=256,WRAP_FLIP_FLAG=512;/** Used as default options for `_.truncate`. */var DEFAULT_TRUNC_LENGTH=30,DEFAULT_TRUNC_OMISSION='...';/** Used to detect hot functions by number of calls within a span of milliseconds. */var HOT_COUNT=800,HOT_SPAN=16;/** Used to indicate the type of lazy iteratees. */var LAZY_FILTER_FLAG=1,LAZY_MAP_FLAG=2,LAZY_WHILE_FLAG=3;/** Used as references for various `Number` constants. */var INFINITY=1/0,MAX_SAFE_INTEGER=9007199254740991,MAX_INTEGER=1.7976931348623157e+308,NAN=0/0;/** Used as references for the maximum length and index of an array. */var MAX_ARRAY_LENGTH=4294967295,MAX_ARRAY_INDEX=MAX_ARRAY_LENGTH-1,HALF_MAX_ARRAY_LENGTH=MAX_ARRAY_LENGTH>>>1;/** Used to associate wrap methods with their bit flags. */var wrapFlags=[['ary',WRAP_ARY_FLAG],['bind',WRAP_BIND_FLAG],['bindKey',WRAP_BIND_KEY_FLAG],['curry',WRAP_CURRY_FLAG],['curryRight',WRAP_CURRY_RIGHT_FLAG],['flip',WRAP_FLIP_FLAG],['partial',WRAP_PARTIAL_FLAG],['partialRight',WRAP_PARTIAL_RIGHT_FLAG],['rearg',WRAP_REARG_FLAG]];/** `Object#toString` result references. */var argsTag='[object Arguments]',arrayTag='[object Array]',asyncTag='[object AsyncFunction]',boolTag='[object Boolean]',dateTag='[object Date]',domExcTag='[object DOMException]',errorTag='[object Error]',funcTag='[object Function]',genTag='[object GeneratorFunction]',mapTag='[object Map]',numberTag='[object Number]',nullTag='[object Null]',objectTag='[object Object]',promiseTag='[object Promise]',proxyTag='[object Proxy]',regexpTag='[object RegExp]',setTag='[object Set]',stringTag='[object String]',symbolTag='[object Symbol]',undefinedTag='[object Undefined]',weakMapTag='[object WeakMap]',weakSetTag='[object WeakSet]';var arrayBufferTag='[object ArrayBuffer]',dataViewTag='[object DataView]',float32Tag='[object Float32Array]',float64Tag='[object Float64Array]',int8Tag='[object Int8Array]',int16Tag='[object Int16Array]',int32Tag='[object Int32Array]',uint8Tag='[object Uint8Array]',uint8ClampedTag='[object Uint8ClampedArray]',uint16Tag='[object Uint16Array]',uint32Tag='[object Uint32Array]';/** Used to match empty string literals in compiled template source. */var reEmptyStringLeading=/\b__p \+= '';/g,reEmptyStringMiddle=/\b(__p \+=) '' \+/g,reEmptyStringTrailing=/(__e\(.*?\)|\b__t\)) \+\n'';/g;/** Used to match HTML entities and HTML characters. */var reEscapedHtml=/&(?:amp|lt|gt|quot|#39);/g,reUnescapedHtml=/[&<>"']/g,reHasEscapedHtml=RegExp(reEscapedHtml.source),reHasUnescapedHtml=RegExp(reUnescapedHtml.source);/** Used to match template delimiters. */var reEscape=/<%-([\s\S]+?)%>/g,reEvaluate=/<%([\s\S]+?)%>/g,reInterpolate=/<%=([\s\S]+?)%>/g;/** Used to match property names within property paths. */var reIsDeepProp=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,reIsPlainProp=/^\w*$/,rePropName=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;/** + * Used to match `RegExp` + * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). + */var reRegExpChar=/[\\^$.*+?()[\]{}|]/g,reHasRegExpChar=RegExp(reRegExpChar.source);/** Used to match leading whitespace. */var reTrimStart=/^\s+/;/** Used to match a single whitespace character. */var reWhitespace=/\s/;/** Used to match wrap detail comments. */var reWrapComment=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,reWrapDetails=/\{\n\/\* \[wrapped with (.+)\] \*/,reSplitDetails=/,? & /;/** Used to match words composed of alphanumeric characters. */var reAsciiWord=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;/** + * Used to validate the `validate` option in `_.template` variable. + * + * Forbids characters which could potentially change the meaning of the function argument definition: + * - "()," (modification of function parameters) + * - "=" (default value) + * - "[]{}" (destructuring of function parameters) + * - "/" (beginning of a comment) + * - whitespace + */var reForbiddenIdentifierChars=/[()=,{}\[\]\/\s]/;/** Used to match backslashes in property paths. */var reEscapeChar=/\\(\\)?/g;/** + * Used to match + * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components). + */var reEsTemplate=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g;/** Used to match `RegExp` flags from their coerced string values. */var reFlags=/\w*$/;/** Used to detect bad signed hexadecimal string values. */var reIsBadHex=/^[-+]0x[0-9a-f]+$/i;/** Used to detect binary string values. */var reIsBinary=/^0b[01]+$/i;/** Used to detect host constructors (Safari). */var reIsHostCtor=/^\[object .+?Constructor\]$/;/** Used to detect octal string values. */var reIsOctal=/^0o[0-7]+$/i;/** Used to detect unsigned integer values. */var reIsUint=/^(?:0|[1-9]\d*)$/;/** Used to match Latin Unicode letters (excluding mathematical operators). */var reLatin=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g;/** Used to ensure capturing order of template delimiters. */var reNoMatch=/($^)/;/** Used to match unescaped characters in compiled string literals. */var reUnescapedString=/['\n\r\u2028\u2029\\]/g;/** Used to compose unicode character classes. */var rsAstralRange='\\ud800-\\udfff',rsComboMarksRange='\\u0300-\\u036f',reComboHalfMarksRange='\\ufe20-\\ufe2f',rsComboSymbolsRange='\\u20d0-\\u20ff',rsComboRange=rsComboMarksRange+reComboHalfMarksRange+rsComboSymbolsRange,rsDingbatRange='\\u2700-\\u27bf',rsLowerRange='a-z\\xdf-\\xf6\\xf8-\\xff',rsMathOpRange='\\xac\\xb1\\xd7\\xf7',rsNonCharRange='\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf',rsPunctuationRange='\\u2000-\\u206f',rsSpaceRange=' \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000',rsUpperRange='A-Z\\xc0-\\xd6\\xd8-\\xde',rsVarRange='\\ufe0e\\ufe0f',rsBreakRange=rsMathOpRange+rsNonCharRange+rsPunctuationRange+rsSpaceRange;/** Used to compose unicode capture groups. */var rsApos="['\u2019]",rsAstral='['+rsAstralRange+']',rsBreak='['+rsBreakRange+']',rsCombo='['+rsComboRange+']',rsDigits='\\d+',rsDingbat='['+rsDingbatRange+']',rsLower='['+rsLowerRange+']',rsMisc='[^'+rsAstralRange+rsBreakRange+rsDigits+rsDingbatRange+rsLowerRange+rsUpperRange+']',rsFitz='\\ud83c[\\udffb-\\udfff]',rsModifier='(?:'+rsCombo+'|'+rsFitz+')',rsNonAstral='[^'+rsAstralRange+']',rsRegional='(?:\\ud83c[\\udde6-\\uddff]){2}',rsSurrPair='[\\ud800-\\udbff][\\udc00-\\udfff]',rsUpper='['+rsUpperRange+']',rsZWJ='\\u200d';/** Used to compose unicode regexes. */var rsMiscLower='(?:'+rsLower+'|'+rsMisc+')',rsMiscUpper='(?:'+rsUpper+'|'+rsMisc+')',rsOptContrLower='(?:'+rsApos+'(?:d|ll|m|re|s|t|ve))?',rsOptContrUpper='(?:'+rsApos+'(?:D|LL|M|RE|S|T|VE))?',reOptMod=rsModifier+'?',rsOptVar='['+rsVarRange+']?',rsOptJoin='(?:'+rsZWJ+'(?:'+[rsNonAstral,rsRegional,rsSurrPair].join('|')+')'+rsOptVar+reOptMod+')*',rsOrdLower='\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])',rsOrdUpper='\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])',rsSeq=rsOptVar+reOptMod+rsOptJoin,rsEmoji='(?:'+[rsDingbat,rsRegional,rsSurrPair].join('|')+')'+rsSeq,rsSymbol='(?:'+[rsNonAstral+rsCombo+'?',rsCombo,rsRegional,rsSurrPair,rsAstral].join('|')+')';/** Used to match apostrophes. */var reApos=RegExp(rsApos,'g');/** + * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and + * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols). + */var reComboMark=RegExp(rsCombo,'g');/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */var reUnicode=RegExp(rsFitz+'(?='+rsFitz+')|'+rsSymbol+rsSeq,'g');/** Used to match complex or compound words. */var reUnicodeWord=RegExp([rsUpper+'?'+rsLower+'+'+rsOptContrLower+'(?='+[rsBreak,rsUpper,'$'].join('|')+')',rsMiscUpper+'+'+rsOptContrUpper+'(?='+[rsBreak,rsUpper+rsMiscLower,'$'].join('|')+')',rsUpper+'?'+rsMiscLower+'+'+rsOptContrLower,rsUpper+'+'+rsOptContrUpper,rsOrdUpper,rsOrdLower,rsDigits,rsEmoji].join('|'),'g');/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */var reHasUnicode=RegExp('['+rsZWJ+rsAstralRange+rsComboRange+rsVarRange+']');/** Used to detect strings that need a more robust regexp to match words. */var reHasUnicodeWord=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;/** Used to assign default `context` object properties. */var contextProps=['Array','Buffer','DataView','Date','Error','Float32Array','Float64Array','Function','Int8Array','Int16Array','Int32Array','Map','Math','Object','Promise','RegExp','Set','String','Symbol','TypeError','Uint8Array','Uint8ClampedArray','Uint16Array','Uint32Array','WeakMap','_','clearTimeout','isFinite','parseInt','setTimeout'];/** Used to make template sourceURLs easier to identify. */var templateCounter=-1;/** Used to identify `toStringTag` values of typed arrays. */var typedArrayTags={};typedArrayTags[float32Tag]=typedArrayTags[float64Tag]=typedArrayTags[int8Tag]=typedArrayTags[int16Tag]=typedArrayTags[int32Tag]=typedArrayTags[uint8Tag]=typedArrayTags[uint8ClampedTag]=typedArrayTags[uint16Tag]=typedArrayTags[uint32Tag]=true;typedArrayTags[argsTag]=typedArrayTags[arrayTag]=typedArrayTags[arrayBufferTag]=typedArrayTags[boolTag]=typedArrayTags[dataViewTag]=typedArrayTags[dateTag]=typedArrayTags[errorTag]=typedArrayTags[funcTag]=typedArrayTags[mapTag]=typedArrayTags[numberTag]=typedArrayTags[objectTag]=typedArrayTags[regexpTag]=typedArrayTags[setTag]=typedArrayTags[stringTag]=typedArrayTags[weakMapTag]=false;/** Used to identify `toStringTag` values supported by `_.clone`. */var cloneableTags={};cloneableTags[argsTag]=cloneableTags[arrayTag]=cloneableTags[arrayBufferTag]=cloneableTags[dataViewTag]=cloneableTags[boolTag]=cloneableTags[dateTag]=cloneableTags[float32Tag]=cloneableTags[float64Tag]=cloneableTags[int8Tag]=cloneableTags[int16Tag]=cloneableTags[int32Tag]=cloneableTags[mapTag]=cloneableTags[numberTag]=cloneableTags[objectTag]=cloneableTags[regexpTag]=cloneableTags[setTag]=cloneableTags[stringTag]=cloneableTags[symbolTag]=cloneableTags[uint8Tag]=cloneableTags[uint8ClampedTag]=cloneableTags[uint16Tag]=cloneableTags[uint32Tag]=true;cloneableTags[errorTag]=cloneableTags[funcTag]=cloneableTags[weakMapTag]=false;/** Used to map Latin Unicode letters to basic Latin letters. */var deburredLetters={// Latin-1 Supplement block. + '\xc0':'A','\xc1':'A','\xc2':'A','\xc3':'A','\xc4':'A','\xc5':'A','\xe0':'a','\xe1':'a','\xe2':'a','\xe3':'a','\xe4':'a','\xe5':'a','\xc7':'C','\xe7':'c','\xd0':'D','\xf0':'d','\xc8':'E','\xc9':'E','\xca':'E','\xcb':'E','\xe8':'e','\xe9':'e','\xea':'e','\xeb':'e','\xcc':'I','\xcd':'I','\xce':'I','\xcf':'I','\xec':'i','\xed':'i','\xee':'i','\xef':'i','\xd1':'N','\xf1':'n','\xd2':'O','\xd3':'O','\xd4':'O','\xd5':'O','\xd6':'O','\xd8':'O','\xf2':'o','\xf3':'o','\xf4':'o','\xf5':'o','\xf6':'o','\xf8':'o','\xd9':'U','\xda':'U','\xdb':'U','\xdc':'U','\xf9':'u','\xfa':'u','\xfb':'u','\xfc':'u','\xdd':'Y','\xfd':'y','\xff':'y','\xc6':'Ae','\xe6':'ae','\xde':'Th','\xfe':'th','\xdf':'ss',// Latin Extended-A block. + '\u0100':'A','\u0102':'A','\u0104':'A','\u0101':'a','\u0103':'a','\u0105':'a','\u0106':'C','\u0108':'C','\u010a':'C','\u010c':'C','\u0107':'c','\u0109':'c','\u010b':'c','\u010d':'c','\u010e':'D','\u0110':'D','\u010f':'d','\u0111':'d','\u0112':'E','\u0114':'E','\u0116':'E','\u0118':'E','\u011a':'E','\u0113':'e','\u0115':'e','\u0117':'e','\u0119':'e','\u011b':'e','\u011c':'G','\u011e':'G','\u0120':'G','\u0122':'G','\u011d':'g','\u011f':'g','\u0121':'g','\u0123':'g','\u0124':'H','\u0126':'H','\u0125':'h','\u0127':'h','\u0128':'I','\u012a':'I','\u012c':'I','\u012e':'I','\u0130':'I','\u0129':'i','\u012b':'i','\u012d':'i','\u012f':'i','\u0131':'i','\u0134':'J','\u0135':'j','\u0136':'K','\u0137':'k','\u0138':'k','\u0139':'L','\u013b':'L','\u013d':'L','\u013f':'L','\u0141':'L','\u013a':'l','\u013c':'l','\u013e':'l','\u0140':'l','\u0142':'l','\u0143':'N','\u0145':'N','\u0147':'N','\u014a':'N','\u0144':'n','\u0146':'n','\u0148':'n','\u014b':'n','\u014c':'O','\u014e':'O','\u0150':'O','\u014d':'o','\u014f':'o','\u0151':'o','\u0154':'R','\u0156':'R','\u0158':'R','\u0155':'r','\u0157':'r','\u0159':'r','\u015a':'S','\u015c':'S','\u015e':'S','\u0160':'S','\u015b':'s','\u015d':'s','\u015f':'s','\u0161':'s','\u0162':'T','\u0164':'T','\u0166':'T','\u0163':'t','\u0165':'t','\u0167':'t','\u0168':'U','\u016a':'U','\u016c':'U','\u016e':'U','\u0170':'U','\u0172':'U','\u0169':'u','\u016b':'u','\u016d':'u','\u016f':'u','\u0171':'u','\u0173':'u','\u0174':'W','\u0175':'w','\u0176':'Y','\u0177':'y','\u0178':'Y','\u0179':'Z','\u017b':'Z','\u017d':'Z','\u017a':'z','\u017c':'z','\u017e':'z','\u0132':'IJ','\u0133':'ij','\u0152':'Oe','\u0153':'oe','\u0149':"'n",'\u017f':'s'};/** Used to map characters to HTML entities. */var htmlEscapes={'&':'&','<':'<','>':'>','"':'"',"'":'''};/** Used to map HTML entities to characters. */var htmlUnescapes={'&':'&','<':'<','>':'>','"':'"',''':"'"};/** Used to escape characters for inclusion in compiled string literals. */var stringEscapes={'\\':'\\',"'":"'",'\n':'n','\r':'r','\u2028':'u2028','\u2029':'u2029'};/** Built-in method references without a dependency on `root`. */var freeParseFloat=parseFloat,freeParseInt=parseInt;/** Detect free variable `global` from Node.js. */var freeGlobal=typeof commonjsGlobal=='object'&&commonjsGlobal&&commonjsGlobal.Object===Object&&commonjsGlobal;/** Detect free variable `self`. */var freeSelf=typeof self=='object'&&self&&self.Object===Object&&self;/** Used as a reference to the global object. */var root=freeGlobal||freeSelf||Function('return this')();/** Detect free variable `exports`. */var freeExports=exports&&!exports.nodeType&&exports;/** Detect free variable `module`. */var freeModule=freeExports&&'object'=='object'&&module&&!module.nodeType&&module;/** Detect the popular CommonJS extension `module.exports`. */var moduleExports=freeModule&&freeModule.exports===freeExports;/** Detect free variable `process` from Node.js. */var freeProcess=moduleExports&&freeGlobal.process;/** Used to access faster Node.js helpers. */var nodeUtil=function(){try{// Use `util.types` for Node.js 10+. + var types=freeModule&&freeModule.require&&freeModule.require('util').types;if(types){return types;}// Legacy `process.binding('util')` for Node.js < 10. + return freeProcess&&freeProcess.binding&&freeProcess.binding('util');}catch(e){}}();/* Node.js helper references. */var nodeIsArrayBuffer=nodeUtil&&nodeUtil.isArrayBuffer,nodeIsDate=nodeUtil&&nodeUtil.isDate,nodeIsMap=nodeUtil&&nodeUtil.isMap,nodeIsRegExp=nodeUtil&&nodeUtil.isRegExp,nodeIsSet=nodeUtil&&nodeUtil.isSet,nodeIsTypedArray=nodeUtil&&nodeUtil.isTypedArray;/*--------------------------------------------------------------------------*/ /** + * A faster alternative to `Function#apply`, this function invokes `func` + * with the `this` binding of `thisArg` and the arguments of `args`. + * + * @private + * @param {Function} func The function to invoke. + * @param {*} thisArg The `this` binding of `func`. + * @param {Array} args The arguments to invoke `func` with. + * @returns {*} Returns the result of `func`. + */function apply(func,thisArg,args){switch(args.length){case 0:return func.call(thisArg);case 1:return func.call(thisArg,args[0]);case 2:return func.call(thisArg,args[0],args[1]);case 3:return func.call(thisArg,args[0],args[1],args[2]);}return func.apply(thisArg,args);}/** + * A specialized version of `baseAggregator` for arrays. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} setter The function to set `accumulator` values. + * @param {Function} iteratee The iteratee to transform keys. + * @param {Object} accumulator The initial aggregated object. + * @returns {Function} Returns `accumulator`. + */function arrayAggregator(array,setter,iteratee,accumulator){var index=-1,length=array==null?0:array.length;while(++index-1;}/** + * This function is like `arrayIncludes` except that it accepts a comparator. + * + * @private + * @param {Array} [array] The array to inspect. + * @param {*} target The value to search for. + * @param {Function} comparator The comparator invoked per element. + * @returns {boolean} Returns `true` if `target` is found, else `false`. + */function arrayIncludesWith(array,value,comparator){var index=-1,length=array==null?0:array.length;while(++index-1){}return index;}/** + * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol + * that is not found in the character symbols. + * + * @private + * @param {Array} strSymbols The string symbols to inspect. + * @param {Array} chrSymbols The character symbols to find. + * @returns {number} Returns the index of the last unmatched string symbol. + */function charsEndIndex(strSymbols,chrSymbols){var index=strSymbols.length;while(index--&&baseIndexOf(chrSymbols,strSymbols[index],0)>-1){}return index;}/** + * Gets the number of `placeholder` occurrences in `array`. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} placeholder The placeholder to search for. + * @returns {number} Returns the placeholder count. + */function countHolders(array,placeholder){var length=array.length,result=0;while(length--){if(array[length]===placeholder){++result;}}return result;}/** + * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A + * letters to basic Latin letters. + * + * @private + * @param {string} letter The matched letter to deburr. + * @returns {string} Returns the deburred letter. + */var deburrLetter=basePropertyOf(deburredLetters);/** + * Used by `_.escape` to convert characters to HTML entities. + * + * @private + * @param {string} chr The matched character to escape. + * @returns {string} Returns the escaped character. + */var escapeHtmlChar=basePropertyOf(htmlEscapes);/** + * Used by `_.template` to escape characters for inclusion in compiled string literals. + * + * @private + * @param {string} chr The matched character to escape. + * @returns {string} Returns the escaped character. + */function escapeStringChar(chr){return '\\'+stringEscapes[chr];}/** + * Gets the value at `key` of `object`. + * + * @private + * @param {Object} [object] The object to query. + * @param {string} key The key of the property to get. + * @returns {*} Returns the property value. + */function getValue(object,key){return object==null?undefined$1:object[key];}/** + * Checks if `string` contains Unicode symbols. + * + * @private + * @param {string} string The string to inspect. + * @returns {boolean} Returns `true` if a symbol is found, else `false`. + */function hasUnicode(string){return reHasUnicode.test(string);}/** + * Checks if `string` contains a word composed of Unicode symbols. + * + * @private + * @param {string} string The string to inspect. + * @returns {boolean} Returns `true` if a word is found, else `false`. + */function hasUnicodeWord(string){return reHasUnicodeWord.test(string);}/** + * Converts `iterator` to an array. + * + * @private + * @param {Object} iterator The iterator to convert. + * @returns {Array} Returns the converted array. + */function iteratorToArray(iterator){var data,result=[];while(!(data=iterator.next()).done){result.push(data.value);}return result;}/** + * Converts `map` to its key-value pairs. + * + * @private + * @param {Object} map The map to convert. + * @returns {Array} Returns the key-value pairs. + */function mapToArray(map){var index=-1,result=Array(map.size);map.forEach(function(value,key){result[++index]=[key,value];});return result;}/** + * Creates a unary function that invokes `func` with its argument transformed. + * + * @private + * @param {Function} func The function to wrap. + * @param {Function} transform The argument transform. + * @returns {Function} Returns the new function. + */function overArg(func,transform){return function(arg){return func(transform(arg));};}/** + * Replaces all `placeholder` elements in `array` with an internal placeholder + * and returns an array of their indexes. + * + * @private + * @param {Array} array The array to modify. + * @param {*} placeholder The placeholder to replace. + * @returns {Array} Returns the new array of placeholder indexes. + */function replaceHolders(array,placeholder){var index=-1,length=array.length,resIndex=0,result=[];while(++index true + * _.isFunction(_.bar); + * // => false + * + * lodash.isFunction(lodash.foo); + * // => false + * lodash.isFunction(lodash.bar); + * // => true + * + * // Create a suped-up `defer` in Node.js. + * var defer = _.runInContext({ 'setTimeout': setImmediate }).defer; + */var runInContext=function runInContext(context){context=context==null?root:_.defaults(root.Object(),context,_.pick(root,contextProps));/** Built-in constructor references. */var Array=context.Array,Date=context.Date,Error=context.Error,Function=context.Function,Math=context.Math,Object=context.Object,RegExp=context.RegExp,String=context.String,TypeError=context.TypeError;/** Used for built-in method references. */var arrayProto=Array.prototype,funcProto=Function.prototype,objectProto=Object.prototype;/** Used to detect overreaching core-js shims. */var coreJsData=context['__core-js_shared__'];/** Used to resolve the decompiled source of functions. */var funcToString=funcProto.toString;/** Used to check objects for own properties. */var hasOwnProperty=objectProto.hasOwnProperty;/** Used to generate unique IDs. */var idCounter=0;/** Used to detect methods masquerading as native. */var maskSrcKey=function(){var uid=/[^.]+$/.exec(coreJsData&&coreJsData.keys&&coreJsData.keys.IE_PROTO||'');return uid?'Symbol(src)_1.'+uid:'';}();/** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */var nativeObjectToString=objectProto.toString;/** Used to infer the `Object` constructor. */var objectCtorString=funcToString.call(Object);/** Used to restore the original `_` reference in `_.noConflict`. */var oldDash=root._;/** Used to detect if a method is native. */var reIsNative=RegExp('^'+funcToString.call(hasOwnProperty).replace(reRegExpChar,'\\$&').replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,'$1.*?')+'$');/** Built-in value references. */var Buffer=moduleExports?context.Buffer:undefined$1,Symbol=context.Symbol,Uint8Array=context.Uint8Array,allocUnsafe=Buffer?Buffer.allocUnsafe:undefined$1,getPrototype=overArg(Object.getPrototypeOf,Object),objectCreate=Object.create,propertyIsEnumerable=objectProto.propertyIsEnumerable,splice=arrayProto.splice,spreadableSymbol=Symbol?Symbol.isConcatSpreadable:undefined$1,symIterator=Symbol?Symbol.iterator:undefined$1,symToStringTag=Symbol?Symbol.toStringTag:undefined$1;var defineProperty=function(){try{var func=getNative(Object,'defineProperty');func({},'',{});return func;}catch(e){}}();/** Mocked built-ins. */var ctxClearTimeout=context.clearTimeout!==root.clearTimeout&&context.clearTimeout,ctxNow=Date&&Date.now!==root.Date.now&&Date.now,ctxSetTimeout=context.setTimeout!==root.setTimeout&&context.setTimeout;/* Built-in method references for those with the same name as other `lodash` methods. */var nativeCeil=Math.ceil,nativeFloor=Math.floor,nativeGetSymbols=Object.getOwnPropertySymbols,nativeIsBuffer=Buffer?Buffer.isBuffer:undefined$1,nativeIsFinite=context.isFinite,nativeJoin=arrayProto.join,nativeKeys=overArg(Object.keys,Object),nativeMax=Math.max,nativeMin=Math.min,nativeNow=Date.now,nativeParseInt=context.parseInt,nativeRandom=Math.random,nativeReverse=arrayProto.reverse;/* Built-in method references that are verified to be native. */var DataView=getNative(context,'DataView'),Map=getNative(context,'Map'),Promise=getNative(context,'Promise'),Set=getNative(context,'Set'),WeakMap=getNative(context,'WeakMap'),nativeCreate=getNative(Object,'create');/** Used to store function metadata. */var metaMap=WeakMap&&new WeakMap();/** Used to lookup unminified function names. */var realNames={};/** Used to detect maps, sets, and weakmaps. */var dataViewCtorString=toSource(DataView),mapCtorString=toSource(Map),promiseCtorString=toSource(Promise),setCtorString=toSource(Set),weakMapCtorString=toSource(WeakMap);/** Used to convert symbols to primitives and strings. */var symbolProto=Symbol?Symbol.prototype:undefined$1,symbolValueOf=symbolProto?symbolProto.valueOf:undefined$1,symbolToString=symbolProto?symbolProto.toString:undefined$1;/*------------------------------------------------------------------------*/ /** + * Creates a `lodash` object which wraps `value` to enable implicit method + * chain sequences. Methods that operate on and return arrays, collections, + * and functions can be chained together. Methods that retrieve a single value + * or may return a primitive value will automatically end the chain sequence + * and return the unwrapped value. Otherwise, the value must be unwrapped + * with `_#value`. + * + * Explicit chain sequences, which must be unwrapped with `_#value`, may be + * enabled using `_.chain`. + * + * The execution of chained methods is lazy, that is, it's deferred until + * `_#value` is implicitly or explicitly called. + * + * Lazy evaluation allows several methods to support shortcut fusion. + * Shortcut fusion is an optimization to merge iteratee calls; this avoids + * the creation of intermediate arrays and can greatly reduce the number of + * iteratee executions. Sections of a chain sequence qualify for shortcut + * fusion if the section is applied to an array and iteratees accept only + * one argument. The heuristic for whether a section qualifies for shortcut + * fusion is subject to change. + * + * Chaining is supported in custom builds as long as the `_#value` method is + * directly or indirectly included in the build. + * + * In addition to lodash methods, wrappers have `Array` and `String` methods. + * + * The wrapper `Array` methods are: + * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift` + * + * The wrapper `String` methods are: + * `replace` and `split` + * + * The wrapper methods that support shortcut fusion are: + * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`, + * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`, + * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray` + * + * The chainable wrapper methods are: + * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`, + * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`, + * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`, + * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`, + * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`, + * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`, + * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`, + * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`, + * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`, + * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`, + * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`, + * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`, + * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`, + * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`, + * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`, + * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`, + * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`, + * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`, + * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`, + * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`, + * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`, + * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`, + * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`, + * `zipObject`, `zipObjectDeep`, and `zipWith` + * + * The wrapper methods that are **not** chainable by default are: + * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`, + * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`, + * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`, + * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`, + * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`, + * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`, + * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`, + * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`, + * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`, + * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`, + * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`, + * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`, + * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`, + * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`, + * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`, + * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`, + * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`, + * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`, + * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`, + * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`, + * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`, + * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`, + * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`, + * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`, + * `upperFirst`, `value`, and `words` + * + * @name _ + * @constructor + * @category Seq + * @param {*} value The value to wrap in a `lodash` instance. + * @returns {Object} Returns the new `lodash` wrapper instance. + * @example + * + * function square(n) { + * return n * n; + * } + * + * var wrapped = _([1, 2, 3]); + * + * // Returns an unwrapped value. + * wrapped.reduce(_.add); + * // => 6 + * + * // Returns a wrapped value. + * var squares = wrapped.map(square); + * + * _.isArray(squares); + * // => false + * + * _.isArray(squares.value()); + * // => true + */function lodash(value){if(isObjectLike(value)&&!isArray(value)&&!(value instanceof LazyWrapper)){if(value instanceof LodashWrapper){return value;}if(hasOwnProperty.call(value,'__wrapped__')){return wrapperClone(value);}}return new LodashWrapper(value);}/** + * The base implementation of `_.create` without support for assigning + * properties to the created object. + * + * @private + * @param {Object} proto The object to inherit from. + * @returns {Object} Returns the new object. + */var baseCreate=function(){function object(){}return function(proto){if(!isObject(proto)){return {};}if(objectCreate){return objectCreate(proto);}object.prototype=proto;var result=new object();object.prototype=undefined$1;return result;};}();/** + * The function whose prototype chain sequence wrappers inherit from. + * + * @private + */function baseLodash(){// No operation performed. + }/** + * The base constructor for creating `lodash` wrapper objects. + * + * @private + * @param {*} value The value to wrap. + * @param {boolean} [chainAll] Enable explicit method chain sequences. + */function LodashWrapper(value,chainAll){this.__wrapped__=value;this.__actions__=[];this.__chain__=!!chainAll;this.__index__=0;this.__values__=undefined$1;}/** + * By default, the template delimiters used by lodash are like those in + * embedded Ruby (ERB) as well as ES2015 template strings. Change the + * following template settings to use alternative delimiters. + * + * @static + * @memberOf _ + * @type {Object} + */lodash.templateSettings={/** + * Used to detect `data` property values to be HTML-escaped. + * + * @memberOf _.templateSettings + * @type {RegExp} + */'escape':reEscape,/** + * Used to detect code to be evaluated. + * + * @memberOf _.templateSettings + * @type {RegExp} + */'evaluate':reEvaluate,/** + * Used to detect `data` property values to inject. + * + * @memberOf _.templateSettings + * @type {RegExp} + */'interpolate':reInterpolate,/** + * Used to reference the data object in the template text. + * + * @memberOf _.templateSettings + * @type {string} + */'variable':'',/** + * Used to import variables into the compiled template. + * + * @memberOf _.templateSettings + * @type {Object} + */'imports':{/** + * A reference to the `lodash` function. + * + * @memberOf _.templateSettings.imports + * @type {Function} + */'_':lodash}};// Ensure wrappers are instances of `baseLodash`. + lodash.prototype=baseLodash.prototype;lodash.prototype.constructor=lodash;LodashWrapper.prototype=baseCreate(baseLodash.prototype);LodashWrapper.prototype.constructor=LodashWrapper;/*------------------------------------------------------------------------*/ /** + * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation. + * + * @private + * @constructor + * @param {*} value The value to wrap. + */function LazyWrapper(value){this.__wrapped__=value;this.__actions__=[];this.__dir__=1;this.__filtered__=false;this.__iteratees__=[];this.__takeCount__=MAX_ARRAY_LENGTH;this.__views__=[];}/** + * Creates a clone of the lazy wrapper object. + * + * @private + * @name clone + * @memberOf LazyWrapper + * @returns {Object} Returns the cloned `LazyWrapper` object. + */function lazyClone(){var result=new LazyWrapper(this.__wrapped__);result.__actions__=copyArray(this.__actions__);result.__dir__=this.__dir__;result.__filtered__=this.__filtered__;result.__iteratees__=copyArray(this.__iteratees__);result.__takeCount__=this.__takeCount__;result.__views__=copyArray(this.__views__);return result;}/** + * Reverses the direction of lazy iteration. + * + * @private + * @name reverse + * @memberOf LazyWrapper + * @returns {Object} Returns the new reversed `LazyWrapper` object. + */function lazyReverse(){if(this.__filtered__){var result=new LazyWrapper(this);result.__dir__=-1;result.__filtered__=true;}else {result=this.clone();result.__dir__*=-1;}return result;}/** + * Extracts the unwrapped value from its lazy wrapper. + * + * @private + * @name value + * @memberOf LazyWrapper + * @returns {*} Returns the unwrapped value. + */function lazyValue(){var array=this.__wrapped__.value(),dir=this.__dir__,isArr=isArray(array),isRight=dir<0,arrLength=isArr?array.length:0,view=getView(0,arrLength,this.__views__),start=view.start,end=view.end,length=end-start,index=isRight?end:start-1,iteratees=this.__iteratees__,iterLength=iteratees.length,resIndex=0,takeCount=nativeMin(length,this.__takeCount__);if(!isArr||!isRight&&arrLength==length&&takeCount==length){return baseWrapperValue(array,this.__actions__);}var result=[];outer:while(length--&&resIndex-1;}/** + * Sets the list cache `key` to `value`. + * + * @private + * @name set + * @memberOf ListCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the list cache instance. + */function listCacheSet(key,value){var data=this.__data__,index=assocIndexOf(data,key);if(index<0){++this.size;data.push([key,value]);}else {data[index][1]=value;}return this;}// Add methods to `ListCache`. + ListCache.prototype.clear=listCacheClear;ListCache.prototype['delete']=listCacheDelete;ListCache.prototype.get=listCacheGet;ListCache.prototype.has=listCacheHas;ListCache.prototype.set=listCacheSet;/*------------------------------------------------------------------------*/ /** + * Creates a map cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */function MapCache(entries){var index=-1,length=entries==null?0:entries.length;this.clear();while(++index=lower?number:lower;}}return number;}/** + * The base implementation of `_.clone` and `_.cloneDeep` which tracks + * traversed objects. + * + * @private + * @param {*} value The value to clone. + * @param {boolean} bitmask The bitmask flags. + * 1 - Deep clone + * 2 - Flatten inherited properties + * 4 - Clone symbols + * @param {Function} [customizer] The function to customize cloning. + * @param {string} [key] The key of `value`. + * @param {Object} [object] The parent object of `value`. + * @param {Object} [stack] Tracks traversed objects and their clone counterparts. + * @returns {*} Returns the cloned value. + */function baseClone(value,bitmask,customizer,key,object,stack){var result,isDeep=bitmask&CLONE_DEEP_FLAG,isFlat=bitmask&CLONE_FLAT_FLAG,isFull=bitmask&CLONE_SYMBOLS_FLAG;if(customizer){result=object?customizer(value,key,object,stack):customizer(value);}if(result!==undefined$1){return result;}if(!isObject(value)){return value;}var isArr=isArray(value);if(isArr){result=initCloneArray(value);if(!isDeep){return copyArray(value,result);}}else {var tag=getTag(value),isFunc=tag==funcTag||tag==genTag;if(isBuffer(value)){return cloneBuffer(value,isDeep);}if(tag==objectTag||tag==argsTag||isFunc&&!object){result=isFlat||isFunc?{}:initCloneObject(value);if(!isDeep){return isFlat?copySymbolsIn(value,baseAssignIn(result,value)):copySymbols(value,baseAssign(result,value));}}else {if(!cloneableTags[tag]){return object?value:{};}result=initCloneByTag(value,tag,isDeep);}}// Check for circular references and return its corresponding clone. + stack||(stack=new Stack());var stacked=stack.get(value);if(stacked){return stacked;}stack.set(value,result);if(isSet(value)){value.forEach(function(subValue){result.add(baseClone(subValue,bitmask,customizer,subValue,value,stack));});}else if(isMap(value)){value.forEach(function(subValue,key){result.set(key,baseClone(subValue,bitmask,customizer,key,value,stack));});}var keysFunc=isFull?isFlat?getAllKeysIn:getAllKeys:isFlat?keysIn:keys;var props=isArr?undefined$1:keysFunc(value);arrayEach(props||value,function(subValue,key){if(props){key=subValue;subValue=value[key];}// Recursively populate clone (susceptible to call stack limits). + assignValue(result,key,baseClone(subValue,bitmask,customizer,key,value,stack));});return result;}/** + * The base implementation of `_.conforms` which doesn't clone `source`. + * + * @private + * @param {Object} source The object of property predicates to conform to. + * @returns {Function} Returns the new spec function. + */function baseConforms(source){var props=keys(source);return function(object){return baseConformsTo(object,source,props);};}/** + * The base implementation of `_.conformsTo` which accepts `props` to check. + * + * @private + * @param {Object} object The object to inspect. + * @param {Object} source The object of property predicates to conform to. + * @returns {boolean} Returns `true` if `object` conforms, else `false`. + */function baseConformsTo(object,source,props){var length=props.length;if(object==null){return !length;}object=Object(object);while(length--){var key=props[length],predicate=source[key],value=object[key];if(value===undefined$1&&!(key in object)||!predicate(value)){return false;}}return true;}/** + * The base implementation of `_.delay` and `_.defer` which accepts `args` + * to provide to `func`. + * + * @private + * @param {Function} func The function to delay. + * @param {number} wait The number of milliseconds to delay invocation. + * @param {Array} args The arguments to provide to `func`. + * @returns {number|Object} Returns the timer id or timeout object. + */function baseDelay(func,wait,args){if(typeof func!='function'){throw new TypeError(FUNC_ERROR_TEXT);}return setTimeout(function(){func.apply(undefined$1,args);},wait);}/** + * The base implementation of methods like `_.difference` without support + * for excluding multiple arrays or iteratee shorthands. + * + * @private + * @param {Array} array The array to inspect. + * @param {Array} values The values to exclude. + * @param {Function} [iteratee] The iteratee invoked per element. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new array of filtered values. + */function baseDifference(array,values,iteratee,comparator){var index=-1,includes=arrayIncludes,isCommon=true,length=array.length,result=[],valuesLength=values.length;if(!length){return result;}if(iteratee){values=arrayMap(values,baseUnary(iteratee));}if(comparator){includes=arrayIncludesWith;isCommon=false;}else if(values.length>=LARGE_ARRAY_SIZE){includes=cacheHas;isCommon=false;values=new SetCache(values);}outer:while(++indexlength?0:length+start;}end=end===undefined$1||end>length?length:toInteger(end);if(end<0){end+=length;}end=start>end?0:toLength(end);while(start0&&predicate(value)){if(depth>1){// Recursively flatten arrays (susceptible to call stack limits). + baseFlatten(value,depth-1,predicate,isStrict,result);}else {arrayPush(result,value);}}else if(!isStrict){result[result.length]=value;}}return result;}/** + * The base implementation of `baseForOwn` which iterates over `object` + * properties returned by `keysFunc` and invokes `iteratee` for each property. + * Iteratee functions may exit iteration early by explicitly returning `false`. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {Function} keysFunc The function to get the keys of `object`. + * @returns {Object} Returns `object`. + */var baseFor=createBaseFor();/** + * This function is like `baseFor` except that it iterates over properties + * in the opposite order. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {Function} keysFunc The function to get the keys of `object`. + * @returns {Object} Returns `object`. + */var baseForRight=createBaseFor(true);/** + * The base implementation of `_.forOwn` without support for iteratee shorthands. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Object} Returns `object`. + */function baseForOwn(object,iteratee){return object&&baseFor(object,iteratee,keys);}/** + * The base implementation of `_.forOwnRight` without support for iteratee shorthands. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Object} Returns `object`. + */function baseForOwnRight(object,iteratee){return object&&baseForRight(object,iteratee,keys);}/** + * The base implementation of `_.functions` which creates an array of + * `object` function property names filtered from `props`. + * + * @private + * @param {Object} object The object to inspect. + * @param {Array} props The property names to filter. + * @returns {Array} Returns the function names. + */function baseFunctions(object,props){return arrayFilter(props,function(key){return isFunction(object[key]);});}/** + * The base implementation of `_.get` without support for default values. + * + * @private + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to get. + * @returns {*} Returns the resolved value. + */function baseGet(object,path){path=castPath(path,object);var index=0,length=path.length;while(object!=null&&indexother;}/** + * The base implementation of `_.has` without support for deep paths. + * + * @private + * @param {Object} [object] The object to query. + * @param {Array|string} key The key to check. + * @returns {boolean} Returns `true` if `key` exists, else `false`. + */function baseHas(object,key){return object!=null&&hasOwnProperty.call(object,key);}/** + * The base implementation of `_.hasIn` without support for deep paths. + * + * @private + * @param {Object} [object] The object to query. + * @param {Array|string} key The key to check. + * @returns {boolean} Returns `true` if `key` exists, else `false`. + */function baseHasIn(object,key){return object!=null&&key in Object(object);}/** + * The base implementation of `_.inRange` which doesn't coerce arguments. + * + * @private + * @param {number} number The number to check. + * @param {number} start The start of the range. + * @param {number} end The end of the range. + * @returns {boolean} Returns `true` if `number` is in the range, else `false`. + */function baseInRange(number,start,end){return number>=nativeMin(start,end)&&number=120&&array.length>=120)?new SetCache(othIndex&&array):undefined$1;}array=arrays[0];var index=-1,seen=caches[0];outer:while(++index-1){if(seen!==array){splice.call(seen,fromIndex,1);}splice.call(array,fromIndex,1);}}return array;}/** + * The base implementation of `_.pullAt` without support for individual + * indexes or capturing the removed elements. + * + * @private + * @param {Array} array The array to modify. + * @param {number[]} indexes The indexes of elements to remove. + * @returns {Array} Returns `array`. + */function basePullAt(array,indexes){var length=array?indexes.length:0,lastIndex=length-1;while(length--){var index=indexes[length];if(length==lastIndex||index!==previous){var previous=index;if(isIndex(index)){splice.call(array,index,1);}else {baseUnset(array,index);}}}return array;}/** + * The base implementation of `_.random` without support for returning + * floating-point numbers. + * + * @private + * @param {number} lower The lower bound. + * @param {number} upper The upper bound. + * @returns {number} Returns the random number. + */function baseRandom(lower,upper){return lower+nativeFloor(nativeRandom()*(upper-lower+1));}/** + * The base implementation of `_.range` and `_.rangeRight` which doesn't + * coerce arguments. + * + * @private + * @param {number} start The start of the range. + * @param {number} end The end of the range. + * @param {number} step The value to increment or decrement by. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Array} Returns the range of numbers. + */function baseRange(start,end,step,fromRight){var index=-1,length=nativeMax(nativeCeil((end-start)/(step||1)),0),result=Array(length);while(length--){result[fromRight?length:++index]=start;start+=step;}return result;}/** + * The base implementation of `_.repeat` which doesn't coerce arguments. + * + * @private + * @param {string} string The string to repeat. + * @param {number} n The number of times to repeat the string. + * @returns {string} Returns the repeated string. + */function baseRepeat(string,n){var result='';if(!string||n<1||n>MAX_SAFE_INTEGER){return result;}// Leverage the exponentiation by squaring algorithm for a faster repeat. + // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details. + do{if(n%2){result+=string;}n=nativeFloor(n/2);if(n){string+=string;}}while(n);return result;}/** + * The base implementation of `_.rest` which doesn't validate or coerce arguments. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @returns {Function} Returns the new function. + */function baseRest(func,start){return setToString(overRest(func,start,identity),func+'');}/** + * The base implementation of `_.sample`. + * + * @private + * @param {Array|Object} collection The collection to sample. + * @returns {*} Returns the random element. + */function baseSample(collection){return arraySample(values(collection));}/** + * The base implementation of `_.sampleSize` without param guards. + * + * @private + * @param {Array|Object} collection The collection to sample. + * @param {number} n The number of elements to sample. + * @returns {Array} Returns the random elements. + */function baseSampleSize(collection,n){var array=values(collection);return shuffleSelf(array,baseClamp(n,0,array.length));}/** + * The base implementation of `_.set`. + * + * @private + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to set. + * @param {*} value The value to set. + * @param {Function} [customizer] The function to customize path creation. + * @returns {Object} Returns `object`. + */function baseSet(object,path,value,customizer){if(!isObject(object)){return object;}path=castPath(path,object);var index=-1,length=path.length,lastIndex=length-1,nested=object;while(nested!=null&&++indexlength?0:length+start;}end=end>length?length:end;if(end<0){end+=length;}length=start>end?0:end-start>>>0;start>>>=0;var result=Array(length);while(++index>>1,computed=array[mid];if(computed!==null&&!isSymbol(computed)&&(retHighest?computed<=value:computed=LARGE_ARRAY_SIZE){var set=iteratee?null:createSet(array);if(set){return setToArray(set);}isCommon=false;includes=cacheHas;seen=new SetCache();}else {seen=iteratee?[]:result;}outer:while(++index=length?array:baseSlice(array,start,end);}/** + * A simple wrapper around the global [`clearTimeout`](https://mdn.io/clearTimeout). + * + * @private + * @param {number|Object} id The timer id or timeout object of the timer to clear. + */var clearTimeout=ctxClearTimeout||function(id){return root.clearTimeout(id);};/** + * Creates a clone of `buffer`. + * + * @private + * @param {Buffer} buffer The buffer to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Buffer} Returns the cloned buffer. + */function cloneBuffer(buffer,isDeep){if(isDeep){return buffer.slice();}var length=buffer.length,result=allocUnsafe?allocUnsafe(length):new buffer.constructor(length);buffer.copy(result);return result;}/** + * Creates a clone of `arrayBuffer`. + * + * @private + * @param {ArrayBuffer} arrayBuffer The array buffer to clone. + * @returns {ArrayBuffer} Returns the cloned array buffer. + */function cloneArrayBuffer(arrayBuffer){var result=new arrayBuffer.constructor(arrayBuffer.byteLength);new Uint8Array(result).set(new Uint8Array(arrayBuffer));return result;}/** + * Creates a clone of `dataView`. + * + * @private + * @param {Object} dataView The data view to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Object} Returns the cloned data view. + */function cloneDataView(dataView,isDeep){var buffer=isDeep?cloneArrayBuffer(dataView.buffer):dataView.buffer;return new dataView.constructor(buffer,dataView.byteOffset,dataView.byteLength);}/** + * Creates a clone of `regexp`. + * + * @private + * @param {Object} regexp The regexp to clone. + * @returns {Object} Returns the cloned regexp. + */function cloneRegExp(regexp){var result=new regexp.constructor(regexp.source,reFlags.exec(regexp));result.lastIndex=regexp.lastIndex;return result;}/** + * Creates a clone of the `symbol` object. + * + * @private + * @param {Object} symbol The symbol object to clone. + * @returns {Object} Returns the cloned symbol object. + */function cloneSymbol(symbol){return symbolValueOf?Object(symbolValueOf.call(symbol)):{};}/** + * Creates a clone of `typedArray`. + * + * @private + * @param {Object} typedArray The typed array to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Object} Returns the cloned typed array. + */function cloneTypedArray(typedArray,isDeep){var buffer=isDeep?cloneArrayBuffer(typedArray.buffer):typedArray.buffer;return new typedArray.constructor(buffer,typedArray.byteOffset,typedArray.length);}/** + * Compares values to sort them in ascending order. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {number} Returns the sort order indicator for `value`. + */function compareAscending(value,other){if(value!==other){var valIsDefined=value!==undefined$1,valIsNull=value===null,valIsReflexive=value===value,valIsSymbol=isSymbol(value);var othIsDefined=other!==undefined$1,othIsNull=other===null,othIsReflexive=other===other,othIsSymbol=isSymbol(other);if(!othIsNull&&!othIsSymbol&&!valIsSymbol&&value>other||valIsSymbol&&othIsDefined&&othIsReflexive&&!othIsNull&&!othIsSymbol||valIsNull&&othIsDefined&&othIsReflexive||!valIsDefined&&othIsReflexive||!valIsReflexive){return 1;}if(!valIsNull&&!valIsSymbol&&!othIsSymbol&&value=ordersLength){return result;}var order=orders[index];return result*(order=='desc'?-1:1);}}// Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications + // that causes it, under certain circumstances, to provide the same value for + // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247 + // for more details. + // + // This also ensures a stable sort in V8 and other engines. + // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details. + return object.index-other.index;}/** + * Creates an array that is the composition of partially applied arguments, + * placeholders, and provided arguments into a single array of arguments. + * + * @private + * @param {Array} args The provided arguments. + * @param {Array} partials The arguments to prepend to those provided. + * @param {Array} holders The `partials` placeholder indexes. + * @params {boolean} [isCurried] Specify composing for a curried function. + * @returns {Array} Returns the new array of composed arguments. + */function composeArgs(args,partials,holders,isCurried){var argsIndex=-1,argsLength=args.length,holdersLength=holders.length,leftIndex=-1,leftLength=partials.length,rangeLength=nativeMax(argsLength-holdersLength,0),result=Array(leftLength+rangeLength),isUncurried=!isCurried;while(++leftIndex1?sources[length-1]:undefined$1,guard=length>2?sources[2]:undefined$1;customizer=assigner.length>3&&typeof customizer=='function'?(length--,customizer):undefined$1;if(guard&&isIterateeCall(sources[0],sources[1],guard)){customizer=length<3?undefined$1:customizer;length=1;}object=Object(object);while(++index-1?iterable[iteratee?collection[index]:index]:undefined$1;};}/** + * Creates a `_.flow` or `_.flowRight` function. + * + * @private + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new flow function. + */function createFlow(fromRight){return flatRest(function(funcs){var length=funcs.length,index=length,prereq=LodashWrapper.prototype.thru;if(fromRight){funcs.reverse();}while(index--){var func=funcs[index];if(typeof func!='function'){throw new TypeError(FUNC_ERROR_TEXT);}if(prereq&&!wrapper&&getFuncName(func)=='wrapper'){var wrapper=new LodashWrapper([],true);}}index=wrapper?index:length;while(++index1){args.reverse();}if(isAry&&aryarrLength)){return false;}// Check that cyclic values are equal. + var arrStacked=stack.get(array);var othStacked=stack.get(other);if(arrStacked&&othStacked){return arrStacked==other&&othStacked==array;}var index=-1,result=true,seen=bitmask&COMPARE_UNORDERED_FLAG?new SetCache():undefined$1;stack.set(array,other);stack.set(other,array);// Ignore non-index properties. + while(++index1?'& ':'')+details[lastIndex];details=details.join(length>2?', ':' ');return source.replace(reWrapComment,'{\n/* [wrapped with '+details+'] */\n');}/** + * Checks if `value` is a flattenable `arguments` object or array. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is flattenable, else `false`. + */function isFlattenable(value){return isArray(value)||isArguments(value)||!!(spreadableSymbol&&value&&value[spreadableSymbol]);}/** + * Checks if `value` is a valid array-like index. + * + * @private + * @param {*} value The value to check. + * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. + * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. + */function isIndex(value,length){var type=typeof value;length=length==null?MAX_SAFE_INTEGER:length;return !!length&&(type=='number'||type!='symbol'&&reIsUint.test(value))&&value>-1&&value%1==0&&value0){if(++count>=HOT_COUNT){return arguments[0];}}else {count=0;}return func.apply(undefined$1,arguments);};}/** + * A specialized version of `_.shuffle` which mutates and sets the size of `array`. + * + * @private + * @param {Array} array The array to shuffle. + * @param {number} [size=array.length] The size of `array`. + * @returns {Array} Returns `array`. + */function shuffleSelf(array,size){var index=-1,length=array.length,lastIndex=length-1;size=size===undefined$1?length:size;while(++index [['a', 'b'], ['c', 'd']] + * + * _.chunk(['a', 'b', 'c', 'd'], 3); + * // => [['a', 'b', 'c'], ['d']] + */function chunk(array,size,guard){if(guard?isIterateeCall(array,size,guard):size===undefined$1){size=1;}else {size=nativeMax(toInteger(size),0);}var length=array==null?0:array.length;if(!length||size<1){return [];}var index=0,resIndex=0,result=Array(nativeCeil(length/size));while(index [1, 2, 3] + */function compact(array){var index=-1,length=array==null?0:array.length,resIndex=0,result=[];while(++index [1, 2, 3, [4]] + * + * console.log(array); + * // => [1] + */function concat(){var length=arguments.length;if(!length){return [];}var args=Array(length-1),array=arguments[0],index=length;while(index--){args[index-1]=arguments[index];}return arrayPush(isArray(array)?copyArray(array):[array],baseFlatten(args,1));}/** + * Creates an array of `array` values not included in the other given arrays + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. The order and references of result values are + * determined by the first array. + * + * **Note:** Unlike `_.pullAll`, this method returns a new array. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {...Array} [values] The values to exclude. + * @returns {Array} Returns the new array of filtered values. + * @see _.without, _.xor + * @example + * + * _.difference([2, 1], [2, 3]); + * // => [1] + */var difference=baseRest(function(array,values){return isArrayLikeObject(array)?baseDifference(array,baseFlatten(values,1,isArrayLikeObject,true)):[];});/** + * This method is like `_.difference` except that it accepts `iteratee` which + * is invoked for each element of `array` and `values` to generate the criterion + * by which they're compared. The order and references of result values are + * determined by the first array. The iteratee is invoked with one argument: + * (value). + * + * **Note:** Unlike `_.pullAllBy`, this method returns a new array. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {...Array} [values] The values to exclude. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. + * @returns {Array} Returns the new array of filtered values. + * @example + * + * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor); + * // => [1.2] + * + * // The `_.property` iteratee shorthand. + * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x'); + * // => [{ 'x': 2 }] + */var differenceBy=baseRest(function(array,values){var iteratee=last(values);if(isArrayLikeObject(iteratee)){iteratee=undefined$1;}return isArrayLikeObject(array)?baseDifference(array,baseFlatten(values,1,isArrayLikeObject,true),getIteratee(iteratee,2)):[];});/** + * This method is like `_.difference` except that it accepts `comparator` + * which is invoked to compare elements of `array` to `values`. The order and + * references of result values are determined by the first array. The comparator + * is invoked with two arguments: (arrVal, othVal). + * + * **Note:** Unlike `_.pullAllWith`, this method returns a new array. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {...Array} [values] The values to exclude. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new array of filtered values. + * @example + * + * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; + * + * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual); + * // => [{ 'x': 2, 'y': 1 }] + */var differenceWith=baseRest(function(array,values){var comparator=last(values);if(isArrayLikeObject(comparator)){comparator=undefined$1;}return isArrayLikeObject(array)?baseDifference(array,baseFlatten(values,1,isArrayLikeObject,true),undefined$1,comparator):[];});/** + * Creates a slice of `array` with `n` elements dropped from the beginning. + * + * @static + * @memberOf _ + * @since 0.5.0 + * @category Array + * @param {Array} array The array to query. + * @param {number} [n=1] The number of elements to drop. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Array} Returns the slice of `array`. + * @example + * + * _.drop([1, 2, 3]); + * // => [2, 3] + * + * _.drop([1, 2, 3], 2); + * // => [3] + * + * _.drop([1, 2, 3], 5); + * // => [] + * + * _.drop([1, 2, 3], 0); + * // => [1, 2, 3] + */function drop(array,n,guard){var length=array==null?0:array.length;if(!length){return [];}n=guard||n===undefined$1?1:toInteger(n);return baseSlice(array,n<0?0:n,length);}/** + * Creates a slice of `array` with `n` elements dropped from the end. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to query. + * @param {number} [n=1] The number of elements to drop. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Array} Returns the slice of `array`. + * @example + * + * _.dropRight([1, 2, 3]); + * // => [1, 2] + * + * _.dropRight([1, 2, 3], 2); + * // => [1] + * + * _.dropRight([1, 2, 3], 5); + * // => [] + * + * _.dropRight([1, 2, 3], 0); + * // => [1, 2, 3] + */function dropRight(array,n,guard){var length=array==null?0:array.length;if(!length){return [];}n=guard||n===undefined$1?1:toInteger(n);n=length-n;return baseSlice(array,0,n<0?0:n);}/** + * Creates a slice of `array` excluding elements dropped from the end. + * Elements are dropped until `predicate` returns falsey. The predicate is + * invoked with three arguments: (value, index, array). + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to query. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {Array} Returns the slice of `array`. + * @example + * + * var users = [ + * { 'user': 'barney', 'active': true }, + * { 'user': 'fred', 'active': false }, + * { 'user': 'pebbles', 'active': false } + * ]; + * + * _.dropRightWhile(users, function(o) { return !o.active; }); + * // => objects for ['barney'] + * + * // The `_.matches` iteratee shorthand. + * _.dropRightWhile(users, { 'user': 'pebbles', 'active': false }); + * // => objects for ['barney', 'fred'] + * + * // The `_.matchesProperty` iteratee shorthand. + * _.dropRightWhile(users, ['active', false]); + * // => objects for ['barney'] + * + * // The `_.property` iteratee shorthand. + * _.dropRightWhile(users, 'active'); + * // => objects for ['barney', 'fred', 'pebbles'] + */function dropRightWhile(array,predicate){return array&&array.length?baseWhile(array,getIteratee(predicate,3),true,true):[];}/** + * Creates a slice of `array` excluding elements dropped from the beginning. + * Elements are dropped until `predicate` returns falsey. The predicate is + * invoked with three arguments: (value, index, array). + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to query. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {Array} Returns the slice of `array`. + * @example + * + * var users = [ + * { 'user': 'barney', 'active': false }, + * { 'user': 'fred', 'active': false }, + * { 'user': 'pebbles', 'active': true } + * ]; + * + * _.dropWhile(users, function(o) { return !o.active; }); + * // => objects for ['pebbles'] + * + * // The `_.matches` iteratee shorthand. + * _.dropWhile(users, { 'user': 'barney', 'active': false }); + * // => objects for ['fred', 'pebbles'] + * + * // The `_.matchesProperty` iteratee shorthand. + * _.dropWhile(users, ['active', false]); + * // => objects for ['pebbles'] + * + * // The `_.property` iteratee shorthand. + * _.dropWhile(users, 'active'); + * // => objects for ['barney', 'fred', 'pebbles'] + */function dropWhile(array,predicate){return array&&array.length?baseWhile(array,getIteratee(predicate,3),true):[];}/** + * Fills elements of `array` with `value` from `start` up to, but not + * including, `end`. + * + * **Note:** This method mutates `array`. + * + * @static + * @memberOf _ + * @since 3.2.0 + * @category Array + * @param {Array} array The array to fill. + * @param {*} value The value to fill `array` with. + * @param {number} [start=0] The start position. + * @param {number} [end=array.length] The end position. + * @returns {Array} Returns `array`. + * @example + * + * var array = [1, 2, 3]; + * + * _.fill(array, 'a'); + * console.log(array); + * // => ['a', 'a', 'a'] + * + * _.fill(Array(3), 2); + * // => [2, 2, 2] + * + * _.fill([4, 6, 8, 10], '*', 1, 3); + * // => [4, '*', '*', 10] + */function fill(array,value,start,end){var length=array==null?0:array.length;if(!length){return [];}if(start&&typeof start!='number'&&isIterateeCall(array,value,start)){start=0;end=length;}return baseFill(array,value,start,end);}/** + * This method is like `_.find` except that it returns the index of the first + * element `predicate` returns truthy for instead of the element itself. + * + * @static + * @memberOf _ + * @since 1.1.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param {number} [fromIndex=0] The index to search from. + * @returns {number} Returns the index of the found element, else `-1`. + * @example + * + * var users = [ + * { 'user': 'barney', 'active': false }, + * { 'user': 'fred', 'active': false }, + * { 'user': 'pebbles', 'active': true } + * ]; + * + * _.findIndex(users, function(o) { return o.user == 'barney'; }); + * // => 0 + * + * // The `_.matches` iteratee shorthand. + * _.findIndex(users, { 'user': 'fred', 'active': false }); + * // => 1 + * + * // The `_.matchesProperty` iteratee shorthand. + * _.findIndex(users, ['active', false]); + * // => 0 + * + * // The `_.property` iteratee shorthand. + * _.findIndex(users, 'active'); + * // => 2 + */function findIndex(array,predicate,fromIndex){var length=array==null?0:array.length;if(!length){return -1;}var index=fromIndex==null?0:toInteger(fromIndex);if(index<0){index=nativeMax(length+index,0);}return baseFindIndex(array,getIteratee(predicate,3),index);}/** + * This method is like `_.findIndex` except that it iterates over elements + * of `collection` from right to left. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param {number} [fromIndex=array.length-1] The index to search from. + * @returns {number} Returns the index of the found element, else `-1`. + * @example + * + * var users = [ + * { 'user': 'barney', 'active': true }, + * { 'user': 'fred', 'active': false }, + * { 'user': 'pebbles', 'active': false } + * ]; + * + * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; }); + * // => 2 + * + * // The `_.matches` iteratee shorthand. + * _.findLastIndex(users, { 'user': 'barney', 'active': true }); + * // => 0 + * + * // The `_.matchesProperty` iteratee shorthand. + * _.findLastIndex(users, ['active', false]); + * // => 2 + * + * // The `_.property` iteratee shorthand. + * _.findLastIndex(users, 'active'); + * // => 0 + */function findLastIndex(array,predicate,fromIndex){var length=array==null?0:array.length;if(!length){return -1;}var index=length-1;if(fromIndex!==undefined$1){index=toInteger(fromIndex);index=fromIndex<0?nativeMax(length+index,0):nativeMin(index,length-1);}return baseFindIndex(array,getIteratee(predicate,3),index,true);}/** + * Flattens `array` a single level deep. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to flatten. + * @returns {Array} Returns the new flattened array. + * @example + * + * _.flatten([1, [2, [3, [4]], 5]]); + * // => [1, 2, [3, [4]], 5] + */function flatten(array){var length=array==null?0:array.length;return length?baseFlatten(array,1):[];}/** + * Recursively flattens `array`. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to flatten. + * @returns {Array} Returns the new flattened array. + * @example + * + * _.flattenDeep([1, [2, [3, [4]], 5]]); + * // => [1, 2, 3, 4, 5] + */function flattenDeep(array){var length=array==null?0:array.length;return length?baseFlatten(array,INFINITY):[];}/** + * Recursively flatten `array` up to `depth` times. + * + * @static + * @memberOf _ + * @since 4.4.0 + * @category Array + * @param {Array} array The array to flatten. + * @param {number} [depth=1] The maximum recursion depth. + * @returns {Array} Returns the new flattened array. + * @example + * + * var array = [1, [2, [3, [4]], 5]]; + * + * _.flattenDepth(array, 1); + * // => [1, 2, [3, [4]], 5] + * + * _.flattenDepth(array, 2); + * // => [1, 2, 3, [4], 5] + */function flattenDepth(array,depth){var length=array==null?0:array.length;if(!length){return [];}depth=depth===undefined$1?1:toInteger(depth);return baseFlatten(array,depth);}/** + * The inverse of `_.toPairs`; this method returns an object composed + * from key-value `pairs`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} pairs The key-value pairs. + * @returns {Object} Returns the new object. + * @example + * + * _.fromPairs([['a', 1], ['b', 2]]); + * // => { 'a': 1, 'b': 2 } + */function fromPairs(pairs){var index=-1,length=pairs==null?0:pairs.length,result={};while(++index 1 + * + * _.head([]); + * // => undefined + */function head(array){return array&&array.length?array[0]:undefined$1;}/** + * Gets the index at which the first occurrence of `value` is found in `array` + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. If `fromIndex` is negative, it's used as the + * offset from the end of `array`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} [fromIndex=0] The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. + * @example + * + * _.indexOf([1, 2, 1, 2], 2); + * // => 1 + * + * // Search from the `fromIndex`. + * _.indexOf([1, 2, 1, 2], 2, 2); + * // => 3 + */function indexOf(array,value,fromIndex){var length=array==null?0:array.length;if(!length){return -1;}var index=fromIndex==null?0:toInteger(fromIndex);if(index<0){index=nativeMax(length+index,0);}return baseIndexOf(array,value,index);}/** + * Gets all but the last element of `array`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to query. + * @returns {Array} Returns the slice of `array`. + * @example + * + * _.initial([1, 2, 3]); + * // => [1, 2] + */function initial(array){var length=array==null?0:array.length;return length?baseSlice(array,0,-1):[];}/** + * Creates an array of unique values that are included in all given arrays + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. The order and references of result values are + * determined by the first array. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {...Array} [arrays] The arrays to inspect. + * @returns {Array} Returns the new array of intersecting values. + * @example + * + * _.intersection([2, 1], [2, 3]); + * // => [2] + */var intersection=baseRest(function(arrays){var mapped=arrayMap(arrays,castArrayLikeObject);return mapped.length&&mapped[0]===arrays[0]?baseIntersection(mapped):[];});/** + * This method is like `_.intersection` except that it accepts `iteratee` + * which is invoked for each element of each `arrays` to generate the criterion + * by which they're compared. The order and references of result values are + * determined by the first array. The iteratee is invoked with one argument: + * (value). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {...Array} [arrays] The arrays to inspect. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. + * @returns {Array} Returns the new array of intersecting values. + * @example + * + * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor); + * // => [2.1] + * + * // The `_.property` iteratee shorthand. + * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x'); + * // => [{ 'x': 1 }] + */var intersectionBy=baseRest(function(arrays){var iteratee=last(arrays),mapped=arrayMap(arrays,castArrayLikeObject);if(iteratee===last(mapped)){iteratee=undefined$1;}else {mapped.pop();}return mapped.length&&mapped[0]===arrays[0]?baseIntersection(mapped,getIteratee(iteratee,2)):[];});/** + * This method is like `_.intersection` except that it accepts `comparator` + * which is invoked to compare elements of `arrays`. The order and references + * of result values are determined by the first array. The comparator is + * invoked with two arguments: (arrVal, othVal). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {...Array} [arrays] The arrays to inspect. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new array of intersecting values. + * @example + * + * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; + * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }]; + * + * _.intersectionWith(objects, others, _.isEqual); + * // => [{ 'x': 1, 'y': 2 }] + */var intersectionWith=baseRest(function(arrays){var comparator=last(arrays),mapped=arrayMap(arrays,castArrayLikeObject);comparator=typeof comparator=='function'?comparator:undefined$1;if(comparator){mapped.pop();}return mapped.length&&mapped[0]===arrays[0]?baseIntersection(mapped,undefined$1,comparator):[];});/** + * Converts all elements in `array` into a string separated by `separator`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to convert. + * @param {string} [separator=','] The element separator. + * @returns {string} Returns the joined string. + * @example + * + * _.join(['a', 'b', 'c'], '~'); + * // => 'a~b~c' + */function join(array,separator){return array==null?'':nativeJoin.call(array,separator);}/** + * Gets the last element of `array`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to query. + * @returns {*} Returns the last element of `array`. + * @example + * + * _.last([1, 2, 3]); + * // => 3 + */function last(array){var length=array==null?0:array.length;return length?array[length-1]:undefined$1;}/** + * This method is like `_.indexOf` except that it iterates over elements of + * `array` from right to left. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} [fromIndex=array.length-1] The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. + * @example + * + * _.lastIndexOf([1, 2, 1, 2], 2); + * // => 3 + * + * // Search from the `fromIndex`. + * _.lastIndexOf([1, 2, 1, 2], 2, 2); + * // => 1 + */function lastIndexOf(array,value,fromIndex){var length=array==null?0:array.length;if(!length){return -1;}var index=length;if(fromIndex!==undefined$1){index=toInteger(fromIndex);index=index<0?nativeMax(length+index,0):nativeMin(index,length-1);}return value===value?strictLastIndexOf(array,value,index):baseFindIndex(array,baseIsNaN,index,true);}/** + * Gets the element at index `n` of `array`. If `n` is negative, the nth + * element from the end is returned. + * + * @static + * @memberOf _ + * @since 4.11.0 + * @category Array + * @param {Array} array The array to query. + * @param {number} [n=0] The index of the element to return. + * @returns {*} Returns the nth element of `array`. + * @example + * + * var array = ['a', 'b', 'c', 'd']; + * + * _.nth(array, 1); + * // => 'b' + * + * _.nth(array, -2); + * // => 'c'; + */function nth(array,n){return array&&array.length?baseNth(array,toInteger(n)):undefined$1;}/** + * Removes all given values from `array` using + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. + * + * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove` + * to remove elements from an array by predicate. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @category Array + * @param {Array} array The array to modify. + * @param {...*} [values] The values to remove. + * @returns {Array} Returns `array`. + * @example + * + * var array = ['a', 'b', 'c', 'a', 'b', 'c']; + * + * _.pull(array, 'a', 'c'); + * console.log(array); + * // => ['b', 'b'] + */var pull=baseRest(pullAll);/** + * This method is like `_.pull` except that it accepts an array of values to remove. + * + * **Note:** Unlike `_.difference`, this method mutates `array`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to modify. + * @param {Array} values The values to remove. + * @returns {Array} Returns `array`. + * @example + * + * var array = ['a', 'b', 'c', 'a', 'b', 'c']; + * + * _.pullAll(array, ['a', 'c']); + * console.log(array); + * // => ['b', 'b'] + */function pullAll(array,values){return array&&array.length&&values&&values.length?basePullAll(array,values):array;}/** + * This method is like `_.pullAll` except that it accepts `iteratee` which is + * invoked for each element of `array` and `values` to generate the criterion + * by which they're compared. The iteratee is invoked with one argument: (value). + * + * **Note:** Unlike `_.differenceBy`, this method mutates `array`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to modify. + * @param {Array} values The values to remove. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. + * @returns {Array} Returns `array`. + * @example + * + * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }]; + * + * _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x'); + * console.log(array); + * // => [{ 'x': 2 }] + */function pullAllBy(array,values,iteratee){return array&&array.length&&values&&values.length?basePullAll(array,values,getIteratee(iteratee,2)):array;}/** + * This method is like `_.pullAll` except that it accepts `comparator` which + * is invoked to compare elements of `array` to `values`. The comparator is + * invoked with two arguments: (arrVal, othVal). + * + * **Note:** Unlike `_.differenceWith`, this method mutates `array`. + * + * @static + * @memberOf _ + * @since 4.6.0 + * @category Array + * @param {Array} array The array to modify. + * @param {Array} values The values to remove. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns `array`. + * @example + * + * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }]; + * + * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual); + * console.log(array); + * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }] + */function pullAllWith(array,values,comparator){return array&&array.length&&values&&values.length?basePullAll(array,values,undefined$1,comparator):array;}/** + * Removes elements from `array` corresponding to `indexes` and returns an + * array of removed elements. + * + * **Note:** Unlike `_.at`, this method mutates `array`. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to modify. + * @param {...(number|number[])} [indexes] The indexes of elements to remove. + * @returns {Array} Returns the new array of removed elements. + * @example + * + * var array = ['a', 'b', 'c', 'd']; + * var pulled = _.pullAt(array, [1, 3]); + * + * console.log(array); + * // => ['a', 'c'] + * + * console.log(pulled); + * // => ['b', 'd'] + */var pullAt=flatRest(function(array,indexes){var length=array==null?0:array.length,result=baseAt(array,indexes);basePullAt(array,arrayMap(indexes,function(index){return isIndex(index,length)?+index:index;}).sort(compareAscending));return result;});/** + * Removes all elements from `array` that `predicate` returns truthy for + * and returns an array of the removed elements. The predicate is invoked + * with three arguments: (value, index, array). + * + * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull` + * to pull elements from an array by value. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @category Array + * @param {Array} array The array to modify. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {Array} Returns the new array of removed elements. + * @example + * + * var array = [1, 2, 3, 4]; + * var evens = _.remove(array, function(n) { + * return n % 2 == 0; + * }); + * + * console.log(array); + * // => [1, 3] + * + * console.log(evens); + * // => [2, 4] + */function remove(array,predicate){var result=[];if(!(array&&array.length)){return result;}var index=-1,indexes=[],length=array.length;predicate=getIteratee(predicate,3);while(++index [3, 2, 1] + * + * console.log(array); + * // => [3, 2, 1] + */function reverse(array){return array==null?array:nativeReverse.call(array);}/** + * Creates a slice of `array` from `start` up to, but not including, `end`. + * + * **Note:** This method is used instead of + * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are + * returned. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to slice. + * @param {number} [start=0] The start position. + * @param {number} [end=array.length] The end position. + * @returns {Array} Returns the slice of `array`. + */function slice(array,start,end){var length=array==null?0:array.length;if(!length){return [];}if(end&&typeof end!='number'&&isIterateeCall(array,start,end)){start=0;end=length;}else {start=start==null?0:toInteger(start);end=end===undefined$1?length:toInteger(end);}return baseSlice(array,start,end);}/** + * Uses a binary search to determine the lowest index at which `value` + * should be inserted into `array` in order to maintain its sort order. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The sorted array to inspect. + * @param {*} value The value to evaluate. + * @returns {number} Returns the index at which `value` should be inserted + * into `array`. + * @example + * + * _.sortedIndex([30, 50], 40); + * // => 1 + */function sortedIndex(array,value){return baseSortedIndex(array,value);}/** + * This method is like `_.sortedIndex` except that it accepts `iteratee` + * which is invoked for `value` and each element of `array` to compute their + * sort ranking. The iteratee is invoked with one argument: (value). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The sorted array to inspect. + * @param {*} value The value to evaluate. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. + * @returns {number} Returns the index at which `value` should be inserted + * into `array`. + * @example + * + * var objects = [{ 'x': 4 }, { 'x': 5 }]; + * + * _.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; }); + * // => 0 + * + * // The `_.property` iteratee shorthand. + * _.sortedIndexBy(objects, { 'x': 4 }, 'x'); + * // => 0 + */function sortedIndexBy(array,value,iteratee){return baseSortedIndexBy(array,value,getIteratee(iteratee,2));}/** + * This method is like `_.indexOf` except that it performs a binary + * search on a sorted `array`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @returns {number} Returns the index of the matched value, else `-1`. + * @example + * + * _.sortedIndexOf([4, 5, 5, 5, 6], 5); + * // => 1 + */function sortedIndexOf(array,value){var length=array==null?0:array.length;if(length){var index=baseSortedIndex(array,value);if(index 4 + */function sortedLastIndex(array,value){return baseSortedIndex(array,value,true);}/** + * This method is like `_.sortedLastIndex` except that it accepts `iteratee` + * which is invoked for `value` and each element of `array` to compute their + * sort ranking. The iteratee is invoked with one argument: (value). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The sorted array to inspect. + * @param {*} value The value to evaluate. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. + * @returns {number} Returns the index at which `value` should be inserted + * into `array`. + * @example + * + * var objects = [{ 'x': 4 }, { 'x': 5 }]; + * + * _.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; }); + * // => 1 + * + * // The `_.property` iteratee shorthand. + * _.sortedLastIndexBy(objects, { 'x': 4 }, 'x'); + * // => 1 + */function sortedLastIndexBy(array,value,iteratee){return baseSortedIndexBy(array,value,getIteratee(iteratee,2),true);}/** + * This method is like `_.lastIndexOf` except that it performs a binary + * search on a sorted `array`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @returns {number} Returns the index of the matched value, else `-1`. + * @example + * + * _.sortedLastIndexOf([4, 5, 5, 5, 6], 5); + * // => 3 + */function sortedLastIndexOf(array,value){var length=array==null?0:array.length;if(length){var index=baseSortedIndex(array,value,true)-1;if(eq(array[index],value)){return index;}}return -1;}/** + * This method is like `_.uniq` except that it's designed and optimized + * for sorted arrays. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to inspect. + * @returns {Array} Returns the new duplicate free array. + * @example + * + * _.sortedUniq([1, 1, 2]); + * // => [1, 2] + */function sortedUniq(array){return array&&array.length?baseSortedUniq(array):[];}/** + * This method is like `_.uniqBy` except that it's designed and optimized + * for sorted arrays. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {Function} [iteratee] The iteratee invoked per element. + * @returns {Array} Returns the new duplicate free array. + * @example + * + * _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor); + * // => [1.1, 2.3] + */function sortedUniqBy(array,iteratee){return array&&array.length?baseSortedUniq(array,getIteratee(iteratee,2)):[];}/** + * Gets all but the first element of `array`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to query. + * @returns {Array} Returns the slice of `array`. + * @example + * + * _.tail([1, 2, 3]); + * // => [2, 3] + */function tail(array){var length=array==null?0:array.length;return length?baseSlice(array,1,length):[];}/** + * Creates a slice of `array` with `n` elements taken from the beginning. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to query. + * @param {number} [n=1] The number of elements to take. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Array} Returns the slice of `array`. + * @example + * + * _.take([1, 2, 3]); + * // => [1] + * + * _.take([1, 2, 3], 2); + * // => [1, 2] + * + * _.take([1, 2, 3], 5); + * // => [1, 2, 3] + * + * _.take([1, 2, 3], 0); + * // => [] + */function take(array,n,guard){if(!(array&&array.length)){return [];}n=guard||n===undefined$1?1:toInteger(n);return baseSlice(array,0,n<0?0:n);}/** + * Creates a slice of `array` with `n` elements taken from the end. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to query. + * @param {number} [n=1] The number of elements to take. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Array} Returns the slice of `array`. + * @example + * + * _.takeRight([1, 2, 3]); + * // => [3] + * + * _.takeRight([1, 2, 3], 2); + * // => [2, 3] + * + * _.takeRight([1, 2, 3], 5); + * // => [1, 2, 3] + * + * _.takeRight([1, 2, 3], 0); + * // => [] + */function takeRight(array,n,guard){var length=array==null?0:array.length;if(!length){return [];}n=guard||n===undefined$1?1:toInteger(n);n=length-n;return baseSlice(array,n<0?0:n,length);}/** + * Creates a slice of `array` with elements taken from the end. Elements are + * taken until `predicate` returns falsey. The predicate is invoked with + * three arguments: (value, index, array). + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to query. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {Array} Returns the slice of `array`. + * @example + * + * var users = [ + * { 'user': 'barney', 'active': true }, + * { 'user': 'fred', 'active': false }, + * { 'user': 'pebbles', 'active': false } + * ]; + * + * _.takeRightWhile(users, function(o) { return !o.active; }); + * // => objects for ['fred', 'pebbles'] + * + * // The `_.matches` iteratee shorthand. + * _.takeRightWhile(users, { 'user': 'pebbles', 'active': false }); + * // => objects for ['pebbles'] + * + * // The `_.matchesProperty` iteratee shorthand. + * _.takeRightWhile(users, ['active', false]); + * // => objects for ['fred', 'pebbles'] + * + * // The `_.property` iteratee shorthand. + * _.takeRightWhile(users, 'active'); + * // => [] + */function takeRightWhile(array,predicate){return array&&array.length?baseWhile(array,getIteratee(predicate,3),false,true):[];}/** + * Creates a slice of `array` with elements taken from the beginning. Elements + * are taken until `predicate` returns falsey. The predicate is invoked with + * three arguments: (value, index, array). + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to query. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {Array} Returns the slice of `array`. + * @example + * + * var users = [ + * { 'user': 'barney', 'active': false }, + * { 'user': 'fred', 'active': false }, + * { 'user': 'pebbles', 'active': true } + * ]; + * + * _.takeWhile(users, function(o) { return !o.active; }); + * // => objects for ['barney', 'fred'] + * + * // The `_.matches` iteratee shorthand. + * _.takeWhile(users, { 'user': 'barney', 'active': false }); + * // => objects for ['barney'] + * + * // The `_.matchesProperty` iteratee shorthand. + * _.takeWhile(users, ['active', false]); + * // => objects for ['barney', 'fred'] + * + * // The `_.property` iteratee shorthand. + * _.takeWhile(users, 'active'); + * // => [] + */function takeWhile(array,predicate){return array&&array.length?baseWhile(array,getIteratee(predicate,3)):[];}/** + * Creates an array of unique values, in order, from all given arrays using + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {...Array} [arrays] The arrays to inspect. + * @returns {Array} Returns the new array of combined values. + * @example + * + * _.union([2], [1, 2]); + * // => [2, 1] + */var union=baseRest(function(arrays){return baseUniq(baseFlatten(arrays,1,isArrayLikeObject,true));});/** + * This method is like `_.union` except that it accepts `iteratee` which is + * invoked for each element of each `arrays` to generate the criterion by + * which uniqueness is computed. Result values are chosen from the first + * array in which the value occurs. The iteratee is invoked with one argument: + * (value). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {...Array} [arrays] The arrays to inspect. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. + * @returns {Array} Returns the new array of combined values. + * @example + * + * _.unionBy([2.1], [1.2, 2.3], Math.floor); + * // => [2.1, 1.2] + * + * // The `_.property` iteratee shorthand. + * _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x'); + * // => [{ 'x': 1 }, { 'x': 2 }] + */var unionBy=baseRest(function(arrays){var iteratee=last(arrays);if(isArrayLikeObject(iteratee)){iteratee=undefined$1;}return baseUniq(baseFlatten(arrays,1,isArrayLikeObject,true),getIteratee(iteratee,2));});/** + * This method is like `_.union` except that it accepts `comparator` which + * is invoked to compare elements of `arrays`. Result values are chosen from + * the first array in which the value occurs. The comparator is invoked + * with two arguments: (arrVal, othVal). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {...Array} [arrays] The arrays to inspect. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new array of combined values. + * @example + * + * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; + * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }]; + * + * _.unionWith(objects, others, _.isEqual); + * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }] + */var unionWith=baseRest(function(arrays){var comparator=last(arrays);comparator=typeof comparator=='function'?comparator:undefined$1;return baseUniq(baseFlatten(arrays,1,isArrayLikeObject,true),undefined$1,comparator);});/** + * Creates a duplicate-free version of an array, using + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons, in which only the first occurrence of each element + * is kept. The order of result values is determined by the order they occur + * in the array. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to inspect. + * @returns {Array} Returns the new duplicate free array. + * @example + * + * _.uniq([2, 1, 2]); + * // => [2, 1] + */function uniq(array){return array&&array.length?baseUniq(array):[];}/** + * This method is like `_.uniq` except that it accepts `iteratee` which is + * invoked for each element in `array` to generate the criterion by which + * uniqueness is computed. The order of result values is determined by the + * order they occur in the array. The iteratee is invoked with one argument: + * (value). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. + * @returns {Array} Returns the new duplicate free array. + * @example + * + * _.uniqBy([2.1, 1.2, 2.3], Math.floor); + * // => [2.1, 1.2] + * + * // The `_.property` iteratee shorthand. + * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x'); + * // => [{ 'x': 1 }, { 'x': 2 }] + */function uniqBy(array,iteratee){return array&&array.length?baseUniq(array,getIteratee(iteratee,2)):[];}/** + * This method is like `_.uniq` except that it accepts `comparator` which + * is invoked to compare elements of `array`. The order of result values is + * determined by the order they occur in the array.The comparator is invoked + * with two arguments: (arrVal, othVal). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new duplicate free array. + * @example + * + * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }]; + * + * _.uniqWith(objects, _.isEqual); + * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }] + */function uniqWith(array,comparator){comparator=typeof comparator=='function'?comparator:undefined$1;return array&&array.length?baseUniq(array,undefined$1,comparator):[];}/** + * This method is like `_.zip` except that it accepts an array of grouped + * elements and creates an array regrouping the elements to their pre-zip + * configuration. + * + * @static + * @memberOf _ + * @since 1.2.0 + * @category Array + * @param {Array} array The array of grouped elements to process. + * @returns {Array} Returns the new array of regrouped elements. + * @example + * + * var zipped = _.zip(['a', 'b'], [1, 2], [true, false]); + * // => [['a', 1, true], ['b', 2, false]] + * + * _.unzip(zipped); + * // => [['a', 'b'], [1, 2], [true, false]] + */function unzip(array){if(!(array&&array.length)){return [];}var length=0;array=arrayFilter(array,function(group){if(isArrayLikeObject(group)){length=nativeMax(group.length,length);return true;}});return baseTimes(length,function(index){return arrayMap(array,baseProperty(index));});}/** + * This method is like `_.unzip` except that it accepts `iteratee` to specify + * how regrouped values should be combined. The iteratee is invoked with the + * elements of each group: (...group). + * + * @static + * @memberOf _ + * @since 3.8.0 + * @category Array + * @param {Array} array The array of grouped elements to process. + * @param {Function} [iteratee=_.identity] The function to combine + * regrouped values. + * @returns {Array} Returns the new array of regrouped elements. + * @example + * + * var zipped = _.zip([1, 2], [10, 20], [100, 200]); + * // => [[1, 10, 100], [2, 20, 200]] + * + * _.unzipWith(zipped, _.add); + * // => [3, 30, 300] + */function unzipWith(array,iteratee){if(!(array&&array.length)){return [];}var result=unzip(array);if(iteratee==null){return result;}return arrayMap(result,function(group){return apply(iteratee,undefined$1,group);});}/** + * Creates an array excluding all given values using + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. + * + * **Note:** Unlike `_.pull`, this method returns a new array. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {...*} [values] The values to exclude. + * @returns {Array} Returns the new array of filtered values. + * @see _.difference, _.xor + * @example + * + * _.without([2, 1, 2, 3], 1, 2); + * // => [3] + */var without=baseRest(function(array,values){return isArrayLikeObject(array)?baseDifference(array,values):[];});/** + * Creates an array of unique values that is the + * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference) + * of the given arrays. The order of result values is determined by the order + * they occur in the arrays. + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Array + * @param {...Array} [arrays] The arrays to inspect. + * @returns {Array} Returns the new array of filtered values. + * @see _.difference, _.without + * @example + * + * _.xor([2, 1], [2, 3]); + * // => [1, 3] + */var xor=baseRest(function(arrays){return baseXor(arrayFilter(arrays,isArrayLikeObject));});/** + * This method is like `_.xor` except that it accepts `iteratee` which is + * invoked for each element of each `arrays` to generate the criterion by + * which by which they're compared. The order of result values is determined + * by the order they occur in the arrays. The iteratee is invoked with one + * argument: (value). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {...Array} [arrays] The arrays to inspect. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. + * @returns {Array} Returns the new array of filtered values. + * @example + * + * _.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor); + * // => [1.2, 3.4] + * + * // The `_.property` iteratee shorthand. + * _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x'); + * // => [{ 'x': 2 }] + */var xorBy=baseRest(function(arrays){var iteratee=last(arrays);if(isArrayLikeObject(iteratee)){iteratee=undefined$1;}return baseXor(arrayFilter(arrays,isArrayLikeObject),getIteratee(iteratee,2));});/** + * This method is like `_.xor` except that it accepts `comparator` which is + * invoked to compare elements of `arrays`. The order of result values is + * determined by the order they occur in the arrays. The comparator is invoked + * with two arguments: (arrVal, othVal). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {...Array} [arrays] The arrays to inspect. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new array of filtered values. + * @example + * + * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; + * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }]; + * + * _.xorWith(objects, others, _.isEqual); + * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }] + */var xorWith=baseRest(function(arrays){var comparator=last(arrays);comparator=typeof comparator=='function'?comparator:undefined$1;return baseXor(arrayFilter(arrays,isArrayLikeObject),undefined$1,comparator);});/** + * Creates an array of grouped elements, the first of which contains the + * first elements of the given arrays, the second of which contains the + * second elements of the given arrays, and so on. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {...Array} [arrays] The arrays to process. + * @returns {Array} Returns the new array of grouped elements. + * @example + * + * _.zip(['a', 'b'], [1, 2], [true, false]); + * // => [['a', 1, true], ['b', 2, false]] + */var zip=baseRest(unzip);/** + * This method is like `_.fromPairs` except that it accepts two arrays, + * one of property identifiers and one of corresponding values. + * + * @static + * @memberOf _ + * @since 0.4.0 + * @category Array + * @param {Array} [props=[]] The property identifiers. + * @param {Array} [values=[]] The property values. + * @returns {Object} Returns the new object. + * @example + * + * _.zipObject(['a', 'b'], [1, 2]); + * // => { 'a': 1, 'b': 2 } + */function zipObject(props,values){return baseZipObject(props||[],values||[],assignValue);}/** + * This method is like `_.zipObject` except that it supports property paths. + * + * @static + * @memberOf _ + * @since 4.1.0 + * @category Array + * @param {Array} [props=[]] The property identifiers. + * @param {Array} [values=[]] The property values. + * @returns {Object} Returns the new object. + * @example + * + * _.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]); + * // => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } } + */function zipObjectDeep(props,values){return baseZipObject(props||[],values||[],baseSet);}/** + * This method is like `_.zip` except that it accepts `iteratee` to specify + * how grouped values should be combined. The iteratee is invoked with the + * elements of each group: (...group). + * + * @static + * @memberOf _ + * @since 3.8.0 + * @category Array + * @param {...Array} [arrays] The arrays to process. + * @param {Function} [iteratee=_.identity] The function to combine + * grouped values. + * @returns {Array} Returns the new array of grouped elements. + * @example + * + * _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) { + * return a + b + c; + * }); + * // => [111, 222] + */var zipWith=baseRest(function(arrays){var length=arrays.length,iteratee=length>1?arrays[length-1]:undefined$1;iteratee=typeof iteratee=='function'?(arrays.pop(),iteratee):undefined$1;return unzipWith(arrays,iteratee);});/*------------------------------------------------------------------------*/ /** + * Creates a `lodash` wrapper instance that wraps `value` with explicit method + * chain sequences enabled. The result of such sequences must be unwrapped + * with `_#value`. + * + * @static + * @memberOf _ + * @since 1.3.0 + * @category Seq + * @param {*} value The value to wrap. + * @returns {Object} Returns the new `lodash` wrapper instance. + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36 }, + * { 'user': 'fred', 'age': 40 }, + * { 'user': 'pebbles', 'age': 1 } + * ]; + * + * var youngest = _ + * .chain(users) + * .sortBy('age') + * .map(function(o) { + * return o.user + ' is ' + o.age; + * }) + * .head() + * .value(); + * // => 'pebbles is 1' + */function chain(value){var result=lodash(value);result.__chain__=true;return result;}/** + * This method invokes `interceptor` and returns `value`. The interceptor + * is invoked with one argument; (value). The purpose of this method is to + * "tap into" a method chain sequence in order to modify intermediate results. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Seq + * @param {*} value The value to provide to `interceptor`. + * @param {Function} interceptor The function to invoke. + * @returns {*} Returns `value`. + * @example + * + * _([1, 2, 3]) + * .tap(function(array) { + * // Mutate input array. + * array.pop(); + * }) + * .reverse() + * .value(); + * // => [2, 1] + */function tap(value,interceptor){interceptor(value);return value;}/** + * This method is like `_.tap` except that it returns the result of `interceptor`. + * The purpose of this method is to "pass thru" values replacing intermediate + * results in a method chain sequence. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Seq + * @param {*} value The value to provide to `interceptor`. + * @param {Function} interceptor The function to invoke. + * @returns {*} Returns the result of `interceptor`. + * @example + * + * _(' abc ') + * .chain() + * .trim() + * .thru(function(value) { + * return [value]; + * }) + * .value(); + * // => ['abc'] + */function thru(value,interceptor){return interceptor(value);}/** + * This method is the wrapper version of `_.at`. + * + * @name at + * @memberOf _ + * @since 1.0.0 + * @category Seq + * @param {...(string|string[])} [paths] The property paths to pick. + * @returns {Object} Returns the new `lodash` wrapper instance. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] }; + * + * _(object).at(['a[0].b.c', 'a[1]']).value(); + * // => [3, 4] + */var wrapperAt=flatRest(function(paths){var length=paths.length,start=length?paths[0]:0,value=this.__wrapped__,interceptor=function(object){return baseAt(object,paths);};if(length>1||this.__actions__.length||!(value instanceof LazyWrapper)||!isIndex(start)){return this.thru(interceptor);}value=value.slice(start,+start+(length?1:0));value.__actions__.push({'func':thru,'args':[interceptor],'thisArg':undefined$1});return new LodashWrapper(value,this.__chain__).thru(function(array){if(length&&!array.length){array.push(undefined$1);}return array;});});/** + * Creates a `lodash` wrapper instance with explicit method chain sequences enabled. + * + * @name chain + * @memberOf _ + * @since 0.1.0 + * @category Seq + * @returns {Object} Returns the new `lodash` wrapper instance. + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36 }, + * { 'user': 'fred', 'age': 40 } + * ]; + * + * // A sequence without explicit chaining. + * _(users).head(); + * // => { 'user': 'barney', 'age': 36 } + * + * // A sequence with explicit chaining. + * _(users) + * .chain() + * .head() + * .pick('user') + * .value(); + * // => { 'user': 'barney' } + */function wrapperChain(){return chain(this);}/** + * Executes the chain sequence and returns the wrapped result. + * + * @name commit + * @memberOf _ + * @since 3.2.0 + * @category Seq + * @returns {Object} Returns the new `lodash` wrapper instance. + * @example + * + * var array = [1, 2]; + * var wrapped = _(array).push(3); + * + * console.log(array); + * // => [1, 2] + * + * wrapped = wrapped.commit(); + * console.log(array); + * // => [1, 2, 3] + * + * wrapped.last(); + * // => 3 + * + * console.log(array); + * // => [1, 2, 3] + */function wrapperCommit(){return new LodashWrapper(this.value(),this.__chain__);}/** + * Gets the next value on a wrapped object following the + * [iterator protocol](https://mdn.io/iteration_protocols#iterator). + * + * @name next + * @memberOf _ + * @since 4.0.0 + * @category Seq + * @returns {Object} Returns the next iterator value. + * @example + * + * var wrapped = _([1, 2]); + * + * wrapped.next(); + * // => { 'done': false, 'value': 1 } + * + * wrapped.next(); + * // => { 'done': false, 'value': 2 } + * + * wrapped.next(); + * // => { 'done': true, 'value': undefined } + */function wrapperNext(){if(this.__values__===undefined$1){this.__values__=toArray(this.value());}var done=this.__index__>=this.__values__.length,value=done?undefined$1:this.__values__[this.__index__++];return {'done':done,'value':value};}/** + * Enables the wrapper to be iterable. + * + * @name Symbol.iterator + * @memberOf _ + * @since 4.0.0 + * @category Seq + * @returns {Object} Returns the wrapper object. + * @example + * + * var wrapped = _([1, 2]); + * + * wrapped[Symbol.iterator]() === wrapped; + * // => true + * + * Array.from(wrapped); + * // => [1, 2] + */function wrapperToIterator(){return this;}/** + * Creates a clone of the chain sequence planting `value` as the wrapped value. + * + * @name plant + * @memberOf _ + * @since 3.2.0 + * @category Seq + * @param {*} value The value to plant. + * @returns {Object} Returns the new `lodash` wrapper instance. + * @example + * + * function square(n) { + * return n * n; + * } + * + * var wrapped = _([1, 2]).map(square); + * var other = wrapped.plant([3, 4]); + * + * other.value(); + * // => [9, 16] + * + * wrapped.value(); + * // => [1, 4] + */function wrapperPlant(value){var result,parent=this;while(parent instanceof baseLodash){var clone=wrapperClone(parent);clone.__index__=0;clone.__values__=undefined$1;if(result){previous.__wrapped__=clone;}else {result=clone;}var previous=clone;parent=parent.__wrapped__;}previous.__wrapped__=value;return result;}/** + * This method is the wrapper version of `_.reverse`. + * + * **Note:** This method mutates the wrapped array. + * + * @name reverse + * @memberOf _ + * @since 0.1.0 + * @category Seq + * @returns {Object} Returns the new `lodash` wrapper instance. + * @example + * + * var array = [1, 2, 3]; + * + * _(array).reverse().value() + * // => [3, 2, 1] + * + * console.log(array); + * // => [3, 2, 1] + */function wrapperReverse(){var value=this.__wrapped__;if(value instanceof LazyWrapper){var wrapped=value;if(this.__actions__.length){wrapped=new LazyWrapper(this);}wrapped=wrapped.reverse();wrapped.__actions__.push({'func':thru,'args':[reverse],'thisArg':undefined$1});return new LodashWrapper(wrapped,this.__chain__);}return this.thru(reverse);}/** + * Executes the chain sequence to resolve the unwrapped value. + * + * @name value + * @memberOf _ + * @since 0.1.0 + * @alias toJSON, valueOf + * @category Seq + * @returns {*} Returns the resolved unwrapped value. + * @example + * + * _([1, 2, 3]).value(); + * // => [1, 2, 3] + */function wrapperValue(){return baseWrapperValue(this.__wrapped__,this.__actions__);}/*------------------------------------------------------------------------*/ /** + * Creates an object composed of keys generated from the results of running + * each element of `collection` thru `iteratee`. The corresponding value of + * each key is the number of times the key was returned by `iteratee`. The + * iteratee is invoked with one argument: (value). + * + * @static + * @memberOf _ + * @since 0.5.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The iteratee to transform keys. + * @returns {Object} Returns the composed aggregate object. + * @example + * + * _.countBy([6.1, 4.2, 6.3], Math.floor); + * // => { '4': 1, '6': 2 } + * + * // The `_.property` iteratee shorthand. + * _.countBy(['one', 'two', 'three'], 'length'); + * // => { '3': 2, '5': 1 } + */var countBy=createAggregator(function(result,value,key){if(hasOwnProperty.call(result,key)){++result[key];}else {baseAssignValue(result,key,1);}});/** + * Checks if `predicate` returns truthy for **all** elements of `collection`. + * Iteration is stopped once `predicate` returns falsey. The predicate is + * invoked with three arguments: (value, index|key, collection). + * + * **Note:** This method returns `true` for + * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because + * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of + * elements of empty collections. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {boolean} Returns `true` if all elements pass the predicate check, + * else `false`. + * @example + * + * _.every([true, 1, null, 'yes'], Boolean); + * // => false + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': false }, + * { 'user': 'fred', 'age': 40, 'active': false } + * ]; + * + * // The `_.matches` iteratee shorthand. + * _.every(users, { 'user': 'barney', 'active': false }); + * // => false + * + * // The `_.matchesProperty` iteratee shorthand. + * _.every(users, ['active', false]); + * // => true + * + * // The `_.property` iteratee shorthand. + * _.every(users, 'active'); + * // => false + */function every(collection,predicate,guard){var func=isArray(collection)?arrayEvery:baseEvery;if(guard&&isIterateeCall(collection,predicate,guard)){predicate=undefined$1;}return func(collection,getIteratee(predicate,3));}/** + * Iterates over elements of `collection`, returning an array of all elements + * `predicate` returns truthy for. The predicate is invoked with three + * arguments: (value, index|key, collection). + * + * **Note:** Unlike `_.remove`, this method returns a new array. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {Array} Returns the new filtered array. + * @see _.reject + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': true }, + * { 'user': 'fred', 'age': 40, 'active': false } + * ]; + * + * _.filter(users, function(o) { return !o.active; }); + * // => objects for ['fred'] + * + * // The `_.matches` iteratee shorthand. + * _.filter(users, { 'age': 36, 'active': true }); + * // => objects for ['barney'] + * + * // The `_.matchesProperty` iteratee shorthand. + * _.filter(users, ['active', false]); + * // => objects for ['fred'] + * + * // The `_.property` iteratee shorthand. + * _.filter(users, 'active'); + * // => objects for ['barney'] + * + * // Combining several predicates using `_.overEvery` or `_.overSome`. + * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]])); + * // => objects for ['fred', 'barney'] + */function filter(collection,predicate){var func=isArray(collection)?arrayFilter:baseFilter;return func(collection,getIteratee(predicate,3));}/** + * Iterates over elements of `collection`, returning the first element + * `predicate` returns truthy for. The predicate is invoked with three + * arguments: (value, index|key, collection). + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param {number} [fromIndex=0] The index to search from. + * @returns {*} Returns the matched element, else `undefined`. + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': true }, + * { 'user': 'fred', 'age': 40, 'active': false }, + * { 'user': 'pebbles', 'age': 1, 'active': true } + * ]; + * + * _.find(users, function(o) { return o.age < 40; }); + * // => object for 'barney' + * + * // The `_.matches` iteratee shorthand. + * _.find(users, { 'age': 1, 'active': true }); + * // => object for 'pebbles' + * + * // The `_.matchesProperty` iteratee shorthand. + * _.find(users, ['active', false]); + * // => object for 'fred' + * + * // The `_.property` iteratee shorthand. + * _.find(users, 'active'); + * // => object for 'barney' + */var find=createFind(findIndex);/** + * This method is like `_.find` except that it iterates over elements of + * `collection` from right to left. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @category Collection + * @param {Array|Object} collection The collection to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param {number} [fromIndex=collection.length-1] The index to search from. + * @returns {*} Returns the matched element, else `undefined`. + * @example + * + * _.findLast([1, 2, 3, 4], function(n) { + * return n % 2 == 1; + * }); + * // => 3 + */var findLast=createFind(findLastIndex);/** + * Creates a flattened array of values by running each element in `collection` + * thru `iteratee` and flattening the mapped results. The iteratee is invoked + * with three arguments: (value, index|key, collection). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Array} Returns the new flattened array. + * @example + * + * function duplicate(n) { + * return [n, n]; + * } + * + * _.flatMap([1, 2], duplicate); + * // => [1, 1, 2, 2] + */function flatMap(collection,iteratee){return baseFlatten(map(collection,iteratee),1);}/** + * This method is like `_.flatMap` except that it recursively flattens the + * mapped results. + * + * @static + * @memberOf _ + * @since 4.7.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Array} Returns the new flattened array. + * @example + * + * function duplicate(n) { + * return [[[n, n]]]; + * } + * + * _.flatMapDeep([1, 2], duplicate); + * // => [1, 1, 2, 2] + */function flatMapDeep(collection,iteratee){return baseFlatten(map(collection,iteratee),INFINITY);}/** + * This method is like `_.flatMap` except that it recursively flattens the + * mapped results up to `depth` times. + * + * @static + * @memberOf _ + * @since 4.7.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @param {number} [depth=1] The maximum recursion depth. + * @returns {Array} Returns the new flattened array. + * @example + * + * function duplicate(n) { + * return [[[n, n]]]; + * } + * + * _.flatMapDepth([1, 2], duplicate, 2); + * // => [[1, 1], [2, 2]] + */function flatMapDepth(collection,iteratee,depth){depth=depth===undefined$1?1:toInteger(depth);return baseFlatten(map(collection,iteratee),depth);}/** + * Iterates over elements of `collection` and invokes `iteratee` for each element. + * The iteratee is invoked with three arguments: (value, index|key, collection). + * Iteratee functions may exit iteration early by explicitly returning `false`. + * + * **Note:** As with other "Collections" methods, objects with a "length" + * property are iterated like arrays. To avoid this behavior use `_.forIn` + * or `_.forOwn` for object iteration. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @alias each + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Array|Object} Returns `collection`. + * @see _.forEachRight + * @example + * + * _.forEach([1, 2], function(value) { + * console.log(value); + * }); + * // => Logs `1` then `2`. + * + * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) { + * console.log(key); + * }); + * // => Logs 'a' then 'b' (iteration order is not guaranteed). + */function forEach(collection,iteratee){var func=isArray(collection)?arrayEach:baseEach;return func(collection,getIteratee(iteratee,3));}/** + * This method is like `_.forEach` except that it iterates over elements of + * `collection` from right to left. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @alias eachRight + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Array|Object} Returns `collection`. + * @see _.forEach + * @example + * + * _.forEachRight([1, 2], function(value) { + * console.log(value); + * }); + * // => Logs `2` then `1`. + */function forEachRight(collection,iteratee){var func=isArray(collection)?arrayEachRight:baseEachRight;return func(collection,getIteratee(iteratee,3));}/** + * Creates an object composed of keys generated from the results of running + * each element of `collection` thru `iteratee`. The order of grouped values + * is determined by the order they occur in `collection`. The corresponding + * value of each key is an array of elements responsible for generating the + * key. The iteratee is invoked with one argument: (value). + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The iteratee to transform keys. + * @returns {Object} Returns the composed aggregate object. + * @example + * + * _.groupBy([6.1, 4.2, 6.3], Math.floor); + * // => { '4': [4.2], '6': [6.1, 6.3] } + * + * // The `_.property` iteratee shorthand. + * _.groupBy(['one', 'two', 'three'], 'length'); + * // => { '3': ['one', 'two'], '5': ['three'] } + */var groupBy=createAggregator(function(result,value,key){if(hasOwnProperty.call(result,key)){result[key].push(value);}else {baseAssignValue(result,key,[value]);}});/** + * Checks if `value` is in `collection`. If `collection` is a string, it's + * checked for a substring of `value`, otherwise + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * is used for equality comparisons. If `fromIndex` is negative, it's used as + * the offset from the end of `collection`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object|string} collection The collection to inspect. + * @param {*} value The value to search for. + * @param {number} [fromIndex=0] The index to search from. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`. + * @returns {boolean} Returns `true` if `value` is found, else `false`. + * @example + * + * _.includes([1, 2, 3], 1); + * // => true + * + * _.includes([1, 2, 3], 1, 2); + * // => false + * + * _.includes({ 'a': 1, 'b': 2 }, 1); + * // => true + * + * _.includes('abcd', 'bc'); + * // => true + */function includes(collection,value,fromIndex,guard){collection=isArrayLike(collection)?collection:values(collection);fromIndex=fromIndex&&!guard?toInteger(fromIndex):0;var length=collection.length;if(fromIndex<0){fromIndex=nativeMax(length+fromIndex,0);}return isString(collection)?fromIndex<=length&&collection.indexOf(value,fromIndex)>-1:!!length&&baseIndexOf(collection,value,fromIndex)>-1;}/** + * Invokes the method at `path` of each element in `collection`, returning + * an array of the results of each invoked method. Any additional arguments + * are provided to each invoked method. If `path` is a function, it's invoked + * for, and `this` bound to, each element in `collection`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Array|Function|string} path The path of the method to invoke or + * the function invoked per iteration. + * @param {...*} [args] The arguments to invoke each method with. + * @returns {Array} Returns the array of results. + * @example + * + * _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort'); + * // => [[1, 5, 7], [1, 2, 3]] + * + * _.invokeMap([123, 456], String.prototype.split, ''); + * // => [['1', '2', '3'], ['4', '5', '6']] + */var invokeMap=baseRest(function(collection,path,args){var index=-1,isFunc=typeof path=='function',result=isArrayLike(collection)?Array(collection.length):[];baseEach(collection,function(value){result[++index]=isFunc?apply(path,value,args):baseInvoke(value,path,args);});return result;});/** + * Creates an object composed of keys generated from the results of running + * each element of `collection` thru `iteratee`. The corresponding value of + * each key is the last element responsible for generating the key. The + * iteratee is invoked with one argument: (value). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The iteratee to transform keys. + * @returns {Object} Returns the composed aggregate object. + * @example + * + * var array = [ + * { 'dir': 'left', 'code': 97 }, + * { 'dir': 'right', 'code': 100 } + * ]; + * + * _.keyBy(array, function(o) { + * return String.fromCharCode(o.code); + * }); + * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } } + * + * _.keyBy(array, 'dir'); + * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } } + */var keyBy=createAggregator(function(result,value,key){baseAssignValue(result,key,value);});/** + * Creates an array of values by running each element in `collection` thru + * `iteratee`. The iteratee is invoked with three arguments: + * (value, index|key, collection). + * + * Many lodash methods are guarded to work as iteratees for methods like + * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`. + * + * The guarded methods are: + * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`, + * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`, + * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`, + * `template`, `trim`, `trimEnd`, `trimStart`, and `words` + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + * @example + * + * function square(n) { + * return n * n; + * } + * + * _.map([4, 8], square); + * // => [16, 64] + * + * _.map({ 'a': 4, 'b': 8 }, square); + * // => [16, 64] (iteration order is not guaranteed) + * + * var users = [ + * { 'user': 'barney' }, + * { 'user': 'fred' } + * ]; + * + * // The `_.property` iteratee shorthand. + * _.map(users, 'user'); + * // => ['barney', 'fred'] + */function map(collection,iteratee){var func=isArray(collection)?arrayMap:baseMap;return func(collection,getIteratee(iteratee,3));}/** + * This method is like `_.sortBy` except that it allows specifying the sort + * orders of the iteratees to sort by. If `orders` is unspecified, all values + * are sorted in ascending order. Otherwise, specify an order of "desc" for + * descending or "asc" for ascending sort order of corresponding values. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]] + * The iteratees to sort by. + * @param {string[]} [orders] The sort orders of `iteratees`. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`. + * @returns {Array} Returns the new sorted array. + * @example + * + * var users = [ + * { 'user': 'fred', 'age': 48 }, + * { 'user': 'barney', 'age': 34 }, + * { 'user': 'fred', 'age': 40 }, + * { 'user': 'barney', 'age': 36 } + * ]; + * + * // Sort by `user` in ascending order and by `age` in descending order. + * _.orderBy(users, ['user', 'age'], ['asc', 'desc']); + * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]] + */function orderBy(collection,iteratees,orders,guard){if(collection==null){return [];}if(!isArray(iteratees)){iteratees=iteratees==null?[]:[iteratees];}orders=guard?undefined$1:orders;if(!isArray(orders)){orders=orders==null?[]:[orders];}return baseOrderBy(collection,iteratees,orders);}/** + * Creates an array of elements split into two groups, the first of which + * contains elements `predicate` returns truthy for, the second of which + * contains elements `predicate` returns falsey for. The predicate is + * invoked with one argument: (value). + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {Array} Returns the array of grouped elements. + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': false }, + * { 'user': 'fred', 'age': 40, 'active': true }, + * { 'user': 'pebbles', 'age': 1, 'active': false } + * ]; + * + * _.partition(users, function(o) { return o.active; }); + * // => objects for [['fred'], ['barney', 'pebbles']] + * + * // The `_.matches` iteratee shorthand. + * _.partition(users, { 'age': 1, 'active': false }); + * // => objects for [['pebbles'], ['barney', 'fred']] + * + * // The `_.matchesProperty` iteratee shorthand. + * _.partition(users, ['active', false]); + * // => objects for [['barney', 'pebbles'], ['fred']] + * + * // The `_.property` iteratee shorthand. + * _.partition(users, 'active'); + * // => objects for [['fred'], ['barney', 'pebbles']] + */var partition=createAggregator(function(result,value,key){result[key?0:1].push(value);},function(){return [[],[]];});/** + * Reduces `collection` to a value which is the accumulated result of running + * each element in `collection` thru `iteratee`, where each successive + * invocation is supplied the return value of the previous. If `accumulator` + * is not given, the first element of `collection` is used as the initial + * value. The iteratee is invoked with four arguments: + * (accumulator, value, index|key, collection). + * + * Many lodash methods are guarded to work as iteratees for methods like + * `_.reduce`, `_.reduceRight`, and `_.transform`. + * + * The guarded methods are: + * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`, + * and `sortBy` + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @param {*} [accumulator] The initial value. + * @returns {*} Returns the accumulated value. + * @see _.reduceRight + * @example + * + * _.reduce([1, 2], function(sum, n) { + * return sum + n; + * }, 0); + * // => 3 + * + * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) { + * (result[value] || (result[value] = [])).push(key); + * return result; + * }, {}); + * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed) + */function reduce(collection,iteratee,accumulator){var func=isArray(collection)?arrayReduce:baseReduce,initAccum=arguments.length<3;return func(collection,getIteratee(iteratee,4),accumulator,initAccum,baseEach);}/** + * This method is like `_.reduce` except that it iterates over elements of + * `collection` from right to left. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @param {*} [accumulator] The initial value. + * @returns {*} Returns the accumulated value. + * @see _.reduce + * @example + * + * var array = [[0, 1], [2, 3], [4, 5]]; + * + * _.reduceRight(array, function(flattened, other) { + * return flattened.concat(other); + * }, []); + * // => [4, 5, 2, 3, 0, 1] + */function reduceRight(collection,iteratee,accumulator){var func=isArray(collection)?arrayReduceRight:baseReduce,initAccum=arguments.length<3;return func(collection,getIteratee(iteratee,4),accumulator,initAccum,baseEachRight);}/** + * The opposite of `_.filter`; this method returns the elements of `collection` + * that `predicate` does **not** return truthy for. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {Array} Returns the new filtered array. + * @see _.filter + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': false }, + * { 'user': 'fred', 'age': 40, 'active': true } + * ]; + * + * _.reject(users, function(o) { return !o.active; }); + * // => objects for ['fred'] + * + * // The `_.matches` iteratee shorthand. + * _.reject(users, { 'age': 40, 'active': true }); + * // => objects for ['barney'] + * + * // The `_.matchesProperty` iteratee shorthand. + * _.reject(users, ['active', false]); + * // => objects for ['fred'] + * + * // The `_.property` iteratee shorthand. + * _.reject(users, 'active'); + * // => objects for ['barney'] + */function reject(collection,predicate){var func=isArray(collection)?arrayFilter:baseFilter;return func(collection,negate(getIteratee(predicate,3)));}/** + * Gets a random element from `collection`. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @category Collection + * @param {Array|Object} collection The collection to sample. + * @returns {*} Returns the random element. + * @example + * + * _.sample([1, 2, 3, 4]); + * // => 2 + */function sample(collection){var func=isArray(collection)?arraySample:baseSample;return func(collection);}/** + * Gets `n` random elements at unique keys from `collection` up to the + * size of `collection`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Collection + * @param {Array|Object} collection The collection to sample. + * @param {number} [n=1] The number of elements to sample. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Array} Returns the random elements. + * @example + * + * _.sampleSize([1, 2, 3], 2); + * // => [3, 1] + * + * _.sampleSize([1, 2, 3], 4); + * // => [2, 3, 1] + */function sampleSize(collection,n,guard){if(guard?isIterateeCall(collection,n,guard):n===undefined$1){n=1;}else {n=toInteger(n);}var func=isArray(collection)?arraySampleSize:baseSampleSize;return func(collection,n);}/** + * Creates an array of shuffled values, using a version of the + * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle). + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to shuffle. + * @returns {Array} Returns the new shuffled array. + * @example + * + * _.shuffle([1, 2, 3, 4]); + * // => [4, 1, 3, 2] + */function shuffle(collection){var func=isArray(collection)?arrayShuffle:baseShuffle;return func(collection);}/** + * Gets the size of `collection` by returning its length for array-like + * values or the number of own enumerable string keyed properties for objects. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object|string} collection The collection to inspect. + * @returns {number} Returns the collection size. + * @example + * + * _.size([1, 2, 3]); + * // => 3 + * + * _.size({ 'a': 1, 'b': 2 }); + * // => 2 + * + * _.size('pebbles'); + * // => 7 + */function size(collection){if(collection==null){return 0;}if(isArrayLike(collection)){return isString(collection)?stringSize(collection):collection.length;}var tag=getTag(collection);if(tag==mapTag||tag==setTag){return collection.size;}return baseKeys(collection).length;}/** + * Checks if `predicate` returns truthy for **any** element of `collection`. + * Iteration is stopped once `predicate` returns truthy. The predicate is + * invoked with three arguments: (value, index|key, collection). + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. + * @example + * + * _.some([null, 0, 'yes', false], Boolean); + * // => true + * + * var users = [ + * { 'user': 'barney', 'active': true }, + * { 'user': 'fred', 'active': false } + * ]; + * + * // The `_.matches` iteratee shorthand. + * _.some(users, { 'user': 'barney', 'active': false }); + * // => false + * + * // The `_.matchesProperty` iteratee shorthand. + * _.some(users, ['active', false]); + * // => true + * + * // The `_.property` iteratee shorthand. + * _.some(users, 'active'); + * // => true + */function some(collection,predicate,guard){var func=isArray(collection)?arraySome:baseSome;if(guard&&isIterateeCall(collection,predicate,guard)){predicate=undefined$1;}return func(collection,getIteratee(predicate,3));}/** + * Creates an array of elements, sorted in ascending order by the results of + * running each element in a collection thru each iteratee. This method + * performs a stable sort, that is, it preserves the original sort order of + * equal elements. The iteratees are invoked with one argument: (value). + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {...(Function|Function[])} [iteratees=[_.identity]] + * The iteratees to sort by. + * @returns {Array} Returns the new sorted array. + * @example + * + * var users = [ + * { 'user': 'fred', 'age': 48 }, + * { 'user': 'barney', 'age': 36 }, + * { 'user': 'fred', 'age': 30 }, + * { 'user': 'barney', 'age': 34 } + * ]; + * + * _.sortBy(users, [function(o) { return o.user; }]); + * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]] + * + * _.sortBy(users, ['user', 'age']); + * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]] + */var sortBy=baseRest(function(collection,iteratees){if(collection==null){return [];}var length=iteratees.length;if(length>1&&isIterateeCall(collection,iteratees[0],iteratees[1])){iteratees=[];}else if(length>2&&isIterateeCall(iteratees[0],iteratees[1],iteratees[2])){iteratees=[iteratees[0]];}return baseOrderBy(collection,baseFlatten(iteratees,1),[]);});/*------------------------------------------------------------------------*/ /** + * Gets the timestamp of the number of milliseconds that have elapsed since + * the Unix epoch (1 January 1970 00:00:00 UTC). + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Date + * @returns {number} Returns the timestamp. + * @example + * + * _.defer(function(stamp) { + * console.log(_.now() - stamp); + * }, _.now()); + * // => Logs the number of milliseconds it took for the deferred invocation. + */var now=ctxNow||function(){return root.Date.now();};/*------------------------------------------------------------------------*/ /** + * The opposite of `_.before`; this method creates a function that invokes + * `func` once it's called `n` or more times. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {number} n The number of calls before `func` is invoked. + * @param {Function} func The function to restrict. + * @returns {Function} Returns the new restricted function. + * @example + * + * var saves = ['profile', 'settings']; + * + * var done = _.after(saves.length, function() { + * console.log('done saving!'); + * }); + * + * _.forEach(saves, function(type) { + * asyncSave({ 'type': type, 'complete': done }); + * }); + * // => Logs 'done saving!' after the two async saves have completed. + */function after(n,func){if(typeof func!='function'){throw new TypeError(FUNC_ERROR_TEXT);}n=toInteger(n);return function(){if(--n<1){return func.apply(this,arguments);}};}/** + * Creates a function that invokes `func`, with up to `n` arguments, + * ignoring any additional arguments. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Function + * @param {Function} func The function to cap arguments for. + * @param {number} [n=func.length] The arity cap. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Function} Returns the new capped function. + * @example + * + * _.map(['6', '8', '10'], _.ary(parseInt, 1)); + * // => [6, 8, 10] + */function ary(func,n,guard){n=guard?undefined$1:n;n=func&&n==null?func.length:n;return createWrap(func,WRAP_ARY_FLAG,undefined$1,undefined$1,undefined$1,undefined$1,n);}/** + * Creates a function that invokes `func`, with the `this` binding and arguments + * of the created function, while it's called less than `n` times. Subsequent + * calls to the created function return the result of the last `func` invocation. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Function + * @param {number} n The number of calls at which `func` is no longer invoked. + * @param {Function} func The function to restrict. + * @returns {Function} Returns the new restricted function. + * @example + * + * jQuery(element).on('click', _.before(5, addContactToList)); + * // => Allows adding up to 4 contacts to the list. + */function before(n,func){var result;if(typeof func!='function'){throw new TypeError(FUNC_ERROR_TEXT);}n=toInteger(n);return function(){if(--n>0){result=func.apply(this,arguments);}if(n<=1){func=undefined$1;}return result;};}/** + * Creates a function that invokes `func` with the `this` binding of `thisArg` + * and `partials` prepended to the arguments it receives. + * + * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds, + * may be used as a placeholder for partially applied arguments. + * + * **Note:** Unlike native `Function#bind`, this method doesn't set the "length" + * property of bound functions. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to bind. + * @param {*} thisArg The `this` binding of `func`. + * @param {...*} [partials] The arguments to be partially applied. + * @returns {Function} Returns the new bound function. + * @example + * + * function greet(greeting, punctuation) { + * return greeting + ' ' + this.user + punctuation; + * } + * + * var object = { 'user': 'fred' }; + * + * var bound = _.bind(greet, object, 'hi'); + * bound('!'); + * // => 'hi fred!' + * + * // Bound with placeholders. + * var bound = _.bind(greet, object, _, '!'); + * bound('hi'); + * // => 'hi fred!' + */var bind=baseRest(function(func,thisArg,partials){var bitmask=WRAP_BIND_FLAG;if(partials.length){var holders=replaceHolders(partials,getHolder(bind));bitmask|=WRAP_PARTIAL_FLAG;}return createWrap(func,bitmask,thisArg,partials,holders);});/** + * Creates a function that invokes the method at `object[key]` with `partials` + * prepended to the arguments it receives. + * + * This method differs from `_.bind` by allowing bound functions to reference + * methods that may be redefined or don't yet exist. See + * [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern) + * for more details. + * + * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic + * builds, may be used as a placeholder for partially applied arguments. + * + * @static + * @memberOf _ + * @since 0.10.0 + * @category Function + * @param {Object} object The object to invoke the method on. + * @param {string} key The key of the method. + * @param {...*} [partials] The arguments to be partially applied. + * @returns {Function} Returns the new bound function. + * @example + * + * var object = { + * 'user': 'fred', + * 'greet': function(greeting, punctuation) { + * return greeting + ' ' + this.user + punctuation; + * } + * }; + * + * var bound = _.bindKey(object, 'greet', 'hi'); + * bound('!'); + * // => 'hi fred!' + * + * object.greet = function(greeting, punctuation) { + * return greeting + 'ya ' + this.user + punctuation; + * }; + * + * bound('!'); + * // => 'hiya fred!' + * + * // Bound with placeholders. + * var bound = _.bindKey(object, 'greet', _, '!'); + * bound('hi'); + * // => 'hiya fred!' + */var bindKey=baseRest(function(object,key,partials){var bitmask=WRAP_BIND_FLAG|WRAP_BIND_KEY_FLAG;if(partials.length){var holders=replaceHolders(partials,getHolder(bindKey));bitmask|=WRAP_PARTIAL_FLAG;}return createWrap(key,bitmask,object,partials,holders);});/** + * Creates a function that accepts arguments of `func` and either invokes + * `func` returning its result, if at least `arity` number of arguments have + * been provided, or returns a function that accepts the remaining `func` + * arguments, and so on. The arity of `func` may be specified if `func.length` + * is not sufficient. + * + * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds, + * may be used as a placeholder for provided arguments. + * + * **Note:** This method doesn't set the "length" property of curried functions. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @category Function + * @param {Function} func The function to curry. + * @param {number} [arity=func.length] The arity of `func`. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Function} Returns the new curried function. + * @example + * + * var abc = function(a, b, c) { + * return [a, b, c]; + * }; + * + * var curried = _.curry(abc); + * + * curried(1)(2)(3); + * // => [1, 2, 3] + * + * curried(1, 2)(3); + * // => [1, 2, 3] + * + * curried(1, 2, 3); + * // => [1, 2, 3] + * + * // Curried with placeholders. + * curried(1)(_, 3)(2); + * // => [1, 2, 3] + */function curry(func,arity,guard){arity=guard?undefined$1:arity;var result=createWrap(func,WRAP_CURRY_FLAG,undefined$1,undefined$1,undefined$1,undefined$1,undefined$1,arity);result.placeholder=curry.placeholder;return result;}/** + * This method is like `_.curry` except that arguments are applied to `func` + * in the manner of `_.partialRight` instead of `_.partial`. + * + * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic + * builds, may be used as a placeholder for provided arguments. + * + * **Note:** This method doesn't set the "length" property of curried functions. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Function + * @param {Function} func The function to curry. + * @param {number} [arity=func.length] The arity of `func`. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Function} Returns the new curried function. + * @example + * + * var abc = function(a, b, c) { + * return [a, b, c]; + * }; + * + * var curried = _.curryRight(abc); + * + * curried(3)(2)(1); + * // => [1, 2, 3] + * + * curried(2, 3)(1); + * // => [1, 2, 3] + * + * curried(1, 2, 3); + * // => [1, 2, 3] + * + * // Curried with placeholders. + * curried(3)(1, _)(2); + * // => [1, 2, 3] + */function curryRight(func,arity,guard){arity=guard?undefined$1:arity;var result=createWrap(func,WRAP_CURRY_RIGHT_FLAG,undefined$1,undefined$1,undefined$1,undefined$1,undefined$1,arity);result.placeholder=curryRight.placeholder;return result;}/** + * Creates a debounced function that delays invoking `func` until after `wait` + * milliseconds have elapsed since the last time the debounced function was + * invoked. The debounced function comes with a `cancel` method to cancel + * delayed `func` invocations and a `flush` method to immediately invoke them. + * Provide `options` to indicate whether `func` should be invoked on the + * leading and/or trailing edge of the `wait` timeout. The `func` is invoked + * with the last arguments provided to the debounced function. Subsequent + * calls to the debounced function return the result of the last `func` + * invocation. + * + * **Note:** If `leading` and `trailing` options are `true`, `func` is + * invoked on the trailing edge of the timeout only if the debounced function + * is invoked more than once during the `wait` timeout. + * + * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred + * until to the next tick, similar to `setTimeout` with a timeout of `0`. + * + * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) + * for details over the differences between `_.debounce` and `_.throttle`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to debounce. + * @param {number} [wait=0] The number of milliseconds to delay. + * @param {Object} [options={}] The options object. + * @param {boolean} [options.leading=false] + * Specify invoking on the leading edge of the timeout. + * @param {number} [options.maxWait] + * The maximum time `func` is allowed to be delayed before it's invoked. + * @param {boolean} [options.trailing=true] + * Specify invoking on the trailing edge of the timeout. + * @returns {Function} Returns the new debounced function. + * @example + * + * // Avoid costly calculations while the window size is in flux. + * jQuery(window).on('resize', _.debounce(calculateLayout, 150)); + * + * // Invoke `sendMail` when clicked, debouncing subsequent calls. + * jQuery(element).on('click', _.debounce(sendMail, 300, { + * 'leading': true, + * 'trailing': false + * })); + * + * // Ensure `batchLog` is invoked once after 1 second of debounced calls. + * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 }); + * var source = new EventSource('/stream'); + * jQuery(source).on('message', debounced); + * + * // Cancel the trailing debounced invocation. + * jQuery(window).on('popstate', debounced.cancel); + */function debounce(func,wait,options){var lastArgs,lastThis,maxWait,result,timerId,lastCallTime,lastInvokeTime=0,leading=false,maxing=false,trailing=true;if(typeof func!='function'){throw new TypeError(FUNC_ERROR_TEXT);}wait=toNumber(wait)||0;if(isObject(options)){leading=!!options.leading;maxing='maxWait'in options;maxWait=maxing?nativeMax(toNumber(options.maxWait)||0,wait):maxWait;trailing='trailing'in options?!!options.trailing:trailing;}function invokeFunc(time){var args=lastArgs,thisArg=lastThis;lastArgs=lastThis=undefined$1;lastInvokeTime=time;result=func.apply(thisArg,args);return result;}function leadingEdge(time){// Reset any `maxWait` timer. + lastInvokeTime=time;// Start the timer for the trailing edge. + timerId=setTimeout(timerExpired,wait);// Invoke the leading edge. + return leading?invokeFunc(time):result;}function remainingWait(time){var timeSinceLastCall=time-lastCallTime,timeSinceLastInvoke=time-lastInvokeTime,timeWaiting=wait-timeSinceLastCall;return maxing?nativeMin(timeWaiting,maxWait-timeSinceLastInvoke):timeWaiting;}function shouldInvoke(time){var timeSinceLastCall=time-lastCallTime,timeSinceLastInvoke=time-lastInvokeTime;// Either this is the first call, activity has stopped and we're at the + // trailing edge, the system time has gone backwards and we're treating + // it as the trailing edge, or we've hit the `maxWait` limit. + return lastCallTime===undefined$1||timeSinceLastCall>=wait||timeSinceLastCall<0||maxing&&timeSinceLastInvoke>=maxWait;}function timerExpired(){var time=now();if(shouldInvoke(time)){return trailingEdge(time);}// Restart the timer. + timerId=setTimeout(timerExpired,remainingWait(time));}function trailingEdge(time){timerId=undefined$1;// Only invoke if we have `lastArgs` which means `func` has been + // debounced at least once. + if(trailing&&lastArgs){return invokeFunc(time);}lastArgs=lastThis=undefined$1;return result;}function cancel(){if(timerId!==undefined$1){clearTimeout(timerId);}lastInvokeTime=0;lastArgs=lastCallTime=lastThis=timerId=undefined$1;}function flush(){return timerId===undefined$1?result:trailingEdge(now());}function debounced(){var time=now(),isInvoking=shouldInvoke(time);lastArgs=arguments;lastThis=this;lastCallTime=time;if(isInvoking){if(timerId===undefined$1){return leadingEdge(lastCallTime);}if(maxing){// Handle invocations in a tight loop. + clearTimeout(timerId);timerId=setTimeout(timerExpired,wait);return invokeFunc(lastCallTime);}}if(timerId===undefined$1){timerId=setTimeout(timerExpired,wait);}return result;}debounced.cancel=cancel;debounced.flush=flush;return debounced;}/** + * Defers invoking the `func` until the current call stack has cleared. Any + * additional arguments are provided to `func` when it's invoked. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to defer. + * @param {...*} [args] The arguments to invoke `func` with. + * @returns {number} Returns the timer id. + * @example + * + * _.defer(function(text) { + * console.log(text); + * }, 'deferred'); + * // => Logs 'deferred' after one millisecond. + */var defer=baseRest(function(func,args){return baseDelay(func,1,args);});/** + * Invokes `func` after `wait` milliseconds. Any additional arguments are + * provided to `func` when it's invoked. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to delay. + * @param {number} wait The number of milliseconds to delay invocation. + * @param {...*} [args] The arguments to invoke `func` with. + * @returns {number} Returns the timer id. + * @example + * + * _.delay(function(text) { + * console.log(text); + * }, 1000, 'later'); + * // => Logs 'later' after one second. + */var delay=baseRest(function(func,wait,args){return baseDelay(func,toNumber(wait)||0,args);});/** + * Creates a function that invokes `func` with arguments reversed. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Function + * @param {Function} func The function to flip arguments for. + * @returns {Function} Returns the new flipped function. + * @example + * + * var flipped = _.flip(function() { + * return _.toArray(arguments); + * }); + * + * flipped('a', 'b', 'c', 'd'); + * // => ['d', 'c', 'b', 'a'] + */function flip(func){return createWrap(func,WRAP_FLIP_FLAG);}/** + * Creates a function that memoizes the result of `func`. If `resolver` is + * provided, it determines the cache key for storing the result based on the + * arguments provided to the memoized function. By default, the first argument + * provided to the memoized function is used as the map cache key. The `func` + * is invoked with the `this` binding of the memoized function. + * + * **Note:** The cache is exposed as the `cache` property on the memoized + * function. Its creation may be customized by replacing the `_.memoize.Cache` + * constructor with one whose instances implement the + * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object) + * method interface of `clear`, `delete`, `get`, `has`, and `set`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to have its output memoized. + * @param {Function} [resolver] The function to resolve the cache key. + * @returns {Function} Returns the new memoized function. + * @example + * + * var object = { 'a': 1, 'b': 2 }; + * var other = { 'c': 3, 'd': 4 }; + * + * var values = _.memoize(_.values); + * values(object); + * // => [1, 2] + * + * values(other); + * // => [3, 4] + * + * object.a = 2; + * values(object); + * // => [1, 2] + * + * // Modify the result cache. + * values.cache.set(object, ['a', 'b']); + * values(object); + * // => ['a', 'b'] + * + * // Replace `_.memoize.Cache`. + * _.memoize.Cache = WeakMap; + */function memoize(func,resolver){if(typeof func!='function'||resolver!=null&&typeof resolver!='function'){throw new TypeError(FUNC_ERROR_TEXT);}var memoized=function(){var args=arguments,key=resolver?resolver.apply(this,args):args[0],cache=memoized.cache;if(cache.has(key)){return cache.get(key);}var result=func.apply(this,args);memoized.cache=cache.set(key,result)||cache;return result;};memoized.cache=new(memoize.Cache||MapCache)();return memoized;}// Expose `MapCache`. + memoize.Cache=MapCache;/** + * Creates a function that negates the result of the predicate `func`. The + * `func` predicate is invoked with the `this` binding and arguments of the + * created function. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Function + * @param {Function} predicate The predicate to negate. + * @returns {Function} Returns the new negated function. + * @example + * + * function isEven(n) { + * return n % 2 == 0; + * } + * + * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven)); + * // => [1, 3, 5] + */function negate(predicate){if(typeof predicate!='function'){throw new TypeError(FUNC_ERROR_TEXT);}return function(){var args=arguments;switch(args.length){case 0:return !predicate.call(this);case 1:return !predicate.call(this,args[0]);case 2:return !predicate.call(this,args[0],args[1]);case 3:return !predicate.call(this,args[0],args[1],args[2]);}return !predicate.apply(this,args);};}/** + * Creates a function that is restricted to invoking `func` once. Repeat calls + * to the function return the value of the first invocation. The `func` is + * invoked with the `this` binding and arguments of the created function. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to restrict. + * @returns {Function} Returns the new restricted function. + * @example + * + * var initialize = _.once(createApplication); + * initialize(); + * initialize(); + * // => `createApplication` is invoked once + */function once(func){return before(2,func);}/** + * Creates a function that invokes `func` with its arguments transformed. + * + * @static + * @since 4.0.0 + * @memberOf _ + * @category Function + * @param {Function} func The function to wrap. + * @param {...(Function|Function[])} [transforms=[_.identity]] + * The argument transforms. + * @returns {Function} Returns the new function. + * @example + * + * function doubled(n) { + * return n * 2; + * } + * + * function square(n) { + * return n * n; + * } + * + * var func = _.overArgs(function(x, y) { + * return [x, y]; + * }, [square, doubled]); + * + * func(9, 3); + * // => [81, 6] + * + * func(10, 5); + * // => [100, 10] + */var overArgs=castRest(function(func,transforms){transforms=transforms.length==1&&isArray(transforms[0])?arrayMap(transforms[0],baseUnary(getIteratee())):arrayMap(baseFlatten(transforms,1),baseUnary(getIteratee()));var funcsLength=transforms.length;return baseRest(function(args){var index=-1,length=nativeMin(args.length,funcsLength);while(++index 'hello fred' + * + * // Partially applied with placeholders. + * var greetFred = _.partial(greet, _, 'fred'); + * greetFred('hi'); + * // => 'hi fred' + */var partial=baseRest(function(func,partials){var holders=replaceHolders(partials,getHolder(partial));return createWrap(func,WRAP_PARTIAL_FLAG,undefined$1,partials,holders);});/** + * This method is like `_.partial` except that partially applied arguments + * are appended to the arguments it receives. + * + * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic + * builds, may be used as a placeholder for partially applied arguments. + * + * **Note:** This method doesn't set the "length" property of partially + * applied functions. + * + * @static + * @memberOf _ + * @since 1.0.0 + * @category Function + * @param {Function} func The function to partially apply arguments to. + * @param {...*} [partials] The arguments to be partially applied. + * @returns {Function} Returns the new partially applied function. + * @example + * + * function greet(greeting, name) { + * return greeting + ' ' + name; + * } + * + * var greetFred = _.partialRight(greet, 'fred'); + * greetFred('hi'); + * // => 'hi fred' + * + * // Partially applied with placeholders. + * var sayHelloTo = _.partialRight(greet, 'hello', _); + * sayHelloTo('fred'); + * // => 'hello fred' + */var partialRight=baseRest(function(func,partials){var holders=replaceHolders(partials,getHolder(partialRight));return createWrap(func,WRAP_PARTIAL_RIGHT_FLAG,undefined$1,partials,holders);});/** + * Creates a function that invokes `func` with arguments arranged according + * to the specified `indexes` where the argument value at the first index is + * provided as the first argument, the argument value at the second index is + * provided as the second argument, and so on. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Function + * @param {Function} func The function to rearrange arguments for. + * @param {...(number|number[])} indexes The arranged argument indexes. + * @returns {Function} Returns the new function. + * @example + * + * var rearged = _.rearg(function(a, b, c) { + * return [a, b, c]; + * }, [2, 0, 1]); + * + * rearged('b', 'c', 'a') + * // => ['a', 'b', 'c'] + */var rearg=flatRest(function(func,indexes){return createWrap(func,WRAP_REARG_FLAG,undefined$1,undefined$1,undefined$1,indexes);});/** + * Creates a function that invokes `func` with the `this` binding of the + * created function and arguments from `start` and beyond provided as + * an array. + * + * **Note:** This method is based on the + * [rest parameter](https://mdn.io/rest_parameters). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Function + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @returns {Function} Returns the new function. + * @example + * + * var say = _.rest(function(what, names) { + * return what + ' ' + _.initial(names).join(', ') + + * (_.size(names) > 1 ? ', & ' : '') + _.last(names); + * }); + * + * say('hello', 'fred', 'barney', 'pebbles'); + * // => 'hello fred, barney, & pebbles' + */function rest(func,start){if(typeof func!='function'){throw new TypeError(FUNC_ERROR_TEXT);}start=start===undefined$1?start:toInteger(start);return baseRest(func,start);}/** + * Creates a function that invokes `func` with the `this` binding of the + * create function and an array of arguments much like + * [`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply). + * + * **Note:** This method is based on the + * [spread operator](https://mdn.io/spread_operator). + * + * @static + * @memberOf _ + * @since 3.2.0 + * @category Function + * @param {Function} func The function to spread arguments over. + * @param {number} [start=0] The start position of the spread. + * @returns {Function} Returns the new function. + * @example + * + * var say = _.spread(function(who, what) { + * return who + ' says ' + what; + * }); + * + * say(['fred', 'hello']); + * // => 'fred says hello' + * + * var numbers = Promise.all([ + * Promise.resolve(40), + * Promise.resolve(36) + * ]); + * + * numbers.then(_.spread(function(x, y) { + * return x + y; + * })); + * // => a Promise of 76 + */function spread(func,start){if(typeof func!='function'){throw new TypeError(FUNC_ERROR_TEXT);}start=start==null?0:nativeMax(toInteger(start),0);return baseRest(function(args){var array=args[start],otherArgs=castSlice(args,0,start);if(array){arrayPush(otherArgs,array);}return apply(func,this,otherArgs);});}/** + * Creates a throttled function that only invokes `func` at most once per + * every `wait` milliseconds. The throttled function comes with a `cancel` + * method to cancel delayed `func` invocations and a `flush` method to + * immediately invoke them. Provide `options` to indicate whether `func` + * should be invoked on the leading and/or trailing edge of the `wait` + * timeout. The `func` is invoked with the last arguments provided to the + * throttled function. Subsequent calls to the throttled function return the + * result of the last `func` invocation. + * + * **Note:** If `leading` and `trailing` options are `true`, `func` is + * invoked on the trailing edge of the timeout only if the throttled function + * is invoked more than once during the `wait` timeout. + * + * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred + * until to the next tick, similar to `setTimeout` with a timeout of `0`. + * + * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) + * for details over the differences between `_.throttle` and `_.debounce`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to throttle. + * @param {number} [wait=0] The number of milliseconds to throttle invocations to. + * @param {Object} [options={}] The options object. + * @param {boolean} [options.leading=true] + * Specify invoking on the leading edge of the timeout. + * @param {boolean} [options.trailing=true] + * Specify invoking on the trailing edge of the timeout. + * @returns {Function} Returns the new throttled function. + * @example + * + * // Avoid excessively updating the position while scrolling. + * jQuery(window).on('scroll', _.throttle(updatePosition, 100)); + * + * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes. + * var throttled = _.throttle(renewToken, 300000, { 'trailing': false }); + * jQuery(element).on('click', throttled); + * + * // Cancel the trailing throttled invocation. + * jQuery(window).on('popstate', throttled.cancel); + */function throttle(func,wait,options){var leading=true,trailing=true;if(typeof func!='function'){throw new TypeError(FUNC_ERROR_TEXT);}if(isObject(options)){leading='leading'in options?!!options.leading:leading;trailing='trailing'in options?!!options.trailing:trailing;}return debounce(func,wait,{'leading':leading,'maxWait':wait,'trailing':trailing});}/** + * Creates a function that accepts up to one argument, ignoring any + * additional arguments. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Function + * @param {Function} func The function to cap arguments for. + * @returns {Function} Returns the new capped function. + * @example + * + * _.map(['6', '8', '10'], _.unary(parseInt)); + * // => [6, 8, 10] + */function unary(func){return ary(func,1);}/** + * Creates a function that provides `value` to `wrapper` as its first + * argument. Any additional arguments provided to the function are appended + * to those provided to the `wrapper`. The wrapper is invoked with the `this` + * binding of the created function. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {*} value The value to wrap. + * @param {Function} [wrapper=identity] The wrapper function. + * @returns {Function} Returns the new function. + * @example + * + * var p = _.wrap(_.escape, function(func, text) { + * return '

' + func(text) + '

'; + * }); + * + * p('fred, barney, & pebbles'); + * // => '

fred, barney, & pebbles

' + */function wrap(value,wrapper){return partial(castFunction(wrapper),value);}/*------------------------------------------------------------------------*/ /** + * Casts `value` as an array if it's not one. + * + * @static + * @memberOf _ + * @since 4.4.0 + * @category Lang + * @param {*} value The value to inspect. + * @returns {Array} Returns the cast array. + * @example + * + * _.castArray(1); + * // => [1] + * + * _.castArray({ 'a': 1 }); + * // => [{ 'a': 1 }] + * + * _.castArray('abc'); + * // => ['abc'] + * + * _.castArray(null); + * // => [null] + * + * _.castArray(undefined); + * // => [undefined] + * + * _.castArray(); + * // => [] + * + * var array = [1, 2, 3]; + * console.log(_.castArray(array) === array); + * // => true + */function castArray(){if(!arguments.length){return [];}var value=arguments[0];return isArray(value)?value:[value];}/** + * Creates a shallow clone of `value`. + * + * **Note:** This method is loosely based on the + * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm) + * and supports cloning arrays, array buffers, booleans, date objects, maps, + * numbers, `Object` objects, regexes, sets, strings, symbols, and typed + * arrays. The own enumerable properties of `arguments` objects are cloned + * as plain objects. An empty object is returned for uncloneable values such + * as error objects, functions, DOM nodes, and WeakMaps. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to clone. + * @returns {*} Returns the cloned value. + * @see _.cloneDeep + * @example + * + * var objects = [{ 'a': 1 }, { 'b': 2 }]; + * + * var shallow = _.clone(objects); + * console.log(shallow[0] === objects[0]); + * // => true + */function clone(value){return baseClone(value,CLONE_SYMBOLS_FLAG);}/** + * This method is like `_.clone` except that it accepts `customizer` which + * is invoked to produce the cloned value. If `customizer` returns `undefined`, + * cloning is handled by the method instead. The `customizer` is invoked with + * up to four arguments; (value [, index|key, object, stack]). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to clone. + * @param {Function} [customizer] The function to customize cloning. + * @returns {*} Returns the cloned value. + * @see _.cloneDeepWith + * @example + * + * function customizer(value) { + * if (_.isElement(value)) { + * return value.cloneNode(false); + * } + * } + * + * var el = _.cloneWith(document.body, customizer); + * + * console.log(el === document.body); + * // => false + * console.log(el.nodeName); + * // => 'BODY' + * console.log(el.childNodes.length); + * // => 0 + */function cloneWith(value,customizer){customizer=typeof customizer=='function'?customizer:undefined$1;return baseClone(value,CLONE_SYMBOLS_FLAG,customizer);}/** + * This method is like `_.clone` except that it recursively clones `value`. + * + * @static + * @memberOf _ + * @since 1.0.0 + * @category Lang + * @param {*} value The value to recursively clone. + * @returns {*} Returns the deep cloned value. + * @see _.clone + * @example + * + * var objects = [{ 'a': 1 }, { 'b': 2 }]; + * + * var deep = _.cloneDeep(objects); + * console.log(deep[0] === objects[0]); + * // => false + */function cloneDeep(value){return baseClone(value,CLONE_DEEP_FLAG|CLONE_SYMBOLS_FLAG);}/** + * This method is like `_.cloneWith` except that it recursively clones `value`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to recursively clone. + * @param {Function} [customizer] The function to customize cloning. + * @returns {*} Returns the deep cloned value. + * @see _.cloneWith + * @example + * + * function customizer(value) { + * if (_.isElement(value)) { + * return value.cloneNode(true); + * } + * } + * + * var el = _.cloneDeepWith(document.body, customizer); + * + * console.log(el === document.body); + * // => false + * console.log(el.nodeName); + * // => 'BODY' + * console.log(el.childNodes.length); + * // => 20 + */function cloneDeepWith(value,customizer){customizer=typeof customizer=='function'?customizer:undefined$1;return baseClone(value,CLONE_DEEP_FLAG|CLONE_SYMBOLS_FLAG,customizer);}/** + * Checks if `object` conforms to `source` by invoking the predicate + * properties of `source` with the corresponding property values of `object`. + * + * **Note:** This method is equivalent to `_.conforms` when `source` is + * partially applied. + * + * @static + * @memberOf _ + * @since 4.14.0 + * @category Lang + * @param {Object} object The object to inspect. + * @param {Object} source The object of property predicates to conform to. + * @returns {boolean} Returns `true` if `object` conforms, else `false`. + * @example + * + * var object = { 'a': 1, 'b': 2 }; + * + * _.conformsTo(object, { 'b': function(n) { return n > 1; } }); + * // => true + * + * _.conformsTo(object, { 'b': function(n) { return n > 2; } }); + * // => false + */function conformsTo(object,source){return source==null||baseConformsTo(object,source,keys(source));}/** + * Performs a + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * comparison between two values to determine if they are equivalent. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.eq(object, object); + * // => true + * + * _.eq(object, other); + * // => false + * + * _.eq('a', 'a'); + * // => true + * + * _.eq('a', Object('a')); + * // => false + * + * _.eq(NaN, NaN); + * // => true + */function eq(value,other){return value===other||value!==value&&other!==other;}/** + * Checks if `value` is greater than `other`. + * + * @static + * @memberOf _ + * @since 3.9.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if `value` is greater than `other`, + * else `false`. + * @see _.lt + * @example + * + * _.gt(3, 1); + * // => true + * + * _.gt(3, 3); + * // => false + * + * _.gt(1, 3); + * // => false + */var gt=createRelationalOperation(baseGt);/** + * Checks if `value` is greater than or equal to `other`. + * + * @static + * @memberOf _ + * @since 3.9.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if `value` is greater than or equal to + * `other`, else `false`. + * @see _.lte + * @example + * + * _.gte(3, 1); + * // => true + * + * _.gte(3, 3); + * // => true + * + * _.gte(1, 3); + * // => false + */var gte=createRelationalOperation(function(value,other){return value>=other;});/** + * Checks if `value` is likely an `arguments` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + * else `false`. + * @example + * + * _.isArguments(function() { return arguments; }()); + * // => true + * + * _.isArguments([1, 2, 3]); + * // => false + */var isArguments=baseIsArguments(function(){return arguments;}())?baseIsArguments:function(value){return isObjectLike(value)&&hasOwnProperty.call(value,'callee')&&!propertyIsEnumerable.call(value,'callee');};/** + * Checks if `value` is classified as an `Array` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array, else `false`. + * @example + * + * _.isArray([1, 2, 3]); + * // => true + * + * _.isArray(document.body.children); + * // => false + * + * _.isArray('abc'); + * // => false + * + * _.isArray(_.noop); + * // => false + */var isArray=Array.isArray;/** + * Checks if `value` is classified as an `ArrayBuffer` object. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`. + * @example + * + * _.isArrayBuffer(new ArrayBuffer(2)); + * // => true + * + * _.isArrayBuffer(new Array(2)); + * // => false + */var isArrayBuffer=nodeIsArrayBuffer?baseUnary(nodeIsArrayBuffer):baseIsArrayBuffer;/** + * Checks if `value` is array-like. A value is considered array-like if it's + * not a function and has a `value.length` that's an integer greater than or + * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + * @example + * + * _.isArrayLike([1, 2, 3]); + * // => true + * + * _.isArrayLike(document.body.children); + * // => true + * + * _.isArrayLike('abc'); + * // => true + * + * _.isArrayLike(_.noop); + * // => false + */function isArrayLike(value){return value!=null&&isLength(value.length)&&!isFunction(value);}/** + * This method is like `_.isArrayLike` except that it also checks if `value` + * is an object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array-like object, + * else `false`. + * @example + * + * _.isArrayLikeObject([1, 2, 3]); + * // => true + * + * _.isArrayLikeObject(document.body.children); + * // => true + * + * _.isArrayLikeObject('abc'); + * // => false + * + * _.isArrayLikeObject(_.noop); + * // => false + */function isArrayLikeObject(value){return isObjectLike(value)&&isArrayLike(value);}/** + * Checks if `value` is classified as a boolean primitive or object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a boolean, else `false`. + * @example + * + * _.isBoolean(false); + * // => true + * + * _.isBoolean(null); + * // => false + */function isBoolean(value){return value===true||value===false||isObjectLike(value)&&baseGetTag(value)==boolTag;}/** + * Checks if `value` is a buffer. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. + * @example + * + * _.isBuffer(new Buffer(2)); + * // => true + * + * _.isBuffer(new Uint8Array(2)); + * // => false + */var isBuffer=nativeIsBuffer||stubFalse;/** + * Checks if `value` is classified as a `Date` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a date object, else `false`. + * @example + * + * _.isDate(new Date); + * // => true + * + * _.isDate('Mon April 23 2012'); + * // => false + */var isDate=nodeIsDate?baseUnary(nodeIsDate):baseIsDate;/** + * Checks if `value` is likely a DOM element. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`. + * @example + * + * _.isElement(document.body); + * // => true + * + * _.isElement(''); + * // => false + */function isElement(value){return isObjectLike(value)&&value.nodeType===1&&!isPlainObject(value);}/** + * Checks if `value` is an empty object, collection, map, or set. + * + * Objects are considered empty if they have no own enumerable string keyed + * properties. + * + * Array-like values such as `arguments` objects, arrays, buffers, strings, or + * jQuery-like collections are considered empty if they have a `length` of `0`. + * Similarly, maps and sets are considered empty if they have a `size` of `0`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is empty, else `false`. + * @example + * + * _.isEmpty(null); + * // => true + * + * _.isEmpty(true); + * // => true + * + * _.isEmpty(1); + * // => true + * + * _.isEmpty([1, 2, 3]); + * // => false + * + * _.isEmpty({ 'a': 1 }); + * // => false + */function isEmpty(value){if(value==null){return true;}if(isArrayLike(value)&&(isArray(value)||typeof value=='string'||typeof value.splice=='function'||isBuffer(value)||isTypedArray(value)||isArguments(value))){return !value.length;}var tag=getTag(value);if(tag==mapTag||tag==setTag){return !value.size;}if(isPrototype(value)){return !baseKeys(value).length;}for(var key in value){if(hasOwnProperty.call(value,key)){return false;}}return true;}/** + * Performs a deep comparison between two values to determine if they are + * equivalent. + * + * **Note:** This method supports comparing arrays, array buffers, booleans, + * date objects, error objects, maps, numbers, `Object` objects, regexes, + * sets, strings, symbols, and typed arrays. `Object` objects are compared + * by their own, not inherited, enumerable properties. Functions and DOM + * nodes are compared by strict equality, i.e. `===`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.isEqual(object, other); + * // => true + * + * object === other; + * // => false + */function isEqual(value,other){return baseIsEqual(value,other);}/** + * This method is like `_.isEqual` except that it accepts `customizer` which + * is invoked to compare values. If `customizer` returns `undefined`, comparisons + * are handled by the method instead. The `customizer` is invoked with up to + * six arguments: (objValue, othValue [, index|key, object, other, stack]). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @param {Function} [customizer] The function to customize comparisons. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * function isGreeting(value) { + * return /^h(?:i|ello)$/.test(value); + * } + * + * function customizer(objValue, othValue) { + * if (isGreeting(objValue) && isGreeting(othValue)) { + * return true; + * } + * } + * + * var array = ['hello', 'goodbye']; + * var other = ['hi', 'goodbye']; + * + * _.isEqualWith(array, other, customizer); + * // => true + */function isEqualWith(value,other,customizer){customizer=typeof customizer=='function'?customizer:undefined$1;var result=customizer?customizer(value,other):undefined$1;return result===undefined$1?baseIsEqual(value,other,undefined$1,customizer):!!result;}/** + * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`, + * `SyntaxError`, `TypeError`, or `URIError` object. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an error object, else `false`. + * @example + * + * _.isError(new Error); + * // => true + * + * _.isError(Error); + * // => false + */function isError(value){if(!isObjectLike(value)){return false;}var tag=baseGetTag(value);return tag==errorTag||tag==domExcTag||typeof value.message=='string'&&typeof value.name=='string'&&!isPlainObject(value);}/** + * Checks if `value` is a finite primitive number. + * + * **Note:** This method is based on + * [`Number.isFinite`](https://mdn.io/Number/isFinite). + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a finite number, else `false`. + * @example + * + * _.isFinite(3); + * // => true + * + * _.isFinite(Number.MIN_VALUE); + * // => true + * + * _.isFinite(Infinity); + * // => false + * + * _.isFinite('3'); + * // => false + */function isFinite(value){return typeof value=='number'&&nativeIsFinite(value);}/** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a function, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */function isFunction(value){if(!isObject(value)){return false;}// The use of `Object#toString` avoids issues with the `typeof` operator + // in Safari 9 which returns 'object' for typed arrays and other constructors. + var tag=baseGetTag(value);return tag==funcTag||tag==genTag||tag==asyncTag||tag==proxyTag;}/** + * Checks if `value` is an integer. + * + * **Note:** This method is based on + * [`Number.isInteger`](https://mdn.io/Number/isInteger). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an integer, else `false`. + * @example + * + * _.isInteger(3); + * // => true + * + * _.isInteger(Number.MIN_VALUE); + * // => false + * + * _.isInteger(Infinity); + * // => false + * + * _.isInteger('3'); + * // => false + */function isInteger(value){return typeof value=='number'&&value==toInteger(value);}/** + * Checks if `value` is a valid array-like length. + * + * **Note:** This method is loosely based on + * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + * @example + * + * _.isLength(3); + * // => true + * + * _.isLength(Number.MIN_VALUE); + * // => false + * + * _.isLength(Infinity); + * // => false + * + * _.isLength('3'); + * // => false + */function isLength(value){return typeof value=='number'&&value>-1&&value%1==0&&value<=MAX_SAFE_INTEGER;}/** + * Checks if `value` is the + * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) + * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(_.noop); + * // => true + * + * _.isObject(null); + * // => false + */function isObject(value){var type=typeof value;return value!=null&&(type=='object'||type=='function');}/** + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false + */function isObjectLike(value){return value!=null&&typeof value=='object';}/** + * Checks if `value` is classified as a `Map` object. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a map, else `false`. + * @example + * + * _.isMap(new Map); + * // => true + * + * _.isMap(new WeakMap); + * // => false + */var isMap=nodeIsMap?baseUnary(nodeIsMap):baseIsMap;/** + * Performs a partial deep comparison between `object` and `source` to + * determine if `object` contains equivalent property values. + * + * **Note:** This method is equivalent to `_.matches` when `source` is + * partially applied. + * + * Partial comparisons will match empty array and empty object `source` + * values against any array or object value, respectively. See `_.isEqual` + * for a list of supported value comparisons. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {Object} object The object to inspect. + * @param {Object} source The object of property values to match. + * @returns {boolean} Returns `true` if `object` is a match, else `false`. + * @example + * + * var object = { 'a': 1, 'b': 2 }; + * + * _.isMatch(object, { 'b': 2 }); + * // => true + * + * _.isMatch(object, { 'b': 1 }); + * // => false + */function isMatch(object,source){return object===source||baseIsMatch(object,source,getMatchData(source));}/** + * This method is like `_.isMatch` except that it accepts `customizer` which + * is invoked to compare values. If `customizer` returns `undefined`, comparisons + * are handled by the method instead. The `customizer` is invoked with five + * arguments: (objValue, srcValue, index|key, object, source). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {Object} object The object to inspect. + * @param {Object} source The object of property values to match. + * @param {Function} [customizer] The function to customize comparisons. + * @returns {boolean} Returns `true` if `object` is a match, else `false`. + * @example + * + * function isGreeting(value) { + * return /^h(?:i|ello)$/.test(value); + * } + * + * function customizer(objValue, srcValue) { + * if (isGreeting(objValue) && isGreeting(srcValue)) { + * return true; + * } + * } + * + * var object = { 'greeting': 'hello' }; + * var source = { 'greeting': 'hi' }; + * + * _.isMatchWith(object, source, customizer); + * // => true + */function isMatchWith(object,source,customizer){customizer=typeof customizer=='function'?customizer:undefined$1;return baseIsMatch(object,source,getMatchData(source),customizer);}/** + * Checks if `value` is `NaN`. + * + * **Note:** This method is based on + * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as + * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for + * `undefined` and other non-number values. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. + * @example + * + * _.isNaN(NaN); + * // => true + * + * _.isNaN(new Number(NaN)); + * // => true + * + * isNaN(undefined); + * // => true + * + * _.isNaN(undefined); + * // => false + */function isNaN(value){// An `NaN` primitive is the only value that is not equal to itself. + // Perform the `toStringTag` check first to avoid errors with some + // ActiveX objects in IE. + return isNumber(value)&&value!=+value;}/** + * Checks if `value` is a pristine native function. + * + * **Note:** This method can't reliably detect native functions in the presence + * of the core-js package because core-js circumvents this kind of detection. + * Despite multiple requests, the core-js maintainer has made it clear: any + * attempt to fix the detection will be obstructed. As a result, we're left + * with little choice but to throw an error. Unfortunately, this also affects + * packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill), + * which rely on core-js. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, + * else `false`. + * @example + * + * _.isNative(Array.prototype.push); + * // => true + * + * _.isNative(_); + * // => false + */function isNative(value){if(isMaskable(value)){throw new Error(CORE_ERROR_TEXT);}return baseIsNative(value);}/** + * Checks if `value` is `null`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `null`, else `false`. + * @example + * + * _.isNull(null); + * // => true + * + * _.isNull(void 0); + * // => false + */function isNull(value){return value===null;}/** + * Checks if `value` is `null` or `undefined`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is nullish, else `false`. + * @example + * + * _.isNil(null); + * // => true + * + * _.isNil(void 0); + * // => true + * + * _.isNil(NaN); + * // => false + */function isNil(value){return value==null;}/** + * Checks if `value` is classified as a `Number` primitive or object. + * + * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are + * classified as numbers, use the `_.isFinite` method. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a number, else `false`. + * @example + * + * _.isNumber(3); + * // => true + * + * _.isNumber(Number.MIN_VALUE); + * // => true + * + * _.isNumber(Infinity); + * // => true + * + * _.isNumber('3'); + * // => false + */function isNumber(value){return typeof value=='number'||isObjectLike(value)&&baseGetTag(value)==numberTag;}/** + * Checks if `value` is a plain object, that is, an object created by the + * `Object` constructor or one with a `[[Prototype]]` of `null`. + * + * @static + * @memberOf _ + * @since 0.8.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a plain object, else `false`. + * @example + * + * function Foo() { + * this.a = 1; + * } + * + * _.isPlainObject(new Foo); + * // => false + * + * _.isPlainObject([1, 2, 3]); + * // => false + * + * _.isPlainObject({ 'x': 0, 'y': 0 }); + * // => true + * + * _.isPlainObject(Object.create(null)); + * // => true + */function isPlainObject(value){if(!isObjectLike(value)||baseGetTag(value)!=objectTag){return false;}var proto=getPrototype(value);if(proto===null){return true;}var Ctor=hasOwnProperty.call(proto,'constructor')&&proto.constructor;return typeof Ctor=='function'&&Ctor instanceof Ctor&&funcToString.call(Ctor)==objectCtorString;}/** + * Checks if `value` is classified as a `RegExp` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a regexp, else `false`. + * @example + * + * _.isRegExp(/abc/); + * // => true + * + * _.isRegExp('/abc/'); + * // => false + */var isRegExp=nodeIsRegExp?baseUnary(nodeIsRegExp):baseIsRegExp;/** + * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754 + * double precision number which isn't the result of a rounded unsafe integer. + * + * **Note:** This method is based on + * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a safe integer, else `false`. + * @example + * + * _.isSafeInteger(3); + * // => true + * + * _.isSafeInteger(Number.MIN_VALUE); + * // => false + * + * _.isSafeInteger(Infinity); + * // => false + * + * _.isSafeInteger('3'); + * // => false + */function isSafeInteger(value){return isInteger(value)&&value>=-MAX_SAFE_INTEGER&&value<=MAX_SAFE_INTEGER;}/** + * Checks if `value` is classified as a `Set` object. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a set, else `false`. + * @example + * + * _.isSet(new Set); + * // => true + * + * _.isSet(new WeakSet); + * // => false + */var isSet=nodeIsSet?baseUnary(nodeIsSet):baseIsSet;/** + * Checks if `value` is classified as a `String` primitive or object. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a string, else `false`. + * @example + * + * _.isString('abc'); + * // => true + * + * _.isString(1); + * // => false + */function isString(value){return typeof value=='string'||!isArray(value)&&isObjectLike(value)&&baseGetTag(value)==stringTag;}/** + * Checks if `value` is classified as a `Symbol` primitive or object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. + * @example + * + * _.isSymbol(Symbol.iterator); + * // => true + * + * _.isSymbol('abc'); + * // => false + */function isSymbol(value){return typeof value=='symbol'||isObjectLike(value)&&baseGetTag(value)==symbolTag;}/** + * Checks if `value` is classified as a typed array. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + * @example + * + * _.isTypedArray(new Uint8Array); + * // => true + * + * _.isTypedArray([]); + * // => false + */var isTypedArray=nodeIsTypedArray?baseUnary(nodeIsTypedArray):baseIsTypedArray;/** + * Checks if `value` is `undefined`. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`. + * @example + * + * _.isUndefined(void 0); + * // => true + * + * _.isUndefined(null); + * // => false + */function isUndefined(value){return value===undefined$1;}/** + * Checks if `value` is classified as a `WeakMap` object. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a weak map, else `false`. + * @example + * + * _.isWeakMap(new WeakMap); + * // => true + * + * _.isWeakMap(new Map); + * // => false + */function isWeakMap(value){return isObjectLike(value)&&getTag(value)==weakMapTag;}/** + * Checks if `value` is classified as a `WeakSet` object. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a weak set, else `false`. + * @example + * + * _.isWeakSet(new WeakSet); + * // => true + * + * _.isWeakSet(new Set); + * // => false + */function isWeakSet(value){return isObjectLike(value)&&baseGetTag(value)==weakSetTag;}/** + * Checks if `value` is less than `other`. + * + * @static + * @memberOf _ + * @since 3.9.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if `value` is less than `other`, + * else `false`. + * @see _.gt + * @example + * + * _.lt(1, 3); + * // => true + * + * _.lt(3, 3); + * // => false + * + * _.lt(3, 1); + * // => false + */var lt=createRelationalOperation(baseLt);/** + * Checks if `value` is less than or equal to `other`. + * + * @static + * @memberOf _ + * @since 3.9.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if `value` is less than or equal to + * `other`, else `false`. + * @see _.gte + * @example + * + * _.lte(1, 3); + * // => true + * + * _.lte(3, 3); + * // => true + * + * _.lte(3, 1); + * // => false + */var lte=createRelationalOperation(function(value,other){return value<=other;});/** + * Converts `value` to an array. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Lang + * @param {*} value The value to convert. + * @returns {Array} Returns the converted array. + * @example + * + * _.toArray({ 'a': 1, 'b': 2 }); + * // => [1, 2] + * + * _.toArray('abc'); + * // => ['a', 'b', 'c'] + * + * _.toArray(1); + * // => [] + * + * _.toArray(null); + * // => [] + */function toArray(value){if(!value){return [];}if(isArrayLike(value)){return isString(value)?stringToArray(value):copyArray(value);}if(symIterator&&value[symIterator]){return iteratorToArray(value[symIterator]());}var tag=getTag(value),func=tag==mapTag?mapToArray:tag==setTag?setToArray:values;return func(value);}/** + * Converts `value` to a finite number. + * + * @static + * @memberOf _ + * @since 4.12.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {number} Returns the converted number. + * @example + * + * _.toFinite(3.2); + * // => 3.2 + * + * _.toFinite(Number.MIN_VALUE); + * // => 5e-324 + * + * _.toFinite(Infinity); + * // => 1.7976931348623157e+308 + * + * _.toFinite('3.2'); + * // => 3.2 + */function toFinite(value){if(!value){return value===0?value:0;}value=toNumber(value);if(value===INFINITY||value===-INFINITY){var sign=value<0?-1:1;return sign*MAX_INTEGER;}return value===value?value:0;}/** + * Converts `value` to an integer. + * + * **Note:** This method is loosely based on + * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {number} Returns the converted integer. + * @example + * + * _.toInteger(3.2); + * // => 3 + * + * _.toInteger(Number.MIN_VALUE); + * // => 0 + * + * _.toInteger(Infinity); + * // => 1.7976931348623157e+308 + * + * _.toInteger('3.2'); + * // => 3 + */function toInteger(value){var result=toFinite(value),remainder=result%1;return result===result?remainder?result-remainder:result:0;}/** + * Converts `value` to an integer suitable for use as the length of an + * array-like object. + * + * **Note:** This method is based on + * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {number} Returns the converted integer. + * @example + * + * _.toLength(3.2); + * // => 3 + * + * _.toLength(Number.MIN_VALUE); + * // => 0 + * + * _.toLength(Infinity); + * // => 4294967295 + * + * _.toLength('3.2'); + * // => 3 + */function toLength(value){return value?baseClamp(toInteger(value),0,MAX_ARRAY_LENGTH):0;}/** + * Converts `value` to a number. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to process. + * @returns {number} Returns the number. + * @example + * + * _.toNumber(3.2); + * // => 3.2 + * + * _.toNumber(Number.MIN_VALUE); + * // => 5e-324 + * + * _.toNumber(Infinity); + * // => Infinity + * + * _.toNumber('3.2'); + * // => 3.2 + */function toNumber(value){if(typeof value=='number'){return value;}if(isSymbol(value)){return NAN;}if(isObject(value)){var other=typeof value.valueOf=='function'?value.valueOf():value;value=isObject(other)?other+'':other;}if(typeof value!='string'){return value===0?value:+value;}value=baseTrim(value);var isBinary=reIsBinary.test(value);return isBinary||reIsOctal.test(value)?freeParseInt(value.slice(2),isBinary?2:8):reIsBadHex.test(value)?NAN:+value;}/** + * Converts `value` to a plain object flattening inherited enumerable string + * keyed properties of `value` to own properties of the plain object. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {Object} Returns the converted plain object. + * @example + * + * function Foo() { + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.assign({ 'a': 1 }, new Foo); + * // => { 'a': 1, 'b': 2 } + * + * _.assign({ 'a': 1 }, _.toPlainObject(new Foo)); + * // => { 'a': 1, 'b': 2, 'c': 3 } + */function toPlainObject(value){return copyObject(value,keysIn(value));}/** + * Converts `value` to a safe integer. A safe integer can be compared and + * represented correctly. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {number} Returns the converted integer. + * @example + * + * _.toSafeInteger(3.2); + * // => 3 + * + * _.toSafeInteger(Number.MIN_VALUE); + * // => 0 + * + * _.toSafeInteger(Infinity); + * // => 9007199254740991 + * + * _.toSafeInteger('3.2'); + * // => 3 + */function toSafeInteger(value){return value?baseClamp(toInteger(value),-MAX_SAFE_INTEGER,MAX_SAFE_INTEGER):value===0?value:0;}/** + * Converts `value` to a string. An empty string is returned for `null` + * and `undefined` values. The sign of `-0` is preserved. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + * @example + * + * _.toString(null); + * // => '' + * + * _.toString(-0); + * // => '-0' + * + * _.toString([1, 2, 3]); + * // => '1,2,3' + */function toString(value){return value==null?'':baseToString(value);}/*------------------------------------------------------------------------*/ /** + * Assigns own enumerable string keyed properties of source objects to the + * destination object. Source objects are applied from left to right. + * Subsequent sources overwrite property assignments of previous sources. + * + * **Note:** This method mutates `object` and is loosely based on + * [`Object.assign`](https://mdn.io/Object/assign). + * + * @static + * @memberOf _ + * @since 0.10.0 + * @category Object + * @param {Object} object The destination object. + * @param {...Object} [sources] The source objects. + * @returns {Object} Returns `object`. + * @see _.assignIn + * @example + * + * function Foo() { + * this.a = 1; + * } + * + * function Bar() { + * this.c = 3; + * } + * + * Foo.prototype.b = 2; + * Bar.prototype.d = 4; + * + * _.assign({ 'a': 0 }, new Foo, new Bar); + * // => { 'a': 1, 'c': 3 } + */var assign=createAssigner(function(object,source){if(isPrototype(source)||isArrayLike(source)){copyObject(source,keys(source),object);return;}for(var key in source){if(hasOwnProperty.call(source,key)){assignValue(object,key,source[key]);}}});/** + * This method is like `_.assign` except that it iterates over own and + * inherited source properties. + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @alias extend + * @category Object + * @param {Object} object The destination object. + * @param {...Object} [sources] The source objects. + * @returns {Object} Returns `object`. + * @see _.assign + * @example + * + * function Foo() { + * this.a = 1; + * } + * + * function Bar() { + * this.c = 3; + * } + * + * Foo.prototype.b = 2; + * Bar.prototype.d = 4; + * + * _.assignIn({ 'a': 0 }, new Foo, new Bar); + * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 } + */var assignIn=createAssigner(function(object,source){copyObject(source,keysIn(source),object);});/** + * This method is like `_.assignIn` except that it accepts `customizer` + * which is invoked to produce the assigned values. If `customizer` returns + * `undefined`, assignment is handled by the method instead. The `customizer` + * is invoked with five arguments: (objValue, srcValue, key, object, source). + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @alias extendWith + * @category Object + * @param {Object} object The destination object. + * @param {...Object} sources The source objects. + * @param {Function} [customizer] The function to customize assigned values. + * @returns {Object} Returns `object`. + * @see _.assignWith + * @example + * + * function customizer(objValue, srcValue) { + * return _.isUndefined(objValue) ? srcValue : objValue; + * } + * + * var defaults = _.partialRight(_.assignInWith, customizer); + * + * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); + * // => { 'a': 1, 'b': 2 } + */var assignInWith=createAssigner(function(object,source,srcIndex,customizer){copyObject(source,keysIn(source),object,customizer);});/** + * This method is like `_.assign` except that it accepts `customizer` + * which is invoked to produce the assigned values. If `customizer` returns + * `undefined`, assignment is handled by the method instead. The `customizer` + * is invoked with five arguments: (objValue, srcValue, key, object, source). + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The destination object. + * @param {...Object} sources The source objects. + * @param {Function} [customizer] The function to customize assigned values. + * @returns {Object} Returns `object`. + * @see _.assignInWith + * @example + * + * function customizer(objValue, srcValue) { + * return _.isUndefined(objValue) ? srcValue : objValue; + * } + * + * var defaults = _.partialRight(_.assignWith, customizer); + * + * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); + * // => { 'a': 1, 'b': 2 } + */var assignWith=createAssigner(function(object,source,srcIndex,customizer){copyObject(source,keys(source),object,customizer);});/** + * Creates an array of values corresponding to `paths` of `object`. + * + * @static + * @memberOf _ + * @since 1.0.0 + * @category Object + * @param {Object} object The object to iterate over. + * @param {...(string|string[])} [paths] The property paths to pick. + * @returns {Array} Returns the picked values. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] }; + * + * _.at(object, ['a[0].b.c', 'a[1]']); + * // => [3, 4] + */var at=flatRest(baseAt);/** + * Creates an object that inherits from the `prototype` object. If a + * `properties` object is given, its own enumerable string keyed properties + * are assigned to the created object. + * + * @static + * @memberOf _ + * @since 2.3.0 + * @category Object + * @param {Object} prototype The object to inherit from. + * @param {Object} [properties] The properties to assign to the object. + * @returns {Object} Returns the new object. + * @example + * + * function Shape() { + * this.x = 0; + * this.y = 0; + * } + * + * function Circle() { + * Shape.call(this); + * } + * + * Circle.prototype = _.create(Shape.prototype, { + * 'constructor': Circle + * }); + * + * var circle = new Circle; + * circle instanceof Circle; + * // => true + * + * circle instanceof Shape; + * // => true + */function create(prototype,properties){var result=baseCreate(prototype);return properties==null?result:baseAssign(result,properties);}/** + * Assigns own and inherited enumerable string keyed properties of source + * objects to the destination object for all destination properties that + * resolve to `undefined`. Source objects are applied from left to right. + * Once a property is set, additional values of the same property are ignored. + * + * **Note:** This method mutates `object`. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The destination object. + * @param {...Object} [sources] The source objects. + * @returns {Object} Returns `object`. + * @see _.defaultsDeep + * @example + * + * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); + * // => { 'a': 1, 'b': 2 } + */var defaults=baseRest(function(object,sources){object=Object(object);var index=-1;var length=sources.length;var guard=length>2?sources[2]:undefined$1;if(guard&&isIterateeCall(sources[0],sources[1],guard)){length=1;}while(++index { 'a': { 'b': 2, 'c': 3 } } + */var defaultsDeep=baseRest(function(args){args.push(undefined$1,customDefaultsMerge);return apply(mergeWith,undefined$1,args);});/** + * This method is like `_.find` except that it returns the key of the first + * element `predicate` returns truthy for instead of the element itself. + * + * @static + * @memberOf _ + * @since 1.1.0 + * @category Object + * @param {Object} object The object to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {string|undefined} Returns the key of the matched element, + * else `undefined`. + * @example + * + * var users = { + * 'barney': { 'age': 36, 'active': true }, + * 'fred': { 'age': 40, 'active': false }, + * 'pebbles': { 'age': 1, 'active': true } + * }; + * + * _.findKey(users, function(o) { return o.age < 40; }); + * // => 'barney' (iteration order is not guaranteed) + * + * // The `_.matches` iteratee shorthand. + * _.findKey(users, { 'age': 1, 'active': true }); + * // => 'pebbles' + * + * // The `_.matchesProperty` iteratee shorthand. + * _.findKey(users, ['active', false]); + * // => 'fred' + * + * // The `_.property` iteratee shorthand. + * _.findKey(users, 'active'); + * // => 'barney' + */function findKey(object,predicate){return baseFindKey(object,getIteratee(predicate,3),baseForOwn);}/** + * This method is like `_.findKey` except that it iterates over elements of + * a collection in the opposite order. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @category Object + * @param {Object} object The object to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {string|undefined} Returns the key of the matched element, + * else `undefined`. + * @example + * + * var users = { + * 'barney': { 'age': 36, 'active': true }, + * 'fred': { 'age': 40, 'active': false }, + * 'pebbles': { 'age': 1, 'active': true } + * }; + * + * _.findLastKey(users, function(o) { return o.age < 40; }); + * // => returns 'pebbles' assuming `_.findKey` returns 'barney' + * + * // The `_.matches` iteratee shorthand. + * _.findLastKey(users, { 'age': 36, 'active': true }); + * // => 'barney' + * + * // The `_.matchesProperty` iteratee shorthand. + * _.findLastKey(users, ['active', false]); + * // => 'fred' + * + * // The `_.property` iteratee shorthand. + * _.findLastKey(users, 'active'); + * // => 'pebbles' + */function findLastKey(object,predicate){return baseFindKey(object,getIteratee(predicate,3),baseForOwnRight);}/** + * Iterates over own and inherited enumerable string keyed properties of an + * object and invokes `iteratee` for each property. The iteratee is invoked + * with three arguments: (value, key, object). Iteratee functions may exit + * iteration early by explicitly returning `false`. + * + * @static + * @memberOf _ + * @since 0.3.0 + * @category Object + * @param {Object} object The object to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Object} Returns `object`. + * @see _.forInRight + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.forIn(new Foo, function(value, key) { + * console.log(key); + * }); + * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed). + */function forIn(object,iteratee){return object==null?object:baseFor(object,getIteratee(iteratee,3),keysIn);}/** + * This method is like `_.forIn` except that it iterates over properties of + * `object` in the opposite order. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @category Object + * @param {Object} object The object to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Object} Returns `object`. + * @see _.forIn + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.forInRight(new Foo, function(value, key) { + * console.log(key); + * }); + * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'. + */function forInRight(object,iteratee){return object==null?object:baseForRight(object,getIteratee(iteratee,3),keysIn);}/** + * Iterates over own enumerable string keyed properties of an object and + * invokes `iteratee` for each property. The iteratee is invoked with three + * arguments: (value, key, object). Iteratee functions may exit iteration + * early by explicitly returning `false`. + * + * @static + * @memberOf _ + * @since 0.3.0 + * @category Object + * @param {Object} object The object to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Object} Returns `object`. + * @see _.forOwnRight + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.forOwn(new Foo, function(value, key) { + * console.log(key); + * }); + * // => Logs 'a' then 'b' (iteration order is not guaranteed). + */function forOwn(object,iteratee){return object&&baseForOwn(object,getIteratee(iteratee,3));}/** + * This method is like `_.forOwn` except that it iterates over properties of + * `object` in the opposite order. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @category Object + * @param {Object} object The object to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Object} Returns `object`. + * @see _.forOwn + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.forOwnRight(new Foo, function(value, key) { + * console.log(key); + * }); + * // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'. + */function forOwnRight(object,iteratee){return object&&baseForOwnRight(object,getIteratee(iteratee,3));}/** + * Creates an array of function property names from own enumerable properties + * of `object`. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to inspect. + * @returns {Array} Returns the function names. + * @see _.functionsIn + * @example + * + * function Foo() { + * this.a = _.constant('a'); + * this.b = _.constant('b'); + * } + * + * Foo.prototype.c = _.constant('c'); + * + * _.functions(new Foo); + * // => ['a', 'b'] + */function functions(object){return object==null?[]:baseFunctions(object,keys(object));}/** + * Creates an array of function property names from own and inherited + * enumerable properties of `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The object to inspect. + * @returns {Array} Returns the function names. + * @see _.functions + * @example + * + * function Foo() { + * this.a = _.constant('a'); + * this.b = _.constant('b'); + * } + * + * Foo.prototype.c = _.constant('c'); + * + * _.functionsIn(new Foo); + * // => ['a', 'b', 'c'] + */function functionsIn(object){return object==null?[]:baseFunctions(object,keysIn(object));}/** + * Gets the value at `path` of `object`. If the resolved value is + * `undefined`, the `defaultValue` is returned in its place. + * + * @static + * @memberOf _ + * @since 3.7.0 + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to get. + * @param {*} [defaultValue] The value returned for `undefined` resolved values. + * @returns {*} Returns the resolved value. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 3 } }] }; + * + * _.get(object, 'a[0].b.c'); + * // => 3 + * + * _.get(object, ['a', '0', 'b', 'c']); + * // => 3 + * + * _.get(object, 'a.b.c', 'default'); + * // => 'default' + */function get(object,path,defaultValue){var result=object==null?undefined$1:baseGet(object,path);return result===undefined$1?defaultValue:result;}/** + * Checks if `path` is a direct property of `object`. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + * @example + * + * var object = { 'a': { 'b': 2 } }; + * var other = _.create({ 'a': _.create({ 'b': 2 }) }); + * + * _.has(object, 'a'); + * // => true + * + * _.has(object, 'a.b'); + * // => true + * + * _.has(object, ['a', 'b']); + * // => true + * + * _.has(other, 'a'); + * // => false + */function has(object,path){return object!=null&&hasPath(object,path,baseHas);}/** + * Checks if `path` is a direct or inherited property of `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + * @example + * + * var object = _.create({ 'a': _.create({ 'b': 2 }) }); + * + * _.hasIn(object, 'a'); + * // => true + * + * _.hasIn(object, 'a.b'); + * // => true + * + * _.hasIn(object, ['a', 'b']); + * // => true + * + * _.hasIn(object, 'b'); + * // => false + */function hasIn(object,path){return object!=null&&hasPath(object,path,baseHasIn);}/** + * Creates an object composed of the inverted keys and values of `object`. + * If `object` contains duplicate values, subsequent values overwrite + * property assignments of previous values. + * + * @static + * @memberOf _ + * @since 0.7.0 + * @category Object + * @param {Object} object The object to invert. + * @returns {Object} Returns the new inverted object. + * @example + * + * var object = { 'a': 1, 'b': 2, 'c': 1 }; + * + * _.invert(object); + * // => { '1': 'c', '2': 'b' } + */var invert=createInverter(function(result,value,key){if(value!=null&&typeof value.toString!='function'){value=nativeObjectToString.call(value);}result[value]=key;},constant(identity));/** + * This method is like `_.invert` except that the inverted object is generated + * from the results of running each element of `object` thru `iteratee`. The + * corresponding inverted value of each inverted key is an array of keys + * responsible for generating the inverted value. The iteratee is invoked + * with one argument: (value). + * + * @static + * @memberOf _ + * @since 4.1.0 + * @category Object + * @param {Object} object The object to invert. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. + * @returns {Object} Returns the new inverted object. + * @example + * + * var object = { 'a': 1, 'b': 2, 'c': 1 }; + * + * _.invertBy(object); + * // => { '1': ['a', 'c'], '2': ['b'] } + * + * _.invertBy(object, function(value) { + * return 'group' + value; + * }); + * // => { 'group1': ['a', 'c'], 'group2': ['b'] } + */var invertBy=createInverter(function(result,value,key){if(value!=null&&typeof value.toString!='function'){value=nativeObjectToString.call(value);}if(hasOwnProperty.call(result,value)){result[value].push(key);}else {result[value]=[key];}},getIteratee);/** + * Invokes the method at `path` of `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path of the method to invoke. + * @param {...*} [args] The arguments to invoke the method with. + * @returns {*} Returns the result of the invoked method. + * @example + * + * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] }; + * + * _.invoke(object, 'a[0].b.c.slice', 1, 3); + * // => [2, 3] + */var invoke=baseRest(baseInvoke);/** + * Creates an array of the own enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. See the + * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) + * for more details. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keys(new Foo); + * // => ['a', 'b'] (iteration order is not guaranteed) + * + * _.keys('hi'); + * // => ['0', '1'] + */function keys(object){return isArrayLike(object)?arrayLikeKeys(object):baseKeys(object);}/** + * Creates an array of the own and inherited enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keysIn(new Foo); + * // => ['a', 'b', 'c'] (iteration order is not guaranteed) + */function keysIn(object){return isArrayLike(object)?arrayLikeKeys(object,true):baseKeysIn(object);}/** + * The opposite of `_.mapValues`; this method creates an object with the + * same values as `object` and keys generated by running each own enumerable + * string keyed property of `object` thru `iteratee`. The iteratee is invoked + * with three arguments: (value, key, object). + * + * @static + * @memberOf _ + * @since 3.8.0 + * @category Object + * @param {Object} object The object to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Object} Returns the new mapped object. + * @see _.mapValues + * @example + * + * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) { + * return key + value; + * }); + * // => { 'a1': 1, 'b2': 2 } + */function mapKeys(object,iteratee){var result={};iteratee=getIteratee(iteratee,3);baseForOwn(object,function(value,key,object){baseAssignValue(result,iteratee(value,key,object),value);});return result;}/** + * Creates an object with the same keys as `object` and values generated + * by running each own enumerable string keyed property of `object` thru + * `iteratee`. The iteratee is invoked with three arguments: + * (value, key, object). + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Object + * @param {Object} object The object to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Object} Returns the new mapped object. + * @see _.mapKeys + * @example + * + * var users = { + * 'fred': { 'user': 'fred', 'age': 40 }, + * 'pebbles': { 'user': 'pebbles', 'age': 1 } + * }; + * + * _.mapValues(users, function(o) { return o.age; }); + * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed) + * + * // The `_.property` iteratee shorthand. + * _.mapValues(users, 'age'); + * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed) + */function mapValues(object,iteratee){var result={};iteratee=getIteratee(iteratee,3);baseForOwn(object,function(value,key,object){baseAssignValue(result,key,iteratee(value,key,object));});return result;}/** + * This method is like `_.assign` except that it recursively merges own and + * inherited enumerable string keyed properties of source objects into the + * destination object. Source properties that resolve to `undefined` are + * skipped if a destination value exists. Array and plain object properties + * are merged recursively. Other objects and value types are overridden by + * assignment. Source objects are applied from left to right. Subsequent + * sources overwrite property assignments of previous sources. + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 0.5.0 + * @category Object + * @param {Object} object The destination object. + * @param {...Object} [sources] The source objects. + * @returns {Object} Returns `object`. + * @example + * + * var object = { + * 'a': [{ 'b': 2 }, { 'd': 4 }] + * }; + * + * var other = { + * 'a': [{ 'c': 3 }, { 'e': 5 }] + * }; + * + * _.merge(object, other); + * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] } + */var merge=createAssigner(function(object,source,srcIndex){baseMerge(object,source,srcIndex);});/** + * This method is like `_.merge` except that it accepts `customizer` which + * is invoked to produce the merged values of the destination and source + * properties. If `customizer` returns `undefined`, merging is handled by the + * method instead. The `customizer` is invoked with six arguments: + * (objValue, srcValue, key, object, source, stack). + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The destination object. + * @param {...Object} sources The source objects. + * @param {Function} customizer The function to customize assigned values. + * @returns {Object} Returns `object`. + * @example + * + * function customizer(objValue, srcValue) { + * if (_.isArray(objValue)) { + * return objValue.concat(srcValue); + * } + * } + * + * var object = { 'a': [1], 'b': [2] }; + * var other = { 'a': [3], 'b': [4] }; + * + * _.mergeWith(object, other, customizer); + * // => { 'a': [1, 3], 'b': [2, 4] } + */var mergeWith=createAssigner(function(object,source,srcIndex,customizer){baseMerge(object,source,srcIndex,customizer);});/** + * The opposite of `_.pick`; this method creates an object composed of the + * own and inherited enumerable property paths of `object` that are not omitted. + * + * **Note:** This method is considerably slower than `_.pick`. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The source object. + * @param {...(string|string[])} [paths] The property paths to omit. + * @returns {Object} Returns the new object. + * @example + * + * var object = { 'a': 1, 'b': '2', 'c': 3 }; + * + * _.omit(object, ['a', 'c']); + * // => { 'b': '2' } + */var omit=flatRest(function(object,paths){var result={};if(object==null){return result;}var isDeep=false;paths=arrayMap(paths,function(path){path=castPath(path,object);isDeep||(isDeep=path.length>1);return path;});copyObject(object,getAllKeysIn(object),result);if(isDeep){result=baseClone(result,CLONE_DEEP_FLAG|CLONE_FLAT_FLAG|CLONE_SYMBOLS_FLAG,customOmitClone);}var length=paths.length;while(length--){baseUnset(result,paths[length]);}return result;});/** + * The opposite of `_.pickBy`; this method creates an object composed of + * the own and inherited enumerable string keyed properties of `object` that + * `predicate` doesn't return truthy for. The predicate is invoked with two + * arguments: (value, key). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The source object. + * @param {Function} [predicate=_.identity] The function invoked per property. + * @returns {Object} Returns the new object. + * @example + * + * var object = { 'a': 1, 'b': '2', 'c': 3 }; + * + * _.omitBy(object, _.isNumber); + * // => { 'b': '2' } + */function omitBy(object,predicate){return pickBy(object,negate(getIteratee(predicate)));}/** + * Creates an object composed of the picked `object` properties. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The source object. + * @param {...(string|string[])} [paths] The property paths to pick. + * @returns {Object} Returns the new object. + * @example + * + * var object = { 'a': 1, 'b': '2', 'c': 3 }; + * + * _.pick(object, ['a', 'c']); + * // => { 'a': 1, 'c': 3 } + */var pick=flatRest(function(object,paths){return object==null?{}:basePick(object,paths);});/** + * Creates an object composed of the `object` properties `predicate` returns + * truthy for. The predicate is invoked with two arguments: (value, key). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The source object. + * @param {Function} [predicate=_.identity] The function invoked per property. + * @returns {Object} Returns the new object. + * @example + * + * var object = { 'a': 1, 'b': '2', 'c': 3 }; + * + * _.pickBy(object, _.isNumber); + * // => { 'a': 1, 'c': 3 } + */function pickBy(object,predicate){if(object==null){return {};}var props=arrayMap(getAllKeysIn(object),function(prop){return [prop];});predicate=getIteratee(predicate);return basePickBy(object,props,function(value,path){return predicate(value,path[0]);});}/** + * This method is like `_.get` except that if the resolved value is a + * function it's invoked with the `this` binding of its parent object and + * its result is returned. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to resolve. + * @param {*} [defaultValue] The value returned for `undefined` resolved values. + * @returns {*} Returns the resolved value. + * @example + * + * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] }; + * + * _.result(object, 'a[0].b.c1'); + * // => 3 + * + * _.result(object, 'a[0].b.c2'); + * // => 4 + * + * _.result(object, 'a[0].b.c3', 'default'); + * // => 'default' + * + * _.result(object, 'a[0].b.c3', _.constant('default')); + * // => 'default' + */function result(object,path,defaultValue){path=castPath(path,object);var index=-1,length=path.length;// Ensure the loop is entered when path is empty. + if(!length){length=1;object=undefined$1;}while(++index 4 + * + * _.set(object, ['x', '0', 'y', 'z'], 5); + * console.log(object.x[0].y.z); + * // => 5 + */function set(object,path,value){return object==null?object:baseSet(object,path,value);}/** + * This method is like `_.set` except that it accepts `customizer` which is + * invoked to produce the objects of `path`. If `customizer` returns `undefined` + * path creation is handled by the method instead. The `customizer` is invoked + * with three arguments: (nsValue, key, nsObject). + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to set. + * @param {*} value The value to set. + * @param {Function} [customizer] The function to customize assigned values. + * @returns {Object} Returns `object`. + * @example + * + * var object = {}; + * + * _.setWith(object, '[0][1]', 'a', Object); + * // => { '0': { '1': 'a' } } + */function setWith(object,path,value,customizer){customizer=typeof customizer=='function'?customizer:undefined$1;return object==null?object:baseSet(object,path,value,customizer);}/** + * Creates an array of own enumerable string keyed-value pairs for `object` + * which can be consumed by `_.fromPairs`. If `object` is a map or set, its + * entries are returned. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @alias entries + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the key-value pairs. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.toPairs(new Foo); + * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed) + */var toPairs=createToPairs(keys);/** + * Creates an array of own and inherited enumerable string keyed-value pairs + * for `object` which can be consumed by `_.fromPairs`. If `object` is a map + * or set, its entries are returned. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @alias entriesIn + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the key-value pairs. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.toPairsIn(new Foo); + * // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed) + */var toPairsIn=createToPairs(keysIn);/** + * An alternative to `_.reduce`; this method transforms `object` to a new + * `accumulator` object which is the result of running each of its own + * enumerable string keyed properties thru `iteratee`, with each invocation + * potentially mutating the `accumulator` object. If `accumulator` is not + * provided, a new object with the same `[[Prototype]]` will be used. The + * iteratee is invoked with four arguments: (accumulator, value, key, object). + * Iteratee functions may exit iteration early by explicitly returning `false`. + * + * @static + * @memberOf _ + * @since 1.3.0 + * @category Object + * @param {Object} object The object to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @param {*} [accumulator] The custom accumulator value. + * @returns {*} Returns the accumulated value. + * @example + * + * _.transform([2, 3, 4], function(result, n) { + * result.push(n *= n); + * return n % 2 == 0; + * }, []); + * // => [4, 9] + * + * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) { + * (result[value] || (result[value] = [])).push(key); + * }, {}); + * // => { '1': ['a', 'c'], '2': ['b'] } + */function transform(object,iteratee,accumulator){var isArr=isArray(object),isArrLike=isArr||isBuffer(object)||isTypedArray(object);iteratee=getIteratee(iteratee,4);if(accumulator==null){var Ctor=object&&object.constructor;if(isArrLike){accumulator=isArr?new Ctor():[];}else if(isObject(object)){accumulator=isFunction(Ctor)?baseCreate(getPrototype(object)):{};}else {accumulator={};}}(isArrLike?arrayEach:baseForOwn)(object,function(value,index,object){return iteratee(accumulator,value,index,object);});return accumulator;}/** + * Removes the property at `path` of `object`. + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to unset. + * @returns {boolean} Returns `true` if the property is deleted, else `false`. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 7 } }] }; + * _.unset(object, 'a[0].b.c'); + * // => true + * + * console.log(object); + * // => { 'a': [{ 'b': {} }] }; + * + * _.unset(object, ['a', '0', 'b', 'c']); + * // => true + * + * console.log(object); + * // => { 'a': [{ 'b': {} }] }; + */function unset(object,path){return object==null?true:baseUnset(object,path);}/** + * This method is like `_.set` except that accepts `updater` to produce the + * value to set. Use `_.updateWith` to customize `path` creation. The `updater` + * is invoked with one argument: (value). + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 4.6.0 + * @category Object + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to set. + * @param {Function} updater The function to produce the updated value. + * @returns {Object} Returns `object`. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 3 } }] }; + * + * _.update(object, 'a[0].b.c', function(n) { return n * n; }); + * console.log(object.a[0].b.c); + * // => 9 + * + * _.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; }); + * console.log(object.x[0].y.z); + * // => 0 + */function update(object,path,updater){return object==null?object:baseUpdate(object,path,castFunction(updater));}/** + * This method is like `_.update` except that it accepts `customizer` which is + * invoked to produce the objects of `path`. If `customizer` returns `undefined` + * path creation is handled by the method instead. The `customizer` is invoked + * with three arguments: (nsValue, key, nsObject). + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 4.6.0 + * @category Object + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to set. + * @param {Function} updater The function to produce the updated value. + * @param {Function} [customizer] The function to customize assigned values. + * @returns {Object} Returns `object`. + * @example + * + * var object = {}; + * + * _.updateWith(object, '[0][1]', _.constant('a'), Object); + * // => { '0': { '1': 'a' } } + */function updateWith(object,path,updater,customizer){customizer=typeof customizer=='function'?customizer:undefined$1;return object==null?object:baseUpdate(object,path,castFunction(updater),customizer);}/** + * Creates an array of the own enumerable string keyed property values of `object`. + * + * **Note:** Non-object values are coerced to objects. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property values. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.values(new Foo); + * // => [1, 2] (iteration order is not guaranteed) + * + * _.values('hi'); + * // => ['h', 'i'] + */function values(object){return object==null?[]:baseValues(object,keys(object));}/** + * Creates an array of the own and inherited enumerable string keyed property + * values of `object`. + * + * **Note:** Non-object values are coerced to objects. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property values. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.valuesIn(new Foo); + * // => [1, 2, 3] (iteration order is not guaranteed) + */function valuesIn(object){return object==null?[]:baseValues(object,keysIn(object));}/*------------------------------------------------------------------------*/ /** + * Clamps `number` within the inclusive `lower` and `upper` bounds. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Number + * @param {number} number The number to clamp. + * @param {number} [lower] The lower bound. + * @param {number} upper The upper bound. + * @returns {number} Returns the clamped number. + * @example + * + * _.clamp(-10, -5, 5); + * // => -5 + * + * _.clamp(10, -5, 5); + * // => 5 + */function clamp(number,lower,upper){if(upper===undefined$1){upper=lower;lower=undefined$1;}if(upper!==undefined$1){upper=toNumber(upper);upper=upper===upper?upper:0;}if(lower!==undefined$1){lower=toNumber(lower);lower=lower===lower?lower:0;}return baseClamp(toNumber(number),lower,upper);}/** + * Checks if `n` is between `start` and up to, but not including, `end`. If + * `end` is not specified, it's set to `start` with `start` then set to `0`. + * If `start` is greater than `end` the params are swapped to support + * negative ranges. + * + * @static + * @memberOf _ + * @since 3.3.0 + * @category Number + * @param {number} number The number to check. + * @param {number} [start=0] The start of the range. + * @param {number} end The end of the range. + * @returns {boolean} Returns `true` if `number` is in the range, else `false`. + * @see _.range, _.rangeRight + * @example + * + * _.inRange(3, 2, 4); + * // => true + * + * _.inRange(4, 8); + * // => true + * + * _.inRange(4, 2); + * // => false + * + * _.inRange(2, 2); + * // => false + * + * _.inRange(1.2, 2); + * // => true + * + * _.inRange(5.2, 4); + * // => false + * + * _.inRange(-3, -2, -6); + * // => true + */function inRange(number,start,end){start=toFinite(start);if(end===undefined$1){end=start;start=0;}else {end=toFinite(end);}number=toNumber(number);return baseInRange(number,start,end);}/** + * Produces a random number between the inclusive `lower` and `upper` bounds. + * If only one argument is provided a number between `0` and the given number + * is returned. If `floating` is `true`, or either `lower` or `upper` are + * floats, a floating-point number is returned instead of an integer. + * + * **Note:** JavaScript follows the IEEE-754 standard for resolving + * floating-point values which can produce unexpected results. + * + * @static + * @memberOf _ + * @since 0.7.0 + * @category Number + * @param {number} [lower=0] The lower bound. + * @param {number} [upper=1] The upper bound. + * @param {boolean} [floating] Specify returning a floating-point number. + * @returns {number} Returns the random number. + * @example + * + * _.random(0, 5); + * // => an integer between 0 and 5 + * + * _.random(5); + * // => also an integer between 0 and 5 + * + * _.random(5, true); + * // => a floating-point number between 0 and 5 + * + * _.random(1.2, 5.2); + * // => a floating-point number between 1.2 and 5.2 + */function random(lower,upper,floating){if(floating&&typeof floating!='boolean'&&isIterateeCall(lower,upper,floating)){upper=floating=undefined$1;}if(floating===undefined$1){if(typeof upper=='boolean'){floating=upper;upper=undefined$1;}else if(typeof lower=='boolean'){floating=lower;lower=undefined$1;}}if(lower===undefined$1&&upper===undefined$1){lower=0;upper=1;}else {lower=toFinite(lower);if(upper===undefined$1){upper=lower;lower=0;}else {upper=toFinite(upper);}}if(lower>upper){var temp=lower;lower=upper;upper=temp;}if(floating||lower%1||upper%1){var rand=nativeRandom();return nativeMin(lower+rand*(upper-lower+freeParseFloat('1e-'+((rand+'').length-1))),upper);}return baseRandom(lower,upper);}/*------------------------------------------------------------------------*/ /** + * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase). + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to convert. + * @returns {string} Returns the camel cased string. + * @example + * + * _.camelCase('Foo Bar'); + * // => 'fooBar' + * + * _.camelCase('--foo-bar--'); + * // => 'fooBar' + * + * _.camelCase('__FOO_BAR__'); + * // => 'fooBar' + */var camelCase=createCompounder(function(result,word,index){word=word.toLowerCase();return result+(index?capitalize(word):word);});/** + * Converts the first character of `string` to upper case and the remaining + * to lower case. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to capitalize. + * @returns {string} Returns the capitalized string. + * @example + * + * _.capitalize('FRED'); + * // => 'Fred' + */function capitalize(string){return upperFirst(toString(string).toLowerCase());}/** + * Deburrs `string` by converting + * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table) + * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A) + * letters to basic Latin letters and removing + * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks). + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to deburr. + * @returns {string} Returns the deburred string. + * @example + * + * _.deburr('déjà vu'); + * // => 'deja vu' + */function deburr(string){string=toString(string);return string&&string.replace(reLatin,deburrLetter).replace(reComboMark,'');}/** + * Checks if `string` ends with the given target string. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to inspect. + * @param {string} [target] The string to search for. + * @param {number} [position=string.length] The position to search up to. + * @returns {boolean} Returns `true` if `string` ends with `target`, + * else `false`. + * @example + * + * _.endsWith('abc', 'c'); + * // => true + * + * _.endsWith('abc', 'b'); + * // => false + * + * _.endsWith('abc', 'b', 2); + * // => true + */function endsWith(string,target,position){string=toString(string);target=baseToString(target);var length=string.length;position=position===undefined$1?length:baseClamp(toInteger(position),0,length);var end=position;position-=target.length;return position>=0&&string.slice(position,end)==target;}/** + * Converts the characters "&", "<", ">", '"', and "'" in `string` to their + * corresponding HTML entities. + * + * **Note:** No other characters are escaped. To escape additional + * characters use a third-party library like [_he_](https://mths.be/he). + * + * Though the ">" character is escaped for symmetry, characters like + * ">" and "/" don't need escaping in HTML and have no special meaning + * unless they're part of a tag or unquoted attribute value. See + * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands) + * (under "semi-related fun fact") for more details. + * + * When working with HTML you should always + * [quote attribute values](http://wonko.com/post/html-escaping) to reduce + * XSS vectors. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category String + * @param {string} [string=''] The string to escape. + * @returns {string} Returns the escaped string. + * @example + * + * _.escape('fred, barney, & pebbles'); + * // => 'fred, barney, & pebbles' + */function escape(string){string=toString(string);return string&&reHasUnescapedHtml.test(string)?string.replace(reUnescapedHtml,escapeHtmlChar):string;}/** + * Escapes the `RegExp` special characters "^", "$", "\", ".", "*", "+", + * "?", "(", ")", "[", "]", "{", "}", and "|" in `string`. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to escape. + * @returns {string} Returns the escaped string. + * @example + * + * _.escapeRegExp('[lodash](https://lodash.com/)'); + * // => '\[lodash\]\(https://lodash\.com/\)' + */function escapeRegExp(string){string=toString(string);return string&&reHasRegExpChar.test(string)?string.replace(reRegExpChar,'\\$&'):string;}/** + * Converts `string` to + * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles). + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to convert. + * @returns {string} Returns the kebab cased string. + * @example + * + * _.kebabCase('Foo Bar'); + * // => 'foo-bar' + * + * _.kebabCase('fooBar'); + * // => 'foo-bar' + * + * _.kebabCase('__FOO_BAR__'); + * // => 'foo-bar' + */var kebabCase=createCompounder(function(result,word,index){return result+(index?'-':'')+word.toLowerCase();});/** + * Converts `string`, as space separated words, to lower case. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category String + * @param {string} [string=''] The string to convert. + * @returns {string} Returns the lower cased string. + * @example + * + * _.lowerCase('--Foo-Bar--'); + * // => 'foo bar' + * + * _.lowerCase('fooBar'); + * // => 'foo bar' + * + * _.lowerCase('__FOO_BAR__'); + * // => 'foo bar' + */var lowerCase=createCompounder(function(result,word,index){return result+(index?' ':'')+word.toLowerCase();});/** + * Converts the first character of `string` to lower case. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category String + * @param {string} [string=''] The string to convert. + * @returns {string} Returns the converted string. + * @example + * + * _.lowerFirst('Fred'); + * // => 'fred' + * + * _.lowerFirst('FRED'); + * // => 'fRED' + */var lowerFirst=createCaseFirst('toLowerCase');/** + * Pads `string` on the left and right sides if it's shorter than `length`. + * Padding characters are truncated if they can't be evenly divided by `length`. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to pad. + * @param {number} [length=0] The padding length. + * @param {string} [chars=' '] The string used as padding. + * @returns {string} Returns the padded string. + * @example + * + * _.pad('abc', 8); + * // => ' abc ' + * + * _.pad('abc', 8, '_-'); + * // => '_-abc_-_' + * + * _.pad('abc', 3); + * // => 'abc' + */function pad(string,length,chars){string=toString(string);length=toInteger(length);var strLength=length?stringSize(string):0;if(!length||strLength>=length){return string;}var mid=(length-strLength)/2;return createPadding(nativeFloor(mid),chars)+string+createPadding(nativeCeil(mid),chars);}/** + * Pads `string` on the right side if it's shorter than `length`. Padding + * characters are truncated if they exceed `length`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category String + * @param {string} [string=''] The string to pad. + * @param {number} [length=0] The padding length. + * @param {string} [chars=' '] The string used as padding. + * @returns {string} Returns the padded string. + * @example + * + * _.padEnd('abc', 6); + * // => 'abc ' + * + * _.padEnd('abc', 6, '_-'); + * // => 'abc_-_' + * + * _.padEnd('abc', 3); + * // => 'abc' + */function padEnd(string,length,chars){string=toString(string);length=toInteger(length);var strLength=length?stringSize(string):0;return length&&strLength ' abc' + * + * _.padStart('abc', 6, '_-'); + * // => '_-_abc' + * + * _.padStart('abc', 3); + * // => 'abc' + */function padStart(string,length,chars){string=toString(string);length=toInteger(length);var strLength=length?stringSize(string):0;return length&&strLength 8 + * + * _.map(['6', '08', '10'], _.parseInt); + * // => [6, 8, 10] + */function parseInt(string,radix,guard){if(guard||radix==null){radix=0;}else if(radix){radix=+radix;}return nativeParseInt(toString(string).replace(reTrimStart,''),radix||0);}/** + * Repeats the given string `n` times. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to repeat. + * @param {number} [n=1] The number of times to repeat the string. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {string} Returns the repeated string. + * @example + * + * _.repeat('*', 3); + * // => '***' + * + * _.repeat('abc', 2); + * // => 'abcabc' + * + * _.repeat('abc', 0); + * // => '' + */function repeat(string,n,guard){if(guard?isIterateeCall(string,n,guard):n===undefined$1){n=1;}else {n=toInteger(n);}return baseRepeat(toString(string),n);}/** + * Replaces matches for `pattern` in `string` with `replacement`. + * + * **Note:** This method is based on + * [`String#replace`](https://mdn.io/String/replace). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category String + * @param {string} [string=''] The string to modify. + * @param {RegExp|string} pattern The pattern to replace. + * @param {Function|string} replacement The match replacement. + * @returns {string} Returns the modified string. + * @example + * + * _.replace('Hi Fred', 'Fred', 'Barney'); + * // => 'Hi Barney' + */function replace(){var args=arguments,string=toString(args[0]);return args.length<3?string:string.replace(args[1],args[2]);}/** + * Converts `string` to + * [snake case](https://en.wikipedia.org/wiki/Snake_case). + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to convert. + * @returns {string} Returns the snake cased string. + * @example + * + * _.snakeCase('Foo Bar'); + * // => 'foo_bar' + * + * _.snakeCase('fooBar'); + * // => 'foo_bar' + * + * _.snakeCase('--FOO-BAR--'); + * // => 'foo_bar' + */var snakeCase=createCompounder(function(result,word,index){return result+(index?'_':'')+word.toLowerCase();});/** + * Splits `string` by `separator`. + * + * **Note:** This method is based on + * [`String#split`](https://mdn.io/String/split). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category String + * @param {string} [string=''] The string to split. + * @param {RegExp|string} separator The separator pattern to split by. + * @param {number} [limit] The length to truncate results to. + * @returns {Array} Returns the string segments. + * @example + * + * _.split('a-b-c', '-', 2); + * // => ['a', 'b'] + */function split(string,separator,limit){if(limit&&typeof limit!='number'&&isIterateeCall(string,separator,limit)){separator=limit=undefined$1;}limit=limit===undefined$1?MAX_ARRAY_LENGTH:limit>>>0;if(!limit){return [];}string=toString(string);if(string&&(typeof separator=='string'||separator!=null&&!isRegExp(separator))){separator=baseToString(separator);if(!separator&&hasUnicode(string)){return castSlice(stringToArray(string),0,limit);}}return string.split(separator,limit);}/** + * Converts `string` to + * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage). + * + * @static + * @memberOf _ + * @since 3.1.0 + * @category String + * @param {string} [string=''] The string to convert. + * @returns {string} Returns the start cased string. + * @example + * + * _.startCase('--foo-bar--'); + * // => 'Foo Bar' + * + * _.startCase('fooBar'); + * // => 'Foo Bar' + * + * _.startCase('__FOO_BAR__'); + * // => 'FOO BAR' + */var startCase=createCompounder(function(result,word,index){return result+(index?' ':'')+upperFirst(word);});/** + * Checks if `string` starts with the given target string. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to inspect. + * @param {string} [target] The string to search for. + * @param {number} [position=0] The position to search from. + * @returns {boolean} Returns `true` if `string` starts with `target`, + * else `false`. + * @example + * + * _.startsWith('abc', 'a'); + * // => true + * + * _.startsWith('abc', 'b'); + * // => false + * + * _.startsWith('abc', 'b', 1); + * // => true + */function startsWith(string,target,position){string=toString(string);position=position==null?0:baseClamp(toInteger(position),0,string.length);target=baseToString(target);return string.slice(position,position+target.length)==target;}/** + * Creates a compiled template function that can interpolate data properties + * in "interpolate" delimiters, HTML-escape interpolated data properties in + * "escape" delimiters, and execute JavaScript in "evaluate" delimiters. Data + * properties may be accessed as free variables in the template. If a setting + * object is given, it takes precedence over `_.templateSettings` values. + * + * **Note:** In the development build `_.template` utilizes + * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl) + * for easier debugging. + * + * For more information on precompiling templates see + * [lodash's custom builds documentation](https://lodash.com/custom-builds). + * + * For more information on Chrome extension sandboxes see + * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval). + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category String + * @param {string} [string=''] The template string. + * @param {Object} [options={}] The options object. + * @param {RegExp} [options.escape=_.templateSettings.escape] + * The HTML "escape" delimiter. + * @param {RegExp} [options.evaluate=_.templateSettings.evaluate] + * The "evaluate" delimiter. + * @param {Object} [options.imports=_.templateSettings.imports] + * An object to import into the template as free variables. + * @param {RegExp} [options.interpolate=_.templateSettings.interpolate] + * The "interpolate" delimiter. + * @param {string} [options.sourceURL='lodash.templateSources[n]'] + * The sourceURL of the compiled template. + * @param {string} [options.variable='obj'] + * The data object variable name. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Function} Returns the compiled template function. + * @example + * + * // Use the "interpolate" delimiter to create a compiled template. + * var compiled = _.template('hello <%= user %>!'); + * compiled({ 'user': 'fred' }); + * // => 'hello fred!' + * + * // Use the HTML "escape" delimiter to escape data property values. + * var compiled = _.template('<%- value %>'); + * compiled({ 'value': '

+hwXiq%>k(`M%}RDYF+XG1GEO&=D zb6-;2wDwnJNXu4a!IWBc;{f;@r}u~@dDS${2~KT>iCJK+Ou~BCQROP~kHsBq#OX$* z?CCy*ks;LkfO$V@ESw#qR@)d|pVpp%{nnFX#uGv${>mw@;&i<#)OxX$JE4M<2-_iX z*+-*F#xb{CLyMMLDw-#GMJKK576 zSd-NfD_KF!TD;adAT2FhogywSlL!y`_;t#hh~aFeI`wpb-g9S!^z6yC)?>&-TP{Pg z_w?ylO0n|(`%d4a#(n!2wdhgHt)!-p>-u_E^jo(&Lj>U|Jep|Z(>2&{yr$7&vedH! z-?}Z$fBaEM09dc#jfLXu6DVyy zE=3S3WU)4|*d;M_Ci7-MiIAC^2J@Z)%JX3z=$Y4KYcb}AV+>XY7ondBR{Dl|!SBxy z3$r_d^`8ZcsO~KDR>Ryk%y}nlFc=^bunNpmfuv!n?9iiJGSe#Oa0!cOGQkX`SaJf* z)QU*hkRZCbMGMXhQ&>P3%WKXtEX*v9XX;C6Q|7P}3!`$5O=;$KfGQLo`22m&BOh?( zJf-prvtQJ_uwwqoKk?pxk2<&Bd2#vTIQ+l;4v=nq`{?EhOylhj_m98v>lZQdjj0FJ zlgEFpe5Wca#qUa4_E)>seS(&r+V+-WdPVrF9zPQxGTj?DJk}JJJ@nnG1F5Ds*TdB= zM?sD7X|!(x{gldqYDlqSnD$ku7}a|wM!`tPDwo=Y7>ayG4dqjnyL~w` zc2U-*$Y56m?o zwU<4C>tB|mHGT)8LxzCqJRm<$h;OFsj(#1@qP2NL{OUy8s+Cr5Iy7T}v4PB}_GP}~ z7|!OeD2o`4ZejT8k=$IpFjI3)?w-{F!at3YN&cm^gKc|psy$}w8mlarD>3h?hvaBT zI|UY9@dZqg&{Yr_maX2{>?a?MZgOKUVE8iaUN8D3#nvS5QL;t>tPh6p0#r+W=z7nU z+#xy7oMX4NaT8=O5WfvSJ)s`ly)LE>4NIm)!6OxM5mHybTmvZn5C}Q)7WvSQ%B!%- zWVe`~Wa(G)NH+{6R9pX8d>*OI`<60f8Dtw?r=I&!5)4y4;qgx0iUKey&{!`yM1vM9 z&%yhlAp_3oGo6zfzR(=e{^G|PtI6T-uw0Aum5;2l|0~aY&0RI^wRLjC;Yr)1Ysu=OR%G~5sZ)GwZ@^DoOV4!tJ>q zVIAMS_qK2Jw&9y~?)HX$Pz06P-sp(gif~BNRS|e(-FIWL`~oEgJ49qLjzM3sV5-t1 zH&aW@FMF*J8NR#*Jj}wpuGkM^& z<>UL53M!k-(J=qcW|Hw738{P<&^6xVdqi#HTDM%39&>E40}z=_;j-?Rv2~c@24*G8 zF0k@YT6n_t;L8Apr93c&`6@B6^e>0ZiVkB$ai5skVt@C6mcieV-a&(xJSwuGPWHC7 z2&MVE*auM)yTe12f5C3N#hc!G@@3Saby?FV-aVbz{sX3$lrRxwbA46MH}BFY>K5XT z54&p)?d=sULIU16xjHE6Or@)0=-2841`%b0n=gO8(|cWA{Px;?e+gNKy7M9T zTeb6{z&Z^pWkA8Ti({o2x&&=&w_309?UTlmb2C9g+X+Dg1q6f90OgYp{D$YYMvhNN zM`g7LSeKU^W_{QSfLpQynavd2=^lF36n8XJb16k4j$&h@X_c$^4Iz;1!w>zc0QtK!QlZA|jHRHP-wZsB`MpD%@XWelu4k~cDi$5*^IPC<&vlvR4`FE} zELYAy#QdJjSN!`uEg$*MkC?yHi_1R_*o$NF-#ZrmaZ!rVy@hJE{m=UkY?S}wy-NiJ zNm~XMoPO^&qc};Pe}OtYMLV(jpM!r}Gw6Qb(cweu&Hwn09ynNNNiHK334 zK!&kXcbj0@oz#Gn+9$ZR}wCIaLWmHoUZh6VXxQg=u!b4^e%1UtOJYDvS|O5tXy;0d2ZqEQVy_*aeY+*Gfk zJsr6EYrd-5olW>Dh;jkr7TDP!XH(?h-FN-ELGBJ>!XP_JK}FI)NpVX8 zh53#58R`xSs0`NZO2Bx=I$?WCAfqpF3&bd1&}7B)n^A3R9Q_RTTULk{T⪚kzuSz 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 EKd7^!%K!iX literal 0 HcmV?d00001 diff --git a/docs/hardware/assets/maixface/mf5/mf5_black_background.jpg.jpg b/docs/hardware/assets/maixface/mf5/mf5_black_background.jpg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e04c83eccdccf9f8da108ca5c1c86f916abfa987 GIT binary patch literal 135317 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�SnBx(l7UR+NKt5`^bp!R>YyN|*iCP#`p$%mV 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�%R;o3Nv_cH~ty9OP%gSa4nUCG5 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 N(KLXX2I~Lc1OOBSs>%QW literal 0 HcmV?d00001 diff --git a/docs/hardware/assets/maixface/mf1/mf1_front.jpg b/docs/hardware/assets/maixface/mf1/mf1_front.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0736e78d8a4d00602edfc2598efcb1079b4bbd88 GIT binary patch literal 62180 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�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