diff --git a/.babelrc b/.babelrc new file mode 100644 index 0000000..ac53728 --- /dev/null +++ b/.babelrc @@ -0,0 +1,3 @@ +{ + "presets": ["@babel/env", "@babel/react"] +} diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..98ffefc --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,24 @@ +module.exports = { + "extends": ["eslint:recommended", "plugin:react/recommended"], + "parser": "@typescript-eslint/parser", + "parserOptions": { + "sourceType": "module", + "ecmaFeatures": { + "globalReturn": true, + "jsx": true, + }, + }, + "env": { + "browser": true, + "node": true, + }, + "settings": { + "react": { + "version": "18.2", + }, + }, + "rules": { + "no-console": "warn", + "no-unused-vars": ["error", { "ignoreRestSiblings": true }], + }, +}; diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..27735ec --- /dev/null +++ b/.gitignore @@ -0,0 +1,12 @@ +# User files +node_modules/ +.DS_Store + +# IntelliJ project files +.idea +*.iml +out +gen + +# VS Code +.vscode/ diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..d352f41 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,18 @@ +## Description + +[*] - a breaking change + +## 3.0.0 +- [*] update all packages to the latest versions +- [*] stop using (and uninstall) `prop-types` package +- switch all files from `js` to `ts`/`tsx` and set better types +- add `onDragStart` and `onDragEnd` props + +## 2.0.0 + +- [*] move styles out of js (now should be imported explicitly) +- [*] add `targetPath` to `onChange` (and change signature of the callback) +- [*] change signature of the `confirmChange` callback for consistency +- add `depth` param to `renderItem` +- add `idProp` prop for adjusting `id` prop name +- add typescript types diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..4543140 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,15 @@ +ISC License + +Copyright (c) primetwig + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..ebc8c1a --- /dev/null +++ b/README.md @@ -0,0 +1,93 @@ +## Table of Contents + +- [Demo](#demo) +- [Installation](#installation) +- [Usage](#usage) +- [Options](#options) +- [Todo](#todo) +- [License](#license) + +## Demo + +[Demo](https://primetwig.github.io/react-nestable/dist/example/) + + +## Installation + +``` +npm install -save react-nestable +``` + +## Usage + +``` +import Nestable from 'react-nestable'; + +// this usually goes once +// to the entry point of the whole app +// (e.g. src/index.js) +import 'react-nestable/dist/styles/index.css'; + +// every item must have a unique `id` +// in order to distinguish elements +const items = [ + { id: 0, text: 'Andy' }, + { + id: 1, text: 'Harry', + children: [ + { id: 2, text: 'David' } + ] + }, + { id: 3, text: 'Lisa' } +]; + +const renderItem = ({ item }) => item.text; + +const Example = () => ( + +); +``` + +## Options + +| Property | Type | Default | Description | +|----------|------|---------|-------------| +| childrenProp | string | `"children"` | Name of a property for children. | +| className | string | `undefined` | Extra class name which can be passed to a root element. | +| collapsed | boolean | `false` | Makes groups collapsed by default. | +| confirmChange | function | `() => true` | Callback which has a single parameter with keys: `dragItem` - item which is being dragged, `destinationParent` - item where dragItem is about to land (or `null` if moving to root). Let function return `false` if this movement should not happen. | +| group | string or number | `random string` | Different group names may be passed if you have more than one nestable component on a page and want some extra styles for portal instances. | +| handler | node | `undefined` | If you pass it, it will get wrapped with drag handlers and you may use it in your render method. | +| idProp | string | `"id"` | Name of a property for id. | +| items | array | `[]` | Array of items. Every item must be of shape `{id: @uniq}` to distinguish elements. | +| maxDepth | number | `10` | Maximum available level of nesting. | +| onChange | function | `() => {}` | Callback which has a single parameter with keys: `items` - new array after position was changed, `dragItem` - item which has been moved, `targetPath` - array of numbers, those numbers are indices and they make path to a location, to where item has been moved. | +| onDragEnd | function | `() => {}` | Callback which has no parameters. It is invoked when dragging ends via drop or cancel. | +| onDragStart | function | `() => {}` | Callback which has a single parameter with keys: `dragItem` - item which has been moved. | +| renderCollapseIcon | function | `() => ` | Function for rendering collapse icon. Has a single parameter with keys: `isCollapsed` - boolean, true if this group has children and is collapsed. | +| renderItem | function | `({item}) => String(item)` | Function for rendering every item. Has a single parameter with keys: `item` - item from your array, `index` - number, index of the item, `depth` - number, depth of the item, `collapseIcon` - node, icon for items with children (allows you to collapse the group), `handler` - node, which you have passed via the same property, but wrapped with some additional events. | +| threshold | number | `30` | Amount of pixels which mouse should move horizontally before increasing/decreasing level (nesting) of current element. | + +#### Public methods + +| Method | Accepts | Description | +|--------|---------|-------------| +| collapse | string or array | `"NONE"` - expand all groups; `"ALL"` - collapse all groups; `[]` - collapse all groups with ids from given array. | + +## Todo + +- add touch +- cover with tests + +PS: Please, make an issue or create a PR if you need any more functionality. + +## License + +ISC + +Номер звернення: 315269 +Дата звернення: 24-08-2023 +E-mail: primetwig@gmail.com diff --git a/dist/Icon/Icon.d.ts b/dist/Icon/Icon.d.ts new file mode 100644 index 0000000..46ba302 --- /dev/null +++ b/dist/Icon/Icon.d.ts @@ -0,0 +1,6 @@ +import React, { PureComponent } from 'react'; +import { IconProps } from '../types'; +declare class Icon extends PureComponent { + render(): React.JSX.Element; +} +export default Icon; diff --git a/dist/Icon/Icon.js b/dist/Icon/Icon.js new file mode 100644 index 0000000..4f5addb --- /dev/null +++ b/dist/Icon/Icon.js @@ -0,0 +1,84 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __rest = (this && this.__rest) || function (s, e) { + var t = {}; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) + t[p] = s[p]; + if (s != null && typeof Object.getOwnPropertySymbols === "function") + for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { + if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) + t[p[i]] = s[p[i]]; + } + return t; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var react_1 = __importStar(require("react")); +var classnames_1 = __importDefault(require("classnames")); +var Icon = /** @class */ (function (_super) { + __extends(Icon, _super); + function Icon() { + return _super !== null && _super.apply(this, arguments) || this; + } + Icon.prototype.render = function () { + var _a = this.props, children = _a.children, className = _a.className, isCollapsed = _a.isCollapsed, props = __rest(_a, ["children", "className", "isCollapsed"]); + var finalClassName = (0, classnames_1.default)('nestable-icon', className, { + 'nestable-icon--plus-gray': isCollapsed, + 'nestable-icon--minus-gray': !isCollapsed, + }); + return (react_1.default.createElement("i", __assign({ className: finalClassName }, props))); + }; + return Icon; +}(react_1.PureComponent)); +exports.default = Icon; +//# sourceMappingURL=Icon.js.map \ No newline at end of file diff --git a/dist/Icon/Icon.js.map b/dist/Icon/Icon.js.map new file mode 100644 index 0000000..9363b04 --- /dev/null +++ b/dist/Icon/Icon.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Icon.js","sourceRoot":"","sources":["../../src/Icon/Icon.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA6C;AAC7C,0DAA4B;AAI5B;IAAmB,wBAAwB;IAA3C;;IAYA,CAAC;IAXC,qBAAM,GAAN;QACE,IAAM,KAAiD,IAAI,CAAC,KAAK,EAAzD,QAAQ,cAAA,EAAE,SAAS,eAAA,EAAE,WAAW,iBAAA,EAAK,KAAK,cAA5C,wCAA8C,CAAa,CAAC;QAClE,IAAM,cAAc,GAAG,IAAA,oBAAE,EAAC,eAAe,EAAE,SAAS,EAAE;YACpD,0BAA0B,EAAE,WAAW;YACvC,2BAA2B,EAAE,CAAC,WAAW;SAC1C,CAAC,CAAC;QAEH,OAAO,CACL,8CAAG,SAAS,EAAE,cAAc,IAAM,KAAK,EAAI,CAC5C,CAAC;IACJ,CAAC;IACH,WAAC;AAAD,CAAC,AAZD,CAAmB,qBAAa,GAY/B;AAED,kBAAe,IAAI,CAAC"} \ No newline at end of file diff --git a/dist/Icon/index.d.ts b/dist/Icon/index.d.ts new file mode 100644 index 0000000..22795b9 --- /dev/null +++ b/dist/Icon/index.d.ts @@ -0,0 +1,2 @@ +import Icon from './Icon'; +export default Icon; diff --git a/dist/Icon/index.js b/dist/Icon/index.js new file mode 100644 index 0000000..67df642 --- /dev/null +++ b/dist/Icon/index.js @@ -0,0 +1,8 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var Icon_1 = __importDefault(require("./Icon")); +exports.default = Icon_1.default; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/Icon/index.js.map b/dist/Icon/index.js.map new file mode 100644 index 0000000..476d26a --- /dev/null +++ b/dist/Icon/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Icon/index.ts"],"names":[],"mappings":";;;;;AAAA,gDAA0B;AAE1B,kBAAe,cAAI,CAAC"} \ No newline at end of file diff --git a/dist/Nestable/Nestable.d.ts b/dist/Nestable/Nestable.d.ts new file mode 100644 index 0000000..556c07d --- /dev/null +++ b/dist/Nestable/Nestable.d.ts @@ -0,0 +1,67 @@ +/// +import React, { Component, CSSProperties } from 'react'; +import { NestableProps, NestableState, Item, Collapse } from '../types'; +declare class Nestable extends Component { + el: Element | null; + elCopyStyles: CSSProperties | null; + mouse: { + last: { + x: number; + }; + shift: { + x: number; + }; + }; + constructor(props: NestableProps); + static defaultProps: Partial; + componentDidMount(): void; + componentDidUpdate(prevProps: NestableProps): void; + componentWillUnmount(): void; + collapse: Collapse; + startTrackMouse: () => void; + stopTrackMouse: () => void; + moveItem({ dragItem, pathFrom, pathTo }: { + dragItem: Item; + pathFrom: number[]; + pathTo: number[]; + }, extraProps?: Partial): void; + tryIncreaseDepth(dragItem: Item): void; + tryDecreaseDepth(dragItem: Item): void; + dragApply(): void; + dragRevert(): void; + getPathById(id: unknown, items?: Item[]): number[]; + getItemByPath(path: number[], items?: Item[]): Item; + getItemDepth: (item: Item) => number; + getSplicePath(path: number[], options?: { + numToRemove?: number; + itemsToInsert?: Item[]; + childrenProp?: NestableProps['childrenProp']; + }): React.UpdateSpecPath; + getRealNextPath(prevPath: number[], nextPath: number[], dragItemSize: number): number[]; + getItemOptions(): { + dragItem: Item; + idProp: string; + childrenProp: string; + renderItem: import("../types").RenderItem; + renderCollapseIcon: import("../types").RenderCollapseIcon; + handler: React.ReactNode; + checkIfCollapsed: (item: Item) => boolean; + onDragStart: (e: MouseEvent, item: Item) => void; + onMouseEnter: (e: MouseEvent, item: Item) => void; + onToggleCollapse: (item: Item, isGetter?: true) => { + collapsedItems: unknown[]; + }; + }; + checkIfCollapsed: (item: Item) => boolean; + onDragStart: (e: MouseEvent, item: Item) => void; + onDragEnd: (e: MouseEvent, isCancel?: boolean) => void; + onMouseMove: (e: MouseEvent) => void; + onMouseEnter: (e: MouseEvent, item: Item) => void; + onToggleCollapse: (item: Item, isGetter?: true) => { + collapsedItems: unknown[]; + }; + onKeyDown: (e: KeyboardEvent) => void; + renderDragLayer(): React.JSX.Element; + render(): React.JSX.Element; +} +export default Nestable; diff --git a/dist/Nestable/Nestable.js b/dist/Nestable/Nestable.js new file mode 100644 index 0000000..233842d --- /dev/null +++ b/dist/Nestable/Nestable.js @@ -0,0 +1,533 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var react_1 = __importStar(require("react")); +var react_addons_shallow_compare_1 = __importDefault(require("react-addons-shallow-compare")); +var react_addons_update_1 = __importDefault(require("react-addons-update")); +var classnames_1 = __importDefault(require("classnames")); +var utils_1 = require("../utils"); +var NestableItem_1 = __importDefault(require("./NestableItem")); +var Nestable = /** @class */ (function (_super) { + __extends(Nestable, _super); + function Nestable(props) { + var _this = _super.call(this, props) || this; + _this.el = null; + _this.elCopyStyles = null; + _this.mouse = { + last: { x: 0 }, + shift: { x: 0 }, + }; + // –––––––––––––––––––––––––––––––––––– + // Public Methods + // –––––––––––––––––––––––––––––––––––– + _this.collapse = function (itemIds) { + var _a = _this.props, idProp = _a.idProp, childrenProp = _a.childrenProp, collapsed = _a.collapsed; + var items = _this.state.items; + if (itemIds === 'NONE') { + _this.setState({ + collapsedItems: collapsed + ? (0, utils_1.getAllNonEmptyNodesIds)(items, { idProp: idProp, childrenProp: childrenProp }) + : [], + }); + } + else if (itemIds === 'ALL') { + _this.setState({ + collapsedItems: collapsed + ? [] + : (0, utils_1.getAllNonEmptyNodesIds)(items, { idProp: idProp, childrenProp: childrenProp }), + }); + } + else if ((0, utils_1.isArray)(itemIds)) { + _this.setState({ + collapsedItems: (0, utils_1.getAllNonEmptyNodesIds)(items, { idProp: idProp, childrenProp: childrenProp }) + .filter(function (id) { return (itemIds.indexOf(id) > -1) !== collapsed; }), + }); + } + }; + // –––––––––––––––––––––––––––––––––––– + // Methods + // –––––––––––––––––––––––––––––––––––– + _this.startTrackMouse = function () { + document.addEventListener('mousemove', _this.onMouseMove); + document.addEventListener('mouseup', _this.onDragEnd); + document.addEventListener('keydown', _this.onKeyDown); + }; + _this.stopTrackMouse = function () { + document.removeEventListener('mousemove', _this.onMouseMove); + document.removeEventListener('mouseup', _this.onDragEnd); + document.removeEventListener('keydown', _this.onKeyDown); + _this.elCopyStyles = null; + }; + _this.getItemDepth = function (item) { + var childrenProp = _this.props.childrenProp; + var level = 1; + if (item[childrenProp].length > 0) { + var childrenDepths = item[childrenProp].map(_this.getItemDepth); + level += Math.max.apply(Math, childrenDepths); + } + return level; + }; + _this.checkIfCollapsed = function (item) { + var _a = _this.props, collapsed = _a.collapsed, idProp = _a.idProp; + var collapsedItems = _this.state.collapsedItems; + return !!((collapsedItems.indexOf(item[idProp]) > -1) !== collapsed); + }; + // –––––––––––––––––––––––––––––––––––– + // Click handlers or event handlers + // –––––––––––––––––––––––––––––––––––– + _this.onDragStart = function (e, item) { + var onDragStart = _this.props.onDragStart; + e.preventDefault(); + e.stopPropagation(); + if (!(e.target instanceof Element)) + return; + _this.el = (0, utils_1.closest)(e.target, '.nestable-item'); + _this.startTrackMouse(); + _this.onMouseMove(e); + onDragStart({ dragItem: item }); + _this.setState({ + dragItem: item, + itemsOld: _this.state.items, + }); + }; + _this.onDragEnd = function (e, isCancel) { + var onDragEnd = _this.props.onDragEnd; + e.preventDefault(); + _this.stopTrackMouse(); + _this.el = null; + onDragEnd(); + isCancel + ? _this.dragRevert() + : _this.dragApply(); + }; + _this.onMouseMove = function (e) { + var _a = _this.props, group = _a.group, threshold = _a.threshold; + var dragItem = _this.state.dragItem; + var clientX = e.clientX, clientY = e.clientY; + var transformProps = (0, utils_1.getTransformProps)(clientX, clientY); + var elCopy = document.querySelector(".nestable-".concat(group, " .nestable-drag-layer > .nestable-list")); + if (!_this.elCopyStyles) { + var offset = (0, utils_1.getOffsetRect)(_this.el); + var scroll_1 = (0, utils_1.getTotalScroll)(_this.el); + _this.elCopyStyles = __assign({ marginTop: offset.top - clientY - scroll_1.top, marginLeft: offset.left - clientX - scroll_1.left }, transformProps); + } + else { + _this.elCopyStyles = __assign(__assign({}, _this.elCopyStyles), transformProps); + Object.keys(transformProps).forEach(function (key) { + elCopy.style[key] = transformProps[key]; + }); + var diffX = clientX - _this.mouse.last.x; + if ((diffX >= 0 && _this.mouse.shift.x >= 0) || + (diffX <= 0 && _this.mouse.shift.x <= 0)) { + _this.mouse.shift.x += diffX; + } + else { + _this.mouse.shift.x = 0; + } + _this.mouse.last.x = clientX; + if (Math.abs(_this.mouse.shift.x) > threshold) { + if (_this.mouse.shift.x > 0) { + _this.tryIncreaseDepth(dragItem); + } + else { + _this.tryDecreaseDepth(dragItem); + } + _this.mouse.shift.x = 0; + } + } + }; + _this.onMouseEnter = function (e, item) { + e.preventDefault(); + e.stopPropagation(); + var _a = _this.props, collapsed = _a.collapsed, idProp = _a.idProp, childrenProp = _a.childrenProp; + var dragItem = _this.state.dragItem; + if (dragItem[idProp] === item[idProp]) + return; + var pathFrom = _this.getPathById(dragItem[idProp]); + var pathTo = _this.getPathById(item[idProp]); + // if collapsed by default + // and move last (by count) child + // remove parent node from list of open nodes + var collapseProps = {}; + if (collapsed && pathFrom.length > 1) { + var parent_1 = _this.getItemByPath(pathFrom.slice(0, -1)); + if (parent_1[childrenProp].length === 1) { + collapseProps = _this.onToggleCollapse(parent_1, true); + } + } + _this.moveItem({ dragItem: dragItem, pathFrom: pathFrom, pathTo: pathTo }, collapseProps); + }; + _this.onToggleCollapse = function (item, isGetter) { + var _a = _this.props, collapsed = _a.collapsed, idProp = _a.idProp; + var collapsedItems = _this.state.collapsedItems; + var isCollapsed = _this.checkIfCollapsed(item); + var newState = { + collapsedItems: (isCollapsed !== collapsed) + ? collapsedItems.filter(function (id) { return id !== item[idProp]; }) + : collapsedItems.concat(item[idProp]), + }; + if (isGetter) { + return newState; + } + else { + _this.setState(newState); + } + }; + _this.onKeyDown = function (e) { + if (e.which === 27) { + // ESC + _this.onDragEnd(null, true); + } + }; + _this.state = { + items: [], + itemsOld: null, + dragItem: null, + isDirty: false, + collapsedItems: [], + }; + return _this; + } + Nestable.prototype.componentDidMount = function () { + var _a = this.props, items = _a.items, childrenProp = _a.childrenProp; + // make sure every item has property 'children' + items = (0, utils_1.listWithChildren)(items, childrenProp); + this.setState({ items: items }); + }; + Nestable.prototype.componentDidUpdate = function (prevProps) { + var _this = this; + var _a = this, _b = _a.props, itemsNew = _b.items, childrenProp = _b.childrenProp, state = _a.state; + var isPropsChanged = (0, react_addons_shallow_compare_1.default)(__assign(__assign({}, this), { props: prevProps, state: state }), this.props, state); + if (isPropsChanged) { + this.stopTrackMouse(); + this.setState(function (prevState) { return (__assign(__assign({}, prevState), { items: (0, utils_1.listWithChildren)(itemsNew, childrenProp), dragItem: null, isDirty: false, collapsedItems: prevProps.collapsed === _this.props.collapsed + ? prevState.collapsedItems + : [] })); }); + } + }; + Nestable.prototype.componentWillUnmount = function () { + this.stopTrackMouse(); + }; + Nestable.prototype.moveItem = function (_a, extraProps) { + var dragItem = _a.dragItem, pathFrom = _a.pathFrom, pathTo = _a.pathTo; + if (extraProps === void 0) { extraProps = {}; } + var _b = this.props, childrenProp = _b.childrenProp, confirmChange = _b.confirmChange; + var dragItemSize = this.getItemDepth(dragItem); + var items = this.state.items; + // the remove action might affect the next position, + // so update next coordinates accordingly + var realPathTo = this.getRealNextPath(pathFrom, pathTo, dragItemSize); + if (realPathTo.length === 0) + return; + // user can validate every movement + var destinationPath = realPathTo.length > pathTo.length + ? pathTo + : pathTo.slice(0, -1); + var destinationParent = this.getItemByPath(destinationPath); + if (!confirmChange({ dragItem: dragItem, destinationParent: destinationParent })) + return; + var removePath = this.getSplicePath(pathFrom, { + numToRemove: 1, + childrenProp: childrenProp, + }); + var insertPath = this.getSplicePath(realPathTo, { + numToRemove: 0, + itemsToInsert: [dragItem], + childrenProp: childrenProp, + }); + items = (0, react_addons_update_1.default)(items, removePath); + items = (0, react_addons_update_1.default)(items, insertPath); + this.setState(function (prevState) { return (__assign(__assign(__assign({}, prevState), { items: items, isDirty: true }), extraProps)); }); + }; + Nestable.prototype.tryIncreaseDepth = function (dragItem) { + var _a = this.props, maxDepth = _a.maxDepth, idProp = _a.idProp, childrenProp = _a.childrenProp, collapsed = _a.collapsed; + var pathFrom = this.getPathById(dragItem[idProp]); + var itemIndex = pathFrom[pathFrom.length - 1]; + var newDepth = pathFrom.length + this.getItemDepth(dragItem); + // has previous sibling and isn't at max depth + if (itemIndex > 0 && newDepth <= maxDepth) { + var prevSibling = this.getItemByPath(pathFrom.slice(0, -1).concat(itemIndex - 1)); + // previous sibling is not collapsed + if (!prevSibling[childrenProp].length || !this.checkIfCollapsed(prevSibling)) { + var pathTo = pathFrom + .slice(0, -1) + .concat(itemIndex - 1) + .concat(prevSibling[childrenProp].length); + // if collapsed by default + // and was no children here + // open this node + var collapseProps = {}; + if (collapsed && !prevSibling[childrenProp].length) { + collapseProps = this.onToggleCollapse(prevSibling, true); + } + this.moveItem({ dragItem: dragItem, pathFrom: pathFrom, pathTo: pathTo }, collapseProps); + } + } + }; + Nestable.prototype.tryDecreaseDepth = function (dragItem) { + var _a = this.props, idProp = _a.idProp, childrenProp = _a.childrenProp, collapsed = _a.collapsed; + var pathFrom = this.getPathById(dragItem[idProp]); + var itemIndex = pathFrom[pathFrom.length - 1]; + // has parent + if (pathFrom.length > 1) { + var parent_2 = this.getItemByPath(pathFrom.slice(0, -1)); + // is last (by order) item in array + if (itemIndex + 1 === parent_2[childrenProp].length) { + var pathTo = pathFrom.slice(0, -1); + pathTo[pathTo.length - 1] += 1; + // if collapsed by default + // and is last (by count) item in array + // remove this node from list of open nodes + var collapseProps = {}; + if (collapsed && parent_2[childrenProp].length === 1) { + collapseProps = this.onToggleCollapse(parent_2, true); + } + this.moveItem({ dragItem: dragItem, pathFrom: pathFrom, pathTo: pathTo }, collapseProps); + } + } + }; + Nestable.prototype.dragApply = function () { + var _a = this.props, onChange = _a.onChange, idProp = _a.idProp; + var _b = this.state, items = _b.items, isDirty = _b.isDirty, dragItem = _b.dragItem; + this.setState({ + itemsOld: null, + dragItem: null, + isDirty: false, + }); + if (onChange && isDirty) { + var targetPath = this.getPathById(dragItem[idProp], items); + onChange({ items: items, dragItem: dragItem, targetPath: targetPath }); + } + }; + Nestable.prototype.dragRevert = function () { + var itemsOld = this.state.itemsOld; + this.setState({ + items: itemsOld, + itemsOld: null, + dragItem: null, + isDirty: false, + }); + }; + // –––––––––––––––––––––––––––––––––––– + // Getter methods + // –––––––––––––––––––––––––––––––––––– + Nestable.prototype.getPathById = function (id, items) { + var _this = this; + if (items === void 0) { items = this.state.items; } + var _a = this.props, idProp = _a.idProp, childrenProp = _a.childrenProp; + var path = []; + items.every(function (item, i) { + if (item[idProp] === id) { + path.push(i); + } + else if (item[childrenProp]) { + var childrenPath = _this.getPathById(id, item[childrenProp]); + if (childrenPath.length) { + path = path.concat(i).concat(childrenPath); + } + } + return path.length === 0; + }); + return path; + }; + Nestable.prototype.getItemByPath = function (path, items) { + if (items === void 0) { items = this.state.items; } + var childrenProp = this.props.childrenProp; + var item = null; + path.forEach(function (index) { + var list = item ? item[childrenProp] : items; + item = list[index]; + }); + return item; + }; + Nestable.prototype.getSplicePath = function (path, options) { + if (options === void 0) { options = {}; } + var splicePath = {}; + var numToRemove = options.numToRemove || 0; + var itemsToInsert = options.itemsToInsert || []; + var lastIndex = path.length - 1; + var currentPath = splicePath; + path.forEach(function (index, i) { + var _a; + if (i === lastIndex) { + currentPath.$splice = [__spreadArray([index, numToRemove], itemsToInsert, true)]; + } + else { + var nextPath = {}; + currentPath[index] = (_a = {}, _a[options.childrenProp] = nextPath, _a); + currentPath = nextPath; + } + }); + return splicePath; + }; + Nestable.prototype.getRealNextPath = function (prevPath, nextPath, dragItemSize) { + var _a = this.props, childrenProp = _a.childrenProp, maxDepth = _a.maxDepth; + var ppLastIndex = prevPath.length - 1; + var npLastIndex = nextPath.length - 1; + var newDepth = nextPath.length + dragItemSize - 1; + if (prevPath.length < nextPath.length) { + // move into depth + var wasShifted_1 = false; + // if new depth exceeds max, try to put after item instead of into item + if (newDepth > maxDepth && nextPath.length) { + return this.getRealNextPath(prevPath, nextPath.slice(0, -1), dragItemSize); + } + return nextPath.map(function (nextIndex, i) { + if (wasShifted_1) { + return i === npLastIndex + ? nextIndex + 1 + : nextIndex; + } + if (typeof prevPath[i] !== 'number') { + return nextIndex; + } + if (nextPath[i] > prevPath[i] && i === ppLastIndex) { + wasShifted_1 = true; + return nextIndex - 1; + } + return nextIndex; + }); + } + else if (prevPath.length === nextPath.length) { + // if move bottom + move to item with children --> make it a first child instead of swap + if (nextPath[npLastIndex] > prevPath[npLastIndex]) { + var target = this.getItemByPath(nextPath); + if (newDepth < maxDepth && + target[childrenProp] && + target[childrenProp].length && + !this.checkIfCollapsed(target)) { + return nextPath + .slice(0, -1) + .concat(nextPath[npLastIndex] - 1) + .concat(0); + } + } + } + return nextPath; + }; + Nestable.prototype.getItemOptions = function () { + var _a = this.props, renderItem = _a.renderItem, renderCollapseIcon = _a.renderCollapseIcon, handler = _a.handler, idProp = _a.idProp, childrenProp = _a.childrenProp; + var dragItem = this.state.dragItem; + return { + dragItem: dragItem, + idProp: idProp, + childrenProp: childrenProp, + renderItem: renderItem, + renderCollapseIcon: renderCollapseIcon, + handler: handler, + checkIfCollapsed: this.checkIfCollapsed, + onDragStart: this.onDragStart, + onMouseEnter: this.onMouseEnter, + onToggleCollapse: this.onToggleCollapse, + }; + }; + // –––––––––––––––––––––––––––––––––––– + // Render methods + // –––––––––––––––––––––––––––––––––––– + Nestable.prototype.renderDragLayer = function () { + var _a = this.props, group = _a.group, idProp = _a.idProp; + var dragItem = this.state.dragItem; + var el = document.querySelector(".nestable-".concat(group, " .nestable-item-").concat(dragItem[idProp])); + var listStyles = {}; + if (el) { + listStyles.width = el.clientWidth; + } + if (this.elCopyStyles) { + listStyles = __assign(__assign({}, listStyles), this.elCopyStyles); + } + var options = this.getItemOptions(); + return (react_1.default.createElement("div", { className: "nestable-drag-layer" }, + react_1.default.createElement("ol", { className: "nestable-list", style: listStyles }, + react_1.default.createElement(NestableItem_1.default, { item: dragItem, options: options, isCopy: true })))); + }; + Nestable.prototype.render = function () { + var _a = this.props, group = _a.group, className = _a.className, idProp = _a.idProp; + var _b = this.state, items = _b.items, dragItem = _b.dragItem; + var options = this.getItemOptions(); + return (react_1.default.createElement("div", { className: (0, classnames_1.default)(className, 'nestable', "nestable-".concat(group), { 'is-drag-active': dragItem }) }, + react_1.default.createElement("ol", { className: "nestable-list nestable-group" }, items.map(function (item, i) { + return (react_1.default.createElement(NestableItem_1.default, { key: item[idProp], index: i, item: item, options: options })); + })), + dragItem && this.renderDragLayer())); + }; + Nestable.defaultProps = { + childrenProp: 'children', + collapsed: false, + confirmChange: function () { return true; }, + group: Math.random().toString(36).slice(2), + idProp: 'id', + items: [], + maxDepth: 10, + onChange: function () { }, + onDragEnd: function () { }, + onDragStart: function () { }, + renderItem: function (_a) { + var item = _a.item; + return String(item); + }, + threshold: 30, + }; + return Nestable; +}(react_1.Component)); +exports.default = Nestable; +//# sourceMappingURL=Nestable.js.map \ No newline at end of file diff --git a/dist/Nestable/Nestable.js.map b/dist/Nestable/Nestable.js.map new file mode 100644 index 0000000..1fd3487 --- /dev/null +++ b/dist/Nestable/Nestable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Nestable.js","sourceRoot":"","sources":["../../src/Nestable/Nestable.tsx"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/Nestable/NestableItem.d.ts b/dist/Nestable/NestableItem.d.ts new file mode 100644 index 0000000..b033ef9 --- /dev/null +++ b/dist/Nestable/NestableItem.d.ts @@ -0,0 +1,10 @@ +import React, { PureComponent } from 'react'; +import { NestableItemProps, NestableItemOptions } from '../types'; +declare class NestableItem extends PureComponent { + static defaultProps: Partial; + renderCollapseIcon: NestableItemOptions['renderCollapseIcon']; + onMouseEnter: (e: MouseEvent) => void; + onDragStart: (e: MouseEvent) => void; + render(): React.JSX.Element; +} +export default NestableItem; diff --git a/dist/Nestable/NestableItem.js b/dist/Nestable/NestableItem.js new file mode 100644 index 0000000..f56692d --- /dev/null +++ b/dist/Nestable/NestableItem.js @@ -0,0 +1,135 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var react_1 = __importStar(require("react")); +var classnames_1 = __importDefault(require("classnames")); +var Icon_1 = __importDefault(require("../Icon")); +var NestableItem = /** @class */ (function (_super) { + __extends(NestableItem, _super); + function NestableItem() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.renderCollapseIcon = function (_a) { + var isCollapsed = _a.isCollapsed; + return (react_1.default.createElement(Icon_1.default, { className: "nestable-item-icon", isCollapsed: isCollapsed })); + }; + _this.onMouseEnter = function (e) { + var _a = _this.props, item = _a.item, options = _a.options; + return options.onMouseEnter(e, item); + }; + _this.onDragStart = function (e) { + var _a = _this.props, item = _a.item, options = _a.options; + return options.onDragStart(e, item); + }; + return _this; + } + NestableItem.prototype.render = function () { + var _a; + var _b = this.props, item = _b.item, isCopy = _b.isCopy, options = _b.options, index = _b.index, depth = _b.depth; + var dragItem = options.dragItem, renderItem = options.renderItem, handler = options.handler, idProp = options.idProp, childrenProp = options.childrenProp, checkIfCollapsed = options.checkIfCollapsed, _c = options.renderCollapseIcon, renderCollapseIcon = _c === void 0 ? this.renderCollapseIcon : _c; + var isCollapsed = checkIfCollapsed(item); + var isDragging = !isCopy && dragItem && dragItem[idProp] === item[idProp]; + var hasChildren = item[childrenProp] && item[childrenProp].length > 0; + var rowProps = {}; + var handlerProps = {}; + var wrappedHandler; + if (!isCopy) { + if (dragItem) { + rowProps = __assign(__assign({}, rowProps), { onMouseEnter: this.onMouseEnter }); + } + else { + handlerProps = __assign(__assign({}, handlerProps), { draggable: true, onDragStart: this.onDragStart }); + } + } + if (handler) { + wrappedHandler = react_1.default.createElement("span", __assign({ className: "nestable-item-handler" }, handlerProps), handler); + // wrappedHandler = React.cloneElement(handler, handlerProps); + } + else { + rowProps = __assign(__assign({}, rowProps), handlerProps); + } + var collapseIcon = hasChildren + ? (react_1.default.createElement("span", { onClick: function () { return options.onToggleCollapse(item); } }, renderCollapseIcon({ isCollapsed: isCollapsed }))) + : null; + var baseClassName = "nestable-item".concat(isCopy ? '-copy' : ''); + var itemProps = { + className: (0, classnames_1.default)(baseClassName, "".concat(baseClassName, "-").concat(item[idProp]), (_a = { + 'is-dragging': isDragging + }, + _a["".concat(baseClassName, "--with-children")] = hasChildren, + _a["".concat(baseClassName, "--children-open")] = hasChildren && !isCollapsed, + _a["".concat(baseClassName, "--children-collapsed")] = hasChildren && isCollapsed, + _a)), + }; + var content = renderItem({ + collapseIcon: collapseIcon, + depth: depth, + handler: wrappedHandler, + index: index, + item: item, + }); + if (!content) + return null; + return (react_1.default.createElement("li", __assign({}, itemProps), + react_1.default.createElement("div", __assign({ className: "nestable-item-name" }, rowProps), content), + hasChildren && !isCollapsed && (react_1.default.createElement("ol", { className: "nestable-list" }, item[childrenProp].map(function (item, i) { + return (react_1.default.createElement(NestableItem, { key: i, index: i, depth: depth + 1, item: item, options: options, isCopy: isCopy })); + }))))); + }; + NestableItem.defaultProps = { + depth: 0, + }; + return NestableItem; +}(react_1.PureComponent)); +exports.default = NestableItem; +//# sourceMappingURL=NestableItem.js.map \ No newline at end of file diff --git a/dist/Nestable/NestableItem.js.map b/dist/Nestable/NestableItem.js.map new file mode 100644 index 0000000..51c7fcf --- /dev/null +++ b/dist/Nestable/NestableItem.js.map @@ -0,0 +1 @@ +{"version":3,"file":"NestableItem.js","sourceRoot":"","sources":["../../src/Nestable/NestableItem.tsx"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/Nestable/index.d.ts b/dist/Nestable/index.d.ts new file mode 100644 index 0000000..11662c3 --- /dev/null +++ b/dist/Nestable/index.d.ts @@ -0,0 +1,2 @@ +import Nestable from './Nestable'; +export default Nestable; diff --git a/dist/Nestable/index.js b/dist/Nestable/index.js new file mode 100644 index 0000000..d1d9d4c --- /dev/null +++ b/dist/Nestable/index.js @@ -0,0 +1,8 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var Nestable_1 = __importDefault(require("./Nestable")); +exports.default = Nestable_1.default; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/Nestable/index.js.map b/dist/Nestable/index.js.map new file mode 100644 index 0000000..1c1b46c --- /dev/null +++ b/dist/Nestable/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Nestable/index.ts"],"names":[],"mappings":";;;;;AAAA,wDAAkC;AAElC,kBAAe,kBAAQ,CAAC"} \ No newline at end of file diff --git a/dist/example/example.d.ts b/dist/example/example.d.ts new file mode 100644 index 0000000..b9dc122 --- /dev/null +++ b/dist/example/example.d.ts @@ -0,0 +1 @@ +import '../styles/index.css'; diff --git a/dist/example/example.js b/dist/example/example.js new file mode 100644 index 0000000..938ba4f --- /dev/null +++ b/dist/example/example.js @@ -0,0 +1,1463 @@ +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +/******/ (() => { // webpackBootstrap +/******/ var __webpack_modules__ = ({ + +/***/ "./node_modules/classnames/index.js": +/*!******************************************!*\ + !*** ./node_modules/classnames/index.js ***! + \******************************************/ +/***/ ((module, exports) => { + +eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif ( true && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (true) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {\n\t\t\treturn classNames;\n\t\t}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else {}\n}());\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvY2xhc3NuYW1lcy9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUdBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vcmVhY3QtbmVzdGFibGUvLi9ub2RlX21vZHVsZXMvY2xhc3NuYW1lcy9pbmRleC5qcz80ZDI2Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIVxuXHRDb3B5cmlnaHQgKGMpIDIwMTggSmVkIFdhdHNvbi5cblx0TGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlIChNSVQpLCBzZWVcblx0aHR0cDovL2plZHdhdHNvbi5naXRodWIuaW8vY2xhc3NuYW1lc1xuKi9cbi8qIGdsb2JhbCBkZWZpbmUgKi9cblxuKGZ1bmN0aW9uICgpIHtcblx0J3VzZSBzdHJpY3QnO1xuXG5cdHZhciBoYXNPd24gPSB7fS5oYXNPd25Qcm9wZXJ0eTtcblx0dmFyIG5hdGl2ZUNvZGVTdHJpbmcgPSAnW25hdGl2ZSBjb2RlXSc7XG5cblx0ZnVuY3Rpb24gY2xhc3NOYW1lcygpIHtcblx0XHR2YXIgY2xhc3NlcyA9IFtdO1xuXG5cdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcblx0XHRcdHZhciBhcmcgPSBhcmd1bWVudHNbaV07XG5cdFx0XHRpZiAoIWFyZykgY29udGludWU7XG5cblx0XHRcdHZhciBhcmdUeXBlID0gdHlwZW9mIGFyZztcblxuXHRcdFx0aWYgKGFyZ1R5cGUgPT09ICdzdHJpbmcnIHx8IGFyZ1R5cGUgPT09ICdudW1iZXInKSB7XG5cdFx0XHRcdGNsYXNzZXMucHVzaChhcmcpO1xuXHRcdFx0fSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGFyZykpIHtcblx0XHRcdFx0aWYgKGFyZy5sZW5ndGgpIHtcblx0XHRcdFx0XHR2YXIgaW5uZXIgPSBjbGFzc05hbWVzLmFwcGx5KG51bGwsIGFyZyk7XG5cdFx0XHRcdFx0aWYgKGlubmVyKSB7XG5cdFx0XHRcdFx0XHRjbGFzc2VzLnB1c2goaW5uZXIpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIGlmIChhcmdUeXBlID09PSAnb2JqZWN0Jykge1xuXHRcdFx0XHRpZiAoYXJnLnRvU3RyaW5nICE9PSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nICYmICFhcmcudG9TdHJpbmcudG9TdHJpbmcoKS5pbmNsdWRlcygnW25hdGl2ZSBjb2RlXScpKSB7XG5cdFx0XHRcdFx0Y2xhc3Nlcy5wdXNoKGFyZy50b1N0cmluZygpKTtcblx0XHRcdFx0XHRjb250aW51ZTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGZvciAodmFyIGtleSBpbiBhcmcpIHtcblx0XHRcdFx0XHRpZiAoaGFzT3duLmNhbGwoYXJnLCBrZXkpICYmIGFyZ1trZXldKSB7XG5cdFx0XHRcdFx0XHRjbGFzc2VzLnB1c2goa2V5KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gY2xhc3Nlcy5qb2luKCcgJyk7XG5cdH1cblxuXHRpZiAodHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCcgJiYgbW9kdWxlLmV4cG9ydHMpIHtcblx0XHRjbGFzc05hbWVzLmRlZmF1bHQgPSBjbGFzc05hbWVzO1xuXHRcdG1vZHVsZS5leHBvcnRzID0gY2xhc3NOYW1lcztcblx0fSBlbHNlIGlmICh0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBkZWZpbmUuYW1kID09PSAnb2JqZWN0JyAmJiBkZWZpbmUuYW1kKSB7XG5cdFx0Ly8gcmVnaXN0ZXIgYXMgJ2NsYXNzbmFtZXMnLCBjb25zaXN0ZW50IHdpdGggbnBtIHBhY2thZ2UgbmFtZVxuXHRcdGRlZmluZSgnY2xhc3NuYW1lcycsIFtdLCBmdW5jdGlvbiAoKSB7XG5cdFx0XHRyZXR1cm4gY2xhc3NOYW1lcztcblx0XHR9KTtcblx0fSBlbHNlIHtcblx0XHR3aW5kb3cuY2xhc3NOYW1lcyA9IGNsYXNzTmFtZXM7XG5cdH1cbn0oKSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/classnames/index.js\n"); + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/styles/index.css": +/*!******************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/styles/index.css ***! + \******************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"./node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/getUrl.js */ \"./node_modules/css-loader/dist/runtime/getUrl.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__);\n// Imports\n\n\n\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(/* asset import */ __webpack_require__(/*! ./icon-plus-gray.svg */ \"./src/styles/icon-plus-gray.svg\"), __webpack_require__.b);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(/* asset import */ __webpack_require__(/*! ./icon-minus-gray.svg */ \"./src/styles/icon-minus-gray.svg\"), __webpack_require__.b);\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_1___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.nestable {\n position: relative;\n}\n.nestable .nestable-list {\n margin: 0;\n padding: 0 0 0 40px;\n list-style-type: none;\n}\n.nestable > .nestable-list {\n padding: 0;\n}\n.nestable-item,\n.nestable-item-copy {\n margin: 10px 0 0;\n}\n.nestable-item:first-child,\n.nestable-item-copy:first-child {\n margin-top: 0;\n}\n.nestable-item .nestable-list,\n.nestable-item-copy .nestable-list {\n margin-top: 10px;\n}\n.nestable-item {\n position: relative;\n}\n.nestable-item.is-dragging .nestable-list {\n pointer-events: none;\n}\n.nestable-item.is-dragging * {\n opacity: 0;\n -ms-filter: \"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)\";\n filter: alpha(opacity=0);\n}\n.nestable-item.is-dragging:before {\n content: ' ';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: #87ceeb;\n border: 1px dashed #4682b4;\n border-radius: 5px;\n}\n.nestable-item-icon {\n margin-right: 5px;\n cursor: pointer;\n}\n.nestable-drag-layer {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 100;\n pointer-events: none;\n}\n.nestable-drag-layer > .nestable-list {\n position: absolute;\n top: 0;\n left: 0;\n padding: 0;\n}\n.nestable-icon {\n position: relative;\n display: inline-block;\n width: 20px;\n height: 20px;\n background-color: transparent;\n background-position: center center;\n background-repeat: no-repeat;\n}\n.nestable-icon:before {\n content: '-';\n display: inline-block;\n width: 0;\n height: 0;\n overflow: hidden;\n}\n.nestable-icon--plus-gray {\n width: 20px;\n height: 20px;\n background-image: url(${___CSS_LOADER_URL_REPLACEMENT_0___});\n}\n.nestable-icon--minus-gray {\n width: 20px;\n height: 20px;\n background-image: url(${___CSS_LOADER_URL_REPLACEMENT_1___});\n}\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1sxXS51c2VbMl0hLi9zcmMvc3R5bGVzL2luZGV4LmNzcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL3JlYWN0LW5lc3RhYmxlLy4vc3JjL3N0eWxlcy9pbmRleC5jc3M/NTM0MCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfTk9fU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL25vU291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfR0VUX1VSTF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9nZXRVcmwuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX1VSTF9JTVBPUlRfMF9fXyA9IG5ldyBVUkwoXCIuL2ljb24tcGx1cy1ncmF5LnN2Z1wiLCBpbXBvcnQubWV0YS51cmwpO1xudmFyIF9fX0NTU19MT0FERVJfVVJMX0lNUE9SVF8xX19fID0gbmV3IFVSTChcIi4vaWNvbi1taW51cy1ncmF5LnN2Z1wiLCBpbXBvcnQubWV0YS51cmwpO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX05PX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xudmFyIF9fX0NTU19MT0FERVJfVVJMX1JFUExBQ0VNRU5UXzBfX18gPSBfX19DU1NfTE9BREVSX0dFVF9VUkxfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfVVJMX0lNUE9SVF8wX19fKTtcbnZhciBfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF8xX19fID0gX19fQ1NTX0xPQURFUl9HRVRfVVJMX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX1VSTF9JTVBPUlRfMV9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgYC5uZXN0YWJsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5uZXN0YWJsZSAubmVzdGFibGUtbGlzdCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMCAwIDAgNDBweDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xufVxuLm5lc3RhYmxlID4gLm5lc3RhYmxlLWxpc3Qge1xuICBwYWRkaW5nOiAwO1xufVxuLm5lc3RhYmxlLWl0ZW0sXG4ubmVzdGFibGUtaXRlbS1jb3B5IHtcbiAgbWFyZ2luOiAxMHB4IDAgMDtcbn1cbi5uZXN0YWJsZS1pdGVtOmZpcnN0LWNoaWxkLFxuLm5lc3RhYmxlLWl0ZW0tY29weTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4ubmVzdGFibGUtaXRlbSAubmVzdGFibGUtbGlzdCxcbi5uZXN0YWJsZS1pdGVtLWNvcHkgLm5lc3RhYmxlLWxpc3Qge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuLm5lc3RhYmxlLWl0ZW0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ubmVzdGFibGUtaXRlbS5pcy1kcmFnZ2luZyAubmVzdGFibGUtbGlzdCB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLm5lc3RhYmxlLWl0ZW0uaXMtZHJhZ2dpbmcgKiB7XG4gIG9wYWNpdHk6IDA7XG4gIC1tcy1maWx0ZXI6IFwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9MClcIjtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTApO1xufVxuLm5lc3RhYmxlLWl0ZW0uaXMtZHJhZ2dpbmc6YmVmb3JlIHtcbiAgY29udGVudDogJyAnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgYmFja2dyb3VuZDogIzg3Y2VlYjtcbiAgYm9yZGVyOiAxcHggZGFzaGVkICM0NjgyYjQ7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbn1cbi5uZXN0YWJsZS1pdGVtLWljb24ge1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLm5lc3RhYmxlLWRyYWctbGF5ZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5uZXN0YWJsZS1kcmFnLWxheWVyID4gLm5lc3RhYmxlLWxpc3Qge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcGFkZGluZzogMDtcbn1cbi5uZXN0YWJsZS1pY29uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuLm5lc3RhYmxlLWljb246YmVmb3JlIHtcbiAgY29udGVudDogJy0nO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4ubmVzdGFibGUtaWNvbi0tcGx1cy1ncmF5IHtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCR7X19fQ1NTX0xPQURFUl9VUkxfUkVQTEFDRU1FTlRfMF9fX30pO1xufVxuLm5lc3RhYmxlLWljb24tLW1pbnVzLWdyYXkge1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJHtfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF8xX19ffSk7XG59XG5gLCBcIlwiXSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/styles/index.css\n"); + +/***/ }), + +/***/ "./node_modules/css-loader/dist/runtime/api.js": +/*!*****************************************************!*\ + !*** ./node_modules/css-loader/dist/runtime/api.js ***! + \*****************************************************/ +/***/ ((module) => { + +"use strict"; +eval("\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vcmVhY3QtbmVzdGFibGUvLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzPzI0ZmIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbi8qXG4gIE1JVCBMaWNlbnNlIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwXG4gIEF1dGhvciBUb2JpYXMgS29wcGVycyBAc29rcmFcbiovXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChjc3NXaXRoTWFwcGluZ1RvU3RyaW5nKSB7XG4gIHZhciBsaXN0ID0gW107XG5cbiAgLy8gcmV0dXJuIHRoZSBsaXN0IG9mIG1vZHVsZXMgYXMgY3NzIHN0cmluZ1xuICBsaXN0LnRvU3RyaW5nID0gZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICB2YXIgY29udGVudCA9IFwiXCI7XG4gICAgICB2YXIgbmVlZExheWVyID0gdHlwZW9mIGl0ZW1bNV0gIT09IFwidW5kZWZpbmVkXCI7XG4gICAgICBpZiAoaXRlbVs0XSkge1xuICAgICAgICBjb250ZW50ICs9IFwiQHN1cHBvcnRzIChcIi5jb25jYXQoaXRlbVs0XSwgXCIpIHtcIik7XG4gICAgICB9XG4gICAgICBpZiAoaXRlbVsyXSkge1xuICAgICAgICBjb250ZW50ICs9IFwiQG1lZGlhIFwiLmNvbmNhdChpdGVtWzJdLCBcIiB7XCIpO1xuICAgICAgfVxuICAgICAgaWYgKG5lZWRMYXllcikge1xuICAgICAgICBjb250ZW50ICs9IFwiQGxheWVyXCIuY29uY2F0KGl0ZW1bNV0ubGVuZ3RoID4gMCA/IFwiIFwiLmNvbmNhdChpdGVtWzVdKSA6IFwiXCIsIFwiIHtcIik7XG4gICAgICB9XG4gICAgICBjb250ZW50ICs9IGNzc1dpdGhNYXBwaW5nVG9TdHJpbmcoaXRlbSk7XG4gICAgICBpZiAobmVlZExheWVyKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJ9XCI7XG4gICAgICB9XG4gICAgICBpZiAoaXRlbVsyXSkge1xuICAgICAgICBjb250ZW50ICs9IFwifVwiO1xuICAgICAgfVxuICAgICAgaWYgKGl0ZW1bNF0pIHtcbiAgICAgICAgY29udGVudCArPSBcIn1cIjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjb250ZW50O1xuICAgIH0pLmpvaW4oXCJcIik7XG4gIH07XG5cbiAgLy8gaW1wb3J0IGEgbGlzdCBvZiBtb2R1bGVzIGludG8gdGhlIGxpc3RcbiAgbGlzdC5pID0gZnVuY3Rpb24gaShtb2R1bGVzLCBtZWRpYSwgZGVkdXBlLCBzdXBwb3J0cywgbGF5ZXIpIHtcbiAgICBpZiAodHlwZW9mIG1vZHVsZXMgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIG1vZHVsZXMgPSBbW251bGwsIG1vZHVsZXMsIHVuZGVmaW5lZF1dO1xuICAgIH1cbiAgICB2YXIgYWxyZWFkeUltcG9ydGVkTW9kdWxlcyA9IHt9O1xuICAgIGlmIChkZWR1cGUpIHtcbiAgICAgIGZvciAodmFyIGsgPSAwOyBrIDwgdGhpcy5sZW5ndGg7IGsrKykge1xuICAgICAgICB2YXIgaWQgPSB0aGlzW2tdWzBdO1xuICAgICAgICBpZiAoaWQgIT0gbnVsbCkge1xuICAgICAgICAgIGFscmVhZHlJbXBvcnRlZE1vZHVsZXNbaWRdID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKHZhciBfayA9IDA7IF9rIDwgbW9kdWxlcy5sZW5ndGg7IF9rKyspIHtcbiAgICAgIHZhciBpdGVtID0gW10uY29uY2F0KG1vZHVsZXNbX2tdKTtcbiAgICAgIGlmIChkZWR1cGUgJiYgYWxyZWFkeUltcG9ydGVkTW9kdWxlc1tpdGVtWzBdXSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgbGF5ZXIgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBpdGVtWzVdID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgaXRlbVs1XSA9IGxheWVyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGl0ZW1bMV0gPSBcIkBsYXllclwiLmNvbmNhdChpdGVtWzVdLmxlbmd0aCA+IDAgPyBcIiBcIi5jb25jYXQoaXRlbVs1XSkgOiBcIlwiLCBcIiB7XCIpLmNvbmNhdChpdGVtWzFdLCBcIn1cIik7XG4gICAgICAgICAgaXRlbVs1XSA9IGxheWVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAobWVkaWEpIHtcbiAgICAgICAgaWYgKCFpdGVtWzJdKSB7XG4gICAgICAgICAgaXRlbVsyXSA9IG1lZGlhO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGl0ZW1bMV0gPSBcIkBtZWRpYSBcIi5jb25jYXQoaXRlbVsyXSwgXCIge1wiKS5jb25jYXQoaXRlbVsxXSwgXCJ9XCIpO1xuICAgICAgICAgIGl0ZW1bMl0gPSBtZWRpYTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHN1cHBvcnRzKSB7XG4gICAgICAgIGlmICghaXRlbVs0XSkge1xuICAgICAgICAgIGl0ZW1bNF0gPSBcIlwiLmNvbmNhdChzdXBwb3J0cyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbVsxXSA9IFwiQHN1cHBvcnRzIChcIi5jb25jYXQoaXRlbVs0XSwgXCIpIHtcIikuY29uY2F0KGl0ZW1bMV0sIFwifVwiKTtcbiAgICAgICAgICBpdGVtWzRdID0gc3VwcG9ydHM7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGxpc3QucHVzaChpdGVtKTtcbiAgICB9XG4gIH07XG4gIHJldHVybiBsaXN0O1xufTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/css-loader/dist/runtime/api.js\n"); + +/***/ }), + +/***/ "./node_modules/css-loader/dist/runtime/getUrl.js": +/*!********************************************************!*\ + !*** ./node_modules/css-loader/dist/runtime/getUrl.js ***! + \********************************************************/ +/***/ ((module) => { + +"use strict"; +eval("\n\nmodule.exports = function (url, options) {\n if (!options) {\n options = {};\n }\n if (!url) {\n return url;\n }\n url = String(url.__esModule ? url.default : url);\n\n // If url is already wrapped in quotes, remove them\n if (/^['\"].*['\"]$/.test(url)) {\n url = url.slice(1, -1);\n }\n if (options.hash) {\n url += options.hash;\n }\n\n // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n if (/[\"'() \\t\\n]|(%20)/.test(url) || options.needQuotes) {\n return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, \"\\\\n\"), \"\\\"\");\n }\n return url;\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvZ2V0VXJsLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9yZWFjdC1uZXN0YWJsZS8uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9nZXRVcmwuanM/MWRlNSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAodXJsLCBvcHRpb25zKSB7XG4gIGlmICghb3B0aW9ucykge1xuICAgIG9wdGlvbnMgPSB7fTtcbiAgfVxuICBpZiAoIXVybCkge1xuICAgIHJldHVybiB1cmw7XG4gIH1cbiAgdXJsID0gU3RyaW5nKHVybC5fX2VzTW9kdWxlID8gdXJsLmRlZmF1bHQgOiB1cmwpO1xuXG4gIC8vIElmIHVybCBpcyBhbHJlYWR5IHdyYXBwZWQgaW4gcXVvdGVzLCByZW1vdmUgdGhlbVxuICBpZiAoL15bJ1wiXS4qWydcIl0kLy50ZXN0KHVybCkpIHtcbiAgICB1cmwgPSB1cmwuc2xpY2UoMSwgLTEpO1xuICB9XG4gIGlmIChvcHRpb25zLmhhc2gpIHtcbiAgICB1cmwgKz0gb3B0aW9ucy5oYXNoO1xuICB9XG5cbiAgLy8gU2hvdWxkIHVybCBiZSB3cmFwcGVkP1xuICAvLyBTZWUgaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy12YWx1ZXMtMy8jdXJsc1xuICBpZiAoL1tcIicoKSBcXHRcXG5dfCglMjApLy50ZXN0KHVybCkgfHwgb3B0aW9ucy5uZWVkUXVvdGVzKSB7XG4gICAgcmV0dXJuIFwiXFxcIlwiLmNvbmNhdCh1cmwucmVwbGFjZSgvXCIvZywgJ1xcXFxcIicpLnJlcGxhY2UoL1xcbi9nLCBcIlxcXFxuXCIpLCBcIlxcXCJcIik7XG4gIH1cbiAgcmV0dXJuIHVybDtcbn07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/css-loader/dist/runtime/getUrl.js\n"); + +/***/ }), + +/***/ "./node_modules/css-loader/dist/runtime/noSourceMaps.js": +/*!**************************************************************!*\ + !*** ./node_modules/css-loader/dist/runtime/noSourceMaps.js ***! + \**************************************************************/ +/***/ ((module) => { + +"use strict"; +eval("\n\nmodule.exports = function (i) {\n return i[1];\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvbm9Tb3VyY2VNYXBzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9yZWFjdC1uZXN0YWJsZS8uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9ub1NvdXJjZU1hcHMuanM/MjdjOCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaSkge1xuICByZXR1cm4gaVsxXTtcbn07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/css-loader/dist/runtime/noSourceMaps.js\n"); + +/***/ }), + +/***/ "./node_modules/object-assign/index.js": +/*!*********************************************!*\ + !*** ./node_modules/object-assign/index.js ***! + \*********************************************/ +/***/ ((module) => { + +"use strict"; +eval("/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvb2JqZWN0LWFzc2lnbi9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9yZWFjdC1uZXN0YWJsZS8uL25vZGVfbW9kdWxlcy9vYmplY3QtYXNzaWduL2luZGV4LmpzPzMyMGMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbm9iamVjdC1hc3NpZ25cbihjKSBTaW5kcmUgU29yaHVzXG5AbGljZW5zZSBNSVRcbiovXG5cbid1c2Ugc3RyaWN0Jztcbi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG52YXIgZ2V0T3duUHJvcGVydHlTeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scztcbnZhciBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG52YXIgcHJvcElzRW51bWVyYWJsZSA9IE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGU7XG5cbmZ1bmN0aW9uIHRvT2JqZWN0KHZhbCkge1xuXHRpZiAodmFsID09PSBudWxsIHx8IHZhbCA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0dGhyb3cgbmV3IFR5cGVFcnJvcignT2JqZWN0LmFzc2lnbiBjYW5ub3QgYmUgY2FsbGVkIHdpdGggbnVsbCBvciB1bmRlZmluZWQnKTtcblx0fVxuXG5cdHJldHVybiBPYmplY3QodmFsKTtcbn1cblxuZnVuY3Rpb24gc2hvdWxkVXNlTmF0aXZlKCkge1xuXHR0cnkge1xuXHRcdGlmICghT2JqZWN0LmFzc2lnbikge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIERldGVjdCBidWdneSBwcm9wZXJ0eSBlbnVtZXJhdGlvbiBvcmRlciBpbiBvbGRlciBWOCB2ZXJzaW9ucy5cblxuXHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTQxMThcblx0XHR2YXIgdGVzdDEgPSBuZXcgU3RyaW5nKCdhYmMnKTsgIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tbmV3LXdyYXBwZXJzXG5cdFx0dGVzdDFbNV0gPSAnZGUnO1xuXHRcdGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0ZXN0MSlbMF0gPT09ICc1Jykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTMwNTZcblx0XHR2YXIgdGVzdDIgPSB7fTtcblx0XHRmb3IgKHZhciBpID0gMDsgaSA8IDEwOyBpKyspIHtcblx0XHRcdHRlc3QyWydfJyArIFN0cmluZy5mcm9tQ2hhckNvZGUoaSldID0gaTtcblx0XHR9XG5cdFx0dmFyIG9yZGVyMiA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRlc3QyKS5tYXAoZnVuY3Rpb24gKG4pIHtcblx0XHRcdHJldHVybiB0ZXN0MltuXTtcblx0XHR9KTtcblx0XHRpZiAob3JkZXIyLmpvaW4oJycpICE9PSAnMDEyMzQ1Njc4OScpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHQvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0zMDU2XG5cdFx0dmFyIHRlc3QzID0ge307XG5cdFx0J2FiY2RlZmdoaWprbG1ub3BxcnN0Jy5zcGxpdCgnJykuZm9yRWFjaChmdW5jdGlvbiAobGV0dGVyKSB7XG5cdFx0XHR0ZXN0M1tsZXR0ZXJdID0gbGV0dGVyO1xuXHRcdH0pO1xuXHRcdGlmIChPYmplY3Qua2V5cyhPYmplY3QuYXNzaWduKHt9LCB0ZXN0MykpLmpvaW4oJycpICE9PVxuXHRcdFx0XHQnYWJjZGVmZ2hpamtsbW5vcHFyc3QnKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRydWU7XG5cdH0gY2F0Y2ggKGVycikge1xuXHRcdC8vIFdlIGRvbid0IGV4cGVjdCBhbnkgb2YgdGhlIGFib3ZlIHRvIHRocm93LCBidXQgYmV0dGVyIHRvIGJlIHNhZmUuXG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc2hvdWxkVXNlTmF0aXZlKCkgPyBPYmplY3QuYXNzaWduIDogZnVuY3Rpb24gKHRhcmdldCwgc291cmNlKSB7XG5cdHZhciBmcm9tO1xuXHR2YXIgdG8gPSB0b09iamVjdCh0YXJnZXQpO1xuXHR2YXIgc3ltYm9scztcblxuXHRmb3IgKHZhciBzID0gMTsgcyA8IGFyZ3VtZW50cy5sZW5ndGg7IHMrKykge1xuXHRcdGZyb20gPSBPYmplY3QoYXJndW1lbnRzW3NdKTtcblxuXHRcdGZvciAodmFyIGtleSBpbiBmcm9tKSB7XG5cdFx0XHRpZiAoaGFzT3duUHJvcGVydHkuY2FsbChmcm9tLCBrZXkpKSB7XG5cdFx0XHRcdHRvW2tleV0gPSBmcm9tW2tleV07XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKGdldE93blByb3BlcnR5U3ltYm9scykge1xuXHRcdFx0c3ltYm9scyA9IGdldE93blByb3BlcnR5U3ltYm9scyhmcm9tKTtcblx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgc3ltYm9scy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRpZiAocHJvcElzRW51bWVyYWJsZS5jYWxsKGZyb20sIHN5bWJvbHNbaV0pKSB7XG5cdFx0XHRcdFx0dG9bc3ltYm9sc1tpXV0gPSBmcm9tW3N5bWJvbHNbaV1dO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIHRvO1xufTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/object-assign/index.js\n"); + +/***/ }), + +/***/ "./node_modules/react-addons-shallow-compare/index.js": +/*!************************************************************!*\ + !*** ./node_modules/react-addons-shallow-compare/index.js ***! + \************************************************************/ +/***/ ((module) => { + +"use strict"; +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @providesModule shallowCompare\n */\n\n\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n // Added the nonzero y check to make Flow happy, but it is redundant\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n}\n\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */\nfunction shallowEqual(objA, objB) {\n if (is(objA, objB)) {\n return true;\n }\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n for (var i = 0; i < keysA.length; i++) {\n if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Does a shallow comparison for props and state.\n * See ReactComponentWithPureRenderMixin\n * See also https://facebook.github.io/react/docs/shallow-compare.html\n */\nfunction shallowCompare(instance, nextProps, nextState) {\n return (\n !shallowEqual(instance.props, nextProps) ||\n !shallowEqual(instance.state, nextState)\n );\n}\n\nmodule.exports = shallowCompare;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtYWRkb25zLXNoYWxsb3ctY29tcGFyZS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vcmVhY3QtbmVzdGFibGUvLi9ub2RlX21vZHVsZXMvcmVhY3QtYWRkb25zLXNoYWxsb3ctY29tcGFyZS9pbmRleC5qcz82MTkwIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIHNoYWxsb3dDb21wYXJlXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIGlubGluZWQgT2JqZWN0LmlzIHBvbHlmaWxsIHRvIGF2b2lkIHJlcXVpcmluZyBjb25zdW1lcnMgc2hpcCB0aGVpciBvd25cbiAqIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL09iamVjdC9pc1xuICovXG5mdW5jdGlvbiBpcyh4LCB5KSB7XG4gIC8vIFNhbWVWYWx1ZSBhbGdvcml0aG1cbiAgaWYgKHggPT09IHkpIHtcbiAgICAvLyBTdGVwcyAxLTUsIDctMTBcbiAgICAvLyBTdGVwcyA2LmItNi5lOiArMCAhPSAtMFxuICAgIC8vIEFkZGVkIHRoZSBub256ZXJvIHkgY2hlY2sgdG8gbWFrZSBGbG93IGhhcHB5LCBidXQgaXQgaXMgcmVkdW5kYW50XG4gICAgcmV0dXJuIHggIT09IDAgfHwgeSAhPT0gMCB8fCAxIC8geCA9PT0gMSAvIHk7XG4gIH0gZWxzZSB7XG4gICAgLy8gU3RlcCA2LmE6IE5hTiA9PSBOYU5cbiAgICByZXR1cm4geCAhPT0geCAmJiB5ICE9PSB5O1xuICB9XG59XG5cbi8qKlxuICogUGVyZm9ybXMgZXF1YWxpdHkgYnkgaXRlcmF0aW5nIHRocm91Z2gga2V5cyBvbiBhbiBvYmplY3QgYW5kIHJldHVybmluZyBmYWxzZVxuICogd2hlbiBhbnkga2V5IGhhcyB2YWx1ZXMgd2hpY2ggYXJlIG5vdCBzdHJpY3RseSBlcXVhbCBiZXR3ZWVuIHRoZSBhcmd1bWVudHMuXG4gKiBSZXR1cm5zIHRydWUgd2hlbiB0aGUgdmFsdWVzIG9mIGFsbCBrZXlzIGFyZSBzdHJpY3RseSBlcXVhbC5cbiAqL1xuZnVuY3Rpb24gc2hhbGxvd0VxdWFsKG9iakEsIG9iakIpIHtcbiAgaWYgKGlzKG9iakEsIG9iakIpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAodHlwZW9mIG9iakEgIT09ICdvYmplY3QnIHx8IG9iakEgPT09IG51bGwgfHwgdHlwZW9mIG9iakIgIT09ICdvYmplY3QnIHx8IG9iakIgPT09IG51bGwpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB2YXIga2V5c0EgPSBPYmplY3Qua2V5cyhvYmpBKTtcbiAgdmFyIGtleXNCID0gT2JqZWN0LmtleXMob2JqQik7XG5cbiAgaWYgKGtleXNBLmxlbmd0aCAhPT0ga2V5c0IubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gVGVzdCBmb3IgQSdzIGtleXMgZGlmZmVyZW50IGZyb20gQi5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzQS5sZW5ndGg7IGkrKykge1xuICAgIGlmICghaGFzT3duUHJvcGVydHkuY2FsbChvYmpCLCBrZXlzQVtpXSkgfHwgIWlzKG9iakFba2V5c0FbaV1dLCBvYmpCW2tleXNBW2ldXSkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuLyoqXG4gKiBEb2VzIGEgc2hhbGxvdyBjb21wYXJpc29uIGZvciBwcm9wcyBhbmQgc3RhdGUuXG4gKiBTZWUgUmVhY3RDb21wb25lbnRXaXRoUHVyZVJlbmRlck1peGluXG4gKiBTZWUgYWxzbyBodHRwczovL2ZhY2Vib29rLmdpdGh1Yi5pby9yZWFjdC9kb2NzL3NoYWxsb3ctY29tcGFyZS5odG1sXG4gKi9cbmZ1bmN0aW9uIHNoYWxsb3dDb21wYXJlKGluc3RhbmNlLCBuZXh0UHJvcHMsIG5leHRTdGF0ZSkge1xuICByZXR1cm4gKFxuICAgICFzaGFsbG93RXF1YWwoaW5zdGFuY2UucHJvcHMsIG5leHRQcm9wcykgfHxcbiAgICAhc2hhbGxvd0VxdWFsKGluc3RhbmNlLnN0YXRlLCBuZXh0U3RhdGUpXG4gICk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc2hhbGxvd0NvbXBhcmU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-addons-shallow-compare/index.js\n"); + +/***/ }), + +/***/ "./node_modules/react-addons-update/index.js": +/*!***************************************************!*\ + !*** ./node_modules/react-addons-update/index.js ***! + \***************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar _assign = __webpack_require__(/*! object-assign */ \"./node_modules/object-assign/index.js\");\nvar hasOwnProperty = {}.hasOwnProperty;\n\nvar validateFormat = function validateFormat(format) {};\n\nif (true) {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nfunction shallowCopy(x) {\n if (Array.isArray(x)) {\n return x.concat();\n } else if (x && typeof x === 'object') {\n return _assign(new x.constructor(), x);\n } else {\n return x;\n }\n}\n\nvar COMMAND_PUSH = '$push';\nvar COMMAND_UNSHIFT = '$unshift';\nvar COMMAND_SPLICE = '$splice';\nvar COMMAND_SET = '$set';\nvar COMMAND_MERGE = '$merge';\nvar COMMAND_APPLY = '$apply';\n\nvar ALL_COMMANDS_LIST = [\n COMMAND_PUSH,\n COMMAND_UNSHIFT,\n COMMAND_SPLICE,\n COMMAND_SET,\n COMMAND_MERGE,\n COMMAND_APPLY\n];\n\nvar ALL_COMMANDS_SET = {};\n\nALL_COMMANDS_LIST.forEach(function(command) {\n ALL_COMMANDS_SET[command] = true;\n});\n\nfunction invariantArrayCase(value, spec, command) {\n invariant(\n Array.isArray(value),\n 'update(): expected target of %s to be an array; got %s.',\n command,\n value\n );\n var specValue = spec[command];\n invariant(\n Array.isArray(specValue),\n 'update(): expected spec of %s to be an array; got %s. ' +\n 'Did you forget to wrap your parameter in an array?',\n command,\n specValue\n );\n}\n\n/**\n * Returns a updated shallow copy of an object without mutating the original.\n * See https://facebook.github.io/react/docs/update.html for details.\n */\nfunction update(value, spec) {\n invariant(\n typeof spec === 'object',\n 'update(): You provided a key path to update() that did not contain one ' +\n 'of %s. Did you forget to include {%s: ...}?',\n ALL_COMMANDS_LIST.join(', '),\n COMMAND_SET\n );\n\n if (hasOwnProperty.call(spec, COMMAND_SET)) {\n invariant(\n Object.keys(spec).length === 1,\n 'Cannot have more than one key in an object with %s',\n COMMAND_SET\n );\n\n return spec[COMMAND_SET];\n }\n\n var nextValue = shallowCopy(value);\n\n if (hasOwnProperty.call(spec, COMMAND_MERGE)) {\n var mergeObj = spec[COMMAND_MERGE];\n invariant(\n mergeObj && typeof mergeObj === 'object',\n \"update(): %s expects a spec of type 'object'; got %s\",\n COMMAND_MERGE,\n mergeObj\n );\n invariant(\n nextValue && typeof nextValue === 'object',\n \"update(): %s expects a target of type 'object'; got %s\",\n COMMAND_MERGE,\n nextValue\n );\n _assign(nextValue, spec[COMMAND_MERGE]);\n }\n\n if (hasOwnProperty.call(spec, COMMAND_PUSH)) {\n invariantArrayCase(value, spec, COMMAND_PUSH);\n spec[COMMAND_PUSH].forEach(function(item) {\n nextValue.push(item);\n });\n }\n\n if (hasOwnProperty.call(spec, COMMAND_UNSHIFT)) {\n invariantArrayCase(value, spec, COMMAND_UNSHIFT);\n spec[COMMAND_UNSHIFT].forEach(function(item) {\n nextValue.unshift(item);\n });\n }\n\n if (hasOwnProperty.call(spec, COMMAND_SPLICE)) {\n invariant(\n Array.isArray(value),\n 'Expected %s target to be an array; got %s',\n COMMAND_SPLICE,\n value\n );\n invariant(\n Array.isArray(spec[COMMAND_SPLICE]),\n 'update(): expected spec of %s to be an array of arrays; got %s. ' +\n 'Did you forget to wrap your parameters in an array?',\n COMMAND_SPLICE,\n spec[COMMAND_SPLICE]\n );\n spec[COMMAND_SPLICE].forEach(function(args) {\n invariant(\n Array.isArray(args),\n 'update(): expected spec of %s to be an array of arrays; got %s. ' +\n 'Did you forget to wrap your parameters in an array?',\n COMMAND_SPLICE,\n spec[COMMAND_SPLICE]\n );\n nextValue.splice.apply(nextValue, args);\n });\n }\n\n if (hasOwnProperty.call(spec, COMMAND_APPLY)) {\n invariant(\n typeof spec[COMMAND_APPLY] === 'function',\n 'update(): expected spec of %s to be a function; got %s.',\n COMMAND_APPLY,\n spec[COMMAND_APPLY]\n );\n nextValue = spec[COMMAND_APPLY](nextValue);\n }\n\n for (var k in spec) {\n if (!(ALL_COMMANDS_SET.hasOwnProperty(k) && ALL_COMMANDS_SET[k])) {\n nextValue[k] = update(value[k], spec[k]);\n }\n }\n\n return nextValue;\n}\n\nmodule.exports = update;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtYWRkb25zLXVwZGF0ZS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vcmVhY3QtbmVzdGFibGUvLi9ub2RlX21vZHVsZXMvcmVhY3QtYWRkb25zLXVwZGF0ZS9pbmRleC5qcz84ZTFjIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgX2Fzc2lnbiA9IHJlcXVpcmUoJ29iamVjdC1hc3NpZ24nKTtcbnZhciBoYXNPd25Qcm9wZXJ0eSA9IHt9Lmhhc093blByb3BlcnR5O1xuXG52YXIgdmFsaWRhdGVGb3JtYXQgPSBmdW5jdGlvbiB2YWxpZGF0ZUZvcm1hdChmb3JtYXQpIHt9O1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICB2YWxpZGF0ZUZvcm1hdCA9IGZ1bmN0aW9uIHZhbGlkYXRlRm9ybWF0KGZvcm1hdCkge1xuICAgIGlmIChmb3JtYXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhcmlhbnQgcmVxdWlyZXMgYW4gZXJyb3IgbWVzc2FnZSBhcmd1bWVudCcpO1xuICAgIH1cbiAgfTtcbn1cblxuZnVuY3Rpb24gaW52YXJpYW50KGNvbmRpdGlvbiwgZm9ybWF0LCBhLCBiLCBjLCBkLCBlLCBmKSB7XG4gIHZhbGlkYXRlRm9ybWF0KGZvcm1hdCk7XG5cbiAgaWYgKCFjb25kaXRpb24pIHtcbiAgICB2YXIgZXJyb3I7XG4gICAgaWYgKGZvcm1hdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBlcnJvciA9IG5ldyBFcnJvcignTWluaWZpZWQgZXhjZXB0aW9uIG9jY3VycmVkOyB1c2UgdGhlIG5vbi1taW5pZmllZCBkZXYgZW52aXJvbm1lbnQgJyArICdmb3IgdGhlIGZ1bGwgZXJyb3IgbWVzc2FnZSBhbmQgYWRkaXRpb25hbCBoZWxwZnVsIHdhcm5pbmdzLicpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgYXJncyA9IFthLCBiLCBjLCBkLCBlLCBmXTtcbiAgICAgIHZhciBhcmdJbmRleCA9IDA7XG4gICAgICBlcnJvciA9IG5ldyBFcnJvcihmb3JtYXQucmVwbGFjZSgvJXMvZywgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gYXJnc1thcmdJbmRleCsrXTtcbiAgICAgIH0pKTtcbiAgICAgIGVycm9yLm5hbWUgPSAnSW52YXJpYW50IFZpb2xhdGlvbic7XG4gICAgfVxuXG4gICAgZXJyb3IuZnJhbWVzVG9Qb3AgPSAxOyAvLyB3ZSBkb24ndCBjYXJlIGFib3V0IGludmFyaWFudCdzIG93biBmcmFtZVxuICAgIHRocm93IGVycm9yO1xuICB9XG59XG5cbmZ1bmN0aW9uIHNoYWxsb3dDb3B5KHgpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoeCkpIHtcbiAgICByZXR1cm4geC5jb25jYXQoKTtcbiAgfSBlbHNlIGlmICh4ICYmIHR5cGVvZiB4ID09PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBfYXNzaWduKG5ldyB4LmNvbnN0cnVjdG9yKCksIHgpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB4O1xuICB9XG59XG5cbnZhciBDT01NQU5EX1BVU0ggPSAnJHB1c2gnO1xudmFyIENPTU1BTkRfVU5TSElGVCA9ICckdW5zaGlmdCc7XG52YXIgQ09NTUFORF9TUExJQ0UgPSAnJHNwbGljZSc7XG52YXIgQ09NTUFORF9TRVQgPSAnJHNldCc7XG52YXIgQ09NTUFORF9NRVJHRSA9ICckbWVyZ2UnO1xudmFyIENPTU1BTkRfQVBQTFkgPSAnJGFwcGx5JztcblxudmFyIEFMTF9DT01NQU5EU19MSVNUID0gW1xuICBDT01NQU5EX1BVU0gsXG4gIENPTU1BTkRfVU5TSElGVCxcbiAgQ09NTUFORF9TUExJQ0UsXG4gIENPTU1BTkRfU0VULFxuICBDT01NQU5EX01FUkdFLFxuICBDT01NQU5EX0FQUExZXG5dO1xuXG52YXIgQUxMX0NPTU1BTkRTX1NFVCA9IHt9O1xuXG5BTExfQ09NTUFORFNfTElTVC5mb3JFYWNoKGZ1bmN0aW9uKGNvbW1hbmQpIHtcbiAgQUxMX0NPTU1BTkRTX1NFVFtjb21tYW5kXSA9IHRydWU7XG59KTtcblxuZnVuY3Rpb24gaW52YXJpYW50QXJyYXlDYXNlKHZhbHVlLCBzcGVjLCBjb21tYW5kKSB7XG4gIGludmFyaWFudChcbiAgICBBcnJheS5pc0FycmF5KHZhbHVlKSxcbiAgICAndXBkYXRlKCk6IGV4cGVjdGVkIHRhcmdldCBvZiAlcyB0byBiZSBhbiBhcnJheTsgZ290ICVzLicsXG4gICAgY29tbWFuZCxcbiAgICB2YWx1ZVxuICApO1xuICB2YXIgc3BlY1ZhbHVlID0gc3BlY1tjb21tYW5kXTtcbiAgaW52YXJpYW50KFxuICAgIEFycmF5LmlzQXJyYXkoc3BlY1ZhbHVlKSxcbiAgICAndXBkYXRlKCk6IGV4cGVjdGVkIHNwZWMgb2YgJXMgdG8gYmUgYW4gYXJyYXk7IGdvdCAlcy4gJyArXG4gICAgICAnRGlkIHlvdSBmb3JnZXQgdG8gd3JhcCB5b3VyIHBhcmFtZXRlciBpbiBhbiBhcnJheT8nLFxuICAgIGNvbW1hbmQsXG4gICAgc3BlY1ZhbHVlXG4gICk7XG59XG5cbi8qKlxuICogUmV0dXJucyBhIHVwZGF0ZWQgc2hhbGxvdyBjb3B5IG9mIGFuIG9iamVjdCB3aXRob3V0IG11dGF0aW5nIHRoZSBvcmlnaW5hbC5cbiAqIFNlZSBodHRwczovL2ZhY2Vib29rLmdpdGh1Yi5pby9yZWFjdC9kb2NzL3VwZGF0ZS5odG1sIGZvciBkZXRhaWxzLlxuICovXG5mdW5jdGlvbiB1cGRhdGUodmFsdWUsIHNwZWMpIHtcbiAgaW52YXJpYW50KFxuICAgIHR5cGVvZiBzcGVjID09PSAnb2JqZWN0JyxcbiAgICAndXBkYXRlKCk6IFlvdSBwcm92aWRlZCBhIGtleSBwYXRoIHRvIHVwZGF0ZSgpIHRoYXQgZGlkIG5vdCBjb250YWluIG9uZSAnICtcbiAgICAgICdvZiAlcy4gRGlkIHlvdSBmb3JnZXQgdG8gaW5jbHVkZSB7JXM6IC4uLn0/JyxcbiAgICBBTExfQ09NTUFORFNfTElTVC5qb2luKCcsICcpLFxuICAgIENPTU1BTkRfU0VUXG4gICk7XG5cbiAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoc3BlYywgQ09NTUFORF9TRVQpKSB7XG4gICAgaW52YXJpYW50KFxuICAgICAgT2JqZWN0LmtleXMoc3BlYykubGVuZ3RoID09PSAxLFxuICAgICAgJ0Nhbm5vdCBoYXZlIG1vcmUgdGhhbiBvbmUga2V5IGluIGFuIG9iamVjdCB3aXRoICVzJyxcbiAgICAgIENPTU1BTkRfU0VUXG4gICAgKTtcblxuICAgIHJldHVybiBzcGVjW0NPTU1BTkRfU0VUXTtcbiAgfVxuXG4gIHZhciBuZXh0VmFsdWUgPSBzaGFsbG93Q29weSh2YWx1ZSk7XG5cbiAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoc3BlYywgQ09NTUFORF9NRVJHRSkpIHtcbiAgICB2YXIgbWVyZ2VPYmogPSBzcGVjW0NPTU1BTkRfTUVSR0VdO1xuICAgIGludmFyaWFudChcbiAgICAgIG1lcmdlT2JqICYmIHR5cGVvZiBtZXJnZU9iaiA9PT0gJ29iamVjdCcsXG4gICAgICBcInVwZGF0ZSgpOiAlcyBleHBlY3RzIGEgc3BlYyBvZiB0eXBlICdvYmplY3QnOyBnb3QgJXNcIixcbiAgICAgIENPTU1BTkRfTUVSR0UsXG4gICAgICBtZXJnZU9ialxuICAgICk7XG4gICAgaW52YXJpYW50KFxuICAgICAgbmV4dFZhbHVlICYmIHR5cGVvZiBuZXh0VmFsdWUgPT09ICdvYmplY3QnLFxuICAgICAgXCJ1cGRhdGUoKTogJXMgZXhwZWN0cyBhIHRhcmdldCBvZiB0eXBlICdvYmplY3QnOyBnb3QgJXNcIixcbiAgICAgIENPTU1BTkRfTUVSR0UsXG4gICAgICBuZXh0VmFsdWVcbiAgICApO1xuICAgIF9hc3NpZ24obmV4dFZhbHVlLCBzcGVjW0NPTU1BTkRfTUVSR0VdKTtcbiAgfVxuXG4gIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHNwZWMsIENPTU1BTkRfUFVTSCkpIHtcbiAgICBpbnZhcmlhbnRBcnJheUNhc2UodmFsdWUsIHNwZWMsIENPTU1BTkRfUFVTSCk7XG4gICAgc3BlY1tDT01NQU5EX1BVU0hdLmZvckVhY2goZnVuY3Rpb24oaXRlbSkge1xuICAgICAgbmV4dFZhbHVlLnB1c2goaXRlbSk7XG4gICAgfSk7XG4gIH1cblxuICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChzcGVjLCBDT01NQU5EX1VOU0hJRlQpKSB7XG4gICAgaW52YXJpYW50QXJyYXlDYXNlKHZhbHVlLCBzcGVjLCBDT01NQU5EX1VOU0hJRlQpO1xuICAgIHNwZWNbQ09NTUFORF9VTlNISUZUXS5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0pIHtcbiAgICAgIG5leHRWYWx1ZS51bnNoaWZ0KGl0ZW0pO1xuICAgIH0pO1xuICB9XG5cbiAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoc3BlYywgQ09NTUFORF9TUExJQ0UpKSB7XG4gICAgaW52YXJpYW50KFxuICAgICAgQXJyYXkuaXNBcnJheSh2YWx1ZSksXG4gICAgICAnRXhwZWN0ZWQgJXMgdGFyZ2V0IHRvIGJlIGFuIGFycmF5OyBnb3QgJXMnLFxuICAgICAgQ09NTUFORF9TUExJQ0UsXG4gICAgICB2YWx1ZVxuICAgICk7XG4gICAgaW52YXJpYW50KFxuICAgICAgQXJyYXkuaXNBcnJheShzcGVjW0NPTU1BTkRfU1BMSUNFXSksXG4gICAgICAndXBkYXRlKCk6IGV4cGVjdGVkIHNwZWMgb2YgJXMgdG8gYmUgYW4gYXJyYXkgb2YgYXJyYXlzOyBnb3QgJXMuICcgK1xuICAgICAgICAnRGlkIHlvdSBmb3JnZXQgdG8gd3JhcCB5b3VyIHBhcmFtZXRlcnMgaW4gYW4gYXJyYXk/JyxcbiAgICAgIENPTU1BTkRfU1BMSUNFLFxuICAgICAgc3BlY1tDT01NQU5EX1NQTElDRV1cbiAgICApO1xuICAgIHNwZWNbQ09NTUFORF9TUExJQ0VdLmZvckVhY2goZnVuY3Rpb24oYXJncykge1xuICAgICAgaW52YXJpYW50KFxuICAgICAgICBBcnJheS5pc0FycmF5KGFyZ3MpLFxuICAgICAgICAndXBkYXRlKCk6IGV4cGVjdGVkIHNwZWMgb2YgJXMgdG8gYmUgYW4gYXJyYXkgb2YgYXJyYXlzOyBnb3QgJXMuICcgK1xuICAgICAgICAgICdEaWQgeW91IGZvcmdldCB0byB3cmFwIHlvdXIgcGFyYW1ldGVycyBpbiBhbiBhcnJheT8nLFxuICAgICAgICBDT01NQU5EX1NQTElDRSxcbiAgICAgICAgc3BlY1tDT01NQU5EX1NQTElDRV1cbiAgICAgICk7XG4gICAgICBuZXh0VmFsdWUuc3BsaWNlLmFwcGx5KG5leHRWYWx1ZSwgYXJncyk7XG4gICAgfSk7XG4gIH1cblxuICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChzcGVjLCBDT01NQU5EX0FQUExZKSkge1xuICAgIGludmFyaWFudChcbiAgICAgIHR5cGVvZiBzcGVjW0NPTU1BTkRfQVBQTFldID09PSAnZnVuY3Rpb24nLFxuICAgICAgJ3VwZGF0ZSgpOiBleHBlY3RlZCBzcGVjIG9mICVzIHRvIGJlIGEgZnVuY3Rpb247IGdvdCAlcy4nLFxuICAgICAgQ09NTUFORF9BUFBMWSxcbiAgICAgIHNwZWNbQ09NTUFORF9BUFBMWV1cbiAgICApO1xuICAgIG5leHRWYWx1ZSA9IHNwZWNbQ09NTUFORF9BUFBMWV0obmV4dFZhbHVlKTtcbiAgfVxuXG4gIGZvciAodmFyIGsgaW4gc3BlYykge1xuICAgIGlmICghKEFMTF9DT01NQU5EU19TRVQuaGFzT3duUHJvcGVydHkoaykgJiYgQUxMX0NPTU1BTkRTX1NFVFtrXSkpIHtcbiAgICAgIG5leHRWYWx1ZVtrXSA9IHVwZGF0ZSh2YWx1ZVtrXSwgc3BlY1trXSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5leHRWYWx1ZTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB1cGRhdGU7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-addons-update/index.js\n"); + +/***/ }), + +/***/ "./node_modules/react-dom/cjs/react-dom.development.js": +/*!*************************************************************!*\ + !*** ./node_modules/react-dom/cjs/react-dom.development.js ***! + \*************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("/**\n * @license React\n * react-dom.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nif (true) {\n (function() {\n\n 'use strict';\n\n/* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\nif (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart ===\n 'function'\n) {\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());\n}\n var React = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\nvar Scheduler = __webpack_require__(/*! scheduler */ \"./node_modules/scheduler/index.js\");\n\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\nvar suppressWarning = false;\nfunction setSuppressWarning(newSuppressWarning) {\n {\n suppressWarning = newSuppressWarning;\n }\n} // In DEV, calls to console.warn and console.error get replaced\n// by calls to these methods by a Babel plugin.\n//\n// In PROD (or in packages without access to React internals),\n// they are left as they are instead.\n\nfunction warn(format) {\n {\n if (!suppressWarning) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n printWarning('warn', format, args);\n }\n }\n}\nfunction error(format) {\n {\n if (!suppressWarning) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n printWarning('error', format, args);\n }\n }\n}\n\nfunction printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n } // eslint-disable-next-line react-internal/safe-string-coercion\n\n\n var argsWithFormat = args.map(function (item) {\n return String(item);\n }); // Careful: RN currently depends on this prefix\n\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n}\n\nvar FunctionComponent = 0;\nvar ClassComponent = 1;\nvar IndeterminateComponent = 2; // Before we know whether it is function or class\n\nvar HostRoot = 3; // Root of a host tree. Could be nested inside another node.\n\nvar HostPortal = 4; // A subtree. Could be an entry point to a different renderer.\n\nvar HostComponent = 5;\nvar HostText = 6;\nvar Fragment = 7;\nvar Mode = 8;\nvar ContextConsumer = 9;\nvar ContextProvider = 10;\nvar ForwardRef = 11;\nvar Profiler = 12;\nvar SuspenseComponent = 13;\nvar MemoComponent = 14;\nvar SimpleMemoComponent = 15;\nvar LazyComponent = 16;\nvar IncompleteClassComponent = 17;\nvar DehydratedFragment = 18;\nvar SuspenseListComponent = 19;\nvar ScopeComponent = 21;\nvar OffscreenComponent = 22;\nvar LegacyHiddenComponent = 23;\nvar CacheComponent = 24;\nvar TracingMarkerComponent = 25;\n\n// -----------------------------------------------------------------------------\n\nvar enableClientRenderFallbackOnTextMismatch = true; // TODO: Need to review this code one more time before landing\n// the react-reconciler package.\n\nvar enableNewReconciler = false; // Support legacy Primer support on internal FB www\n\nvar enableLazyContextPropagation = false; // FB-only usage. The new API has different semantics.\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n\nvar enableSuspenseAvoidThisFallback = false; // Enables unstable_avoidThisFallback feature in Fizz\n// React DOM Chopping Block\n//\n// Similar to main Chopping Block but only flags related to React DOM. These are\n// grouped because we will likely batch all of them into a single major release.\n// -----------------------------------------------------------------------------\n// Disable support for comment nodes as React DOM containers. Already disabled\n// in open source, but www codebase still relies on it. Need to remove.\n\nvar disableCommentsAsDOMContainers = true; // Disable javascript: URL strings in href for XSS protection.\n// and client rendering, mostly to allow JSX attributes to apply to the custom\n// element's object properties instead of only HTML attributes.\n// https://github.com/facebook/react/issues/11347\n\nvar enableCustomElementPropertySupport = false; // Disables children for