From 72c8b4774c28c5357d2923f206411e25bb2afad3 Mon Sep 17 00:00:00 2001 From: ddave Date: Fri, 16 Jul 2021 08:17:30 +0200 Subject: [PATCH] Adding the action manager for the extension --- extensions/invoices/dist/invoices.js | 99 +++++++++++++++---- extensions/invoices/dist/invoices.js.map | 2 +- extensions/invoices/invoices.php | 1 + extensions/invoices/meta.json | 1 + .../src/Invoices/InvoicePDFBuilder.php | 2 - extensions/invoices/src/Invoices/Manager.php | 15 +++ extensions/invoices/web/js/lib.js | 77 +++++++++++++-- 7 files changed, 168 insertions(+), 29 deletions(-) create mode 100644 extensions/invoices/src/Invoices/Manager.php diff --git a/extensions/invoices/dist/invoices.js b/extensions/invoices/dist/invoices.js index a0fdf547..68f989ed 100644 --- a/extensions/invoices/dist/invoices.js +++ b/extensions/invoices/dist/invoices.js @@ -22,8 +22,16 @@ window.initAdminInvoices = init; },{"../../../../web/api/IceDataPipe":8,"./lib":2}],2:[function(require,module,exports){ "use strict"; +var _react = _interopRequireDefault(require("react")); + +var _reactDom = _interopRequireDefault(require("react-dom")); + +var _antd = require("antd"); + var _ReactModalAdapterBase = _interopRequireDefault(require("../../../../web/api/ReactModalAdapterBase")); +var _icons = require("@ant-design/icons"); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } @@ -64,14 +72,6 @@ var InvoiceAdapter = /*#__PURE__*/function (_ReactModalAdapterBas) { _createClass(InvoiceAdapter, [{ key: "getDataMapping", - - /*constructor(endPoint, tab, filter, orderBy) { - super(endPoint, tab, filter, orderBy); - this.fieldNameMap = {}; - this.hiddenFields = {}; - this.tableFields = {}; - this.formOnlyFields = {}; - }*/ value: function getDataMapping() { return ['id', 'paymentId', 'invoiceId', 'description', 'buyerName', 'buyerAddress', 'buyerPostalAddress', 'buyerVatId', 'buyerEmail', 'sellerName', 'sellerAddress', 'sellerVatId', 'amount', 'vat', 'vatRate', 'issuedDate', 'dueDate', 'paidDate', 'status', 'acceptPayments', 'created', 'updated', 'link', 'paymentLink']; } @@ -298,13 +298,78 @@ var InvoiceAdapter = /*#__PURE__*/function (_ReactModalAdapterBas) { sorter: true }]; } - /* getActionButtonsHtml(id, data) { - let html = '
'; - html = html.replace(/_id_/g, id); - html = html.replace(/_BASE_/g, this.baseUrl); - return html; - }*/ - + }, { + key: "getTableActionButtonJsx", + value: function getTableActionButtonJsx(adapter) { + return function (text, record) { + return /*#__PURE__*/_react["default"].createElement(_antd.Space, { + size: "middle" + }, adapter.hasAccess('save') && adapter.showEdit && /*#__PURE__*/_react["default"].createElement(_antd.Tag, { + color: "green", + onClick: function onClick() { + return modJs.edit(record.id); + }, + style: { + cursor: 'pointer' + } + }, /*#__PURE__*/_react["default"].createElement(_icons.EditOutlined, null), " ".concat(adapter.gt('Edit'))), adapter.hasAccess('element') && /*#__PURE__*/_react["default"].createElement(_antd.Tag, { + color: "blue", + onClick: function onClick() { + return modJs.viewElement(record.id); + }, + style: { + cursor: 'pointer' + } + }, /*#__PURE__*/_react["default"].createElement(_icons.MonitorOutlined, null), " ".concat(adapter.gt('View'))), adapter.hasAccess('delete') && adapter.showDelete && /*#__PURE__*/_react["default"].createElement(_antd.Tag, { + color: "volcano", + onClick: function onClick() { + return modJs.deleteRow(record.id); + }, + style: { + cursor: 'pointer' + } + }, /*#__PURE__*/_react["default"].createElement(_icons.DeleteOutlined, null), " ".concat(adapter.gt('Delete'))), adapter.hasAccess('save') && /*#__PURE__*/_react["default"].createElement(_antd.Tag, { + color: "cyan", + onClick: function onClick() { + return modJs.copyRow(record.id); + }, + style: { + cursor: 'pointer' + } + }, /*#__PURE__*/_react["default"].createElement(_icons.CopyOutlined, null), " ".concat(adapter.gt('Copy'))), /*#__PURE__*/_react["default"].createElement(_antd.Tag, { + color: "green", + onClick: function onClick() { + return modJs.printInvoice(record.id); + }, + style: { + cursor: 'pointer' + } + }, /*#__PURE__*/_react["default"].createElement(_icons.PrinterOutlined, null), " ".concat(adapter.gt('Print')))); + }; + } + }, { + key: "printInvoice", + value: function printInvoice(id) { + var params = {}; + params.id = id; + var reqJson = JSON.stringify(params); + var callBackData = []; + callBackData.callBackData = []; + callBackData.callBackSuccess = 'printInvoiceSuccessCallback'; + callBackData.callBackFail = 'printInvoiceFailCallback'; + this.customAction('printInvoice', 'extension=invoices', reqJson, callBackData); + } + }, { + key: "printInvoiceSuccessCallback", + value: function printInvoiceSuccessCallback(callBackData) { + this.showMessage('Success', 'Printing Done'); + this.get([]); + } + }, { + key: "printInvoiceFailCallback", + value: function printInvoiceFailCallback(callBackData) { + this.showMessage('Error', callBackData); + } }]); return InvoiceAdapter; @@ -314,7 +379,7 @@ module.exports = { InvoiceAdapter: InvoiceAdapter }; -},{"../../../../web/api/ReactModalAdapterBase":11}],3:[function(require,module,exports){ +},{"../../../../web/api/ReactModalAdapterBase":11,"@ant-design/icons":"@ant-design/icons","antd":"antd","react":"react","react-dom":"react-dom"}],3:[function(require,module,exports){ // shim for using process in browser var process = module.exports = {}; @@ -3106,7 +3171,7 @@ var ModuleBase = /*#__PURE__*/function () { } } }catch(e){ - } + } return null; } */ diff --git a/extensions/invoices/dist/invoices.js.map b/extensions/invoices/dist/invoices.js.map index ae563e93..28051495 100644 --- a/extensions/invoices/dist/invoices.js.map +++ b/extensions/invoices/dist/invoices.js.map @@ -1 +1 @@ -{"version":3,"sources":["node_modules/browser-pack/_prelude.js","extensions/invoices/web/js/index.js","extensions/invoices/web/js/lib.js","node_modules/process/browser.js","web/api-common/RequestCache.js","web/api/AdapterBase.js","web/api/FormValidation.js","web/api/IceApiClient.js","web/api/IceDataPipe.js","web/api/MasterDataReader.js","web/api/ModuleBase.js","web/api/ReactModalAdapterBase.js","web/components/IceColorPick.js","web/components/IceDataGroup.js","web/components/IceForm.js","web/components/IceFormModal.js","web/components/IceLabel.js","web/components/IceSelect.js","web/components/IceSignature.js","web/components/IceStepForm.js","web/components/IceStepFromModal.js","web/components/IceTable.js","web/components/IceUpload.js","web/node_modules/@icons/material/CheckIcon.js","web/node_modules/@icons/material/UnfoldMoreHorizontalIcon.js","web/node_modules/axios/index.js","web/node_modules/axios/lib/adapters/xhr.js","web/node_modules/axios/lib/axios.js","web/node_modules/axios/lib/cancel/Cancel.js","web/node_modules/axios/lib/cancel/CancelToken.js","web/node_modules/axios/lib/cancel/isCancel.js","web/node_modules/axios/lib/core/Axios.js","web/node_modules/axios/lib/core/InterceptorManager.js","web/node_modules/axios/lib/core/buildFullPath.js","web/node_modules/axios/lib/core/createError.js","web/node_modules/axios/lib/core/dispatchRequest.js","web/node_modules/axios/lib/core/enhanceError.js","web/node_modules/axios/lib/core/mergeConfig.js","web/node_modules/axios/lib/core/settle.js","web/node_modules/axios/lib/core/transformData.js","web/node_modules/axios/lib/defaults.js","web/node_modules/axios/lib/helpers/bind.js","web/node_modules/axios/lib/helpers/buildURL.js","web/node_modules/axios/lib/helpers/combineURLs.js","web/node_modules/axios/lib/helpers/cookies.js","web/node_modules/axios/lib/helpers/isAbsoluteURL.js","web/node_modules/axios/lib/helpers/isURLSameOrigin.js","web/node_modules/axios/lib/helpers/normalizeHeaderName.js","web/node_modules/axios/lib/helpers/parseHeaders.js","web/node_modules/axios/lib/helpers/spread.js","web/node_modules/axios/lib/utils.js","web/node_modules/lodash/_DataView.js","web/node_modules/lodash/_Hash.js","web/node_modules/lodash/_ListCache.js","web/node_modules/lodash/_Map.js","web/node_modules/lodash/_MapCache.js","web/node_modules/lodash/_Promise.js","web/node_modules/lodash/_Set.js","web/node_modules/lodash/_SetCache.js","web/node_modules/lodash/_Stack.js","web/node_modules/lodash/_Symbol.js","web/node_modules/lodash/_Uint8Array.js","web/node_modules/lodash/_WeakMap.js","web/node_modules/lodash/_apply.js","web/node_modules/lodash/_arrayEach.js","web/node_modules/lodash/_arrayFilter.js","web/node_modules/lodash/_arrayLikeKeys.js","web/node_modules/lodash/_arrayMap.js","web/node_modules/lodash/_arrayPush.js","web/node_modules/lodash/_arraySome.js","web/node_modules/lodash/_assignMergeValue.js","web/node_modules/lodash/_assignValue.js","web/node_modules/lodash/_assocIndexOf.js","web/node_modules/lodash/_baseAssign.js","web/node_modules/lodash/_baseAssignIn.js","web/node_modules/lodash/_baseAssignValue.js","web/node_modules/lodash/_baseClone.js","web/node_modules/lodash/_baseCreate.js","web/node_modules/lodash/_baseEach.js","web/node_modules/lodash/_baseFor.js","web/node_modules/lodash/_baseForOwn.js","web/node_modules/lodash/_baseGet.js","web/node_modules/lodash/_baseGetAllKeys.js","web/node_modules/lodash/_baseGetTag.js","web/node_modules/lodash/_baseHasIn.js","web/node_modules/lodash/_baseIsArguments.js","web/node_modules/lodash/_baseIsEqual.js","web/node_modules/lodash/_baseIsEqualDeep.js","web/node_modules/lodash/_baseIsMap.js","web/node_modules/lodash/_baseIsMatch.js","web/node_modules/lodash/_baseIsNative.js","web/node_modules/lodash/_baseIsSet.js","web/node_modules/lodash/_baseIsTypedArray.js","web/node_modules/lodash/_baseIteratee.js","web/node_modules/lodash/_baseKeys.js","web/node_modules/lodash/_baseKeysIn.js","web/node_modules/lodash/_baseMap.js","web/node_modules/lodash/_baseMatches.js","web/node_modules/lodash/_baseMatchesProperty.js","web/node_modules/lodash/_baseMerge.js","web/node_modules/lodash/_baseMergeDeep.js","web/node_modules/lodash/_baseProperty.js","web/node_modules/lodash/_basePropertyDeep.js","web/node_modules/lodash/_baseRest.js","web/node_modules/lodash/_baseSetToString.js","web/node_modules/lodash/_baseTimes.js","web/node_modules/lodash/_baseToString.js","web/node_modules/lodash/_baseUnary.js","web/node_modules/lodash/_cacheHas.js","web/node_modules/lodash/_castFunction.js","web/node_modules/lodash/_castPath.js","web/node_modules/lodash/_cloneArrayBuffer.js","web/node_modules/lodash/_cloneBuffer.js","web/node_modules/lodash/_cloneDataView.js","web/node_modules/lodash/_cloneRegExp.js","web/node_modules/lodash/_cloneSymbol.js","web/node_modules/lodash/_cloneTypedArray.js","web/node_modules/lodash/_copyArray.js","web/node_modules/lodash/_copyObject.js","web/node_modules/lodash/_copySymbols.js","web/node_modules/lodash/_copySymbolsIn.js","web/node_modules/lodash/_coreJsData.js","web/node_modules/lodash/_createAssigner.js","web/node_modules/lodash/_createBaseEach.js","web/node_modules/lodash/_createBaseFor.js","web/node_modules/lodash/_defineProperty.js","web/node_modules/lodash/_equalArrays.js","web/node_modules/lodash/_equalByTag.js","web/node_modules/lodash/_equalObjects.js","web/node_modules/lodash/_freeGlobal.js","web/node_modules/lodash/_getAllKeys.js","web/node_modules/lodash/_getAllKeysIn.js","web/node_modules/lodash/_getMapData.js","web/node_modules/lodash/_getMatchData.js","web/node_modules/lodash/_getNative.js","web/node_modules/lodash/_getPrototype.js","web/node_modules/lodash/_getRawTag.js","web/node_modules/lodash/_getSymbols.js","web/node_modules/lodash/_getSymbolsIn.js","web/node_modules/lodash/_getTag.js","web/node_modules/lodash/_getValue.js","web/node_modules/lodash/_hasPath.js","web/node_modules/lodash/_hashClear.js","web/node_modules/lodash/_hashDelete.js","web/node_modules/lodash/_hashGet.js","web/node_modules/lodash/_hashHas.js","web/node_modules/lodash/_hashSet.js","web/node_modules/lodash/_initCloneArray.js","web/node_modules/lodash/_initCloneByTag.js","web/node_modules/lodash/_initCloneObject.js","web/node_modules/lodash/_isIndex.js","web/node_modules/lodash/_isIterateeCall.js","web/node_modules/lodash/_isKey.js","web/node_modules/lodash/_isKeyable.js","web/node_modules/lodash/_isMasked.js","web/node_modules/lodash/_isPrototype.js","web/node_modules/lodash/_isStrictComparable.js","web/node_modules/lodash/_listCacheClear.js","web/node_modules/lodash/_listCacheDelete.js","web/node_modules/lodash/_listCacheGet.js","web/node_modules/lodash/_listCacheHas.js","web/node_modules/lodash/_listCacheSet.js","web/node_modules/lodash/_mapCacheClear.js","web/node_modules/lodash/_mapCacheDelete.js","web/node_modules/lodash/_mapCacheGet.js","web/node_modules/lodash/_mapCacheHas.js","web/node_modules/lodash/_mapCacheSet.js","web/node_modules/lodash/_mapToArray.js","web/node_modules/lodash/_matchesStrictComparable.js","web/node_modules/lodash/_memoizeCapped.js","web/node_modules/lodash/_nativeCreate.js","web/node_modules/lodash/_nativeKeys.js","web/node_modules/lodash/_nativeKeysIn.js","web/node_modules/lodash/_nodeUtil.js","web/node_modules/lodash/_objectToString.js","web/node_modules/lodash/_overArg.js","web/node_modules/lodash/_overRest.js","web/node_modules/lodash/_root.js","web/node_modules/lodash/_safeGet.js","web/node_modules/lodash/_setCacheAdd.js","web/node_modules/lodash/_setCacheHas.js","web/node_modules/lodash/_setToArray.js","web/node_modules/lodash/_setToString.js","web/node_modules/lodash/_shortOut.js","web/node_modules/lodash/_stackClear.js","web/node_modules/lodash/_stackDelete.js","web/node_modules/lodash/_stackGet.js","web/node_modules/lodash/_stackHas.js","web/node_modules/lodash/_stackSet.js","web/node_modules/lodash/_stringToPath.js","web/node_modules/lodash/_toKey.js","web/node_modules/lodash/_toSource.js","web/node_modules/lodash/cloneDeep.js","web/node_modules/lodash/constant.js","web/node_modules/lodash/debounce.js","web/node_modules/lodash/each.js","web/node_modules/lodash/eq.js","web/node_modules/lodash/forEach.js","web/node_modules/lodash/forOwn.js","web/node_modules/lodash/get.js","web/node_modules/lodash/hasIn.js","web/node_modules/lodash/identity.js","web/node_modules/lodash/isArguments.js","web/node_modules/lodash/isArray.js","web/node_modules/lodash/isArrayLike.js","web/node_modules/lodash/isArrayLikeObject.js","web/node_modules/lodash/isBuffer.js","web/node_modules/lodash/isFunction.js","web/node_modules/lodash/isLength.js","web/node_modules/lodash/isMap.js","web/node_modules/lodash/isObject.js","web/node_modules/lodash/isObjectLike.js","web/node_modules/lodash/isPlainObject.js","web/node_modules/lodash/isSet.js","web/node_modules/lodash/isString.js","web/node_modules/lodash/isSymbol.js","web/node_modules/lodash/isTypedArray.js","web/node_modules/lodash/isUndefined.js","web/node_modules/lodash/keys.js","web/node_modules/lodash/keysIn.js","web/node_modules/lodash/map.js","web/node_modules/lodash/memoize.js","web/node_modules/lodash/merge.js","web/node_modules/lodash/now.js","web/node_modules/lodash/property.js","web/node_modules/lodash/stubArray.js","web/node_modules/lodash/stubFalse.js","web/node_modules/lodash/throttle.js","web/node_modules/lodash/toNumber.js","web/node_modules/lodash/toPlainObject.js","web/node_modules/lodash/toString.js","web/node_modules/material-colors/dist/colors.js","web/node_modules/object-assign/index.js","web/node_modules/prop-types/checkPropTypes.js","web/node_modules/prop-types/factoryWithThrowingShims.js","web/node_modules/prop-types/factoryWithTypeCheckers.js","web/node_modules/prop-types/index.js","web/node_modules/prop-types/lib/ReactPropTypesSecret.js","web/node_modules/react-color/lib/components/alpha/Alpha.js","web/node_modules/react-color/lib/components/alpha/AlphaPointer.js","web/node_modules/react-color/lib/components/block/Block.js","web/node_modules/react-color/lib/components/block/BlockSwatches.js","web/node_modules/react-color/lib/components/chrome/Chrome.js","web/node_modules/react-color/lib/components/chrome/ChromeFields.js","web/node_modules/react-color/lib/components/chrome/ChromePointer.js","web/node_modules/react-color/lib/components/chrome/ChromePointerCircle.js","web/node_modules/react-color/lib/components/circle/Circle.js","web/node_modules/react-color/lib/components/circle/CircleSwatch.js","web/node_modules/react-color/lib/components/common/Alpha.js","web/node_modules/react-color/lib/components/common/Checkboard.js","web/node_modules/react-color/lib/components/common/ColorWrap.js","web/node_modules/react-color/lib/components/common/EditableInput.js","web/node_modules/react-color/lib/components/common/Hue.js","web/node_modules/react-color/lib/components/common/Raised.js","web/node_modules/react-color/lib/components/common/Saturation.js","web/node_modules/react-color/lib/components/common/Swatch.js","web/node_modules/react-color/lib/components/common/index.js","web/node_modules/react-color/lib/components/compact/Compact.js","web/node_modules/react-color/lib/components/compact/CompactColor.js","web/node_modules/react-color/lib/components/compact/CompactFields.js","web/node_modules/react-color/lib/components/github/Github.js","web/node_modules/react-color/lib/components/github/GithubSwatch.js","web/node_modules/react-color/lib/components/google/Google.js","web/node_modules/react-color/lib/components/google/GoogleFields.js","web/node_modules/react-color/lib/components/google/GooglePointer.js","web/node_modules/react-color/lib/components/google/GooglePointerCircle.js","web/node_modules/react-color/lib/components/hue/Hue.js","web/node_modules/react-color/lib/components/hue/HuePointer.js","web/node_modules/react-color/lib/components/material/Material.js","web/node_modules/react-color/lib/components/photoshop/Photoshop.js","web/node_modules/react-color/lib/components/photoshop/PhotoshopButton.js","web/node_modules/react-color/lib/components/photoshop/PhotoshopFields.js","web/node_modules/react-color/lib/components/photoshop/PhotoshopPointer.js","web/node_modules/react-color/lib/components/photoshop/PhotoshopPointerCircle.js","web/node_modules/react-color/lib/components/photoshop/PhotoshopPreviews.js","web/node_modules/react-color/lib/components/sketch/Sketch.js","web/node_modules/react-color/lib/components/sketch/SketchFields.js","web/node_modules/react-color/lib/components/sketch/SketchPresetColors.js","web/node_modules/react-color/lib/components/slider/Slider.js","web/node_modules/react-color/lib/components/slider/SliderPointer.js","web/node_modules/react-color/lib/components/slider/SliderSwatch.js","web/node_modules/react-color/lib/components/slider/SliderSwatches.js","web/node_modules/react-color/lib/components/swatches/Swatches.js","web/node_modules/react-color/lib/components/swatches/SwatchesColor.js","web/node_modules/react-color/lib/components/swatches/SwatchesGroup.js","web/node_modules/react-color/lib/components/twitter/Twitter.js","web/node_modules/react-color/lib/helpers/alpha.js","web/node_modules/react-color/lib/helpers/checkboard.js","web/node_modules/react-color/lib/helpers/color.js","web/node_modules/react-color/lib/helpers/hue.js","web/node_modules/react-color/lib/helpers/interaction.js","web/node_modules/react-color/lib/helpers/saturation.js","web/node_modules/react-color/lib/index.js","web/node_modules/react-is/cjs/react-is.development.js","web/node_modules/react-is/cjs/react-is.production.min.js","web/node_modules/react-is/index.js","web/node_modules/react-signature-canvas/build/index.js","web/node_modules/reactcss/lib/autoprefix.js","web/node_modules/reactcss/lib/components/active.js","web/node_modules/reactcss/lib/components/hover.js","web/node_modules/reactcss/lib/flattenNames.js","web/node_modules/reactcss/lib/index.js","web/node_modules/reactcss/lib/loop.js","web/node_modules/reactcss/lib/mergeClasses.js","web/node_modules/signature_pad/dist/signature_pad.js","web/node_modules/tinycolor2/tinycolor.js","web/node_modules/trim-canvas/build/index.js"],"names":[],"mappings":"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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACxLA;;;;;AAKA;;;IAIM,a;AACJ,2BAAc;AAAA;;AACZ,SAAK,IAAL,GAAY,EAAZ;AACD;;;;4BAEO,G,EAAK;AACX,aAAO,KAAK,IAAL,CAAU,GAAV,CAAP;AACD;;;4BAEO,G,EAAK,I,EAAM;AACjB,WAAK,IAAL,CAAU,GAAV,IAAiB,IAAjB;AACD;;;sCAEiB,M,EAAQ;AACxB,UAAM,IAAI,GAAG,MAAM,CAAC,IAAP,CAAY,KAAK,IAAjB,CAAb;;AACA,WAAK,IAAI,CAAC,GAAG,CAAb,EAAgB,CAAC,GAAG,IAAI,CAAC,MAAzB,EAAiC,CAAC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AC,MAAb;AAAoB,QAAA,QAAQ,EAAC,QAA7B;AAAsC,QAAA,OAAO,EAAE,KAAK;AAApD,sBACE,gCAAC,uBAAD,OADF,eAFF,EAMK,CAAE,KAAK,KAAL,CAAW,KAAX,IAAoB,IAApB,IAA4B,KAAK,KAAL,CAAW,KAAX,KAAqB,EAAlD,IAA0D,KAAK,KAAL,CAAW,KAAX,IAAoB,IAApB,IAA4B,KAAK,KAAL,CAAW,KAAX,KAAqB,EAA5G,KAAoH,CAAC,KAAK,KAAL,CAAW,QAAhI,IAA4I,CAAC,KAAK,KAAL,CAAW,QAAzJ,iBACF,gCAAC,YAAD;AAAQ,QAAA,IAAI,EAAC,MAAb;AAAoB,QAAA,QAAQ,EAAC,QAA7B;AAAsC,QAAA,MAAM,MAA5C;AAA6C,QAAA,OAAO,EAAE,KAAK;AAA3D,sBACE,gCAAC,qBAAD,OADF,YAPF,CAZF,CADF;AA4BD;;;;EArJqB,kBAAM,S;;eAwJf,S;;;;AC5Jf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrCA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzDA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AClGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/VA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC1FA;AACA;AACA;AACA;AACA;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/LA;AACA;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC1FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;ACtGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AC/kBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1WA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AClJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;ACrLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;ACPA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClmBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3qCA","file":"invoices.js","sourcesContent":["(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i
#_delete_##_edit_#Date: #_date_#
#_note_#
',\r\n validation: 'none',\r\n columns: [\r\n {\r\n title: 'Description',\r\n dataIndex: 'description',\r\n key: 'description',\r\n },\r\n {\r\n title: 'Rate',\r\n dataIndex: 'rate',\r\n key: 'rate',\r\n },\r\n {\r\n title: 'Quantity',\r\n dataIndex: 'qty',\r\n key: 'qty',\r\n },\r\n {\r\n title: 'Line Total',\r\n dataIndex: 'lineTotal',\r\n key: 'lineTotal',\r\n },\r\n ],\r\n 'sort-function': function (a, b) {\r\n const t1 = Date.parse(a.date).getTime();\r\n const t2 = Date.parse(b.date).getTime();\r\n \r\n return (t1 < t2);\r\n },\r\n 'custom-validate-function': function (data) {\r\n const res = {};\r\n res.valid = true;\r\n data.date = new Date().toString('d-MMM-yyyy hh:mm tt');\r\n res.params = data;\r\n return res;\r\n },\r\n \r\n }],\r\n ];\r\n }\r\n\r\n getTableColumns() {\r\n return [\r\n {\r\n title: 'Invoice Id',\r\n dataIndex: 'invoiceId',\r\n sorter: true,\r\n },\r\n {\r\n title: 'Description',\r\n dataIndex: 'description',\r\n sorter: true,\r\n },\r\n ];\r\n }\r\n \r\n /* getActionButtonsHtml(id, data) {\r\n let html = '
';\r\n html = html.replace(/_id_/g, id);\r\n html = html.replace(/_BASE_/g, this.baseUrl);\r\n return html;\r\n }*/\r\n}\r\n\r\nmodule.exports ={InvoiceAdapter};","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/*\r\n Copyright (c) 2018 [Glacies UG, Berlin, Germany] (http://glacies.de)\r\n Developer: Thilina Hasantha (http://lk.linkedin.com/in/thilinah | https://github.com/thilinah)\r\n */\r\n\r\n/**\r\n * RequestCache\r\n */\r\n\r\nclass MemoryStorage {\r\n constructor() {\r\n this.data = {};\r\n }\r\n\r\n getItem(key) {\r\n return this.data[key];\r\n }\r\n\r\n setItem(key, data) {\r\n this.data[key] = data;\r\n }\r\n\r\n removeAllByPrefix(prefix) {\r\n const keys = Object.keys(this.data);\r\n for (let i = 0; i < keys.length; i++) {\r\n if (keys[i].indexOf(prefix) > 0) {\r\n delete this.data[keys[i]];\r\n }\r\n }\r\n }\r\n}\r\n\r\n\r\nclass RequestCache {\r\n constructor(storage) {\r\n if (!storage) {\r\n this.storage = new MemoryStorage();\r\n } else {\r\n this.storage = storage;\r\n }\r\n }\r\n\r\n getKey(url, params) {\r\n let key = `${url}|`;\r\n for (const index in params) {\r\n key += `${index}=${params[index]}|`;\r\n }\r\n return key;\r\n }\r\n\r\n /*\r\n invalidateTable(table) {\r\n let key;\r\n for (let i = 0; i < this.storage.length; i++) {\r\n key = this.storage.key(i);\r\n if (key.indexOf(`t=${table}`) > 0) {\r\n this.storage.removeItem(key);\r\n }\r\n }\r\n }\r\n */\r\n\r\n invalidateTable(table) {\r\n this.storage.removeAllByPrefix(`t=${table}`);\r\n }\r\n\r\n\r\n getData(key) {\r\n const data = this.storage.getItem(key);\r\n if (!data) {\r\n return null;\r\n }\r\n\r\n return data;\r\n }\r\n\r\n setData(key, data) {\r\n\r\n if (data.status !== undefined && data.status != null && data.status !== 'SUCCESS') {\r\n return null;\r\n }\r\n this.storage.setItem(key, data);\r\n return data;\r\n }\r\n}\r\n\r\nexport default RequestCache;\r\n","/* global baseUrl, clientUrl */\r\n/*\r\n Copyright (c) 2018 [Glacies UG, Berlin, Germany] (http://glacies.de)\r\n Developer: Thilina Hasantha (http://lk.linkedin.com/in/thilinah | https://github.com/thilinah)\r\n */\r\n\r\nimport IceApiClient from './IceApiClient';\r\nimport ModuleBase from './ModuleBase';\r\nimport RequestCache from '../api-common/RequestCache';\r\nimport MasterDataReader from './MasterDataReader';\r\n\r\nclass AdapterBase extends ModuleBase {\r\n constructor(endPoint, tab, filter, orderBy) {\r\n super();\r\n this.moduleRelativeURL = null;\r\n this.tableData = [];\r\n this.sourceData = [];\r\n this.filter = null;\r\n this.origFilter = null;\r\n this.orderBy = null;\r\n this.currentElement = null;\r\n this.initAdapter(endPoint, tab, filter, orderBy);\r\n }\r\n\r\n initAdapter(endPoint, tab, filter, orderBy) {\r\n this.moduleRelativeURL = baseUrl;\r\n this.table = endPoint;\r\n if (tab === undefined || tab === null) {\r\n this.tab = endPoint;\r\n } else {\r\n this.tab = tab;\r\n }\r\n\r\n if (filter === undefined || filter === null) {\r\n this.filter = null;\r\n } else {\r\n this.filter = filter;\r\n }\r\n\r\n this.origFilter = this.filter;\r\n\r\n if (orderBy === undefined || orderBy === null) {\r\n this.orderBy = null;\r\n } else {\r\n this.orderBy = orderBy;\r\n }\r\n\r\n this.trackEvent('initAdapter', tab);\r\n\r\n this.requestCache = new RequestCache();\r\n }\r\n\r\n initMasterDataReader() {\r\n this.masterDataReader = new MasterDataReader(this);\r\n }\r\n\r\n setupApiClient(token) {\r\n this.apiClient = new IceApiClient(this.apiUrl, token, window.CLIENT_BASE_URL, true);\r\n }\r\n\r\n setApiUrl(apiUrl) {\r\n this.apiUrl = apiUrl;\r\n }\r\n\r\n setFilter(filter) {\r\n this.filter = filter;\r\n }\r\n\r\n preSetFilterExternal(filter) {\r\n this.initialFilter = filter;\r\n }\r\n\r\n setFilterExternal(_filter) {\r\n let filter = _filter;\r\n if (filter === undefined || filter === null) {\r\n filter = this.initialFilter;\r\n }\r\n\r\n if (filter === undefined || filter === null) {\r\n return;\r\n }\r\n\r\n this.setFilter(filter);\r\n this.filtersAlreadySet = true;\r\n $(`#${this.getTableName()}_resetFilters`).show();\r\n this.currentFilterString = this.getFilterString(filter);\r\n }\r\n\r\n getFilter() {\r\n return this.filter;\r\n }\r\n\r\n setOrderBy(orderBy) {\r\n this.orderBy = orderBy;\r\n }\r\n\r\n getOrderBy() {\r\n return this.orderBy;\r\n }\r\n\r\n getFile(name) {\r\n this.trackEvent('file', name);\r\n return new Promise((resolve, reject) => {\r\n $.getJSON(this.moduleRelativeURL, { a: 'file', name }, (data) => {\r\n if (data.status === 'SUCCESS') {\r\n resolve(data.data);\r\n } else {\r\n reject();\r\n }\r\n }).fail(() => reject());\r\n });\r\n }\r\n\r\n /**\r\n * @method add\r\n * @param object {Array} object data to be added to database\r\n * @param getFunctionCallBackData {Array} once a success is returned call get() function for this module with these parameters\r\n * @param _callGetFunction {Boolean} if false the get function of the module will not be called (default: true)\r\n * @param successCallback {Function} this will get called after success response\r\n */\r\n\r\n add(object, getFunctionCallBackData, callGetFunction, successCallback) {\r\n const that = this;\r\n if (callGetFunction === undefined || callGetFunction === null) {\r\n // eslint-disable-next-line no-param-reassign\r\n callGetFunction = true;\r\n }\r\n $(object).attr('a', 'add');\r\n $(object).attr('t', this.table);\r\n that.showLoader();\r\n this.requestCache.invalidateTable(this.table);\r\n $.post(this.moduleRelativeURL, object, (data) => {\r\n if (data.status === 'SUCCESS') {\r\n that.addSuccessCallBack(getFunctionCallBackData, data.object, callGetFunction, successCallback, that);\r\n } else {\r\n that.addFailCallBack(getFunctionCallBackData, data.object);\r\n }\r\n }, 'json')\r\n .fail((e) => {\r\n if (e.status === 403) {\r\n that.showMessage('Access Forbidden', e.responseJSON.message);\r\n }\r\n })\r\n .always(() => { that.hideLoader(); });\r\n this.trackEvent('add', this.tab, this.table);\r\n }\r\n\r\n addSuccessCallBack(callBackData, serverData, callGetFunction, successCallback, thisObject) {\r\n if (callGetFunction) {\r\n this.get(callBackData);\r\n }\r\n this.initFieldMasterData();\r\n if (successCallback !== undefined && successCallback !== null) {\r\n successCallback.apply(thisObject, [serverData]);\r\n }\r\n this.trackEvent('addSuccess', this.tab, this.table);\r\n }\r\n\r\n addFailCallBack(callBackData, serverData) {\r\n try {\r\n this.closePlainMessage();\r\n } catch (e) {\r\n // No need to report\r\n }\r\n this.showMessage('Error saving', serverData);\r\n this.trackEvent('addFailed', this.tab, this.table);\r\n }\r\n\r\n deleteObj(id, callBackData) {\r\n const that = this;\r\n that.showLoader();\r\n this.requestCache.invalidateTable(this.table);\r\n $.post(this.moduleRelativeURL, { t: this.table, a: 'delete', id }, (data) => {\r\n if (data.status === 'SUCCESS') {\r\n that.deleteSuccessCallBack(callBackData, data.object);\r\n } else {\r\n that.deleteFailCallBack(callBackData, data.object);\r\n }\r\n }, 'json')\r\n .fail((e) => {\r\n if (e.status === 403) {\r\n that.showMessage('Access Forbidden', e.responseJSON.message);\r\n }\r\n })\r\n .always(() => { that.hideLoader(); });\r\n this.trackEvent('delete', this.tab, this.table);\r\n }\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n deleteSuccessCallBack(callBackData, serverData) {\r\n this.get(callBackData);\r\n this.clearDeleteParams();\r\n }\r\n\r\n deleteFailCallBack(callBackData, serverData) {\r\n this.clearDeleteParams();\r\n this.showMessage('Error Occurred while Deleting Item', serverData);\r\n }\r\n\r\n get(callBackData) {\r\n const that = this;\r\n\r\n if (this.getRemoteTable()) {\r\n this.createTableServer(this.getTableName());\r\n $(`#${this.getTableName()}Form`).hide();\r\n $(`#${this.getTableName()}`).show();\r\n return;\r\n }\r\n\r\n let sourceMappingJson = JSON.stringify(this.getSourceMapping());\r\n\r\n let filterJson = '';\r\n if (this.getFilter() !== null) {\r\n filterJson = JSON.stringify(this.getFilter());\r\n }\r\n\r\n let orderBy = '';\r\n if (this.getOrderBy() !== null) {\r\n orderBy = this.getOrderBy();\r\n }\r\n\r\n sourceMappingJson = this.fixJSON(sourceMappingJson);\r\n filterJson = this.fixJSON(filterJson);\r\n\r\n that.showLoader();\r\n $.post(this.moduleRelativeURL, {\r\n t: this.table, a: 'get', sm: sourceMappingJson, ft: filterJson, ob: orderBy,\r\n }, (data) => {\r\n if (data.status === 'SUCCESS') {\r\n that.getSuccessCallBack(callBackData, data.object);\r\n } else {\r\n that.getFailCallBack(callBackData, data.object);\r\n }\r\n }, 'json')\r\n .fail((e) => {\r\n if (e.status === 403) {\r\n that.showMessage('Access Forbidden', e.responseJSON.message);\r\n }\r\n })\r\n .always(() => { that.hideLoader(); });\r\n\r\n that.initFieldMasterData();\r\n\r\n this.trackEvent('get', this.tab, this.table);\r\n // var url = this.getDataUrl();\r\n // console.log(url);\r\n }\r\n\r\n\r\n getDataUrl(_columns) {\r\n const sourceMappingJson = JSON.stringify(this.getSourceMapping());\r\n\r\n const columns = JSON.stringify(_columns);\r\n\r\n let filterJson = '';\r\n if (this.getFilter() !== null) {\r\n filterJson = JSON.stringify(this.getFilter());\r\n }\r\n\r\n let orderBy = '';\r\n if (this.getOrderBy() !== null) {\r\n orderBy = this.getOrderBy();\r\n }\r\n\r\n let url = this.moduleRelativeURL.replace('service.php', 'data.php');\r\n url = `${url}?t=${this.table}`;\r\n url = `${url}&sm=${this.fixJSON(sourceMappingJson)}`;\r\n url = `${url}&cl=${this.fixJSON(columns)}`;\r\n url = `${url}&ft=${this.fixJSON(filterJson)}`;\r\n url = `${url}&ob=${orderBy}`;\r\n\r\n if (this.isSubProfileTable()) {\r\n url = `${url}&type=sub`;\r\n }\r\n\r\n if (this.remoteTableSkipProfileRestriction()) {\r\n url = `${url}&skip=1`;\r\n }\r\n\r\n return url;\r\n }\r\n\r\n isSubProfileTable() {\r\n return false;\r\n }\r\n\r\n remoteTableSkipProfileRestriction() {\r\n return false;\r\n }\r\n\r\n preProcessTableData(row) {\r\n return row;\r\n }\r\n\r\n getSuccessCallBack(callBackData, serverData) {\r\n const data = [];\r\n const mapping = this.getDataMapping();\r\n for (let i = 0; i < serverData.length; i++) {\r\n const row = [];\r\n for (let j = 0; j < mapping.length; j++) {\r\n row[j] = serverData[i][mapping[j]];\r\n }\r\n data.push(this.preProcessTableData(row));\r\n }\r\n this.sourceData = serverData;\r\n if (callBackData.callBack !== undefined && callBackData.callBack !== null) {\r\n if (callBackData.callBackData === undefined || callBackData.callBackData === null) {\r\n callBackData.callBackData = [];\r\n }\r\n callBackData.callBackData.push(serverData);\r\n callBackData.callBackData.push(data);\r\n this.callFunction(callBackData.callBack, callBackData.callBackData);\r\n }\r\n\r\n this.tableData = data;\r\n\r\n if (!(callBackData.noRender !== undefined && callBackData.noRender !== null && callBackData.noRender === true)) {\r\n this.createTable(this.getTableName());\r\n $(`#${this.getTableName()}Form`).hide();\r\n $(`#${this.getTableName()}`).show();\r\n }\r\n }\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n getFailCallBack(callBackData, serverData) {\r\n\r\n }\r\n\r\n\r\n getElement(id, callBackData, clone) {\r\n const that = this;\r\n let sourceMappingJson = JSON.stringify(this.getSourceMapping());\r\n sourceMappingJson = this.fixJSON(sourceMappingJson);\r\n that.showLoader();\r\n $.post(this.moduleRelativeURL, {\r\n t: this.table, a: 'getElement', id, sm: sourceMappingJson,\r\n }, function (data) {\r\n if (data.status === 'SUCCESS') {\r\n if (clone) {\r\n delete data.object.id;\r\n }\r\n this.currentElement = data.object;\r\n that.getElementSuccessCallBack.apply(that, [callBackData, data.object]);\r\n } else {\r\n that.getElementFailCallBack.apply(that, [callBackData, data.object]);\r\n }\r\n }, 'json')\r\n .fail((e) => {\r\n if (e.status === 403) {\r\n that.showMessage('Access Forbidden', e.responseJSON.message);\r\n }\r\n })\r\n .always(() => { that.hideLoader(); });\r\n this.trackEvent('getElement', this.tab, this.table);\r\n }\r\n\r\n getElementSuccessCallBack(callBackData, serverData) {\r\n if (callBackData.callBack !== undefined && callBackData.callBack !== null) {\r\n if (callBackData.callBackData === undefined || callBackData.callBackData === null) {\r\n callBackData.callBackData = [];\r\n }\r\n callBackData.callBackData.push(serverData);\r\n this.callFunction(callBackData.callBack, callBackData.callBackData, this);\r\n }\r\n this.currentElement = serverData;\r\n if (!(callBackData.noRender !== undefined && callBackData.noRender !== null && callBackData.noRender === true)) {\r\n this.renderForm(serverData);\r\n }\r\n }\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n getElementFailCallBack(callBackData, serverData) {\r\n\r\n }\r\n\r\n\r\n getTableData() {\r\n return this.tableData;\r\n }\r\n\r\n getTableName() {\r\n return this.tab;\r\n }\r\n\r\n getFieldValues(fieldMaster, callBackData) {\r\n const that = this;\r\n let method = '';\r\n let methodParams = '';\r\n if (fieldMaster[3] !== undefined && fieldMaster[3] !== null) {\r\n // eslint-disable-next-line prefer-destructuring\r\n method = fieldMaster[3];\r\n }\r\n\r\n if (fieldMaster[4] !== undefined && fieldMaster[4] !== null) {\r\n methodParams = JSON.stringify(fieldMaster[4]);\r\n }\r\n\r\n const key = this.requestCache.getKey(this.moduleRelativeURL, {\r\n t: fieldMaster[0], key: fieldMaster[1], value: fieldMaster[2], method, methodParams, a: 'getFieldValues',\r\n });\r\n const cacheData = this.requestCache.getData(key);\r\n\r\n if (cacheData !== null && cacheData !== undefined) {\r\n if (cacheData.status === 'SUCCESS') {\r\n callBackData.callBackData.push(cacheData.data);\r\n if (callBackData.callBackSuccess !== null && callBackData.callBackSuccess !== undefined) {\r\n callBackData.callBackData.push(callBackData.callBackSuccess);\r\n }\r\n that.callFunction(callBackData.callBack, callBackData.callBackData);\r\n }\r\n } else {\r\n const callbackWraper = function (data) {\r\n if (data.status === 'SUCCESS') {\r\n that.requestCache.setData(this.success.key, data);\r\n const localCallBackData = callBackData;\r\n localCallBackData.callBackData = [callBackData.callBackData[0]];\r\n localCallBackData.callBackData.push(data.data);\r\n if (localCallBackData.callBackSuccess !== null && localCallBackData.callBackSuccess !== undefined) {\r\n localCallBackData.callBackData.push(callBackData.callBackSuccess);\r\n }\r\n that.callFunction(localCallBackData.callBack, localCallBackData.callBackData);\r\n } else if (data.message === 'Access violation') {\r\n alert(`Error : ${callbackWraper.table} ${data.message}`);\r\n }\r\n };\r\n\r\n callbackWraper.key = key;\r\n // eslint-disable-next-line prefer-destructuring\r\n callbackWraper.table = fieldMaster[0];\r\n\r\n $.post(this.moduleRelativeURL, {\r\n t: fieldMaster[0], key: fieldMaster[1], value: fieldMaster[2], method, methodParams, a: 'getFieldValues',\r\n }, callbackWraper, 'json');\r\n }\r\n }\r\n\r\n setAdminProfile(empId) {\r\n try {\r\n localStorage.clear();\r\n } catch (e) {\r\n // No need to report\r\n }\r\n $.post(this.moduleRelativeURL, { a: 'setAdminEmp', empid: empId }, () => {\r\n // eslint-disable-next-line no-restricted-globals\r\n top.location.href = clientUrl;\r\n }, 'json');\r\n }\r\n\r\n customAction(subAction, module, request, callBackData, isPost) {\r\n const that = this;\r\n request = this.fixJSON(request);\r\n if (!isPost) {\r\n $.getJSON(this.moduleRelativeURL, {\r\n t: this.table, a: 'ca', sa: subAction, mod: module, req: request,\r\n }, (data) => {\r\n if (data.status === 'SUCCESS') {\r\n callBackData.callBackData.push(data.data);\r\n that.callFunction(callBackData.callBackSuccess, callBackData.callBackData);\r\n } else {\r\n callBackData.callBackData.push(data.data);\r\n that.callFunction(callBackData.callBackFail, callBackData.callBackData);\r\n }\r\n });\r\n } else {\r\n $.post(this.moduleRelativeURL, {\r\n t: this.table, a: 'ca', sa: subAction, mod: module, req: request,\r\n }, (data) => {\r\n if (data.status === 'SUCCESS') {\r\n callBackData.callBackData.push(data.data);\r\n that.callFunction(callBackData.callBackSuccess, callBackData.callBackData);\r\n } else {\r\n callBackData.callBackData.push(data.data);\r\n that.callFunction(callBackData.callBackFail, callBackData.callBackData);\r\n }\r\n }, 'json');\r\n }\r\n }\r\n\r\n\r\n sendCustomRequest(action, params, successCallback, failCallback) {\r\n params.a = action;\r\n $.post(this.moduleRelativeURL, params, (data) => {\r\n if (data.status === 'SUCCESS') {\r\n successCallback(data.data);\r\n } else {\r\n failCallback(data.data);\r\n }\r\n }, 'json');\r\n }\r\n\r\n\r\n getCustomActionUrl(action, params) {\r\n params.a = action;\r\n let str = '';\r\n for (const key in params) {\r\n if (params.hasOwnProperty(key)) {\r\n if (str !== '') {\r\n str += '&';\r\n }\r\n str += `${key}=${params[key]}`;\r\n }\r\n }\r\n return `${this.moduleRelativeURL}?${str}`;\r\n }\r\n\r\n\r\n getClientDataUrl() {\r\n return `${this.moduleRelativeURL.replace('service.php', '')}data/`;\r\n }\r\n\r\n getCustomUrl(str) {\r\n return this.moduleRelativeURL.replace('service.php', str);\r\n }\r\n}\r\n\r\nexport default AdapterBase;\r\n","/*\r\n Copyright (c) 2018 [Glacies UG, Berlin, Germany] (http://glacies.de)\r\n Developer: Thilina Hasantha (http://lk.linkedin.com/in/thilinah | https://github.com/thilinah)\r\n */\r\n/* global tinyMCE */\r\nconst ValidationRules = {\r\n\r\n float(str) {\r\n const floatstr = /^[-+]?[0-9]+(\\.[0-9]+)?$/;\r\n if (str != null && str.match(floatstr)) {\r\n return true;\r\n }\r\n return false;\r\n },\r\n\r\n number(str) {\r\n const numstr = /^[0-9]+$/;\r\n if (str != null && str.match(numstr)) {\r\n return true;\r\n }\r\n return false;\r\n },\r\n\r\n numberOrEmpty(str) {\r\n if (str === '') {\r\n return true;\r\n }\r\n const numstr = /^[0-9]+$/;\r\n if (str != null && str.match(numstr)) {\r\n return true;\r\n }\r\n return false;\r\n },\r\n\r\n email(str) {\r\n const emailPattern = /^\\s*[\\w\\-+_]+(\\.[\\w\\-+_]+)*@[\\w\\-+_]+\\.[\\w\\-+_]+(\\.[\\w\\-+_]+)*\\s*$/;\r\n return str != null && emailPattern.test(str);\r\n },\r\n\r\n emailOrEmpty(str) {\r\n if (str === '') {\r\n return true;\r\n }\r\n const emailPattern = /^\\s*[\\w\\-+_]+(\\.[\\w\\-+_]+)*@[\\w\\-+_]+\\.[\\w\\-+_]+(\\.[\\w\\-+_]+)*\\s*$/;\r\n return str != null && emailPattern.test(str);\r\n },\r\n\r\n username(str) {\r\n const username = /^[a-zA-Z0-9.-]+$/;\r\n return str != null && username.test(str);\r\n },\r\n\r\n input(str) {\r\n if (str != null && str.length > 0) {\r\n return true;\r\n }\r\n return false;\r\n },\r\n};\r\n\r\nclass FormValidation {\r\n constructor(formId, validateAll, options) {\r\n this.tempOptions = {};\r\n this.formId = formId;\r\n this.formError = false;\r\n this.formObject = null;\r\n this.errorMessages = '';\r\n this.popupDialog = null;\r\n this.validateAll = validateAll;\r\n this.errorMap = [];\r\n\r\n this.settings = { thirdPartyPopup: null, LabelErrorClass: false, ShowPopup: true };\r\n\r\n this.settings = jQuery.extend(this.settings, options);\r\n\r\n this.inputTypes = ['text', 'radio', 'checkbox', 'file', 'password', 'select-one', 'select-multi', 'textarea', 'fileupload', 'signature'];\r\n\r\n this.validator = ValidationRules;\r\n }\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n clearError(formInput, overrideMessage) {\r\n const id = formInput.attr('id');\r\n $(`#${this.formId} #field_${id}`).removeClass('error');\r\n $(`#${this.formId} #help_${id}`).html('');\r\n }\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n addError(formInput, overrideMessage) {\r\n this.formError = true;\r\n if (formInput.attr('message') != null) {\r\n this.errorMessages += (`${formInput.attr('message')}\\n`);\r\n this.errorMap[formInput.attr('name')] = formInput.attr('message');\r\n } else {\r\n this.errorMap[formInput.attr('name')] = '';\r\n }\r\n\r\n const id = formInput.attr('id');\r\n const validation = formInput.attr('validation');\r\n const message = formInput.attr('validation');\r\n $(`#${this.formId} #field_${id}`).addClass('error');\r\n if (message === undefined || message == null || message === '') {\r\n $(`#${this.formId} #help_err_${id}`).html(message);\r\n } else if (validation === undefined || validation == null || validation === '') {\r\n $(`#${this.formId} #help_err_${id}`).html('Required');\r\n } else if (validation === 'float' || validation === 'number') {\r\n $(`#${this.formId} #help_err_${id}`).html('Number required');\r\n } else if (validation === 'email') {\r\n $(`#${this.formId} #help_err_${id}`).html('Email required');\r\n } else {\r\n $(`#${this.formId} #help_err_${id}`).html('Required');\r\n }\r\n }\r\n\r\n\r\n showErrors() {\r\n if (this.formError) {\r\n if (this.settings.thirdPartyPopup !== undefined && this.settings.thirdPartyPopup != null) {\r\n this.settings.thirdPartyPopup.alert();\r\n } else if (this.settings.ShowPopup === true) {\r\n if (this.tempOptions.popupTop !== undefined && this.tempOptions.popupTop != null) {\r\n this.alert('Errors Found', this.errorMessages, this.tempOptions.popupTop);\r\n } else {\r\n this.alert('Errors Found', this.errorMessages, -1);\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n checkValues(options) {\r\n this.tempOptions = options;\r\n const that = this;\r\n this.formError = false;\r\n this.errorMessages = '';\r\n this.formObject = {};\r\n // eslint-disable-next-line consistent-return\r\n const validate = function (inputObject) {\r\n let inputValue = null;\r\n const name = inputObject.attr('name');\r\n if (that.settings.LabelErrorClass !== false) {\r\n $(`label[for='${name}']`).removeClass(that.settings.LabelErrorClass);\r\n }\r\n const id = inputObject.attr('id');\r\n const type = inputObject.attr('type');\r\n\r\n if (inputObject.hasClass('select2-focusser') || inputObject.hasClass('select2-input')) {\r\n return true;\r\n }\r\n\r\n if (jQuery.inArray(type, that.inputTypes) >= 0) {\r\n if (inputObject.hasClass('uploadInput')) {\r\n inputValue = inputObject.attr('val');\r\n } else if (type === 'radio' || type === 'checkbox') {\r\n inputValue = $(`input[name='${name}']:checked`).val();\r\n } else if (inputObject.hasClass('select2Field')) {\r\n if ($(`#${that.formId} #${id}`).select2('data') != null && $(`#${that.formId} #${id}`).select2('data') !== undefined) {\r\n inputValue = $(`#${that.formId} #${id}`).select2('data').id;\r\n } else {\r\n inputValue = '';\r\n }\r\n } else if (inputObject.hasClass('select2Multi')) {\r\n if ($(`#${that.formId} #${id}`).select2('data') != null && $(`#${that.formId} #${id}`).select2('data') !== undefined) {\r\n const inputValueObjects = $(`#${that.formId} #${id}`).select2('data');\r\n inputValue = [];\r\n for (let i = 0; i < inputValueObjects.length; i++) {\r\n inputValue.push(inputValueObjects[i].id);\r\n }\r\n inputValue = JSON.stringify(inputValue);\r\n } else {\r\n inputValue = '';\r\n }\r\n } else if (inputObject.hasClass('signatureField')) {\r\n if ($(`#${that.formId} #${id}`).data('signaturePad').isEmpty()) {\r\n inputValue = '';\r\n } else {\r\n inputValue = $(`#${id}`).data('signaturePad').toDataURL();\r\n }\r\n } else if (inputObject.hasClass('simplemde')) {\r\n inputValue = $(`#${that.formId} #${id}`).data('simplemde').value();\r\n } else if (inputObject.hasClass('code')) {\r\n inputValue = $(`#${that.formId} #${id}`).data('codemirror').getValue();\r\n } else if (inputObject.hasClass('tinymce')) {\r\n inputValue = tinyMCE.get(id).getContent({ format: 'raw' });\r\n } else {\r\n inputValue = inputObject.val();\r\n }\r\n\r\n const validation = inputObject.attr('validation');\r\n let valid = false;\r\n\r\n if (validation !== undefined && validation != null && that.validator[validation] !== undefined && that.validator[validation] != null) {\r\n valid = that.validator[validation](inputValue);\r\n } else {\r\n if (that.validateAll) {\r\n if (validation !== undefined && validation != null && validation === 'none') {\r\n valid = true;\r\n } else {\r\n valid = that.validator.input(inputValue);\r\n }\r\n } else {\r\n valid = true;\r\n }\r\n that.formObject[id] = inputValue;\r\n }\r\n\r\n if (!valid) {\r\n that.addError(inputObject, null);\r\n } else {\r\n that.clearError(inputObject, null);\r\n that.formObject[id] = inputValue;\r\n }\r\n }\r\n };\r\n\r\n let inputs = $(`#${this.formId} :input`);\r\n inputs.each(function () {\r\n validate($(this));\r\n });\r\n\r\n inputs = $(`#${this.formId} .uploadInput`);\r\n inputs.each(function () {\r\n validate($(this));\r\n });\r\n\r\n this.showErrors();\r\n this.tempOptions = {};\r\n return !this.formError;\r\n }\r\n\r\n getFormParameters() {\r\n return this.formObject;\r\n }\r\n\r\n\r\n alert(title, text) {\r\n alert(text);\r\n }\r\n\r\n static getValidationRules() {\r\n return ValidationRules;\r\n }\r\n}\r\n\r\n\r\nexport default FormValidation;\r\n","const axios = require('axios');\r\n\r\nclass IceApiClient {\r\n constructor(baseUrl, token, clientBaseUrl, legacyApiWrapper = true) {\r\n this.baseUrl = baseUrl;\r\n this.token = token;\r\n this.clientBaseUrl = clientBaseUrl;\r\n this.legacyApiWrapper = legacyApiWrapper;\r\n }\r\n\r\n get(endpoint) {\r\n if (this.legacyApiWrapper) {\r\n const url = `${this.clientBaseUrl}api/index.php?token=${this.token}&method=get&url=/${endpoint}`;\r\n return axios.get(url);\r\n }\r\n\r\n return axios.get(this.baseUrl + endpoint, {\r\n headers: {\r\n Authorization: `Bearer ${this.token}`,\r\n },\r\n });\r\n }\r\n}\r\n\r\nexport default IceApiClient;\r\n","const axios = require('axios');\r\n\r\nclass IceDataPipe {\r\n constructor(adapter, pageSize = 10) {\r\n this.adapter = adapter;\r\n this.pageSize = pageSize;\r\n }\r\n\r\n readMetaData() {\r\n this.adapter.initFieldMasterData();\r\n }\r\n\r\n get({\r\n page, search, sortField, sortOrder, filters, limit,\r\n }) {\r\n const pageSize = limit || this.pageSize;\r\n const start = (page - 1) * pageSize;\r\n const dataUrl = this.getDataUrl(\r\n this.adapter.getDataMapping(),\r\n search,\r\n filters,\r\n );\r\n let url = `${dataUrl}&iDisplayStart=${start}&iDisplayLength=${pageSize}`;\r\n url = this.applySortingData(this.adapter.getDataMapping(), url, sortField, sortOrder);\r\n // $.post(url, (data) => {\r\n // that.getSuccessCallBack(callBackData, data);\r\n // }, 'json').always(() => { that.hideLoader(); });\r\n url = `${url}&version=v2`;\r\n return axios.post(url, {})\r\n .then((data) => {\r\n const key = this.getRequestKey(page, search, sortField, sortOrder, filters, limit);\r\n const response = {\r\n items: data.data.objects,\r\n total: data.data.totalRecords,\r\n };\r\n if (this.adapter.localStorageEnabled) {\r\n window.localStorage.setItem(key, JSON.stringify(response));\r\n }\r\n\r\n return response;\r\n });\r\n }\r\n\r\n getCachedResponse({\r\n page, search, sortField, sortOrder, filters, limit,\r\n }) {\r\n const key = this.getRequestKey(page, search, sortField, sortOrder, filters, limit);\r\n const cachedResponse = window.localStorage.getItem(key);\r\n if (!cachedResponse) {\r\n return null;\r\n }\r\n\r\n return JSON.parse(cachedResponse);\r\n }\r\n\r\n clearCachedResponse({\r\n page, search, sortField, sortOrder, filters, limit,\r\n }) {\r\n const key = this.getRequestKey(page, search, sortField, sortOrder, filters, limit);\r\n window.localStorage.setItem(key, null);\r\n }\r\n\r\n getRequestKey(page, search, sortField, sortOrder, filters, limit) {\r\n return `${this.adapter.table}|${page}|${search}|${sortField}|${sortOrder}|${filters}|${limit}`;\r\n }\r\n\r\n applySortingData(columns, url, sortField, sortOrder) {\r\n let orderBy = '';\r\n if (sortField) {\r\n url = `${url}&sorting=1`;\r\n url = `${url}&iSortCol_0=${columns.indexOf(sortField)}`;\r\n url = `${url}&sSortDir_0=${(sortOrder === 'descend') ? 'DESC' : 'ASC'}`;\r\n } else if (this.adapter.getOrderBy() !== null) {\r\n // Setting the fix ordering\r\n orderBy = this.adapter.getOrderBy();\r\n url = `${url}&ob=${orderBy}`;\r\n }\r\n\r\n return url;\r\n }\r\n\r\n getDataUrl(_columns, searchTerm, filters) {\r\n const sourceMappingJson = JSON.stringify(this.adapter.getSourceMapping());\r\n\r\n const columns = JSON.stringify(_columns);\r\n\r\n let filterJson = '';\r\n if (this.adapter.getFilter() !== null) {\r\n filterJson = JSON.stringify(this.adapter.getFilter());\r\n }\r\n\r\n let url = this.adapter.moduleRelativeURL.replace('service.php', 'data.php');\r\n url = `${url}?t=${this.adapter.table}`;\r\n url = `${url}&sm=${sourceMappingJson}`;\r\n url = `${url}&cl=${columns}`;\r\n url = `${url}&ft=${filterJson}`;\r\n\r\n if (searchTerm && searchTerm.trim() !== '') {\r\n url += `&sSearch=${searchTerm}`;\r\n }\r\n\r\n if (this.adapter.isSubProfileTable()) {\r\n url = `${url}&type=sub`;\r\n }\r\n\r\n if (this.adapter.remoteTableSkipProfileRestriction()) {\r\n url = `${url}&skip=1`;\r\n }\r\n\r\n return url;\r\n }\r\n}\r\n\r\nexport default IceDataPipe;\r\n","const axios = require('axios');\r\n\r\nclass MasterDataReader {\r\n constructor(adapter) {\r\n this.adapter = adapter;\r\n this.requestCache = this.adapter.requestCache;\r\n }\r\n\r\n fetchMasterData(fieldMaster) {\r\n let method = '';\r\n let methodParams = '';\r\n if (fieldMaster[3] != null) {\r\n method = fieldMaster[3];\r\n }\r\n\r\n if (fieldMaster[4] != null) {\r\n methodParams = JSON.stringify(fieldMaster[4]);\r\n }\r\n\r\n const key = this.requestCache.getKey(this.adapter.moduleRelativeURL, {\r\n t: fieldMaster[0], key: fieldMaster[1], value: fieldMaster[2], method, methodParams, a: 'getFieldValues',\r\n });\r\n\r\n const cacheData = this.requestCache.getData(key);\r\n if (cacheData != null && cacheData.status === 'SUCCESS') {\r\n return new Promise((resolve, reject) => resolve(cacheData.data));\r\n }\r\n\r\n const urlData = {\r\n t: fieldMaster[0],\r\n key: fieldMaster[1],\r\n value: fieldMaster[2],\r\n method,\r\n methodParams,\r\n a: 'getFieldValues',\r\n };\r\n let url = `${this.adapter.moduleRelativeURL}?_url=1`;\r\n for (const index in urlData) {\r\n url = `${url}&${index}=${encodeURIComponent(urlData[index])}`;\r\n }\r\n // TODO - Should be a get request\r\n return axios.post(url, {})\r\n .then((response) => {\r\n if (response.data.status !== 'SUCCESS') {\r\n throw Error(`Response for ${key} failed`);\r\n }\r\n this.requestCache.setData(key, response.data);\r\n\r\n return response.data.data;\r\n });\r\n }\r\n\r\n updateAllMasterData() {\r\n const remoteSourceFields = this.adapter.getRemoteSourceFields();\r\n const promiseList = [];\r\n for (let i = 0; i < remoteSourceFields.length; i++) {\r\n const fieldRemote = remoteSourceFields[i];\r\n if (fieldRemote[1]['remote-source'] !== undefined && fieldRemote[1]['remote-source'] != null) {\r\n let key = `${fieldRemote[1]['remote-source'][0]}_${fieldRemote[1]['remote-source'][1]}_${fieldRemote[1]['remote-source'][2]}`;\r\n if (fieldRemote[1]['remote-source'].length === 4) {\r\n key = `${key}_${fieldRemote[1]['remote-source'][3]}`;\r\n }\r\n const masterDataPromise = this.fetchMasterData(fieldRemote[1]['remote-source'])\r\n .then((data) => {\r\n this.adapter.fieldMasterData[key] = data;\r\n });\r\n promiseList.push(masterDataPromise);\r\n }\r\n }\r\n\r\n return Promise.all(promiseList);\r\n }\r\n}\r\n\r\nexport default MasterDataReader;\r\n","/* global tinymce, SimpleMDE, modJs, SignaturePad, modulesInstalled */\r\n/* eslint-disable prefer-destructuring */\r\n/*\r\n Copyright (c) 2018 [Glacies UG, Berlin, Germany] (http://glacies.de)\r\n Developer: Thilina Hasantha (http://lk.linkedin.com/in/thilinah | https://github.com/thilinah)\r\n */\r\nimport FormValidation from './FormValidation';\r\n/**\r\n * The base class for providing core functions to all module classes.\r\n * @class Base.js\r\n */\r\n\r\nclass ModuleBase {\r\n constructor() {\r\n this.deleteParams = {};\r\n this.createRemoteTable = false;\r\n this.instanceId = 'None';\r\n this.ga = [];\r\n this.showAddNew = true;\r\n this.showEdit = true;\r\n this.showDelete = true;\r\n this.showSave = true;\r\n this.showCancel = true;\r\n this.showFormOnPopup = false;\r\n this.filtersAlreadySet = false;\r\n this.currentFilterString = '';\r\n this.sorting = 0;\r\n this.settings = {};\r\n this.translations = {};\r\n this.customFields = [];\r\n this.csrfRequired = false;\r\n\r\n this.fieldTemplates = null;\r\n this.templates = null;\r\n this.customTemplates = null;\r\n this.emailTemplates = null;\r\n this.fieldMasterData = {};\r\n this.fieldMasterDataKeys = {};\r\n this.fieldMasterDataCallback = null;\r\n this.sourceMapping = null;\r\n this.currentId = null;\r\n this.currentElement = null;\r\n this.user = null;\r\n this.currentProfile = null;\r\n this.permissions = {};\r\n this.baseUrl = null;\r\n this.clientUrl = null;\r\n this.that = this;\r\n }\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n init(appName, currentView, dataUrl, permissions) {\r\n\r\n }\r\n\r\n initForm() {\r\n\r\n }\r\n\r\n setObjectTypeName(objectTypeName) {\r\n this.objectTypeName = objectTypeName;\r\n }\r\n\r\n /**\r\n * Some browsers do not support sending JSON in get parameters. Set this to true to avoid sending JSON\r\n * @method setNoJSONRequests\r\n * @param val {Boolean}\r\n */\r\n setNoJSONRequests(val) {\r\n this.noJSONRequests = val;\r\n }\r\n\r\n\r\n setPermissions(permissions) {\r\n this.permissions = permissions;\r\n }\r\n\r\n sortingStarted(val) {\r\n this.sorting = val;\r\n }\r\n\r\n /**\r\n * Check if the current user has a permission\r\n * @method checkPermission\r\n * @param permission {String}\r\n * @example\r\n * this.checkPermission(\"Upload/Delete Profile Image\")\r\n */\r\n checkPermission(permission) {\r\n if (this.permissions[permission] === undefined || this.permissions[permission] == null || this.permissions[permission] === 'Yes') {\r\n return 'Yes';\r\n }\r\n return this.permissions[permission];\r\n }\r\n\r\n setBaseUrl(url) {\r\n this.baseUrl = url;\r\n }\r\n\r\n setClientUrl(url) {\r\n this.clientUrl = url;\r\n }\r\n\r\n setUser(user) {\r\n this.user = user;\r\n }\r\n\r\n getUser() {\r\n return this.user;\r\n }\r\n\r\n setInstanceId(id) {\r\n this.instanceId = id;\r\n }\r\n\r\n setCSRFRequired(val) {\r\n this.csrfRequired = val;\r\n }\r\n\r\n scrollToTop() {\r\n $('html, body').animate({ scrollTop: 0 }, 'fast');\r\n }\r\n\r\n scrollToBottom() {\r\n $('html, body').animate({ scrollTop: $(document).height() }, 'slow');\r\n }\r\n\r\n scrollToElement(element) {\r\n if ($(window).height() <= element.offset().top) {\r\n $('html, body').animate({ scrollTop: element.offset().top }, 'slow');\r\n }\r\n }\r\n\r\n scrollToElementBottom(element) {\r\n if ($(window).height() <= element.offset().top + element.height()) {\r\n $('html, body').animate({ scrollTop: element.offset().top + element.height() }, 'slow');\r\n }\r\n }\r\n\r\n\r\n setTranslations(txt) {\r\n this.translations = txt.messages[''];\r\n }\r\n\r\n setTranslationsSubModules(translations) {\r\n this.translations = translations;\r\n }\r\n\r\n gt(key) {\r\n if (this.translations[key] === undefined || this.translations[key] === null) {\r\n console.log(`Tr:${key}`);\r\n return key;\r\n }\r\n return this.translations[key][0];\r\n }\r\n\r\n addToLangTerms(key) {\r\n let termsArr;\r\n const terms = localStorage.getItem('terms');\r\n if (terms === undefined) {\r\n termsArr = {};\r\n } else {\r\n try {\r\n termsArr = JSON.parse(terms);\r\n } catch (e) {\r\n termsArr = {};\r\n }\r\n }\r\n\r\n if (this.translations[key] === undefined) {\r\n termsArr[key] = key;\r\n localStorage.setItem('terms', JSON.stringify(termsArr));\r\n }\r\n }\r\n\r\n /**\r\n * If this method returned false the action buttons in data table for modules will not be displayed.\r\n * Override this method in module lib.js to hide action buttons\r\n * @method showActionButtons\r\n * @param permission {String}\r\n * @example\r\n * EmployeeLeaveEntitlementAdapter.method('showActionButtons() {\r\n * return false;\r\n * }\r\n */\r\n showActionButtons() {\r\n return true;\r\n }\r\n\r\n trackEvent(action, label, value) {\r\n try {\r\n if (label === undefined || label == null) {\r\n this.ga.push(['_trackEvent', this.instanceId, action]);\r\n } else if (value === undefined || value == null) {\r\n this.ga.push(['_trackEvent', this.instanceId, action, label]);\r\n } else {\r\n this.ga.push(['_trackEvent', this.instanceId, action, label, value]);\r\n }\r\n } catch (e) {\r\n // Do nothing\r\n }\r\n }\r\n\r\n\r\n setCurrentProfile(currentProfile) {\r\n this.currentProfile = currentProfile;\r\n }\r\n\r\n /**\r\n * Get the current profile\r\n * @method getCurrentProfile\r\n * @returns Profile of the current user if the profile is not switched if not switched profile\r\n */\r\n\r\n getCurrentProfile() {\r\n return this.currentProfile;\r\n }\r\n\r\n /**\r\n * Retrive data required to create select boxes for add new /edit forms for a given module. This is called when loading the module\r\n * @method initFieldMasterData\r\n * @param callback {Function} call this once loading completed\r\n * @param callback {Function} call this once all field loading completed. This indicate that the form can be displayed saftly\r\n * @example\r\n * ReportAdapter.method('renderForm(object) {\r\n * var that = this;\r\n * this.processFormFieldsWithObject(object);\r\n * var cb = function(){\r\n * that.super.renderForm(object);\r\n * };\r\n * this.initFieldMasterData(cb);\r\n * }\r\n */\r\n initFieldMasterData(callback, loadAllCallback, loadAllCallbackData) {\r\n this.fieldMasterData = {};\r\n this.fieldMasterDataKeys = {};\r\n this.fieldMasterDataCallback = loadAllCallback;\r\n this.fieldMasterDataCallbackData = loadAllCallbackData;\r\n\r\n const remoteSourceFields = this.getRemoteSourceFields();\r\n\r\n for (let i = 0; i < remoteSourceFields.length; i++) {\r\n const fieldRemote = remoteSourceFields[i];\r\n if (fieldRemote[1]['remote-source'] !== undefined && fieldRemote[1]['remote-source'] != null) {\r\n // let key = `${fieldRemote[1]['remote-source'][0]}_${fieldRemote[1]['remote-source'][1]}_${fieldRemote[1]['remote-source'][2]}`;\r\n // if (fieldRemote[1]['remote-source'].length === 4) {\r\n // key = `${key}_${fieldRemote[1]['remote-source'][3]}`;\r\n // }\r\n const key = this.getRemoteSourceKey(fieldRemote);\r\n this.fieldMasterDataKeys[key] = false;\r\n\r\n const callBackData = {};\r\n callBackData.callBack = 'initFieldMasterDataResponse';\r\n callBackData.callBackData = [key];\r\n if (callback !== null && callback !== undefined) {\r\n callBackData.callBackSuccess = callback;\r\n }\r\n this.getFieldValues(fieldRemote[1]['remote-source'], callBackData);\r\n }\r\n }\r\n }\r\n\r\n\r\n initSourceMappings() {\r\n this.sourceMapping = {};\r\n\r\n const remoteSourceFields = this.getRemoteSourceFields();\r\n\r\n for (let i = 0; i < remoteSourceFields.length; i++) {\r\n const fieldRemote = remoteSourceFields[i];\r\n if (fieldRemote[1]['remote-source'] !== undefined && fieldRemote[1]['remote-source'] != null) {\r\n this.sourceMapping[fieldRemote[0]] = fieldRemote[1]['remote-source'];\r\n }\r\n }\r\n }\r\n\r\n getRemoteSourceKey(field) {\r\n let key = `${field[1]['remote-source'][0]}_${field[1]['remote-source'][1]}_${field[1]['remote-source'][2]}`;\r\n if (field[1]['remote-source'].length > 3) {\r\n key = `${key}_${field[1]['remote-source'][3]}`;\r\n }\r\n\r\n return key;\r\n }\r\n\r\n getRemoteSourceFields() {\r\n let values;\r\n const fields = this.getFormFields();\r\n const filterFields = this.getFilters();\r\n\r\n if (filterFields != null) {\r\n for (let j = 0; j < filterFields.length; j++) {\r\n values = this.getMetaFieldValues(filterFields[j][0], fields);\r\n if (values == null || (values.type !== 'select' && values.type !== 'select2' && values.type !== 'select2multi')) {\r\n fields.push(filterFields[j]);\r\n }\r\n }\r\n }\r\n\r\n const remoteSourceFields = [];\r\n const remoteSourceFieldKeys = [];\r\n let field = null;\r\n let fieldSub = null;\r\n for (let i = 0; i < fields.length; i++) {\r\n field = fields[i];\r\n if (field[1]['remote-source'] !== undefined && field[1]['remote-source'] !== null) {\r\n const key = this.getRemoteSourceKey(field);\r\n if (remoteSourceFieldKeys.indexOf(key) < 0) {\r\n remoteSourceFields.push(field);\r\n remoteSourceFieldKeys.push(key);\r\n }\r\n } else if (field[1].form !== undefined && field[1].form !== null) {\r\n for (let j = 0; j < field[1].form.length; j++) {\r\n fieldSub = field[1].form[j];\r\n if (fieldSub[1]['remote-source'] !== undefined && fieldSub[1]['remote-source'] !== null) {\r\n const key = this.getRemoteSourceKey(fieldSub);\r\n if (remoteSourceFieldKeys.indexOf(key) < 0) {\r\n remoteSourceFields.push(fieldSub);\r\n remoteSourceFieldKeys.push(key);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n return remoteSourceFields;\r\n }\r\n\r\n /**\r\n * Pass true to this method after creating module JS object to open new/edit entry form for the module on a popup.\r\n * @method setShowFormOnPopup\r\n * @param val {Boolean}\r\n * @example\r\n * modJs.subModJsList['tabCandidateApplication'] = new CandidateApplicationAdapter('Application','CandidateApplication',{\"candidate\":data.id}\r\n * modJs.subModJsList['tabCandidateApplication'].setShowFormOnPopup(true);\r\n */\r\n\r\n setShowFormOnPopup(val) {\r\n this.showFormOnPopup = val;\r\n }\r\n\r\n /**\r\n * Set this to true to if you need the datatable to load data page by page instead of loading all data at once.\r\n * @method setRemoteTable\r\n * @param val {Boolean}\r\n * @example\r\n * modJs.subModJsList['tabCandidateApplication'] = new CandidateApplicationAdapter('Application','CandidateApplication',{\"candidate\":data.id}\r\n * modJs.subModJsList['tabCandidateApplication'].setRemoteTable(true);\r\n */\r\n\r\n setRemoteTable(val) {\r\n this.createRemoteTable = val;\r\n }\r\n\r\n setSettings(val) {\r\n this.settings = val;\r\n }\r\n\r\n getRemoteTable() {\r\n return this.createRemoteTable;\r\n }\r\n\r\n isAllLoaded(fieldMasterDataKeys) {\r\n for (const key in fieldMasterDataKeys) {\r\n if (fieldMasterDataKeys[key] === false) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n initFieldMasterDataResponse(key, data, callback, loadAllCallbackData) {\r\n this.fieldMasterData[key] = data;\r\n this.fieldMasterDataKeys[key] = true;\r\n\r\n if (callback !== undefined && callback !== null) {\r\n callback();\r\n }\r\n\r\n if (this.fieldMasterDataCallback !== null\r\n && this.fieldMasterDataCallback !== undefined\r\n && this.isAllLoaded(this.fieldMasterDataKeys)\r\n && (this.fieldMasterDataCallbackData !== null && this.fieldMasterDataCallbackData !== undefined)\r\n ) {\r\n this.fieldMasterDataCallback(this.fieldMasterDataCallbackData);\r\n } else if (this.fieldMasterDataCallback !== null\r\n && this.fieldMasterDataCallback !== undefined\r\n && this.isAllLoaded(this.fieldMasterDataKeys)\r\n ) {\r\n this.fieldMasterDataCallback();\r\n }\r\n }\r\n\r\n getMetaFieldValues(key, fields) {\r\n for (let i = 0; i < fields.length; i++) {\r\n if (key === fields[i][0]) {\r\n return fields[i][1];\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n getThemeColors() {\r\n const colors = ['red', 'yellow', 'aqua', 'blue',\r\n 'light-blue', 'green', 'navy', 'teal', 'olive', 'orange',\r\n 'fuchsia', 'purple'];\r\n\r\n return colors;\r\n }\r\n\r\n getColorByRandomString(string) {\r\n const colors = this.getThemeColors();\r\n const k = string.charCodeAt(0);\r\n return colors[k % colors.length];\r\n }\r\n\r\n getColorByFileType(type) {\r\n type = type.toLowerCase();\r\n\r\n const colorMap = {};\r\n colorMap.pdf = 'red';\r\n colorMap.csv = 'yellow';\r\n colorMap.xls = 'green';\r\n colorMap.xlsx = 'green';\r\n colorMap.doc = 'light-blue';\r\n colorMap.docx = 'light-blue';\r\n colorMap.docx = 'blue';\r\n colorMap.ppt = 'orange';\r\n colorMap.pptx = 'orange';\r\n colorMap.jpg = 'teal';\r\n colorMap.jpeg = 'teal';\r\n colorMap.gif = 'green';\r\n colorMap.png = 'yellow';\r\n colorMap.bmp = 'fuchsia';\r\n\r\n\r\n if (colorMap[type] !== undefined || colorMap[type] != null) {\r\n return colorMap[type];\r\n }\r\n return this.getColorByRandomString(type);\r\n }\r\n\r\n getIconByFileType(type) {\r\n type = type.toLowerCase();\r\n\r\n const iconMap = {};\r\n iconMap.pdf = 'fa fa-file-pdf-o';\r\n iconMap.csv = 'fa fa fa-file-code-o';\r\n iconMap.xls = 'fa fa-file-excel-o';\r\n iconMap.xlsx = 'fa fa-file-excel-o';\r\n iconMap.doc = 'fa fa-file-word-o';\r\n iconMap.docx = 'fa fa-file-word-o';\r\n iconMap.ppt = 'fa fa-file-powerpoint-o';\r\n iconMap.pptx = 'fa fa-file-powerpoint-o';\r\n iconMap.jpg = 'fa fa-file-image-o';\r\n iconMap.jpeg = 'fa fa-file-image-o';\r\n iconMap.gif = 'fa fa-file-image-o';\r\n iconMap.png = 'fa fa-file-image-o';\r\n iconMap.bmp = 'fa fa-file-image-o';\r\n iconMap.txt = 'fa fa-file-text-o';\r\n iconMap.rtf = 'fa fa-file-text-o';\r\n\r\n\r\n if (iconMap[type] !== undefined || iconMap[type] != null) {\r\n return iconMap[type];\r\n }\r\n return 'fa fa-file-o';\r\n }\r\n\r\n getSourceMapping() {\r\n return this.sourceMapping;\r\n }\r\n\r\n setTesting(testing) {\r\n this.testing = testing;\r\n }\r\n\r\n consoleLog(message) {\r\n if (this.testing) {\r\n console.log(message);\r\n }\r\n }\r\n\r\n setClientMessages(msgList) {\r\n this.msgList = msgList;\r\n }\r\n\r\n setTemplates(templates) {\r\n this.templates = templates;\r\n }\r\n\r\n\r\n getWSProperty(array, key) {\r\n if (array.hasOwnProperty(key)) {\r\n return array[key];\r\n }\r\n return null;\r\n }\r\n\r\n\r\n getClientMessage(key) {\r\n return this.getWSProperty(this.msgList, key);\r\n }\r\n\r\n\r\n getTemplate(key) {\r\n return this.getWSProperty(this.templates, key);\r\n }\r\n\r\n setGoogleAnalytics(gaq) {\r\n this.gaq = gaq;\r\n }\r\n\r\n\r\n showView(view) {\r\n if (this.currentView != null) {\r\n this.previousView = this.currentView;\r\n $(`#${this.currentView}`).hide();\r\n }\r\n $(`#${view}`).show();\r\n this.currentView = view;\r\n this.moveToTop();\r\n }\r\n\r\n showPreviousView() {\r\n this.showView(this.previousView);\r\n }\r\n\r\n\r\n moveToTop() {\r\n\r\n }\r\n\r\n\r\n callFunction(callback, cbParams, thisParam) {\r\n if ($.isFunction(callback)) {\r\n try {\r\n if (thisParam === undefined || thisParam === null) {\r\n callback.apply(document, cbParams);\r\n } else {\r\n callback.apply(thisParam, cbParams);\r\n }\r\n } catch (e) {\r\n console.log(e.message);\r\n }\r\n } else {\r\n const f = this[callback];\r\n if ($.isFunction(f)) {\r\n try {\r\n f.apply(this, cbParams);\r\n } catch (e) {\r\n console.log(e.message);\r\n }\r\n }\r\n }\r\n }\r\n\r\n getTableTopButtonHtml() {\r\n let html = '';\r\n if (this.getShowAddNew()) {\r\n html = ``;\r\n }\r\n\r\n if (this.getFilters() != null) {\r\n if (html !== '') {\r\n html += '  ';\r\n }\r\n html += ``;\r\n html += '  ';\r\n if (this.filtersAlreadySet) {\r\n html += '';\r\n } else {\r\n html += '';\r\n }\r\n }\r\n\r\n html = html.replace(/__id__/g, this.getTableName());\r\n\r\n if (this.currentFilterString !== '' && this.currentFilterString != null) {\r\n html = html.replace(/__filterString__/g, this.currentFilterString);\r\n } else {\r\n html = html.replace(/__filterString__/g, 'Reset Filters');\r\n }\r\n\r\n if (html !== '') {\r\n html = `
${html}
`;\r\n }\r\n\r\n return html;\r\n }\r\n\r\n\r\n getActionButtonHeader() {\r\n return { sTitle: '', sClass: 'center' };\r\n }\r\n\r\n getTableHTMLTemplate() {\r\n return '
';\r\n }\r\n\r\n isSortable() {\r\n return true;\r\n }\r\n\r\n /**\r\n * Create the data table on provided element id\r\n * @method createTable\r\n * @param val {Boolean}\r\n */\r\n\r\n createTable(elementId) {\r\n const that = this;\r\n\r\n if (this.getRemoteTable()) {\r\n this.createTableServer(elementId);\r\n return;\r\n }\r\n\r\n\r\n const headers = this.getHeaders();\r\n\r\n // add translations\r\n for (const index in headers) {\r\n headers[index].sTitle = this.gt(headers[index].sTitle);\r\n }\r\n\r\n const data = this.getTableData();\r\n\r\n if (this.showActionButtons()) {\r\n headers.push(this.getActionButtonHeader());\r\n }\r\n\r\n\r\n if (this.showActionButtons()) {\r\n for (let i = 0; i < data.length; i++) {\r\n data[i].push(this.getActionButtonsHtml(data[i][0], data[i]));\r\n }\r\n }\r\n\r\n let html = '';\r\n html = this.getTableTopButtonHtml() + this.getTableHTMLTemplate();\r\n /*\r\n if(this.getShowAddNew()){\r\n html = this.getTableTopButtonHtml()+'
';\r\n }else{\r\n html = '
';\r\n }\r\n */\r\n // Find current page\r\n const activePage = $(`#${elementId} .dataTables_paginate .active a`).html();\r\n let start = 0;\r\n if (activePage !== undefined && activePage != null) {\r\n start = parseInt(activePage, 10) * 15 - 15;\r\n }\r\n\r\n $(`#${elementId}`).html(html);\r\n\r\n const dataTableParams = {\r\n oLanguage: {\r\n sLengthMenu: '_MENU_ records per page',\r\n },\r\n aaData: data,\r\n aoColumns: headers,\r\n bSort: that.isSortable(),\r\n iDisplayLength: 15,\r\n iDisplayStart: start,\r\n };\r\n\r\n\r\n const customTableParams = this.getCustomTableParams();\r\n\r\n $.extend(dataTableParams, customTableParams);\r\n\r\n $(`#${elementId} #grid`).dataTable(dataTableParams);\r\n\r\n $('.dataTables_paginate ul').addClass('pagination');\r\n $('.dataTables_length').hide();\r\n $('.dataTables_filter input').addClass('form-control');\r\n $('.dataTables_filter input').attr('placeholder', 'Search');\r\n $('.dataTables_filter label').contents().filter(function () {\r\n return (this.nodeType === 3);\r\n }).remove();\r\n $('.tableActionButton').tooltip();\r\n }\r\n\r\n /**\r\n * Create a data table on provided element id which loads data page by page\r\n * @method createTableServer\r\n * @param val {Boolean}\r\n */\r\n\r\n createTableServer(elementId) {\r\n const that = this;\r\n const headers = this.getHeaders();\r\n\r\n headers.push({ sTitle: '', sClass: 'center' });\r\n\r\n // add translations\r\n for (const index in headers) {\r\n headers[index].sTitle = this.gt(headers[index].sTitle);\r\n }\r\n\r\n let html = '';\r\n html = this.getTableTopButtonHtml() + this.getTableHTMLTemplate();\r\n\r\n // Find current page\r\n const activePage = $(`#${elementId} .dataTables_paginate .active a`).html();\r\n let start = 0;\r\n if (activePage !== undefined && activePage != null) {\r\n start = parseInt(activePage, 10) * 15 - 15;\r\n }\r\n\r\n\r\n $(`#${elementId}`).html(html);\r\n\r\n const dataTableParams = {\r\n oLanguage: {\r\n sLengthMenu: '_MENU_ records per page',\r\n },\r\n bProcessing: true,\r\n bServerSide: true,\r\n sAjaxSource: that.getDataUrl(that.getDataMapping()),\r\n aoColumns: headers,\r\n bSort: that.isSortable(),\r\n parent: that,\r\n iDisplayLength: 15,\r\n iDisplayStart: start,\r\n };\r\n\r\n if (this.showActionButtons()) {\r\n dataTableParams.aoColumnDefs = [\r\n {\r\n fnRender: that.getActionButtons,\r\n aTargets: [that.getDataMapping().length],\r\n },\r\n ];\r\n }\r\n\r\n const customTableParams = this.getCustomTableParams();\r\n\r\n $.extend(dataTableParams, customTableParams);\r\n\r\n $(`#${elementId} #grid`).dataTable(dataTableParams);\r\n\r\n $('.dataTables_paginate ul').addClass('pagination');\r\n $('.dataTables_length').hide();\r\n $('.dataTables_filter input').addClass('form-control');\r\n $('.dataTables_filter input').attr('placeholder', 'Search');\r\n $('.dataTables_filter label').contents().filter(function () {\r\n return (this.nodeType === 3);\r\n }).remove();\r\n\r\n $('.tableActionButton').tooltip();\r\n }\r\n\r\n /**\r\n * This should be overridden in module lib.js classes to return module headers which are used to create the data table.\r\n * @method getHeaders\r\n * @example\r\n SettingAdapter.method('getHeaders() {\r\n return [\r\n { \"sTitle\": \"ID\" ,\"bVisible\":false},\r\n { \"sTitle\": \"Name\" },\r\n { \"sTitle\": \"Value\"},\r\n { \"sTitle\": \"Details\"}\r\n ];\r\n }\r\n */\r\n getHeaders() {\r\n\r\n }\r\n\r\n\r\n /**\r\n * This should be overridden in module lib.js classes to return module field values which are used to create the data table.\r\n * @method getDataMapping\r\n * @example\r\n SettingAdapter.method('getDataMapping() {\r\n return [\r\n \"id\",\r\n \"name\",\r\n \"value\",\r\n \"description\"\r\n ];\r\n }\r\n */\r\n\r\n getDataMapping() {\r\n\r\n }\r\n\r\n /**\r\n * This should be overridden in module lib.js classes to return module from fields which are used to create the add/edit form and also used for initializing select box values in form.\r\n * @method getFormFields\r\n * @example\r\n SettingAdapter.method('getFormFields() {\r\n return [\r\n [ \"id\", {\"label\":\"ID\",\"type\":\"hidden\"}],\r\n [ \"value\", {\"label\":\"Value\",\"type\":\"text\",\"validation\":\"none\"}]\r\n ];\r\n }\r\n */\r\n getFormFields() {\r\n\r\n }\r\n\r\n getTableColumns() {\r\n return [];\r\n }\r\n\r\n getTableData() {\r\n\r\n }\r\n\r\n /**\r\n * This can be overridden in module lib.js classes inorder to show a filter form\r\n * @method getFilters\r\n * @example\r\n EmployeeAdapter.method('getFilters() {\r\n return [\r\n [ \"job_title\", {\"label\":\"Job Title\",\"type\":\"select2\",\"allow-null\":true,\"null-label\":\"All Job Titles\",\"remote-source\":[\"JobTitle\",\"id\",\"name\"]}],\r\n [ \"department\", {\"label\":\"Department\",\"type\":\"select2\",\"allow-null\":true,\"null-label\":\"All Departments\",\"remote-source\":[\"CompanyStructure\",\"id\",\"title\"]}],\r\n [ \"supervisor\", {\"label\":\"Supervisor\",\"type\":\"select2\",\"allow-null\":true,\"null-label\":\"Anyone\",\"remote-source\":[\"Employee\",\"id\",\"first_name+last_name\"]}]\r\n ];\r\n }\r\n */\r\n getFilters() {\r\n return null;\r\n }\r\n\r\n /**\r\n * Show the edit form for an item\r\n * @method edit\r\n * @param id {int} id of the item to edit\r\n */\r\n edit(id) {\r\n this.currentId = id;\r\n this.getElement(id, []);\r\n }\r\n\r\n copyRow(id) {\r\n this.getElement(id, [], true);\r\n }\r\n\r\n renderModel(id, header, body) {\r\n $(`#${id}ModelBody`).html('');\r\n\r\n if (body === undefined || body == null) {\r\n body = '';\r\n }\r\n\r\n $(`#${id}ModelLabel`).html(header);\r\n $(`#${id}ModelBody`).html(body);\r\n }\r\n\r\n\r\n renderYesNoModel(header, body, yesBtnName, noBtnName, callback, callbackParams) {\r\n const that = this;\r\n const modelId = '#yesnoModel';\r\n\r\n if (body === undefined || body == null) {\r\n body = '';\r\n }\r\n\r\n $(`${modelId}Label`).html(header);\r\n $(`${modelId}Body`).html(body);\r\n if (yesBtnName != null) {\r\n $(`${modelId}YesBtn`).html(yesBtnName);\r\n }\r\n if (noBtnName != null) {\r\n $(`${modelId}NoBtn`).html(noBtnName);\r\n }\r\n\r\n $(`${modelId}YesBtn`).off().on('click', () => {\r\n if (callback !== undefined && callback != null) {\r\n callback.apply(that, callbackParams);\r\n that.cancelYesno();\r\n }\r\n });\r\n\r\n $(modelId).modal({\r\n backdrop: 'static',\r\n });\r\n }\r\n\r\n renderModelFromDom(id, header, element) {\r\n $(`#${id}ModelBody`).html('');\r\n\r\n if (element === undefined || element == null) {\r\n element = $('
');\r\n }\r\n\r\n $(`#${id}ModelLabel`).html(header);\r\n $(`#${id}ModelBody`).html('');\r\n $(`#${id}ModelBody`).append(element);\r\n }\r\n\r\n /**\r\n * Delete an item\r\n * @method deleteRow\r\n * @param id {int} id of the item to edit\r\n */\r\n\r\n deleteRow(id) {\r\n this.deleteParams.id = id;\r\n this.renderModel('delete', 'Confirm Deletion', 'Are you sure you want to delete this item ?');\r\n $('#deleteModel').modal('show');\r\n }\r\n\r\n /**\r\n * Show a popup with message\r\n * @method showMessage\r\n * @param title {String} title of the message box\r\n * @param message {String} message\r\n * @param closeCallback {Function} this will be called once the dialog is closed (optional)\r\n * @param closeCallback {Function} data to pass to close callback (optional)\r\n * @param closeCallbackData\r\n * @param isPlain {Boolean} if true buttons are not shown (optional / default = true)\r\n * @example\r\n * this.showMessage(\"Error Occured while Applying Leave\", callBackData);\r\n */\r\n showMessage(title, message, closeCallback = null, closeCallbackData = null, isPlain = false) {\r\n const that = this;\r\n let modelId = '';\r\n if (isPlain) {\r\n modelId = '#plainMessageModel';\r\n } else {\r\n modelId = '#messageModel';\r\n }\r\n\r\n $(modelId).off();\r\n\r\n if (isPlain) {\r\n this.renderModel('plainMessage', title, message);\r\n } else {\r\n this.renderModel('message', title, message);\r\n }\r\n\r\n if (closeCallback !== null && closeCallback !== undefined) {\r\n $(modelId).modal({ show: true });\r\n $(modelId).on('hidden.bs.modal', () => {\r\n closeCallback.apply(that, closeCallbackData);\r\n $('.modal-backdrop').remove();\r\n });\r\n } else {\r\n $(modelId).modal({\r\n backdrop: 'static',\r\n });\r\n }\r\n }\r\n\r\n showDomElement(title, element, closeCallback, closeCallbackData, isPlain) {\r\n const that = this;\r\n let modelId = '';\r\n if (isPlain) {\r\n modelId = '#dataMessageModel';\r\n } else {\r\n modelId = '#messageModel';\r\n }\r\n\r\n $(modelId).unbind('hide');\r\n\r\n if (isPlain) {\r\n this.renderModelFromDom('dataMessage', title, element);\r\n } else {\r\n this.renderModelFromDom('message', title, element);\r\n }\r\n\r\n\r\n if (closeCallback !== null && closeCallback !== undefined) {\r\n $(modelId).modal({ show: true });\r\n $(modelId).on('hidden.bs.modal', () => {\r\n closeCallback.apply(that, closeCallbackData);\r\n $('.modal-backdrop').remove();\r\n });\r\n } else {\r\n $(modelId).modal({\r\n backdrop: 'static',\r\n });\r\n }\r\n }\r\n\r\n confirmDelete() {\r\n if (this.deleteParams.id !== undefined || this.deleteParams.id != null) {\r\n this.deleteObj(this.deleteParams.id, []);\r\n }\r\n $('#deleteModel').modal('hide');\r\n }\r\n\r\n cancelDelete() {\r\n $('#deleteModel').modal('hide');\r\n this.deleteParams.id = null;\r\n }\r\n\r\n closeMessage() {\r\n $('#messageModel').modal('hide');\r\n }\r\n\r\n cancelYesno() {\r\n $('#yesnoModel').modal('hide');\r\n }\r\n\r\n closePlainMessage() {\r\n $('#plainMessageModel').modal('hide');\r\n $('#dataMessageModel').modal('hide');\r\n }\r\n\r\n closeDataMessage() {\r\n $('#dataMessageModel').modal('hide');\r\n }\r\n\r\n\r\n /**\r\n * Create or edit an element\r\n * @method save\r\n * @param getFunctionCallBackData {Array} once a success is returned call get() function for this module with these parameters\r\n * @param successCallback {Function} this will get called after success response\r\n */\r\n\r\n save(callGetFunction, successCallback) {\r\n const validator = new FormValidation(`${this.getTableName()}_submit`, true, { ShowPopup: false, LabelErrorClass: 'error' });\r\n if (validator.checkValues()) {\r\n let params = validator.getFormParameters();\r\n params = this.forceInjectValuesBeforeSave(params);\r\n const msg = this.doCustomValidation(params);\r\n if (msg == null) {\r\n if (this.csrfRequired) {\r\n params.csrf = $(`#${this.getTableName()}Form`).data('csrf');\r\n }\r\n const id = $(`#${this.getTableName()}_submit #id`).val();\r\n if (id != null && id !== undefined && id !== '') {\r\n params.id = id;\r\n }\r\n params = this.makeEmptyDateFieldsNull(params);\r\n this.add(params, [], callGetFunction, successCallback);\r\n } else {\r\n $(`#${this.getTableName()}Form .label`).html(msg);\r\n $(`#${this.getTableName()}Form .label`).show();\r\n this.scrollToTop();\r\n }\r\n }\r\n }\r\n\r\n\r\n makeEmptyDateFieldsNull(params) {\r\n const fields = this.getFormFields();\r\n fields.forEach((field) => {\r\n if ((field[1].type === 'date' || field[1].type === 'datetime')\r\n && (params[field[0]] === '' || params[field[0]] === '0000-00-00' || params[field[0]] === '0000-00-00 00:00:00')) {\r\n if (field[1].validation === 'none') {\r\n params[field[0]] = 'NULL';\r\n } else {\r\n delete params[field[0]];\r\n }\r\n }\r\n });\r\n return params;\r\n }\r\n\r\n validatePassword(password) {\r\n if (password.length < 8) {\r\n return this.gt('Password too short');\r\n }\r\n\r\n if (password.length > 30) {\r\n return this.gt('Password too long');\r\n }\r\n\r\n const numberTester = /.*[0-9]+.*$/;\r\n if (!password.match(numberTester)) {\r\n return this.gt('Password must include at least one number');\r\n }\r\n\r\n const lowerTester = /.*[a-z]+.*$/;\r\n if (!password.match(lowerTester)) {\r\n return this.gt('Password must include at least one lowercase letter');\r\n }\r\n\r\n const upperTester = /.*[A-Z]+.*$/;\r\n if (!password.match(upperTester)) {\r\n return this.gt('Password must include at least one uppercase letter');\r\n }\r\n\r\n const symbolTester = /.*[\\W]+.*$/;\r\n if (!password.match(symbolTester)) {\r\n return this.gt('Password must include at least one symbol');\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /**\r\n * Override this method to inject attitional parameters or modify existing parameters retrived from\r\n * add/edit form before sending to the server\r\n * @method forceInjectValuesBeforeSave\r\n * @param params {Array} keys and values in form\r\n * @returns {Array} modified parameters\r\n */\r\n forceInjectValuesBeforeSave(params) {\r\n return params;\r\n }\r\n\r\n /**\r\n * Override this method to do custom validations at client side\r\n * @method doCustomValidation\r\n * @param params {Array} keys and values in form\r\n * @returns {Null or String} return null if validation success, returns error message if unsuccessful\r\n * @example\r\n EmployeeLeaveAdapter.method('doCustomValidation(params) {\r\n try{\r\n if(params['date_start'] != params['date_end']){\r\n var ds = new Date(params['date_start']);\r\n var de = new Date(params['date_end']);\r\n if(de < ds){\r\n return \"Start date should be earlier than end date of the leave period\";\r\n }\r\n }\r\n }catch(e){\r\n\r\n }\r\n return null;\r\n}\r\n */\r\n // eslint-disable-next-line no-unused-vars\r\n doCustomValidation(params) {\r\n return null;\r\n }\r\n\r\n filterQuery() {\r\n const validator = new FormValidation(`${this.getTableName()}_filter`, true, { ShowPopup: false, LabelErrorClass: 'error' });\r\n if (validator.checkValues()) {\r\n const params = validator.getFormParameters();\r\n if (this.doCustomFilterValidation(params)) {\r\n // remove null params\r\n for (const prop in params) {\r\n if (params.hasOwnProperty(prop)) {\r\n if (params[prop] === 'NULL') {\r\n delete (params[prop]);\r\n }\r\n }\r\n }\r\n\r\n this.setFilter(params);\r\n this.filtersAlreadySet = true;\r\n $(`#${this.getTableName()}_resetFilters`).show();\r\n this.currentFilterString = this.getFilterString(params);\r\n\r\n this.get([]);\r\n this.closePlainMessage();\r\n }\r\n }\r\n }\r\n\r\n\r\n getFilterString(filters) {\r\n let str = '';\r\n let rmf; let source; let values; let select2MVal; let value; let\r\n valueOrig;\r\n\r\n const filterFields = this.getFilters();\r\n\r\n\r\n if (values == null) {\r\n values = [];\r\n }\r\n\r\n for (const prop in filters) {\r\n if (filters.hasOwnProperty(prop)) {\r\n values = this.getMetaFieldValues(prop, filterFields);\r\n if (!values) {\r\n continue;\r\n }\r\n value = '';\r\n valueOrig = null;\r\n\r\n if ((values.type === 'select' || values.type === 'select2')) {\r\n if (values['remote-source'] !== undefined && values['remote-source'] != null) {\r\n rmf = values['remote-source'];\r\n if (filters[prop] === 'NULL') {\r\n if (values['null-label'] !== undefined && values['null-label'] != null) {\r\n value = values['null-label'];\r\n } else {\r\n value = 'Not Selected';\r\n }\r\n } else {\r\n let key = `${rmf[0]}_${rmf[1]}_${rmf[2]}`;\r\n if (rmf.length > 3) {\r\n key = `${key}_${rmf[3]}`;\r\n }\r\n // value = this.fieldMasterData[`${rmf[0]}_${rmf[1]}_${rmf[2]}`][filters[prop]];\r\n value = this.fieldMasterData[key][filters[prop]];\r\n valueOrig = value;\r\n }\r\n } else {\r\n source = values.source[0];\r\n if (filters[prop] === 'NULL') {\r\n if (values['null-label'] !== undefined && values['null-label'] != null) {\r\n value = values['null-label'];\r\n } else {\r\n value = 'Not Selected';\r\n }\r\n } else {\r\n for (let i = 0; i < source.length; i++) {\r\n if (filters[prop] === values.source[i][0]) {\r\n value = values.source[i][1];\r\n valueOrig = value;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n } else if (values.type === 'select2multi') {\r\n select2MVal = [];\r\n try {\r\n select2MVal = JSON.parse(filters[prop]);\r\n } catch (e) {\r\n // Do nothing\r\n }\r\n\r\n value = select2MVal.join(',');\r\n if (value !== '') {\r\n valueOrig = value;\r\n }\r\n } else {\r\n value = filters[prop];\r\n if (value !== '') {\r\n valueOrig = value;\r\n }\r\n }\r\n\r\n if (valueOrig != null) {\r\n if (str !== '') {\r\n str += ' | ';\r\n }\r\n\r\n str += `${values.label} = ${value}`;\r\n }\r\n }\r\n }\r\n\r\n return str;\r\n }\r\n\r\n /**\r\n * Override this method to do custom validations at client side for values selected in filters\r\n * @method doCustomFilterValidation\r\n * @param params {Array} keys and values in form\r\n * @returns {Null or String} return null if validation success, returns error message if unsuccessful\r\n */\r\n doCustomFilterValidation(params) {\r\n return true;\r\n }\r\n\r\n\r\n /**\r\n * Reset selected filters\r\n * @method resetFilters\r\n */\r\n\r\n resetFilters() {\r\n this.filter = this.origFilter;\r\n this.filtersAlreadySet = false;\r\n $(`#${this.getTableName()}_resetFilters`).hide();\r\n this.currentFilterString = '';\r\n this.get([]);\r\n }\r\n\r\n\r\n showFilters(object) {\r\n let formHtml = this.templates.filterTemplate;\r\n let html = '';\r\n const fields = this.getFilters();\r\n\r\n for (let i = 0; i < fields.length; i++) {\r\n const metaField = this.getMetaFieldForRendering(fields[i][0]);\r\n if (metaField === '' || metaField === undefined) {\r\n html += this.renderFormField(fields[i]);\r\n } else {\r\n const metaVal = object[metaField];\r\n if (metaVal !== '' && metaVal != null && metaVal !== undefined && metaVal.trim() !== '') {\r\n html += this.renderFormField(JSON.parse(metaVal));\r\n } else {\r\n html += this.renderFormField(fields[i]);\r\n }\r\n }\r\n }\r\n formHtml = formHtml.replace(/_id_/g, `${this.getTableName()}_filter`);\r\n formHtml = formHtml.replace(/_fields_/g, html);\r\n\r\n const randomFormId = this.generateRandom(14);\r\n const $tempDomObj = $('
');\r\n $tempDomObj.attr('id', randomFormId);\r\n\r\n $tempDomObj.html(formHtml);\r\n\r\n\r\n $tempDomObj.find('.datefield').datepicker({ viewMode: 2 });\r\n $tempDomObj.find('.timefield').datetimepicker({\r\n language: 'en',\r\n pickDate: false,\r\n });\r\n $tempDomObj.find('.datetimefield').datetimepicker({\r\n language: 'en',\r\n });\r\n\r\n $tempDomObj.find('.colorpick').colorpicker();\r\n tinymce.init({\r\n selector: `#${$tempDomObj.attr('id')} .tinymce`,\r\n height: '400',\r\n });\r\n\r\n $tempDomObj.find('.simplemde').each(function () {\r\n const simplemde = new SimpleMDE({ element: $(this)[0] });\r\n $(this).data('simplemde', simplemde);\r\n // simplemde.value($(this).val());\r\n });\r\n\r\n // $tempDomObj.find('.select2Field').select2();\r\n $tempDomObj.find('.select2Field').each(function () {\r\n $(this).select2().select2('val', $(this).find('option:eq(0)').val());\r\n });\r\n\r\n $tempDomObj.find('.select2Multi').each(function () {\r\n $(this).select2().on('change', function (e) {\r\n const parentRow = $(this).parents('.row');\r\n const height = parentRow.find('.select2-choices').height();\r\n parentRow.height(parseInt(height, 10));\r\n });\r\n });\r\n\r\n /*\r\n $tempDomObj.find('.signatureField').each(function() {\r\n $(this).data('signaturePad',new SignaturePad($(this)));\r\n });\r\n */\r\n\r\n // var tHtml = $tempDomObj.wrap('
').parent().html();\r\n this.showDomElement('Edit', $tempDomObj, null, null, true);\r\n $('.filterBtn').off();\r\n $('.filterBtn').on('click', (e) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n try {\r\n modJs.filterQuery();\r\n } catch (err) {\r\n console.log(err);\r\n console.log(err.message);\r\n }\r\n return false;\r\n });\r\n\r\n if (this.filter !== undefined && this.filter != null && this.filter !== '') {\r\n this.fillForm(this.filter, `#${this.getTableName()}_filter`, this.getFilters());\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Override this method in your module class to make changes to data fo the form before showing the form\r\n * @method preRenderForm\r\n * @param object {Array} keys value list for populating form\r\n */\r\n\r\n preRenderForm(object) {\r\n\r\n }\r\n\r\n /**\r\n * Create the form\r\n * @method renderForm\r\n * @param object {Array} keys value list for populating form\r\n */\r\n\r\n renderForm(object) {\r\n const signatureIds = [];\r\n if (object == null || object === undefined) {\r\n this.currentId = null;\r\n }\r\n\r\n this.preRenderForm(object);\r\n\r\n let formHtml = this.templates.formTemplate;\r\n let html = '';\r\n const fields = this.getFormFields();\r\n\r\n for (let i = 0; i < fields.length; i++) {\r\n const metaField = this.getMetaFieldForRendering(fields[i][0]);\r\n if (metaField === '' || metaField === undefined) {\r\n html += this.renderFormField(fields[i]);\r\n } else {\r\n const metaVal = object[metaField];\r\n if (metaVal !== '' && metaVal != null && metaVal !== undefined && metaVal.trim() !== '') {\r\n html += this.renderFormField(JSON.parse(metaVal));\r\n } else {\r\n html += this.renderFormField(fields[i]);\r\n }\r\n }\r\n }\r\n formHtml = formHtml.replace(/_id_/g, `${this.getTableName()}_submit`);\r\n formHtml = formHtml.replace(/_fields_/g, html);\r\n\r\n\r\n let $tempDomObj;\r\n const randomFormId = this.generateRandom(14);\r\n if (!this.showFormOnPopup) {\r\n $tempDomObj = $(`#${this.getTableName()}Form`);\r\n } else {\r\n $tempDomObj = $('
');\r\n $tempDomObj.attr('id', randomFormId);\r\n }\r\n\r\n $tempDomObj.html(formHtml);\r\n\r\n\r\n $tempDomObj.find('.datefield').datepicker({ viewMode: 2 });\r\n $tempDomObj.find('.timefield').datetimepicker({\r\n language: 'en',\r\n pickDate: false,\r\n });\r\n $tempDomObj.find('.datetimefield').datetimepicker({\r\n language: 'en',\r\n });\r\n\r\n $tempDomObj.find('.colorpick').colorpicker();\r\n\r\n tinymce.init({\r\n selector: `#${$tempDomObj.attr('id')} .tinymce`,\r\n height: '400',\r\n });\r\n\r\n $tempDomObj.find('.simplemde').each(function () {\r\n const simplemde = new SimpleMDE({ element: $(this)[0] });\r\n $(this).data('simplemde', simplemde);\r\n // simplemde.value($(this).val());\r\n });\r\n\r\n const codeMirror = this.codeMirror;\r\n if (codeMirror) {\r\n $tempDomObj.find('.code').each(function () {\r\n const editor = codeMirror.fromTextArea($(this)[0], {\r\n lineNumbers: false,\r\n matchBrackets: true,\r\n continueComments: 'Enter',\r\n extraKeys: { 'Ctrl-Q': 'toggleComment' },\r\n });\r\n $(this).data('codemirror', editor);\r\n });\r\n }\r\n\r\n\r\n // $tempDomObj.find('.select2Field').select2();\r\n $tempDomObj.find('.select2Field').each(function () {\r\n $(this).select2().select2('val', $(this).find('option:eq(0)').val());\r\n });\r\n\r\n $tempDomObj.find('.select2Multi').each(function () {\r\n $(this).select2().on('change', function (e) {\r\n const parentRow = $(this).parents('.row');\r\n const height = parentRow.find('.select2-choices').height();\r\n parentRow.height(parseInt(height, 10));\r\n });\r\n });\r\n\r\n\r\n $tempDomObj.find('.signatureField').each(function () {\r\n // $(this).data('signaturePad',new SignaturePad($(this)));\r\n signatureIds.push($(this).attr('id'));\r\n });\r\n\r\n for (let i = 0; i < fields.length; i++) {\r\n if (fields[i][1].type === 'datagroup') {\r\n $tempDomObj.find(`#${fields[i][0]}`).data('field', fields[i]);\r\n }\r\n }\r\n\r\n if (this.showSave === false) {\r\n $tempDomObj.find('.saveBtn').remove();\r\n } else {\r\n $tempDomObj.find('.saveBtn').off();\r\n $tempDomObj.find('.saveBtn').data('modJs', this);\r\n $tempDomObj.find('.saveBtn').on('click', function () {\r\n if ($(this).data('modJs').saveSuccessItemCallback != null && $(this).data('modJs').saveSuccessItemCallback !== undefined) {\r\n $(this).data('modJs').save($(this).data('modJs').retriveItemsAfterSave(), $(this).data('modJs').saveSuccessItemCallback);\r\n } else {\r\n $(this).data('modJs').save();\r\n }\r\n\r\n return false;\r\n });\r\n }\r\n\r\n if (this.showCancel === false) {\r\n $tempDomObj.find('.cancelBtn').remove();\r\n } else {\r\n $tempDomObj.find('.cancelBtn').off();\r\n $tempDomObj.find('.cancelBtn').data('modJs', this);\r\n $tempDomObj.find('.cancelBtn').on('click', function () {\r\n $(this).data('modJs').cancel();\r\n return false;\r\n });\r\n }\r\n\r\n // Input mask\r\n $tempDomObj.find('[mask]').each(function () {\r\n $(this).inputmask($(this).attr('mask'));\r\n });\r\n\r\n $tempDomObj.find('[datemask]').each(function () {\r\n $(this).inputmask({\r\n mask: 'y-1-2',\r\n placeholder: 'YYYY-MM-DD',\r\n leapday: '-02-29',\r\n separator: '-',\r\n alias: 'yyyy/mm/dd',\r\n });\r\n });\r\n\r\n $tempDomObj.find('[datetimemask]').each(function () {\r\n $(this).inputmask('datetime', {\r\n mask: 'y-2-1 h:s:00',\r\n placeholder: 'YYYY-MM-DD hh:mm:ss',\r\n leapday: '-02-29',\r\n separator: '-',\r\n alias: 'yyyy/mm/dd',\r\n });\r\n });\r\n\r\n if (!this.showFormOnPopup) {\r\n $(`#${this.getTableName()}Form`).show();\r\n $(`#${this.getTableName()}`).hide();\r\n\r\n for (let i = 0; i < signatureIds.length; i++) {\r\n $(`#${signatureIds[i]}`)\r\n .data('signaturePad',\r\n new SignaturePad(document.getElementById(signatureIds[i])));\r\n }\r\n\r\n if (object !== undefined && object != null) {\r\n this.fillForm(object);\r\n } else {\r\n this.setDefaultValues();\r\n }\r\n\r\n this.scrollToTop();\r\n } else {\r\n // var tHtml = $tempDomObj.wrap('
').parent().html();\r\n // this.showMessage(\"Edit\",tHtml,null,null,true);\r\n this.showMessage('Edit', '', null, null, true);\r\n\r\n $('#plainMessageModel .modal-body').html('');\r\n $('#plainMessageModel .modal-body').append($tempDomObj);\r\n\r\n\r\n for (let i = 0; i < signatureIds.length; i++) {\r\n $(`#${signatureIds[i]}`)\r\n .data('signaturePad',\r\n new SignaturePad(document.getElementById(signatureIds[i])));\r\n }\r\n\r\n if (object !== undefined && object != null) {\r\n this.fillForm(object, `#${randomFormId}`);\r\n } else {\r\n this.setDefaultValues(`#${randomFormId}`);\r\n }\r\n }\r\n\r\n this.postRenderForm(object, $tempDomObj);\r\n }\r\n\r\n setDefaultValues(formId, fields) {\r\n if (fields == null || fields === undefined) {\r\n fields = this.getFormFields();\r\n }\r\n\r\n if (formId == null || formId === undefined || formId === '') {\r\n formId = `#${this.getTableName()}Form`;\r\n }\r\n\r\n\r\n for (let i = 0; i < fields.length; i++) {\r\n if (fields[i][1].type !== 'text' && fields[i][1].type !== 'textarea') {\r\n continue;\r\n }\r\n\r\n if (fields[i][1].default !== undefined && fields[i][1].default !== null) {\r\n $(`${formId} #${fields[i][0]}`).val(fields[i][1].default);\r\n }\r\n }\r\n }\r\n\r\n retriveItemsAfterSave() {\r\n return true;\r\n }\r\n\r\n /**\r\n * Override this method in your module class to make changes to data fo the form after showing it\r\n * @method postRenderForm\r\n * @param object {Array} keys value list for populating form\r\n * @param $tempDomObj {DOM} a DOM element for the form\r\n * @example\r\n * UserAdapter.method('postRenderForm(object, $tempDomObj) {\r\n if(object == null || object == undefined){\r\n $tempDomObj.find(\"#changePasswordBtn\").remove();\r\n }\r\n }\r\n */\r\n\r\n postRenderForm(object, $tempDomObj) {\r\n\r\n }\r\n\r\n /**\r\n * Convert data group field to HTML\r\n * @method dataGroupToHtml\r\n * @param val {String} value in the field\r\n * @param field {Array} field meta data\r\n */\r\n\r\n dataGroupToHtml(val, field) {\r\n const data = JSON.parse(val);\r\n\r\n\r\n let t; let sortFunction; let item; let itemHtml; let itemVal;\r\n\r\n const deleteButton = '
  • ';\r\n const editButton = '
  • ';\r\n\r\n const template = field[1].html;\r\n\r\n if (data != null && data !== undefined && field[1]['sort-function'] !== undefined && field[1]['sort-function'] != null) {\r\n data.sort(field[1]['sort-function']);\r\n }\r\n\r\n\r\n const html = $(`
    `);\r\n\r\n\r\n for (let i = 0; i < data.length; i++) {\r\n item = data[i];\r\n\r\n if (field[1]['pre-format-function'] !== undefined && field[1]['pre-format-function'] != null) {\r\n item = field[1]['pre-format-function'].apply(this, [item]);\r\n }\r\n\r\n t = template;\r\n t = t.replace('#_delete_#', deleteButton);\r\n t = t.replace('#_edit_#', editButton);\r\n t = t.replace(/#_id_#/g, item.id);\r\n\r\n for (const key in item) {\r\n itemVal = item[key];\r\n if (itemVal !== undefined && itemVal != null && typeof itemVal === 'string') {\r\n itemVal = itemVal.replace(/(?:\\r\\n|\\r|\\n)/g, '
    ');\r\n }\r\n t = t.replace(`#_${key}_#`, itemVal);\r\n }\r\n\r\n if (field[1].render !== undefined && field[1].render != null) {\r\n t = t.replace('#_renderFunction_#', field[1].render(item));\r\n }\r\n\r\n itemHtml = $(t);\r\n itemHtml.attr('fieldId', `${field[0]}_div`);\r\n html.append(itemHtml);\r\n }\r\n\r\n\r\n return html;\r\n }\r\n\r\n /**\r\n * Reset the DataGroup for a given field\r\n * @method resetDataGroup\r\n * @param field {Array} field meta data\r\n */\r\n resetDataGroup(field) {\r\n $(`#${field[0]}`).val('');\r\n $(`#${field[0]}_div`).html('');\r\n }\r\n\r\n showDataGroup(field, object, callback) {\r\n let formHtml = this.templates.datagroupTemplate;\r\n let html = '';\r\n const fields = field[1].form;\r\n\r\n if (object !== undefined && object != null && object.id !== undefined) {\r\n this.currentDataGroupItemId = object.id;\r\n } else {\r\n this.currentDataGroupItemId = null;\r\n }\r\n\r\n for (let i = 0; i < fields.length; i++) {\r\n html += this.renderFormField(fields[i]);\r\n }\r\n formHtml = formHtml.replace(/_id_/g, `${this.getTableName()}_field_${field[0]}`);\r\n formHtml = formHtml.replace(/_fields_/g, html);\r\n\r\n const randomFormId = this.generateRandom(14);\r\n const $tempDomObj = $('
    ');\r\n $tempDomObj.attr('id', randomFormId);\r\n\r\n $tempDomObj.html(formHtml);\r\n\r\n\r\n $tempDomObj.find('.datefield').datepicker({ viewMode: 2 });\r\n $tempDomObj.find('.timefield').datetimepicker({\r\n language: 'en',\r\n pickDate: false,\r\n });\r\n $tempDomObj.find('.datetimefield').datetimepicker({\r\n language: 'en',\r\n });\r\n\r\n $tempDomObj.find('.colorpick').colorpicker();\r\n\r\n tinymce.init({\r\n selector: `#${$tempDomObj.attr('id')} .tinymce`,\r\n height: '400',\r\n });\r\n\r\n $tempDomObj.find('.simplemde').each(function () {\r\n const simplemde = new SimpleMDE({ element: $(this)[0] });\r\n $(this).data('simplemde', simplemde);\r\n // simplemde.value($(this).val());\r\n });\r\n\r\n $tempDomObj.find('.select2Field').each(function () {\r\n $(this).select2().select2('val', $(this).find('option:eq(0)').val());\r\n });\r\n\r\n\r\n $tempDomObj.find('.select2Multi').each(function () {\r\n $(this).select2().on('change', function (e) {\r\n const parentRow = $(this).parents('.row');\r\n const height = parentRow.find('.select2-choices').height();\r\n parentRow.height(parseInt(height, 10));\r\n });\r\n });\r\n\r\n\r\n this.currentDataGroupField = field;\r\n this.showDomElement(`Add ${field[1].label}`, $tempDomObj, null, null, true);\r\n\r\n if (object !== undefined && object != null) {\r\n this.fillForm(object, `#${this.getTableName()}_field_${field[0]}`, field[1].form);\r\n } else {\r\n this.setDefaultValues(`#${this.getTableName()}_field_${field[0]}`, field[1].form);\r\n }\r\n\r\n\r\n $('.groupAddBtn').off();\r\n if (object !== undefined && object != null && object.id !== undefined) {\r\n $('.groupAddBtn').on('click', (e) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n try {\r\n modJs.editDataGroup(callback);\r\n } catch (err) {\r\n console.log(`Error editing data group: ${err.message}`);\r\n }\r\n return false;\r\n });\r\n } else {\r\n $('.groupAddBtn').on('click', (e) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n try {\r\n modJs.addDataGroup(callback);\r\n } catch (err) {\r\n console.log(`Error adding data group: ${err.message}`);\r\n }\r\n return false;\r\n });\r\n }\r\n }\r\n\r\n addDataGroup(callback, existingData) {\r\n const field = this.currentDataGroupField;\r\n let tempParams;\r\n $(`#${this.getTableName()}_field_${field[0]}_error`).html('');\r\n $(`#${this.getTableName()}_field_${field[0]}_error`).hide();\r\n const validator = new FormValidation(`${this.getTableName()}_field_${field[0]}`, true, { ShowPopup: false, LabelErrorClass: 'error' });\r\n if (validator.checkValues()) {\r\n let params = validator.getFormParameters();\r\n if (field[1]['custom-validate-function'] !== undefined && field[1]['custom-validate-function'] != null) {\r\n tempParams = field[1]['custom-validate-function'].apply(this, [params]);\r\n if (tempParams.valid) {\r\n params = tempParams.params;\r\n } else {\r\n $(`#${this.getTableName()}_field_${field[0]}_error`).html(tempParams.message);\r\n $(`#${this.getTableName()}_field_${field[0]}_error`).show();\r\n return false;\r\n }\r\n }\r\n let val = '[]';\r\n if (existingData) {\r\n val = existingData;\r\n } else {\r\n val = $(`#${field[0]}`).val();\r\n if (val === '' || val == null) {\r\n val = '[]';\r\n }\r\n }\r\n const data = JSON.parse(val);\r\n\r\n params.id = `${field[0]}_${this.dataGroupGetNextAutoIncrementId(data)}`;\r\n data.push(params);\r\n\r\n\r\n if (field[1]['sort-function'] !== undefined && field[1]['sort-function'] != null) {\r\n data.sort(field[1]['sort-function']);\r\n }\r\n\r\n val = JSON.stringify(data);\r\n\r\n const html = this.dataGroupToHtml(val, field);\r\n if (callback) {\r\n callback(val);\r\n }\r\n\r\n $(`#${field[0]}_div`).html('');\r\n $(`#${field[0]}_div`).append(html);\r\n\r\n this.makeDataGroupSortable(field, $(`#${field[0]}_div_inner`));\r\n\r\n\r\n $(`#${field[0]}`).val(val);\r\n this.orderDataGroup(field);\r\n\r\n this.closeDataMessage();\r\n\r\n this.showMessage('Item Added', 'This change will be effective only when you save the form');\r\n }\r\n return true;\r\n }\r\n\r\n nl2br(str, len) {\r\n let t = '';\r\n try {\r\n const arr = str.split(' ');\r\n let count = 0;\r\n for (let i = 0; i < arr.length; i++) {\r\n count += arr[i].length + 1;\r\n if (count > len) {\r\n t += `${arr[i]}
    `;\r\n count = 0;\r\n } else {\r\n t += `${arr[i]} `;\r\n }\r\n }\r\n } catch (e) {\r\n // Do nothing\r\n }\r\n return t;\r\n }\r\n\r\n makeDataGroupSortable(field, obj) {\r\n obj.data('field', field);\r\n obj.data('firstSort', true);\r\n obj.sortable({\r\n\r\n create() {\r\n $(this).height($(this).height());\r\n },\r\n\r\n 'ui-floating': false,\r\n start(e, uiStart) {\r\n $('#sortable-ul-selector-id').sortable({\r\n sort(event, ui) {\r\n const $target = $(event.target);\r\n if (!/html|body/i.test($target.offsetParent()[0].tagName)) {\r\n const top = event.pageY - $target.offsetParent().offset().top - (ui.helper.outerHeight(true) / 2);\r\n ui.helper.css({ top: `${top}px` });\r\n }\r\n },\r\n });\r\n },\r\n revert: true,\r\n stop() {\r\n modJs.orderDataGroup($(this).data('field'));\r\n },\r\n axis: 'y',\r\n scroll: false,\r\n placeholder: 'sortable-placeholder',\r\n cursor: 'move',\r\n });\r\n }\r\n\r\n orderDataGroup(field, callback) {\r\n const newArr = []; let\r\n id;\r\n const list = $(`#${field[0]}_div_inner [fieldid='${field[0]}_div']`);\r\n let val = $(`#${field[0]}`).val();\r\n if (val === '' || val == null) {\r\n val = '[]';\r\n }\r\n const data = JSON.parse(val);\r\n list.each(function () {\r\n id = $(this).attr('id');\r\n for (const index in data) {\r\n if (data[index].id === id) {\r\n newArr.push(data[index]);\r\n break;\r\n }\r\n }\r\n });\r\n\r\n $(`#${field[0]}`).val(JSON.stringify(newArr));\r\n\r\n if (callback != null) {\r\n callback(newArr);\r\n }\r\n }\r\n\r\n\r\n editDataGroup(callback, existingData) {\r\n const field = this.currentDataGroupField;\r\n const id = this.currentDataGroupItemId;\r\n const validator = new FormValidation(`${this.getTableName()}_field_${field[0]}`, true, { ShowPopup: false, LabelErrorClass: 'error' });\r\n if (validator.checkValues()) {\r\n let params = validator.getFormParameters();\r\n\r\n if (field[1]['custom-validate-function'] !== undefined && field[1]['custom-validate-function'] != null) {\r\n const tempParams = field[1]['custom-validate-function'].apply(this, [params]);\r\n if (tempParams.valid) {\r\n params = tempParams.params;\r\n } else {\r\n $(`#${this.getTableName()}_field_${field[0]}_error`).html(tempParams.message);\r\n $(`#${this.getTableName()}_field_${field[0]}_error`).show();\r\n return false;\r\n }\r\n }\r\n\r\n\r\n if (this.doCustomFilterValidation(params)) {\r\n let val = '[]';\r\n if (existingData) {\r\n val = existingData;\r\n } else {\r\n val = $(`#${field[0]}`).val();\r\n if (val === '' || val == null) {\r\n val = '[]';\r\n }\r\n }\r\n const data = JSON.parse(val);\r\n\r\n let editVal = {};\r\n let editValIndex = -1;\r\n const newVals = [];\r\n for (let i = 0; i < data.length; i++) {\r\n const item = data[i];\r\n if (item.id === id) {\r\n editVal = item;\r\n editValIndex = i;\r\n }\r\n newVals.push(item);\r\n }\r\n\r\n\r\n params.id = editVal.id;\r\n newVals[editValIndex] = params;\r\n\r\n if (field[1]['sort-function'] !== undefined && field[1]['sort-function'] != null) {\r\n newVals.sort(field[1]['sort-function']);\r\n }\r\n\r\n val = JSON.stringify(newVals);\r\n $(`#${field[0]}`).val(val);\r\n\r\n const html = this.dataGroupToHtml(val, field);\r\n\r\n if (callback) {\r\n callback(newVals);\r\n }\r\n\r\n this.orderDataGroup(field);\r\n\r\n $(`#${field[0]}_div`).html('');\r\n $(`#${field[0]}_div`).append(html);\r\n\r\n this.makeDataGroupSortable(field, $(`#${field[0]}_div_inner`));\r\n\r\n\r\n this.closeDataMessage();\r\n\r\n this.showMessage('Item Edited', 'This change will be effective only when you save the form');\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n editDataGroupItem(id, existingData, field) {\r\n const fieldId = id.substring(0, id.lastIndexOf('_'));\r\n\r\n let val;\r\n if (existingData) {\r\n val = decodeURI(existingData);\r\n } else {\r\n val = $(`#${fieldId}`).val();\r\n }\r\n const data = JSON.parse(val);\r\n\r\n let editVal = {};\r\n\r\n for (let i = 0; i < data.length; i++) {\r\n const item = data[i];\r\n if (item.id === id) {\r\n editVal = item;\r\n }\r\n }\r\n\r\n if (field) {\r\n field = JSON.parse(decodeURI(field));\r\n } else {\r\n field = $(`#${fieldId}`).data('field');\r\n }\r\n\r\n this.showDataGroup(field, editVal);\r\n }\r\n\r\n dataGroupGetNextAutoIncrementId(data) {\r\n let autoId = 1; let\r\n id;\r\n for (let i = 0; i < data.length; i++) {\r\n const item = data[i];\r\n if (item.id === undefined || item.id == null) {\r\n item.id = 1;\r\n }\r\n id = item.id.substring(item.id.lastIndexOf('_') + 1, item.id.length);\r\n if (id >= autoId) {\r\n autoId = parseInt(id, 10) + 1;\r\n }\r\n }\r\n\r\n return autoId;\r\n }\r\n\r\n\r\n deleteDataGroupItem(id, existingData) {\r\n const fieldId = id.substring(0, id.lastIndexOf('_'));\r\n\r\n let val;\r\n if (existingData) {\r\n val = decodeURI(existingData);\r\n } else {\r\n val = $(`#${fieldId}`).val();\r\n }\r\n const data = JSON.parse(val);\r\n\r\n const newVal = [];\r\n\r\n for (let i = 0; i < data.length; i++) {\r\n const item = data[i];\r\n if (item.id !== id) {\r\n newVal.push(item);\r\n }\r\n }\r\n\r\n $(`#${fieldId}`).val(JSON.stringify(newVal));\r\n\r\n $(`#${id}`).remove();\r\n\r\n this.showMessage('Item Removed', 'Item removed. This change will be effective only when you save the form');\r\n }\r\n\r\n\r\n /**\r\n * Fill a form with required values after showing it\r\n * @method fillForm\r\n * @param object {Array} form data\r\n * @param formId {String} id of the form\r\n * @param formId {Array} field meta data\r\n */\r\n\r\n fillForm(object, formId, fields) {\r\n let placeHolderVal;\r\n if (fields == null || fields === undefined) {\r\n fields = this.getFormFields();\r\n }\r\n\r\n if (formId == null || formId === undefined || formId === '') {\r\n formId = `#${this.getTableName()}Form`;\r\n }\r\n\r\n\r\n for (let i = 0; i < fields.length; i++) {\r\n if (fields[i][1].type === 'date') {\r\n if (object[fields[i][0]] !== '0000-00-00' && object[fields[i][0]] !== '' && object[fields[i][0]] != null && object[fields[i][0]] !== undefined) {\r\n $(`${formId} #${fields[i][0]}_date`).datepicker('setValue', object[fields[i][0]]);\r\n }\r\n } else if (fields[i][1].type === 'colorpick') {\r\n if (object[fields[i][0]] != null && object[fields[i][0]] !== undefined) {\r\n $(`${formId} #${fields[i][0]}_colorpick`).colorpicker('setValue', object[fields[i][0]]);\r\n $(`${formId} #${fields[i][0]}`).val(object[fields[i][0]]);\r\n }\r\n } else if (fields[i][1].type === 'datetime' || fields[i][1].type === 'time') {\r\n if (object[fields[i][0]] !== '0000-00-00 00:00:00' && object[fields[i][0]] !== '' && object[fields[i][0]] != null && object[fields[i][0]] !== undefined) {\r\n const tempDate = object[fields[i][0]];\r\n const arr = tempDate.split(' ');\r\n const dateArr = arr[0].split('-');\r\n const timeArr = arr[1].split(':');\r\n $(`${formId} #${fields[i][0]}_datetime`).data('datetimepicker').setLocalDate(new Date(dateArr[0], parseInt(dateArr[1], 10) - 1, dateArr[2], timeArr[0], timeArr[1], timeArr[2]));\r\n }\r\n } else if (fields[i][1].type === 'label') {\r\n $(`${formId} #${fields[i][0]}`).html(object[fields[i][0]]);\r\n } else if (fields[i][1].type === 'placeholder') {\r\n if (fields[i][1]['remote-source'] !== undefined && fields[i][1]['remote-source'] != null) {\r\n // const key = `${fields[i][1]['remote-source'][0]}_${fields[i][1]['remote-source'][1]}_${fields[i][1]['remote-source'][2]}`;\r\n const key = this.getRemoteSourceKey(fields[i]);\r\n placeHolderVal = this.fieldMasterData[key][object[fields[i][0]]];\r\n } else {\r\n placeHolderVal = object[fields[i][0]];\r\n }\r\n\r\n if (placeHolderVal === undefined || placeHolderVal == null) {\r\n placeHolderVal = '';\r\n } else {\r\n try {\r\n placeHolderVal = placeHolderVal.replace(/(?:\\r\\n|\\r|\\n)/g, '
    ');\r\n } catch (e) {\r\n // Do nothing\r\n }\r\n }\r\n\r\n if (fields[i][1].formatter !== undefined && fields[i][1].formatter && $.isFunction(fields[i][1].formatter)) {\r\n try {\r\n placeHolderVal = fields[i][1].formatter(placeHolderVal);\r\n } catch (e) {\r\n // Do nothing\r\n }\r\n }\r\n\r\n $(`${formId} #${fields[i][0]}`).html(placeHolderVal);\r\n } else if (fields[i][1].type === 'fileupload') {\r\n if (object[fields[i][0]] != null && object[fields[i][0]] !== undefined && object[fields[i][0]] !== '') {\r\n $(`${formId} #${fields[i][0]}`).html(object[fields[i][0]]);\r\n $(`${formId} #${fields[i][0]}`).attr('val', object[fields[i][0]]);\r\n $(`${formId} #${fields[i][0]}`).show();\r\n $(`${formId} #${fields[i][0]}_download`).show();\r\n $(`${formId} #${fields[i][0]}_remove`).show();\r\n }\r\n if (fields[i][1].readonly === true) {\r\n $(`${formId} #${fields[i][0]}_upload`).remove();\r\n }\r\n } else if (fields[i][1].type === 'select') {\r\n if (object[fields[i][0]] === undefined || object[fields[i][0]] == null || object[fields[i][0]] === '') {\r\n object[fields[i][0]] = 'NULL';\r\n }\r\n $(`${formId} #${fields[i][0]}`).val(object[fields[i][0]]);\r\n } else if (fields[i][1].type === 'select2') {\r\n if (object[fields[i][0]] === undefined || object[fields[i][0]] == null || object[fields[i][0]] === '') {\r\n object[fields[i][0]] = 'NULL';\r\n }\r\n $(`${formId} #${fields[i][0]}`).select2('val', object[fields[i][0]]);\r\n } else if (fields[i][1].type === 'select2multi') {\r\n // TODO - SM\r\n if (object[fields[i][0]] === undefined || object[fields[i][0]] == null || object[fields[i][0]] === '') {\r\n object[fields[i][0]] = 'NULL';\r\n }\r\n\r\n let msVal = [];\r\n if (object[fields[i][0]] !== undefined && object[fields[i][0]] != null && object[fields[i][0]] !== '') {\r\n try {\r\n msVal = JSON.parse(object[fields[i][0]]);\r\n } catch (e) {\r\n // Do nothing\r\n }\r\n }\r\n\r\n $(`${formId} #${fields[i][0]}`).select2('val', msVal);\r\n const select2Height = $(`${formId} #${fields[i][0]}`).find('.select2-choices').height();\r\n $(`${formId} #${fields[i][0]}`).find('.controls').css('min-height', `${select2Height}px`);\r\n $(`${formId} #${fields[i][0]}`).css('min-height', `${select2Height}px`);\r\n } else if (fields[i][1].type === 'datagroup') {\r\n try {\r\n const html = this.dataGroupToHtml(object[fields[i][0]], fields[i]);\r\n $(`${formId} #${fields[i][0]}`).val(object[fields[i][0]]);\r\n $(`${formId} #${fields[i][0]}_div`).html('');\r\n $(`${formId} #${fields[i][0]}_div`).append(html);\r\n\r\n this.makeDataGroupSortable(fields[i], $(`${formId} #${fields[i][0]}_div_inner`));\r\n } catch (e) {\r\n // Do nothing\r\n }\r\n } else if (fields[i][1].type === 'signature') {\r\n if (object[fields[i][0]] !== '' || object[fields[i][0]] !== undefined\r\n || object[fields[i][0]] != null) {\r\n $(`${formId} #${fields[i][0]}`).data('signaturePad').fromDataURL(object[fields[i][0]]);\r\n }\r\n } else if (fields[i][1].type === 'simplemde') {\r\n $(`${formId} #${fields[i][0]}`).data('simplemde').value(object[fields[i][0]]);\r\n } else if (fields[i][1].type === 'code') {\r\n const cm = $(`${formId} #${fields[i][0]}`).data('codemirror');\r\n if (cm) {\r\n cm.getDoc().setValue(object[fields[i][0]]);\r\n }\r\n } else {\r\n $(`${formId} #${fields[i][0]}`).val(object[fields[i][0]]);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Cancel edit or add new on modules\r\n * @method cancel\r\n */\r\n\r\n cancel() {\r\n $(`#${this.getTableName()}Form`).hide();\r\n $(`#${this.getTableName()}`).show();\r\n }\r\n\r\n renderFormField(field) {\r\n let userId = 0;\r\n if (this.fieldTemplates[field[1].type] === undefined || this.fieldTemplates[field[1].type] == null) {\r\n return '';\r\n }\r\n let t = this.fieldTemplates[field[1].type];\r\n field[1].label = this.gt(field[1].label);\r\n if (field[1].validation !== 'none' && field[1].validation !== 'emailOrEmpty' && field[1].validation !== 'numberOrEmpty' && field[1].type !== 'placeholder' && field[1].label.indexOf('*') < 0) {\r\n const tempSelectBoxes = ['select', 'select2'];\r\n if (!(tempSelectBoxes.indexOf(field[1].type) >= 0 && field[1]['allow-null'] === true)) {\r\n field[1].label = `${field[1].label}*`;\r\n }\r\n }\r\n\r\n if (field[1].type === 'select' || field[1].type === 'select2' || field[1].type === 'select2multi') {\r\n t = t.replace(/_id_/g, field[0]);\r\n t = t.replace(/_label_/g, field[1].label);\r\n if (field[1].source !== undefined && field[1].source != null) {\r\n t = t.replace('_options_', this.renderFormSelectOptions(field[1].source, field));\r\n } else if (field[1]['remote-source'] !== undefined && field[1]['remote-source'] != null) {\r\n // let key = `${field[1]['remote-source'][0]}_${field[1]['remote-source'][1]}_${field[1]['remote-source'][2]}`;\r\n // if (field[1]['remote-source'].length === 4) {\r\n // key = `${key}_${field[1]['remote-source'][3]}`;\r\n // }\r\n const key = this.getRemoteSourceKey(field);\r\n t = t.replace('_options_', this.renderFormSelectOptionsRemote(this.fieldMasterData[key], field));\r\n }\r\n } else if (field[1].type === 'colorpick') {\r\n t = t.replace(/_id_/g, field[0]);\r\n t = t.replace(/_label_/g, field[1].label);\r\n } else if (field[1].type === 'date') {\r\n t = t.replace(/_id_/g, field[0]);\r\n t = t.replace(/_label_/g, field[1].label);\r\n } else if (field[1].type === 'datetime') {\r\n t = t.replace(/_id_/g, field[0]);\r\n t = t.replace(/_label_/g, field[1].label);\r\n } else if (field[1].type === 'time') {\r\n t = t.replace(/_id_/g, field[0]);\r\n t = t.replace(/_label_/g, field[1].label);\r\n } else if (field[1].type === 'fileupload') {\r\n t = t.replace(/_id_/g, field[0]);\r\n t = t.replace(/_label_/g, field[1].label);\r\n const ce = this.getCurrentProfile();\r\n if (ce != null && ce !== undefined) {\r\n userId = ce.id;\r\n } else {\r\n userId = this.getUser().id * -1;\r\n }\r\n t = t.replace(/_userId_/g, userId);\r\n t = t.replace(/_group_/g, this.tab);\r\n\r\n if (field[1].filetypes !== undefined && field[1].filetypes != null) {\r\n t = t.replace(/_filetypes_/g, field[1].filetypes);\r\n } else {\r\n t = t.replace(/_filetypes_/g, 'all');\r\n }\r\n\r\n t = t.replace(/_rand_/g, this.generateRandom(14));\r\n } else if (field[1].type === 'datagroup') {\r\n t = t.replace(/_id_/g, field[0]);\r\n t = t.replace(/_label_/g, field[1].label);\r\n } else if (field[1].type === 'signature') {\r\n t = t.replace(/_id_/g, field[0]);\r\n t = t.replace(/_label_/g, field[1].label);\r\n } else if (field[1].type === 'tinymce' || field[1].type === 'simplemde') {\r\n t = t.replace(/_id_/g, field[0]);\r\n t = t.replace(/_label_/g, field[1].label);\r\n } else {\r\n t = t.replace(/_id_/g, field[0]);\r\n t = t.replace(/_label_/g, field[1].label);\r\n }\r\n\r\n\r\n if (field[1].validation !== undefined && field[1].validation != null && field[1].validation !== '') {\r\n t = t.replace(/_validation_/g, `validation=\"${field[1].validation}\"`);\r\n } else {\r\n t = t.replace(/_validation_/g, '');\r\n }\r\n\r\n if (field[1].help !== undefined && field[1].help !== null) {\r\n t = t.replace(/_helpline_/g, field[1].help);\r\n t = t.replace(/_hidden_class_help_/g, '');\r\n } else {\r\n t = t.replace(/_helpline_/g, '');\r\n t = t.replace(/_hidden_class_help_/g, 'hide');\r\n }\r\n\r\n if (field[1].placeholder !== undefined && field[1].placeholder !== null) {\r\n t = t.replace(/_placeholder_/g, `placeholder=\"${field[1].placeholder}\"`);\r\n } else {\r\n t = t.replace(/_placeholder_/g, '');\r\n }\r\n\r\n if (field[1].mask !== undefined && field[1].mask !== null) {\r\n t = t.replace(/_mask_/g, `mask=\"${field[1].mask}\"`);\r\n } else {\r\n t = t.replace(/_mask_/g, '');\r\n }\r\n\r\n return t;\r\n }\r\n\r\n renderFormSelectOptions(options, field) {\r\n let html = '';\r\n\r\n if (field != null && field !== undefined) {\r\n if (field[1]['allow-null'] === true) {\r\n if (field[1]['null-label'] !== undefined && field[1]['null-label'] != null) {\r\n html += ``;\r\n } else {\r\n html += '';\r\n }\r\n }\r\n }\r\n\r\n\r\n // Sort options\r\n\r\n const tuples = [];\r\n\r\n for (const key in options) {\r\n tuples.push(options[key]);\r\n }\r\n if (field[1].sort === true) {\r\n tuples.sort((a, b) => {\r\n a = a[1];\r\n b = b[1];\r\n\r\n // eslint-disable-next-line no-nested-ternary\r\n return a < b ? -1 : (a > b ? 1 : 0);\r\n });\r\n }\r\n\r\n\r\n for (let i = 0; i < tuples.length; i++) {\r\n const prop = tuples[i][0];\r\n const value = tuples[i][1];\r\n let t = '';\r\n t = t.replace('_id_', prop);\r\n t = t.replace('_val_', this.gt(value));\r\n html += t;\r\n }\r\n return html;\r\n }\r\n\r\n renderFormSelectOptionsRemote(options, field) {\r\n let html = '';\r\n if (field[1]['allow-null'] === true) {\r\n if (field[1]['null-label'] !== undefined && field[1]['null-label'] != null) {\r\n html += ``;\r\n } else {\r\n html += '';\r\n }\r\n }\r\n\r\n // Sort options\r\n\r\n const tuples = [];\r\n\r\n for (const key in options) {\r\n tuples.push([key, options[key]]);\r\n }\r\n if (field[1].sort === 'true') {\r\n tuples.sort((a, b) => {\r\n a = a[1];\r\n b = b[1];\r\n\r\n // eslint-disable-next-line no-nested-ternary\r\n return a < b ? -1 : (a > b ? 1 : 0);\r\n });\r\n }\r\n\r\n for (let i = 0; i < tuples.length; i++) {\r\n const prop = tuples[i][0];\r\n const value = tuples[i][1];\r\n\r\n let t = '';\r\n t = t.replace('_id_', prop);\r\n t = t.replace('_val_', this.gt(value));\r\n html += t;\r\n }\r\n\r\n\r\n return html;\r\n }\r\n\r\n setCustomTemplates(templates) {\r\n this.customTemplates = templates;\r\n }\r\n\r\n setEmailTemplates(templates) {\r\n this.emailTemplates = templates;\r\n }\r\n\r\n getCustomTemplate(file) {\r\n return this.customTemplates[file];\r\n }\r\n\r\n setFieldTemplates(templates) {\r\n this.fieldTemplates = templates;\r\n }\r\n\r\n\r\n getMetaFieldForRendering(fieldName) {\r\n return '';\r\n }\r\n\r\n clearDeleteParams() {\r\n this.deleteParams = {};\r\n }\r\n\r\n getShowAddNew() {\r\n return this.showAddNew;\r\n }\r\n\r\n /**\r\n * Override this method to change add new button label\r\n * @method getAddNewLabel\r\n */\r\n\r\n getAddNewLabel() {\r\n return 'Add New';\r\n }\r\n\r\n /**\r\n * Used to set whether to show the add new button for a module\r\n * @method setShowAddNew\r\n * @param showAddNew {Boolean} value\r\n */\r\n\r\n setShowAddNew(showAddNew) {\r\n this.showAddNew = showAddNew;\r\n }\r\n\r\n /**\r\n * Used to set whether to show delete button for each entry in module\r\n * @method setShowDelete\r\n * @param val {Boolean} value\r\n */\r\n setShowDelete(val) {\r\n this.showDelete = val;\r\n }\r\n\r\n\r\n /**\r\n * Used to set whether to show edit button for each entry in module\r\n * @method setShowEdit\r\n * @param val {Boolean} value\r\n */\r\n\r\n setShowEdit(val) {\r\n this.showEdit = val;\r\n }\r\n\r\n /**\r\n * Used to set whether to show save button in form\r\n * @method setShowSave\r\n * @param val {Boolean} value\r\n */\r\n\r\n\r\n setShowSave(val) {\r\n this.showSave = val;\r\n }\r\n\r\n\r\n /**\r\n * Used to set whether to show cancel button in form\r\n * @method setShowCancel\r\n * @param val {Boolean} value\r\n */\r\n\r\n setShowCancel(val) {\r\n this.showCancel = val;\r\n }\r\n\r\n /**\r\n * Datatable option array will be extended with associative array provided here\r\n * @method getCustomTableParams\r\n * @param val {Boolean} value\r\n */\r\n\r\n\r\n getCustomTableParams() {\r\n return {};\r\n }\r\n\r\n getActionButtons(obj) {\r\n return modJs.getActionButtonsHtml(obj.aData[0], obj.aData);\r\n }\r\n\r\n\r\n /**\r\n * This return html for action buttons in each row. Override this method if you need to make changes to action buttons.\r\n * @method getActionButtonsHtml\r\n * @param id {int} id of the row\r\n * @param data {Array} data for the row\r\n * @returns {String} html for action buttons\r\n */\r\n\r\n getActionButtonsHtml(id, data) {\r\n const editButton = '';\r\n const deleteButton = '';\r\n const cloneButton = '';\r\n let html = '
    _edit__delete__clone_
    ';\r\n\r\n if (this.showAddNew) {\r\n html = html.replace('_clone_', cloneButton);\r\n } else {\r\n html = html.replace('_clone_', '');\r\n }\r\n\r\n if (this.showDelete) {\r\n html = html.replace('_delete_', deleteButton);\r\n } else {\r\n html = html.replace('_delete_', '');\r\n }\r\n\r\n if (this.showEdit) {\r\n html = html.replace('_edit_', editButton);\r\n } else {\r\n html = html.replace('_edit_', '');\r\n }\r\n\r\n html = html.replace(/_id_/g, id);\r\n html = html.replace(/_BASE_/g, this.baseUrl);\r\n return html;\r\n }\r\n\r\n\r\n /**\r\n * Generates a random string\r\n * @method generateRandom\r\n * @param length {int} required length of the string\r\n * @returns {String} random string\r\n */\r\n\r\n generateRandom(length) {\r\n const d = new Date();\r\n const chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\r\n let result = '';\r\n for (let i = length; i > 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))];\r\n return result + d.getTime();\r\n }\r\n\r\n\r\n checkFileType(elementName, fileTypes) {\r\n const fileElement = document.getElementById(elementName);\r\n let fileExtension = '';\r\n if (fileElement.value.lastIndexOf('.') > 0) {\r\n fileExtension = fileElement.value.substring(fileElement.value.lastIndexOf('.') + 1, fileElement.value.length);\r\n }\r\n\r\n fileExtension = fileExtension.toLowerCase();\r\n\r\n const allowed = fileTypes.split(',');\r\n\r\n if (allowed.indexOf(fileExtension) < 0) {\r\n fileElement.value = '';\r\n this.showMessage('File Type Error', 'Selected file type is not supported');\r\n this.clearFileElement(elementName);\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n clearFileElement(elementName) {\r\n let control = $(`#${elementName}`);\r\n control.replaceWith(control = control.val('').clone(true));\r\n }\r\n\r\n\r\n fixJSON(json) {\r\n if (this.noJSONRequests === '1') {\r\n json = window.btoa(json);\r\n }\r\n return json;\r\n }\r\n\r\n\r\n getClientDate(date) {\r\n const offset = this.getClientGMTOffset();\r\n const tzDate = date.addMinutes(offset * 60);\r\n return tzDate;\r\n }\r\n\r\n getClientGMTOffset() {\r\n const rightNow = new Date();\r\n const jan1 = new Date(rightNow.getFullYear(), 0, 1, 0, 0, 0, 0);\r\n const temp = jan1.toGMTString();\r\n const jan2 = new Date(temp.substring(0, temp.lastIndexOf(' ') - 1));\r\n return (jan1 - jan2) / (1000 * 60 * 60);\r\n }\r\n\r\n /**\r\n * Override this method in a module to provide the help link for the module. Help link of the module on frontend will get updated with this.\r\n * @method getHelpLink\r\n * @returns {String} help link\r\n */\r\n\r\n getHelpLink() {\r\n return null;\r\n }\r\n\r\n showLoader() {\r\n $('#iceloader').show();\r\n }\r\n\r\n hideLoader() {\r\n $('#iceloader').hide();\r\n }\r\n\r\n generateOptions(data) {\r\n const template = '';\r\n let options = '';\r\n for (const index in data) {\r\n options += template.replace('__val__', index).replace('__text__', data[index]);\r\n }\r\n\r\n return options;\r\n }\r\n\r\n isModuleInstalled(type, name) {\r\n if (modulesInstalled === undefined || modulesInstalled === null) {\r\n return false;\r\n }\r\n\r\n return (modulesInstalled[`${type}_${name}`] === 1);\r\n }\r\n\r\n\r\n setCustomFields(fields) {\r\n let field; let\r\n parsed;\r\n for (let i = 0; i < fields.length; i++) {\r\n field = fields[i];\r\n if (field.display !== 'Hidden' && field.data !== '' && field.data !== undefined) {\r\n try {\r\n parsed = JSON.parse(field.data);\r\n if (parsed === undefined || parsed == null) {\r\n continue;\r\n } else if (parsed.length !== 2) {\r\n continue;\r\n } else if (parsed[1].type === undefined || parsed[1].type == null) {\r\n continue;\r\n }\r\n this.customFields.push(parsed);\r\n } catch (e) {\r\n // Do nothing\r\n }\r\n }\r\n }\r\n }\r\n\r\n addCustomFields(fields) {\r\n for (let i = 0; i < this.customFields.length; i++) {\r\n fields.push(this.customFields[i]);\r\n }\r\n\r\n return fields;\r\n }\r\n\r\n getImageUrlFromName(firstName, lastName) {\r\n let seed = firstName.substring(0, 1);\r\n if (!lastName && lastName.length > 0) {\r\n seed += firstName.substring(firstName.length - 1, 1);\r\n } else {\r\n seed += lastName.substring(0, 1);\r\n }\r\n\r\n const arr = `${firstName}${lastName}`.split('');\r\n seed += arr.reduce((acc, item) => parseInt(item.charCodeAt(0), 10) + acc, 0);\r\n\r\n return `https://avatars.dicebear.com/api/initials/:${seed}.svg`;\r\n }\r\n\r\n downloadPdf(type, data) {\r\n const url = `${this.clientUrl}service.php?a=pdf&h=${type}&data=${data}`;\r\n window.open(url,'_blank');\r\n }\r\n}\r\n\r\nexport default ModuleBase;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Space, Tag } from 'antd';\r\nimport {\r\n EditOutlined, DeleteOutlined, CopyOutlined, MonitorOutlined,\r\n} from '@ant-design/icons';\r\nimport AdapterBase from './AdapterBase';\r\nimport IceFormModal from '../components/IceFormModal';\r\nimport IceStepFormModal from '../components/IceStepFromModal';\r\nimport IceTable from '../components/IceTable';\r\nimport MasterDataReader from './MasterDataReader';\r\n\r\n\r\nclass ReactModalAdapterBase extends AdapterBase {\r\n static get MODAL_TYPE_NORMAL() { return 'Normal'; }\r\n\r\n static get MODAL_TYPE_STEPS() { return 'Steps'; }\r\n\r\n constructor(endPoint, tab, filter, orderBy) {\r\n super(endPoint, tab, filter, orderBy);\r\n this.modalType = this.MODAL_TYPE_NORMAL;\r\n this.dataPipe = null;\r\n this.formInitialized = false;\r\n this.tableInitialized = false;\r\n this.access = [];\r\n this.localStorageEnabled = false;\r\n this.isV2 = true;\r\n this.masterDataReader = new MasterDataReader(this);\r\n }\r\n\r\n enableLocalStorage() {\r\n this.localStorageEnabled = true;\r\n }\r\n\r\n setModalType(type) {\r\n this.modalType = type;\r\n }\r\n\r\n setDataPipe(dataPipe) {\r\n this.dataPipe = dataPipe;\r\n }\r\n\r\n setAccess(access) {\r\n this.access = access;\r\n }\r\n\r\n hasAccess(type) {\r\n return this.access.indexOf(type) > 0;\r\n }\r\n\r\n hasCustomButtons() {\r\n return false;\r\n }\r\n\r\n initTable() {\r\n if (this.tableInitialized) {\r\n return false;\r\n }\r\n const tableDom = document.getElementById(`${this.tab}Table`);\r\n if (tableDom) {\r\n this.tableContainer = React.createRef();\r\n let columns = this.getTableColumns();\r\n if (this.hasAccess('save')\r\n || this.hasAccess('delete')\r\n || this.hasAccess('element')\r\n || this.hasCustomButtons()\r\n ) {\r\n columns.push({\r\n title: 'Actions',\r\n key: 'actions',\r\n render: this.getTableActionButtonJsx(this),\r\n });\r\n }\r\n\r\n columns = columns.map((item) => {\r\n item.title = this.gt(item.title);\r\n return item;\r\n });\r\n\r\n ReactDOM.render(\r\n \r\n {this.getTableChildComponents()}\r\n ,\r\n tableDom,\r\n );\r\n }\r\n\r\n this.tableInitialized = true;\r\n\r\n return true;\r\n }\r\n\r\n initForm() {\r\n if (this.formInitialized) {\r\n return false;\r\n }\r\n this.formContainer = React.createRef();\r\n if (this.modalType === this.MODAL_TYPE_NORMAL) {\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(`${this.tab}Form`),\r\n );\r\n } else {\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(`${this.tab}Form`),\r\n );\r\n }\r\n\r\n const filterDom = document.getElementById(`${this.tab}FilterForm`);\r\n if (filterDom && this.getFilters()) {\r\n this.filtersContainer = React.createRef();\r\n ReactDOM.render(\r\n {\r\n this.setFilter(values);\r\n this.filtersAlreadySet = true;\r\n this.get([]);\r\n this.tableContainer.current.setFilterData(values);\r\n closeModal();\r\n }}\r\n />,\r\n filterDom,\r\n );\r\n }\r\n\r\n this.formInitialized = true;\r\n return true;\r\n }\r\n\r\n getTableChildComponents() {\r\n return false;\r\n }\r\n\r\n reloadCurrentElement() {\r\n this.viewElement(this.currentId);\r\n }\r\n\r\n getTableActionButtonJsx(adapter) {\r\n return (text, record) => (\r\n \r\n {adapter.hasAccess('save') && adapter.showEdit\r\n && (\r\n modJs.edit(record.id)} style={{ cursor: 'pointer' }}>\r\n \r\n {` ${adapter.gt('Edit')}`}\r\n \r\n )}\r\n {adapter.hasAccess('element')\r\n && (\r\n modJs.viewElement(record.id)} style={{ cursor: 'pointer' }}>\r\n \r\n {` ${adapter.gt('View')}`}\r\n \r\n )}\r\n {adapter.hasAccess('delete') && adapter.showDelete\r\n && (\r\n modJs.deleteRow(record.id)} style={{ cursor: 'pointer' }}>\r\n \r\n {` ${adapter.gt('Delete')}`}\r\n \r\n )}\r\n {adapter.hasAccess('save')\r\n && (\r\n modJs.copyRow(record.id)} style={{ cursor: 'pointer' }}>\r\n \r\n {` ${adapter.gt('Copy')}`}\r\n \r\n )}\r\n \r\n );\r\n }\r\n\r\n setTableLoading(value) {\r\n this.tableContainer.current.setLoading(value);\r\n }\r\n\r\n /**\r\n * Show the view form for an item\r\n * @method viewElement\r\n * @param id {int} id of the item to view\r\n */\r\n viewElement(id) {\r\n this.setTableLoading(true);\r\n this.currentId = id;\r\n this.getElement(id, {\r\n noRender: true,\r\n callBack: (element) => {\r\n this.showElement(element);\r\n this.setTableLoading(false);\r\n },\r\n });\r\n }\r\n\r\n showElement(element) {\r\n this.renderForm(element, true);\r\n }\r\n\r\n /**\r\n * Show the edit form for an item\r\n * @method edit\r\n * @param id {int} id of the item to edit\r\n */\r\n edit(id) {\r\n this.setTableLoading(true);\r\n this.currentId = id;\r\n this.getElement(id, []);\r\n }\r\n\r\n renderForm(object = null, viewOnly = false) {\r\n if (object == null) {\r\n this.currentId = null;\r\n this.currentElement = null;\r\n }\r\n this.setTableLoading(false);\r\n this.initForm();\r\n this.formContainer.current.setViewOnly(viewOnly);\r\n this.formContainer.current.show(object);\r\n }\r\n\r\n showFilters() {\r\n this.initForm();\r\n this.filtersContainer.current.show(this.filter);\r\n }\r\n\r\n resetFilters() {\r\n this.filter = this.origFilter;\r\n this.filtersAlreadySet = false;\r\n this.currentFilterString = '';\r\n this.get([]);\r\n this.tableContainer.current.setFilterData(this.filter);\r\n }\r\n\r\n get() {\r\n if (this.tableContainer && this.tableContainer.current) {\r\n this.tableContainer.current.setCurrentElement(null);\r\n }\r\n this.initTable();\r\n this.masterDataReader.updateAllMasterData()\r\n .then(() => {\r\n this.tableContainer.current.reload();\r\n });\r\n\r\n this.trackEvent('get', this.tab, this.table);\r\n }\r\n\r\n showLoader() {\r\n // $('#iceloader').show();\r\n }\r\n\r\n addActualFieldsForStepModal(steps, fields) {\r\n return steps.map((item) => {\r\n item.fields = item.fields.reduce((acc, fieldName) => {\r\n const field = fields.find(([name]) => name === fieldName);\r\n if (field) {\r\n acc.push(field);\r\n }\r\n return acc;\r\n }, []);\r\n\r\n return item;\r\n });\r\n }\r\n\r\n getFormOptions() {\r\n return {\r\n width: 1024,\r\n twoColumnLayout: false,\r\n };\r\n }\r\n}\r\n\r\nexport default ReactModalAdapterBase;\r\n","import React, { useState, useRef, useEffect } from \"react\";\r\nimport { SketchPicker } from 'react-color';\r\n\r\nfunction useComponentVisible(initialIsVisible) {\r\n const [isComponentVisible, setIsComponentVisible] = useState(initialIsVisible);\r\n const ref = useRef(null);\r\n\r\n const handleClickOutside = (event) => {\r\n if (ref.current && !ref.current.contains(event.target)) {\r\n setIsComponentVisible(false);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n document.addEventListener('click', handleClickOutside, true);\r\n return () => {\r\n document.removeEventListener('click', handleClickOutside, true);\r\n };\r\n });\r\n\r\n return { ref, isComponentVisible, setIsComponentVisible };\r\n}\r\n\r\nfunction IceColorPick(props) {\r\n const { value, onChange, readOnly } = props;\r\n\r\n const { ref, isComponentVisible, setIsComponentVisible } = useComponentVisible(true);\r\n\r\n const [color, setColor] = useState(value || '#FFF');\r\n const [showPicker, setShowPicker] = useState(false);\r\n\r\n useEffect(() => {\r\n if (!isComponentVisible) {\r\n setShowPicker(false);\r\n }\r\n }, [isComponentVisible])\r\n\r\n useEffect(() => {\r\n if (value) {\r\n setColor(value);\r\n }\r\n \r\n }, [value]);\r\n\r\n return
    \r\n {\r\n if (!showPicker) {\r\n setIsComponentVisible(true);\r\n }\r\n setShowPicker(!showPicker);\r\n }}\r\n style={ { backgroundColor: color} }\r\n />\r\n
    \r\n {\r\n onChange(hex);\r\n setColor(hex);\r\n }}\r\n />\r\n
    \r\n
    ;\r\n} \r\n\r\nexport default IceColorPick;\r\n","import React from \"react\";\r\nimport {Button, Form, Select, Space, Card, Modal, Table} from \"antd\";\r\n// import IceDataGroupModal from \"./IceDataGroupModal\";\r\nimport IceFormModal from \"./IceFormModal\";\r\nimport ReactDOM from \"react-dom\";\r\nconst { Option } = Select;\r\n\r\nclass IceDataGroup extends React.Component {\r\n state = {};\r\n\r\n constructor(props) {\r\n super(props);\r\n this.onChange = props.onChange;\r\n this.formReference = React.createRef();\r\n }\r\n\r\n render() {\r\n const { field, adapter } = this.props;\r\n let { value } = this.props;\r\n\r\n value = this.parseValue(value);\r\n value = value.map(item => ({ ...item, key:item.id } ));\r\n const columns = JSON.parse(JSON.stringify(field[1].columns));\r\n\r\n if (!this.props.readOnly) {\r\n columns.push({\r\n title: 'Action',\r\n key: 'action',\r\n render: (text, record) => (\r\n this.getDefaultButtons(record.id)\r\n ),\r\n });\r\n }\r\n\r\n return (\r\n <>\r\n {!this.props.readOnly &&\r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n );\r\n }\r\n\r\n createForm(field, adapter, object) {\r\n this.formContainer = React.createRef();\r\n const formFields = field[1].form;\r\n formFields.unshift(['id', { label: 'ID', type: 'hidden' }]);\r\n ReactDOM.render(\r\n ,\r\n document.getElementById('dataGroup'),\r\n );\r\n this.formContainer.current.show(object);\r\n }\r\n\r\n unmountForm() {\r\n ReactDOM.unmountComponentAtNode(document.getElementById('dataGroup'));\r\n }\r\n\r\n show(data) {\r\n if (!data) {\r\n this.setState({ visible: true });\r\n this.updateFields(data);\r\n } else {\r\n this.setState({ visible: true });\r\n if (this.formReference.current) {\r\n this.updateFields(data);\r\n } else {\r\n this.waitForIt(\r\n () => this.formReference.current != null,\r\n () => { this.updateFields(data); },\r\n 100,\r\n );\r\n }\r\n }\r\n }\r\n\r\n parseValue(value) {\r\n try {\r\n value = JSON.parse(value);\r\n } catch (e) {\r\n value = [];\r\n }\r\n if (value == null) {\r\n value = [];\r\n }\r\n return value;\r\n }\r\n\r\n save(params, errorCallback, closeCallback) {\r\n const {field, value } = this.props;\r\n\r\n if (field[1]['custom-validate-function'] != null) {\r\n let tempParams = field[1]['custom-validate-function'].apply(this, [params]);\r\n if (tempParams.valid) {\r\n params = tempParams.params;\r\n } else {\r\n errorCallback(tempParams.message);\r\n return false;\r\n }\r\n }\r\n\r\n const data = this.parseValue(value);\r\n\r\n let newData = [];\r\n if (!params.id) {\r\n params.id = `${field[0]}_${this.dataGroupGetNextAutoIncrementId(data)}`;\r\n data.push(params);\r\n newData = data;\r\n } else {\r\n for (let i = 0; i < data.length; i++) {\r\n const item = data[i];\r\n if (item.id !== params.id) {\r\n newData.push(item);\r\n } else {\r\n newData.push(params);\r\n }\r\n }\r\n }\r\n\r\n if (field[1]['sort-function'] != null) {\r\n newData.sort(field[1]['sort-function']);\r\n }\r\n\r\n const val = JSON.stringify(newData);\r\n\r\n this.onChange(val);\r\n\r\n this.unmountForm();\r\n }\r\n\r\n createCard(item) {\r\n const { field } = this.props;\r\n if (field[1]['pre-format-function'] != null) {\r\n item = field[1]['pre-format-function'].apply(this, [item]);\r\n }\r\n\r\n const template = field[1].html;\r\n let t = template.replace('#_delete_#', '');\r\n t = t.replace('#_edit_#', '');\r\n t = t.replace(/#_id_#/g, item.id);\r\n\r\n for (const key in item) {\r\n let itemVal = item[key];\r\n if (itemVal !== undefined && itemVal != null && typeof itemVal === 'string') {\r\n itemVal = itemVal.replace(/(?:\\r\\n|\\r|\\n)/g, '
    ');\r\n }\r\n t = t.replace(`#_${key}_#`, itemVal);\r\n }\r\n\r\n if (field[1].render !== undefined && field[1].render != null) {\r\n t = t.replace('#_renderFunction_#', field[1].render(item));\r\n }\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n getDefaultButtons(id) {\r\n return (\r\n \r\n {this.editDataGroupItem(id)}}>
  • \r\n {this.deleteDataGroupItem(id)}}>
  • \r\n \r\n );\r\n }\r\n\r\n deleteDataGroupItem(id) {\r\n const {value} = this.props;\r\n const data = this.parseValue(value);\r\n\r\n const newVal = [];\r\n\r\n for (let i = 0; i < data.length; i++) {\r\n const item = data[i];\r\n if (item.id !== id) {\r\n newVal.push(item);\r\n }\r\n }\r\n\r\n const val = JSON.stringify(newVal);\r\n\r\n this.onChange(val);\r\n }\r\n\r\n editDataGroupItem(id) {\r\n const { field, adapter, value } = this.props;\r\n const data = this.parseValue(value);\r\n\r\n let editVal = {};\r\n\r\n for (let i = 0; i < data.length; i++) {\r\n const item = data[i];\r\n if (item.id === id) {\r\n editVal = item;\r\n }\r\n }\r\n\r\n this.createForm(field, adapter, editVal);\r\n }\r\n\r\n resetDataGroup() {\r\n this.onChange('[]');\r\n }\r\n\r\n dataGroupGetNextAutoIncrementId(data) {\r\n let autoId = 1; let id;\r\n for (let i = 0; i < data.length; i++) {\r\n const item = data[i];\r\n if (item.id === undefined || item.id == null) {\r\n item.id = 1;\r\n }\r\n id = item.id.substring(item.id.lastIndexOf('_') + 1, item.id.length);\r\n if (id >= autoId) {\r\n autoId = parseInt(id, 10) + 1;\r\n }\r\n }\r\n\r\n return autoId;\r\n }\r\n\r\n}\r\n\r\nexport default IceDataGroup;\r\n","import React from 'react';\r\nimport {\r\n Alert, Col, DatePicker, TimePicker, Form, Input, Row,\r\n} from 'antd';\r\nimport moment from 'moment';\r\nimport IceUpload from './IceUpload';\r\nimport IceDataGroup from './IceDataGroup';\r\nimport IceSelect from './IceSelect';\r\nimport IceLabel from './IceLabel';\r\nimport IceColorPick from './IceColorPick';\r\nimport IceSignature from './IceSignature';\r\n\r\n\r\nconst ValidationRules = {\r\n\r\n float(str) {\r\n const floatstr = /^[-+]?[0-9]+(\\.[0-9]+)?$/;\r\n if (str != null && str.match(floatstr)) {\r\n return true;\r\n }\r\n return false;\r\n },\r\n\r\n number(str) {\r\n const numstr = /^[0-9]+$/;\r\n if (str != null && str.match(numstr)) {\r\n return true;\r\n }\r\n return false;\r\n },\r\n\r\n numberOrEmpty(str) {\r\n if (str === '') {\r\n return true;\r\n }\r\n const numstr = /^[0-9]+$/;\r\n if (str != null && str.match(numstr)) {\r\n return true;\r\n }\r\n return false;\r\n },\r\n\r\n email(str) {\r\n const emailPattern = /^\\s*[\\w\\-+_]+(\\.[\\w\\-+_]+)*@[\\w\\-+_]+\\.[\\w\\-+_]+(\\.[\\w\\-+_]+)*\\s*$/;\r\n return str != null && emailPattern.test(str);\r\n },\r\n\r\n emailOrEmpty(str) {\r\n if (str === '') {\r\n return true;\r\n }\r\n const emailPattern = /^\\s*[\\w\\-+_]+(\\.[\\w\\-+_]+)*@[\\w\\-+_]+\\.[\\w\\-+_]+(\\.[\\w\\-+_]+)*\\s*$/;\r\n return str != null && emailPattern.test(str);\r\n },\r\n\r\n username(str) {\r\n const username = /^[a-zA-Z0-9.-]+$/;\r\n return str != null && username.test(str);\r\n },\r\n};\r\n\r\n\r\nclass IceForm extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.validationRules = {};\r\n this.state = {\r\n validations: {},\r\n errorMsg: false,\r\n };\r\n this.formReference = React.createRef();\r\n }\r\n\r\n showError(errorMsg) {\r\n this.setState({ errorMsg });\r\n }\r\n\r\n hideError() {\r\n this.setState({ errorMsg: false });\r\n }\r\n\r\n isReady() {\r\n return this.formReference.current != null;\r\n }\r\n\r\n validateFields() {\r\n return this.formReference.current.validateFields();\r\n }\r\n\r\n render() {\r\n const { fields, twoColumnLayout, adapter } = this.props;\r\n let formInputs = [];\r\n const formInputs1 = [];\r\n const formInputs2 = [];\r\n const columns = !twoColumnLayout ? 1 : 2;\r\n for (let i = 0; i < fields.length; i++) {\r\n formInputs.push(\r\n adapter.beforeRenderFieldHook(\r\n fields[i][0],\r\n this.createFromField(fields[i], this.props.viewOnly),\r\n fields[i][1]\r\n )\r\n );\r\n }\r\n formInputs = formInputs.filter(input => !!input);\r\n\r\n for (let i = 0; i < formInputs.length; i++) {\r\n \r\n if (formInputs[i] != null) {\r\n if (columns === 1) {\r\n formInputs1.push(formInputs[i]);\r\n } else if (i % 2 === 0) {\r\n formInputs1.push(formInputs[i]);\r\n } else {\r\n formInputs2.push(formInputs[i]);\r\n }\r\n }\r\n }\r\n\r\n const onFormLayoutChange = () => { };\r\n\r\n return (\r\n \r\n {this.state.errorMsg\r\n && (\r\n <>\r\n \r\n
    \r\n \r\n )}\r\n {columns === 1 && formInputs1}\r\n {columns === 2 && (\r\n \r\n
  • \r\n {formInputs1}\r\n \r\n \r\n {formInputs2}\r\n \r\n \r\n )}\r\n \r\n );\r\n }\r\n\r\n isValid() {\r\n return Object.keys(this.validationRules).reduce((acc, fieldName) => acc && (this.state[fieldName] === 'success' || this.state[fieldName] == null), true);\r\n }\r\n\r\n validateOnChange(event) {\r\n const validationRule = this.validationRules[event.target.id];\r\n const { validations } = this.state;\r\n\r\n if (validationRule) {\r\n if (validationRule.rule(event.target.value)) {\r\n this.state[event.target.id] = 'success';\r\n this.state[`${event.target.id}_message`] = null;\r\n } else {\r\n this.state[event.target.id] = 'error';\r\n this.state[`${event.target.id}_message`] = validationRule.message;\r\n }\r\n }\r\n this.setState({ validations });\r\n }\r\n\r\n createFromField(field, viewOnly = false) {\r\n let userId = 0;\r\n const rules = [];\r\n const requiredRule = { required: true };\r\n const [name, data] = field;\r\n const { adapter, layout } = this.props;\r\n let validationRule = null;\r\n data.label = adapter.gt(data.label);\r\n\r\n const labelSpan = layout === 'vertical' ? { span: 24 } : { span: 6 };\r\n\r\n const tempSelectBoxes = ['select', 'select2', 'select2multi'];\r\n if (tempSelectBoxes.indexOf(data.type) >= 0 && data['allow-null'] === true) {\r\n requiredRule.required = false;\r\n } else if (data.validation === 'none'\r\n || data.validation === 'emailOrEmpty'\r\n || data.validation === 'numberOrEmpty'\r\n ) {\r\n requiredRule.required = false;\r\n } else {\r\n requiredRule.required = true;\r\n requiredRule.message = this.generateFieldMessage(data.label);\r\n }\r\n\r\n rules.push(requiredRule);\r\n\r\n if (data.type === 'hidden') {\r\n requiredRule.required = false;\r\n return (\r\n \r\n \r\n \r\n );\r\n } if (data.type === 'text') {\r\n if (data.validation) {\r\n data.validation = data.validation.replace('OrEmpty', '');\r\n validationRule = this.getValidationRule(data);\r\n if (validationRule) {\r\n this.validationRules[name] = {\r\n rule: validationRule,\r\n message: `Invalid value for ${data.label}`,\r\n };\r\n }\r\n }\r\n if (validationRule != null) {\r\n return (\r\n \r\n {viewOnly\r\n ? \r\n : }\r\n \r\n );\r\n }\r\n return (\r\n \r\n {viewOnly\r\n ? \r\n : }\r\n \r\n );\r\n } if (data.type === 'textarea') {\r\n if (!data.rows) {\r\n data.rows = 4;\r\n }\r\n return (\r\n \r\n {viewOnly\r\n ? \r\n : }\r\n \r\n );\r\n } if (data.type === 'date') {\r\n return (\r\n \r\n \r\n \r\n );\r\n } if (data.type === 'datetime') {\r\n return (\r\n \r\n \r\n \r\n );\r\n } if (data.type === 'time') {\r\n return (\r\n \r\n \r\n \r\n );\r\n } if (data.type === 'fileupload') {\r\n const currentEmployee = adapter.getCurrentProfile();\r\n if (currentEmployee != null) {\r\n userId = currentEmployee.id;\r\n } else {\r\n userId = adapter.getUser().id * -1;\r\n }\r\n\r\n if (data.filetypes == null) {\r\n data.filetypes = '.doc,.docx,.xml,'\r\n + 'application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,'\r\n + 'image/*,'\r\n + '.pdf';\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n } if (data.type === 'datagroup') {\r\n return (\r\n \r\n \r\n \r\n );\r\n } if (data.type === 'select2' || data.type === 'select' || data.type === 'select2multi') {\r\n return (\r\n \r\n \r\n \r\n );\r\n } if (data.type === 'colorpick') {\r\n return (\r\n \r\n \r\n \r\n );\r\n } if (data.type === 'signature') {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n return null;\r\n }\r\n\r\n generateFieldMessage(label) {\r\n return `${label}: ${this.props.adapter.gt('is required')}`;\r\n }\r\n\r\n getValidationRule(data) {\r\n if (ValidationRules[data.validation] == null) {\r\n return null;\r\n }\r\n\r\n return ValidationRules[data.validation];\r\n }\r\n\r\n dataToFormFields(data, fields) {\r\n for (let i = 0; i < fields.length; i++) {\r\n const [key, formInputData] = fields[i];\r\n if (formInputData.type === 'date') {\r\n data[key] = data[key] ? moment(data[key], 'YYYY-MM-DD') : null;\r\n } else if (formInputData.type === 'datetime') {\r\n data[key] = data[key] ? moment(data[key], 'YYYY-MM-DD HH:mm:ss') : null;\r\n } else if (formInputData.type === 'time') {\r\n data[key] = data[key] ? moment(data[key], 'HH:mm') : null;\r\n }\r\n }\r\n\r\n return data;\r\n }\r\n\r\n formFieldsToData(params, fields) {\r\n for (let i = 0; i < fields.length; i++) {\r\n const [key, formInputData] = fields[i];\r\n if (formInputData.type === 'date') {\r\n params[key] = params[key] ? params[key].format('YYYY-MM-DD') : 'NULL';\r\n } else if (formInputData.type === 'datetime') {\r\n params[key] = params[key] ? params[key].format('YYYY-MM-DD HH:mm:ss') : 'NULL';\r\n } else if (formInputData.type === 'time') {\r\n params[key] = params[key] ? params[key].format('HH:mm') : 'NULL';\r\n } else if ((formInputData.type === 'select' || formInputData.type === 'select2') && params[key] == null) {\r\n params[key] = 'NULL';\r\n }\r\n }\r\n\r\n return params;\r\n }\r\n\r\n updateFields(data) {\r\n const { fields } = this.props;\r\n data = this.dataToFormFields(data, fields);\r\n this.formReference.current.resetFields();\r\n if (data == null) {\r\n return;\r\n }\r\n try {\r\n this.formReference.current.setFieldsValue(data);\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n }\r\n\r\n resetFields() {\r\n this.formReference.current.resetFields();\r\n }\r\n\r\n setFieldsValue(data) {\r\n this.formReference.current.setFieldsValue(data);\r\n }\r\n\r\n save(params, success) {\r\n const { adapter, fields } = this.props;\r\n let values = params;\r\n values = adapter.forceInjectValuesBeforeSave(values);\r\n const msg = adapter.doCustomValidation(values);\r\n if (msg !== null) {\r\n this.showError(msg);\r\n return;\r\n }\r\n if (adapter.csrfRequired) {\r\n values.csrf = $(`#${adapter.getTableName()}Form`).data('csrf');\r\n }\r\n\r\n const id = (adapter.currentElement != null) ? adapter.currentElement.id : null;\r\n if (id != null && id !== '') {\r\n values.id = id;\r\n }\r\n values = this.formFieldsToData(values, fields);\r\n adapter.add(values, [], () => adapter.get([]), () => {\r\n this.formReference.current.resetFields();\r\n this.showError(false);\r\n success();\r\n });\r\n }\r\n}\r\n\r\nexport default IceForm;\r\n","import React from 'react';\r\nimport {\r\n Button, Col, Modal, Row, Space,\r\n} from 'antd';\r\nimport IceForm from './IceForm';\r\n\r\nclass IceFormModal extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n visible: false,\r\n viewOnly: false,\r\n loading: false,\r\n };\r\n this.iceFormReference = React.createRef();\r\n this.width = 800;\r\n }\r\n\r\n setViewOnly(value) {\r\n this.setState({ viewOnly: value });\r\n }\r\n\r\n show(data) {\r\n this.props.adapter.beforeRenderFieldHook = this.props.adapter.beforeRenderField ? this.props.adapter.beforeRenderField(data) : (fieldName, field) => field;\r\n if (!data) {\r\n this.setState({ visible: true });\r\n if (this.iceFormReference.current) {\r\n this.iceFormReference.current.resetFields();\r\n }\r\n } else {\r\n this.setState({ visible: true });\r\n if (this.iceFormReference.current && this.iceFormReference.current.isReady()) {\r\n this.iceFormReference.current.updateFields(data);\r\n } else {\r\n this.waitForIt(\r\n () => this.iceFormReference.current && this.iceFormReference.current.isReady(),\r\n () => { this.iceFormReference.current.updateFields(data); },\r\n 1000,\r\n );\r\n }\r\n }\r\n }\r\n\r\n waitForIt(condition, callback, time) {\r\n setTimeout(() => {\r\n if (condition()) {\r\n callback();\r\n } else {\r\n this.waitForIt(condition, callback, time);\r\n }\r\n }, time);\r\n }\r\n\r\n hide() {\r\n this.setState({ visible: false });\r\n }\r\n\r\n save(params) {\r\n this.iceFormReference.current.save(params, () => { this.closeModal(); });\r\n }\r\n\r\n closeModal() {\r\n this.hide();\r\n this.iceFormReference.current.showError(false);\r\n }\r\n\r\n render() {\r\n const {\r\n fields, adapter, saveCallback, cancelCallback,\r\n } = this.props;\r\n\r\n const additionalProps = {};\r\n additionalProps.footer = (\r\n \r\n \r\n \r\n \r\n \r\n {\r\n this.setState({ loading: true });\r\n const iceFrom = this.iceFormReference.current;\r\n iceFrom\r\n .validateFields()\r\n .then((values) => {\r\n if (!iceFrom.isValid()) {\r\n this.setState({ loading: false });\r\n return;\r\n }\r\n if (saveCallback) {\r\n saveCallback(values, iceFrom.showError.bind(this), this.closeModal.bind(this));\r\n } else {\r\n this.save(values);\r\n }\r\n this.setState({ loading: false });\r\n })\r\n .catch((info) => {\r\n this.setState({ loading: false });\r\n });\r\n }}\r\n >\r\n {this.state.viewOnly ? this.props.adapter.gt('Done') : this.props.adapter.gt('Save')}\r\n \r\n \r\n \r\n \r\n );\r\n\r\n if (this.state.viewOnly) {\r\n additionalProps.footer = null;\r\n }\r\n\r\n return (\r\n {\r\n if (cancelCallback) {\r\n cancelCallback();\r\n } else {\r\n this.closeModal();\r\n }\r\n }}\r\n {...additionalProps}\r\n >\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\n\r\nexport default IceFormModal;\r\n","import React from 'react';\r\nimport { Space } from 'antd';\r\n\r\nclass IceLabel extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n render() {\r\n const { value } = this.props;\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n nl2br(str) {\r\n return (`${str}`).replace(/([^>\\r\\n]?)(\\r\\n|\\n\\r|\\r|\\n)/g, '
    ');\r\n }\r\n}\r\n\r\nexport default IceLabel;\r\n","import React from 'react';\r\nimport { Form, Select } from 'antd';\r\n\r\nconst { Option } = Select;\r\n\r\nclass IceSelect extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.onChange = props.onChange;\r\n }\r\n\r\n render() {\r\n let options;\r\n const { field, adapter } = this.props;\r\n let { value } = this.props;\r\n const data = field[1];\r\n if (data['remote-source'] != null) {\r\n let key = `${data['remote-source'][0]}_${data['remote-source'][1]}_${data['remote-source'][2]}`;\r\n if (data['remote-source'].length === 4) {\r\n key = `${key}_${data['remote-source'][3]}`;\r\n }\r\n options = adapter.fieldMasterData[key];\r\n } else {\r\n options = data.source;\r\n }\r\n const optionData = this.getFormSelectOptionsRemote(options, field, adapter);\r\n\r\n // value should be an array if multi-select\r\n if (data.type === 'select2multi') {\r\n try {\r\n value = JSON.parse(value);\r\n if (value == null) {\r\n value = [];\r\n }\r\n value = value.map((item) => `${item}`);\r\n } catch (e) {\r\n value = [];\r\n }\r\n }\r\n\r\n return (\r\n input != null\r\n && option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0\r\n }\r\n value={value}\r\n options={optionData}\r\n allowClear\r\n onChange={this.handleChange.bind(this)}\r\n disabled={this.props.readOnly}\r\n />\r\n );\r\n }\r\n\r\n handleChange(value) {\r\n const { field } = this.props;\r\n const data = field[1];\r\n if (data.type === 'select2multi') {\r\n this.onChange(JSON.stringify(value));\r\n } else {\r\n this.onChange(value);\r\n }\r\n }\r\n\r\n makeOption(option) {\r\n return ;\r\n }\r\n\r\n getFormSelectOptionsRemote(options, field, adapter) {\r\n const optionData = [];\r\n\r\n if (Array.isArray(options)) {\r\n for (let i = 0; i < options.length; i++) {\r\n optionData.push({\r\n label: options[i][1],\r\n value: options[i][0],\r\n });\r\n }\r\n } else {\r\n for (const key in options) {\r\n optionData.push({\r\n label: options[key],\r\n value: key,\r\n });\r\n }\r\n }\r\n\r\n // if (field[1].sort === 'true') {\r\n // tuples.sort((a, b) => {\r\n // a = a[1];\r\n // b = b[1];\r\n //\r\n // // eslint-disable-next-line no-nested-ternary\r\n // return a < b ? -1 : (a > b ? 1 : 0);\r\n // });\r\n // }\r\n\r\n // for (let i = 0; i < tuples.length; i++) {\r\n // const prop = tuples[i][0];\r\n // const value = tuples[i][1];\r\n // optionData.push([prop, adapter.gt(value)]);\r\n // }\r\n\r\n return optionData;\r\n }\r\n}\r\n\r\nexport default IceSelect;\r\n","import React from 'react';\r\nimport SignatureCanvas from 'react-signature-canvas';\r\nimport { Button, Modal, Tag } from 'antd';\r\nimport { VerifiedOutlined } from '@ant-design/icons';\r\n\r\nclass IceSignature extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.onChange = props.onChange;\r\n this.state = {\r\n visible: false,\r\n };\r\n this.signature = React.createRef();\r\n }\r\n\r\n componentDidMount() {\r\n }\r\n\r\n show() {\r\n this.setState({ visible: true });\r\n }\r\n\r\n setSignature(ref) {\r\n if (ref == null) {\r\n return;\r\n }\r\n const { value } = this.props;\r\n if (value != null && value.length > 10) {\r\n ref.fromDataURL(value);\r\n }\r\n }\r\n\r\n hide() {\r\n this.setState({ visible: false });\r\n }\r\n\r\n clear() {\r\n this.signature.clear();\r\n }\r\n\r\n save() {\r\n const data = this.signature.toDataURL('image/png');\r\n this.onChange(data);\r\n this.setState({ visible: false });\r\n }\r\n\r\n render() {\r\n const { readOnly } = this.props;\r\n\r\n return (\r\n <>\r\n { this.hide(); }}\r\n footer={[\r\n ,\r\n ,\r\n ,\r\n ]}\r\n >\r\n { this.signature = ref; this.setSignature(ref); }} canvasProps={{ width: 250, height: 200, className: 'sigCanvas', ...( readOnly ? { readOnly } : {}), }} />\r\n \r\n { this.show(); }}>\r\n \r\n {' '}\r\n Sign\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default IceSignature;\r\n","import React from 'react';\r\nimport {\r\n Button, Divider, Steps, Row, Col, Space,\r\n} from 'antd';\r\nimport IceForm from './IceForm';\r\n\r\nconst { Step } = Steps;\r\n\r\nclass IceStepForm extends IceForm {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.onChange = props.onChange;\r\n\r\n let steps = this.props.fields.map((item) => ({\r\n ...item,\r\n ref: React.createRef(),\r\n }));\r\n\r\n steps = steps.map((item) => {\r\n const { ref, fields } = item;\r\n item.content = (\r\n \r\n );\r\n\r\n return item;\r\n });\r\n\r\n this.state = {\r\n current: 0,\r\n steps,\r\n loading: false,\r\n };\r\n }\r\n\r\n moveToStep(current) {\r\n this.setState({ current });\r\n }\r\n\r\n next() {\r\n if (this.validateFields(false) === false) {\r\n return;\r\n }\r\n\r\n this.showError(false);\r\n const current = this.state.current + 1;\r\n this.setState({ current });\r\n }\r\n\r\n prev() {\r\n const current = this.state.current - 1;\r\n if (current < 0) {\r\n return;\r\n }\r\n this.setState({ current });\r\n }\r\n\r\n render() {\r\n const { adapter } = this.props;\r\n const { current, steps } = this.state;\r\n return (\r\n <>\r\n \r\n {steps.map((item, index) => (\r\n this.moveToStep(index)} />\r\n ))}\r\n \r\n \r\n
    \r\n {steps.map((item, index) => (\r\n
    \r\n {item.content}\r\n
    \r\n ))}\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n {current < steps.length - 1 && (\r\n \r\n )}\r\n {current > 0 && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n async saveData() {\r\n this.setState({ loading: true });\r\n const data = await this.validateFields(true);\r\n if (data) {\r\n this.save(data, () => this.props.closeModal());\r\n }\r\n this.setState({ loading: false });\r\n }\r\n\r\n save(params, success) {\r\n const { adapter } = this.props;\r\n adapter.add(params, [], () => adapter.get([]), () => {\r\n this.resetFields();\r\n this.showError(false);\r\n success();\r\n });\r\n }\r\n\r\n updateFields(data) {\r\n this.state.steps.forEach((item) => {\r\n const subData = {};\r\n item.fields.forEach(([key]) => {\r\n subData[key] = data[key];\r\n });\r\n this.updateFieldsSubForm(item.ref, item.fields, subData);\r\n });\r\n }\r\n\r\n updateFieldsSubForm(ref, fields, data) {\r\n data = this.dataToFormFields(data, fields);\r\n ref.current.resetFields();\r\n if (data == null) {\r\n return;\r\n }\r\n try {\r\n ref.current.setFieldsValue(data);\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n }\r\n\r\n async validateFields(all) {\r\n const { adapter } = this.props;\r\n const steps = all ? this.state.steps : this.state.steps.slice(0, this.state.current + 1);\r\n const promiseList = steps.map(\r\n (item) => item.ref.current.validateFields()\r\n .then((values) => {\r\n if (!item.ref.current.isValid()) {\r\n return false;\r\n }\r\n return values;\r\n })\r\n .catch(() => false),\r\n );\r\n\r\n const allData = await Promise.all(promiseList);\r\n const failedIndex = allData.findIndex((item) => item === false);\r\n\r\n if (failedIndex >= 0) {\r\n this.setState({ current: failedIndex });\r\n\r\n return false;\r\n }\r\n\r\n let values = Object.assign({}, ...allData);\r\n values = adapter.forceInjectValuesBeforeSave(values);\r\n const msg = adapter.doCustomValidation(values);\r\n\r\n if (msg !== null) {\r\n this.showError(msg);\r\n return false;\r\n }\r\n\r\n if (adapter.csrfRequired) {\r\n values.csrf = $(`#${adapter.getTableName()}Form`).data('csrf');\r\n }\r\n\r\n const id = (adapter.currentElement != null) ? adapter.currentElement.id : null;\r\n if (id != null && id !== '') {\r\n values.id = id;\r\n }\r\n\r\n const fields = [].concat.apply([], this.state.steps.map((item) => item.fields));\r\n\r\n return this.formFieldsToData(values, fields);\r\n }\r\n\r\n getSubFormData(ref, fields, params) {\r\n const { adapter } = this.props;\r\n let values = params;\r\n values = adapter.forceInjectValuesBeforeSave(values);\r\n const msg = adapter.doCustomValidation(values);\r\n if (msg !== null) {\r\n ref.current.showError(msg);\r\n return;\r\n }\r\n\r\n if (adapter.csrfRequired) {\r\n values.csrf = $(`#${adapter.getTableName()}Form`).data('csrf');\r\n }\r\n\r\n const id = (adapter.currentElement != null) ? adapter.currentElement.id : null;\r\n if (id != null && id !== '') {\r\n values.id = id;\r\n }\r\n\r\n return this.formFieldsToData(values, fields);\r\n }\r\n\r\n showError(errorMsg) {\r\n this.state.steps.forEach((item) => item.ref.current.showError(errorMsg));\r\n }\r\n\r\n resetFields() {\r\n this.state.steps.forEach((item) => item.ref.current.resetFields());\r\n }\r\n\r\n hideError() {\r\n this.state.steps.forEach((item) => item.ref.current.hideError());\r\n }\r\n\r\n isReady() {\r\n return this.state.steps.reduce((acc, item) => acc && item.ref.current != null, true);\r\n }\r\n}\r\n\r\nexport default IceStepForm;\r\n","import React from 'react';\r\nimport { Modal } from 'antd';\r\nimport IceFormModal from './IceFormModal';\r\nimport IceStepForm from './IceStepForm';\r\n\r\nclass IceStepFormModal extends IceFormModal {\r\n constructor(props) {\r\n super(props);\r\n this.width = 850;\r\n }\r\n\r\n show(data) {\r\n this.props.adapter.beforeRenderFieldHook = this.props.adapter.beforeRenderField ? this.props.adapter.beforeRenderField(data) : (fieldName, field) => field;\r\n if (!data) {\r\n this.setState({ visible: true });\r\n if (this.iceFormReference.current) {\r\n this.iceFormReference.current.resetFields();\r\n }\r\n } else {\r\n this.setState({ visible: true });\r\n if (this.iceFormReference.current && this.iceFormReference.current.isReady()) {\r\n this.iceFormReference.current.moveToStep(0);\r\n this.iceFormReference.current.updateFields(data);\r\n } else {\r\n this.waitForIt(\r\n () => this.iceFormReference.current && this.iceFormReference.current.isReady(),\r\n () => {\r\n this.iceFormReference.current.updateFields(data);\r\n this.iceFormReference.current.moveToStep(0);\r\n },\r\n 1000,\r\n );\r\n }\r\n }\r\n }\r\n\r\n hide() {\r\n this.iceFormReference.current.moveToStep(0);\r\n this.setState({ visible: false });\r\n }\r\n\r\n render() {\r\n const { fields, adapter } = this.props;\r\n const { width, twoColumnLayout, layout } = this.props.adapter.getFormOptions();\r\n return (\r\n {\r\n this.closeModal();\r\n }}\r\n >\r\n { this.closeModal(); }}\r\n twoColumnLayout={twoColumnLayout || false}\r\n layout={layout}\r\n />\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default IceStepFormModal;\r\n","import React, {Component} from 'react';\r\nimport {Col, Form, Input, Row, Table, Space, Button, Tag, message} from 'antd';\r\nimport {\r\n FilterOutlined,\r\n PlusCircleOutlined,\r\n} from '@ant-design/icons';\r\nconst { Search } = Input;\r\n\r\nclass IceTable extends React.Component {\r\n state = {\r\n data: [],\r\n pagination: {},\r\n loading: true,\r\n fetchConfig: false,\r\n //filter: null,\r\n showLoading: true,\r\n currentElement: null,\r\n fetchCompleted: false,\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n componentDidMount() {\r\n const fetchConfig = {\r\n page: 1,\r\n };\r\n message.config({\r\n top: 40,\r\n });\r\n this.setState({\r\n fetchConfig,\r\n //filter: this.props.adapter.filter,\r\n pagination: { 'pageSize': this.props.reader.pageSize }\r\n });\r\n //this.fetch(fetchConfig);\r\n }\r\n\r\n handleTableChange = (pagination, filters, sorter) => {\r\n const pager = { ...this.state.pagination };\r\n const { search } = this.state;\r\n pager.current = pagination.current;\r\n this.setState({\r\n pagination: pager,\r\n });\r\n\r\n const fetchConfig = {\r\n limit: pagination.pageSize,\r\n page: pagination.current,\r\n sortField: sorter.field,\r\n sortOrder: sorter.order,\r\n filters: JSON.stringify(filters),\r\n search: search,\r\n };\r\n\r\n this.setState({\r\n fetchConfig\r\n });\r\n\r\n this.fetch(fetchConfig);\r\n };\r\n\r\n reload = () => {\r\n const fetchConfig = this.state.fetchConfig;\r\n if (fetchConfig) {\r\n this.fetch(fetchConfig)\r\n }\r\n };\r\n\r\n search = (value) => {\r\n this.setState({ search: value });\r\n const fetchConfig = this.state.fetchConfig;\r\n console.log(fetchConfig);\r\n if (fetchConfig) {\r\n fetchConfig.search = value;\r\n this.setState({\r\n fetchConfig\r\n });\r\n this.fetch(fetchConfig)\r\n }\r\n }\r\n\r\n addNew = () => {\r\n this.props.adapter.renderForm();\r\n }\r\n\r\n showFilters = () => {\r\n this.props.adapter.showFilters();\r\n }\r\n\r\n setFilterData = (filter) => {\r\n this.setState({\r\n filter,\r\n });\r\n }\r\n\r\n setCurrentElement = (currentElement) => {\r\n this.setState({currentElement});\r\n }\r\n\r\n setLoading(value) {\r\n this.setState({ loading: value });\r\n }\r\n\r\n fetch = (params = {}) => {\r\n //this.setState({ loading: this.state.showLoading });\r\n this.setState({ loading: true });\r\n //const hideMessage = message.loading({ content: 'Loading Latest Data ...', key: 'loadingTable', duration: 1});\r\n const pagination = { ...this.state.pagination };\r\n\r\n if (this.props.adapter.localStorageEnabled) {\r\n try {\r\n const cachedResponse = this.props.reader.getCachedResponse(params);\r\n if (cachedResponse.items) {\r\n this.setState({\r\n loading: false,\r\n data: cachedResponse.items,\r\n pagination,\r\n showLoading: false,\r\n });\r\n } else {\r\n this.props.reader.clearCachedResponse(params);\r\n }\r\n } catch (e) {\r\n this.props.reader.clearCachedResponse(params);\r\n }\r\n }\r\n\r\n this.props.reader.get(params)\r\n .then(data => {\r\n // Read total count from server\r\n // pagination.total = data.totalCount;\r\n pagination.total = data.total;\r\n //hideMessage();\r\n // setTimeout(\r\n // () => message.success({ content: 'Loading Completed!', key: 'loadingSuccess', duration: 1 }),\r\n // 600\r\n // );\r\n this.setState({\r\n loading: false,\r\n data: data.items,\r\n pagination,\r\n showLoading: false,\r\n fetchCompleted: true,\r\n });\r\n });\r\n };\r\n\r\n getChildrenWithProps(element) {\r\n const childrenWithProps = React.Children.map(this.props.children, child => {\r\n // checking isValidElement is the safe way and avoids a typescript error too\r\n const props = {\r\n element,\r\n adapter: this.props.adapter,\r\n loading: this.state.loading,\r\n };\r\n if (React.isValidElement(child)) {\r\n return React.cloneElement(child, props);\r\n }\r\n return child;\r\n });\r\n\r\n return childrenWithProps;\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n {!this.state.currentElement &&\r\n \r\n \r\n \r\n \r\n {this.props.adapter.hasAccess('save') && this.props.adapter.getShowAddNew() &&\r\n \r\n }\r\n {this.props.adapter.getFilters() &&\r\n \r\n }\r\n\r\n {this.state.fetchCompleted\r\n && this.props.adapter.getFilters()\r\n && this.props.adapter.filter != null\r\n && this.props.adapter.filter !== []\r\n && this.props.adapter.filter !== ''\r\n && this.props.adapter.getFilterString(this.props.adapter.filter) !== '' &&\r\n this.props.adapter.resetFilters()}\r\n visible={this.props.adapter.filter != null && this.props.adapter.filter !== [] && this.props.adapter.filter !== ''}\r\n >\r\n {this.props.adapter.getFilterString(this.props.adapter.filter)}\r\n \r\n }\r\n\r\n \r\n \r\n \r\n this.form = formRef}\r\n name=\"advanced_search\"\r\n className=\"ant-advanced-search-form\"\r\n >\r\n \r\n this.search(value)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n index % 2 === 0 ? 'table-row-light' : 'table-row-dark'}\r\n columns={this.props.columns}\r\n rowKey={record => record.id}\r\n dataSource={this.state.data}\r\n pagination={this.state.pagination}\r\n loading={this.state.loading}\r\n onChange={this.handleTableChange}\r\n reader={this.props.dataPipe}\r\n />\r\n \r\n \r\n \r\n }\r\n {this.state.currentElement &&\r\n this.getChildrenWithProps(this.state.currentElement)\r\n }\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default IceTable;\r\n","import React from \"react\";\r\nimport {Button, message, Space, Upload, Tag} from \"antd\";\r\nimport { UploadOutlined, DownloadOutlined, DeleteOutlined } from '@ant-design/icons';\r\n\r\nclass IceUpload extends React.Component {\r\n state = {\r\n fileList: [],\r\n uploaded: false,\r\n };\r\n\r\n _isMounted = false;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.onChange = props.onChange;\r\n }\r\n\r\n componentDidMount() {\r\n this._isMounted = true;\r\n message.config({\r\n top: 55,\r\n duration: 2,\r\n });\r\n }\r\n\r\n componentWillUnmount() {\r\n this._isMounted = false;\r\n }\r\n\r\n handleDelete = () => {\r\n this.setState({ fileList: [], value: null, uploaded: false});\r\n this.onChange(null);\r\n };\r\n\r\n handleView = () => {\r\n let currentValue = this.props.value;\r\n if (this.state.value != null && this.state.value !== '') {\r\n currentValue = this.state.value;\r\n }\r\n if (currentValue == null || currentValue === '') {\r\n message.error('File not found');\r\n return;\r\n }\r\n\r\n const { adapter } = this.props;\r\n\r\n adapter.getFile(currentValue)\r\n .then((data) => {\r\n const file = {\r\n key: data.uid,\r\n uid: data.uid,\r\n name: data.name,\r\n status: data.status,\r\n url: data.filename,\r\n };\r\n window.open(file.url);\r\n }).catch((e) => {\r\n\r\n });\r\n };\r\n\r\n handleChange = info => {\r\n let fileList = [...info.fileList];\r\n\r\n if (fileList.length === 0) {\r\n this.setState({ value: null });\r\n this.onChange(null);\r\n this.setState({fileList: []});\r\n this.setState({uploaded: false});\r\n return;\r\n }\r\n\r\n fileList = fileList.slice(-1);\r\n\r\n if (fileList[0].response && fileList[0].response.status === 'error') {\r\n this.setState({ value: null });\r\n this.onChange(null);\r\n this.setState({fileList: []});\r\n this.setState({uploaded: false});\r\n message.error(`Error: ${fileList[0].response.message}`);\r\n return;\r\n }\r\n\r\n fileList = fileList.map(file => {\r\n if (file.response) {\r\n // Component will show file.url as link\r\n file.name = file.response.name;\r\n file.url = file.response.url;\r\n }\r\n return file;\r\n });\r\n\r\n this.setState({fileList});\r\n this.setState({ value: this.getFileName(fileList), uploaded: true });\r\n this.onChange(this.getFileName(fileList));\r\n };\r\n\r\n getFileName(fileList) {\r\n let file = null;\r\n if (fileList) {\r\n file = fileList[0];\r\n }\r\n\r\n return file ? file.name : '';\r\n }\r\n\r\n generateRandom(length) {\r\n const d = new Date();\r\n const chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\r\n let result = '';\r\n for (let i = length; i > 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))];\r\n return result + d.getTime();\r\n }\r\n\r\n render() {\r\n let fileName = this.generateRandom(14);\r\n\r\n const props = {\r\n action: `${window.CLIENT_BASE_URL}fileupload-new.php?user=${this.props.user}&file_group=${this.props.fileGroup}&file_name=${fileName}`,\r\n onChange: this.handleChange,\r\n onRemove: this.handleDelete,\r\n multiple: false,\r\n listType: 'picture',\r\n };\r\n\r\n return (\r\n \r\n {!this.props.readOnly &&\r\n \r\n \r\n \r\n \r\n {' '}\r\n Upload\r\n \r\n \r\n \r\n }\r\n \r\n { (((this.props.value != null && this.props.value !== '') || (this.state.value != null && this.state.value !== '')) && !this.state.uploaded) &&\r\n \r\n }\r\n { (((this.props.value != null && this.props.value !== '') || (this.state.value != null && this.state.value !== '')) && !this.state.uploaded && !this.props.readOnly) &&\r\n \r\n }\r\n \r\n \r\n\r\n );\r\n }\r\n}\r\n\r\nexport default IceUpload;\r\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar DEFAULT_SIZE = 24;\n\nexports.default = function (_ref) {\n var _ref$fill = _ref.fill,\n fill = _ref$fill === undefined ? 'currentColor' : _ref$fill,\n _ref$width = _ref.width,\n width = _ref$width === undefined ? DEFAULT_SIZE : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === undefined ? DEFAULT_SIZE : _ref$height,\n _ref$style = _ref.style,\n style = _ref$style === undefined ? {} : _ref$style,\n props = _objectWithoutProperties(_ref, ['fill', 'width', 'height', 'style']);\n\n return _react2.default.createElement(\n 'svg',\n _extends({\n viewBox: '0 0 ' + DEFAULT_SIZE + ' ' + DEFAULT_SIZE,\n style: _extends({ fill: fill, width: width, height: height }, style)\n }, props),\n _react2.default.createElement('path', { d: 'M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z' })\n );\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar DEFAULT_SIZE = 24;\n\nexports.default = function (_ref) {\n var _ref$fill = _ref.fill,\n fill = _ref$fill === undefined ? 'currentColor' : _ref$fill,\n _ref$width = _ref.width,\n width = _ref$width === undefined ? DEFAULT_SIZE : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === undefined ? DEFAULT_SIZE : _ref$height,\n _ref$style = _ref.style,\n style = _ref$style === undefined ? {} : _ref$style,\n props = _objectWithoutProperties(_ref, ['fill', 'width', 'height', 'style']);\n\n return _react2.default.createElement(\n 'svg',\n _extends({\n viewBox: '0 0 ' + DEFAULT_SIZE + ' ' + DEFAULT_SIZE,\n style: _extends({ fill: fill, width: width, height: height }, style)\n }, props),\n _react2.default.createElement('path', { d: 'M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z' })\n );\n};","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n if (\n (utils.isBlob(requestData) || utils.isFile(requestData)) &&\n requestData.type\n ) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = unescape(encodeURIComponent(config.auth.password)) || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(timeoutErrorMessage, config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignMergeValue;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var copyObject = require('./_copyObject'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var Stack = require('./_Stack'),\n arrayEach = require('./_arrayEach'),\n assignValue = require('./_assignValue'),\n baseAssign = require('./_baseAssign'),\n baseAssignIn = require('./_baseAssignIn'),\n cloneBuffer = require('./_cloneBuffer'),\n copyArray = require('./_copyArray'),\n copySymbols = require('./_copySymbols'),\n copySymbolsIn = require('./_copySymbolsIn'),\n getAllKeys = require('./_getAllKeys'),\n getAllKeysIn = require('./_getAllKeysIn'),\n getTag = require('./_getTag'),\n initCloneArray = require('./_initCloneArray'),\n initCloneByTag = require('./_initCloneByTag'),\n initCloneObject = require('./_initCloneObject'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isMap = require('./isMap'),\n isObject = require('./isObject'),\n isSet = require('./isSet'),\n keys = require('./keys'),\n keysIn = require('./keysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;\n","var isObject = require('./isObject');\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nmodule.exports = baseCreate;\n","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","var Stack = require('./_Stack'),\n assignMergeValue = require('./_assignMergeValue'),\n baseFor = require('./_baseFor'),\n baseMergeDeep = require('./_baseMergeDeep'),\n isObject = require('./isObject'),\n keysIn = require('./keysIn'),\n safeGet = require('./_safeGet');\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nmodule.exports = baseMerge;\n","var assignMergeValue = require('./_assignMergeValue'),\n cloneBuffer = require('./_cloneBuffer'),\n cloneTypedArray = require('./_cloneTypedArray'),\n copyArray = require('./_copyArray'),\n initCloneObject = require('./_initCloneObject'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLikeObject = require('./isArrayLikeObject'),\n isBuffer = require('./isBuffer'),\n isFunction = require('./isFunction'),\n isObject = require('./isObject'),\n isPlainObject = require('./isPlainObject'),\n isTypedArray = require('./isTypedArray'),\n safeGet = require('./_safeGet'),\n toPlainObject = require('./toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nmodule.exports = baseMergeDeep;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var identity = require('./identity');\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nmodule.exports = castFunction;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var Uint8Array = require('./_Uint8Array');\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n","var root = require('./_root');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nmodule.exports = cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nmodule.exports = cloneRegExp;\n","var Symbol = require('./_Symbol');\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nmodule.exports = cloneSymbol;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = copyArray;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","var copyObject = require('./_copyObject'),\n getSymbols = require('./_getSymbols');\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nmodule.exports = copySymbols;\n","var copyObject = require('./_copyObject'),\n getSymbolsIn = require('./_getSymbolsIn');\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbolsIn = require('./_getSymbolsIn'),\n keysIn = require('./keysIn');\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nmodule.exports = getAllKeysIn;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var arrayPush = require('./_arrayPush'),\n getPrototype = require('./_getPrototype'),\n getSymbols = require('./_getSymbols'),\n stubArray = require('./stubArray');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nmodule.exports = getSymbolsIn;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nmodule.exports = initCloneArray;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer'),\n cloneDataView = require('./_cloneDataView'),\n cloneRegExp = require('./_cloneRegExp'),\n cloneSymbol = require('./_cloneSymbol'),\n cloneTypedArray = require('./_cloneTypedArray');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nmodule.exports = initCloneByTag;\n","var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nmodule.exports = initCloneObject;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nmodule.exports = safeGet;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","var baseClone = require('./_baseClone');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nmodule.exports = cloneDeep;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","module.exports = require('./forEach');\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var arrayEach = require('./_arrayEach'),\n baseEach = require('./_baseEach'),\n castFunction = require('./_castFunction'),\n isArray = require('./isArray');\n\n/**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, castFunction(iteratee));\n}\n\nmodule.exports = forEach;\n","var baseForOwn = require('./_baseForOwn'),\n castFunction = require('./_castFunction');\n\n/**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forOwn(object, iteratee) {\n return object && baseForOwn(object, castFunction(iteratee));\n}\n\nmodule.exports = forOwn;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","var baseIsMap = require('./_baseIsMap'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nmodule.exports = isMap;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n","var baseIsSet = require('./_baseIsSet'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nmodule.exports = isSet;\n","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","/**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nmodule.exports = isUndefined;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n isArray = require('./isArray');\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nmodule.exports = map;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nmodule.exports = merge;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var debounce = require('./debounce'),\n isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n","var isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n define([], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory();\n } else {\n root.materialColors = factory();\n }\n})(this, function() {\n return {\"red\":{\"50\":\"#ffebee\",\"100\":\"#ffcdd2\",\"200\":\"#ef9a9a\",\"300\":\"#e57373\",\"400\":\"#ef5350\",\"500\":\"#f44336\",\"600\":\"#e53935\",\"700\":\"#d32f2f\",\"800\":\"#c62828\",\"900\":\"#b71c1c\",\"a100\":\"#ff8a80\",\"a200\":\"#ff5252\",\"a400\":\"#ff1744\",\"a700\":\"#d50000\"},\"pink\":{\"50\":\"#fce4ec\",\"100\":\"#f8bbd0\",\"200\":\"#f48fb1\",\"300\":\"#f06292\",\"400\":\"#ec407a\",\"500\":\"#e91e63\",\"600\":\"#d81b60\",\"700\":\"#c2185b\",\"800\":\"#ad1457\",\"900\":\"#880e4f\",\"a100\":\"#ff80ab\",\"a200\":\"#ff4081\",\"a400\":\"#f50057\",\"a700\":\"#c51162\"},\"purple\":{\"50\":\"#f3e5f5\",\"100\":\"#e1bee7\",\"200\":\"#ce93d8\",\"300\":\"#ba68c8\",\"400\":\"#ab47bc\",\"500\":\"#9c27b0\",\"600\":\"#8e24aa\",\"700\":\"#7b1fa2\",\"800\":\"#6a1b9a\",\"900\":\"#4a148c\",\"a100\":\"#ea80fc\",\"a200\":\"#e040fb\",\"a400\":\"#d500f9\",\"a700\":\"#aa00ff\"},\"deepPurple\":{\"50\":\"#ede7f6\",\"100\":\"#d1c4e9\",\"200\":\"#b39ddb\",\"300\":\"#9575cd\",\"400\":\"#7e57c2\",\"500\":\"#673ab7\",\"600\":\"#5e35b1\",\"700\":\"#512da8\",\"800\":\"#4527a0\",\"900\":\"#311b92\",\"a100\":\"#b388ff\",\"a200\":\"#7c4dff\",\"a400\":\"#651fff\",\"a700\":\"#6200ea\"},\"indigo\":{\"50\":\"#e8eaf6\",\"100\":\"#c5cae9\",\"200\":\"#9fa8da\",\"300\":\"#7986cb\",\"400\":\"#5c6bc0\",\"500\":\"#3f51b5\",\"600\":\"#3949ab\",\"700\":\"#303f9f\",\"800\":\"#283593\",\"900\":\"#1a237e\",\"a100\":\"#8c9eff\",\"a200\":\"#536dfe\",\"a400\":\"#3d5afe\",\"a700\":\"#304ffe\"},\"blue\":{\"50\":\"#e3f2fd\",\"100\":\"#bbdefb\",\"200\":\"#90caf9\",\"300\":\"#64b5f6\",\"400\":\"#42a5f5\",\"500\":\"#2196f3\",\"600\":\"#1e88e5\",\"700\":\"#1976d2\",\"800\":\"#1565c0\",\"900\":\"#0d47a1\",\"a100\":\"#82b1ff\",\"a200\":\"#448aff\",\"a400\":\"#2979ff\",\"a700\":\"#2962ff\"},\"lightBlue\":{\"50\":\"#e1f5fe\",\"100\":\"#b3e5fc\",\"200\":\"#81d4fa\",\"300\":\"#4fc3f7\",\"400\":\"#29b6f6\",\"500\":\"#03a9f4\",\"600\":\"#039be5\",\"700\":\"#0288d1\",\"800\":\"#0277bd\",\"900\":\"#01579b\",\"a100\":\"#80d8ff\",\"a200\":\"#40c4ff\",\"a400\":\"#00b0ff\",\"a700\":\"#0091ea\"},\"cyan\":{\"50\":\"#e0f7fa\",\"100\":\"#b2ebf2\",\"200\":\"#80deea\",\"300\":\"#4dd0e1\",\"400\":\"#26c6da\",\"500\":\"#00bcd4\",\"600\":\"#00acc1\",\"700\":\"#0097a7\",\"800\":\"#00838f\",\"900\":\"#006064\",\"a100\":\"#84ffff\",\"a200\":\"#18ffff\",\"a400\":\"#00e5ff\",\"a700\":\"#00b8d4\"},\"teal\":{\"50\":\"#e0f2f1\",\"100\":\"#b2dfdb\",\"200\":\"#80cbc4\",\"300\":\"#4db6ac\",\"400\":\"#26a69a\",\"500\":\"#009688\",\"600\":\"#00897b\",\"700\":\"#00796b\",\"800\":\"#00695c\",\"900\":\"#004d40\",\"a100\":\"#a7ffeb\",\"a200\":\"#64ffda\",\"a400\":\"#1de9b6\",\"a700\":\"#00bfa5\"},\"green\":{\"50\":\"#e8f5e9\",\"100\":\"#c8e6c9\",\"200\":\"#a5d6a7\",\"300\":\"#81c784\",\"400\":\"#66bb6a\",\"500\":\"#4caf50\",\"600\":\"#43a047\",\"700\":\"#388e3c\",\"800\":\"#2e7d32\",\"900\":\"#1b5e20\",\"a100\":\"#b9f6ca\",\"a200\":\"#69f0ae\",\"a400\":\"#00e676\",\"a700\":\"#00c853\"},\"lightGreen\":{\"50\":\"#f1f8e9\",\"100\":\"#dcedc8\",\"200\":\"#c5e1a5\",\"300\":\"#aed581\",\"400\":\"#9ccc65\",\"500\":\"#8bc34a\",\"600\":\"#7cb342\",\"700\":\"#689f38\",\"800\":\"#558b2f\",\"900\":\"#33691e\",\"a100\":\"#ccff90\",\"a200\":\"#b2ff59\",\"a400\":\"#76ff03\",\"a700\":\"#64dd17\"},\"lime\":{\"50\":\"#f9fbe7\",\"100\":\"#f0f4c3\",\"200\":\"#e6ee9c\",\"300\":\"#dce775\",\"400\":\"#d4e157\",\"500\":\"#cddc39\",\"600\":\"#c0ca33\",\"700\":\"#afb42b\",\"800\":\"#9e9d24\",\"900\":\"#827717\",\"a100\":\"#f4ff81\",\"a200\":\"#eeff41\",\"a400\":\"#c6ff00\",\"a700\":\"#aeea00\"},\"yellow\":{\"50\":\"#fffde7\",\"100\":\"#fff9c4\",\"200\":\"#fff59d\",\"300\":\"#fff176\",\"400\":\"#ffee58\",\"500\":\"#ffeb3b\",\"600\":\"#fdd835\",\"700\":\"#fbc02d\",\"800\":\"#f9a825\",\"900\":\"#f57f17\",\"a100\":\"#ffff8d\",\"a200\":\"#ffff00\",\"a400\":\"#ffea00\",\"a700\":\"#ffd600\"},\"amber\":{\"50\":\"#fff8e1\",\"100\":\"#ffecb3\",\"200\":\"#ffe082\",\"300\":\"#ffd54f\",\"400\":\"#ffca28\",\"500\":\"#ffc107\",\"600\":\"#ffb300\",\"700\":\"#ffa000\",\"800\":\"#ff8f00\",\"900\":\"#ff6f00\",\"a100\":\"#ffe57f\",\"a200\":\"#ffd740\",\"a400\":\"#ffc400\",\"a700\":\"#ffab00\"},\"orange\":{\"50\":\"#fff3e0\",\"100\":\"#ffe0b2\",\"200\":\"#ffcc80\",\"300\":\"#ffb74d\",\"400\":\"#ffa726\",\"500\":\"#ff9800\",\"600\":\"#fb8c00\",\"700\":\"#f57c00\",\"800\":\"#ef6c00\",\"900\":\"#e65100\",\"a100\":\"#ffd180\",\"a200\":\"#ffab40\",\"a400\":\"#ff9100\",\"a700\":\"#ff6d00\"},\"deepOrange\":{\"50\":\"#fbe9e7\",\"100\":\"#ffccbc\",\"200\":\"#ffab91\",\"300\":\"#ff8a65\",\"400\":\"#ff7043\",\"500\":\"#ff5722\",\"600\":\"#f4511e\",\"700\":\"#e64a19\",\"800\":\"#d84315\",\"900\":\"#bf360c\",\"a100\":\"#ff9e80\",\"a200\":\"#ff6e40\",\"a400\":\"#ff3d00\",\"a700\":\"#dd2c00\"},\"brown\":{\"50\":\"#efebe9\",\"100\":\"#d7ccc8\",\"200\":\"#bcaaa4\",\"300\":\"#a1887f\",\"400\":\"#8d6e63\",\"500\":\"#795548\",\"600\":\"#6d4c41\",\"700\":\"#5d4037\",\"800\":\"#4e342e\",\"900\":\"#3e2723\"},\"grey\":{\"50\":\"#fafafa\",\"100\":\"#f5f5f5\",\"200\":\"#eeeeee\",\"300\":\"#e0e0e0\",\"400\":\"#bdbdbd\",\"500\":\"#9e9e9e\",\"600\":\"#757575\",\"700\":\"#616161\",\"800\":\"#424242\",\"900\":\"#212121\"},\"blueGrey\":{\"50\":\"#eceff1\",\"100\":\"#cfd8dc\",\"200\":\"#b0bec5\",\"300\":\"#90a4ae\",\"400\":\"#78909c\",\"500\":\"#607d8b\",\"600\":\"#546e7a\",\"700\":\"#455a64\",\"800\":\"#37474f\",\"900\":\"#263238\"},\"darkText\":{\"primary\":\"rgba(0, 0, 0, 0.87)\",\"secondary\":\"rgba(0, 0, 0, 0.54)\",\"disabled\":\"rgba(0, 0, 0, 0.38)\",\"dividers\":\"rgba(0, 0, 0, 0.12)\"},\"lightText\":{\"primary\":\"rgba(255, 255, 255, 1)\",\"secondary\":\"rgba(255, 255, 255, 0.7)\",\"disabled\":\"rgba(255, 255, 255, 0.5)\",\"dividers\":\"rgba(255, 255, 255, 0.12)\"},\"darkIcons\":{\"active\":\"rgba(0, 0, 0, 0.54)\",\"inactive\":\"rgba(0, 0, 0, 0.38)\"},\"lightIcons\":{\"active\":\"rgba(255, 255, 255, 1)\",\"inactive\":\"rgba(255, 255, 255, 0.5)\"},\"white\":\"#ffffff\",\"black\":\"#000000\"};\n});\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\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","/**\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'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\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'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\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'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar has = Function.call.bind(Object.prototype.hasOwnProperty);\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\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 */\n /*eslint-disable no-self-compare*/\n function 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 return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\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\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\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'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AlphaPicker = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _common = require('../common');\n\nvar _AlphaPointer = require('./AlphaPointer');\n\nvar _AlphaPointer2 = _interopRequireDefault(_AlphaPointer);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar AlphaPicker = exports.AlphaPicker = function AlphaPicker(_ref) {\n var rgb = _ref.rgb,\n hsl = _ref.hsl,\n width = _ref.width,\n height = _ref.height,\n onChange = _ref.onChange,\n direction = _ref.direction,\n style = _ref.style,\n renderers = _ref.renderers,\n pointer = _ref.pointer,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n picker: {\n position: 'relative',\n width: width,\n height: height\n },\n alpha: {\n radius: '2px',\n style: style\n }\n }\n });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.picker, className: 'alpha-picker ' + className },\n _react2.default.createElement(_common.Alpha, _extends({}, styles.alpha, {\n rgb: rgb,\n hsl: hsl,\n pointer: pointer,\n renderers: renderers,\n onChange: onChange,\n direction: direction\n }))\n );\n};\n\nAlphaPicker.defaultProps = {\n width: '316px',\n height: '16px',\n direction: 'horizontal',\n pointer: _AlphaPointer2.default\n};\n\nexports.default = (0, _common.ColorWrap)(AlphaPicker);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AlphaPointer = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar AlphaPointer = exports.AlphaPointer = function AlphaPointer(_ref) {\n var direction = _ref.direction;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n picker: {\n width: '18px',\n height: '18px',\n borderRadius: '50%',\n transform: 'translate(-9px, -1px)',\n backgroundColor: 'rgb(248, 248, 248)',\n boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)'\n }\n },\n 'vertical': {\n picker: {\n transform: 'translate(-3px, -9px)'\n }\n }\n }, { vertical: direction === 'vertical' });\n\n return _react2.default.createElement('div', { style: styles.picker });\n};\n\nexports.default = AlphaPointer;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Block = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _color = require('../../helpers/color');\n\nvar color = _interopRequireWildcard(_color);\n\nvar _common = require('../common');\n\nvar _BlockSwatches = require('./BlockSwatches');\n\nvar _BlockSwatches2 = _interopRequireDefault(_BlockSwatches);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Block = exports.Block = function Block(_ref) {\n var onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n hex = _ref.hex,\n colors = _ref.colors,\n width = _ref.width,\n triangle = _ref.triangle,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var transparent = hex === 'transparent';\n var handleChange = function handleChange(hexCode, e) {\n color.isValidHex(hexCode) && onChange({\n hex: hexCode,\n source: 'hex'\n }, e);\n };\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n card: {\n width: width,\n background: '#fff',\n boxShadow: '0 1px rgba(0,0,0,.1)',\n borderRadius: '6px',\n position: 'relative'\n },\n head: {\n height: '110px',\n background: hex,\n borderRadius: '6px 6px 0 0',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative'\n },\n body: {\n padding: '10px'\n },\n label: {\n fontSize: '18px',\n color: color.getContrastingColor(hex),\n position: 'relative'\n },\n triangle: {\n width: '0px',\n height: '0px',\n borderStyle: 'solid',\n borderWidth: '0 10px 10px 10px',\n borderColor: 'transparent transparent ' + hex + ' transparent',\n position: 'absolute',\n top: '-10px',\n left: '50%',\n marginLeft: '-10px'\n },\n input: {\n width: '100%',\n fontSize: '12px',\n color: '#666',\n border: '0px',\n outline: 'none',\n height: '22px',\n boxShadow: 'inset 0 0 0 1px #ddd',\n borderRadius: '4px',\n padding: '0 7px',\n boxSizing: 'border-box'\n }\n },\n 'hide-triangle': {\n triangle: {\n display: 'none'\n }\n }\n }, passedStyles), { 'hide-triangle': triangle === 'hide' });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.card, className: 'block-picker ' + className },\n _react2.default.createElement('div', { style: styles.triangle }),\n _react2.default.createElement(\n 'div',\n { style: styles.head },\n transparent && _react2.default.createElement(_common.Checkboard, { borderRadius: '6px 6px 0 0' }),\n _react2.default.createElement(\n 'div',\n { style: styles.label },\n hex\n )\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.body },\n _react2.default.createElement(_BlockSwatches2.default, { colors: colors, onClick: handleChange, onSwatchHover: onSwatchHover }),\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input },\n value: hex,\n onChange: handleChange\n })\n )\n );\n};\n\nBlock.propTypes = {\n width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n colors: _propTypes2.default.arrayOf(_propTypes2.default.string),\n triangle: _propTypes2.default.oneOf(['top', 'hide']),\n styles: _propTypes2.default.object\n};\n\nBlock.defaultProps = {\n width: 170,\n colors: ['#D9E3F0', '#F47373', '#697689', '#37D67A', '#2CCCE4', '#555555', '#dce775', '#ff8a65', '#ba68c8'],\n triangle: 'top',\n styles: {}\n};\n\nexports.default = (0, _common.ColorWrap)(Block);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.BlockSwatches = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _map = require('lodash/map');\n\nvar _map2 = _interopRequireDefault(_map);\n\nvar _common = require('../common');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar BlockSwatches = exports.BlockSwatches = function BlockSwatches(_ref) {\n var colors = _ref.colors,\n onClick = _ref.onClick,\n onSwatchHover = _ref.onSwatchHover;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n swatches: {\n marginRight: '-10px'\n },\n swatch: {\n width: '22px',\n height: '22px',\n float: 'left',\n marginRight: '10px',\n marginBottom: '10px',\n borderRadius: '4px'\n },\n clear: {\n clear: 'both'\n }\n }\n });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.swatches },\n (0, _map2.default)(colors, function (c) {\n return _react2.default.createElement(_common.Swatch, {\n key: c,\n color: c,\n style: styles.swatch,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: {\n boxShadow: '0 0 4px ' + c\n }\n });\n }),\n _react2.default.createElement('div', { style: styles.clear })\n );\n};\n\nexports.default = BlockSwatches;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Chrome = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _common = require('../common');\n\nvar _ChromeFields = require('./ChromeFields');\n\nvar _ChromeFields2 = _interopRequireDefault(_ChromeFields);\n\nvar _ChromePointer = require('./ChromePointer');\n\nvar _ChromePointer2 = _interopRequireDefault(_ChromePointer);\n\nvar _ChromePointerCircle = require('./ChromePointerCircle');\n\nvar _ChromePointerCircle2 = _interopRequireDefault(_ChromePointerCircle);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Chrome = exports.Chrome = function Chrome(_ref) {\n var width = _ref.width,\n onChange = _ref.onChange,\n disableAlpha = _ref.disableAlpha,\n rgb = _ref.rgb,\n hsl = _ref.hsl,\n hsv = _ref.hsv,\n hex = _ref.hex,\n renderers = _ref.renderers,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className,\n defaultView = _ref.defaultView;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n picker: {\n width: width,\n background: '#fff',\n borderRadius: '2px',\n boxShadow: '0 0 2px rgba(0,0,0,.3), 0 4px 8px rgba(0,0,0,.3)',\n boxSizing: 'initial',\n fontFamily: 'Menlo'\n },\n saturation: {\n width: '100%',\n paddingBottom: '55%',\n position: 'relative',\n borderRadius: '2px 2px 0 0',\n overflow: 'hidden'\n },\n Saturation: {\n radius: '2px 2px 0 0'\n },\n body: {\n padding: '16px 16px 12px'\n },\n controls: {\n display: 'flex'\n },\n color: {\n width: '32px'\n },\n swatch: {\n marginTop: '6px',\n width: '16px',\n height: '16px',\n borderRadius: '8px',\n position: 'relative',\n overflow: 'hidden'\n },\n active: {\n absolute: '0px 0px 0px 0px',\n borderRadius: '8px',\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.1)',\n background: 'rgba(' + rgb.r + ', ' + rgb.g + ', ' + rgb.b + ', ' + rgb.a + ')',\n zIndex: '2'\n },\n toggles: {\n flex: '1'\n },\n hue: {\n height: '10px',\n position: 'relative',\n marginBottom: '8px'\n },\n Hue: {\n radius: '2px'\n },\n alpha: {\n height: '10px',\n position: 'relative'\n },\n Alpha: {\n radius: '2px'\n }\n },\n 'disableAlpha': {\n color: {\n width: '22px'\n },\n alpha: {\n display: 'none'\n },\n hue: {\n marginBottom: '0px'\n },\n swatch: {\n width: '10px',\n height: '10px',\n marginTop: '0px'\n }\n }\n }, passedStyles), { disableAlpha: disableAlpha });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.picker, className: 'chrome-picker ' + className },\n _react2.default.createElement(\n 'div',\n { style: styles.saturation },\n _react2.default.createElement(_common.Saturation, {\n style: styles.Saturation,\n hsl: hsl,\n hsv: hsv,\n pointer: _ChromePointerCircle2.default,\n onChange: onChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.body },\n _react2.default.createElement(\n 'div',\n { style: styles.controls, className: 'flexbox-fix' },\n _react2.default.createElement(\n 'div',\n { style: styles.color },\n _react2.default.createElement(\n 'div',\n { style: styles.swatch },\n _react2.default.createElement('div', { style: styles.active }),\n _react2.default.createElement(_common.Checkboard, { renderers: renderers })\n )\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.toggles },\n _react2.default.createElement(\n 'div',\n { style: styles.hue },\n _react2.default.createElement(_common.Hue, {\n style: styles.Hue,\n hsl: hsl,\n pointer: _ChromePointer2.default,\n onChange: onChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.alpha },\n _react2.default.createElement(_common.Alpha, {\n style: styles.Alpha,\n rgb: rgb,\n hsl: hsl,\n pointer: _ChromePointer2.default,\n renderers: renderers,\n onChange: onChange\n })\n )\n )\n ),\n _react2.default.createElement(_ChromeFields2.default, {\n rgb: rgb,\n hsl: hsl,\n hex: hex,\n view: defaultView,\n onChange: onChange,\n disableAlpha: disableAlpha\n })\n )\n );\n};\n\nChrome.propTypes = {\n width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n disableAlpha: _propTypes2.default.bool,\n styles: _propTypes2.default.object,\n defaultView: _propTypes2.default.oneOf([\"hex\", \"rgb\", \"hsl\"])\n};\n\nChrome.defaultProps = {\n width: 225,\n disableAlpha: false,\n styles: {}\n};\n\nexports.default = (0, _common.ColorWrap)(Chrome);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ChromeFields = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _color = require('../../helpers/color');\n\nvar color = _interopRequireWildcard(_color);\n\nvar _isUndefined = require('lodash/isUndefined');\n\nvar _isUndefined2 = _interopRequireDefault(_isUndefined);\n\nvar _common = require('../common');\n\nvar _UnfoldMoreHorizontalIcon = require('@icons/material/UnfoldMoreHorizontalIcon');\n\nvar _UnfoldMoreHorizontalIcon2 = _interopRequireDefault(_UnfoldMoreHorizontalIcon);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /* eslint-disable react/no-did-mount-set-state, no-param-reassign */\n\nvar ChromeFields = exports.ChromeFields = function (_React$Component) {\n _inherits(ChromeFields, _React$Component);\n\n function ChromeFields(props) {\n _classCallCheck(this, ChromeFields);\n\n var _this = _possibleConstructorReturn(this, (ChromeFields.__proto__ || Object.getPrototypeOf(ChromeFields)).call(this));\n\n _this.toggleViews = function () {\n if (_this.state.view === 'hex') {\n _this.setState({ view: 'rgb' });\n } else if (_this.state.view === 'rgb') {\n _this.setState({ view: 'hsl' });\n } else if (_this.state.view === 'hsl') {\n if (_this.props.hsl.a === 1) {\n _this.setState({ view: 'hex' });\n } else {\n _this.setState({ view: 'rgb' });\n }\n }\n };\n\n _this.handleChange = function (data, e) {\n if (data.hex) {\n color.isValidHex(data.hex) && _this.props.onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else if (data.r || data.g || data.b) {\n _this.props.onChange({\n r: data.r || _this.props.rgb.r,\n g: data.g || _this.props.rgb.g,\n b: data.b || _this.props.rgb.b,\n source: 'rgb'\n }, e);\n } else if (data.a) {\n if (data.a < 0) {\n data.a = 0;\n } else if (data.a > 1) {\n data.a = 1;\n }\n\n _this.props.onChange({\n h: _this.props.hsl.h,\n s: _this.props.hsl.s,\n l: _this.props.hsl.l,\n a: Math.round(data.a * 100) / 100,\n source: 'rgb'\n }, e);\n } else if (data.h || data.s || data.l) {\n // Remove any occurances of '%'.\n if (typeof data.s === 'string' && data.s.includes('%')) {\n data.s = data.s.replace('%', '');\n }\n if (typeof data.l === 'string' && data.l.includes('%')) {\n data.l = data.l.replace('%', '');\n }\n\n // We store HSL as a unit interval so we need to override the 1 input to 0.01\n if (data.s == 1) {\n data.s = 0.01;\n } else if (data.l == 1) {\n data.l = 0.01;\n }\n\n _this.props.onChange({\n h: data.h || _this.props.hsl.h,\n s: Number(!(0, _isUndefined2.default)(data.s) ? data.s : _this.props.hsl.s),\n l: Number(!(0, _isUndefined2.default)(data.l) ? data.l : _this.props.hsl.l),\n source: 'hsl'\n }, e);\n }\n };\n\n _this.showHighlight = function (e) {\n e.currentTarget.style.background = '#eee';\n };\n\n _this.hideHighlight = function (e) {\n e.currentTarget.style.background = 'transparent';\n };\n\n if (props.hsl.a !== 1 && props.view === \"hex\") {\n _this.state = {\n view: \"rgb\"\n };\n } else {\n _this.state = {\n view: props.view\n };\n }\n return _this;\n }\n\n _createClass(ChromeFields, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n wrap: {\n paddingTop: '16px',\n display: 'flex'\n },\n fields: {\n flex: '1',\n display: 'flex',\n marginLeft: '-6px'\n },\n field: {\n paddingLeft: '6px',\n width: '100%'\n },\n alpha: {\n paddingLeft: '6px',\n width: '100%'\n },\n toggle: {\n width: '32px',\n textAlign: 'right',\n position: 'relative'\n },\n icon: {\n marginRight: '-4px',\n marginTop: '12px',\n cursor: 'pointer',\n position: 'relative'\n },\n iconHighlight: {\n position: 'absolute',\n width: '24px',\n height: '28px',\n background: '#eee',\n borderRadius: '4px',\n top: '10px',\n left: '12px',\n display: 'none'\n },\n input: {\n fontSize: '11px',\n color: '#333',\n width: '100%',\n borderRadius: '2px',\n border: 'none',\n boxShadow: 'inset 0 0 0 1px #dadada',\n height: '21px',\n textAlign: 'center'\n },\n label: {\n textTransform: 'uppercase',\n fontSize: '11px',\n lineHeight: '11px',\n color: '#969696',\n textAlign: 'center',\n display: 'block',\n marginTop: '12px'\n },\n svg: {\n fill: '#333',\n width: '24px',\n height: '24px',\n border: '1px transparent solid',\n borderRadius: '5px'\n }\n },\n 'disableAlpha': {\n alpha: {\n display: 'none'\n }\n }\n }, this.props, this.state);\n\n var fields = void 0;\n if (this.state.view === 'hex') {\n fields = _react2.default.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n _react2.default.createElement(\n 'div',\n { style: styles.field },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'hex', value: this.props.hex,\n onChange: this.handleChange\n })\n )\n );\n } else if (this.state.view === 'rgb') {\n fields = _react2.default.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n _react2.default.createElement(\n 'div',\n { style: styles.field },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'r',\n value: this.props.rgb.r,\n onChange: this.handleChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.field },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'g',\n value: this.props.rgb.g,\n onChange: this.handleChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.field },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'b',\n value: this.props.rgb.b,\n onChange: this.handleChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.alpha },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'a',\n value: this.props.rgb.a,\n arrowOffset: 0.01,\n onChange: this.handleChange\n })\n )\n );\n } else if (this.state.view === 'hsl') {\n fields = _react2.default.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n _react2.default.createElement(\n 'div',\n { style: styles.field },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'h',\n value: Math.round(this.props.hsl.h),\n onChange: this.handleChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.field },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 's',\n value: Math.round(this.props.hsl.s * 100) + '%',\n onChange: this.handleChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.field },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'l',\n value: Math.round(this.props.hsl.l * 100) + '%',\n onChange: this.handleChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.alpha },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'a',\n value: this.props.hsl.a,\n arrowOffset: 0.01,\n onChange: this.handleChange\n })\n )\n );\n }\n\n return _react2.default.createElement(\n 'div',\n { style: styles.wrap, className: 'flexbox-fix' },\n fields,\n _react2.default.createElement(\n 'div',\n { style: styles.toggle },\n _react2.default.createElement(\n 'div',\n { style: styles.icon, onClick: this.toggleViews, ref: function ref(icon) {\n return _this2.icon = icon;\n } },\n _react2.default.createElement(_UnfoldMoreHorizontalIcon2.default, {\n style: styles.svg,\n onMouseOver: this.showHighlight,\n onMouseEnter: this.showHighlight,\n onMouseOut: this.hideHighlight\n })\n )\n )\n );\n }\n }], [{\n key: 'getDerivedStateFromProps',\n value: function getDerivedStateFromProps(nextProps, state) {\n if (nextProps.hsl.a !== 1 && state.view === 'hex') {\n return { view: 'rgb' };\n }\n return null;\n }\n }]);\n\n return ChromeFields;\n}(_react2.default.Component);\n\nChromeFields.defaultProps = {\n view: \"hex\"\n};\n\nexports.default = ChromeFields;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ChromePointer = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ChromePointer = exports.ChromePointer = function ChromePointer() {\n var styles = (0, _reactcss2.default)({\n 'default': {\n picker: {\n width: '12px',\n height: '12px',\n borderRadius: '6px',\n transform: 'translate(-6px, -1px)',\n backgroundColor: 'rgb(248, 248, 248)',\n boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)'\n }\n }\n });\n\n return _react2.default.createElement('div', { style: styles.picker });\n};\n\nexports.default = ChromePointer;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ChromePointerCircle = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ChromePointerCircle = exports.ChromePointerCircle = function ChromePointerCircle() {\n var styles = (0, _reactcss2.default)({\n 'default': {\n picker: {\n width: '12px',\n height: '12px',\n borderRadius: '6px',\n boxShadow: 'inset 0 0 0 1px #fff',\n transform: 'translate(-6px, -6px)'\n }\n }\n });\n\n return _react2.default.createElement('div', { style: styles.picker });\n};\n\nexports.default = ChromePointerCircle;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Circle = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _map = require('lodash/map');\n\nvar _map2 = _interopRequireDefault(_map);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _materialColors = require('material-colors');\n\nvar material = _interopRequireWildcard(_materialColors);\n\nvar _common = require('../common');\n\nvar _CircleSwatch = require('./CircleSwatch');\n\nvar _CircleSwatch2 = _interopRequireDefault(_CircleSwatch);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Circle = exports.Circle = function Circle(_ref) {\n var width = _ref.width,\n onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n colors = _ref.colors,\n hex = _ref.hex,\n circleSize = _ref.circleSize,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n circleSpacing = _ref.circleSpacing,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n card: {\n width: width,\n display: 'flex',\n flexWrap: 'wrap',\n marginRight: -circleSpacing,\n marginBottom: -circleSpacing\n }\n }\n }, passedStyles));\n\n var handleChange = function handleChange(hexCode, e) {\n return onChange({ hex: hexCode, source: 'hex' }, e);\n };\n\n return _react2.default.createElement(\n 'div',\n { style: styles.card, className: 'circle-picker ' + className },\n (0, _map2.default)(colors, function (c) {\n return _react2.default.createElement(_CircleSwatch2.default, {\n key: c,\n color: c,\n onClick: handleChange,\n onSwatchHover: onSwatchHover,\n active: hex === c.toLowerCase(),\n circleSize: circleSize,\n circleSpacing: circleSpacing\n });\n })\n );\n};\n\nCircle.propTypes = {\n width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n circleSize: _propTypes2.default.number,\n circleSpacing: _propTypes2.default.number,\n styles: _propTypes2.default.object\n};\n\nCircle.defaultProps = {\n width: 252,\n circleSize: 28,\n circleSpacing: 14,\n colors: [material.red['500'], material.pink['500'], material.purple['500'], material.deepPurple['500'], material.indigo['500'], material.blue['500'], material.lightBlue['500'], material.cyan['500'], material.teal['500'], material.green['500'], material.lightGreen['500'], material.lime['500'], material.yellow['500'], material.amber['500'], material.orange['500'], material.deepOrange['500'], material.brown['500'], material.blueGrey['500']],\n styles: {}\n};\n\nexports.default = (0, _common.ColorWrap)(Circle);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CircleSwatch = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _common = require('../common');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar CircleSwatch = exports.CircleSwatch = function CircleSwatch(_ref) {\n var color = _ref.color,\n onClick = _ref.onClick,\n onSwatchHover = _ref.onSwatchHover,\n hover = _ref.hover,\n active = _ref.active,\n circleSize = _ref.circleSize,\n circleSpacing = _ref.circleSpacing;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n swatch: {\n width: circleSize,\n height: circleSize,\n marginRight: circleSpacing,\n marginBottom: circleSpacing,\n transform: 'scale(1)',\n transition: '100ms transform ease'\n },\n Swatch: {\n borderRadius: '50%',\n background: 'transparent',\n boxShadow: 'inset 0 0 0 ' + (circleSize / 2 + 1) + 'px ' + color,\n transition: '100ms box-shadow ease'\n }\n },\n 'hover': {\n swatch: {\n transform: 'scale(1.2)'\n }\n },\n 'active': {\n Swatch: {\n boxShadow: 'inset 0 0 0 3px ' + color\n }\n }\n }, { hover: hover, active: active });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.swatch },\n _react2.default.createElement(_common.Swatch, {\n style: styles.Swatch,\n color: color,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: { boxShadow: styles.Swatch.boxShadow + ', 0 0 5px ' + color }\n })\n );\n};\n\nCircleSwatch.defaultProps = {\n circleSize: 28,\n circleSpacing: 14\n};\n\nexports.default = (0, _reactcss.handleHover)(CircleSwatch);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Alpha = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _alpha = require('../../helpers/alpha');\n\nvar alpha = _interopRequireWildcard(_alpha);\n\nvar _Checkboard = require('./Checkboard');\n\nvar _Checkboard2 = _interopRequireDefault(_Checkboard);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Alpha = exports.Alpha = function (_ref) {\n _inherits(Alpha, _ref);\n\n function Alpha() {\n var _ref2;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Alpha);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref2 = Alpha.__proto__ || Object.getPrototypeOf(Alpha)).call.apply(_ref2, [this].concat(args))), _this), _this.handleChange = function (e) {\n var change = alpha.calculateChange(e, _this.props.hsl, _this.props.direction, _this.props.a, _this.container);\n change && typeof _this.props.onChange === 'function' && _this.props.onChange(change, e);\n }, _this.handleMouseDown = function (e) {\n _this.handleChange(e);\n window.addEventListener('mousemove', _this.handleChange);\n window.addEventListener('mouseup', _this.handleMouseUp);\n }, _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n }, _this.unbindEventListeners = function () {\n window.removeEventListener('mousemove', _this.handleChange);\n window.removeEventListener('mouseup', _this.handleMouseUp);\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Alpha, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.unbindEventListeners();\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var rgb = this.props.rgb;\n var styles = (0, _reactcss2.default)({\n 'default': {\n alpha: {\n absolute: '0px 0px 0px 0px',\n borderRadius: this.props.radius\n },\n checkboard: {\n absolute: '0px 0px 0px 0px',\n overflow: 'hidden',\n borderRadius: this.props.radius\n },\n gradient: {\n absolute: '0px 0px 0px 0px',\n background: 'linear-gradient(to right, rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 0) 0%,\\n rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 1) 100%)',\n boxShadow: this.props.shadow,\n borderRadius: this.props.radius\n },\n container: {\n position: 'relative',\n height: '100%',\n margin: '0 3px'\n },\n pointer: {\n position: 'absolute',\n left: rgb.a * 100 + '%'\n },\n slider: {\n width: '4px',\n borderRadius: '1px',\n height: '8px',\n boxShadow: '0 0 2px rgba(0, 0, 0, .6)',\n background: '#fff',\n marginTop: '1px',\n transform: 'translateX(-2px)'\n }\n },\n 'vertical': {\n gradient: {\n background: 'linear-gradient(to bottom, rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 0) 0%,\\n rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 1) 100%)'\n },\n pointer: {\n left: 0,\n top: rgb.a * 100 + '%'\n }\n },\n 'overwrite': _extends({}, this.props.style)\n }, {\n vertical: this.props.direction === 'vertical',\n overwrite: true\n });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.alpha },\n _react2.default.createElement(\n 'div',\n { style: styles.checkboard },\n _react2.default.createElement(_Checkboard2.default, { renderers: this.props.renderers })\n ),\n _react2.default.createElement('div', { style: styles.gradient }),\n _react2.default.createElement(\n 'div',\n {\n style: styles.container,\n ref: function ref(container) {\n return _this2.container = container;\n },\n onMouseDown: this.handleMouseDown,\n onTouchMove: this.handleChange,\n onTouchStart: this.handleChange\n },\n _react2.default.createElement(\n 'div',\n { style: styles.pointer },\n this.props.pointer ? _react2.default.createElement(this.props.pointer, this.props) : _react2.default.createElement('div', { style: styles.slider })\n )\n )\n );\n }\n }]);\n\n return Alpha;\n}(_react.PureComponent || _react.Component);\n\nexports.default = Alpha;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Checkboard = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _checkboard = require('../../helpers/checkboard');\n\nvar checkboard = _interopRequireWildcard(_checkboard);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Checkboard = exports.Checkboard = function Checkboard(_ref) {\n var white = _ref.white,\n grey = _ref.grey,\n size = _ref.size,\n renderers = _ref.renderers,\n borderRadius = _ref.borderRadius,\n boxShadow = _ref.boxShadow,\n children = _ref.children;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n grid: {\n borderRadius: borderRadius,\n boxShadow: boxShadow,\n absolute: '0px 0px 0px 0px',\n background: 'url(' + checkboard.get(white, grey, size, renderers.canvas) + ') center left'\n }\n }\n });\n return (0, _react.isValidElement)(children) ? _react2.default.cloneElement(children, _extends({}, children.props, { style: _extends({}, children.props.style, styles.grid) })) : _react2.default.createElement('div', { style: styles.grid });\n};\n\nCheckboard.defaultProps = {\n size: 8,\n white: 'transparent',\n grey: 'rgba(0,0,0,.08)',\n renderers: {}\n};\n\nexports.default = Checkboard;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ColorWrap = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _debounce = require('lodash/debounce');\n\nvar _debounce2 = _interopRequireDefault(_debounce);\n\nvar _color = require('../../helpers/color');\n\nvar color = _interopRequireWildcard(_color);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ColorWrap = exports.ColorWrap = function ColorWrap(Picker) {\n var ColorPicker = function (_ref) {\n _inherits(ColorPicker, _ref);\n\n function ColorPicker(props) {\n _classCallCheck(this, ColorPicker);\n\n var _this = _possibleConstructorReturn(this, (ColorPicker.__proto__ || Object.getPrototypeOf(ColorPicker)).call(this));\n\n _this.handleChange = function (data, event) {\n var isValidColor = color.simpleCheckForValidColor(data);\n if (isValidColor) {\n var colors = color.toState(data, data.h || _this.state.oldHue);\n _this.setState(colors);\n _this.props.onChangeComplete && _this.debounce(_this.props.onChangeComplete, colors, event);\n _this.props.onChange && _this.props.onChange(colors, event);\n }\n };\n\n _this.handleSwatchHover = function (data, event) {\n var isValidColor = color.simpleCheckForValidColor(data);\n if (isValidColor) {\n var colors = color.toState(data, data.h || _this.state.oldHue);\n _this.props.onSwatchHover && _this.props.onSwatchHover(colors, event);\n }\n };\n\n _this.state = _extends({}, color.toState(props.color, 0));\n\n _this.debounce = (0, _debounce2.default)(function (fn, data, event) {\n fn(data, event);\n }, 100);\n return _this;\n }\n\n _createClass(ColorPicker, [{\n key: 'render',\n value: function render() {\n var optionalEvents = {};\n if (this.props.onSwatchHover) {\n optionalEvents.onSwatchHover = this.handleSwatchHover;\n }\n\n return _react2.default.createElement(Picker, _extends({}, this.props, this.state, {\n onChange: this.handleChange\n }, optionalEvents));\n }\n }], [{\n key: 'getDerivedStateFromProps',\n value: function getDerivedStateFromProps(nextProps, state) {\n return _extends({}, color.toState(nextProps.color, state.oldHue));\n }\n }]);\n\n return ColorPicker;\n }(_react.PureComponent || _react.Component);\n\n ColorPicker.propTypes = _extends({}, Picker.propTypes);\n\n ColorPicker.defaultProps = _extends({}, Picker.defaultProps, {\n color: {\n h: 250,\n s: 0.50,\n l: 0.20,\n a: 1\n }\n });\n\n return ColorPicker;\n};\n\nexports.default = ColorWrap;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.EditableInput = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar DEFAULT_ARROW_OFFSET = 1;\n\nvar UP_KEY_CODE = 38;\nvar DOWN_KEY_CODE = 40;\nvar VALID_KEY_CODES = [UP_KEY_CODE, DOWN_KEY_CODE];\nvar isValidKeyCode = function isValidKeyCode(keyCode) {\n return VALID_KEY_CODES.indexOf(keyCode) > -1;\n};\nvar getNumberValue = function getNumberValue(value) {\n return Number(String(value).replace(/%/g, ''));\n};\n\nvar idCounter = 1;\n\nvar EditableInput = exports.EditableInput = function (_ref) {\n _inherits(EditableInput, _ref);\n\n function EditableInput(props) {\n _classCallCheck(this, EditableInput);\n\n var _this = _possibleConstructorReturn(this, (EditableInput.__proto__ || Object.getPrototypeOf(EditableInput)).call(this));\n\n _this.handleBlur = function () {\n if (_this.state.blurValue) {\n _this.setState({ value: _this.state.blurValue, blurValue: null });\n }\n };\n\n _this.handleChange = function (e) {\n _this.setUpdatedValue(e.target.value, e);\n };\n\n _this.handleKeyDown = function (e) {\n // In case `e.target.value` is a percentage remove the `%` character\n // and update accordingly with a percentage\n // https://github.com/casesandberg/react-color/issues/383\n var value = getNumberValue(e.target.value);\n if (!isNaN(value) && isValidKeyCode(e.keyCode)) {\n var offset = _this.getArrowOffset();\n var updatedValue = e.keyCode === UP_KEY_CODE ? value + offset : value - offset;\n\n _this.setUpdatedValue(updatedValue, e);\n }\n };\n\n _this.handleDrag = function (e) {\n if (_this.props.dragLabel) {\n var newValue = Math.round(_this.props.value + e.movementX);\n if (newValue >= 0 && newValue <= _this.props.dragMax) {\n _this.props.onChange && _this.props.onChange(_this.getValueObjectWithLabel(newValue), e);\n }\n }\n };\n\n _this.handleMouseDown = function (e) {\n if (_this.props.dragLabel) {\n e.preventDefault();\n _this.handleDrag(e);\n window.addEventListener('mousemove', _this.handleDrag);\n window.addEventListener('mouseup', _this.handleMouseUp);\n }\n };\n\n _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n };\n\n _this.unbindEventListeners = function () {\n window.removeEventListener('mousemove', _this.handleDrag);\n window.removeEventListener('mouseup', _this.handleMouseUp);\n };\n\n _this.state = {\n value: String(props.value).toUpperCase(),\n blurValue: String(props.value).toUpperCase()\n };\n\n _this.inputId = 'rc-editable-input-' + idCounter++;\n return _this;\n }\n\n _createClass(EditableInput, [{\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps, prevState) {\n if (this.props.value !== this.state.value && (prevProps.value !== this.props.value || prevState.value !== this.state.value)) {\n if (this.input === document.activeElement) {\n this.setState({ blurValue: String(this.props.value).toUpperCase() });\n } else {\n this.setState({ value: String(this.props.value).toUpperCase(), blurValue: !this.state.blurValue && String(this.props.value).toUpperCase() });\n }\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.unbindEventListeners();\n }\n }, {\n key: 'getValueObjectWithLabel',\n value: function getValueObjectWithLabel(value) {\n return _defineProperty({}, this.props.label, value);\n }\n }, {\n key: 'getArrowOffset',\n value: function getArrowOffset() {\n return this.props.arrowOffset || DEFAULT_ARROW_OFFSET;\n }\n }, {\n key: 'setUpdatedValue',\n value: function setUpdatedValue(value, e) {\n var onChangeValue = this.props.label ? this.getValueObjectWithLabel(value) : value;\n this.props.onChange && this.props.onChange(onChangeValue, e);\n\n this.setState({ value: value });\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n wrap: {\n position: 'relative'\n }\n },\n 'user-override': {\n wrap: this.props.style && this.props.style.wrap ? this.props.style.wrap : {},\n input: this.props.style && this.props.style.input ? this.props.style.input : {},\n label: this.props.style && this.props.style.label ? this.props.style.label : {}\n },\n 'dragLabel-true': {\n label: {\n cursor: 'ew-resize'\n }\n }\n }, {\n 'user-override': true\n }, this.props);\n\n return _react2.default.createElement(\n 'div',\n { style: styles.wrap },\n _react2.default.createElement('input', {\n id: this.inputId,\n style: styles.input,\n ref: function ref(input) {\n return _this2.input = input;\n },\n value: this.state.value,\n onKeyDown: this.handleKeyDown,\n onChange: this.handleChange,\n onBlur: this.handleBlur,\n placeholder: this.props.placeholder,\n spellCheck: 'false'\n }),\n this.props.label && !this.props.hideLabel ? _react2.default.createElement(\n 'label',\n {\n htmlFor: this.inputId,\n style: styles.label,\n onMouseDown: this.handleMouseDown\n },\n this.props.label\n ) : null\n );\n }\n }]);\n\n return EditableInput;\n}(_react.PureComponent || _react.Component);\n\nexports.default = EditableInput;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Hue = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _hue = require('../../helpers/hue');\n\nvar hue = _interopRequireWildcard(_hue);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Hue = exports.Hue = function (_ref) {\n _inherits(Hue, _ref);\n\n function Hue() {\n var _ref2;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Hue);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref2 = Hue.__proto__ || Object.getPrototypeOf(Hue)).call.apply(_ref2, [this].concat(args))), _this), _this.handleChange = function (e) {\n var change = hue.calculateChange(e, _this.props.direction, _this.props.hsl, _this.container);\n change && typeof _this.props.onChange === 'function' && _this.props.onChange(change, e);\n }, _this.handleMouseDown = function (e) {\n _this.handleChange(e);\n window.addEventListener('mousemove', _this.handleChange);\n window.addEventListener('mouseup', _this.handleMouseUp);\n }, _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Hue, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.unbindEventListeners();\n }\n }, {\n key: 'unbindEventListeners',\n value: function unbindEventListeners() {\n window.removeEventListener('mousemove', this.handleChange);\n window.removeEventListener('mouseup', this.handleMouseUp);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props$direction = this.props.direction,\n direction = _props$direction === undefined ? 'horizontal' : _props$direction;\n\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n hue: {\n absolute: '0px 0px 0px 0px',\n borderRadius: this.props.radius,\n boxShadow: this.props.shadow\n },\n container: {\n padding: '0 2px',\n position: 'relative',\n height: '100%',\n borderRadius: this.props.radius\n },\n pointer: {\n position: 'absolute',\n left: this.props.hsl.h * 100 / 360 + '%'\n },\n slider: {\n marginTop: '1px',\n width: '4px',\n borderRadius: '1px',\n height: '8px',\n boxShadow: '0 0 2px rgba(0, 0, 0, .6)',\n background: '#fff',\n transform: 'translateX(-2px)'\n }\n },\n 'vertical': {\n pointer: {\n left: '0px',\n top: -(this.props.hsl.h * 100 / 360) + 100 + '%'\n }\n }\n }, { vertical: direction === 'vertical' });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.hue },\n _react2.default.createElement(\n 'div',\n {\n className: 'hue-' + direction,\n style: styles.container,\n ref: function ref(container) {\n return _this2.container = container;\n },\n onMouseDown: this.handleMouseDown,\n onTouchMove: this.handleChange,\n onTouchStart: this.handleChange\n },\n _react2.default.createElement(\n 'style',\n null,\n '\\n .hue-horizontal {\\n background: linear-gradient(to right, #f00 0%, #ff0 17%, #0f0\\n 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n background: -webkit-linear-gradient(to right, #f00 0%, #ff0\\n 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n }\\n\\n .hue-vertical {\\n background: linear-gradient(to top, #f00 0%, #ff0 17%, #0f0 33%,\\n #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n background: -webkit-linear-gradient(to top, #f00 0%, #ff0 17%,\\n #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n }\\n '\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.pointer },\n this.props.pointer ? _react2.default.createElement(this.props.pointer, this.props) : _react2.default.createElement('div', { style: styles.slider })\n )\n )\n );\n }\n }]);\n\n return Hue;\n}(_react.PureComponent || _react.Component);\n\nexports.default = Hue;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Raised = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Raised = exports.Raised = function Raised(_ref) {\n var zDepth = _ref.zDepth,\n radius = _ref.radius,\n background = _ref.background,\n children = _ref.children,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n wrap: {\n position: 'relative',\n display: 'inline-block'\n },\n content: {\n position: 'relative'\n },\n bg: {\n absolute: '0px 0px 0px 0px',\n boxShadow: '0 ' + zDepth + 'px ' + zDepth * 4 + 'px rgba(0,0,0,.24)',\n borderRadius: radius,\n background: background\n }\n },\n 'zDepth-0': {\n bg: {\n boxShadow: 'none'\n }\n },\n\n 'zDepth-1': {\n bg: {\n boxShadow: '0 2px 10px rgba(0,0,0,.12), 0 2px 5px rgba(0,0,0,.16)'\n }\n },\n 'zDepth-2': {\n bg: {\n boxShadow: '0 6px 20px rgba(0,0,0,.19), 0 8px 17px rgba(0,0,0,.2)'\n }\n },\n 'zDepth-3': {\n bg: {\n boxShadow: '0 17px 50px rgba(0,0,0,.19), 0 12px 15px rgba(0,0,0,.24)'\n }\n },\n 'zDepth-4': {\n bg: {\n boxShadow: '0 25px 55px rgba(0,0,0,.21), 0 16px 28px rgba(0,0,0,.22)'\n }\n },\n 'zDepth-5': {\n bg: {\n boxShadow: '0 40px 77px rgba(0,0,0,.22), 0 27px 24px rgba(0,0,0,.2)'\n }\n },\n 'square': {\n bg: {\n borderRadius: '0'\n }\n },\n 'circle': {\n bg: {\n borderRadius: '50%'\n }\n }\n }, passedStyles), { 'zDepth-1': zDepth === 1 });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.wrap },\n _react2.default.createElement('div', { style: styles.bg }),\n _react2.default.createElement(\n 'div',\n { style: styles.content },\n children\n )\n );\n};\n\nRaised.propTypes = {\n background: _propTypes2.default.string,\n zDepth: _propTypes2.default.oneOf([0, 1, 2, 3, 4, 5]),\n radius: _propTypes2.default.number,\n styles: _propTypes2.default.object\n};\n\nRaised.defaultProps = {\n background: '#fff',\n zDepth: 1,\n radius: 2,\n styles: {}\n};\n\nexports.default = Raised;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Saturation = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _throttle = require('lodash/throttle');\n\nvar _throttle2 = _interopRequireDefault(_throttle);\n\nvar _saturation = require('../../helpers/saturation');\n\nvar saturation = _interopRequireWildcard(_saturation);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Saturation = exports.Saturation = function (_ref) {\n _inherits(Saturation, _ref);\n\n function Saturation(props) {\n _classCallCheck(this, Saturation);\n\n var _this = _possibleConstructorReturn(this, (Saturation.__proto__ || Object.getPrototypeOf(Saturation)).call(this, props));\n\n _this.handleChange = function (e) {\n typeof _this.props.onChange === 'function' && _this.throttle(_this.props.onChange, saturation.calculateChange(e, _this.props.hsl, _this.container), e);\n };\n\n _this.handleMouseDown = function (e) {\n _this.handleChange(e);\n var renderWindow = _this.getContainerRenderWindow();\n renderWindow.addEventListener('mousemove', _this.handleChange);\n renderWindow.addEventListener('mouseup', _this.handleMouseUp);\n };\n\n _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n };\n\n _this.throttle = (0, _throttle2.default)(function (fn, data, e) {\n fn(data, e);\n }, 50);\n return _this;\n }\n\n _createClass(Saturation, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.throttle.cancel();\n this.unbindEventListeners();\n }\n }, {\n key: 'getContainerRenderWindow',\n value: function getContainerRenderWindow() {\n var container = this.container;\n\n var renderWindow = window;\n while (!renderWindow.document.contains(container) && renderWindow.parent !== renderWindow) {\n renderWindow = renderWindow.parent;\n }\n return renderWindow;\n }\n }, {\n key: 'unbindEventListeners',\n value: function unbindEventListeners() {\n var renderWindow = this.getContainerRenderWindow();\n renderWindow.removeEventListener('mousemove', this.handleChange);\n renderWindow.removeEventListener('mouseup', this.handleMouseUp);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _ref2 = this.props.style || {},\n color = _ref2.color,\n white = _ref2.white,\n black = _ref2.black,\n pointer = _ref2.pointer,\n circle = _ref2.circle;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n color: {\n absolute: '0px 0px 0px 0px',\n background: 'hsl(' + this.props.hsl.h + ',100%, 50%)',\n borderRadius: this.props.radius\n },\n white: {\n absolute: '0px 0px 0px 0px',\n borderRadius: this.props.radius\n },\n black: {\n absolute: '0px 0px 0px 0px',\n boxShadow: this.props.shadow,\n borderRadius: this.props.radius\n },\n pointer: {\n position: 'absolute',\n top: -(this.props.hsv.v * 100) + 100 + '%',\n left: this.props.hsv.s * 100 + '%',\n cursor: 'default'\n },\n circle: {\n width: '4px',\n height: '4px',\n boxShadow: '0 0 0 1.5px #fff, inset 0 0 1px 1px rgba(0,0,0,.3),\\n 0 0 1px 2px rgba(0,0,0,.4)',\n borderRadius: '50%',\n cursor: 'hand',\n transform: 'translate(-2px, -2px)'\n }\n },\n 'custom': {\n color: color,\n white: white,\n black: black,\n pointer: pointer,\n circle: circle\n }\n }, { 'custom': !!this.props.style });\n\n return _react2.default.createElement(\n 'div',\n {\n style: styles.color,\n ref: function ref(container) {\n return _this2.container = container;\n },\n onMouseDown: this.handleMouseDown,\n onTouchMove: this.handleChange,\n onTouchStart: this.handleChange\n },\n _react2.default.createElement(\n 'style',\n null,\n '\\n .saturation-white {\\n background: -webkit-linear-gradient(to right, #fff, rgba(255,255,255,0));\\n background: linear-gradient(to right, #fff, rgba(255,255,255,0));\\n }\\n .saturation-black {\\n background: -webkit-linear-gradient(to top, #000, rgba(0,0,0,0));\\n background: linear-gradient(to top, #000, rgba(0,0,0,0));\\n }\\n '\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.white, className: 'saturation-white' },\n _react2.default.createElement('div', { style: styles.black, className: 'saturation-black' }),\n _react2.default.createElement(\n 'div',\n { style: styles.pointer },\n this.props.pointer ? _react2.default.createElement(this.props.pointer, this.props) : _react2.default.createElement('div', { style: styles.circle })\n )\n )\n );\n }\n }]);\n\n return Saturation;\n}(_react.PureComponent || _react.Component);\n\nexports.default = Saturation;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Swatch = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _interaction = require('../../helpers/interaction');\n\nvar _Checkboard = require('./Checkboard');\n\nvar _Checkboard2 = _interopRequireDefault(_Checkboard);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ENTER = 13;\n\nvar Swatch = exports.Swatch = function Swatch(_ref) {\n var color = _ref.color,\n style = _ref.style,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n onHover = _ref.onHover,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? color : _ref$title,\n children = _ref.children,\n focus = _ref.focus,\n _ref$focusStyle = _ref.focusStyle,\n focusStyle = _ref$focusStyle === undefined ? {} : _ref$focusStyle;\n\n var transparent = color === 'transparent';\n var styles = (0, _reactcss2.default)({\n default: {\n swatch: _extends({\n background: color,\n height: '100%',\n width: '100%',\n cursor: 'pointer',\n position: 'relative',\n outline: 'none'\n }, style, focus ? focusStyle : {})\n }\n });\n\n var handleClick = function handleClick(e) {\n return onClick(color, e);\n };\n var handleKeyDown = function handleKeyDown(e) {\n return e.keyCode === ENTER && onClick(color, e);\n };\n var handleHover = function handleHover(e) {\n return onHover(color, e);\n };\n\n var optionalEvents = {};\n if (onHover) {\n optionalEvents.onMouseOver = handleHover;\n }\n\n return _react2.default.createElement(\n 'div',\n _extends({\n style: styles.swatch,\n onClick: handleClick,\n title: title,\n tabIndex: 0,\n onKeyDown: handleKeyDown\n }, optionalEvents),\n children,\n transparent && _react2.default.createElement(_Checkboard2.default, {\n borderRadius: styles.swatch.borderRadius,\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,0.1)'\n })\n );\n};\n\nexports.default = (0, _interaction.handleFocus)(Swatch);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Alpha = require('./Alpha');\n\nObject.defineProperty(exports, 'Alpha', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Alpha).default;\n }\n});\n\nvar _Checkboard = require('./Checkboard');\n\nObject.defineProperty(exports, 'Checkboard', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Checkboard).default;\n }\n});\n\nvar _EditableInput = require('./EditableInput');\n\nObject.defineProperty(exports, 'EditableInput', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_EditableInput).default;\n }\n});\n\nvar _Hue = require('./Hue');\n\nObject.defineProperty(exports, 'Hue', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Hue).default;\n }\n});\n\nvar _Raised = require('./Raised');\n\nObject.defineProperty(exports, 'Raised', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Raised).default;\n }\n});\n\nvar _Saturation = require('./Saturation');\n\nObject.defineProperty(exports, 'Saturation', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Saturation).default;\n }\n});\n\nvar _ColorWrap = require('./ColorWrap');\n\nObject.defineProperty(exports, 'ColorWrap', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_ColorWrap).default;\n }\n});\n\nvar _Swatch = require('./Swatch');\n\nObject.defineProperty(exports, 'Swatch', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Swatch).default;\n }\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Compact = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _map = require('lodash/map');\n\nvar _map2 = _interopRequireDefault(_map);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _color = require('../../helpers/color');\n\nvar color = _interopRequireWildcard(_color);\n\nvar _common = require('../common');\n\nvar _CompactColor = require('./CompactColor');\n\nvar _CompactColor2 = _interopRequireDefault(_CompactColor);\n\nvar _CompactFields = require('./CompactFields');\n\nvar _CompactFields2 = _interopRequireDefault(_CompactFields);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Compact = exports.Compact = function Compact(_ref) {\n var onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n colors = _ref.colors,\n hex = _ref.hex,\n rgb = _ref.rgb,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n Compact: {\n background: '#f6f6f6',\n radius: '4px'\n },\n compact: {\n paddingTop: '5px',\n paddingLeft: '5px',\n boxSizing: 'initial',\n width: '240px'\n },\n clear: {\n clear: 'both'\n }\n }\n }, passedStyles));\n\n var handleChange = function handleChange(data, e) {\n if (data.hex) {\n color.isValidHex(data.hex) && onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else {\n onChange(data, e);\n }\n };\n\n return _react2.default.createElement(\n _common.Raised,\n { style: styles.Compact, styles: passedStyles },\n _react2.default.createElement(\n 'div',\n { style: styles.compact, className: 'compact-picker ' + className },\n _react2.default.createElement(\n 'div',\n null,\n (0, _map2.default)(colors, function (c) {\n return _react2.default.createElement(_CompactColor2.default, {\n key: c,\n color: c,\n active: c.toLowerCase() === hex,\n onClick: handleChange,\n onSwatchHover: onSwatchHover\n });\n }),\n _react2.default.createElement('div', { style: styles.clear })\n ),\n _react2.default.createElement(_CompactFields2.default, { hex: hex, rgb: rgb, onChange: handleChange })\n )\n );\n};\n\nCompact.propTypes = {\n colors: _propTypes2.default.arrayOf(_propTypes2.default.string),\n styles: _propTypes2.default.object\n};\n\nCompact.defaultProps = {\n colors: ['#4D4D4D', '#999999', '#FFFFFF', '#F44E3B', '#FE9200', '#FCDC00', '#DBDF00', '#A4DD00', '#68CCCA', '#73D8FF', '#AEA1FF', '#FDA1FF', '#333333', '#808080', '#cccccc', '#D33115', '#E27300', '#FCC400', '#B0BC00', '#68BC00', '#16A5A5', '#009CE0', '#7B64FF', '#FA28FF', '#000000', '#666666', '#B3B3B3', '#9F0500', '#C45100', '#FB9E00', '#808900', '#194D33', '#0C797D', '#0062B1', '#653294', '#AB149E'],\n styles: {}\n};\n\nexports.default = (0, _common.ColorWrap)(Compact);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CompactColor = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _color = require('../../helpers/color');\n\nvar colorUtils = _interopRequireWildcard(_color);\n\nvar _common = require('../common');\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar CompactColor = exports.CompactColor = function CompactColor(_ref) {\n var color = _ref.color,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n onSwatchHover = _ref.onSwatchHover,\n active = _ref.active;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n color: {\n background: color,\n width: '15px',\n height: '15px',\n float: 'left',\n marginRight: '5px',\n marginBottom: '5px',\n position: 'relative',\n cursor: 'pointer'\n },\n dot: {\n absolute: '5px 5px 5px 5px',\n background: colorUtils.getContrastingColor(color),\n borderRadius: '50%',\n opacity: '0'\n }\n },\n 'active': {\n dot: {\n opacity: '1'\n }\n },\n 'color-#FFFFFF': {\n color: {\n boxShadow: 'inset 0 0 0 1px #ddd'\n },\n dot: {\n background: '#000'\n }\n },\n 'transparent': {\n dot: {\n background: '#000'\n }\n }\n }, { active: active, 'color-#FFFFFF': color === '#FFFFFF', 'transparent': color === 'transparent' });\n\n return _react2.default.createElement(\n _common.Swatch,\n {\n style: styles.color,\n color: color,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: { boxShadow: '0 0 4px ' + color }\n },\n _react2.default.createElement('div', { style: styles.dot })\n );\n};\n\nexports.default = CompactColor;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CompactFields = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _common = require('../common');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar CompactFields = exports.CompactFields = function CompactFields(_ref) {\n var hex = _ref.hex,\n rgb = _ref.rgb,\n onChange = _ref.onChange;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n fields: {\n display: 'flex',\n paddingBottom: '6px',\n paddingRight: '5px',\n position: 'relative'\n },\n active: {\n position: 'absolute',\n top: '6px',\n left: '5px',\n height: '9px',\n width: '9px',\n background: hex\n },\n HEXwrap: {\n flex: '6',\n position: 'relative'\n },\n HEXinput: {\n width: '80%',\n padding: '0px',\n paddingLeft: '20%',\n border: 'none',\n outline: 'none',\n background: 'none',\n fontSize: '12px',\n color: '#333',\n height: '16px'\n },\n HEXlabel: {\n display: 'none'\n },\n RGBwrap: {\n flex: '3',\n position: 'relative'\n },\n RGBinput: {\n width: '70%',\n padding: '0px',\n paddingLeft: '30%',\n border: 'none',\n outline: 'none',\n background: 'none',\n fontSize: '12px',\n color: '#333',\n height: '16px'\n },\n RGBlabel: {\n position: 'absolute',\n top: '3px',\n left: '0px',\n lineHeight: '16px',\n textTransform: 'uppercase',\n fontSize: '12px',\n color: '#999'\n }\n }\n });\n\n var handleChange = function handleChange(data, e) {\n if (data.r || data.g || data.b) {\n onChange({\n r: data.r || rgb.r,\n g: data.g || rgb.g,\n b: data.b || rgb.b,\n source: 'rgb'\n }, e);\n } else {\n onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n }\n };\n\n return _react2.default.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n _react2.default.createElement('div', { style: styles.active }),\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.HEXwrap, input: styles.HEXinput, label: styles.HEXlabel },\n label: 'hex',\n value: hex,\n onChange: handleChange\n }),\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'r',\n value: rgb.r,\n onChange: handleChange\n }),\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'g',\n value: rgb.g,\n onChange: handleChange\n }),\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'b',\n value: rgb.b,\n onChange: handleChange\n })\n );\n};\n\nexports.default = CompactFields;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Github = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _map = require('lodash/map');\n\nvar _map2 = _interopRequireDefault(_map);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _common = require('../common');\n\nvar _GithubSwatch = require('./GithubSwatch');\n\nvar _GithubSwatch2 = _interopRequireDefault(_GithubSwatch);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Github = exports.Github = function Github(_ref) {\n var width = _ref.width,\n colors = _ref.colors,\n onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n triangle = _ref.triangle,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n card: {\n width: width,\n background: '#fff',\n border: '1px solid rgba(0,0,0,0.2)',\n boxShadow: '0 3px 12px rgba(0,0,0,0.15)',\n borderRadius: '4px',\n position: 'relative',\n padding: '5px',\n display: 'flex',\n flexWrap: 'wrap'\n },\n triangle: {\n position: 'absolute',\n border: '7px solid transparent',\n borderBottomColor: '#fff'\n },\n triangleShadow: {\n position: 'absolute',\n border: '8px solid transparent',\n borderBottomColor: 'rgba(0,0,0,0.15)'\n }\n },\n 'hide-triangle': {\n triangle: {\n display: 'none'\n },\n triangleShadow: {\n display: 'none'\n }\n },\n 'top-left-triangle': {\n triangle: {\n top: '-14px',\n left: '10px'\n },\n triangleShadow: {\n top: '-16px',\n left: '9px'\n }\n },\n 'top-right-triangle': {\n triangle: {\n top: '-14px',\n right: '10px'\n },\n triangleShadow: {\n top: '-16px',\n right: '9px'\n }\n },\n 'bottom-left-triangle': {\n triangle: {\n top: '35px',\n left: '10px',\n transform: 'rotate(180deg)'\n },\n triangleShadow: {\n top: '37px',\n left: '9px',\n transform: 'rotate(180deg)'\n }\n },\n 'bottom-right-triangle': {\n triangle: {\n top: '35px',\n right: '10px',\n transform: 'rotate(180deg)'\n },\n triangleShadow: {\n top: '37px',\n right: '9px',\n transform: 'rotate(180deg)'\n }\n }\n }, passedStyles), {\n 'hide-triangle': triangle === 'hide',\n 'top-left-triangle': triangle === 'top-left',\n 'top-right-triangle': triangle === 'top-right',\n 'bottom-left-triangle': triangle === 'bottom-left',\n 'bottom-right-triangle': triangle === 'bottom-right'\n });\n\n var handleChange = function handleChange(hex, e) {\n return onChange({ hex: hex, source: 'hex' }, e);\n };\n\n return _react2.default.createElement(\n 'div',\n { style: styles.card, className: 'github-picker ' + className },\n _react2.default.createElement('div', { style: styles.triangleShadow }),\n _react2.default.createElement('div', { style: styles.triangle }),\n (0, _map2.default)(colors, function (c) {\n return _react2.default.createElement(_GithubSwatch2.default, {\n color: c,\n key: c,\n onClick: handleChange,\n onSwatchHover: onSwatchHover\n });\n })\n );\n};\n\nGithub.propTypes = {\n width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n colors: _propTypes2.default.arrayOf(_propTypes2.default.string),\n triangle: _propTypes2.default.oneOf(['hide', 'top-left', 'top-right', 'bottom-left', 'bottom-right']),\n styles: _propTypes2.default.object\n};\n\nGithub.defaultProps = {\n width: 200,\n colors: ['#B80000', '#DB3E00', '#FCCB00', '#008B02', '#006B76', '#1273DE', '#004DCF', '#5300EB', '#EB9694', '#FAD0C3', '#FEF3BD', '#C1E1C5', '#BEDADC', '#C4DEF6', '#BED3F3', '#D4C4FB'],\n triangle: 'top-left',\n styles: {}\n};\n\nexports.default = (0, _common.ColorWrap)(Github);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.GithubSwatch = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _common = require('../common');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar GithubSwatch = exports.GithubSwatch = function GithubSwatch(_ref) {\n var hover = _ref.hover,\n color = _ref.color,\n onClick = _ref.onClick,\n onSwatchHover = _ref.onSwatchHover;\n\n var hoverSwatch = {\n position: 'relative',\n zIndex: '2',\n outline: '2px solid #fff',\n boxShadow: '0 0 5px 2px rgba(0,0,0,0.25)'\n };\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n swatch: {\n width: '25px',\n height: '25px',\n fontSize: '0'\n }\n },\n 'hover': {\n swatch: hoverSwatch\n }\n }, { hover: hover });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.swatch },\n _react2.default.createElement(_common.Swatch, {\n color: color,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: hoverSwatch\n })\n );\n};\n\nexports.default = (0, _reactcss.handleHover)(GithubSwatch);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Google = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _common = require('../common');\n\nvar _GooglePointerCircle = require('./GooglePointerCircle');\n\nvar _GooglePointerCircle2 = _interopRequireDefault(_GooglePointerCircle);\n\nvar _GooglePointer = require('./GooglePointer');\n\nvar _GooglePointer2 = _interopRequireDefault(_GooglePointer);\n\nvar _GoogleFields = require('./GoogleFields');\n\nvar _GoogleFields2 = _interopRequireDefault(_GoogleFields);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Google = exports.Google = function Google(_ref) {\n var width = _ref.width,\n onChange = _ref.onChange,\n rgb = _ref.rgb,\n hsl = _ref.hsl,\n hsv = _ref.hsv,\n hex = _ref.hex,\n header = _ref.header,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n picker: {\n width: width,\n background: '#fff',\n border: '1px solid #dfe1e5',\n boxSizing: 'initial',\n display: 'flex',\n flexWrap: 'wrap',\n borderRadius: '8px 8px 0px 0px'\n },\n head: {\n height: '57px',\n width: '100%',\n paddingTop: '16px',\n paddingBottom: '16px',\n paddingLeft: '16px',\n fontSize: '20px',\n boxSizing: 'border-box',\n fontFamily: 'Roboto-Regular,HelveticaNeue,Arial,sans-serif'\n },\n saturation: {\n width: '70%',\n padding: '0px',\n position: 'relative',\n overflow: 'hidden'\n },\n swatch: {\n width: '30%',\n height: '228px',\n padding: '0px',\n background: 'rgba(' + rgb.r + ', ' + rgb.g + ', ' + rgb.b + ', 1)',\n position: 'relative',\n overflow: 'hidden'\n },\n body: {\n margin: 'auto',\n width: '95%'\n },\n controls: {\n display: 'flex',\n boxSizing: 'border-box',\n height: '52px',\n paddingTop: '22px'\n },\n color: {\n width: '32px'\n },\n hue: {\n height: '8px',\n position: 'relative',\n margin: '0px 16px 0px 16px',\n width: '100%'\n },\n Hue: {\n radius: '2px'\n }\n }\n }, passedStyles));\n return _react2.default.createElement(\n 'div',\n { style: styles.picker, className: 'google-picker ' + className },\n _react2.default.createElement(\n 'div',\n { style: styles.head },\n header\n ),\n _react2.default.createElement('div', { style: styles.swatch }),\n _react2.default.createElement(\n 'div',\n { style: styles.saturation },\n _react2.default.createElement(_common.Saturation, {\n hsl: hsl,\n hsv: hsv,\n pointer: _GooglePointerCircle2.default,\n onChange: onChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.body },\n _react2.default.createElement(\n 'div',\n { style: styles.controls, className: 'flexbox-fix' },\n _react2.default.createElement(\n 'div',\n { style: styles.hue },\n _react2.default.createElement(_common.Hue, {\n style: styles.Hue,\n hsl: hsl,\n radius: '4px',\n pointer: _GooglePointer2.default,\n onChange: onChange\n })\n )\n ),\n _react2.default.createElement(_GoogleFields2.default, {\n rgb: rgb,\n hsl: hsl,\n hex: hex,\n hsv: hsv,\n onChange: onChange\n })\n )\n );\n};\n\nGoogle.propTypes = {\n width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n styles: _propTypes2.default.object,\n header: _propTypes2.default.string\n\n};\n\nGoogle.defaultProps = {\n width: 652,\n styles: {},\n header: 'Color picker'\n};\n\nexports.default = (0, _common.ColorWrap)(Google);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.GoogleFields = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _color = require('../../helpers/color');\n\nvar color = _interopRequireWildcard(_color);\n\nvar _common = require('../common');\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar GoogleFields = exports.GoogleFields = function GoogleFields(_ref) {\n var onChange = _ref.onChange,\n rgb = _ref.rgb,\n hsl = _ref.hsl,\n hex = _ref.hex,\n hsv = _ref.hsv;\n\n\n var handleChange = function handleChange(data, e) {\n if (data.hex) {\n color.isValidHex(data.hex) && onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else if (data.rgb) {\n var values = data.rgb.split(',');\n color.isvalidColorString(data.rgb, 'rgb') && onChange({\n r: values[0],\n g: values[1],\n b: values[2],\n a: 1,\n source: 'rgb'\n }, e);\n } else if (data.hsv) {\n var _values = data.hsv.split(',');\n if (color.isvalidColorString(data.hsv, 'hsv')) {\n _values[2] = _values[2].replace('%', '');\n _values[1] = _values[1].replace('%', '');\n _values[0] = _values[0].replace('°', '');\n if (_values[1] == 1) {\n _values[1] = 0.01;\n } else if (_values[2] == 1) {\n _values[2] = 0.01;\n }\n onChange({\n h: Number(_values[0]),\n s: Number(_values[1]),\n v: Number(_values[2]),\n source: 'hsv'\n }, e);\n }\n } else if (data.hsl) {\n var _values2 = data.hsl.split(',');\n if (color.isvalidColorString(data.hsl, 'hsl')) {\n _values2[2] = _values2[2].replace('%', '');\n _values2[1] = _values2[1].replace('%', '');\n _values2[0] = _values2[0].replace('°', '');\n if (hsvValue[1] == 1) {\n hsvValue[1] = 0.01;\n } else if (hsvValue[2] == 1) {\n hsvValue[2] = 0.01;\n }\n onChange({\n h: Number(_values2[0]),\n s: Number(_values2[1]),\n v: Number(_values2[2]),\n source: 'hsl'\n }, e);\n }\n }\n };\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n wrap: {\n display: 'flex',\n height: '100px',\n marginTop: '4px'\n },\n fields: {\n width: '100%'\n },\n column: {\n paddingTop: '10px',\n display: 'flex',\n justifyContent: 'space-between'\n },\n double: {\n padding: '0px 4.4px',\n boxSizing: 'border-box'\n },\n input: {\n width: '100%',\n height: '38px',\n boxSizing: 'border-box',\n padding: '4px 10% 3px',\n textAlign: 'center',\n border: '1px solid #dadce0',\n fontSize: '11px',\n textTransform: 'lowercase',\n borderRadius: '5px',\n outline: 'none',\n fontFamily: 'Roboto,Arial,sans-serif'\n },\n input2: {\n height: '38px',\n width: '100%',\n border: '1px solid #dadce0',\n boxSizing: 'border-box',\n fontSize: '11px',\n textTransform: 'lowercase',\n borderRadius: '5px',\n outline: 'none',\n paddingLeft: '10px',\n fontFamily: 'Roboto,Arial,sans-serif'\n },\n label: {\n textAlign: 'center',\n fontSize: '12px',\n background: '#fff',\n position: 'absolute',\n textTransform: 'uppercase',\n color: '#3c4043',\n width: '35px',\n top: '-6px',\n left: '0',\n right: '0',\n marginLeft: 'auto',\n marginRight: 'auto',\n fontFamily: 'Roboto,Arial,sans-serif'\n },\n label2: {\n left: '10px',\n textAlign: 'center',\n fontSize: '12px',\n background: '#fff',\n position: 'absolute',\n textTransform: 'uppercase',\n color: '#3c4043',\n width: '32px',\n top: '-6px',\n fontFamily: 'Roboto,Arial,sans-serif'\n },\n single: {\n flexGrow: '1',\n margin: '0px 4.4px'\n }\n }\n });\n\n var rgbValue = rgb.r + ', ' + rgb.g + ', ' + rgb.b;\n var hslValue = Math.round(hsl.h) + '\\xB0, ' + Math.round(hsl.s * 100) + '%, ' + Math.round(hsl.l * 100) + '%';\n var hsvValue = Math.round(hsv.h) + '\\xB0, ' + Math.round(hsv.s * 100) + '%, ' + Math.round(hsv.v * 100) + '%';\n\n return _react2.default.createElement(\n 'div',\n { style: styles.wrap, className: 'flexbox-fix' },\n _react2.default.createElement(\n 'div',\n { style: styles.fields },\n _react2.default.createElement(\n 'div',\n { style: styles.double },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'hex',\n value: hex,\n onChange: handleChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.column },\n _react2.default.createElement(\n 'div',\n { style: styles.single },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input2, label: styles.label2 },\n label: 'rgb',\n value: rgbValue,\n onChange: handleChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.single },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input2, label: styles.label2 },\n label: 'hsv',\n value: hsvValue,\n onChange: handleChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.single },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input2, label: styles.label2 },\n label: 'hsl',\n value: hslValue,\n onChange: handleChange\n })\n )\n )\n )\n );\n};\n\nexports.default = GoogleFields;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.GooglePointer = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar GooglePointer = exports.GooglePointer = function GooglePointer(props) {\n var styles = (0, _reactcss2.default)({\n 'default': {\n picker: {\n width: '20px',\n height: '20px',\n borderRadius: '22px',\n transform: 'translate(-10px, -7px)',\n background: 'hsl(' + Math.round(props.hsl.h) + ', 100%, 50%)',\n border: '2px white solid'\n }\n }\n });\n\n return _react2.default.createElement('div', { style: styles.picker });\n};\n\nGooglePointer.propTypes = {\n hsl: _propTypes2.default.shape({\n h: _propTypes2.default.number,\n s: _propTypes2.default.number,\n l: _propTypes2.default.number,\n a: _propTypes2.default.number\n })\n};\n\nGooglePointer.defaultProps = {\n hsl: { a: 1, h: 249.94, l: 0.2, s: 0.50 }\n};\n\nexports.default = GooglePointer;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.GooglePointerCircle = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar GooglePointerCircle = exports.GooglePointerCircle = function GooglePointerCircle(props) {\n var styles = (0, _reactcss2.default)({\n 'default': {\n picker: {\n width: '20px',\n height: '20px',\n borderRadius: '22px',\n border: '2px #fff solid',\n transform: 'translate(-12px, -13px)',\n background: 'hsl(' + Math.round(props.hsl.h) + ', ' + Math.round(props.hsl.s * 100) + '%, ' + Math.round(props.hsl.l * 100) + '%)'\n }\n }\n });\n\n return _react2.default.createElement('div', { style: styles.picker });\n};\n\nGooglePointerCircle.propTypes = {\n hsl: _propTypes2.default.shape({\n h: _propTypes2.default.number,\n s: _propTypes2.default.number,\n l: _propTypes2.default.number,\n a: _propTypes2.default.number\n })\n};\n\nGooglePointerCircle.defaultProps = {\n hsl: { a: 1, h: 249.94, l: 0.2, s: 0.50 }\n};\n\nexports.default = GooglePointerCircle;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.HuePicker = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _common = require('../common');\n\nvar _HuePointer = require('./HuePointer');\n\nvar _HuePointer2 = _interopRequireDefault(_HuePointer);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar HuePicker = exports.HuePicker = function HuePicker(_ref) {\n var width = _ref.width,\n height = _ref.height,\n onChange = _ref.onChange,\n hsl = _ref.hsl,\n direction = _ref.direction,\n pointer = _ref.pointer,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n picker: {\n position: 'relative',\n width: width,\n height: height\n },\n hue: {\n radius: '2px'\n }\n }\n }, passedStyles));\n\n // Overwrite to provide pure hue color\n var handleChange = function handleChange(data) {\n return onChange({ a: 1, h: data.h, l: 0.5, s: 1 });\n };\n\n return _react2.default.createElement(\n 'div',\n { style: styles.picker, className: 'hue-picker ' + className },\n _react2.default.createElement(_common.Hue, _extends({}, styles.hue, {\n hsl: hsl,\n pointer: pointer,\n onChange: handleChange,\n direction: direction\n }))\n );\n};\n\nHuePicker.propTypes = {\n styles: _propTypes2.default.object\n};\nHuePicker.defaultProps = {\n width: '316px',\n height: '16px',\n direction: 'horizontal',\n pointer: _HuePointer2.default,\n styles: {}\n};\n\nexports.default = (0, _common.ColorWrap)(HuePicker);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SliderPointer = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SliderPointer = exports.SliderPointer = function SliderPointer(_ref) {\n var direction = _ref.direction;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n picker: {\n width: '18px',\n height: '18px',\n borderRadius: '50%',\n transform: 'translate(-9px, -1px)',\n backgroundColor: 'rgb(248, 248, 248)',\n boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)'\n }\n },\n 'vertical': {\n picker: {\n transform: 'translate(-3px, -9px)'\n }\n }\n }, { vertical: direction === 'vertical' });\n\n return _react2.default.createElement('div', { style: styles.picker });\n};\n\nexports.default = SliderPointer;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Material = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _color = require('../../helpers/color');\n\nvar color = _interopRequireWildcard(_color);\n\nvar _common = require('../common');\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Material = exports.Material = function Material(_ref) {\n var onChange = _ref.onChange,\n hex = _ref.hex,\n rgb = _ref.rgb,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n material: {\n width: '98px',\n height: '98px',\n padding: '16px',\n fontFamily: 'Roboto'\n },\n HEXwrap: {\n position: 'relative'\n },\n HEXinput: {\n width: '100%',\n marginTop: '12px',\n fontSize: '15px',\n color: '#333',\n padding: '0px',\n border: '0px',\n borderBottom: '2px solid ' + hex,\n outline: 'none',\n height: '30px'\n },\n HEXlabel: {\n position: 'absolute',\n top: '0px',\n left: '0px',\n fontSize: '11px',\n color: '#999999',\n textTransform: 'capitalize'\n },\n Hex: {\n style: {}\n },\n RGBwrap: {\n position: 'relative'\n },\n RGBinput: {\n width: '100%',\n marginTop: '12px',\n fontSize: '15px',\n color: '#333',\n padding: '0px',\n border: '0px',\n borderBottom: '1px solid #eee',\n outline: 'none',\n height: '30px'\n },\n RGBlabel: {\n position: 'absolute',\n top: '0px',\n left: '0px',\n fontSize: '11px',\n color: '#999999',\n textTransform: 'capitalize'\n },\n split: {\n display: 'flex',\n marginRight: '-10px',\n paddingTop: '11px'\n },\n third: {\n flex: '1',\n paddingRight: '10px'\n }\n }\n }, passedStyles));\n\n var handleChange = function handleChange(data, e) {\n if (data.hex) {\n color.isValidHex(data.hex) && onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else if (data.r || data.g || data.b) {\n onChange({\n r: data.r || rgb.r,\n g: data.g || rgb.g,\n b: data.b || rgb.b,\n source: 'rgb'\n }, e);\n }\n };\n\n return _react2.default.createElement(\n _common.Raised,\n { styles: passedStyles },\n _react2.default.createElement(\n 'div',\n { style: styles.material, className: 'material-picker ' + className },\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.HEXwrap, input: styles.HEXinput, label: styles.HEXlabel },\n label: 'hex',\n value: hex,\n onChange: handleChange\n }),\n _react2.default.createElement(\n 'div',\n { style: styles.split, className: 'flexbox-fix' },\n _react2.default.createElement(\n 'div',\n { style: styles.third },\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'r', value: rgb.r,\n onChange: handleChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.third },\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'g',\n value: rgb.g,\n onChange: handleChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.third },\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'b',\n value: rgb.b,\n onChange: handleChange\n })\n )\n )\n )\n );\n};\n\nexports.default = (0, _common.ColorWrap)(Material);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Photoshop = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _common = require('../common');\n\nvar _PhotoshopFields = require('./PhotoshopFields');\n\nvar _PhotoshopFields2 = _interopRequireDefault(_PhotoshopFields);\n\nvar _PhotoshopPointerCircle = require('./PhotoshopPointerCircle');\n\nvar _PhotoshopPointerCircle2 = _interopRequireDefault(_PhotoshopPointerCircle);\n\nvar _PhotoshopPointer = require('./PhotoshopPointer');\n\nvar _PhotoshopPointer2 = _interopRequireDefault(_PhotoshopPointer);\n\nvar _PhotoshopButton = require('./PhotoshopButton');\n\nvar _PhotoshopButton2 = _interopRequireDefault(_PhotoshopButton);\n\nvar _PhotoshopPreviews = require('./PhotoshopPreviews');\n\nvar _PhotoshopPreviews2 = _interopRequireDefault(_PhotoshopPreviews);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Photoshop = exports.Photoshop = function (_React$Component) {\n _inherits(Photoshop, _React$Component);\n\n function Photoshop(props) {\n _classCallCheck(this, Photoshop);\n\n var _this = _possibleConstructorReturn(this, (Photoshop.__proto__ || Object.getPrototypeOf(Photoshop)).call(this));\n\n _this.state = {\n currentColor: props.hex\n };\n return _this;\n }\n\n _createClass(Photoshop, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n _props$styles = _props.styles,\n passedStyles = _props$styles === undefined ? {} : _props$styles,\n _props$className = _props.className,\n className = _props$className === undefined ? '' : _props$className;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n picker: {\n background: '#DCDCDC',\n borderRadius: '4px',\n boxShadow: '0 0 0 1px rgba(0,0,0,.25), 0 8px 16px rgba(0,0,0,.15)',\n boxSizing: 'initial',\n width: '513px'\n },\n head: {\n backgroundImage: 'linear-gradient(-180deg, #F0F0F0 0%, #D4D4D4 100%)',\n borderBottom: '1px solid #B1B1B1',\n boxShadow: 'inset 0 1px 0 0 rgba(255,255,255,.2), inset 0 -1px 0 0 rgba(0,0,0,.02)',\n height: '23px',\n lineHeight: '24px',\n borderRadius: '4px 4px 0 0',\n fontSize: '13px',\n color: '#4D4D4D',\n textAlign: 'center'\n },\n body: {\n padding: '15px 15px 0',\n display: 'flex'\n },\n saturation: {\n width: '256px',\n height: '256px',\n position: 'relative',\n border: '2px solid #B3B3B3',\n borderBottom: '2px solid #F0F0F0',\n overflow: 'hidden'\n },\n hue: {\n position: 'relative',\n height: '256px',\n width: '19px',\n marginLeft: '10px',\n border: '2px solid #B3B3B3',\n borderBottom: '2px solid #F0F0F0'\n },\n controls: {\n width: '180px',\n marginLeft: '10px'\n },\n top: {\n display: 'flex'\n },\n previews: {\n width: '60px'\n },\n actions: {\n flex: '1',\n marginLeft: '20px'\n }\n }\n }, passedStyles));\n\n return _react2.default.createElement(\n 'div',\n { style: styles.picker, className: 'photoshop-picker ' + className },\n _react2.default.createElement(\n 'div',\n { style: styles.head },\n this.props.header\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.body, className: 'flexbox-fix' },\n _react2.default.createElement(\n 'div',\n { style: styles.saturation },\n _react2.default.createElement(_common.Saturation, {\n hsl: this.props.hsl,\n hsv: this.props.hsv,\n pointer: _PhotoshopPointerCircle2.default,\n onChange: this.props.onChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.hue },\n _react2.default.createElement(_common.Hue, {\n direction: 'vertical',\n hsl: this.props.hsl,\n pointer: _PhotoshopPointer2.default,\n onChange: this.props.onChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.controls },\n _react2.default.createElement(\n 'div',\n { style: styles.top, className: 'flexbox-fix' },\n _react2.default.createElement(\n 'div',\n { style: styles.previews },\n _react2.default.createElement(_PhotoshopPreviews2.default, {\n rgb: this.props.rgb,\n currentColor: this.state.currentColor\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.actions },\n _react2.default.createElement(_PhotoshopButton2.default, { label: 'OK', onClick: this.props.onAccept, active: true }),\n _react2.default.createElement(_PhotoshopButton2.default, { label: 'Cancel', onClick: this.props.onCancel }),\n _react2.default.createElement(_PhotoshopFields2.default, {\n onChange: this.props.onChange,\n rgb: this.props.rgb,\n hsv: this.props.hsv,\n hex: this.props.hex\n })\n )\n )\n )\n )\n );\n }\n }]);\n\n return Photoshop;\n}(_react2.default.Component);\n\nPhotoshop.propTypes = {\n header: _propTypes2.default.string,\n styles: _propTypes2.default.object\n};\n\nPhotoshop.defaultProps = {\n header: 'Color Picker',\n styles: {}\n};\n\nexports.default = (0, _common.ColorWrap)(Photoshop);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PhotoshopButton = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar PhotoshopButton = exports.PhotoshopButton = function PhotoshopButton(_ref) {\n var onClick = _ref.onClick,\n label = _ref.label,\n children = _ref.children,\n active = _ref.active;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n button: {\n backgroundImage: 'linear-gradient(-180deg, #FFFFFF 0%, #E6E6E6 100%)',\n border: '1px solid #878787',\n borderRadius: '2px',\n height: '20px',\n boxShadow: '0 1px 0 0 #EAEAEA',\n fontSize: '14px',\n color: '#000',\n lineHeight: '20px',\n textAlign: 'center',\n marginBottom: '10px',\n cursor: 'pointer'\n }\n },\n 'active': {\n button: {\n boxShadow: '0 0 0 1px #878787'\n }\n }\n }, { active: active });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.button, onClick: onClick },\n label || children\n );\n};\n\nexports.default = PhotoshopButton;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PhotoshopPicker = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _color = require('../../helpers/color');\n\nvar color = _interopRequireWildcard(_color);\n\nvar _common = require('../common');\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar PhotoshopPicker = exports.PhotoshopPicker = function PhotoshopPicker(_ref) {\n var onChange = _ref.onChange,\n rgb = _ref.rgb,\n hsv = _ref.hsv,\n hex = _ref.hex;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n fields: {\n paddingTop: '5px',\n paddingBottom: '9px',\n width: '80px',\n position: 'relative'\n },\n divider: {\n height: '5px'\n },\n RGBwrap: {\n position: 'relative'\n },\n RGBinput: {\n marginLeft: '40%',\n width: '40%',\n height: '18px',\n border: '1px solid #888888',\n boxShadow: 'inset 0 1px 1px rgba(0,0,0,.1), 0 1px 0 0 #ECECEC',\n marginBottom: '5px',\n fontSize: '13px',\n paddingLeft: '3px',\n marginRight: '10px'\n },\n RGBlabel: {\n left: '0px',\n top: '0px',\n width: '34px',\n textTransform: 'uppercase',\n fontSize: '13px',\n height: '18px',\n lineHeight: '22px',\n position: 'absolute'\n },\n HEXwrap: {\n position: 'relative'\n },\n HEXinput: {\n marginLeft: '20%',\n width: '80%',\n height: '18px',\n border: '1px solid #888888',\n boxShadow: 'inset 0 1px 1px rgba(0,0,0,.1), 0 1px 0 0 #ECECEC',\n marginBottom: '6px',\n fontSize: '13px',\n paddingLeft: '3px'\n },\n HEXlabel: {\n position: 'absolute',\n top: '0px',\n left: '0px',\n width: '14px',\n textTransform: 'uppercase',\n fontSize: '13px',\n height: '18px',\n lineHeight: '22px'\n },\n fieldSymbols: {\n position: 'absolute',\n top: '5px',\n right: '-7px',\n fontSize: '13px'\n },\n symbol: {\n height: '20px',\n lineHeight: '22px',\n paddingBottom: '7px'\n }\n }\n });\n\n var handleChange = function handleChange(data, e) {\n if (data['#']) {\n color.isValidHex(data['#']) && onChange({\n hex: data['#'],\n source: 'hex'\n }, e);\n } else if (data.r || data.g || data.b) {\n onChange({\n r: data.r || rgb.r,\n g: data.g || rgb.g,\n b: data.b || rgb.b,\n source: 'rgb'\n }, e);\n } else if (data.h || data.s || data.v) {\n onChange({\n h: data.h || hsv.h,\n s: data.s || hsv.s,\n v: data.v || hsv.v,\n source: 'hsv'\n }, e);\n }\n };\n\n return _react2.default.createElement(\n 'div',\n { style: styles.fields },\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'h',\n value: Math.round(hsv.h),\n onChange: handleChange\n }),\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 's',\n value: Math.round(hsv.s * 100),\n onChange: handleChange\n }),\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'v',\n value: Math.round(hsv.v * 100),\n onChange: handleChange\n }),\n _react2.default.createElement('div', { style: styles.divider }),\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'r',\n value: rgb.r,\n onChange: handleChange\n }),\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'g',\n value: rgb.g,\n onChange: handleChange\n }),\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'b',\n value: rgb.b,\n onChange: handleChange\n }),\n _react2.default.createElement('div', { style: styles.divider }),\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.HEXwrap, input: styles.HEXinput, label: styles.HEXlabel },\n label: '#',\n value: hex.replace('#', ''),\n onChange: handleChange\n }),\n _react2.default.createElement(\n 'div',\n { style: styles.fieldSymbols },\n _react2.default.createElement(\n 'div',\n { style: styles.symbol },\n '\\xB0'\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.symbol },\n '%'\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.symbol },\n '%'\n )\n )\n );\n};\n\nexports.default = PhotoshopPicker;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PhotoshopPointerCircle = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar PhotoshopPointerCircle = exports.PhotoshopPointerCircle = function PhotoshopPointerCircle() {\n var styles = (0, _reactcss2.default)({\n 'default': {\n triangle: {\n width: 0,\n height: 0,\n borderStyle: 'solid',\n borderWidth: '4px 0 4px 6px',\n borderColor: 'transparent transparent transparent #fff',\n position: 'absolute',\n top: '1px',\n left: '1px'\n },\n triangleBorder: {\n width: 0,\n height: 0,\n borderStyle: 'solid',\n borderWidth: '5px 0 5px 8px',\n borderColor: 'transparent transparent transparent #555'\n },\n\n left: {\n Extend: 'triangleBorder',\n transform: 'translate(-13px, -4px)'\n },\n leftInside: {\n Extend: 'triangle',\n transform: 'translate(-8px, -5px)'\n },\n\n right: {\n Extend: 'triangleBorder',\n transform: 'translate(20px, -14px) rotate(180deg)'\n },\n rightInside: {\n Extend: 'triangle',\n transform: 'translate(-8px, -5px)'\n }\n }\n });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.pointer },\n _react2.default.createElement(\n 'div',\n { style: styles.left },\n _react2.default.createElement('div', { style: styles.leftInside })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.right },\n _react2.default.createElement('div', { style: styles.rightInside })\n )\n );\n};\n\nexports.default = PhotoshopPointerCircle;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PhotoshopPointerCircle = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar PhotoshopPointerCircle = exports.PhotoshopPointerCircle = function PhotoshopPointerCircle(_ref) {\n var hsl = _ref.hsl;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n picker: {\n width: '12px',\n height: '12px',\n borderRadius: '6px',\n boxShadow: 'inset 0 0 0 1px #fff',\n transform: 'translate(-6px, -6px)'\n }\n },\n 'black-outline': {\n picker: {\n boxShadow: 'inset 0 0 0 1px #000'\n }\n }\n }, { 'black-outline': hsl.l > 0.5 });\n\n return _react2.default.createElement('div', { style: styles.picker });\n};\n\nexports.default = PhotoshopPointerCircle;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PhotoshopPreviews = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar PhotoshopPreviews = exports.PhotoshopPreviews = function PhotoshopPreviews(_ref) {\n var rgb = _ref.rgb,\n currentColor = _ref.currentColor;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n swatches: {\n border: '1px solid #B3B3B3',\n borderBottom: '1px solid #F0F0F0',\n marginBottom: '2px',\n marginTop: '1px'\n },\n new: {\n height: '34px',\n background: 'rgb(' + rgb.r + ',' + rgb.g + ', ' + rgb.b + ')',\n boxShadow: 'inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 1px 0 #000'\n },\n current: {\n height: '34px',\n background: currentColor,\n boxShadow: 'inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 -1px 0 #000'\n },\n label: {\n fontSize: '14px',\n color: '#000',\n textAlign: 'center'\n }\n }\n });\n\n return _react2.default.createElement(\n 'div',\n null,\n _react2.default.createElement(\n 'div',\n { style: styles.label },\n 'new'\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.swatches },\n _react2.default.createElement('div', { style: styles.new }),\n _react2.default.createElement('div', { style: styles.current })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.label },\n 'current'\n )\n );\n};\n\nexports.default = PhotoshopPreviews;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Sketch = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _common = require('../common');\n\nvar _SketchFields = require('./SketchFields');\n\nvar _SketchFields2 = _interopRequireDefault(_SketchFields);\n\nvar _SketchPresetColors = require('./SketchPresetColors');\n\nvar _SketchPresetColors2 = _interopRequireDefault(_SketchPresetColors);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Sketch = exports.Sketch = function Sketch(_ref) {\n var width = _ref.width,\n rgb = _ref.rgb,\n hex = _ref.hex,\n hsv = _ref.hsv,\n hsl = _ref.hsl,\n onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n disableAlpha = _ref.disableAlpha,\n presetColors = _ref.presetColors,\n renderers = _ref.renderers,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': _extends({\n picker: {\n width: width,\n padding: '10px 10px 0',\n boxSizing: 'initial',\n background: '#fff',\n borderRadius: '4px',\n boxShadow: '0 0 0 1px rgba(0,0,0,.15), 0 8px 16px rgba(0,0,0,.15)'\n },\n saturation: {\n width: '100%',\n paddingBottom: '75%',\n position: 'relative',\n overflow: 'hidden'\n },\n Saturation: {\n radius: '3px',\n shadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n },\n controls: {\n display: 'flex'\n },\n sliders: {\n padding: '4px 0',\n flex: '1'\n },\n color: {\n width: '24px',\n height: '24px',\n position: 'relative',\n marginTop: '4px',\n marginLeft: '4px',\n borderRadius: '3px'\n },\n activeColor: {\n absolute: '0px 0px 0px 0px',\n borderRadius: '2px',\n background: 'rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ',' + rgb.a + ')',\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n },\n hue: {\n position: 'relative',\n height: '10px',\n overflow: 'hidden'\n },\n Hue: {\n radius: '2px',\n shadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n },\n\n alpha: {\n position: 'relative',\n height: '10px',\n marginTop: '4px',\n overflow: 'hidden'\n },\n Alpha: {\n radius: '2px',\n shadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n }\n }, passedStyles),\n 'disableAlpha': {\n color: {\n height: '10px'\n },\n hue: {\n height: '10px'\n },\n alpha: {\n display: 'none'\n }\n }\n }, passedStyles), { disableAlpha: disableAlpha });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.picker, className: 'sketch-picker ' + className },\n _react2.default.createElement(\n 'div',\n { style: styles.saturation },\n _react2.default.createElement(_common.Saturation, {\n style: styles.Saturation,\n hsl: hsl,\n hsv: hsv,\n onChange: onChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.controls, className: 'flexbox-fix' },\n _react2.default.createElement(\n 'div',\n { style: styles.sliders },\n _react2.default.createElement(\n 'div',\n { style: styles.hue },\n _react2.default.createElement(_common.Hue, {\n style: styles.Hue,\n hsl: hsl,\n onChange: onChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.alpha },\n _react2.default.createElement(_common.Alpha, {\n style: styles.Alpha,\n rgb: rgb,\n hsl: hsl,\n renderers: renderers,\n onChange: onChange\n })\n )\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.color },\n _react2.default.createElement(_common.Checkboard, null),\n _react2.default.createElement('div', { style: styles.activeColor })\n )\n ),\n _react2.default.createElement(_SketchFields2.default, {\n rgb: rgb,\n hsl: hsl,\n hex: hex,\n onChange: onChange,\n disableAlpha: disableAlpha\n }),\n _react2.default.createElement(_SketchPresetColors2.default, {\n colors: presetColors,\n onClick: onChange,\n onSwatchHover: onSwatchHover\n })\n );\n};\n\nSketch.propTypes = {\n disableAlpha: _propTypes2.default.bool,\n width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n styles: _propTypes2.default.object\n};\n\nSketch.defaultProps = {\n disableAlpha: false,\n width: 200,\n styles: {},\n presetColors: ['#D0021B', '#F5A623', '#F8E71C', '#8B572A', '#7ED321', '#417505', '#BD10E0', '#9013FE', '#4A90E2', '#50E3C2', '#B8E986', '#000000', '#4A4A4A', '#9B9B9B', '#FFFFFF']\n};\n\nexports.default = (0, _common.ColorWrap)(Sketch);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SketchFields = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _color = require('../../helpers/color');\n\nvar color = _interopRequireWildcard(_color);\n\nvar _common = require('../common');\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-disable no-param-reassign */\n\nvar SketchFields = exports.SketchFields = function SketchFields(_ref) {\n var onChange = _ref.onChange,\n rgb = _ref.rgb,\n hsl = _ref.hsl,\n hex = _ref.hex,\n disableAlpha = _ref.disableAlpha;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n fields: {\n display: 'flex',\n paddingTop: '4px'\n },\n single: {\n flex: '1',\n paddingLeft: '6px'\n },\n alpha: {\n flex: '1',\n paddingLeft: '6px'\n },\n double: {\n flex: '2'\n },\n input: {\n width: '80%',\n padding: '4px 10% 3px',\n border: 'none',\n boxShadow: 'inset 0 0 0 1px #ccc',\n fontSize: '11px'\n },\n label: {\n display: 'block',\n textAlign: 'center',\n fontSize: '11px',\n color: '#222',\n paddingTop: '3px',\n paddingBottom: '4px',\n textTransform: 'capitalize'\n }\n },\n 'disableAlpha': {\n alpha: {\n display: 'none'\n }\n }\n }, { disableAlpha: disableAlpha });\n\n var handleChange = function handleChange(data, e) {\n if (data.hex) {\n color.isValidHex(data.hex) && onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else if (data.r || data.g || data.b) {\n onChange({\n r: data.r || rgb.r,\n g: data.g || rgb.g,\n b: data.b || rgb.b,\n a: rgb.a,\n source: 'rgb'\n }, e);\n } else if (data.a) {\n if (data.a < 0) {\n data.a = 0;\n } else if (data.a > 100) {\n data.a = 100;\n }\n\n data.a /= 100;\n onChange({\n h: hsl.h,\n s: hsl.s,\n l: hsl.l,\n a: data.a,\n source: 'rgb'\n }, e);\n }\n };\n\n return _react2.default.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n _react2.default.createElement(\n 'div',\n { style: styles.double },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'hex',\n value: hex.replace('#', ''),\n onChange: handleChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.single },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'r',\n value: rgb.r,\n onChange: handleChange,\n dragLabel: 'true',\n dragMax: '255'\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.single },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'g',\n value: rgb.g,\n onChange: handleChange,\n dragLabel: 'true',\n dragMax: '255'\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.single },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'b',\n value: rgb.b,\n onChange: handleChange,\n dragLabel: 'true',\n dragMax: '255'\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.alpha },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'a',\n value: Math.round(rgb.a * 100),\n onChange: handleChange,\n dragLabel: 'true',\n dragMax: '100'\n })\n )\n );\n};\n\nexports.default = SketchFields;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SketchPresetColors = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _common = require('../common');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SketchPresetColors = exports.SketchPresetColors = function SketchPresetColors(_ref) {\n var colors = _ref.colors,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n onSwatchHover = _ref.onSwatchHover;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n colors: {\n margin: '0 -10px',\n padding: '10px 0 0 10px',\n borderTop: '1px solid #eee',\n display: 'flex',\n flexWrap: 'wrap',\n position: 'relative'\n },\n swatchWrap: {\n width: '16px',\n height: '16px',\n margin: '0 10px 10px 0'\n },\n swatch: {\n borderRadius: '3px',\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15)'\n }\n },\n 'no-presets': {\n colors: {\n display: 'none'\n }\n }\n }, {\n 'no-presets': !colors || !colors.length\n });\n\n var handleClick = function handleClick(hex, e) {\n onClick({\n hex: hex,\n source: 'hex'\n }, e);\n };\n\n return _react2.default.createElement(\n 'div',\n { style: styles.colors, className: 'flexbox-fix' },\n colors.map(function (colorObjOrString) {\n var c = typeof colorObjOrString === 'string' ? { color: colorObjOrString } : colorObjOrString;\n var key = '' + c.color + (c.title || '');\n return _react2.default.createElement(\n 'div',\n { key: key, style: styles.swatchWrap },\n _react2.default.createElement(_common.Swatch, _extends({}, c, {\n style: styles.swatch,\n onClick: handleClick,\n onHover: onSwatchHover,\n focusStyle: {\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15), 0 0 4px ' + c.color\n }\n }))\n );\n })\n );\n};\n\nSketchPresetColors.propTypes = {\n colors: _propTypes2.default.arrayOf(_propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({\n color: _propTypes2.default.string,\n title: _propTypes2.default.string\n })])).isRequired\n};\n\nexports.default = SketchPresetColors;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Slider = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _common = require('../common');\n\nvar _SliderSwatches = require('./SliderSwatches');\n\nvar _SliderSwatches2 = _interopRequireDefault(_SliderSwatches);\n\nvar _SliderPointer = require('./SliderPointer');\n\nvar _SliderPointer2 = _interopRequireDefault(_SliderPointer);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Slider = exports.Slider = function Slider(_ref) {\n var hsl = _ref.hsl,\n onChange = _ref.onChange,\n pointer = _ref.pointer,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n hue: {\n height: '12px',\n position: 'relative'\n },\n Hue: {\n radius: '2px'\n }\n }\n }, passedStyles));\n\n return _react2.default.createElement(\n 'div',\n { style: styles.wrap || {}, className: 'slider-picker ' + className },\n _react2.default.createElement(\n 'div',\n { style: styles.hue },\n _react2.default.createElement(_common.Hue, {\n style: styles.Hue,\n hsl: hsl,\n pointer: pointer,\n onChange: onChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.swatches },\n _react2.default.createElement(_SliderSwatches2.default, { hsl: hsl, onClick: onChange })\n )\n );\n};\n\nSlider.propTypes = {\n styles: _propTypes2.default.object\n};\nSlider.defaultProps = {\n pointer: _SliderPointer2.default,\n styles: {}\n};\n\nexports.default = (0, _common.ColorWrap)(Slider);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SliderPointer = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SliderPointer = exports.SliderPointer = function SliderPointer() {\n var styles = (0, _reactcss2.default)({\n 'default': {\n picker: {\n width: '14px',\n height: '14px',\n borderRadius: '6px',\n transform: 'translate(-7px, -1px)',\n backgroundColor: 'rgb(248, 248, 248)',\n boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)'\n }\n }\n });\n\n return _react2.default.createElement('div', { style: styles.picker });\n};\n\nexports.default = SliderPointer;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SliderSwatch = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SliderSwatch = exports.SliderSwatch = function SliderSwatch(_ref) {\n var hsl = _ref.hsl,\n offset = _ref.offset,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n active = _ref.active,\n first = _ref.first,\n last = _ref.last;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n swatch: {\n height: '12px',\n background: 'hsl(' + hsl.h + ', 50%, ' + offset * 100 + '%)',\n cursor: 'pointer'\n }\n },\n 'first': {\n swatch: {\n borderRadius: '2px 0 0 2px'\n }\n },\n 'last': {\n swatch: {\n borderRadius: '0 2px 2px 0'\n }\n },\n 'active': {\n swatch: {\n transform: 'scaleY(1.8)',\n borderRadius: '3.6px/2px'\n }\n }\n }, { active: active, first: first, last: last });\n\n var handleClick = function handleClick(e) {\n return onClick({\n h: hsl.h,\n s: 0.5,\n l: offset,\n source: 'hsl'\n }, e);\n };\n\n return _react2.default.createElement('div', { style: styles.swatch, onClick: handleClick });\n};\n\nexports.default = SliderSwatch;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SliderSwatches = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _SliderSwatch = require('./SliderSwatch');\n\nvar _SliderSwatch2 = _interopRequireDefault(_SliderSwatch);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SliderSwatches = exports.SliderSwatches = function SliderSwatches(_ref) {\n var onClick = _ref.onClick,\n hsl = _ref.hsl;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n swatches: {\n marginTop: '20px'\n },\n swatch: {\n boxSizing: 'border-box',\n width: '20%',\n paddingRight: '1px',\n float: 'left'\n },\n clear: {\n clear: 'both'\n }\n }\n });\n\n // Acceptible difference in floating point equality\n var epsilon = 0.1;\n\n return _react2.default.createElement(\n 'div',\n { style: styles.swatches },\n _react2.default.createElement(\n 'div',\n { style: styles.swatch },\n _react2.default.createElement(_SliderSwatch2.default, {\n hsl: hsl,\n offset: '.80',\n active: Math.abs(hsl.l - 0.80) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick,\n first: true\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.swatch },\n _react2.default.createElement(_SliderSwatch2.default, {\n hsl: hsl,\n offset: '.65',\n active: Math.abs(hsl.l - 0.65) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.swatch },\n _react2.default.createElement(_SliderSwatch2.default, {\n hsl: hsl,\n offset: '.50',\n active: Math.abs(hsl.l - 0.50) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.swatch },\n _react2.default.createElement(_SliderSwatch2.default, {\n hsl: hsl,\n offset: '.35',\n active: Math.abs(hsl.l - 0.35) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.swatch },\n _react2.default.createElement(_SliderSwatch2.default, {\n hsl: hsl,\n offset: '.20',\n active: Math.abs(hsl.l - 0.20) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick,\n last: true\n })\n ),\n _react2.default.createElement('div', { style: styles.clear })\n );\n};\n\nexports.default = SliderSwatches;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Swatches = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _map = require('lodash/map');\n\nvar _map2 = _interopRequireDefault(_map);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _materialColors = require('material-colors');\n\nvar material = _interopRequireWildcard(_materialColors);\n\nvar _common = require('../common');\n\nvar _SwatchesGroup = require('./SwatchesGroup');\n\nvar _SwatchesGroup2 = _interopRequireDefault(_SwatchesGroup);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Swatches = exports.Swatches = function Swatches(_ref) {\n var width = _ref.width,\n height = _ref.height,\n onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n colors = _ref.colors,\n hex = _ref.hex,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n picker: {\n width: width,\n height: height\n },\n overflow: {\n height: height,\n overflowY: 'scroll'\n },\n body: {\n padding: '16px 0 6px 16px'\n },\n clear: {\n clear: 'both'\n }\n }\n }, passedStyles));\n\n var handleChange = function handleChange(data, e) {\n return onChange({ hex: data, source: 'hex' }, e);\n };\n\n return _react2.default.createElement(\n 'div',\n { style: styles.picker, className: 'swatches-picker ' + className },\n _react2.default.createElement(\n _common.Raised,\n null,\n _react2.default.createElement(\n 'div',\n { style: styles.overflow },\n _react2.default.createElement(\n 'div',\n { style: styles.body },\n (0, _map2.default)(colors, function (group) {\n return _react2.default.createElement(_SwatchesGroup2.default, {\n key: group.toString(),\n group: group,\n active: hex,\n onClick: handleChange,\n onSwatchHover: onSwatchHover\n });\n }),\n _react2.default.createElement('div', { style: styles.clear })\n )\n )\n )\n );\n};\n\nSwatches.propTypes = {\n width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n height: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n colors: _propTypes2.default.arrayOf(_propTypes2.default.arrayOf(_propTypes2.default.string)),\n styles: _propTypes2.default.object\n\n /* eslint-disable max-len */\n};Swatches.defaultProps = {\n width: 320,\n height: 240,\n colors: [[material.red['900'], material.red['700'], material.red['500'], material.red['300'], material.red['100']], [material.pink['900'], material.pink['700'], material.pink['500'], material.pink['300'], material.pink['100']], [material.purple['900'], material.purple['700'], material.purple['500'], material.purple['300'], material.purple['100']], [material.deepPurple['900'], material.deepPurple['700'], material.deepPurple['500'], material.deepPurple['300'], material.deepPurple['100']], [material.indigo['900'], material.indigo['700'], material.indigo['500'], material.indigo['300'], material.indigo['100']], [material.blue['900'], material.blue['700'], material.blue['500'], material.blue['300'], material.blue['100']], [material.lightBlue['900'], material.lightBlue['700'], material.lightBlue['500'], material.lightBlue['300'], material.lightBlue['100']], [material.cyan['900'], material.cyan['700'], material.cyan['500'], material.cyan['300'], material.cyan['100']], [material.teal['900'], material.teal['700'], material.teal['500'], material.teal['300'], material.teal['100']], ['#194D33', material.green['700'], material.green['500'], material.green['300'], material.green['100']], [material.lightGreen['900'], material.lightGreen['700'], material.lightGreen['500'], material.lightGreen['300'], material.lightGreen['100']], [material.lime['900'], material.lime['700'], material.lime['500'], material.lime['300'], material.lime['100']], [material.yellow['900'], material.yellow['700'], material.yellow['500'], material.yellow['300'], material.yellow['100']], [material.amber['900'], material.amber['700'], material.amber['500'], material.amber['300'], material.amber['100']], [material.orange['900'], material.orange['700'], material.orange['500'], material.orange['300'], material.orange['100']], [material.deepOrange['900'], material.deepOrange['700'], material.deepOrange['500'], material.deepOrange['300'], material.deepOrange['100']], [material.brown['900'], material.brown['700'], material.brown['500'], material.brown['300'], material.brown['100']], [material.blueGrey['900'], material.blueGrey['700'], material.blueGrey['500'], material.blueGrey['300'], material.blueGrey['100']], ['#000000', '#525252', '#969696', '#D9D9D9', '#FFFFFF']],\n styles: {}\n};\n\nexports.default = (0, _common.ColorWrap)(Swatches);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SwatchesColor = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _color = require('../../helpers/color');\n\nvar colorUtils = _interopRequireWildcard(_color);\n\nvar _common = require('../common');\n\nvar _CheckIcon = require('@icons/material/CheckIcon');\n\nvar _CheckIcon2 = _interopRequireDefault(_CheckIcon);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SwatchesColor = exports.SwatchesColor = function SwatchesColor(_ref) {\n var color = _ref.color,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n onSwatchHover = _ref.onSwatchHover,\n first = _ref.first,\n last = _ref.last,\n active = _ref.active;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n color: {\n width: '40px',\n height: '24px',\n cursor: 'pointer',\n background: color,\n marginBottom: '1px'\n },\n check: {\n color: colorUtils.getContrastingColor(color),\n marginLeft: '8px',\n display: 'none'\n }\n },\n 'first': {\n color: {\n overflow: 'hidden',\n borderRadius: '2px 2px 0 0'\n }\n },\n 'last': {\n color: {\n overflow: 'hidden',\n borderRadius: '0 0 2px 2px'\n }\n },\n 'active': {\n check: {\n display: 'block'\n }\n },\n 'color-#FFFFFF': {\n color: {\n boxShadow: 'inset 0 0 0 1px #ddd'\n },\n check: {\n color: '#333'\n }\n },\n 'transparent': {\n check: {\n color: '#333'\n }\n }\n }, {\n first: first,\n last: last,\n active: active,\n 'color-#FFFFFF': color === '#FFFFFF',\n 'transparent': color === 'transparent'\n });\n\n return _react2.default.createElement(\n _common.Swatch,\n {\n color: color,\n style: styles.color,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: { boxShadow: '0 0 4px ' + color }\n },\n _react2.default.createElement(\n 'div',\n { style: styles.check },\n _react2.default.createElement(_CheckIcon2.default, null)\n )\n );\n};\n\nexports.default = SwatchesColor;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SwatchesGroup = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _map = require('lodash/map');\n\nvar _map2 = _interopRequireDefault(_map);\n\nvar _SwatchesColor = require('./SwatchesColor');\n\nvar _SwatchesColor2 = _interopRequireDefault(_SwatchesColor);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SwatchesGroup = exports.SwatchesGroup = function SwatchesGroup(_ref) {\n var onClick = _ref.onClick,\n onSwatchHover = _ref.onSwatchHover,\n group = _ref.group,\n active = _ref.active;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n group: {\n paddingBottom: '10px',\n width: '40px',\n float: 'left',\n marginRight: '10px'\n }\n }\n });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.group },\n (0, _map2.default)(group, function (color, i) {\n return _react2.default.createElement(_SwatchesColor2.default, {\n key: color,\n color: color,\n active: color.toLowerCase() === active,\n first: i === 0,\n last: i === group.length - 1,\n onClick: onClick,\n onSwatchHover: onSwatchHover\n });\n })\n );\n};\n\nexports.default = SwatchesGroup;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Twitter = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _map = require('lodash/map');\n\nvar _map2 = _interopRequireDefault(_map);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _color = require('../../helpers/color');\n\nvar color = _interopRequireWildcard(_color);\n\nvar _common = require('../common');\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Twitter = exports.Twitter = function Twitter(_ref) {\n var onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n hex = _ref.hex,\n colors = _ref.colors,\n width = _ref.width,\n triangle = _ref.triangle,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n card: {\n width: width,\n background: '#fff',\n border: '0 solid rgba(0,0,0,0.25)',\n boxShadow: '0 1px 4px rgba(0,0,0,0.25)',\n borderRadius: '4px',\n position: 'relative'\n },\n body: {\n padding: '15px 9px 9px 15px'\n },\n label: {\n fontSize: '18px',\n color: '#fff'\n },\n triangle: {\n width: '0px',\n height: '0px',\n borderStyle: 'solid',\n borderWidth: '0 9px 10px 9px',\n borderColor: 'transparent transparent #fff transparent',\n position: 'absolute'\n },\n triangleShadow: {\n width: '0px',\n height: '0px',\n borderStyle: 'solid',\n borderWidth: '0 9px 10px 9px',\n borderColor: 'transparent transparent rgba(0,0,0,.1) transparent',\n position: 'absolute'\n },\n hash: {\n background: '#F0F0F0',\n height: '30px',\n width: '30px',\n borderRadius: '4px 0 0 4px',\n float: 'left',\n color: '#98A1A4',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center'\n },\n input: {\n width: '100px',\n fontSize: '14px',\n color: '#666',\n border: '0px',\n outline: 'none',\n height: '28px',\n boxShadow: 'inset 0 0 0 1px #F0F0F0',\n boxSizing: 'content-box',\n borderRadius: '0 4px 4px 0',\n float: 'left',\n paddingLeft: '8px'\n },\n swatch: {\n width: '30px',\n height: '30px',\n float: 'left',\n borderRadius: '4px',\n margin: '0 6px 6px 0'\n },\n clear: {\n clear: 'both'\n }\n },\n 'hide-triangle': {\n triangle: {\n display: 'none'\n },\n triangleShadow: {\n display: 'none'\n }\n },\n 'top-left-triangle': {\n triangle: {\n top: '-10px',\n left: '12px'\n },\n triangleShadow: {\n top: '-11px',\n left: '12px'\n }\n },\n 'top-right-triangle': {\n triangle: {\n top: '-10px',\n right: '12px'\n },\n triangleShadow: {\n top: '-11px',\n right: '12px'\n }\n }\n }, passedStyles), {\n 'hide-triangle': triangle === 'hide',\n 'top-left-triangle': triangle === 'top-left',\n 'top-right-triangle': triangle === 'top-right'\n });\n\n var handleChange = function handleChange(hexcode, e) {\n color.isValidHex(hexcode) && onChange({\n hex: hexcode,\n source: 'hex'\n }, e);\n };\n\n return _react2.default.createElement(\n 'div',\n { style: styles.card, className: 'twitter-picker ' + className },\n _react2.default.createElement('div', { style: styles.triangleShadow }),\n _react2.default.createElement('div', { style: styles.triangle }),\n _react2.default.createElement(\n 'div',\n { style: styles.body },\n (0, _map2.default)(colors, function (c, i) {\n return _react2.default.createElement(_common.Swatch, {\n key: i,\n color: c,\n hex: c,\n style: styles.swatch,\n onClick: handleChange,\n onHover: onSwatchHover,\n focusStyle: {\n boxShadow: '0 0 4px ' + c\n }\n });\n }),\n _react2.default.createElement(\n 'div',\n { style: styles.hash },\n '#'\n ),\n _react2.default.createElement(_common.EditableInput, {\n label: null,\n style: { input: styles.input },\n value: hex.replace('#', ''),\n onChange: handleChange\n }),\n _react2.default.createElement('div', { style: styles.clear })\n )\n );\n};\n\nTwitter.propTypes = {\n width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n triangle: _propTypes2.default.oneOf(['hide', 'top-left', 'top-right']),\n colors: _propTypes2.default.arrayOf(_propTypes2.default.string),\n styles: _propTypes2.default.object\n};\n\nTwitter.defaultProps = {\n width: 276,\n colors: ['#FF6900', '#FCB900', '#7BDCB5', '#00D084', '#8ED1FC', '#0693E3', '#ABB8C3', '#EB144C', '#F78DA7', '#9900EF'],\n triangle: 'top-left',\n styles: {}\n};\n\nexports.default = (0, _common.ColorWrap)(Twitter);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar calculateChange = exports.calculateChange = function calculateChange(e, hsl, direction, initialA, container) {\n var containerWidth = container.clientWidth;\n var containerHeight = container.clientHeight;\n var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX;\n var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY;\n var left = x - (container.getBoundingClientRect().left + window.pageXOffset);\n var top = y - (container.getBoundingClientRect().top + window.pageYOffset);\n\n if (direction === 'vertical') {\n var a = void 0;\n if (top < 0) {\n a = 0;\n } else if (top > containerHeight) {\n a = 1;\n } else {\n a = Math.round(top * 100 / containerHeight) / 100;\n }\n\n if (hsl.a !== a) {\n return {\n h: hsl.h,\n s: hsl.s,\n l: hsl.l,\n a: a,\n source: 'rgb'\n };\n }\n } else {\n var _a = void 0;\n if (left < 0) {\n _a = 0;\n } else if (left > containerWidth) {\n _a = 1;\n } else {\n _a = Math.round(left * 100 / containerWidth) / 100;\n }\n\n if (initialA !== _a) {\n return {\n h: hsl.h,\n s: hsl.s,\n l: hsl.l,\n a: _a,\n source: 'rgb'\n };\n }\n }\n return null;\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar checkboardCache = {};\n\nvar render = exports.render = function render(c1, c2, size, serverCanvas) {\n if (typeof document === 'undefined' && !serverCanvas) {\n return null;\n }\n var canvas = serverCanvas ? new serverCanvas() : document.createElement('canvas');\n canvas.width = size * 2;\n canvas.height = size * 2;\n var ctx = canvas.getContext('2d');\n if (!ctx) {\n return null;\n } // If no context can be found, return early.\n ctx.fillStyle = c1;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n ctx.fillStyle = c2;\n ctx.fillRect(0, 0, size, size);\n ctx.translate(size, size);\n ctx.fillRect(0, 0, size, size);\n return canvas.toDataURL();\n};\n\nvar get = exports.get = function get(c1, c2, size, serverCanvas) {\n var key = c1 + '-' + c2 + '-' + size + (serverCanvas ? '-server' : '');\n\n if (checkboardCache[key]) {\n return checkboardCache[key];\n }\n\n var checkboard = render(c1, c2, size, serverCanvas);\n checkboardCache[key] = checkboard;\n return checkboard;\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isvalidColorString = exports.red = exports.getContrastingColor = exports.isValidHex = exports.toState = exports.simpleCheckForValidColor = undefined;\n\nvar _each = require('lodash/each');\n\nvar _each2 = _interopRequireDefault(_each);\n\nvar _tinycolor = require('tinycolor2');\n\nvar _tinycolor2 = _interopRequireDefault(_tinycolor);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar simpleCheckForValidColor = exports.simpleCheckForValidColor = function simpleCheckForValidColor(data) {\n var keysToCheck = ['r', 'g', 'b', 'a', 'h', 's', 'l', 'v'];\n var checked = 0;\n var passed = 0;\n (0, _each2.default)(keysToCheck, function (letter) {\n if (data[letter]) {\n checked += 1;\n if (!isNaN(data[letter])) {\n passed += 1;\n }\n if (letter === 's' || letter === 'l') {\n var percentPatt = /^\\d+%$/;\n if (percentPatt.test(data[letter])) {\n passed += 1;\n }\n }\n }\n });\n return checked === passed ? data : false;\n};\n\nvar toState = exports.toState = function toState(data, oldHue) {\n var color = data.hex ? (0, _tinycolor2.default)(data.hex) : (0, _tinycolor2.default)(data);\n var hsl = color.toHsl();\n var hsv = color.toHsv();\n var rgb = color.toRgb();\n var hex = color.toHex();\n if (hsl.s === 0) {\n hsl.h = oldHue || 0;\n hsv.h = oldHue || 0;\n }\n var transparent = hex === '000000' && rgb.a === 0;\n\n return {\n hsl: hsl,\n hex: transparent ? 'transparent' : '#' + hex,\n rgb: rgb,\n hsv: hsv,\n oldHue: data.h || oldHue || hsl.h,\n source: data.source\n };\n};\n\nvar isValidHex = exports.isValidHex = function isValidHex(hex) {\n if (hex === 'transparent') {\n return true;\n }\n // disable hex4 and hex8\n var lh = String(hex).charAt(0) === '#' ? 1 : 0;\n return hex.length !== 4 + lh && hex.length < 7 + lh && (0, _tinycolor2.default)(hex).isValid();\n};\n\nvar getContrastingColor = exports.getContrastingColor = function getContrastingColor(data) {\n if (!data) {\n return '#fff';\n }\n var col = toState(data);\n if (col.hex === 'transparent') {\n return 'rgba(0,0,0,0.4)';\n }\n var yiq = (col.rgb.r * 299 + col.rgb.g * 587 + col.rgb.b * 114) / 1000;\n return yiq >= 128 ? '#000' : '#fff';\n};\n\nvar red = exports.red = {\n hsl: { a: 1, h: 0, l: 0.5, s: 1 },\n hex: '#ff0000',\n rgb: { r: 255, g: 0, b: 0, a: 1 },\n hsv: { h: 0, s: 1, v: 1, a: 1 }\n};\n\nvar isvalidColorString = exports.isvalidColorString = function isvalidColorString(string, type) {\n var stringWithoutDegree = string.replace('°', '');\n return (0, _tinycolor2.default)(type + ' (' + stringWithoutDegree + ')')._ok;\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar calculateChange = exports.calculateChange = function calculateChange(e, direction, hsl, container) {\n var containerWidth = container.clientWidth;\n var containerHeight = container.clientHeight;\n var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX;\n var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY;\n var left = x - (container.getBoundingClientRect().left + window.pageXOffset);\n var top = y - (container.getBoundingClientRect().top + window.pageYOffset);\n\n if (direction === 'vertical') {\n var h = void 0;\n if (top < 0) {\n h = 359;\n } else if (top > containerHeight) {\n h = 0;\n } else {\n var percent = -(top * 100 / containerHeight) + 100;\n h = 360 * percent / 100;\n }\n\n if (hsl.h !== h) {\n return {\n h: h,\n s: hsl.s,\n l: hsl.l,\n a: hsl.a,\n source: 'hsl'\n };\n }\n } else {\n var _h = void 0;\n if (left < 0) {\n _h = 0;\n } else if (left > containerWidth) {\n _h = 359;\n } else {\n var _percent = left * 100 / containerWidth;\n _h = 360 * _percent / 100;\n }\n\n if (hsl.h !== _h) {\n return {\n h: _h,\n s: hsl.s,\n l: hsl.l,\n a: hsl.a,\n source: 'hsl'\n };\n }\n }\n return null;\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.handleFocus = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /* eslint-disable no-invalid-this */\n\n\nvar handleFocus = exports.handleFocus = function handleFocus(Component) {\n var Span = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'span';\n return function (_React$Component) {\n _inherits(Focus, _React$Component);\n\n function Focus() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Focus);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Focus.__proto__ || Object.getPrototypeOf(Focus)).call.apply(_ref, [this].concat(args))), _this), _this.state = { focus: false }, _this.handleFocus = function () {\n return _this.setState({ focus: true });\n }, _this.handleBlur = function () {\n return _this.setState({ focus: false });\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Focus, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n Span,\n { onFocus: this.handleFocus, onBlur: this.handleBlur },\n _react2.default.createElement(Component, _extends({}, this.props, this.state))\n );\n }\n }]);\n\n return Focus;\n }(_react2.default.Component);\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar calculateChange = exports.calculateChange = function calculateChange(e, hsl, container) {\n var _container$getBoundin = container.getBoundingClientRect(),\n containerWidth = _container$getBoundin.width,\n containerHeight = _container$getBoundin.height;\n\n var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX;\n var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY;\n var left = x - (container.getBoundingClientRect().left + window.pageXOffset);\n var top = y - (container.getBoundingClientRect().top + window.pageYOffset);\n\n if (left < 0) {\n left = 0;\n } else if (left > containerWidth) {\n left = containerWidth;\n }\n\n if (top < 0) {\n top = 0;\n } else if (top > containerHeight) {\n top = containerHeight;\n }\n\n var saturation = left / containerWidth;\n var bright = 1 - top / containerHeight;\n\n return {\n h: hsl.h,\n s: saturation,\n v: bright,\n a: hsl.a,\n source: 'hsv'\n };\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CustomPicker = exports.GooglePicker = exports.TwitterPicker = exports.SwatchesPicker = exports.SliderPicker = exports.SketchPicker = exports.PhotoshopPicker = exports.MaterialPicker = exports.HuePicker = exports.GithubPicker = exports.CompactPicker = exports.ChromePicker = exports.default = exports.CirclePicker = exports.BlockPicker = exports.AlphaPicker = undefined;\n\nvar _Alpha = require('./components/alpha/Alpha');\n\nObject.defineProperty(exports, 'AlphaPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Alpha).default;\n }\n});\n\nvar _Block = require('./components/block/Block');\n\nObject.defineProperty(exports, 'BlockPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Block).default;\n }\n});\n\nvar _Circle = require('./components/circle/Circle');\n\nObject.defineProperty(exports, 'CirclePicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Circle).default;\n }\n});\n\nvar _Chrome = require('./components/chrome/Chrome');\n\nObject.defineProperty(exports, 'ChromePicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Chrome).default;\n }\n});\n\nvar _Compact = require('./components/compact/Compact');\n\nObject.defineProperty(exports, 'CompactPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Compact).default;\n }\n});\n\nvar _Github = require('./components/github/Github');\n\nObject.defineProperty(exports, 'GithubPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Github).default;\n }\n});\n\nvar _Hue = require('./components/hue/Hue');\n\nObject.defineProperty(exports, 'HuePicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Hue).default;\n }\n});\n\nvar _Material = require('./components/material/Material');\n\nObject.defineProperty(exports, 'MaterialPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Material).default;\n }\n});\n\nvar _Photoshop = require('./components/photoshop/Photoshop');\n\nObject.defineProperty(exports, 'PhotoshopPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Photoshop).default;\n }\n});\n\nvar _Sketch = require('./components/sketch/Sketch');\n\nObject.defineProperty(exports, 'SketchPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Sketch).default;\n }\n});\n\nvar _Slider = require('./components/slider/Slider');\n\nObject.defineProperty(exports, 'SliderPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Slider).default;\n }\n});\n\nvar _Swatches = require('./components/swatches/Swatches');\n\nObject.defineProperty(exports, 'SwatchesPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Swatches).default;\n }\n});\n\nvar _Twitter = require('./components/twitter/Twitter');\n\nObject.defineProperty(exports, 'TwitterPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Twitter).default;\n }\n});\n\nvar _Google = require('./components/google/Google');\n\nObject.defineProperty(exports, 'GooglePicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Google).default;\n }\n});\n\nvar _ColorWrap = require('./components/common/ColorWrap');\n\nObject.defineProperty(exports, 'CustomPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_ColorWrap).default;\n }\n});\n\nvar _Chrome2 = _interopRequireDefault(_Chrome);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _Chrome2.default;","/** @license React v16.13.1\n * react-is.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'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","/** @license React v16.13.1\n * react-is.production.min.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'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t(require(\"prop-types\"),require(\"react\"),require(\"signature_pad\"),require(\"trim-canvas\")):\"function\"==typeof define&&define.amd?define([\"prop-types\",\"react\",\"signature_pad\",\"trim-canvas\"],t):\"object\"==typeof exports?exports.SignatureCanvas=t(require(\"prop-types\"),require(\"react\"),require(\"signature_pad\"),require(\"trim-canvas\")):e.SignatureCanvas=t(e[\"prop-types\"],e.react,e.signature_pad,e[\"trim-canvas\"])}(this,function(e,t,n,r){return function(e){function t(r){if(n[r])return n[r].exports;var a=n[r]={exports:{},id:r,loaded:!1};return e[r].call(a.exports,a,a.exports,t),a.loaded=!0,a.exports}var n={};return t.m=e,t.c=n,t.p=\"\",t(0)}([function(e,t,n){\"use strict\";function r(e){return e&&e.__esModule?e:{default:e}}function a(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function o(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function i(e,t){if(!e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!t||\"object\"!=typeof t&&\"function\"!=typeof t?e:t}function u(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,\"__esModule\",{value:!0});var s=Object.assign||function(e){for(var t=1;t 1 && arguments[1] !== undefined ? arguments[1] : 'span';\n\n return function (_React$Component) {\n _inherits(Active, _React$Component);\n\n function Active() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Active);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Active.__proto__ || Object.getPrototypeOf(Active)).call.apply(_ref, [this].concat(args))), _this), _this.state = { active: false }, _this.handleMouseDown = function () {\n return _this.setState({ active: true });\n }, _this.handleMouseUp = function () {\n return _this.setState({ active: false });\n }, _this.render = function () {\n return _react2.default.createElement(\n Span,\n { onMouseDown: _this.handleMouseDown, onMouseUp: _this.handleMouseUp },\n _react2.default.createElement(Component, _extends({}, _this.props, _this.state))\n );\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n return Active;\n }(_react2.default.Component);\n};\n\nexports.default = active;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.hover = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar hover = exports.hover = function hover(Component) {\n var Span = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'span';\n\n return function (_React$Component) {\n _inherits(Hover, _React$Component);\n\n function Hover() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Hover);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Hover.__proto__ || Object.getPrototypeOf(Hover)).call.apply(_ref, [this].concat(args))), _this), _this.state = { hover: false }, _this.handleMouseOver = function () {\n return _this.setState({ hover: true });\n }, _this.handleMouseOut = function () {\n return _this.setState({ hover: false });\n }, _this.render = function () {\n return _react2.default.createElement(\n Span,\n { onMouseOver: _this.handleMouseOver, onMouseOut: _this.handleMouseOut },\n _react2.default.createElement(Component, _extends({}, _this.props, _this.state))\n );\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n return Hover;\n }(_react2.default.Component);\n};\n\nexports.default = hover;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.flattenNames = undefined;\n\nvar _isString2 = require('lodash/isString');\n\nvar _isString3 = _interopRequireDefault(_isString2);\n\nvar _forOwn2 = require('lodash/forOwn');\n\nvar _forOwn3 = _interopRequireDefault(_forOwn2);\n\nvar _isPlainObject2 = require('lodash/isPlainObject');\n\nvar _isPlainObject3 = _interopRequireDefault(_isPlainObject2);\n\nvar _map2 = require('lodash/map');\n\nvar _map3 = _interopRequireDefault(_map2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar flattenNames = exports.flattenNames = function flattenNames() {\n var things = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n var names = [];\n\n (0, _map3.default)(things, function (thing) {\n if (Array.isArray(thing)) {\n flattenNames(thing).map(function (name) {\n return names.push(name);\n });\n } else if ((0, _isPlainObject3.default)(thing)) {\n (0, _forOwn3.default)(thing, function (value, key) {\n value === true && names.push(key);\n names.push(key + '-' + value);\n });\n } else if ((0, _isString3.default)(thing)) {\n names.push(thing);\n }\n });\n\n return names;\n};\n\nexports.default = flattenNames;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ReactCSS = exports.loop = exports.handleActive = exports.handleHover = exports.hover = undefined;\n\nvar _flattenNames = require('./flattenNames');\n\nvar _flattenNames2 = _interopRequireDefault(_flattenNames);\n\nvar _mergeClasses = require('./mergeClasses');\n\nvar _mergeClasses2 = _interopRequireDefault(_mergeClasses);\n\nvar _autoprefix = require('./autoprefix');\n\nvar _autoprefix2 = _interopRequireDefault(_autoprefix);\n\nvar _hover2 = require('./components/hover');\n\nvar _hover3 = _interopRequireDefault(_hover2);\n\nvar _active = require('./components/active');\n\nvar _active2 = _interopRequireDefault(_active);\n\nvar _loop2 = require('./loop');\n\nvar _loop3 = _interopRequireDefault(_loop2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.hover = _hover3.default;\nexports.handleHover = _hover3.default;\nexports.handleActive = _active2.default;\nexports.loop = _loop3.default;\nvar ReactCSS = exports.ReactCSS = function ReactCSS(classes) {\n for (var _len = arguments.length, activations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n activations[_key - 1] = arguments[_key];\n }\n\n var activeNames = (0, _flattenNames2.default)(activations);\n var merged = (0, _mergeClasses2.default)(classes, activeNames);\n return (0, _autoprefix2.default)(merged);\n};\n\nexports.default = ReactCSS;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar loopable = function loopable(i, length) {\n var props = {};\n var setProp = function setProp(name) {\n var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n props[name] = value;\n };\n\n i === 0 && setProp('first-child');\n i === length - 1 && setProp('last-child');\n (i === 0 || i % 2 === 0) && setProp('even');\n Math.abs(i % 2) === 1 && setProp('odd');\n setProp('nth-child', i);\n\n return props;\n};\n\nexports.default = loopable;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.mergeClasses = undefined;\n\nvar _forOwn2 = require('lodash/forOwn');\n\nvar _forOwn3 = _interopRequireDefault(_forOwn2);\n\nvar _cloneDeep2 = require('lodash/cloneDeep');\n\nvar _cloneDeep3 = _interopRequireDefault(_cloneDeep2);\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar mergeClasses = exports.mergeClasses = function mergeClasses(classes) {\n var activeNames = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n var styles = classes.default && (0, _cloneDeep3.default)(classes.default) || {};\n activeNames.map(function (name) {\n var toMerge = classes[name];\n if (toMerge) {\n (0, _forOwn3.default)(toMerge, function (value, key) {\n if (!styles[key]) {\n styles[key] = {};\n }\n\n styles[key] = _extends({}, styles[key], toMerge[key]);\n });\n }\n\n return name;\n });\n return styles;\n};\n\nexports.default = mergeClasses;","/*!\n * Signature Pad v2.3.2\n * https://github.com/szimek/signature_pad\n *\n * Copyright 2017 Szymon Nowak\n * Released under the MIT license\n *\n * The main idea and some parts of the code (e.g. drawing variable width Bézier curve) are taken from:\n * http://corner.squareup.com/2012/07/smoother-signatures.html\n *\n * Implementation of interpolation using cubic Bézier curves is taken from:\n * http://benknowscode.wordpress.com/2012/09/14/path-interpolation-using-cubic-bezier-and-control-point-estimation-in-javascript\n *\n * Algorithm for approximated length of a Bézier curve is taken from:\n * http://www.lemoda.net/maths/bezier-length/index.html\n *\n */\n\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.SignaturePad = factory());\n}(this, (function () { 'use strict';\n\nfunction Point(x, y, time) {\n this.x = x;\n this.y = y;\n this.time = time || new Date().getTime();\n}\n\nPoint.prototype.velocityFrom = function (start) {\n return this.time !== start.time ? this.distanceTo(start) / (this.time - start.time) : 1;\n};\n\nPoint.prototype.distanceTo = function (start) {\n return Math.sqrt(Math.pow(this.x - start.x, 2) + Math.pow(this.y - start.y, 2));\n};\n\nPoint.prototype.equals = function (other) {\n return this.x === other.x && this.y === other.y && this.time === other.time;\n};\n\nfunction Bezier(startPoint, control1, control2, endPoint) {\n this.startPoint = startPoint;\n this.control1 = control1;\n this.control2 = control2;\n this.endPoint = endPoint;\n}\n\n// Returns approximated length.\nBezier.prototype.length = function () {\n var steps = 10;\n var length = 0;\n var px = void 0;\n var py = void 0;\n\n for (var i = 0; i <= steps; i += 1) {\n var t = i / steps;\n var cx = this._point(t, this.startPoint.x, this.control1.x, this.control2.x, this.endPoint.x);\n var cy = this._point(t, this.startPoint.y, this.control1.y, this.control2.y, this.endPoint.y);\n if (i > 0) {\n var xdiff = cx - px;\n var ydiff = cy - py;\n length += Math.sqrt(xdiff * xdiff + ydiff * ydiff);\n }\n px = cx;\n py = cy;\n }\n\n return length;\n};\n\n/* eslint-disable no-multi-spaces, space-in-parens */\nBezier.prototype._point = function (t, start, c1, c2, end) {\n return start * (1.0 - t) * (1.0 - t) * (1.0 - t) + 3.0 * c1 * (1.0 - t) * (1.0 - t) * t + 3.0 * c2 * (1.0 - t) * t * t + end * t * t * t;\n};\n\n/* eslint-disable */\n\n// http://stackoverflow.com/a/27078401/815507\nfunction throttle(func, wait, options) {\n var context, args, result;\n var timeout = null;\n var previous = 0;\n if (!options) options = {};\n var later = function later() {\n previous = options.leading === false ? 0 : Date.now();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n };\n return function () {\n var now = Date.now();\n if (!previous && options.leading === false) previous = now;\n var remaining = wait - (now - previous);\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = now;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n return result;\n };\n}\n\nfunction SignaturePad(canvas, options) {\n var self = this;\n var opts = options || {};\n\n this.velocityFilterWeight = opts.velocityFilterWeight || 0.7;\n this.minWidth = opts.minWidth || 0.5;\n this.maxWidth = opts.maxWidth || 2.5;\n this.throttle = 'throttle' in opts ? opts.throttle : 16; // in miliseconds\n this.minDistance = 'minDistance' in opts ? opts.minDistance : 5;\n\n if (this.throttle) {\n this._strokeMoveUpdate = throttle(SignaturePad.prototype._strokeUpdate, this.throttle);\n } else {\n this._strokeMoveUpdate = SignaturePad.prototype._strokeUpdate;\n }\n\n this.dotSize = opts.dotSize || function () {\n return (this.minWidth + this.maxWidth) / 2;\n };\n this.penColor = opts.penColor || 'black';\n this.backgroundColor = opts.backgroundColor || 'rgba(0,0,0,0)';\n this.onBegin = opts.onBegin;\n this.onEnd = opts.onEnd;\n\n this._canvas = canvas;\n this._ctx = canvas.getContext('2d');\n this.clear();\n\n // We need add these inline so they are available to unbind while still having\n // access to 'self' we could use _.bind but it's not worth adding a dependency.\n this._handleMouseDown = function (event) {\n if (event.which === 1) {\n self._mouseButtonDown = true;\n self._strokeBegin(event);\n }\n };\n\n this._handleMouseMove = function (event) {\n if (self._mouseButtonDown) {\n self._strokeMoveUpdate(event);\n }\n };\n\n this._handleMouseUp = function (event) {\n if (event.which === 1 && self._mouseButtonDown) {\n self._mouseButtonDown = false;\n self._strokeEnd(event);\n }\n };\n\n this._handleTouchStart = function (event) {\n if (event.targetTouches.length === 1) {\n var touch = event.changedTouches[0];\n self._strokeBegin(touch);\n }\n };\n\n this._handleTouchMove = function (event) {\n // Prevent scrolling.\n event.preventDefault();\n\n var touch = event.targetTouches[0];\n self._strokeMoveUpdate(touch);\n };\n\n this._handleTouchEnd = function (event) {\n var wasCanvasTouched = event.target === self._canvas;\n if (wasCanvasTouched) {\n event.preventDefault();\n self._strokeEnd(event);\n }\n };\n\n // Enable mouse and touch event handlers\n this.on();\n}\n\n// Public methods\nSignaturePad.prototype.clear = function () {\n var ctx = this._ctx;\n var canvas = this._canvas;\n\n ctx.fillStyle = this.backgroundColor;\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n\n this._data = [];\n this._reset();\n this._isEmpty = true;\n};\n\nSignaturePad.prototype.fromDataURL = function (dataUrl) {\n var _this = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var image = new Image();\n var ratio = options.ratio || window.devicePixelRatio || 1;\n var width = options.width || this._canvas.width / ratio;\n var height = options.height || this._canvas.height / ratio;\n\n this._reset();\n image.src = dataUrl;\n image.onload = function () {\n _this._ctx.drawImage(image, 0, 0, width, height);\n };\n this._isEmpty = false;\n};\n\nSignaturePad.prototype.toDataURL = function (type) {\n var _canvas;\n\n switch (type) {\n case 'image/svg+xml':\n return this._toSVG();\n default:\n for (var _len = arguments.length, options = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n options[_key - 1] = arguments[_key];\n }\n\n return (_canvas = this._canvas).toDataURL.apply(_canvas, [type].concat(options));\n }\n};\n\nSignaturePad.prototype.on = function () {\n this._handleMouseEvents();\n this._handleTouchEvents();\n};\n\nSignaturePad.prototype.off = function () {\n this._canvas.removeEventListener('mousedown', this._handleMouseDown);\n this._canvas.removeEventListener('mousemove', this._handleMouseMove);\n document.removeEventListener('mouseup', this._handleMouseUp);\n\n this._canvas.removeEventListener('touchstart', this._handleTouchStart);\n this._canvas.removeEventListener('touchmove', this._handleTouchMove);\n this._canvas.removeEventListener('touchend', this._handleTouchEnd);\n};\n\nSignaturePad.prototype.isEmpty = function () {\n return this._isEmpty;\n};\n\n// Private methods\nSignaturePad.prototype._strokeBegin = function (event) {\n this._data.push([]);\n this._reset();\n this._strokeUpdate(event);\n\n if (typeof this.onBegin === 'function') {\n this.onBegin(event);\n }\n};\n\nSignaturePad.prototype._strokeUpdate = function (event) {\n var x = event.clientX;\n var y = event.clientY;\n\n var point = this._createPoint(x, y);\n var lastPointGroup = this._data[this._data.length - 1];\n var lastPoint = lastPointGroup && lastPointGroup[lastPointGroup.length - 1];\n var isLastPointTooClose = lastPoint && point.distanceTo(lastPoint) < this.minDistance;\n\n // Skip this point if it's too close to the previous one\n if (!(lastPoint && isLastPointTooClose)) {\n var _addPoint = this._addPoint(point),\n curve = _addPoint.curve,\n widths = _addPoint.widths;\n\n if (curve && widths) {\n this._drawCurve(curve, widths.start, widths.end);\n }\n\n this._data[this._data.length - 1].push({\n x: point.x,\n y: point.y,\n time: point.time,\n color: this.penColor\n });\n }\n};\n\nSignaturePad.prototype._strokeEnd = function (event) {\n var canDrawCurve = this.points.length > 2;\n var point = this.points[0]; // Point instance\n\n if (!canDrawCurve && point) {\n this._drawDot(point);\n }\n\n if (point) {\n var lastPointGroup = this._data[this._data.length - 1];\n var lastPoint = lastPointGroup[lastPointGroup.length - 1]; // plain object\n\n // When drawing a dot, there's only one point in a group, so without this check\n // such group would end up with exactly the same 2 points.\n if (!point.equals(lastPoint)) {\n lastPointGroup.push({\n x: point.x,\n y: point.y,\n time: point.time,\n color: this.penColor\n });\n }\n }\n\n if (typeof this.onEnd === 'function') {\n this.onEnd(event);\n }\n};\n\nSignaturePad.prototype._handleMouseEvents = function () {\n this._mouseButtonDown = false;\n\n this._canvas.addEventListener('mousedown', this._handleMouseDown);\n this._canvas.addEventListener('mousemove', this._handleMouseMove);\n document.addEventListener('mouseup', this._handleMouseUp);\n};\n\nSignaturePad.prototype._handleTouchEvents = function () {\n // Pass touch events to canvas element on mobile IE11 and Edge.\n this._canvas.style.msTouchAction = 'none';\n this._canvas.style.touchAction = 'none';\n\n this._canvas.addEventListener('touchstart', this._handleTouchStart);\n this._canvas.addEventListener('touchmove', this._handleTouchMove);\n this._canvas.addEventListener('touchend', this._handleTouchEnd);\n};\n\nSignaturePad.prototype._reset = function () {\n this.points = [];\n this._lastVelocity = 0;\n this._lastWidth = (this.minWidth + this.maxWidth) / 2;\n this._ctx.fillStyle = this.penColor;\n};\n\nSignaturePad.prototype._createPoint = function (x, y, time) {\n var rect = this._canvas.getBoundingClientRect();\n\n return new Point(x - rect.left, y - rect.top, time || new Date().getTime());\n};\n\nSignaturePad.prototype._addPoint = function (point) {\n var points = this.points;\n var tmp = void 0;\n\n points.push(point);\n\n if (points.length > 2) {\n // To reduce the initial lag make it work with 3 points\n // by copying the first point to the beginning.\n if (points.length === 3) points.unshift(points[0]);\n\n tmp = this._calculateCurveControlPoints(points[0], points[1], points[2]);\n var c2 = tmp.c2;\n tmp = this._calculateCurveControlPoints(points[1], points[2], points[3]);\n var c3 = tmp.c1;\n var curve = new Bezier(points[1], c2, c3, points[2]);\n var widths = this._calculateCurveWidths(curve);\n\n // Remove the first element from the list,\n // so that we always have no more than 4 points in points array.\n points.shift();\n\n return { curve: curve, widths: widths };\n }\n\n return {};\n};\n\nSignaturePad.prototype._calculateCurveControlPoints = function (s1, s2, s3) {\n var dx1 = s1.x - s2.x;\n var dy1 = s1.y - s2.y;\n var dx2 = s2.x - s3.x;\n var dy2 = s2.y - s3.y;\n\n var m1 = { x: (s1.x + s2.x) / 2.0, y: (s1.y + s2.y) / 2.0 };\n var m2 = { x: (s2.x + s3.x) / 2.0, y: (s2.y + s3.y) / 2.0 };\n\n var l1 = Math.sqrt(dx1 * dx1 + dy1 * dy1);\n var l2 = Math.sqrt(dx2 * dx2 + dy2 * dy2);\n\n var dxm = m1.x - m2.x;\n var dym = m1.y - m2.y;\n\n var k = l2 / (l1 + l2);\n var cm = { x: m2.x + dxm * k, y: m2.y + dym * k };\n\n var tx = s2.x - cm.x;\n var ty = s2.y - cm.y;\n\n return {\n c1: new Point(m1.x + tx, m1.y + ty),\n c2: new Point(m2.x + tx, m2.y + ty)\n };\n};\n\nSignaturePad.prototype._calculateCurveWidths = function (curve) {\n var startPoint = curve.startPoint;\n var endPoint = curve.endPoint;\n var widths = { start: null, end: null };\n\n var velocity = this.velocityFilterWeight * endPoint.velocityFrom(startPoint) + (1 - this.velocityFilterWeight) * this._lastVelocity;\n\n var newWidth = this._strokeWidth(velocity);\n\n widths.start = this._lastWidth;\n widths.end = newWidth;\n\n this._lastVelocity = velocity;\n this._lastWidth = newWidth;\n\n return widths;\n};\n\nSignaturePad.prototype._strokeWidth = function (velocity) {\n return Math.max(this.maxWidth / (velocity + 1), this.minWidth);\n};\n\nSignaturePad.prototype._drawPoint = function (x, y, size) {\n var ctx = this._ctx;\n\n ctx.moveTo(x, y);\n ctx.arc(x, y, size, 0, 2 * Math.PI, false);\n this._isEmpty = false;\n};\n\nSignaturePad.prototype._drawCurve = function (curve, startWidth, endWidth) {\n var ctx = this._ctx;\n var widthDelta = endWidth - startWidth;\n var drawSteps = Math.floor(curve.length());\n\n ctx.beginPath();\n\n for (var i = 0; i < drawSteps; i += 1) {\n // Calculate the Bezier (x, y) coordinate for this step.\n var t = i / drawSteps;\n var tt = t * t;\n var ttt = tt * t;\n var u = 1 - t;\n var uu = u * u;\n var uuu = uu * u;\n\n var x = uuu * curve.startPoint.x;\n x += 3 * uu * t * curve.control1.x;\n x += 3 * u * tt * curve.control2.x;\n x += ttt * curve.endPoint.x;\n\n var y = uuu * curve.startPoint.y;\n y += 3 * uu * t * curve.control1.y;\n y += 3 * u * tt * curve.control2.y;\n y += ttt * curve.endPoint.y;\n\n var width = startWidth + ttt * widthDelta;\n this._drawPoint(x, y, width);\n }\n\n ctx.closePath();\n ctx.fill();\n};\n\nSignaturePad.prototype._drawDot = function (point) {\n var ctx = this._ctx;\n var width = typeof this.dotSize === 'function' ? this.dotSize() : this.dotSize;\n\n ctx.beginPath();\n this._drawPoint(point.x, point.y, width);\n ctx.closePath();\n ctx.fill();\n};\n\nSignaturePad.prototype._fromData = function (pointGroups, drawCurve, drawDot) {\n for (var i = 0; i < pointGroups.length; i += 1) {\n var group = pointGroups[i];\n\n if (group.length > 1) {\n for (var j = 0; j < group.length; j += 1) {\n var rawPoint = group[j];\n var point = new Point(rawPoint.x, rawPoint.y, rawPoint.time);\n var color = rawPoint.color;\n\n if (j === 0) {\n // First point in a group. Nothing to draw yet.\n\n // All points in the group have the same color, so it's enough to set\n // penColor just at the beginning.\n this.penColor = color;\n this._reset();\n\n this._addPoint(point);\n } else if (j !== group.length - 1) {\n // Middle point in a group.\n var _addPoint2 = this._addPoint(point),\n curve = _addPoint2.curve,\n widths = _addPoint2.widths;\n\n if (curve && widths) {\n drawCurve(curve, widths, color);\n }\n } else {\n // Last point in a group. Do nothing.\n }\n }\n } else {\n this._reset();\n var _rawPoint = group[0];\n drawDot(_rawPoint);\n }\n }\n};\n\nSignaturePad.prototype._toSVG = function () {\n var _this2 = this;\n\n var pointGroups = this._data;\n var canvas = this._canvas;\n var ratio = Math.max(window.devicePixelRatio || 1, 1);\n var minX = 0;\n var minY = 0;\n var maxX = canvas.width / ratio;\n var maxY = canvas.height / ratio;\n var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n\n svg.setAttributeNS(null, 'width', canvas.width);\n svg.setAttributeNS(null, 'height', canvas.height);\n\n this._fromData(pointGroups, function (curve, widths, color) {\n var path = document.createElement('path');\n\n // Need to check curve for NaN values, these pop up when drawing\n // lines on the canvas that are not continuous. E.g. Sharp corners\n // or stopping mid-stroke and than continuing without lifting mouse.\n if (!isNaN(curve.control1.x) && !isNaN(curve.control1.y) && !isNaN(curve.control2.x) && !isNaN(curve.control2.y)) {\n var attr = 'M ' + curve.startPoint.x.toFixed(3) + ',' + curve.startPoint.y.toFixed(3) + ' ' + ('C ' + curve.control1.x.toFixed(3) + ',' + curve.control1.y.toFixed(3) + ' ') + (curve.control2.x.toFixed(3) + ',' + curve.control2.y.toFixed(3) + ' ') + (curve.endPoint.x.toFixed(3) + ',' + curve.endPoint.y.toFixed(3));\n\n path.setAttribute('d', attr);\n path.setAttribute('stroke-width', (widths.end * 2.25).toFixed(3));\n path.setAttribute('stroke', color);\n path.setAttribute('fill', 'none');\n path.setAttribute('stroke-linecap', 'round');\n\n svg.appendChild(path);\n }\n }, function (rawPoint) {\n var circle = document.createElement('circle');\n var dotSize = typeof _this2.dotSize === 'function' ? _this2.dotSize() : _this2.dotSize;\n circle.setAttribute('r', dotSize);\n circle.setAttribute('cx', rawPoint.x);\n circle.setAttribute('cy', rawPoint.y);\n circle.setAttribute('fill', rawPoint.color);\n\n svg.appendChild(circle);\n });\n\n var prefix = 'data:image/svg+xml;base64,';\n var header = '';\n var body = svg.innerHTML;\n\n // IE hack for missing innerHTML property on SVGElement\n if (body === undefined) {\n var dummy = document.createElement('dummy');\n var nodes = svg.childNodes;\n dummy.innerHTML = '';\n\n for (var i = 0; i < nodes.length; i += 1) {\n dummy.appendChild(nodes[i].cloneNode(true));\n }\n\n body = dummy.innerHTML;\n }\n\n var footer = '';\n var data = header + body + footer;\n\n return prefix + btoa(data);\n};\n\nSignaturePad.prototype.fromData = function (pointGroups) {\n var _this3 = this;\n\n this.clear();\n\n this._fromData(pointGroups, function (curve, widths) {\n return _this3._drawCurve(curve, widths.start, widths.end);\n }, function (rawPoint) {\n return _this3._drawDot(rawPoint);\n });\n\n this._data = pointGroups;\n};\n\nSignaturePad.prototype.toData = function () {\n return this._data;\n};\n\nreturn SignaturePad;\n\n})));\n","// TinyColor v1.4.2\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\n(function(Math) {\n\nvar trimLeft = /^\\s+/,\n trimRight = /\\s+$/,\n tinyCounter = 0,\n mathRound = Math.round,\n mathMin = Math.min,\n mathMax = Math.max,\n mathRandom = Math.random;\n\nfunction tinycolor (color, opts) {\n\n color = (color) ? color : '';\n opts = opts || { };\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n\n var rgb = inputToRGB(color);\n this._originalInput = color,\n this._r = rgb.r,\n this._g = rgb.g,\n this._b = rgb.b,\n this._a = rgb.a,\n this._roundA = mathRound(100*this._a) / 100,\n this._format = opts.format || rgb.format;\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) { this._r = mathRound(this._r); }\n if (this._g < 1) { this._g = mathRound(this._g); }\n if (this._b < 1) { this._b = mathRound(this._b); }\n\n this._ok = rgb.ok;\n this._tc_id = tinyCounter++;\n}\n\ntinycolor.prototype = {\n isDark: function() {\n return this.getBrightness() < 128;\n },\n isLight: function() {\n return !this.isDark();\n },\n isValid: function() {\n return this._ok;\n },\n getOriginalInput: function() {\n return this._originalInput;\n },\n getFormat: function() {\n return this._format;\n },\n getAlpha: function() {\n return this._a;\n },\n getBrightness: function() {\n //http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n getLuminance: function() {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r/255;\n GsRGB = rgb.g/255;\n BsRGB = rgb.b/255;\n\n if (RsRGB <= 0.03928) {R = RsRGB / 12.92;} else {R = Math.pow(((RsRGB + 0.055) / 1.055), 2.4);}\n if (GsRGB <= 0.03928) {G = GsRGB / 12.92;} else {G = Math.pow(((GsRGB + 0.055) / 1.055), 2.4);}\n if (BsRGB <= 0.03928) {B = BsRGB / 12.92;} else {B = Math.pow(((BsRGB + 0.055) / 1.055), 2.4);}\n return (0.2126 * R) + (0.7152 * G) + (0.0722 * B);\n },\n setAlpha: function(value) {\n this._a = boundAlpha(value);\n this._roundA = mathRound(100*this._a) / 100;\n return this;\n },\n toHsv: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };\n },\n toHsvString: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);\n return (this._a == 1) ?\n \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" :\n \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \"+ this._roundA + \")\";\n },\n toHsl: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };\n },\n toHslString: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100);\n return (this._a == 1) ?\n \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" :\n \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \"+ this._roundA + \")\";\n },\n toHex: function(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function(allow3Char) {\n return '#' + this.toHex(allow3Char);\n },\n toHex8: function(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function(allow4Char) {\n return '#' + this.toHex8(allow4Char);\n },\n toRgb: function() {\n return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a };\n },\n toRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \")\" :\n \"rgba(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function() {\n return { r: mathRound(bound01(this._r, 255) * 100) + \"%\", g: mathRound(bound01(this._g, 255) * 100) + \"%\", b: mathRound(bound01(this._b, 255) * 100) + \"%\", a: this._a };\n },\n toPercentageRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%)\" :\n \"rgba(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function() {\n if (this._a === 0) {\n return \"transparent\";\n }\n\n if (this._a < 1) {\n return false;\n }\n\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function(secondColor) {\n var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n\n return \"progid:DXImageTransform.Microsoft.gradient(\"+gradientType+\"startColorstr=\"+hex8String+\",endColorstr=\"+secondHex8String+\")\";\n },\n toString: function(format) {\n var formatSet = !!format;\n format = format || this._format;\n\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n\n return formattedString || this.toHexString();\n },\n clone: function() {\n return tinycolor(this.toString());\n },\n\n _applyModification: function(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function() {\n return this._applyModification(lighten, arguments);\n },\n brighten: function() {\n return this._applyModification(brighten, arguments);\n },\n darken: function() {\n return this._applyModification(darken, arguments);\n },\n desaturate: function() {\n return this._applyModification(desaturate, arguments);\n },\n saturate: function() {\n return this._applyModification(saturate, arguments);\n },\n greyscale: function() {\n return this._applyModification(greyscale, arguments);\n },\n spin: function() {\n return this._applyModification(spin, arguments);\n },\n\n _applyCombination: function(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function() {\n return this._applyCombination(analogous, arguments);\n },\n complement: function() {\n return this._applyCombination(complement, arguments);\n },\n monochromatic: function() {\n return this._applyCombination(monochromatic, arguments);\n },\n splitcomplement: function() {\n return this._applyCombination(splitcomplement, arguments);\n },\n triad: function() {\n return this._applyCombination(triad, arguments);\n },\n tetrad: function() {\n return this._applyCombination(tetrad, arguments);\n }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function(color, opts) {\n if (typeof color == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n }\n else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n\n return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n// \"red\"\n// \"#f00\" or \"f00\"\n// \"#ff0000\" or \"ff0000\"\n// \"#ff000000\" or \"ff000000\"\n// \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n// \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n// \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n// \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n// \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n// \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n// \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n\n if (typeof color == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n\n a = boundAlpha(a);\n\n return {\n ok: ok,\n format: color.format || format,\n r: mathMin(255, mathMax(rgb.r, 0)),\n g: mathMin(255, mathMax(rgb.g, 0)),\n b: mathMin(255, mathMax(rgb.b, 0)),\n a: a\n };\n}\n\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// \n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b){\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, l = (max + min) / 2;\n\n if(max == min) {\n h = s = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n\n h /= 6;\n }\n\n return { h: h, s: s, l: l };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n var r, g, b;\n\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n\n function hue2rgb(p, q, t) {\n if(t < 0) t += 1;\n if(t > 1) t -= 1;\n if(t < 1/6) return p + (q - p) * 6 * t;\n if(t < 1/2) return q;\n if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;\n return p;\n }\n\n if(s === 0) {\n r = g = b = l; // achromatic\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1/3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1/3);\n }\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, v = max;\n\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if(max == min) {\n h = 0; // achromatic\n }\n else {\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\n function hsvToRgb(h, s, v) {\n\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16)),\n pad2(convertDecimalToHex(a))\n ];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) { return false; }\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\n\ntinycolor.random = function() {\n return tinycolor.fromRatio({\n r: mathRandom(),\n g: mathRandom(),\n b: mathRandom()\n });\n};\n\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// \n\nfunction desaturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction saturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction greyscale(color) {\n return tinycolor(color).desaturate(100);\n}\n\nfunction lighten (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\nfunction brighten(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var rgb = tinycolor(color).toRgb();\n rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));\n rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));\n rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));\n return tinycolor(rgb);\n}\n\nfunction darken (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// \n\nfunction complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n}\n\nfunction triad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction tetrad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),\n tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})\n ];\n}\n\nfunction analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n\n for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n}\n\nfunction monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h, s = hsv.s, v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n\n while (results--) {\n ret.push(tinycolor({ h: h, s: s, v: v}));\n v = (v + modification) % 1;\n }\n\n return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function(color1, color2, amount) {\n amount = (amount === 0) ? 0 : (amount || 50);\n\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n\n var p = amount / 100;\n\n var rgba = {\n r: ((rgb2.r - rgb1.r) * p) + rgb1.r,\n g: ((rgb2.g - rgb1.g) * p) + rgb1.g,\n b: ((rgb2.b - rgb1.b) * p) + rgb1.b,\n a: ((rgb2.a - rgb1.a) * p) + rgb1.a\n };\n\n return tinycolor(rgba);\n};\n\n\n// Readability Functions\n// ---------------------\n// false\n// tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function(color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n\n out = false;\n\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function(baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size ;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors ;\n level = args.level;\n size = args.size;\n\n for (var i= 0; i < colorList.length ; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n\n if (tinycolor.isReadable(baseColor, bestColor, {\"level\":level,\"size\":size}) || !includeFallbackColors) {\n return bestColor;\n }\n else {\n args.includeFallbackColors=false;\n return tinycolor.mostReadable(baseColor,[\"#fff\", \"#000\"],args);\n }\n};\n\n\n// Big List of Colors\n// ------------------\n// \nvar names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n var flipped = { };\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n a = parseFloat(a);\n\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n\n return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n if (isOnePointZero(n)) { n = \"100%\"; }\n\n var processPercent = isPercentage(n);\n n = mathMin(max, mathMax(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if ((Math.abs(n - max) < 0.000001)) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return (n % max) / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n return mathMin(1, mathMax(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// \nfunction isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf('.') != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n return typeof n === \"string\" && n.indexOf('%') != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n return c.length == 1 ? '0' + c : '' + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n if (n <= 1) {\n n = (n * 100) + \"%\";\n }\n\n return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n return (parseIntFromHex(h) / 255);\n}\n\nvar matchers = (function() {\n\n // \n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // \n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n})();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n\n color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color == 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: \"name\" };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if ((match = matchers.rgb.exec(color))) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n if ((match = matchers.rgba.exec(color))) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n if ((match = matchers.hsl.exec(color))) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n if ((match = matchers.hsla.exec(color))) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n if ((match = matchers.hsv.exec(color))) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n if ((match = matchers.hsva.exec(color))) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n if ((match = matchers.hex8.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex6.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if ((match = matchers.hex4.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n a: convertHexToDecimal(match[4] + '' + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex3.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n\n return false;\n}\n\nfunction validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\"level\":\"AA\", \"size\":\"small\"};\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\"level\":level, \"size\":size};\n}\n\n// Node: Export function\nif (typeof module !== \"undefined\" && module.exports) {\n module.exports = tinycolor;\n}\n// AMD/requirejs: Define the module\nelse if (typeof define === 'function' && define.amd) {\n define(function () {return tinycolor;});\n}\n// Browser: Expose to window\nelse {\n window.tinycolor = tinycolor;\n}\n\n})(Math);\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.trimCanvas=t():e.trimCanvas=t()}(this,function(){return function(e){function t(n){if(r[n])return r[n].exports;var o=r[n]={exports:{},id:n,loaded:!1};return e[n].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var r={};return t.m=e,t.c=r,t.p=\"\",t(0)}([function(e,t){\"use strict\";function r(e){var t=e.getContext(\"2d\"),r=e.width,n=e.height,o=t.getImageData(0,0,r,n).data,f=a(!0,r,n,o),i=a(!1,r,n,o),c=u(!0,r,n,o),d=u(!1,r,n,o),p=d-c+1,l=i-f+1,s=t.getImageData(c,f,p,l);return e.width=p,e.height=l,t.clearRect(0,0,p,l),t.putImageData(s,0,0),e}function n(e,t,r,n){return{red:n[4*(r*t+e)],green:n[4*(r*t+e)+1],blue:n[4*(r*t+e)+2],alpha:n[4*(r*t+e)+3]}}function o(e,t,r,o){return n(e,t,r,o).alpha}function a(e,t,r,n){for(var a=e?1:-1,u=e?0:r-1,f=u;e?f-1;f+=a)for(var i=0;i-1;f+=a)for(var i=0;i
    #_delete_##_edit_#Date: #_date_#
    #_note_#
    ',\n validation: 'none',\n columns: [\n {\n title: 'Description',\n dataIndex: 'description',\n key: 'description',\n },\n {\n title: 'Rate',\n dataIndex: 'rate',\n key: 'rate',\n },\n {\n title: 'Quantity',\n dataIndex: 'qty',\n key: 'qty',\n },\n {\n title: 'Line Total',\n dataIndex: 'lineTotal',\n key: 'lineTotal',\n },\n ],\n 'sort-function': function (a, b) {\n const t1 = Date.parse(a.date).getTime();\n const t2 = Date.parse(b.date).getTime();\n \n return (t1 < t2);\n },\n 'custom-validate-function': function (data) {\n const res = {};\n res.valid = true;\n data.date = new Date().toString('d-MMM-yyyy hh:mm tt');\n res.params = data;\n return res;\n },\n \n }],\n ];\n }\n\n getTableColumns() {\n return [\n {\n title: 'Invoice Id',\n dataIndex: 'invoiceId',\n sorter: true,\n },\n {\n title: 'Description',\n dataIndex: 'description',\n sorter: true,\n },\n ];\n }\n\n getTableActionButtonJsx(adapter) {\n return (text, record) => (\n \n {adapter.hasAccess('save') && adapter.showEdit\n && (\n modJs.edit(record.id)} style={{ cursor: 'pointer' }}>\n \n {` ${adapter.gt('Edit')}`}\n \n )}\n {adapter.hasAccess('element')\n && (\n modJs.viewElement(record.id)} style={{ cursor: 'pointer' }}>\n \n {` ${adapter.gt('View')}`}\n \n )}\n {adapter.hasAccess('delete') && adapter.showDelete\n && (\n modJs.deleteRow(record.id)} style={{ cursor: 'pointer' }}>\n \n {` ${adapter.gt('Delete')}`}\n \n )}\n {adapter.hasAccess('save')\n && (\n modJs.copyRow(record.id)} style={{ cursor: 'pointer' }}>\n \n {` ${adapter.gt('Copy')}`}\n \n )}\n modJs.printInvoice(record.id)} style={{ cursor: 'pointer' }}>\n \n {` ${adapter.gt('Print')}`}\n \n \n );\n }\n\n printInvoice(id) {\n const params = {};\n params.id = id;\n const reqJson = JSON.stringify(params);\n const callBackData = [];\n callBackData.callBackData = [];\n callBackData.callBackSuccess = 'printInvoiceSuccessCallback';\n callBackData.callBackFail = 'printInvoiceFailCallback';\n\n this.customAction('printInvoice', 'extension=invoices', reqJson, callBackData);\n }\n\n\n printInvoiceSuccessCallback(callBackData) {\n this.showMessage('Success', 'Printing Done');\n this.get([]);\n }\n\n\n printInvoiceFailCallback(callBackData) {\n this.showMessage('Error', callBackData);\n }\n}\n\nmodule.exports ={InvoiceAdapter};","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/*\n Copyright (c) 2018 [Glacies UG, Berlin, Germany] (http://glacies.de)\n Developer: Thilina Hasantha (http://lk.linkedin.com/in/thilinah | https://github.com/thilinah)\n */\n\n/**\n * RequestCache\n */\n\nclass MemoryStorage {\n constructor() {\n this.data = {};\n }\n\n getItem(key) {\n return this.data[key];\n }\n\n setItem(key, data) {\n this.data[key] = data;\n }\n\n removeAllByPrefix(prefix) {\n const keys = Object.keys(this.data);\n for (let i = 0; i < keys.length; i++) {\n if (keys[i].indexOf(prefix) > 0) {\n delete this.data[keys[i]];\n }\n }\n }\n}\n\n\nclass RequestCache {\n constructor(storage) {\n if (!storage) {\n this.storage = new MemoryStorage();\n } else {\n this.storage = storage;\n }\n }\n\n getKey(url, params) {\n let key = `${url}|`;\n for (const index in params) {\n key += `${index}=${params[index]}|`;\n }\n return key;\n }\n\n /*\n invalidateTable(table) {\n let key;\n for (let i = 0; i < this.storage.length; i++) {\n key = this.storage.key(i);\n if (key.indexOf(`t=${table}`) > 0) {\n this.storage.removeItem(key);\n }\n }\n }\n */\n\n invalidateTable(table) {\n this.storage.removeAllByPrefix(`t=${table}`);\n }\n\n\n getData(key) {\n const data = this.storage.getItem(key);\n if (!data) {\n return null;\n }\n\n return data;\n }\n\n setData(key, data) {\n\n if (data.status !== undefined && data.status != null && data.status !== 'SUCCESS') {\n return null;\n }\n this.storage.setItem(key, data);\n return data;\n }\n}\n\nexport default RequestCache;\n","/* global baseUrl, clientUrl */\n/*\n Copyright (c) 2018 [Glacies UG, Berlin, Germany] (http://glacies.de)\n Developer: Thilina Hasantha (http://lk.linkedin.com/in/thilinah | https://github.com/thilinah)\n */\n\nimport IceApiClient from './IceApiClient';\nimport ModuleBase from './ModuleBase';\nimport RequestCache from '../api-common/RequestCache';\nimport MasterDataReader from './MasterDataReader';\n\nclass AdapterBase extends ModuleBase {\n constructor(endPoint, tab, filter, orderBy) {\n super();\n this.moduleRelativeURL = null;\n this.tableData = [];\n this.sourceData = [];\n this.filter = null;\n this.origFilter = null;\n this.orderBy = null;\n this.currentElement = null;\n this.initAdapter(endPoint, tab, filter, orderBy);\n }\n\n initAdapter(endPoint, tab, filter, orderBy) {\n this.moduleRelativeURL = baseUrl;\n this.table = endPoint;\n if (tab === undefined || tab === null) {\n this.tab = endPoint;\n } else {\n this.tab = tab;\n }\n\n if (filter === undefined || filter === null) {\n this.filter = null;\n } else {\n this.filter = filter;\n }\n\n this.origFilter = this.filter;\n\n if (orderBy === undefined || orderBy === null) {\n this.orderBy = null;\n } else {\n this.orderBy = orderBy;\n }\n\n this.trackEvent('initAdapter', tab);\n\n this.requestCache = new RequestCache();\n }\n\n initMasterDataReader() {\n this.masterDataReader = new MasterDataReader(this);\n }\n\n setupApiClient(token) {\n this.apiClient = new IceApiClient(this.apiUrl, token, window.CLIENT_BASE_URL, true);\n }\n\n setApiUrl(apiUrl) {\n this.apiUrl = apiUrl;\n }\n\n setFilter(filter) {\n this.filter = filter;\n }\n\n preSetFilterExternal(filter) {\n this.initialFilter = filter;\n }\n\n setFilterExternal(_filter) {\n let filter = _filter;\n if (filter === undefined || filter === null) {\n filter = this.initialFilter;\n }\n\n if (filter === undefined || filter === null) {\n return;\n }\n\n this.setFilter(filter);\n this.filtersAlreadySet = true;\n $(`#${this.getTableName()}_resetFilters`).show();\n this.currentFilterString = this.getFilterString(filter);\n }\n\n getFilter() {\n return this.filter;\n }\n\n setOrderBy(orderBy) {\n this.orderBy = orderBy;\n }\n\n getOrderBy() {\n return this.orderBy;\n }\n\n getFile(name) {\n this.trackEvent('file', name);\n return new Promise((resolve, reject) => {\n $.getJSON(this.moduleRelativeURL, { a: 'file', name }, (data) => {\n if (data.status === 'SUCCESS') {\n resolve(data.data);\n } else {\n reject();\n }\n }).fail(() => reject());\n });\n }\n\n /**\n * @method add\n * @param object {Array} object data to be added to database\n * @param getFunctionCallBackData {Array} once a success is returned call get() function for this module with these parameters\n * @param _callGetFunction {Boolean} if false the get function of the module will not be called (default: true)\n * @param successCallback {Function} this will get called after success response\n */\n\n add(object, getFunctionCallBackData, callGetFunction, successCallback) {\n const that = this;\n if (callGetFunction === undefined || callGetFunction === null) {\n // eslint-disable-next-line no-param-reassign\n callGetFunction = true;\n }\n $(object).attr('a', 'add');\n $(object).attr('t', this.table);\n that.showLoader();\n this.requestCache.invalidateTable(this.table);\n $.post(this.moduleRelativeURL, object, (data) => {\n if (data.status === 'SUCCESS') {\n that.addSuccessCallBack(getFunctionCallBackData, data.object, callGetFunction, successCallback, that);\n } else {\n that.addFailCallBack(getFunctionCallBackData, data.object);\n }\n }, 'json')\n .fail((e) => {\n if (e.status === 403) {\n that.showMessage('Access Forbidden', e.responseJSON.message);\n }\n })\n .always(() => { that.hideLoader(); });\n this.trackEvent('add', this.tab, this.table);\n }\n\n addSuccessCallBack(callBackData, serverData, callGetFunction, successCallback, thisObject) {\n if (callGetFunction) {\n this.get(callBackData);\n }\n this.initFieldMasterData();\n if (successCallback !== undefined && successCallback !== null) {\n successCallback.apply(thisObject, [serverData]);\n }\n this.trackEvent('addSuccess', this.tab, this.table);\n }\n\n addFailCallBack(callBackData, serverData) {\n try {\n this.closePlainMessage();\n } catch (e) {\n // No need to report\n }\n this.showMessage('Error saving', serverData);\n this.trackEvent('addFailed', this.tab, this.table);\n }\n\n deleteObj(id, callBackData) {\n const that = this;\n that.showLoader();\n this.requestCache.invalidateTable(this.table);\n $.post(this.moduleRelativeURL, { t: this.table, a: 'delete', id }, (data) => {\n if (data.status === 'SUCCESS') {\n that.deleteSuccessCallBack(callBackData, data.object);\n } else {\n that.deleteFailCallBack(callBackData, data.object);\n }\n }, 'json')\n .fail((e) => {\n if (e.status === 403) {\n that.showMessage('Access Forbidden', e.responseJSON.message);\n }\n })\n .always(() => { that.hideLoader(); });\n this.trackEvent('delete', this.tab, this.table);\n }\n\n // eslint-disable-next-line no-unused-vars\n deleteSuccessCallBack(callBackData, serverData) {\n this.get(callBackData);\n this.clearDeleteParams();\n }\n\n deleteFailCallBack(callBackData, serverData) {\n this.clearDeleteParams();\n this.showMessage('Error Occurred while Deleting Item', serverData);\n }\n\n get(callBackData) {\n const that = this;\n\n if (this.getRemoteTable()) {\n this.createTableServer(this.getTableName());\n $(`#${this.getTableName()}Form`).hide();\n $(`#${this.getTableName()}`).show();\n return;\n }\n\n let sourceMappingJson = JSON.stringify(this.getSourceMapping());\n\n let filterJson = '';\n if (this.getFilter() !== null) {\n filterJson = JSON.stringify(this.getFilter());\n }\n\n let orderBy = '';\n if (this.getOrderBy() !== null) {\n orderBy = this.getOrderBy();\n }\n\n sourceMappingJson = this.fixJSON(sourceMappingJson);\n filterJson = this.fixJSON(filterJson);\n\n that.showLoader();\n $.post(this.moduleRelativeURL, {\n t: this.table, a: 'get', sm: sourceMappingJson, ft: filterJson, ob: orderBy,\n }, (data) => {\n if (data.status === 'SUCCESS') {\n that.getSuccessCallBack(callBackData, data.object);\n } else {\n that.getFailCallBack(callBackData, data.object);\n }\n }, 'json')\n .fail((e) => {\n if (e.status === 403) {\n that.showMessage('Access Forbidden', e.responseJSON.message);\n }\n })\n .always(() => { that.hideLoader(); });\n\n that.initFieldMasterData();\n\n this.trackEvent('get', this.tab, this.table);\n // var url = this.getDataUrl();\n // console.log(url);\n }\n\n\n getDataUrl(_columns) {\n const sourceMappingJson = JSON.stringify(this.getSourceMapping());\n\n const columns = JSON.stringify(_columns);\n\n let filterJson = '';\n if (this.getFilter() !== null) {\n filterJson = JSON.stringify(this.getFilter());\n }\n\n let orderBy = '';\n if (this.getOrderBy() !== null) {\n orderBy = this.getOrderBy();\n }\n\n let url = this.moduleRelativeURL.replace('service.php', 'data.php');\n url = `${url}?t=${this.table}`;\n url = `${url}&sm=${this.fixJSON(sourceMappingJson)}`;\n url = `${url}&cl=${this.fixJSON(columns)}`;\n url = `${url}&ft=${this.fixJSON(filterJson)}`;\n url = `${url}&ob=${orderBy}`;\n\n if (this.isSubProfileTable()) {\n url = `${url}&type=sub`;\n }\n\n if (this.remoteTableSkipProfileRestriction()) {\n url = `${url}&skip=1`;\n }\n\n return url;\n }\n\n isSubProfileTable() {\n return false;\n }\n\n remoteTableSkipProfileRestriction() {\n return false;\n }\n\n preProcessTableData(row) {\n return row;\n }\n\n getSuccessCallBack(callBackData, serverData) {\n const data = [];\n const mapping = this.getDataMapping();\n for (let i = 0; i < serverData.length; i++) {\n const row = [];\n for (let j = 0; j < mapping.length; j++) {\n row[j] = serverData[i][mapping[j]];\n }\n data.push(this.preProcessTableData(row));\n }\n this.sourceData = serverData;\n if (callBackData.callBack !== undefined && callBackData.callBack !== null) {\n if (callBackData.callBackData === undefined || callBackData.callBackData === null) {\n callBackData.callBackData = [];\n }\n callBackData.callBackData.push(serverData);\n callBackData.callBackData.push(data);\n this.callFunction(callBackData.callBack, callBackData.callBackData);\n }\n\n this.tableData = data;\n\n if (!(callBackData.noRender !== undefined && callBackData.noRender !== null && callBackData.noRender === true)) {\n this.createTable(this.getTableName());\n $(`#${this.getTableName()}Form`).hide();\n $(`#${this.getTableName()}`).show();\n }\n }\n\n // eslint-disable-next-line no-unused-vars\n getFailCallBack(callBackData, serverData) {\n\n }\n\n\n getElement(id, callBackData, clone) {\n const that = this;\n let sourceMappingJson = JSON.stringify(this.getSourceMapping());\n sourceMappingJson = this.fixJSON(sourceMappingJson);\n that.showLoader();\n $.post(this.moduleRelativeURL, {\n t: this.table, a: 'getElement', id, sm: sourceMappingJson,\n }, function (data) {\n if (data.status === 'SUCCESS') {\n if (clone) {\n delete data.object.id;\n }\n this.currentElement = data.object;\n that.getElementSuccessCallBack.apply(that, [callBackData, data.object]);\n } else {\n that.getElementFailCallBack.apply(that, [callBackData, data.object]);\n }\n }, 'json')\n .fail((e) => {\n if (e.status === 403) {\n that.showMessage('Access Forbidden', e.responseJSON.message);\n }\n })\n .always(() => { that.hideLoader(); });\n this.trackEvent('getElement', this.tab, this.table);\n }\n\n getElementSuccessCallBack(callBackData, serverData) {\n if (callBackData.callBack !== undefined && callBackData.callBack !== null) {\n if (callBackData.callBackData === undefined || callBackData.callBackData === null) {\n callBackData.callBackData = [];\n }\n callBackData.callBackData.push(serverData);\n this.callFunction(callBackData.callBack, callBackData.callBackData, this);\n }\n this.currentElement = serverData;\n if (!(callBackData.noRender !== undefined && callBackData.noRender !== null && callBackData.noRender === true)) {\n this.renderForm(serverData);\n }\n }\n\n // eslint-disable-next-line no-unused-vars\n getElementFailCallBack(callBackData, serverData) {\n\n }\n\n\n getTableData() {\n return this.tableData;\n }\n\n getTableName() {\n return this.tab;\n }\n\n getFieldValues(fieldMaster, callBackData) {\n const that = this;\n let method = '';\n let methodParams = '';\n if (fieldMaster[3] !== undefined && fieldMaster[3] !== null) {\n // eslint-disable-next-line prefer-destructuring\n method = fieldMaster[3];\n }\n\n if (fieldMaster[4] !== undefined && fieldMaster[4] !== null) {\n methodParams = JSON.stringify(fieldMaster[4]);\n }\n\n const key = this.requestCache.getKey(this.moduleRelativeURL, {\n t: fieldMaster[0], key: fieldMaster[1], value: fieldMaster[2], method, methodParams, a: 'getFieldValues',\n });\n const cacheData = this.requestCache.getData(key);\n\n if (cacheData !== null && cacheData !== undefined) {\n if (cacheData.status === 'SUCCESS') {\n callBackData.callBackData.push(cacheData.data);\n if (callBackData.callBackSuccess !== null && callBackData.callBackSuccess !== undefined) {\n callBackData.callBackData.push(callBackData.callBackSuccess);\n }\n that.callFunction(callBackData.callBack, callBackData.callBackData);\n }\n } else {\n const callbackWraper = function (data) {\n if (data.status === 'SUCCESS') {\n that.requestCache.setData(this.success.key, data);\n const localCallBackData = callBackData;\n localCallBackData.callBackData = [callBackData.callBackData[0]];\n localCallBackData.callBackData.push(data.data);\n if (localCallBackData.callBackSuccess !== null && localCallBackData.callBackSuccess !== undefined) {\n localCallBackData.callBackData.push(callBackData.callBackSuccess);\n }\n that.callFunction(localCallBackData.callBack, localCallBackData.callBackData);\n } else if (data.message === 'Access violation') {\n alert(`Error : ${callbackWraper.table} ${data.message}`);\n }\n };\n\n callbackWraper.key = key;\n // eslint-disable-next-line prefer-destructuring\n callbackWraper.table = fieldMaster[0];\n\n $.post(this.moduleRelativeURL, {\n t: fieldMaster[0], key: fieldMaster[1], value: fieldMaster[2], method, methodParams, a: 'getFieldValues',\n }, callbackWraper, 'json');\n }\n }\n\n setAdminProfile(empId) {\n try {\n localStorage.clear();\n } catch (e) {\n // No need to report\n }\n $.post(this.moduleRelativeURL, { a: 'setAdminEmp', empid: empId }, () => {\n // eslint-disable-next-line no-restricted-globals\n top.location.href = clientUrl;\n }, 'json');\n }\n\n customAction(subAction, module, request, callBackData, isPost) {\n const that = this;\n request = this.fixJSON(request);\n if (!isPost) {\n $.getJSON(this.moduleRelativeURL, {\n t: this.table, a: 'ca', sa: subAction, mod: module, req: request,\n }, (data) => {\n if (data.status === 'SUCCESS') {\n callBackData.callBackData.push(data.data);\n that.callFunction(callBackData.callBackSuccess, callBackData.callBackData);\n } else {\n callBackData.callBackData.push(data.data);\n that.callFunction(callBackData.callBackFail, callBackData.callBackData);\n }\n });\n } else {\n $.post(this.moduleRelativeURL, {\n t: this.table, a: 'ca', sa: subAction, mod: module, req: request,\n }, (data) => {\n if (data.status === 'SUCCESS') {\n callBackData.callBackData.push(data.data);\n that.callFunction(callBackData.callBackSuccess, callBackData.callBackData);\n } else {\n callBackData.callBackData.push(data.data);\n that.callFunction(callBackData.callBackFail, callBackData.callBackData);\n }\n }, 'json');\n }\n }\n\n\n sendCustomRequest(action, params, successCallback, failCallback) {\n params.a = action;\n $.post(this.moduleRelativeURL, params, (data) => {\n if (data.status === 'SUCCESS') {\n successCallback(data.data);\n } else {\n failCallback(data.data);\n }\n }, 'json');\n }\n\n\n getCustomActionUrl(action, params) {\n params.a = action;\n let str = '';\n for (const key in params) {\n if (params.hasOwnProperty(key)) {\n if (str !== '') {\n str += '&';\n }\n str += `${key}=${params[key]}`;\n }\n }\n return `${this.moduleRelativeURL}?${str}`;\n }\n\n\n getClientDataUrl() {\n return `${this.moduleRelativeURL.replace('service.php', '')}data/`;\n }\n\n getCustomUrl(str) {\n return this.moduleRelativeURL.replace('service.php', str);\n }\n}\n\nexport default AdapterBase;\n","/*\n Copyright (c) 2018 [Glacies UG, Berlin, Germany] (http://glacies.de)\n Developer: Thilina Hasantha (http://lk.linkedin.com/in/thilinah | https://github.com/thilinah)\n */\n/* global tinyMCE */\nconst ValidationRules = {\n\n float(str) {\n const floatstr = /^[-+]?[0-9]+(\\.[0-9]+)?$/;\n if (str != null && str.match(floatstr)) {\n return true;\n }\n return false;\n },\n\n number(str) {\n const numstr = /^[0-9]+$/;\n if (str != null && str.match(numstr)) {\n return true;\n }\n return false;\n },\n\n numberOrEmpty(str) {\n if (str === '') {\n return true;\n }\n const numstr = /^[0-9]+$/;\n if (str != null && str.match(numstr)) {\n return true;\n }\n return false;\n },\n\n email(str) {\n const emailPattern = /^\\s*[\\w\\-+_]+(\\.[\\w\\-+_]+)*@[\\w\\-+_]+\\.[\\w\\-+_]+(\\.[\\w\\-+_]+)*\\s*$/;\n return str != null && emailPattern.test(str);\n },\n\n emailOrEmpty(str) {\n if (str === '') {\n return true;\n }\n const emailPattern = /^\\s*[\\w\\-+_]+(\\.[\\w\\-+_]+)*@[\\w\\-+_]+\\.[\\w\\-+_]+(\\.[\\w\\-+_]+)*\\s*$/;\n return str != null && emailPattern.test(str);\n },\n\n username(str) {\n const username = /^[a-zA-Z0-9.-]+$/;\n return str != null && username.test(str);\n },\n\n input(str) {\n if (str != null && str.length > 0) {\n return true;\n }\n return false;\n },\n};\n\nclass FormValidation {\n constructor(formId, validateAll, options) {\n this.tempOptions = {};\n this.formId = formId;\n this.formError = false;\n this.formObject = null;\n this.errorMessages = '';\n this.popupDialog = null;\n this.validateAll = validateAll;\n this.errorMap = [];\n\n this.settings = { thirdPartyPopup: null, LabelErrorClass: false, ShowPopup: true };\n\n this.settings = jQuery.extend(this.settings, options);\n\n this.inputTypes = ['text', 'radio', 'checkbox', 'file', 'password', 'select-one', 'select-multi', 'textarea', 'fileupload', 'signature'];\n\n this.validator = ValidationRules;\n }\n\n // eslint-disable-next-line no-unused-vars\n clearError(formInput, overrideMessage) {\n const id = formInput.attr('id');\n $(`#${this.formId} #field_${id}`).removeClass('error');\n $(`#${this.formId} #help_${id}`).html('');\n }\n\n // eslint-disable-next-line no-unused-vars\n addError(formInput, overrideMessage) {\n this.formError = true;\n if (formInput.attr('message') != null) {\n this.errorMessages += (`${formInput.attr('message')}\\n`);\n this.errorMap[formInput.attr('name')] = formInput.attr('message');\n } else {\n this.errorMap[formInput.attr('name')] = '';\n }\n\n const id = formInput.attr('id');\n const validation = formInput.attr('validation');\n const message = formInput.attr('validation');\n $(`#${this.formId} #field_${id}`).addClass('error');\n if (message === undefined || message == null || message === '') {\n $(`#${this.formId} #help_err_${id}`).html(message);\n } else if (validation === undefined || validation == null || validation === '') {\n $(`#${this.formId} #help_err_${id}`).html('Required');\n } else if (validation === 'float' || validation === 'number') {\n $(`#${this.formId} #help_err_${id}`).html('Number required');\n } else if (validation === 'email') {\n $(`#${this.formId} #help_err_${id}`).html('Email required');\n } else {\n $(`#${this.formId} #help_err_${id}`).html('Required');\n }\n }\n\n\n showErrors() {\n if (this.formError) {\n if (this.settings.thirdPartyPopup !== undefined && this.settings.thirdPartyPopup != null) {\n this.settings.thirdPartyPopup.alert();\n } else if (this.settings.ShowPopup === true) {\n if (this.tempOptions.popupTop !== undefined && this.tempOptions.popupTop != null) {\n this.alert('Errors Found', this.errorMessages, this.tempOptions.popupTop);\n } else {\n this.alert('Errors Found', this.errorMessages, -1);\n }\n }\n }\n }\n\n\n checkValues(options) {\n this.tempOptions = options;\n const that = this;\n this.formError = false;\n this.errorMessages = '';\n this.formObject = {};\n // eslint-disable-next-line consistent-return\n const validate = function (inputObject) {\n let inputValue = null;\n const name = inputObject.attr('name');\n if (that.settings.LabelErrorClass !== false) {\n $(`label[for='${name}']`).removeClass(that.settings.LabelErrorClass);\n }\n const id = inputObject.attr('id');\n const type = inputObject.attr('type');\n\n if (inputObject.hasClass('select2-focusser') || inputObject.hasClass('select2-input')) {\n return true;\n }\n\n if (jQuery.inArray(type, that.inputTypes) >= 0) {\n if (inputObject.hasClass('uploadInput')) {\n inputValue = inputObject.attr('val');\n } else if (type === 'radio' || type === 'checkbox') {\n inputValue = $(`input[name='${name}']:checked`).val();\n } else if (inputObject.hasClass('select2Field')) {\n if ($(`#${that.formId} #${id}`).select2('data') != null && $(`#${that.formId} #${id}`).select2('data') !== undefined) {\n inputValue = $(`#${that.formId} #${id}`).select2('data').id;\n } else {\n inputValue = '';\n }\n } else if (inputObject.hasClass('select2Multi')) {\n if ($(`#${that.formId} #${id}`).select2('data') != null && $(`#${that.formId} #${id}`).select2('data') !== undefined) {\n const inputValueObjects = $(`#${that.formId} #${id}`).select2('data');\n inputValue = [];\n for (let i = 0; i < inputValueObjects.length; i++) {\n inputValue.push(inputValueObjects[i].id);\n }\n inputValue = JSON.stringify(inputValue);\n } else {\n inputValue = '';\n }\n } else if (inputObject.hasClass('signatureField')) {\n if ($(`#${that.formId} #${id}`).data('signaturePad').isEmpty()) {\n inputValue = '';\n } else {\n inputValue = $(`#${id}`).data('signaturePad').toDataURL();\n }\n } else if (inputObject.hasClass('simplemde')) {\n inputValue = $(`#${that.formId} #${id}`).data('simplemde').value();\n } else if (inputObject.hasClass('code')) {\n inputValue = $(`#${that.formId} #${id}`).data('codemirror').getValue();\n } else if (inputObject.hasClass('tinymce')) {\n inputValue = tinyMCE.get(id).getContent({ format: 'raw' });\n } else {\n inputValue = inputObject.val();\n }\n\n const validation = inputObject.attr('validation');\n let valid = false;\n\n if (validation !== undefined && validation != null && that.validator[validation] !== undefined && that.validator[validation] != null) {\n valid = that.validator[validation](inputValue);\n } else {\n if (that.validateAll) {\n if (validation !== undefined && validation != null && validation === 'none') {\n valid = true;\n } else {\n valid = that.validator.input(inputValue);\n }\n } else {\n valid = true;\n }\n that.formObject[id] = inputValue;\n }\n\n if (!valid) {\n that.addError(inputObject, null);\n } else {\n that.clearError(inputObject, null);\n that.formObject[id] = inputValue;\n }\n }\n };\n\n let inputs = $(`#${this.formId} :input`);\n inputs.each(function () {\n validate($(this));\n });\n\n inputs = $(`#${this.formId} .uploadInput`);\n inputs.each(function () {\n validate($(this));\n });\n\n this.showErrors();\n this.tempOptions = {};\n return !this.formError;\n }\n\n getFormParameters() {\n return this.formObject;\n }\n\n\n alert(title, text) {\n alert(text);\n }\n\n static getValidationRules() {\n return ValidationRules;\n }\n}\n\n\nexport default FormValidation;\n","const axios = require('axios');\n\nclass IceApiClient {\n constructor(baseUrl, token, clientBaseUrl, legacyApiWrapper = true) {\n this.baseUrl = baseUrl;\n this.token = token;\n this.clientBaseUrl = clientBaseUrl;\n this.legacyApiWrapper = legacyApiWrapper;\n }\n\n get(endpoint) {\n if (this.legacyApiWrapper) {\n const url = `${this.clientBaseUrl}api/index.php?token=${this.token}&method=get&url=/${endpoint}`;\n return axios.get(url);\n }\n\n return axios.get(this.baseUrl + endpoint, {\n headers: {\n Authorization: `Bearer ${this.token}`,\n },\n });\n }\n}\n\nexport default IceApiClient;\n","const axios = require('axios');\n\nclass IceDataPipe {\n constructor(adapter, pageSize = 10) {\n this.adapter = adapter;\n this.pageSize = pageSize;\n }\n\n readMetaData() {\n this.adapter.initFieldMasterData();\n }\n\n get({\n page, search, sortField, sortOrder, filters, limit,\n }) {\n const pageSize = limit || this.pageSize;\n const start = (page - 1) * pageSize;\n const dataUrl = this.getDataUrl(\n this.adapter.getDataMapping(),\n search,\n filters,\n );\n let url = `${dataUrl}&iDisplayStart=${start}&iDisplayLength=${pageSize}`;\n url = this.applySortingData(this.adapter.getDataMapping(), url, sortField, sortOrder);\n // $.post(url, (data) => {\n // that.getSuccessCallBack(callBackData, data);\n // }, 'json').always(() => { that.hideLoader(); });\n url = `${url}&version=v2`;\n return axios.post(url, {})\n .then((data) => {\n const key = this.getRequestKey(page, search, sortField, sortOrder, filters, limit);\n const response = {\n items: data.data.objects,\n total: data.data.totalRecords,\n };\n if (this.adapter.localStorageEnabled) {\n window.localStorage.setItem(key, JSON.stringify(response));\n }\n\n return response;\n });\n }\n\n getCachedResponse({\n page, search, sortField, sortOrder, filters, limit,\n }) {\n const key = this.getRequestKey(page, search, sortField, sortOrder, filters, limit);\n const cachedResponse = window.localStorage.getItem(key);\n if (!cachedResponse) {\n return null;\n }\n\n return JSON.parse(cachedResponse);\n }\n\n clearCachedResponse({\n page, search, sortField, sortOrder, filters, limit,\n }) {\n const key = this.getRequestKey(page, search, sortField, sortOrder, filters, limit);\n window.localStorage.setItem(key, null);\n }\n\n getRequestKey(page, search, sortField, sortOrder, filters, limit) {\n return `${this.adapter.table}|${page}|${search}|${sortField}|${sortOrder}|${filters}|${limit}`;\n }\n\n applySortingData(columns, url, sortField, sortOrder) {\n let orderBy = '';\n if (sortField) {\n url = `${url}&sorting=1`;\n url = `${url}&iSortCol_0=${columns.indexOf(sortField)}`;\n url = `${url}&sSortDir_0=${(sortOrder === 'descend') ? 'DESC' : 'ASC'}`;\n } else if (this.adapter.getOrderBy() !== null) {\n // Setting the fix ordering\n orderBy = this.adapter.getOrderBy();\n url = `${url}&ob=${orderBy}`;\n }\n\n return url;\n }\n\n getDataUrl(_columns, searchTerm, filters) {\n const sourceMappingJson = JSON.stringify(this.adapter.getSourceMapping());\n\n const columns = JSON.stringify(_columns);\n\n let filterJson = '';\n if (this.adapter.getFilter() !== null) {\n filterJson = JSON.stringify(this.adapter.getFilter());\n }\n\n let url = this.adapter.moduleRelativeURL.replace('service.php', 'data.php');\n url = `${url}?t=${this.adapter.table}`;\n url = `${url}&sm=${sourceMappingJson}`;\n url = `${url}&cl=${columns}`;\n url = `${url}&ft=${filterJson}`;\n\n if (searchTerm && searchTerm.trim() !== '') {\n url += `&sSearch=${searchTerm}`;\n }\n\n if (this.adapter.isSubProfileTable()) {\n url = `${url}&type=sub`;\n }\n\n if (this.adapter.remoteTableSkipProfileRestriction()) {\n url = `${url}&skip=1`;\n }\n\n return url;\n }\n}\n\nexport default IceDataPipe;\n","const axios = require('axios');\n\nclass MasterDataReader {\n constructor(adapter) {\n this.adapter = adapter;\n this.requestCache = this.adapter.requestCache;\n }\n\n fetchMasterData(fieldMaster) {\n let method = '';\n let methodParams = '';\n if (fieldMaster[3] != null) {\n method = fieldMaster[3];\n }\n\n if (fieldMaster[4] != null) {\n methodParams = JSON.stringify(fieldMaster[4]);\n }\n\n const key = this.requestCache.getKey(this.adapter.moduleRelativeURL, {\n t: fieldMaster[0], key: fieldMaster[1], value: fieldMaster[2], method, methodParams, a: 'getFieldValues',\n });\n\n const cacheData = this.requestCache.getData(key);\n if (cacheData != null && cacheData.status === 'SUCCESS') {\n return new Promise((resolve, reject) => resolve(cacheData.data));\n }\n\n const urlData = {\n t: fieldMaster[0],\n key: fieldMaster[1],\n value: fieldMaster[2],\n method,\n methodParams,\n a: 'getFieldValues',\n };\n let url = `${this.adapter.moduleRelativeURL}?_url=1`;\n for (const index in urlData) {\n url = `${url}&${index}=${encodeURIComponent(urlData[index])}`;\n }\n // TODO - Should be a get request\n return axios.post(url, {})\n .then((response) => {\n if (response.data.status !== 'SUCCESS') {\n throw Error(`Response for ${key} failed`);\n }\n this.requestCache.setData(key, response.data);\n\n return response.data.data;\n });\n }\n\n updateAllMasterData() {\n const remoteSourceFields = this.adapter.getRemoteSourceFields();\n const promiseList = [];\n for (let i = 0; i < remoteSourceFields.length; i++) {\n const fieldRemote = remoteSourceFields[i];\n if (fieldRemote[1]['remote-source'] !== undefined && fieldRemote[1]['remote-source'] != null) {\n let key = `${fieldRemote[1]['remote-source'][0]}_${fieldRemote[1]['remote-source'][1]}_${fieldRemote[1]['remote-source'][2]}`;\n if (fieldRemote[1]['remote-source'].length === 4) {\n key = `${key}_${fieldRemote[1]['remote-source'][3]}`;\n }\n const masterDataPromise = this.fetchMasterData(fieldRemote[1]['remote-source'])\n .then((data) => {\n this.adapter.fieldMasterData[key] = data;\n });\n promiseList.push(masterDataPromise);\n }\n }\n\n return Promise.all(promiseList);\n }\n}\n\nexport default MasterDataReader;\n","/* global tinymce, SimpleMDE, modJs, SignaturePad, modulesInstalled */\n/* eslint-disable prefer-destructuring */\n/*\n Copyright (c) 2018 [Glacies UG, Berlin, Germany] (http://glacies.de)\n Developer: Thilina Hasantha (http://lk.linkedin.com/in/thilinah | https://github.com/thilinah)\n */\nimport FormValidation from './FormValidation';\n/**\n * The base class for providing core functions to all module classes.\n * @class Base.js\n */\n\nclass ModuleBase {\n constructor() {\n this.deleteParams = {};\n this.createRemoteTable = false;\n this.instanceId = 'None';\n this.ga = [];\n this.showAddNew = true;\n this.showEdit = true;\n this.showDelete = true;\n this.showSave = true;\n this.showCancel = true;\n this.showFormOnPopup = false;\n this.filtersAlreadySet = false;\n this.currentFilterString = '';\n this.sorting = 0;\n this.settings = {};\n this.translations = {};\n this.customFields = [];\n this.csrfRequired = false;\n\n this.fieldTemplates = null;\n this.templates = null;\n this.customTemplates = null;\n this.emailTemplates = null;\n this.fieldMasterData = {};\n this.fieldMasterDataKeys = {};\n this.fieldMasterDataCallback = null;\n this.sourceMapping = null;\n this.currentId = null;\n this.currentElement = null;\n this.user = null;\n this.currentProfile = null;\n this.permissions = {};\n this.baseUrl = null;\n this.clientUrl = null;\n this.that = this;\n }\n\n // eslint-disable-next-line no-unused-vars\n init(appName, currentView, dataUrl, permissions) {\n\n }\n\n initForm() {\n\n }\n\n setObjectTypeName(objectTypeName) {\n this.objectTypeName = objectTypeName;\n }\n\n /**\n * Some browsers do not support sending JSON in get parameters. Set this to true to avoid sending JSON\n * @method setNoJSONRequests\n * @param val {Boolean}\n */\n setNoJSONRequests(val) {\n this.noJSONRequests = val;\n }\n\n\n setPermissions(permissions) {\n this.permissions = permissions;\n }\n\n sortingStarted(val) {\n this.sorting = val;\n }\n\n /**\n * Check if the current user has a permission\n * @method checkPermission\n * @param permission {String}\n * @example\n * this.checkPermission(\"Upload/Delete Profile Image\")\n */\n checkPermission(permission) {\n if (this.permissions[permission] === undefined || this.permissions[permission] == null || this.permissions[permission] === 'Yes') {\n return 'Yes';\n }\n return this.permissions[permission];\n }\n\n setBaseUrl(url) {\n this.baseUrl = url;\n }\n\n setClientUrl(url) {\n this.clientUrl = url;\n }\n\n setUser(user) {\n this.user = user;\n }\n\n getUser() {\n return this.user;\n }\n\n setInstanceId(id) {\n this.instanceId = id;\n }\n\n setCSRFRequired(val) {\n this.csrfRequired = val;\n }\n\n scrollToTop() {\n $('html, body').animate({ scrollTop: 0 }, 'fast');\n }\n\n scrollToBottom() {\n $('html, body').animate({ scrollTop: $(document).height() }, 'slow');\n }\n\n scrollToElement(element) {\n if ($(window).height() <= element.offset().top) {\n $('html, body').animate({ scrollTop: element.offset().top }, 'slow');\n }\n }\n\n scrollToElementBottom(element) {\n if ($(window).height() <= element.offset().top + element.height()) {\n $('html, body').animate({ scrollTop: element.offset().top + element.height() }, 'slow');\n }\n }\n\n\n setTranslations(txt) {\n this.translations = txt.messages[''];\n }\n\n setTranslationsSubModules(translations) {\n this.translations = translations;\n }\n\n gt(key) {\n if (this.translations[key] === undefined || this.translations[key] === null) {\n console.log(`Tr:${key}`);\n return key;\n }\n return this.translations[key][0];\n }\n\n addToLangTerms(key) {\n let termsArr;\n const terms = localStorage.getItem('terms');\n if (terms === undefined) {\n termsArr = {};\n } else {\n try {\n termsArr = JSON.parse(terms);\n } catch (e) {\n termsArr = {};\n }\n }\n\n if (this.translations[key] === undefined) {\n termsArr[key] = key;\n localStorage.setItem('terms', JSON.stringify(termsArr));\n }\n }\n\n /**\n * If this method returned false the action buttons in data table for modules will not be displayed.\n * Override this method in module lib.js to hide action buttons\n * @method showActionButtons\n * @param permission {String}\n * @example\n * EmployeeLeaveEntitlementAdapter.method('showActionButtons() {\n * return false;\n * }\n */\n showActionButtons() {\n return true;\n }\n\n trackEvent(action, label, value) {\n try {\n if (label === undefined || label == null) {\n this.ga.push(['_trackEvent', this.instanceId, action]);\n } else if (value === undefined || value == null) {\n this.ga.push(['_trackEvent', this.instanceId, action, label]);\n } else {\n this.ga.push(['_trackEvent', this.instanceId, action, label, value]);\n }\n } catch (e) {\n // Do nothing\n }\n }\n\n\n setCurrentProfile(currentProfile) {\n this.currentProfile = currentProfile;\n }\n\n /**\n * Get the current profile\n * @method getCurrentProfile\n * @returns Profile of the current user if the profile is not switched if not switched profile\n */\n\n getCurrentProfile() {\n return this.currentProfile;\n }\n\n /**\n * Retrive data required to create select boxes for add new /edit forms for a given module. This is called when loading the module\n * @method initFieldMasterData\n * @param callback {Function} call this once loading completed\n * @param callback {Function} call this once all field loading completed. This indicate that the form can be displayed saftly\n * @example\n * ReportAdapter.method('renderForm(object) {\n * var that = this;\n * this.processFormFieldsWithObject(object);\n * var cb = function(){\n * that.super.renderForm(object);\n * };\n * this.initFieldMasterData(cb);\n * }\n */\n initFieldMasterData(callback, loadAllCallback, loadAllCallbackData) {\n this.fieldMasterData = {};\n this.fieldMasterDataKeys = {};\n this.fieldMasterDataCallback = loadAllCallback;\n this.fieldMasterDataCallbackData = loadAllCallbackData;\n\n const remoteSourceFields = this.getRemoteSourceFields();\n\n for (let i = 0; i < remoteSourceFields.length; i++) {\n const fieldRemote = remoteSourceFields[i];\n if (fieldRemote[1]['remote-source'] !== undefined && fieldRemote[1]['remote-source'] != null) {\n // let key = `${fieldRemote[1]['remote-source'][0]}_${fieldRemote[1]['remote-source'][1]}_${fieldRemote[1]['remote-source'][2]}`;\n // if (fieldRemote[1]['remote-source'].length === 4) {\n // key = `${key}_${fieldRemote[1]['remote-source'][3]}`;\n // }\n const key = this.getRemoteSourceKey(fieldRemote);\n this.fieldMasterDataKeys[key] = false;\n\n const callBackData = {};\n callBackData.callBack = 'initFieldMasterDataResponse';\n callBackData.callBackData = [key];\n if (callback !== null && callback !== undefined) {\n callBackData.callBackSuccess = callback;\n }\n this.getFieldValues(fieldRemote[1]['remote-source'], callBackData);\n }\n }\n }\n\n\n initSourceMappings() {\n this.sourceMapping = {};\n\n const remoteSourceFields = this.getRemoteSourceFields();\n\n for (let i = 0; i < remoteSourceFields.length; i++) {\n const fieldRemote = remoteSourceFields[i];\n if (fieldRemote[1]['remote-source'] !== undefined && fieldRemote[1]['remote-source'] != null) {\n this.sourceMapping[fieldRemote[0]] = fieldRemote[1]['remote-source'];\n }\n }\n }\n\n getRemoteSourceKey(field) {\n let key = `${field[1]['remote-source'][0]}_${field[1]['remote-source'][1]}_${field[1]['remote-source'][2]}`;\n if (field[1]['remote-source'].length > 3) {\n key = `${key}_${field[1]['remote-source'][3]}`;\n }\n\n return key;\n }\n\n getRemoteSourceFields() {\n let values;\n const fields = this.getFormFields();\n const filterFields = this.getFilters();\n\n if (filterFields != null) {\n for (let j = 0; j < filterFields.length; j++) {\n values = this.getMetaFieldValues(filterFields[j][0], fields);\n if (values == null || (values.type !== 'select' && values.type !== 'select2' && values.type !== 'select2multi')) {\n fields.push(filterFields[j]);\n }\n }\n }\n\n const remoteSourceFields = [];\n const remoteSourceFieldKeys = [];\n let field = null;\n let fieldSub = null;\n for (let i = 0; i < fields.length; i++) {\n field = fields[i];\n if (field[1]['remote-source'] !== undefined && field[1]['remote-source'] !== null) {\n const key = this.getRemoteSourceKey(field);\n if (remoteSourceFieldKeys.indexOf(key) < 0) {\n remoteSourceFields.push(field);\n remoteSourceFieldKeys.push(key);\n }\n } else if (field[1].form !== undefined && field[1].form !== null) {\n for (let j = 0; j < field[1].form.length; j++) {\n fieldSub = field[1].form[j];\n if (fieldSub[1]['remote-source'] !== undefined && fieldSub[1]['remote-source'] !== null) {\n const key = this.getRemoteSourceKey(fieldSub);\n if (remoteSourceFieldKeys.indexOf(key) < 0) {\n remoteSourceFields.push(fieldSub);\n remoteSourceFieldKeys.push(key);\n }\n }\n }\n }\n }\n\n return remoteSourceFields;\n }\n\n /**\n * Pass true to this method after creating module JS object to open new/edit entry form for the module on a popup.\n * @method setShowFormOnPopup\n * @param val {Boolean}\n * @example\n * modJs.subModJsList['tabCandidateApplication'] = new CandidateApplicationAdapter('Application','CandidateApplication',{\"candidate\":data.id}\n * modJs.subModJsList['tabCandidateApplication'].setShowFormOnPopup(true);\n */\n\n setShowFormOnPopup(val) {\n this.showFormOnPopup = val;\n }\n\n /**\n * Set this to true to if you need the datatable to load data page by page instead of loading all data at once.\n * @method setRemoteTable\n * @param val {Boolean}\n * @example\n * modJs.subModJsList['tabCandidateApplication'] = new CandidateApplicationAdapter('Application','CandidateApplication',{\"candidate\":data.id}\n * modJs.subModJsList['tabCandidateApplication'].setRemoteTable(true);\n */\n\n setRemoteTable(val) {\n this.createRemoteTable = val;\n }\n\n setSettings(val) {\n this.settings = val;\n }\n\n getRemoteTable() {\n return this.createRemoteTable;\n }\n\n isAllLoaded(fieldMasterDataKeys) {\n for (const key in fieldMasterDataKeys) {\n if (fieldMasterDataKeys[key] === false) {\n return false;\n }\n }\n return true;\n }\n\n // eslint-disable-next-line no-unused-vars\n initFieldMasterDataResponse(key, data, callback, loadAllCallbackData) {\n this.fieldMasterData[key] = data;\n this.fieldMasterDataKeys[key] = true;\n\n if (callback !== undefined && callback !== null) {\n callback();\n }\n\n if (this.fieldMasterDataCallback !== null\n && this.fieldMasterDataCallback !== undefined\n && this.isAllLoaded(this.fieldMasterDataKeys)\n && (this.fieldMasterDataCallbackData !== null && this.fieldMasterDataCallbackData !== undefined)\n ) {\n this.fieldMasterDataCallback(this.fieldMasterDataCallbackData);\n } else if (this.fieldMasterDataCallback !== null\n && this.fieldMasterDataCallback !== undefined\n && this.isAllLoaded(this.fieldMasterDataKeys)\n ) {\n this.fieldMasterDataCallback();\n }\n }\n\n getMetaFieldValues(key, fields) {\n for (let i = 0; i < fields.length; i++) {\n if (key === fields[i][0]) {\n return fields[i][1];\n }\n }\n return null;\n }\n\n getThemeColors() {\n const colors = ['red', 'yellow', 'aqua', 'blue',\n 'light-blue', 'green', 'navy', 'teal', 'olive', 'orange',\n 'fuchsia', 'purple'];\n\n return colors;\n }\n\n getColorByRandomString(string) {\n const colors = this.getThemeColors();\n const k = string.charCodeAt(0);\n return colors[k % colors.length];\n }\n\n getColorByFileType(type) {\n type = type.toLowerCase();\n\n const colorMap = {};\n colorMap.pdf = 'red';\n colorMap.csv = 'yellow';\n colorMap.xls = 'green';\n colorMap.xlsx = 'green';\n colorMap.doc = 'light-blue';\n colorMap.docx = 'light-blue';\n colorMap.docx = 'blue';\n colorMap.ppt = 'orange';\n colorMap.pptx = 'orange';\n colorMap.jpg = 'teal';\n colorMap.jpeg = 'teal';\n colorMap.gif = 'green';\n colorMap.png = 'yellow';\n colorMap.bmp = 'fuchsia';\n\n\n if (colorMap[type] !== undefined || colorMap[type] != null) {\n return colorMap[type];\n }\n return this.getColorByRandomString(type);\n }\n\n getIconByFileType(type) {\n type = type.toLowerCase();\n\n const iconMap = {};\n iconMap.pdf = 'fa fa-file-pdf-o';\n iconMap.csv = 'fa fa fa-file-code-o';\n iconMap.xls = 'fa fa-file-excel-o';\n iconMap.xlsx = 'fa fa-file-excel-o';\n iconMap.doc = 'fa fa-file-word-o';\n iconMap.docx = 'fa fa-file-word-o';\n iconMap.ppt = 'fa fa-file-powerpoint-o';\n iconMap.pptx = 'fa fa-file-powerpoint-o';\n iconMap.jpg = 'fa fa-file-image-o';\n iconMap.jpeg = 'fa fa-file-image-o';\n iconMap.gif = 'fa fa-file-image-o';\n iconMap.png = 'fa fa-file-image-o';\n iconMap.bmp = 'fa fa-file-image-o';\n iconMap.txt = 'fa fa-file-text-o';\n iconMap.rtf = 'fa fa-file-text-o';\n\n\n if (iconMap[type] !== undefined || iconMap[type] != null) {\n return iconMap[type];\n }\n return 'fa fa-file-o';\n }\n\n getSourceMapping() {\n return this.sourceMapping;\n }\n\n setTesting(testing) {\n this.testing = testing;\n }\n\n consoleLog(message) {\n if (this.testing) {\n console.log(message);\n }\n }\n\n setClientMessages(msgList) {\n this.msgList = msgList;\n }\n\n setTemplates(templates) {\n this.templates = templates;\n }\n\n\n getWSProperty(array, key) {\n if (array.hasOwnProperty(key)) {\n return array[key];\n }\n return null;\n }\n\n\n getClientMessage(key) {\n return this.getWSProperty(this.msgList, key);\n }\n\n\n getTemplate(key) {\n return this.getWSProperty(this.templates, key);\n }\n\n setGoogleAnalytics(gaq) {\n this.gaq = gaq;\n }\n\n\n showView(view) {\n if (this.currentView != null) {\n this.previousView = this.currentView;\n $(`#${this.currentView}`).hide();\n }\n $(`#${view}`).show();\n this.currentView = view;\n this.moveToTop();\n }\n\n showPreviousView() {\n this.showView(this.previousView);\n }\n\n\n moveToTop() {\n\n }\n\n\n callFunction(callback, cbParams, thisParam) {\n if ($.isFunction(callback)) {\n try {\n if (thisParam === undefined || thisParam === null) {\n callback.apply(document, cbParams);\n } else {\n callback.apply(thisParam, cbParams);\n }\n } catch (e) {\n console.log(e.message);\n }\n } else {\n const f = this[callback];\n if ($.isFunction(f)) {\n try {\n f.apply(this, cbParams);\n } catch (e) {\n console.log(e.message);\n }\n }\n }\n }\n\n getTableTopButtonHtml() {\n let html = '';\n if (this.getShowAddNew()) {\n html = ``;\n }\n\n if (this.getFilters() != null) {\n if (html !== '') {\n html += '  ';\n }\n html += ``;\n html += '  ';\n if (this.filtersAlreadySet) {\n html += '';\n } else {\n html += '';\n }\n }\n\n html = html.replace(/__id__/g, this.getTableName());\n\n if (this.currentFilterString !== '' && this.currentFilterString != null) {\n html = html.replace(/__filterString__/g, this.currentFilterString);\n } else {\n html = html.replace(/__filterString__/g, 'Reset Filters');\n }\n\n if (html !== '') {\n html = `
    ${html}
    `;\n }\n\n return html;\n }\n\n\n getActionButtonHeader() {\n return { sTitle: '', sClass: 'center' };\n }\n\n getTableHTMLTemplate() {\n return '
    ';\n }\n\n isSortable() {\n return true;\n }\n\n /**\n * Create the data table on provided element id\n * @method createTable\n * @param val {Boolean}\n */\n\n createTable(elementId) {\n const that = this;\n\n if (this.getRemoteTable()) {\n this.createTableServer(elementId);\n return;\n }\n\n\n const headers = this.getHeaders();\n\n // add translations\n for (const index in headers) {\n headers[index].sTitle = this.gt(headers[index].sTitle);\n }\n\n const data = this.getTableData();\n\n if (this.showActionButtons()) {\n headers.push(this.getActionButtonHeader());\n }\n\n\n if (this.showActionButtons()) {\n for (let i = 0; i < data.length; i++) {\n data[i].push(this.getActionButtonsHtml(data[i][0], data[i]));\n }\n }\n\n let html = '';\n html = this.getTableTopButtonHtml() + this.getTableHTMLTemplate();\n /*\n if(this.getShowAddNew()){\n html = this.getTableTopButtonHtml()+'
    ';\n }else{\n html = '
    ';\n }\n */\n // Find current page\n const activePage = $(`#${elementId} .dataTables_paginate .active a`).html();\n let start = 0;\n if (activePage !== undefined && activePage != null) {\n start = parseInt(activePage, 10) * 15 - 15;\n }\n\n $(`#${elementId}`).html(html);\n\n const dataTableParams = {\n oLanguage: {\n sLengthMenu: '_MENU_ records per page',\n },\n aaData: data,\n aoColumns: headers,\n bSort: that.isSortable(),\n iDisplayLength: 15,\n iDisplayStart: start,\n };\n\n\n const customTableParams = this.getCustomTableParams();\n\n $.extend(dataTableParams, customTableParams);\n\n $(`#${elementId} #grid`).dataTable(dataTableParams);\n\n $('.dataTables_paginate ul').addClass('pagination');\n $('.dataTables_length').hide();\n $('.dataTables_filter input').addClass('form-control');\n $('.dataTables_filter input').attr('placeholder', 'Search');\n $('.dataTables_filter label').contents().filter(function () {\n return (this.nodeType === 3);\n }).remove();\n $('.tableActionButton').tooltip();\n }\n\n /**\n * Create a data table on provided element id which loads data page by page\n * @method createTableServer\n * @param val {Boolean}\n */\n\n createTableServer(elementId) {\n const that = this;\n const headers = this.getHeaders();\n\n headers.push({ sTitle: '', sClass: 'center' });\n\n // add translations\n for (const index in headers) {\n headers[index].sTitle = this.gt(headers[index].sTitle);\n }\n\n let html = '';\n html = this.getTableTopButtonHtml() + this.getTableHTMLTemplate();\n\n // Find current page\n const activePage = $(`#${elementId} .dataTables_paginate .active a`).html();\n let start = 0;\n if (activePage !== undefined && activePage != null) {\n start = parseInt(activePage, 10) * 15 - 15;\n }\n\n\n $(`#${elementId}`).html(html);\n\n const dataTableParams = {\n oLanguage: {\n sLengthMenu: '_MENU_ records per page',\n },\n bProcessing: true,\n bServerSide: true,\n sAjaxSource: that.getDataUrl(that.getDataMapping()),\n aoColumns: headers,\n bSort: that.isSortable(),\n parent: that,\n iDisplayLength: 15,\n iDisplayStart: start,\n };\n\n if (this.showActionButtons()) {\n dataTableParams.aoColumnDefs = [\n {\n fnRender: that.getActionButtons,\n aTargets: [that.getDataMapping().length],\n },\n ];\n }\n\n const customTableParams = this.getCustomTableParams();\n\n $.extend(dataTableParams, customTableParams);\n\n $(`#${elementId} #grid`).dataTable(dataTableParams);\n\n $('.dataTables_paginate ul').addClass('pagination');\n $('.dataTables_length').hide();\n $('.dataTables_filter input').addClass('form-control');\n $('.dataTables_filter input').attr('placeholder', 'Search');\n $('.dataTables_filter label').contents().filter(function () {\n return (this.nodeType === 3);\n }).remove();\n\n $('.tableActionButton').tooltip();\n }\n\n /**\n * This should be overridden in module lib.js classes to return module headers which are used to create the data table.\n * @method getHeaders\n * @example\n SettingAdapter.method('getHeaders() {\n return [\n { \"sTitle\": \"ID\" ,\"bVisible\":false},\n { \"sTitle\": \"Name\" },\n { \"sTitle\": \"Value\"},\n { \"sTitle\": \"Details\"}\n ];\n }\n */\n getHeaders() {\n\n }\n\n\n /**\n * This should be overridden in module lib.js classes to return module field values which are used to create the data table.\n * @method getDataMapping\n * @example\n SettingAdapter.method('getDataMapping() {\n return [\n \"id\",\n \"name\",\n \"value\",\n \"description\"\n ];\n }\n */\n\n getDataMapping() {\n\n }\n\n /**\n * This should be overridden in module lib.js classes to return module from fields which are used to create the add/edit form and also used for initializing select box values in form.\n * @method getFormFields\n * @example\n SettingAdapter.method('getFormFields() {\n return [\n [ \"id\", {\"label\":\"ID\",\"type\":\"hidden\"}],\n [ \"value\", {\"label\":\"Value\",\"type\":\"text\",\"validation\":\"none\"}]\n ];\n }\n */\n getFormFields() {\n\n }\n\n getTableColumns() {\n return [];\n }\n\n getTableData() {\n\n }\n\n /**\n * This can be overridden in module lib.js classes inorder to show a filter form\n * @method getFilters\n * @example\n EmployeeAdapter.method('getFilters() {\n return [\n [ \"job_title\", {\"label\":\"Job Title\",\"type\":\"select2\",\"allow-null\":true,\"null-label\":\"All Job Titles\",\"remote-source\":[\"JobTitle\",\"id\",\"name\"]}],\n [ \"department\", {\"label\":\"Department\",\"type\":\"select2\",\"allow-null\":true,\"null-label\":\"All Departments\",\"remote-source\":[\"CompanyStructure\",\"id\",\"title\"]}],\n [ \"supervisor\", {\"label\":\"Supervisor\",\"type\":\"select2\",\"allow-null\":true,\"null-label\":\"Anyone\",\"remote-source\":[\"Employee\",\"id\",\"first_name+last_name\"]}]\n ];\n }\n */\n getFilters() {\n return null;\n }\n\n /**\n * Show the edit form for an item\n * @method edit\n * @param id {int} id of the item to edit\n */\n edit(id) {\n this.currentId = id;\n this.getElement(id, []);\n }\n\n copyRow(id) {\n this.getElement(id, [], true);\n }\n\n renderModel(id, header, body) {\n $(`#${id}ModelBody`).html('');\n\n if (body === undefined || body == null) {\n body = '';\n }\n\n $(`#${id}ModelLabel`).html(header);\n $(`#${id}ModelBody`).html(body);\n }\n\n\n renderYesNoModel(header, body, yesBtnName, noBtnName, callback, callbackParams) {\n const that = this;\n const modelId = '#yesnoModel';\n\n if (body === undefined || body == null) {\n body = '';\n }\n\n $(`${modelId}Label`).html(header);\n $(`${modelId}Body`).html(body);\n if (yesBtnName != null) {\n $(`${modelId}YesBtn`).html(yesBtnName);\n }\n if (noBtnName != null) {\n $(`${modelId}NoBtn`).html(noBtnName);\n }\n\n $(`${modelId}YesBtn`).off().on('click', () => {\n if (callback !== undefined && callback != null) {\n callback.apply(that, callbackParams);\n that.cancelYesno();\n }\n });\n\n $(modelId).modal({\n backdrop: 'static',\n });\n }\n\n renderModelFromDom(id, header, element) {\n $(`#${id}ModelBody`).html('');\n\n if (element === undefined || element == null) {\n element = $('
    ');\n }\n\n $(`#${id}ModelLabel`).html(header);\n $(`#${id}ModelBody`).html('');\n $(`#${id}ModelBody`).append(element);\n }\n\n /**\n * Delete an item\n * @method deleteRow\n * @param id {int} id of the item to edit\n */\n\n deleteRow(id) {\n this.deleteParams.id = id;\n this.renderModel('delete', 'Confirm Deletion', 'Are you sure you want to delete this item ?');\n $('#deleteModel').modal('show');\n }\n\n /**\n * Show a popup with message\n * @method showMessage\n * @param title {String} title of the message box\n * @param message {String} message\n * @param closeCallback {Function} this will be called once the dialog is closed (optional)\n * @param closeCallback {Function} data to pass to close callback (optional)\n * @param closeCallbackData\n * @param isPlain {Boolean} if true buttons are not shown (optional / default = true)\n * @example\n * this.showMessage(\"Error Occured while Applying Leave\", callBackData);\n */\n showMessage(title, message, closeCallback = null, closeCallbackData = null, isPlain = false) {\n const that = this;\n let modelId = '';\n if (isPlain) {\n modelId = '#plainMessageModel';\n } else {\n modelId = '#messageModel';\n }\n\n $(modelId).off();\n\n if (isPlain) {\n this.renderModel('plainMessage', title, message);\n } else {\n this.renderModel('message', title, message);\n }\n\n if (closeCallback !== null && closeCallback !== undefined) {\n $(modelId).modal({ show: true });\n $(modelId).on('hidden.bs.modal', () => {\n closeCallback.apply(that, closeCallbackData);\n $('.modal-backdrop').remove();\n });\n } else {\n $(modelId).modal({\n backdrop: 'static',\n });\n }\n }\n\n showDomElement(title, element, closeCallback, closeCallbackData, isPlain) {\n const that = this;\n let modelId = '';\n if (isPlain) {\n modelId = '#dataMessageModel';\n } else {\n modelId = '#messageModel';\n }\n\n $(modelId).unbind('hide');\n\n if (isPlain) {\n this.renderModelFromDom('dataMessage', title, element);\n } else {\n this.renderModelFromDom('message', title, element);\n }\n\n\n if (closeCallback !== null && closeCallback !== undefined) {\n $(modelId).modal({ show: true });\n $(modelId).on('hidden.bs.modal', () => {\n closeCallback.apply(that, closeCallbackData);\n $('.modal-backdrop').remove();\n });\n } else {\n $(modelId).modal({\n backdrop: 'static',\n });\n }\n }\n\n confirmDelete() {\n if (this.deleteParams.id !== undefined || this.deleteParams.id != null) {\n this.deleteObj(this.deleteParams.id, []);\n }\n $('#deleteModel').modal('hide');\n }\n\n cancelDelete() {\n $('#deleteModel').modal('hide');\n this.deleteParams.id = null;\n }\n\n closeMessage() {\n $('#messageModel').modal('hide');\n }\n\n cancelYesno() {\n $('#yesnoModel').modal('hide');\n }\n\n closePlainMessage() {\n $('#plainMessageModel').modal('hide');\n $('#dataMessageModel').modal('hide');\n }\n\n closeDataMessage() {\n $('#dataMessageModel').modal('hide');\n }\n\n\n /**\n * Create or edit an element\n * @method save\n * @param getFunctionCallBackData {Array} once a success is returned call get() function for this module with these parameters\n * @param successCallback {Function} this will get called after success response\n */\n\n save(callGetFunction, successCallback) {\n const validator = new FormValidation(`${this.getTableName()}_submit`, true, { ShowPopup: false, LabelErrorClass: 'error' });\n if (validator.checkValues()) {\n let params = validator.getFormParameters();\n params = this.forceInjectValuesBeforeSave(params);\n const msg = this.doCustomValidation(params);\n if (msg == null) {\n if (this.csrfRequired) {\n params.csrf = $(`#${this.getTableName()}Form`).data('csrf');\n }\n const id = $(`#${this.getTableName()}_submit #id`).val();\n if (id != null && id !== undefined && id !== '') {\n params.id = id;\n }\n params = this.makeEmptyDateFieldsNull(params);\n this.add(params, [], callGetFunction, successCallback);\n } else {\n $(`#${this.getTableName()}Form .label`).html(msg);\n $(`#${this.getTableName()}Form .label`).show();\n this.scrollToTop();\n }\n }\n }\n\n\n makeEmptyDateFieldsNull(params) {\n const fields = this.getFormFields();\n fields.forEach((field) => {\n if ((field[1].type === 'date' || field[1].type === 'datetime')\n && (params[field[0]] === '' || params[field[0]] === '0000-00-00' || params[field[0]] === '0000-00-00 00:00:00')) {\n if (field[1].validation === 'none') {\n params[field[0]] = 'NULL';\n } else {\n delete params[field[0]];\n }\n }\n });\n return params;\n }\n\n validatePassword(password) {\n if (password.length < 8) {\n return this.gt('Password too short');\n }\n\n if (password.length > 30) {\n return this.gt('Password too long');\n }\n\n const numberTester = /.*[0-9]+.*$/;\n if (!password.match(numberTester)) {\n return this.gt('Password must include at least one number');\n }\n\n const lowerTester = /.*[a-z]+.*$/;\n if (!password.match(lowerTester)) {\n return this.gt('Password must include at least one lowercase letter');\n }\n\n const upperTester = /.*[A-Z]+.*$/;\n if (!password.match(upperTester)) {\n return this.gt('Password must include at least one uppercase letter');\n }\n\n const symbolTester = /.*[\\W]+.*$/;\n if (!password.match(symbolTester)) {\n return this.gt('Password must include at least one symbol');\n }\n\n return null;\n }\n\n /**\n * Override this method to inject attitional parameters or modify existing parameters retrived from\n * add/edit form before sending to the server\n * @method forceInjectValuesBeforeSave\n * @param params {Array} keys and values in form\n * @returns {Array} modified parameters\n */\n forceInjectValuesBeforeSave(params) {\n return params;\n }\n\n /**\n * Override this method to do custom validations at client side\n * @method doCustomValidation\n * @param params {Array} keys and values in form\n * @returns {Null or String} return null if validation success, returns error message if unsuccessful\n * @example\n EmployeeLeaveAdapter.method('doCustomValidation(params) {\n try{\n if(params['date_start'] != params['date_end']){\n var ds = new Date(params['date_start']);\n var de = new Date(params['date_end']);\n if(de < ds){\n return \"Start date should be earlier than end date of the leave period\";\n }\n }\n }catch(e){\n\n }\n return null;\n}\n */\n // eslint-disable-next-line no-unused-vars\n doCustomValidation(params) {\n return null;\n }\n\n filterQuery() {\n const validator = new FormValidation(`${this.getTableName()}_filter`, true, { ShowPopup: false, LabelErrorClass: 'error' });\n if (validator.checkValues()) {\n const params = validator.getFormParameters();\n if (this.doCustomFilterValidation(params)) {\n // remove null params\n for (const prop in params) {\n if (params.hasOwnProperty(prop)) {\n if (params[prop] === 'NULL') {\n delete (params[prop]);\n }\n }\n }\n\n this.setFilter(params);\n this.filtersAlreadySet = true;\n $(`#${this.getTableName()}_resetFilters`).show();\n this.currentFilterString = this.getFilterString(params);\n\n this.get([]);\n this.closePlainMessage();\n }\n }\n }\n\n\n getFilterString(filters) {\n let str = '';\n let rmf; let source; let values; let select2MVal; let value; let\n valueOrig;\n\n const filterFields = this.getFilters();\n\n\n if (values == null) {\n values = [];\n }\n\n for (const prop in filters) {\n if (filters.hasOwnProperty(prop)) {\n values = this.getMetaFieldValues(prop, filterFields);\n if (!values) {\n continue;\n }\n value = '';\n valueOrig = null;\n\n if ((values.type === 'select' || values.type === 'select2')) {\n if (values['remote-source'] !== undefined && values['remote-source'] != null) {\n rmf = values['remote-source'];\n if (filters[prop] === 'NULL') {\n if (values['null-label'] !== undefined && values['null-label'] != null) {\n value = values['null-label'];\n } else {\n value = 'Not Selected';\n }\n } else {\n let key = `${rmf[0]}_${rmf[1]}_${rmf[2]}`;\n if (rmf.length > 3) {\n key = `${key}_${rmf[3]}`;\n }\n // value = this.fieldMasterData[`${rmf[0]}_${rmf[1]}_${rmf[2]}`][filters[prop]];\n value = this.fieldMasterData[key][filters[prop]];\n valueOrig = value;\n }\n } else {\n source = values.source[0];\n if (filters[prop] === 'NULL') {\n if (values['null-label'] !== undefined && values['null-label'] != null) {\n value = values['null-label'];\n } else {\n value = 'Not Selected';\n }\n } else {\n for (let i = 0; i < source.length; i++) {\n if (filters[prop] === values.source[i][0]) {\n value = values.source[i][1];\n valueOrig = value;\n break;\n }\n }\n }\n }\n } else if (values.type === 'select2multi') {\n select2MVal = [];\n try {\n select2MVal = JSON.parse(filters[prop]);\n } catch (e) {\n // Do nothing\n }\n\n value = select2MVal.join(',');\n if (value !== '') {\n valueOrig = value;\n }\n } else {\n value = filters[prop];\n if (value !== '') {\n valueOrig = value;\n }\n }\n\n if (valueOrig != null) {\n if (str !== '') {\n str += ' | ';\n }\n\n str += `${values.label} = ${value}`;\n }\n }\n }\n\n return str;\n }\n\n /**\n * Override this method to do custom validations at client side for values selected in filters\n * @method doCustomFilterValidation\n * @param params {Array} keys and values in form\n * @returns {Null or String} return null if validation success, returns error message if unsuccessful\n */\n doCustomFilterValidation(params) {\n return true;\n }\n\n\n /**\n * Reset selected filters\n * @method resetFilters\n */\n\n resetFilters() {\n this.filter = this.origFilter;\n this.filtersAlreadySet = false;\n $(`#${this.getTableName()}_resetFilters`).hide();\n this.currentFilterString = '';\n this.get([]);\n }\n\n\n showFilters(object) {\n let formHtml = this.templates.filterTemplate;\n let html = '';\n const fields = this.getFilters();\n\n for (let i = 0; i < fields.length; i++) {\n const metaField = this.getMetaFieldForRendering(fields[i][0]);\n if (metaField === '' || metaField === undefined) {\n html += this.renderFormField(fields[i]);\n } else {\n const metaVal = object[metaField];\n if (metaVal !== '' && metaVal != null && metaVal !== undefined && metaVal.trim() !== '') {\n html += this.renderFormField(JSON.parse(metaVal));\n } else {\n html += this.renderFormField(fields[i]);\n }\n }\n }\n formHtml = formHtml.replace(/_id_/g, `${this.getTableName()}_filter`);\n formHtml = formHtml.replace(/_fields_/g, html);\n\n const randomFormId = this.generateRandom(14);\n const $tempDomObj = $('
    ');\n $tempDomObj.attr('id', randomFormId);\n\n $tempDomObj.html(formHtml);\n\n\n $tempDomObj.find('.datefield').datepicker({ viewMode: 2 });\n $tempDomObj.find('.timefield').datetimepicker({\n language: 'en',\n pickDate: false,\n });\n $tempDomObj.find('.datetimefield').datetimepicker({\n language: 'en',\n });\n\n $tempDomObj.find('.colorpick').colorpicker();\n tinymce.init({\n selector: `#${$tempDomObj.attr('id')} .tinymce`,\n height: '400',\n });\n\n $tempDomObj.find('.simplemde').each(function () {\n const simplemde = new SimpleMDE({ element: $(this)[0] });\n $(this).data('simplemde', simplemde);\n // simplemde.value($(this).val());\n });\n\n // $tempDomObj.find('.select2Field').select2();\n $tempDomObj.find('.select2Field').each(function () {\n $(this).select2().select2('val', $(this).find('option:eq(0)').val());\n });\n\n $tempDomObj.find('.select2Multi').each(function () {\n $(this).select2().on('change', function (e) {\n const parentRow = $(this).parents('.row');\n const height = parentRow.find('.select2-choices').height();\n parentRow.height(parseInt(height, 10));\n });\n });\n\n /*\n $tempDomObj.find('.signatureField').each(function() {\n $(this).data('signaturePad',new SignaturePad($(this)));\n });\n */\n\n // var tHtml = $tempDomObj.wrap('
    ').parent().html();\n this.showDomElement('Edit', $tempDomObj, null, null, true);\n $('.filterBtn').off();\n $('.filterBtn').on('click', (e) => {\n e.preventDefault();\n e.stopPropagation();\n try {\n modJs.filterQuery();\n } catch (err) {\n console.log(err);\n console.log(err.message);\n }\n return false;\n });\n\n if (this.filter !== undefined && this.filter != null && this.filter !== '') {\n this.fillForm(this.filter, `#${this.getTableName()}_filter`, this.getFilters());\n }\n }\n\n\n /**\n * Override this method in your module class to make changes to data fo the form before showing the form\n * @method preRenderForm\n * @param object {Array} keys value list for populating form\n */\n\n preRenderForm(object) {\n\n }\n\n /**\n * Create the form\n * @method renderForm\n * @param object {Array} keys value list for populating form\n */\n\n renderForm(object) {\n const signatureIds = [];\n if (object == null || object === undefined) {\n this.currentId = null;\n }\n\n this.preRenderForm(object);\n\n let formHtml = this.templates.formTemplate;\n let html = '';\n const fields = this.getFormFields();\n\n for (let i = 0; i < fields.length; i++) {\n const metaField = this.getMetaFieldForRendering(fields[i][0]);\n if (metaField === '' || metaField === undefined) {\n html += this.renderFormField(fields[i]);\n } else {\n const metaVal = object[metaField];\n if (metaVal !== '' && metaVal != null && metaVal !== undefined && metaVal.trim() !== '') {\n html += this.renderFormField(JSON.parse(metaVal));\n } else {\n html += this.renderFormField(fields[i]);\n }\n }\n }\n formHtml = formHtml.replace(/_id_/g, `${this.getTableName()}_submit`);\n formHtml = formHtml.replace(/_fields_/g, html);\n\n\n let $tempDomObj;\n const randomFormId = this.generateRandom(14);\n if (!this.showFormOnPopup) {\n $tempDomObj = $(`#${this.getTableName()}Form`);\n } else {\n $tempDomObj = $('
    ');\n $tempDomObj.attr('id', randomFormId);\n }\n\n $tempDomObj.html(formHtml);\n\n\n $tempDomObj.find('.datefield').datepicker({ viewMode: 2 });\n $tempDomObj.find('.timefield').datetimepicker({\n language: 'en',\n pickDate: false,\n });\n $tempDomObj.find('.datetimefield').datetimepicker({\n language: 'en',\n });\n\n $tempDomObj.find('.colorpick').colorpicker();\n\n tinymce.init({\n selector: `#${$tempDomObj.attr('id')} .tinymce`,\n height: '400',\n });\n\n $tempDomObj.find('.simplemde').each(function () {\n const simplemde = new SimpleMDE({ element: $(this)[0] });\n $(this).data('simplemde', simplemde);\n // simplemde.value($(this).val());\n });\n\n const codeMirror = this.codeMirror;\n if (codeMirror) {\n $tempDomObj.find('.code').each(function () {\n const editor = codeMirror.fromTextArea($(this)[0], {\n lineNumbers: false,\n matchBrackets: true,\n continueComments: 'Enter',\n extraKeys: { 'Ctrl-Q': 'toggleComment' },\n });\n $(this).data('codemirror', editor);\n });\n }\n\n\n // $tempDomObj.find('.select2Field').select2();\n $tempDomObj.find('.select2Field').each(function () {\n $(this).select2().select2('val', $(this).find('option:eq(0)').val());\n });\n\n $tempDomObj.find('.select2Multi').each(function () {\n $(this).select2().on('change', function (e) {\n const parentRow = $(this).parents('.row');\n const height = parentRow.find('.select2-choices').height();\n parentRow.height(parseInt(height, 10));\n });\n });\n\n\n $tempDomObj.find('.signatureField').each(function () {\n // $(this).data('signaturePad',new SignaturePad($(this)));\n signatureIds.push($(this).attr('id'));\n });\n\n for (let i = 0; i < fields.length; i++) {\n if (fields[i][1].type === 'datagroup') {\n $tempDomObj.find(`#${fields[i][0]}`).data('field', fields[i]);\n }\n }\n\n if (this.showSave === false) {\n $tempDomObj.find('.saveBtn').remove();\n } else {\n $tempDomObj.find('.saveBtn').off();\n $tempDomObj.find('.saveBtn').data('modJs', this);\n $tempDomObj.find('.saveBtn').on('click', function () {\n if ($(this).data('modJs').saveSuccessItemCallback != null && $(this).data('modJs').saveSuccessItemCallback !== undefined) {\n $(this).data('modJs').save($(this).data('modJs').retriveItemsAfterSave(), $(this).data('modJs').saveSuccessItemCallback);\n } else {\n $(this).data('modJs').save();\n }\n\n return false;\n });\n }\n\n if (this.showCancel === false) {\n $tempDomObj.find('.cancelBtn').remove();\n } else {\n $tempDomObj.find('.cancelBtn').off();\n $tempDomObj.find('.cancelBtn').data('modJs', this);\n $tempDomObj.find('.cancelBtn').on('click', function () {\n $(this).data('modJs').cancel();\n return false;\n });\n }\n\n // Input mask\n $tempDomObj.find('[mask]').each(function () {\n $(this).inputmask($(this).attr('mask'));\n });\n\n $tempDomObj.find('[datemask]').each(function () {\n $(this).inputmask({\n mask: 'y-1-2',\n placeholder: 'YYYY-MM-DD',\n leapday: '-02-29',\n separator: '-',\n alias: 'yyyy/mm/dd',\n });\n });\n\n $tempDomObj.find('[datetimemask]').each(function () {\n $(this).inputmask('datetime', {\n mask: 'y-2-1 h:s:00',\n placeholder: 'YYYY-MM-DD hh:mm:ss',\n leapday: '-02-29',\n separator: '-',\n alias: 'yyyy/mm/dd',\n });\n });\n\n if (!this.showFormOnPopup) {\n $(`#${this.getTableName()}Form`).show();\n $(`#${this.getTableName()}`).hide();\n\n for (let i = 0; i < signatureIds.length; i++) {\n $(`#${signatureIds[i]}`)\n .data('signaturePad',\n new SignaturePad(document.getElementById(signatureIds[i])));\n }\n\n if (object !== undefined && object != null) {\n this.fillForm(object);\n } else {\n this.setDefaultValues();\n }\n\n this.scrollToTop();\n } else {\n // var tHtml = $tempDomObj.wrap('
    ').parent().html();\n // this.showMessage(\"Edit\",tHtml,null,null,true);\n this.showMessage('Edit', '', null, null, true);\n\n $('#plainMessageModel .modal-body').html('');\n $('#plainMessageModel .modal-body').append($tempDomObj);\n\n\n for (let i = 0; i < signatureIds.length; i++) {\n $(`#${signatureIds[i]}`)\n .data('signaturePad',\n new SignaturePad(document.getElementById(signatureIds[i])));\n }\n\n if (object !== undefined && object != null) {\n this.fillForm(object, `#${randomFormId}`);\n } else {\n this.setDefaultValues(`#${randomFormId}`);\n }\n }\n\n this.postRenderForm(object, $tempDomObj);\n }\n\n setDefaultValues(formId, fields) {\n if (fields == null || fields === undefined) {\n fields = this.getFormFields();\n }\n\n if (formId == null || formId === undefined || formId === '') {\n formId = `#${this.getTableName()}Form`;\n }\n\n\n for (let i = 0; i < fields.length; i++) {\n if (fields[i][1].type !== 'text' && fields[i][1].type !== 'textarea') {\n continue;\n }\n\n if (fields[i][1].default !== undefined && fields[i][1].default !== null) {\n $(`${formId} #${fields[i][0]}`).val(fields[i][1].default);\n }\n }\n }\n\n retriveItemsAfterSave() {\n return true;\n }\n\n /**\n * Override this method in your module class to make changes to data fo the form after showing it\n * @method postRenderForm\n * @param object {Array} keys value list for populating form\n * @param $tempDomObj {DOM} a DOM element for the form\n * @example\n * UserAdapter.method('postRenderForm(object, $tempDomObj) {\n if(object == null || object == undefined){\n $tempDomObj.find(\"#changePasswordBtn\").remove();\n }\n }\n */\n\n postRenderForm(object, $tempDomObj) {\n\n }\n\n /**\n * Convert data group field to HTML\n * @method dataGroupToHtml\n * @param val {String} value in the field\n * @param field {Array} field meta data\n */\n\n dataGroupToHtml(val, field) {\n const data = JSON.parse(val);\n\n\n let t; let sortFunction; let item; let itemHtml; let itemVal;\n\n const deleteButton = '
  • ';\n const editButton = '
  • ';\n\n const template = field[1].html;\n\n if (data != null && data !== undefined && field[1]['sort-function'] !== undefined && field[1]['sort-function'] != null) {\n data.sort(field[1]['sort-function']);\n }\n\n\n const html = $(`
    `);\n\n\n for (let i = 0; i < data.length; i++) {\n item = data[i];\n\n if (field[1]['pre-format-function'] !== undefined && field[1]['pre-format-function'] != null) {\n item = field[1]['pre-format-function'].apply(this, [item]);\n }\n\n t = template;\n t = t.replace('#_delete_#', deleteButton);\n t = t.replace('#_edit_#', editButton);\n t = t.replace(/#_id_#/g, item.id);\n\n for (const key in item) {\n itemVal = item[key];\n if (itemVal !== undefined && itemVal != null && typeof itemVal === 'string') {\n itemVal = itemVal.replace(/(?:\\r\\n|\\r|\\n)/g, '
    ');\n }\n t = t.replace(`#_${key}_#`, itemVal);\n }\n\n if (field[1].render !== undefined && field[1].render != null) {\n t = t.replace('#_renderFunction_#', field[1].render(item));\n }\n\n itemHtml = $(t);\n itemHtml.attr('fieldId', `${field[0]}_div`);\n html.append(itemHtml);\n }\n\n\n return html;\n }\n\n /**\n * Reset the DataGroup for a given field\n * @method resetDataGroup\n * @param field {Array} field meta data\n */\n resetDataGroup(field) {\n $(`#${field[0]}`).val('');\n $(`#${field[0]}_div`).html('');\n }\n\n showDataGroup(field, object, callback) {\n let formHtml = this.templates.datagroupTemplate;\n let html = '';\n const fields = field[1].form;\n\n if (object !== undefined && object != null && object.id !== undefined) {\n this.currentDataGroupItemId = object.id;\n } else {\n this.currentDataGroupItemId = null;\n }\n\n for (let i = 0; i < fields.length; i++) {\n html += this.renderFormField(fields[i]);\n }\n formHtml = formHtml.replace(/_id_/g, `${this.getTableName()}_field_${field[0]}`);\n formHtml = formHtml.replace(/_fields_/g, html);\n\n const randomFormId = this.generateRandom(14);\n const $tempDomObj = $('
    ');\n $tempDomObj.attr('id', randomFormId);\n\n $tempDomObj.html(formHtml);\n\n\n $tempDomObj.find('.datefield').datepicker({ viewMode: 2 });\n $tempDomObj.find('.timefield').datetimepicker({\n language: 'en',\n pickDate: false,\n });\n $tempDomObj.find('.datetimefield').datetimepicker({\n language: 'en',\n });\n\n $tempDomObj.find('.colorpick').colorpicker();\n\n tinymce.init({\n selector: `#${$tempDomObj.attr('id')} .tinymce`,\n height: '400',\n });\n\n $tempDomObj.find('.simplemde').each(function () {\n const simplemde = new SimpleMDE({ element: $(this)[0] });\n $(this).data('simplemde', simplemde);\n // simplemde.value($(this).val());\n });\n\n $tempDomObj.find('.select2Field').each(function () {\n $(this).select2().select2('val', $(this).find('option:eq(0)').val());\n });\n\n\n $tempDomObj.find('.select2Multi').each(function () {\n $(this).select2().on('change', function (e) {\n const parentRow = $(this).parents('.row');\n const height = parentRow.find('.select2-choices').height();\n parentRow.height(parseInt(height, 10));\n });\n });\n\n\n this.currentDataGroupField = field;\n this.showDomElement(`Add ${field[1].label}`, $tempDomObj, null, null, true);\n\n if (object !== undefined && object != null) {\n this.fillForm(object, `#${this.getTableName()}_field_${field[0]}`, field[1].form);\n } else {\n this.setDefaultValues(`#${this.getTableName()}_field_${field[0]}`, field[1].form);\n }\n\n\n $('.groupAddBtn').off();\n if (object !== undefined && object != null && object.id !== undefined) {\n $('.groupAddBtn').on('click', (e) => {\n e.preventDefault();\n e.stopPropagation();\n try {\n modJs.editDataGroup(callback);\n } catch (err) {\n console.log(`Error editing data group: ${err.message}`);\n }\n return false;\n });\n } else {\n $('.groupAddBtn').on('click', (e) => {\n e.preventDefault();\n e.stopPropagation();\n try {\n modJs.addDataGroup(callback);\n } catch (err) {\n console.log(`Error adding data group: ${err.message}`);\n }\n return false;\n });\n }\n }\n\n addDataGroup(callback, existingData) {\n const field = this.currentDataGroupField;\n let tempParams;\n $(`#${this.getTableName()}_field_${field[0]}_error`).html('');\n $(`#${this.getTableName()}_field_${field[0]}_error`).hide();\n const validator = new FormValidation(`${this.getTableName()}_field_${field[0]}`, true, { ShowPopup: false, LabelErrorClass: 'error' });\n if (validator.checkValues()) {\n let params = validator.getFormParameters();\n if (field[1]['custom-validate-function'] !== undefined && field[1]['custom-validate-function'] != null) {\n tempParams = field[1]['custom-validate-function'].apply(this, [params]);\n if (tempParams.valid) {\n params = tempParams.params;\n } else {\n $(`#${this.getTableName()}_field_${field[0]}_error`).html(tempParams.message);\n $(`#${this.getTableName()}_field_${field[0]}_error`).show();\n return false;\n }\n }\n let val = '[]';\n if (existingData) {\n val = existingData;\n } else {\n val = $(`#${field[0]}`).val();\n if (val === '' || val == null) {\n val = '[]';\n }\n }\n const data = JSON.parse(val);\n\n params.id = `${field[0]}_${this.dataGroupGetNextAutoIncrementId(data)}`;\n data.push(params);\n\n\n if (field[1]['sort-function'] !== undefined && field[1]['sort-function'] != null) {\n data.sort(field[1]['sort-function']);\n }\n\n val = JSON.stringify(data);\n\n const html = this.dataGroupToHtml(val, field);\n if (callback) {\n callback(val);\n }\n\n $(`#${field[0]}_div`).html('');\n $(`#${field[0]}_div`).append(html);\n\n this.makeDataGroupSortable(field, $(`#${field[0]}_div_inner`));\n\n\n $(`#${field[0]}`).val(val);\n this.orderDataGroup(field);\n\n this.closeDataMessage();\n\n this.showMessage('Item Added', 'This change will be effective only when you save the form');\n }\n return true;\n }\n\n nl2br(str, len) {\n let t = '';\n try {\n const arr = str.split(' ');\n let count = 0;\n for (let i = 0; i < arr.length; i++) {\n count += arr[i].length + 1;\n if (count > len) {\n t += `${arr[i]}
    `;\n count = 0;\n } else {\n t += `${arr[i]} `;\n }\n }\n } catch (e) {\n // Do nothing\n }\n return t;\n }\n\n makeDataGroupSortable(field, obj) {\n obj.data('field', field);\n obj.data('firstSort', true);\n obj.sortable({\n\n create() {\n $(this).height($(this).height());\n },\n\n 'ui-floating': false,\n start(e, uiStart) {\n $('#sortable-ul-selector-id').sortable({\n sort(event, ui) {\n const $target = $(event.target);\n if (!/html|body/i.test($target.offsetParent()[0].tagName)) {\n const top = event.pageY - $target.offsetParent().offset().top - (ui.helper.outerHeight(true) / 2);\n ui.helper.css({ top: `${top}px` });\n }\n },\n });\n },\n revert: true,\n stop() {\n modJs.orderDataGroup($(this).data('field'));\n },\n axis: 'y',\n scroll: false,\n placeholder: 'sortable-placeholder',\n cursor: 'move',\n });\n }\n\n orderDataGroup(field, callback) {\n const newArr = []; let\n id;\n const list = $(`#${field[0]}_div_inner [fieldid='${field[0]}_div']`);\n let val = $(`#${field[0]}`).val();\n if (val === '' || val == null) {\n val = '[]';\n }\n const data = JSON.parse(val);\n list.each(function () {\n id = $(this).attr('id');\n for (const index in data) {\n if (data[index].id === id) {\n newArr.push(data[index]);\n break;\n }\n }\n });\n\n $(`#${field[0]}`).val(JSON.stringify(newArr));\n\n if (callback != null) {\n callback(newArr);\n }\n }\n\n\n editDataGroup(callback, existingData) {\n const field = this.currentDataGroupField;\n const id = this.currentDataGroupItemId;\n const validator = new FormValidation(`${this.getTableName()}_field_${field[0]}`, true, { ShowPopup: false, LabelErrorClass: 'error' });\n if (validator.checkValues()) {\n let params = validator.getFormParameters();\n\n if (field[1]['custom-validate-function'] !== undefined && field[1]['custom-validate-function'] != null) {\n const tempParams = field[1]['custom-validate-function'].apply(this, [params]);\n if (tempParams.valid) {\n params = tempParams.params;\n } else {\n $(`#${this.getTableName()}_field_${field[0]}_error`).html(tempParams.message);\n $(`#${this.getTableName()}_field_${field[0]}_error`).show();\n return false;\n }\n }\n\n\n if (this.doCustomFilterValidation(params)) {\n let val = '[]';\n if (existingData) {\n val = existingData;\n } else {\n val = $(`#${field[0]}`).val();\n if (val === '' || val == null) {\n val = '[]';\n }\n }\n const data = JSON.parse(val);\n\n let editVal = {};\n let editValIndex = -1;\n const newVals = [];\n for (let i = 0; i < data.length; i++) {\n const item = data[i];\n if (item.id === id) {\n editVal = item;\n editValIndex = i;\n }\n newVals.push(item);\n }\n\n\n params.id = editVal.id;\n newVals[editValIndex] = params;\n\n if (field[1]['sort-function'] !== undefined && field[1]['sort-function'] != null) {\n newVals.sort(field[1]['sort-function']);\n }\n\n val = JSON.stringify(newVals);\n $(`#${field[0]}`).val(val);\n\n const html = this.dataGroupToHtml(val, field);\n\n if (callback) {\n callback(newVals);\n }\n\n this.orderDataGroup(field);\n\n $(`#${field[0]}_div`).html('');\n $(`#${field[0]}_div`).append(html);\n\n this.makeDataGroupSortable(field, $(`#${field[0]}_div_inner`));\n\n\n this.closeDataMessage();\n\n this.showMessage('Item Edited', 'This change will be effective only when you save the form');\n }\n }\n\n return true;\n }\n\n editDataGroupItem(id, existingData, field) {\n const fieldId = id.substring(0, id.lastIndexOf('_'));\n\n let val;\n if (existingData) {\n val = decodeURI(existingData);\n } else {\n val = $(`#${fieldId}`).val();\n }\n const data = JSON.parse(val);\n\n let editVal = {};\n\n for (let i = 0; i < data.length; i++) {\n const item = data[i];\n if (item.id === id) {\n editVal = item;\n }\n }\n\n if (field) {\n field = JSON.parse(decodeURI(field));\n } else {\n field = $(`#${fieldId}`).data('field');\n }\n\n this.showDataGroup(field, editVal);\n }\n\n dataGroupGetNextAutoIncrementId(data) {\n let autoId = 1; let\n id;\n for (let i = 0; i < data.length; i++) {\n const item = data[i];\n if (item.id === undefined || item.id == null) {\n item.id = 1;\n }\n id = item.id.substring(item.id.lastIndexOf('_') + 1, item.id.length);\n if (id >= autoId) {\n autoId = parseInt(id, 10) + 1;\n }\n }\n\n return autoId;\n }\n\n\n deleteDataGroupItem(id, existingData) {\n const fieldId = id.substring(0, id.lastIndexOf('_'));\n\n let val;\n if (existingData) {\n val = decodeURI(existingData);\n } else {\n val = $(`#${fieldId}`).val();\n }\n const data = JSON.parse(val);\n\n const newVal = [];\n\n for (let i = 0; i < data.length; i++) {\n const item = data[i];\n if (item.id !== id) {\n newVal.push(item);\n }\n }\n\n $(`#${fieldId}`).val(JSON.stringify(newVal));\n\n $(`#${id}`).remove();\n\n this.showMessage('Item Removed', 'Item removed. This change will be effective only when you save the form');\n }\n\n\n /**\n * Fill a form with required values after showing it\n * @method fillForm\n * @param object {Array} form data\n * @param formId {String} id of the form\n * @param formId {Array} field meta data\n */\n\n fillForm(object, formId, fields) {\n let placeHolderVal;\n if (fields == null || fields === undefined) {\n fields = this.getFormFields();\n }\n\n if (formId == null || formId === undefined || formId === '') {\n formId = `#${this.getTableName()}Form`;\n }\n\n\n for (let i = 0; i < fields.length; i++) {\n if (fields[i][1].type === 'date') {\n if (object[fields[i][0]] !== '0000-00-00' && object[fields[i][0]] !== '' && object[fields[i][0]] != null && object[fields[i][0]] !== undefined) {\n $(`${formId} #${fields[i][0]}_date`).datepicker('setValue', object[fields[i][0]]);\n }\n } else if (fields[i][1].type === 'colorpick') {\n if (object[fields[i][0]] != null && object[fields[i][0]] !== undefined) {\n $(`${formId} #${fields[i][0]}_colorpick`).colorpicker('setValue', object[fields[i][0]]);\n $(`${formId} #${fields[i][0]}`).val(object[fields[i][0]]);\n }\n } else if (fields[i][1].type === 'datetime' || fields[i][1].type === 'time') {\n if (object[fields[i][0]] !== '0000-00-00 00:00:00' && object[fields[i][0]] !== '' && object[fields[i][0]] != null && object[fields[i][0]] !== undefined) {\n const tempDate = object[fields[i][0]];\n const arr = tempDate.split(' ');\n const dateArr = arr[0].split('-');\n const timeArr = arr[1].split(':');\n $(`${formId} #${fields[i][0]}_datetime`).data('datetimepicker').setLocalDate(new Date(dateArr[0], parseInt(dateArr[1], 10) - 1, dateArr[2], timeArr[0], timeArr[1], timeArr[2]));\n }\n } else if (fields[i][1].type === 'label') {\n $(`${formId} #${fields[i][0]}`).html(object[fields[i][0]]);\n } else if (fields[i][1].type === 'placeholder') {\n if (fields[i][1]['remote-source'] !== undefined && fields[i][1]['remote-source'] != null) {\n // const key = `${fields[i][1]['remote-source'][0]}_${fields[i][1]['remote-source'][1]}_${fields[i][1]['remote-source'][2]}`;\n const key = this.getRemoteSourceKey(fields[i]);\n placeHolderVal = this.fieldMasterData[key][object[fields[i][0]]];\n } else {\n placeHolderVal = object[fields[i][0]];\n }\n\n if (placeHolderVal === undefined || placeHolderVal == null) {\n placeHolderVal = '';\n } else {\n try {\n placeHolderVal = placeHolderVal.replace(/(?:\\r\\n|\\r|\\n)/g, '
    ');\n } catch (e) {\n // Do nothing\n }\n }\n\n if (fields[i][1].formatter !== undefined && fields[i][1].formatter && $.isFunction(fields[i][1].formatter)) {\n try {\n placeHolderVal = fields[i][1].formatter(placeHolderVal);\n } catch (e) {\n // Do nothing\n }\n }\n\n $(`${formId} #${fields[i][0]}`).html(placeHolderVal);\n } else if (fields[i][1].type === 'fileupload') {\n if (object[fields[i][0]] != null && object[fields[i][0]] !== undefined && object[fields[i][0]] !== '') {\n $(`${formId} #${fields[i][0]}`).html(object[fields[i][0]]);\n $(`${formId} #${fields[i][0]}`).attr('val', object[fields[i][0]]);\n $(`${formId} #${fields[i][0]}`).show();\n $(`${formId} #${fields[i][0]}_download`).show();\n $(`${formId} #${fields[i][0]}_remove`).show();\n }\n if (fields[i][1].readonly === true) {\n $(`${formId} #${fields[i][0]}_upload`).remove();\n }\n } else if (fields[i][1].type === 'select') {\n if (object[fields[i][0]] === undefined || object[fields[i][0]] == null || object[fields[i][0]] === '') {\n object[fields[i][0]] = 'NULL';\n }\n $(`${formId} #${fields[i][0]}`).val(object[fields[i][0]]);\n } else if (fields[i][1].type === 'select2') {\n if (object[fields[i][0]] === undefined || object[fields[i][0]] == null || object[fields[i][0]] === '') {\n object[fields[i][0]] = 'NULL';\n }\n $(`${formId} #${fields[i][0]}`).select2('val', object[fields[i][0]]);\n } else if (fields[i][1].type === 'select2multi') {\n // TODO - SM\n if (object[fields[i][0]] === undefined || object[fields[i][0]] == null || object[fields[i][0]] === '') {\n object[fields[i][0]] = 'NULL';\n }\n\n let msVal = [];\n if (object[fields[i][0]] !== undefined && object[fields[i][0]] != null && object[fields[i][0]] !== '') {\n try {\n msVal = JSON.parse(object[fields[i][0]]);\n } catch (e) {\n // Do nothing\n }\n }\n\n $(`${formId} #${fields[i][0]}`).select2('val', msVal);\n const select2Height = $(`${formId} #${fields[i][0]}`).find('.select2-choices').height();\n $(`${formId} #${fields[i][0]}`).find('.controls').css('min-height', `${select2Height}px`);\n $(`${formId} #${fields[i][0]}`).css('min-height', `${select2Height}px`);\n } else if (fields[i][1].type === 'datagroup') {\n try {\n const html = this.dataGroupToHtml(object[fields[i][0]], fields[i]);\n $(`${formId} #${fields[i][0]}`).val(object[fields[i][0]]);\n $(`${formId} #${fields[i][0]}_div`).html('');\n $(`${formId} #${fields[i][0]}_div`).append(html);\n\n this.makeDataGroupSortable(fields[i], $(`${formId} #${fields[i][0]}_div_inner`));\n } catch (e) {\n // Do nothing\n }\n } else if (fields[i][1].type === 'signature') {\n if (object[fields[i][0]] !== '' || object[fields[i][0]] !== undefined\n || object[fields[i][0]] != null) {\n $(`${formId} #${fields[i][0]}`).data('signaturePad').fromDataURL(object[fields[i][0]]);\n }\n } else if (fields[i][1].type === 'simplemde') {\n $(`${formId} #${fields[i][0]}`).data('simplemde').value(object[fields[i][0]]);\n } else if (fields[i][1].type === 'code') {\n const cm = $(`${formId} #${fields[i][0]}`).data('codemirror');\n if (cm) {\n cm.getDoc().setValue(object[fields[i][0]]);\n }\n } else {\n $(`${formId} #${fields[i][0]}`).val(object[fields[i][0]]);\n }\n }\n }\n\n /**\n * Cancel edit or add new on modules\n * @method cancel\n */\n\n cancel() {\n $(`#${this.getTableName()}Form`).hide();\n $(`#${this.getTableName()}`).show();\n }\n\n renderFormField(field) {\n let userId = 0;\n if (this.fieldTemplates[field[1].type] === undefined || this.fieldTemplates[field[1].type] == null) {\n return '';\n }\n let t = this.fieldTemplates[field[1].type];\n field[1].label = this.gt(field[1].label);\n if (field[1].validation !== 'none' && field[1].validation !== 'emailOrEmpty' && field[1].validation !== 'numberOrEmpty' && field[1].type !== 'placeholder' && field[1].label.indexOf('*') < 0) {\n const tempSelectBoxes = ['select', 'select2'];\n if (!(tempSelectBoxes.indexOf(field[1].type) >= 0 && field[1]['allow-null'] === true)) {\n field[1].label = `${field[1].label}*`;\n }\n }\n\n if (field[1].type === 'select' || field[1].type === 'select2' || field[1].type === 'select2multi') {\n t = t.replace(/_id_/g, field[0]);\n t = t.replace(/_label_/g, field[1].label);\n if (field[1].source !== undefined && field[1].source != null) {\n t = t.replace('_options_', this.renderFormSelectOptions(field[1].source, field));\n } else if (field[1]['remote-source'] !== undefined && field[1]['remote-source'] != null) {\n // let key = `${field[1]['remote-source'][0]}_${field[1]['remote-source'][1]}_${field[1]['remote-source'][2]}`;\n // if (field[1]['remote-source'].length === 4) {\n // key = `${key}_${field[1]['remote-source'][3]}`;\n // }\n const key = this.getRemoteSourceKey(field);\n t = t.replace('_options_', this.renderFormSelectOptionsRemote(this.fieldMasterData[key], field));\n }\n } else if (field[1].type === 'colorpick') {\n t = t.replace(/_id_/g, field[0]);\n t = t.replace(/_label_/g, field[1].label);\n } else if (field[1].type === 'date') {\n t = t.replace(/_id_/g, field[0]);\n t = t.replace(/_label_/g, field[1].label);\n } else if (field[1].type === 'datetime') {\n t = t.replace(/_id_/g, field[0]);\n t = t.replace(/_label_/g, field[1].label);\n } else if (field[1].type === 'time') {\n t = t.replace(/_id_/g, field[0]);\n t = t.replace(/_label_/g, field[1].label);\n } else if (field[1].type === 'fileupload') {\n t = t.replace(/_id_/g, field[0]);\n t = t.replace(/_label_/g, field[1].label);\n const ce = this.getCurrentProfile();\n if (ce != null && ce !== undefined) {\n userId = ce.id;\n } else {\n userId = this.getUser().id * -1;\n }\n t = t.replace(/_userId_/g, userId);\n t = t.replace(/_group_/g, this.tab);\n\n if (field[1].filetypes !== undefined && field[1].filetypes != null) {\n t = t.replace(/_filetypes_/g, field[1].filetypes);\n } else {\n t = t.replace(/_filetypes_/g, 'all');\n }\n\n t = t.replace(/_rand_/g, this.generateRandom(14));\n } else if (field[1].type === 'datagroup') {\n t = t.replace(/_id_/g, field[0]);\n t = t.replace(/_label_/g, field[1].label);\n } else if (field[1].type === 'signature') {\n t = t.replace(/_id_/g, field[0]);\n t = t.replace(/_label_/g, field[1].label);\n } else if (field[1].type === 'tinymce' || field[1].type === 'simplemde') {\n t = t.replace(/_id_/g, field[0]);\n t = t.replace(/_label_/g, field[1].label);\n } else {\n t = t.replace(/_id_/g, field[0]);\n t = t.replace(/_label_/g, field[1].label);\n }\n\n\n if (field[1].validation !== undefined && field[1].validation != null && field[1].validation !== '') {\n t = t.replace(/_validation_/g, `validation=\"${field[1].validation}\"`);\n } else {\n t = t.replace(/_validation_/g, '');\n }\n\n if (field[1].help !== undefined && field[1].help !== null) {\n t = t.replace(/_helpline_/g, field[1].help);\n t = t.replace(/_hidden_class_help_/g, '');\n } else {\n t = t.replace(/_helpline_/g, '');\n t = t.replace(/_hidden_class_help_/g, 'hide');\n }\n\n if (field[1].placeholder !== undefined && field[1].placeholder !== null) {\n t = t.replace(/_placeholder_/g, `placeholder=\"${field[1].placeholder}\"`);\n } else {\n t = t.replace(/_placeholder_/g, '');\n }\n\n if (field[1].mask !== undefined && field[1].mask !== null) {\n t = t.replace(/_mask_/g, `mask=\"${field[1].mask}\"`);\n } else {\n t = t.replace(/_mask_/g, '');\n }\n\n return t;\n }\n\n renderFormSelectOptions(options, field) {\n let html = '';\n\n if (field != null && field !== undefined) {\n if (field[1]['allow-null'] === true) {\n if (field[1]['null-label'] !== undefined && field[1]['null-label'] != null) {\n html += ``;\n } else {\n html += '';\n }\n }\n }\n\n\n // Sort options\n\n const tuples = [];\n\n for (const key in options) {\n tuples.push(options[key]);\n }\n if (field[1].sort === true) {\n tuples.sort((a, b) => {\n a = a[1];\n b = b[1];\n\n // eslint-disable-next-line no-nested-ternary\n return a < b ? -1 : (a > b ? 1 : 0);\n });\n }\n\n\n for (let i = 0; i < tuples.length; i++) {\n const prop = tuples[i][0];\n const value = tuples[i][1];\n let t = '';\n t = t.replace('_id_', prop);\n t = t.replace('_val_', this.gt(value));\n html += t;\n }\n return html;\n }\n\n renderFormSelectOptionsRemote(options, field) {\n let html = '';\n if (field[1]['allow-null'] === true) {\n if (field[1]['null-label'] !== undefined && field[1]['null-label'] != null) {\n html += ``;\n } else {\n html += '';\n }\n }\n\n // Sort options\n\n const tuples = [];\n\n for (const key in options) {\n tuples.push([key, options[key]]);\n }\n if (field[1].sort === 'true') {\n tuples.sort((a, b) => {\n a = a[1];\n b = b[1];\n\n // eslint-disable-next-line no-nested-ternary\n return a < b ? -1 : (a > b ? 1 : 0);\n });\n }\n\n for (let i = 0; i < tuples.length; i++) {\n const prop = tuples[i][0];\n const value = tuples[i][1];\n\n let t = '';\n t = t.replace('_id_', prop);\n t = t.replace('_val_', this.gt(value));\n html += t;\n }\n\n\n return html;\n }\n\n setCustomTemplates(templates) {\n this.customTemplates = templates;\n }\n\n setEmailTemplates(templates) {\n this.emailTemplates = templates;\n }\n\n getCustomTemplate(file) {\n return this.customTemplates[file];\n }\n\n setFieldTemplates(templates) {\n this.fieldTemplates = templates;\n }\n\n\n getMetaFieldForRendering(fieldName) {\n return '';\n }\n\n clearDeleteParams() {\n this.deleteParams = {};\n }\n\n getShowAddNew() {\n return this.showAddNew;\n }\n\n /**\n * Override this method to change add new button label\n * @method getAddNewLabel\n */\n\n getAddNewLabel() {\n return 'Add New';\n }\n\n /**\n * Used to set whether to show the add new button for a module\n * @method setShowAddNew\n * @param showAddNew {Boolean} value\n */\n\n setShowAddNew(showAddNew) {\n this.showAddNew = showAddNew;\n }\n\n /**\n * Used to set whether to show delete button for each entry in module\n * @method setShowDelete\n * @param val {Boolean} value\n */\n setShowDelete(val) {\n this.showDelete = val;\n }\n\n\n /**\n * Used to set whether to show edit button for each entry in module\n * @method setShowEdit\n * @param val {Boolean} value\n */\n\n setShowEdit(val) {\n this.showEdit = val;\n }\n\n /**\n * Used to set whether to show save button in form\n * @method setShowSave\n * @param val {Boolean} value\n */\n\n\n setShowSave(val) {\n this.showSave = val;\n }\n\n\n /**\n * Used to set whether to show cancel button in form\n * @method setShowCancel\n * @param val {Boolean} value\n */\n\n setShowCancel(val) {\n this.showCancel = val;\n }\n\n /**\n * Datatable option array will be extended with associative array provided here\n * @method getCustomTableParams\n * @param val {Boolean} value\n */\n\n\n getCustomTableParams() {\n return {};\n }\n\n getActionButtons(obj) {\n return modJs.getActionButtonsHtml(obj.aData[0], obj.aData);\n }\n\n\n /**\n * This return html for action buttons in each row. Override this method if you need to make changes to action buttons.\n * @method getActionButtonsHtml\n * @param id {int} id of the row\n * @param data {Array} data for the row\n * @returns {String} html for action buttons\n */\n\n getActionButtonsHtml(id, data) {\n const editButton = '';\n const deleteButton = '';\n const cloneButton = '';\n let html = '
    _edit__delete__clone_
    ';\n\n if (this.showAddNew) {\n html = html.replace('_clone_', cloneButton);\n } else {\n html = html.replace('_clone_', '');\n }\n\n if (this.showDelete) {\n html = html.replace('_delete_', deleteButton);\n } else {\n html = html.replace('_delete_', '');\n }\n\n if (this.showEdit) {\n html = html.replace('_edit_', editButton);\n } else {\n html = html.replace('_edit_', '');\n }\n\n html = html.replace(/_id_/g, id);\n html = html.replace(/_BASE_/g, this.baseUrl);\n return html;\n }\n\n\n /**\n * Generates a random string\n * @method generateRandom\n * @param length {int} required length of the string\n * @returns {String} random string\n */\n\n generateRandom(length) {\n const d = new Date();\n const chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\n let result = '';\n for (let i = length; i > 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))];\n return result + d.getTime();\n }\n\n\n checkFileType(elementName, fileTypes) {\n const fileElement = document.getElementById(elementName);\n let fileExtension = '';\n if (fileElement.value.lastIndexOf('.') > 0) {\n fileExtension = fileElement.value.substring(fileElement.value.lastIndexOf('.') + 1, fileElement.value.length);\n }\n\n fileExtension = fileExtension.toLowerCase();\n\n const allowed = fileTypes.split(',');\n\n if (allowed.indexOf(fileExtension) < 0) {\n fileElement.value = '';\n this.showMessage('File Type Error', 'Selected file type is not supported');\n this.clearFileElement(elementName);\n return false;\n }\n\n return true;\n }\n\n clearFileElement(elementName) {\n let control = $(`#${elementName}`);\n control.replaceWith(control = control.val('').clone(true));\n }\n\n\n fixJSON(json) {\n if (this.noJSONRequests === '1') {\n json = window.btoa(json);\n }\n return json;\n }\n\n\n getClientDate(date) {\n const offset = this.getClientGMTOffset();\n const tzDate = date.addMinutes(offset * 60);\n return tzDate;\n }\n\n getClientGMTOffset() {\n const rightNow = new Date();\n const jan1 = new Date(rightNow.getFullYear(), 0, 1, 0, 0, 0, 0);\n const temp = jan1.toGMTString();\n const jan2 = new Date(temp.substring(0, temp.lastIndexOf(' ') - 1));\n return (jan1 - jan2) / (1000 * 60 * 60);\n }\n\n /**\n * Override this method in a module to provide the help link for the module. Help link of the module on frontend will get updated with this.\n * @method getHelpLink\n * @returns {String} help link\n */\n\n getHelpLink() {\n return null;\n }\n\n showLoader() {\n $('#iceloader').show();\n }\n\n hideLoader() {\n $('#iceloader').hide();\n }\n\n generateOptions(data) {\n const template = '';\n let options = '';\n for (const index in data) {\n options += template.replace('__val__', index).replace('__text__', data[index]);\n }\n\n return options;\n }\n\n isModuleInstalled(type, name) {\n if (modulesInstalled === undefined || modulesInstalled === null) {\n return false;\n }\n\n return (modulesInstalled[`${type}_${name}`] === 1);\n }\n\n\n setCustomFields(fields) {\n let field; let\n parsed;\n for (let i = 0; i < fields.length; i++) {\n field = fields[i];\n if (field.display !== 'Hidden' && field.data !== '' && field.data !== undefined) {\n try {\n parsed = JSON.parse(field.data);\n if (parsed === undefined || parsed == null) {\n continue;\n } else if (parsed.length !== 2) {\n continue;\n } else if (parsed[1].type === undefined || parsed[1].type == null) {\n continue;\n }\n this.customFields.push(parsed);\n } catch (e) {\n // Do nothing\n }\n }\n }\n }\n\n addCustomFields(fields) {\n for (let i = 0; i < this.customFields.length; i++) {\n fields.push(this.customFields[i]);\n }\n\n return fields;\n }\n\n getImageUrlFromName(firstName, lastName) {\n let seed = firstName.substring(0, 1);\n if (!lastName && lastName.length > 0) {\n seed += firstName.substring(firstName.length - 1, 1);\n } else {\n seed += lastName.substring(0, 1);\n }\n\n const arr = `${firstName}${lastName}`.split('');\n seed += arr.reduce((acc, item) => parseInt(item.charCodeAt(0), 10) + acc, 0);\n\n return `https://avatars.dicebear.com/api/initials/:${seed}.svg`;\n }\n\n downloadPdf(type, data) {\n const url = `${this.clientUrl}service.php?a=pdf&h=${type}&data=${data}`;\n window.open(url,'_blank');\n }\n}\n\nexport default ModuleBase;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Space, Tag } from 'antd';\nimport {\n EditOutlined, DeleteOutlined, CopyOutlined, MonitorOutlined,\n} from '@ant-design/icons';\nimport AdapterBase from './AdapterBase';\nimport IceFormModal from '../components/IceFormModal';\nimport IceStepFormModal from '../components/IceStepFromModal';\nimport IceTable from '../components/IceTable';\nimport MasterDataReader from './MasterDataReader';\n\n\nclass ReactModalAdapterBase extends AdapterBase {\n static get MODAL_TYPE_NORMAL() { return 'Normal'; }\n\n static get MODAL_TYPE_STEPS() { return 'Steps'; }\n\n constructor(endPoint, tab, filter, orderBy) {\n super(endPoint, tab, filter, orderBy);\n this.modalType = this.MODAL_TYPE_NORMAL;\n this.dataPipe = null;\n this.formInitialized = false;\n this.tableInitialized = false;\n this.access = [];\n this.localStorageEnabled = false;\n this.isV2 = true;\n this.masterDataReader = new MasterDataReader(this);\n }\n\n enableLocalStorage() {\n this.localStorageEnabled = true;\n }\n\n setModalType(type) {\n this.modalType = type;\n }\n\n setDataPipe(dataPipe) {\n this.dataPipe = dataPipe;\n }\n\n setAccess(access) {\n this.access = access;\n }\n\n hasAccess(type) {\n return this.access.indexOf(type) > 0;\n }\n\n hasCustomButtons() {\n return false;\n }\n\n initTable() {\n if (this.tableInitialized) {\n return false;\n }\n const tableDom = document.getElementById(`${this.tab}Table`);\n if (tableDom) {\n this.tableContainer = React.createRef();\n let columns = this.getTableColumns();\n if (this.hasAccess('save')\n || this.hasAccess('delete')\n || this.hasAccess('element')\n || this.hasCustomButtons()\n ) {\n columns.push({\n title: 'Actions',\n key: 'actions',\n render: this.getTableActionButtonJsx(this),\n });\n }\n\n columns = columns.map((item) => {\n item.title = this.gt(item.title);\n return item;\n });\n\n ReactDOM.render(\n \n {this.getTableChildComponents()}\n ,\n tableDom,\n );\n }\n\n this.tableInitialized = true;\n\n return true;\n }\n\n initForm() {\n if (this.formInitialized) {\n return false;\n }\n this.formContainer = React.createRef();\n if (this.modalType === this.MODAL_TYPE_NORMAL) {\n ReactDOM.render(\n ,\n document.getElementById(`${this.tab}Form`),\n );\n } else {\n ReactDOM.render(\n ,\n document.getElementById(`${this.tab}Form`),\n );\n }\n\n const filterDom = document.getElementById(`${this.tab}FilterForm`);\n if (filterDom && this.getFilters()) {\n this.filtersContainer = React.createRef();\n ReactDOM.render(\n {\n this.setFilter(values);\n this.filtersAlreadySet = true;\n this.get([]);\n this.tableContainer.current.setFilterData(values);\n closeModal();\n }}\n />,\n filterDom,\n );\n }\n\n this.formInitialized = true;\n return true;\n }\n\n getTableChildComponents() {\n return false;\n }\n\n reloadCurrentElement() {\n this.viewElement(this.currentId);\n }\n\n getTableActionButtonJsx(adapter) {\n return (text, record) => (\n \n {adapter.hasAccess('save') && adapter.showEdit\n && (\n modJs.edit(record.id)} style={{ cursor: 'pointer' }}>\n \n {` ${adapter.gt('Edit')}`}\n \n )}\n {adapter.hasAccess('element')\n && (\n modJs.viewElement(record.id)} style={{ cursor: 'pointer' }}>\n \n {` ${adapter.gt('View')}`}\n \n )}\n {adapter.hasAccess('delete') && adapter.showDelete\n && (\n modJs.deleteRow(record.id)} style={{ cursor: 'pointer' }}>\n \n {` ${adapter.gt('Delete')}`}\n \n )}\n {adapter.hasAccess('save')\n && (\n modJs.copyRow(record.id)} style={{ cursor: 'pointer' }}>\n \n {` ${adapter.gt('Copy')}`}\n \n )}\n \n );\n }\n\n setTableLoading(value) {\n this.tableContainer.current.setLoading(value);\n }\n\n /**\n * Show the view form for an item\n * @method viewElement\n * @param id {int} id of the item to view\n */\n viewElement(id) {\n this.setTableLoading(true);\n this.currentId = id;\n this.getElement(id, {\n noRender: true,\n callBack: (element) => {\n this.showElement(element);\n this.setTableLoading(false);\n },\n });\n }\n\n showElement(element) {\n this.renderForm(element, true);\n }\n\n /**\n * Show the edit form for an item\n * @method edit\n * @param id {int} id of the item to edit\n */\n edit(id) {\n this.setTableLoading(true);\n this.currentId = id;\n this.getElement(id, []);\n }\n\n renderForm(object = null, viewOnly = false) {\n if (object == null) {\n this.currentId = null;\n this.currentElement = null;\n }\n this.setTableLoading(false);\n this.initForm();\n this.formContainer.current.setViewOnly(viewOnly);\n this.formContainer.current.show(object);\n }\n\n showFilters() {\n this.initForm();\n this.filtersContainer.current.show(this.filter);\n }\n\n resetFilters() {\n this.filter = this.origFilter;\n this.filtersAlreadySet = false;\n this.currentFilterString = '';\n this.get([]);\n this.tableContainer.current.setFilterData(this.filter);\n }\n\n get() {\n if (this.tableContainer && this.tableContainer.current) {\n this.tableContainer.current.setCurrentElement(null);\n }\n this.initTable();\n this.masterDataReader.updateAllMasterData()\n .then(() => {\n this.tableContainer.current.reload();\n });\n\n this.trackEvent('get', this.tab, this.table);\n }\n\n showLoader() {\n // $('#iceloader').show();\n }\n\n addActualFieldsForStepModal(steps, fields) {\n return steps.map((item) => {\n item.fields = item.fields.reduce((acc, fieldName) => {\n const field = fields.find(([name]) => name === fieldName);\n if (field) {\n acc.push(field);\n }\n return acc;\n }, []);\n\n return item;\n });\n }\n\n getFormOptions() {\n return {\n width: 1024,\n twoColumnLayout: false,\n };\n }\n}\n\nexport default ReactModalAdapterBase;\n","import React, { useState, useRef, useEffect } from \"react\";\nimport { SketchPicker } from 'react-color';\n\nfunction useComponentVisible(initialIsVisible) {\n const [isComponentVisible, setIsComponentVisible] = useState(initialIsVisible);\n const ref = useRef(null);\n\n const handleClickOutside = (event) => {\n if (ref.current && !ref.current.contains(event.target)) {\n setIsComponentVisible(false);\n }\n };\n\n useEffect(() => {\n document.addEventListener('click', handleClickOutside, true);\n return () => {\n document.removeEventListener('click', handleClickOutside, true);\n };\n });\n\n return { ref, isComponentVisible, setIsComponentVisible };\n}\n\nfunction IceColorPick(props) {\n const { value, onChange, readOnly } = props;\n\n const { ref, isComponentVisible, setIsComponentVisible } = useComponentVisible(true);\n\n const [color, setColor] = useState(value || '#FFF');\n const [showPicker, setShowPicker] = useState(false);\n\n useEffect(() => {\n if (!isComponentVisible) {\n setShowPicker(false);\n }\n }, [isComponentVisible])\n\n useEffect(() => {\n if (value) {\n setColor(value);\n }\n \n }, [value]);\n\n return
    \n {\n if (!showPicker) {\n setIsComponentVisible(true);\n }\n setShowPicker(!showPicker);\n }}\n style={ { backgroundColor: color} }\n />\n
    \n {\n onChange(hex);\n setColor(hex);\n }}\n />\n
    \n
    ;\n} \n\nexport default IceColorPick;\n","import React from \"react\";\nimport {Button, Form, Select, Space, Card, Modal, Table} from \"antd\";\n// import IceDataGroupModal from \"./IceDataGroupModal\";\nimport IceFormModal from \"./IceFormModal\";\nimport ReactDOM from \"react-dom\";\nconst { Option } = Select;\n\nclass IceDataGroup extends React.Component {\n state = {};\n\n constructor(props) {\n super(props);\n this.onChange = props.onChange;\n this.formReference = React.createRef();\n }\n\n render() {\n const { field, adapter } = this.props;\n let { value } = this.props;\n\n value = this.parseValue(value);\n value = value.map(item => ({ ...item, key:item.id } ));\n const columns = JSON.parse(JSON.stringify(field[1].columns));\n\n if (!this.props.readOnly) {\n columns.push({\n title: 'Action',\n key: 'action',\n render: (text, record) => (\n this.getDefaultButtons(record.id)\n ),\n });\n }\n\n return (\n <>\n {!this.props.readOnly &&\n \n \n \n \n }\n \n \n );\n }\n\n createForm(field, adapter, object) {\n this.formContainer = React.createRef();\n const formFields = field[1].form;\n formFields.unshift(['id', { label: 'ID', type: 'hidden' }]);\n ReactDOM.render(\n ,\n document.getElementById('dataGroup'),\n );\n this.formContainer.current.show(object);\n }\n\n unmountForm() {\n ReactDOM.unmountComponentAtNode(document.getElementById('dataGroup'));\n }\n\n show(data) {\n if (!data) {\n this.setState({ visible: true });\n this.updateFields(data);\n } else {\n this.setState({ visible: true });\n if (this.formReference.current) {\n this.updateFields(data);\n } else {\n this.waitForIt(\n () => this.formReference.current != null,\n () => { this.updateFields(data); },\n 100,\n );\n }\n }\n }\n\n parseValue(value) {\n try {\n value = JSON.parse(value);\n } catch (e) {\n value = [];\n }\n if (value == null) {\n value = [];\n }\n return value;\n }\n\n save(params, errorCallback, closeCallback) {\n const {field, value } = this.props;\n\n if (field[1]['custom-validate-function'] != null) {\n let tempParams = field[1]['custom-validate-function'].apply(this, [params]);\n if (tempParams.valid) {\n params = tempParams.params;\n } else {\n errorCallback(tempParams.message);\n return false;\n }\n }\n\n const data = this.parseValue(value);\n\n let newData = [];\n if (!params.id) {\n params.id = `${field[0]}_${this.dataGroupGetNextAutoIncrementId(data)}`;\n data.push(params);\n newData = data;\n } else {\n for (let i = 0; i < data.length; i++) {\n const item = data[i];\n if (item.id !== params.id) {\n newData.push(item);\n } else {\n newData.push(params);\n }\n }\n }\n\n if (field[1]['sort-function'] != null) {\n newData.sort(field[1]['sort-function']);\n }\n\n const val = JSON.stringify(newData);\n\n this.onChange(val);\n\n this.unmountForm();\n }\n\n createCard(item) {\n const { field } = this.props;\n if (field[1]['pre-format-function'] != null) {\n item = field[1]['pre-format-function'].apply(this, [item]);\n }\n\n const template = field[1].html;\n let t = template.replace('#_delete_#', '');\n t = t.replace('#_edit_#', '');\n t = t.replace(/#_id_#/g, item.id);\n\n for (const key in item) {\n let itemVal = item[key];\n if (itemVal !== undefined && itemVal != null && typeof itemVal === 'string') {\n itemVal = itemVal.replace(/(?:\\r\\n|\\r|\\n)/g, '
    ');\n }\n t = t.replace(`#_${key}_#`, itemVal);\n }\n\n if (field[1].render !== undefined && field[1].render != null) {\n t = t.replace('#_renderFunction_#', field[1].render(item));\n }\n\n return (\n \n
    \n
    \n );\n }\n\n getDefaultButtons(id) {\n return (\n \n {this.editDataGroupItem(id)}}>
  • \n {this.deleteDataGroupItem(id)}}>
  • \n \n );\n }\n\n deleteDataGroupItem(id) {\n const {value} = this.props;\n const data = this.parseValue(value);\n\n const newVal = [];\n\n for (let i = 0; i < data.length; i++) {\n const item = data[i];\n if (item.id !== id) {\n newVal.push(item);\n }\n }\n\n const val = JSON.stringify(newVal);\n\n this.onChange(val);\n }\n\n editDataGroupItem(id) {\n const { field, adapter, value } = this.props;\n const data = this.parseValue(value);\n\n let editVal = {};\n\n for (let i = 0; i < data.length; i++) {\n const item = data[i];\n if (item.id === id) {\n editVal = item;\n }\n }\n\n this.createForm(field, adapter, editVal);\n }\n\n resetDataGroup() {\n this.onChange('[]');\n }\n\n dataGroupGetNextAutoIncrementId(data) {\n let autoId = 1; let id;\n for (let i = 0; i < data.length; i++) {\n const item = data[i];\n if (item.id === undefined || item.id == null) {\n item.id = 1;\n }\n id = item.id.substring(item.id.lastIndexOf('_') + 1, item.id.length);\n if (id >= autoId) {\n autoId = parseInt(id, 10) + 1;\n }\n }\n\n return autoId;\n }\n\n}\n\nexport default IceDataGroup;\n","import React from 'react';\nimport {\n Alert, Col, DatePicker, TimePicker, Form, Input, Row,\n} from 'antd';\nimport moment from 'moment';\nimport IceUpload from './IceUpload';\nimport IceDataGroup from './IceDataGroup';\nimport IceSelect from './IceSelect';\nimport IceLabel from './IceLabel';\nimport IceColorPick from './IceColorPick';\nimport IceSignature from './IceSignature';\n\n\nconst ValidationRules = {\n\n float(str) {\n const floatstr = /^[-+]?[0-9]+(\\.[0-9]+)?$/;\n if (str != null && str.match(floatstr)) {\n return true;\n }\n return false;\n },\n\n number(str) {\n const numstr = /^[0-9]+$/;\n if (str != null && str.match(numstr)) {\n return true;\n }\n return false;\n },\n\n numberOrEmpty(str) {\n if (str === '') {\n return true;\n }\n const numstr = /^[0-9]+$/;\n if (str != null && str.match(numstr)) {\n return true;\n }\n return false;\n },\n\n email(str) {\n const emailPattern = /^\\s*[\\w\\-+_]+(\\.[\\w\\-+_]+)*@[\\w\\-+_]+\\.[\\w\\-+_]+(\\.[\\w\\-+_]+)*\\s*$/;\n return str != null && emailPattern.test(str);\n },\n\n emailOrEmpty(str) {\n if (str === '') {\n return true;\n }\n const emailPattern = /^\\s*[\\w\\-+_]+(\\.[\\w\\-+_]+)*@[\\w\\-+_]+\\.[\\w\\-+_]+(\\.[\\w\\-+_]+)*\\s*$/;\n return str != null && emailPattern.test(str);\n },\n\n username(str) {\n const username = /^[a-zA-Z0-9.-]+$/;\n return str != null && username.test(str);\n },\n};\n\n\nclass IceForm extends React.Component {\n constructor(props) {\n super(props);\n this.validationRules = {};\n this.state = {\n validations: {},\n errorMsg: false,\n };\n this.formReference = React.createRef();\n }\n\n showError(errorMsg) {\n this.setState({ errorMsg });\n }\n\n hideError() {\n this.setState({ errorMsg: false });\n }\n\n isReady() {\n return this.formReference.current != null;\n }\n\n validateFields() {\n return this.formReference.current.validateFields();\n }\n\n render() {\n const { fields, twoColumnLayout, adapter } = this.props;\n let formInputs = [];\n const formInputs1 = [];\n const formInputs2 = [];\n const columns = !twoColumnLayout ? 1 : 2;\n for (let i = 0; i < fields.length; i++) {\n formInputs.push(\n adapter.beforeRenderFieldHook(\n fields[i][0],\n this.createFromField(fields[i], this.props.viewOnly),\n fields[i][1]\n )\n );\n }\n formInputs = formInputs.filter(input => !!input);\n\n for (let i = 0; i < formInputs.length; i++) {\n \n if (formInputs[i] != null) {\n if (columns === 1) {\n formInputs1.push(formInputs[i]);\n } else if (i % 2 === 0) {\n formInputs1.push(formInputs[i]);\n } else {\n formInputs2.push(formInputs[i]);\n }\n }\n }\n\n const onFormLayoutChange = () => { };\n\n return (\n \n {this.state.errorMsg\n && (\n <>\n \n
    \n \n )}\n {columns === 1 && formInputs1}\n {columns === 2 && (\n \n
  • \n {formInputs1}\n \n \n {formInputs2}\n \n \n )}\n \n );\n }\n\n isValid() {\n return Object.keys(this.validationRules).reduce((acc, fieldName) => acc && (this.state[fieldName] === 'success' || this.state[fieldName] == null), true);\n }\n\n validateOnChange(event) {\n const validationRule = this.validationRules[event.target.id];\n const { validations } = this.state;\n\n if (validationRule) {\n if (validationRule.rule(event.target.value)) {\n this.state[event.target.id] = 'success';\n this.state[`${event.target.id}_message`] = null;\n } else {\n this.state[event.target.id] = 'error';\n this.state[`${event.target.id}_message`] = validationRule.message;\n }\n }\n this.setState({ validations });\n }\n\n createFromField(field, viewOnly = false) {\n let userId = 0;\n const rules = [];\n const requiredRule = { required: true };\n const [name, data] = field;\n const { adapter, layout } = this.props;\n let validationRule = null;\n data.label = adapter.gt(data.label);\n\n const labelSpan = layout === 'vertical' ? { span: 24 } : { span: 6 };\n\n const tempSelectBoxes = ['select', 'select2', 'select2multi'];\n if (tempSelectBoxes.indexOf(data.type) >= 0 && data['allow-null'] === true) {\n requiredRule.required = false;\n } else if (data.validation === 'none'\n || data.validation === 'emailOrEmpty'\n || data.validation === 'numberOrEmpty'\n ) {\n requiredRule.required = false;\n } else {\n requiredRule.required = true;\n requiredRule.message = this.generateFieldMessage(data.label);\n }\n\n rules.push(requiredRule);\n\n if (data.type === 'hidden') {\n requiredRule.required = false;\n return (\n \n \n \n );\n } if (data.type === 'text') {\n if (data.validation) {\n data.validation = data.validation.replace('OrEmpty', '');\n validationRule = this.getValidationRule(data);\n if (validationRule) {\n this.validationRules[name] = {\n rule: validationRule,\n message: `Invalid value for ${data.label}`,\n };\n }\n }\n if (validationRule != null) {\n return (\n \n {viewOnly\n ? \n : }\n \n );\n }\n return (\n \n {viewOnly\n ? \n : }\n \n );\n } if (data.type === 'textarea') {\n if (!data.rows) {\n data.rows = 4;\n }\n return (\n \n {viewOnly\n ? \n : }\n \n );\n } if (data.type === 'date') {\n return (\n \n \n \n );\n } if (data.type === 'datetime') {\n return (\n \n \n \n );\n } if (data.type === 'time') {\n return (\n \n \n \n );\n } if (data.type === 'fileupload') {\n const currentEmployee = adapter.getCurrentProfile();\n if (currentEmployee != null) {\n userId = currentEmployee.id;\n } else {\n userId = adapter.getUser().id * -1;\n }\n\n if (data.filetypes == null) {\n data.filetypes = '.doc,.docx,.xml,'\n + 'application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,'\n + 'image/*,'\n + '.pdf';\n }\n\n return (\n \n \n \n );\n } if (data.type === 'datagroup') {\n return (\n \n \n \n );\n } if (data.type === 'select2' || data.type === 'select' || data.type === 'select2multi') {\n return (\n \n \n \n );\n } if (data.type === 'colorpick') {\n return (\n \n \n \n );\n } if (data.type === 'signature') {\n return (\n \n \n \n );\n }\n return null;\n }\n\n generateFieldMessage(label) {\n return `${label}: ${this.props.adapter.gt('is required')}`;\n }\n\n getValidationRule(data) {\n if (ValidationRules[data.validation] == null) {\n return null;\n }\n\n return ValidationRules[data.validation];\n }\n\n dataToFormFields(data, fields) {\n for (let i = 0; i < fields.length; i++) {\n const [key, formInputData] = fields[i];\n if (formInputData.type === 'date') {\n data[key] = data[key] ? moment(data[key], 'YYYY-MM-DD') : null;\n } else if (formInputData.type === 'datetime') {\n data[key] = data[key] ? moment(data[key], 'YYYY-MM-DD HH:mm:ss') : null;\n } else if (formInputData.type === 'time') {\n data[key] = data[key] ? moment(data[key], 'HH:mm') : null;\n }\n }\n\n return data;\n }\n\n formFieldsToData(params, fields) {\n for (let i = 0; i < fields.length; i++) {\n const [key, formInputData] = fields[i];\n if (formInputData.type === 'date') {\n params[key] = params[key] ? params[key].format('YYYY-MM-DD') : 'NULL';\n } else if (formInputData.type === 'datetime') {\n params[key] = params[key] ? params[key].format('YYYY-MM-DD HH:mm:ss') : 'NULL';\n } else if (formInputData.type === 'time') {\n params[key] = params[key] ? params[key].format('HH:mm') : 'NULL';\n } else if ((formInputData.type === 'select' || formInputData.type === 'select2') && params[key] == null) {\n params[key] = 'NULL';\n }\n }\n\n return params;\n }\n\n updateFields(data) {\n const { fields } = this.props;\n data = this.dataToFormFields(data, fields);\n this.formReference.current.resetFields();\n if (data == null) {\n return;\n }\n try {\n this.formReference.current.setFieldsValue(data);\n } catch (e) {\n console.log(e);\n }\n }\n\n resetFields() {\n this.formReference.current.resetFields();\n }\n\n setFieldsValue(data) {\n this.formReference.current.setFieldsValue(data);\n }\n\n save(params, success) {\n const { adapter, fields } = this.props;\n let values = params;\n values = adapter.forceInjectValuesBeforeSave(values);\n const msg = adapter.doCustomValidation(values);\n if (msg !== null) {\n this.showError(msg);\n return;\n }\n if (adapter.csrfRequired) {\n values.csrf = $(`#${adapter.getTableName()}Form`).data('csrf');\n }\n\n const id = (adapter.currentElement != null) ? adapter.currentElement.id : null;\n if (id != null && id !== '') {\n values.id = id;\n }\n values = this.formFieldsToData(values, fields);\n adapter.add(values, [], () => adapter.get([]), () => {\n this.formReference.current.resetFields();\n this.showError(false);\n success();\n });\n }\n}\n\nexport default IceForm;\n","import React from 'react';\nimport {\n Button, Col, Modal, Row, Space,\n} from 'antd';\nimport IceForm from './IceForm';\n\nclass IceFormModal extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n visible: false,\n viewOnly: false,\n loading: false,\n };\n this.iceFormReference = React.createRef();\n this.width = 800;\n }\n\n setViewOnly(value) {\n this.setState({ viewOnly: value });\n }\n\n show(data) {\n this.props.adapter.beforeRenderFieldHook = this.props.adapter.beforeRenderField ? this.props.adapter.beforeRenderField(data) : (fieldName, field) => field;\n if (!data) {\n this.setState({ visible: true });\n if (this.iceFormReference.current) {\n this.iceFormReference.current.resetFields();\n }\n } else {\n this.setState({ visible: true });\n if (this.iceFormReference.current && this.iceFormReference.current.isReady()) {\n this.iceFormReference.current.updateFields(data);\n } else {\n this.waitForIt(\n () => this.iceFormReference.current && this.iceFormReference.current.isReady(),\n () => { this.iceFormReference.current.updateFields(data); },\n 1000,\n );\n }\n }\n }\n\n waitForIt(condition, callback, time) {\n setTimeout(() => {\n if (condition()) {\n callback();\n } else {\n this.waitForIt(condition, callback, time);\n }\n }, time);\n }\n\n hide() {\n this.setState({ visible: false });\n }\n\n save(params) {\n this.iceFormReference.current.save(params, () => { this.closeModal(); });\n }\n\n closeModal() {\n this.hide();\n this.iceFormReference.current.showError(false);\n }\n\n render() {\n const {\n fields, adapter, saveCallback, cancelCallback,\n } = this.props;\n\n const additionalProps = {};\n additionalProps.footer = (\n \n \n \n \n \n {\n this.setState({ loading: true });\n const iceFrom = this.iceFormReference.current;\n iceFrom\n .validateFields()\n .then((values) => {\n if (!iceFrom.isValid()) {\n this.setState({ loading: false });\n return;\n }\n if (saveCallback) {\n saveCallback(values, iceFrom.showError.bind(this), this.closeModal.bind(this));\n } else {\n this.save(values);\n }\n this.setState({ loading: false });\n })\n .catch((info) => {\n this.setState({ loading: false });\n });\n }}\n >\n {this.state.viewOnly ? this.props.adapter.gt('Done') : this.props.adapter.gt('Save')}\n \n \n \n \n );\n\n if (this.state.viewOnly) {\n additionalProps.footer = null;\n }\n\n return (\n {\n if (cancelCallback) {\n cancelCallback();\n } else {\n this.closeModal();\n }\n }}\n {...additionalProps}\n >\n \n \n );\n }\n}\n\n\nexport default IceFormModal;\n","import React from 'react';\nimport { Space } from 'antd';\n\nclass IceLabel extends React.Component {\n constructor(props) {\n super(props);\n }\n\n render() {\n const { value } = this.props;\n\n return (\n \n
    \n
    \n );\n }\n\n nl2br(str) {\n return (`${str}`).replace(/([^>\\r\\n]?)(\\r\\n|\\n\\r|\\r|\\n)/g, '
    ');\n }\n}\n\nexport default IceLabel;\n","import React from 'react';\nimport { Form, Select } from 'antd';\n\nconst { Option } = Select;\n\nclass IceSelect extends React.Component {\n constructor(props) {\n super(props);\n this.onChange = props.onChange;\n }\n\n render() {\n let options;\n const { field, adapter } = this.props;\n let { value } = this.props;\n const data = field[1];\n if (data['remote-source'] != null) {\n let key = `${data['remote-source'][0]}_${data['remote-source'][1]}_${data['remote-source'][2]}`;\n if (data['remote-source'].length === 4) {\n key = `${key}_${data['remote-source'][3]}`;\n }\n options = adapter.fieldMasterData[key];\n } else {\n options = data.source;\n }\n const optionData = this.getFormSelectOptionsRemote(options, field, adapter);\n\n // value should be an array if multi-select\n if (data.type === 'select2multi') {\n try {\n value = JSON.parse(value);\n if (value == null) {\n value = [];\n }\n value = value.map((item) => `${item}`);\n } catch (e) {\n value = [];\n }\n }\n\n return (\n input != null\n && option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0\n }\n value={value}\n options={optionData}\n allowClear\n onChange={this.handleChange.bind(this)}\n disabled={this.props.readOnly}\n />\n );\n }\n\n handleChange(value) {\n const { field } = this.props;\n const data = field[1];\n if (data.type === 'select2multi') {\n this.onChange(JSON.stringify(value));\n } else {\n this.onChange(value);\n }\n }\n\n makeOption(option) {\n return ;\n }\n\n getFormSelectOptionsRemote(options, field, adapter) {\n const optionData = [];\n\n if (Array.isArray(options)) {\n for (let i = 0; i < options.length; i++) {\n optionData.push({\n label: options[i][1],\n value: options[i][0],\n });\n }\n } else {\n for (const key in options) {\n optionData.push({\n label: options[key],\n value: key,\n });\n }\n }\n\n // if (field[1].sort === 'true') {\n // tuples.sort((a, b) => {\n // a = a[1];\n // b = b[1];\n //\n // // eslint-disable-next-line no-nested-ternary\n // return a < b ? -1 : (a > b ? 1 : 0);\n // });\n // }\n\n // for (let i = 0; i < tuples.length; i++) {\n // const prop = tuples[i][0];\n // const value = tuples[i][1];\n // optionData.push([prop, adapter.gt(value)]);\n // }\n\n return optionData;\n }\n}\n\nexport default IceSelect;\n","import React from 'react';\nimport SignatureCanvas from 'react-signature-canvas';\nimport { Button, Modal, Tag } from 'antd';\nimport { VerifiedOutlined } from '@ant-design/icons';\n\nclass IceSignature extends React.Component {\n constructor(props) {\n super(props);\n this.onChange = props.onChange;\n this.state = {\n visible: false,\n };\n this.signature = React.createRef();\n }\n\n componentDidMount() {\n }\n\n show() {\n this.setState({ visible: true });\n }\n\n setSignature(ref) {\n if (ref == null) {\n return;\n }\n const { value } = this.props;\n if (value != null && value.length > 10) {\n ref.fromDataURL(value);\n }\n }\n\n hide() {\n this.setState({ visible: false });\n }\n\n clear() {\n this.signature.clear();\n }\n\n save() {\n const data = this.signature.toDataURL('image/png');\n this.onChange(data);\n this.setState({ visible: false });\n }\n\n render() {\n const { readOnly } = this.props;\n\n return (\n <>\n { this.hide(); }}\n footer={[\n ,\n ,\n ,\n ]}\n >\n { this.signature = ref; this.setSignature(ref); }} canvasProps={{ width: 250, height: 200, className: 'sigCanvas', ...( readOnly ? { readOnly } : {}), }} />\n \n { this.show(); }}>\n \n {' '}\n Sign\n \n \n );\n }\n}\n\nexport default IceSignature;\n","import React from 'react';\nimport {\n Button, Divider, Steps, Row, Col, Space,\n} from 'antd';\nimport IceForm from './IceForm';\n\nconst { Step } = Steps;\n\nclass IceStepForm extends IceForm {\n constructor(props) {\n super(props);\n\n this.onChange = props.onChange;\n\n let steps = this.props.fields.map((item) => ({\n ...item,\n ref: React.createRef(),\n }));\n\n steps = steps.map((item) => {\n const { ref, fields } = item;\n item.content = (\n \n );\n\n return item;\n });\n\n this.state = {\n current: 0,\n steps,\n loading: false,\n };\n }\n\n moveToStep(current) {\n this.setState({ current });\n }\n\n next() {\n if (this.validateFields(false) === false) {\n return;\n }\n\n this.showError(false);\n const current = this.state.current + 1;\n this.setState({ current });\n }\n\n prev() {\n const current = this.state.current - 1;\n if (current < 0) {\n return;\n }\n this.setState({ current });\n }\n\n render() {\n const { adapter } = this.props;\n const { current, steps } = this.state;\n return (\n <>\n \n {steps.map((item, index) => (\n this.moveToStep(index)} />\n ))}\n \n \n
    \n {steps.map((item, index) => (\n
    \n {item.content}\n
    \n ))}\n
    \n \n
    \n \n
    \n \n {current < steps.length - 1 && (\n \n )}\n {current > 0 && (\n \n )}\n \n \n \n \n \n \n \n \n \n \n \n );\n }\n\n async saveData() {\n this.setState({ loading: true });\n const data = await this.validateFields(true);\n if (data) {\n this.save(data, () => this.props.closeModal());\n }\n this.setState({ loading: false });\n }\n\n save(params, success) {\n const { adapter } = this.props;\n adapter.add(params, [], () => adapter.get([]), () => {\n this.resetFields();\n this.showError(false);\n success();\n });\n }\n\n updateFields(data) {\n this.state.steps.forEach((item) => {\n const subData = {};\n item.fields.forEach(([key]) => {\n subData[key] = data[key];\n });\n this.updateFieldsSubForm(item.ref, item.fields, subData);\n });\n }\n\n updateFieldsSubForm(ref, fields, data) {\n data = this.dataToFormFields(data, fields);\n ref.current.resetFields();\n if (data == null) {\n return;\n }\n try {\n ref.current.setFieldsValue(data);\n } catch (e) {\n console.log(e);\n }\n }\n\n async validateFields(all) {\n const { adapter } = this.props;\n const steps = all ? this.state.steps : this.state.steps.slice(0, this.state.current + 1);\n const promiseList = steps.map(\n (item) => item.ref.current.validateFields()\n .then((values) => {\n if (!item.ref.current.isValid()) {\n return false;\n }\n return values;\n })\n .catch(() => false),\n );\n\n const allData = await Promise.all(promiseList);\n const failedIndex = allData.findIndex((item) => item === false);\n\n if (failedIndex >= 0) {\n this.setState({ current: failedIndex });\n\n return false;\n }\n\n let values = Object.assign({}, ...allData);\n values = adapter.forceInjectValuesBeforeSave(values);\n const msg = adapter.doCustomValidation(values);\n\n if (msg !== null) {\n this.showError(msg);\n return false;\n }\n\n if (adapter.csrfRequired) {\n values.csrf = $(`#${adapter.getTableName()}Form`).data('csrf');\n }\n\n const id = (adapter.currentElement != null) ? adapter.currentElement.id : null;\n if (id != null && id !== '') {\n values.id = id;\n }\n\n const fields = [].concat.apply([], this.state.steps.map((item) => item.fields));\n\n return this.formFieldsToData(values, fields);\n }\n\n getSubFormData(ref, fields, params) {\n const { adapter } = this.props;\n let values = params;\n values = adapter.forceInjectValuesBeforeSave(values);\n const msg = adapter.doCustomValidation(values);\n if (msg !== null) {\n ref.current.showError(msg);\n return;\n }\n\n if (adapter.csrfRequired) {\n values.csrf = $(`#${adapter.getTableName()}Form`).data('csrf');\n }\n\n const id = (adapter.currentElement != null) ? adapter.currentElement.id : null;\n if (id != null && id !== '') {\n values.id = id;\n }\n\n return this.formFieldsToData(values, fields);\n }\n\n showError(errorMsg) {\n this.state.steps.forEach((item) => item.ref.current.showError(errorMsg));\n }\n\n resetFields() {\n this.state.steps.forEach((item) => item.ref.current.resetFields());\n }\n\n hideError() {\n this.state.steps.forEach((item) => item.ref.current.hideError());\n }\n\n isReady() {\n return this.state.steps.reduce((acc, item) => acc && item.ref.current != null, true);\n }\n}\n\nexport default IceStepForm;\n","import React from 'react';\nimport { Modal } from 'antd';\nimport IceFormModal from './IceFormModal';\nimport IceStepForm from './IceStepForm';\n\nclass IceStepFormModal extends IceFormModal {\n constructor(props) {\n super(props);\n this.width = 850;\n }\n\n show(data) {\n this.props.adapter.beforeRenderFieldHook = this.props.adapter.beforeRenderField ? this.props.adapter.beforeRenderField(data) : (fieldName, field) => field;\n if (!data) {\n this.setState({ visible: true });\n if (this.iceFormReference.current) {\n this.iceFormReference.current.resetFields();\n }\n } else {\n this.setState({ visible: true });\n if (this.iceFormReference.current && this.iceFormReference.current.isReady()) {\n this.iceFormReference.current.moveToStep(0);\n this.iceFormReference.current.updateFields(data);\n } else {\n this.waitForIt(\n () => this.iceFormReference.current && this.iceFormReference.current.isReady(),\n () => {\n this.iceFormReference.current.updateFields(data);\n this.iceFormReference.current.moveToStep(0);\n },\n 1000,\n );\n }\n }\n }\n\n hide() {\n this.iceFormReference.current.moveToStep(0);\n this.setState({ visible: false });\n }\n\n render() {\n const { fields, adapter } = this.props;\n const { width, twoColumnLayout, layout } = this.props.adapter.getFormOptions();\n return (\n {\n this.closeModal();\n }}\n >\n { this.closeModal(); }}\n twoColumnLayout={twoColumnLayout || false}\n layout={layout}\n />\n \n );\n }\n}\n\nexport default IceStepFormModal;\n","import React, {Component} from 'react';\nimport {Col, Form, Input, Row, Table, Space, Button, Tag, message} from 'antd';\nimport {\n FilterOutlined,\n PlusCircleOutlined,\n} from '@ant-design/icons';\nconst { Search } = Input;\n\nclass IceTable extends React.Component {\n state = {\n data: [],\n pagination: {},\n loading: true,\n fetchConfig: false,\n //filter: null,\n showLoading: true,\n currentElement: null,\n fetchCompleted: false,\n };\n\n constructor(props) {\n super(props);\n }\n\n componentDidMount() {\n const fetchConfig = {\n page: 1,\n };\n message.config({\n top: 40,\n });\n this.setState({\n fetchConfig,\n //filter: this.props.adapter.filter,\n pagination: { 'pageSize': this.props.reader.pageSize }\n });\n //this.fetch(fetchConfig);\n }\n\n handleTableChange = (pagination, filters, sorter) => {\n const pager = { ...this.state.pagination };\n const { search } = this.state;\n pager.current = pagination.current;\n this.setState({\n pagination: pager,\n });\n\n const fetchConfig = {\n limit: pagination.pageSize,\n page: pagination.current,\n sortField: sorter.field,\n sortOrder: sorter.order,\n filters: JSON.stringify(filters),\n search: search,\n };\n\n this.setState({\n fetchConfig\n });\n\n this.fetch(fetchConfig);\n };\n\n reload = () => {\n const fetchConfig = this.state.fetchConfig;\n if (fetchConfig) {\n this.fetch(fetchConfig)\n }\n };\n\n search = (value) => {\n this.setState({ search: value });\n const fetchConfig = this.state.fetchConfig;\n console.log(fetchConfig);\n if (fetchConfig) {\n fetchConfig.search = value;\n this.setState({\n fetchConfig\n });\n this.fetch(fetchConfig)\n }\n }\n\n addNew = () => {\n this.props.adapter.renderForm();\n }\n\n showFilters = () => {\n this.props.adapter.showFilters();\n }\n\n setFilterData = (filter) => {\n this.setState({\n filter,\n });\n }\n\n setCurrentElement = (currentElement) => {\n this.setState({currentElement});\n }\n\n setLoading(value) {\n this.setState({ loading: value });\n }\n\n fetch = (params = {}) => {\n //this.setState({ loading: this.state.showLoading });\n this.setState({ loading: true });\n //const hideMessage = message.loading({ content: 'Loading Latest Data ...', key: 'loadingTable', duration: 1});\n const pagination = { ...this.state.pagination };\n\n if (this.props.adapter.localStorageEnabled) {\n try {\n const cachedResponse = this.props.reader.getCachedResponse(params);\n if (cachedResponse.items) {\n this.setState({\n loading: false,\n data: cachedResponse.items,\n pagination,\n showLoading: false,\n });\n } else {\n this.props.reader.clearCachedResponse(params);\n }\n } catch (e) {\n this.props.reader.clearCachedResponse(params);\n }\n }\n\n this.props.reader.get(params)\n .then(data => {\n // Read total count from server\n // pagination.total = data.totalCount;\n pagination.total = data.total;\n //hideMessage();\n // setTimeout(\n // () => message.success({ content: 'Loading Completed!', key: 'loadingSuccess', duration: 1 }),\n // 600\n // );\n this.setState({\n loading: false,\n data: data.items,\n pagination,\n showLoading: false,\n fetchCompleted: true,\n });\n });\n };\n\n getChildrenWithProps(element) {\n const childrenWithProps = React.Children.map(this.props.children, child => {\n // checking isValidElement is the safe way and avoids a typescript error too\n const props = {\n element,\n adapter: this.props.adapter,\n loading: this.state.loading,\n };\n if (React.isValidElement(child)) {\n return React.cloneElement(child, props);\n }\n return child;\n });\n\n return childrenWithProps;\n }\n\n render() {\n return (\n \n {!this.state.currentElement &&\n \n \n \n \n {this.props.adapter.hasAccess('save') && this.props.adapter.getShowAddNew() &&\n \n }\n {this.props.adapter.getFilters() &&\n \n }\n\n {this.state.fetchCompleted\n && this.props.adapter.getFilters()\n && this.props.adapter.filter != null\n && this.props.adapter.filter !== []\n && this.props.adapter.filter !== ''\n && this.props.adapter.getFilterString(this.props.adapter.filter) !== '' &&\n this.props.adapter.resetFilters()}\n visible={this.props.adapter.filter != null && this.props.adapter.filter !== [] && this.props.adapter.filter !== ''}\n >\n {this.props.adapter.getFilterString(this.props.adapter.filter)}\n \n }\n\n \n \n \n this.form = formRef}\n name=\"advanced_search\"\n className=\"ant-advanced-search-form\"\n >\n \n this.search(value)}\n />\n \n \n \n \n \n \n index % 2 === 0 ? 'table-row-light' : 'table-row-dark'}\n columns={this.props.columns}\n rowKey={record => record.id}\n dataSource={this.state.data}\n pagination={this.state.pagination}\n loading={this.state.loading}\n onChange={this.handleTableChange}\n reader={this.props.dataPipe}\n />\n \n \n \n }\n {this.state.currentElement &&\n this.getChildrenWithProps(this.state.currentElement)\n }\n \n );\n }\n}\n\nexport default IceTable;\n","import React from \"react\";\nimport {Button, message, Space, Upload, Tag} from \"antd\";\nimport { UploadOutlined, DownloadOutlined, DeleteOutlined } from '@ant-design/icons';\n\nclass IceUpload extends React.Component {\n state = {\n fileList: [],\n uploaded: false,\n };\n\n _isMounted = false;\n\n constructor(props) {\n super(props);\n this.onChange = props.onChange;\n }\n\n componentDidMount() {\n this._isMounted = true;\n message.config({\n top: 55,\n duration: 2,\n });\n }\n\n componentWillUnmount() {\n this._isMounted = false;\n }\n\n handleDelete = () => {\n this.setState({ fileList: [], value: null, uploaded: false});\n this.onChange(null);\n };\n\n handleView = () => {\n let currentValue = this.props.value;\n if (this.state.value != null && this.state.value !== '') {\n currentValue = this.state.value;\n }\n if (currentValue == null || currentValue === '') {\n message.error('File not found');\n return;\n }\n\n const { adapter } = this.props;\n\n adapter.getFile(currentValue)\n .then((data) => {\n const file = {\n key: data.uid,\n uid: data.uid,\n name: data.name,\n status: data.status,\n url: data.filename,\n };\n window.open(file.url);\n }).catch((e) => {\n\n });\n };\n\n handleChange = info => {\n let fileList = [...info.fileList];\n\n if (fileList.length === 0) {\n this.setState({ value: null });\n this.onChange(null);\n this.setState({fileList: []});\n this.setState({uploaded: false});\n return;\n }\n\n fileList = fileList.slice(-1);\n\n if (fileList[0].response && fileList[0].response.status === 'error') {\n this.setState({ value: null });\n this.onChange(null);\n this.setState({fileList: []});\n this.setState({uploaded: false});\n message.error(`Error: ${fileList[0].response.message}`);\n return;\n }\n\n fileList = fileList.map(file => {\n if (file.response) {\n // Component will show file.url as link\n file.name = file.response.name;\n file.url = file.response.url;\n }\n return file;\n });\n\n this.setState({fileList});\n this.setState({ value: this.getFileName(fileList), uploaded: true });\n this.onChange(this.getFileName(fileList));\n };\n\n getFileName(fileList) {\n let file = null;\n if (fileList) {\n file = fileList[0];\n }\n\n return file ? file.name : '';\n }\n\n generateRandom(length) {\n const d = new Date();\n const chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\n let result = '';\n for (let i = length; i > 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))];\n return result + d.getTime();\n }\n\n render() {\n let fileName = this.generateRandom(14);\n\n const props = {\n action: `${window.CLIENT_BASE_URL}fileupload-new.php?user=${this.props.user}&file_group=${this.props.fileGroup}&file_name=${fileName}`,\n onChange: this.handleChange,\n onRemove: this.handleDelete,\n multiple: false,\n listType: 'picture',\n };\n\n return (\n \n {!this.props.readOnly &&\n \n \n \n \n {' '}\n Upload\n \n \n \n }\n \n { (((this.props.value != null && this.props.value !== '') || (this.state.value != null && this.state.value !== '')) && !this.state.uploaded) &&\n \n }\n { (((this.props.value != null && this.props.value !== '') || (this.state.value != null && this.state.value !== '')) && !this.state.uploaded && !this.props.readOnly) &&\n \n }\n \n \n\n );\n }\n}\n\nexport default IceUpload;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar DEFAULT_SIZE = 24;\n\nexports.default = function (_ref) {\n var _ref$fill = _ref.fill,\n fill = _ref$fill === undefined ? 'currentColor' : _ref$fill,\n _ref$width = _ref.width,\n width = _ref$width === undefined ? DEFAULT_SIZE : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === undefined ? DEFAULT_SIZE : _ref$height,\n _ref$style = _ref.style,\n style = _ref$style === undefined ? {} : _ref$style,\n props = _objectWithoutProperties(_ref, ['fill', 'width', 'height', 'style']);\n\n return _react2.default.createElement(\n 'svg',\n _extends({\n viewBox: '0 0 ' + DEFAULT_SIZE + ' ' + DEFAULT_SIZE,\n style: _extends({ fill: fill, width: width, height: height }, style)\n }, props),\n _react2.default.createElement('path', { d: 'M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z' })\n );\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar DEFAULT_SIZE = 24;\n\nexports.default = function (_ref) {\n var _ref$fill = _ref.fill,\n fill = _ref$fill === undefined ? 'currentColor' : _ref$fill,\n _ref$width = _ref.width,\n width = _ref$width === undefined ? DEFAULT_SIZE : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === undefined ? DEFAULT_SIZE : _ref$height,\n _ref$style = _ref.style,\n style = _ref$style === undefined ? {} : _ref$style,\n props = _objectWithoutProperties(_ref, ['fill', 'width', 'height', 'style']);\n\n return _react2.default.createElement(\n 'svg',\n _extends({\n viewBox: '0 0 ' + DEFAULT_SIZE + ' ' + DEFAULT_SIZE,\n style: _extends({ fill: fill, width: width, height: height }, style)\n }, props),\n _react2.default.createElement('path', { d: 'M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z' })\n );\n};","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n if (\n (utils.isBlob(requestData) || utils.isFile(requestData)) &&\n requestData.type\n ) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = unescape(encodeURIComponent(config.auth.password)) || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(timeoutErrorMessage, config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignMergeValue;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var copyObject = require('./_copyObject'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var Stack = require('./_Stack'),\n arrayEach = require('./_arrayEach'),\n assignValue = require('./_assignValue'),\n baseAssign = require('./_baseAssign'),\n baseAssignIn = require('./_baseAssignIn'),\n cloneBuffer = require('./_cloneBuffer'),\n copyArray = require('./_copyArray'),\n copySymbols = require('./_copySymbols'),\n copySymbolsIn = require('./_copySymbolsIn'),\n getAllKeys = require('./_getAllKeys'),\n getAllKeysIn = require('./_getAllKeysIn'),\n getTag = require('./_getTag'),\n initCloneArray = require('./_initCloneArray'),\n initCloneByTag = require('./_initCloneByTag'),\n initCloneObject = require('./_initCloneObject'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isMap = require('./isMap'),\n isObject = require('./isObject'),\n isSet = require('./isSet'),\n keys = require('./keys'),\n keysIn = require('./keysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;\n","var isObject = require('./isObject');\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nmodule.exports = baseCreate;\n","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","var Stack = require('./_Stack'),\n assignMergeValue = require('./_assignMergeValue'),\n baseFor = require('./_baseFor'),\n baseMergeDeep = require('./_baseMergeDeep'),\n isObject = require('./isObject'),\n keysIn = require('./keysIn'),\n safeGet = require('./_safeGet');\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nmodule.exports = baseMerge;\n","var assignMergeValue = require('./_assignMergeValue'),\n cloneBuffer = require('./_cloneBuffer'),\n cloneTypedArray = require('./_cloneTypedArray'),\n copyArray = require('./_copyArray'),\n initCloneObject = require('./_initCloneObject'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLikeObject = require('./isArrayLikeObject'),\n isBuffer = require('./isBuffer'),\n isFunction = require('./isFunction'),\n isObject = require('./isObject'),\n isPlainObject = require('./isPlainObject'),\n isTypedArray = require('./isTypedArray'),\n safeGet = require('./_safeGet'),\n toPlainObject = require('./toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nmodule.exports = baseMergeDeep;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var identity = require('./identity');\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nmodule.exports = castFunction;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var Uint8Array = require('./_Uint8Array');\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n","var root = require('./_root');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nmodule.exports = cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nmodule.exports = cloneRegExp;\n","var Symbol = require('./_Symbol');\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nmodule.exports = cloneSymbol;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = copyArray;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","var copyObject = require('./_copyObject'),\n getSymbols = require('./_getSymbols');\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nmodule.exports = copySymbols;\n","var copyObject = require('./_copyObject'),\n getSymbolsIn = require('./_getSymbolsIn');\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbolsIn = require('./_getSymbolsIn'),\n keysIn = require('./keysIn');\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nmodule.exports = getAllKeysIn;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var arrayPush = require('./_arrayPush'),\n getPrototype = require('./_getPrototype'),\n getSymbols = require('./_getSymbols'),\n stubArray = require('./stubArray');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nmodule.exports = getSymbolsIn;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nmodule.exports = initCloneArray;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer'),\n cloneDataView = require('./_cloneDataView'),\n cloneRegExp = require('./_cloneRegExp'),\n cloneSymbol = require('./_cloneSymbol'),\n cloneTypedArray = require('./_cloneTypedArray');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nmodule.exports = initCloneByTag;\n","var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nmodule.exports = initCloneObject;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nmodule.exports = safeGet;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","var baseClone = require('./_baseClone');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nmodule.exports = cloneDeep;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","module.exports = require('./forEach');\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var arrayEach = require('./_arrayEach'),\n baseEach = require('./_baseEach'),\n castFunction = require('./_castFunction'),\n isArray = require('./isArray');\n\n/**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, castFunction(iteratee));\n}\n\nmodule.exports = forEach;\n","var baseForOwn = require('./_baseForOwn'),\n castFunction = require('./_castFunction');\n\n/**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forOwn(object, iteratee) {\n return object && baseForOwn(object, castFunction(iteratee));\n}\n\nmodule.exports = forOwn;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","var baseIsMap = require('./_baseIsMap'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nmodule.exports = isMap;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n","var baseIsSet = require('./_baseIsSet'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nmodule.exports = isSet;\n","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","/**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nmodule.exports = isUndefined;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n isArray = require('./isArray');\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nmodule.exports = map;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nmodule.exports = merge;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var debounce = require('./debounce'),\n isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n","var isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n define([], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory();\n } else {\n root.materialColors = factory();\n }\n})(this, function() {\n return {\"red\":{\"50\":\"#ffebee\",\"100\":\"#ffcdd2\",\"200\":\"#ef9a9a\",\"300\":\"#e57373\",\"400\":\"#ef5350\",\"500\":\"#f44336\",\"600\":\"#e53935\",\"700\":\"#d32f2f\",\"800\":\"#c62828\",\"900\":\"#b71c1c\",\"a100\":\"#ff8a80\",\"a200\":\"#ff5252\",\"a400\":\"#ff1744\",\"a700\":\"#d50000\"},\"pink\":{\"50\":\"#fce4ec\",\"100\":\"#f8bbd0\",\"200\":\"#f48fb1\",\"300\":\"#f06292\",\"400\":\"#ec407a\",\"500\":\"#e91e63\",\"600\":\"#d81b60\",\"700\":\"#c2185b\",\"800\":\"#ad1457\",\"900\":\"#880e4f\",\"a100\":\"#ff80ab\",\"a200\":\"#ff4081\",\"a400\":\"#f50057\",\"a700\":\"#c51162\"},\"purple\":{\"50\":\"#f3e5f5\",\"100\":\"#e1bee7\",\"200\":\"#ce93d8\",\"300\":\"#ba68c8\",\"400\":\"#ab47bc\",\"500\":\"#9c27b0\",\"600\":\"#8e24aa\",\"700\":\"#7b1fa2\",\"800\":\"#6a1b9a\",\"900\":\"#4a148c\",\"a100\":\"#ea80fc\",\"a200\":\"#e040fb\",\"a400\":\"#d500f9\",\"a700\":\"#aa00ff\"},\"deepPurple\":{\"50\":\"#ede7f6\",\"100\":\"#d1c4e9\",\"200\":\"#b39ddb\",\"300\":\"#9575cd\",\"400\":\"#7e57c2\",\"500\":\"#673ab7\",\"600\":\"#5e35b1\",\"700\":\"#512da8\",\"800\":\"#4527a0\",\"900\":\"#311b92\",\"a100\":\"#b388ff\",\"a200\":\"#7c4dff\",\"a400\":\"#651fff\",\"a700\":\"#6200ea\"},\"indigo\":{\"50\":\"#e8eaf6\",\"100\":\"#c5cae9\",\"200\":\"#9fa8da\",\"300\":\"#7986cb\",\"400\":\"#5c6bc0\",\"500\":\"#3f51b5\",\"600\":\"#3949ab\",\"700\":\"#303f9f\",\"800\":\"#283593\",\"900\":\"#1a237e\",\"a100\":\"#8c9eff\",\"a200\":\"#536dfe\",\"a400\":\"#3d5afe\",\"a700\":\"#304ffe\"},\"blue\":{\"50\":\"#e3f2fd\",\"100\":\"#bbdefb\",\"200\":\"#90caf9\",\"300\":\"#64b5f6\",\"400\":\"#42a5f5\",\"500\":\"#2196f3\",\"600\":\"#1e88e5\",\"700\":\"#1976d2\",\"800\":\"#1565c0\",\"900\":\"#0d47a1\",\"a100\":\"#82b1ff\",\"a200\":\"#448aff\",\"a400\":\"#2979ff\",\"a700\":\"#2962ff\"},\"lightBlue\":{\"50\":\"#e1f5fe\",\"100\":\"#b3e5fc\",\"200\":\"#81d4fa\",\"300\":\"#4fc3f7\",\"400\":\"#29b6f6\",\"500\":\"#03a9f4\",\"600\":\"#039be5\",\"700\":\"#0288d1\",\"800\":\"#0277bd\",\"900\":\"#01579b\",\"a100\":\"#80d8ff\",\"a200\":\"#40c4ff\",\"a400\":\"#00b0ff\",\"a700\":\"#0091ea\"},\"cyan\":{\"50\":\"#e0f7fa\",\"100\":\"#b2ebf2\",\"200\":\"#80deea\",\"300\":\"#4dd0e1\",\"400\":\"#26c6da\",\"500\":\"#00bcd4\",\"600\":\"#00acc1\",\"700\":\"#0097a7\",\"800\":\"#00838f\",\"900\":\"#006064\",\"a100\":\"#84ffff\",\"a200\":\"#18ffff\",\"a400\":\"#00e5ff\",\"a700\":\"#00b8d4\"},\"teal\":{\"50\":\"#e0f2f1\",\"100\":\"#b2dfdb\",\"200\":\"#80cbc4\",\"300\":\"#4db6ac\",\"400\":\"#26a69a\",\"500\":\"#009688\",\"600\":\"#00897b\",\"700\":\"#00796b\",\"800\":\"#00695c\",\"900\":\"#004d40\",\"a100\":\"#a7ffeb\",\"a200\":\"#64ffda\",\"a400\":\"#1de9b6\",\"a700\":\"#00bfa5\"},\"green\":{\"50\":\"#e8f5e9\",\"100\":\"#c8e6c9\",\"200\":\"#a5d6a7\",\"300\":\"#81c784\",\"400\":\"#66bb6a\",\"500\":\"#4caf50\",\"600\":\"#43a047\",\"700\":\"#388e3c\",\"800\":\"#2e7d32\",\"900\":\"#1b5e20\",\"a100\":\"#b9f6ca\",\"a200\":\"#69f0ae\",\"a400\":\"#00e676\",\"a700\":\"#00c853\"},\"lightGreen\":{\"50\":\"#f1f8e9\",\"100\":\"#dcedc8\",\"200\":\"#c5e1a5\",\"300\":\"#aed581\",\"400\":\"#9ccc65\",\"500\":\"#8bc34a\",\"600\":\"#7cb342\",\"700\":\"#689f38\",\"800\":\"#558b2f\",\"900\":\"#33691e\",\"a100\":\"#ccff90\",\"a200\":\"#b2ff59\",\"a400\":\"#76ff03\",\"a700\":\"#64dd17\"},\"lime\":{\"50\":\"#f9fbe7\",\"100\":\"#f0f4c3\",\"200\":\"#e6ee9c\",\"300\":\"#dce775\",\"400\":\"#d4e157\",\"500\":\"#cddc39\",\"600\":\"#c0ca33\",\"700\":\"#afb42b\",\"800\":\"#9e9d24\",\"900\":\"#827717\",\"a100\":\"#f4ff81\",\"a200\":\"#eeff41\",\"a400\":\"#c6ff00\",\"a700\":\"#aeea00\"},\"yellow\":{\"50\":\"#fffde7\",\"100\":\"#fff9c4\",\"200\":\"#fff59d\",\"300\":\"#fff176\",\"400\":\"#ffee58\",\"500\":\"#ffeb3b\",\"600\":\"#fdd835\",\"700\":\"#fbc02d\",\"800\":\"#f9a825\",\"900\":\"#f57f17\",\"a100\":\"#ffff8d\",\"a200\":\"#ffff00\",\"a400\":\"#ffea00\",\"a700\":\"#ffd600\"},\"amber\":{\"50\":\"#fff8e1\",\"100\":\"#ffecb3\",\"200\":\"#ffe082\",\"300\":\"#ffd54f\",\"400\":\"#ffca28\",\"500\":\"#ffc107\",\"600\":\"#ffb300\",\"700\":\"#ffa000\",\"800\":\"#ff8f00\",\"900\":\"#ff6f00\",\"a100\":\"#ffe57f\",\"a200\":\"#ffd740\",\"a400\":\"#ffc400\",\"a700\":\"#ffab00\"},\"orange\":{\"50\":\"#fff3e0\",\"100\":\"#ffe0b2\",\"200\":\"#ffcc80\",\"300\":\"#ffb74d\",\"400\":\"#ffa726\",\"500\":\"#ff9800\",\"600\":\"#fb8c00\",\"700\":\"#f57c00\",\"800\":\"#ef6c00\",\"900\":\"#e65100\",\"a100\":\"#ffd180\",\"a200\":\"#ffab40\",\"a400\":\"#ff9100\",\"a700\":\"#ff6d00\"},\"deepOrange\":{\"50\":\"#fbe9e7\",\"100\":\"#ffccbc\",\"200\":\"#ffab91\",\"300\":\"#ff8a65\",\"400\":\"#ff7043\",\"500\":\"#ff5722\",\"600\":\"#f4511e\",\"700\":\"#e64a19\",\"800\":\"#d84315\",\"900\":\"#bf360c\",\"a100\":\"#ff9e80\",\"a200\":\"#ff6e40\",\"a400\":\"#ff3d00\",\"a700\":\"#dd2c00\"},\"brown\":{\"50\":\"#efebe9\",\"100\":\"#d7ccc8\",\"200\":\"#bcaaa4\",\"300\":\"#a1887f\",\"400\":\"#8d6e63\",\"500\":\"#795548\",\"600\":\"#6d4c41\",\"700\":\"#5d4037\",\"800\":\"#4e342e\",\"900\":\"#3e2723\"},\"grey\":{\"50\":\"#fafafa\",\"100\":\"#f5f5f5\",\"200\":\"#eeeeee\",\"300\":\"#e0e0e0\",\"400\":\"#bdbdbd\",\"500\":\"#9e9e9e\",\"600\":\"#757575\",\"700\":\"#616161\",\"800\":\"#424242\",\"900\":\"#212121\"},\"blueGrey\":{\"50\":\"#eceff1\",\"100\":\"#cfd8dc\",\"200\":\"#b0bec5\",\"300\":\"#90a4ae\",\"400\":\"#78909c\",\"500\":\"#607d8b\",\"600\":\"#546e7a\",\"700\":\"#455a64\",\"800\":\"#37474f\",\"900\":\"#263238\"},\"darkText\":{\"primary\":\"rgba(0, 0, 0, 0.87)\",\"secondary\":\"rgba(0, 0, 0, 0.54)\",\"disabled\":\"rgba(0, 0, 0, 0.38)\",\"dividers\":\"rgba(0, 0, 0, 0.12)\"},\"lightText\":{\"primary\":\"rgba(255, 255, 255, 1)\",\"secondary\":\"rgba(255, 255, 255, 0.7)\",\"disabled\":\"rgba(255, 255, 255, 0.5)\",\"dividers\":\"rgba(255, 255, 255, 0.12)\"},\"darkIcons\":{\"active\":\"rgba(0, 0, 0, 0.54)\",\"inactive\":\"rgba(0, 0, 0, 0.38)\"},\"lightIcons\":{\"active\":\"rgba(255, 255, 255, 1)\",\"inactive\":\"rgba(255, 255, 255, 0.5)\"},\"white\":\"#ffffff\",\"black\":\"#000000\"};\n});\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\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","/**\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'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\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'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\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'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar has = Function.call.bind(Object.prototype.hasOwnProperty);\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\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 */\n /*eslint-disable no-self-compare*/\n function 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 return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\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\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\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'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AlphaPicker = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _common = require('../common');\n\nvar _AlphaPointer = require('./AlphaPointer');\n\nvar _AlphaPointer2 = _interopRequireDefault(_AlphaPointer);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar AlphaPicker = exports.AlphaPicker = function AlphaPicker(_ref) {\n var rgb = _ref.rgb,\n hsl = _ref.hsl,\n width = _ref.width,\n height = _ref.height,\n onChange = _ref.onChange,\n direction = _ref.direction,\n style = _ref.style,\n renderers = _ref.renderers,\n pointer = _ref.pointer,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n picker: {\n position: 'relative',\n width: width,\n height: height\n },\n alpha: {\n radius: '2px',\n style: style\n }\n }\n });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.picker, className: 'alpha-picker ' + className },\n _react2.default.createElement(_common.Alpha, _extends({}, styles.alpha, {\n rgb: rgb,\n hsl: hsl,\n pointer: pointer,\n renderers: renderers,\n onChange: onChange,\n direction: direction\n }))\n );\n};\n\nAlphaPicker.defaultProps = {\n width: '316px',\n height: '16px',\n direction: 'horizontal',\n pointer: _AlphaPointer2.default\n};\n\nexports.default = (0, _common.ColorWrap)(AlphaPicker);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AlphaPointer = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar AlphaPointer = exports.AlphaPointer = function AlphaPointer(_ref) {\n var direction = _ref.direction;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n picker: {\n width: '18px',\n height: '18px',\n borderRadius: '50%',\n transform: 'translate(-9px, -1px)',\n backgroundColor: 'rgb(248, 248, 248)',\n boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)'\n }\n },\n 'vertical': {\n picker: {\n transform: 'translate(-3px, -9px)'\n }\n }\n }, { vertical: direction === 'vertical' });\n\n return _react2.default.createElement('div', { style: styles.picker });\n};\n\nexports.default = AlphaPointer;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Block = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _color = require('../../helpers/color');\n\nvar color = _interopRequireWildcard(_color);\n\nvar _common = require('../common');\n\nvar _BlockSwatches = require('./BlockSwatches');\n\nvar _BlockSwatches2 = _interopRequireDefault(_BlockSwatches);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Block = exports.Block = function Block(_ref) {\n var onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n hex = _ref.hex,\n colors = _ref.colors,\n width = _ref.width,\n triangle = _ref.triangle,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var transparent = hex === 'transparent';\n var handleChange = function handleChange(hexCode, e) {\n color.isValidHex(hexCode) && onChange({\n hex: hexCode,\n source: 'hex'\n }, e);\n };\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n card: {\n width: width,\n background: '#fff',\n boxShadow: '0 1px rgba(0,0,0,.1)',\n borderRadius: '6px',\n position: 'relative'\n },\n head: {\n height: '110px',\n background: hex,\n borderRadius: '6px 6px 0 0',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative'\n },\n body: {\n padding: '10px'\n },\n label: {\n fontSize: '18px',\n color: color.getContrastingColor(hex),\n position: 'relative'\n },\n triangle: {\n width: '0px',\n height: '0px',\n borderStyle: 'solid',\n borderWidth: '0 10px 10px 10px',\n borderColor: 'transparent transparent ' + hex + ' transparent',\n position: 'absolute',\n top: '-10px',\n left: '50%',\n marginLeft: '-10px'\n },\n input: {\n width: '100%',\n fontSize: '12px',\n color: '#666',\n border: '0px',\n outline: 'none',\n height: '22px',\n boxShadow: 'inset 0 0 0 1px #ddd',\n borderRadius: '4px',\n padding: '0 7px',\n boxSizing: 'border-box'\n }\n },\n 'hide-triangle': {\n triangle: {\n display: 'none'\n }\n }\n }, passedStyles), { 'hide-triangle': triangle === 'hide' });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.card, className: 'block-picker ' + className },\n _react2.default.createElement('div', { style: styles.triangle }),\n _react2.default.createElement(\n 'div',\n { style: styles.head },\n transparent && _react2.default.createElement(_common.Checkboard, { borderRadius: '6px 6px 0 0' }),\n _react2.default.createElement(\n 'div',\n { style: styles.label },\n hex\n )\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.body },\n _react2.default.createElement(_BlockSwatches2.default, { colors: colors, onClick: handleChange, onSwatchHover: onSwatchHover }),\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input },\n value: hex,\n onChange: handleChange\n })\n )\n );\n};\n\nBlock.propTypes = {\n width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n colors: _propTypes2.default.arrayOf(_propTypes2.default.string),\n triangle: _propTypes2.default.oneOf(['top', 'hide']),\n styles: _propTypes2.default.object\n};\n\nBlock.defaultProps = {\n width: 170,\n colors: ['#D9E3F0', '#F47373', '#697689', '#37D67A', '#2CCCE4', '#555555', '#dce775', '#ff8a65', '#ba68c8'],\n triangle: 'top',\n styles: {}\n};\n\nexports.default = (0, _common.ColorWrap)(Block);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.BlockSwatches = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _map = require('lodash/map');\n\nvar _map2 = _interopRequireDefault(_map);\n\nvar _common = require('../common');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar BlockSwatches = exports.BlockSwatches = function BlockSwatches(_ref) {\n var colors = _ref.colors,\n onClick = _ref.onClick,\n onSwatchHover = _ref.onSwatchHover;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n swatches: {\n marginRight: '-10px'\n },\n swatch: {\n width: '22px',\n height: '22px',\n float: 'left',\n marginRight: '10px',\n marginBottom: '10px',\n borderRadius: '4px'\n },\n clear: {\n clear: 'both'\n }\n }\n });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.swatches },\n (0, _map2.default)(colors, function (c) {\n return _react2.default.createElement(_common.Swatch, {\n key: c,\n color: c,\n style: styles.swatch,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: {\n boxShadow: '0 0 4px ' + c\n }\n });\n }),\n _react2.default.createElement('div', { style: styles.clear })\n );\n};\n\nexports.default = BlockSwatches;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Chrome = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _common = require('../common');\n\nvar _ChromeFields = require('./ChromeFields');\n\nvar _ChromeFields2 = _interopRequireDefault(_ChromeFields);\n\nvar _ChromePointer = require('./ChromePointer');\n\nvar _ChromePointer2 = _interopRequireDefault(_ChromePointer);\n\nvar _ChromePointerCircle = require('./ChromePointerCircle');\n\nvar _ChromePointerCircle2 = _interopRequireDefault(_ChromePointerCircle);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Chrome = exports.Chrome = function Chrome(_ref) {\n var width = _ref.width,\n onChange = _ref.onChange,\n disableAlpha = _ref.disableAlpha,\n rgb = _ref.rgb,\n hsl = _ref.hsl,\n hsv = _ref.hsv,\n hex = _ref.hex,\n renderers = _ref.renderers,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className,\n defaultView = _ref.defaultView;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n picker: {\n width: width,\n background: '#fff',\n borderRadius: '2px',\n boxShadow: '0 0 2px rgba(0,0,0,.3), 0 4px 8px rgba(0,0,0,.3)',\n boxSizing: 'initial',\n fontFamily: 'Menlo'\n },\n saturation: {\n width: '100%',\n paddingBottom: '55%',\n position: 'relative',\n borderRadius: '2px 2px 0 0',\n overflow: 'hidden'\n },\n Saturation: {\n radius: '2px 2px 0 0'\n },\n body: {\n padding: '16px 16px 12px'\n },\n controls: {\n display: 'flex'\n },\n color: {\n width: '32px'\n },\n swatch: {\n marginTop: '6px',\n width: '16px',\n height: '16px',\n borderRadius: '8px',\n position: 'relative',\n overflow: 'hidden'\n },\n active: {\n absolute: '0px 0px 0px 0px',\n borderRadius: '8px',\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.1)',\n background: 'rgba(' + rgb.r + ', ' + rgb.g + ', ' + rgb.b + ', ' + rgb.a + ')',\n zIndex: '2'\n },\n toggles: {\n flex: '1'\n },\n hue: {\n height: '10px',\n position: 'relative',\n marginBottom: '8px'\n },\n Hue: {\n radius: '2px'\n },\n alpha: {\n height: '10px',\n position: 'relative'\n },\n Alpha: {\n radius: '2px'\n }\n },\n 'disableAlpha': {\n color: {\n width: '22px'\n },\n alpha: {\n display: 'none'\n },\n hue: {\n marginBottom: '0px'\n },\n swatch: {\n width: '10px',\n height: '10px',\n marginTop: '0px'\n }\n }\n }, passedStyles), { disableAlpha: disableAlpha });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.picker, className: 'chrome-picker ' + className },\n _react2.default.createElement(\n 'div',\n { style: styles.saturation },\n _react2.default.createElement(_common.Saturation, {\n style: styles.Saturation,\n hsl: hsl,\n hsv: hsv,\n pointer: _ChromePointerCircle2.default,\n onChange: onChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.body },\n _react2.default.createElement(\n 'div',\n { style: styles.controls, className: 'flexbox-fix' },\n _react2.default.createElement(\n 'div',\n { style: styles.color },\n _react2.default.createElement(\n 'div',\n { style: styles.swatch },\n _react2.default.createElement('div', { style: styles.active }),\n _react2.default.createElement(_common.Checkboard, { renderers: renderers })\n )\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.toggles },\n _react2.default.createElement(\n 'div',\n { style: styles.hue },\n _react2.default.createElement(_common.Hue, {\n style: styles.Hue,\n hsl: hsl,\n pointer: _ChromePointer2.default,\n onChange: onChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.alpha },\n _react2.default.createElement(_common.Alpha, {\n style: styles.Alpha,\n rgb: rgb,\n hsl: hsl,\n pointer: _ChromePointer2.default,\n renderers: renderers,\n onChange: onChange\n })\n )\n )\n ),\n _react2.default.createElement(_ChromeFields2.default, {\n rgb: rgb,\n hsl: hsl,\n hex: hex,\n view: defaultView,\n onChange: onChange,\n disableAlpha: disableAlpha\n })\n )\n );\n};\n\nChrome.propTypes = {\n width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n disableAlpha: _propTypes2.default.bool,\n styles: _propTypes2.default.object,\n defaultView: _propTypes2.default.oneOf([\"hex\", \"rgb\", \"hsl\"])\n};\n\nChrome.defaultProps = {\n width: 225,\n disableAlpha: false,\n styles: {}\n};\n\nexports.default = (0, _common.ColorWrap)(Chrome);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ChromeFields = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _color = require('../../helpers/color');\n\nvar color = _interopRequireWildcard(_color);\n\nvar _isUndefined = require('lodash/isUndefined');\n\nvar _isUndefined2 = _interopRequireDefault(_isUndefined);\n\nvar _common = require('../common');\n\nvar _UnfoldMoreHorizontalIcon = require('@icons/material/UnfoldMoreHorizontalIcon');\n\nvar _UnfoldMoreHorizontalIcon2 = _interopRequireDefault(_UnfoldMoreHorizontalIcon);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /* eslint-disable react/no-did-mount-set-state, no-param-reassign */\n\nvar ChromeFields = exports.ChromeFields = function (_React$Component) {\n _inherits(ChromeFields, _React$Component);\n\n function ChromeFields(props) {\n _classCallCheck(this, ChromeFields);\n\n var _this = _possibleConstructorReturn(this, (ChromeFields.__proto__ || Object.getPrototypeOf(ChromeFields)).call(this));\n\n _this.toggleViews = function () {\n if (_this.state.view === 'hex') {\n _this.setState({ view: 'rgb' });\n } else if (_this.state.view === 'rgb') {\n _this.setState({ view: 'hsl' });\n } else if (_this.state.view === 'hsl') {\n if (_this.props.hsl.a === 1) {\n _this.setState({ view: 'hex' });\n } else {\n _this.setState({ view: 'rgb' });\n }\n }\n };\n\n _this.handleChange = function (data, e) {\n if (data.hex) {\n color.isValidHex(data.hex) && _this.props.onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else if (data.r || data.g || data.b) {\n _this.props.onChange({\n r: data.r || _this.props.rgb.r,\n g: data.g || _this.props.rgb.g,\n b: data.b || _this.props.rgb.b,\n source: 'rgb'\n }, e);\n } else if (data.a) {\n if (data.a < 0) {\n data.a = 0;\n } else if (data.a > 1) {\n data.a = 1;\n }\n\n _this.props.onChange({\n h: _this.props.hsl.h,\n s: _this.props.hsl.s,\n l: _this.props.hsl.l,\n a: Math.round(data.a * 100) / 100,\n source: 'rgb'\n }, e);\n } else if (data.h || data.s || data.l) {\n // Remove any occurances of '%'.\n if (typeof data.s === 'string' && data.s.includes('%')) {\n data.s = data.s.replace('%', '');\n }\n if (typeof data.l === 'string' && data.l.includes('%')) {\n data.l = data.l.replace('%', '');\n }\n\n // We store HSL as a unit interval so we need to override the 1 input to 0.01\n if (data.s == 1) {\n data.s = 0.01;\n } else if (data.l == 1) {\n data.l = 0.01;\n }\n\n _this.props.onChange({\n h: data.h || _this.props.hsl.h,\n s: Number(!(0, _isUndefined2.default)(data.s) ? data.s : _this.props.hsl.s),\n l: Number(!(0, _isUndefined2.default)(data.l) ? data.l : _this.props.hsl.l),\n source: 'hsl'\n }, e);\n }\n };\n\n _this.showHighlight = function (e) {\n e.currentTarget.style.background = '#eee';\n };\n\n _this.hideHighlight = function (e) {\n e.currentTarget.style.background = 'transparent';\n };\n\n if (props.hsl.a !== 1 && props.view === \"hex\") {\n _this.state = {\n view: \"rgb\"\n };\n } else {\n _this.state = {\n view: props.view\n };\n }\n return _this;\n }\n\n _createClass(ChromeFields, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n wrap: {\n paddingTop: '16px',\n display: 'flex'\n },\n fields: {\n flex: '1',\n display: 'flex',\n marginLeft: '-6px'\n },\n field: {\n paddingLeft: '6px',\n width: '100%'\n },\n alpha: {\n paddingLeft: '6px',\n width: '100%'\n },\n toggle: {\n width: '32px',\n textAlign: 'right',\n position: 'relative'\n },\n icon: {\n marginRight: '-4px',\n marginTop: '12px',\n cursor: 'pointer',\n position: 'relative'\n },\n iconHighlight: {\n position: 'absolute',\n width: '24px',\n height: '28px',\n background: '#eee',\n borderRadius: '4px',\n top: '10px',\n left: '12px',\n display: 'none'\n },\n input: {\n fontSize: '11px',\n color: '#333',\n width: '100%',\n borderRadius: '2px',\n border: 'none',\n boxShadow: 'inset 0 0 0 1px #dadada',\n height: '21px',\n textAlign: 'center'\n },\n label: {\n textTransform: 'uppercase',\n fontSize: '11px',\n lineHeight: '11px',\n color: '#969696',\n textAlign: 'center',\n display: 'block',\n marginTop: '12px'\n },\n svg: {\n fill: '#333',\n width: '24px',\n height: '24px',\n border: '1px transparent solid',\n borderRadius: '5px'\n }\n },\n 'disableAlpha': {\n alpha: {\n display: 'none'\n }\n }\n }, this.props, this.state);\n\n var fields = void 0;\n if (this.state.view === 'hex') {\n fields = _react2.default.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n _react2.default.createElement(\n 'div',\n { style: styles.field },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'hex', value: this.props.hex,\n onChange: this.handleChange\n })\n )\n );\n } else if (this.state.view === 'rgb') {\n fields = _react2.default.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n _react2.default.createElement(\n 'div',\n { style: styles.field },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'r',\n value: this.props.rgb.r,\n onChange: this.handleChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.field },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'g',\n value: this.props.rgb.g,\n onChange: this.handleChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.field },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'b',\n value: this.props.rgb.b,\n onChange: this.handleChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.alpha },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'a',\n value: this.props.rgb.a,\n arrowOffset: 0.01,\n onChange: this.handleChange\n })\n )\n );\n } else if (this.state.view === 'hsl') {\n fields = _react2.default.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n _react2.default.createElement(\n 'div',\n { style: styles.field },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'h',\n value: Math.round(this.props.hsl.h),\n onChange: this.handleChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.field },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 's',\n value: Math.round(this.props.hsl.s * 100) + '%',\n onChange: this.handleChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.field },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'l',\n value: Math.round(this.props.hsl.l * 100) + '%',\n onChange: this.handleChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.alpha },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'a',\n value: this.props.hsl.a,\n arrowOffset: 0.01,\n onChange: this.handleChange\n })\n )\n );\n }\n\n return _react2.default.createElement(\n 'div',\n { style: styles.wrap, className: 'flexbox-fix' },\n fields,\n _react2.default.createElement(\n 'div',\n { style: styles.toggle },\n _react2.default.createElement(\n 'div',\n { style: styles.icon, onClick: this.toggleViews, ref: function ref(icon) {\n return _this2.icon = icon;\n } },\n _react2.default.createElement(_UnfoldMoreHorizontalIcon2.default, {\n style: styles.svg,\n onMouseOver: this.showHighlight,\n onMouseEnter: this.showHighlight,\n onMouseOut: this.hideHighlight\n })\n )\n )\n );\n }\n }], [{\n key: 'getDerivedStateFromProps',\n value: function getDerivedStateFromProps(nextProps, state) {\n if (nextProps.hsl.a !== 1 && state.view === 'hex') {\n return { view: 'rgb' };\n }\n return null;\n }\n }]);\n\n return ChromeFields;\n}(_react2.default.Component);\n\nChromeFields.defaultProps = {\n view: \"hex\"\n};\n\nexports.default = ChromeFields;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ChromePointer = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ChromePointer = exports.ChromePointer = function ChromePointer() {\n var styles = (0, _reactcss2.default)({\n 'default': {\n picker: {\n width: '12px',\n height: '12px',\n borderRadius: '6px',\n transform: 'translate(-6px, -1px)',\n backgroundColor: 'rgb(248, 248, 248)',\n boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)'\n }\n }\n });\n\n return _react2.default.createElement('div', { style: styles.picker });\n};\n\nexports.default = ChromePointer;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ChromePointerCircle = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ChromePointerCircle = exports.ChromePointerCircle = function ChromePointerCircle() {\n var styles = (0, _reactcss2.default)({\n 'default': {\n picker: {\n width: '12px',\n height: '12px',\n borderRadius: '6px',\n boxShadow: 'inset 0 0 0 1px #fff',\n transform: 'translate(-6px, -6px)'\n }\n }\n });\n\n return _react2.default.createElement('div', { style: styles.picker });\n};\n\nexports.default = ChromePointerCircle;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Circle = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _map = require('lodash/map');\n\nvar _map2 = _interopRequireDefault(_map);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _materialColors = require('material-colors');\n\nvar material = _interopRequireWildcard(_materialColors);\n\nvar _common = require('../common');\n\nvar _CircleSwatch = require('./CircleSwatch');\n\nvar _CircleSwatch2 = _interopRequireDefault(_CircleSwatch);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Circle = exports.Circle = function Circle(_ref) {\n var width = _ref.width,\n onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n colors = _ref.colors,\n hex = _ref.hex,\n circleSize = _ref.circleSize,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n circleSpacing = _ref.circleSpacing,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n card: {\n width: width,\n display: 'flex',\n flexWrap: 'wrap',\n marginRight: -circleSpacing,\n marginBottom: -circleSpacing\n }\n }\n }, passedStyles));\n\n var handleChange = function handleChange(hexCode, e) {\n return onChange({ hex: hexCode, source: 'hex' }, e);\n };\n\n return _react2.default.createElement(\n 'div',\n { style: styles.card, className: 'circle-picker ' + className },\n (0, _map2.default)(colors, function (c) {\n return _react2.default.createElement(_CircleSwatch2.default, {\n key: c,\n color: c,\n onClick: handleChange,\n onSwatchHover: onSwatchHover,\n active: hex === c.toLowerCase(),\n circleSize: circleSize,\n circleSpacing: circleSpacing\n });\n })\n );\n};\n\nCircle.propTypes = {\n width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n circleSize: _propTypes2.default.number,\n circleSpacing: _propTypes2.default.number,\n styles: _propTypes2.default.object\n};\n\nCircle.defaultProps = {\n width: 252,\n circleSize: 28,\n circleSpacing: 14,\n colors: [material.red['500'], material.pink['500'], material.purple['500'], material.deepPurple['500'], material.indigo['500'], material.blue['500'], material.lightBlue['500'], material.cyan['500'], material.teal['500'], material.green['500'], material.lightGreen['500'], material.lime['500'], material.yellow['500'], material.amber['500'], material.orange['500'], material.deepOrange['500'], material.brown['500'], material.blueGrey['500']],\n styles: {}\n};\n\nexports.default = (0, _common.ColorWrap)(Circle);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CircleSwatch = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _common = require('../common');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar CircleSwatch = exports.CircleSwatch = function CircleSwatch(_ref) {\n var color = _ref.color,\n onClick = _ref.onClick,\n onSwatchHover = _ref.onSwatchHover,\n hover = _ref.hover,\n active = _ref.active,\n circleSize = _ref.circleSize,\n circleSpacing = _ref.circleSpacing;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n swatch: {\n width: circleSize,\n height: circleSize,\n marginRight: circleSpacing,\n marginBottom: circleSpacing,\n transform: 'scale(1)',\n transition: '100ms transform ease'\n },\n Swatch: {\n borderRadius: '50%',\n background: 'transparent',\n boxShadow: 'inset 0 0 0 ' + (circleSize / 2 + 1) + 'px ' + color,\n transition: '100ms box-shadow ease'\n }\n },\n 'hover': {\n swatch: {\n transform: 'scale(1.2)'\n }\n },\n 'active': {\n Swatch: {\n boxShadow: 'inset 0 0 0 3px ' + color\n }\n }\n }, { hover: hover, active: active });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.swatch },\n _react2.default.createElement(_common.Swatch, {\n style: styles.Swatch,\n color: color,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: { boxShadow: styles.Swatch.boxShadow + ', 0 0 5px ' + color }\n })\n );\n};\n\nCircleSwatch.defaultProps = {\n circleSize: 28,\n circleSpacing: 14\n};\n\nexports.default = (0, _reactcss.handleHover)(CircleSwatch);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Alpha = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _alpha = require('../../helpers/alpha');\n\nvar alpha = _interopRequireWildcard(_alpha);\n\nvar _Checkboard = require('./Checkboard');\n\nvar _Checkboard2 = _interopRequireDefault(_Checkboard);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Alpha = exports.Alpha = function (_ref) {\n _inherits(Alpha, _ref);\n\n function Alpha() {\n var _ref2;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Alpha);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref2 = Alpha.__proto__ || Object.getPrototypeOf(Alpha)).call.apply(_ref2, [this].concat(args))), _this), _this.handleChange = function (e) {\n var change = alpha.calculateChange(e, _this.props.hsl, _this.props.direction, _this.props.a, _this.container);\n change && typeof _this.props.onChange === 'function' && _this.props.onChange(change, e);\n }, _this.handleMouseDown = function (e) {\n _this.handleChange(e);\n window.addEventListener('mousemove', _this.handleChange);\n window.addEventListener('mouseup', _this.handleMouseUp);\n }, _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n }, _this.unbindEventListeners = function () {\n window.removeEventListener('mousemove', _this.handleChange);\n window.removeEventListener('mouseup', _this.handleMouseUp);\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Alpha, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.unbindEventListeners();\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var rgb = this.props.rgb;\n var styles = (0, _reactcss2.default)({\n 'default': {\n alpha: {\n absolute: '0px 0px 0px 0px',\n borderRadius: this.props.radius\n },\n checkboard: {\n absolute: '0px 0px 0px 0px',\n overflow: 'hidden',\n borderRadius: this.props.radius\n },\n gradient: {\n absolute: '0px 0px 0px 0px',\n background: 'linear-gradient(to right, rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 0) 0%,\\n rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 1) 100%)',\n boxShadow: this.props.shadow,\n borderRadius: this.props.radius\n },\n container: {\n position: 'relative',\n height: '100%',\n margin: '0 3px'\n },\n pointer: {\n position: 'absolute',\n left: rgb.a * 100 + '%'\n },\n slider: {\n width: '4px',\n borderRadius: '1px',\n height: '8px',\n boxShadow: '0 0 2px rgba(0, 0, 0, .6)',\n background: '#fff',\n marginTop: '1px',\n transform: 'translateX(-2px)'\n }\n },\n 'vertical': {\n gradient: {\n background: 'linear-gradient(to bottom, rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 0) 0%,\\n rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 1) 100%)'\n },\n pointer: {\n left: 0,\n top: rgb.a * 100 + '%'\n }\n },\n 'overwrite': _extends({}, this.props.style)\n }, {\n vertical: this.props.direction === 'vertical',\n overwrite: true\n });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.alpha },\n _react2.default.createElement(\n 'div',\n { style: styles.checkboard },\n _react2.default.createElement(_Checkboard2.default, { renderers: this.props.renderers })\n ),\n _react2.default.createElement('div', { style: styles.gradient }),\n _react2.default.createElement(\n 'div',\n {\n style: styles.container,\n ref: function ref(container) {\n return _this2.container = container;\n },\n onMouseDown: this.handleMouseDown,\n onTouchMove: this.handleChange,\n onTouchStart: this.handleChange\n },\n _react2.default.createElement(\n 'div',\n { style: styles.pointer },\n this.props.pointer ? _react2.default.createElement(this.props.pointer, this.props) : _react2.default.createElement('div', { style: styles.slider })\n )\n )\n );\n }\n }]);\n\n return Alpha;\n}(_react.PureComponent || _react.Component);\n\nexports.default = Alpha;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Checkboard = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _checkboard = require('../../helpers/checkboard');\n\nvar checkboard = _interopRequireWildcard(_checkboard);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Checkboard = exports.Checkboard = function Checkboard(_ref) {\n var white = _ref.white,\n grey = _ref.grey,\n size = _ref.size,\n renderers = _ref.renderers,\n borderRadius = _ref.borderRadius,\n boxShadow = _ref.boxShadow,\n children = _ref.children;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n grid: {\n borderRadius: borderRadius,\n boxShadow: boxShadow,\n absolute: '0px 0px 0px 0px',\n background: 'url(' + checkboard.get(white, grey, size, renderers.canvas) + ') center left'\n }\n }\n });\n return (0, _react.isValidElement)(children) ? _react2.default.cloneElement(children, _extends({}, children.props, { style: _extends({}, children.props.style, styles.grid) })) : _react2.default.createElement('div', { style: styles.grid });\n};\n\nCheckboard.defaultProps = {\n size: 8,\n white: 'transparent',\n grey: 'rgba(0,0,0,.08)',\n renderers: {}\n};\n\nexports.default = Checkboard;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ColorWrap = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _debounce = require('lodash/debounce');\n\nvar _debounce2 = _interopRequireDefault(_debounce);\n\nvar _color = require('../../helpers/color');\n\nvar color = _interopRequireWildcard(_color);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ColorWrap = exports.ColorWrap = function ColorWrap(Picker) {\n var ColorPicker = function (_ref) {\n _inherits(ColorPicker, _ref);\n\n function ColorPicker(props) {\n _classCallCheck(this, ColorPicker);\n\n var _this = _possibleConstructorReturn(this, (ColorPicker.__proto__ || Object.getPrototypeOf(ColorPicker)).call(this));\n\n _this.handleChange = function (data, event) {\n var isValidColor = color.simpleCheckForValidColor(data);\n if (isValidColor) {\n var colors = color.toState(data, data.h || _this.state.oldHue);\n _this.setState(colors);\n _this.props.onChangeComplete && _this.debounce(_this.props.onChangeComplete, colors, event);\n _this.props.onChange && _this.props.onChange(colors, event);\n }\n };\n\n _this.handleSwatchHover = function (data, event) {\n var isValidColor = color.simpleCheckForValidColor(data);\n if (isValidColor) {\n var colors = color.toState(data, data.h || _this.state.oldHue);\n _this.props.onSwatchHover && _this.props.onSwatchHover(colors, event);\n }\n };\n\n _this.state = _extends({}, color.toState(props.color, 0));\n\n _this.debounce = (0, _debounce2.default)(function (fn, data, event) {\n fn(data, event);\n }, 100);\n return _this;\n }\n\n _createClass(ColorPicker, [{\n key: 'render',\n value: function render() {\n var optionalEvents = {};\n if (this.props.onSwatchHover) {\n optionalEvents.onSwatchHover = this.handleSwatchHover;\n }\n\n return _react2.default.createElement(Picker, _extends({}, this.props, this.state, {\n onChange: this.handleChange\n }, optionalEvents));\n }\n }], [{\n key: 'getDerivedStateFromProps',\n value: function getDerivedStateFromProps(nextProps, state) {\n return _extends({}, color.toState(nextProps.color, state.oldHue));\n }\n }]);\n\n return ColorPicker;\n }(_react.PureComponent || _react.Component);\n\n ColorPicker.propTypes = _extends({}, Picker.propTypes);\n\n ColorPicker.defaultProps = _extends({}, Picker.defaultProps, {\n color: {\n h: 250,\n s: 0.50,\n l: 0.20,\n a: 1\n }\n });\n\n return ColorPicker;\n};\n\nexports.default = ColorWrap;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.EditableInput = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar DEFAULT_ARROW_OFFSET = 1;\n\nvar UP_KEY_CODE = 38;\nvar DOWN_KEY_CODE = 40;\nvar VALID_KEY_CODES = [UP_KEY_CODE, DOWN_KEY_CODE];\nvar isValidKeyCode = function isValidKeyCode(keyCode) {\n return VALID_KEY_CODES.indexOf(keyCode) > -1;\n};\nvar getNumberValue = function getNumberValue(value) {\n return Number(String(value).replace(/%/g, ''));\n};\n\nvar idCounter = 1;\n\nvar EditableInput = exports.EditableInput = function (_ref) {\n _inherits(EditableInput, _ref);\n\n function EditableInput(props) {\n _classCallCheck(this, EditableInput);\n\n var _this = _possibleConstructorReturn(this, (EditableInput.__proto__ || Object.getPrototypeOf(EditableInput)).call(this));\n\n _this.handleBlur = function () {\n if (_this.state.blurValue) {\n _this.setState({ value: _this.state.blurValue, blurValue: null });\n }\n };\n\n _this.handleChange = function (e) {\n _this.setUpdatedValue(e.target.value, e);\n };\n\n _this.handleKeyDown = function (e) {\n // In case `e.target.value` is a percentage remove the `%` character\n // and update accordingly with a percentage\n // https://github.com/casesandberg/react-color/issues/383\n var value = getNumberValue(e.target.value);\n if (!isNaN(value) && isValidKeyCode(e.keyCode)) {\n var offset = _this.getArrowOffset();\n var updatedValue = e.keyCode === UP_KEY_CODE ? value + offset : value - offset;\n\n _this.setUpdatedValue(updatedValue, e);\n }\n };\n\n _this.handleDrag = function (e) {\n if (_this.props.dragLabel) {\n var newValue = Math.round(_this.props.value + e.movementX);\n if (newValue >= 0 && newValue <= _this.props.dragMax) {\n _this.props.onChange && _this.props.onChange(_this.getValueObjectWithLabel(newValue), e);\n }\n }\n };\n\n _this.handleMouseDown = function (e) {\n if (_this.props.dragLabel) {\n e.preventDefault();\n _this.handleDrag(e);\n window.addEventListener('mousemove', _this.handleDrag);\n window.addEventListener('mouseup', _this.handleMouseUp);\n }\n };\n\n _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n };\n\n _this.unbindEventListeners = function () {\n window.removeEventListener('mousemove', _this.handleDrag);\n window.removeEventListener('mouseup', _this.handleMouseUp);\n };\n\n _this.state = {\n value: String(props.value).toUpperCase(),\n blurValue: String(props.value).toUpperCase()\n };\n\n _this.inputId = 'rc-editable-input-' + idCounter++;\n return _this;\n }\n\n _createClass(EditableInput, [{\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps, prevState) {\n if (this.props.value !== this.state.value && (prevProps.value !== this.props.value || prevState.value !== this.state.value)) {\n if (this.input === document.activeElement) {\n this.setState({ blurValue: String(this.props.value).toUpperCase() });\n } else {\n this.setState({ value: String(this.props.value).toUpperCase(), blurValue: !this.state.blurValue && String(this.props.value).toUpperCase() });\n }\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.unbindEventListeners();\n }\n }, {\n key: 'getValueObjectWithLabel',\n value: function getValueObjectWithLabel(value) {\n return _defineProperty({}, this.props.label, value);\n }\n }, {\n key: 'getArrowOffset',\n value: function getArrowOffset() {\n return this.props.arrowOffset || DEFAULT_ARROW_OFFSET;\n }\n }, {\n key: 'setUpdatedValue',\n value: function setUpdatedValue(value, e) {\n var onChangeValue = this.props.label ? this.getValueObjectWithLabel(value) : value;\n this.props.onChange && this.props.onChange(onChangeValue, e);\n\n this.setState({ value: value });\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n wrap: {\n position: 'relative'\n }\n },\n 'user-override': {\n wrap: this.props.style && this.props.style.wrap ? this.props.style.wrap : {},\n input: this.props.style && this.props.style.input ? this.props.style.input : {},\n label: this.props.style && this.props.style.label ? this.props.style.label : {}\n },\n 'dragLabel-true': {\n label: {\n cursor: 'ew-resize'\n }\n }\n }, {\n 'user-override': true\n }, this.props);\n\n return _react2.default.createElement(\n 'div',\n { style: styles.wrap },\n _react2.default.createElement('input', {\n id: this.inputId,\n style: styles.input,\n ref: function ref(input) {\n return _this2.input = input;\n },\n value: this.state.value,\n onKeyDown: this.handleKeyDown,\n onChange: this.handleChange,\n onBlur: this.handleBlur,\n placeholder: this.props.placeholder,\n spellCheck: 'false'\n }),\n this.props.label && !this.props.hideLabel ? _react2.default.createElement(\n 'label',\n {\n htmlFor: this.inputId,\n style: styles.label,\n onMouseDown: this.handleMouseDown\n },\n this.props.label\n ) : null\n );\n }\n }]);\n\n return EditableInput;\n}(_react.PureComponent || _react.Component);\n\nexports.default = EditableInput;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Hue = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _hue = require('../../helpers/hue');\n\nvar hue = _interopRequireWildcard(_hue);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Hue = exports.Hue = function (_ref) {\n _inherits(Hue, _ref);\n\n function Hue() {\n var _ref2;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Hue);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref2 = Hue.__proto__ || Object.getPrototypeOf(Hue)).call.apply(_ref2, [this].concat(args))), _this), _this.handleChange = function (e) {\n var change = hue.calculateChange(e, _this.props.direction, _this.props.hsl, _this.container);\n change && typeof _this.props.onChange === 'function' && _this.props.onChange(change, e);\n }, _this.handleMouseDown = function (e) {\n _this.handleChange(e);\n window.addEventListener('mousemove', _this.handleChange);\n window.addEventListener('mouseup', _this.handleMouseUp);\n }, _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Hue, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.unbindEventListeners();\n }\n }, {\n key: 'unbindEventListeners',\n value: function unbindEventListeners() {\n window.removeEventListener('mousemove', this.handleChange);\n window.removeEventListener('mouseup', this.handleMouseUp);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props$direction = this.props.direction,\n direction = _props$direction === undefined ? 'horizontal' : _props$direction;\n\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n hue: {\n absolute: '0px 0px 0px 0px',\n borderRadius: this.props.radius,\n boxShadow: this.props.shadow\n },\n container: {\n padding: '0 2px',\n position: 'relative',\n height: '100%',\n borderRadius: this.props.radius\n },\n pointer: {\n position: 'absolute',\n left: this.props.hsl.h * 100 / 360 + '%'\n },\n slider: {\n marginTop: '1px',\n width: '4px',\n borderRadius: '1px',\n height: '8px',\n boxShadow: '0 0 2px rgba(0, 0, 0, .6)',\n background: '#fff',\n transform: 'translateX(-2px)'\n }\n },\n 'vertical': {\n pointer: {\n left: '0px',\n top: -(this.props.hsl.h * 100 / 360) + 100 + '%'\n }\n }\n }, { vertical: direction === 'vertical' });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.hue },\n _react2.default.createElement(\n 'div',\n {\n className: 'hue-' + direction,\n style: styles.container,\n ref: function ref(container) {\n return _this2.container = container;\n },\n onMouseDown: this.handleMouseDown,\n onTouchMove: this.handleChange,\n onTouchStart: this.handleChange\n },\n _react2.default.createElement(\n 'style',\n null,\n '\\n .hue-horizontal {\\n background: linear-gradient(to right, #f00 0%, #ff0 17%, #0f0\\n 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n background: -webkit-linear-gradient(to right, #f00 0%, #ff0\\n 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n }\\n\\n .hue-vertical {\\n background: linear-gradient(to top, #f00 0%, #ff0 17%, #0f0 33%,\\n #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n background: -webkit-linear-gradient(to top, #f00 0%, #ff0 17%,\\n #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n }\\n '\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.pointer },\n this.props.pointer ? _react2.default.createElement(this.props.pointer, this.props) : _react2.default.createElement('div', { style: styles.slider })\n )\n )\n );\n }\n }]);\n\n return Hue;\n}(_react.PureComponent || _react.Component);\n\nexports.default = Hue;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Raised = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Raised = exports.Raised = function Raised(_ref) {\n var zDepth = _ref.zDepth,\n radius = _ref.radius,\n background = _ref.background,\n children = _ref.children,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n wrap: {\n position: 'relative',\n display: 'inline-block'\n },\n content: {\n position: 'relative'\n },\n bg: {\n absolute: '0px 0px 0px 0px',\n boxShadow: '0 ' + zDepth + 'px ' + zDepth * 4 + 'px rgba(0,0,0,.24)',\n borderRadius: radius,\n background: background\n }\n },\n 'zDepth-0': {\n bg: {\n boxShadow: 'none'\n }\n },\n\n 'zDepth-1': {\n bg: {\n boxShadow: '0 2px 10px rgba(0,0,0,.12), 0 2px 5px rgba(0,0,0,.16)'\n }\n },\n 'zDepth-2': {\n bg: {\n boxShadow: '0 6px 20px rgba(0,0,0,.19), 0 8px 17px rgba(0,0,0,.2)'\n }\n },\n 'zDepth-3': {\n bg: {\n boxShadow: '0 17px 50px rgba(0,0,0,.19), 0 12px 15px rgba(0,0,0,.24)'\n }\n },\n 'zDepth-4': {\n bg: {\n boxShadow: '0 25px 55px rgba(0,0,0,.21), 0 16px 28px rgba(0,0,0,.22)'\n }\n },\n 'zDepth-5': {\n bg: {\n boxShadow: '0 40px 77px rgba(0,0,0,.22), 0 27px 24px rgba(0,0,0,.2)'\n }\n },\n 'square': {\n bg: {\n borderRadius: '0'\n }\n },\n 'circle': {\n bg: {\n borderRadius: '50%'\n }\n }\n }, passedStyles), { 'zDepth-1': zDepth === 1 });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.wrap },\n _react2.default.createElement('div', { style: styles.bg }),\n _react2.default.createElement(\n 'div',\n { style: styles.content },\n children\n )\n );\n};\n\nRaised.propTypes = {\n background: _propTypes2.default.string,\n zDepth: _propTypes2.default.oneOf([0, 1, 2, 3, 4, 5]),\n radius: _propTypes2.default.number,\n styles: _propTypes2.default.object\n};\n\nRaised.defaultProps = {\n background: '#fff',\n zDepth: 1,\n radius: 2,\n styles: {}\n};\n\nexports.default = Raised;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Saturation = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _throttle = require('lodash/throttle');\n\nvar _throttle2 = _interopRequireDefault(_throttle);\n\nvar _saturation = require('../../helpers/saturation');\n\nvar saturation = _interopRequireWildcard(_saturation);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Saturation = exports.Saturation = function (_ref) {\n _inherits(Saturation, _ref);\n\n function Saturation(props) {\n _classCallCheck(this, Saturation);\n\n var _this = _possibleConstructorReturn(this, (Saturation.__proto__ || Object.getPrototypeOf(Saturation)).call(this, props));\n\n _this.handleChange = function (e) {\n typeof _this.props.onChange === 'function' && _this.throttle(_this.props.onChange, saturation.calculateChange(e, _this.props.hsl, _this.container), e);\n };\n\n _this.handleMouseDown = function (e) {\n _this.handleChange(e);\n var renderWindow = _this.getContainerRenderWindow();\n renderWindow.addEventListener('mousemove', _this.handleChange);\n renderWindow.addEventListener('mouseup', _this.handleMouseUp);\n };\n\n _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n };\n\n _this.throttle = (0, _throttle2.default)(function (fn, data, e) {\n fn(data, e);\n }, 50);\n return _this;\n }\n\n _createClass(Saturation, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.throttle.cancel();\n this.unbindEventListeners();\n }\n }, {\n key: 'getContainerRenderWindow',\n value: function getContainerRenderWindow() {\n var container = this.container;\n\n var renderWindow = window;\n while (!renderWindow.document.contains(container) && renderWindow.parent !== renderWindow) {\n renderWindow = renderWindow.parent;\n }\n return renderWindow;\n }\n }, {\n key: 'unbindEventListeners',\n value: function unbindEventListeners() {\n var renderWindow = this.getContainerRenderWindow();\n renderWindow.removeEventListener('mousemove', this.handleChange);\n renderWindow.removeEventListener('mouseup', this.handleMouseUp);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _ref2 = this.props.style || {},\n color = _ref2.color,\n white = _ref2.white,\n black = _ref2.black,\n pointer = _ref2.pointer,\n circle = _ref2.circle;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n color: {\n absolute: '0px 0px 0px 0px',\n background: 'hsl(' + this.props.hsl.h + ',100%, 50%)',\n borderRadius: this.props.radius\n },\n white: {\n absolute: '0px 0px 0px 0px',\n borderRadius: this.props.radius\n },\n black: {\n absolute: '0px 0px 0px 0px',\n boxShadow: this.props.shadow,\n borderRadius: this.props.radius\n },\n pointer: {\n position: 'absolute',\n top: -(this.props.hsv.v * 100) + 100 + '%',\n left: this.props.hsv.s * 100 + '%',\n cursor: 'default'\n },\n circle: {\n width: '4px',\n height: '4px',\n boxShadow: '0 0 0 1.5px #fff, inset 0 0 1px 1px rgba(0,0,0,.3),\\n 0 0 1px 2px rgba(0,0,0,.4)',\n borderRadius: '50%',\n cursor: 'hand',\n transform: 'translate(-2px, -2px)'\n }\n },\n 'custom': {\n color: color,\n white: white,\n black: black,\n pointer: pointer,\n circle: circle\n }\n }, { 'custom': !!this.props.style });\n\n return _react2.default.createElement(\n 'div',\n {\n style: styles.color,\n ref: function ref(container) {\n return _this2.container = container;\n },\n onMouseDown: this.handleMouseDown,\n onTouchMove: this.handleChange,\n onTouchStart: this.handleChange\n },\n _react2.default.createElement(\n 'style',\n null,\n '\\n .saturation-white {\\n background: -webkit-linear-gradient(to right, #fff, rgba(255,255,255,0));\\n background: linear-gradient(to right, #fff, rgba(255,255,255,0));\\n }\\n .saturation-black {\\n background: -webkit-linear-gradient(to top, #000, rgba(0,0,0,0));\\n background: linear-gradient(to top, #000, rgba(0,0,0,0));\\n }\\n '\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.white, className: 'saturation-white' },\n _react2.default.createElement('div', { style: styles.black, className: 'saturation-black' }),\n _react2.default.createElement(\n 'div',\n { style: styles.pointer },\n this.props.pointer ? _react2.default.createElement(this.props.pointer, this.props) : _react2.default.createElement('div', { style: styles.circle })\n )\n )\n );\n }\n }]);\n\n return Saturation;\n}(_react.PureComponent || _react.Component);\n\nexports.default = Saturation;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Swatch = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _interaction = require('../../helpers/interaction');\n\nvar _Checkboard = require('./Checkboard');\n\nvar _Checkboard2 = _interopRequireDefault(_Checkboard);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ENTER = 13;\n\nvar Swatch = exports.Swatch = function Swatch(_ref) {\n var color = _ref.color,\n style = _ref.style,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n onHover = _ref.onHover,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? color : _ref$title,\n children = _ref.children,\n focus = _ref.focus,\n _ref$focusStyle = _ref.focusStyle,\n focusStyle = _ref$focusStyle === undefined ? {} : _ref$focusStyle;\n\n var transparent = color === 'transparent';\n var styles = (0, _reactcss2.default)({\n default: {\n swatch: _extends({\n background: color,\n height: '100%',\n width: '100%',\n cursor: 'pointer',\n position: 'relative',\n outline: 'none'\n }, style, focus ? focusStyle : {})\n }\n });\n\n var handleClick = function handleClick(e) {\n return onClick(color, e);\n };\n var handleKeyDown = function handleKeyDown(e) {\n return e.keyCode === ENTER && onClick(color, e);\n };\n var handleHover = function handleHover(e) {\n return onHover(color, e);\n };\n\n var optionalEvents = {};\n if (onHover) {\n optionalEvents.onMouseOver = handleHover;\n }\n\n return _react2.default.createElement(\n 'div',\n _extends({\n style: styles.swatch,\n onClick: handleClick,\n title: title,\n tabIndex: 0,\n onKeyDown: handleKeyDown\n }, optionalEvents),\n children,\n transparent && _react2.default.createElement(_Checkboard2.default, {\n borderRadius: styles.swatch.borderRadius,\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,0.1)'\n })\n );\n};\n\nexports.default = (0, _interaction.handleFocus)(Swatch);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Alpha = require('./Alpha');\n\nObject.defineProperty(exports, 'Alpha', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Alpha).default;\n }\n});\n\nvar _Checkboard = require('./Checkboard');\n\nObject.defineProperty(exports, 'Checkboard', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Checkboard).default;\n }\n});\n\nvar _EditableInput = require('./EditableInput');\n\nObject.defineProperty(exports, 'EditableInput', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_EditableInput).default;\n }\n});\n\nvar _Hue = require('./Hue');\n\nObject.defineProperty(exports, 'Hue', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Hue).default;\n }\n});\n\nvar _Raised = require('./Raised');\n\nObject.defineProperty(exports, 'Raised', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Raised).default;\n }\n});\n\nvar _Saturation = require('./Saturation');\n\nObject.defineProperty(exports, 'Saturation', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Saturation).default;\n }\n});\n\nvar _ColorWrap = require('./ColorWrap');\n\nObject.defineProperty(exports, 'ColorWrap', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_ColorWrap).default;\n }\n});\n\nvar _Swatch = require('./Swatch');\n\nObject.defineProperty(exports, 'Swatch', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Swatch).default;\n }\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Compact = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _map = require('lodash/map');\n\nvar _map2 = _interopRequireDefault(_map);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _color = require('../../helpers/color');\n\nvar color = _interopRequireWildcard(_color);\n\nvar _common = require('../common');\n\nvar _CompactColor = require('./CompactColor');\n\nvar _CompactColor2 = _interopRequireDefault(_CompactColor);\n\nvar _CompactFields = require('./CompactFields');\n\nvar _CompactFields2 = _interopRequireDefault(_CompactFields);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Compact = exports.Compact = function Compact(_ref) {\n var onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n colors = _ref.colors,\n hex = _ref.hex,\n rgb = _ref.rgb,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n Compact: {\n background: '#f6f6f6',\n radius: '4px'\n },\n compact: {\n paddingTop: '5px',\n paddingLeft: '5px',\n boxSizing: 'initial',\n width: '240px'\n },\n clear: {\n clear: 'both'\n }\n }\n }, passedStyles));\n\n var handleChange = function handleChange(data, e) {\n if (data.hex) {\n color.isValidHex(data.hex) && onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else {\n onChange(data, e);\n }\n };\n\n return _react2.default.createElement(\n _common.Raised,\n { style: styles.Compact, styles: passedStyles },\n _react2.default.createElement(\n 'div',\n { style: styles.compact, className: 'compact-picker ' + className },\n _react2.default.createElement(\n 'div',\n null,\n (0, _map2.default)(colors, function (c) {\n return _react2.default.createElement(_CompactColor2.default, {\n key: c,\n color: c,\n active: c.toLowerCase() === hex,\n onClick: handleChange,\n onSwatchHover: onSwatchHover\n });\n }),\n _react2.default.createElement('div', { style: styles.clear })\n ),\n _react2.default.createElement(_CompactFields2.default, { hex: hex, rgb: rgb, onChange: handleChange })\n )\n );\n};\n\nCompact.propTypes = {\n colors: _propTypes2.default.arrayOf(_propTypes2.default.string),\n styles: _propTypes2.default.object\n};\n\nCompact.defaultProps = {\n colors: ['#4D4D4D', '#999999', '#FFFFFF', '#F44E3B', '#FE9200', '#FCDC00', '#DBDF00', '#A4DD00', '#68CCCA', '#73D8FF', '#AEA1FF', '#FDA1FF', '#333333', '#808080', '#cccccc', '#D33115', '#E27300', '#FCC400', '#B0BC00', '#68BC00', '#16A5A5', '#009CE0', '#7B64FF', '#FA28FF', '#000000', '#666666', '#B3B3B3', '#9F0500', '#C45100', '#FB9E00', '#808900', '#194D33', '#0C797D', '#0062B1', '#653294', '#AB149E'],\n styles: {}\n};\n\nexports.default = (0, _common.ColorWrap)(Compact);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CompactColor = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _color = require('../../helpers/color');\n\nvar colorUtils = _interopRequireWildcard(_color);\n\nvar _common = require('../common');\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar CompactColor = exports.CompactColor = function CompactColor(_ref) {\n var color = _ref.color,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n onSwatchHover = _ref.onSwatchHover,\n active = _ref.active;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n color: {\n background: color,\n width: '15px',\n height: '15px',\n float: 'left',\n marginRight: '5px',\n marginBottom: '5px',\n position: 'relative',\n cursor: 'pointer'\n },\n dot: {\n absolute: '5px 5px 5px 5px',\n background: colorUtils.getContrastingColor(color),\n borderRadius: '50%',\n opacity: '0'\n }\n },\n 'active': {\n dot: {\n opacity: '1'\n }\n },\n 'color-#FFFFFF': {\n color: {\n boxShadow: 'inset 0 0 0 1px #ddd'\n },\n dot: {\n background: '#000'\n }\n },\n 'transparent': {\n dot: {\n background: '#000'\n }\n }\n }, { active: active, 'color-#FFFFFF': color === '#FFFFFF', 'transparent': color === 'transparent' });\n\n return _react2.default.createElement(\n _common.Swatch,\n {\n style: styles.color,\n color: color,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: { boxShadow: '0 0 4px ' + color }\n },\n _react2.default.createElement('div', { style: styles.dot })\n );\n};\n\nexports.default = CompactColor;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CompactFields = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _common = require('../common');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar CompactFields = exports.CompactFields = function CompactFields(_ref) {\n var hex = _ref.hex,\n rgb = _ref.rgb,\n onChange = _ref.onChange;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n fields: {\n display: 'flex',\n paddingBottom: '6px',\n paddingRight: '5px',\n position: 'relative'\n },\n active: {\n position: 'absolute',\n top: '6px',\n left: '5px',\n height: '9px',\n width: '9px',\n background: hex\n },\n HEXwrap: {\n flex: '6',\n position: 'relative'\n },\n HEXinput: {\n width: '80%',\n padding: '0px',\n paddingLeft: '20%',\n border: 'none',\n outline: 'none',\n background: 'none',\n fontSize: '12px',\n color: '#333',\n height: '16px'\n },\n HEXlabel: {\n display: 'none'\n },\n RGBwrap: {\n flex: '3',\n position: 'relative'\n },\n RGBinput: {\n width: '70%',\n padding: '0px',\n paddingLeft: '30%',\n border: 'none',\n outline: 'none',\n background: 'none',\n fontSize: '12px',\n color: '#333',\n height: '16px'\n },\n RGBlabel: {\n position: 'absolute',\n top: '3px',\n left: '0px',\n lineHeight: '16px',\n textTransform: 'uppercase',\n fontSize: '12px',\n color: '#999'\n }\n }\n });\n\n var handleChange = function handleChange(data, e) {\n if (data.r || data.g || data.b) {\n onChange({\n r: data.r || rgb.r,\n g: data.g || rgb.g,\n b: data.b || rgb.b,\n source: 'rgb'\n }, e);\n } else {\n onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n }\n };\n\n return _react2.default.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n _react2.default.createElement('div', { style: styles.active }),\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.HEXwrap, input: styles.HEXinput, label: styles.HEXlabel },\n label: 'hex',\n value: hex,\n onChange: handleChange\n }),\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'r',\n value: rgb.r,\n onChange: handleChange\n }),\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'g',\n value: rgb.g,\n onChange: handleChange\n }),\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'b',\n value: rgb.b,\n onChange: handleChange\n })\n );\n};\n\nexports.default = CompactFields;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Github = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _map = require('lodash/map');\n\nvar _map2 = _interopRequireDefault(_map);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _common = require('../common');\n\nvar _GithubSwatch = require('./GithubSwatch');\n\nvar _GithubSwatch2 = _interopRequireDefault(_GithubSwatch);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Github = exports.Github = function Github(_ref) {\n var width = _ref.width,\n colors = _ref.colors,\n onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n triangle = _ref.triangle,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n card: {\n width: width,\n background: '#fff',\n border: '1px solid rgba(0,0,0,0.2)',\n boxShadow: '0 3px 12px rgba(0,0,0,0.15)',\n borderRadius: '4px',\n position: 'relative',\n padding: '5px',\n display: 'flex',\n flexWrap: 'wrap'\n },\n triangle: {\n position: 'absolute',\n border: '7px solid transparent',\n borderBottomColor: '#fff'\n },\n triangleShadow: {\n position: 'absolute',\n border: '8px solid transparent',\n borderBottomColor: 'rgba(0,0,0,0.15)'\n }\n },\n 'hide-triangle': {\n triangle: {\n display: 'none'\n },\n triangleShadow: {\n display: 'none'\n }\n },\n 'top-left-triangle': {\n triangle: {\n top: '-14px',\n left: '10px'\n },\n triangleShadow: {\n top: '-16px',\n left: '9px'\n }\n },\n 'top-right-triangle': {\n triangle: {\n top: '-14px',\n right: '10px'\n },\n triangleShadow: {\n top: '-16px',\n right: '9px'\n }\n },\n 'bottom-left-triangle': {\n triangle: {\n top: '35px',\n left: '10px',\n transform: 'rotate(180deg)'\n },\n triangleShadow: {\n top: '37px',\n left: '9px',\n transform: 'rotate(180deg)'\n }\n },\n 'bottom-right-triangle': {\n triangle: {\n top: '35px',\n right: '10px',\n transform: 'rotate(180deg)'\n },\n triangleShadow: {\n top: '37px',\n right: '9px',\n transform: 'rotate(180deg)'\n }\n }\n }, passedStyles), {\n 'hide-triangle': triangle === 'hide',\n 'top-left-triangle': triangle === 'top-left',\n 'top-right-triangle': triangle === 'top-right',\n 'bottom-left-triangle': triangle === 'bottom-left',\n 'bottom-right-triangle': triangle === 'bottom-right'\n });\n\n var handleChange = function handleChange(hex, e) {\n return onChange({ hex: hex, source: 'hex' }, e);\n };\n\n return _react2.default.createElement(\n 'div',\n { style: styles.card, className: 'github-picker ' + className },\n _react2.default.createElement('div', { style: styles.triangleShadow }),\n _react2.default.createElement('div', { style: styles.triangle }),\n (0, _map2.default)(colors, function (c) {\n return _react2.default.createElement(_GithubSwatch2.default, {\n color: c,\n key: c,\n onClick: handleChange,\n onSwatchHover: onSwatchHover\n });\n })\n );\n};\n\nGithub.propTypes = {\n width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n colors: _propTypes2.default.arrayOf(_propTypes2.default.string),\n triangle: _propTypes2.default.oneOf(['hide', 'top-left', 'top-right', 'bottom-left', 'bottom-right']),\n styles: _propTypes2.default.object\n};\n\nGithub.defaultProps = {\n width: 200,\n colors: ['#B80000', '#DB3E00', '#FCCB00', '#008B02', '#006B76', '#1273DE', '#004DCF', '#5300EB', '#EB9694', '#FAD0C3', '#FEF3BD', '#C1E1C5', '#BEDADC', '#C4DEF6', '#BED3F3', '#D4C4FB'],\n triangle: 'top-left',\n styles: {}\n};\n\nexports.default = (0, _common.ColorWrap)(Github);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.GithubSwatch = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _common = require('../common');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar GithubSwatch = exports.GithubSwatch = function GithubSwatch(_ref) {\n var hover = _ref.hover,\n color = _ref.color,\n onClick = _ref.onClick,\n onSwatchHover = _ref.onSwatchHover;\n\n var hoverSwatch = {\n position: 'relative',\n zIndex: '2',\n outline: '2px solid #fff',\n boxShadow: '0 0 5px 2px rgba(0,0,0,0.25)'\n };\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n swatch: {\n width: '25px',\n height: '25px',\n fontSize: '0'\n }\n },\n 'hover': {\n swatch: hoverSwatch\n }\n }, { hover: hover });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.swatch },\n _react2.default.createElement(_common.Swatch, {\n color: color,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: hoverSwatch\n })\n );\n};\n\nexports.default = (0, _reactcss.handleHover)(GithubSwatch);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Google = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _common = require('../common');\n\nvar _GooglePointerCircle = require('./GooglePointerCircle');\n\nvar _GooglePointerCircle2 = _interopRequireDefault(_GooglePointerCircle);\n\nvar _GooglePointer = require('./GooglePointer');\n\nvar _GooglePointer2 = _interopRequireDefault(_GooglePointer);\n\nvar _GoogleFields = require('./GoogleFields');\n\nvar _GoogleFields2 = _interopRequireDefault(_GoogleFields);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Google = exports.Google = function Google(_ref) {\n var width = _ref.width,\n onChange = _ref.onChange,\n rgb = _ref.rgb,\n hsl = _ref.hsl,\n hsv = _ref.hsv,\n hex = _ref.hex,\n header = _ref.header,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n picker: {\n width: width,\n background: '#fff',\n border: '1px solid #dfe1e5',\n boxSizing: 'initial',\n display: 'flex',\n flexWrap: 'wrap',\n borderRadius: '8px 8px 0px 0px'\n },\n head: {\n height: '57px',\n width: '100%',\n paddingTop: '16px',\n paddingBottom: '16px',\n paddingLeft: '16px',\n fontSize: '20px',\n boxSizing: 'border-box',\n fontFamily: 'Roboto-Regular,HelveticaNeue,Arial,sans-serif'\n },\n saturation: {\n width: '70%',\n padding: '0px',\n position: 'relative',\n overflow: 'hidden'\n },\n swatch: {\n width: '30%',\n height: '228px',\n padding: '0px',\n background: 'rgba(' + rgb.r + ', ' + rgb.g + ', ' + rgb.b + ', 1)',\n position: 'relative',\n overflow: 'hidden'\n },\n body: {\n margin: 'auto',\n width: '95%'\n },\n controls: {\n display: 'flex',\n boxSizing: 'border-box',\n height: '52px',\n paddingTop: '22px'\n },\n color: {\n width: '32px'\n },\n hue: {\n height: '8px',\n position: 'relative',\n margin: '0px 16px 0px 16px',\n width: '100%'\n },\n Hue: {\n radius: '2px'\n }\n }\n }, passedStyles));\n return _react2.default.createElement(\n 'div',\n { style: styles.picker, className: 'google-picker ' + className },\n _react2.default.createElement(\n 'div',\n { style: styles.head },\n header\n ),\n _react2.default.createElement('div', { style: styles.swatch }),\n _react2.default.createElement(\n 'div',\n { style: styles.saturation },\n _react2.default.createElement(_common.Saturation, {\n hsl: hsl,\n hsv: hsv,\n pointer: _GooglePointerCircle2.default,\n onChange: onChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.body },\n _react2.default.createElement(\n 'div',\n { style: styles.controls, className: 'flexbox-fix' },\n _react2.default.createElement(\n 'div',\n { style: styles.hue },\n _react2.default.createElement(_common.Hue, {\n style: styles.Hue,\n hsl: hsl,\n radius: '4px',\n pointer: _GooglePointer2.default,\n onChange: onChange\n })\n )\n ),\n _react2.default.createElement(_GoogleFields2.default, {\n rgb: rgb,\n hsl: hsl,\n hex: hex,\n hsv: hsv,\n onChange: onChange\n })\n )\n );\n};\n\nGoogle.propTypes = {\n width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n styles: _propTypes2.default.object,\n header: _propTypes2.default.string\n\n};\n\nGoogle.defaultProps = {\n width: 652,\n styles: {},\n header: 'Color picker'\n};\n\nexports.default = (0, _common.ColorWrap)(Google);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.GoogleFields = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _color = require('../../helpers/color');\n\nvar color = _interopRequireWildcard(_color);\n\nvar _common = require('../common');\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar GoogleFields = exports.GoogleFields = function GoogleFields(_ref) {\n var onChange = _ref.onChange,\n rgb = _ref.rgb,\n hsl = _ref.hsl,\n hex = _ref.hex,\n hsv = _ref.hsv;\n\n\n var handleChange = function handleChange(data, e) {\n if (data.hex) {\n color.isValidHex(data.hex) && onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else if (data.rgb) {\n var values = data.rgb.split(',');\n color.isvalidColorString(data.rgb, 'rgb') && onChange({\n r: values[0],\n g: values[1],\n b: values[2],\n a: 1,\n source: 'rgb'\n }, e);\n } else if (data.hsv) {\n var _values = data.hsv.split(',');\n if (color.isvalidColorString(data.hsv, 'hsv')) {\n _values[2] = _values[2].replace('%', '');\n _values[1] = _values[1].replace('%', '');\n _values[0] = _values[0].replace('°', '');\n if (_values[1] == 1) {\n _values[1] = 0.01;\n } else if (_values[2] == 1) {\n _values[2] = 0.01;\n }\n onChange({\n h: Number(_values[0]),\n s: Number(_values[1]),\n v: Number(_values[2]),\n source: 'hsv'\n }, e);\n }\n } else if (data.hsl) {\n var _values2 = data.hsl.split(',');\n if (color.isvalidColorString(data.hsl, 'hsl')) {\n _values2[2] = _values2[2].replace('%', '');\n _values2[1] = _values2[1].replace('%', '');\n _values2[0] = _values2[0].replace('°', '');\n if (hsvValue[1] == 1) {\n hsvValue[1] = 0.01;\n } else if (hsvValue[2] == 1) {\n hsvValue[2] = 0.01;\n }\n onChange({\n h: Number(_values2[0]),\n s: Number(_values2[1]),\n v: Number(_values2[2]),\n source: 'hsl'\n }, e);\n }\n }\n };\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n wrap: {\n display: 'flex',\n height: '100px',\n marginTop: '4px'\n },\n fields: {\n width: '100%'\n },\n column: {\n paddingTop: '10px',\n display: 'flex',\n justifyContent: 'space-between'\n },\n double: {\n padding: '0px 4.4px',\n boxSizing: 'border-box'\n },\n input: {\n width: '100%',\n height: '38px',\n boxSizing: 'border-box',\n padding: '4px 10% 3px',\n textAlign: 'center',\n border: '1px solid #dadce0',\n fontSize: '11px',\n textTransform: 'lowercase',\n borderRadius: '5px',\n outline: 'none',\n fontFamily: 'Roboto,Arial,sans-serif'\n },\n input2: {\n height: '38px',\n width: '100%',\n border: '1px solid #dadce0',\n boxSizing: 'border-box',\n fontSize: '11px',\n textTransform: 'lowercase',\n borderRadius: '5px',\n outline: 'none',\n paddingLeft: '10px',\n fontFamily: 'Roboto,Arial,sans-serif'\n },\n label: {\n textAlign: 'center',\n fontSize: '12px',\n background: '#fff',\n position: 'absolute',\n textTransform: 'uppercase',\n color: '#3c4043',\n width: '35px',\n top: '-6px',\n left: '0',\n right: '0',\n marginLeft: 'auto',\n marginRight: 'auto',\n fontFamily: 'Roboto,Arial,sans-serif'\n },\n label2: {\n left: '10px',\n textAlign: 'center',\n fontSize: '12px',\n background: '#fff',\n position: 'absolute',\n textTransform: 'uppercase',\n color: '#3c4043',\n width: '32px',\n top: '-6px',\n fontFamily: 'Roboto,Arial,sans-serif'\n },\n single: {\n flexGrow: '1',\n margin: '0px 4.4px'\n }\n }\n });\n\n var rgbValue = rgb.r + ', ' + rgb.g + ', ' + rgb.b;\n var hslValue = Math.round(hsl.h) + '\\xB0, ' + Math.round(hsl.s * 100) + '%, ' + Math.round(hsl.l * 100) + '%';\n var hsvValue = Math.round(hsv.h) + '\\xB0, ' + Math.round(hsv.s * 100) + '%, ' + Math.round(hsv.v * 100) + '%';\n\n return _react2.default.createElement(\n 'div',\n { style: styles.wrap, className: 'flexbox-fix' },\n _react2.default.createElement(\n 'div',\n { style: styles.fields },\n _react2.default.createElement(\n 'div',\n { style: styles.double },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'hex',\n value: hex,\n onChange: handleChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.column },\n _react2.default.createElement(\n 'div',\n { style: styles.single },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input2, label: styles.label2 },\n label: 'rgb',\n value: rgbValue,\n onChange: handleChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.single },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input2, label: styles.label2 },\n label: 'hsv',\n value: hsvValue,\n onChange: handleChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.single },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input2, label: styles.label2 },\n label: 'hsl',\n value: hslValue,\n onChange: handleChange\n })\n )\n )\n )\n );\n};\n\nexports.default = GoogleFields;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.GooglePointer = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar GooglePointer = exports.GooglePointer = function GooglePointer(props) {\n var styles = (0, _reactcss2.default)({\n 'default': {\n picker: {\n width: '20px',\n height: '20px',\n borderRadius: '22px',\n transform: 'translate(-10px, -7px)',\n background: 'hsl(' + Math.round(props.hsl.h) + ', 100%, 50%)',\n border: '2px white solid'\n }\n }\n });\n\n return _react2.default.createElement('div', { style: styles.picker });\n};\n\nGooglePointer.propTypes = {\n hsl: _propTypes2.default.shape({\n h: _propTypes2.default.number,\n s: _propTypes2.default.number,\n l: _propTypes2.default.number,\n a: _propTypes2.default.number\n })\n};\n\nGooglePointer.defaultProps = {\n hsl: { a: 1, h: 249.94, l: 0.2, s: 0.50 }\n};\n\nexports.default = GooglePointer;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.GooglePointerCircle = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar GooglePointerCircle = exports.GooglePointerCircle = function GooglePointerCircle(props) {\n var styles = (0, _reactcss2.default)({\n 'default': {\n picker: {\n width: '20px',\n height: '20px',\n borderRadius: '22px',\n border: '2px #fff solid',\n transform: 'translate(-12px, -13px)',\n background: 'hsl(' + Math.round(props.hsl.h) + ', ' + Math.round(props.hsl.s * 100) + '%, ' + Math.round(props.hsl.l * 100) + '%)'\n }\n }\n });\n\n return _react2.default.createElement('div', { style: styles.picker });\n};\n\nGooglePointerCircle.propTypes = {\n hsl: _propTypes2.default.shape({\n h: _propTypes2.default.number,\n s: _propTypes2.default.number,\n l: _propTypes2.default.number,\n a: _propTypes2.default.number\n })\n};\n\nGooglePointerCircle.defaultProps = {\n hsl: { a: 1, h: 249.94, l: 0.2, s: 0.50 }\n};\n\nexports.default = GooglePointerCircle;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.HuePicker = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _common = require('../common');\n\nvar _HuePointer = require('./HuePointer');\n\nvar _HuePointer2 = _interopRequireDefault(_HuePointer);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar HuePicker = exports.HuePicker = function HuePicker(_ref) {\n var width = _ref.width,\n height = _ref.height,\n onChange = _ref.onChange,\n hsl = _ref.hsl,\n direction = _ref.direction,\n pointer = _ref.pointer,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n picker: {\n position: 'relative',\n width: width,\n height: height\n },\n hue: {\n radius: '2px'\n }\n }\n }, passedStyles));\n\n // Overwrite to provide pure hue color\n var handleChange = function handleChange(data) {\n return onChange({ a: 1, h: data.h, l: 0.5, s: 1 });\n };\n\n return _react2.default.createElement(\n 'div',\n { style: styles.picker, className: 'hue-picker ' + className },\n _react2.default.createElement(_common.Hue, _extends({}, styles.hue, {\n hsl: hsl,\n pointer: pointer,\n onChange: handleChange,\n direction: direction\n }))\n );\n};\n\nHuePicker.propTypes = {\n styles: _propTypes2.default.object\n};\nHuePicker.defaultProps = {\n width: '316px',\n height: '16px',\n direction: 'horizontal',\n pointer: _HuePointer2.default,\n styles: {}\n};\n\nexports.default = (0, _common.ColorWrap)(HuePicker);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SliderPointer = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SliderPointer = exports.SliderPointer = function SliderPointer(_ref) {\n var direction = _ref.direction;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n picker: {\n width: '18px',\n height: '18px',\n borderRadius: '50%',\n transform: 'translate(-9px, -1px)',\n backgroundColor: 'rgb(248, 248, 248)',\n boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)'\n }\n },\n 'vertical': {\n picker: {\n transform: 'translate(-3px, -9px)'\n }\n }\n }, { vertical: direction === 'vertical' });\n\n return _react2.default.createElement('div', { style: styles.picker });\n};\n\nexports.default = SliderPointer;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Material = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _color = require('../../helpers/color');\n\nvar color = _interopRequireWildcard(_color);\n\nvar _common = require('../common');\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Material = exports.Material = function Material(_ref) {\n var onChange = _ref.onChange,\n hex = _ref.hex,\n rgb = _ref.rgb,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n material: {\n width: '98px',\n height: '98px',\n padding: '16px',\n fontFamily: 'Roboto'\n },\n HEXwrap: {\n position: 'relative'\n },\n HEXinput: {\n width: '100%',\n marginTop: '12px',\n fontSize: '15px',\n color: '#333',\n padding: '0px',\n border: '0px',\n borderBottom: '2px solid ' + hex,\n outline: 'none',\n height: '30px'\n },\n HEXlabel: {\n position: 'absolute',\n top: '0px',\n left: '0px',\n fontSize: '11px',\n color: '#999999',\n textTransform: 'capitalize'\n },\n Hex: {\n style: {}\n },\n RGBwrap: {\n position: 'relative'\n },\n RGBinput: {\n width: '100%',\n marginTop: '12px',\n fontSize: '15px',\n color: '#333',\n padding: '0px',\n border: '0px',\n borderBottom: '1px solid #eee',\n outline: 'none',\n height: '30px'\n },\n RGBlabel: {\n position: 'absolute',\n top: '0px',\n left: '0px',\n fontSize: '11px',\n color: '#999999',\n textTransform: 'capitalize'\n },\n split: {\n display: 'flex',\n marginRight: '-10px',\n paddingTop: '11px'\n },\n third: {\n flex: '1',\n paddingRight: '10px'\n }\n }\n }, passedStyles));\n\n var handleChange = function handleChange(data, e) {\n if (data.hex) {\n color.isValidHex(data.hex) && onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else if (data.r || data.g || data.b) {\n onChange({\n r: data.r || rgb.r,\n g: data.g || rgb.g,\n b: data.b || rgb.b,\n source: 'rgb'\n }, e);\n }\n };\n\n return _react2.default.createElement(\n _common.Raised,\n { styles: passedStyles },\n _react2.default.createElement(\n 'div',\n { style: styles.material, className: 'material-picker ' + className },\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.HEXwrap, input: styles.HEXinput, label: styles.HEXlabel },\n label: 'hex',\n value: hex,\n onChange: handleChange\n }),\n _react2.default.createElement(\n 'div',\n { style: styles.split, className: 'flexbox-fix' },\n _react2.default.createElement(\n 'div',\n { style: styles.third },\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'r', value: rgb.r,\n onChange: handleChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.third },\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'g',\n value: rgb.g,\n onChange: handleChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.third },\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'b',\n value: rgb.b,\n onChange: handleChange\n })\n )\n )\n )\n );\n};\n\nexports.default = (0, _common.ColorWrap)(Material);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Photoshop = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _common = require('../common');\n\nvar _PhotoshopFields = require('./PhotoshopFields');\n\nvar _PhotoshopFields2 = _interopRequireDefault(_PhotoshopFields);\n\nvar _PhotoshopPointerCircle = require('./PhotoshopPointerCircle');\n\nvar _PhotoshopPointerCircle2 = _interopRequireDefault(_PhotoshopPointerCircle);\n\nvar _PhotoshopPointer = require('./PhotoshopPointer');\n\nvar _PhotoshopPointer2 = _interopRequireDefault(_PhotoshopPointer);\n\nvar _PhotoshopButton = require('./PhotoshopButton');\n\nvar _PhotoshopButton2 = _interopRequireDefault(_PhotoshopButton);\n\nvar _PhotoshopPreviews = require('./PhotoshopPreviews');\n\nvar _PhotoshopPreviews2 = _interopRequireDefault(_PhotoshopPreviews);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Photoshop = exports.Photoshop = function (_React$Component) {\n _inherits(Photoshop, _React$Component);\n\n function Photoshop(props) {\n _classCallCheck(this, Photoshop);\n\n var _this = _possibleConstructorReturn(this, (Photoshop.__proto__ || Object.getPrototypeOf(Photoshop)).call(this));\n\n _this.state = {\n currentColor: props.hex\n };\n return _this;\n }\n\n _createClass(Photoshop, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n _props$styles = _props.styles,\n passedStyles = _props$styles === undefined ? {} : _props$styles,\n _props$className = _props.className,\n className = _props$className === undefined ? '' : _props$className;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n picker: {\n background: '#DCDCDC',\n borderRadius: '4px',\n boxShadow: '0 0 0 1px rgba(0,0,0,.25), 0 8px 16px rgba(0,0,0,.15)',\n boxSizing: 'initial',\n width: '513px'\n },\n head: {\n backgroundImage: 'linear-gradient(-180deg, #F0F0F0 0%, #D4D4D4 100%)',\n borderBottom: '1px solid #B1B1B1',\n boxShadow: 'inset 0 1px 0 0 rgba(255,255,255,.2), inset 0 -1px 0 0 rgba(0,0,0,.02)',\n height: '23px',\n lineHeight: '24px',\n borderRadius: '4px 4px 0 0',\n fontSize: '13px',\n color: '#4D4D4D',\n textAlign: 'center'\n },\n body: {\n padding: '15px 15px 0',\n display: 'flex'\n },\n saturation: {\n width: '256px',\n height: '256px',\n position: 'relative',\n border: '2px solid #B3B3B3',\n borderBottom: '2px solid #F0F0F0',\n overflow: 'hidden'\n },\n hue: {\n position: 'relative',\n height: '256px',\n width: '19px',\n marginLeft: '10px',\n border: '2px solid #B3B3B3',\n borderBottom: '2px solid #F0F0F0'\n },\n controls: {\n width: '180px',\n marginLeft: '10px'\n },\n top: {\n display: 'flex'\n },\n previews: {\n width: '60px'\n },\n actions: {\n flex: '1',\n marginLeft: '20px'\n }\n }\n }, passedStyles));\n\n return _react2.default.createElement(\n 'div',\n { style: styles.picker, className: 'photoshop-picker ' + className },\n _react2.default.createElement(\n 'div',\n { style: styles.head },\n this.props.header\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.body, className: 'flexbox-fix' },\n _react2.default.createElement(\n 'div',\n { style: styles.saturation },\n _react2.default.createElement(_common.Saturation, {\n hsl: this.props.hsl,\n hsv: this.props.hsv,\n pointer: _PhotoshopPointerCircle2.default,\n onChange: this.props.onChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.hue },\n _react2.default.createElement(_common.Hue, {\n direction: 'vertical',\n hsl: this.props.hsl,\n pointer: _PhotoshopPointer2.default,\n onChange: this.props.onChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.controls },\n _react2.default.createElement(\n 'div',\n { style: styles.top, className: 'flexbox-fix' },\n _react2.default.createElement(\n 'div',\n { style: styles.previews },\n _react2.default.createElement(_PhotoshopPreviews2.default, {\n rgb: this.props.rgb,\n currentColor: this.state.currentColor\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.actions },\n _react2.default.createElement(_PhotoshopButton2.default, { label: 'OK', onClick: this.props.onAccept, active: true }),\n _react2.default.createElement(_PhotoshopButton2.default, { label: 'Cancel', onClick: this.props.onCancel }),\n _react2.default.createElement(_PhotoshopFields2.default, {\n onChange: this.props.onChange,\n rgb: this.props.rgb,\n hsv: this.props.hsv,\n hex: this.props.hex\n })\n )\n )\n )\n )\n );\n }\n }]);\n\n return Photoshop;\n}(_react2.default.Component);\n\nPhotoshop.propTypes = {\n header: _propTypes2.default.string,\n styles: _propTypes2.default.object\n};\n\nPhotoshop.defaultProps = {\n header: 'Color Picker',\n styles: {}\n};\n\nexports.default = (0, _common.ColorWrap)(Photoshop);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PhotoshopButton = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar PhotoshopButton = exports.PhotoshopButton = function PhotoshopButton(_ref) {\n var onClick = _ref.onClick,\n label = _ref.label,\n children = _ref.children,\n active = _ref.active;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n button: {\n backgroundImage: 'linear-gradient(-180deg, #FFFFFF 0%, #E6E6E6 100%)',\n border: '1px solid #878787',\n borderRadius: '2px',\n height: '20px',\n boxShadow: '0 1px 0 0 #EAEAEA',\n fontSize: '14px',\n color: '#000',\n lineHeight: '20px',\n textAlign: 'center',\n marginBottom: '10px',\n cursor: 'pointer'\n }\n },\n 'active': {\n button: {\n boxShadow: '0 0 0 1px #878787'\n }\n }\n }, { active: active });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.button, onClick: onClick },\n label || children\n );\n};\n\nexports.default = PhotoshopButton;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PhotoshopPicker = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _color = require('../../helpers/color');\n\nvar color = _interopRequireWildcard(_color);\n\nvar _common = require('../common');\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar PhotoshopPicker = exports.PhotoshopPicker = function PhotoshopPicker(_ref) {\n var onChange = _ref.onChange,\n rgb = _ref.rgb,\n hsv = _ref.hsv,\n hex = _ref.hex;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n fields: {\n paddingTop: '5px',\n paddingBottom: '9px',\n width: '80px',\n position: 'relative'\n },\n divider: {\n height: '5px'\n },\n RGBwrap: {\n position: 'relative'\n },\n RGBinput: {\n marginLeft: '40%',\n width: '40%',\n height: '18px',\n border: '1px solid #888888',\n boxShadow: 'inset 0 1px 1px rgba(0,0,0,.1), 0 1px 0 0 #ECECEC',\n marginBottom: '5px',\n fontSize: '13px',\n paddingLeft: '3px',\n marginRight: '10px'\n },\n RGBlabel: {\n left: '0px',\n top: '0px',\n width: '34px',\n textTransform: 'uppercase',\n fontSize: '13px',\n height: '18px',\n lineHeight: '22px',\n position: 'absolute'\n },\n HEXwrap: {\n position: 'relative'\n },\n HEXinput: {\n marginLeft: '20%',\n width: '80%',\n height: '18px',\n border: '1px solid #888888',\n boxShadow: 'inset 0 1px 1px rgba(0,0,0,.1), 0 1px 0 0 #ECECEC',\n marginBottom: '6px',\n fontSize: '13px',\n paddingLeft: '3px'\n },\n HEXlabel: {\n position: 'absolute',\n top: '0px',\n left: '0px',\n width: '14px',\n textTransform: 'uppercase',\n fontSize: '13px',\n height: '18px',\n lineHeight: '22px'\n },\n fieldSymbols: {\n position: 'absolute',\n top: '5px',\n right: '-7px',\n fontSize: '13px'\n },\n symbol: {\n height: '20px',\n lineHeight: '22px',\n paddingBottom: '7px'\n }\n }\n });\n\n var handleChange = function handleChange(data, e) {\n if (data['#']) {\n color.isValidHex(data['#']) && onChange({\n hex: data['#'],\n source: 'hex'\n }, e);\n } else if (data.r || data.g || data.b) {\n onChange({\n r: data.r || rgb.r,\n g: data.g || rgb.g,\n b: data.b || rgb.b,\n source: 'rgb'\n }, e);\n } else if (data.h || data.s || data.v) {\n onChange({\n h: data.h || hsv.h,\n s: data.s || hsv.s,\n v: data.v || hsv.v,\n source: 'hsv'\n }, e);\n }\n };\n\n return _react2.default.createElement(\n 'div',\n { style: styles.fields },\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'h',\n value: Math.round(hsv.h),\n onChange: handleChange\n }),\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 's',\n value: Math.round(hsv.s * 100),\n onChange: handleChange\n }),\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'v',\n value: Math.round(hsv.v * 100),\n onChange: handleChange\n }),\n _react2.default.createElement('div', { style: styles.divider }),\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'r',\n value: rgb.r,\n onChange: handleChange\n }),\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'g',\n value: rgb.g,\n onChange: handleChange\n }),\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'b',\n value: rgb.b,\n onChange: handleChange\n }),\n _react2.default.createElement('div', { style: styles.divider }),\n _react2.default.createElement(_common.EditableInput, {\n style: { wrap: styles.HEXwrap, input: styles.HEXinput, label: styles.HEXlabel },\n label: '#',\n value: hex.replace('#', ''),\n onChange: handleChange\n }),\n _react2.default.createElement(\n 'div',\n { style: styles.fieldSymbols },\n _react2.default.createElement(\n 'div',\n { style: styles.symbol },\n '\\xB0'\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.symbol },\n '%'\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.symbol },\n '%'\n )\n )\n );\n};\n\nexports.default = PhotoshopPicker;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PhotoshopPointerCircle = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar PhotoshopPointerCircle = exports.PhotoshopPointerCircle = function PhotoshopPointerCircle() {\n var styles = (0, _reactcss2.default)({\n 'default': {\n triangle: {\n width: 0,\n height: 0,\n borderStyle: 'solid',\n borderWidth: '4px 0 4px 6px',\n borderColor: 'transparent transparent transparent #fff',\n position: 'absolute',\n top: '1px',\n left: '1px'\n },\n triangleBorder: {\n width: 0,\n height: 0,\n borderStyle: 'solid',\n borderWidth: '5px 0 5px 8px',\n borderColor: 'transparent transparent transparent #555'\n },\n\n left: {\n Extend: 'triangleBorder',\n transform: 'translate(-13px, -4px)'\n },\n leftInside: {\n Extend: 'triangle',\n transform: 'translate(-8px, -5px)'\n },\n\n right: {\n Extend: 'triangleBorder',\n transform: 'translate(20px, -14px) rotate(180deg)'\n },\n rightInside: {\n Extend: 'triangle',\n transform: 'translate(-8px, -5px)'\n }\n }\n });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.pointer },\n _react2.default.createElement(\n 'div',\n { style: styles.left },\n _react2.default.createElement('div', { style: styles.leftInside })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.right },\n _react2.default.createElement('div', { style: styles.rightInside })\n )\n );\n};\n\nexports.default = PhotoshopPointerCircle;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PhotoshopPointerCircle = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar PhotoshopPointerCircle = exports.PhotoshopPointerCircle = function PhotoshopPointerCircle(_ref) {\n var hsl = _ref.hsl;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n picker: {\n width: '12px',\n height: '12px',\n borderRadius: '6px',\n boxShadow: 'inset 0 0 0 1px #fff',\n transform: 'translate(-6px, -6px)'\n }\n },\n 'black-outline': {\n picker: {\n boxShadow: 'inset 0 0 0 1px #000'\n }\n }\n }, { 'black-outline': hsl.l > 0.5 });\n\n return _react2.default.createElement('div', { style: styles.picker });\n};\n\nexports.default = PhotoshopPointerCircle;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PhotoshopPreviews = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar PhotoshopPreviews = exports.PhotoshopPreviews = function PhotoshopPreviews(_ref) {\n var rgb = _ref.rgb,\n currentColor = _ref.currentColor;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n swatches: {\n border: '1px solid #B3B3B3',\n borderBottom: '1px solid #F0F0F0',\n marginBottom: '2px',\n marginTop: '1px'\n },\n new: {\n height: '34px',\n background: 'rgb(' + rgb.r + ',' + rgb.g + ', ' + rgb.b + ')',\n boxShadow: 'inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 1px 0 #000'\n },\n current: {\n height: '34px',\n background: currentColor,\n boxShadow: 'inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 -1px 0 #000'\n },\n label: {\n fontSize: '14px',\n color: '#000',\n textAlign: 'center'\n }\n }\n });\n\n return _react2.default.createElement(\n 'div',\n null,\n _react2.default.createElement(\n 'div',\n { style: styles.label },\n 'new'\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.swatches },\n _react2.default.createElement('div', { style: styles.new }),\n _react2.default.createElement('div', { style: styles.current })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.label },\n 'current'\n )\n );\n};\n\nexports.default = PhotoshopPreviews;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Sketch = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _common = require('../common');\n\nvar _SketchFields = require('./SketchFields');\n\nvar _SketchFields2 = _interopRequireDefault(_SketchFields);\n\nvar _SketchPresetColors = require('./SketchPresetColors');\n\nvar _SketchPresetColors2 = _interopRequireDefault(_SketchPresetColors);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Sketch = exports.Sketch = function Sketch(_ref) {\n var width = _ref.width,\n rgb = _ref.rgb,\n hex = _ref.hex,\n hsv = _ref.hsv,\n hsl = _ref.hsl,\n onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n disableAlpha = _ref.disableAlpha,\n presetColors = _ref.presetColors,\n renderers = _ref.renderers,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': _extends({\n picker: {\n width: width,\n padding: '10px 10px 0',\n boxSizing: 'initial',\n background: '#fff',\n borderRadius: '4px',\n boxShadow: '0 0 0 1px rgba(0,0,0,.15), 0 8px 16px rgba(0,0,0,.15)'\n },\n saturation: {\n width: '100%',\n paddingBottom: '75%',\n position: 'relative',\n overflow: 'hidden'\n },\n Saturation: {\n radius: '3px',\n shadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n },\n controls: {\n display: 'flex'\n },\n sliders: {\n padding: '4px 0',\n flex: '1'\n },\n color: {\n width: '24px',\n height: '24px',\n position: 'relative',\n marginTop: '4px',\n marginLeft: '4px',\n borderRadius: '3px'\n },\n activeColor: {\n absolute: '0px 0px 0px 0px',\n borderRadius: '2px',\n background: 'rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ',' + rgb.a + ')',\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n },\n hue: {\n position: 'relative',\n height: '10px',\n overflow: 'hidden'\n },\n Hue: {\n radius: '2px',\n shadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n },\n\n alpha: {\n position: 'relative',\n height: '10px',\n marginTop: '4px',\n overflow: 'hidden'\n },\n Alpha: {\n radius: '2px',\n shadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n }\n }, passedStyles),\n 'disableAlpha': {\n color: {\n height: '10px'\n },\n hue: {\n height: '10px'\n },\n alpha: {\n display: 'none'\n }\n }\n }, passedStyles), { disableAlpha: disableAlpha });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.picker, className: 'sketch-picker ' + className },\n _react2.default.createElement(\n 'div',\n { style: styles.saturation },\n _react2.default.createElement(_common.Saturation, {\n style: styles.Saturation,\n hsl: hsl,\n hsv: hsv,\n onChange: onChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.controls, className: 'flexbox-fix' },\n _react2.default.createElement(\n 'div',\n { style: styles.sliders },\n _react2.default.createElement(\n 'div',\n { style: styles.hue },\n _react2.default.createElement(_common.Hue, {\n style: styles.Hue,\n hsl: hsl,\n onChange: onChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.alpha },\n _react2.default.createElement(_common.Alpha, {\n style: styles.Alpha,\n rgb: rgb,\n hsl: hsl,\n renderers: renderers,\n onChange: onChange\n })\n )\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.color },\n _react2.default.createElement(_common.Checkboard, null),\n _react2.default.createElement('div', { style: styles.activeColor })\n )\n ),\n _react2.default.createElement(_SketchFields2.default, {\n rgb: rgb,\n hsl: hsl,\n hex: hex,\n onChange: onChange,\n disableAlpha: disableAlpha\n }),\n _react2.default.createElement(_SketchPresetColors2.default, {\n colors: presetColors,\n onClick: onChange,\n onSwatchHover: onSwatchHover\n })\n );\n};\n\nSketch.propTypes = {\n disableAlpha: _propTypes2.default.bool,\n width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n styles: _propTypes2.default.object\n};\n\nSketch.defaultProps = {\n disableAlpha: false,\n width: 200,\n styles: {},\n presetColors: ['#D0021B', '#F5A623', '#F8E71C', '#8B572A', '#7ED321', '#417505', '#BD10E0', '#9013FE', '#4A90E2', '#50E3C2', '#B8E986', '#000000', '#4A4A4A', '#9B9B9B', '#FFFFFF']\n};\n\nexports.default = (0, _common.ColorWrap)(Sketch);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SketchFields = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _color = require('../../helpers/color');\n\nvar color = _interopRequireWildcard(_color);\n\nvar _common = require('../common');\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-disable no-param-reassign */\n\nvar SketchFields = exports.SketchFields = function SketchFields(_ref) {\n var onChange = _ref.onChange,\n rgb = _ref.rgb,\n hsl = _ref.hsl,\n hex = _ref.hex,\n disableAlpha = _ref.disableAlpha;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n fields: {\n display: 'flex',\n paddingTop: '4px'\n },\n single: {\n flex: '1',\n paddingLeft: '6px'\n },\n alpha: {\n flex: '1',\n paddingLeft: '6px'\n },\n double: {\n flex: '2'\n },\n input: {\n width: '80%',\n padding: '4px 10% 3px',\n border: 'none',\n boxShadow: 'inset 0 0 0 1px #ccc',\n fontSize: '11px'\n },\n label: {\n display: 'block',\n textAlign: 'center',\n fontSize: '11px',\n color: '#222',\n paddingTop: '3px',\n paddingBottom: '4px',\n textTransform: 'capitalize'\n }\n },\n 'disableAlpha': {\n alpha: {\n display: 'none'\n }\n }\n }, { disableAlpha: disableAlpha });\n\n var handleChange = function handleChange(data, e) {\n if (data.hex) {\n color.isValidHex(data.hex) && onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else if (data.r || data.g || data.b) {\n onChange({\n r: data.r || rgb.r,\n g: data.g || rgb.g,\n b: data.b || rgb.b,\n a: rgb.a,\n source: 'rgb'\n }, e);\n } else if (data.a) {\n if (data.a < 0) {\n data.a = 0;\n } else if (data.a > 100) {\n data.a = 100;\n }\n\n data.a /= 100;\n onChange({\n h: hsl.h,\n s: hsl.s,\n l: hsl.l,\n a: data.a,\n source: 'rgb'\n }, e);\n }\n };\n\n return _react2.default.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n _react2.default.createElement(\n 'div',\n { style: styles.double },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'hex',\n value: hex.replace('#', ''),\n onChange: handleChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.single },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'r',\n value: rgb.r,\n onChange: handleChange,\n dragLabel: 'true',\n dragMax: '255'\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.single },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'g',\n value: rgb.g,\n onChange: handleChange,\n dragLabel: 'true',\n dragMax: '255'\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.single },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'b',\n value: rgb.b,\n onChange: handleChange,\n dragLabel: 'true',\n dragMax: '255'\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.alpha },\n _react2.default.createElement(_common.EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'a',\n value: Math.round(rgb.a * 100),\n onChange: handleChange,\n dragLabel: 'true',\n dragMax: '100'\n })\n )\n );\n};\n\nexports.default = SketchFields;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SketchPresetColors = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _common = require('../common');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SketchPresetColors = exports.SketchPresetColors = function SketchPresetColors(_ref) {\n var colors = _ref.colors,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n onSwatchHover = _ref.onSwatchHover;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n colors: {\n margin: '0 -10px',\n padding: '10px 0 0 10px',\n borderTop: '1px solid #eee',\n display: 'flex',\n flexWrap: 'wrap',\n position: 'relative'\n },\n swatchWrap: {\n width: '16px',\n height: '16px',\n margin: '0 10px 10px 0'\n },\n swatch: {\n borderRadius: '3px',\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15)'\n }\n },\n 'no-presets': {\n colors: {\n display: 'none'\n }\n }\n }, {\n 'no-presets': !colors || !colors.length\n });\n\n var handleClick = function handleClick(hex, e) {\n onClick({\n hex: hex,\n source: 'hex'\n }, e);\n };\n\n return _react2.default.createElement(\n 'div',\n { style: styles.colors, className: 'flexbox-fix' },\n colors.map(function (colorObjOrString) {\n var c = typeof colorObjOrString === 'string' ? { color: colorObjOrString } : colorObjOrString;\n var key = '' + c.color + (c.title || '');\n return _react2.default.createElement(\n 'div',\n { key: key, style: styles.swatchWrap },\n _react2.default.createElement(_common.Swatch, _extends({}, c, {\n style: styles.swatch,\n onClick: handleClick,\n onHover: onSwatchHover,\n focusStyle: {\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15), 0 0 4px ' + c.color\n }\n }))\n );\n })\n );\n};\n\nSketchPresetColors.propTypes = {\n colors: _propTypes2.default.arrayOf(_propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({\n color: _propTypes2.default.string,\n title: _propTypes2.default.string\n })])).isRequired\n};\n\nexports.default = SketchPresetColors;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Slider = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _common = require('../common');\n\nvar _SliderSwatches = require('./SliderSwatches');\n\nvar _SliderSwatches2 = _interopRequireDefault(_SliderSwatches);\n\nvar _SliderPointer = require('./SliderPointer');\n\nvar _SliderPointer2 = _interopRequireDefault(_SliderPointer);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Slider = exports.Slider = function Slider(_ref) {\n var hsl = _ref.hsl,\n onChange = _ref.onChange,\n pointer = _ref.pointer,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n hue: {\n height: '12px',\n position: 'relative'\n },\n Hue: {\n radius: '2px'\n }\n }\n }, passedStyles));\n\n return _react2.default.createElement(\n 'div',\n { style: styles.wrap || {}, className: 'slider-picker ' + className },\n _react2.default.createElement(\n 'div',\n { style: styles.hue },\n _react2.default.createElement(_common.Hue, {\n style: styles.Hue,\n hsl: hsl,\n pointer: pointer,\n onChange: onChange\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.swatches },\n _react2.default.createElement(_SliderSwatches2.default, { hsl: hsl, onClick: onChange })\n )\n );\n};\n\nSlider.propTypes = {\n styles: _propTypes2.default.object\n};\nSlider.defaultProps = {\n pointer: _SliderPointer2.default,\n styles: {}\n};\n\nexports.default = (0, _common.ColorWrap)(Slider);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SliderPointer = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SliderPointer = exports.SliderPointer = function SliderPointer() {\n var styles = (0, _reactcss2.default)({\n 'default': {\n picker: {\n width: '14px',\n height: '14px',\n borderRadius: '6px',\n transform: 'translate(-7px, -1px)',\n backgroundColor: 'rgb(248, 248, 248)',\n boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)'\n }\n }\n });\n\n return _react2.default.createElement('div', { style: styles.picker });\n};\n\nexports.default = SliderPointer;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SliderSwatch = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SliderSwatch = exports.SliderSwatch = function SliderSwatch(_ref) {\n var hsl = _ref.hsl,\n offset = _ref.offset,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n active = _ref.active,\n first = _ref.first,\n last = _ref.last;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n swatch: {\n height: '12px',\n background: 'hsl(' + hsl.h + ', 50%, ' + offset * 100 + '%)',\n cursor: 'pointer'\n }\n },\n 'first': {\n swatch: {\n borderRadius: '2px 0 0 2px'\n }\n },\n 'last': {\n swatch: {\n borderRadius: '0 2px 2px 0'\n }\n },\n 'active': {\n swatch: {\n transform: 'scaleY(1.8)',\n borderRadius: '3.6px/2px'\n }\n }\n }, { active: active, first: first, last: last });\n\n var handleClick = function handleClick(e) {\n return onClick({\n h: hsl.h,\n s: 0.5,\n l: offset,\n source: 'hsl'\n }, e);\n };\n\n return _react2.default.createElement('div', { style: styles.swatch, onClick: handleClick });\n};\n\nexports.default = SliderSwatch;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SliderSwatches = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _SliderSwatch = require('./SliderSwatch');\n\nvar _SliderSwatch2 = _interopRequireDefault(_SliderSwatch);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SliderSwatches = exports.SliderSwatches = function SliderSwatches(_ref) {\n var onClick = _ref.onClick,\n hsl = _ref.hsl;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n swatches: {\n marginTop: '20px'\n },\n swatch: {\n boxSizing: 'border-box',\n width: '20%',\n paddingRight: '1px',\n float: 'left'\n },\n clear: {\n clear: 'both'\n }\n }\n });\n\n // Acceptible difference in floating point equality\n var epsilon = 0.1;\n\n return _react2.default.createElement(\n 'div',\n { style: styles.swatches },\n _react2.default.createElement(\n 'div',\n { style: styles.swatch },\n _react2.default.createElement(_SliderSwatch2.default, {\n hsl: hsl,\n offset: '.80',\n active: Math.abs(hsl.l - 0.80) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick,\n first: true\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.swatch },\n _react2.default.createElement(_SliderSwatch2.default, {\n hsl: hsl,\n offset: '.65',\n active: Math.abs(hsl.l - 0.65) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.swatch },\n _react2.default.createElement(_SliderSwatch2.default, {\n hsl: hsl,\n offset: '.50',\n active: Math.abs(hsl.l - 0.50) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.swatch },\n _react2.default.createElement(_SliderSwatch2.default, {\n hsl: hsl,\n offset: '.35',\n active: Math.abs(hsl.l - 0.35) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick\n })\n ),\n _react2.default.createElement(\n 'div',\n { style: styles.swatch },\n _react2.default.createElement(_SliderSwatch2.default, {\n hsl: hsl,\n offset: '.20',\n active: Math.abs(hsl.l - 0.20) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick,\n last: true\n })\n ),\n _react2.default.createElement('div', { style: styles.clear })\n );\n};\n\nexports.default = SliderSwatches;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Swatches = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _map = require('lodash/map');\n\nvar _map2 = _interopRequireDefault(_map);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _materialColors = require('material-colors');\n\nvar material = _interopRequireWildcard(_materialColors);\n\nvar _common = require('../common');\n\nvar _SwatchesGroup = require('./SwatchesGroup');\n\nvar _SwatchesGroup2 = _interopRequireDefault(_SwatchesGroup);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Swatches = exports.Swatches = function Swatches(_ref) {\n var width = _ref.width,\n height = _ref.height,\n onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n colors = _ref.colors,\n hex = _ref.hex,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n picker: {\n width: width,\n height: height\n },\n overflow: {\n height: height,\n overflowY: 'scroll'\n },\n body: {\n padding: '16px 0 6px 16px'\n },\n clear: {\n clear: 'both'\n }\n }\n }, passedStyles));\n\n var handleChange = function handleChange(data, e) {\n return onChange({ hex: data, source: 'hex' }, e);\n };\n\n return _react2.default.createElement(\n 'div',\n { style: styles.picker, className: 'swatches-picker ' + className },\n _react2.default.createElement(\n _common.Raised,\n null,\n _react2.default.createElement(\n 'div',\n { style: styles.overflow },\n _react2.default.createElement(\n 'div',\n { style: styles.body },\n (0, _map2.default)(colors, function (group) {\n return _react2.default.createElement(_SwatchesGroup2.default, {\n key: group.toString(),\n group: group,\n active: hex,\n onClick: handleChange,\n onSwatchHover: onSwatchHover\n });\n }),\n _react2.default.createElement('div', { style: styles.clear })\n )\n )\n )\n );\n};\n\nSwatches.propTypes = {\n width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n height: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n colors: _propTypes2.default.arrayOf(_propTypes2.default.arrayOf(_propTypes2.default.string)),\n styles: _propTypes2.default.object\n\n /* eslint-disable max-len */\n};Swatches.defaultProps = {\n width: 320,\n height: 240,\n colors: [[material.red['900'], material.red['700'], material.red['500'], material.red['300'], material.red['100']], [material.pink['900'], material.pink['700'], material.pink['500'], material.pink['300'], material.pink['100']], [material.purple['900'], material.purple['700'], material.purple['500'], material.purple['300'], material.purple['100']], [material.deepPurple['900'], material.deepPurple['700'], material.deepPurple['500'], material.deepPurple['300'], material.deepPurple['100']], [material.indigo['900'], material.indigo['700'], material.indigo['500'], material.indigo['300'], material.indigo['100']], [material.blue['900'], material.blue['700'], material.blue['500'], material.blue['300'], material.blue['100']], [material.lightBlue['900'], material.lightBlue['700'], material.lightBlue['500'], material.lightBlue['300'], material.lightBlue['100']], [material.cyan['900'], material.cyan['700'], material.cyan['500'], material.cyan['300'], material.cyan['100']], [material.teal['900'], material.teal['700'], material.teal['500'], material.teal['300'], material.teal['100']], ['#194D33', material.green['700'], material.green['500'], material.green['300'], material.green['100']], [material.lightGreen['900'], material.lightGreen['700'], material.lightGreen['500'], material.lightGreen['300'], material.lightGreen['100']], [material.lime['900'], material.lime['700'], material.lime['500'], material.lime['300'], material.lime['100']], [material.yellow['900'], material.yellow['700'], material.yellow['500'], material.yellow['300'], material.yellow['100']], [material.amber['900'], material.amber['700'], material.amber['500'], material.amber['300'], material.amber['100']], [material.orange['900'], material.orange['700'], material.orange['500'], material.orange['300'], material.orange['100']], [material.deepOrange['900'], material.deepOrange['700'], material.deepOrange['500'], material.deepOrange['300'], material.deepOrange['100']], [material.brown['900'], material.brown['700'], material.brown['500'], material.brown['300'], material.brown['100']], [material.blueGrey['900'], material.blueGrey['700'], material.blueGrey['500'], material.blueGrey['300'], material.blueGrey['100']], ['#000000', '#525252', '#969696', '#D9D9D9', '#FFFFFF']],\n styles: {}\n};\n\nexports.default = (0, _common.ColorWrap)(Swatches);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SwatchesColor = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _color = require('../../helpers/color');\n\nvar colorUtils = _interopRequireWildcard(_color);\n\nvar _common = require('../common');\n\nvar _CheckIcon = require('@icons/material/CheckIcon');\n\nvar _CheckIcon2 = _interopRequireDefault(_CheckIcon);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SwatchesColor = exports.SwatchesColor = function SwatchesColor(_ref) {\n var color = _ref.color,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n onSwatchHover = _ref.onSwatchHover,\n first = _ref.first,\n last = _ref.last,\n active = _ref.active;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n color: {\n width: '40px',\n height: '24px',\n cursor: 'pointer',\n background: color,\n marginBottom: '1px'\n },\n check: {\n color: colorUtils.getContrastingColor(color),\n marginLeft: '8px',\n display: 'none'\n }\n },\n 'first': {\n color: {\n overflow: 'hidden',\n borderRadius: '2px 2px 0 0'\n }\n },\n 'last': {\n color: {\n overflow: 'hidden',\n borderRadius: '0 0 2px 2px'\n }\n },\n 'active': {\n check: {\n display: 'block'\n }\n },\n 'color-#FFFFFF': {\n color: {\n boxShadow: 'inset 0 0 0 1px #ddd'\n },\n check: {\n color: '#333'\n }\n },\n 'transparent': {\n check: {\n color: '#333'\n }\n }\n }, {\n first: first,\n last: last,\n active: active,\n 'color-#FFFFFF': color === '#FFFFFF',\n 'transparent': color === 'transparent'\n });\n\n return _react2.default.createElement(\n _common.Swatch,\n {\n color: color,\n style: styles.color,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: { boxShadow: '0 0 4px ' + color }\n },\n _react2.default.createElement(\n 'div',\n { style: styles.check },\n _react2.default.createElement(_CheckIcon2.default, null)\n )\n );\n};\n\nexports.default = SwatchesColor;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SwatchesGroup = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _map = require('lodash/map');\n\nvar _map2 = _interopRequireDefault(_map);\n\nvar _SwatchesColor = require('./SwatchesColor');\n\nvar _SwatchesColor2 = _interopRequireDefault(_SwatchesColor);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SwatchesGroup = exports.SwatchesGroup = function SwatchesGroup(_ref) {\n var onClick = _ref.onClick,\n onSwatchHover = _ref.onSwatchHover,\n group = _ref.group,\n active = _ref.active;\n\n var styles = (0, _reactcss2.default)({\n 'default': {\n group: {\n paddingBottom: '10px',\n width: '40px',\n float: 'left',\n marginRight: '10px'\n }\n }\n });\n\n return _react2.default.createElement(\n 'div',\n { style: styles.group },\n (0, _map2.default)(group, function (color, i) {\n return _react2.default.createElement(_SwatchesColor2.default, {\n key: color,\n color: color,\n active: color.toLowerCase() === active,\n first: i === 0,\n last: i === group.length - 1,\n onClick: onClick,\n onSwatchHover: onSwatchHover\n });\n })\n );\n};\n\nexports.default = SwatchesGroup;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Twitter = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactcss = require('reactcss');\n\nvar _reactcss2 = _interopRequireDefault(_reactcss);\n\nvar _map = require('lodash/map');\n\nvar _map2 = _interopRequireDefault(_map);\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _color = require('../../helpers/color');\n\nvar color = _interopRequireWildcard(_color);\n\nvar _common = require('../common');\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Twitter = exports.Twitter = function Twitter(_ref) {\n var onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n hex = _ref.hex,\n colors = _ref.colors,\n width = _ref.width,\n triangle = _ref.triangle,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = (0, _reactcss2.default)((0, _merge2.default)({\n 'default': {\n card: {\n width: width,\n background: '#fff',\n border: '0 solid rgba(0,0,0,0.25)',\n boxShadow: '0 1px 4px rgba(0,0,0,0.25)',\n borderRadius: '4px',\n position: 'relative'\n },\n body: {\n padding: '15px 9px 9px 15px'\n },\n label: {\n fontSize: '18px',\n color: '#fff'\n },\n triangle: {\n width: '0px',\n height: '0px',\n borderStyle: 'solid',\n borderWidth: '0 9px 10px 9px',\n borderColor: 'transparent transparent #fff transparent',\n position: 'absolute'\n },\n triangleShadow: {\n width: '0px',\n height: '0px',\n borderStyle: 'solid',\n borderWidth: '0 9px 10px 9px',\n borderColor: 'transparent transparent rgba(0,0,0,.1) transparent',\n position: 'absolute'\n },\n hash: {\n background: '#F0F0F0',\n height: '30px',\n width: '30px',\n borderRadius: '4px 0 0 4px',\n float: 'left',\n color: '#98A1A4',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center'\n },\n input: {\n width: '100px',\n fontSize: '14px',\n color: '#666',\n border: '0px',\n outline: 'none',\n height: '28px',\n boxShadow: 'inset 0 0 0 1px #F0F0F0',\n boxSizing: 'content-box',\n borderRadius: '0 4px 4px 0',\n float: 'left',\n paddingLeft: '8px'\n },\n swatch: {\n width: '30px',\n height: '30px',\n float: 'left',\n borderRadius: '4px',\n margin: '0 6px 6px 0'\n },\n clear: {\n clear: 'both'\n }\n },\n 'hide-triangle': {\n triangle: {\n display: 'none'\n },\n triangleShadow: {\n display: 'none'\n }\n },\n 'top-left-triangle': {\n triangle: {\n top: '-10px',\n left: '12px'\n },\n triangleShadow: {\n top: '-11px',\n left: '12px'\n }\n },\n 'top-right-triangle': {\n triangle: {\n top: '-10px',\n right: '12px'\n },\n triangleShadow: {\n top: '-11px',\n right: '12px'\n }\n }\n }, passedStyles), {\n 'hide-triangle': triangle === 'hide',\n 'top-left-triangle': triangle === 'top-left',\n 'top-right-triangle': triangle === 'top-right'\n });\n\n var handleChange = function handleChange(hexcode, e) {\n color.isValidHex(hexcode) && onChange({\n hex: hexcode,\n source: 'hex'\n }, e);\n };\n\n return _react2.default.createElement(\n 'div',\n { style: styles.card, className: 'twitter-picker ' + className },\n _react2.default.createElement('div', { style: styles.triangleShadow }),\n _react2.default.createElement('div', { style: styles.triangle }),\n _react2.default.createElement(\n 'div',\n { style: styles.body },\n (0, _map2.default)(colors, function (c, i) {\n return _react2.default.createElement(_common.Swatch, {\n key: i,\n color: c,\n hex: c,\n style: styles.swatch,\n onClick: handleChange,\n onHover: onSwatchHover,\n focusStyle: {\n boxShadow: '0 0 4px ' + c\n }\n });\n }),\n _react2.default.createElement(\n 'div',\n { style: styles.hash },\n '#'\n ),\n _react2.default.createElement(_common.EditableInput, {\n label: null,\n style: { input: styles.input },\n value: hex.replace('#', ''),\n onChange: handleChange\n }),\n _react2.default.createElement('div', { style: styles.clear })\n )\n );\n};\n\nTwitter.propTypes = {\n width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n triangle: _propTypes2.default.oneOf(['hide', 'top-left', 'top-right']),\n colors: _propTypes2.default.arrayOf(_propTypes2.default.string),\n styles: _propTypes2.default.object\n};\n\nTwitter.defaultProps = {\n width: 276,\n colors: ['#FF6900', '#FCB900', '#7BDCB5', '#00D084', '#8ED1FC', '#0693E3', '#ABB8C3', '#EB144C', '#F78DA7', '#9900EF'],\n triangle: 'top-left',\n styles: {}\n};\n\nexports.default = (0, _common.ColorWrap)(Twitter);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar calculateChange = exports.calculateChange = function calculateChange(e, hsl, direction, initialA, container) {\n var containerWidth = container.clientWidth;\n var containerHeight = container.clientHeight;\n var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX;\n var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY;\n var left = x - (container.getBoundingClientRect().left + window.pageXOffset);\n var top = y - (container.getBoundingClientRect().top + window.pageYOffset);\n\n if (direction === 'vertical') {\n var a = void 0;\n if (top < 0) {\n a = 0;\n } else if (top > containerHeight) {\n a = 1;\n } else {\n a = Math.round(top * 100 / containerHeight) / 100;\n }\n\n if (hsl.a !== a) {\n return {\n h: hsl.h,\n s: hsl.s,\n l: hsl.l,\n a: a,\n source: 'rgb'\n };\n }\n } else {\n var _a = void 0;\n if (left < 0) {\n _a = 0;\n } else if (left > containerWidth) {\n _a = 1;\n } else {\n _a = Math.round(left * 100 / containerWidth) / 100;\n }\n\n if (initialA !== _a) {\n return {\n h: hsl.h,\n s: hsl.s,\n l: hsl.l,\n a: _a,\n source: 'rgb'\n };\n }\n }\n return null;\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar checkboardCache = {};\n\nvar render = exports.render = function render(c1, c2, size, serverCanvas) {\n if (typeof document === 'undefined' && !serverCanvas) {\n return null;\n }\n var canvas = serverCanvas ? new serverCanvas() : document.createElement('canvas');\n canvas.width = size * 2;\n canvas.height = size * 2;\n var ctx = canvas.getContext('2d');\n if (!ctx) {\n return null;\n } // If no context can be found, return early.\n ctx.fillStyle = c1;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n ctx.fillStyle = c2;\n ctx.fillRect(0, 0, size, size);\n ctx.translate(size, size);\n ctx.fillRect(0, 0, size, size);\n return canvas.toDataURL();\n};\n\nvar get = exports.get = function get(c1, c2, size, serverCanvas) {\n var key = c1 + '-' + c2 + '-' + size + (serverCanvas ? '-server' : '');\n\n if (checkboardCache[key]) {\n return checkboardCache[key];\n }\n\n var checkboard = render(c1, c2, size, serverCanvas);\n checkboardCache[key] = checkboard;\n return checkboard;\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isvalidColorString = exports.red = exports.getContrastingColor = exports.isValidHex = exports.toState = exports.simpleCheckForValidColor = undefined;\n\nvar _each = require('lodash/each');\n\nvar _each2 = _interopRequireDefault(_each);\n\nvar _tinycolor = require('tinycolor2');\n\nvar _tinycolor2 = _interopRequireDefault(_tinycolor);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar simpleCheckForValidColor = exports.simpleCheckForValidColor = function simpleCheckForValidColor(data) {\n var keysToCheck = ['r', 'g', 'b', 'a', 'h', 's', 'l', 'v'];\n var checked = 0;\n var passed = 0;\n (0, _each2.default)(keysToCheck, function (letter) {\n if (data[letter]) {\n checked += 1;\n if (!isNaN(data[letter])) {\n passed += 1;\n }\n if (letter === 's' || letter === 'l') {\n var percentPatt = /^\\d+%$/;\n if (percentPatt.test(data[letter])) {\n passed += 1;\n }\n }\n }\n });\n return checked === passed ? data : false;\n};\n\nvar toState = exports.toState = function toState(data, oldHue) {\n var color = data.hex ? (0, _tinycolor2.default)(data.hex) : (0, _tinycolor2.default)(data);\n var hsl = color.toHsl();\n var hsv = color.toHsv();\n var rgb = color.toRgb();\n var hex = color.toHex();\n if (hsl.s === 0) {\n hsl.h = oldHue || 0;\n hsv.h = oldHue || 0;\n }\n var transparent = hex === '000000' && rgb.a === 0;\n\n return {\n hsl: hsl,\n hex: transparent ? 'transparent' : '#' + hex,\n rgb: rgb,\n hsv: hsv,\n oldHue: data.h || oldHue || hsl.h,\n source: data.source\n };\n};\n\nvar isValidHex = exports.isValidHex = function isValidHex(hex) {\n if (hex === 'transparent') {\n return true;\n }\n // disable hex4 and hex8\n var lh = String(hex).charAt(0) === '#' ? 1 : 0;\n return hex.length !== 4 + lh && hex.length < 7 + lh && (0, _tinycolor2.default)(hex).isValid();\n};\n\nvar getContrastingColor = exports.getContrastingColor = function getContrastingColor(data) {\n if (!data) {\n return '#fff';\n }\n var col = toState(data);\n if (col.hex === 'transparent') {\n return 'rgba(0,0,0,0.4)';\n }\n var yiq = (col.rgb.r * 299 + col.rgb.g * 587 + col.rgb.b * 114) / 1000;\n return yiq >= 128 ? '#000' : '#fff';\n};\n\nvar red = exports.red = {\n hsl: { a: 1, h: 0, l: 0.5, s: 1 },\n hex: '#ff0000',\n rgb: { r: 255, g: 0, b: 0, a: 1 },\n hsv: { h: 0, s: 1, v: 1, a: 1 }\n};\n\nvar isvalidColorString = exports.isvalidColorString = function isvalidColorString(string, type) {\n var stringWithoutDegree = string.replace('°', '');\n return (0, _tinycolor2.default)(type + ' (' + stringWithoutDegree + ')')._ok;\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar calculateChange = exports.calculateChange = function calculateChange(e, direction, hsl, container) {\n var containerWidth = container.clientWidth;\n var containerHeight = container.clientHeight;\n var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX;\n var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY;\n var left = x - (container.getBoundingClientRect().left + window.pageXOffset);\n var top = y - (container.getBoundingClientRect().top + window.pageYOffset);\n\n if (direction === 'vertical') {\n var h = void 0;\n if (top < 0) {\n h = 359;\n } else if (top > containerHeight) {\n h = 0;\n } else {\n var percent = -(top * 100 / containerHeight) + 100;\n h = 360 * percent / 100;\n }\n\n if (hsl.h !== h) {\n return {\n h: h,\n s: hsl.s,\n l: hsl.l,\n a: hsl.a,\n source: 'hsl'\n };\n }\n } else {\n var _h = void 0;\n if (left < 0) {\n _h = 0;\n } else if (left > containerWidth) {\n _h = 359;\n } else {\n var _percent = left * 100 / containerWidth;\n _h = 360 * _percent / 100;\n }\n\n if (hsl.h !== _h) {\n return {\n h: _h,\n s: hsl.s,\n l: hsl.l,\n a: hsl.a,\n source: 'hsl'\n };\n }\n }\n return null;\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.handleFocus = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /* eslint-disable no-invalid-this */\n\n\nvar handleFocus = exports.handleFocus = function handleFocus(Component) {\n var Span = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'span';\n return function (_React$Component) {\n _inherits(Focus, _React$Component);\n\n function Focus() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Focus);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Focus.__proto__ || Object.getPrototypeOf(Focus)).call.apply(_ref, [this].concat(args))), _this), _this.state = { focus: false }, _this.handleFocus = function () {\n return _this.setState({ focus: true });\n }, _this.handleBlur = function () {\n return _this.setState({ focus: false });\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Focus, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n Span,\n { onFocus: this.handleFocus, onBlur: this.handleBlur },\n _react2.default.createElement(Component, _extends({}, this.props, this.state))\n );\n }\n }]);\n\n return Focus;\n }(_react2.default.Component);\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar calculateChange = exports.calculateChange = function calculateChange(e, hsl, container) {\n var _container$getBoundin = container.getBoundingClientRect(),\n containerWidth = _container$getBoundin.width,\n containerHeight = _container$getBoundin.height;\n\n var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX;\n var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY;\n var left = x - (container.getBoundingClientRect().left + window.pageXOffset);\n var top = y - (container.getBoundingClientRect().top + window.pageYOffset);\n\n if (left < 0) {\n left = 0;\n } else if (left > containerWidth) {\n left = containerWidth;\n }\n\n if (top < 0) {\n top = 0;\n } else if (top > containerHeight) {\n top = containerHeight;\n }\n\n var saturation = left / containerWidth;\n var bright = 1 - top / containerHeight;\n\n return {\n h: hsl.h,\n s: saturation,\n v: bright,\n a: hsl.a,\n source: 'hsv'\n };\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CustomPicker = exports.GooglePicker = exports.TwitterPicker = exports.SwatchesPicker = exports.SliderPicker = exports.SketchPicker = exports.PhotoshopPicker = exports.MaterialPicker = exports.HuePicker = exports.GithubPicker = exports.CompactPicker = exports.ChromePicker = exports.default = exports.CirclePicker = exports.BlockPicker = exports.AlphaPicker = undefined;\n\nvar _Alpha = require('./components/alpha/Alpha');\n\nObject.defineProperty(exports, 'AlphaPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Alpha).default;\n }\n});\n\nvar _Block = require('./components/block/Block');\n\nObject.defineProperty(exports, 'BlockPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Block).default;\n }\n});\n\nvar _Circle = require('./components/circle/Circle');\n\nObject.defineProperty(exports, 'CirclePicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Circle).default;\n }\n});\n\nvar _Chrome = require('./components/chrome/Chrome');\n\nObject.defineProperty(exports, 'ChromePicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Chrome).default;\n }\n});\n\nvar _Compact = require('./components/compact/Compact');\n\nObject.defineProperty(exports, 'CompactPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Compact).default;\n }\n});\n\nvar _Github = require('./components/github/Github');\n\nObject.defineProperty(exports, 'GithubPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Github).default;\n }\n});\n\nvar _Hue = require('./components/hue/Hue');\n\nObject.defineProperty(exports, 'HuePicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Hue).default;\n }\n});\n\nvar _Material = require('./components/material/Material');\n\nObject.defineProperty(exports, 'MaterialPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Material).default;\n }\n});\n\nvar _Photoshop = require('./components/photoshop/Photoshop');\n\nObject.defineProperty(exports, 'PhotoshopPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Photoshop).default;\n }\n});\n\nvar _Sketch = require('./components/sketch/Sketch');\n\nObject.defineProperty(exports, 'SketchPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Sketch).default;\n }\n});\n\nvar _Slider = require('./components/slider/Slider');\n\nObject.defineProperty(exports, 'SliderPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Slider).default;\n }\n});\n\nvar _Swatches = require('./components/swatches/Swatches');\n\nObject.defineProperty(exports, 'SwatchesPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Swatches).default;\n }\n});\n\nvar _Twitter = require('./components/twitter/Twitter');\n\nObject.defineProperty(exports, 'TwitterPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Twitter).default;\n }\n});\n\nvar _Google = require('./components/google/Google');\n\nObject.defineProperty(exports, 'GooglePicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Google).default;\n }\n});\n\nvar _ColorWrap = require('./components/common/ColorWrap');\n\nObject.defineProperty(exports, 'CustomPicker', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_ColorWrap).default;\n }\n});\n\nvar _Chrome2 = _interopRequireDefault(_Chrome);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _Chrome2.default;","/** @license React v16.13.1\n * react-is.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'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","/** @license React v16.13.1\n * react-is.production.min.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'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t(require(\"prop-types\"),require(\"react\"),require(\"signature_pad\"),require(\"trim-canvas\")):\"function\"==typeof define&&define.amd?define([\"prop-types\",\"react\",\"signature_pad\",\"trim-canvas\"],t):\"object\"==typeof exports?exports.SignatureCanvas=t(require(\"prop-types\"),require(\"react\"),require(\"signature_pad\"),require(\"trim-canvas\")):e.SignatureCanvas=t(e[\"prop-types\"],e.react,e.signature_pad,e[\"trim-canvas\"])}(this,function(e,t,n,r){return function(e){function t(r){if(n[r])return n[r].exports;var a=n[r]={exports:{},id:r,loaded:!1};return e[r].call(a.exports,a,a.exports,t),a.loaded=!0,a.exports}var n={};return t.m=e,t.c=n,t.p=\"\",t(0)}([function(e,t,n){\"use strict\";function r(e){return e&&e.__esModule?e:{default:e}}function a(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function o(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function i(e,t){if(!e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!t||\"object\"!=typeof t&&\"function\"!=typeof t?e:t}function u(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,\"__esModule\",{value:!0});var s=Object.assign||function(e){for(var t=1;t 1 && arguments[1] !== undefined ? arguments[1] : 'span';\n\n return function (_React$Component) {\n _inherits(Active, _React$Component);\n\n function Active() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Active);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Active.__proto__ || Object.getPrototypeOf(Active)).call.apply(_ref, [this].concat(args))), _this), _this.state = { active: false }, _this.handleMouseDown = function () {\n return _this.setState({ active: true });\n }, _this.handleMouseUp = function () {\n return _this.setState({ active: false });\n }, _this.render = function () {\n return _react2.default.createElement(\n Span,\n { onMouseDown: _this.handleMouseDown, onMouseUp: _this.handleMouseUp },\n _react2.default.createElement(Component, _extends({}, _this.props, _this.state))\n );\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n return Active;\n }(_react2.default.Component);\n};\n\nexports.default = active;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.hover = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar hover = exports.hover = function hover(Component) {\n var Span = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'span';\n\n return function (_React$Component) {\n _inherits(Hover, _React$Component);\n\n function Hover() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Hover);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Hover.__proto__ || Object.getPrototypeOf(Hover)).call.apply(_ref, [this].concat(args))), _this), _this.state = { hover: false }, _this.handleMouseOver = function () {\n return _this.setState({ hover: true });\n }, _this.handleMouseOut = function () {\n return _this.setState({ hover: false });\n }, _this.render = function () {\n return _react2.default.createElement(\n Span,\n { onMouseOver: _this.handleMouseOver, onMouseOut: _this.handleMouseOut },\n _react2.default.createElement(Component, _extends({}, _this.props, _this.state))\n );\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n return Hover;\n }(_react2.default.Component);\n};\n\nexports.default = hover;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.flattenNames = undefined;\n\nvar _isString2 = require('lodash/isString');\n\nvar _isString3 = _interopRequireDefault(_isString2);\n\nvar _forOwn2 = require('lodash/forOwn');\n\nvar _forOwn3 = _interopRequireDefault(_forOwn2);\n\nvar _isPlainObject2 = require('lodash/isPlainObject');\n\nvar _isPlainObject3 = _interopRequireDefault(_isPlainObject2);\n\nvar _map2 = require('lodash/map');\n\nvar _map3 = _interopRequireDefault(_map2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar flattenNames = exports.flattenNames = function flattenNames() {\n var things = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n var names = [];\n\n (0, _map3.default)(things, function (thing) {\n if (Array.isArray(thing)) {\n flattenNames(thing).map(function (name) {\n return names.push(name);\n });\n } else if ((0, _isPlainObject3.default)(thing)) {\n (0, _forOwn3.default)(thing, function (value, key) {\n value === true && names.push(key);\n names.push(key + '-' + value);\n });\n } else if ((0, _isString3.default)(thing)) {\n names.push(thing);\n }\n });\n\n return names;\n};\n\nexports.default = flattenNames;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ReactCSS = exports.loop = exports.handleActive = exports.handleHover = exports.hover = undefined;\n\nvar _flattenNames = require('./flattenNames');\n\nvar _flattenNames2 = _interopRequireDefault(_flattenNames);\n\nvar _mergeClasses = require('./mergeClasses');\n\nvar _mergeClasses2 = _interopRequireDefault(_mergeClasses);\n\nvar _autoprefix = require('./autoprefix');\n\nvar _autoprefix2 = _interopRequireDefault(_autoprefix);\n\nvar _hover2 = require('./components/hover');\n\nvar _hover3 = _interopRequireDefault(_hover2);\n\nvar _active = require('./components/active');\n\nvar _active2 = _interopRequireDefault(_active);\n\nvar _loop2 = require('./loop');\n\nvar _loop3 = _interopRequireDefault(_loop2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.hover = _hover3.default;\nexports.handleHover = _hover3.default;\nexports.handleActive = _active2.default;\nexports.loop = _loop3.default;\nvar ReactCSS = exports.ReactCSS = function ReactCSS(classes) {\n for (var _len = arguments.length, activations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n activations[_key - 1] = arguments[_key];\n }\n\n var activeNames = (0, _flattenNames2.default)(activations);\n var merged = (0, _mergeClasses2.default)(classes, activeNames);\n return (0, _autoprefix2.default)(merged);\n};\n\nexports.default = ReactCSS;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar loopable = function loopable(i, length) {\n var props = {};\n var setProp = function setProp(name) {\n var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n props[name] = value;\n };\n\n i === 0 && setProp('first-child');\n i === length - 1 && setProp('last-child');\n (i === 0 || i % 2 === 0) && setProp('even');\n Math.abs(i % 2) === 1 && setProp('odd');\n setProp('nth-child', i);\n\n return props;\n};\n\nexports.default = loopable;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.mergeClasses = undefined;\n\nvar _forOwn2 = require('lodash/forOwn');\n\nvar _forOwn3 = _interopRequireDefault(_forOwn2);\n\nvar _cloneDeep2 = require('lodash/cloneDeep');\n\nvar _cloneDeep3 = _interopRequireDefault(_cloneDeep2);\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar mergeClasses = exports.mergeClasses = function mergeClasses(classes) {\n var activeNames = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n var styles = classes.default && (0, _cloneDeep3.default)(classes.default) || {};\n activeNames.map(function (name) {\n var toMerge = classes[name];\n if (toMerge) {\n (0, _forOwn3.default)(toMerge, function (value, key) {\n if (!styles[key]) {\n styles[key] = {};\n }\n\n styles[key] = _extends({}, styles[key], toMerge[key]);\n });\n }\n\n return name;\n });\n return styles;\n};\n\nexports.default = mergeClasses;","/*!\n * Signature Pad v2.3.2\n * https://github.com/szimek/signature_pad\n *\n * Copyright 2017 Szymon Nowak\n * Released under the MIT license\n *\n * The main idea and some parts of the code (e.g. drawing variable width Bézier curve) are taken from:\n * http://corner.squareup.com/2012/07/smoother-signatures.html\n *\n * Implementation of interpolation using cubic Bézier curves is taken from:\n * http://benknowscode.wordpress.com/2012/09/14/path-interpolation-using-cubic-bezier-and-control-point-estimation-in-javascript\n *\n * Algorithm for approximated length of a Bézier curve is taken from:\n * http://www.lemoda.net/maths/bezier-length/index.html\n *\n */\n\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.SignaturePad = factory());\n}(this, (function () { 'use strict';\n\nfunction Point(x, y, time) {\n this.x = x;\n this.y = y;\n this.time = time || new Date().getTime();\n}\n\nPoint.prototype.velocityFrom = function (start) {\n return this.time !== start.time ? this.distanceTo(start) / (this.time - start.time) : 1;\n};\n\nPoint.prototype.distanceTo = function (start) {\n return Math.sqrt(Math.pow(this.x - start.x, 2) + Math.pow(this.y - start.y, 2));\n};\n\nPoint.prototype.equals = function (other) {\n return this.x === other.x && this.y === other.y && this.time === other.time;\n};\n\nfunction Bezier(startPoint, control1, control2, endPoint) {\n this.startPoint = startPoint;\n this.control1 = control1;\n this.control2 = control2;\n this.endPoint = endPoint;\n}\n\n// Returns approximated length.\nBezier.prototype.length = function () {\n var steps = 10;\n var length = 0;\n var px = void 0;\n var py = void 0;\n\n for (var i = 0; i <= steps; i += 1) {\n var t = i / steps;\n var cx = this._point(t, this.startPoint.x, this.control1.x, this.control2.x, this.endPoint.x);\n var cy = this._point(t, this.startPoint.y, this.control1.y, this.control2.y, this.endPoint.y);\n if (i > 0) {\n var xdiff = cx - px;\n var ydiff = cy - py;\n length += Math.sqrt(xdiff * xdiff + ydiff * ydiff);\n }\n px = cx;\n py = cy;\n }\n\n return length;\n};\n\n/* eslint-disable no-multi-spaces, space-in-parens */\nBezier.prototype._point = function (t, start, c1, c2, end) {\n return start * (1.0 - t) * (1.0 - t) * (1.0 - t) + 3.0 * c1 * (1.0 - t) * (1.0 - t) * t + 3.0 * c2 * (1.0 - t) * t * t + end * t * t * t;\n};\n\n/* eslint-disable */\n\n// http://stackoverflow.com/a/27078401/815507\nfunction throttle(func, wait, options) {\n var context, args, result;\n var timeout = null;\n var previous = 0;\n if (!options) options = {};\n var later = function later() {\n previous = options.leading === false ? 0 : Date.now();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n };\n return function () {\n var now = Date.now();\n if (!previous && options.leading === false) previous = now;\n var remaining = wait - (now - previous);\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = now;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n return result;\n };\n}\n\nfunction SignaturePad(canvas, options) {\n var self = this;\n var opts = options || {};\n\n this.velocityFilterWeight = opts.velocityFilterWeight || 0.7;\n this.minWidth = opts.minWidth || 0.5;\n this.maxWidth = opts.maxWidth || 2.5;\n this.throttle = 'throttle' in opts ? opts.throttle : 16; // in miliseconds\n this.minDistance = 'minDistance' in opts ? opts.minDistance : 5;\n\n if (this.throttle) {\n this._strokeMoveUpdate = throttle(SignaturePad.prototype._strokeUpdate, this.throttle);\n } else {\n this._strokeMoveUpdate = SignaturePad.prototype._strokeUpdate;\n }\n\n this.dotSize = opts.dotSize || function () {\n return (this.minWidth + this.maxWidth) / 2;\n };\n this.penColor = opts.penColor || 'black';\n this.backgroundColor = opts.backgroundColor || 'rgba(0,0,0,0)';\n this.onBegin = opts.onBegin;\n this.onEnd = opts.onEnd;\n\n this._canvas = canvas;\n this._ctx = canvas.getContext('2d');\n this.clear();\n\n // We need add these inline so they are available to unbind while still having\n // access to 'self' we could use _.bind but it's not worth adding a dependency.\n this._handleMouseDown = function (event) {\n if (event.which === 1) {\n self._mouseButtonDown = true;\n self._strokeBegin(event);\n }\n };\n\n this._handleMouseMove = function (event) {\n if (self._mouseButtonDown) {\n self._strokeMoveUpdate(event);\n }\n };\n\n this._handleMouseUp = function (event) {\n if (event.which === 1 && self._mouseButtonDown) {\n self._mouseButtonDown = false;\n self._strokeEnd(event);\n }\n };\n\n this._handleTouchStart = function (event) {\n if (event.targetTouches.length === 1) {\n var touch = event.changedTouches[0];\n self._strokeBegin(touch);\n }\n };\n\n this._handleTouchMove = function (event) {\n // Prevent scrolling.\n event.preventDefault();\n\n var touch = event.targetTouches[0];\n self._strokeMoveUpdate(touch);\n };\n\n this._handleTouchEnd = function (event) {\n var wasCanvasTouched = event.target === self._canvas;\n if (wasCanvasTouched) {\n event.preventDefault();\n self._strokeEnd(event);\n }\n };\n\n // Enable mouse and touch event handlers\n this.on();\n}\n\n// Public methods\nSignaturePad.prototype.clear = function () {\n var ctx = this._ctx;\n var canvas = this._canvas;\n\n ctx.fillStyle = this.backgroundColor;\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n\n this._data = [];\n this._reset();\n this._isEmpty = true;\n};\n\nSignaturePad.prototype.fromDataURL = function (dataUrl) {\n var _this = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var image = new Image();\n var ratio = options.ratio || window.devicePixelRatio || 1;\n var width = options.width || this._canvas.width / ratio;\n var height = options.height || this._canvas.height / ratio;\n\n this._reset();\n image.src = dataUrl;\n image.onload = function () {\n _this._ctx.drawImage(image, 0, 0, width, height);\n };\n this._isEmpty = false;\n};\n\nSignaturePad.prototype.toDataURL = function (type) {\n var _canvas;\n\n switch (type) {\n case 'image/svg+xml':\n return this._toSVG();\n default:\n for (var _len = arguments.length, options = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n options[_key - 1] = arguments[_key];\n }\n\n return (_canvas = this._canvas).toDataURL.apply(_canvas, [type].concat(options));\n }\n};\n\nSignaturePad.prototype.on = function () {\n this._handleMouseEvents();\n this._handleTouchEvents();\n};\n\nSignaturePad.prototype.off = function () {\n this._canvas.removeEventListener('mousedown', this._handleMouseDown);\n this._canvas.removeEventListener('mousemove', this._handleMouseMove);\n document.removeEventListener('mouseup', this._handleMouseUp);\n\n this._canvas.removeEventListener('touchstart', this._handleTouchStart);\n this._canvas.removeEventListener('touchmove', this._handleTouchMove);\n this._canvas.removeEventListener('touchend', this._handleTouchEnd);\n};\n\nSignaturePad.prototype.isEmpty = function () {\n return this._isEmpty;\n};\n\n// Private methods\nSignaturePad.prototype._strokeBegin = function (event) {\n this._data.push([]);\n this._reset();\n this._strokeUpdate(event);\n\n if (typeof this.onBegin === 'function') {\n this.onBegin(event);\n }\n};\n\nSignaturePad.prototype._strokeUpdate = function (event) {\n var x = event.clientX;\n var y = event.clientY;\n\n var point = this._createPoint(x, y);\n var lastPointGroup = this._data[this._data.length - 1];\n var lastPoint = lastPointGroup && lastPointGroup[lastPointGroup.length - 1];\n var isLastPointTooClose = lastPoint && point.distanceTo(lastPoint) < this.minDistance;\n\n // Skip this point if it's too close to the previous one\n if (!(lastPoint && isLastPointTooClose)) {\n var _addPoint = this._addPoint(point),\n curve = _addPoint.curve,\n widths = _addPoint.widths;\n\n if (curve && widths) {\n this._drawCurve(curve, widths.start, widths.end);\n }\n\n this._data[this._data.length - 1].push({\n x: point.x,\n y: point.y,\n time: point.time,\n color: this.penColor\n });\n }\n};\n\nSignaturePad.prototype._strokeEnd = function (event) {\n var canDrawCurve = this.points.length > 2;\n var point = this.points[0]; // Point instance\n\n if (!canDrawCurve && point) {\n this._drawDot(point);\n }\n\n if (point) {\n var lastPointGroup = this._data[this._data.length - 1];\n var lastPoint = lastPointGroup[lastPointGroup.length - 1]; // plain object\n\n // When drawing a dot, there's only one point in a group, so without this check\n // such group would end up with exactly the same 2 points.\n if (!point.equals(lastPoint)) {\n lastPointGroup.push({\n x: point.x,\n y: point.y,\n time: point.time,\n color: this.penColor\n });\n }\n }\n\n if (typeof this.onEnd === 'function') {\n this.onEnd(event);\n }\n};\n\nSignaturePad.prototype._handleMouseEvents = function () {\n this._mouseButtonDown = false;\n\n this._canvas.addEventListener('mousedown', this._handleMouseDown);\n this._canvas.addEventListener('mousemove', this._handleMouseMove);\n document.addEventListener('mouseup', this._handleMouseUp);\n};\n\nSignaturePad.prototype._handleTouchEvents = function () {\n // Pass touch events to canvas element on mobile IE11 and Edge.\n this._canvas.style.msTouchAction = 'none';\n this._canvas.style.touchAction = 'none';\n\n this._canvas.addEventListener('touchstart', this._handleTouchStart);\n this._canvas.addEventListener('touchmove', this._handleTouchMove);\n this._canvas.addEventListener('touchend', this._handleTouchEnd);\n};\n\nSignaturePad.prototype._reset = function () {\n this.points = [];\n this._lastVelocity = 0;\n this._lastWidth = (this.minWidth + this.maxWidth) / 2;\n this._ctx.fillStyle = this.penColor;\n};\n\nSignaturePad.prototype._createPoint = function (x, y, time) {\n var rect = this._canvas.getBoundingClientRect();\n\n return new Point(x - rect.left, y - rect.top, time || new Date().getTime());\n};\n\nSignaturePad.prototype._addPoint = function (point) {\n var points = this.points;\n var tmp = void 0;\n\n points.push(point);\n\n if (points.length > 2) {\n // To reduce the initial lag make it work with 3 points\n // by copying the first point to the beginning.\n if (points.length === 3) points.unshift(points[0]);\n\n tmp = this._calculateCurveControlPoints(points[0], points[1], points[2]);\n var c2 = tmp.c2;\n tmp = this._calculateCurveControlPoints(points[1], points[2], points[3]);\n var c3 = tmp.c1;\n var curve = new Bezier(points[1], c2, c3, points[2]);\n var widths = this._calculateCurveWidths(curve);\n\n // Remove the first element from the list,\n // so that we always have no more than 4 points in points array.\n points.shift();\n\n return { curve: curve, widths: widths };\n }\n\n return {};\n};\n\nSignaturePad.prototype._calculateCurveControlPoints = function (s1, s2, s3) {\n var dx1 = s1.x - s2.x;\n var dy1 = s1.y - s2.y;\n var dx2 = s2.x - s3.x;\n var dy2 = s2.y - s3.y;\n\n var m1 = { x: (s1.x + s2.x) / 2.0, y: (s1.y + s2.y) / 2.0 };\n var m2 = { x: (s2.x + s3.x) / 2.0, y: (s2.y + s3.y) / 2.0 };\n\n var l1 = Math.sqrt(dx1 * dx1 + dy1 * dy1);\n var l2 = Math.sqrt(dx2 * dx2 + dy2 * dy2);\n\n var dxm = m1.x - m2.x;\n var dym = m1.y - m2.y;\n\n var k = l2 / (l1 + l2);\n var cm = { x: m2.x + dxm * k, y: m2.y + dym * k };\n\n var tx = s2.x - cm.x;\n var ty = s2.y - cm.y;\n\n return {\n c1: new Point(m1.x + tx, m1.y + ty),\n c2: new Point(m2.x + tx, m2.y + ty)\n };\n};\n\nSignaturePad.prototype._calculateCurveWidths = function (curve) {\n var startPoint = curve.startPoint;\n var endPoint = curve.endPoint;\n var widths = { start: null, end: null };\n\n var velocity = this.velocityFilterWeight * endPoint.velocityFrom(startPoint) + (1 - this.velocityFilterWeight) * this._lastVelocity;\n\n var newWidth = this._strokeWidth(velocity);\n\n widths.start = this._lastWidth;\n widths.end = newWidth;\n\n this._lastVelocity = velocity;\n this._lastWidth = newWidth;\n\n return widths;\n};\n\nSignaturePad.prototype._strokeWidth = function (velocity) {\n return Math.max(this.maxWidth / (velocity + 1), this.minWidth);\n};\n\nSignaturePad.prototype._drawPoint = function (x, y, size) {\n var ctx = this._ctx;\n\n ctx.moveTo(x, y);\n ctx.arc(x, y, size, 0, 2 * Math.PI, false);\n this._isEmpty = false;\n};\n\nSignaturePad.prototype._drawCurve = function (curve, startWidth, endWidth) {\n var ctx = this._ctx;\n var widthDelta = endWidth - startWidth;\n var drawSteps = Math.floor(curve.length());\n\n ctx.beginPath();\n\n for (var i = 0; i < drawSteps; i += 1) {\n // Calculate the Bezier (x, y) coordinate for this step.\n var t = i / drawSteps;\n var tt = t * t;\n var ttt = tt * t;\n var u = 1 - t;\n var uu = u * u;\n var uuu = uu * u;\n\n var x = uuu * curve.startPoint.x;\n x += 3 * uu * t * curve.control1.x;\n x += 3 * u * tt * curve.control2.x;\n x += ttt * curve.endPoint.x;\n\n var y = uuu * curve.startPoint.y;\n y += 3 * uu * t * curve.control1.y;\n y += 3 * u * tt * curve.control2.y;\n y += ttt * curve.endPoint.y;\n\n var width = startWidth + ttt * widthDelta;\n this._drawPoint(x, y, width);\n }\n\n ctx.closePath();\n ctx.fill();\n};\n\nSignaturePad.prototype._drawDot = function (point) {\n var ctx = this._ctx;\n var width = typeof this.dotSize === 'function' ? this.dotSize() : this.dotSize;\n\n ctx.beginPath();\n this._drawPoint(point.x, point.y, width);\n ctx.closePath();\n ctx.fill();\n};\n\nSignaturePad.prototype._fromData = function (pointGroups, drawCurve, drawDot) {\n for (var i = 0; i < pointGroups.length; i += 1) {\n var group = pointGroups[i];\n\n if (group.length > 1) {\n for (var j = 0; j < group.length; j += 1) {\n var rawPoint = group[j];\n var point = new Point(rawPoint.x, rawPoint.y, rawPoint.time);\n var color = rawPoint.color;\n\n if (j === 0) {\n // First point in a group. Nothing to draw yet.\n\n // All points in the group have the same color, so it's enough to set\n // penColor just at the beginning.\n this.penColor = color;\n this._reset();\n\n this._addPoint(point);\n } else if (j !== group.length - 1) {\n // Middle point in a group.\n var _addPoint2 = this._addPoint(point),\n curve = _addPoint2.curve,\n widths = _addPoint2.widths;\n\n if (curve && widths) {\n drawCurve(curve, widths, color);\n }\n } else {\n // Last point in a group. Do nothing.\n }\n }\n } else {\n this._reset();\n var _rawPoint = group[0];\n drawDot(_rawPoint);\n }\n }\n};\n\nSignaturePad.prototype._toSVG = function () {\n var _this2 = this;\n\n var pointGroups = this._data;\n var canvas = this._canvas;\n var ratio = Math.max(window.devicePixelRatio || 1, 1);\n var minX = 0;\n var minY = 0;\n var maxX = canvas.width / ratio;\n var maxY = canvas.height / ratio;\n var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n\n svg.setAttributeNS(null, 'width', canvas.width);\n svg.setAttributeNS(null, 'height', canvas.height);\n\n this._fromData(pointGroups, function (curve, widths, color) {\n var path = document.createElement('path');\n\n // Need to check curve for NaN values, these pop up when drawing\n // lines on the canvas that are not continuous. E.g. Sharp corners\n // or stopping mid-stroke and than continuing without lifting mouse.\n if (!isNaN(curve.control1.x) && !isNaN(curve.control1.y) && !isNaN(curve.control2.x) && !isNaN(curve.control2.y)) {\n var attr = 'M ' + curve.startPoint.x.toFixed(3) + ',' + curve.startPoint.y.toFixed(3) + ' ' + ('C ' + curve.control1.x.toFixed(3) + ',' + curve.control1.y.toFixed(3) + ' ') + (curve.control2.x.toFixed(3) + ',' + curve.control2.y.toFixed(3) + ' ') + (curve.endPoint.x.toFixed(3) + ',' + curve.endPoint.y.toFixed(3));\n\n path.setAttribute('d', attr);\n path.setAttribute('stroke-width', (widths.end * 2.25).toFixed(3));\n path.setAttribute('stroke', color);\n path.setAttribute('fill', 'none');\n path.setAttribute('stroke-linecap', 'round');\n\n svg.appendChild(path);\n }\n }, function (rawPoint) {\n var circle = document.createElement('circle');\n var dotSize = typeof _this2.dotSize === 'function' ? _this2.dotSize() : _this2.dotSize;\n circle.setAttribute('r', dotSize);\n circle.setAttribute('cx', rawPoint.x);\n circle.setAttribute('cy', rawPoint.y);\n circle.setAttribute('fill', rawPoint.color);\n\n svg.appendChild(circle);\n });\n\n var prefix = 'data:image/svg+xml;base64,';\n var header = '';\n var body = svg.innerHTML;\n\n // IE hack for missing innerHTML property on SVGElement\n if (body === undefined) {\n var dummy = document.createElement('dummy');\n var nodes = svg.childNodes;\n dummy.innerHTML = '';\n\n for (var i = 0; i < nodes.length; i += 1) {\n dummy.appendChild(nodes[i].cloneNode(true));\n }\n\n body = dummy.innerHTML;\n }\n\n var footer = '';\n var data = header + body + footer;\n\n return prefix + btoa(data);\n};\n\nSignaturePad.prototype.fromData = function (pointGroups) {\n var _this3 = this;\n\n this.clear();\n\n this._fromData(pointGroups, function (curve, widths) {\n return _this3._drawCurve(curve, widths.start, widths.end);\n }, function (rawPoint) {\n return _this3._drawDot(rawPoint);\n });\n\n this._data = pointGroups;\n};\n\nSignaturePad.prototype.toData = function () {\n return this._data;\n};\n\nreturn SignaturePad;\n\n})));\n","// TinyColor v1.4.2\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\n(function(Math) {\n\nvar trimLeft = /^\\s+/,\n trimRight = /\\s+$/,\n tinyCounter = 0,\n mathRound = Math.round,\n mathMin = Math.min,\n mathMax = Math.max,\n mathRandom = Math.random;\n\nfunction tinycolor (color, opts) {\n\n color = (color) ? color : '';\n opts = opts || { };\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n\n var rgb = inputToRGB(color);\n this._originalInput = color,\n this._r = rgb.r,\n this._g = rgb.g,\n this._b = rgb.b,\n this._a = rgb.a,\n this._roundA = mathRound(100*this._a) / 100,\n this._format = opts.format || rgb.format;\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) { this._r = mathRound(this._r); }\n if (this._g < 1) { this._g = mathRound(this._g); }\n if (this._b < 1) { this._b = mathRound(this._b); }\n\n this._ok = rgb.ok;\n this._tc_id = tinyCounter++;\n}\n\ntinycolor.prototype = {\n isDark: function() {\n return this.getBrightness() < 128;\n },\n isLight: function() {\n return !this.isDark();\n },\n isValid: function() {\n return this._ok;\n },\n getOriginalInput: function() {\n return this._originalInput;\n },\n getFormat: function() {\n return this._format;\n },\n getAlpha: function() {\n return this._a;\n },\n getBrightness: function() {\n //http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n getLuminance: function() {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r/255;\n GsRGB = rgb.g/255;\n BsRGB = rgb.b/255;\n\n if (RsRGB <= 0.03928) {R = RsRGB / 12.92;} else {R = Math.pow(((RsRGB + 0.055) / 1.055), 2.4);}\n if (GsRGB <= 0.03928) {G = GsRGB / 12.92;} else {G = Math.pow(((GsRGB + 0.055) / 1.055), 2.4);}\n if (BsRGB <= 0.03928) {B = BsRGB / 12.92;} else {B = Math.pow(((BsRGB + 0.055) / 1.055), 2.4);}\n return (0.2126 * R) + (0.7152 * G) + (0.0722 * B);\n },\n setAlpha: function(value) {\n this._a = boundAlpha(value);\n this._roundA = mathRound(100*this._a) / 100;\n return this;\n },\n toHsv: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };\n },\n toHsvString: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);\n return (this._a == 1) ?\n \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" :\n \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \"+ this._roundA + \")\";\n },\n toHsl: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };\n },\n toHslString: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100);\n return (this._a == 1) ?\n \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" :\n \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \"+ this._roundA + \")\";\n },\n toHex: function(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function(allow3Char) {\n return '#' + this.toHex(allow3Char);\n },\n toHex8: function(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function(allow4Char) {\n return '#' + this.toHex8(allow4Char);\n },\n toRgb: function() {\n return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a };\n },\n toRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \")\" :\n \"rgba(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function() {\n return { r: mathRound(bound01(this._r, 255) * 100) + \"%\", g: mathRound(bound01(this._g, 255) * 100) + \"%\", b: mathRound(bound01(this._b, 255) * 100) + \"%\", a: this._a };\n },\n toPercentageRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%)\" :\n \"rgba(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function() {\n if (this._a === 0) {\n return \"transparent\";\n }\n\n if (this._a < 1) {\n return false;\n }\n\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function(secondColor) {\n var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n\n return \"progid:DXImageTransform.Microsoft.gradient(\"+gradientType+\"startColorstr=\"+hex8String+\",endColorstr=\"+secondHex8String+\")\";\n },\n toString: function(format) {\n var formatSet = !!format;\n format = format || this._format;\n\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n\n return formattedString || this.toHexString();\n },\n clone: function() {\n return tinycolor(this.toString());\n },\n\n _applyModification: function(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function() {\n return this._applyModification(lighten, arguments);\n },\n brighten: function() {\n return this._applyModification(brighten, arguments);\n },\n darken: function() {\n return this._applyModification(darken, arguments);\n },\n desaturate: function() {\n return this._applyModification(desaturate, arguments);\n },\n saturate: function() {\n return this._applyModification(saturate, arguments);\n },\n greyscale: function() {\n return this._applyModification(greyscale, arguments);\n },\n spin: function() {\n return this._applyModification(spin, arguments);\n },\n\n _applyCombination: function(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function() {\n return this._applyCombination(analogous, arguments);\n },\n complement: function() {\n return this._applyCombination(complement, arguments);\n },\n monochromatic: function() {\n return this._applyCombination(monochromatic, arguments);\n },\n splitcomplement: function() {\n return this._applyCombination(splitcomplement, arguments);\n },\n triad: function() {\n return this._applyCombination(triad, arguments);\n },\n tetrad: function() {\n return this._applyCombination(tetrad, arguments);\n }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function(color, opts) {\n if (typeof color == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n }\n else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n\n return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n// \"red\"\n// \"#f00\" or \"f00\"\n// \"#ff0000\" or \"ff0000\"\n// \"#ff000000\" or \"ff000000\"\n// \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n// \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n// \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n// \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n// \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n// \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n// \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n\n if (typeof color == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n\n a = boundAlpha(a);\n\n return {\n ok: ok,\n format: color.format || format,\n r: mathMin(255, mathMax(rgb.r, 0)),\n g: mathMin(255, mathMax(rgb.g, 0)),\n b: mathMin(255, mathMax(rgb.b, 0)),\n a: a\n };\n}\n\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// \n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b){\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, l = (max + min) / 2;\n\n if(max == min) {\n h = s = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n\n h /= 6;\n }\n\n return { h: h, s: s, l: l };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n var r, g, b;\n\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n\n function hue2rgb(p, q, t) {\n if(t < 0) t += 1;\n if(t > 1) t -= 1;\n if(t < 1/6) return p + (q - p) * 6 * t;\n if(t < 1/2) return q;\n if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;\n return p;\n }\n\n if(s === 0) {\n r = g = b = l; // achromatic\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1/3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1/3);\n }\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, v = max;\n\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if(max == min) {\n h = 0; // achromatic\n }\n else {\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\n function hsvToRgb(h, s, v) {\n\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16)),\n pad2(convertDecimalToHex(a))\n ];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) { return false; }\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\n\ntinycolor.random = function() {\n return tinycolor.fromRatio({\n r: mathRandom(),\n g: mathRandom(),\n b: mathRandom()\n });\n};\n\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// \n\nfunction desaturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction saturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction greyscale(color) {\n return tinycolor(color).desaturate(100);\n}\n\nfunction lighten (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\nfunction brighten(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var rgb = tinycolor(color).toRgb();\n rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));\n rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));\n rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));\n return tinycolor(rgb);\n}\n\nfunction darken (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// \n\nfunction complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n}\n\nfunction triad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction tetrad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),\n tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})\n ];\n}\n\nfunction analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n\n for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n}\n\nfunction monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h, s = hsv.s, v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n\n while (results--) {\n ret.push(tinycolor({ h: h, s: s, v: v}));\n v = (v + modification) % 1;\n }\n\n return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function(color1, color2, amount) {\n amount = (amount === 0) ? 0 : (amount || 50);\n\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n\n var p = amount / 100;\n\n var rgba = {\n r: ((rgb2.r - rgb1.r) * p) + rgb1.r,\n g: ((rgb2.g - rgb1.g) * p) + rgb1.g,\n b: ((rgb2.b - rgb1.b) * p) + rgb1.b,\n a: ((rgb2.a - rgb1.a) * p) + rgb1.a\n };\n\n return tinycolor(rgba);\n};\n\n\n// Readability Functions\n// ---------------------\n// false\n// tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function(color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n\n out = false;\n\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function(baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size ;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors ;\n level = args.level;\n size = args.size;\n\n for (var i= 0; i < colorList.length ; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n\n if (tinycolor.isReadable(baseColor, bestColor, {\"level\":level,\"size\":size}) || !includeFallbackColors) {\n return bestColor;\n }\n else {\n args.includeFallbackColors=false;\n return tinycolor.mostReadable(baseColor,[\"#fff\", \"#000\"],args);\n }\n};\n\n\n// Big List of Colors\n// ------------------\n// \nvar names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n var flipped = { };\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n a = parseFloat(a);\n\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n\n return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n if (isOnePointZero(n)) { n = \"100%\"; }\n\n var processPercent = isPercentage(n);\n n = mathMin(max, mathMax(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if ((Math.abs(n - max) < 0.000001)) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return (n % max) / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n return mathMin(1, mathMax(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// \nfunction isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf('.') != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n return typeof n === \"string\" && n.indexOf('%') != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n return c.length == 1 ? '0' + c : '' + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n if (n <= 1) {\n n = (n * 100) + \"%\";\n }\n\n return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n return (parseIntFromHex(h) / 255);\n}\n\nvar matchers = (function() {\n\n // \n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // \n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n})();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n\n color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color == 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: \"name\" };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if ((match = matchers.rgb.exec(color))) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n if ((match = matchers.rgba.exec(color))) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n if ((match = matchers.hsl.exec(color))) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n if ((match = matchers.hsla.exec(color))) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n if ((match = matchers.hsv.exec(color))) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n if ((match = matchers.hsva.exec(color))) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n if ((match = matchers.hex8.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex6.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if ((match = matchers.hex4.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n a: convertHexToDecimal(match[4] + '' + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex3.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n\n return false;\n}\n\nfunction validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\"level\":\"AA\", \"size\":\"small\"};\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\"level\":level, \"size\":size};\n}\n\n// Node: Export function\nif (typeof module !== \"undefined\" && module.exports) {\n module.exports = tinycolor;\n}\n// AMD/requirejs: Define the module\nelse if (typeof define === 'function' && define.amd) {\n define(function () {return tinycolor;});\n}\n// Browser: Expose to window\nelse {\n window.tinycolor = tinycolor;\n}\n\n})(Math);\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.trimCanvas=t():e.trimCanvas=t()}(this,function(){return function(e){function t(n){if(r[n])return r[n].exports;var o=r[n]={exports:{},id:n,loaded:!1};return e[n].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var r={};return t.m=e,t.c=r,t.p=\"\",t(0)}([function(e,t){\"use strict\";function r(e){var t=e.getContext(\"2d\"),r=e.width,n=e.height,o=t.getImageData(0,0,r,n).data,f=a(!0,r,n,o),i=a(!1,r,n,o),c=u(!0,r,n,o),d=u(!1,r,n,o),p=d-c+1,l=i-f+1,s=t.getImageData(c,f,p,l);return e.width=p,e.height=l,t.clearRect(0,0,p,l),t.putImageData(s,0,0),e}function n(e,t,r,n){return{red:n[4*(r*t+e)],green:n[4*(r*t+e)+1],blue:n[4*(r*t+e)+2],alpha:n[4*(r*t+e)+3]}}function o(e,t,r,o){return n(e,t,r,o).alpha}function a(e,t,r,n){for(var a=e?1:-1,u=e?0:r-1,f=u;e?f-1;f+=a)for(var i=0;i-1;f+=a)for(var i=0;iid; + return new IceResponse(IceResponse::SUCCESS, true); + } +} \ No newline at end of file diff --git a/extensions/invoices/web/js/lib.js b/extensions/invoices/web/js/lib.js index 655010dd..e7a0e5b1 100644 --- a/extensions/invoices/web/js/lib.js +++ b/extensions/invoices/web/js/lib.js @@ -1,17 +1,15 @@ +import React from 'react'; +import ReactDOM from 'react-dom'; +import { Space, Tag } from 'antd'; import ReactModalAdapterBase from '../../../../web/api/ReactModalAdapterBase'; - +import { + EditOutlined, DeleteOutlined, CopyOutlined, MonitorOutlined, PrinterOutlined, +} from '@ant-design/icons'; /** * VatInvoiceAdapter */ class InvoiceAdapter extends ReactModalAdapterBase { - /*constructor(endPoint, tab, filter, orderBy) { - super(endPoint, tab, filter, orderBy); - this.fieldNameMap = {}; - this.hiddenFields = {}; - this.tableFields = {}; - this.formOnlyFields = {}; - }*/ getDataMapping() { return [ @@ -171,7 +169,68 @@ class InvoiceAdapter extends ReactModalAdapterBase { }, ]; } - + + getTableActionButtonJsx(adapter) { + return (text, record) => ( + + {adapter.hasAccess('save') && adapter.showEdit + && ( + modJs.edit(record.id)} style={{ cursor: 'pointer' }}> + + {` ${adapter.gt('Edit')}`} + + )} + {adapter.hasAccess('element') + && ( + modJs.viewElement(record.id)} style={{ cursor: 'pointer' }}> + + {` ${adapter.gt('View')}`} + + )} + {adapter.hasAccess('delete') && adapter.showDelete + && ( + modJs.deleteRow(record.id)} style={{ cursor: 'pointer' }}> + + {` ${adapter.gt('Delete')}`} + + )} + {adapter.hasAccess('save') + && ( + modJs.copyRow(record.id)} style={{ cursor: 'pointer' }}> + + {` ${adapter.gt('Copy')}`} + + )} + modJs.printInvoice(record.id)} style={{ cursor: 'pointer' }}> + + {` ${adapter.gt('Print')}`} + + + ); + } + + printInvoice(id) { + const params = {}; + params.id = id; + const reqJson = JSON.stringify(params); + const callBackData = []; + callBackData.callBackData = []; + callBackData.callBackSuccess = 'printInvoiceSuccessCallback'; + callBackData.callBackFail = 'printInvoiceFailCallback'; + + this.customAction('printInvoice', 'extension=invoices', reqJson, callBackData); + } + + + printInvoiceSuccessCallback(callBackData) { + this.showMessage('Success', 'Printing Done'); + this.get([]); + } + + + printInvoiceFailCallback(callBackData) { + this.showMessage('Error', callBackData); + } } module.exports ={InvoiceAdapter}; \ No newline at end of file